diff --git a/client-sdks/platform/openapi.json b/client-sdks/platform/openapi.json index e8487136b..c699f0869 100644 --- a/client-sdks/platform/openapi.json +++ b/client-sdks/platform/openapi.json @@ -1 +1 @@ -{"openapi":"3.0.0","info":{"title":"Alien API","version":"1.0.0","contact":{"name":"Alien Team","url":"https://alien.dev"}},"servers":[{"url":"https://api.alien.dev","description":"Alien API - Production"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","bearerFormat":"API key","description":"API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys"}},"schemas":{"WorkspaceInvitationPreview":{"type":"object","properties":{"kind":{"type":"string","enum":["email","link"]},"workspace":{"type":"object","properties":{"id":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$"},"logoUrl":{"type":"string","nullable":true,"format":"uri"}},"required":["id","name","logoUrl"]},"inviter":{"type":"object","nullable":true,"properties":{"name":{"type":"string"},"image":{"type":"string","nullable":true,"format":"uri"}},"required":["name","image"]},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"expiresAt":{"type":"string","format":"date-time"},"state":{"type":"string","enum":["active","accepted","expired","revoked"]},"emailHint":{"type":"string","nullable":true}},"required":["kind","workspace","inviter","role","expiresAt","state","emailHint"],"additionalProperties":false},"WorkspaceRole":{"type":"string","enum":["workspace.viewer","workspace.member","workspace.admin"],"description":"Role for workspace-scoped service accounts","example":"workspace.member"},"APIError":{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"message":{"type":"string","maxLength":16384,"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."},"source":{"nullable":true,"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."},"retryable":{"type":"boolean","default":false,"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."},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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."},"requestId":{"type":"string","description":"Request ID echoed in the x-request-id response header and server logs."}},"required":["code","message","internal"]},"Membership":{"type":"object","properties":{"id":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$"},"logoUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"role":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","logoUrl","role","createdAt"],"additionalProperties":false},"UserProfile":{"type":"object","properties":{"id":{"type":"string","description":"Unique user identifier"},"email":{"type":"string","description":"User's email address"},"name":{"type":"string","description":"User's display name"},"image":{"type":"string","nullable":true,"description":"User's avatar image URL"},"githubUsername":{"type":"string","nullable":true,"description":"Linked GitHub username"},"cliConnected":{"type":"boolean","description":"Whether this user has ever authenticated a request from the Alien CLI. Latched on first CLI request, never cleared."},"company":{"type":"string","nullable":true,"description":"Company name collected during profile setup."},"acquisitionSource":{"type":"string","nullable":true,"enum":["github","x-twitter","linkedin","hacker-news","reddit","search","friend-or-colleague","founder","event-or-community","other",null],"description":"How the user heard about Alien."},"acquisitionSourceDetail":{"type":"string","nullable":true,"description":"Additional acquisition source detail when the source is other."},"useCases":{"type":"string","nullable":true,"description":"What the user is hoping to use Alien for."},"profileSetupCompletedAt":{"type":"string","format":"date-time","nullable":true,"description":"When the user completed the required profile setup dialog."},"profileSetupVersion":{"type":"integer","nullable":true,"description":"Version of the required profile setup dialog the user completed."}},"required":["id","email","name","image","githubUsername","cliConnected","company","acquisitionSource","acquisitionSourceDetail","useCases","profileSetupCompletedAt","profileSetupVersion"],"additionalProperties":false},"UserProfileSetupRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Display name"},"company":{"type":"string","minLength":1,"maxLength":120,"description":"Company name"},"acquisitionSource":{"type":"string","enum":["github","x-twitter","linkedin","hacker-news","reddit","search","friend-or-colleague","founder","event-or-community","other"],"description":"How the user heard about Alien"},"acquisitionSourceDetail":{"type":"string","minLength":1,"maxLength":200,"description":"Required when acquisitionSource is other"},"useCases":{"type":"string","maxLength":2000,"description":"What the user is hoping to use Alien for"}},"required":["name","company","acquisitionSource"],"additionalProperties":false},"GitNamespace":{"type":"object","properties":{"id":{"type":"number","nullable":true},"name":{"type":"string"},"slug":{"type":"string"},"installationId":{"type":"number","nullable":true},"type":{"type":"string","enum":["team","user"]},"provider":{"type":"string","enum":["github"]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","slug","installationId","type","provider","createdAt"],"additionalProperties":false},"GitRepository":{"type":"object","properties":{"name":{"type":"string"},"private":{"type":"boolean"},"defaultBranch":{"type":"string"},"pushedAt":{"type":"string","format":"date-time"}},"required":["name","private","defaultBranch"],"additionalProperties":false},"AcceptWorkspaceInvitationResponse":{"type":"object","properties":{"outcome":{"type":"string","enum":["joined","already-member"]},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"workspaceName":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$"},"role":{"$ref":"#/components/schemas/WorkspaceRole"}},"required":["outcome","workspaceId","workspaceName","role"],"additionalProperties":false},"Subject":{"oneOf":[{"$ref":"#/components/schemas/UserSubject"},{"$ref":"#/components/schemas/ServiceAccountSubject"}],"discriminator":{"propertyName":"kind","mapping":{"user":"#/components/schemas/UserSubject","serviceAccount":"#/components/schemas/ServiceAccountSubject"}},"description":"Authenticated principal that can be either a user (with workspace-scoped permissions) or a service account (with configurable scope and role)"},"UserSubject":{"type":"object","properties":{"kind":{"type":"string","enum":["user"],"description":"Subject type identifier"},"id":{"type":"string","description":"Unique user identifier"},"email":{"type":"string","format":"email","description":"User's email address"},"workspaceId":{"type":"string","description":"ID of the workspace the user is authenticated within"},"workspaceName":{"type":"string","description":"Name of the workspace the user is authenticated within"},"role":{"$ref":"#/components/schemas/UserRole"}},"required":["kind","id","email","workspaceId","role"],"description":"Authenticated user subject with workspace-scoped permissions"},"UserRole":{"type":"string","enum":["workspace.viewer","workspace.member","workspace.admin"],"description":"User's role within the workspace","example":"workspace.member"},"ServiceAccountSubject":{"type":"object","properties":{"kind":{"type":"string","enum":["serviceAccount"],"description":"Subject type identifier"},"id":{"type":"string","description":"Unique service account identifier (API key ID)"},"workspaceId":{"type":"string","description":"ID of the workspace the service account belongs to"},"workspaceName":{"type":"string","description":"Name of the workspace the service account belongs to"},"scope":{"$ref":"#/components/schemas/SubjectScope"},"role":{"$ref":"#/components/schemas/Role"}},"required":["kind","id","workspaceId","scope","role"],"description":"Authenticated service account subject with scoped permissions (workspace, project, or deployment level)"},"SubjectScope":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["workspace"],"description":"Workspace-scoped access"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["project"],"description":"Project-scoped access"},"projectId":{"type":"string","description":"ID of the specific project this scope applies to"}},"required":["type","projectId"]},{"type":"object","properties":{"type":{"type":"string","enum":["deployment"],"description":"Deployment-scoped access"},"deploymentId":{"type":"string","description":"ID of the specific deployment this scope applies to"},"projectId":{"type":"string","description":"ID of the project this deployment belongs to"}},"required":["type","deploymentId","projectId"]},{"type":"object","properties":{"type":{"type":"string","enum":["deployment-group"],"description":"Deployment group-scoped access"},"deploymentGroupId":{"type":"string","description":"ID of the specific deployment group this scope applies to"},"projectId":{"type":"string","description":"ID of the project this deployment group belongs to"}},"required":["type","deploymentGroupId","projectId"]},{"type":"object","properties":{"type":{"type":"string","enum":["manager"],"description":"Manager-scoped access"},"managerId":{"type":"string","description":"ID of the specific manager this scope applies to"}},"required":["type","managerId"]}],"description":"Authorization scope defining what resources this service account can access"},"Role":{"oneOf":[{"$ref":"#/components/schemas/WorkspaceRole"},{"$ref":"#/components/schemas/ProjectRole"},{"$ref":"#/components/schemas/DeploymentRole"},{"$ref":"#/components/schemas/DeploymentGroupRole"},{"$ref":"#/components/schemas/ManagerRole"}],"description":"Role defining what actions this service account can perform within its scope","example":"workspace.member"},"ProjectRole":{"type":"string","enum":["project.viewer","project.developer"],"description":"Role for project-scoped service accounts","example":"project.developer"},"DeploymentRole":{"type":"string","enum":["deployment.viewer","deployment.manager","deployment.telemetry-writer"],"description":"Role for deployment-scoped service accounts","example":"deployment.manager"},"DeploymentGroupRole":{"type":"string","enum":["deployment-group.deployer"],"description":"Role for deployment group-scoped service accounts","example":"deployment-group.deployer"},"ManagerRole":{"type":"string","enum":["manager.runtime"],"description":"Role for manager-scoped service accounts","example":"manager.runtime"},"Workspace":{"type":"object","properties":{"id":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name.","example":"my-workspace"},"logoUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"onboardingDismissedAt":{"type":"string","format":"date-time","nullable":true,"description":"When the Getting Started walkthrough was dismissed or completed for this workspace. Null means it has never been dismissed; the dashboard auto-promotes the walkthrough until this is set."},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","onboardingDismissedAt","createdAt"],"additionalProperties":false},"WorkspaceMember":{"type":"object","properties":{"userId":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"image":{"type":"string","nullable":true},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"joinedAt":{"type":"string","format":"date-time"}},"required":["userId","email","name","image","role","joinedAt"],"additionalProperties":false},"AgentSettings":{"type":"object","properties":{"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"enabled":{"type":"boolean","description":"Workspace on/off switch for the ai-agent. When `false`, incoming triggers (release/deployment monitoring and Slack-invoked sessions) are rejected before any session runs. Defaults to `true`."},"debugPermissionMode":{"type":"string","enum":["auto","ask"],"description":"Workspace-level policy for ai-agent debug commands. `auto` runs `alien_debug` tool calls without asking; `ask` halts each session before every debug command and waits for a human approval from dashboard or Slack."},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["workspaceId","enabled","debugPermissionMode","createdAt","updatedAt"],"additionalProperties":false},"UpdateWorkspaceSettingsRequest":{"type":"object","properties":{"debugPermissionMode":{"type":"string","enum":["auto","ask"],"description":"Workspace-level policy for ai-agent debug commands. `auto` runs `alien_debug` tool calls without asking; `ask` halts each session before every debug command and waits for a human approval from dashboard or Slack."},"enabled":{"type":"boolean","description":"Turn the ai-agent on (`true`) or off (`false`) for this workspace."}}},"WorkspaceInvitation":{"type":"object","properties":{"id":{"type":"string","pattern":"winv_[0-9a-zA-Z]{32}$","description":"Unique identifier for the workspace invitation.","example":"winv_DsgltMIFV0GmqtxV5NYTtrknrna"},"email":{"type":"string","format":"email"},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"status":{"type":"string","enum":["pending","accepted","revoked","expired"]},"deliveryStatus":{"type":"string","enum":["pending","sent","failed"]},"expiresAt":{"type":"string","format":"date-time"},"lastSentAt":{"type":"string","format":"date-time","nullable":true},"createdAt":{"type":"string","format":"date-time"},"inviteUrl":{"type":"string","format":"uri"}},"required":["id","email","role","status","deliveryStatus","expiresAt","lastSentAt","createdAt","inviteUrl"],"additionalProperties":false},"WorkspaceInviteLink":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"wil_[0-9a-zA-Z]{40}$","description":"Unique identifier for the workspace invite link.","example":"wil_RgcthDSZ37rmFLekuItpFS7btjXoYwou1gE4"},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"expiresAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"useCount":{"type":"integer","minimum":0},"lastUsedAt":{"type":"string","format":"date-time","nullable":true},"inviteUrl":{"type":"string","format":"uri"}},"required":["id","role","expiresAt","createdAt","useCount","lastUsedAt","inviteUrl"],"additionalProperties":false},"ProjectListItemResponse":{"allOf":[{"$ref":"#/components/schemas/Project"},{"type":"object","properties":{"deploymentCount":{"type":"number"},"latestRelease":{"$ref":"#/components/schemas/ProjectReleaseInfo"}}}]},"DeploymentPortalAppearancePreset":{"type":"string","enum":["clean","technical","enterprise","playful","minimal"],"default":"clean","description":"Curated visual style for the deployment portal."},"DeploymentPortalAccentColor":{"type":"string","enum":["blue","purple","green","orange","pink","slate"],"default":"blue","description":"Accent color used for highlights and primary actions."},"DeploymentPortalDensity":{"type":"string","enum":["comfortable","compact"],"default":"comfortable","description":"Layout density for portal content."},"ProjectReleaseInfo":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"gitMetadata":{"$ref":"#/components/schemas/GitMetadata"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","gitMetadata","createdAt"]},"GitMetadata":{"type":"object","nullable":true,"properties":{"commitSha":{"type":"string","nullable":true,"maxLength":40,"description":"The hash of the commit","example":"dc36199b2234c6586ebe05ec94078a895c707e29"},"commitMessage":{"type":"string","nullable":true,"maxLength":1024,"description":"The commit message","example":"add method to measure Interaction to Next Paint (INP) (#36490)"},"commitRef":{"type":"string","nullable":true,"maxLength":256,"description":"The branch or tag on which the commit was made","example":"main"},"commitDate":{"type":"string","nullable":true,"format":"date-time","description":"The date and time when the commit was created","example":"2026-03-16T12:00:00Z"},"dirty":{"type":"boolean","nullable":true,"description":"Whether or not there have been modifications to the working tree since the latest commit","example":true},"remoteUrl":{"type":"string","nullable":true,"maxLength":2048,"description":"The git repository's remote origin url","example":"https://github.com/alienplatform/alien"},"commitAuthorName":{"type":"string","nullable":true,"maxLength":256,"description":"The name of the author of the commit (from git config)","example":"John Doe"},"commitAuthorEmail":{"type":"string","nullable":true,"maxLength":256,"format":"email","description":"The email of the author of the commit (from git config)","example":"john@example.com"},"commitAuthorLogin":{"type":"string","nullable":true,"maxLength":256,"description":"The provider username of the commit author (e.g., GitHub login), resolved server-side from the commit email","example":"johndoe"},"commitAuthorAvatarUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"The avatar URL of the commit author, resolved server-side from the provider login","example":"https://github.com/johndoe.png"},"provider":{"$ref":"#/components/schemas/GitProvider"}}},"GitProvider":{"oneOf":[{"$ref":"#/components/schemas/GitHubProvider"},{"$ref":"#/components/schemas/GitLabProvider"},{"nullable":true}],"description":"Provider-specific repository information, resolved server-side from remoteUrl"},"GitHubProvider":{"type":"object","properties":{"type":{"type":"string","enum":["github"]},"org":{"type":"string","maxLength":256,"description":"Repository owner (user or organization)"},"repo":{"type":"string","maxLength":256,"description":"Repository name"}},"required":["type","org","repo"]},"GitLabProvider":{"type":"object","properties":{"type":{"type":"string","enum":["gitlab"]},"namespace":{"type":"string","maxLength":256,"description":"Group/project namespace"},"project":{"type":"string","maxLength":256,"description":"Project name"}},"required":["type","namespace","project"]},"Project":{"type":"object","properties":{"id":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Project name.","example":"my-app"},"gitRepository":{"type":"object","nullable":true,"properties":{"type":{"type":"string","enum":["github"],"description":"The Git Provider of the repository","example":"github"},"repo":{"type":"string","maxLength":128,"description":"The name of the git repository","example":"alien/my-agent"}},"required":["type","repo"],"additionalProperties":false,"description":"Verified source repository connected to the project. Alien uses this for GitHub Actions setup and source-aware features; releases are still created explicitly by CI or `alien release`."},"rootDirectory":{"type":"string","nullable":true,"maxLength":256,"description":"The name of a directory or relative path to the source code of your project. When null is used it will default to the project root"},"deploymentPortalAppearance":{"type":"object","nullable":true,"properties":{"avatarUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional project-specific avatar override for the deployment portal."},"preset":{"$ref":"#/components/schemas/DeploymentPortalAppearancePreset"},"accentColor":{"$ref":"#/components/schemas/DeploymentPortalAccentColor"},"title":{"type":"string","nullable":true,"maxLength":80,"description":"Optional portal title. Defaults to the project name."},"subtitle":{"type":"string","nullable":true,"maxLength":160,"description":"Optional customer-facing subtitle."},"supportUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional support or contact URL."},"docsUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional documentation URL."},"density":{"$ref":"#/components/schemas/DeploymentPortalDensity"}},"description":"Customer-facing deployment portal appearance settings."},"packagesConfig":{"type":"object","nullable":true,"properties":{"cli":{"type":"object","nullable":true,"properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"},"enabled":{"type":"boolean","description":"Whether CLI package generation is enabled"}},"required":["displayName","name","enabled"],"description":"CLI package configuration. If null, CLI packages will not be generated."},"cloudformation":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether CloudFormation package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"CloudFormation package configuration. If null, CloudFormation packages will not be generated."},"operatorImage":{"type":"object","nullable":true,"properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"},"enabled":{"type":"boolean","description":"Whether Operator image package generation is enabled"}},"required":["displayName","name","enabled"],"description":"Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated."},"helm":{"type":"object","nullable":true,"properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"},"enabled":{"type":"boolean","description":"Whether Helm chart package generation is enabled"}},"required":["chartName","description","enabled"],"description":"Helm chart package configuration. If null, Helm packages will not be generated."},"terraform":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether Terraform package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"Terraform package configuration. If null, Terraform packages will not be generated."}},"description":"Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform)"},"domainId":{"type":"string","nullable":true,"pattern":"dom_[0-9a-z]{28}$","description":"Selected domain for this project (null = default system domain)","example":"dom_469m0agk8luj4s16sakmmpdd"},"defaultManagers":{"type":"object","nullable":true,"properties":{"aws":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"gcp":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"azure":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"kubernetes":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"machines":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"local":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"}},"description":"Project default private managers for new push deployments."},"createdAt":{"type":"string","format":"date-time"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"}},"required":["id","name","createdAt","workspaceId"]},"ProjectIDOrNamePathParam":{"type":"string","maxLength":100,"description":"Project ID or name."},"ProjectGcpOAuthProvider":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["alien-managed"]},"redirectUris":{"type":"array","items":{"type":"string","format":"uri"},"description":"Authorized redirect URIs that must be configured on the Google OAuth client."}},"required":["mode","redirectUris"]},{"type":"object","properties":{"mode":{"type":"string","enum":["custom"]},"clientId":{"$ref":"#/components/schemas/GcpOAuthClientId"},"hasClientSecret":{"type":"boolean","enum":[true]},"redirectUris":{"type":"array","items":{"type":"string","format":"uri"},"description":"Authorized redirect URIs that must be configured on the Google OAuth client."}},"required":["mode","clientId","hasClientSecret","redirectUris"]}]},"GcpOAuthClientId":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[a-zA-Z0-9_-]+-[a-zA-Z0-9_-]+\\.apps\\.googleusercontent\\.com$","description":"Google OAuth web client ID.","example":"1234567890-abc123.apps.googleusercontent.com"},"UpdateProjectGcpOAuthProvider":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["alien-managed"]}},"required":["mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["custom"]},"clientId":{"$ref":"#/components/schemas/GcpOAuthClientId"},"clientSecret":{"$ref":"#/components/schemas/GcpOAuthClientSecret"}},"required":["mode","clientId"]}]},"GcpOAuthClientSecret":{"type":"string","minLength":1,"maxLength":512,"description":"Google OAuth web client secret. Write-only; never returned by the API.","example":"GOCSPX-example"},"UpdateProject":{"type":"object","properties":{"gitRepository":{"type":"object","nullable":true,"properties":{"type":{"type":"string","enum":["github"],"description":"The Git Provider of the repository","example":"github"},"repo":{"type":"string","maxLength":128,"description":"The name of the git repository","example":"alien/my-agent"}},"required":["type","repo"],"additionalProperties":false,"description":"Verified source repository connected to the project. Alien uses this for GitHub Actions setup and source-aware features; releases are still created explicitly by CI or `alien release`."},"rootDirectory":{"type":"string","nullable":true,"maxLength":256,"description":"The name of a directory or relative path to the source code of your project. When null is used it will default to the project root"},"deploymentPortalAppearance":{"type":"object","nullable":true,"properties":{"avatarUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional project-specific avatar override for the deployment portal."},"preset":{"$ref":"#/components/schemas/DeploymentPortalAppearancePreset"},"accentColor":{"$ref":"#/components/schemas/DeploymentPortalAccentColor"},"title":{"type":"string","nullable":true,"maxLength":80,"description":"Optional portal title. Defaults to the project name."},"subtitle":{"type":"string","nullable":true,"maxLength":160,"description":"Optional customer-facing subtitle."},"supportUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional support or contact URL."},"docsUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional documentation URL."},"density":{"$ref":"#/components/schemas/DeploymentPortalDensity"}},"description":"Customer-facing deployment portal appearance settings."},"packagesConfig":{"type":"object","nullable":true,"properties":{"cli":{"type":"object","nullable":true,"properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"},"enabled":{"type":"boolean","description":"Whether CLI package generation is enabled"}},"required":["displayName","name","enabled"],"description":"CLI package configuration. If null, CLI packages will not be generated."},"cloudformation":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether CloudFormation package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"CloudFormation package configuration. If null, CloudFormation packages will not be generated."},"operatorImage":{"type":"object","nullable":true,"properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"},"enabled":{"type":"boolean","description":"Whether Operator image package generation is enabled"}},"required":["displayName","name","enabled"],"description":"Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated."},"helm":{"type":"object","nullable":true,"properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"},"enabled":{"type":"boolean","description":"Whether Helm chart package generation is enabled"}},"required":["chartName","description","enabled"],"description":"Helm chart package configuration. If null, Helm packages will not be generated."},"terraform":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether Terraform package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"Terraform package configuration. If null, Terraform packages will not be generated."}},"description":"Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform)"},"domainId":{"type":"string","nullable":true,"pattern":"dom_[0-9a-z]{28}$","description":"Selected domain for this project (null = default system domain)","example":"dom_469m0agk8luj4s16sakmmpdd"},"defaultManagers":{"type":"object","nullable":true,"properties":{"aws":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"gcp":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"azure":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"kubernetes":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"machines":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"local":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"}},"description":"Project default private managers for new push deployments."}}},"DeploymentPortalDomainResponse":{"type":"object","properties":{"deploymentPortalEndpoint":{"$ref":"#/components/schemas/DomainEndpoint"},"packageEndpoint":{"$ref":"#/components/schemas/DomainEndpoint"}},"required":["deploymentPortalEndpoint","packageEndpoint"]},"DomainEndpoint":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"dend_[0-9a-z]{28}$","description":"Unique identifier for the domain endpoint.","example":"dend_1bb6gdvm1bs74acqkjstcgv"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"domainId":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"kind":{"$ref":"#/components/schemas/DomainEndpointKind"},"owner":{"$ref":"#/components/schemas/DomainEndpointOwner"},"hostname":{"type":"string","minLength":1,"maxLength":253},"status":{"$ref":"#/components/schemas/DomainEndpointStatus"},"provider":{"type":"string","nullable":true},"providerState":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"managedDnsRecords":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentPortalManagedDnsRecord"}},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},"lockedAt":{"type":"string","format":"date-time","nullable":true},"lockedBy":{"type":"string","nullable":true},"retryAttempts":{"type":"integer","minimum":0},"nextStepAfter":{"type":"string","format":"date-time","nullable":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","workspaceId","domainId","kind","owner","hostname","status","managedDnsRecords","retryAttempts","createdAt","updatedAt"]},"DomainEndpointKind":{"type":"string","enum":["deployment_portal","workspace_packages","manager_api","deployment_url_base"]},"DomainEndpointOwner":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/DomainEndpointOwnerType"},"id":{"type":"string"}},"required":["type","id"]},"DomainEndpointOwnerType":{"type":"string","enum":["workspace","project","manager"]},"DomainEndpointStatus":{"type":"string","enum":["waiting_for_domain","provisioning","waiting_for_dns","waiting_for_health","active","failed","deleting"]},"DeploymentPortalManagedDnsRecord":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"value":{"type":"string"},"ttl":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true}},"required":["name","type","value"]},"DeploymentLinkSetupResponse":{"type":"object","properties":{"activeRelease":{"type":"object","properties":{"id":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"version":{"type":"string","nullable":true},"stack":{"allOf":[{"$ref":"#/components/schemas/StackByPlatform"}],"nullable":true}},"required":["id","version","stack"]},"visiblePackageTypes":{"type":"array","items":{"type":"string","enum":["cli","cloudformation","helm","operator-image","terraform"],"description":"Types of packages that can be built"}},"visibleSetupMethods":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentSetupMethod"}}},"required":["activeRelease","visiblePackageTypes","visibleSetupMethods"]},"StackByPlatform":{"type":"object","properties":{"aws":{"nullable":true},"gcp":{"nullable":true},"azure":{"nullable":true},"kubernetes":{"nullable":true},"machines":{"nullable":true},"local":{"nullable":true},"test":{"nullable":true}},"additionalProperties":false},"DeploymentSetupMethod":{"type":"string","enum":["cloudformation","google-oauth","terraform","helm","cli","manual"]},"DeploymentGroup":{"type":"object","properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"maxDeployments":{"type":"integer","minimum":1,"default":100,"description":"Maximum number of deployments allowed in this deployment group"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","projectId","workspaceId","createdAt"]},"CreateDeploymentGroupRequest":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"project":{"type":"string","maxLength":100,"description":"Project ID or name this deployment group belongs to"},"maxDeployments":{"type":"integer","minimum":1,"default":100,"description":"Maximum number of deployments in this deployment group"}},"required":["name","project"]},"EnsureDeploymentGroupByNameRequest":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"project":{"type":"string","maxLength":100,"description":"Project ID or name this deployment group belongs to"},"maxDeployments":{"type":"integer","minimum":1,"default":100,"description":"Maximum number of deployments for newly created groups"}},"required":["name","project"]},"ProjectIDOrNameQueryParam":{"type":"string","maxLength":100,"description":"Filter by project ID or name."},"UpdateDeploymentGroupRequest":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"maxDeployments":{"type":"integer","minimum":1,"description":"Maximum number of deployments in this deployment group"}}},"CreateDeploymentGroupTokenResponse":{"type":"object","properties":{"token":{"type":"string","description":"The API key token"},"deploymentLink":{"type":"string","description":"Formatted deployment link"}},"required":["token","deploymentLink"]},"CreateDeploymentGroupTokenRequest":{"type":"object","properties":{"description":{"type":"string","description":"Description for the API key"},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"Optional expiration date for the API key"},"deploymentSetupConfig":{"$ref":"#/components/schemas/DeploymentSetupConfig"},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"}},"required":["deploymentSetupConfig"]},"DeploymentSetupConfig":{"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"environmentVariables":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"}},"inputValues":{"$ref":"#/components/schemas/EncryptedStackInputValues"},"publicSubdomain":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","description":"Operator-pinned deployment subdomain for this setup token."}},"required":["metadata","policy","environmentVariables"]},"DeploymentSetupMetadata":{"type":"object","additionalProperties":{"nullable":true}},"DeploymentSetupPolicy":{"type":"object","properties":{"allowedPlatforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."}},"allowedKubernetesBasePlatforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","on-prem"]},"minItems":1,"description":"Kubernetes base environments the recipient may target."},"allowedKubernetesClusterSources":{"type":"array","items":{"$ref":"#/components/schemas/KubernetesClusterSource"},"minItems":1,"description":"Whether recipients may create a cluster, use an existing cluster, or both."},"allowedSetupMethods":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentSetupMethod"}},"allowReleasePinning":{"type":"boolean"},"stackSettings":{"$ref":"#/components/schemas/DeploymentSetupStackSettingsPolicy"}},"required":["allowedPlatforms","allowedSetupMethods"]},"KubernetesClusterSource":{"type":"string","enum":["create","existing"]},"DeploymentSetupStackSettingsPolicy":{"type":"object","properties":{"defaults":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."},"allowedDeploymentModels":{"type":"array","items":{"type":"string","enum":["push","pull","airgapped"]}},"allowedNetworkModes":{"type":"array","items":{"type":"string","enum":["none","create","default","byo"]}},"allowedUpdatesModes":{"type":"array","items":{"type":"string","enum":["auto","approval-required"]}},"allowedTelemetryModes":{"type":"array","items":{"type":"string","enum":["auto","approval-required","off"]}},"allowedHeartbeatsModes":{"type":"array","items":{"type":"string","enum":["on","off"]}},"allowExternalBindings":{"type":"boolean"},"allowCustomRegistry":{"type":"boolean"}}},"EnvironmentVariableConfig":{"type":"object","properties":{"name":{"type":"string","pattern":"^[A-Z_][A-Z0-9_]*$","description":"Variable name"},"value":{"type":"string","maxLength":10000,"description":"Variable value (encrypted in database)"},"type":{"$ref":"#/components/schemas/EnvironmentVariableType"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string","pattern":"^[a-zA-Z0-9_-]+(\\*)?$"},"description":"Target resource patterns (null = all resources, array = wildcard patterns)"}},"required":["name","value","type","targetResources"]},"EnvironmentVariableType":{"type":"string","enum":["plain","secret"],"description":"Variable type (plain or secret)"},"EncryptedStackInputValues":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/EncryptedStackInputValue"},"default":{}},"EncryptedStackInputValue":{"type":"object","properties":{"value":{"type":"string","description":"Encrypted JSON-encoded input value."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"]},"secret":{"type":"boolean","description":"Whether the original input is secret."}},"required":["value","kind","secret"]},"StackInputValuesRequest":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/StackInputValueRequest"},"default":{}},"StackInputValueRequest":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"CreateFirstPartyDeploymentSessionResponse":{"type":"object","properties":{"token":{"type":"string","description":"The deployment-group session token"}},"required":["token"]},"Package":{"type":"object","properties":{"id":{"type":"string","pattern":"pkg_[0-9a-z]{28}$","description":"Unique identifier for the package.","example":"pkg_jebo2o5jmm7raefl2m1pe3cz"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"type":{"type":"string","enum":["cli","cloudformation","helm","operator-image","terraform"],"description":"Types of packages that can be built"},"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"version":{"type":"string","description":"Package version (e.g., '1.0.0', 'rel_abc123')"},"sourceReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Release used as package build input. Null for release-less packages such as Operate Operator images.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"setupFingerprints":{"$ref":"#/components/schemas/SetupFingerprintMap"},"packageBuildInputHash":{"type":"string","description":"Hash of Platform-known package build request inputs: package type, source release, setup fingerprints, package config, and setup contract version"},"config":{"oneOf":[{"allOf":[{"type":"object","properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"}},"required":["displayName","name"],"description":"Branding configuration for the deploy CLI binary."},{"type":"object","properties":{"type":{"type":"string","enum":["cli"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts."},"supportedAwsRegions":{"type":"array","items":{"type":"string"},"description":"AWS regions supported by the environment that built this package."}},"description":"Configuration for CloudFormation packages"},{"type":"object","properties":{"type":{"type":"string","enum":["cloudformation"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"}},"required":["chartName","description"],"description":"Configuration for the Helm chart package"},{"type":"object","properties":{"type":{"type":"string","enum":["helm"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"}},"required":["displayName","name"],"description":"Branding configuration for the Operator image."},{"type":"object","properties":{"type":{"type":"string","enum":["operator-image"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts."},"supportedAwsRegions":{"type":"array","items":{"type":"string"},"description":"AWS regions supported by the environment that built this package."}},"description":"Configuration for Terraform package generation."},{"type":"object","properties":{"type":{"type":"string","enum":["terraform"]}},"required":["type"]}]}],"description":"Type-specific configuration"},"outputs":{"oneOf":[{"allOf":[{"type":"object","properties":{"binaries":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sha256":{"type":"string","description":"SHA256 checksum"},"size":{"type":"integer","minimum":0,"description":"File size in bytes"},"url":{"type":"string","description":"Download URL for the binary"}},"required":["sha256","size","url"],"description":"Information about a single binary artifact"},"description":"Binary information for each target platform"},"buildInfo":{"type":"object","properties":{"alienSha":{"type":"string","description":"Alien source commit used to build the source CLI and agent binaries."},"horizonSha":{"type":"string","description":"Compute backend source revision used by optional package extensions, if applicable."},"machineBundleManifestUrl":{"type":"string","nullable":true,"description":"Machine runtime release manifest embedded into the generated CLI."},"platformSha":{"type":"string","description":"Source revision used to build the package service and optional extensions."},"sourceAgentBinarySha256":{"type":"string","nullable":true,"description":"SHA256 checksum of the source runtime helper binary shipped with the CLI package, when present."},"sourceCliBinarySha256":{"type":"string","description":"SHA256 checksum of the source deploy CLI binary before white-label config is appended."}},"required":["alienSha","horizonSha","platformSha","sourceCliBinarySha256"],"description":"Source provenance for a generated CLI package."}},"required":["binaries","buildInfo"],"description":"Outputs from a CLI package build"},{"type":"object","properties":{"type":{"type":"string","enum":["cli"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"digest":{"type":"string","description":"Image digest (e.g., \"sha256:abc123...\")"},"image":{"type":"string","description":"Full image reference (e.g., \"public.ecr.aws/acme/operators/project-id:1.2.3\")"},"labelDomain":{"type":"string","nullable":true,"description":"DNS-style label domain embedded into the Operator binary, if whitelabeled."}},"required":["digest","image"],"description":"Outputs from an Operator image package build"},{"type":"object","properties":{"type":{"type":"string","enum":["operator-image"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"chart":{"type":"string","description":"OCI chart reference (e.g., \"oci://public.ecr.aws/acme/charts/project-id\")"},"version":{"type":"string","description":"Chart version (e.g., \"1.2.3\")"}},"required":["chart","version"],"description":"Outputs from a Helm chart package build"},{"type":"object","properties":{"type":{"type":"string","enum":["helm"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"targets":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"launchStackUrl":{"type":"string","description":"AWS Console quick-launch URL"},"sha256":{"type":"string","description":"SHA256 checksum of the template"},"size":{"type":"integer","minimum":0,"description":"Template size in bytes"},"stackPolicyUrl":{"type":"string","description":"S3 URL to the CloudFormation stack policy"},"target":{"type":"string","description":"CloudFormation target (aws, eks)"},"templateUrl":{"type":"string","description":"S3 URL to the CloudFormation template"}},"required":["launchStackUrl","sha256","size","stackPolicyUrl","target","templateUrl"],"description":"Information about a single CloudFormation template package for one target."},"description":"Template artifacts by CloudFormation target."}},"required":["targets"],"description":"Outputs from a CloudFormation package build."},{"type":"object","properties":{"type":{"type":"string","enum":["cloudformation"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"modules":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL for the module archive"},"filename":{"type":"string","description":"Filename of the module archive"},"shasum":{"type":"string","description":"SHA256 checksum of the archive"},"size":{"type":"integer","minimum":0,"description":"Size of the archive in bytes"},"source":{"type":"string","description":"Terraform module source (hostname/namespace/name/provider, without scheme)"},"target":{"type":"string","description":"Terraform module target (aws, gcp, azure, eks, gke, aks)"},"variables":{"type":"array","items":{"type":"string"},"description":"Terraform input variables exposed by this module."}},"required":["downloadUrl","filename","shasum","size","source","target"],"description":"Information about a single Terraform module package for one target."},"description":"Module registry artifacts by Terraform target."},"provider":{"type":"object","properties":{"gpgPublicKey":{"type":"object","properties":{"asciiArmor":{"type":"string","description":"ASCII-armored public key"},"keyId":{"type":"string","description":"GPG key ID"}},"required":["asciiArmor","keyId"],"description":"GPG public key for Terraform provider signature verification"},"platforms":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL for the provider zip"},"filename":{"type":"string","description":"Filename of the provider zip"},"shasum":{"type":"string","description":"SHA256 checksum of the zip file"},"shasumsSignatureUrl":{"type":"string","description":"URL to the shasums signature file"},"shasumsUrl":{"type":"string","description":"URL to the shasums file"},"size":{"type":"integer","minimum":0,"description":"Size of the zip file in bytes"}},"required":["downloadUrl","filename","shasum","shasumsSignatureUrl","shasumsUrl","size"],"description":"Information about a single Terraform provider package for a specific platform"},"description":"Provider packages for each target platform"},"source":{"type":"string","description":"Terraform provider source (hostname/namespace/type, without scheme)"}},"required":["gpgPublicKey","platforms","source"],"description":"Terraform provider registry outputs."}},"required":["modules","provider"],"description":"Outputs from a Terraform package build."},{"type":"object","properties":{"type":{"type":"string","enum":["terraform"]}},"required":["type"]}]},{"nullable":true}],"description":"Package outputs (only when status is 'ready')"},"error":{"nullable":true,"description":"Error information if status is 'failed'"},"sourceBinarySha256":{"type":"string","nullable":true,"description":"Builder-recorded source binary SHA256 (for cli/terraform packages)"},"retries":{"type":"integer","minimum":0,"description":"Number of build retries"},"lockedAt":{"type":"string","format":"date-time","nullable":true},"lockedBy":{"type":"string","nullable":true},"leaseExpiresAt":{"type":"string","format":"date-time","nullable":true,"description":"Expiration of the current builder lease"},"buildPhase":{"type":"string","nullable":true,"enum":["building","publishing",null],"description":"Coarse package build phase"},"lastProgressAt":{"type":"string","format":"date-time","nullable":true,"description":"Last successful builder lease renewal or phase change"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"completedAt":{"type":"string","format":"date-time","nullable":true}},"required":["id","projectId","workspaceId","type","status","version","setupFingerprints","packageBuildInputHash","config","retries","createdAt","updatedAt"]},"SetupFingerprintMap":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/SetupFingerprintInfo"},"description":"Per-target setup compatibility fingerprints copied from the source release"},"SetupFingerprintInfo":{"type":"object","properties":{"target":{"$ref":"#/components/schemas/SetupTarget"},"fingerprint":{"$ref":"#/components/schemas/SetupFingerprint"},"version":{"$ref":"#/components/schemas/SetupFingerprintVersion"}},"required":["target","fingerprint","version"]},"SetupTarget":{"type":"string","minLength":1,"description":"Stable target key for the setup contract, e.g. aws/us-east-1"},"SetupFingerprint":{"type":"string","minLength":1,"description":"Deterministic setup contract fingerprint for one setup target"},"SetupFingerprintVersion":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Setup fingerprint algorithm version"},"ReleaseListItemResponse":{"allOf":[{"$ref":"#/components/schemas/Release"},{"type":"object","properties":{"currentChannels":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseChannelName"},"description":"Channels for which this release is currently selected"},"commitUrl":{"type":"string","nullable":true,"format":"uri","description":"Validated canonical provider URL for the exact commit"},"project":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"Project ID"},"name":{"type":"string","description":"Project name"}},"required":["id","name"],"description":"Project info, included when ?include=project is used"},"rollout":{"type":"object","nullable":true,"properties":{"updatedCount":{"type":"integer","description":"Deployments that finished updating to this release (excludes initial provisions)"},"pendingCount":{"type":"integer","description":"Deployments currently targeting this release but not yet running it"},"avgDurationMs":{"type":"number","nullable":true,"description":"Average time from release creation until a deployment finished updating, in milliseconds"}},"required":["updatedCount","pendingCount","avgDurationMs"],"description":"Rollout stats, included when ?include=rollout is used"},"createdBy":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"User ID"},"name":{"type":"string","description":"User's display name"},"email":{"type":"string","description":"User's email address"},"image":{"type":"string","nullable":true,"description":"User's avatar image URL"}},"required":["id","name","email","image"],"description":"Platform user who created the release, included when ?include=createdBy is used"}},"required":["currentChannels","commitUrl"]}]},"ReleaseChannelName":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z][a-z0-9-]*$"},"Release":{"type":"object","properties":{"id":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"projectId":{"type":"string","maxLength":128},"version":{"type":"string","minLength":1,"maxLength":256},"gitMetadata":{"$ref":"#/components/schemas/GitMetadata"},"createdAt":{"type":"string","format":"date-time"},"stack":{"allOf":[{"$ref":"#/components/schemas/StackByPlatform"}],"nullable":true},"setupFingerprints":{"allOf":[{"$ref":"#/components/schemas/SetupFingerprintMap"},{"description":"Per-target setup compatibility fingerprints for this release"}]},"rootDirectory":{"type":"string","nullable":true,"maxLength":256},"createdByUserId":{"type":"string","nullable":true,"maxLength":128,"description":"ID of the platform user who created the release, if known"},"workspaceId":{"type":"string","maxLength":128}},"required":["id","projectId","version","createdAt","setupFingerprints","workspaceId"]},"CreateReleaseRequest":{"type":"object","properties":{"project":{"type":"string","maxLength":100,"description":"Project ID or name"},"version":{"type":"string","minLength":1,"maxLength":256},"gitMetadata":{"$ref":"#/components/schemas/GitMetadata"},"stack":{"$ref":"#/components/schemas/StackByPlatform"},"rootDirectory":{"type":"string","nullable":true,"maxLength":256},"channel":{"allOf":[{"$ref":"#/components/schemas/ReleaseChannelName"},{"description":"Release channel to advance. Defaults to production."}]}},"required":["project"]},"ReleaseAuthorFilterItem":{"type":"object","properties":{"login":{"type":"string","nullable":true,"description":"Provider username (e.g., GitHub login)"},"name":{"type":"string","nullable":true,"description":"Git commit author name"},"avatarUrl":{"type":"string","nullable":true,"format":"uri","description":"Author avatar URL"}},"required":["login","name","avatarUrl"]},"ReleaseDeploymentsResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseDeploymentItem"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"},"stateCounts":{"$ref":"#/components/schemas/ReleaseRolloutStateCounts"}},"required":["items","nextCursor","stateCounts"]},"ReleaseDeploymentItem":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"deploymentGroup":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"}},"required":["id","name"],"description":"Deployment group this deployment belongs to"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the currently deployed release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the desired release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat"},"rolloutState":{"$ref":"#/components/schemas/ReleaseRolloutState"},"releasedAt":{"type":"string","format":"date-time","nullable":true,"description":"When this release went live on the deployment, null if it never did"},"durationMs":{"type":"integer","nullable":true,"description":"Time from release creation until the deployment finished updating, in milliseconds. Null for initial provisions and deployments that never ran this release."},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Latest error information if the deployment is in a failed state"}},"required":["id","name","status","platform","rolloutState","releasedAt","durationMs"]},"ReleaseRolloutState":{"type":"string","enum":["updated","updating","failed","pending","pinned-other","superseded","on-other"]},"ReleaseRolloutStateCounts":{"type":"object","properties":{"updated":{"type":"integer"},"updating":{"type":"integer"},"failed":{"type":"integer"},"pending":{"type":"integer"},"pinned-other":{"type":"integer"},"superseded":{"type":"integer"},"on-other":{"type":"integer"}},"required":["updated","updating","failed","pending","pinned-other","superseded","on-other"],"description":"Deployment counts per rollout state across all deployments the filters allow (ignores the state filter)"},"ReleaseChannel":{"type":"object","properties":{"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"name":{"$ref":"#/components/schemas/ReleaseChannelName"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"deploymentCount":{"type":"integer","minimum":0},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["workspaceId","projectId","name","currentReleaseId","createdAt","updatedAt"]},"DeploymentListItemResponse":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"deploymentProtocolVersion":{"$ref":"#/components/schemas/DeploymentProtocolVersion"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"ID of deployment group this deployment belongs to","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the currently deployed release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the desired release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"releaseChannel":{"allOf":[{"$ref":"#/components/schemas/ReleaseChannelName"},{"description":"Named release stream followed when the deployment is not pinned"}]},"importSource":{"type":"string","nullable":true,"enum":["cloudformation","terraform","helm",null],"description":"Setup source that imported this deployment"},"setupMethod":{"type":"string","nullable":true,"enum":["cloudformation","google-oauth","terraform","helm","cli","manual",null],"description":"Setup method that created the deployment record."},"setupMetadata":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Setup method metadata needed to guide privileged teardown."},"setupTarget":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup target for compatibility checks"},"setupFingerprint":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup compatibility fingerprint"},"setupFingerprintVersion":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Imported setup fingerprint version"},"operatorScope":{"type":"string","nullable":true,"description":"Display-only scope reported by the Operator manifest"},"operatorPermission":{"type":"string","nullable":true,"description":"Display-only permission tier reported by the Operator manifest"},"operatorVersion":{"type":"string","nullable":true,"description":"Version reported by the Operator"},"capabilities":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OperatorCapabilityReport"},"description":"Capability state reported by the Operator"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat"},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Latest error information if in a failed state"},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"managerId":{"$ref":"#/components/schemas/ManagerID"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"release":{"$ref":"#/components/schemas/DeploymentReleaseInfo"},"deploymentGroup":{"$ref":"#/components/schemas/DeploymentGroupInfo"},"project":{"$ref":"#/components/schemas/DeploymentProjectInfo"}},"required":["id","name","status","projectId","platform","deploymentProtocolVersion","deploymentGroupId","releaseChannel","retryRequested","createdAt","updatedAt","managerId","workspaceId"]},"DeploymentProtocolVersion":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"DeploymentState protocol version owned by the runtime/manager"},"OperatorCapabilityReport":{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":128},"state":{"$ref":"#/components/schemas/OperatorCapabilityState"},"detail":{"type":"string","nullable":true,"maxLength":512}},"required":["key","state"]},"OperatorCapabilityState":{"type":"string","enum":["granted","denied","unavailable"]},"ManagerID":{"type":"string","pattern":"mgr_[0-9a-z]{28}$","description":"ID of the manager","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"DeploymentReleaseInfo":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"version":{"type":"string","minLength":1,"maxLength":256},"gitMetadata":{"$ref":"#/components/schemas/GitMetadata"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","version","createdAt"]},"DeploymentGroupInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"}},"required":["id","name"]},"DeploymentProjectInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Project name.","example":"my-app"}},"required":["id","name"]},"DeploymentStats":{"type":"object","properties":{"total":{"type":"number","description":"Total number of deployments matching filters"},"byStatus":{"type":"object","additionalProperties":{"type":"number"},"description":"Count of deployments by status (only includes statuses with non-zero counts)"},"byPlatform":{"type":"object","additionalProperties":{"type":"number"},"description":"Count of deployments by platform (only includes platforms with non-zero counts)"},"byCurrentRelease":{"type":"object","additionalProperties":{"type":"number"},"description":"Count of deployments by currentReleaseId. The empty string key represents deployments with no current release (initial provisioning)."},"byPinnedRelease":{"type":"object","additionalProperties":{"type":"number"},"description":"Count of deployments by pinnedReleaseId among deployments that are pinned. Excludes unpinned deployments."}},"required":["total","byStatus","byPlatform","byCurrentRelease","byPinnedRelease"]},"DeploymentDetailResponse":{"allOf":[{"$ref":"#/components/schemas/Deployment"},{"type":"object","properties":{"release":{"$ref":"#/components/schemas/DeploymentReleaseInfo"},"deploymentGroup":{"$ref":"#/components/schemas/DeploymentGroupInfo"},"project":{"$ref":"#/components/schemas/DeploymentProjectInfo"}}}]},"Deployment":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!ag[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment name.","example":"acme-prod"},"publicSubdomain":{"type":"string","nullable":true,"minLength":1,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","description":"Public subdomain for auto-generated domains"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"basePlatform":{"type":"string","nullable":true,"enum":["aws","gcp","azure",null],"description":"Underlying cloud platform for Kubernetes deployments."},"region":{"type":"string","nullable":true,"description":"Cloud region or location for the deployment."},"deploymentProtocolVersion":{"$ref":"#/components/schemas/DeploymentProtocolVersion"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"ID of deployment group this deployment belongs to","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-provided configuration (network, deployment model, approvals)"},"stackState":{"type":"object","nullable":true,"properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"State of infrastructure components managed by this deployment"},"runtimeMetadata":{"type":"object","nullable":true,"properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment state persistence"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the currently deployed release (actual state)","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the desired release for deployment/update (desired state)","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"releaseChannel":{"allOf":[{"$ref":"#/components/schemas/ReleaseChannelName"},{"description":"Named release stream followed when the deployment is not pinned"}]},"importSource":{"type":"string","nullable":true,"enum":["cloudformation","terraform","helm",null],"description":"Setup source that imported this deployment"},"setupMethod":{"type":"string","nullable":true,"enum":["cloudformation","google-oauth","terraform","helm","cli","manual",null],"description":"Setup method that created the deployment record and owns setup-time resources."},"setupMetadata":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Setup method metadata needed to guide privileged teardown."},"setupTarget":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup target for compatibility checks"},"setupFingerprint":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup compatibility fingerprint"},"setupFingerprintVersion":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Imported setup fingerprint algorithm version"},"operatorScope":{"type":"string","nullable":true,"description":"Display-only scope reported by the Operator manifest"},"operatorPermission":{"type":"string","nullable":true,"description":"Display-only permission tier reported by the Operator manifest"},"operatorVersion":{"type":"string","nullable":true,"description":"Version reported by the Operator"},"capabilities":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OperatorCapabilityReport"},"description":"Capability state reported by the Operator"},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat from the deployment"},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Latest error information if the deployment is in a failed state"},"environmentVariables":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"},"description":"Configuration of environment variables for the deployment"},"targetEnvironmentVariables":{"type":"object","nullable":true,"properties":{"variables":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"},"description":"Environment variables in the snapshot"},"hash":{"type":"string","description":"Deterministic hash of all variables for change detection"},"createdAt":{"type":"string","format":"date-time","description":"ISO 8601 timestamp when snapshot was created"}},"required":["variables","hash","createdAt"],"description":"Snapshot of target environment variables for the deployment"},"currentEnvironmentVariables":{"type":"object","nullable":true,"properties":{"variables":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"},"description":"Environment variables in the snapshot"},"hash":{"type":"string","description":"Deterministic hash of all variables for change detection"},"createdAt":{"type":"string","format":"date-time","description":"ISO 8601 timestamp when snapshot was created"}},"required":["variables","hash","createdAt"],"description":"Snapshot of current environment variables for the deployment"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"ID of the manager responsible for this deployment"}]},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"}},"required":["id","name","status","projectId","platform","deploymentProtocolVersion","deploymentGroupId","stackSettings","releaseChannel","retryRequested","createdAt","updatedAt","managerId","workspaceId"]},"DeploymentConnectionInfo":{"type":"object","properties":{"arc":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Manager URL for commands"},"deploymentId":{"type":"string","description":"Deployment ID to use in command requests"}},"required":["url","deploymentId"]},"resources":{"type":"object","additionalProperties":{"type":"object","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."},"publicEndpoints":{"type":"object","additionalProperties":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"protocol":{"type":"string","enum":["http","tcp"]},"host":{"type":"string","minLength":1},"port":{"type":"integer","minimum":1,"maximum":65535},"wildcardHost":{"type":"string"}},"required":["url","protocol","host","port"]},"description":"Public endpoints keyed by endpoint name."}},"required":["type"]},"description":"Deployed resources and their public endpoints"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"platform":{"type":"string"}},"required":["arc","resources","status","platform"]},"CreateDeploymentResponse":{"type":"object","properties":{"deployment":{"$ref":"#/components/schemas/Deployment"},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Effective deployment model persisted for the deployment."},"token":{"type":"string","description":"Deployment token (only returned when using deployment group token)"}},"required":["deployment","deploymentModel"]},"NewDeploymentRequest":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!ag[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment name.","example":"acme-prod"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"deploymentGroupId":{"type":"string","description":"Required for workspace/project tokens. Deployment group tokens use their own group automatically."},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Optional manager to assign. If omitted, the project default or system manager is selected."}]},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"environmentVariables":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"},"description":"Configuration of environment variables for the deployment"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"project":{"type":"string","maxLength":100,"description":"Project ID or name"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"Stack settings for deployment customization"},"resourcePrefix":{"$ref":"#/components/schemas/ResourcePrefix"},"publicSubdomain":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","description":"Optional deployment subdomain under the project's generated-domain parent. Operator-only and requires a custom project domain; customer deploy-link tokens and the shared system domain are rejected. Omit to generate a random subdomain."},"setupMethod":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMethod"},{"description":"Setup method that created the deployment. Defaults to cli."}]},"setupMetadata":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMetadata"},{"description":"Setup method metadata used to guide privileged teardown."}]},"inputValues":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/StackInputValueRequest"},"default":{},"description":"Stack input values provided by the deployment creator."},"operatorScope":{"type":"string","minLength":1,"maxLength":512,"description":"Display-only scope reported by the Operator manifest."},"operatorPermission":{"type":"string","minLength":1,"maxLength":64,"description":"Display-only permission tier reported by the Operator manifest."},"initialDesiredRelease":{"type":"string","enum":["active","none"],"default":"active","description":"Desired-release selection for a new deployment. Use none to register an environment without initially requesting a release; later updates can assign one."},"releaseChannel":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z][a-z0-9-]*$","default":"production","description":"Release channel followed while this deployment is not pinned."}},"required":["name","platform","project"],"additionalProperties":false,"description":"Request schema for creating a new deployment"},"ResourcePrefix":{"type":"string","pattern":"^[a-z](?:[a-z0-9]|-(?=[a-z0-9])){1,38}[a-z0-9]$","description":"Optional physical-name prefix for generated cloud resources. Omit to let the manager generate one."},"ImportDeploymentRequest":{"oneOf":[{"$ref":"#/components/schemas/ForwardImportRequest"},{"$ref":"#/components/schemas/PersistImportedDeploymentRequest"}],"description":"Request schema for importing a deployment from resolved setup infrastructure"},"ForwardImportRequest":{"type":"object","properties":{"mode":{"type":"string","enum":["forward"],"default":"forward"},"project":{"type":"string","maxLength":100,"description":"Project ID or name. Required for user-session callers."},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Required for user-session callers. Deployment-group tokens use their own group automatically.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Manager ID. If omitted, the first suitable manager for the source platform is used."}]},"source":{"$ref":"#/components/schemas/ImportSource"},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"}},"required":["source"]},"ImportSource":{"type":"object","properties":{"deploymentName":{"type":"string","minLength":1,"description":"User-chosen deployment name. Must be unique within the deployment group; the manager returns 409 on collision."},"resourcePrefix":{"allOf":[{"$ref":"#/components/schemas/ResourcePrefix"},{"description":"Stable physical-name prefix used by the setup artifact."}]},"sourceKind":{"$ref":"#/components/schemas/ImportSourceKind"},"setupMetadata":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMetadata"},{"description":"Setup source metadata needed to guide privileged teardown."}]},"releaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Release that produced the setup artifact. Defaults to latest.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Cloud platform of the imported stack"},"basePlatform":{"$ref":"#/components/schemas/KubernetesBasePlatform"},"region":{"type":"string","description":"Region or location reported by the setup artifact"},"setupTarget":{"allOf":[{"$ref":"#/components/schemas/SetupTarget"},{"description":"Setup target this package was generated for"}]},"setupImportFormatVersion":{"$ref":"#/components/schemas/SetupImportFormatVersion"},"setupFingerprint":{"allOf":[{"$ref":"#/components/schemas/SetupFingerprint"},{"description":"Setup compatibility fingerprint embedded in the package"}]},"setupFingerprintVersion":{"allOf":[{"$ref":"#/components/schemas/SetupFingerprintVersion"},{"description":"Setup fingerprint algorithm version embedded in the package"}]},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}],"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."},"resources":{"type":"array","items":{"$ref":"#/components/schemas/ImportedResource"},"minItems":1}},"required":["deploymentName","resourcePrefix","platform","region","setupTarget","setupImportFormatVersion","setupFingerprint","setupFingerprintVersion","stackSettings","resources"],"description":"Resolved setup import payload"},"ImportSourceKind":{"type":"string","enum":["cloudformation","terraform","helm"],"description":"Source label for observability only — does not affect import behavior."},"KubernetesBasePlatform":{"type":"string","enum":["aws","gcp","azure"],"description":"Base cloud platform for cloud-backed Kubernetes imports."},"SetupImportFormatVersion":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Setup import payload format version embedded in the package"},"ImportedResource":{"type":"object","properties":{"id":{"type":"string","description":"Resource id from the active stack"},"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."},"importData":{"type":"object","additionalProperties":{"nullable":true},"description":"Resolved typed import payload"}},"required":["id","type","importData"]},"PersistImportedDeploymentRequest":{"type":"object","properties":{"mode":{"type":"string","enum":["persist"]},"name":{"type":"string","minLength":1,"description":"Deployment name. Must be unique within the deployment group."},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"publicSubdomain":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","description":"Optional deployment subdomain under the project's generated-domain parent. Operator-only and requires a custom project domain; customer deploy-link tokens and the shared system domain are rejected. Omit to generate a random subdomain."},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"basePlatform":{"$ref":"#/components/schemas/KubernetesBasePlatform"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."},"stackState":{"nullable":true},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Platform-specific environment information"},"runtimeMetadata":{"type":"object","properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment\n\nStores deployment state that needs to persist across step calls."},"scheduleReconciliation":{"type":"boolean","default":false},"deploymentProtocolVersion":{"$ref":"#/components/schemas/DeploymentProtocolVersion"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"default":"provisioning","description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"currentReleaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"importSource":{"allOf":[{"$ref":"#/components/schemas/ImportSourceKind"},{"description":"Package source that produced the import payload"}]},"setupMetadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"setupTarget":{"$ref":"#/components/schemas/SetupTarget"},"setupFingerprint":{"$ref":"#/components/schemas/SetupFingerprint"},"setupFingerprintVersion":{"$ref":"#/components/schemas/SetupFingerprintVersion"},"deploymentToken":{"type":"string"},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]}],"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."},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"}},"required":["mode","name","deploymentGroupId","managerId","platform","stackSettings","runtimeMetadata","deploymentProtocolVersion","setupTarget","setupFingerprint","setupFingerprintVersion"]},"SetFirstPartyDeploymentInputsResponse":{"type":"object","properties":{"ok":{"type":"boolean"}},"required":["ok"]},"SetFirstPartyDeploymentInputsRequest":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"}},"required":["platform"]},"SetupRegistrationOperationResponse":{"type":"object","properties":{"id":{"type":"string","pattern":"setupop_[0-9a-z]{28}$","description":"Unique identifier for the setup registration operation.","example":"setupop_y41lqnfosxuwqkzmiax7"},"action":{"$ref":"#/components/schemas/SetupRegistrationAction"},"sourceKind":{"allOf":[{"$ref":"#/components/schemas/ImportSourceKind"},{"description":"Package source that produced the import payload"}]},"status":{"$ref":"#/components/schemas/SetupRegistrationOperationStatus"},"deploymentId":{"type":"string","nullable":true,"pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"physicalResourceId":{"type":"string","nullable":true},"result":{"$ref":"#/components/schemas/SetupRegistrationOperationResult"},"error":{"type":"object","nullable":true,"properties":{"message":{"type":"string"},"retryable":{"type":"boolean"}},"required":["message","retryable"]}},"required":["id","action","sourceKind","status","deploymentId","physicalResourceId","result","error"]},"SetupRegistrationAction":{"type":"string","enum":["create","update","delete"]},"SetupRegistrationOperationStatus":{"type":"string","enum":["pending","processing","waiting-for-handoff","succeeded","failed","responding","responded"]},"SetupRegistrationOperationResult":{"type":"object","nullable":true,"properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"deploymentToken":{"type":"string","nullable":true},"helmValues":{"type":"string","nullable":true}},"required":["deploymentId","deploymentToken","helmValues"]},"CreateSetupRegistrationOperationRequest":{"type":"object","properties":{"action":{"$ref":"#/components/schemas/SetupRegistrationAction"},"sourceKind":{"allOf":[{"$ref":"#/components/schemas/ImportSourceKind"},{"description":"Package source that produced the import payload"}]},"source":{"allOf":[{"$ref":"#/components/schemas/ImportSource"}],"nullable":true},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"},"deploymentId":{"type":"string","nullable":true,"pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":512},"cloudFormation":{"$ref":"#/components/schemas/SetupRegistrationCloudFormationTarget"}},"required":["action","sourceKind"],"additionalProperties":false},"SetupRegistrationCloudFormationTarget":{"type":"object","nullable":true,"properties":{"stackId":{"type":"string","minLength":1},"requestId":{"type":"string","minLength":1},"logicalResourceId":{"type":"string","minLength":1},"responseUrl":{"type":"string","format":"uri"},"physicalResourceId":{"type":"string","nullable":true,"minLength":1},"serviceTimeoutSeconds":{"type":"integer","minimum":60,"maximum":7200,"default":3300}},"required":["stackId","requestId","logicalResourceId","responseUrl"],"additionalProperties":false},"DeleteDeploymentResponse":{"type":"object","properties":{"action":{"type":"string","enum":["cleanup","detach","forget"]},"message":{"type":"string"}},"required":["action","message"]},"DeleteDeploymentRequest":{"type":"object","properties":{"action":{"type":"string","enum":["cleanup","detach","forget"]}},"required":["action"]},"PinReleaseRequest":{"type":"object","properties":{"releaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Release ID to pin the deployment to. Set to null to resume its followed channel.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"}},"additionalProperties":false,"description":"Request schema for pinning/unpinning deployment release"},"DeploymentInputsResponse":{"type":"object","properties":{"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."}},"values":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/StackInputValueRequest"},"description":"Current non-secret input values. Secret values are never returned."},"providedInputIds":{"type":"array","items":{"type":"string"},"description":"Input IDs that currently have a value, including redacted secrets."}},"required":["inputs","values","providedInputIds"]},"UpdateDeploymentInputsResponse":{"allOf":[{"$ref":"#/components/schemas/DeploymentInputsResponse"},{"type":"object","properties":{"runtimeUpdateRequested":{"type":"boolean"}},"required":["runtimeUpdateRequested"]}]},"UpdateDeploymentInputsRequest":{"type":"object","properties":{"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"},"clearInputIds":{"type":"array","items":{"type":"string"},"default":[]}},"additionalProperties":false},"UpdateDeploymentEnvironmentVariablesRequest":{"type":"object","properties":{"variables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Variable name"},"value":{"type":"string","description":"Variable value"},"type":{"type":"string","enum":["plain","secret"],"description":"Variable type"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource patterns (null = all resources)"}},"required":["name","value","type"]},"description":"Environment variables for the deployment"}},"required":["variables"],"additionalProperties":false,"description":"Request schema for updating deployment environment variables"},"CreateDeploymentTokenResponse":{"type":"object","properties":{"token":{"type":"string","description":"The generated deployment token (only shown once)"},"deploymentId":{"type":"string","description":"The deployment ID that this token is scoped to"}},"required":["token","deploymentId"]},"CreateDeploymentTokenRequest":{"type":"object","properties":{"description":{"type":"string","nullable":true,"minLength":3,"maxLength":128,"description":"Optional description for the deployment token"},"expiresAt":{"type":"string","format":"date-time","nullable":true,"description":"Optional expiration date for the deployment token"}},"required":["description"]},"CreateManagerResponse":{"type":"object","properties":{"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"setupStatus":{"type":"string","enum":["pending"]},"setupToken":{"type":"string"},"setupTokenId":{"type":"string"},"deploymentLink":{"type":"string"},"setupConfig":{"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"inputValues":{"$ref":"#/components/schemas/EncryptedStackInputValues"},"publicSubdomain":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","description":"Operator-pinned deployment subdomain for this setup token."},"environmentVariables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string","enum":["plain","secret"]},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"}}},"required":["name","type","targetResources"]}}},"required":["metadata","policy","environmentVariables"]},"setup":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","enum":["cloudformation"]},"deploymentPortalUrl":{"type":"string"},"launchUrl":{"type":"string"},"templateUrl":{"type":"string"},"stackName":{"type":"string"},"region":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["method","deploymentPortalUrl","launchUrl","templateUrl","stackName","region","stackSettings"]},{"type":"object","properties":{"method":{"type":"string","enum":["google-oauth"]},"deploymentPortalUrl":{"type":"string"},"managerUrl":{"type":"string"},"oauthStartUrl":{"type":"string"},"region":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["method","deploymentPortalUrl","managerUrl","oauthStartUrl","region","stackSettings"]},{"type":"object","properties":{"method":{"type":"string","enum":["terraform"]},"deploymentPortalUrl":{"type":"string"},"managerUrl":{"type":"string"},"providerSource":{"type":"string"},"moduleSource":{"type":"string"},"moduleVersion":{"type":"string"},"moduleInputs":{"type":"object","additionalProperties":{"type":"string"}},"mainTf":{"type":"string"},"tfvars":{"type":"string"},"commands":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["method","deploymentPortalUrl","managerUrl","providerSource","moduleSource","moduleInputs","mainTf","tfvars","commands","stackSettings"]}]}},"required":["managerId","setupStatus","setupToken","setupTokenId","deploymentLink","setupConfig","setup"]},"NewManagerRequest":{"type":"object","properties":{"name":{"type":"string"},"cloud":{"$ref":"#/components/schemas/PrivateManagerCloud"},"region":{"type":"string","minLength":1,"maxLength":64,"description":"Cloud region for the manager."},"setupMethod":{"$ref":"#/components/schemas/PrivateManagerSetupMethod"},"network":{"type":"string","enum":["create","default"],"description":"Optional network mode for the private-manager setup. Defaults to create for production isolation; default uses the provider default network for faster dev/test setup."},"otlpConfig":{"type":"object","properties":{"logsEndpoint":{"type":"string","format":"uri","description":"External OTLP logs endpoint (e.g. https://api.axiom.co/v1/logs)"},"logsAuthHeader":{"type":"string","description":"Auth header in 'key=value,...' format (e.g. 'authorization=Bearer ,x-axiom-dataset=')"}},"required":["logsEndpoint","logsAuthHeader"],"description":"Optional external OTLP config for forwarding logs to Axiom, Datadog, etc. Falls back to built-in DeepStore when not set."}},"required":["name","cloud","region"]},"PrivateManagerCloud":{"type":"string","enum":["aws","gcp","azure"],"description":"Cloud where the private manager will be deployed."},"PrivateManagerSetupMethod":{"type":"string","enum":["cloudformation","google-oauth","terraform"],"description":"Optional setup method. Defaults to cloudformation for AWS, google-oauth for GCP, and terraform for Azure."},"ManagerRetryResponse":{"oneOf":[{"allOf":[{"$ref":"#/components/schemas/CreateManagerResponse"},{"type":"object","properties":{"mode":{"type":"string","enum":["setup"]}},"required":["mode"]}]},{"$ref":"#/components/schemas/ManagerRetryDeploymentResponse"}]},"ManagerRetryDeploymentResponse":{"type":"object","properties":{"mode":{"type":"string","enum":["deployment"]},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"setupStatus":{"type":"string","enum":["provisioning"]},"deploymentId":{"type":"string"},"message":{"type":"string"}},"required":["mode","managerId","setupStatus","deploymentId","message"]},"Manager":{"type":"object","properties":{"id":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for the manager"}]},"name":{"type":"string","description":"Display name of the manager"},"targets":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms this manager can handle"},"cloud":{"type":"string","nullable":true,"enum":["aws","gcp","azure","kubernetes","machines","local","test",null],"description":"Cloud where this private manager is deployed"},"region":{"type":"string","nullable":true,"description":"Cloud region selected for this private manager"},"setupStatus":{"type":"string","nullable":true,"enum":["pending","provisioning","active","failed","deleting","deleted",null],"description":"Private manager setup lifecycle status"},"url":{"type":"string","nullable":true,"format":"uri","description":"Manager URL (self-reported via heartbeat). DeepStore endpoints are exposed through this URL (e.g., {url}/v1/logs)"},"managementConfigs":{"$ref":"#/components/schemas/ManagerManagementConfigs"},"isSystem":{"type":"boolean","description":"Whether this is a system manager (Alien-hosted)"},"workspaceId":{"type":"string","description":"The workspace ID (for system managers, this is ALIEN_WORKSPACE_ID)"},"status":{"$ref":"#/components/schemas/ManagerStatus"},"version":{"type":"string","nullable":true,"description":"Manager version (self-reported via heartbeat)"},"metrics":{"type":"object","nullable":true,"properties":{"activeDeployments":{"type":"number","description":"Number of active deployments"},"pendingDeployments":{"type":"number","description":"Number of pending deployments"},"memoryUsageMb":{"type":"number","description":"Memory usage in megabytes"},"cpuUsagePercent":{"type":"number","description":"CPU usage percentage"}},"description":"Runtime metrics (self-reported via heartbeat)"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat from the manager"},"logsDatabaseId":{"type":"string","nullable":true,"description":"ID of the logs database associated with this manager"},"managedDeploymentCount":{"type":"integer","minimum":0,"description":"Number of deployments currently being managed by this manager"},"defaultProjectCount":{"type":"integer","minimum":0,"description":"Number of projects that select this manager as a default manager"},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the manager was created"}},"required":["id","name","targets","managementConfigs","isSystem","workspaceId","status","managedDeploymentCount","defaultProjectCount","createdAt"],"description":"Manager schema"},"ManagerManagementConfigs":{"type":"object","properties":{"aws":{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"},"platform":{"type":"string","enum":["aws"]}},"required":["managingRoleArn","platform"]},"gcp":{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"},"platform":{"type":"string","enum":["gcp"]}},"required":["serviceAccountEmail","platform"]},"azure":{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."},"platform":{"type":"string","enum":["azure"]}},"required":["managingTenantId","oidcIssuer","oidcSubject","platform"]},"kubernetes":{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]}},"description":"Per-platform management configurations for cross-account access (self-reported via heartbeat)"},"ManagerStatus":{"type":"string","enum":["healthy","degraded","unhealthy","unknown"],"description":"Current health status"},"ManagerDomainBindingResponse":{"type":"object","properties":{"managerDomainBinding":{"$ref":"#/components/schemas/DomainEndpoint"}},"required":["managerDomainBinding"]},"UpdateManagerDomainBinding":{"type":"object","properties":{"domainId":{"type":"string","nullable":true,"pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"}},"additionalProperties":false},"UpdateManagerRequest":{"type":"object","properties":{"releaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Optional release ID to update to. If not provided, the active release will be chosen","example":"rel_WbhQgksrawSKIpEN0NAssHX9"}},"additionalProperties":false,"description":"Request schema for updating a manager to a new release"},"Event":{"type":"object","properties":{"id":{"type":"string","pattern":"event_[0-9a-zA-Z]{28}$","description":"Unique identifier for the event.","example":"event_MtSA24M3pWuAkQYxgZxuRI"},"deploymentId":{"type":"string","nullable":true,"pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"releaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"debugSessionId":{"type":"string","nullable":true,"pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Unique identifier for the debug session.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"data":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["LoadingConfiguration"]}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["Finished"]}},"required":["type"]},{"type":"object","properties":{"stack":{"type":"string","description":"Name of the stack being built"},"type":{"type":"string","enum":["BuildingStack"]}},"required":["stack","type"]},{"type":"object","properties":{"platform":{"type":"string","description":"Platform being targeted"},"stack":{"type":"string","description":"Name of the stack being checked"},"type":{"type":"string","enum":["RunningPreflights"]}},"required":["platform","stack","type"]},{"type":"object","properties":{"targetTriple":{"type":"string","description":"Target triple for the runtime"},"type":{"type":"string","enum":["DownloadingAlienRuntime"]},"url":{"type":"string","description":"URL being downloaded from"}},"required":["targetTriple","type","url"]},{"type":"object","properties":{"relatedResources":{"type":"array","items":{"type":"string"},"description":"All resource names sharing this build (for deduped container groups)"},"resourceName":{"type":"string","description":"Name of the resource being built"},"resourceType":{"type":"string","description":"Type of the resource: \"worker\", \"container\""},"type":{"type":"string","enum":["BuildingResource"]}},"required":["resourceName","resourceType","type"]},{"type":"object","properties":{"image":{"type":"string","description":"Name of the image being built"},"type":{"type":"string","enum":["BuildingImage"]}},"required":["image","type"]},{"type":"object","properties":{"image":{"type":"string","description":"Name of the image being pushed"},"progress":{"oneOf":[{"type":"object","properties":{"bytesUploaded":{"type":"integer","minimum":0,"description":"Bytes uploaded so far"},"layersUploaded":{"type":"integer","minimum":0,"description":"Number of layers uploaded so far"},"operation":{"type":"string","description":"Current operation being performed"},"totalBytes":{"type":"integer","minimum":0,"description":"Total bytes to upload"},"totalLayers":{"type":"integer","minimum":0,"description":"Total number of layers to upload"}},"required":["bytesUploaded","layersUploaded","operation","totalBytes","totalLayers"],"description":"Progress information for image push operations"},{"nullable":true}]},"type":{"type":"string","enum":["PushingImage"]}},"required":["image","type"]},{"type":"object","properties":{"destination":{"type":"string","nullable":true,"description":"Human-readable destination for pushed images"},"platform":{"type":"string","description":"Target platform"},"stack":{"type":"string","description":"Name of the stack being pushed"},"type":{"type":"string","enum":["PushingStack"]}},"required":["platform","stack","type"]},{"type":"object","properties":{"resourceName":{"type":"string","description":"Name of the resource being pushed"},"resourceType":{"type":"string","description":"Type of the resource: \"worker\", \"container\""},"type":{"type":"string","enum":["PushingResource"]}},"required":["resourceName","resourceType","type"]},{"type":"object","properties":{"project":{"type":"string","description":"Project name"},"type":{"type":"string","enum":["CreatingRelease"]}},"required":["project","type"]},{"type":"object","properties":{"language":{"type":"string","description":"Language being compiled (rust, typescript, etc.)"},"progress":{"type":"string","nullable":true,"description":"Current progress/status line from the build output"},"type":{"type":"string","enum":["CompilingCode"]}},"required":["language","type"]},{"type":"object","properties":{"nextState":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"Represents the collective state of all resources in a stack, including platform and pending actions."},"suggestedDelayMs":{"type":"integer","nullable":true,"minimum":0,"description":"An suggested duration to wait before executing the next step."},"type":{"type":"string","enum":["StackStep"]}},"required":["nextState","type"]},{"type":"object","properties":{"type":{"type":"string","enum":["GeneratingCloudFormationTemplate"]}},"required":["type"]},{"type":"object","properties":{"platform":{"type":"string","description":"Platform for which the template is being generated"},"type":{"type":"string","enum":["GeneratingTemplate"]}},"required":["platform","type"]},{"type":"object","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"]}},"required":["agentId","releaseId","type"]},{"type":"object","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"]}},"required":["agentId","releaseId","type"]},{"type":"object","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"]}},"required":["agentId","releaseId","type"]},{"type":"object","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"]}},"required":["agentId","debugSessionId","type"]},{"type":"object","properties":{"strategyName":{"type":"string","description":"Name of the deployment strategy being used"},"type":{"type":"string","enum":["PreparingEnvironment"]}},"required":["strategyName","type"]},{"type":"object","properties":{"stackName":{"type":"string","description":"Name of the stack being deployed"},"type":{"type":"string","enum":["DeployingStack"]}},"required":["stackName","type"]},{"type":"object","properties":{"stackName":{"type":"string","description":"Name of the stack being tested"},"type":{"type":"string","enum":["RunningTestWorker"]}},"required":["stackName","type"]},{"type":"object","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"]}},"required":["stackName","strategyName","type"]},{"type":"object","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"]}},"required":["stackName","strategyName","type"]},{"type":"object","properties":{"platformName":{"type":"string","description":"Name of the platform (e.g., \"AWS\", \"GCP\")"},"type":{"type":"string","enum":["SettingUpPlatformContext"]}},"required":["platformName","type"]},{"type":"object","properties":{"repositoryName":{"type":"string","description":"Name of the docker repository"},"type":{"type":"string","enum":["EnsuringDockerRepository"]}},"required":["repositoryName","type"]},{"type":"object","properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"currentStatus":{"type":"string","description":"Current stack status"},"type":{"type":"string","enum":["DeployingCloudFormationStack"]}},"required":["cfnStackName","currentStatus","type"]},{"type":"object","properties":{"roleArn":{"type":"string","description":"ARN of the role to assume"},"type":{"type":"string","enum":["AssumingRole"]}},"required":["roleArn","type"]},{"type":"object","properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"type":{"type":"string","enum":["ImportingStackStateFromCloudFormation"]}},"required":["cfnStackName","type"]},{"type":"object","properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"currentStatus":{"type":"string","description":"Current stack status"},"type":{"type":"string","enum":["DeletingCloudFormationStack"]}},"required":["cfnStackName","currentStatus","type"]},{"type":"object","properties":{"bucketNames":{"type":"array","items":{"type":"string"},"description":"Names of the S3 buckets being emptied"},"type":{"type":"string","enum":["EmptyingBuckets"]}},"required":["bucketNames","type"]},{"type":"object","properties":{"deploymentGroupId":{"type":"string","description":"ID of the deployment group this slot belongs to"},"deploymentId":{"type":"string","description":"ID of the deployment that was created"},"releaseId":{"type":"string","nullable":true,"description":"Initial release the slot was created with, if any"},"type":{"type":"string","enum":["DeploymentCreated"]}},"required":["deploymentGroupId","deploymentId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"previousReleaseId":{"type":"string","nullable":true,"description":"ID of the release that was previously live, if any"},"releaseId":{"type":"string","description":"ID of the release that is now live"},"type":{"type":"string","enum":["DeploymentReleased"]}},"required":["deploymentId","releaseId","type"]},{"type":"object","properties":{"attemptedReleaseId":{"type":"string","nullable":true,"description":"ID of the release the platform was trying to deploy, if known"},"deploymentId":{"type":"string","description":"ID of the deployment"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},"phase":{"type":"string","enum":["preflights","provisioning","updating","deleting"],"description":"Phase of a deployment at which a failure occurred.\n\nDerived from the source deployment status: `preflights-failed` →\n`Preflights`, `provisioning-failed` → `Provisioning`, `update-failed` →\n`Updating`, `delete-failed` → `Deleting`.\n`refresh-failed` is modelled separately via `DeploymentDegraded`."},"type":{"type":"string","enum":["DeploymentFailed"]}},"required":["deploymentId","error","phase","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},"type":{"type":"string","enum":["DeploymentDegraded"]}},"required":["deploymentId","error","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"releaseId":{"type":"string","description":"ID of the release that is now live"},"type":{"type":"string","enum":["DeploymentRecovered"]}},"required":["deploymentId","releaseId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment that was deleted"},"type":{"type":"string","enum":["DeploymentDeleted"]}},"required":["deploymentId","type"]},{"type":"object","properties":{"actor":{"oneOf":[{"type":"object","properties":{"email":{"type":"string","nullable":true,"description":"User email when the principal is a user."},"id":{"type":"string","description":"Stable user or service-account identifier."},"kind":{"type":"string","enum":["user","serviceAccount"],"description":"Type of authenticated principal that requested an event."}},"required":["id","kind"],"description":"Authenticated principal that requested a deployment intent event."},{"nullable":true}]},"channel":{"type":"string","description":"Name of the channel that moved"},"previousReleaseId":{"type":"string","nullable":true,"description":"ID of the release that was previously current, if any"},"releaseId":{"type":"string","description":"ID of the release that is now current"},"type":{"type":"string","enum":["ReleaseChannelUpdated"]}},"required":["channel","releaseId","type"]},{"type":"object","properties":{"actor":{"oneOf":[{"type":"object","properties":{"email":{"type":"string","nullable":true,"description":"User email when the principal is a user."},"id":{"type":"string","description":"Stable user or service-account identifier."},"kind":{"type":"string","enum":["user","serviceAccount"],"description":"Type of authenticated principal that requested an event."}},"required":["id","kind"],"description":"Authenticated principal that requested a deployment intent event."},{"nullable":true}]},"channel":{"type":"string","description":"Newly followed channel"},"deploymentId":{"type":"string","description":"ID of the deployment"},"previousChannel":{"type":"string","description":"Previously followed channel"},"type":{"type":"string","enum":["DeploymentReleaseChannelChanged"]}},"required":["channel","deploymentId","previousChannel","type"]},{"type":"object","properties":{"actor":{"oneOf":[{"type":"object","properties":{"email":{"type":"string","nullable":true,"description":"User email when the principal is a user."},"id":{"type":"string","description":"Stable user or service-account identifier."},"kind":{"type":"string","enum":["user","serviceAccount"],"description":"Type of authenticated principal that requested an event."}},"required":["id","kind"],"description":"Authenticated principal that requested a deployment intent event."},{"nullable":true}]},"attemptedReleaseId":{"type":"string","nullable":true,"description":"ID of the release that the failed attempt was targeting, if known"},"deploymentId":{"type":"string","description":"ID of the deployment"},"previousError":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"type":{"type":"string","enum":["DeploymentRetryRequested"]}},"required":["deploymentId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"releaseId":{"type":"string","description":"ID of the release being redeployed"},"type":{"type":"string","enum":["DeploymentRedeployRequested"]}},"required":["deploymentId","releaseId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"pinnedReleaseId":{"type":"string","description":"ID of the release that is now pinned"},"previousPinnedReleaseId":{"type":"string","nullable":true,"description":"ID of the previously pinned release, if any"},"type":{"type":"string","enum":["DeploymentReleasePinned"]}},"required":["deploymentId","pinnedReleaseId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"previousPinnedReleaseId":{"type":"string","description":"ID of the release that was previously pinned"},"type":{"type":"string","enum":["DeploymentReleaseUnpinned"]}},"required":["deploymentId","previousPinnedReleaseId","type"]},{"type":"object","properties":{"actor":{"oneOf":[{"type":"object","properties":{"email":{"type":"string","nullable":true,"description":"User email when the principal is a user."},"id":{"type":"string","description":"Stable user or service-account identifier."},"kind":{"type":"string","enum":["user","serviceAccount"],"description":"Type of authenticated principal that requested an event."}},"required":["id","kind"],"description":"Authenticated principal that requested a deployment intent event."},{"nullable":true}]},"changedKeys":{"type":"array","items":{"type":"string"},"description":"Names of the environment variables that changed (added, removed, or modified)"},"deploymentId":{"type":"string","description":"ID of the deployment"},"type":{"type":"string","enum":["DeploymentEnvironmentUpdated"]}},"required":["changedKeys","deploymentId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"type":{"type":"string","enum":["DeploymentDeletionRequested"]}},"required":["deploymentId","type"]}]},"state":{"oneOf":[{"type":"object","properties":{"failed":{"type":"object","properties":{"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]}},"description":"Event failed with an error"}},"required":["failed"]},{"type":"string","enum":["none"]},{"type":"string","enum":["started"]},{"type":"string","enum":["success"]}],"description":"Represents the state of an event"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"createdAt":{"type":"string","format":"date-time"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"}},"required":["id","data","state","projectId","createdAt","workspaceId"]},"GenerateManagerTokenResponse":{"type":"object","properties":{"accessToken":{"type":"string","description":"Platform JWT for authenticating with the manager"},"expiresIn":{"type":"number","nullable":true,"description":"Token lifetime in seconds"},"tokenType":{"type":"string","enum":["Bearer"]},"managerUrl":{"type":"string","description":"Manager URL for direct access"},"databaseId":{"type":"string","nullable":true,"description":"Log database ID (null if logs not configured)"},"controlPlaneUrl":{"type":"string","nullable":true,"description":"Log control plane URL (null if logs not configured)"}},"required":["accessToken","expiresIn","tokenType","managerUrl","databaseId","controlPlaneUrl"]},"GenerateManagerTokenRequest":{"type":"object","properties":{"project":{"type":"string","maxLength":100,"description":"Project ID or name to scope token access to."}},"required":["project"]},"GenerateManagerBindingTokenResponse":{"type":"object","properties":{"accessToken":{"type":"string"},"expiresIn":{"type":"number","nullable":true},"tokenType":{"type":"string","enum":["Bearer"]},"managerUrl":{"type":"string"}},"required":["accessToken","expiresIn","tokenType","managerUrl"]},"GenerateManagerBindingTokenRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"}},"required":["deploymentId"],"additionalProperties":false},"ResolveManagerGcpOAuthProviderResponse":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["alien-managed"]}},"required":["mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["custom"]},"clientId":{"$ref":"#/components/schemas/GcpOAuthClientId"},"clientSecret":{"$ref":"#/components/schemas/GcpOAuthClientSecret"}},"required":["mode","clientId","clientSecret"]}]},"ResolveManagerGcpOAuthProviderRequest":{"type":"object","properties":{"deploymentGroupToken":{"type":"string","minLength":1,"description":"Deployment-group bearer token whose project-level OAuth provider should be resolved."},"returnOrigin":{"type":"string","format":"uri","description":"Browser origin that will receive the Google OAuth callback result. Must be a first-party dashboard origin or the active portal origin for the deployment group's project."}},"required":["deploymentGroupToken"]},"ManagerHeartbeatResponse":{"type":"object","properties":{"acknowledged":{"type":"boolean"},"timestamp":{"type":"string"}},"required":["acknowledged","timestamp"]},"ManagerHeartbeatRequest":{"type":"object","properties":{"status":{"type":"string","enum":["healthy","degraded","unhealthy"],"description":"Current health status"},"version":{"type":"string","description":"Manager version"},"url":{"type":"string","format":"uri","description":"Manager public URL (for accessing DeepStore endpoints)"},"managementConfigs":{"allOf":[{"$ref":"#/components/schemas/ManagerManagementConfigs"},{"description":"Per-platform management configurations for cross-account access"}]},"metrics":{"type":"object","properties":{"activeDeployments":{"type":"number"},"pendingDeployments":{"type":"number"},"memoryUsageMb":{"type":"number"},"cpuUsagePercent":{"type":"number"}},"description":"Optional runtime metrics"}},"required":["status","url","managementConfigs"]},"ManagerDeployment":{"type":"object","properties":{"platform":{"type":"string","description":"Platform of the internal deployment"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status of the internal deployment"},"deploymentId":{"type":"string","description":"Internal deployment ID"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Currently deployed private manager release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Target private manager release for an in-progress update","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"error":{"nullable":true,"description":"Latest provision / upgrade / delete error"},"resources":{"type":"object","additionalProperties":{"type":"object","properties":{"type":{"type":"string","description":"Resource type"},"status":{"type":"string","description":"Resource status"},"outputs":{"type":"object","additionalProperties":{"nullable":true},"description":"Resource outputs"}},"required":["type","status"]},"description":"Simplified stack state resources"},"environmentInfo":{"nullable":true,"description":"Manager environment info"}},"required":["platform","status","deploymentId","resources"]},"PrepareOperatorManifestPackageResponse":{"type":"object","properties":{"package":{"$ref":"#/components/schemas/Package"}},"required":["package"]},"PrepareOperatorManifestPackageRequest":{"type":"object","properties":{"project":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"}},"required":["project"],"additionalProperties":false},"RenderOperatorManifestResponse":{"type":"object","properties":{"manifest":{"type":"string","description":"Rendered multi-document Kubernetes manifest"},"applyCommand":{"type":"string","description":"kubectl command for applying the manifest from a file"},"filename":{"type":"string","description":"Suggested local filename"},"managerUrl":{"type":"string","format":"uri","description":"Manager URL embedded in the manifest"},"imagePending":{"type":"boolean","description":"True when the operator image is still building. The manifest contains a placeholder image () and must not be applied yet — re-render once the operator-image package is ready to get the real image."}},"required":["manifest","applyCommand","filename","managerUrl","imagePending"]},"RenderOperatorManifestRequest":{"type":"object","properties":{"project":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"format":{"type":"string","enum":["raw","helm"],"default":"raw","description":"raw: a kubectl-applyable manifest for one cluster. helm: a paste-into-your-chart template whose namespace and environment name come from Helm at install time."},"environmentName":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Per-environment identity. Required for raw output, ignored for helm.","example":"my-app"},"namespace":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9]([-a-z0-9]*[a-z0-9])?$","description":"Namespace to observe and install into. Omit for helm to use the release namespace."},"scope":{"type":"string","enum":["namespace","cluster"],"default":"namespace","description":"namespace: a namespaced Role that manages the install namespace. cluster: a ClusterRole that manages every namespace."},"labelSelector":{"type":"string","minLength":1,"maxLength":256,"description":"Optional Kubernetes label selector narrowing what is managed, applied within the scope."},"permission":{"type":"string","enum":["observe"],"default":"observe","description":"Operator permission tier"},"operatorImagePackageId":{"type":"string","pattern":"pkg_[0-9a-z]{28}$","description":"Ready operator-image package to use for the Operator image. If omitted, the latest ready operator-image package for the project is used.","example":"pkg_jebo2o5jmm7raefl2m1pe3cz"},"deploymentGroupToken":{"type":"string","minLength":1,"description":"Deployment-group token embedded in the operator Secret"},"logCollector":{"type":"object","properties":{"enabled":{"type":"boolean","default":false}},"description":"Enable the node log collector DaemonSet for raw pod logs."}},"required":["project","deploymentGroupToken"],"additionalProperties":false},"APIKey":{"type":"object","properties":{"id":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"description":{"type":"string","nullable":true},"keyPrefix":{"type":"string"},"type":{"type":"string","enum":["workspace","project","deployment","deployment-group","manager"]},"role":{"type":"string"},"workspaceId":{"type":"string"},"projectId":{"type":"string","nullable":true},"deploymentId":{"type":"string","nullable":true},"deploymentGroupId":{"type":"string","nullable":true},"managerId":{"type":"string","nullable":true},"enabled":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","nullable":true,"format":"date-time"},"lastUsedAt":{"type":"string","nullable":true,"format":"date-time"},"revokedAt":{"type":"string","nullable":true,"format":"date-time"},"deploymentSetupConfig":{"$ref":"#/components/schemas/APIKeyDeploymentSetupConfig"},"createdByUser":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"email":{"type":"string"},"image":{"type":"string","nullable":true}},"required":["id","email","image"],"description":"User information associated with the API key"}},"required":["id","description","keyPrefix","type","role","workspaceId","projectId","deploymentId","deploymentGroupId","managerId","enabled","createdAt","expiresAt","lastUsedAt","revokedAt","deploymentSetupConfig","createdByUser"],"description":"API key information"},"APIKeyDeploymentSetupConfig":{"type":"object","nullable":true,"properties":{"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"environmentVariables":{"type":"array","items":{"$ref":"#/components/schemas/APIKeyDeploymentSetupEnvironmentVariable"}}},"required":["metadata","policy","environmentVariables"]},"APIKeyDeploymentSetupEnvironmentVariable":{"type":"object","properties":{"name":{"type":"string","pattern":"^[A-Z_][A-Z0-9_]*$","description":"Variable name"},"type":{"$ref":"#/components/schemas/EnvironmentVariableType"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string","pattern":"^[a-zA-Z0-9_-]+(\\*)?$"},"description":"Target resource patterns (null = all resources, array = wildcard patterns)"}},"required":["name","type","targetResources"]},"CreateAPIKeyResponse":{"type":"object","properties":{"apiKey":{"type":"string","description":"The generated API key value (only shown once)"},"keyInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"description":{"type":"string","nullable":true},"keyPrefix":{"type":"string"},"type":{"type":"string","enum":["workspace","project","deployment","deployment-group","manager"]},"role":{"type":"string"},"workspaceId":{"type":"string"},"projectId":{"type":"string","nullable":true},"deploymentId":{"type":"string","nullable":true},"deploymentGroupId":{"type":"string","nullable":true},"managerId":{"type":"string","nullable":true},"enabled":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","nullable":true,"format":"date-time"},"lastUsedAt":{"type":"string","nullable":true,"format":"date-time"},"revokedAt":{"type":"string","nullable":true,"format":"date-time"},"deploymentSetupConfig":{"$ref":"#/components/schemas/APIKeyDeploymentSetupConfig"}},"required":["id","description","keyPrefix","type","role","workspaceId","projectId","deploymentId","deploymentGroupId","managerId","enabled","createdAt","expiresAt","lastUsedAt","revokedAt","deploymentSetupConfig"]}},"required":["apiKey","keyInfo"],"description":"Response containing the new API key and its metadata"},"CreateAPIKeyRequest":{"type":"object","properties":{"description":{"type":"string","nullable":true,"minLength":3,"maxLength":128},"scope":{"$ref":"#/components/schemas/Scope"},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"Optional expiration date for the API key"}},"required":["description","scope","expiresAt"],"description":"Request schema for creating a new API key"},"Scope":{"oneOf":[{"$ref":"#/components/schemas/WorkspaceScope"},{"$ref":"#/components/schemas/ProjectScope"},{"$ref":"#/components/schemas/DeploymentScope"},{"$ref":"#/components/schemas/DeploymentGroupScope"},{"$ref":"#/components/schemas/ManagerScope"}],"discriminator":{"propertyName":"type","mapping":{"workspace":"#/components/schemas/WorkspaceScope","project":"#/components/schemas/ProjectScope","deployment":"#/components/schemas/DeploymentScope","deployment-group":"#/components/schemas/DeploymentGroupScope","manager":"#/components/schemas/ManagerScope"}},"description":"Scope and role configuration for service accounts"},"WorkspaceScope":{"type":"object","properties":{"type":{"type":"string","enum":["workspace"]},"role":{"$ref":"#/components/schemas/WorkspaceRole"}},"required":["type","role"],"description":"Workspace-scoped configuration"},"ProjectScope":{"type":"object","properties":{"type":{"type":"string","enum":["project"]},"projectId":{"type":"string","description":"ID of the project this is scoped to"},"role":{"$ref":"#/components/schemas/ProjectRole"}},"required":["type","projectId","role"],"description":"Project-scoped configuration"},"DeploymentScope":{"type":"object","properties":{"type":{"type":"string","enum":["deployment"]},"deploymentId":{"type":"string","description":"ID of the deployment this is scoped to"},"projectId":{"type":"string","description":"ID of the project this deployment belongs to"},"role":{"$ref":"#/components/schemas/DeploymentRole"}},"required":["type","deploymentId","projectId","role"],"description":"Deployment-scoped configuration"},"DeploymentGroupScope":{"type":"object","properties":{"type":{"type":"string","enum":["deployment-group"]},"deploymentGroupId":{"type":"string","description":"ID of the deployment group this is scoped to"},"projectId":{"type":"string","description":"ID of the project this deployment group belongs to"},"role":{"$ref":"#/components/schemas/DeploymentGroupRole"}},"required":["type","deploymentGroupId","projectId","role"],"description":"Deployment group-scoped configuration"},"ManagerScope":{"type":"object","properties":{"type":{"type":"string","enum":["manager"]},"managerId":{"type":"string","description":"ID of the manager this is scoped to"},"role":{"$ref":"#/components/schemas/ManagerRole"}},"required":["type","managerId","role"],"description":"Manager-scoped configuration"},"UpdateAPIKeyRequest":{"type":"object","properties":{"enabled":{"type":"boolean"},"description":{"type":"string","nullable":true,"minLength":3,"maxLength":128},"deploymentSetupConfig":{"$ref":"#/components/schemas/UpdateDeploymentSetupPolicy"},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"Optional expiration date for the API key"}},"description":"Request schema for updating an API key"},"UpdateDeploymentSetupPolicy":{"type":"object","properties":{"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"}},"required":["policy"],"description":"Editable part of a deployment link's setup config. Locked env vars and input values are preserved."},"DeleteAPIKeysRequest":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"minItems":1}},"required":["ids"]},"DomainWithUsage":{"allOf":[{"$ref":"#/components/schemas/Domain"},{"type":"object","properties":{"endpoints":{"type":"array","items":{"$ref":"#/components/schemas/DomainEndpoint"}},"usage":{"type":"object","properties":{"deploymentUrlProjects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}},"portalBindings":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"projectId":{"type":"string","nullable":true},"projectName":{"type":"string","nullable":true},"hostname":{"type":"string"}},"required":["id","projectId","projectName","hostname"]}},"packageDomains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"hostname":{"type":"string"}},"required":["id","hostname"]}},"managerBindings":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"managerId":{"type":"string"},"managerName":{"type":"string"},"hostname":{"type":"string"}},"required":["id","managerId","managerName","hostname"]}}},"required":["deploymentUrlProjects","portalBindings","packageDomains","managerBindings"]}},"required":["endpoints","usage"]}]},"Domain":{"type":"object","properties":{"id":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"domain":{"type":"string"},"isSystem":{"type":"boolean"},"claimToken":{"type":"string"},"hostedZoneId":{"type":"string","nullable":true},"nameServers":{"type":"array","nullable":true,"items":{"type":"string"}},"status":{"type":"string","enum":["pending-zone-creation","pending-verification","verified","lost-verification","failed","deleting"]},"error":{"nullable":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"verifiedAt":{"type":"string","format":"date-time","nullable":true}},"required":["id","workspaceId","domain","isSystem","claimToken","status","createdAt","updatedAt"]},"EventListItemResponse":{"allOf":[{"$ref":"#/components/schemas/Event"},{"type":"object","properties":{"releaseCreatedAt":{"type":"string","format":"date-time","nullable":true,"description":"createdAt of the event's referenced release, included when ?include=releaseCreatedAt is used"}}}]},"ListMachinesJoinTokensResponse":{"type":"object","properties":{"tokens":{"type":"array","items":{"$ref":"#/components/schemas/MachinesJoinTokenSummary"}}},"required":["tokens"]},"MachinesJoinTokenSummary":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"expiresAt":{"type":"string","nullable":true},"maxJoins":{"type":"integer","nullable":true},"joinCount":{"type":"integer"},"lastUsedAt":{"type":"string","nullable":true},"revokedAt":{"type":"string","nullable":true}},"required":["id","createdAt","createdBy","joinCount"]},"CreateMachinesJoinTokenResponse":{"type":"object","properties":{"joinToken":{"type":"string"},"controlPlaneUrl":{"type":"string","format":"uri"},"clusterId":{"type":"string"},"token":{"$ref":"#/components/schemas/MachinesJoinTokenSummary"},"cliInstallScriptUrl":{"type":"string","nullable":true,"format":"uri","description":"Deploy CLI install script URL, or null when no ready CLI package exists."},"cliCommandName":{"type":"string","nullable":true,"description":"CLI command name to use in join instructions."}},"required":["joinToken","controlPlaneUrl","clusterId","token","cliInstallScriptUrl","cliCommandName"]},"RotateMachinesJoinTokenResponse":{"type":"object","properties":{"joinToken":{"type":"string"},"controlPlaneUrl":{"type":"string","format":"uri"},"clusterId":{"type":"string"},"token":{"$ref":"#/components/schemas/MachinesJoinTokenSummary"},"cliInstallScriptUrl":{"type":"string","nullable":true,"format":"uri","description":"Deploy CLI install script URL, or null when no ready CLI package exists."},"cliCommandName":{"type":"string","nullable":true,"description":"CLI command name to use in join instructions."}},"required":["joinToken","controlPlaneUrl","clusterId","token","cliInstallScriptUrl","cliCommandName"]},"RevokeMachinesJoinTokenResponse":{"type":"object","properties":{"tokenId":{"type":"string"},"revoked":{"type":"boolean"}},"required":["tokenId","revoked"]},"ListMachinesInventoryResponse":{"type":"object","properties":{"machines":{"type":"array","items":{"$ref":"#/components/schemas/MachinesInventoryItem"}}},"required":["machines"]},"MachinesInventoryItem":{"type":"object","properties":{"machineId":{"type":"string"},"status":{"type":"string"},"capacityGroup":{"type":"string"},"zone":{"type":"string"},"cpu":{"$ref":"#/components/schemas/MachinesCapacityMetric"},"memory":{"$ref":"#/components/schemas/MachinesCapacityMetric"},"storage":{"allOf":[{"$ref":"#/components/schemas/MachinesCapacityMetric"}],"nullable":true},"drainBlockers":{"type":"array","items":{"$ref":"#/components/schemas/MachinesDrainBlocker"}},"drainDeadlineAt":{"type":"string","nullable":true},"drainForce":{"type":"boolean"},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"publicIp":{"type":"string","nullable":true},"overlayIp":{"type":"string","nullable":true},"lastHeartbeat":{"type":"string"},"horizondVersion":{"type":"string","nullable":true},"localOverrides":{"type":"array","items":{"$ref":"#/components/schemas/MachinesLocalOverrideObservation"}},"localOverridesObservedAt":{"type":"string","nullable":true},"replicaCount":{"type":"integer"}},"required":["machineId","status","capacityGroup","zone","cpu","memory","drainBlockers","drainForce","lastHeartbeat","localOverrides","replicaCount"]},"MachinesCapacityMetric":{"type":"object","properties":{"allocated":{"type":"number"},"systemReserve":{"type":"number"},"total":{"type":"number"}},"required":["allocated","systemReserve","total"]},"MachinesDrainBlocker":{"type":"object","properties":{"reason":{"type":"string"},"workloadId":{"type":"string","nullable":true},"workloadName":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true},"schedulingMode":{"type":"string","nullable":true},"state":{"type":"string","nullable":true}},"required":["reason"]},"MachinesLocalOverrideObservation":{"type":"object","properties":{"activeDigest":{"type":"string","nullable":true},"actor":{"type":"string","nullable":true},"baseAssignmentHash":{"type":"string"},"baseDigest":{"type":"string","nullable":true},"candidateDigest":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"failureCategory":{"type":"string","nullable":true},"fallbackDigest":{"type":"string","nullable":true},"forcedStop":{"type":"boolean","nullable":true},"healthySince":{"type":"string","nullable":true},"incidentId":{"type":"string","nullable":true},"lifecycle":{"type":"string"},"phaseStartedAt":{"type":"string","nullable":true},"replicaId":{"type":"string"},"workloadName":{"type":"string"}},"required":["baseAssignmentHash","lifecycle","replicaId","workloadName"]},"CancelMachinesMachineDrainResponse":{"type":"object","properties":{"machineId":{"type":"string"},"cancelled":{"type":"boolean"}},"required":["machineId","cancelled"]},"DrainMachinesMachineResponse":{"type":"object","properties":{"machineId":{"type":"string"},"requested":{"type":"boolean"}},"required":["machineId","requested"]},"DrainMachinesMachineRequest":{"type":"object","properties":{"deadlineSeconds":{"type":"integer","nullable":true,"minimum":0},"force":{"type":"boolean"}}},"RemoveMachinesMachineResponse":{"type":"object","properties":{"machineId":{"type":"string"},"removed":{"type":"boolean"}},"required":["machineId","removed"]},"CommandListItemResponse":{"allOf":[{"$ref":"#/components/schemas/Command"},{"type":"object","properties":{"deployment":{"$ref":"#/components/schemas/CommandDeploymentInfo"},"project":{"$ref":"#/components/schemas/CommandProjectInfo"}}}]},"CommandDeploymentInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string"},"deploymentGroup":{"$ref":"#/components/schemas/CommandDeploymentGroupInfo"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Platform-specific environment information"},"managerId":{"type":"string","description":"Manager ID for obtaining access tokens"},"managerUrl":{"type":"string","nullable":true,"format":"uri","description":"URL of the manager for direct payload access"},"managerName":{"type":"string","nullable":true,"description":"Human-readable name of the manager"},"managerIsSystem":{"type":"boolean","nullable":true,"description":"Whether the manager is Alien-hosted (system)"}},"required":["id","name","managerId"]},"CommandDeploymentGroupInfo":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"CommandProjectInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"name":{"type":"string"}},"required":["id","name"]},"Command":{"type":"object","properties":{"id":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"name":{"type":"string","description":"Command name (e.g., 'analyze-repository', 'sync-data')"},"state":{"type":"string","enum":["PENDING_UPLOAD","PENDING","DISPATCHED","SUCCEEDED","FAILED","EXPIRED"],"description":"Command states in the Commands protocol lifecycle"},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Delivery mode for this command (push/pull), derived from the target at creation time"},"target":{"type":"object","nullable":true,"properties":{"resourceId":{"type":"string","description":"The resource ID within the deployment's stack (e.g. a Worker/Container/Daemon id)."},"resourceType":{"type":"string","enum":["worker","container","daemon"],"description":"The kind of command-capable resource a command targets."}},"required":["resourceId","resourceType"],"description":"Resource the command is addressed to; null on commands created before target routing"},"attempt":{"type":"number","nullable":true,"description":"Current attempt number"},"deadline":{"type":"string","nullable":true,"format":"date-time","description":"Optional deadline for command execution"},"requestSizeBytes":{"type":"number","nullable":true,"description":"Size of command params in bytes"},"responseSizeBytes":{"type":"number","nullable":true,"description":"Size of command response in bytes"},"createdAt":{"type":"string","format":"date-time","description":"When the command was created"},"dispatchedAt":{"type":"string","nullable":true,"format":"date-time","description":"When the command was dispatched to the deployment"},"completedAt":{"type":"string","nullable":true,"format":"date-time","description":"When the command completed"},"error":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Error details if command failed"},"result":{"nullable":true,"description":"Decoded command result when available"}},"required":["id","deploymentId","projectId","workspaceId","name","state","deploymentModel","target","attempt","deadline","requestSizeBytes","responseSizeBytes","createdAt","dispatchedAt","completedAt","error"]},"ListCommandNamesResponse":{"type":"object","properties":{"names":{"type":"array","items":{"type":"string"}}},"required":["names"]},"ListCommandDeploymentsResponse":{"type":"object","properties":{"deployments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string"},"deploymentGroup":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}},"required":["id","name"]}}},"required":["deployments"]},"CreateCommandResponse":{"type":"object","properties":{"id":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"projectId":{"type":"string","description":"Project ID (for manager to use in routing)"},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"How to dispatch the command"},"target":{"type":"object","properties":{"resourceId":{"type":"string","description":"The resource ID within the deployment's stack (e.g. a Worker/Container/Daemon id)."},"resourceType":{"type":"string","enum":["worker","container","daemon"],"description":"The kind of command-capable resource a command targets."}},"required":["resourceId","resourceType"],"description":"Resource the command is addressed to"},"deliveryMode":{"type":"string","enum":["push","pull"],"description":"How the command is delivered to its target"}},"required":["id","projectId","deploymentModel","target","deliveryMode"]},"CreateCommandRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Target deployment ID","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string","minLength":1,"maxLength":255,"description":"Command name (e.g., 'analyze-repository')"},"params":{"nullable":true,"description":"Command parameters for public invocation"},"target":{"type":"string","maxLength":255,"description":"Resource id the command is addressed to. Required when the deployment has more than one command-capable resource."},"initialState":{"type":"string","enum":["PENDING_UPLOAD","PENDING","DISPATCHED","SUCCEEDED","FAILED","EXPIRED"],"description":"Initial state (PENDING_UPLOAD if params require upload, PENDING if inline)"},"deadline":{"type":"string","nullable":true,"format":"date-time","description":"Optional deadline for command execution"},"requestSizeBytes":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Size of command params in bytes"}},"required":["deploymentId","name"]},"ResolvedCommandTarget":{"type":"object","properties":{"target":{"type":"object","properties":{"resourceId":{"type":"string","description":"The resource ID within the deployment's stack (e.g. a Worker/Container/Daemon id)."},"resourceType":{"type":"string","enum":["worker","container","daemon"],"description":"The kind of command-capable resource a command targets."}},"required":["resourceId","resourceType"],"description":"Identifies the specific resource a command is addressed to."},"deliveryMode":{"type":"string","enum":["push","pull"],"description":"How a command is delivered to its target resource.\n\nThis is a Commands-protocol-specific concept and is intentionally distinct\nfrom `DeploymentModel` (see `stack_settings.rs`), which governs the\ninfrastructure-level push/pull wiring for a deployment. Serialized\nlowercase for consistency with `CommandTargetType`."}},"required":["target","deliveryMode"]},"UpdateCommandRequest":{"type":"object","properties":{"state":{"type":"string","enum":["PENDING_UPLOAD","PENDING","DISPATCHED","SUCCEEDED","FAILED","EXPIRED"],"description":"New command state"},"attempt":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Current attempt number"},"dispatchedAt":{"type":"string","nullable":true,"format":"date-time","description":"When command was dispatched"},"completedAt":{"type":"string","nullable":true,"format":"date-time","description":"When command completed"},"responseSizeBytes":{"type":"number","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Size of response in bytes"},"error":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Error details if failed"}}},"DispatchCommandResponse":{"type":"object","properties":{"updated":{"type":"boolean","description":"Whether the command transitioned; false if it was already terminal"}},"required":["updated"]},"DispatchCommandRequest":{"type":"object","properties":{"dispatchedAt":{"type":"string","format":"date-time","description":"When the command was dispatched"}},"required":["dispatchedAt"]},"CompleteCommandResponse":{"type":"object","properties":{"updated":{"type":"boolean","description":"Whether the command transitioned; false if it was already terminal"}},"required":["updated"]},"CompleteCommandRequest":{"type":"object","properties":{"state":{"type":"string","enum":["SUCCEEDED","FAILED","EXPIRED"],"description":"Terminal state to transition to"},"completedAt":{"type":"string","format":"date-time","description":"When the command completed"},"responseSizeBytes":{"type":"number","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Size of response in bytes"},"error":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Error details if failed"}},"required":["state","completedAt"]},"IncrementCommandAttemptResponse":{"type":"object","properties":{"attempt":{"type":"integer","description":"The attempt number after the increment"}},"required":["attempt"]},"DebugSessionListResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DebugSession"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"},"DebugSession":{"type":"object","properties":{"id":{"type":"string","pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Unique identifier for the debug session.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"owner":{"type":"string","nullable":true,"maxLength":128},"state":{"$ref":"#/components/schemas/DebugSessionState"},"mode":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"provider":{"type":"string","nullable":true,"enum":["aws","gcp","azure","kubernetes","machines","local","test",null],"description":"Represents the target cloud platform."},"presignedUrls":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/DebugPackagePresignedURLs"}},"error":{"nullable":true},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"}},"required":["id","state","mode","presignedUrls","createdAt","expiresAt","deploymentId","projectId","workspaceId"]},"DebugSessionState":{"type":"string","enum":["pending","running","stopping","stopped","expired","failed"]},"DebugPackagePresignedURLs":{"type":"object","properties":{"readUrl":{"type":"string","maxLength":2048,"format":"uri"},"writeUrl":{"type":"string","maxLength":2048,"format":"uri"}},"required":["readUrl","writeUrl"]},"CreateDebugSessionRequest":{"type":"object","properties":{"id":{"type":"string","pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Override the generated id. Manager passes the registry session id so logs correlate.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"owner":{"type":"string","nullable":true,"maxLength":128},"expiresAt":{"type":"string","format":"date-time"},"state":{"allOf":[{"$ref":"#/components/schemas/DebugSessionState"},{"description":"Initial state. Defaults to 'pending'."}]}},"required":["deploymentId","expiresAt"]},"UpdateDebugSessionRequest":{"type":"object","properties":{"state":{"$ref":"#/components/schemas/DebugSessionState"},"error":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"expiresAt":{"type":"string","format":"date-time"}}},"DeploymentInfo":{"type":"object","properties":{"tokenType":{"type":"string","enum":["deployment","deployment-group"],"description":"Type of token used to authenticate this request"},"deployment":{"type":"object","properties":{"name":{"type":"string"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."}},"required":["name","platform"],"description":"Deployment details (present when using a deployment-scoped token)"},"deploymentGroup":{"type":"object","properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string"},"pinnedSubdomain":{"type":"string","nullable":true}},"required":["id","name","pinnedSubdomain"],"description":"Deployment group details (present when using a deployment-group token)"},"workspace":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"avatarUrl":{"type":"string","nullable":true,"format":"uri"}},"required":["id","name"]},"project":{"type":"object","properties":{"name":{"type":"string"},"portal":{"type":"object","properties":{"appearance":{"$ref":"#/components/schemas/DeploymentPortalAppearance"}},"required":["appearance"]},"stackSummary":{"type":"object","nullable":true,"properties":{"platforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms supported by the active release"},"requiresNetwork":{"type":"boolean","description":"Whether the stack contains resources that require cloud VPC networking"},"resourceCounts":{"type":"object","properties":{"workers":{"type":"integer","minimum":0},"containers":{"type":"integer","minimum":0},"daemons":{"type":"integer","minimum":0,"description":"Daemon resources that run on managed runtime machines"},"publicHttpsEndpoints":{"type":"integer","minimum":0,"description":"Resources that declare managed public HTTPS endpoint setup"},"externalInfra":{"type":"integer","minimum":0,"description":"Storage, queue, KV, vault, database, or cache resources that Kubernetes needs Terraform to provision"},"total":{"type":"integer","minimum":0}},"required":["workers","containers","publicHttpsEndpoints","externalInfra","total"]},"publicEndpoints":{"type":"array","items":{"type":"object","properties":{"resourceId":{"type":"string"},"endpointName":{"type":"string"},"hostLabel":{"type":"string"},"wildcardSubdomains":{"type":"boolean"}},"required":["resourceId","endpointName","hostLabel","wildcardSubdomains"]},"description":"Public endpoints declared by the active release stack"}},"required":["platforms","requiresNetwork","resourceCounts","publicEndpoints"]},"generatedDomain":{"type":"object","nullable":true,"properties":{"domain":{"type":"string"},"isSystem":{"type":"boolean"}},"required":["domain","isSystem"],"description":"Parent domain for generated deployment URLs. Chosen public subdomains are only allowed when isSystem is false."}},"required":["name","portal"]},"packages":{"type":"object","properties":{"ready":{"type":"boolean","description":"True if all enabled packages are ready for deployment"},"cli":{"type":"object","properties":{"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"commandName":{"type":"string","description":"CLI command name to use in install instructions"},"version":{"type":"string"},"outputs":{"type":"object","properties":{"binaries":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sha256":{"type":"string","description":"SHA256 checksum"},"size":{"type":"integer","minimum":0,"description":"File size in bytes"},"url":{"type":"string","description":"Download URL for the binary"}},"required":["sha256","size","url"],"description":"Information about a single binary artifact"},"description":"Binary information for each target platform"},"buildInfo":{"type":"object","properties":{"alienSha":{"type":"string","description":"Alien source commit used to build the source CLI and agent binaries."},"horizonSha":{"type":"string","description":"Compute backend source revision used by optional package extensions, if applicable."},"machineBundleManifestUrl":{"type":"string","nullable":true,"description":"Machine runtime release manifest embedded into the generated CLI."},"platformSha":{"type":"string","description":"Source revision used to build the package service and optional extensions."},"sourceAgentBinarySha256":{"type":"string","nullable":true,"description":"SHA256 checksum of the source runtime helper binary shipped with the CLI package, when present."},"sourceCliBinarySha256":{"type":"string","description":"SHA256 checksum of the source deploy CLI binary before white-label config is appended."}},"required":["alienSha","horizonSha","platformSha","sourceCliBinarySha256"],"description":"Source provenance for a generated CLI package."}},"required":["binaries","buildInfo"],"description":"Outputs from a CLI package build"},"error":{"nullable":true},"installScripts":{"type":"object","properties":{"windows":{"type":"string","format":"uri"},"mac":{"type":"string","format":"uri"},"linux":{"type":"string","format":"uri"}},"required":["windows","mac","linux"],"description":"Install script URLs for each OS"}},"required":["status","commandName","installScripts"]},"cloudformation":{"type":"object","properties":{"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"version":{"type":"string"},"outputs":{"type":"object","properties":{"targets":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"launchStackUrl":{"type":"string","description":"AWS Console quick-launch URL"},"sha256":{"type":"string","description":"SHA256 checksum of the template"},"size":{"type":"integer","minimum":0,"description":"Template size in bytes"},"stackPolicyUrl":{"type":"string","description":"S3 URL to the CloudFormation stack policy"},"target":{"type":"string","description":"CloudFormation target (aws, eks)"},"templateUrl":{"type":"string","description":"S3 URL to the CloudFormation template"}},"required":["launchStackUrl","sha256","size","stackPolicyUrl","target","templateUrl"],"description":"Information about a single CloudFormation template package for one target."},"description":"Template artifacts by CloudFormation target."}},"required":["targets"],"description":"Outputs from a CloudFormation package build."},"error":{"nullable":true},"mode":{"type":"string","enum":["auto","outputs"]},"launchUrl":{"type":"string","format":"uri","description":"CloudFormation launch URL"},"outputsSchema":{"nullable":true}},"required":["status","mode","launchUrl"]},"terraform":{"type":"object","properties":{"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"version":{"type":"string"},"outputs":{"type":"object","properties":{"modules":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL for the module archive"},"filename":{"type":"string","description":"Filename of the module archive"},"shasum":{"type":"string","description":"SHA256 checksum of the archive"},"size":{"type":"integer","minimum":0,"description":"Size of the archive in bytes"},"source":{"type":"string","description":"Terraform module source (hostname/namespace/name/provider, without scheme)"},"target":{"type":"string","description":"Terraform module target (aws, gcp, azure, eks, gke, aks)"},"variables":{"type":"array","items":{"type":"string"},"description":"Terraform input variables exposed by this module."}},"required":["downloadUrl","filename","shasum","size","source","target"],"description":"Information about a single Terraform module package for one target."},"description":"Module registry artifacts by Terraform target."},"provider":{"type":"object","properties":{"gpgPublicKey":{"type":"object","properties":{"asciiArmor":{"type":"string","description":"ASCII-armored public key"},"keyId":{"type":"string","description":"GPG key ID"}},"required":["asciiArmor","keyId"],"description":"GPG public key for Terraform provider signature verification"},"platforms":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL for the provider zip"},"filename":{"type":"string","description":"Filename of the provider zip"},"shasum":{"type":"string","description":"SHA256 checksum of the zip file"},"shasumsSignatureUrl":{"type":"string","description":"URL to the shasums signature file"},"shasumsUrl":{"type":"string","description":"URL to the shasums file"},"size":{"type":"integer","minimum":0,"description":"Size of the zip file in bytes"}},"required":["downloadUrl","filename","shasum","shasumsSignatureUrl","shasumsUrl","size"],"description":"Information about a single Terraform provider package for a specific platform"},"description":"Provider packages for each target platform"},"source":{"type":"string","description":"Terraform provider source (hostname/namespace/type, without scheme)"}},"required":["gpgPublicKey","platforms","source"],"description":"Terraform provider registry outputs."}},"required":["modules","provider"],"description":"Outputs from a Terraform package build."},"error":{"nullable":true},"providerSource":{"type":"string","description":"Terraform provider source (without https://)"},"moduleSources":{"type":"object","additionalProperties":{"type":"string"},"description":"Terraform module sources by target"},"moduleVersion":{"type":"string"},"managerUrls":{"type":"object","additionalProperties":{"type":"string"},"description":"Manager URLs by Terraform target"}},"required":["status","providerSource","moduleSources","managerUrls"]},"helm":{"type":"object","properties":{"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"version":{"type":"string"},"outputs":{"type":"object","properties":{"chart":{"type":"string","description":"OCI chart reference (e.g., \"oci://public.ecr.aws/acme/charts/project-id\")"},"version":{"type":"string","description":"Chart version (e.g., \"1.2.3\")"}},"required":["chart","version"],"description":"Outputs from a Helm chart package build"},"error":{"nullable":true},"chartRef":{"type":"string","description":"OCI chart reference"},"managerFetchExample":{"type":"string"},"localImportExample":{"type":"string"}},"required":["status","chartRef"]}},"required":["ready"]},"installContext":{"type":"object","properties":{"targets":{"type":"object","additionalProperties":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"managerUrl":{"type":"string","format":"uri"},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}],"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."},"awsManagingAccountId":{"type":"string"}},"required":["platform","managerUrl"]},"description":"Deployment-session install context by Terraform/installer target"}},"required":["targets"]},"supportedRegions":{"$ref":"#/components/schemas/SupportedCloudRegions"},"setupConfig":{"$ref":"#/components/schemas/DeploymentInfoSetupConfig"},"readiness":{"type":"object","properties":{"status":{"type":"string","enum":["ready","notReady","unknown"]},"checks":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"status":{"type":"string","enum":["passed","failed","warning","unknown"]},"message":{"type":"string"},"checkedAt":{"type":"string"}},"required":["code","status","message","checkedAt"]}}},"required":["status","checks"]}},"required":["tokenType","workspace","project","packages","installContext","supportedRegions"]},"DeploymentPortalAppearance":{"type":"object","properties":{"avatarUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional project-specific avatar override for the deployment portal."},"preset":{"$ref":"#/components/schemas/DeploymentPortalAppearancePreset"},"accentColor":{"$ref":"#/components/schemas/DeploymentPortalAccentColor"},"title":{"type":"string","nullable":true,"maxLength":80,"description":"Optional portal title. Defaults to the project name."},"subtitle":{"type":"string","nullable":true,"maxLength":160,"description":"Optional customer-facing subtitle."},"supportUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional support or contact URL."},"docsUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional documentation URL."},"density":{"$ref":"#/components/schemas/DeploymentPortalDensity"}}},"SupportedCloudRegions":{"type":"object","properties":{"aws":{"type":"array","items":{"type":"string"},"description":"AWS regions supported by this Alien environment."},"gcp":{"type":"array","items":{"type":"string"},"description":"GCP regions supported by this Alien environment."},"azure":{"type":"array","items":{"type":"string"},"description":"Azure locations supported by this Alien environment."}},"required":["aws","gcp","azure"]},"DeploymentInfoSetupConfig":{"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"environmentVariables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","pattern":"^[A-Z_][A-Z0-9_]*$","description":"Variable name"},"type":{"$ref":"#/components/schemas/EnvironmentVariableType"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string","pattern":"^[a-zA-Z0-9_-]+(\\*)?$"},"description":"Target resource patterns (null = all resources, array = wildcard patterns)"}},"required":["name","type","targetResources"]}},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."}},"inputValues":{"type":"array","items":{"$ref":"#/components/schemas/ResolvedStackInputSummary"}}},"required":["metadata","policy","environmentVariables"]},"ResolvedStackInputSummary":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"]}},"required":{"type":"boolean"},"secret":{"type":"boolean"},"provided":{"type":"boolean"}},"required":["id","label","providedBy","required","secret","provided"]},"DeploymentComputePlan":{"type":"object","properties":{"pools":{"type":"array","items":{"type":"object","properties":{"poolId":{"type":"string"},"workloads":{"type":"array","items":{"type":"string"}},"requirements":{"type":"object","properties":{"cpu":{"type":"string"},"memoryBytes":{"type":"integer","minimum":0},"ephemeralStorageBytes":{"type":"integer","minimum":0},"architecture":{"type":"string","nullable":true,"enum":["arm64","x86_64",null]},"gpu":{"type":"object","nullable":true,"properties":{"type":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["type","count"]}},"required":["cpu","memoryBytes","ephemeralStorageBytes"]},"scale":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["fixed"]},"machines":{"type":"object","properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"default":{"type":"integer","minimum":0}},"required":["min","max","default"]}},"required":["type","machines"]},{"type":"object","properties":{"type":{"type":"string","enum":["autoscale"]},"min":{"type":"object","properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"default":{"type":"integer","minimum":0}},"required":["min","max","default"]},"max":{"type":"object","properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"default":{"type":"integer","minimum":0}},"required":["min","max","default"]}},"required":["type","min","max"]}]},"selected":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["fixed"]},"machines":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","machines"]},{"type":"object","properties":{"mode":{"type":"string","enum":["autoscale"]},"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","min","max"]}]},"recommended":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["fixed"]},"machines":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","machines"]},{"type":"object","properties":{"mode":{"type":"string","enum":["autoscale"]},"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","min","max"]}]},"machines":{"type":"array","items":{"type":"object","properties":{"machine":{"type":"string"},"profile":{"type":"object","properties":{"cpu":{"type":"string"},"memoryBytes":{"type":"integer","minimum":0},"ephemeralStorageBytes":{"type":"integer","minimum":0},"architecture":{"type":"string","nullable":true,"enum":["arm64","x86_64",null]},"gpu":{"type":"object","nullable":true,"properties":{"type":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["type","count"]}},"required":["cpu","memoryBytes","ephemeralStorageBytes"]},"recommended":{"type":"boolean"}},"required":["machine","profile","recommended"]}},"errors":{"type":"array","items":{"type":"string"}}},"required":["poolId","workloads","requirements","scale","selected","recommended","machines"]}}},"required":["pools"]},"PreparedDeploymentStack":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure"]},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"setup":{"$ref":"#/components/schemas/SetupFingerprintInfo"}},"required":["platform","stack","setup"]},"SlackInstallUrlResponse":{"type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"]},"SlackIntegrationStatus":{"type":"object","properties":{"connected":{"type":"boolean"},"slackTeamId":{"type":"string","nullable":true},"slackTeamName":{"type":"string","nullable":true},"installedByUserId":{"type":"string","nullable":true},"installedAt":{"type":"string","nullable":true},"notificationChannelId":{"type":"string","nullable":true}},"required":["connected","slackTeamId","slackTeamName","installedByUserId","installedAt","notificationChannelId"]},"SlackChannelsResponse":{"type":"object","properties":{"channels":{"type":"array","items":{"$ref":"#/components/schemas/SlackChannel"}}},"required":["channels"]},"SlackChannel":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"isMember":{"type":"boolean"}},"required":["id","name","isMember"]},"SlackNotificationChannelResponse":{"type":"object","properties":{"notificationChannelId":{"type":"string","nullable":true},"warning":{"type":"string","nullable":true}},"required":["notificationChannelId","warning"]},"SlackNotificationChannelRequest":{"type":"object","properties":{"channelId":{"type":"string","nullable":true}},"required":["channelId"]},"AgentSessionListResponse":{"type":"object","properties":{"sessions":{"type":"array","items":{"$ref":"#/components/schemas/AgentSessionListItem"}}},"required":["sessions"]},"AgentSessionListItem":{"type":"object","properties":{"id":{"type":"string"},"triggerType":{"type":"string"},"subjectId":{"type":"string"},"subject":{"$ref":"#/components/schemas/AgentSessionSubject"},"status":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","triggerType","subjectId","subject","status","createdAt","updatedAt"]},"AgentSessionSubject":{"type":"object","properties":{"deploymentName":{"type":"string","nullable":true},"deploymentGroupId":{"type":"string","nullable":true},"deploymentGroupName":{"type":"string","nullable":true},"releaseId":{"type":"string","nullable":true},"releaseCommitMessage":{"type":"string","nullable":true},"releaseCommitRef":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"projectName":{"type":"string","nullable":true}},"required":["deploymentName","deploymentGroupId","deploymentGroupName","releaseId","releaseCommitMessage","releaseCommitRef","projectId","projectName"]},"AgentSessionDetail":{"allOf":[{"$ref":"#/components/schemas/AgentSessionListItem"},{"type":"object","properties":{"resultText":{"type":"string","nullable":true},"toolNames":{"type":"array","nullable":true,"items":{"type":"string"}},"error":{"type":"string","nullable":true},"pendingApproval":{"type":"object","nullable":true,"properties":{"approvalId":{"type":"string"},"toolCallId":{"type":"string"},"toolName":{"type":"string"},"input":{"nullable":true}},"required":["approvalId","toolCallId","toolName"]}},"required":["resultText","toolNames","error","pendingApproval"]}]},"AgentSessionEventsResponse":{"type":"object","properties":{"events":{"type":"array","items":{"$ref":"#/components/schemas/AgentSessionEvent"}},"latestSeq":{"type":"number"},"hasMore":{"type":"boolean"}},"required":["events","latestSeq","hasMore"]},"AgentSessionEvent":{"oneOf":[{"$ref":"#/components/schemas/AgentSessionStatusEvent"},{"$ref":"#/components/schemas/AgentSessionStepEvent"},{"$ref":"#/components/schemas/AgentSessionToolCallEvent"},{"$ref":"#/components/schemas/AgentSessionToolResultEvent"},{"$ref":"#/components/schemas/AgentSessionMarkdownEvent"},{"$ref":"#/components/schemas/AgentSessionApprovalRequestedEvent"},{"$ref":"#/components/schemas/AgentSessionApprovalGrantedEvent"},{"$ref":"#/components/schemas/AgentSessionRestartedEvent"},{"$ref":"#/components/schemas/AgentSessionEventsTruncatedEvent"}],"discriminator":{"propertyName":"type","mapping":{"status":"#/components/schemas/AgentSessionStatusEvent","step":"#/components/schemas/AgentSessionStepEvent","tool_call":"#/components/schemas/AgentSessionToolCallEvent","tool_result":"#/components/schemas/AgentSessionToolResultEvent","markdown":"#/components/schemas/AgentSessionMarkdownEvent","approval_requested":"#/components/schemas/AgentSessionApprovalRequestedEvent","approval_granted":"#/components/schemas/AgentSessionApprovalGrantedEvent","session_restarted":"#/components/schemas/AgentSessionRestartedEvent","events_truncated":"#/components/schemas/AgentSessionEventsTruncatedEvent"}}},"AgentSessionStatusEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["status"]},"payload":{"type":"object","properties":{"status":{"type":"string"},"error":{"type":"string"}},"required":["status"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionStepEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["step"]},"payload":{"type":"object","properties":{"stepId":{"type":"string"},"title":{"type":"string"},"status":{"type":"string","enum":["in_progress","complete","error"]}},"required":["stepId","title","status"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionToolCallEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["tool_call"]},"payload":{"type":"object","properties":{"toolCallId":{"type":"string"},"toolName":{"type":"string"},"input":{"nullable":true}},"required":["toolCallId","toolName"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionToolResultEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["tool_result"]},"payload":{"type":"object","properties":{"toolCallId":{"type":"string","nullable":true},"toolName":{"type":"string","nullable":true},"ok":{"type":"boolean"},"output":{"nullable":true}},"required":["toolCallId","toolName","ok"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionMarkdownEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["markdown"]},"payload":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionApprovalRequestedEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["approval_requested"]},"payload":{"type":"object","properties":{"approvalId":{"type":"string"},"toolCallId":{"type":"string"},"toolName":{"type":"string"},"input":{"nullable":true}},"required":["approvalId","toolCallId","toolName"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionApprovalGrantedEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["approval_granted"]},"payload":{"type":"object","properties":{"approvalId":{"type":"string"},"approvedByUserId":{"type":"string"},"approvedByName":{"type":"string","nullable":true},"source":{"type":"string","enum":["dashboard","slack"]}},"required":["approvalId","approvedByUserId","approvedByName","source"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionRestartedEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["session_restarted"]},"payload":{"type":"object","properties":{"reason":{"type":"string"}},"required":["reason"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionEventsTruncatedEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["events_truncated"]},"payload":{"type":"object","properties":{"limit":{"type":"number"}},"required":["limit"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionApproveResponse":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string"},"resumed":{"type":"boolean"}},"required":["jobId","status","resumed"]},"AgentSessionStopResponse":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string"},"canceled":{"type":"boolean"}},"required":["jobId","status","canceled"]},"SyncListResponse":{"type":"object","properties":{"deployments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!ag[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment name.","example":"acme-prod"},"publicSubdomain":{"type":"string","nullable":true,"minLength":1,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","description":"Public subdomain for auto-generated domains"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"basePlatform":{"type":"string","nullable":true,"enum":["aws","gcp","azure",null],"description":"Underlying cloud platform for Kubernetes deployments."},"region":{"type":"string","nullable":true,"description":"Cloud region or location for the deployment."},"deploymentProtocolVersion":{"$ref":"#/components/schemas/DeploymentProtocolVersion"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"ID of deployment group this deployment belongs to","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-provided configuration (network, deployment model, approvals)"},"stackState":{"type":"object","nullable":true,"properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"State of infrastructure components managed by this deployment"},"runtimeMetadata":{"type":"object","nullable":true,"properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment state persistence"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the currently deployed release (actual state)","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the desired release for deployment/update (desired state)","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"releaseChannel":{"allOf":[{"$ref":"#/components/schemas/ReleaseChannelName"},{"description":"Named release stream followed when the deployment is not pinned"}]},"importSource":{"type":"string","nullable":true,"enum":["cloudformation","terraform","helm",null],"description":"Setup source that imported this deployment"},"setupMethod":{"type":"string","nullable":true,"enum":["cloudformation","google-oauth","terraform","helm","cli","manual",null],"description":"Setup method that created the deployment record and owns setup-time resources."},"setupMetadata":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Setup method metadata needed to guide privileged teardown."},"setupTarget":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup target for compatibility checks"},"setupFingerprint":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup compatibility fingerprint"},"setupFingerprintVersion":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Imported setup fingerprint algorithm version"},"operatorScope":{"type":"string","nullable":true,"description":"Display-only scope reported by the Operator manifest"},"operatorPermission":{"type":"string","nullable":true,"description":"Display-only permission tier reported by the Operator manifest"},"operatorVersion":{"type":"string","nullable":true,"description":"Version reported by the Operator"},"capabilities":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OperatorCapabilityReport"},"description":"Capability state reported by the Operator"},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat from the deployment"},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Latest error information if the deployment is in a failed state"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"ID of the manager responsible for this deployment"}]},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"userEnvironmentVariables":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"}},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}],"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."},"deploymentToken":{"type":"string","nullable":true},"lockedBy":{"type":"string","nullable":true},"lockedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["id","name","status","projectId","platform","deploymentProtocolVersion","deploymentGroupId","stackSettings","releaseChannel","retryRequested","createdAt","updatedAt","managerId","workspaceId","userEnvironmentVariables"]}}},"required":["deployments"],"description":"Full deployment records for manager operation"},"SyncListRequest":{"type":"object","properties":{"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Manager requesting the deployments. Manager-scoped tokens are always constrained to their own manager ID."}]},"deploymentIds":{"type":"array","items":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"description":"Specific deployment IDs to include"},"statuses":{"type":"array","items":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"description":"Filter by deployment status"},"platforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Filter by deployment platform"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Filter by deployment group ID","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"limit":{"type":"integer","minimum":1,"maximum":500,"description":"Maximum records to return"}},"additionalProperties":false,"description":"Request to list full operational deployments"},"SyncAcquireResponseDeployment":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"ID of the deployment","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"projectId":{"type":"string","description":"Project ID the deployment belongs to"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Deployment group ID the deployment belongs to","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"setupMethod":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMethod"},{"description":"Setup method recorded on the deployment when it has a setup-owned path."}]},"current":{"type":"object","properties":{"currentRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}]},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"protocolVersion":{"type":"integer","minimum":0,"description":"Protocol version for cross-actor compatibility.\nAll actors (manager, push client, agent) check this before stepping.\nMismatched versions produce a clear error instead of silent corruption.\nSee docs/02-manager/10-deployment-protocol.md."},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment\nWhen true and status is a failed state, the deployment system will retry failed resources"},"runtimeMetadata":{"oneOf":[{"type":"object","properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment\n\nStores deployment state that needs to persist across step calls."},{"nullable":true}]},"stackState":{"oneOf":[{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"Represents the collective state of all resources in a stack, including platform and pending actions."},{"nullable":true}]},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"targetRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]}},"required":["platform","protocolVersion","status"],"description":"Current deployment state (includes releases)"},"config":{"type":"object","properties":{"allowFrozenChanges":{"type":"boolean","description":"Allow frozen resource changes during updates\nWhen true, skips the frozen resources compatibility check.\nThis requires running with elevated cloud credentials."},"basePlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"computeBackend":{"oneOf":[{"allOf":[{"type":"object","properties":{"clusters":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"clusterId":{"type":"string","description":"Cluster ID (deterministic: workspace/project/deployment/resourceid)"},"managementToken":{"type":"string","description":"Management token for API access (hm_...)\nUsed by alien-deployment controllers to create/update containers"}},"required":["clusterId","managementToken"],"description":"Configuration for a single container worker cluster.\n\nContains the cluster ID and management token needed to interact with\nthe managed container control plane API for container operations."},"description":"Cluster configurations (one per ComputeCluster resource)\nKey: ComputeCluster resource ID from stack\nValue: Cluster ID and management token for that cluster"},"horizonMachineImage":{"oneOf":[{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"amis":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"AMI IDs by architecture, then AWS region."}},"required":["amis"],"description":"AWS Horizon machine image catalog."},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"images":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"imageVersionId":{"type":"string","description":"Azure Compute Gallery image version ID."}},"required":["imageVersionId"],"description":"Azure Horizon machine image entry."},"description":"Images by architecture."}},"required":["images"],"description":"Azure Horizon machine image catalog."},{"nullable":true}]},"baseImage":{"type":"object","properties":{"name":{"type":"string","description":"Base OS image name."},"version":{"type":"string","description":"Base OS image version or channel."}},"required":["name","version"],"description":"Base image metadata for the Horizon machine image."},"channel":{"type":"string","description":"Logical image channel, such as prod, staging, or canary."},"createdAt":{"type":"string","description":"Image manifest creation timestamp."},"gcp":{"oneOf":[{"type":"object","properties":{"images":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sourceImage":{"type":"string","description":"Source image self link or image-family URL."}},"required":["sourceImage"],"description":"GCP Horizon machine image entry."},"description":"Images by architecture."}},"required":["images"],"description":"GCP Horizon machine image catalog."},{"nullable":true}]},"gitSha":{"type":"string","description":"Git commit SHA used to build the image."},"horizondArtifacts":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sha256":{"type":"string","description":"SHA-256 digest for the artifact payload."},"url":{"type":"string","description":"HTTPS URL for the artifact."}},"required":["sha256","url"],"description":"Download artifact for one horizond release platform."},"description":"Per-architecture horizond artifacts by release-platform key."},"horizondVersion":{"type":"string","description":"horizond daemon version baked into the image."},"machineImageVersion":{"type":"string","description":"Published immutable machine image version."}},"required":["baseImage","channel","createdAt","gitSha","horizondArtifacts","horizondVersion","machineImageVersion"],"description":"Horizon machine image catalog.\n\nPlatform resolves concrete provider images from this catalog during rollout."},{"nullable":true}]},"url":{"type":"string","description":"Horizon control-plane API base URL."}},"required":["clusters","url"],"description":"Horizon control-plane configuration for container orchestration.\n\nContains all the information needed for Alien to interact with managed\ncontainer clusters during deployment. Each ComputeCluster resource gets its own\nentry in the clusters map."},{"type":"object","properties":{"type":{"type":"string","enum":["horizon"]}},"required":["type"]}],"description":"Compute backend for Container and Worker resources.\n\nDetermines how compute workloads are orchestrated on cloud platforms.\nWhen None, the platform default is used for cloud platforms."},{"nullable":true}]},"deploymentName":{"type":"string","nullable":true,"description":"Human-readable deployment name for cloud console metadata.\n\nThis is separate from the physical resource prefix in StackState. It is\nused only for display text such as IAM role descriptions, service\naccount descriptions, and custom role titles."},"deploymentToken":{"type":"string","nullable":true,"description":"Deployment token for pull authentication with the manager's registry.\n\nUsed by controllers to configure registry credentials so cloud platforms\nand K8s can pull images from the manager's `/v2/` endpoint."},"domainMetadata":{"oneOf":[{"type":"object","properties":{"baseDomain":{"type":"string","description":"Base domain for auto-generated domains (e.g., \"vpc.direct\")."},"hostedZoneId":{"type":"string","description":"Hosted zone ID for DNS records."},"publicSubdomain":{"type":"string","description":"Deployment public subdomain (e.g., \"k8f2j3\")."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"aliases":{"type":"array","items":{"type":"object","properties":{"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message. Present when DNS previously failed, even if status\nwas reset to pending for retry. Used to surface actionable error context\nin WaitingForDns failure messages."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a managed hostname.\n\nIncludes decrypted certificate data for issued certificates.\nPrivate keys are deployment-scoped secrets (like environment variables)."},"description":"Additional managed hostnames for the resource."},"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"endpoints":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message. Present when DNS previously failed, even if status\nwas reset to pending for retry. Used to surface actionable error context\nin WaitingForDns failure messages."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a managed hostname.\n\nIncludes decrypted certificate data for issued certificates.\nPrivate keys are deployment-scoped secrets (like environment variables)."},"description":"Endpoint-scoped metadata keyed by endpoint name."},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a public resource.\n\nThe direct fields describe the primary endpoint hostname. `endpoints`\ncontains endpoint-scoped metadata keyed by endpoint name. `aliases` contains\nadditional managed hostnames that route directly to the primary endpoint."},"description":"Metadata per resource ID."}},"required":["baseDomain","hostedZoneId","publicSubdomain","resources"],"description":"Domain metadata for auto-managed public resources (no private keys)."},{"nullable":true}]},"environmentVariables":{"type":"object","properties":{"createdAt":{"type":"string","description":"ISO 8601 timestamp when snapshot was created"},"hash":{"type":"string","description":"Deterministic hash of all variables (for change detection)"},"variables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Variable name"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource patterns (null = all resources, Some = wildcard patterns)"},"type":{"type":"string","enum":["plain","secret"],"description":"Type of environment variable"},"value":{"type":"string","description":"Variable value (decrypted - deployment has access to decryption keys)"}},"required":["name","type","value"],"description":"Environment variable for deployment"},"description":"Environment variables in the snapshot"}},"required":["createdAt","hash","variables"],"description":"Snapshot of environment variables at a point in time"},"externalBindings":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"bucketName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS S3 storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["s3"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"containerName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Blob Storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["blob"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"bucketName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Google Cloud Storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["gcs"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"storagePath":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local filesystem storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["local-storage"]}},"required":["service"]}]}],"description":"Service-type based storage binding that supports multiple storage providers"},{"type":"object","properties":{"type":{"type":"string","enum":["storage"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"queueUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS SQS queue parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["sqs"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"subscription":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"topic":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Pub/Sub parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["pubsub"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"queueName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Service Bus parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["servicebus"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"queuePath":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local queue parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["local-queue"]}},"required":["service"]}]}],"description":"Binding parameters for Queue at runtime or in templates."},{"type":"object","properties":{"type":{"type":"string","enum":["queue"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"endpointUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"region":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"tableName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS DynamoDB KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["dynamodb"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"collectionName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"databaseId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"projectId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Firestore KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["firestore"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"tableName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Table Storage KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["tablestorage"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"connectionUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"database":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"keyPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Redis KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["redis"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"keyPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Local development KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["local-kv"]}},"required":["service"]}]}],"description":"Represents a KV binding for key-value storage across platforms"},{"type":"object","properties":{"type":{"type":"string","enum":["kv"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"pullRoleArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"pushRoleArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"repositoryPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS ECR (Elastic Container Registry) binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["ecr"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"registryName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"repositoryPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Container Registry binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["acr"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"pullServiceAccountEmail":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"pushServiceAccountEmail":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"repositoryName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Google Artifact Registry binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["gar"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"type":"string"},{"nullable":true},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"registryUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local container registry binding configuration.\n\nThe local registry runs on localhost only and does not require authentication.\nSecurity boundary is the OS process isolation on the customer's machine.\nExternal image access is secured by the manager's registry proxy (deployment tokens)."},{"type":"object","properties":{"service":{"type":"string","enum":["local"]}},"required":["service"]}]}],"description":"Service-type based artifact registry binding that supports multiple registry providers"},{"type":"object","properties":{"type":{"type":"string","enum":["artifact_registry"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS SSM Parameter Store vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["parameter-store"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Secret Manager vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["secret-manager"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"vaultName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Key Vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["key-vault"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Kubernetes Secrets vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["kubernetes-secret"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"vaultName":{"type":"string","description":"The vault name for local storage"}},"required":["vaultName"],"description":"Local development vault binding (for testing/development)"},{"type":"object","properties":{"service":{"type":"string","enum":["local-vault"]}},"required":["service"]}]}],"description":"Represents a vault binding for secure secret management"},{"type":"object","properties":{"type":{"type":"string","enum":["vault"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"defaultDomain":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"environmentName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"staticIp":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Binding configuration for a pre-existing Azure Container Apps Environment.\n\nUsed when deploying to an existing environment instead of having Alien provision one.\nThis is useful for shared environments (e.g., test infrastructure) or enterprise\nsetups where environments are managed by a separate team."},{"type":"object","properties":{"type":{"type":"string","enum":["container_apps_environment"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"clusterEndpoint":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS Aurora Serverless v2 binding."},{"type":"object","properties":{"service":{"type":"string","enum":["aurora"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"serverCaCertificates":{"oneOf":[{"type":"array","items":{"type":"string"}},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Cloud SQL binding."},{"type":"object","properties":{"service":{"type":"string","enum":["cloud-sql"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretUri":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Flexible Server binding."},{"type":"object","properties":{"service":{"type":"string","enum":["flexible-server"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"password":{"type":"string","description":"Connection password as a concrete value, never an unresolved `SecretRef`: the platform\nmaterializes the Kubernetes secret into the pod env. The cloud variants carry a secret\nlocator instead."},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"sslMode":{"type":"string","enum":["verify-full","disable"],"description":"TLS policy for an operator-provided / BYO Postgres database.\n\nUnlike libpq's ambiguous `prefer` mode, both choices map exactly to the\nconnection settings exposed by every supported SDK."},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"required":["password"],"description":"Operator-provided / BYO database binding."},{"type":"object","properties":{"service":{"type":"string","enum":["external"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"password":{"type":"string"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"required":["password"],"description":"Local embedded Postgres binding."},{"type":"object","properties":{"service":{"type":"string","enum":["local-postgres"]}},"required":["service"]}]}],"description":"Connection details for a Postgres database, one variant per backend."},{"type":"object","properties":{"type":{"type":"string","enum":["postgres"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"apiKey":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"provider":{"type":"string","description":"The external AI provider name (e.g., \"openai\", \"anthropic\")"}},"required":["provider"],"description":"External AI provider binding configuration (BYO-key).\n\nThe operator-supplied secret rides inside the binding via\n`BindingValue`, so it is a literal on cloud platforms and gains\nKubernetes SecretRef resolution for free (`extract_binding_secrets` walks\nthe binding JSON for `secretRef`)."},{"type":"object","properties":{"type":{"type":"string","enum":["ai"]}},"required":["type"]}]}],"description":"Represents a binding to pre-existing infrastructure.\n\nThe binding type must match the resource type it's applied to.\nValidated at runtime by the executor."},"description":"Map from resource ID to external binding.\n\nValidated at runtime: binding type must match resource type."},"inputValues":{"type":"object","properties":{},"additionalProperties":{"nullable":true},"description":"Deployer-provided stack input values, keyed by input id. A resource\ngated with `.enabled(input)` and a Live lifecycle follows these\nvalues; a missing key falls back to the input's declared boolean\ndefault. Suppliers must not place secret-kind input values here:\nthis map serializes and debug-prints unredacted."},"labelDomain":{"type":"string","nullable":true,"description":"DNS-style label domain used for Kubernetes resource ownership labels.\n\nDefaults to `alien.dev` when absent. Whitelabeled Operator builds set this\nso generated workloads and optional log collectors share the same label\nnamespace."},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}]},"managerUrl":{"type":"string","nullable":true,"description":"Manager base URL (e.g., \"https://manager.alien.dev\").\n\nThe manager IS the container registry — its `/v2/` endpoint serves as\nthe OCI Distribution API. Controllers derive the proxy host from this\nto configure pull auth (RegistryCredentials, imagePullSecrets).\n\nWhen None (e.g., `alien dev`), controllers use image URIs as-is."},"monitoring":{"oneOf":[{"type":"object","properties":{"logsAuthHeader":{"type":"string","description":"Auth header value in \"key=value,...\" format.\nExample: \"authorization=Bearer \""},"logsEndpoint":{"type":"string","description":"Full OTLP logs endpoint URL.\nExample: \"https:///v1/logs\""},"metricsAuthHeader":{"type":"string","nullable":true,"description":"Auth header value for the metrics endpoint in \"key=value,...\" format (optional).\n\nWhen absent, `logs_auth_header` is reused for metrics -- suitable when the same\ncredential covers both signals. When present (e.g. Axiom with separate datasets),\nthis value is used exclusively for metrics.\n\nExample: \"authorization=Bearer ,x-axiom-dataset=\""},"metricsEndpoint":{"type":"string","nullable":true,"description":"Full OTLP metrics endpoint URL (optional).\nWhen set, the worker runtime exports its own VM/container orchestration metrics here.\nExample: \"https://api.axiom.co/v1/metrics\""},"resourceAttributes":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Resource attributes attached to every OTLP signal emitted for this deployment.\n\nPlatform managers use this for stable identity such as `alien.workspace_id`,\n`alien.project_id`, `alien.deployment_group_id`, and `alien.deployment_id`.\nRuntime-specific resource attributes such as `service.name` remain owned by\nthe runtime/exporter."}},"required":["logsAuthHeader","logsEndpoint"],"description":"OTLP log export configuration for a deployment.\n\nWhen set, injected compute runtimes export captured application logs\nthrough the given endpoint via OTLP/HTTP; which resources are injected\nis platform-dependent. Workers read auth headers from a runtime-only\nsecret. Runtime-less Containers and Daemons receive standard OTEL auth\nvariables only at the final hosting boundary: Local passes them directly\nto the process and Kubernetes projects them from a per-workload Secret."},{"nullable":true}]},"nativeImageHost":{"type":"string","nullable":true,"description":"Native image registry host+prefix for platforms that require it.\n\nLambda (ECR) and Cloud Run (GAR) require native registry URIs. Other\nruntimes, including Azure Container Apps, pull through the manager's\nregistry proxy.\n\nDerived by the manager from the artifact registry binding:\n- ECR: `{account_id}.dkr.ecr.{region}.amazonaws.com/{repository_prefix}`\n- GAR: `{region}-docker.pkg.dev/{project_id}/{repository_name}`"},"observeAllNamespaces":{"type":"boolean","description":"When true the observe pass reports raw resources across every namespace\n(cluster scope); otherwise it stays within the operator's own namespace.\nThe label selector, if any, still filters within whichever scope applies.\nIgnored by cloud observers."},"observeLabelSelector":{"type":"string","nullable":true,"description":"Kubernetes label selector that narrows which raw resources the observe\npass reports (e.g. `app.kubernetes.io/part-of=my-app`). `None` observes\neverything in the namespace. Ignored by cloud observers."},"publicEndpoints":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Public endpoint URLs for exposed resources (optional override).\n\nUse this only when a caller already knows the public URL. Managed public\nendpoint flows should prefer `domain_metadata` plus controller-reported\nload balancer outputs so DNS, certificate renewal, and route readiness\nstay tied to the resource state.\n\nIf not set, platforms determine public endpoint URLs from other sources:\n- Managed DNS/TLS flows: `domain_metadata` FQDN or load balancer DNS\n- Local: `http://localhost:{allocated_port}`\n- Custom or disabled exposure: no public endpoint URL unless a controller reports one\n\nOuter key: resource ID. Inner key: endpoint name. Value: public URL."},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["environmentVariables"],"description":"Deployment configuration"}},"required":["deploymentId","projectId","deploymentGroupId","current","config"]},"SyncContextRequest":{"type":"object","properties":{"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Manager requesting the context. Manager-scoped tokens are constrained to their own manager ID."}]},"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"}},"required":["deploymentId"],"additionalProperties":false},"SyncAcquireResponse":{"type":"object","properties":{"deployments":{"type":"array","items":{"$ref":"#/components/schemas/SyncAcquireResponseDeployment"},"description":"List of acquired deployments with deployment context"},"failures":{"type":"array","items":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"ID of the deployment that failed","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"projectId":{"type":"string","description":"Project ID the deployment belongs to"},"error":{"allOf":[{"$ref":"#/components/schemas/APIError"},{"description":"Error that occurred during context building"}]}},"required":["deploymentId","projectId","error"]},"description":"List of deployments that failed during context building (locks already released)"},"leaseExpiresAt":{"type":"string","nullable":true,"format":"date-time","description":"When the provisional leases on the returned deployments lapse. Confirm them with sync/renew before starting work. Null when nothing was acquired."}},"required":["deployments","failures","leaseExpiresAt"],"description":"Acquired deployments and failures"},"SyncAcquireRequest":{"type":"object","properties":{"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Manager requesting the deployments. If omitted, resolved from each deployment's managerId column."}]},"session":{"type":"string","description":"Unique session identifier for lock tracking"},"requestId":{"type":"string","minLength":1,"description":"Idempotency key for one logical acquire request"},"deploymentIds":{"type":"array","items":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"description":"Specific deployment IDs to lock (for Pull model sync)"},"statuses":{"type":"array","items":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"description":"Filter by deployment statuses (default: all deployment statuses)"},"platforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Filter by platforms (default: all platforms the Manager supports)"},"setupMethod":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMethod"},{"description":"Filter by setup method for setup-owned acquisition paths"}]},"acquireMode":{"type":"string","enum":["runtime","setup-run","setup-teardown"],"description":"Phase ownership mode for deployment acquisition"},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Filter by deployment model from stackSettings.deploymentModel."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum number of deployments to acquire (default: 10)"}},"required":["session","requestId","deploymentModel"],"additionalProperties":false,"description":"Request to acquire deployments for processing"},"SyncReconcileResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the state was reconciled"},"current":{"type":"object","properties":{"currentRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}]},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"protocolVersion":{"type":"integer","minimum":0,"description":"Protocol version for cross-actor compatibility.\nAll actors (manager, push client, agent) check this before stepping.\nMismatched versions produce a clear error instead of silent corruption.\nSee docs/02-manager/10-deployment-protocol.md."},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment\nWhen true and status is a failed state, the deployment system will retry failed resources"},"runtimeMetadata":{"oneOf":[{"type":"object","properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment\n\nStores deployment state that needs to persist across step calls."},{"nullable":true}]},"stackState":{"oneOf":[{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"Represents the collective state of all resources in a stack, including platform and pending actions."},{"nullable":true}]},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"targetRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]}},"required":["platform","protocolVersion","status"],"description":"Current deployment state after reconciliation"},"target":{"type":"object","properties":{"config":{"type":"object","properties":{"allowFrozenChanges":{"type":"boolean","description":"Allow frozen resource changes during updates\nWhen true, skips the frozen resources compatibility check.\nThis requires running with elevated cloud credentials."},"basePlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"computeBackend":{"oneOf":[{"allOf":[{"type":"object","properties":{"clusters":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"clusterId":{"type":"string","description":"Cluster ID (deterministic: workspace/project/deployment/resourceid)"},"managementToken":{"type":"string","description":"Management token for API access (hm_...)\nUsed by alien-deployment controllers to create/update containers"}},"required":["clusterId","managementToken"],"description":"Configuration for a single container worker cluster.\n\nContains the cluster ID and management token needed to interact with\nthe managed container control plane API for container operations."},"description":"Cluster configurations (one per ComputeCluster resource)\nKey: ComputeCluster resource ID from stack\nValue: Cluster ID and management token for that cluster"},"horizonMachineImage":{"oneOf":[{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"amis":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"AMI IDs by architecture, then AWS region."}},"required":["amis"],"description":"AWS Horizon machine image catalog."},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"images":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"imageVersionId":{"type":"string","description":"Azure Compute Gallery image version ID."}},"required":["imageVersionId"],"description":"Azure Horizon machine image entry."},"description":"Images by architecture."}},"required":["images"],"description":"Azure Horizon machine image catalog."},{"nullable":true}]},"baseImage":{"type":"object","properties":{"name":{"type":"string","description":"Base OS image name."},"version":{"type":"string","description":"Base OS image version or channel."}},"required":["name","version"],"description":"Base image metadata for the Horizon machine image."},"channel":{"type":"string","description":"Logical image channel, such as prod, staging, or canary."},"createdAt":{"type":"string","description":"Image manifest creation timestamp."},"gcp":{"oneOf":[{"type":"object","properties":{"images":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sourceImage":{"type":"string","description":"Source image self link or image-family URL."}},"required":["sourceImage"],"description":"GCP Horizon machine image entry."},"description":"Images by architecture."}},"required":["images"],"description":"GCP Horizon machine image catalog."},{"nullable":true}]},"gitSha":{"type":"string","description":"Git commit SHA used to build the image."},"horizondArtifacts":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sha256":{"type":"string","description":"SHA-256 digest for the artifact payload."},"url":{"type":"string","description":"HTTPS URL for the artifact."}},"required":["sha256","url"],"description":"Download artifact for one horizond release platform."},"description":"Per-architecture horizond artifacts by release-platform key."},"horizondVersion":{"type":"string","description":"horizond daemon version baked into the image."},"machineImageVersion":{"type":"string","description":"Published immutable machine image version."}},"required":["baseImage","channel","createdAt","gitSha","horizondArtifacts","horizondVersion","machineImageVersion"],"description":"Horizon machine image catalog.\n\nPlatform resolves concrete provider images from this catalog during rollout."},{"nullable":true}]},"url":{"type":"string","description":"Horizon control-plane API base URL."}},"required":["clusters","url"],"description":"Horizon control-plane configuration for container orchestration.\n\nContains all the information needed for Alien to interact with managed\ncontainer clusters during deployment. Each ComputeCluster resource gets its own\nentry in the clusters map."},{"type":"object","properties":{"type":{"type":"string","enum":["horizon"]}},"required":["type"]}],"description":"Compute backend for Container and Worker resources.\n\nDetermines how compute workloads are orchestrated on cloud platforms.\nWhen None, the platform default is used for cloud platforms."},{"nullable":true}]},"deploymentName":{"type":"string","nullable":true,"description":"Human-readable deployment name for cloud console metadata.\n\nThis is separate from the physical resource prefix in StackState. It is\nused only for display text such as IAM role descriptions, service\naccount descriptions, and custom role titles."},"deploymentToken":{"type":"string","nullable":true,"description":"Deployment token for pull authentication with the manager's registry.\n\nUsed by controllers to configure registry credentials so cloud platforms\nand K8s can pull images from the manager's `/v2/` endpoint."},"domainMetadata":{"oneOf":[{"type":"object","properties":{"baseDomain":{"type":"string","description":"Base domain for auto-generated domains (e.g., \"vpc.direct\")."},"hostedZoneId":{"type":"string","description":"Hosted zone ID for DNS records."},"publicSubdomain":{"type":"string","description":"Deployment public subdomain (e.g., \"k8f2j3\")."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"aliases":{"type":"array","items":{"type":"object","properties":{"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message. Present when DNS previously failed, even if status\nwas reset to pending for retry. Used to surface actionable error context\nin WaitingForDns failure messages."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a managed hostname.\n\nIncludes decrypted certificate data for issued certificates.\nPrivate keys are deployment-scoped secrets (like environment variables)."},"description":"Additional managed hostnames for the resource."},"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"endpoints":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message. Present when DNS previously failed, even if status\nwas reset to pending for retry. Used to surface actionable error context\nin WaitingForDns failure messages."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a managed hostname.\n\nIncludes decrypted certificate data for issued certificates.\nPrivate keys are deployment-scoped secrets (like environment variables)."},"description":"Endpoint-scoped metadata keyed by endpoint name."},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a public resource.\n\nThe direct fields describe the primary endpoint hostname. `endpoints`\ncontains endpoint-scoped metadata keyed by endpoint name. `aliases` contains\nadditional managed hostnames that route directly to the primary endpoint."},"description":"Metadata per resource ID."}},"required":["baseDomain","hostedZoneId","publicSubdomain","resources"],"description":"Domain metadata for auto-managed public resources (no private keys)."},{"nullable":true}]},"environmentVariables":{"type":"object","properties":{"createdAt":{"type":"string","description":"ISO 8601 timestamp when snapshot was created"},"hash":{"type":"string","description":"Deterministic hash of all variables (for change detection)"},"variables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Variable name"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource patterns (null = all resources, Some = wildcard patterns)"},"type":{"type":"string","enum":["plain","secret"],"description":"Type of environment variable"},"value":{"type":"string","description":"Variable value (decrypted - deployment has access to decryption keys)"}},"required":["name","type","value"],"description":"Environment variable for deployment"},"description":"Environment variables in the snapshot"}},"required":["createdAt","hash","variables"],"description":"Snapshot of environment variables at a point in time"},"externalBindings":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"bucketName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS S3 storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["s3"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"containerName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Blob Storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["blob"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"bucketName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Google Cloud Storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["gcs"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"storagePath":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local filesystem storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["local-storage"]}},"required":["service"]}]}],"description":"Service-type based storage binding that supports multiple storage providers"},{"type":"object","properties":{"type":{"type":"string","enum":["storage"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"queueUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS SQS queue parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["sqs"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"subscription":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"topic":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Pub/Sub parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["pubsub"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"queueName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Service Bus parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["servicebus"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"queuePath":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local queue parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["local-queue"]}},"required":["service"]}]}],"description":"Binding parameters for Queue at runtime or in templates."},{"type":"object","properties":{"type":{"type":"string","enum":["queue"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"endpointUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"region":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"tableName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS DynamoDB KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["dynamodb"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"collectionName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"databaseId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"projectId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Firestore KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["firestore"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"tableName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Table Storage KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["tablestorage"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"connectionUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"database":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"keyPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Redis KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["redis"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"keyPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Local development KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["local-kv"]}},"required":["service"]}]}],"description":"Represents a KV binding for key-value storage across platforms"},{"type":"object","properties":{"type":{"type":"string","enum":["kv"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"pullRoleArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"pushRoleArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"repositoryPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS ECR (Elastic Container Registry) binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["ecr"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"registryName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"repositoryPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Container Registry binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["acr"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"pullServiceAccountEmail":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"pushServiceAccountEmail":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"repositoryName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Google Artifact Registry binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["gar"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"type":"string"},{"nullable":true},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"registryUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local container registry binding configuration.\n\nThe local registry runs on localhost only and does not require authentication.\nSecurity boundary is the OS process isolation on the customer's machine.\nExternal image access is secured by the manager's registry proxy (deployment tokens)."},{"type":"object","properties":{"service":{"type":"string","enum":["local"]}},"required":["service"]}]}],"description":"Service-type based artifact registry binding that supports multiple registry providers"},{"type":"object","properties":{"type":{"type":"string","enum":["artifact_registry"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS SSM Parameter Store vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["parameter-store"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Secret Manager vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["secret-manager"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"vaultName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Key Vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["key-vault"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Kubernetes Secrets vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["kubernetes-secret"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"vaultName":{"type":"string","description":"The vault name for local storage"}},"required":["vaultName"],"description":"Local development vault binding (for testing/development)"},{"type":"object","properties":{"service":{"type":"string","enum":["local-vault"]}},"required":["service"]}]}],"description":"Represents a vault binding for secure secret management"},{"type":"object","properties":{"type":{"type":"string","enum":["vault"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"defaultDomain":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"environmentName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"staticIp":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Binding configuration for a pre-existing Azure Container Apps Environment.\n\nUsed when deploying to an existing environment instead of having Alien provision one.\nThis is useful for shared environments (e.g., test infrastructure) or enterprise\nsetups where environments are managed by a separate team."},{"type":"object","properties":{"type":{"type":"string","enum":["container_apps_environment"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"clusterEndpoint":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS Aurora Serverless v2 binding."},{"type":"object","properties":{"service":{"type":"string","enum":["aurora"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"serverCaCertificates":{"oneOf":[{"type":"array","items":{"type":"string"}},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Cloud SQL binding."},{"type":"object","properties":{"service":{"type":"string","enum":["cloud-sql"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretUri":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Flexible Server binding."},{"type":"object","properties":{"service":{"type":"string","enum":["flexible-server"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"password":{"type":"string","description":"Connection password as a concrete value, never an unresolved `SecretRef`: the platform\nmaterializes the Kubernetes secret into the pod env. The cloud variants carry a secret\nlocator instead."},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"sslMode":{"type":"string","enum":["verify-full","disable"],"description":"TLS policy for an operator-provided / BYO Postgres database.\n\nUnlike libpq's ambiguous `prefer` mode, both choices map exactly to the\nconnection settings exposed by every supported SDK."},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"required":["password"],"description":"Operator-provided / BYO database binding."},{"type":"object","properties":{"service":{"type":"string","enum":["external"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"password":{"type":"string"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"required":["password"],"description":"Local embedded Postgres binding."},{"type":"object","properties":{"service":{"type":"string","enum":["local-postgres"]}},"required":["service"]}]}],"description":"Connection details for a Postgres database, one variant per backend."},{"type":"object","properties":{"type":{"type":"string","enum":["postgres"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"apiKey":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"provider":{"type":"string","description":"The external AI provider name (e.g., \"openai\", \"anthropic\")"}},"required":["provider"],"description":"External AI provider binding configuration (BYO-key).\n\nThe operator-supplied secret rides inside the binding via\n`BindingValue`, so it is a literal on cloud platforms and gains\nKubernetes SecretRef resolution for free (`extract_binding_secrets` walks\nthe binding JSON for `secretRef`)."},{"type":"object","properties":{"type":{"type":"string","enum":["ai"]}},"required":["type"]}]}],"description":"Represents a binding to pre-existing infrastructure.\n\nThe binding type must match the resource type it's applied to.\nValidated at runtime by the executor."},"description":"Map from resource ID to external binding.\n\nValidated at runtime: binding type must match resource type."},"inputValues":{"type":"object","properties":{},"additionalProperties":{"nullable":true},"description":"Deployer-provided stack input values, keyed by input id. A resource\ngated with `.enabled(input)` and a Live lifecycle follows these\nvalues; a missing key falls back to the input's declared boolean\ndefault. Suppliers must not place secret-kind input values here:\nthis map serializes and debug-prints unredacted."},"labelDomain":{"type":"string","nullable":true,"description":"DNS-style label domain used for Kubernetes resource ownership labels.\n\nDefaults to `alien.dev` when absent. Whitelabeled Operator builds set this\nso generated workloads and optional log collectors share the same label\nnamespace."},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}]},"managerUrl":{"type":"string","nullable":true,"description":"Manager base URL (e.g., \"https://manager.alien.dev\").\n\nThe manager IS the container registry — its `/v2/` endpoint serves as\nthe OCI Distribution API. Controllers derive the proxy host from this\nto configure pull auth (RegistryCredentials, imagePullSecrets).\n\nWhen None (e.g., `alien dev`), controllers use image URIs as-is."},"monitoring":{"oneOf":[{"type":"object","properties":{"logsAuthHeader":{"type":"string","description":"Auth header value in \"key=value,...\" format.\nExample: \"authorization=Bearer \""},"logsEndpoint":{"type":"string","description":"Full OTLP logs endpoint URL.\nExample: \"https:///v1/logs\""},"metricsAuthHeader":{"type":"string","nullable":true,"description":"Auth header value for the metrics endpoint in \"key=value,...\" format (optional).\n\nWhen absent, `logs_auth_header` is reused for metrics -- suitable when the same\ncredential covers both signals. When present (e.g. Axiom with separate datasets),\nthis value is used exclusively for metrics.\n\nExample: \"authorization=Bearer ,x-axiom-dataset=\""},"metricsEndpoint":{"type":"string","nullable":true,"description":"Full OTLP metrics endpoint URL (optional).\nWhen set, the worker runtime exports its own VM/container orchestration metrics here.\nExample: \"https://api.axiom.co/v1/metrics\""},"resourceAttributes":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Resource attributes attached to every OTLP signal emitted for this deployment.\n\nPlatform managers use this for stable identity such as `alien.workspace_id`,\n`alien.project_id`, `alien.deployment_group_id`, and `alien.deployment_id`.\nRuntime-specific resource attributes such as `service.name` remain owned by\nthe runtime/exporter."}},"required":["logsAuthHeader","logsEndpoint"],"description":"OTLP log export configuration for a deployment.\n\nWhen set, injected compute runtimes export captured application logs\nthrough the given endpoint via OTLP/HTTP; which resources are injected\nis platform-dependent. Workers read auth headers from a runtime-only\nsecret. Runtime-less Containers and Daemons receive standard OTEL auth\nvariables only at the final hosting boundary: Local passes them directly\nto the process and Kubernetes projects them from a per-workload Secret."},{"nullable":true}]},"nativeImageHost":{"type":"string","nullable":true,"description":"Native image registry host+prefix for platforms that require it.\n\nLambda (ECR) and Cloud Run (GAR) require native registry URIs. Other\nruntimes, including Azure Container Apps, pull through the manager's\nregistry proxy.\n\nDerived by the manager from the artifact registry binding:\n- ECR: `{account_id}.dkr.ecr.{region}.amazonaws.com/{repository_prefix}`\n- GAR: `{region}-docker.pkg.dev/{project_id}/{repository_name}`"},"observeAllNamespaces":{"type":"boolean","description":"When true the observe pass reports raw resources across every namespace\n(cluster scope); otherwise it stays within the operator's own namespace.\nThe label selector, if any, still filters within whichever scope applies.\nIgnored by cloud observers."},"observeLabelSelector":{"type":"string","nullable":true,"description":"Kubernetes label selector that narrows which raw resources the observe\npass reports (e.g. `app.kubernetes.io/part-of=my-app`). `None` observes\neverything in the namespace. Ignored by cloud observers."},"publicEndpoints":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Public endpoint URLs for exposed resources (optional override).\n\nUse this only when a caller already knows the public URL. Managed public\nendpoint flows should prefer `domain_metadata` plus controller-reported\nload balancer outputs so DNS, certificate renewal, and route readiness\nstay tied to the resource state.\n\nIf not set, platforms determine public endpoint URLs from other sources:\n- Managed DNS/TLS flows: `domain_metadata` FQDN or load balancer DNS\n- Local: `http://localhost:{allocated_port}`\n- Custom or disabled exposure: no public endpoint URL unless a controller reports one\n\nOuter key: resource ID. Inner key: endpoint name. Value: public URL."},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["environmentVariables"],"description":"Deployment configuration\n\nConfiguration for how to perform the deployment.\nNote: Credentials (ClientConfig) are passed separately to step() function."},"releaseInfo":{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."}},"required":["config","releaseInfo"],"description":"Target deployment if update is needed"}},"required":["success","current"],"description":"State reconciliation result with optional target"},"SyncReconcileRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Deployment ID to reconcile state for","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"session":{"type":"string","description":"Lock session (push model only) - verifies lock ownership"},"state":{"type":"object","properties":{"currentRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}]},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"protocolVersion":{"type":"integer","minimum":0,"description":"Protocol version for cross-actor compatibility.\nAll actors (manager, push client, agent) check this before stepping.\nMismatched versions produce a clear error instead of silent corruption.\nSee docs/02-manager/10-deployment-protocol.md."},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment\nWhen true and status is a failed state, the deployment system will retry failed resources"},"runtimeMetadata":{"oneOf":[{"type":"object","properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment\n\nStores deployment state that needs to persist across step calls."},{"nullable":true}]},"stackState":{"oneOf":[{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"Represents the collective state of all resources in a stack, including platform and pending actions."},{"nullable":true}]},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"targetRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]}},"required":["platform","protocolVersion","status"],"description":"Complete deployment state after step() execution"},"updateHeartbeat":{"type":"boolean","description":"Update heartbeat timestamp (for successful health checks)"},"suggestedDelayMs":{"type":"integer","minimum":0,"description":"Delay before this deployment should be acquired again."},"resourceHeartbeats":{"type":"array","items":{"type":"object","properties":{"backend":{"type":"string","enum":["aws","gcp","azure","kubernetes","local","managed","external","test"]},"controllerPlatform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"data":{"oneOf":[{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"blockPublicAcls":{"type":"boolean","nullable":true},"blockPublicPolicy":{"type":"boolean","nullable":true},"bucketAclPresent":{"type":"boolean","nullable":true},"bucketLocation":{"type":"string","nullable":true},"bucketPolicyPresent":{"type":"boolean","nullable":true},"encryptionConfigPresent":{"type":"boolean"},"encryptionEnabled":{"type":"boolean","nullable":true},"ignorePublicAcls":{"type":"boolean","nullable":true},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"publicAccessBlockPresent":{"type":"boolean"},"region":{"type":"string","nullable":true},"restrictPublicBuckets":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"versioningEnabled":{"type":"boolean","nullable":true},"versioningStatus":{"type":"string","nullable":true}},"required":["encryptionConfigPresent","lifecyclePresent","name","publicAccessBlockPresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsS3"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"bucketId":{"type":"string","nullable":true},"defaultKmsKeyName":{"type":"string","nullable":true},"encryptionConfigPresent":{"type":"boolean"},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":"integer","nullable":true,"minimum":0},"location":{"type":"string","nullable":true},"locationType":{"type":"string","nullable":true},"name":{"type":"string"},"publicAccessPrevention":{"type":"string","nullable":true},"retentionPeriod":{"type":"string","nullable":true},"retentionPolicyEffectiveTime":{"type":"string","nullable":true},"retentionPolicyIsLocked":{"type":"boolean","nullable":true},"softDeleteEffectiveTime":{"type":"string","nullable":true},"softDeleteRetentionDurationSeconds":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"storageClass":{"type":"string","nullable":true},"uniformBucketLevelAccessEnabled":{"type":"boolean","nullable":true},"uniformBucketLevelAccessLockedTime":{"type":"string","nullable":true},"versioningEnabled":{"type":"boolean","nullable":true}},"required":["encryptionConfigPresent","lifecyclePresent","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudStorage"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessTier":{"type":"string","nullable":true},"accountKind":{"type":"string","nullable":true},"allowBlobPublicAccess":{"type":"boolean","nullable":true},"blobDeleteRetentionDays":{"type":"integer","nullable":true,"minimum":0},"blobDeleteRetentionEnabled":{"type":"boolean","nullable":true},"blobEncryptionEnabled":{"type":"boolean","nullable":true},"blobVersioningEnabled":{"type":"boolean","nullable":true},"changeFeedEnabled":{"type":"boolean","nullable":true},"changeFeedRetentionDays":{"type":"integer","nullable":true,"minimum":0},"containerDeleteRetentionDays":{"type":"integer","nullable":true,"minimum":0},"containerDeleteRetentionEnabled":{"type":"boolean","nullable":true},"containerPublicAccess":{"type":"string","nullable":true},"encryptionKeySource":{"type":"string","nullable":true},"fileEncryptionEnabled":{"type":"boolean","nullable":true},"location":{"type":"string","nullable":true},"name":{"type":"string"},"primaryLocation":{"type":"string","nullable":true},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"queueEncryptionEnabled":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"secondaryLocation":{"type":"string","nullable":true},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"statusOfPrimary":{"type":"string","nullable":true},"statusOfSecondary":{"type":"string","nullable":true},"storageAccountName":{"type":"string","nullable":true},"tableEncryptionEnabled":{"type":"boolean","nullable":true}},"required":["name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureBlob"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"isDirectory":{"type":"boolean","nullable":true},"modifiedAt":{"type":"string","nullable":true,"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["path","pathExists","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["storage"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"codeSha256":{"type":"string","nullable":true},"functionName":{"type":"string"},"functionUrlAuthType":{"type":"string","nullable":true},"functionUrlCorsPresent":{"type":"boolean"},"lastModified":{"type":"string","nullable":true},"lastUpdateStatus":{"type":"string","nullable":true},"lastUpdateStatusReason":{"type":"string","nullable":true},"lastUpdateStatusReasonCode":{"type":"string","nullable":true},"layerCount":{"type":"integer","minimum":0},"memorySizeMb":{"type":"integer","nullable":true},"packageType":{"type":"string","nullable":true},"revisionId":{"type":"string","nullable":true},"runtime":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"stateReason":{"type":"string","nullable":true},"stateReasonCode":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"timeoutSeconds":{"type":"integer","nullable":true},"triggerCount":{"type":"integer","minimum":0},"version":{"type":"string","nullable":true}},"required":["functionName","functionUrlCorsPresent","layerCount","status","triggerCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsLambda"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"containerImage":{"type":"string","nullable":true},"cpuLimit":{"type":"string","nullable":true},"generation":{"type":"integer","nullable":true},"latestCreatedRevision":{"type":"string","nullable":true},"latestReadyRevision":{"type":"string","nullable":true},"maxInstanceCount":{"type":"integer","nullable":true},"memoryLimit":{"type":"string","nullable":true},"minInstanceCount":{"type":"integer","nullable":true},"observedGeneration":{"type":"integer","nullable":true},"region":{"type":"string","nullable":true},"service":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"trafficCount":{"type":"integer","minimum":0},"uri":{"type":"string","nullable":true},"urls":{"type":"array","items":{"type":"string"}}},"required":["service","status","trafficCount","urls"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudRun"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"appName":{"type":"string"},"cpu":{"type":"number","nullable":true},"environmentName":{"type":"string","nullable":true},"ingressFqdn":{"type":"string","nullable":true},"maxReplicas":{"type":"integer","nullable":true},"memory":{"type":"string","nullable":true},"minReplicas":{"type":"integer","nullable":true},"provisioningState":{"type":"string","nullable":true},"revision":{"type":"string","nullable":true},"runningStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["appName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerApps"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"triggerCount":{"type":"integer","minimum":0},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"]}},"required":["events","name","namespace","pods","replicas","status","triggerCount","workloadKind"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"imagePathPresent":{"type":"boolean"},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pid":{"type":"integer","nullable":true,"minimum":0},"process":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"readinessProbeOk":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"triggerCount":{"type":"integer","minimum":0}},"required":["commandSupported","events","imagePathPresent","status","triggerCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["worker"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"attentionCount":{"type":"integer","minimum":0},"containerId":{"type":"string"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"image":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"observedImage":{"type":"string","nullable":true},"replicaUnits":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"schedulingMode":{"type":"string","enum":["replicated","stateful","daemon"]},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["attentionCount","containerId","events","replicaUnits","replicas","schedulingMode","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["horizonPlatform"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"]}},"required":["events","name","namespace","pods","replicas","status","workloadKind"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"bindMountCount":{"type":"integer","minimum":0},"containerId":{"type":"string","nullable":true},"containerUnit":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"image":{"type":"string","nullable":true},"localUrl":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string","nullable":true},"portCount":{"type":"integer","minimum":0},"restartCount":{"type":"integer","nullable":true,"minimum":0},"runtimeReachable":{"type":"boolean"},"runtimeStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["bindMountCount","events","portCount","runtimeReachable","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["container"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aws"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcp"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azure"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["machines"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]}},"required":["commandSupported","events","name","namespace","pods","replicas","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"daemonInstance":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"daemonName":{"type":"string"},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"exitReason":{"type":"string","nullable":true},"imagePathPresent":{"type":"boolean"},"pid":{"type":"integer","nullable":true,"minimum":0},"restartCount":{"type":"integer","nullable":true,"minimum":0},"runtimeId":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["commandSupported","events","imagePathPresent","runtimeId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["daemon"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aws"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcp"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azure"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"machines":{"type":"array","items":{"type":"object","properties":{"capacityGroup":{"type":"string"},"cpuCores":{"type":"number","nullable":true},"drainBlockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainForce":{"type":"boolean"},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"horizondVersion":{"type":"string","nullable":true},"lastHeartbeat":{"type":"string"},"machineId":{"type":"string"},"memoryBytes":{"type":"integer","nullable":true},"overlayIp":{"type":"string","nullable":true},"publicIp":{"type":"string","nullable":true},"replicaCount":{"type":"integer"},"status":{"type":"string"},"zone":{"type":"string"}},"required":["capacityGroup","drainForce","lastHeartbeat","machineId","replicaCount","status","zone"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","machines","name","nodes","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["machines"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"dockerApiVersion":{"type":"string","nullable":true},"dockerArch":{"type":"string","nullable":true},"dockerAvailable":{"type":"boolean"},"dockerOs":{"type":"string","nullable":true},"dockerVersion":{"type":"string","nullable":true},"hostIdentifier":{"type":"string","nullable":true},"name":{"type":"string"},"networkAvailable":{"type":"boolean"},"networkName":{"type":"string","nullable":true},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"runningContainers":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"trackedContainers":{"type":"integer","nullable":true,"minimum":0}},"required":["dockerAvailable","name","networkAvailable","nodes","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["compute-cluster"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string","nullable":true},"nodeCounts":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"nodeStatuses":{"type":"array","items":{"type":"object","properties":{"allocatable":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pods":{"type":"integer","nullable":true,"minimum":0}}},"capacity":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pods":{"type":"integer","nullable":true,"minimum":0}}},"conditions":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"containerRuntimeVersion":{"type":"string","nullable":true},"kubeletVersion":{"type":"string","nullable":true},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"name":{"type":"string"},"ready":{"type":"boolean"},"roles":{"type":"array","items":{"type":"string"}},"uid":{"type":"string","nullable":true},"usage":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}}},{"nullable":true}]}},"required":["allocatable","capacity","labels","name","ready","roles"]}},"podCounts":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string","nullable":true}},"required":["events","name","nodeCounts","podCounts","status"]},"resourceType":{"type":"string","enum":["kubernetes-cluster"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"approximateCounts":{"type":"boolean"},"approximateDelayedMessages":{"type":"integer","nullable":true,"minimum":0},"approximateInFlightMessages":{"type":"integer","nullable":true,"minimum":0},"approximateVisibleMessages":{"type":"integer","nullable":true,"minimum":0},"contentBasedDeduplication":{"type":"boolean","nullable":true},"deduplicationScope":{"type":"string","nullable":true},"delaySeconds":{"type":"integer","nullable":true,"minimum":0},"fifoQueue":{"type":"boolean","nullable":true},"fifoThroughputLimit":{"type":"string","nullable":true},"kmsDataKeyReusePeriodSeconds":{"type":"integer","nullable":true,"minimum":0},"kmsMasterKeyId":{"type":"string","nullable":true},"maximumMessageSize":{"type":"integer","nullable":true,"minimum":0},"messageRetentionPeriodSeconds":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"queueArn":{"type":"string","nullable":true},"queueUrl":{"type":"string","nullable":true},"receiveMessageWaitTimeSeconds":{"type":"integer","nullable":true,"minimum":0},"redriveAllowPolicy":{"type":"string","nullable":true},"redrivePolicy":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"sqsManagedSseEnabled":{"type":"boolean","nullable":true},"sseEnabled":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"visibilityTimeoutSeconds":{"type":"integer","nullable":true,"minimum":0}},"required":["approximateCounts","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsSqs"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"kmsKeyName":{"type":"string","nullable":true},"messageStorageAllowedPersistenceRegions":{"type":"array","items":{"type":"string"}},"messageStorageEnforceInTransit":{"type":"boolean","nullable":true},"projectId":{"type":"string","nullable":true},"schemaEncoding":{"type":"string","nullable":true},"schemaFirstRevisionId":{"type":"string","nullable":true},"schemaLastRevisionId":{"type":"string","nullable":true},"schemaName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"subscriptionAckDeadlineSeconds":{"type":"integer","nullable":true,"minimum":0},"subscriptionDeadLetterMaxDeliveryAttempts":{"type":"integer","nullable":true,"minimum":0},"subscriptionDeadLetterTopic":{"type":"string","nullable":true},"subscriptionDetached":{"type":"boolean","nullable":true},"subscriptionEnableMessageOrdering":{"type":"boolean","nullable":true},"subscriptionFilter":{"type":"string","nullable":true},"subscriptionFullName":{"type":"string","nullable":true},"subscriptionLabels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"subscriptionMessageRetentionDuration":{"type":"string","nullable":true},"subscriptionName":{"type":"string","nullable":true},"subscriptionPushAttributes":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"subscriptionPushConfigPresent":{"type":"boolean","nullable":true},"subscriptionPushEndpoint":{"type":"string","nullable":true},"subscriptionPushNoWrapperWriteMetadata":{"type":"boolean","nullable":true},"subscriptionPushOidcAudience":{"type":"string","nullable":true},"subscriptionPushOidcServiceAccountEmail":{"type":"string","nullable":true},"subscriptionPushPubsubWrapperWriteMetadata":{"type":"boolean","nullable":true},"subscriptionRetainAckedMessages":{"type":"boolean","nullable":true},"subscriptionState":{"type":"string","nullable":true},"topicFullName":{"type":"string","nullable":true},"topicLabels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"topicMessageRetentionDuration":{"type":"string","nullable":true},"topicName":{"type":"string"},"topicState":{"type":"string","nullable":true}},"required":["messageStorageAllowedPersistenceRegions","status","subscriptionLabels","subscriptionPushAttributes","topicLabels","topicName"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpPubSub"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessedAt":{"type":"string","nullable":true},"activeMessageCount":{"type":"integer","nullable":true,"minimum":0},"autoDeleteOnIdle":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"deadLetterMessageCount":{"type":"integer","nullable":true,"minimum":0},"deadLetteringOnMessageExpiration":{"type":"boolean","nullable":true},"defaultMessageTimeToLive":{"type":"string","nullable":true},"duplicateDetectionHistoryTimeWindow":{"type":"string","nullable":true},"enableBatchedOperations":{"type":"boolean","nullable":true},"enableExpress":{"type":"boolean","nullable":true},"enablePartitioning":{"type":"boolean","nullable":true},"endpoint":{"type":"string","nullable":true},"forwardDeadLetteredMessagesTo":{"type":"string","nullable":true},"forwardTo":{"type":"string","nullable":true},"lockDuration":{"type":"string","nullable":true},"maxDeliveryCount":{"type":"integer","nullable":true,"minimum":0},"maxMessageSizeInKilobytes":{"type":"integer","nullable":true,"minimum":0},"maxSizeInMegabytes":{"type":"integer","nullable":true,"minimum":0},"messageCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"namespaceName":{"type":"string"},"queueStatus":{"type":"string","nullable":true},"requiresDuplicateDetection":{"type":"boolean","nullable":true},"requiresSession":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"scheduledMessageCount":{"type":"integer","nullable":true,"minimum":0},"sizeInBytes":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"transferDeadLetterMessageCount":{"type":"integer","nullable":true,"minimum":0},"transferMessageCount":{"type":"integer","nullable":true,"minimum":0},"updatedAt":{"type":"string","nullable":true}},"required":["name","namespaceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureServiceBus"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"name":{"type":"string"},"path":{"type":"string","nullable":true},"serviceStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["queue"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"billingMode":{"type":"string","nullable":true},"deletionProtectionEnabled":{"type":"boolean","nullable":true},"globalSecondaryIndexCount":{"type":"integer","nullable":true,"minimum":0},"itemCount":{"type":"integer","nullable":true,"minimum":0},"keySchema":{"type":"array","items":{"type":"object","properties":{"attributeName":{"type":"string"},"keyType":{"type":"string"}},"required":["attributeName","keyType"]}},"localSecondaryIndexCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"region":{"type":"string","nullable":true},"replicaCount":{"type":"integer","nullable":true,"minimum":0},"restoreInProgress":{"type":"boolean","nullable":true},"sseStatus":{"type":"string","nullable":true},"sseType":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"streamEnabled":{"type":"boolean","nullable":true},"streamViewType":{"type":"string","nullable":true},"tableArn":{"type":"string","nullable":true},"tableClass":{"type":"string","nullable":true},"tableSizeBytes":{"type":"integer","nullable":true,"minimum":0},"tableStatus":{"type":"string","nullable":true},"ttlAttributeName":{"type":"string","nullable":true},"ttlStatus":{"type":"string","nullable":true}},"required":["keySchema","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsDynamoDb"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"appEngineIntegrationMode":{"type":"string","nullable":true},"cmekEnabled":{"type":"boolean"},"concurrencyMode":{"type":"string","nullable":true},"createTime":{"type":"string","nullable":true},"databaseEdition":{"type":"string","nullable":true},"databaseName":{"type":"string"},"databaseType":{"type":"string","nullable":true},"deleteProtectionState":{"type":"string","nullable":true},"deleteTime":{"type":"string","nullable":true},"earliestVersionTime":{"type":"string","nullable":true},"endpoint":{"type":"string","nullable":true},"locationId":{"type":"string","nullable":true},"pointInTimeRecoveryEnablement":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"sourceInfoPresent":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updateTime":{"type":"string","nullable":true},"versionRetentionPeriod":{"type":"string","nullable":true}},"required":["cmekEnabled","databaseName","sourceInfoPresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpFirestore"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"signedIdentifierCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"storageAccountKind":{"type":"string","nullable":true},"storageAccountLocation":{"type":"string","nullable":true},"storageAccountName":{"type":"string"},"storageAccountPrimaryStatus":{"type":"string","nullable":true},"storageAccountProvisioningState":{"type":"string","nullable":true},"storageAccountResourceId":{"type":"string","nullable":true},"tableExists":{"type":"boolean"},"tableName":{"type":"string"}},"required":["status","storageAccountName","tableExists","tableName"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureTable"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cloudMetadataSupported":{"type":"boolean"},"isDirectory":{"type":"boolean","nullable":true},"name":{"type":"string"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["cloudMetadataSupported","name","path","pathExists","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["kv"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"clusterIdentifier":{"type":"string"},"endpoint":{"type":"string","nullable":true},"engineVersion":{"type":"string","nullable":true},"neverPauses":{"type":"boolean","description":"True when a `minCapacity: 0` instance has not reached 0 ACU over the observation\nwindow — it is silently paying always-on prices (auto-pause verification)."},"serverlessCapacity":{"type":"number","nullable":true,"description":"Latest sampled `ServerlessDatabaseCapacity` (ACU)."},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["clusterIdentifier","neverPauses","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aurora"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"databaseVersion":{"type":"string","nullable":true},"instanceName":{"type":"string"},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["instanceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["cloudSql"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"serverName":{"type":"string"},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string","nullable":true}},"required":["serverName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["flexibleServer"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"name":{"type":"string"},"port":{"type":"integer","nullable":true,"minimum":0},"processRunning":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string"}},"required":["name","processRunning","status","version"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["postgres"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string"},"hasMoreParameters":{"type":"boolean","nullable":true},"latestModifiedAt":{"type":"string","nullable":true,"format":"date-time"},"parameterMetadataSampled":{"type":"boolean"},"prefix":{"type":"string"},"region":{"type":"string"},"sampledAdvancedTierCount":{"type":"integer","nullable":true,"minimum":0},"sampledKmsKeyMetadataPresentCount":{"type":"integer","nullable":true,"minimum":0},"sampledParameterCount":{"type":"integer","nullable":true,"minimum":0},"sampledSecureStringCount":{"type":"integer","nullable":true,"minimum":0},"sampledStringCount":{"type":"integer","nullable":true,"minimum":0},"sampledStringListCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["accountId","parameterMetadataSampled","prefix","region","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsParameterStore"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string"},"prefix":{"type":"string"},"projectId":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["location","prefix","projectId","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpSecretManager"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessPolicyCount":{"type":"integer","minimum":0},"location":{"type":"string","nullable":true},"name":{"type":"string"},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string"},"purgeProtectionEnabled":{"type":"boolean","nullable":true},"rbacAuthorizationEnabled":{"type":"boolean"},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"secretMetadataListed":{"type":"boolean"},"skuFamily":{"type":"string","nullable":true},"skuName":{"type":"string","nullable":true},"softDeleteEnabled":{"type":"boolean"},"softDeleteRetentionDays":{"type":"integer"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vaultUri":{"type":"string","nullable":true}},"required":["accessPolicyCount","name","privateEndpointConnectionCount","publicNetworkAccess","rbacAuthorizationEnabled","secretMetadataListed","softDeleteEnabled","softDeleteRetentionDays","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureKeyVault"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"type":"string"},"prefix":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["namespace","prefix","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetesSecret"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"isDirectory":{"type":"boolean","nullable":true},"modifiedAt":{"type":"string","nullable":true,"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":"boolean","nullable":true},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["path","pathExists","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["vault"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"assumeRolePolicyPresent":{"type":"boolean"},"attachedPolicyCount":{"type":"integer","minimum":0},"attachedPolicyNames":{"type":"array","items":{"type":"string"}},"createDate":{"type":"string"},"description":{"type":"string","nullable":true},"inlinePolicyCount":{"type":"integer","minimum":0},"inlinePolicyNames":{"type":"array","items":{"type":"string"}},"lastUsedDate":{"type":"string","nullable":true},"lastUsedRegion":{"type":"string","nullable":true},"managedTagCount":{"type":"integer","minimum":0},"maxSessionDuration":{"type":"integer","nullable":true},"path":{"type":"string"},"permissionsBoundaryArn":{"type":"string","nullable":true},"permissionsBoundaryType":{"type":"string","nullable":true},"roleArn":{"type":"string"},"roleId":{"type":"string"},"roleName":{"type":"string"},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tagCount":{"type":"integer","minimum":0}},"required":["assumeRolePolicyPresent","attachedPolicyCount","attachedPolicyNames","createDate","inlinePolicyCount","inlinePolicyNames","managedTagCount","path","roleArn","roleId","roleName","stackPermissionsApplied","status","tagCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsIamRole"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true},"disabled":{"type":"boolean","nullable":true},"displayName":{"type":"string","nullable":true},"email":{"type":"string"},"etag":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"oauth2ClientId":{"type":"string","nullable":true},"projectBindingCount":{"type":"integer","minimum":0},"projectId":{"type":"string","nullable":true},"projectRoles":{"type":"array","items":{"type":"string"}},"serviceAccountBindingCount":{"type":"integer","minimum":0},"serviceAccountRoles":{"type":"array","items":{"type":"string"}},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"uniqueId":{"type":"string","nullable":true}},"required":["email","projectBindingCount","projectRoles","serviceAccountBindingCount","serviceAccountRoles","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"clientId":{"type":"string","nullable":true},"customRoleDefinitionCount":{"type":"integer","minimum":0},"customRoleDefinitionIds":{"type":"array","items":{"type":"string"}},"isolationScope":{"type":"string","nullable":true},"location":{"type":"string"},"managedTagCount":{"type":"integer","minimum":0},"name":{"type":"string"},"principalId":{"type":"string","nullable":true},"resourceGroup":{"type":"string"},"resourceId":{"type":"string"},"roleAssignmentCount":{"type":"integer","minimum":0},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tenantId":{"type":"string","nullable":true},"type":{"type":"string","nullable":true}},"required":["customRoleDefinitionCount","customRoleDefinitionIds","location","managedTagCount","name","resourceGroup","resourceId","roleAssignmentCount","roleAssignmentIds","stackPermissionsApplied","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"configured":{"type":"boolean"},"identity":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["configured","identity","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["service-account"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"availabilityZones":{"type":"array","items":{"type":"string"}},"cidrBlock":{"type":"string","nullable":true},"internetGatewayId":{"type":"string","nullable":true},"isByoVpc":{"type":"boolean"},"natGatewayId":{"type":"string","nullable":true},"privateSubnetIds":{"type":"array","items":{"type":"string"}},"publicSubnetIds":{"type":"array","items":{"type":"string"}},"routeTableCount":{"type":"integer","minimum":0},"securityGroupId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vpcId":{"type":"string","nullable":true},"vpcState":{"type":"string","nullable":true}},"required":["availabilityZones","isByoVpc","privateSubnetIds","publicSubnetIds","routeTableCount","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsVpc"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cidrBlock":{"type":"string","nullable":true},"cloudNatName":{"type":"string","nullable":true},"firewallName":{"type":"string","nullable":true},"isByoVpc":{"type":"boolean"},"networkName":{"type":"string","nullable":true},"networkSelfLink":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"routerName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"subnetworkName":{"type":"string","nullable":true},"subnetworkSelfLink":{"type":"string","nullable":true}},"required":["isByoVpc","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpVpc"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"applicationGatewaySubnetName":{"type":"string","nullable":true},"cidrBlock":{"type":"string","nullable":true},"isByoVnet":{"type":"boolean"},"lastByoVnetVerificationErrorCode":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"natGatewayId":{"type":"string","nullable":true},"nsgId":{"type":"string","nullable":true},"privateEndpointSubnetName":{"type":"string","nullable":true},"privateSubnetName":{"type":"string","nullable":true},"publicIpId":{"type":"string","nullable":true},"publicSubnetName":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vnetName":{"type":"string","nullable":true},"vnetResourceId":{"type":"string","nullable":true}},"required":["isByoVnet","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureVnet"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["network"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"managementPermissionsApplied":{"type":"boolean"},"roleArn":{"type":"string","nullable":true},"roleName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["managementPermissionsApplied","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsIamRole"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"impersonationGranted":{"type":"boolean"},"roleBound":{"type":"boolean"},"serviceAccountEmail":{"type":"string","nullable":true},"serviceAccountUniqueId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["impersonationGranted","roleBound","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"ficName":{"type":"string","nullable":true},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"roleDefinitionId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tenantId":{"type":"string","nullable":true},"uamiClientId":{"type":"string","nullable":true},"uamiPrincipalId":{"type":"string","nullable":true},"uamiResourceId":{"type":"string","nullable":true}},"required":["roleAssignmentIds","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["remote-stack-management"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"pullRoleArn":{"type":"string","nullable":true},"pushRoleArn":{"type":"string","nullable":true},"region":{"type":"string"},"registryId":{"type":"string"},"registryUri":{"type":"string"},"repositories":{"type":"array","items":{"type":"object","properties":{"createdAt":{"type":"number"},"encryptionType":{"type":"string","nullable":true},"imageTagMutability":{"type":"string","nullable":true},"kmsKeyPresent":{"type":"boolean"},"registryId":{"type":"string"},"repositoryArn":{"type":"string"},"repositoryName":{"type":"string"},"repositoryUri":{"type":"string"},"scanOnPush":{"type":"boolean","nullable":true}},"required":["createdAt","kmsKeyPresent","registryId","repositoryArn","repositoryName","repositoryUri"]}},"repositoriesTruncated":{"type":"boolean"},"repositoryCount":{"type":"integer","minimum":0},"repositoryPrefix":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["region","registryId","registryUri","repositories","repositoriesTruncated","repositoryCount","repositoryPrefix","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsEcr"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cleanupPolicyCount":{"type":"integer","minimum":0},"cleanupPolicyDryRun":{"type":"boolean","nullable":true},"createTime":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"format":{"type":"string","nullable":true},"iamBindingCount":{"type":"integer","minimum":0},"iamPolicyEtagPresent":{"type":"boolean"},"iamRoles":{"type":"array","items":{"type":"string"}},"kmsKeyNamePresent":{"type":"boolean"},"labelCount":{"type":"integer","minimum":0},"location":{"type":"string"},"mode":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"projectId":{"type":"string"},"pullServiceAccountEmail":{"type":"string","nullable":true},"pushServiceAccountEmail":{"type":"string","nullable":true},"repositoryId":{"type":"string"},"satisfiesPzs":{"type":"boolean","nullable":true},"sizeBytes":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updateTime":{"type":"string","nullable":true}},"required":["cleanupPolicyCount","iamBindingCount","iamPolicyEtagPresent","iamRoles","kmsKeyNamePresent","labelCount","location","projectId","repositoryId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpArtifactRegistry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"adminUserEnabled":{"type":"boolean"},"anonymousPullEnabled":{"type":"boolean"},"creationDate":{"type":"string","nullable":true},"dataEndpointEnabled":{"type":"boolean","nullable":true},"dataEndpointHostNames":{"type":"array","items":{"type":"string"}},"encryptionKeyIdentifierPresent":{"type":"boolean"},"encryptionKeyVaultUriPresent":{"type":"boolean"},"encryptionStatus":{"type":"string","nullable":true},"ipRuleCount":{"type":"integer","minimum":0},"location":{"type":"string"},"loginServer":{"type":"string","nullable":true},"managedTagCount":{"type":"integer","minimum":0},"name":{"type":"string"},"networkRuleBypassOptions":{"type":"string"},"networkRuleDefaultAction":{"type":"string","nullable":true},"policiesPresent":{"type":"boolean"},"policyCount":{"type":"integer","minimum":0},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string"},"resourceGroup":{"type":"string"},"resourceId":{"type":"string","nullable":true},"skuName":{"type":"string"},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"type":{"type":"string","nullable":true},"zoneRedundancy":{"type":"string"}},"required":["adminUserEnabled","anonymousPullEnabled","dataEndpointHostNames","encryptionKeyIdentifierPresent","encryptionKeyVaultUriPresent","ipRuleCount","location","managedTagCount","name","networkRuleBypassOptions","policiesPresent","policyCount","privateEndpointConnectionCount","publicNetworkAccess","resourceGroup","skuName","status","zoneRedundancy"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerRegistry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"reachable":{"type":"boolean"},"registryUrl":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["reachable","registryUrl","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["artifact-registry"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"artifactsEncryptionDisabled":{"type":"boolean","nullable":true},"artifactsType":{"type":"string","nullable":true},"cloudWatchLogsStatus":{"type":"string","nullable":true},"computeType":{"type":"string","nullable":true},"created":{"type":"number","nullable":true},"description":{"type":"string","nullable":true},"encryptionKeyPresent":{"type":"boolean"},"environmentImage":{"type":"string","nullable":true},"environmentType":{"type":"string","nullable":true},"environmentVariableCount":{"type":"integer","minimum":0},"imagePullCredentialsType":{"type":"string","nullable":true},"lastModified":{"type":"number","nullable":true},"privilegedMode":{"type":"boolean","nullable":true},"projectArn":{"type":"string","nullable":true},"projectName":{"type":"string"},"queuedTimeoutInMinutes":{"type":"integer","nullable":true},"s3LogsStatus":{"type":"string","nullable":true},"serviceRolePresent":{"type":"boolean"},"sourceType":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"timeoutInMinutes":{"type":"integer","nullable":true}},"required":["encryptionKeyPresent","environmentVariableCount","projectName","serviceRolePresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsCodeBuild"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"buildConfigId":{"type":"string"},"environmentVariableCount":{"type":"integer","minimum":0},"location":{"type":"string"},"projectId":{"type":"string"},"serviceAccount":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["buildConfigId","environmentVariableCount","location","projectId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudBuild"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"environmentVariableCount":{"type":"integer","minimum":0},"managedEnvironmentId":{"type":"string"},"managedIdentityId":{"type":"string","nullable":true},"resourceGroupName":{"type":"string"},"resourcePrefix":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["environmentVariableCount","managedEnvironmentId","resourceGroupName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerApps"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"active":{"type":"integer","nullable":true},"completionTime":{"type":"string","nullable":true,"format":"date-time"},"conditionCount":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"failed":{"type":"integer","nullable":true},"imageDigest":{"type":"string","nullable":true},"jobName":{"type":"string"},"namespace":{"type":"string"},"startTime":{"type":"string","nullable":true,"format":"date-time"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"succeeded":{"type":"integer","nullable":true}},"required":["conditionCount","events","jobName","namespace","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetesJob"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["build"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"enabled":{"type":"boolean"},"lastOperationName":{"type":"string","nullable":true},"projectId":{"type":"string"},"serviceName":{"type":"string"},"serviceResourceName":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"title":{"type":"string","nullable":true}},"required":["enabled","projectId","serviceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceUsage"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"type":"string"},"providerId":{"type":"string","nullable":true},"registered":{"type":"boolean"},"registrationPolicy":{"type":"string","nullable":true},"registrationState":{"type":"string","nullable":true},"resourceTypeCount":{"type":"integer","minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["namespace","registered","resourceTypeCount","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureResourceProvider"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["service_activation"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"location":{"type":"string","nullable":true},"managedTags":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"name":{"type":"string"},"provisioningState":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["managedTags","name","status"]},"resourceType":{"type":"string","enum":["azure_resource_group"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"allowBlobPublicAccess":{"type":"boolean","nullable":true},"allowSharedKeyAccess":{"type":"boolean","nullable":true},"encryptionKeySource":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"minimumTlsVersion":{"type":"string","nullable":true},"name":{"type":"string"},"networkBypass":{"type":"string","nullable":true},"networkDefaultAction":{"type":"string","nullable":true},"networkIpRuleCount":{"type":"integer","nullable":true,"minimum":0},"networkResourceAccessRuleCount":{"type":"integer","nullable":true,"minimum":0},"networkVirtualNetworkRuleCount":{"type":"integer","nullable":true,"minimum":0},"primaryEndpoints":{"type":"object","properties":{"blob":{"type":"string","nullable":true},"dfs":{"type":"string","nullable":true},"file":{"type":"string","nullable":true},"queue":{"type":"string","nullable":true},"table":{"type":"string","nullable":true},"web":{"type":"string","nullable":true}}},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"requireInfrastructureEncryption":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"secondaryEndpoints":{"type":"object","properties":{"blob":{"type":"string","nullable":true},"dfs":{"type":"string","nullable":true},"file":{"type":"string","nullable":true},"queue":{"type":"string","nullable":true},"table":{"type":"string","nullable":true},"web":{"type":"string","nullable":true}}},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"supportsHttpsTrafficOnly":{"type":"boolean","nullable":true}},"required":["name","primaryEndpoints","secondaryEndpoints","status"]},"resourceType":{"type":"string","enum":["azure_storage_account"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"customDomainVerificationId":{"type":"string","nullable":true},"defaultDomain":{"type":"string","nullable":true},"eventStreamEndpoint":{"type":"string","nullable":true},"infrastructureResourceGroup":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"name":{"type":"string"},"provisioningState":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"staticIp":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workloadProfileCount":{"type":"integer","minimum":0},"workloadProfiles":{"type":"array","items":{"type":"object","properties":{"maximumCount":{"type":"integer","nullable":true},"minimumCount":{"type":"integer","nullable":true},"name":{"type":"string"},"workloadProfileType":{"type":"string"}},"required":["name","workloadProfileType"]}},"zoneRedundant":{"type":"boolean","nullable":true}},"required":["name","status","workloadProfileCount","workloadProfiles"]},"resourceType":{"type":"string","enum":["azure_container_apps_environment"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"createdAt":{"type":"string","nullable":true},"disableLocalAuth":{"type":"boolean","nullable":true},"location":{"type":"string","nullable":true},"metricId":{"type":"string","nullable":true},"minimumTlsVersion":{"type":"string","nullable":true},"name":{"type":"string"},"namespaceStatus":{"type":"string","nullable":true},"premiumMessagingPartitions":{"type":"integer","nullable":true},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"serviceBusEndpoint":{"type":"string","nullable":true},"skuCapacity":{"type":"integer","nullable":true},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updatedAt":{"type":"string","nullable":true},"zoneRedundant":{"type":"boolean","nullable":true}},"required":["name","privateEndpointConnectionCount","status"]},"resourceType":{"type":"string","enum":["azure_service_bus_namespace"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"region":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["region","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsBedrock"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string"},"project":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["location","project","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpVertex"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"type":"string"},"endpoint":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["accountName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureFoundry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"provider":{"type":"string","description":"The BYO-key provider serving this binding (e.g. \"openai\"). Used on the Local\nplatform, where the app brings its own provider key instead of an ambient cloud."},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["provider","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["external"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["ai"]}},"required":["data","resourceType"]}]},"deploymentId":{"type":"string","nullable":true},"observedAt":{"type":"string","format":"date-time"},"raw":{"type":"array","items":{"type":"object","properties":{"body":{"type":"string"},"collectedAt":{"type":"string","format":"date-time"},"format":{"type":"string","enum":["json","yaml","text"]},"source":{"type":"string"},"truncated":{"type":"boolean"}},"required":["body","collectedAt","format","source","truncated"]}},"resourceId":{"type":"string","description":"Alien resource id, such as the `alien.Container` or `alien.Storage`\nresource id from the stack."},"resourceType":{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior."}},"required":["backend","controllerPlatform","data","observedAt","raw","resourceId","resourceType"]},"description":"Latest typed resource heartbeats collected during this step."},"observedInventoryBatches":{"type":"array","items":{"type":"object","properties":{"backend":{"type":"string","enum":["aws","gcp","azure","kubernetes","local","managed","external","test"],"description":"Backend whose observer produced this snapshot."},"complete":{"type":"boolean","description":"Whether this batch is a complete replacement for the scope. Complete\nbatches tombstone previously observed rows in the same scope when they\nare absent from `resources`."},"controllerPlatform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"inventoryScope":{"type":"string","description":"Stable scope for the provider list operation that produced this batch."},"observedAt":{"type":"string","format":"date-time","description":"Time the inventory scope was observed."},"resources":{"type":"array","items":{"type":"object","properties":{"alienResourceId":{"type":"string","nullable":true},"attributes":{"type":"object","properties":{},"additionalProperties":{"nullable":true}},"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"counts":{"oneOf":[{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},{"nullable":true}]},"deploymentId":{"type":"string","nullable":true},"displayName":{"type":"string"},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerKind":{"type":"string","description":"Provider-native kind, such as `apps/v1/Deployment`,\n`AWS::S3::Bucket`, `storage.googleapis.com/Bucket`, or an Azure\nresource type."},"providerStale":{"type":"boolean"},"raw":{"type":"array","items":{"type":"object","properties":{"body":{"type":"string"},"collectedAt":{"type":"string","format":"date-time"},"format":{"type":"string","enum":["json","yaml","text"]},"source":{"type":"string"},"truncated":{"type":"boolean"}},"required":["body","collectedAt","format","source","truncated"]}},"rawIdentity":{"type":"string","description":"Provider-native stable identity: Kubernetes object identity, cloud ARN,\nGCP full resource name, Azure resource id, etc."},"region":{"type":"string","nullable":true},"resourceTypeHint":{"oneOf":[{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior."},{"nullable":true}]},"scope":{"type":"string","nullable":true},"version":{"type":"string","nullable":true,"description":"Release/version identity observed from the provider resource, when available."}},"required":["displayName","health","lifecycle","partial","providerKind","providerStale","rawIdentity"]}},"sourceKind":{"type":"string","description":"Writer/source for this inventory pass, such as `operator` or\n`manager-observer`."}},"required":["backend","complete","controllerPlatform","inventoryScope","observedAt","resources","sourceKind"]},"description":"Observed raw-resource inventory batches read during this step."},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/OperatorCapabilityReport"},"description":"Operator-reported runtime capabilities."},"operatorVersion":{"type":"string","minLength":1,"maxLength":128,"description":"Operator binary version reported by the runtime."}},"required":["deploymentId","state"],"additionalProperties":false,"description":"Request to reconcile deployment state"},"SyncRenewRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Single deployment to renew. Deprecated: use deploymentIds. Retained so a manager built against the previous API keeps renewing during rollout.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"deploymentIds":{"type":"array","items":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"minItems":1,"maxItems":100,"description":"Deployments to renew or confirm. Renewal is per deployment: the response reports each one independently."},"session":{"type":"string","minLength":1}},"required":["session"],"additionalProperties":false},"SyncReleaseRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Deployment ID to release","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"session":{"type":"string","description":"Session identifier to release"}},"required":["deploymentId","session"],"additionalProperties":false,"description":"Request to release deployment lock"},"ResolveResponse":{"type":"object","properties":{"managerId":{"type":"string","description":"Manager ID"},"managerName":{"type":"string","description":"Manager display name"},"managerUrl":{"type":"string","format":"uri","description":"Manager URL"},"managerIsSystem":{"type":"boolean","description":"Whether the manager is Alien-hosted"},"managerCloud":{"type":"string","nullable":true,"enum":["aws","gcp","azure","kubernetes","machines","local","test",null],"description":"Cloud where the private manager is hosted. Null for Alien-hosted managers."},"projectId":{"type":"string","description":"Resolved project ID"},"installContext":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]}],"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."}},"required":["platform","managementConfig"],"description":"Target install context derived from platform-managed manager metadata. Present for cloud push platforms."}},"required":["managerId","managerName","managerUrl","managerIsSystem","projectId"]},"CloudRegionsResponse":{"type":"object","properties":{"supportedRegions":{"$ref":"#/components/schemas/SupportedCloudRegions"}},"required":["supportedRegions"]},"BillingAuditLogRow":{"type":"object","properties":{"id":{"type":"string"},"workspaceId":{"type":"string","nullable":true},"action":{"type":"string"},"payload":{"nullable":true},"createdAt":{"type":"string"}},"required":["id","workspaceId","action","createdAt"]},"WorkspaceBillingEntitlements":{"type":"object","properties":{"planId":{"$ref":"#/components/schemas/PlanId"},"planStatus":{"$ref":"#/components/schemas/BillingPlanStatus"},"features":{"$ref":"#/components/schemas/BillingFeatureFlags"},"limits":{"$ref":"#/components/schemas/BillingLimits"},"syncedAt":{"type":"string","nullable":true,"format":"date-time"},"stale":{"type":"boolean"}},"required":["planId","planStatus","features","limits","syncedAt","stale"]},"PlanId":{"type":"string","enum":["starter","pro","pro_annual","enterprise"]},"BillingPlanStatus":{"type":"string","enum":["active","trialing","past_due","canceled","none"]},"BillingFeatureFlags":{"type":"object","properties":{"custom_domains":{"type":"boolean"},"private_managers":{"type":"boolean"},"sso_saml":{"type":"boolean"},"audit_logs":{"type":"boolean"},"airgapped":{"type":"boolean"}},"required":["custom_domains","private_managers","sso_saml","audit_logs","airgapped"]},"BillingLimits":{"type":"object","properties":{"maxDeployments":{"type":"number","nullable":true},"maxProjects":{"type":"number","nullable":true},"maxSeats":{"type":"number","nullable":true},"maxCustomDomains":{"type":"number","nullable":true},"creditUsd":{"type":"number","nullable":true},"seatsIncluded":{"type":"number","nullable":true}},"required":["maxDeployments","maxProjects","maxSeats","maxCustomDomains","creditUsd","seatsIncluded"]}},"parameters":{}},"paths":{"/v1/invitations/{token}":{"get":{"operationId":"getWorkspaceInvitationPreview","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"token","in":"path"}],"responses":{"200":{"description":"Invitation preview.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInvitationPreview"}}}},"404":{"description":"Invitation not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/memberships":{"get":{"operationId":"listMemberships","description":"List all workspaces the current user has access to.","x-speakeasy-group":"user","x-speakeasy-name-override":"listMemberships","responses":{"200":{"description":"List of user's workspaces.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Membership"}}},"required":["items"]}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/profile":{"get":{"operationId":"getUserProfile","description":"Get the current user's profile and user-scoped onboarding state.","x-speakeasy-group":"user","x-speakeasy-name-override":"getProfile","responses":{"200":{"description":"User profile.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfile"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateUserProfile","description":"Update the current user's profile (display name).","x-speakeasy-group":"user","x-speakeasy-name-override":"updateProfile","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Display name"}}}}}},"responses":{"200":{"description":"Profile updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfile"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/profile/setup":{"post":{"operationId":"completeUserProfileSetup","description":"Complete the required beta intake and profile setup dialog.","x-speakeasy-group":"user","x-speakeasy-name-override":"completeProfileSetup","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfileSetupRequest"}}}},"responses":{"200":{"description":"Profile setup completed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfile"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/workspaces":{"post":{"operationId":"createWorkspace","description":"Create a new workspace. The current user will be automatically added as an admin.","x-speakeasy-group":"user","x-speakeasy-name-override":"createWorkspace","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name"},"logoUrl":{"type":"string","format":"uri","description":"Optional workspace logo URL"}},"required":["name"]}}}},"responses":{"201":{"description":"Created workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Membership"}}}},"400":{"description":"Bad request - invalid workspace name.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Workspace name already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/git-namespaces":{"get":{"operationId":"listGitNamespaces","description":"List all git namespaces (GitHub installations) the current user has access to.","x-speakeasy-group":"user","x-speakeasy-name-override":"listGitNamespaces","parameters":[{"schema":{"type":"string","enum":["github"],"default":"github"},"required":false,"name":"provider","in":"query"}],"responses":{"200":{"description":"List of user's git namespaces.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GitNamespace"}}},"required":["items"]}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/git-namespaces/sync":{"post":{"operationId":"syncGitNamespaces","description":"Sync git namespaces from the provider. For GitHub, this fetches all app installations accessible to the user.","x-speakeasy-group":"user","x-speakeasy-name-override":"syncGitNamespaces","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"provider":{"type":"string","enum":["github"],"description":"Git provider to sync"}},"required":["provider"]}}}},"responses":{"200":{"description":"Synced git namespaces.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GitNamespace"}}},"required":["items"]}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/git-namespaces/{id}/repositories":{"get":{"operationId":"listGitNamespaceRepositories","description":"List repositories accessible through a git namespace (GitHub installation).","x-speakeasy-group":"user","x-speakeasy-name-override":"listGitNamespaceRepositories","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","description":"Search query to filter repositories by name"},"required":false,"description":"Search query to filter repositories by name","name":"search","in":"query"}],"responses":{"200":{"description":"List of repositories.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GitRepository"}}},"required":["items"]}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Git namespace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/invitations/{token}/accept":{"post":{"operationId":"acceptWorkspaceInvitation","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"token","in":"path"}],"responses":{"200":{"description":"Invitation accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptWorkspaceInvitationResponse"}}}},"404":{"description":"Invitation not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Invitation unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/whoami":{"get":{"operationId":"whoami","description":"Get the current authenticated principal (user or service account). Works with both session cookies and API keys.","x-speakeasy-group":"auth","x-speakeasy-name-override":"whoami","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace to resolve the principal in. Required for user credentials because a user's role is per-workspace. Service accounts carry their workspace in the credential and may omit it.","example":"my-workspace"},"required":false,"description":"Workspace to resolve the principal in. Required for user credentials because a user's role is per-workspace. Service accounts carry their workspace in the credential and may omit it.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Current authenticated principal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Subject"}}}},"400":{"description":"Missing required workspace for user credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces":{"get":{"operationId":"listWorkspaces","description":"Retrieve all workspaces.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","description":"Search workspaces by name"},"required":false,"description":"Search workspaces by name","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved workspaces.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Workspace"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}":{"get":{"operationId":"getWorkspace","description":"Retrieve a workspace by ID.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workspace"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateWorkspace","description":"Update a workspace.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"update","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"logoUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"}}}}}},"responses":{"200":{"description":"Workspace updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workspace"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteWorkspace","description":"Delete a workspace. The workspace must have no projects.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"delete","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Workspace deleted successfully."},"400":{"description":"Workspace still has projects.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/members":{"get":{"operationId":"listWorkspaceMembers","description":"List all members of a workspace.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"listMembers","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"List of workspace members.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceMember"}}},"required":["items"]}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"addWorkspaceMember","description":"Add a member to a workspace by email. The user must already have an account.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"addMember","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"Email of the user to add"},"role":{"allOf":[{"$ref":"#/components/schemas/WorkspaceRole"},{"description":"Role to assign"}]}},"required":["email","role"]}}}},"responses":{"201":{"description":"Member added successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceMember"}}}},"404":{"description":"Workspace or user not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"User is already a member.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/members/{userId}":{"patch":{"operationId":"updateWorkspaceMember","description":"Update a workspace member's role.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"updateMember","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"userId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"allOf":[{"$ref":"#/components/schemas/WorkspaceRole"},{"description":"New role to assign"}]}},"required":["role"]}}}},"responses":{"200":{"description":"Member role updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceMember"}}}},"400":{"description":"Cannot remove last admin.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Workspace or member not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"removeWorkspaceMember","description":"Remove a member from a workspace.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"removeMember","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"userId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Member removed successfully."},"400":{"description":"Cannot remove last admin or self.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Workspace or member not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/dismiss-onboarding":{"post":{"operationId":"dismissWorkspaceOnboarding","description":"Mark the Getting Started walkthrough as dismissed for a workspace. The dashboard stops auto-promoting onboarding once this is set; users can still re-enter the walkthrough via the help menu.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"dismissOnboarding","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Workspace with onboardingDismissedAt populated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workspace"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/settings":{"get":{"operationId":"getWorkspaceSettings","description":"Read the ai-agent settings for a workspace. Returns defaults (`enabled: true`, `debugPermissionMode: auto`) when the workspace has never customized them.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"getSettings","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Workspace ai-agent settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSettings"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateWorkspaceSettings","description":"Update the ai-agent settings for a workspace. Supports `debugPermissionMode` (`ask` requires human approval on every ai-agent debug command, `auto` runs them without asking) and `enabled` (`false` turns the ai-agent off so incoming triggers are rejected before any session runs).","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"updateSettings","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkspaceSettingsRequest"}}}},"responses":{"200":{"description":"Updated ai-agent settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSettings"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/invitations":{"get":{"operationId":"listWorkspaceInvitations","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Pending invitations.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceInvitation"}}},"required":["items"]}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createWorkspaceInvitation","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"role":{"$ref":"#/components/schemas/WorkspaceRole"}},"required":["email","role"]}}}},"responses":{"201":{"description":"Invitation created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInvitation"}}}},"403":{"description":"Seat limit reached.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Invitation already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/invitations/{invitationId}/resend":{"post":{"operationId":"resendWorkspaceInvitation","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"invitationId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Invitation email sent again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInvitation"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/invitations/{invitationId}":{"delete":{"operationId":"revokeWorkspaceInvitation","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"invitationId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Invitation revoked."},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/invite-link":{"get":{"operationId":"getWorkspaceInviteLink","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Active invite link.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInviteLink"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"put":{"operationId":"createWorkspaceInviteLink","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/WorkspaceRole"}},"required":["role"]}}}},"responses":{"200":{"description":"Invite link created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInviteLink"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"revokeWorkspaceInviteLink","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Invite link revoked."},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects":{"get":{"operationId":"listProjects","description":"Retrieve all projects.","x-speakeasy-group":"projects","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","description":"Search projects by name"},"required":false,"description":"Search projects by name","name":"search","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["deploymentCount","latestRelease"]},"description":"Optional fields to include: deploymentCount, latestRelease"},"required":false,"description":"Optional fields to include: deploymentCount, latestRelease","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved projects.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ProjectListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createProject","description":"Create a new project.","x-speakeasy-group":"projects","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Project name.","example":"my-app"},"gitRepository":{"type":"object","nullable":true,"properties":{"type":{"type":"string","enum":["github"],"description":"The Git Provider of the repository","example":"github"},"repo":{"type":"string","maxLength":128,"description":"The name of the git repository","example":"alien/my-agent"}},"required":["type","repo"],"additionalProperties":false,"description":"Verified source repository connected to the project. Alien uses this for GitHub Actions setup and source-aware features; releases are still created explicitly by CI or `alien release`."},"rootDirectory":{"type":"string","nullable":true,"maxLength":256,"description":"The name of a directory or relative path to the source code of your project. When null is used it will default to the project root"},"packagesConfig":{"type":"object","nullable":true,"properties":{"cli":{"type":"object","nullable":true,"properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"},"enabled":{"type":"boolean","description":"Whether CLI package generation is enabled"}},"required":["displayName","name","enabled"],"description":"CLI package configuration. If null, CLI packages will not be generated."},"cloudformation":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether CloudFormation package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"CloudFormation package configuration. If null, CloudFormation packages will not be generated."},"operatorImage":{"type":"object","nullable":true,"properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"},"enabled":{"type":"boolean","description":"Whether Operator image package generation is enabled"}},"required":["displayName","name","enabled"],"description":"Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated."},"helm":{"type":"object","nullable":true,"properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"},"enabled":{"type":"boolean","description":"Whether Helm chart package generation is enabled"}},"required":["chartName","description","enabled"],"description":"Helm chart package configuration. If null, Helm packages will not be generated."},"terraform":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether Terraform package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"Terraform package configuration. If null, Terraform packages will not be generated."}},"description":"Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform)"}},"required":["name"]}}}},"responses":{"201":{"description":"Project created successfully.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Project"},{"type":"object","properties":{"githubSetup":{"type":"object","properties":{"pullRequestUrl":{"type":"string","format":"uri","description":"URL to the pull request with the Alien build workflow"},"workflowUrl":{"type":"string","format":"uri","description":"URL to the GitHub Actions workflow"}},"required":["pullRequestUrl","workflowUrl"]},"gitRepositoryWarning":{"$ref":"#/components/schemas/APIError"}}}]}}}},"400":{"description":"Invalid request or GitHub repository connection failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Insufficient permissions or plan limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Project name already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}":{"get":{"operationId":"getProject","description":"Retrieve a project by ID or name.","x-speakeasy-group":"projects","x-speakeasy-name-override":"get","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved project.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateProject","description":"Update a project.","x-speakeasy-group":"projects","x-speakeasy-name-override":"update","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProject"}}}},"responses":{"200":{"description":"Project updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteProject","description":"Delete a project. The project must have no deployments.","x-speakeasy-group":"projects","x-speakeasy-name-override":"delete","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Project deleted successfully."},"400":{"description":"Project still has deployments.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/gcp-oauth-provider":{"get":{"operationId":"getProjectGcpOAuthProvider","description":"Retrieve redacted project-level Google Cloud OAuth provider settings.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getGcpOAuthProvider","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved Google Cloud OAuth provider settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectGcpOAuthProvider"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"put":{"operationId":"updateProjectGcpOAuthProvider","description":"Update project-level Google Cloud OAuth provider settings.","x-speakeasy-group":"projects","x-speakeasy-name-override":"updateGcpOAuthProvider","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProjectGcpOAuthProvider"}}}},"responses":{"200":{"description":"Google Cloud OAuth provider settings updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectGcpOAuthProvider"}}}},"400":{"description":"Invalid provider settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/deployment-portal-domain":{"get":{"operationId":"getProjectDeploymentPortalDomain","description":"Get the deployment portal domain binding for a project.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getDeploymentPortalDomain","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved deployment portal domain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentPortalDomainResponse"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/import-template":{"post":{"operationId":"createProjectFromTemplate","description":"Create a project by forking alienplatform/alien into your namespace, then configuring GitHub Actions.","x-speakeasy-group":"projects","x-speakeasy-name-override":"createFromTemplate","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Project name.","example":"my-app"},"targetNamespace":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-zA-Z0-9-]+$","description":"GitHub owner namespace (user or organization) that will receive the fork"},"templatePath":{"type":"string","enum":["examples/remote-worker-ts","examples/github-agent/packages/remote-agent","examples/endpoint-agent","examples/byoc-database"],"description":"Template root directory inside alienplatform/alien"},"rootDirectory":{"type":"string","nullable":true,"maxLength":256,"description":"The name of a directory or relative path to the source code of your project. When null is used it will default to the project root"},"packagesConfig":{"type":"object","nullable":true,"properties":{"cli":{"type":"object","nullable":true,"properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"},"enabled":{"type":"boolean","description":"Whether CLI package generation is enabled"}},"required":["displayName","name","enabled"],"description":"CLI package configuration. If null, CLI packages will not be generated."},"cloudformation":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether CloudFormation package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"CloudFormation package configuration. If null, CloudFormation packages will not be generated."},"operatorImage":{"type":"object","nullable":true,"properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"},"enabled":{"type":"boolean","description":"Whether Operator image package generation is enabled"}},"required":["displayName","name","enabled"],"description":"Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated."},"helm":{"type":"object","nullable":true,"properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"},"enabled":{"type":"boolean","description":"Whether Helm chart package generation is enabled"}},"required":["chartName","description","enabled"],"description":"Helm chart package configuration. If null, Helm packages will not be generated."},"terraform":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether Terraform package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"Terraform package configuration. If null, Terraform packages will not be generated."}},"description":"Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform)"}},"required":["name","targetNamespace","templatePath"]}}}},"responses":{"201":{"description":"Project created successfully from template.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Project"},{"type":"object","properties":{"githubSetup":{"type":"object","properties":{"pullRequestUrl":{"type":"string","format":"uri","description":"URL to the pull request with the Alien build workflow"},"workflowUrl":{"type":"string","format":"uri","description":"URL to the GitHub Actions workflow"}},"required":["pullRequestUrl","workflowUrl"]},"gitRepositoryWarning":{"$ref":"#/components/schemas/APIError"},"template":{"type":"object","properties":{"sourceRepository":{"type":"string","enum":["alienplatform/alien"]},"forkRepository":{"type":"string","description":"Fork repository in / format"},"templatePath":{"type":"string","enum":["examples/remote-worker-ts","examples/github-agent/packages/remote-agent","examples/endpoint-agent","examples/byoc-database"],"description":"Template root directory inside alienplatform/alien"},"resolvedRootDirectory":{"type":"string"}},"required":["sourceRepository","forkRepository","templatePath","resolvedRootDirectory"]}},"required":["template"]}]}}}},"400":{"description":"Bad request or GitHub integration not installed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Project name already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"Fork exists but is not ready yet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/template-urls":{"get":{"operationId":"getProjectTemplateUrls","description":"Get template URLs for deploying setup stacks in this project.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getTemplateUrls","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Template URLs retrieved successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"aws":{"type":"object","nullable":true,"properties":{"templateUrl":{"type":"string","format":"uri","description":"URL to download the CloudFormation template"},"launchStackUrl":{"type":"string","format":"uri","description":"URL to launch the template in the AWS CloudFormation console"}},"required":["templateUrl","launchStackUrl"],"description":"Template URLs for deploying an AWS setup stack"}}}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/deployment-link-setup":{"get":{"operationId":"getProjectDeploymentLinkSetup","description":"Get the active release stack and portal-visible setup availability for deployment-link configuration.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getDeploymentLinkSetup","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Deployment-link setup retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentLinkSetupResponse"}}}},"404":{"description":"Project or active release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/active-release":{"get":{"operationId":"getProjectActiveRelease","description":"Get the production channel's current release. When deploymentId is provided, returns that deployment's effective release: its pin, or its followed channel's current release.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getActiveRelease","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","description":"Optional deployment ID to check for pinned release"},"required":false,"description":"Optional deployment ID to check for pinned release","name":"deploymentId","in":"query"}],"responses":{"200":{"description":"Effective release retrieved successfully.","content":{"application/json":{"schema":{"nullable":true}}}},"404":{"description":"Project or effective release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups":{"post":{"operationId":"createDeploymentGroup","tags":["deployment-groups"],"summary":"Create a new deployment group","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentGroupRequest"}}}},"responses":{"200":{"description":"Deployment group created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment group with this name already exists in the project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"listDeploymentGroups","tags":["deployment-groups"],"summary":"List deployment groups","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","description":"Search deployment groups by name"},"required":false,"description":"Search deployment groups by name","name":"search","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["project"]},"description":"Optional fields to include: project"},"required":false,"description":"Optional fields to include: project","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"List of deployment groups","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/DeploymentGroup"},{"type":"object","properties":{"project":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"Project ID"},"name":{"type":"string","description":"Project name"}},"required":["id","name"],"description":"Project info, included when ?include=project is used"}}}]},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/by-name":{"put":{"operationId":"ensureDeploymentGroupByName","tags":["deployment-groups"],"summary":"Get or create a deployment group by project and name","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnsureDeploymentGroupByNameRequest"}}}},"responses":{"200":{"description":"Deployment group returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/{id}":{"get":{"operationId":"getDeploymentGroup","tags":["deployment-groups"],"summary":"Get deployment group details","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["project"]},"description":"Optional fields to include: project"},"required":false,"description":"Optional fields to include: project","name":"include","in":"query"}],"responses":{"200":{"description":"Deployment group details","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DeploymentGroup"},{"type":"object","properties":{"project":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"Project ID"},"name":{"type":"string","description":"Project name"}},"required":["id","name"],"description":"Project info, included when ?include=project is used"},"deploymentCount":{"type":"integer","description":"Current number of deployments in this deployment group"}},"required":["deploymentCount"]}]}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateDeploymentGroup","tags":["deployment-groups"],"summary":"Update deployment group","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentGroupRequest"}}}},"responses":{"200":{"description":"Deployment group updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment group name already exists in the project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteDeploymentGroup","tags":["deployment-groups"],"summary":"Delete deployment group","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Deployment group deleted successfully"},"400":{"description":"Cannot delete deployment group that has deployments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/{id}/tokens":{"post":{"operationId":"createDeploymentGroupToken","tags":["deployment-groups"],"summary":"Create deployment group token","description":"Creates a deployment-group scoped API key and returns both the token and formatted deployment link","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentGroupTokenRequest"}}}},"responses":{"200":{"description":"Deployment group token created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentGroupTokenResponse"}}}},"400":{"description":"Deployment setup configuration is invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/{id}/first-party-session":{"post":{"operationId":"createFirstPartyDeploymentSession","tags":["deployment-groups"],"summary":"Create first-party deployment session","description":"Mints a short-lived deployment-group token with the recommended self-deploy policy for the authenticated developer.","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"First-party deployment session created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFirstPartyDeploymentSessionResponse"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/packages":{"get":{"operationId":"listPackages","description":"List packages with optional filters. Returns packages ordered by creation date (newest first).","x-speakeasy-group":"packages","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","enum":["cli","cloudformation","helm","operator-image","terraform"],"description":"Filter by package type"},"required":false,"description":"Filter by package type","name":"type","in":"query"},{"schema":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Filter by package status"},"required":false,"description":"Filter by package status","name":"status","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search packages by type or version"},"required":false,"description":"Search packages by type or version","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"List of packages.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Package"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/packages/{id}":{"get":{"operationId":"getPackage","description":"Get details of a specific package.","x-speakeasy-group":"packages","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"pkg_[0-9a-z]{28}$","description":"Unique identifier for the package.","example":"pkg_jebo2o5jmm7raefl2m1pe3cz"},"required":true,"description":"Unique identifier for the package.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Package details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Package"}}}},"404":{"description":"Package not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/packages/rebuild":{"post":{"operationId":"rebuildPackages","description":"Rebuild packages for a project. This will cancel any pending packages and create new ones with auto-incremented versions.","x-speakeasy-group":"packages","x-speakeasy-name-override":"rebuild","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"project":{"type":"string","maxLength":100,"description":"Project ID or name to rebuild packages for"}},"required":["project"]}}}},"responses":{"200":{"description":"Packages rebuilt successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"packagesCreated":{"type":"integer","description":"Number of packages created"}},"required":["packagesCreated"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/packages/{id}/cancel":{"post":{"operationId":"cancelPackage","description":"Cancel a pending or building package.","x-speakeasy-group":"packages","x-speakeasy-name-override":"cancel","parameters":[{"schema":{"type":"string","pattern":"pkg_[0-9a-z]{28}$","description":"Unique identifier for the package.","example":"pkg_jebo2o5jmm7raefl2m1pe3cz"},"required":true,"description":"Unique identifier for the package.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Package canceled successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Package"}}}},"400":{"description":"Package cannot be canceled (not in pending or building status).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Package not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases":{"get":{"operationId":"listReleases","description":"Retrieve all releases.","x-speakeasy-group":"releases","x-speakeasy-name-override":"list","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"}],"nullable":true},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","nullable":true,"minLength":1,"maxLength":63,"pattern":"^[a-z][a-z0-9-]*$","description":"Filter to releases promoted to this channel. Defaults to production."},"required":false,"description":"Filter to releases promoted to this channel. Defaults to production.","name":"channel","in":"query"},{"schema":{"type":"string","enum":["true","false"],"default":"false"},"required":false,"name":"allChannels","in":"query"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["project","rollout","createdBy"]},"description":"Optional fields to include: project, rollout"},"required":false,"description":"Optional fields to include: project, rollout","name":"include","in":"query"},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Search releases by commit message, branch, SHA, or release ID"},"required":false,"description":"Search releases by commit message, branch, SHA, or release ID","name":"search","in":"query"},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Filter by git branch (commitRef)"},"required":false,"description":"Filter by git branch (commitRef)","name":"branch","in":"query"},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Filter by commit author login or name"},"required":false,"description":"Filter by commit author login or name","name":"author","in":"query"},{"schema":{"type":"string","nullable":true,"format":"date-time","description":"Filter releases created after this date (ISO 8601)"},"required":false,"description":"Filter releases created after this date (ISO 8601)","name":"createdAfter","in":"query"},{"schema":{"type":"string","nullable":true,"format":"date-time","description":"Filter releases created before this date (ISO 8601)"},"required":false,"description":"Filter releases created before this date (ISO 8601)","name":"createdBefore","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved releases.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createRelease","description":"Create a new release.","x-speakeasy-group":"releases","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateReleaseRequest"}}}},"responses":{"201":{"description":"Release created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Release"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases/branches":{"get":{"operationId":"listReleaseBranches","description":"List distinct git branches across releases. Used for filter dropdowns.","x-speakeasy-group":"releases","x-speakeasy-name-override":"listBranches","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"allOf":[{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"}],"nullable":true},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Search branches by name (case-insensitive contains)"},"required":false,"description":"Search branches by name (case-insensitive contains)","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50,"description":"Maximum number of branches to return"},"required":false,"description":"Maximum number of branches to return","name":"limit","in":"query"}],"responses":{"200":{"description":"Retrieved distinct branches.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"string"}}},"required":["items"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases/authors":{"get":{"operationId":"listReleaseAuthors","description":"List distinct commit authors across releases. Used for filter dropdowns.","x-speakeasy-group":"releases","x-speakeasy-name-override":"listAuthors","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"allOf":[{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"}],"nullable":true},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Search authors by login or name (case-insensitive contains)"},"required":false,"description":"Search authors by login or name (case-insensitive contains)","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50,"description":"Maximum number of authors to return"},"required":false,"description":"Maximum number of authors to return","name":"limit","in":"query"}],"responses":{"200":{"description":"Retrieved distinct authors.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseAuthorFilterItem"}}},"required":["items"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases/{id}":{"get":{"operationId":"getRelease","description":"Retrieve a release by ID.","x-speakeasy-group":"releases","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"required":true,"description":"Unique identifier for the release.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["project","rollout","createdBy"]},"description":"Optional fields to include: project, rollout"},"required":false,"description":"Optional fields to include: project, rollout","name":"include","in":"query"}],"responses":{"200":{"description":"Retrieved release.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseListItemResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases/{id}/deployments":{"get":{"operationId":"listReleaseDeployments","description":"List the project's deployments with their rollout state relative to this release.","x-speakeasy-group":"releases","x-speakeasy-name-override":"listDeployments","parameters":[{"schema":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"required":true,"description":"Unique identifier for the release.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseRolloutState"},"description":"Filter deployments by rollout state"},"required":false,"description":"Filter deployments by rollout state","name":"state","in":"query"},{"schema":{"type":"string","description":"Filter by deployment group ID or name"},"required":false,"description":"Filter by deployment group ID or name","name":"deploymentGroup","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved release deployments.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseDeploymentsResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/release-channels":{"get":{"operationId":"listReleaseChannels","x-speakeasy-group":"releaseChannels","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"responses":{"200":{"description":"Project release channels.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseChannel"}}},"required":["items"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createReleaseChannel","x-speakeasy-group":"releaseChannels","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"$ref":"#/components/schemas/ReleaseChannelName"},"releaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Channel created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseChannel"}}}},"400":{"description":"Invalid release.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/release-channels/{name}/promote":{"post":{"operationId":"promoteRelease","x-speakeasy-group":"releases","x-speakeasy-name-override":"promote","parameters":[{"schema":{"$ref":"#/components/schemas/ReleaseChannelName"},"required":true,"name":"name","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"releaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"expectedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"}},"required":["releaseId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Release promoted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseChannel"}}}},"404":{"description":"Project, channel, or release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Channel changed concurrently.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/release-channels/{name}":{"delete":{"operationId":"deleteReleaseChannel","x-speakeasy-group":"releaseChannels","x-speakeasy-name-override":"delete","parameters":[{"schema":{"$ref":"#/components/schemas/ReleaseChannelName"},"required":true,"name":"name","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"responses":{"204":{"description":"Channel deleted."},"400":{"description":"Reserved channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project or channel not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Channel is still followed by deployments.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments":{"get":{"operationId":"listDeployments","description":"Retrieve all deployments.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"list","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","description":"Filter by deployment group ID or name"},"required":false,"description":"Filter by deployment group ID or name","name":"deploymentGroup","in":"query"},{"schema":{"type":"string","maxLength":100,"description":"Filter by exact deployment name. Must be used with deploymentGroup."},"required":false,"description":"Filter by exact deployment name. Must be used with deploymentGroup.","name":"name","in":"query"},{"schema":{"type":"string","description":"Filter by manager ID"},"required":false,"description":"Filter by manager ID","name":"managerId","in":"query"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search deployments by name, public subdomain, or deployment group name"},"required":false,"description":"Search deployments by name, public subdomain, or deployment group name","name":"search","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"description":"Filter deployments by status"},"required":false,"description":"Filter deployments by status","name":"status","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Filter deployments by effective environment"},"required":false,"description":"Filter deployments by effective environment","name":"environment","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["release","deploymentGroup","project"]},"description":"Optional fields to include: release, deploymentGroup, project"},"required":false,"description":"Optional fields to include: release, deploymentGroup, project","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved deployments.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"400":{"description":"Invalid deployment list filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createDeployment","description":"Create a new deployment. Deployment group tokens automatically use their group. Workspace/project tokens must provide deploymentGroupId.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewDeploymentRequest"}}}},"responses":{"200":{"description":"Existing deployment returned for idempotent deployment-group registration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentResponse"}}}},"201":{"description":"Deployment created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentResponse"}}}},"400":{"description":"Bad request - deployment group has reached max deployments limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Forbidden - insufficient permissions to create deployments in this context.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project or deployment group not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment with the specified ID already exists, or a deployment with the same name already exists in the deployment group.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/stats":{"get":{"operationId":"getDeploymentStats","description":"Get aggregated deployment statistics. Returns total count and breakdown by status.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"getStats","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","description":"Filter by deployment group ID or name"},"required":false,"description":"Filter by deployment group ID or name","name":"deploymentGroup","in":"query"},{"schema":{"type":"string","description":"Filter by manager ID"},"required":false,"description":"Filter by manager ID","name":"managerId","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Filter deployments by effective environment"},"required":false,"description":"Filter deployments by effective environment","name":"environment","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"description":"Filter deployments by status"},"required":false,"description":"Filter deployments by status","name":"status","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search deployments by name or deployment group name"},"required":false,"description":"Search deployments by name or deployment group name","name":"search","in":"query"}],"responses":{"200":{"description":"Deployment statistics retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentStats"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/filter-environments":{"get":{"operationId":"listDeploymentFilterEnvironments","description":"List distinct effective environments used by deployments. Used for filter dropdowns.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"listFilterEnvironments","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"responses":{"200":{"description":"Distinct environments retrieved.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."}}},"required":["items"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/filter-deployment-groups":{"get":{"operationId":"listDeploymentFilterDeploymentGroups","description":"List deployment groups with deployment counts. Used for filter dropdowns.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"listFilterDeploymentGroups","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Search deployment groups by name"},"required":false,"description":"Search deployment groups by name","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return"},"required":false,"description":"Maximum number of items to return","name":"limit","in":"query"}],"responses":{"200":{"description":"Deployment groups for filter retrieved.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string"},"deploymentCount":{"type":"number"},"runningCount":{"type":"number","description":"Number of deployments in 'running' status"},"failedCount":{"type":"number","description":"Number of deployments in a failed status"},"inProgressCount":{"type":"number","description":"Number of deployments in an in-progress status (provisioning, updating, etc.)"}},"required":["id","name","deploymentCount","runningCount","failedCount","inProgressCount"]}}},"required":["items"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}":{"get":{"operationId":"getDeployment","description":"Retrieve a deployment by ID.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["release","deploymentGroup","project"]},"description":"Optional fields to include: release, deploymentGroup, project"},"required":false,"description":"Optional fields to include: release, deploymentGroup, project","name":"include","in":"query"}],"responses":{"200":{"description":"Retrieved deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentDetailResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/info":{"get":{"operationId":"getDeploymentConnectionInfo","description":"Get deployment connection information including command endpoint and resource URLs.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"getInfo","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Deployment connection information.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentConnectionInfo"}}}},"400":{"description":"Deployment not ready (no manager assigned).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/import":{"post":{"operationId":"importDeployment","description":"Import a deployment from resolved setup infrastructure such as CloudFormation, Terraform, or Helm.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"import","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportDeploymentRequest"}}}},"responses":{"200":{"description":"Deployment import was idempotent and returned an existing deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deployment"}}}},"201":{"description":"Deployment imported and created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deployment"}}}},"409":{"description":"Deployment with the specified ID already exists, or a deployment with the same name already exists in the deployment group.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/first-party-inputs":{"put":{"operationId":"setFirstPartyDeploymentInputs","description":"Store operator-provided input values on a first-party deployment session token so CLI/local deploys apply them.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"setFirstPartyDeploymentInputs","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetFirstPartyDeploymentInputsRequest"}}}},"responses":{"200":{"description":"Input values stored on the session token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetFirstPartyDeploymentInputsResponse"}}}},"400":{"description":"A deployment-group token scope is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"The token is not a first-party deployment session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Failed to store input values.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/setup-registration-operations":{"post":{"operationId":"createSetupRegistrationOperation","description":"Start a durable setup registration operation for CloudFormation, Terraform, or Helm.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"createSetupRegistrationOperation","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSetupRegistrationOperationRequest"}}}},"responses":{"202":{"description":"Setup registration operation accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetupRegistrationOperationResponse"}}}},"400":{"description":"Invalid setup registration operation request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed before callback acceptance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/setup-registration-operations/{id}":{"get":{"operationId":"getSetupRegistrationOperation","description":"Get setup registration operation status.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"getSetupRegistrationOperation","parameters":[{"schema":{"type":"string","pattern":"setupop_[0-9a-z]{28}$","description":"Unique identifier for the setup registration operation.","example":"setupop_y41lqnfosxuwqkzmiax7"},"required":true,"description":"Unique identifier for the setup registration operation.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Setup registration operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetupRegistrationOperationResponse"}}}},"404":{"description":"Setup registration operation not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/delete":{"post":{"operationId":"deleteDeployment","description":"Delete, detach, or forget a deployment by ID.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"delete","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDeploymentRequest"}}}},"responses":{"202":{"description":"Deployment deletion request accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDeploymentResponse"}}}},"400":{"description":"Cannot delete the deployment in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment already has a conflicting delete request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/redeploy":{"post":{"operationId":"redeployDeployment","description":"Redeploy a running deployment with the same release and fresh environment variables. Sets status to update-pending.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"redeploy","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Deployment redeployment triggered successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot redeploy - deployment must be running.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/pin-release":{"post":{"operationId":"pinDeploymentRelease","description":"Pin or unpin a running or runtime-failed deployment. Running deployments start an update; failed deployments retry toward the selected release.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"pinRelease","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PinReleaseRequest"}}}},"responses":{"202":{"description":"Release pin updated successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot pin release from the deployment's current lifecycle state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment or release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/release-channel":{"post":{"operationId":"setDeploymentReleaseChannel","x-speakeasy-group":"deployments","x-speakeasy-name-override":"setReleaseChannel","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"$ref":"#/components/schemas/ReleaseChannelName"}},"required":["channel"],"additionalProperties":false}}}},"responses":{"200":{"description":"Deployment release channel updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deployment"}}}},"400":{"description":"Channel release is unavailable for the deployment platform.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment or release channel not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/retry":{"post":{"operationId":"retryDeployment","description":"Retry a failed deployment operation. Uses alien-infra's retry mechanisms to resume from exact failure point.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"retry","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Deployment retry enqueued successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Deployment is not in a failed state that can be retried.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/inputs":{"get":{"operationId":"getDeploymentInputs","description":"Get the active input definitions and current non-secret values for a deployment.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"getInputs","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Deployment inputs returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentInputsResponse"}}}},"403":{"description":"Insufficient permission to read deployment inputs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment or release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateDeploymentInputs","description":"Update runtime stack inputs, rebuild their environment-variable mappings, and request a deployment update when runtime configuration changes.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"updateInputs","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentInputsRequest"}}}},"responses":{"200":{"description":"Deployment inputs saved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentInputsResponse"}}}},"400":{"description":"Input values are invalid for the deployment release.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Insufficient permission to update deployment inputs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment, project, or release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/environment-variables":{"patch":{"operationId":"updateDeploymentEnvironmentVariables","description":"Update a deployment's environment variables. If the deployment is running and not locked, the status will be changed to update-pending to trigger a deployment.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"updateEnvironmentVariables","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentEnvironmentVariablesRequest"}}}},"responses":{"202":{"description":"Environment variables updated successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Environment variables are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Insufficient permission to update environment variables.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/token":{"post":{"operationId":"createDeploymentToken","description":"Create a deployment token (deployment-scoped API key). The deployment must exist before creating a token.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"createToken","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentTokenRequest"}}}},"responses":{"201":{"description":"Deployment token created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentTokenResponse"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers":{"post":{"operationId":"createManager","description":"Create a new manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewManagerRequest"}}}},"responses":{"201":{"description":"Manager created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateManagerResponse"}}}},"400":{"description":"Invalid private manager setup method.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"A manager for this target already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"listManagers","description":"Retrieve all managers.","x-speakeasy-group":"managers","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search managers by name"},"required":false,"description":"Search managers by name","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum number of managers to return"},"required":false,"description":"Maximum number of managers to return","name":"limit","in":"query"}],"responses":{"200":{"description":"Retrieved managers.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Manager"}}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/setup-token":{"post":{"operationId":"retryManagerSetup","description":"Revoke previous private-manager setup tokens and issue a fresh setup token/config.","x-speakeasy-group":"managers","x-speakeasy-name-override":"retrySetup","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"201":{"description":"Fresh manager setup token generated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateManagerResponse"}}}},"400":{"description":"Manager setup cannot be retried in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager or setup config not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/retry":{"post":{"operationId":"retryManager","description":"Retry private-manager setup. Returns a fresh setup action before the internal deployment exists, or requests retry for the internal deployment after it exists.","x-speakeasy-group":"managers","x-speakeasy-name-override":"retry","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Manager retry handled successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerRetryResponse"}}}},"400":{"description":"Manager cannot be retried in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager or internal deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/cancel-setup":{"post":{"operationId":"cancelManagerSetup","description":"Cancel pending private-manager setup, revoke setup/runtime tokens, and remove the undeployed manager record.","x-speakeasy-group":"managers","x-speakeasy-name-override":"cancelSetup","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Manager setup canceled successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Manager setup cannot be canceled in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}":{"get":{"operationId":"getManager","description":"Retrieve a manager by ID.","x-speakeasy-group":"managers","x-speakeasy-name-override":"get","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved manager.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Manager"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteManager","description":"Delete a manager by ID.","x-speakeasy-group":"managers","x-speakeasy-name-override":"delete","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Manager deletion enqueued successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot delete the manager in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Internal deployment already has a conflicting delete request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/domain-binding":{"get":{"operationId":"getManagerDomainBinding","description":"Get the custom domain binding for a private manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"getDomainBinding","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved manager domain binding.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerDomainBindingResponse"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"put":{"operationId":"updateManagerDomainBinding","description":"Create, update, or remove the custom domain binding for a private manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"updateDomainBinding","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateManagerDomainBinding"}}}},"responses":{"200":{"description":"Manager domain binding updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerDomainBindingResponse"}}}},"400":{"description":"Invalid domain binding request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager or domain not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/management-config":{"get":{"operationId":"getManagerManagementConfig","description":"Get the management configuration for a manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"getManagementConfig","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"required":true,"description":"Represents the target cloud platform.","name":"platform","in":"query"}],"responses":{"200":{"description":"Management config retrieved successfully.","content":{"application/json":{"schema":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]}],"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."}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/provision":{"post":{"operationId":"provisionManager","description":"Enqueue provisioning for a manager by ID.","x-speakeasy-group":"managers","x-speakeasy-name-override":"provision","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Manager provisioning enqueued successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot provision the manager in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/update":{"post":{"operationId":"updateManager","description":"Update a manager to a specific release ID or active release.","x-speakeasy-group":"managers","x-speakeasy-name-override":"update","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateManagerRequest"}}}},"responses":{"202":{"description":"Manager update enqueued successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot update the manager in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/events":{"get":{"operationId":"listManagerEvents","description":"Retrieve all events of a manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"listEvents","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved events.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Event"}}},"required":["items"]}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/token":{"post":{"operationId":"generateManagerToken","description":"Generate a short-lived JWT for direct browser → manager communication. Used for fetching command payloads and querying logs without routing sensitive data through the platform API.","x-speakeasy-group":"managers","x-speakeasy-name-override":"generateManagerToken","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateManagerTokenRequest"}}}},"responses":{"200":{"description":"Manager access token and connection info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateManagerTokenResponse"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/binding-token":{"post":{"operationId":"generateManagerBindingToken","description":"Generate a short-lived deployment-scoped token for resolving opted-in remote bindings through the currently assigned manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"generateManagerBindingToken","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateManagerBindingTokenRequest"}}}},"responses":{"200":{"description":"Remote Bindings token and assigned manager URL.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateManagerBindingTokenResponse"}}}},"403":{"description":"The caller cannot update the deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Assigned manager or deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"The assigned manager is offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/gcp-oauth-provider/resolve":{"post":{"operationId":"resolveManagerGcpOAuthProvider","description":"Resolve decrypted project-level Google Cloud OAuth provider settings for a manager-side deployment bootstrap.","x-speakeasy-group":"managers","x-speakeasy-name-override":"resolveGcpOAuthProvider","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveManagerGcpOAuthProviderRequest"}}}},"responses":{"200":{"description":"Resolved Google Cloud OAuth provider settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveManagerGcpOAuthProviderResponse"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Manager cannot resolve this deployment group's project settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager, deployment group, or project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/heartbeat":{"post":{"operationId":"reportManagerHeartbeat","description":"Report Manager health status and metrics.","x-speakeasy-group":"managers","x-speakeasy-name-override":"reportHeartbeat","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerHeartbeatRequest"}}}},"responses":{"200":{"description":"Heartbeat acknowledged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerHeartbeatResponse"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/deployment":{"get":{"operationId":"getManagerDeployment","description":"Get deployment details for a private manager (internal deployment platform, status, resources).","x-speakeasy-group":"managers","x-speakeasy-name-override":"getDeployment","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Manager deployment details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerDeployment"}}}},"404":{"description":"Manager not found or has no internal deployment (alien-hosted managers don't have deployment info).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/operator-manifests/prepare":{"post":{"operationId":"prepareOperatorManifestPackage","tags":["operator-manifests"],"summary":"Prepare the white-labeled Operator image for an Operate install","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrepareOperatorManifestPackageRequest"}}}},"responses":{"200":{"description":"Operator image package created or reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrepareOperatorManifestPackageResponse"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/operator-manifests/render":{"post":{"operationId":"renderOperatorManifest","tags":["operator-manifests"],"summary":"Render a Kubernetes Operator manifest","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenderOperatorManifestRequest"}}}},"responses":{"200":{"description":"Operator manifest rendered successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenderOperatorManifestResponse"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Operator image package is not ready.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Invalid platform or manager configuration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/api-keys":{"get":{"operationId":"listAPIKeys","description":"Retrieve all API keys for the current workspace.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved API keys.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/APIKey"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createAPIKey","description":"Create a new API key.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAPIKeyRequest"}}}},"responses":{"201":{"description":"API key created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAPIKeyResponse"}}}},"403":{"description":"Insufficient permissions to create API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/api-keys/{id}":{"get":{"operationId":"getAPIKey","description":"Retrieve a specific API key.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"required":true,"description":"Unique identifier for the api key.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKey"}}}},"404":{"description":"API key not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateAPIKey","description":"Update an API key (enable/disable, change description).","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"update","parameters":[{"schema":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"required":true,"description":"Unique identifier for the api key.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAPIKeyRequest"}}}},"responses":{"200":{"description":"API key updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKey"}}}},"404":{"description":"API key not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"revokeAPIKey","description":"Revoke (soft delete) an API key.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"revoke","parameters":[{"schema":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"required":true,"description":"Unique identifier for the api key.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"API key revoked successfully."},"404":{"description":"API key not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/api-keys/batch-delete":{"post":{"operationId":"deleteAPIKeys","description":"Permanently delete multiple API keys.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"deleteMultiple","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteAPIKeysRequest"}}}},"responses":{"200":{"description":"API keys deleted successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"deletedCount":{"type":"number"}},"required":["deletedCount"]}}}},"403":{"description":"Insufficient permissions to delete API keys.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains":{"get":{"operationId":"listDomains","description":"List system domains and workspace domains.","x-speakeasy-group":"domains","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved domains.","content":{"application/json":{"schema":{"type":"object","properties":{"domains":{"type":"array","items":{"$ref":"#/components/schemas/DomainWithUsage"}}},"required":["domains"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createDomain","description":"Create a workspace domain and optional initial endpoints.","x-speakeasy-group":"domains","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"maxLength":253},"setup":{"type":"object","properties":{"deploymentPortal":{"type":"boolean"},"packages":{"type":"boolean"},"deploymentUrlProjectId":{"type":"string","nullable":true,"pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"managerIds":{"type":"array","items":{"type":"string"}}}}},"required":["domain"]}}}},"responses":{"200":{"description":"Returned an existing workspace domain claim.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"201":{"description":"Created domain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"400":{"description":"Domain is reserved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Insufficient permissions or plan limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Domain cleanup is still in progress.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains/{id}/endpoints":{"post":{"operationId":"createDomainEndpoint","description":"Create an endpoint under a workspace domain.","x-speakeasy-group":"domains","x-speakeasy-name-override":"createEndpoint","parameters":[{"schema":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"required":true,"description":"Unique identifier for the domain.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["deployment_portal","workspace_packages","manager_api","deployment_url_base"]},"owner":{"type":"object","properties":{"type":{"type":"string","enum":["workspace","project","manager"]},"id":{"type":"string"}},"required":["type","id"]}},"required":["kind"]}}}},"responses":{"201":{"description":"Created endpoint.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"400":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Endpoint cleanup is still in progress.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains/{id}":{"get":{"operationId":"getDomain","description":"Get domain by ID.","x-speakeasy-group":"domains","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"required":true,"description":"Unique identifier for the domain.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved domain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteDomain","description":"Delete a workspace domain.","x-speakeasy-group":"domains","x-speakeasy-name-override":"delete","parameters":[{"schema":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"required":true,"description":"Unique identifier for the domain.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Domain deletion requested.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Domain is in use.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains/{id}/refresh":{"post":{"operationId":"refreshDomain","description":"Refresh workspace domain verification.","x-speakeasy-group":"domains","x-speakeasy-name-override":"refresh","parameters":[{"schema":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"required":true,"description":"Unique identifier for the domain.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Domain verification refresh requested.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/events":{"get":{"operationId":"listEvents","description":"Retrieve all events.","x-speakeasy-group":"events","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","description":"Filter events to a single deployment."},"required":false,"description":"Filter events to a single deployment.","name":"deploymentId","in":"query"},{"schema":{"type":"string","description":"Filter events to a single release."},"required":false,"description":"Filter events to a single release.","name":"releaseId","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["releaseCreatedAt"]},"description":"Optional fields to include: releaseCreatedAt"},"required":false,"description":"Optional fields to include: releaseCreatedAt","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved events.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/EventListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/events/{id}":{"get":{"operationId":"getEvent","description":"Retrieve an event by ID.","x-speakeasy-group":"events","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"event_[0-9a-zA-Z]{28}$","description":"Unique identifier for the event.","example":"event_MtSA24M3pWuAkQYxgZxuRI"},"required":true,"description":"Unique identifier for the event.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved event.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Event"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/join-tokens":{"get":{"operationId":"listMachinesJoinTokens","x-speakeasy-group":"machines","x-speakeasy-name-override":"listJoinTokens","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Join tokens for a Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMachinesJoinTokensResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createMachinesJoinToken","x-speakeasy-group":"machines","x-speakeasy-name-override":"createJoinToken","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Newly minted Machines join token. Existing tokens keep working; the token value is returned only once.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMachinesJoinTokenResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/join-tokens/rotate":{"post":{"operationId":"rotateMachinesJoinToken","x-speakeasy-group":"machines","x-speakeasy-name-override":"rotateJoinToken","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Rotated Machines join token. Revokes all existing tokens, then mints a new one; the token value is returned only once.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateMachinesJoinTokenResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/join-tokens/{tokenId}":{"delete":{"operationId":"revokeMachinesJoinToken","x-speakeasy-group":"machines","x-speakeasy-name-override":"revokeJoinToken","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"tokenId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Machines join token revocation result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeMachinesJoinTokenResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/inventory":{"get":{"operationId":"listMachinesInventory","x-speakeasy-group":"machines","x-speakeasy-name-override":"listInventory","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Machine inventory for a Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMachinesInventoryResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/machines/{machineId}/drain":{"delete":{"operationId":"cancelMachinesMachineDrain","x-speakeasy-group":"machines","x-speakeasy-name-override":"cancelMachineDrain","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"machineId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Machines drain cancellation result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelMachinesMachineDrainResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"drainMachinesMachine","x-speakeasy-group":"machines","x-speakeasy-name-override":"drainMachine","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"machineId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DrainMachinesMachineRequest"}}}},"responses":{"200":{"description":"Machines drain request result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DrainMachinesMachineResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/machines/{machineId}":{"delete":{"operationId":"removeMachinesMachine","x-speakeasy-group":"machines","x-speakeasy-name-override":"removeMachine","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"machineId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Machines remove request result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveMachinesMachineResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands":{"get":{"operationId":"listCommands","description":"Retrieve commands. Use for dashboard analytics and command history.","x-speakeasy-group":"commands","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Filter by deployment ID","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":false,"description":"Filter by deployment ID","name":"deploymentId","in":"query"},{"schema":{"type":"string","enum":["PENDING_UPLOAD","PENDING","DISPATCHED","SUCCEEDED","FAILED","EXPIRED"],"description":"Filter by command state"},"required":false,"description":"Filter by command state","name":"state","in":"query"},{"schema":{"type":"string","maxLength":255,"description":"Filter by command name"},"required":false,"description":"Filter by command name","name":"name","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search commands by name"},"required":false,"description":"Search commands by name","name":"search","in":"query"},{"schema":{"type":"string","nullable":true,"format":"date-time","description":"Filter commands created after this date (ISO 8601)"},"required":false,"description":"Filter commands created after this date (ISO 8601)","name":"createdAfter","in":"query"},{"schema":{"type":"string","nullable":true,"format":"date-time","description":"Filter commands created before this date (ISO 8601)"},"required":false,"description":"Filter commands created before this date (ISO 8601)","name":"createdBefore","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["deployment","project"]},"description":"Optional fields to include: deployment, project"},"required":false,"description":"Optional fields to include: deployment, project","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved commands.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CommandListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createCommand","description":"Create command metadata. Called by manager when processing commands. Returns project info for routing decisions.","x-speakeasy-group":"commands","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCommandRequest"}}}},"responses":{"201":{"description":"Command created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCommandResponse"}}}},"400":{"description":"Deployment is not ready or has no assigned manager.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Multiple command-capable targets; an explicit target is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"Deployment has no command-capable targets.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"The deployment manager is unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/names":{"get":{"operationId":"listCommandNames","description":"List distinct command names. Use for filter dropdowns in the dashboard.","x-speakeasy-group":"commands","x-speakeasy-name-override":"listNames","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","maxLength":255,"description":"Search command names (prefix match)"},"required":false,"description":"Search command names (prefix match)","name":"search","in":"query"}],"responses":{"200":{"description":"Distinct command names.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCommandNamesResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/deployments":{"get":{"operationId":"listCommandDeployments","description":"List distinct deployments that have commands, including deployment group info. Use for filter dropdowns in the dashboard.","x-speakeasy-group":"commands","x-speakeasy-name-override":"listDeployments","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","maxLength":255,"description":"Search deployment or deployment group names"},"required":false,"description":"Search deployment or deployment group names","name":"search","in":"query"}],"responses":{"200":{"description":"Distinct deployments that have commands.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCommandDeploymentsResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/target":{"get":{"operationId":"resolveCommandTarget","description":"Resolve which resource a command for this deployment would be addressed to, and how it would be delivered. Fails when the deployment has no command-capable resources, or more than one and no explicit target was named.","x-speakeasy-group":"commands","x-speakeasy-name-override":"resolveTarget","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Deployment to resolve the target for","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Deployment to resolve the target for","name":"deploymentId","in":"query"},{"schema":{"type":"string","maxLength":255,"description":"Explicit resource id to resolve; must be a command-capable resource"},"required":false,"description":"Explicit resource id to resolve; must be a command-capable resource","name":"target","in":"query"}],"responses":{"200":{"description":"Resolved command target.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolvedCommandTarget"}}}},"404":{"description":"Deployment or target not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Multiple command-capable targets; an explicit target is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"Deployment has no command-capable targets.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/{id}":{"patch":{"operationId":"updateCommand","description":"Update command state. Called by manager when command is dispatched or completes.","x-speakeasy-group":"commands","x-speakeasy-name-override":"update","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCommandRequest"}}}},"responses":{"200":{"description":"Command updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Command"}}}},"404":{"description":"Command not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"getCommand","description":"Retrieve a command by ID.","x-speakeasy-group":"commands","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved command.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Command"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/{id}/dispatch":{"post":{"operationId":"dispatchCommand","description":"Atomically mark a command DISPATCHED unless it is already terminal. Returns whether the transition was applied.","x-speakeasy-group":"commands","x-speakeasy-name-override":"dispatch","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DispatchCommandRequest"}}}},"responses":{"200":{"description":"Dispatch attempt result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DispatchCommandResponse"}}}},"404":{"description":"Command not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/{id}/complete":{"post":{"operationId":"completeCommand","description":"Atomically transition a command to a terminal state (SUCCEEDED, FAILED, or EXPIRED) unless it is already terminal. Returns whether the transition was applied.","x-speakeasy-group":"commands","x-speakeasy-name-override":"complete","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteCommandRequest"}}}},"responses":{"200":{"description":"Completion attempt result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteCommandResponse"}}}},"404":{"description":"Command not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/{id}/increment-attempt":{"post":{"operationId":"incrementCommandAttempt","description":"Atomically increment the command's attempt counter and return the new value.","x-speakeasy-group":"commands","x-speakeasy-name-override":"incrementAttempt","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Attempt incremented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncrementCommandAttemptResponse"}}}},"404":{"description":"Command not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/debug-sessions":{"get":{"operationId":"listDebugSessions","description":"Retrieve debug sessions for dashboard audit. Filters: project, deployment, state, mode.","x-speakeasy-group":"debugSessions","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Filter by deployment ID","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":false,"description":"Filter by deployment ID","name":"deploymentId","in":"query"},{"schema":{"allOf":[{"$ref":"#/components/schemas/DebugSessionState"},{"description":"Filter by session state"}]},"required":false,"description":"Filter by session state","name":"state","in":"query"},{"schema":{"type":"string","enum":["push","pull"],"description":"Filter by deployment model (push/pull). Joins against the parent deployment."},"required":false,"description":"Filter by deployment model (push/pull). Joins against the parent deployment.","name":"mode","in":"query"},{"schema":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Filter by cloud provider. Joins against the parent deployment."},"required":false,"description":"Filter by cloud provider. Joins against the parent deployment.","name":"provider","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Paginated debug sessions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugSessionListResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createDebugSession","description":"Create a debug-session audit row. Called by the manager when a pull or push debug tunnel is opened. Workspace + project derived from deployment.","x-speakeasy-group":"debugSessions","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDebugSessionRequest"}}}},"responses":{"201":{"description":"Debug session created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugSession"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/debug-sessions/{id}":{"patch":{"operationId":"updateDebugSession","description":"Update debug-session state. Called by manager on tunnel attach, close, or deadline expiry.","x-speakeasy-group":"debugSessions","x-speakeasy-name-override":"update","parameters":[{"schema":{"type":"string","pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Unique identifier for the debug session.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"required":true,"description":"Unique identifier for the debug session.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDebugSessionRequest"}}}},"responses":{"200":{"description":"Debug session updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugSession"}}}},"404":{"description":"Debug session not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"getDebugSession","description":"Retrieve a debug session by ID.","x-speakeasy-group":"debugSessions","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Unique identifier for the debug session.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"required":true,"description":"Unique identifier for the debug session.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved debug session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugSession"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-info":{"get":{"operationId":"getDeploymentInfo","description":"Get deployment information for the deployment portal. Accepts both deployment-scoped and deployment-group-scoped API keys. Returns project information, package status/outputs, and either deployment or deployment group details depending on the token type. Poll this endpoint to check if packages are ready.","x-speakeasy-group":"deployment","x-speakeasy-name-override":"getInfo","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"required":false,"description":"Represents the target cloud platform.","name":"platform","in":"query"}],"responses":{"200":{"description":"Deployment information retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentInfo"}}}},"401":{"description":"Unauthorized — requires a deployment-scoped or deployment-group-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment, deployment group, or project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-info/compute-plan":{"post":{"operationId":"planDeploymentCompute","description":"Plan deployment compute for the active release before stack preparation. The response contains recommended machine and scale choices for cloud compute pools.","x-speakeasy-group":"deployment","x-speakeasy-name-override":"planCompute","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure"]},"setupMethod":{"$ref":"#/components/schemas/DeploymentSetupMethod"},"region":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"type":"object","properties":{"pools":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["fixed"]},"machines":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","machines"]},{"type":"object","properties":{"mode":{"type":"string","enum":["autoscale"]},"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","min","max"]}]},"default":{}}}},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}}}},"required":["platform","setupMethod","stackSettings"]}}}},"responses":{"200":{"description":"Compute plan returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentComputePlan"}}}},"401":{"description":"Unauthorized — requires a deployment-group scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment group, project, release, or manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-info/prepare-stack":{"post":{"operationId":"prepareDeploymentStack","description":"Prepare the active release stack for a deployment portal setup session. The response contains the generated stack shape plus setup compatibility metadata.","x-speakeasy-group":"deployment","x-speakeasy-name-override":"prepareStack","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure"]},"setupMethod":{"$ref":"#/components/schemas/DeploymentSetupMethod"},"region":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"type":"object","properties":{"pools":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["fixed"]},"machines":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","machines"]},{"type":"object","properties":{"mode":{"type":"string","enum":["autoscale"]},"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","min","max"]}]},"default":{}}}},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}}}},"required":["platform","setupMethod","stackSettings"]}}}},"responses":{"200":{"description":"Prepared stack returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreparedDeploymentStack"}}}},"401":{"description":"Unauthorized — requires a deployment-group scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment group, project, release, or manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/slack/install-url":{"post":{"operationId":"slackIntegrationInstallUrl","description":"Generate the Slack OAuth consent URL for this workspace.","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"installUrl","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"OAuth URL the dashboard should redirect the user to.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackInstallUrlResponse"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/slack/status":{"get":{"operationId":"slackIntegrationStatus","description":"Return the Slack install for this workspace (if any).","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"status","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackIntegrationStatus"}}}}}}},"/v1/integrations/slack/channels":{"get":{"operationId":"slackIntegrationChannels","description":"List public Slack channels for this workspace's install. Used by the dashboard's notification-channel picker.","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"listChannels","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Public channels.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackChannelsResponse"}}}},"400":{"description":"Workspace not connected to Slack.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/slack/notification-channel":{"put":{"operationId":"slackIntegrationSetNotificationChannel","description":"Configure which Slack channel receives ai-agent monitor reports.","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"setNotificationChannel","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackNotificationChannelRequest"}}}},"responses":{"200":{"description":"Channel saved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackNotificationChannelResponse"}}}},"400":{"description":"Not connected, or join failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/slack/installation":{"delete":{"operationId":"slackIntegrationUninstall","description":"Uninstall the Slack integration for this workspace. Revokes the bot token at Slack and deletes the row.","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"uninstall","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Uninstalled."}}}},"/v1/agent-sessions":{"get":{"operationId":"listAgentSessions","description":"List ai-agent monitor sessions for this workspace. Newest first, capped at 50.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Sessions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionListResponse"}}}}}}},"/v1/agent-sessions/{id}":{"get":{"operationId":"getAgentSession","description":"Retrieve one ai-agent monitor session by id.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionDetail"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/agent-sessions/{id}/events":{"get":{"operationId":"listAgentSessionEvents","description":"Incrementally read a session's event log (steps, tool calls, report deltas, approvals, status transitions). Pass the previous response's `latestSeq` as `after` to fetch only new events.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"events","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"default":0},"required":false,"name":"after","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":500,"default":200},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Events after the cursor, oldest first.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionEventsResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/agent-sessions/{id}/approve":{"post":{"operationId":"approveAgentSession","description":"Approve a halted ai-agent monitor session. Proxies to the ai-agent service, minting a fresh CLI session for the caller so the ai-agent's own auth applies.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"approve","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Already resumed / no-op.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionApproveResponse"}}}},"202":{"description":"Approved; resume enqueued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionApproveResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"AI agent service is not configured.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/agent-sessions/{id}/stop":{"post":{"operationId":"stopAgentSession","description":"Stop (cancel) a running, queued, or halted ai-agent monitor session. Proxies to the ai-agent service, minting a fresh CLI session for the caller so the ai-agent's own auth applies. Idempotent — stopping an already-terminal session is a 200 no-op.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"stop","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Already terminal / no-op.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionStopResponse"}}}},"202":{"description":"Cancel accepted; session stopped.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionStopResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"AI agent service is not configured.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/list":{"post":{"operationId":"syncList","description":"List full deployment records for manager operational loops. This endpoint is intentionally separate from the public deployments list, which returns lightweight UI rows.","x-speakeasy-group":"sync","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncListRequest"}}}},"responses":{"200":{"description":"Full deployment records returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncListResponse"}}}},"400":{"description":"Bad request - invalid manager or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/context":{"post":{"operationId":"syncContext","description":"Get computed deployment state and configuration for a manager-side operation without acquiring the deployment reconciliation lock.","x-speakeasy-group":"sync","x-speakeasy-name-override":"context","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncContextRequest"}}}},"responses":{"200":{"description":"Computed deployment context returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncAcquireResponseDeployment"}}}},"404":{"description":"Deployment not found or not assigned to this manager.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Failed to build deployment context.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/acquire":{"post":{"operationId":"syncAcquire","description":"Acquire a batch of deployments for processing. Used by Manager to atomically lock deployments matching filters. Each deployment in the batch must be released after processing.","x-speakeasy-group":"sync","x-speakeasy-name-override":"acquire","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncAcquireRequest"}}}},"responses":{"200":{"description":"Deployments acquired successfully (empty arrays if none available). Failures indicate deployments that were locked but failed during context building - their locks have been released.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncAcquireResponse"}}}},"400":{"description":"Bad request - invalid manager or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/reconcile":{"post":{"operationId":"syncReconcile","description":"Reconcile deployment state. Push model requests that include a session verify lock ownership. Pull model state reports are accepted as authz-gated agent progress even when they carry an agent-sync session. Accepts full DeploymentState after step() execution.","x-speakeasy-group":"sync","x-speakeasy-name-override":"reconcile","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncReconcileRequest"}}}},"responses":{"200":{"description":"State reconciled successfully. If target is present, continue deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncReconcileResponse"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment locked (pull) or session mismatch (push).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/renew":{"post":{"operationId":"syncRenew","x-speakeasy-group":"sync","x-speakeasy-name-override":"renew","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncRenewRequest"}}}},"responses":{"200":{"description":"Renewal processed. Inspect `leases` for per-deployment outcomes; a lost lease is reported there rather than failing the whole batch.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"True when every requested deployment was renewed."},"leases":{"type":"array","items":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"renewed":{"type":"boolean","description":"False when this session no longer holds a live lease."},"leaseExpiresAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["deploymentId","renewed","leaseExpiresAt"]},"description":"Per-deployment renewal outcome."}},"required":["success","leases"]}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"The session no longer owns the deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/release":{"post":{"operationId":"syncRelease","description":"Release a deployment lock. Must be called after processing an acquired deployment, even if processing failed. This is critical to avoid deadlocks.","x-speakeasy-group":"sync","x-speakeasy-name-override":"release","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncReleaseRequest"}}}},"responses":{"200":{"description":"Lock released successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resources":{"get":{"operationId":"listInventory","x-speakeasy-group":"resources","x-speakeasy-name-override":"listInventory","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string"},"required":false,"name":"deploymentGroupId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"deploymentId","in":"query"}],"responses":{"200":{"description":"Unified managed and observed resource inventory rows.","content":{"application/json":{"schema":{"type":"object","properties":{"resources":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"resourceType":{"type":"string"},"resourceId":{"type":"string"},"name":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"deploymentCount":{"type":"integer"},"attentionCount":{"type":"integer"},"lastObservedAt":{"type":"string","format":"date-time"},"source":{"type":"string","enum":["managed"]},"deploymentId":{"type":"string"},"deploymentName":{"type":"string"}},"required":["resourceType","resourceId","name","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","deploymentCount","attentionCount","lastObservedAt","source","deploymentId","deploymentName"]},{"type":"object","properties":{"source":{"type":"string","enum":["observed"]},"deploymentId":{"type":"string"},"deploymentName":{"type":"string"},"deploymentGroupId":{"type":"string","nullable":true},"deploymentGroupName":{"type":"string","nullable":true},"resourceType":{"type":"string"},"resourceId":{"type":"string"},"name":{"type":"string"},"rawKind":{"type":"string"},"alienResourceId":{"type":"string","nullable":true},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"deploymentCount":{"type":"integer"},"attentionCount":{"type":"integer"},"lastObservedAt":{"type":"string","format":"date-time"}},"required":["source","deploymentId","deploymentName","deploymentGroupId","deploymentGroupName","resourceType","resourceId","name","rawKind","alienResourceId","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","deploymentCount","attentionCount","lastObservedAt"]}]}}},"required":["resources"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resources/{area}":{"get":{"operationId":"listResourceOverview","x-speakeasy-group":"resources","x-speakeasy-name-override":"listOverview","parameters":[{"schema":{"type":"string","enum":["container","worker","daemon"]},"required":true,"name":"area","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string"},"required":false,"name":"deploymentGroupId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"deploymentId","in":"query"}],"responses":{"200":{"description":"Compute resource overview rows from latest heartbeats.","content":{"application/json":{"schema":{"type":"object","properties":{"resources":{"type":"array","items":{"type":"object","properties":{"resourceType":{"type":"string"},"resourceId":{"type":"string"},"name":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"deploymentCount":{"type":"integer"},"attentionCount":{"type":"integer"},"lastObservedAt":{"type":"string","format":"date-time"}},"required":["resourceType","resourceId","name","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","deploymentCount","attentionCount","lastObservedAt"]}}},"required":["resources"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resources/{area}/{resourceId}/deployments":{"get":{"operationId":"listResourceDeployments","x-speakeasy-group":"resources","x-speakeasy-name-override":"listDeployments","parameters":[{"schema":{"type":"string","enum":["container","worker","daemon"]},"required":true,"name":"area","in":"path"},{"schema":{"type":"string"},"required":true,"name":"resourceId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string"},"required":false,"name":"deploymentGroupId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"deploymentId","in":"query"}],"responses":{"200":{"description":"Deployments where the resource is installed.","content":{"application/json":{"schema":{"type":"object","properties":{"resourceType":{"type":"string"},"resourceId":{"type":"string"},"deployments":{"type":"array","items":{"type":"object","properties":{"deploymentId":{"type":"string"},"deploymentName":{"type":"string"},"deploymentGroupId":{"type":"string","nullable":true},"deploymentGroupName":{"type":"string","nullable":true},"resourceType":{"type":"string"},"resourceId":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"observedAt":{"type":"string","format":"date-time"}},"required":["deploymentId","deploymentName","deploymentGroupId","deploymentGroupName","resourceType","resourceId","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","observedAt"]}}},"required":["resourceType","resourceId","deployments"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resources/{area}/deployments/{deploymentId}/{resourceId}":{"get":{"operationId":"getResourceDeploymentDetail","x-speakeasy-group":"resources","x-speakeasy-name-override":"getDeploymentDetail","parameters":[{"schema":{"type":"string","enum":["container","worker","daemon"]},"required":true,"name":"area","in":"path"},{"schema":{"type":"string"},"required":true,"name":"deploymentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"resourceId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"responses":{"200":{"description":"Latest heartbeat detail for one compute resource deployment.","content":{"application/json":{"schema":{"type":"object","properties":{"deployment":{"type":"object","properties":{"deploymentId":{"type":"string"},"deploymentName":{"type":"string"},"deploymentGroupId":{"type":"string","nullable":true},"deploymentGroupName":{"type":"string","nullable":true},"resourceType":{"type":"string"},"resourceId":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"observedAt":{"type":"string","format":"date-time"},"desiredImage":{"type":"string","nullable":true}},"required":["deploymentId","deploymentName","deploymentGroupId","deploymentGroupName","resourceType","resourceId","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","observedAt","desiredImage"]},"heartbeat":{"oneOf":[{"type":"object","properties":{"status":{"type":"string","enum":["available"]},"deploymentId":{"type":"string"},"resourceId":{"type":"string"},"resourceType":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"staleAt":{"type":"string","format":"date-time"},"platformStale":{"type":"boolean"},"heartbeat":{"type":"object","properties":{"backend":{"type":"string","enum":["aws","gcp","azure","kubernetes","local","managed","external","test"]},"controllerPlatform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"data":{"oneOf":[{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"blockPublicAcls":{"type":"boolean","nullable":true},"blockPublicPolicy":{"type":"boolean","nullable":true},"bucketAclPresent":{"type":"boolean","nullable":true},"bucketLocation":{"type":"string","nullable":true},"bucketPolicyPresent":{"type":"boolean","nullable":true},"encryptionConfigPresent":{"type":"boolean"},"encryptionEnabled":{"type":"boolean","nullable":true},"ignorePublicAcls":{"type":"boolean","nullable":true},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"publicAccessBlockPresent":{"type":"boolean"},"region":{"type":"string","nullable":true},"restrictPublicBuckets":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"versioningEnabled":{"type":"boolean","nullable":true},"versioningStatus":{"type":"string","nullable":true}},"required":["encryptionConfigPresent","lifecyclePresent","name","publicAccessBlockPresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsS3"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"bucketId":{"type":"string","nullable":true},"defaultKmsKeyName":{"type":"string","nullable":true},"encryptionConfigPresent":{"type":"boolean"},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":"integer","nullable":true,"minimum":0},"location":{"type":"string","nullable":true},"locationType":{"type":"string","nullable":true},"name":{"type":"string"},"publicAccessPrevention":{"type":"string","nullable":true},"retentionPeriod":{"type":"string","nullable":true},"retentionPolicyEffectiveTime":{"type":"string","nullable":true},"retentionPolicyIsLocked":{"type":"boolean","nullable":true},"softDeleteEffectiveTime":{"type":"string","nullable":true},"softDeleteRetentionDurationSeconds":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"storageClass":{"type":"string","nullable":true},"uniformBucketLevelAccessEnabled":{"type":"boolean","nullable":true},"uniformBucketLevelAccessLockedTime":{"type":"string","nullable":true},"versioningEnabled":{"type":"boolean","nullable":true}},"required":["encryptionConfigPresent","lifecyclePresent","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudStorage"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessTier":{"type":"string","nullable":true},"accountKind":{"type":"string","nullable":true},"allowBlobPublicAccess":{"type":"boolean","nullable":true},"blobDeleteRetentionDays":{"type":"integer","nullable":true,"minimum":0},"blobDeleteRetentionEnabled":{"type":"boolean","nullable":true},"blobEncryptionEnabled":{"type":"boolean","nullable":true},"blobVersioningEnabled":{"type":"boolean","nullable":true},"changeFeedEnabled":{"type":"boolean","nullable":true},"changeFeedRetentionDays":{"type":"integer","nullable":true,"minimum":0},"containerDeleteRetentionDays":{"type":"integer","nullable":true,"minimum":0},"containerDeleteRetentionEnabled":{"type":"boolean","nullable":true},"containerPublicAccess":{"type":"string","nullable":true},"encryptionKeySource":{"type":"string","nullable":true},"fileEncryptionEnabled":{"type":"boolean","nullable":true},"location":{"type":"string","nullable":true},"name":{"type":"string"},"primaryLocation":{"type":"string","nullable":true},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"queueEncryptionEnabled":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"secondaryLocation":{"type":"string","nullable":true},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"statusOfPrimary":{"type":"string","nullable":true},"statusOfSecondary":{"type":"string","nullable":true},"storageAccountName":{"type":"string","nullable":true},"tableEncryptionEnabled":{"type":"boolean","nullable":true}},"required":["name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureBlob"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"isDirectory":{"type":"boolean","nullable":true},"modifiedAt":{"type":"string","nullable":true,"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["path","pathExists","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["storage"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"codeSha256":{"type":"string","nullable":true},"functionName":{"type":"string"},"functionUrlAuthType":{"type":"string","nullable":true},"functionUrlCorsPresent":{"type":"boolean"},"lastModified":{"type":"string","nullable":true},"lastUpdateStatus":{"type":"string","nullable":true},"lastUpdateStatusReason":{"type":"string","nullable":true},"lastUpdateStatusReasonCode":{"type":"string","nullable":true},"layerCount":{"type":"integer","minimum":0},"memorySizeMb":{"type":"integer","nullable":true},"packageType":{"type":"string","nullable":true},"revisionId":{"type":"string","nullable":true},"runtime":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"stateReason":{"type":"string","nullable":true},"stateReasonCode":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"timeoutSeconds":{"type":"integer","nullable":true},"triggerCount":{"type":"integer","minimum":0},"version":{"type":"string","nullable":true}},"required":["functionName","functionUrlCorsPresent","layerCount","status","triggerCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsLambda"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"containerImage":{"type":"string","nullable":true},"cpuLimit":{"type":"string","nullable":true},"generation":{"type":"integer","nullable":true},"latestCreatedRevision":{"type":"string","nullable":true},"latestReadyRevision":{"type":"string","nullable":true},"maxInstanceCount":{"type":"integer","nullable":true},"memoryLimit":{"type":"string","nullable":true},"minInstanceCount":{"type":"integer","nullable":true},"observedGeneration":{"type":"integer","nullable":true},"region":{"type":"string","nullable":true},"service":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"trafficCount":{"type":"integer","minimum":0},"uri":{"type":"string","nullable":true},"urls":{"type":"array","items":{"type":"string"}}},"required":["service","status","trafficCount","urls"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudRun"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"appName":{"type":"string"},"cpu":{"type":"number","nullable":true},"environmentName":{"type":"string","nullable":true},"ingressFqdn":{"type":"string","nullable":true},"maxReplicas":{"type":"integer","nullable":true},"memory":{"type":"string","nullable":true},"minReplicas":{"type":"integer","nullable":true},"provisioningState":{"type":"string","nullable":true},"revision":{"type":"string","nullable":true},"runningStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["appName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerApps"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"triggerCount":{"type":"integer","minimum":0},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"]}},"required":["events","name","namespace","pods","replicas","status","triggerCount","workloadKind"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"imagePathPresent":{"type":"boolean"},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pid":{"type":"integer","nullable":true,"minimum":0},"process":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"readinessProbeOk":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"triggerCount":{"type":"integer","minimum":0}},"required":["commandSupported","events","imagePathPresent","status","triggerCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["worker"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"attentionCount":{"type":"integer","minimum":0},"containerId":{"type":"string"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"image":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"observedImage":{"type":"string","nullable":true},"replicaUnits":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"schedulingMode":{"type":"string","enum":["replicated","stateful","daemon"]},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["attentionCount","containerId","events","replicaUnits","replicas","schedulingMode","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["horizonPlatform"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"]}},"required":["events","name","namespace","pods","replicas","status","workloadKind"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"bindMountCount":{"type":"integer","minimum":0},"containerId":{"type":"string","nullable":true},"containerUnit":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"image":{"type":"string","nullable":true},"localUrl":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string","nullable":true},"portCount":{"type":"integer","minimum":0},"restartCount":{"type":"integer","nullable":true,"minimum":0},"runtimeReachable":{"type":"boolean"},"runtimeStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["bindMountCount","events","portCount","runtimeReachable","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["container"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aws"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcp"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azure"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["machines"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]}},"required":["commandSupported","events","name","namespace","pods","replicas","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"daemonInstance":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"daemonName":{"type":"string"},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"exitReason":{"type":"string","nullable":true},"imagePathPresent":{"type":"boolean"},"pid":{"type":"integer","nullable":true,"minimum":0},"restartCount":{"type":"integer","nullable":true,"minimum":0},"runtimeId":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["commandSupported","events","imagePathPresent","runtimeId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["daemon"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aws"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcp"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azure"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"machines":{"type":"array","items":{"type":"object","properties":{"capacityGroup":{"type":"string"},"cpuCores":{"type":"number","nullable":true},"drainBlockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainForce":{"type":"boolean"},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"horizondVersion":{"type":"string","nullable":true},"lastHeartbeat":{"type":"string"},"machineId":{"type":"string"},"memoryBytes":{"type":"integer","nullable":true},"overlayIp":{"type":"string","nullable":true},"publicIp":{"type":"string","nullable":true},"replicaCount":{"type":"integer"},"status":{"type":"string"},"zone":{"type":"string"}},"required":["capacityGroup","drainForce","lastHeartbeat","machineId","replicaCount","status","zone"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","machines","name","nodes","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["machines"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"dockerApiVersion":{"type":"string","nullable":true},"dockerArch":{"type":"string","nullable":true},"dockerAvailable":{"type":"boolean"},"dockerOs":{"type":"string","nullable":true},"dockerVersion":{"type":"string","nullable":true},"hostIdentifier":{"type":"string","nullable":true},"name":{"type":"string"},"networkAvailable":{"type":"boolean"},"networkName":{"type":"string","nullable":true},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"runningContainers":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"trackedContainers":{"type":"integer","nullable":true,"minimum":0}},"required":["dockerAvailable","name","networkAvailable","nodes","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["compute-cluster"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string","nullable":true},"nodeCounts":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"nodeStatuses":{"type":"array","items":{"type":"object","properties":{"allocatable":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pods":{"type":"integer","nullable":true,"minimum":0}}},"capacity":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pods":{"type":"integer","nullable":true,"minimum":0}}},"conditions":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"containerRuntimeVersion":{"type":"string","nullable":true},"kubeletVersion":{"type":"string","nullable":true},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"name":{"type":"string"},"ready":{"type":"boolean"},"roles":{"type":"array","items":{"type":"string"}},"uid":{"type":"string","nullable":true},"usage":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}}},{"nullable":true}]}},"required":["allocatable","capacity","labels","name","ready","roles"]}},"podCounts":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string","nullable":true}},"required":["events","name","nodeCounts","podCounts","status"]},"resourceType":{"type":"string","enum":["kubernetes-cluster"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"approximateCounts":{"type":"boolean"},"approximateDelayedMessages":{"type":"integer","nullable":true,"minimum":0},"approximateInFlightMessages":{"type":"integer","nullable":true,"minimum":0},"approximateVisibleMessages":{"type":"integer","nullable":true,"minimum":0},"contentBasedDeduplication":{"type":"boolean","nullable":true},"deduplicationScope":{"type":"string","nullable":true},"delaySeconds":{"type":"integer","nullable":true,"minimum":0},"fifoQueue":{"type":"boolean","nullable":true},"fifoThroughputLimit":{"type":"string","nullable":true},"kmsDataKeyReusePeriodSeconds":{"type":"integer","nullable":true,"minimum":0},"kmsMasterKeyId":{"type":"string","nullable":true},"maximumMessageSize":{"type":"integer","nullable":true,"minimum":0},"messageRetentionPeriodSeconds":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"queueArn":{"type":"string","nullable":true},"queueUrl":{"type":"string","nullable":true},"receiveMessageWaitTimeSeconds":{"type":"integer","nullable":true,"minimum":0},"redriveAllowPolicy":{"type":"string","nullable":true},"redrivePolicy":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"sqsManagedSseEnabled":{"type":"boolean","nullable":true},"sseEnabled":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"visibilityTimeoutSeconds":{"type":"integer","nullable":true,"minimum":0}},"required":["approximateCounts","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsSqs"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"kmsKeyName":{"type":"string","nullable":true},"messageStorageAllowedPersistenceRegions":{"type":"array","items":{"type":"string"}},"messageStorageEnforceInTransit":{"type":"boolean","nullable":true},"projectId":{"type":"string","nullable":true},"schemaEncoding":{"type":"string","nullable":true},"schemaFirstRevisionId":{"type":"string","nullable":true},"schemaLastRevisionId":{"type":"string","nullable":true},"schemaName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"subscriptionAckDeadlineSeconds":{"type":"integer","nullable":true,"minimum":0},"subscriptionDeadLetterMaxDeliveryAttempts":{"type":"integer","nullable":true,"minimum":0},"subscriptionDeadLetterTopic":{"type":"string","nullable":true},"subscriptionDetached":{"type":"boolean","nullable":true},"subscriptionEnableMessageOrdering":{"type":"boolean","nullable":true},"subscriptionFilter":{"type":"string","nullable":true},"subscriptionFullName":{"type":"string","nullable":true},"subscriptionLabels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"subscriptionMessageRetentionDuration":{"type":"string","nullable":true},"subscriptionName":{"type":"string","nullable":true},"subscriptionPushAttributes":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"subscriptionPushConfigPresent":{"type":"boolean","nullable":true},"subscriptionPushEndpoint":{"type":"string","nullable":true},"subscriptionPushNoWrapperWriteMetadata":{"type":"boolean","nullable":true},"subscriptionPushOidcAudience":{"type":"string","nullable":true},"subscriptionPushOidcServiceAccountEmail":{"type":"string","nullable":true},"subscriptionPushPubsubWrapperWriteMetadata":{"type":"boolean","nullable":true},"subscriptionRetainAckedMessages":{"type":"boolean","nullable":true},"subscriptionState":{"type":"string","nullable":true},"topicFullName":{"type":"string","nullable":true},"topicLabels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"topicMessageRetentionDuration":{"type":"string","nullable":true},"topicName":{"type":"string"},"topicState":{"type":"string","nullable":true}},"required":["messageStorageAllowedPersistenceRegions","status","subscriptionLabels","subscriptionPushAttributes","topicLabels","topicName"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpPubSub"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessedAt":{"type":"string","nullable":true},"activeMessageCount":{"type":"integer","nullable":true,"minimum":0},"autoDeleteOnIdle":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"deadLetterMessageCount":{"type":"integer","nullable":true,"minimum":0},"deadLetteringOnMessageExpiration":{"type":"boolean","nullable":true},"defaultMessageTimeToLive":{"type":"string","nullable":true},"duplicateDetectionHistoryTimeWindow":{"type":"string","nullable":true},"enableBatchedOperations":{"type":"boolean","nullable":true},"enableExpress":{"type":"boolean","nullable":true},"enablePartitioning":{"type":"boolean","nullable":true},"endpoint":{"type":"string","nullable":true},"forwardDeadLetteredMessagesTo":{"type":"string","nullable":true},"forwardTo":{"type":"string","nullable":true},"lockDuration":{"type":"string","nullable":true},"maxDeliveryCount":{"type":"integer","nullable":true,"minimum":0},"maxMessageSizeInKilobytes":{"type":"integer","nullable":true,"minimum":0},"maxSizeInMegabytes":{"type":"integer","nullable":true,"minimum":0},"messageCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"namespaceName":{"type":"string"},"queueStatus":{"type":"string","nullable":true},"requiresDuplicateDetection":{"type":"boolean","nullable":true},"requiresSession":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"scheduledMessageCount":{"type":"integer","nullable":true,"minimum":0},"sizeInBytes":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"transferDeadLetterMessageCount":{"type":"integer","nullable":true,"minimum":0},"transferMessageCount":{"type":"integer","nullable":true,"minimum":0},"updatedAt":{"type":"string","nullable":true}},"required":["name","namespaceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureServiceBus"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"name":{"type":"string"},"path":{"type":"string","nullable":true},"serviceStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["queue"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"billingMode":{"type":"string","nullable":true},"deletionProtectionEnabled":{"type":"boolean","nullable":true},"globalSecondaryIndexCount":{"type":"integer","nullable":true,"minimum":0},"itemCount":{"type":"integer","nullable":true,"minimum":0},"keySchema":{"type":"array","items":{"type":"object","properties":{"attributeName":{"type":"string"},"keyType":{"type":"string"}},"required":["attributeName","keyType"]}},"localSecondaryIndexCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"region":{"type":"string","nullable":true},"replicaCount":{"type":"integer","nullable":true,"minimum":0},"restoreInProgress":{"type":"boolean","nullable":true},"sseStatus":{"type":"string","nullable":true},"sseType":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"streamEnabled":{"type":"boolean","nullable":true},"streamViewType":{"type":"string","nullable":true},"tableArn":{"type":"string","nullable":true},"tableClass":{"type":"string","nullable":true},"tableSizeBytes":{"type":"integer","nullable":true,"minimum":0},"tableStatus":{"type":"string","nullable":true},"ttlAttributeName":{"type":"string","nullable":true},"ttlStatus":{"type":"string","nullable":true}},"required":["keySchema","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsDynamoDb"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"appEngineIntegrationMode":{"type":"string","nullable":true},"cmekEnabled":{"type":"boolean"},"concurrencyMode":{"type":"string","nullable":true},"createTime":{"type":"string","nullable":true},"databaseEdition":{"type":"string","nullable":true},"databaseName":{"type":"string"},"databaseType":{"type":"string","nullable":true},"deleteProtectionState":{"type":"string","nullable":true},"deleteTime":{"type":"string","nullable":true},"earliestVersionTime":{"type":"string","nullable":true},"endpoint":{"type":"string","nullable":true},"locationId":{"type":"string","nullable":true},"pointInTimeRecoveryEnablement":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"sourceInfoPresent":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updateTime":{"type":"string","nullable":true},"versionRetentionPeriod":{"type":"string","nullable":true}},"required":["cmekEnabled","databaseName","sourceInfoPresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpFirestore"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"signedIdentifierCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"storageAccountKind":{"type":"string","nullable":true},"storageAccountLocation":{"type":"string","nullable":true},"storageAccountName":{"type":"string"},"storageAccountPrimaryStatus":{"type":"string","nullable":true},"storageAccountProvisioningState":{"type":"string","nullable":true},"storageAccountResourceId":{"type":"string","nullable":true},"tableExists":{"type":"boolean"},"tableName":{"type":"string"}},"required":["status","storageAccountName","tableExists","tableName"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureTable"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cloudMetadataSupported":{"type":"boolean"},"isDirectory":{"type":"boolean","nullable":true},"name":{"type":"string"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["cloudMetadataSupported","name","path","pathExists","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["kv"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"clusterIdentifier":{"type":"string"},"endpoint":{"type":"string","nullable":true},"engineVersion":{"type":"string","nullable":true},"neverPauses":{"type":"boolean","description":"True when a `minCapacity: 0` instance has not reached 0 ACU over the observation\nwindow — it is silently paying always-on prices (auto-pause verification)."},"serverlessCapacity":{"type":"number","nullable":true,"description":"Latest sampled `ServerlessDatabaseCapacity` (ACU)."},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["clusterIdentifier","neverPauses","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aurora"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"databaseVersion":{"type":"string","nullable":true},"instanceName":{"type":"string"},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["instanceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["cloudSql"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"serverName":{"type":"string"},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string","nullable":true}},"required":["serverName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["flexibleServer"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"name":{"type":"string"},"port":{"type":"integer","nullable":true,"minimum":0},"processRunning":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string"}},"required":["name","processRunning","status","version"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["postgres"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string"},"hasMoreParameters":{"type":"boolean","nullable":true},"latestModifiedAt":{"type":"string","nullable":true,"format":"date-time"},"parameterMetadataSampled":{"type":"boolean"},"prefix":{"type":"string"},"region":{"type":"string"},"sampledAdvancedTierCount":{"type":"integer","nullable":true,"minimum":0},"sampledKmsKeyMetadataPresentCount":{"type":"integer","nullable":true,"minimum":0},"sampledParameterCount":{"type":"integer","nullable":true,"minimum":0},"sampledSecureStringCount":{"type":"integer","nullable":true,"minimum":0},"sampledStringCount":{"type":"integer","nullable":true,"minimum":0},"sampledStringListCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["accountId","parameterMetadataSampled","prefix","region","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsParameterStore"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string"},"prefix":{"type":"string"},"projectId":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["location","prefix","projectId","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpSecretManager"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessPolicyCount":{"type":"integer","minimum":0},"location":{"type":"string","nullable":true},"name":{"type":"string"},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string"},"purgeProtectionEnabled":{"type":"boolean","nullable":true},"rbacAuthorizationEnabled":{"type":"boolean"},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"secretMetadataListed":{"type":"boolean"},"skuFamily":{"type":"string","nullable":true},"skuName":{"type":"string","nullable":true},"softDeleteEnabled":{"type":"boolean"},"softDeleteRetentionDays":{"type":"integer"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vaultUri":{"type":"string","nullable":true}},"required":["accessPolicyCount","name","privateEndpointConnectionCount","publicNetworkAccess","rbacAuthorizationEnabled","secretMetadataListed","softDeleteEnabled","softDeleteRetentionDays","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureKeyVault"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"type":"string"},"prefix":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["namespace","prefix","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetesSecret"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"isDirectory":{"type":"boolean","nullable":true},"modifiedAt":{"type":"string","nullable":true,"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":"boolean","nullable":true},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["path","pathExists","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["vault"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"assumeRolePolicyPresent":{"type":"boolean"},"attachedPolicyCount":{"type":"integer","minimum":0},"attachedPolicyNames":{"type":"array","items":{"type":"string"}},"createDate":{"type":"string"},"description":{"type":"string","nullable":true},"inlinePolicyCount":{"type":"integer","minimum":0},"inlinePolicyNames":{"type":"array","items":{"type":"string"}},"lastUsedDate":{"type":"string","nullable":true},"lastUsedRegion":{"type":"string","nullable":true},"managedTagCount":{"type":"integer","minimum":0},"maxSessionDuration":{"type":"integer","nullable":true},"path":{"type":"string"},"permissionsBoundaryArn":{"type":"string","nullable":true},"permissionsBoundaryType":{"type":"string","nullable":true},"roleArn":{"type":"string"},"roleId":{"type":"string"},"roleName":{"type":"string"},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tagCount":{"type":"integer","minimum":0}},"required":["assumeRolePolicyPresent","attachedPolicyCount","attachedPolicyNames","createDate","inlinePolicyCount","inlinePolicyNames","managedTagCount","path","roleArn","roleId","roleName","stackPermissionsApplied","status","tagCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsIamRole"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true},"disabled":{"type":"boolean","nullable":true},"displayName":{"type":"string","nullable":true},"email":{"type":"string"},"etag":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"oauth2ClientId":{"type":"string","nullable":true},"projectBindingCount":{"type":"integer","minimum":0},"projectId":{"type":"string","nullable":true},"projectRoles":{"type":"array","items":{"type":"string"}},"serviceAccountBindingCount":{"type":"integer","minimum":0},"serviceAccountRoles":{"type":"array","items":{"type":"string"}},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"uniqueId":{"type":"string","nullable":true}},"required":["email","projectBindingCount","projectRoles","serviceAccountBindingCount","serviceAccountRoles","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"clientId":{"type":"string","nullable":true},"customRoleDefinitionCount":{"type":"integer","minimum":0},"customRoleDefinitionIds":{"type":"array","items":{"type":"string"}},"isolationScope":{"type":"string","nullable":true},"location":{"type":"string"},"managedTagCount":{"type":"integer","minimum":0},"name":{"type":"string"},"principalId":{"type":"string","nullable":true},"resourceGroup":{"type":"string"},"resourceId":{"type":"string"},"roleAssignmentCount":{"type":"integer","minimum":0},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tenantId":{"type":"string","nullable":true},"type":{"type":"string","nullable":true}},"required":["customRoleDefinitionCount","customRoleDefinitionIds","location","managedTagCount","name","resourceGroup","resourceId","roleAssignmentCount","roleAssignmentIds","stackPermissionsApplied","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"configured":{"type":"boolean"},"identity":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["configured","identity","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["service-account"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"availabilityZones":{"type":"array","items":{"type":"string"}},"cidrBlock":{"type":"string","nullable":true},"internetGatewayId":{"type":"string","nullable":true},"isByoVpc":{"type":"boolean"},"natGatewayId":{"type":"string","nullable":true},"privateSubnetIds":{"type":"array","items":{"type":"string"}},"publicSubnetIds":{"type":"array","items":{"type":"string"}},"routeTableCount":{"type":"integer","minimum":0},"securityGroupId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vpcId":{"type":"string","nullable":true},"vpcState":{"type":"string","nullable":true}},"required":["availabilityZones","isByoVpc","privateSubnetIds","publicSubnetIds","routeTableCount","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsVpc"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cidrBlock":{"type":"string","nullable":true},"cloudNatName":{"type":"string","nullable":true},"firewallName":{"type":"string","nullable":true},"isByoVpc":{"type":"boolean"},"networkName":{"type":"string","nullable":true},"networkSelfLink":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"routerName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"subnetworkName":{"type":"string","nullable":true},"subnetworkSelfLink":{"type":"string","nullable":true}},"required":["isByoVpc","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpVpc"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"applicationGatewaySubnetName":{"type":"string","nullable":true},"cidrBlock":{"type":"string","nullable":true},"isByoVnet":{"type":"boolean"},"lastByoVnetVerificationErrorCode":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"natGatewayId":{"type":"string","nullable":true},"nsgId":{"type":"string","nullable":true},"privateEndpointSubnetName":{"type":"string","nullable":true},"privateSubnetName":{"type":"string","nullable":true},"publicIpId":{"type":"string","nullable":true},"publicSubnetName":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vnetName":{"type":"string","nullable":true},"vnetResourceId":{"type":"string","nullable":true}},"required":["isByoVnet","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureVnet"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["network"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"managementPermissionsApplied":{"type":"boolean"},"roleArn":{"type":"string","nullable":true},"roleName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["managementPermissionsApplied","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsIamRole"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"impersonationGranted":{"type":"boolean"},"roleBound":{"type":"boolean"},"serviceAccountEmail":{"type":"string","nullable":true},"serviceAccountUniqueId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["impersonationGranted","roleBound","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"ficName":{"type":"string","nullable":true},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"roleDefinitionId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tenantId":{"type":"string","nullable":true},"uamiClientId":{"type":"string","nullable":true},"uamiPrincipalId":{"type":"string","nullable":true},"uamiResourceId":{"type":"string","nullable":true}},"required":["roleAssignmentIds","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["remote-stack-management"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"pullRoleArn":{"type":"string","nullable":true},"pushRoleArn":{"type":"string","nullable":true},"region":{"type":"string"},"registryId":{"type":"string"},"registryUri":{"type":"string"},"repositories":{"type":"array","items":{"type":"object","properties":{"createdAt":{"type":"number"},"encryptionType":{"type":"string","nullable":true},"imageTagMutability":{"type":"string","nullable":true},"kmsKeyPresent":{"type":"boolean"},"registryId":{"type":"string"},"repositoryArn":{"type":"string"},"repositoryName":{"type":"string"},"repositoryUri":{"type":"string"},"scanOnPush":{"type":"boolean","nullable":true}},"required":["createdAt","kmsKeyPresent","registryId","repositoryArn","repositoryName","repositoryUri"]}},"repositoriesTruncated":{"type":"boolean"},"repositoryCount":{"type":"integer","minimum":0},"repositoryPrefix":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["region","registryId","registryUri","repositories","repositoriesTruncated","repositoryCount","repositoryPrefix","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsEcr"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cleanupPolicyCount":{"type":"integer","minimum":0},"cleanupPolicyDryRun":{"type":"boolean","nullable":true},"createTime":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"format":{"type":"string","nullable":true},"iamBindingCount":{"type":"integer","minimum":0},"iamPolicyEtagPresent":{"type":"boolean"},"iamRoles":{"type":"array","items":{"type":"string"}},"kmsKeyNamePresent":{"type":"boolean"},"labelCount":{"type":"integer","minimum":0},"location":{"type":"string"},"mode":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"projectId":{"type":"string"},"pullServiceAccountEmail":{"type":"string","nullable":true},"pushServiceAccountEmail":{"type":"string","nullable":true},"repositoryId":{"type":"string"},"satisfiesPzs":{"type":"boolean","nullable":true},"sizeBytes":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updateTime":{"type":"string","nullable":true}},"required":["cleanupPolicyCount","iamBindingCount","iamPolicyEtagPresent","iamRoles","kmsKeyNamePresent","labelCount","location","projectId","repositoryId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpArtifactRegistry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"adminUserEnabled":{"type":"boolean"},"anonymousPullEnabled":{"type":"boolean"},"creationDate":{"type":"string","nullable":true},"dataEndpointEnabled":{"type":"boolean","nullable":true},"dataEndpointHostNames":{"type":"array","items":{"type":"string"}},"encryptionKeyIdentifierPresent":{"type":"boolean"},"encryptionKeyVaultUriPresent":{"type":"boolean"},"encryptionStatus":{"type":"string","nullable":true},"ipRuleCount":{"type":"integer","minimum":0},"location":{"type":"string"},"loginServer":{"type":"string","nullable":true},"managedTagCount":{"type":"integer","minimum":0},"name":{"type":"string"},"networkRuleBypassOptions":{"type":"string"},"networkRuleDefaultAction":{"type":"string","nullable":true},"policiesPresent":{"type":"boolean"},"policyCount":{"type":"integer","minimum":0},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string"},"resourceGroup":{"type":"string"},"resourceId":{"type":"string","nullable":true},"skuName":{"type":"string"},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"type":{"type":"string","nullable":true},"zoneRedundancy":{"type":"string"}},"required":["adminUserEnabled","anonymousPullEnabled","dataEndpointHostNames","encryptionKeyIdentifierPresent","encryptionKeyVaultUriPresent","ipRuleCount","location","managedTagCount","name","networkRuleBypassOptions","policiesPresent","policyCount","privateEndpointConnectionCount","publicNetworkAccess","resourceGroup","skuName","status","zoneRedundancy"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerRegistry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"reachable":{"type":"boolean"},"registryUrl":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["reachable","registryUrl","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["artifact-registry"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"artifactsEncryptionDisabled":{"type":"boolean","nullable":true},"artifactsType":{"type":"string","nullable":true},"cloudWatchLogsStatus":{"type":"string","nullable":true},"computeType":{"type":"string","nullable":true},"created":{"type":"number","nullable":true},"description":{"type":"string","nullable":true},"encryptionKeyPresent":{"type":"boolean"},"environmentImage":{"type":"string","nullable":true},"environmentType":{"type":"string","nullable":true},"environmentVariableCount":{"type":"integer","minimum":0},"imagePullCredentialsType":{"type":"string","nullable":true},"lastModified":{"type":"number","nullable":true},"privilegedMode":{"type":"boolean","nullable":true},"projectArn":{"type":"string","nullable":true},"projectName":{"type":"string"},"queuedTimeoutInMinutes":{"type":"integer","nullable":true},"s3LogsStatus":{"type":"string","nullable":true},"serviceRolePresent":{"type":"boolean"},"sourceType":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"timeoutInMinutes":{"type":"integer","nullable":true}},"required":["encryptionKeyPresent","environmentVariableCount","projectName","serviceRolePresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsCodeBuild"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"buildConfigId":{"type":"string"},"environmentVariableCount":{"type":"integer","minimum":0},"location":{"type":"string"},"projectId":{"type":"string"},"serviceAccount":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["buildConfigId","environmentVariableCount","location","projectId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudBuild"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"environmentVariableCount":{"type":"integer","minimum":0},"managedEnvironmentId":{"type":"string"},"managedIdentityId":{"type":"string","nullable":true},"resourceGroupName":{"type":"string"},"resourcePrefix":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["environmentVariableCount","managedEnvironmentId","resourceGroupName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerApps"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"active":{"type":"integer","nullable":true},"completionTime":{"type":"string","nullable":true,"format":"date-time"},"conditionCount":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"failed":{"type":"integer","nullable":true},"imageDigest":{"type":"string","nullable":true},"jobName":{"type":"string"},"namespace":{"type":"string"},"startTime":{"type":"string","nullable":true,"format":"date-time"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"succeeded":{"type":"integer","nullable":true}},"required":["conditionCount","events","jobName","namespace","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetesJob"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["build"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"enabled":{"type":"boolean"},"lastOperationName":{"type":"string","nullable":true},"projectId":{"type":"string"},"serviceName":{"type":"string"},"serviceResourceName":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"title":{"type":"string","nullable":true}},"required":["enabled","projectId","serviceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceUsage"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"type":"string"},"providerId":{"type":"string","nullable":true},"registered":{"type":"boolean"},"registrationPolicy":{"type":"string","nullable":true},"registrationState":{"type":"string","nullable":true},"resourceTypeCount":{"type":"integer","minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["namespace","registered","resourceTypeCount","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureResourceProvider"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["service_activation"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"location":{"type":"string","nullable":true},"managedTags":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"name":{"type":"string"},"provisioningState":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["managedTags","name","status"]},"resourceType":{"type":"string","enum":["azure_resource_group"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"allowBlobPublicAccess":{"type":"boolean","nullable":true},"allowSharedKeyAccess":{"type":"boolean","nullable":true},"encryptionKeySource":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"minimumTlsVersion":{"type":"string","nullable":true},"name":{"type":"string"},"networkBypass":{"type":"string","nullable":true},"networkDefaultAction":{"type":"string","nullable":true},"networkIpRuleCount":{"type":"integer","nullable":true,"minimum":0},"networkResourceAccessRuleCount":{"type":"integer","nullable":true,"minimum":0},"networkVirtualNetworkRuleCount":{"type":"integer","nullable":true,"minimum":0},"primaryEndpoints":{"type":"object","properties":{"blob":{"type":"string","nullable":true},"dfs":{"type":"string","nullable":true},"file":{"type":"string","nullable":true},"queue":{"type":"string","nullable":true},"table":{"type":"string","nullable":true},"web":{"type":"string","nullable":true}}},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"requireInfrastructureEncryption":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"secondaryEndpoints":{"type":"object","properties":{"blob":{"type":"string","nullable":true},"dfs":{"type":"string","nullable":true},"file":{"type":"string","nullable":true},"queue":{"type":"string","nullable":true},"table":{"type":"string","nullable":true},"web":{"type":"string","nullable":true}}},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"supportsHttpsTrafficOnly":{"type":"boolean","nullable":true}},"required":["name","primaryEndpoints","secondaryEndpoints","status"]},"resourceType":{"type":"string","enum":["azure_storage_account"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"customDomainVerificationId":{"type":"string","nullable":true},"defaultDomain":{"type":"string","nullable":true},"eventStreamEndpoint":{"type":"string","nullable":true},"infrastructureResourceGroup":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"name":{"type":"string"},"provisioningState":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"staticIp":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workloadProfileCount":{"type":"integer","minimum":0},"workloadProfiles":{"type":"array","items":{"type":"object","properties":{"maximumCount":{"type":"integer","nullable":true},"minimumCount":{"type":"integer","nullable":true},"name":{"type":"string"},"workloadProfileType":{"type":"string"}},"required":["name","workloadProfileType"]}},"zoneRedundant":{"type":"boolean","nullable":true}},"required":["name","status","workloadProfileCount","workloadProfiles"]},"resourceType":{"type":"string","enum":["azure_container_apps_environment"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"createdAt":{"type":"string","nullable":true},"disableLocalAuth":{"type":"boolean","nullable":true},"location":{"type":"string","nullable":true},"metricId":{"type":"string","nullable":true},"minimumTlsVersion":{"type":"string","nullable":true},"name":{"type":"string"},"namespaceStatus":{"type":"string","nullable":true},"premiumMessagingPartitions":{"type":"integer","nullable":true},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"serviceBusEndpoint":{"type":"string","nullable":true},"skuCapacity":{"type":"integer","nullable":true},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updatedAt":{"type":"string","nullable":true},"zoneRedundant":{"type":"boolean","nullable":true}},"required":["name","privateEndpointConnectionCount","status"]},"resourceType":{"type":"string","enum":["azure_service_bus_namespace"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"region":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["region","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsBedrock"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string"},"project":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["location","project","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpVertex"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"type":"string"},"endpoint":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["accountName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureFoundry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"provider":{"type":"string","description":"The BYO-key provider serving this binding (e.g. \"openai\"). Used on the Local\nplatform, where the app brings its own provider key instead of an ambient cloud."},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["provider","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["external"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["ai"]}},"required":["data","resourceType"]}]},"deploymentId":{"type":"string","nullable":true},"observedAt":{"type":"string","format":"date-time"},"raw":{"type":"array","items":{"type":"object","properties":{"body":{"type":"string"},"collectedAt":{"type":"string","format":"date-time"},"format":{"type":"string","enum":["json","yaml","text"]},"source":{"type":"string"},"truncated":{"type":"boolean"}},"required":["body","collectedAt","format","source","truncated"]}},"resourceId":{"type":"string","description":"Alien resource id, such as the `alien.Container` or `alien.Storage`\nresource id from the stack."},"resourceType":{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior."}},"required":["backend","controllerPlatform","data","observedAt","raw","resourceId","resourceType"]},"raw":{"type":"array","items":{"nullable":true}}},"required":["status","deploymentId","resourceId","resourceType","backend","controllerPlatform","observedAt","staleAt","platformStale","heartbeat","raw"]},{"type":"object","properties":{"status":{"type":"string","enum":["missing"]},"deploymentId":{"type":"string"},"resourceId":{"type":"string"},"resourceType":{"type":"string"}},"required":["status","deploymentId","resourceId","resourceType"]}]}},"required":["deployment","heartbeat"]}}}},"404":{"description":"Deployment or resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resolve":{"get":{"operationId":"resolve","tags":["resolve"],"summary":"Resolve manager for a project and platform","description":"Returns the manager URL for a given project and platform. The project can be provided as a query parameter, or derived from the token's scope (project-scoped, deployment-group-scoped, or deployment-scoped tokens carry an implicit project). This is the single entry point for all CLI tools to discover which manager to talk to.","x-speakeasy-group":"resolve","x-speakeasy-name-override":"resolve","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform to resolve the manager for"},"required":true,"description":"Target platform to resolve the manager for","name":"platform","in":"query"},{"schema":{"type":"string","maxLength":100,"description":"Project ID or name. Required for user and workspace-scoped tokens. Optional for project/deployment-group/deployment-scoped tokens (derived from token scope)."},"required":false,"description":"Project ID or name. Required for user and workspace-scoped tokens. Optional for project/deployment-group/deployment-scoped tokens (derived from token scope).","name":"project","in":"query"}],"responses":{"200":{"description":"Manager resolved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveResponse"}}}},"400":{"description":"Missing required project parameter for this token type.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project not found or no manager available for platform.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"Manager not ready yet (no URL reported). Retry after a delay.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/cloud-regions":{"get":{"operationId":"getCloudRegions","description":"Get cloud regions supported by this Alien environment.","x-speakeasy-group":"cloudRegions","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Supported cloud regions retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloudRegionsResponse"}}}}}}},"/v1/billing/audit-log":{"get":{"operationId":"listBillingAuditLog","description":"List billing activity entries for the current workspace.","x-speakeasy-group":"billing","x-speakeasy-name-override":"listAuditLog","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"number","minimum":1,"maximum":200,"default":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor: id from the previous page."},"required":false,"description":"Cursor: id from the previous page.","name":"before","in":"query"}],"responses":{"200":{"description":"Audit-log rows newest-first.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/BillingAuditLogRow"}},"nextCursor":{"type":"string","nullable":true}},"required":["items","nextCursor"]}}}}}}},"/v1/billing/entitlements":{"get":{"operationId":"getWorkspaceBillingEntitlements","description":"Get the workspace billing entitlements used for product feature gates. Autumn is the source of truth; the response is served through the workspace billing read model with stale-cache fallback.","x-speakeasy-group":"billing","x-speakeasy-name-override":"getEntitlements","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Workspace billing entitlements.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceBillingEntitlements"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}}}} \ No newline at end of file +{"openapi":"3.0.0","info":{"title":"Alien API","version":"1.0.0","contact":{"name":"Alien Team","url":"https://alien.dev"}},"servers":[{"url":"https://api.alien.dev","description":"Alien API - Production"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","bearerFormat":"API key","description":"API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys"}},"schemas":{"WorkspaceInvitationPreview":{"type":"object","properties":{"kind":{"type":"string","enum":["email","link"]},"workspace":{"type":"object","properties":{"id":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$"},"logoUrl":{"type":"string","nullable":true,"format":"uri"}},"required":["id","name","logoUrl"]},"inviter":{"type":"object","nullable":true,"properties":{"name":{"type":"string"},"image":{"type":"string","nullable":true,"format":"uri"}},"required":["name","image"]},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"expiresAt":{"type":"string","format":"date-time"},"state":{"type":"string","enum":["active","accepted","expired","revoked"]},"emailHint":{"type":"string","nullable":true}},"required":["kind","workspace","inviter","role","expiresAt","state","emailHint"],"additionalProperties":false},"WorkspaceRole":{"type":"string","enum":["workspace.viewer","workspace.member","workspace.admin"],"description":"Role for workspace-scoped service accounts","example":"workspace.member"},"APIError":{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"message":{"type":"string","maxLength":16384,"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."},"source":{"nullable":true,"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."},"retryable":{"type":"boolean","default":false,"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."},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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."},"requestId":{"type":"string","description":"Request ID echoed in the x-request-id response header and server logs."}},"required":["code","message","internal"]},"Membership":{"type":"object","properties":{"id":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$"},"logoUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"role":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","logoUrl","role","createdAt"],"additionalProperties":false},"UserProfile":{"type":"object","properties":{"id":{"type":"string","description":"Unique user identifier"},"email":{"type":"string","description":"User's email address"},"name":{"type":"string","description":"User's display name"},"image":{"type":"string","nullable":true,"description":"User's avatar image URL"},"githubUsername":{"type":"string","nullable":true,"description":"Linked GitHub username"},"cliConnected":{"type":"boolean","description":"Whether this user has ever authenticated a request from the Alien CLI. Latched on first CLI request, never cleared."},"company":{"type":"string","nullable":true,"description":"Company name collected during profile setup."},"acquisitionSource":{"type":"string","nullable":true,"enum":["github","x-twitter","linkedin","hacker-news","reddit","search","friend-or-colleague","founder","event-or-community","other",null],"description":"How the user heard about Alien."},"acquisitionSourceDetail":{"type":"string","nullable":true,"description":"Additional acquisition source detail when the source is other."},"useCases":{"type":"string","nullable":true,"description":"What the user is hoping to use Alien for."},"profileSetupCompletedAt":{"type":"string","format":"date-time","nullable":true,"description":"When the user completed the required profile setup dialog."},"profileSetupVersion":{"type":"integer","nullable":true,"description":"Version of the required profile setup dialog the user completed."}},"required":["id","email","name","image","githubUsername","cliConnected","company","acquisitionSource","acquisitionSourceDetail","useCases","profileSetupCompletedAt","profileSetupVersion"],"additionalProperties":false},"UserProfileSetupRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Display name"},"company":{"type":"string","minLength":1,"maxLength":120,"description":"Company name"},"acquisitionSource":{"type":"string","enum":["github","x-twitter","linkedin","hacker-news","reddit","search","friend-or-colleague","founder","event-or-community","other"],"description":"How the user heard about Alien"},"acquisitionSourceDetail":{"type":"string","minLength":1,"maxLength":200,"description":"Required when acquisitionSource is other"},"useCases":{"type":"string","maxLength":2000,"description":"What the user is hoping to use Alien for"}},"required":["name","company","acquisitionSource"],"additionalProperties":false},"GitNamespace":{"type":"object","properties":{"id":{"type":"number","nullable":true},"name":{"type":"string"},"slug":{"type":"string"},"installationId":{"type":"number","nullable":true},"type":{"type":"string","enum":["team","user"]},"provider":{"type":"string","enum":["github"]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","slug","installationId","type","provider","createdAt"],"additionalProperties":false},"GitRepository":{"type":"object","properties":{"name":{"type":"string"},"private":{"type":"boolean"},"defaultBranch":{"type":"string"},"pushedAt":{"type":"string","format":"date-time"}},"required":["name","private","defaultBranch"],"additionalProperties":false},"AcceptWorkspaceInvitationResponse":{"type":"object","properties":{"outcome":{"type":"string","enum":["joined","already-member"]},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"workspaceName":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$"},"role":{"$ref":"#/components/schemas/WorkspaceRole"}},"required":["outcome","workspaceId","workspaceName","role"],"additionalProperties":false},"Subject":{"oneOf":[{"$ref":"#/components/schemas/UserSubject"},{"$ref":"#/components/schemas/ServiceAccountSubject"}],"discriminator":{"propertyName":"kind","mapping":{"user":"#/components/schemas/UserSubject","serviceAccount":"#/components/schemas/ServiceAccountSubject"}},"description":"Authenticated principal that can be either a user (with workspace-scoped permissions) or a service account (with configurable scope and role)"},"UserSubject":{"type":"object","properties":{"kind":{"type":"string","enum":["user"],"description":"Subject type identifier"},"id":{"type":"string","description":"Unique user identifier"},"email":{"type":"string","format":"email","description":"User's email address"},"workspaceId":{"type":"string","description":"ID of the workspace the user is authenticated within"},"workspaceName":{"type":"string","description":"Name of the workspace the user is authenticated within"},"role":{"$ref":"#/components/schemas/UserRole"}},"required":["kind","id","email","workspaceId","role"],"description":"Authenticated user subject with workspace-scoped permissions"},"UserRole":{"type":"string","enum":["workspace.viewer","workspace.member","workspace.admin"],"description":"User's role within the workspace","example":"workspace.member"},"ServiceAccountSubject":{"type":"object","properties":{"kind":{"type":"string","enum":["serviceAccount"],"description":"Subject type identifier"},"id":{"type":"string","description":"Unique service account identifier (API key ID)"},"workspaceId":{"type":"string","description":"ID of the workspace the service account belongs to"},"workspaceName":{"type":"string","description":"Name of the workspace the service account belongs to"},"scope":{"$ref":"#/components/schemas/SubjectScope"},"role":{"$ref":"#/components/schemas/Role"}},"required":["kind","id","workspaceId","scope","role"],"description":"Authenticated service account subject with scoped permissions (workspace, project, or deployment level)"},"SubjectScope":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["workspace"],"description":"Workspace-scoped access"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["project"],"description":"Project-scoped access"},"projectId":{"type":"string","description":"ID of the specific project this scope applies to"}},"required":["type","projectId"]},{"type":"object","properties":{"type":{"type":"string","enum":["deployment"],"description":"Deployment-scoped access"},"deploymentId":{"type":"string","description":"ID of the specific deployment this scope applies to"},"projectId":{"type":"string","description":"ID of the project this deployment belongs to"}},"required":["type","deploymentId","projectId"]},{"type":"object","properties":{"type":{"type":"string","enum":["deployment-group"],"description":"Deployment group-scoped access"},"deploymentGroupId":{"type":"string","description":"ID of the specific deployment group this scope applies to"},"projectId":{"type":"string","description":"ID of the project this deployment group belongs to"}},"required":["type","deploymentGroupId","projectId"]},{"type":"object","properties":{"type":{"type":"string","enum":["manager"],"description":"Manager-scoped access"},"managerId":{"type":"string","description":"ID of the specific manager this scope applies to"}},"required":["type","managerId"]}],"description":"Authorization scope defining what resources this service account can access"},"Role":{"oneOf":[{"$ref":"#/components/schemas/WorkspaceRole"},{"$ref":"#/components/schemas/ProjectRole"},{"$ref":"#/components/schemas/DeploymentRole"},{"$ref":"#/components/schemas/DeploymentGroupRole"},{"$ref":"#/components/schemas/ManagerRole"}],"description":"Role defining what actions this service account can perform within its scope","example":"workspace.member"},"ProjectRole":{"type":"string","enum":["project.viewer","project.developer"],"description":"Role for project-scoped service accounts","example":"project.developer"},"DeploymentRole":{"type":"string","enum":["deployment.viewer","deployment.manager","deployment.telemetry-writer"],"description":"Role for deployment-scoped service accounts","example":"deployment.manager"},"DeploymentGroupRole":{"type":"string","enum":["deployment-group.deployer"],"description":"Role for deployment group-scoped service accounts","example":"deployment-group.deployer"},"ManagerRole":{"type":"string","enum":["manager.runtime"],"description":"Role for manager-scoped service accounts","example":"manager.runtime"},"Workspace":{"type":"object","properties":{"id":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name.","example":"my-workspace"},"logoUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"onboardingDismissedAt":{"type":"string","format":"date-time","nullable":true,"description":"When the Getting Started walkthrough was dismissed or completed for this workspace. Null means it has never been dismissed; the dashboard auto-promotes the walkthrough until this is set."},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","onboardingDismissedAt","createdAt"],"additionalProperties":false},"WorkspaceMember":{"type":"object","properties":{"userId":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"image":{"type":"string","nullable":true},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"joinedAt":{"type":"string","format":"date-time"}},"required":["userId","email","name","image","role","joinedAt"],"additionalProperties":false},"AgentSettings":{"type":"object","properties":{"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"enabled":{"type":"boolean","description":"Workspace on/off switch for the ai-agent. When `false`, incoming triggers (release/deployment monitoring and Slack-invoked sessions) are rejected before any session runs. Defaults to `true`."},"debugPermissionMode":{"type":"string","enum":["auto","ask"],"description":"Workspace-level policy for ai-agent debug commands. `auto` runs `alien_debug` tool calls without asking; `ask` halts each session before every debug command and waits for a human approval from dashboard or Slack."},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["workspaceId","enabled","debugPermissionMode","createdAt","updatedAt"],"additionalProperties":false},"UpdateWorkspaceSettingsRequest":{"type":"object","properties":{"debugPermissionMode":{"type":"string","enum":["auto","ask"],"description":"Workspace-level policy for ai-agent debug commands. `auto` runs `alien_debug` tool calls without asking; `ask` halts each session before every debug command and waits for a human approval from dashboard or Slack."},"enabled":{"type":"boolean","description":"Turn the ai-agent on (`true`) or off (`false`) for this workspace."}}},"WorkspaceInvitation":{"type":"object","properties":{"id":{"type":"string","pattern":"winv_[0-9a-zA-Z]{32}$","description":"Unique identifier for the workspace invitation.","example":"winv_DsgltMIFV0GmqtxV5NYTtrknrna"},"email":{"type":"string","format":"email"},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"status":{"type":"string","enum":["pending","accepted","revoked","expired"]},"deliveryStatus":{"type":"string","enum":["pending","sent","failed"]},"expiresAt":{"type":"string","format":"date-time"},"lastSentAt":{"type":"string","format":"date-time","nullable":true},"createdAt":{"type":"string","format":"date-time"},"inviteUrl":{"type":"string","format":"uri"}},"required":["id","email","role","status","deliveryStatus","expiresAt","lastSentAt","createdAt","inviteUrl"],"additionalProperties":false},"WorkspaceInviteLink":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"wil_[0-9a-zA-Z]{40}$","description":"Unique identifier for the workspace invite link.","example":"wil_RgcthDSZ37rmFLekuItpFS7btjXoYwou1gE4"},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"expiresAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"useCount":{"type":"integer","minimum":0},"lastUsedAt":{"type":"string","format":"date-time","nullable":true},"inviteUrl":{"type":"string","format":"uri"}},"required":["id","role","expiresAt","createdAt","useCount","lastUsedAt","inviteUrl"],"additionalProperties":false},"ProjectListItemResponse":{"allOf":[{"$ref":"#/components/schemas/Project"},{"type":"object","properties":{"deploymentCount":{"type":"number"},"latestRelease":{"$ref":"#/components/schemas/ProjectReleaseInfo"}}}]},"DeploymentPortalAppearancePreset":{"type":"string","enum":["clean","technical","enterprise","playful","minimal"],"default":"clean","description":"Curated visual style for the deployment portal."},"DeploymentPortalAccentColor":{"type":"string","enum":["blue","purple","green","orange","pink","slate"],"default":"blue","description":"Accent color used for highlights and primary actions."},"DeploymentPortalDensity":{"type":"string","enum":["comfortable","compact"],"default":"comfortable","description":"Layout density for portal content."},"ProjectReleaseInfo":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"gitMetadata":{"$ref":"#/components/schemas/GitMetadata"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","gitMetadata","createdAt"]},"GitMetadata":{"type":"object","nullable":true,"properties":{"commitSha":{"type":"string","nullable":true,"maxLength":40,"description":"The hash of the commit","example":"dc36199b2234c6586ebe05ec94078a895c707e29"},"commitMessage":{"type":"string","nullable":true,"maxLength":1024,"description":"The commit message","example":"add method to measure Interaction to Next Paint (INP) (#36490)"},"commitRef":{"type":"string","nullable":true,"maxLength":256,"description":"The branch or tag on which the commit was made","example":"main"},"commitDate":{"type":"string","nullable":true,"format":"date-time","description":"The date and time when the commit was created","example":"2026-03-16T12:00:00Z"},"dirty":{"type":"boolean","nullable":true,"description":"Whether or not there have been modifications to the working tree since the latest commit","example":true},"remoteUrl":{"type":"string","nullable":true,"maxLength":2048,"description":"The git repository's remote origin url","example":"https://github.com/alienplatform/alien"},"commitAuthorName":{"type":"string","nullable":true,"maxLength":256,"description":"The name of the author of the commit (from git config)","example":"John Doe"},"commitAuthorEmail":{"type":"string","nullable":true,"maxLength":256,"format":"email","description":"The email of the author of the commit (from git config)","example":"john@example.com"},"commitAuthorLogin":{"type":"string","nullable":true,"maxLength":256,"description":"The provider username of the commit author (e.g., GitHub login), resolved server-side from the commit email","example":"johndoe"},"commitAuthorAvatarUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"The avatar URL of the commit author, resolved server-side from the provider login","example":"https://github.com/johndoe.png"},"provider":{"$ref":"#/components/schemas/GitProvider"}}},"GitProvider":{"oneOf":[{"$ref":"#/components/schemas/GitHubProvider"},{"$ref":"#/components/schemas/GitLabProvider"},{"nullable":true}],"description":"Provider-specific repository information, resolved server-side from remoteUrl"},"GitHubProvider":{"type":"object","properties":{"type":{"type":"string","enum":["github"]},"org":{"type":"string","maxLength":256,"description":"Repository owner (user or organization)"},"repo":{"type":"string","maxLength":256,"description":"Repository name"}},"required":["type","org","repo"]},"GitLabProvider":{"type":"object","properties":{"type":{"type":"string","enum":["gitlab"]},"namespace":{"type":"string","maxLength":256,"description":"Group/project namespace"},"project":{"type":"string","maxLength":256,"description":"Project name"}},"required":["type","namespace","project"]},"Project":{"type":"object","properties":{"id":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Project name.","example":"my-app"},"gitRepository":{"type":"object","nullable":true,"properties":{"type":{"type":"string","enum":["github"],"description":"The Git Provider of the repository","example":"github"},"repo":{"type":"string","maxLength":128,"description":"The name of the git repository","example":"alien/my-agent"}},"required":["type","repo"],"additionalProperties":false,"description":"Verified source repository connected to the project. Alien uses this for GitHub Actions setup and source-aware features; releases are still created explicitly by CI or `alien release`."},"rootDirectory":{"type":"string","nullable":true,"maxLength":256,"description":"The name of a directory or relative path to the source code of your project. When null is used it will default to the project root"},"deploymentPortalAppearance":{"type":"object","nullable":true,"properties":{"avatarUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional project-specific avatar override for the deployment portal."},"preset":{"$ref":"#/components/schemas/DeploymentPortalAppearancePreset"},"accentColor":{"$ref":"#/components/schemas/DeploymentPortalAccentColor"},"title":{"type":"string","nullable":true,"maxLength":80,"description":"Optional portal title. Defaults to the project name."},"subtitle":{"type":"string","nullable":true,"maxLength":160,"description":"Optional customer-facing subtitle."},"supportUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional support or contact URL."},"docsUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional documentation URL."},"density":{"$ref":"#/components/schemas/DeploymentPortalDensity"}},"description":"Customer-facing deployment portal appearance settings."},"packagesConfig":{"type":"object","nullable":true,"properties":{"cli":{"type":"object","nullable":true,"properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"},"enabled":{"type":"boolean","description":"Whether CLI package generation is enabled"}},"required":["displayName","name","enabled"],"description":"CLI package configuration. If null, CLI packages will not be generated."},"cloudformation":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether CloudFormation package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"CloudFormation package configuration. If null, CloudFormation packages will not be generated."},"operatorImage":{"type":"object","nullable":true,"properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"},"enabled":{"type":"boolean","description":"Whether Operator image package generation is enabled"}},"required":["displayName","name","enabled"],"description":"Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated."},"helm":{"type":"object","nullable":true,"properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"},"enabled":{"type":"boolean","description":"Whether Helm chart package generation is enabled"}},"required":["chartName","description","enabled"],"description":"Helm chart package configuration. If null, Helm packages will not be generated."},"terraform":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether Terraform package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"Terraform package configuration. If null, Terraform packages will not be generated."}},"description":"Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform)"},"domainId":{"type":"string","nullable":true,"pattern":"dom_[0-9a-z]{28}$","description":"Selected domain for this project (null = default system domain)","example":"dom_469m0agk8luj4s16sakmmpdd"},"defaultManagers":{"type":"object","nullable":true,"properties":{"aws":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"gcp":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"azure":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"kubernetes":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"machines":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"local":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"}},"description":"Project default private managers for new push deployments."},"createdAt":{"type":"string","format":"date-time"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"}},"required":["id","name","createdAt","workspaceId"]},"ProjectIDOrNamePathParam":{"type":"string","maxLength":100,"description":"Project ID or name."},"ProjectGcpOAuthProvider":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["alien-managed"]},"redirectUris":{"type":"array","items":{"type":"string","format":"uri"},"description":"Authorized redirect URIs that must be configured on the Google OAuth client."}},"required":["mode","redirectUris"]},{"type":"object","properties":{"mode":{"type":"string","enum":["custom"]},"clientId":{"$ref":"#/components/schemas/GcpOAuthClientId"},"hasClientSecret":{"type":"boolean","enum":[true]},"redirectUris":{"type":"array","items":{"type":"string","format":"uri"},"description":"Authorized redirect URIs that must be configured on the Google OAuth client."}},"required":["mode","clientId","hasClientSecret","redirectUris"]}]},"GcpOAuthClientId":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[a-zA-Z0-9_-]+-[a-zA-Z0-9_-]+\\.apps\\.googleusercontent\\.com$","description":"Google OAuth web client ID.","example":"1234567890-abc123.apps.googleusercontent.com"},"UpdateProjectGcpOAuthProvider":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["alien-managed"]}},"required":["mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["custom"]},"clientId":{"$ref":"#/components/schemas/GcpOAuthClientId"},"clientSecret":{"$ref":"#/components/schemas/GcpOAuthClientSecret"}},"required":["mode","clientId"]}]},"GcpOAuthClientSecret":{"type":"string","minLength":1,"maxLength":512,"description":"Google OAuth web client secret. Write-only; never returned by the API.","example":"GOCSPX-example"},"UpdateProject":{"type":"object","properties":{"gitRepository":{"type":"object","nullable":true,"properties":{"type":{"type":"string","enum":["github"],"description":"The Git Provider of the repository","example":"github"},"repo":{"type":"string","maxLength":128,"description":"The name of the git repository","example":"alien/my-agent"}},"required":["type","repo"],"additionalProperties":false,"description":"Verified source repository connected to the project. Alien uses this for GitHub Actions setup and source-aware features; releases are still created explicitly by CI or `alien release`."},"rootDirectory":{"type":"string","nullable":true,"maxLength":256,"description":"The name of a directory or relative path to the source code of your project. When null is used it will default to the project root"},"deploymentPortalAppearance":{"type":"object","nullable":true,"properties":{"avatarUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional project-specific avatar override for the deployment portal."},"preset":{"$ref":"#/components/schemas/DeploymentPortalAppearancePreset"},"accentColor":{"$ref":"#/components/schemas/DeploymentPortalAccentColor"},"title":{"type":"string","nullable":true,"maxLength":80,"description":"Optional portal title. Defaults to the project name."},"subtitle":{"type":"string","nullable":true,"maxLength":160,"description":"Optional customer-facing subtitle."},"supportUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional support or contact URL."},"docsUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional documentation URL."},"density":{"$ref":"#/components/schemas/DeploymentPortalDensity"}},"description":"Customer-facing deployment portal appearance settings."},"packagesConfig":{"type":"object","nullable":true,"properties":{"cli":{"type":"object","nullable":true,"properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"},"enabled":{"type":"boolean","description":"Whether CLI package generation is enabled"}},"required":["displayName","name","enabled"],"description":"CLI package configuration. If null, CLI packages will not be generated."},"cloudformation":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether CloudFormation package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"CloudFormation package configuration. If null, CloudFormation packages will not be generated."},"operatorImage":{"type":"object","nullable":true,"properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"},"enabled":{"type":"boolean","description":"Whether Operator image package generation is enabled"}},"required":["displayName","name","enabled"],"description":"Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated."},"helm":{"type":"object","nullable":true,"properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"},"enabled":{"type":"boolean","description":"Whether Helm chart package generation is enabled"}},"required":["chartName","description","enabled"],"description":"Helm chart package configuration. If null, Helm packages will not be generated."},"terraform":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether Terraform package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"Terraform package configuration. If null, Terraform packages will not be generated."}},"description":"Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform)"},"domainId":{"type":"string","nullable":true,"pattern":"dom_[0-9a-z]{28}$","description":"Selected domain for this project (null = default system domain)","example":"dom_469m0agk8luj4s16sakmmpdd"},"defaultManagers":{"type":"object","nullable":true,"properties":{"aws":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"gcp":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"azure":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"kubernetes":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"machines":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"local":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"}},"description":"Project default private managers for new push deployments."}}},"DeploymentPortalDomainResponse":{"type":"object","properties":{"deploymentPortalEndpoint":{"$ref":"#/components/schemas/DomainEndpoint"},"packageEndpoint":{"$ref":"#/components/schemas/DomainEndpoint"}},"required":["deploymentPortalEndpoint","packageEndpoint"]},"DomainEndpoint":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"dend_[0-9a-z]{28}$","description":"Unique identifier for the domain endpoint.","example":"dend_1bb6gdvm1bs74acqkjstcgv"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"domainId":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"kind":{"$ref":"#/components/schemas/DomainEndpointKind"},"owner":{"$ref":"#/components/schemas/DomainEndpointOwner"},"hostname":{"type":"string","minLength":1,"maxLength":253},"status":{"$ref":"#/components/schemas/DomainEndpointStatus"},"provider":{"type":"string","nullable":true},"providerState":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"managedDnsRecords":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentPortalManagedDnsRecord"}},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},"lockedAt":{"type":"string","format":"date-time","nullable":true},"lockedBy":{"type":"string","nullable":true},"retryAttempts":{"type":"integer","minimum":0},"nextStepAfter":{"type":"string","format":"date-time","nullable":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","workspaceId","domainId","kind","owner","hostname","status","managedDnsRecords","retryAttempts","createdAt","updatedAt"]},"DomainEndpointKind":{"type":"string","enum":["deployment_portal","workspace_packages","manager_api","deployment_url_base"]},"DomainEndpointOwner":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/DomainEndpointOwnerType"},"id":{"type":"string"}},"required":["type","id"]},"DomainEndpointOwnerType":{"type":"string","enum":["workspace","project","manager"]},"DomainEndpointStatus":{"type":"string","enum":["waiting_for_domain","provisioning","waiting_for_dns","waiting_for_health","active","failed","deleting"]},"DeploymentPortalManagedDnsRecord":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"value":{"type":"string"},"ttl":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true}},"required":["name","type","value"]},"DeploymentLinkSetupResponse":{"type":"object","properties":{"activeRelease":{"type":"object","properties":{"id":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"version":{"type":"string","nullable":true},"stack":{"allOf":[{"$ref":"#/components/schemas/StackByPlatform"}],"nullable":true}},"required":["id","version","stack"]},"visiblePackageTypes":{"type":"array","items":{"type":"string","enum":["cli","cloudformation","helm","operator-image","terraform"],"description":"Types of packages that can be built"}},"visibleSetupMethods":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentSetupMethod"}}},"required":["activeRelease","visiblePackageTypes","visibleSetupMethods"]},"StackByPlatform":{"type":"object","properties":{"aws":{"nullable":true},"gcp":{"nullable":true},"azure":{"nullable":true},"kubernetes":{"nullable":true},"machines":{"nullable":true},"local":{"nullable":true},"test":{"nullable":true}},"additionalProperties":false},"DeploymentSetupMethod":{"type":"string","enum":["cloudformation","google-oauth","terraform","helm","cli","manual"]},"DeploymentGroup":{"type":"object","properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"externalId":{"type":"string","nullable":true,"minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9][A-Za-z0-9._~-]*$","description":"Case-sensitive, URL- and header-safe identifier from the integrating application.","example":"ext_example_01"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"maxDeployments":{"type":"integer","minimum":1,"default":100,"description":"Maximum number of deployments allowed in this deployment group"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","externalId","projectId","workspaceId","createdAt"]},"CreateDeploymentGroupRequest":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"externalId":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9][A-Za-z0-9._~-]*$","description":"Case-sensitive, URL- and header-safe identifier from the integrating application.","example":"ext_example_01"},"project":{"type":"string","maxLength":100,"description":"Project ID or name this deployment group belongs to"},"maxDeployments":{"type":"integer","minimum":1,"default":100,"description":"Maximum number of deployments in this deployment group"}},"required":["name","project"]},"EnsureDeploymentGroupByNameRequest":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"project":{"type":"string","maxLength":100,"description":"Project ID or name this deployment group belongs to"},"maxDeployments":{"type":"integer","minimum":1,"default":100,"description":"Maximum number of deployments for newly created groups"}},"required":["name","project"]},"EnsureDeploymentGroupByExternalIdRequest":{"type":"object","properties":{"externalId":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9][A-Za-z0-9._~-]*$","description":"Case-sensitive, URL- and header-safe identifier from the integrating application.","example":"ext_example_01"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"project":{"type":"string","maxLength":100,"description":"Project ID or name this deployment group belongs to"},"maxDeployments":{"type":"integer","minimum":1,"default":100,"description":"Maximum number of deployments for newly created groups"}},"required":["externalId","name","project"]},"ProjectIDOrNameQueryParam":{"type":"string","maxLength":100,"description":"Filter by project ID or name."},"SetDeploymentGroupExternalIdRequest":{"type":"object","properties":{"externalId":{"type":"string","nullable":true,"minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9][A-Za-z0-9._~-]*$","description":"Case-sensitive, URL- and header-safe identifier from the integrating application.","example":"ext_example_01"}},"required":["externalId"]},"UpdateDeploymentGroupRequest":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"maxDeployments":{"type":"integer","minimum":1,"description":"Maximum number of deployments in this deployment group"}}},"CreateDeploymentGroupTokenResponse":{"type":"object","properties":{"token":{"type":"string","description":"The API key token"},"deploymentLink":{"type":"string","description":"Formatted deployment link"}},"required":["token","deploymentLink"]},"CreateDeploymentGroupTokenRequest":{"type":"object","properties":{"description":{"type":"string","description":"Description for the API key"},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"Optional expiration date for the API key"},"deploymentSetupConfig":{"$ref":"#/components/schemas/DeploymentSetupConfig"},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"}},"required":["deploymentSetupConfig"]},"DeploymentSetupConfig":{"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"environmentVariables":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"}},"inputValues":{"$ref":"#/components/schemas/EncryptedStackInputValues"},"publicSubdomain":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","description":"Operator-pinned deployment subdomain for this setup token."}},"required":["metadata","policy","environmentVariables"]},"DeploymentSetupMetadata":{"type":"object","additionalProperties":{"nullable":true}},"DeploymentSetupPolicy":{"type":"object","properties":{"allowedPlatforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."}},"allowedKubernetesBasePlatforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","on-prem"]},"minItems":1,"description":"Kubernetes base environments the recipient may target."},"allowedKubernetesClusterSources":{"type":"array","items":{"$ref":"#/components/schemas/KubernetesClusterSource"},"minItems":1,"description":"Whether recipients may create a cluster, use an existing cluster, or both."},"allowedSetupMethods":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentSetupMethod"}},"allowReleasePinning":{"type":"boolean"},"stackSettings":{"$ref":"#/components/schemas/DeploymentSetupStackSettingsPolicy"}},"required":["allowedPlatforms","allowedSetupMethods"]},"KubernetesClusterSource":{"type":"string","enum":["create","existing"]},"DeploymentSetupStackSettingsPolicy":{"type":"object","properties":{"defaults":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."},"allowedDeploymentModels":{"type":"array","items":{"type":"string","enum":["push","pull","airgapped"]}},"allowedNetworkModes":{"type":"array","items":{"type":"string","enum":["none","create","default","byo"]}},"allowedUpdatesModes":{"type":"array","items":{"type":"string","enum":["auto","approval-required"]}},"allowedTelemetryModes":{"type":"array","items":{"type":"string","enum":["auto","approval-required","off"]}},"allowedHeartbeatsModes":{"type":"array","items":{"type":"string","enum":["on","off"]}},"allowExternalBindings":{"type":"boolean"},"allowCustomRegistry":{"type":"boolean"}}},"EnvironmentVariableConfig":{"type":"object","properties":{"name":{"type":"string","pattern":"^[A-Z_][A-Z0-9_]*$","description":"Variable name"},"value":{"type":"string","maxLength":10000,"description":"Variable value (encrypted in database)"},"type":{"$ref":"#/components/schemas/EnvironmentVariableType"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string","pattern":"^[a-zA-Z0-9_-]+(\\*)?$"},"description":"Target resource patterns (null = all resources, array = wildcard patterns)"}},"required":["name","value","type","targetResources"]},"EnvironmentVariableType":{"type":"string","enum":["plain","secret"],"description":"Variable type (plain or secret)"},"EncryptedStackInputValues":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/EncryptedStackInputValue"},"default":{}},"EncryptedStackInputValue":{"type":"object","properties":{"value":{"type":"string","description":"Encrypted JSON-encoded input value."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"]},"secret":{"type":"boolean","description":"Whether the original input is secret."}},"required":["value","kind","secret"]},"StackInputValuesRequest":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/StackInputValueRequest"},"default":{}},"StackInputValueRequest":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"CreateFirstPartyDeploymentSessionResponse":{"type":"object","properties":{"token":{"type":"string","description":"The deployment-group session token"}},"required":["token"]},"Package":{"type":"object","properties":{"id":{"type":"string","pattern":"pkg_[0-9a-z]{28}$","description":"Unique identifier for the package.","example":"pkg_jebo2o5jmm7raefl2m1pe3cz"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"type":{"type":"string","enum":["cli","cloudformation","helm","operator-image","terraform"],"description":"Types of packages that can be built"},"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"version":{"type":"string","description":"Package version (e.g., '1.0.0', 'rel_abc123')"},"sourceReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Release used as package build input. Null for release-less packages such as Operate Operator images.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"setupFingerprints":{"$ref":"#/components/schemas/SetupFingerprintMap"},"packageBuildInputHash":{"type":"string","description":"Hash of Platform-known package build request inputs: package type, source release, setup fingerprints, package config, and setup contract version"},"config":{"oneOf":[{"allOf":[{"type":"object","properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"}},"required":["displayName","name"],"description":"Branding configuration for the deploy CLI binary."},{"type":"object","properties":{"type":{"type":"string","enum":["cli"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts."},"supportedAwsRegions":{"type":"array","items":{"type":"string"},"description":"AWS regions supported by the environment that built this package."}},"description":"Configuration for CloudFormation packages"},{"type":"object","properties":{"type":{"type":"string","enum":["cloudformation"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"}},"required":["chartName","description"],"description":"Configuration for the Helm chart package"},{"type":"object","properties":{"type":{"type":"string","enum":["helm"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"}},"required":["displayName","name"],"description":"Branding configuration for the Operator image."},{"type":"object","properties":{"type":{"type":"string","enum":["operator-image"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts."},"supportedAwsRegions":{"type":"array","items":{"type":"string"},"description":"AWS regions supported by the environment that built this package."}},"description":"Configuration for Terraform package generation."},{"type":"object","properties":{"type":{"type":"string","enum":["terraform"]}},"required":["type"]}]}],"description":"Type-specific configuration"},"outputs":{"oneOf":[{"allOf":[{"type":"object","properties":{"binaries":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sha256":{"type":"string","description":"SHA256 checksum"},"size":{"type":"integer","minimum":0,"description":"File size in bytes"},"url":{"type":"string","description":"Download URL for the binary"}},"required":["sha256","size","url"],"description":"Information about a single binary artifact"},"description":"Binary information for each target platform"},"buildInfo":{"type":"object","properties":{"alienSha":{"type":"string","description":"Alien source commit used to build the source CLI and agent binaries."},"horizonSha":{"type":"string","description":"Compute backend source revision used by optional package extensions, if applicable."},"machineBundleManifestUrl":{"type":"string","nullable":true,"description":"Machine runtime release manifest embedded into the generated CLI."},"platformSha":{"type":"string","description":"Source revision used to build the package service and optional extensions."},"sourceAgentBinarySha256":{"type":"string","nullable":true,"description":"SHA256 checksum of the source runtime helper binary shipped with the CLI package, when present."},"sourceCliBinarySha256":{"type":"string","description":"SHA256 checksum of the source deploy CLI binary before white-label config is appended."}},"required":["alienSha","horizonSha","platformSha","sourceCliBinarySha256"],"description":"Source provenance for a generated CLI package."}},"required":["binaries","buildInfo"],"description":"Outputs from a CLI package build"},{"type":"object","properties":{"type":{"type":"string","enum":["cli"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"digest":{"type":"string","description":"Image digest (e.g., \"sha256:abc123...\")"},"image":{"type":"string","description":"Full image reference (e.g., \"public.ecr.aws/acme/operators/project-id:1.2.3\")"},"labelDomain":{"type":"string","nullable":true,"description":"DNS-style label domain embedded into the Operator binary, if whitelabeled."}},"required":["digest","image"],"description":"Outputs from an Operator image package build"},{"type":"object","properties":{"type":{"type":"string","enum":["operator-image"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"chart":{"type":"string","description":"OCI chart reference (e.g., \"oci://public.ecr.aws/acme/charts/project-id\")"},"version":{"type":"string","description":"Chart version (e.g., \"1.2.3\")"}},"required":["chart","version"],"description":"Outputs from a Helm chart package build"},{"type":"object","properties":{"type":{"type":"string","enum":["helm"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"targets":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"launchStackUrl":{"type":"string","description":"AWS Console quick-launch URL"},"sha256":{"type":"string","description":"SHA256 checksum of the template"},"size":{"type":"integer","minimum":0,"description":"Template size in bytes"},"stackPolicyUrl":{"type":"string","description":"S3 URL to the CloudFormation stack policy"},"target":{"type":"string","description":"CloudFormation target (aws, eks)"},"templateUrl":{"type":"string","description":"S3 URL to the CloudFormation template"}},"required":["launchStackUrl","sha256","size","stackPolicyUrl","target","templateUrl"],"description":"Information about a single CloudFormation template package for one target."},"description":"Template artifacts by CloudFormation target."}},"required":["targets"],"description":"Outputs from a CloudFormation package build."},{"type":"object","properties":{"type":{"type":"string","enum":["cloudformation"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"modules":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL for the module archive"},"filename":{"type":"string","description":"Filename of the module archive"},"shasum":{"type":"string","description":"SHA256 checksum of the archive"},"size":{"type":"integer","minimum":0,"description":"Size of the archive in bytes"},"source":{"type":"string","description":"Terraform module source (hostname/namespace/name/provider, without scheme)"},"target":{"type":"string","description":"Terraform module target (aws, gcp, azure, eks, gke, aks)"},"variables":{"type":"array","items":{"type":"string"},"description":"Terraform input variables exposed by this module."}},"required":["downloadUrl","filename","shasum","size","source","target"],"description":"Information about a single Terraform module package for one target."},"description":"Module registry artifacts by Terraform target."},"provider":{"type":"object","properties":{"gpgPublicKey":{"type":"object","properties":{"asciiArmor":{"type":"string","description":"ASCII-armored public key"},"keyId":{"type":"string","description":"GPG key ID"}},"required":["asciiArmor","keyId"],"description":"GPG public key for Terraform provider signature verification"},"platforms":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL for the provider zip"},"filename":{"type":"string","description":"Filename of the provider zip"},"shasum":{"type":"string","description":"SHA256 checksum of the zip file"},"shasumsSignatureUrl":{"type":"string","description":"URL to the shasums signature file"},"shasumsUrl":{"type":"string","description":"URL to the shasums file"},"size":{"type":"integer","minimum":0,"description":"Size of the zip file in bytes"}},"required":["downloadUrl","filename","shasum","shasumsSignatureUrl","shasumsUrl","size"],"description":"Information about a single Terraform provider package for a specific platform"},"description":"Provider packages for each target platform"},"source":{"type":"string","description":"Terraform provider source (hostname/namespace/type, without scheme)"}},"required":["gpgPublicKey","platforms","source"],"description":"Terraform provider registry outputs."}},"required":["modules","provider"],"description":"Outputs from a Terraform package build."},{"type":"object","properties":{"type":{"type":"string","enum":["terraform"]}},"required":["type"]}]},{"nullable":true}],"description":"Package outputs (only when status is 'ready')"},"error":{"nullable":true,"description":"Error information if status is 'failed'"},"sourceBinarySha256":{"type":"string","nullable":true,"description":"Builder-recorded source binary SHA256 (for cli/terraform packages)"},"retries":{"type":"integer","minimum":0,"description":"Number of build retries"},"lockedAt":{"type":"string","format":"date-time","nullable":true},"lockedBy":{"type":"string","nullable":true},"leaseExpiresAt":{"type":"string","format":"date-time","nullable":true,"description":"Expiration of the current builder lease"},"buildPhase":{"type":"string","nullable":true,"enum":["building","publishing",null],"description":"Coarse package build phase"},"lastProgressAt":{"type":"string","format":"date-time","nullable":true,"description":"Last successful builder lease renewal or phase change"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"completedAt":{"type":"string","format":"date-time","nullable":true}},"required":["id","projectId","workspaceId","type","status","version","setupFingerprints","packageBuildInputHash","config","retries","createdAt","updatedAt"]},"SetupFingerprintMap":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/SetupFingerprintInfo"},"description":"Per-target setup compatibility fingerprints copied from the source release"},"SetupFingerprintInfo":{"type":"object","properties":{"target":{"$ref":"#/components/schemas/SetupTarget"},"fingerprint":{"$ref":"#/components/schemas/SetupFingerprint"},"version":{"$ref":"#/components/schemas/SetupFingerprintVersion"}},"required":["target","fingerprint","version"]},"SetupTarget":{"type":"string","minLength":1,"description":"Stable target key for the setup contract, e.g. aws/us-east-1"},"SetupFingerprint":{"type":"string","minLength":1,"description":"Deterministic setup contract fingerprint for one setup target"},"SetupFingerprintVersion":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Setup fingerprint algorithm version"},"ReleaseListItemResponse":{"allOf":[{"$ref":"#/components/schemas/Release"},{"type":"object","properties":{"currentChannels":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseChannelName"},"description":"Channels for which this release is currently selected"},"commitUrl":{"type":"string","nullable":true,"format":"uri","description":"Validated canonical provider URL for the exact commit"},"project":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"Project ID"},"name":{"type":"string","description":"Project name"}},"required":["id","name"],"description":"Project info, included when ?include=project is used"},"rollout":{"type":"object","nullable":true,"properties":{"updatedCount":{"type":"integer","description":"Deployments that finished updating to this release (excludes initial provisions)"},"pendingCount":{"type":"integer","description":"Deployments currently targeting this release but not yet running it"},"avgDurationMs":{"type":"number","nullable":true,"description":"Average time from release creation until a deployment finished updating, in milliseconds"}},"required":["updatedCount","pendingCount","avgDurationMs"],"description":"Rollout stats, included when ?include=rollout is used"},"createdBy":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"User ID"},"name":{"type":"string","description":"User's display name"},"email":{"type":"string","description":"User's email address"},"image":{"type":"string","nullable":true,"description":"User's avatar image URL"}},"required":["id","name","email","image"],"description":"Platform user who created the release, included when ?include=createdBy is used"}},"required":["currentChannels","commitUrl"]}]},"ReleaseChannelName":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z][a-z0-9-]*$"},"Release":{"type":"object","properties":{"id":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"projectId":{"type":"string","maxLength":128},"version":{"type":"string","minLength":1,"maxLength":256},"gitMetadata":{"$ref":"#/components/schemas/GitMetadata"},"createdAt":{"type":"string","format":"date-time"},"stack":{"allOf":[{"$ref":"#/components/schemas/StackByPlatform"}],"nullable":true},"setupFingerprints":{"allOf":[{"$ref":"#/components/schemas/SetupFingerprintMap"},{"description":"Per-target setup compatibility fingerprints for this release"}]},"rootDirectory":{"type":"string","nullable":true,"maxLength":256},"createdByUserId":{"type":"string","nullable":true,"maxLength":128,"description":"ID of the platform user who created the release, if known"},"workspaceId":{"type":"string","maxLength":128}},"required":["id","projectId","version","createdAt","setupFingerprints","workspaceId"]},"CreateReleaseRequest":{"type":"object","properties":{"project":{"type":"string","maxLength":100,"description":"Project ID or name"},"version":{"type":"string","minLength":1,"maxLength":256},"gitMetadata":{"$ref":"#/components/schemas/GitMetadata"},"stack":{"$ref":"#/components/schemas/StackByPlatform"},"rootDirectory":{"type":"string","nullable":true,"maxLength":256},"channel":{"allOf":[{"$ref":"#/components/schemas/ReleaseChannelName"},{"description":"Release channel to advance. Defaults to production."}]}},"required":["project"]},"ReleaseAuthorFilterItem":{"type":"object","properties":{"login":{"type":"string","nullable":true,"description":"Provider username (e.g., GitHub login)"},"name":{"type":"string","nullable":true,"description":"Git commit author name"},"avatarUrl":{"type":"string","nullable":true,"format":"uri","description":"Author avatar URL"}},"required":["login","name","avatarUrl"]},"ReleaseDeploymentsResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseDeploymentItem"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"},"stateCounts":{"$ref":"#/components/schemas/ReleaseRolloutStateCounts"}},"required":["items","nextCursor","stateCounts"]},"ReleaseDeploymentItem":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"deploymentGroup":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"}},"required":["id","name"],"description":"Deployment group this deployment belongs to"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the currently deployed release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the desired release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat"},"rolloutState":{"$ref":"#/components/schemas/ReleaseRolloutState"},"releasedAt":{"type":"string","format":"date-time","nullable":true,"description":"When this release went live on the deployment, null if it never did"},"durationMs":{"type":"integer","nullable":true,"description":"Time from release creation until the deployment finished updating, in milliseconds. Null for initial provisions and deployments that never ran this release."},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Latest error information if the deployment is in a failed state"}},"required":["id","name","status","platform","rolloutState","releasedAt","durationMs"]},"ReleaseRolloutState":{"type":"string","enum":["updated","updating","failed","pending","pinned-other","superseded","on-other"]},"ReleaseRolloutStateCounts":{"type":"object","properties":{"updated":{"type":"integer"},"updating":{"type":"integer"},"failed":{"type":"integer"},"pending":{"type":"integer"},"pinned-other":{"type":"integer"},"superseded":{"type":"integer"},"on-other":{"type":"integer"}},"required":["updated","updating","failed","pending","pinned-other","superseded","on-other"],"description":"Deployment counts per rollout state across all deployments the filters allow (ignores the state filter)"},"ReleaseChannel":{"type":"object","properties":{"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"name":{"$ref":"#/components/schemas/ReleaseChannelName"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"deploymentCount":{"type":"integer","minimum":0},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["workspaceId","projectId","name","currentReleaseId","createdAt","updatedAt"]},"DeploymentListItemResponse":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"deploymentProtocolVersion":{"$ref":"#/components/schemas/DeploymentProtocolVersion"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"ID of deployment group this deployment belongs to","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the currently deployed release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the desired release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"releaseChannel":{"allOf":[{"$ref":"#/components/schemas/ReleaseChannelName"},{"description":"Named release stream followed when the deployment is not pinned"}]},"importSource":{"type":"string","nullable":true,"enum":["cloudformation","terraform","helm",null],"description":"Setup source that imported this deployment"},"setupMethod":{"type":"string","nullable":true,"enum":["cloudformation","google-oauth","terraform","helm","cli","manual",null],"description":"Setup method that created the deployment record."},"setupMetadata":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Setup method metadata needed to guide privileged teardown."},"setupTarget":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup target for compatibility checks"},"setupFingerprint":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup compatibility fingerprint"},"setupFingerprintVersion":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Imported setup fingerprint version"},"operatorScope":{"type":"string","nullable":true,"description":"Display-only scope reported by the Operator manifest"},"operatorPermission":{"type":"string","nullable":true,"description":"Display-only permission tier reported by the Operator manifest"},"operatorVersion":{"type":"string","nullable":true,"description":"Version reported by the Operator"},"capabilities":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OperatorCapabilityReport"},"description":"Capability state reported by the Operator"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat"},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Latest error information if in a failed state"},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"managerId":{"$ref":"#/components/schemas/ManagerID"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"release":{"$ref":"#/components/schemas/DeploymentReleaseInfo"},"deploymentGroup":{"$ref":"#/components/schemas/DeploymentGroupInfo"},"project":{"$ref":"#/components/schemas/DeploymentProjectInfo"}},"required":["id","name","status","projectId","platform","deploymentProtocolVersion","deploymentGroupId","releaseChannel","retryRequested","createdAt","updatedAt","managerId","workspaceId"]},"DeploymentProtocolVersion":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"DeploymentState protocol version owned by the runtime/manager"},"OperatorCapabilityReport":{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":128},"state":{"$ref":"#/components/schemas/OperatorCapabilityState"},"detail":{"type":"string","nullable":true,"maxLength":512}},"required":["key","state"]},"OperatorCapabilityState":{"type":"string","enum":["granted","denied","unavailable"]},"ManagerID":{"type":"string","pattern":"mgr_[0-9a-z]{28}$","description":"ID of the manager","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"DeploymentReleaseInfo":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"version":{"type":"string","minLength":1,"maxLength":256},"gitMetadata":{"$ref":"#/components/schemas/GitMetadata"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","version","createdAt"]},"DeploymentGroupInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"}},"required":["id","name"]},"DeploymentProjectInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Project name.","example":"my-app"}},"required":["id","name"]},"DeploymentStats":{"type":"object","properties":{"total":{"type":"number","description":"Total number of deployments matching filters"},"byStatus":{"type":"object","additionalProperties":{"type":"number"},"description":"Count of deployments by status (only includes statuses with non-zero counts)"},"byPlatform":{"type":"object","additionalProperties":{"type":"number"},"description":"Count of deployments by platform (only includes platforms with non-zero counts)"},"byCurrentRelease":{"type":"object","additionalProperties":{"type":"number"},"description":"Count of deployments by currentReleaseId. The empty string key represents deployments with no current release (initial provisioning)."},"byPinnedRelease":{"type":"object","additionalProperties":{"type":"number"},"description":"Count of deployments by pinnedReleaseId among deployments that are pinned. Excludes unpinned deployments."}},"required":["total","byStatus","byPlatform","byCurrentRelease","byPinnedRelease"]},"DeploymentDetailResponse":{"allOf":[{"$ref":"#/components/schemas/Deployment"},{"type":"object","properties":{"release":{"$ref":"#/components/schemas/DeploymentReleaseInfo"},"deploymentGroup":{"$ref":"#/components/schemas/DeploymentGroupInfo"},"project":{"$ref":"#/components/schemas/DeploymentProjectInfo"}}}]},"Deployment":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!ag[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment name.","example":"acme-prod"},"publicSubdomain":{"type":"string","nullable":true,"minLength":1,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","description":"Public subdomain for auto-generated domains"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"basePlatform":{"type":"string","nullable":true,"enum":["aws","gcp","azure",null],"description":"Underlying cloud platform for Kubernetes deployments."},"region":{"type":"string","nullable":true,"description":"Cloud region or location for the deployment."},"deploymentProtocolVersion":{"$ref":"#/components/schemas/DeploymentProtocolVersion"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"ID of deployment group this deployment belongs to","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-provided configuration (network, deployment model, approvals)"},"stackState":{"type":"object","nullable":true,"properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"State of infrastructure components managed by this deployment"},"runtimeMetadata":{"type":"object","nullable":true,"properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment state persistence"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the currently deployed release (actual state)","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the desired release for deployment/update (desired state)","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"releaseChannel":{"allOf":[{"$ref":"#/components/schemas/ReleaseChannelName"},{"description":"Named release stream followed when the deployment is not pinned"}]},"importSource":{"type":"string","nullable":true,"enum":["cloudformation","terraform","helm",null],"description":"Setup source that imported this deployment"},"setupMethod":{"type":"string","nullable":true,"enum":["cloudformation","google-oauth","terraform","helm","cli","manual",null],"description":"Setup method that created the deployment record and owns setup-time resources."},"setupMetadata":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Setup method metadata needed to guide privileged teardown."},"setupTarget":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup target for compatibility checks"},"setupFingerprint":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup compatibility fingerprint"},"setupFingerprintVersion":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Imported setup fingerprint algorithm version"},"operatorScope":{"type":"string","nullable":true,"description":"Display-only scope reported by the Operator manifest"},"operatorPermission":{"type":"string","nullable":true,"description":"Display-only permission tier reported by the Operator manifest"},"operatorVersion":{"type":"string","nullable":true,"description":"Version reported by the Operator"},"capabilities":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OperatorCapabilityReport"},"description":"Capability state reported by the Operator"},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat from the deployment"},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Latest error information if the deployment is in a failed state"},"environmentVariables":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"},"description":"Configuration of environment variables for the deployment"},"targetEnvironmentVariables":{"type":"object","nullable":true,"properties":{"variables":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"},"description":"Environment variables in the snapshot"},"hash":{"type":"string","description":"Deterministic hash of all variables for change detection"},"createdAt":{"type":"string","format":"date-time","description":"ISO 8601 timestamp when snapshot was created"}},"required":["variables","hash","createdAt"],"description":"Snapshot of target environment variables for the deployment"},"currentEnvironmentVariables":{"type":"object","nullable":true,"properties":{"variables":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"},"description":"Environment variables in the snapshot"},"hash":{"type":"string","description":"Deterministic hash of all variables for change detection"},"createdAt":{"type":"string","format":"date-time","description":"ISO 8601 timestamp when snapshot was created"}},"required":["variables","hash","createdAt"],"description":"Snapshot of current environment variables for the deployment"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"ID of the manager responsible for this deployment"}]},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"}},"required":["id","name","status","projectId","platform","deploymentProtocolVersion","deploymentGroupId","stackSettings","releaseChannel","retryRequested","createdAt","updatedAt","managerId","workspaceId"]},"DeploymentConnectionInfo":{"type":"object","properties":{"arc":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Manager URL for commands"},"deploymentId":{"type":"string","description":"Deployment ID to use in command requests"}},"required":["url","deploymentId"]},"resources":{"type":"object","additionalProperties":{"type":"object","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."},"publicEndpoints":{"type":"object","additionalProperties":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"protocol":{"type":"string","enum":["http","tcp"]},"host":{"type":"string","minLength":1},"port":{"type":"integer","minimum":1,"maximum":65535},"wildcardHost":{"type":"string"}},"required":["url","protocol","host","port"]},"description":"Public endpoints keyed by endpoint name."}},"required":["type"]},"description":"Deployed resources and their public endpoints"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"platform":{"type":"string"}},"required":["arc","resources","status","platform"]},"CreateDeploymentResponse":{"type":"object","properties":{"deployment":{"$ref":"#/components/schemas/Deployment"},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Effective deployment model persisted for the deployment."},"token":{"type":"string","description":"Deployment token (only returned when using deployment group token)"}},"required":["deployment","deploymentModel"]},"NewDeploymentRequest":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!ag[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment name.","example":"acme-prod"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"deploymentGroupId":{"type":"string","description":"Required for workspace/project tokens. Deployment group tokens use their own group automatically."},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Optional manager to assign. If omitted, the project default or system manager is selected."}]},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"environmentVariables":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"},"description":"Configuration of environment variables for the deployment"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"project":{"type":"string","maxLength":100,"description":"Project ID or name"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"Stack settings for deployment customization"},"resourcePrefix":{"$ref":"#/components/schemas/ResourcePrefix"},"publicSubdomain":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","description":"Optional deployment subdomain under the project's generated-domain parent. Operator-only and requires a custom project domain; customer deploy-link tokens and the shared system domain are rejected. Omit to generate a random subdomain."},"setupMethod":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMethod"},{"description":"Setup method that created the deployment. Defaults to cli."}]},"setupMetadata":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMetadata"},{"description":"Setup method metadata used to guide privileged teardown."}]},"inputValues":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/StackInputValueRequest"},"default":{},"description":"Stack input values provided by the deployment creator."},"operatorScope":{"type":"string","minLength":1,"maxLength":512,"description":"Display-only scope reported by the Operator manifest."},"operatorPermission":{"type":"string","minLength":1,"maxLength":64,"description":"Display-only permission tier reported by the Operator manifest."},"initialDesiredRelease":{"type":"string","enum":["active","none"],"default":"active","description":"Desired-release selection for a new deployment. Use none to register an environment without initially requesting a release; later updates can assign one."},"releaseChannel":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z][a-z0-9-]*$","default":"production","description":"Release channel followed while this deployment is not pinned."}},"required":["name","platform","project"],"additionalProperties":false,"description":"Request schema for creating a new deployment"},"ResourcePrefix":{"type":"string","pattern":"^[a-z](?:[a-z0-9]|-(?=[a-z0-9])){1,38}[a-z0-9]$","description":"Optional physical-name prefix for generated cloud resources. Omit to let the manager generate one."},"ImportDeploymentRequest":{"oneOf":[{"$ref":"#/components/schemas/ForwardImportRequest"},{"$ref":"#/components/schemas/PersistImportedDeploymentRequest"}],"description":"Request schema for importing a deployment from resolved setup infrastructure"},"ForwardImportRequest":{"type":"object","properties":{"mode":{"type":"string","enum":["forward"],"default":"forward"},"project":{"type":"string","maxLength":100,"description":"Project ID or name. Required for user-session callers."},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Required for user-session callers. Deployment-group tokens use their own group automatically.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Manager ID. If omitted, the first suitable manager for the source platform is used."}]},"source":{"$ref":"#/components/schemas/ImportSource"},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"}},"required":["source"]},"ImportSource":{"type":"object","properties":{"deploymentName":{"type":"string","minLength":1,"description":"User-chosen deployment name. Must be unique within the deployment group; the manager returns 409 on collision."},"resourcePrefix":{"allOf":[{"$ref":"#/components/schemas/ResourcePrefix"},{"description":"Stable physical-name prefix used by the setup artifact."}]},"sourceKind":{"$ref":"#/components/schemas/ImportSourceKind"},"setupMetadata":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMetadata"},{"description":"Setup source metadata needed to guide privileged teardown."}]},"releaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Release that produced the setup artifact. Defaults to latest.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Cloud platform of the imported stack"},"basePlatform":{"$ref":"#/components/schemas/KubernetesBasePlatform"},"region":{"type":"string","description":"Region or location reported by the setup artifact"},"setupTarget":{"allOf":[{"$ref":"#/components/schemas/SetupTarget"},{"description":"Setup target this package was generated for"}]},"setupImportFormatVersion":{"$ref":"#/components/schemas/SetupImportFormatVersion"},"setupFingerprint":{"allOf":[{"$ref":"#/components/schemas/SetupFingerprint"},{"description":"Setup compatibility fingerprint embedded in the package"}]},"setupFingerprintVersion":{"allOf":[{"$ref":"#/components/schemas/SetupFingerprintVersion"},{"description":"Setup fingerprint algorithm version embedded in the package"}]},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}],"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."},"resources":{"type":"array","items":{"$ref":"#/components/schemas/ImportedResource"},"minItems":1}},"required":["deploymentName","resourcePrefix","platform","region","setupTarget","setupImportFormatVersion","setupFingerprint","setupFingerprintVersion","stackSettings","resources"],"description":"Resolved setup import payload"},"ImportSourceKind":{"type":"string","enum":["cloudformation","terraform","helm"],"description":"Source label for observability only — does not affect import behavior."},"KubernetesBasePlatform":{"type":"string","enum":["aws","gcp","azure"],"description":"Base cloud platform for cloud-backed Kubernetes imports."},"SetupImportFormatVersion":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Setup import payload format version embedded in the package"},"ImportedResource":{"type":"object","properties":{"id":{"type":"string","description":"Resource id from the active stack"},"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."},"importData":{"type":"object","additionalProperties":{"nullable":true},"description":"Resolved typed import payload"}},"required":["id","type","importData"]},"PersistImportedDeploymentRequest":{"type":"object","properties":{"mode":{"type":"string","enum":["persist"]},"name":{"type":"string","minLength":1,"description":"Deployment name. Must be unique within the deployment group."},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"publicSubdomain":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","description":"Optional deployment subdomain under the project's generated-domain parent. Operator-only and requires a custom project domain; customer deploy-link tokens and the shared system domain are rejected. Omit to generate a random subdomain."},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"basePlatform":{"$ref":"#/components/schemas/KubernetesBasePlatform"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."},"stackState":{"nullable":true},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Platform-specific environment information"},"runtimeMetadata":{"type":"object","properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment\n\nStores deployment state that needs to persist across step calls."},"scheduleReconciliation":{"type":"boolean","default":false},"deploymentProtocolVersion":{"$ref":"#/components/schemas/DeploymentProtocolVersion"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"default":"provisioning","description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"currentReleaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"importSource":{"allOf":[{"$ref":"#/components/schemas/ImportSourceKind"},{"description":"Package source that produced the import payload"}]},"setupMetadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"setupTarget":{"$ref":"#/components/schemas/SetupTarget"},"setupFingerprint":{"$ref":"#/components/schemas/SetupFingerprint"},"setupFingerprintVersion":{"$ref":"#/components/schemas/SetupFingerprintVersion"},"deploymentToken":{"type":"string"},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]}],"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."},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"}},"required":["mode","name","deploymentGroupId","managerId","platform","stackSettings","runtimeMetadata","deploymentProtocolVersion","setupTarget","setupFingerprint","setupFingerprintVersion"]},"SetFirstPartyDeploymentInputsResponse":{"type":"object","properties":{"ok":{"type":"boolean"}},"required":["ok"]},"SetFirstPartyDeploymentInputsRequest":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"}},"required":["platform"]},"SetupRegistrationOperationResponse":{"type":"object","properties":{"id":{"type":"string","pattern":"setupop_[0-9a-z]{28}$","description":"Unique identifier for the setup registration operation.","example":"setupop_y41lqnfosxuwqkzmiax7"},"action":{"$ref":"#/components/schemas/SetupRegistrationAction"},"sourceKind":{"allOf":[{"$ref":"#/components/schemas/ImportSourceKind"},{"description":"Package source that produced the import payload"}]},"status":{"$ref":"#/components/schemas/SetupRegistrationOperationStatus"},"deploymentId":{"type":"string","nullable":true,"pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"physicalResourceId":{"type":"string","nullable":true},"result":{"$ref":"#/components/schemas/SetupRegistrationOperationResult"},"error":{"type":"object","nullable":true,"properties":{"message":{"type":"string"},"retryable":{"type":"boolean"}},"required":["message","retryable"]}},"required":["id","action","sourceKind","status","deploymentId","physicalResourceId","result","error"]},"SetupRegistrationAction":{"type":"string","enum":["create","update","delete"]},"SetupRegistrationOperationStatus":{"type":"string","enum":["pending","processing","waiting-for-handoff","succeeded","failed","responding","responded"]},"SetupRegistrationOperationResult":{"type":"object","nullable":true,"properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"deploymentToken":{"type":"string","nullable":true},"helmValues":{"type":"string","nullable":true}},"required":["deploymentId","deploymentToken","helmValues"]},"CreateSetupRegistrationOperationRequest":{"type":"object","properties":{"action":{"$ref":"#/components/schemas/SetupRegistrationAction"},"sourceKind":{"allOf":[{"$ref":"#/components/schemas/ImportSourceKind"},{"description":"Package source that produced the import payload"}]},"source":{"allOf":[{"$ref":"#/components/schemas/ImportSource"}],"nullable":true},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"},"deploymentId":{"type":"string","nullable":true,"pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":512},"cloudFormation":{"$ref":"#/components/schemas/SetupRegistrationCloudFormationTarget"}},"required":["action","sourceKind"],"additionalProperties":false},"SetupRegistrationCloudFormationTarget":{"type":"object","nullable":true,"properties":{"stackId":{"type":"string","minLength":1},"requestId":{"type":"string","minLength":1},"logicalResourceId":{"type":"string","minLength":1},"responseUrl":{"type":"string","format":"uri"},"physicalResourceId":{"type":"string","nullable":true,"minLength":1},"serviceTimeoutSeconds":{"type":"integer","minimum":60,"maximum":7200,"default":3300}},"required":["stackId","requestId","logicalResourceId","responseUrl"],"additionalProperties":false},"DeleteDeploymentResponse":{"type":"object","properties":{"action":{"type":"string","enum":["cleanup","detach","forget"]},"message":{"type":"string"}},"required":["action","message"]},"DeleteDeploymentRequest":{"type":"object","properties":{"action":{"type":"string","enum":["cleanup","detach","forget"]}},"required":["action"]},"PinReleaseRequest":{"type":"object","properties":{"releaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Release ID to pin the deployment to. Set to null to resume its followed channel.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"}},"additionalProperties":false,"description":"Request schema for pinning/unpinning deployment release"},"DeploymentInputsResponse":{"type":"object","properties":{"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."}},"values":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/StackInputValueRequest"},"description":"Current non-secret input values. Secret values are never returned."},"providedInputIds":{"type":"array","items":{"type":"string"},"description":"Input IDs that currently have a value, including redacted secrets."}},"required":["inputs","values","providedInputIds"]},"UpdateDeploymentInputsResponse":{"allOf":[{"$ref":"#/components/schemas/DeploymentInputsResponse"},{"type":"object","properties":{"runtimeUpdateRequested":{"type":"boolean"}},"required":["runtimeUpdateRequested"]}]},"UpdateDeploymentInputsRequest":{"type":"object","properties":{"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"},"clearInputIds":{"type":"array","items":{"type":"string"},"default":[]}},"additionalProperties":false},"UpdateDeploymentEnvironmentVariablesRequest":{"type":"object","properties":{"variables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Variable name"},"value":{"type":"string","description":"Variable value"},"type":{"type":"string","enum":["plain","secret"],"description":"Variable type"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource patterns (null = all resources)"}},"required":["name","value","type"]},"description":"Environment variables for the deployment"}},"required":["variables"],"additionalProperties":false,"description":"Request schema for updating deployment environment variables"},"CreateDeploymentTokenResponse":{"type":"object","properties":{"token":{"type":"string","description":"The generated deployment token (only shown once)"},"deploymentId":{"type":"string","description":"The deployment ID that this token is scoped to"}},"required":["token","deploymentId"]},"CreateDeploymentTokenRequest":{"type":"object","properties":{"description":{"type":"string","nullable":true,"minLength":3,"maxLength":128,"description":"Optional description for the deployment token"},"expiresAt":{"type":"string","format":"date-time","nullable":true,"description":"Optional expiration date for the deployment token"}},"required":["description"]},"CreateManagerResponse":{"type":"object","properties":{"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"setupStatus":{"type":"string","enum":["pending"]},"setupToken":{"type":"string"},"setupTokenId":{"type":"string"},"deploymentLink":{"type":"string"},"setupConfig":{"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"inputValues":{"$ref":"#/components/schemas/EncryptedStackInputValues"},"publicSubdomain":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","description":"Operator-pinned deployment subdomain for this setup token."},"environmentVariables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string","enum":["plain","secret"]},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"}}},"required":["name","type","targetResources"]}}},"required":["metadata","policy","environmentVariables"]},"setup":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","enum":["cloudformation"]},"deploymentPortalUrl":{"type":"string"},"launchUrl":{"type":"string"},"templateUrl":{"type":"string"},"stackName":{"type":"string"},"region":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["method","deploymentPortalUrl","launchUrl","templateUrl","stackName","region","stackSettings"]},{"type":"object","properties":{"method":{"type":"string","enum":["google-oauth"]},"deploymentPortalUrl":{"type":"string"},"managerUrl":{"type":"string"},"oauthStartUrl":{"type":"string"},"region":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["method","deploymentPortalUrl","managerUrl","oauthStartUrl","region","stackSettings"]},{"type":"object","properties":{"method":{"type":"string","enum":["terraform"]},"deploymentPortalUrl":{"type":"string"},"managerUrl":{"type":"string"},"providerSource":{"type":"string"},"moduleSource":{"type":"string"},"moduleVersion":{"type":"string"},"moduleInputs":{"type":"object","additionalProperties":{"type":"string"}},"mainTf":{"type":"string"},"tfvars":{"type":"string"},"commands":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["method","deploymentPortalUrl","managerUrl","providerSource","moduleSource","moduleInputs","mainTf","tfvars","commands","stackSettings"]}]}},"required":["managerId","setupStatus","setupToken","setupTokenId","deploymentLink","setupConfig","setup"]},"NewManagerRequest":{"type":"object","properties":{"name":{"type":"string"},"cloud":{"$ref":"#/components/schemas/PrivateManagerCloud"},"region":{"type":"string","minLength":1,"maxLength":64,"description":"Cloud region for the manager."},"setupMethod":{"$ref":"#/components/schemas/PrivateManagerSetupMethod"},"network":{"type":"string","enum":["create","default"],"description":"Optional network mode for the private-manager setup. Defaults to create for production isolation; default uses the provider default network for faster dev/test setup."},"otlpConfig":{"type":"object","properties":{"logsEndpoint":{"type":"string","format":"uri","description":"External OTLP logs endpoint (e.g. https://api.axiom.co/v1/logs)"},"logsAuthHeader":{"type":"string","description":"Auth header in 'key=value,...' format (e.g. 'authorization=Bearer ,x-axiom-dataset=')"}},"required":["logsEndpoint","logsAuthHeader"],"description":"Optional external OTLP config for forwarding logs to Axiom, Datadog, etc. Falls back to built-in DeepStore when not set."}},"required":["name","cloud","region"]},"PrivateManagerCloud":{"type":"string","enum":["aws","gcp","azure"],"description":"Cloud where the private manager will be deployed."},"PrivateManagerSetupMethod":{"type":"string","enum":["cloudformation","google-oauth","terraform"],"description":"Optional setup method. Defaults to cloudformation for AWS, google-oauth for GCP, and terraform for Azure."},"ManagerRetryResponse":{"oneOf":[{"allOf":[{"$ref":"#/components/schemas/CreateManagerResponse"},{"type":"object","properties":{"mode":{"type":"string","enum":["setup"]}},"required":["mode"]}]},{"$ref":"#/components/schemas/ManagerRetryDeploymentResponse"}]},"ManagerRetryDeploymentResponse":{"type":"object","properties":{"mode":{"type":"string","enum":["deployment"]},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"setupStatus":{"type":"string","enum":["provisioning"]},"deploymentId":{"type":"string"},"message":{"type":"string"}},"required":["mode","managerId","setupStatus","deploymentId","message"]},"Manager":{"type":"object","properties":{"id":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for the manager"}]},"name":{"type":"string","description":"Display name of the manager"},"targets":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms this manager can handle"},"cloud":{"type":"string","nullable":true,"enum":["aws","gcp","azure","kubernetes","machines","local","test",null],"description":"Cloud where this private manager is deployed"},"region":{"type":"string","nullable":true,"description":"Cloud region selected for this private manager"},"setupStatus":{"type":"string","nullable":true,"enum":["pending","provisioning","active","failed","deleting","deleted",null],"description":"Private manager setup lifecycle status"},"url":{"type":"string","nullable":true,"format":"uri","description":"Manager URL (self-reported via heartbeat). DeepStore endpoints are exposed through this URL (e.g., {url}/v1/logs)"},"managementConfigs":{"$ref":"#/components/schemas/ManagerManagementConfigs"},"isSystem":{"type":"boolean","description":"Whether this is a system manager (Alien-hosted)"},"workspaceId":{"type":"string","description":"The workspace ID (for system managers, this is ALIEN_WORKSPACE_ID)"},"status":{"$ref":"#/components/schemas/ManagerStatus"},"version":{"type":"string","nullable":true,"description":"Manager version (self-reported via heartbeat)"},"metrics":{"type":"object","nullable":true,"properties":{"activeDeployments":{"type":"number","description":"Number of active deployments"},"pendingDeployments":{"type":"number","description":"Number of pending deployments"},"memoryUsageMb":{"type":"number","description":"Memory usage in megabytes"},"cpuUsagePercent":{"type":"number","description":"CPU usage percentage"}},"description":"Runtime metrics (self-reported via heartbeat)"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat from the manager"},"logsDatabaseId":{"type":"string","nullable":true,"description":"ID of the logs database associated with this manager"},"managedDeploymentCount":{"type":"integer","minimum":0,"description":"Number of deployments currently being managed by this manager"},"defaultProjectCount":{"type":"integer","minimum":0,"description":"Number of projects that select this manager as a default manager"},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the manager was created"}},"required":["id","name","targets","managementConfigs","isSystem","workspaceId","status","managedDeploymentCount","defaultProjectCount","createdAt"],"description":"Manager schema"},"ManagerManagementConfigs":{"type":"object","properties":{"aws":{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"},"platform":{"type":"string","enum":["aws"]}},"required":["managingRoleArn","platform"]},"gcp":{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"},"platform":{"type":"string","enum":["gcp"]}},"required":["serviceAccountEmail","platform"]},"azure":{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."},"platform":{"type":"string","enum":["azure"]}},"required":["managingTenantId","oidcIssuer","oidcSubject","platform"]},"kubernetes":{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]}},"description":"Per-platform management configurations for cross-account access (self-reported via heartbeat)"},"ManagerStatus":{"type":"string","enum":["healthy","degraded","unhealthy","unknown"],"description":"Current health status"},"ManagerDomainBindingResponse":{"type":"object","properties":{"managerDomainBinding":{"$ref":"#/components/schemas/DomainEndpoint"}},"required":["managerDomainBinding"]},"UpdateManagerDomainBinding":{"type":"object","properties":{"domainId":{"type":"string","nullable":true,"pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"}},"additionalProperties":false},"UpdateManagerRequest":{"type":"object","properties":{"releaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Optional release ID to update to. If not provided, the active release will be chosen","example":"rel_WbhQgksrawSKIpEN0NAssHX9"}},"additionalProperties":false,"description":"Request schema for updating a manager to a new release"},"Event":{"type":"object","properties":{"id":{"type":"string","pattern":"event_[0-9a-zA-Z]{28}$","description":"Unique identifier for the event.","example":"event_MtSA24M3pWuAkQYxgZxuRI"},"deploymentId":{"type":"string","nullable":true,"pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"releaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"debugSessionId":{"type":"string","nullable":true,"pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Unique identifier for the debug session.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"data":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["LoadingConfiguration"]}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["Finished"]}},"required":["type"]},{"type":"object","properties":{"stack":{"type":"string","description":"Name of the stack being built"},"type":{"type":"string","enum":["BuildingStack"]}},"required":["stack","type"]},{"type":"object","properties":{"platform":{"type":"string","description":"Platform being targeted"},"stack":{"type":"string","description":"Name of the stack being checked"},"type":{"type":"string","enum":["RunningPreflights"]}},"required":["platform","stack","type"]},{"type":"object","properties":{"targetTriple":{"type":"string","description":"Target triple for the runtime"},"type":{"type":"string","enum":["DownloadingAlienRuntime"]},"url":{"type":"string","description":"URL being downloaded from"}},"required":["targetTriple","type","url"]},{"type":"object","properties":{"relatedResources":{"type":"array","items":{"type":"string"},"description":"All resource names sharing this build (for deduped container groups)"},"resourceName":{"type":"string","description":"Name of the resource being built"},"resourceType":{"type":"string","description":"Type of the resource: \"worker\", \"container\""},"type":{"type":"string","enum":["BuildingResource"]}},"required":["resourceName","resourceType","type"]},{"type":"object","properties":{"image":{"type":"string","description":"Name of the image being built"},"type":{"type":"string","enum":["BuildingImage"]}},"required":["image","type"]},{"type":"object","properties":{"image":{"type":"string","description":"Name of the image being pushed"},"progress":{"oneOf":[{"type":"object","properties":{"bytesUploaded":{"type":"integer","minimum":0,"description":"Bytes uploaded so far"},"layersUploaded":{"type":"integer","minimum":0,"description":"Number of layers uploaded so far"},"operation":{"type":"string","description":"Current operation being performed"},"totalBytes":{"type":"integer","minimum":0,"description":"Total bytes to upload"},"totalLayers":{"type":"integer","minimum":0,"description":"Total number of layers to upload"}},"required":["bytesUploaded","layersUploaded","operation","totalBytes","totalLayers"],"description":"Progress information for image push operations"},{"nullable":true}]},"type":{"type":"string","enum":["PushingImage"]}},"required":["image","type"]},{"type":"object","properties":{"destination":{"type":"string","nullable":true,"description":"Human-readable destination for pushed images"},"platform":{"type":"string","description":"Target platform"},"stack":{"type":"string","description":"Name of the stack being pushed"},"type":{"type":"string","enum":["PushingStack"]}},"required":["platform","stack","type"]},{"type":"object","properties":{"resourceName":{"type":"string","description":"Name of the resource being pushed"},"resourceType":{"type":"string","description":"Type of the resource: \"worker\", \"container\""},"type":{"type":"string","enum":["PushingResource"]}},"required":["resourceName","resourceType","type"]},{"type":"object","properties":{"project":{"type":"string","description":"Project name"},"type":{"type":"string","enum":["CreatingRelease"]}},"required":["project","type"]},{"type":"object","properties":{"language":{"type":"string","description":"Language being compiled (rust, typescript, etc.)"},"progress":{"type":"string","nullable":true,"description":"Current progress/status line from the build output"},"type":{"type":"string","enum":["CompilingCode"]}},"required":["language","type"]},{"type":"object","properties":{"nextState":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"Represents the collective state of all resources in a stack, including platform and pending actions."},"suggestedDelayMs":{"type":"integer","nullable":true,"minimum":0,"description":"An suggested duration to wait before executing the next step."},"type":{"type":"string","enum":["StackStep"]}},"required":["nextState","type"]},{"type":"object","properties":{"type":{"type":"string","enum":["GeneratingCloudFormationTemplate"]}},"required":["type"]},{"type":"object","properties":{"platform":{"type":"string","description":"Platform for which the template is being generated"},"type":{"type":"string","enum":["GeneratingTemplate"]}},"required":["platform","type"]},{"type":"object","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"]}},"required":["agentId","releaseId","type"]},{"type":"object","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"]}},"required":["agentId","releaseId","type"]},{"type":"object","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"]}},"required":["agentId","releaseId","type"]},{"type":"object","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"]}},"required":["agentId","debugSessionId","type"]},{"type":"object","properties":{"strategyName":{"type":"string","description":"Name of the deployment strategy being used"},"type":{"type":"string","enum":["PreparingEnvironment"]}},"required":["strategyName","type"]},{"type":"object","properties":{"stackName":{"type":"string","description":"Name of the stack being deployed"},"type":{"type":"string","enum":["DeployingStack"]}},"required":["stackName","type"]},{"type":"object","properties":{"stackName":{"type":"string","description":"Name of the stack being tested"},"type":{"type":"string","enum":["RunningTestWorker"]}},"required":["stackName","type"]},{"type":"object","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"]}},"required":["stackName","strategyName","type"]},{"type":"object","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"]}},"required":["stackName","strategyName","type"]},{"type":"object","properties":{"platformName":{"type":"string","description":"Name of the platform (e.g., \"AWS\", \"GCP\")"},"type":{"type":"string","enum":["SettingUpPlatformContext"]}},"required":["platformName","type"]},{"type":"object","properties":{"repositoryName":{"type":"string","description":"Name of the docker repository"},"type":{"type":"string","enum":["EnsuringDockerRepository"]}},"required":["repositoryName","type"]},{"type":"object","properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"currentStatus":{"type":"string","description":"Current stack status"},"type":{"type":"string","enum":["DeployingCloudFormationStack"]}},"required":["cfnStackName","currentStatus","type"]},{"type":"object","properties":{"roleArn":{"type":"string","description":"ARN of the role to assume"},"type":{"type":"string","enum":["AssumingRole"]}},"required":["roleArn","type"]},{"type":"object","properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"type":{"type":"string","enum":["ImportingStackStateFromCloudFormation"]}},"required":["cfnStackName","type"]},{"type":"object","properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"currentStatus":{"type":"string","description":"Current stack status"},"type":{"type":"string","enum":["DeletingCloudFormationStack"]}},"required":["cfnStackName","currentStatus","type"]},{"type":"object","properties":{"bucketNames":{"type":"array","items":{"type":"string"},"description":"Names of the S3 buckets being emptied"},"type":{"type":"string","enum":["EmptyingBuckets"]}},"required":["bucketNames","type"]},{"type":"object","properties":{"deploymentGroupId":{"type":"string","description":"ID of the deployment group this slot belongs to"},"deploymentId":{"type":"string","description":"ID of the deployment that was created"},"releaseId":{"type":"string","nullable":true,"description":"Initial release the slot was created with, if any"},"type":{"type":"string","enum":["DeploymentCreated"]}},"required":["deploymentGroupId","deploymentId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"previousReleaseId":{"type":"string","nullable":true,"description":"ID of the release that was previously live, if any"},"releaseId":{"type":"string","description":"ID of the release that is now live"},"type":{"type":"string","enum":["DeploymentReleased"]}},"required":["deploymentId","releaseId","type"]},{"type":"object","properties":{"attemptedReleaseId":{"type":"string","nullable":true,"description":"ID of the release the platform was trying to deploy, if known"},"deploymentId":{"type":"string","description":"ID of the deployment"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},"phase":{"type":"string","enum":["preflights","provisioning","updating","deleting"],"description":"Phase of a deployment at which a failure occurred.\n\nDerived from the source deployment status: `preflights-failed` →\n`Preflights`, `provisioning-failed` → `Provisioning`, `update-failed` →\n`Updating`, `delete-failed` → `Deleting`.\n`refresh-failed` is modelled separately via `DeploymentDegraded`."},"type":{"type":"string","enum":["DeploymentFailed"]}},"required":["deploymentId","error","phase","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},"type":{"type":"string","enum":["DeploymentDegraded"]}},"required":["deploymentId","error","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"releaseId":{"type":"string","description":"ID of the release that is now live"},"type":{"type":"string","enum":["DeploymentRecovered"]}},"required":["deploymentId","releaseId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment that was deleted"},"type":{"type":"string","enum":["DeploymentDeleted"]}},"required":["deploymentId","type"]},{"type":"object","properties":{"actor":{"oneOf":[{"type":"object","properties":{"email":{"type":"string","nullable":true,"description":"User email when the principal is a user."},"id":{"type":"string","description":"Stable user or service-account identifier."},"kind":{"type":"string","enum":["user","serviceAccount"],"description":"Type of authenticated principal that requested an event."}},"required":["id","kind"],"description":"Authenticated principal that requested a deployment intent event."},{"nullable":true}]},"channel":{"type":"string","description":"Name of the channel that moved"},"previousReleaseId":{"type":"string","nullable":true,"description":"ID of the release that was previously current, if any"},"releaseId":{"type":"string","description":"ID of the release that is now current"},"type":{"type":"string","enum":["ReleaseChannelUpdated"]}},"required":["channel","releaseId","type"]},{"type":"object","properties":{"actor":{"oneOf":[{"type":"object","properties":{"email":{"type":"string","nullable":true,"description":"User email when the principal is a user."},"id":{"type":"string","description":"Stable user or service-account identifier."},"kind":{"type":"string","enum":["user","serviceAccount"],"description":"Type of authenticated principal that requested an event."}},"required":["id","kind"],"description":"Authenticated principal that requested a deployment intent event."},{"nullable":true}]},"channel":{"type":"string","description":"Newly followed channel"},"deploymentId":{"type":"string","description":"ID of the deployment"},"previousChannel":{"type":"string","description":"Previously followed channel"},"type":{"type":"string","enum":["DeploymentReleaseChannelChanged"]}},"required":["channel","deploymentId","previousChannel","type"]},{"type":"object","properties":{"actor":{"oneOf":[{"type":"object","properties":{"email":{"type":"string","nullable":true,"description":"User email when the principal is a user."},"id":{"type":"string","description":"Stable user or service-account identifier."},"kind":{"type":"string","enum":["user","serviceAccount"],"description":"Type of authenticated principal that requested an event."}},"required":["id","kind"],"description":"Authenticated principal that requested a deployment intent event."},{"nullable":true}]},"attemptedReleaseId":{"type":"string","nullable":true,"description":"ID of the release that the failed attempt was targeting, if known"},"deploymentId":{"type":"string","description":"ID of the deployment"},"previousError":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"type":{"type":"string","enum":["DeploymentRetryRequested"]}},"required":["deploymentId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"releaseId":{"type":"string","description":"ID of the release being redeployed"},"type":{"type":"string","enum":["DeploymentRedeployRequested"]}},"required":["deploymentId","releaseId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"pinnedReleaseId":{"type":"string","description":"ID of the release that is now pinned"},"previousPinnedReleaseId":{"type":"string","nullable":true,"description":"ID of the previously pinned release, if any"},"type":{"type":"string","enum":["DeploymentReleasePinned"]}},"required":["deploymentId","pinnedReleaseId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"previousPinnedReleaseId":{"type":"string","description":"ID of the release that was previously pinned"},"type":{"type":"string","enum":["DeploymentReleaseUnpinned"]}},"required":["deploymentId","previousPinnedReleaseId","type"]},{"type":"object","properties":{"actor":{"oneOf":[{"type":"object","properties":{"email":{"type":"string","nullable":true,"description":"User email when the principal is a user."},"id":{"type":"string","description":"Stable user or service-account identifier."},"kind":{"type":"string","enum":["user","serviceAccount"],"description":"Type of authenticated principal that requested an event."}},"required":["id","kind"],"description":"Authenticated principal that requested a deployment intent event."},{"nullable":true}]},"changedKeys":{"type":"array","items":{"type":"string"},"description":"Names of the environment variables that changed (added, removed, or modified)"},"deploymentId":{"type":"string","description":"ID of the deployment"},"type":{"type":"string","enum":["DeploymentEnvironmentUpdated"]}},"required":["changedKeys","deploymentId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"type":{"type":"string","enum":["DeploymentDeletionRequested"]}},"required":["deploymentId","type"]}]},"state":{"oneOf":[{"type":"object","properties":{"failed":{"type":"object","properties":{"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]}},"description":"Event failed with an error"}},"required":["failed"]},{"type":"string","enum":["none"]},{"type":"string","enum":["started"]},{"type":"string","enum":["success"]}],"description":"Represents the state of an event"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"createdAt":{"type":"string","format":"date-time"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"}},"required":["id","data","state","projectId","createdAt","workspaceId"]},"GenerateManagerTokenResponse":{"type":"object","properties":{"accessToken":{"type":"string","description":"Platform JWT for authenticating with the manager"},"expiresIn":{"type":"number","nullable":true,"description":"Token lifetime in seconds"},"tokenType":{"type":"string","enum":["Bearer"]},"managerUrl":{"type":"string","description":"Manager URL for direct access"},"databaseId":{"type":"string","nullable":true,"description":"Log database ID (null if logs not configured)"},"controlPlaneUrl":{"type":"string","nullable":true,"description":"Log control plane URL (null if logs not configured)"}},"required":["accessToken","expiresIn","tokenType","managerUrl","databaseId","controlPlaneUrl"]},"GenerateManagerTokenRequest":{"type":"object","properties":{"project":{"type":"string","maxLength":100,"description":"Project ID or name to scope token access to."}},"required":["project"]},"GenerateManagerBindingTokenResponse":{"type":"object","properties":{"accessToken":{"type":"string"},"expiresIn":{"type":"number","nullable":true},"tokenType":{"type":"string","enum":["Bearer"]},"managerUrl":{"type":"string"}},"required":["accessToken","expiresIn","tokenType","managerUrl"]},"GenerateManagerBindingTokenRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"}},"required":["deploymentId"],"additionalProperties":false},"ResolveManagerGcpOAuthProviderResponse":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["alien-managed"]}},"required":["mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["custom"]},"clientId":{"$ref":"#/components/schemas/GcpOAuthClientId"},"clientSecret":{"$ref":"#/components/schemas/GcpOAuthClientSecret"}},"required":["mode","clientId","clientSecret"]}]},"ResolveManagerGcpOAuthProviderRequest":{"type":"object","properties":{"deploymentGroupToken":{"type":"string","minLength":1,"description":"Deployment-group bearer token whose project-level OAuth provider should be resolved."},"returnOrigin":{"type":"string","format":"uri","description":"Browser origin that will receive the Google OAuth callback result. Must be a first-party dashboard origin or the active portal origin for the deployment group's project."}},"required":["deploymentGroupToken"]},"ManagerHeartbeatResponse":{"type":"object","properties":{"acknowledged":{"type":"boolean"},"timestamp":{"type":"string"}},"required":["acknowledged","timestamp"]},"ManagerHeartbeatRequest":{"type":"object","properties":{"status":{"type":"string","enum":["healthy","degraded","unhealthy"],"description":"Current health status"},"version":{"type":"string","description":"Manager version"},"url":{"type":"string","format":"uri","description":"Manager public URL (for accessing DeepStore endpoints)"},"managementConfigs":{"allOf":[{"$ref":"#/components/schemas/ManagerManagementConfigs"},{"description":"Per-platform management configurations for cross-account access"}]},"metrics":{"type":"object","properties":{"activeDeployments":{"type":"number"},"pendingDeployments":{"type":"number"},"memoryUsageMb":{"type":"number"},"cpuUsagePercent":{"type":"number"}},"description":"Optional runtime metrics"}},"required":["status","url","managementConfigs"]},"ManagerDeployment":{"type":"object","properties":{"platform":{"type":"string","description":"Platform of the internal deployment"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status of the internal deployment"},"deploymentId":{"type":"string","description":"Internal deployment ID"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Currently deployed private manager release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Target private manager release for an in-progress update","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"error":{"nullable":true,"description":"Latest provision / upgrade / delete error"},"resources":{"type":"object","additionalProperties":{"type":"object","properties":{"type":{"type":"string","description":"Resource type"},"status":{"type":"string","description":"Resource status"},"outputs":{"type":"object","additionalProperties":{"nullable":true},"description":"Resource outputs"}},"required":["type","status"]},"description":"Simplified stack state resources"},"environmentInfo":{"nullable":true,"description":"Manager environment info"}},"required":["platform","status","deploymentId","resources"]},"PrepareOperatorManifestPackageResponse":{"type":"object","properties":{"package":{"$ref":"#/components/schemas/Package"}},"required":["package"]},"PrepareOperatorManifestPackageRequest":{"type":"object","properties":{"project":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"}},"required":["project"],"additionalProperties":false},"RenderOperatorManifestResponse":{"type":"object","properties":{"manifest":{"type":"string","description":"Rendered multi-document Kubernetes manifest"},"applyCommand":{"type":"string","description":"kubectl command for applying the manifest from a file"},"filename":{"type":"string","description":"Suggested local filename"},"managerUrl":{"type":"string","format":"uri","description":"Manager URL embedded in the manifest"},"imagePending":{"type":"boolean","description":"True when the operator image is still building. The manifest contains a placeholder image () and must not be applied yet — re-render once the operator-image package is ready to get the real image."}},"required":["manifest","applyCommand","filename","managerUrl","imagePending"]},"RenderOperatorManifestRequest":{"type":"object","properties":{"project":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"format":{"type":"string","enum":["raw","helm"],"default":"raw","description":"raw: a kubectl-applyable manifest for one cluster. helm: a paste-into-your-chart template whose namespace and environment name come from Helm at install time."},"environmentName":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Per-environment identity. Required for raw output, ignored for helm.","example":"my-app"},"namespace":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9]([-a-z0-9]*[a-z0-9])?$","description":"Namespace to observe and install into. Omit for helm to use the release namespace."},"scope":{"type":"string","enum":["namespace","cluster"],"default":"namespace","description":"namespace: a namespaced Role that manages the install namespace. cluster: a ClusterRole that manages every namespace."},"labelSelector":{"type":"string","minLength":1,"maxLength":256,"description":"Optional Kubernetes label selector narrowing what is managed, applied within the scope."},"permission":{"type":"string","enum":["observe"],"default":"observe","description":"Operator permission tier"},"operatorImagePackageId":{"type":"string","pattern":"pkg_[0-9a-z]{28}$","description":"Ready operator-image package to use for the Operator image. If omitted, the latest ready operator-image package for the project is used.","example":"pkg_jebo2o5jmm7raefl2m1pe3cz"},"deploymentGroupToken":{"type":"string","minLength":1,"description":"Deployment-group token embedded in the operator Secret"},"logCollector":{"type":"object","properties":{"enabled":{"type":"boolean","default":false}},"description":"Enable the node log collector DaemonSet for raw pod logs."}},"required":["project","deploymentGroupToken"],"additionalProperties":false},"APIKey":{"type":"object","properties":{"id":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"description":{"type":"string","nullable":true},"keyPrefix":{"type":"string"},"type":{"type":"string","enum":["workspace","project","deployment","deployment-group","manager"]},"role":{"type":"string"},"workspaceId":{"type":"string"},"projectId":{"type":"string","nullable":true},"deploymentId":{"type":"string","nullable":true},"deploymentGroupId":{"type":"string","nullable":true},"managerId":{"type":"string","nullable":true},"enabled":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","nullable":true,"format":"date-time"},"lastUsedAt":{"type":"string","nullable":true,"format":"date-time"},"revokedAt":{"type":"string","nullable":true,"format":"date-time"},"deploymentSetupConfig":{"$ref":"#/components/schemas/APIKeyDeploymentSetupConfig"},"createdByUser":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"email":{"type":"string"},"image":{"type":"string","nullable":true}},"required":["id","email","image"],"description":"User information associated with the API key"}},"required":["id","description","keyPrefix","type","role","workspaceId","projectId","deploymentId","deploymentGroupId","managerId","enabled","createdAt","expiresAt","lastUsedAt","revokedAt","deploymentSetupConfig","createdByUser"],"description":"API key information"},"APIKeyDeploymentSetupConfig":{"type":"object","nullable":true,"properties":{"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"environmentVariables":{"type":"array","items":{"$ref":"#/components/schemas/APIKeyDeploymentSetupEnvironmentVariable"}}},"required":["metadata","policy","environmentVariables"]},"APIKeyDeploymentSetupEnvironmentVariable":{"type":"object","properties":{"name":{"type":"string","pattern":"^[A-Z_][A-Z0-9_]*$","description":"Variable name"},"type":{"$ref":"#/components/schemas/EnvironmentVariableType"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string","pattern":"^[a-zA-Z0-9_-]+(\\*)?$"},"description":"Target resource patterns (null = all resources, array = wildcard patterns)"}},"required":["name","type","targetResources"]},"CreateAPIKeyResponse":{"type":"object","properties":{"apiKey":{"type":"string","description":"The generated API key value (only shown once)"},"keyInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"description":{"type":"string","nullable":true},"keyPrefix":{"type":"string"},"type":{"type":"string","enum":["workspace","project","deployment","deployment-group","manager"]},"role":{"type":"string"},"workspaceId":{"type":"string"},"projectId":{"type":"string","nullable":true},"deploymentId":{"type":"string","nullable":true},"deploymentGroupId":{"type":"string","nullable":true},"managerId":{"type":"string","nullable":true},"enabled":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","nullable":true,"format":"date-time"},"lastUsedAt":{"type":"string","nullable":true,"format":"date-time"},"revokedAt":{"type":"string","nullable":true,"format":"date-time"},"deploymentSetupConfig":{"$ref":"#/components/schemas/APIKeyDeploymentSetupConfig"}},"required":["id","description","keyPrefix","type","role","workspaceId","projectId","deploymentId","deploymentGroupId","managerId","enabled","createdAt","expiresAt","lastUsedAt","revokedAt","deploymentSetupConfig"]}},"required":["apiKey","keyInfo"],"description":"Response containing the new API key and its metadata"},"CreateAPIKeyRequest":{"type":"object","properties":{"description":{"type":"string","nullable":true,"minLength":3,"maxLength":128},"scope":{"$ref":"#/components/schemas/Scope"},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"Optional expiration date for the API key"}},"required":["description","scope","expiresAt"],"description":"Request schema for creating a new API key"},"Scope":{"oneOf":[{"$ref":"#/components/schemas/WorkspaceScope"},{"$ref":"#/components/schemas/ProjectScope"},{"$ref":"#/components/schemas/DeploymentScope"},{"$ref":"#/components/schemas/DeploymentGroupScope"},{"$ref":"#/components/schemas/ManagerScope"}],"discriminator":{"propertyName":"type","mapping":{"workspace":"#/components/schemas/WorkspaceScope","project":"#/components/schemas/ProjectScope","deployment":"#/components/schemas/DeploymentScope","deployment-group":"#/components/schemas/DeploymentGroupScope","manager":"#/components/schemas/ManagerScope"}},"description":"Scope and role configuration for service accounts"},"WorkspaceScope":{"type":"object","properties":{"type":{"type":"string","enum":["workspace"]},"role":{"$ref":"#/components/schemas/WorkspaceRole"}},"required":["type","role"],"description":"Workspace-scoped configuration"},"ProjectScope":{"type":"object","properties":{"type":{"type":"string","enum":["project"]},"projectId":{"type":"string","description":"ID of the project this is scoped to"},"role":{"$ref":"#/components/schemas/ProjectRole"}},"required":["type","projectId","role"],"description":"Project-scoped configuration"},"DeploymentScope":{"type":"object","properties":{"type":{"type":"string","enum":["deployment"]},"deploymentId":{"type":"string","description":"ID of the deployment this is scoped to"},"projectId":{"type":"string","description":"ID of the project this deployment belongs to"},"role":{"$ref":"#/components/schemas/DeploymentRole"}},"required":["type","deploymentId","projectId","role"],"description":"Deployment-scoped configuration"},"DeploymentGroupScope":{"type":"object","properties":{"type":{"type":"string","enum":["deployment-group"]},"deploymentGroupId":{"type":"string","description":"ID of the deployment group this is scoped to"},"projectId":{"type":"string","description":"ID of the project this deployment group belongs to"},"role":{"$ref":"#/components/schemas/DeploymentGroupRole"}},"required":["type","deploymentGroupId","projectId","role"],"description":"Deployment group-scoped configuration"},"ManagerScope":{"type":"object","properties":{"type":{"type":"string","enum":["manager"]},"managerId":{"type":"string","description":"ID of the manager this is scoped to"},"role":{"$ref":"#/components/schemas/ManagerRole"}},"required":["type","managerId","role"],"description":"Manager-scoped configuration"},"UpdateAPIKeyRequest":{"type":"object","properties":{"enabled":{"type":"boolean"},"description":{"type":"string","nullable":true,"minLength":3,"maxLength":128},"deploymentSetupConfig":{"$ref":"#/components/schemas/UpdateDeploymentSetupPolicy"},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"Optional expiration date for the API key"}},"description":"Request schema for updating an API key"},"UpdateDeploymentSetupPolicy":{"type":"object","properties":{"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"}},"required":["policy"],"description":"Editable part of a deployment link's setup config. Locked env vars and input values are preserved."},"DeleteAPIKeysRequest":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"minItems":1}},"required":["ids"]},"DomainWithUsage":{"allOf":[{"$ref":"#/components/schemas/Domain"},{"type":"object","properties":{"endpoints":{"type":"array","items":{"$ref":"#/components/schemas/DomainEndpoint"}},"usage":{"type":"object","properties":{"deploymentUrlProjects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}},"portalBindings":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"projectId":{"type":"string","nullable":true},"projectName":{"type":"string","nullable":true},"hostname":{"type":"string"}},"required":["id","projectId","projectName","hostname"]}},"packageDomains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"hostname":{"type":"string"}},"required":["id","hostname"]}},"managerBindings":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"managerId":{"type":"string"},"managerName":{"type":"string"},"hostname":{"type":"string"}},"required":["id","managerId","managerName","hostname"]}}},"required":["deploymentUrlProjects","portalBindings","packageDomains","managerBindings"]}},"required":["endpoints","usage"]}]},"Domain":{"type":"object","properties":{"id":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"domain":{"type":"string"},"isSystem":{"type":"boolean"},"claimToken":{"type":"string"},"hostedZoneId":{"type":"string","nullable":true},"nameServers":{"type":"array","nullable":true,"items":{"type":"string"}},"status":{"type":"string","enum":["pending-zone-creation","pending-verification","verified","lost-verification","failed","deleting"]},"error":{"nullable":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"verifiedAt":{"type":"string","format":"date-time","nullable":true}},"required":["id","workspaceId","domain","isSystem","claimToken","status","createdAt","updatedAt"]},"EventListItemResponse":{"allOf":[{"$ref":"#/components/schemas/Event"},{"type":"object","properties":{"releaseCreatedAt":{"type":"string","format":"date-time","nullable":true,"description":"createdAt of the event's referenced release, included when ?include=releaseCreatedAt is used"}}}]},"ListMachinesJoinTokensResponse":{"type":"object","properties":{"tokens":{"type":"array","items":{"$ref":"#/components/schemas/MachinesJoinTokenSummary"}}},"required":["tokens"]},"MachinesJoinTokenSummary":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"expiresAt":{"type":"string","nullable":true},"maxJoins":{"type":"integer","nullable":true},"joinCount":{"type":"integer"},"lastUsedAt":{"type":"string","nullable":true},"revokedAt":{"type":"string","nullable":true}},"required":["id","createdAt","createdBy","joinCount"]},"CreateMachinesJoinTokenResponse":{"type":"object","properties":{"joinToken":{"type":"string"},"controlPlaneUrl":{"type":"string","format":"uri"},"clusterId":{"type":"string"},"token":{"$ref":"#/components/schemas/MachinesJoinTokenSummary"},"cliInstallScriptUrl":{"type":"string","nullable":true,"format":"uri","description":"Deploy CLI install script URL, or null when no ready CLI package exists."},"cliCommandName":{"type":"string","nullable":true,"description":"CLI command name to use in join instructions."}},"required":["joinToken","controlPlaneUrl","clusterId","token","cliInstallScriptUrl","cliCommandName"]},"RotateMachinesJoinTokenResponse":{"type":"object","properties":{"joinToken":{"type":"string"},"controlPlaneUrl":{"type":"string","format":"uri"},"clusterId":{"type":"string"},"token":{"$ref":"#/components/schemas/MachinesJoinTokenSummary"},"cliInstallScriptUrl":{"type":"string","nullable":true,"format":"uri","description":"Deploy CLI install script URL, or null when no ready CLI package exists."},"cliCommandName":{"type":"string","nullable":true,"description":"CLI command name to use in join instructions."}},"required":["joinToken","controlPlaneUrl","clusterId","token","cliInstallScriptUrl","cliCommandName"]},"RevokeMachinesJoinTokenResponse":{"type":"object","properties":{"tokenId":{"type":"string"},"revoked":{"type":"boolean"}},"required":["tokenId","revoked"]},"ListMachinesInventoryResponse":{"type":"object","properties":{"machines":{"type":"array","items":{"$ref":"#/components/schemas/MachinesInventoryItem"}}},"required":["machines"]},"MachinesInventoryItem":{"type":"object","properties":{"machineId":{"type":"string"},"status":{"type":"string"},"capacityGroup":{"type":"string"},"zone":{"type":"string"},"cpu":{"$ref":"#/components/schemas/MachinesCapacityMetric"},"memory":{"$ref":"#/components/schemas/MachinesCapacityMetric"},"storage":{"allOf":[{"$ref":"#/components/schemas/MachinesCapacityMetric"}],"nullable":true},"drainBlockers":{"type":"array","items":{"$ref":"#/components/schemas/MachinesDrainBlocker"}},"drainDeadlineAt":{"type":"string","nullable":true},"drainForce":{"type":"boolean"},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"publicIp":{"type":"string","nullable":true},"overlayIp":{"type":"string","nullable":true},"lastHeartbeat":{"type":"string"},"horizondVersion":{"type":"string","nullable":true},"localOverrides":{"type":"array","items":{"$ref":"#/components/schemas/MachinesLocalOverrideObservation"}},"localOverridesObservedAt":{"type":"string","nullable":true},"replicaCount":{"type":"integer"}},"required":["machineId","status","capacityGroup","zone","cpu","memory","drainBlockers","drainForce","lastHeartbeat","localOverrides","replicaCount"]},"MachinesCapacityMetric":{"type":"object","properties":{"allocated":{"type":"number"},"systemReserve":{"type":"number"},"total":{"type":"number"}},"required":["allocated","systemReserve","total"]},"MachinesDrainBlocker":{"type":"object","properties":{"reason":{"type":"string"},"workloadId":{"type":"string","nullable":true},"workloadName":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true},"schedulingMode":{"type":"string","nullable":true},"state":{"type":"string","nullable":true}},"required":["reason"]},"MachinesLocalOverrideObservation":{"type":"object","properties":{"activeDigest":{"type":"string","nullable":true},"actor":{"type":"string","nullable":true},"baseAssignmentHash":{"type":"string"},"baseDigest":{"type":"string","nullable":true},"candidateDigest":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"failureCategory":{"type":"string","nullable":true},"fallbackDigest":{"type":"string","nullable":true},"forcedStop":{"type":"boolean","nullable":true},"healthySince":{"type":"string","nullable":true},"incidentId":{"type":"string","nullable":true},"lifecycle":{"type":"string"},"phaseStartedAt":{"type":"string","nullable":true},"replicaId":{"type":"string"},"workloadName":{"type":"string"}},"required":["baseAssignmentHash","lifecycle","replicaId","workloadName"]},"CancelMachinesMachineDrainResponse":{"type":"object","properties":{"machineId":{"type":"string"},"cancelled":{"type":"boolean"}},"required":["machineId","cancelled"]},"DrainMachinesMachineResponse":{"type":"object","properties":{"machineId":{"type":"string"},"requested":{"type":"boolean"}},"required":["machineId","requested"]},"DrainMachinesMachineRequest":{"type":"object","properties":{"deadlineSeconds":{"type":"integer","nullable":true,"minimum":0},"force":{"type":"boolean"}}},"RemoveMachinesMachineResponse":{"type":"object","properties":{"machineId":{"type":"string"},"removed":{"type":"boolean"}},"required":["machineId","removed"]},"CommandListItemResponse":{"allOf":[{"$ref":"#/components/schemas/Command"},{"type":"object","properties":{"deployment":{"$ref":"#/components/schemas/CommandDeploymentInfo"},"project":{"$ref":"#/components/schemas/CommandProjectInfo"}}}]},"CommandDeploymentInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string"},"deploymentGroup":{"$ref":"#/components/schemas/CommandDeploymentGroupInfo"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Platform-specific environment information"},"managerId":{"type":"string","description":"Manager ID for obtaining access tokens"},"managerUrl":{"type":"string","nullable":true,"format":"uri","description":"URL of the manager for direct payload access"},"managerName":{"type":"string","nullable":true,"description":"Human-readable name of the manager"},"managerIsSystem":{"type":"boolean","nullable":true,"description":"Whether the manager is Alien-hosted (system)"}},"required":["id","name","managerId"]},"CommandDeploymentGroupInfo":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"CommandProjectInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"name":{"type":"string"}},"required":["id","name"]},"Command":{"type":"object","properties":{"id":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"name":{"type":"string","description":"Command name (e.g., 'analyze-repository', 'sync-data')"},"state":{"type":"string","enum":["PENDING_UPLOAD","PENDING","DISPATCHED","SUCCEEDED","FAILED","EXPIRED"],"description":"Command states in the Commands protocol lifecycle"},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Delivery mode for this command (push/pull), derived from the target at creation time"},"target":{"type":"object","nullable":true,"properties":{"resourceId":{"type":"string","description":"The resource ID within the deployment's stack (e.g. a Worker/Container/Daemon id)."},"resourceType":{"type":"string","enum":["worker","container","daemon"],"description":"The kind of command-capable resource a command targets."}},"required":["resourceId","resourceType"],"description":"Resource the command is addressed to; null on commands created before target routing"},"attempt":{"type":"number","nullable":true,"description":"Current attempt number"},"deadline":{"type":"string","nullable":true,"format":"date-time","description":"Optional deadline for command execution"},"requestSizeBytes":{"type":"number","nullable":true,"description":"Size of command params in bytes"},"responseSizeBytes":{"type":"number","nullable":true,"description":"Size of command response in bytes"},"createdAt":{"type":"string","format":"date-time","description":"When the command was created"},"dispatchedAt":{"type":"string","nullable":true,"format":"date-time","description":"When the command was dispatched to the deployment"},"completedAt":{"type":"string","nullable":true,"format":"date-time","description":"When the command completed"},"error":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Error details if command failed"},"result":{"nullable":true,"description":"Decoded command result when available"}},"required":["id","deploymentId","projectId","workspaceId","name","state","deploymentModel","target","attempt","deadline","requestSizeBytes","responseSizeBytes","createdAt","dispatchedAt","completedAt","error"]},"ListCommandNamesResponse":{"type":"object","properties":{"names":{"type":"array","items":{"type":"string"}}},"required":["names"]},"ListCommandDeploymentsResponse":{"type":"object","properties":{"deployments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string"},"deploymentGroup":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}},"required":["id","name"]}}},"required":["deployments"]},"CreateCommandResponse":{"type":"object","properties":{"id":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"projectId":{"type":"string","description":"Project ID (for manager to use in routing)"},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"How to dispatch the command"},"target":{"type":"object","properties":{"resourceId":{"type":"string","description":"The resource ID within the deployment's stack (e.g. a Worker/Container/Daemon id)."},"resourceType":{"type":"string","enum":["worker","container","daemon"],"description":"The kind of command-capable resource a command targets."}},"required":["resourceId","resourceType"],"description":"Resource the command is addressed to"},"deliveryMode":{"type":"string","enum":["push","pull"],"description":"How the command is delivered to its target"}},"required":["id","projectId","deploymentModel","target","deliveryMode"]},"CreateCommandRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Target deployment ID","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string","minLength":1,"maxLength":255,"description":"Command name (e.g., 'analyze-repository')"},"params":{"nullable":true,"description":"Command parameters for public invocation"},"target":{"type":"string","maxLength":255,"description":"Resource id the command is addressed to. Required when the deployment has more than one command-capable resource."},"initialState":{"type":"string","enum":["PENDING_UPLOAD","PENDING","DISPATCHED","SUCCEEDED","FAILED","EXPIRED"],"description":"Initial state (PENDING_UPLOAD if params require upload, PENDING if inline)"},"deadline":{"type":"string","nullable":true,"format":"date-time","description":"Optional deadline for command execution"},"requestSizeBytes":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Size of command params in bytes"}},"required":["deploymentId","name"]},"ResolvedCommandTarget":{"type":"object","properties":{"target":{"type":"object","properties":{"resourceId":{"type":"string","description":"The resource ID within the deployment's stack (e.g. a Worker/Container/Daemon id)."},"resourceType":{"type":"string","enum":["worker","container","daemon"],"description":"The kind of command-capable resource a command targets."}},"required":["resourceId","resourceType"],"description":"Identifies the specific resource a command is addressed to."},"deliveryMode":{"type":"string","enum":["push","pull"],"description":"How a command is delivered to its target resource.\n\nThis is a Commands-protocol-specific concept and is intentionally distinct\nfrom `DeploymentModel` (see `stack_settings.rs`), which governs the\ninfrastructure-level push/pull wiring for a deployment. Serialized\nlowercase for consistency with `CommandTargetType`."}},"required":["target","deliveryMode"]},"UpdateCommandRequest":{"type":"object","properties":{"state":{"type":"string","enum":["PENDING_UPLOAD","PENDING","DISPATCHED","SUCCEEDED","FAILED","EXPIRED"],"description":"New command state"},"attempt":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Current attempt number"},"dispatchedAt":{"type":"string","nullable":true,"format":"date-time","description":"When command was dispatched"},"completedAt":{"type":"string","nullable":true,"format":"date-time","description":"When command completed"},"responseSizeBytes":{"type":"number","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Size of response in bytes"},"error":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Error details if failed"}}},"DispatchCommandResponse":{"type":"object","properties":{"updated":{"type":"boolean","description":"Whether the command transitioned; false if it was already terminal"}},"required":["updated"]},"DispatchCommandRequest":{"type":"object","properties":{"dispatchedAt":{"type":"string","format":"date-time","description":"When the command was dispatched"}},"required":["dispatchedAt"]},"CompleteCommandResponse":{"type":"object","properties":{"updated":{"type":"boolean","description":"Whether the command transitioned; false if it was already terminal"}},"required":["updated"]},"CompleteCommandRequest":{"type":"object","properties":{"state":{"type":"string","enum":["SUCCEEDED","FAILED","EXPIRED"],"description":"Terminal state to transition to"},"completedAt":{"type":"string","format":"date-time","description":"When the command completed"},"responseSizeBytes":{"type":"number","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Size of response in bytes"},"error":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Error details if failed"}},"required":["state","completedAt"]},"IncrementCommandAttemptResponse":{"type":"object","properties":{"attempt":{"type":"integer","description":"The attempt number after the increment"}},"required":["attempt"]},"DebugSessionListResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DebugSession"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"},"DebugSession":{"type":"object","properties":{"id":{"type":"string","pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Unique identifier for the debug session.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"owner":{"type":"string","nullable":true,"maxLength":128},"state":{"$ref":"#/components/schemas/DebugSessionState"},"mode":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"provider":{"type":"string","nullable":true,"enum":["aws","gcp","azure","kubernetes","machines","local","test",null],"description":"Represents the target cloud platform."},"presignedUrls":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/DebugPackagePresignedURLs"}},"error":{"nullable":true},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"}},"required":["id","state","mode","presignedUrls","createdAt","expiresAt","deploymentId","projectId","workspaceId"]},"DebugSessionState":{"type":"string","enum":["pending","running","stopping","stopped","expired","failed"]},"DebugPackagePresignedURLs":{"type":"object","properties":{"readUrl":{"type":"string","maxLength":2048,"format":"uri"},"writeUrl":{"type":"string","maxLength":2048,"format":"uri"}},"required":["readUrl","writeUrl"]},"CreateDebugSessionRequest":{"type":"object","properties":{"id":{"type":"string","pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Override the generated id. Manager passes the registry session id so logs correlate.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"owner":{"type":"string","nullable":true,"maxLength":128},"expiresAt":{"type":"string","format":"date-time"},"state":{"allOf":[{"$ref":"#/components/schemas/DebugSessionState"},{"description":"Initial state. Defaults to 'pending'."}]}},"required":["deploymentId","expiresAt"]},"UpdateDebugSessionRequest":{"type":"object","properties":{"state":{"$ref":"#/components/schemas/DebugSessionState"},"error":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"expiresAt":{"type":"string","format":"date-time"}}},"DeploymentInfo":{"type":"object","properties":{"tokenType":{"type":"string","enum":["deployment","deployment-group"],"description":"Type of token used to authenticate this request"},"deployment":{"type":"object","properties":{"name":{"type":"string"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."}},"required":["name","platform"],"description":"Deployment details (present when using a deployment-scoped token)"},"deploymentGroup":{"type":"object","properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string"},"pinnedSubdomain":{"type":"string","nullable":true}},"required":["id","name","pinnedSubdomain"],"description":"Deployment group details (present when using a deployment-group token)"},"workspace":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"avatarUrl":{"type":"string","nullable":true,"format":"uri"}},"required":["id","name"]},"project":{"type":"object","properties":{"name":{"type":"string"},"portal":{"type":"object","properties":{"appearance":{"$ref":"#/components/schemas/DeploymentPortalAppearance"}},"required":["appearance"]},"stackSummary":{"type":"object","nullable":true,"properties":{"platforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms supported by the active release"},"requiresNetwork":{"type":"boolean","description":"Whether the stack contains resources that require cloud VPC networking"},"resourceCounts":{"type":"object","properties":{"workers":{"type":"integer","minimum":0},"containers":{"type":"integer","minimum":0},"daemons":{"type":"integer","minimum":0,"description":"Daemon resources that run on managed runtime machines"},"publicHttpsEndpoints":{"type":"integer","minimum":0,"description":"Resources that declare managed public HTTPS endpoint setup"},"externalInfra":{"type":"integer","minimum":0,"description":"Storage, queue, KV, vault, database, or cache resources that Kubernetes needs Terraform to provision"},"total":{"type":"integer","minimum":0}},"required":["workers","containers","publicHttpsEndpoints","externalInfra","total"]},"publicEndpoints":{"type":"array","items":{"type":"object","properties":{"resourceId":{"type":"string"},"endpointName":{"type":"string"},"hostLabel":{"type":"string"},"wildcardSubdomains":{"type":"boolean"}},"required":["resourceId","endpointName","hostLabel","wildcardSubdomains"]},"description":"Public endpoints declared by the active release stack"}},"required":["platforms","requiresNetwork","resourceCounts","publicEndpoints"]},"generatedDomain":{"type":"object","nullable":true,"properties":{"domain":{"type":"string"},"isSystem":{"type":"boolean"}},"required":["domain","isSystem"],"description":"Parent domain for generated deployment URLs. Chosen public subdomains are only allowed when isSystem is false."}},"required":["name","portal"]},"packages":{"type":"object","properties":{"ready":{"type":"boolean","description":"True if all enabled packages are ready for deployment"},"cli":{"type":"object","properties":{"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"commandName":{"type":"string","description":"CLI command name to use in install instructions"},"version":{"type":"string"},"outputs":{"type":"object","properties":{"binaries":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sha256":{"type":"string","description":"SHA256 checksum"},"size":{"type":"integer","minimum":0,"description":"File size in bytes"},"url":{"type":"string","description":"Download URL for the binary"}},"required":["sha256","size","url"],"description":"Information about a single binary artifact"},"description":"Binary information for each target platform"},"buildInfo":{"type":"object","properties":{"alienSha":{"type":"string","description":"Alien source commit used to build the source CLI and agent binaries."},"horizonSha":{"type":"string","description":"Compute backend source revision used by optional package extensions, if applicable."},"machineBundleManifestUrl":{"type":"string","nullable":true,"description":"Machine runtime release manifest embedded into the generated CLI."},"platformSha":{"type":"string","description":"Source revision used to build the package service and optional extensions."},"sourceAgentBinarySha256":{"type":"string","nullable":true,"description":"SHA256 checksum of the source runtime helper binary shipped with the CLI package, when present."},"sourceCliBinarySha256":{"type":"string","description":"SHA256 checksum of the source deploy CLI binary before white-label config is appended."}},"required":["alienSha","horizonSha","platformSha","sourceCliBinarySha256"],"description":"Source provenance for a generated CLI package."}},"required":["binaries","buildInfo"],"description":"Outputs from a CLI package build"},"error":{"nullable":true},"installScripts":{"type":"object","properties":{"windows":{"type":"string","format":"uri"},"mac":{"type":"string","format":"uri"},"linux":{"type":"string","format":"uri"}},"required":["windows","mac","linux"],"description":"Install script URLs for each OS"}},"required":["status","commandName","installScripts"]},"cloudformation":{"type":"object","properties":{"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"version":{"type":"string"},"outputs":{"type":"object","properties":{"targets":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"launchStackUrl":{"type":"string","description":"AWS Console quick-launch URL"},"sha256":{"type":"string","description":"SHA256 checksum of the template"},"size":{"type":"integer","minimum":0,"description":"Template size in bytes"},"stackPolicyUrl":{"type":"string","description":"S3 URL to the CloudFormation stack policy"},"target":{"type":"string","description":"CloudFormation target (aws, eks)"},"templateUrl":{"type":"string","description":"S3 URL to the CloudFormation template"}},"required":["launchStackUrl","sha256","size","stackPolicyUrl","target","templateUrl"],"description":"Information about a single CloudFormation template package for one target."},"description":"Template artifacts by CloudFormation target."}},"required":["targets"],"description":"Outputs from a CloudFormation package build."},"error":{"nullable":true},"mode":{"type":"string","enum":["auto","outputs"]},"launchUrl":{"type":"string","format":"uri","description":"CloudFormation launch URL"},"outputsSchema":{"nullable":true}},"required":["status","mode","launchUrl"]},"terraform":{"type":"object","properties":{"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"version":{"type":"string"},"outputs":{"type":"object","properties":{"modules":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL for the module archive"},"filename":{"type":"string","description":"Filename of the module archive"},"shasum":{"type":"string","description":"SHA256 checksum of the archive"},"size":{"type":"integer","minimum":0,"description":"Size of the archive in bytes"},"source":{"type":"string","description":"Terraform module source (hostname/namespace/name/provider, without scheme)"},"target":{"type":"string","description":"Terraform module target (aws, gcp, azure, eks, gke, aks)"},"variables":{"type":"array","items":{"type":"string"},"description":"Terraform input variables exposed by this module."}},"required":["downloadUrl","filename","shasum","size","source","target"],"description":"Information about a single Terraform module package for one target."},"description":"Module registry artifacts by Terraform target."},"provider":{"type":"object","properties":{"gpgPublicKey":{"type":"object","properties":{"asciiArmor":{"type":"string","description":"ASCII-armored public key"},"keyId":{"type":"string","description":"GPG key ID"}},"required":["asciiArmor","keyId"],"description":"GPG public key for Terraform provider signature verification"},"platforms":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL for the provider zip"},"filename":{"type":"string","description":"Filename of the provider zip"},"shasum":{"type":"string","description":"SHA256 checksum of the zip file"},"shasumsSignatureUrl":{"type":"string","description":"URL to the shasums signature file"},"shasumsUrl":{"type":"string","description":"URL to the shasums file"},"size":{"type":"integer","minimum":0,"description":"Size of the zip file in bytes"}},"required":["downloadUrl","filename","shasum","shasumsSignatureUrl","shasumsUrl","size"],"description":"Information about a single Terraform provider package for a specific platform"},"description":"Provider packages for each target platform"},"source":{"type":"string","description":"Terraform provider source (hostname/namespace/type, without scheme)"}},"required":["gpgPublicKey","platforms","source"],"description":"Terraform provider registry outputs."}},"required":["modules","provider"],"description":"Outputs from a Terraform package build."},"error":{"nullable":true},"providerSource":{"type":"string","description":"Terraform provider source (without https://)"},"moduleSources":{"type":"object","additionalProperties":{"type":"string"},"description":"Terraform module sources by target"},"moduleVersion":{"type":"string"},"managerUrls":{"type":"object","additionalProperties":{"type":"string"},"description":"Manager URLs by Terraform target"}},"required":["status","providerSource","moduleSources","managerUrls"]},"helm":{"type":"object","properties":{"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"version":{"type":"string"},"outputs":{"type":"object","properties":{"chart":{"type":"string","description":"OCI chart reference (e.g., \"oci://public.ecr.aws/acme/charts/project-id\")"},"version":{"type":"string","description":"Chart version (e.g., \"1.2.3\")"}},"required":["chart","version"],"description":"Outputs from a Helm chart package build"},"error":{"nullable":true},"chartRef":{"type":"string","description":"OCI chart reference"},"managerFetchExample":{"type":"string"},"localImportExample":{"type":"string"}},"required":["status","chartRef"]}},"required":["ready"]},"installContext":{"type":"object","properties":{"targets":{"type":"object","additionalProperties":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"managerUrl":{"type":"string","format":"uri"},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}],"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."},"awsManagingAccountId":{"type":"string"}},"required":["platform","managerUrl"]},"description":"Deployment-session install context by Terraform/installer target"}},"required":["targets"]},"supportedRegions":{"$ref":"#/components/schemas/SupportedCloudRegions"},"setupConfig":{"$ref":"#/components/schemas/DeploymentInfoSetupConfig"},"readiness":{"type":"object","properties":{"status":{"type":"string","enum":["ready","notReady","unknown"]},"checks":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"status":{"type":"string","enum":["passed","failed","warning","unknown"]},"message":{"type":"string"},"checkedAt":{"type":"string"}},"required":["code","status","message","checkedAt"]}}},"required":["status","checks"]}},"required":["tokenType","workspace","project","packages","installContext","supportedRegions"]},"DeploymentPortalAppearance":{"type":"object","properties":{"avatarUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional project-specific avatar override for the deployment portal."},"preset":{"$ref":"#/components/schemas/DeploymentPortalAppearancePreset"},"accentColor":{"$ref":"#/components/schemas/DeploymentPortalAccentColor"},"title":{"type":"string","nullable":true,"maxLength":80,"description":"Optional portal title. Defaults to the project name."},"subtitle":{"type":"string","nullable":true,"maxLength":160,"description":"Optional customer-facing subtitle."},"supportUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional support or contact URL."},"docsUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional documentation URL."},"density":{"$ref":"#/components/schemas/DeploymentPortalDensity"}}},"SupportedCloudRegions":{"type":"object","properties":{"aws":{"type":"array","items":{"type":"string"},"description":"AWS regions supported by this Alien environment."},"gcp":{"type":"array","items":{"type":"string"},"description":"GCP regions supported by this Alien environment."},"azure":{"type":"array","items":{"type":"string"},"description":"Azure locations supported by this Alien environment."}},"required":["aws","gcp","azure"]},"DeploymentInfoSetupConfig":{"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"environmentVariables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","pattern":"^[A-Z_][A-Z0-9_]*$","description":"Variable name"},"type":{"$ref":"#/components/schemas/EnvironmentVariableType"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string","pattern":"^[a-zA-Z0-9_-]+(\\*)?$"},"description":"Target resource patterns (null = all resources, array = wildcard patterns)"}},"required":["name","type","targetResources"]}},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."}},"inputValues":{"type":"array","items":{"$ref":"#/components/schemas/ResolvedStackInputSummary"}}},"required":["metadata","policy","environmentVariables"]},"ResolvedStackInputSummary":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"]}},"required":{"type":"boolean"},"secret":{"type":"boolean"},"provided":{"type":"boolean"}},"required":["id","label","providedBy","required","secret","provided"]},"DeploymentComputePlan":{"type":"object","properties":{"pools":{"type":"array","items":{"type":"object","properties":{"poolId":{"type":"string"},"workloads":{"type":"array","items":{"type":"string"}},"requirements":{"type":"object","properties":{"cpu":{"type":"string"},"memoryBytes":{"type":"integer","minimum":0},"ephemeralStorageBytes":{"type":"integer","minimum":0},"architecture":{"type":"string","nullable":true,"enum":["arm64","x86_64",null]},"gpu":{"type":"object","nullable":true,"properties":{"type":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["type","count"]}},"required":["cpu","memoryBytes","ephemeralStorageBytes"]},"scale":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["fixed"]},"machines":{"type":"object","properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"default":{"type":"integer","minimum":0}},"required":["min","max","default"]}},"required":["type","machines"]},{"type":"object","properties":{"type":{"type":"string","enum":["autoscale"]},"min":{"type":"object","properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"default":{"type":"integer","minimum":0}},"required":["min","max","default"]},"max":{"type":"object","properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"default":{"type":"integer","minimum":0}},"required":["min","max","default"]}},"required":["type","min","max"]}]},"selected":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["fixed"]},"machines":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","machines"]},{"type":"object","properties":{"mode":{"type":"string","enum":["autoscale"]},"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","min","max"]}]},"recommended":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["fixed"]},"machines":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","machines"]},{"type":"object","properties":{"mode":{"type":"string","enum":["autoscale"]},"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","min","max"]}]},"machines":{"type":"array","items":{"type":"object","properties":{"machine":{"type":"string"},"profile":{"type":"object","properties":{"cpu":{"type":"string"},"memoryBytes":{"type":"integer","minimum":0},"ephemeralStorageBytes":{"type":"integer","minimum":0},"architecture":{"type":"string","nullable":true,"enum":["arm64","x86_64",null]},"gpu":{"type":"object","nullable":true,"properties":{"type":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["type","count"]}},"required":["cpu","memoryBytes","ephemeralStorageBytes"]},"recommended":{"type":"boolean"}},"required":["machine","profile","recommended"]}},"errors":{"type":"array","items":{"type":"string"}}},"required":["poolId","workloads","requirements","scale","selected","recommended","machines"]}}},"required":["pools"]},"PreparedDeploymentStack":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure"]},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"setup":{"$ref":"#/components/schemas/SetupFingerprintInfo"}},"required":["platform","stack","setup"]},"SlackInstallUrlResponse":{"type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"]},"SlackIntegrationStatus":{"type":"object","properties":{"connected":{"type":"boolean"},"slackTeamId":{"type":"string","nullable":true},"slackTeamName":{"type":"string","nullable":true},"installedByUserId":{"type":"string","nullable":true},"installedAt":{"type":"string","nullable":true},"notificationChannelId":{"type":"string","nullable":true}},"required":["connected","slackTeamId","slackTeamName","installedByUserId","installedAt","notificationChannelId"]},"SlackChannelsResponse":{"type":"object","properties":{"channels":{"type":"array","items":{"$ref":"#/components/schemas/SlackChannel"}}},"required":["channels"]},"SlackChannel":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"isMember":{"type":"boolean"}},"required":["id","name","isMember"]},"SlackNotificationChannelResponse":{"type":"object","properties":{"notificationChannelId":{"type":"string","nullable":true},"warning":{"type":"string","nullable":true}},"required":["notificationChannelId","warning"]},"SlackNotificationChannelRequest":{"type":"object","properties":{"channelId":{"type":"string","nullable":true}},"required":["channelId"]},"AgentSessionListResponse":{"type":"object","properties":{"sessions":{"type":"array","items":{"$ref":"#/components/schemas/AgentSessionListItem"}}},"required":["sessions"]},"AgentSessionListItem":{"type":"object","properties":{"id":{"type":"string"},"triggerType":{"type":"string"},"subjectId":{"type":"string"},"subject":{"$ref":"#/components/schemas/AgentSessionSubject"},"status":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","triggerType","subjectId","subject","status","createdAt","updatedAt"]},"AgentSessionSubject":{"type":"object","properties":{"deploymentName":{"type":"string","nullable":true},"deploymentGroupId":{"type":"string","nullable":true},"deploymentGroupName":{"type":"string","nullable":true},"releaseId":{"type":"string","nullable":true},"releaseCommitMessage":{"type":"string","nullable":true},"releaseCommitRef":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"projectName":{"type":"string","nullable":true}},"required":["deploymentName","deploymentGroupId","deploymentGroupName","releaseId","releaseCommitMessage","releaseCommitRef","projectId","projectName"]},"AgentSessionDetail":{"allOf":[{"$ref":"#/components/schemas/AgentSessionListItem"},{"type":"object","properties":{"resultText":{"type":"string","nullable":true},"toolNames":{"type":"array","nullable":true,"items":{"type":"string"}},"error":{"type":"string","nullable":true},"pendingApproval":{"type":"object","nullable":true,"properties":{"approvalId":{"type":"string"},"toolCallId":{"type":"string"},"toolName":{"type":"string"},"input":{"nullable":true}},"required":["approvalId","toolCallId","toolName"]}},"required":["resultText","toolNames","error","pendingApproval"]}]},"AgentSessionEventsResponse":{"type":"object","properties":{"events":{"type":"array","items":{"$ref":"#/components/schemas/AgentSessionEvent"}},"latestSeq":{"type":"number"},"hasMore":{"type":"boolean"}},"required":["events","latestSeq","hasMore"]},"AgentSessionEvent":{"oneOf":[{"$ref":"#/components/schemas/AgentSessionStatusEvent"},{"$ref":"#/components/schemas/AgentSessionStepEvent"},{"$ref":"#/components/schemas/AgentSessionToolCallEvent"},{"$ref":"#/components/schemas/AgentSessionToolResultEvent"},{"$ref":"#/components/schemas/AgentSessionMarkdownEvent"},{"$ref":"#/components/schemas/AgentSessionApprovalRequestedEvent"},{"$ref":"#/components/schemas/AgentSessionApprovalGrantedEvent"},{"$ref":"#/components/schemas/AgentSessionRestartedEvent"},{"$ref":"#/components/schemas/AgentSessionEventsTruncatedEvent"}],"discriminator":{"propertyName":"type","mapping":{"status":"#/components/schemas/AgentSessionStatusEvent","step":"#/components/schemas/AgentSessionStepEvent","tool_call":"#/components/schemas/AgentSessionToolCallEvent","tool_result":"#/components/schemas/AgentSessionToolResultEvent","markdown":"#/components/schemas/AgentSessionMarkdownEvent","approval_requested":"#/components/schemas/AgentSessionApprovalRequestedEvent","approval_granted":"#/components/schemas/AgentSessionApprovalGrantedEvent","session_restarted":"#/components/schemas/AgentSessionRestartedEvent","events_truncated":"#/components/schemas/AgentSessionEventsTruncatedEvent"}}},"AgentSessionStatusEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["status"]},"payload":{"type":"object","properties":{"status":{"type":"string"},"error":{"type":"string"}},"required":["status"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionStepEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["step"]},"payload":{"type":"object","properties":{"stepId":{"type":"string"},"title":{"type":"string"},"status":{"type":"string","enum":["in_progress","complete","error"]}},"required":["stepId","title","status"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionToolCallEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["tool_call"]},"payload":{"type":"object","properties":{"toolCallId":{"type":"string"},"toolName":{"type":"string"},"input":{"nullable":true}},"required":["toolCallId","toolName"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionToolResultEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["tool_result"]},"payload":{"type":"object","properties":{"toolCallId":{"type":"string","nullable":true},"toolName":{"type":"string","nullable":true},"ok":{"type":"boolean"},"output":{"nullable":true}},"required":["toolCallId","toolName","ok"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionMarkdownEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["markdown"]},"payload":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionApprovalRequestedEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["approval_requested"]},"payload":{"type":"object","properties":{"approvalId":{"type":"string"},"toolCallId":{"type":"string"},"toolName":{"type":"string"},"input":{"nullable":true}},"required":["approvalId","toolCallId","toolName"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionApprovalGrantedEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["approval_granted"]},"payload":{"type":"object","properties":{"approvalId":{"type":"string"},"approvedByUserId":{"type":"string"},"approvedByName":{"type":"string","nullable":true},"source":{"type":"string","enum":["dashboard","slack"]}},"required":["approvalId","approvedByUserId","approvedByName","source"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionRestartedEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["session_restarted"]},"payload":{"type":"object","properties":{"reason":{"type":"string"}},"required":["reason"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionEventsTruncatedEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["events_truncated"]},"payload":{"type":"object","properties":{"limit":{"type":"number"}},"required":["limit"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionApproveResponse":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string"},"resumed":{"type":"boolean"}},"required":["jobId","status","resumed"]},"AgentSessionStopResponse":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string"},"canceled":{"type":"boolean"}},"required":["jobId","status","canceled"]},"SyncListResponse":{"type":"object","properties":{"deployments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!ag[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment name.","example":"acme-prod"},"publicSubdomain":{"type":"string","nullable":true,"minLength":1,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","description":"Public subdomain for auto-generated domains"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"basePlatform":{"type":"string","nullable":true,"enum":["aws","gcp","azure",null],"description":"Underlying cloud platform for Kubernetes deployments."},"region":{"type":"string","nullable":true,"description":"Cloud region or location for the deployment."},"deploymentProtocolVersion":{"$ref":"#/components/schemas/DeploymentProtocolVersion"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"ID of deployment group this deployment belongs to","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-provided configuration (network, deployment model, approvals)"},"stackState":{"type":"object","nullable":true,"properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"State of infrastructure components managed by this deployment"},"runtimeMetadata":{"type":"object","nullable":true,"properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment state persistence"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the currently deployed release (actual state)","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the desired release for deployment/update (desired state)","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"releaseChannel":{"allOf":[{"$ref":"#/components/schemas/ReleaseChannelName"},{"description":"Named release stream followed when the deployment is not pinned"}]},"importSource":{"type":"string","nullable":true,"enum":["cloudformation","terraform","helm",null],"description":"Setup source that imported this deployment"},"setupMethod":{"type":"string","nullable":true,"enum":["cloudformation","google-oauth","terraform","helm","cli","manual",null],"description":"Setup method that created the deployment record and owns setup-time resources."},"setupMetadata":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Setup method metadata needed to guide privileged teardown."},"setupTarget":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup target for compatibility checks"},"setupFingerprint":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup compatibility fingerprint"},"setupFingerprintVersion":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Imported setup fingerprint algorithm version"},"operatorScope":{"type":"string","nullable":true,"description":"Display-only scope reported by the Operator manifest"},"operatorPermission":{"type":"string","nullable":true,"description":"Display-only permission tier reported by the Operator manifest"},"operatorVersion":{"type":"string","nullable":true,"description":"Version reported by the Operator"},"capabilities":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OperatorCapabilityReport"},"description":"Capability state reported by the Operator"},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat from the deployment"},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Latest error information if the deployment is in a failed state"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"ID of the manager responsible for this deployment"}]},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"userEnvironmentVariables":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"}},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}],"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."},"deploymentToken":{"type":"string","nullable":true},"lockedBy":{"type":"string","nullable":true},"lockedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["id","name","status","projectId","platform","deploymentProtocolVersion","deploymentGroupId","stackSettings","releaseChannel","retryRequested","createdAt","updatedAt","managerId","workspaceId","userEnvironmentVariables"]}}},"required":["deployments"],"description":"Full deployment records for manager operation"},"SyncListRequest":{"type":"object","properties":{"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Manager requesting the deployments. Manager-scoped tokens are always constrained to their own manager ID."}]},"deploymentIds":{"type":"array","items":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"description":"Specific deployment IDs to include"},"statuses":{"type":"array","items":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"description":"Filter by deployment status"},"platforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Filter by deployment platform"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Filter by deployment group ID","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"limit":{"type":"integer","minimum":1,"maximum":500,"description":"Maximum records to return"}},"additionalProperties":false,"description":"Request to list full operational deployments"},"SyncAcquireResponseDeployment":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"ID of the deployment","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"projectId":{"type":"string","description":"Project ID the deployment belongs to"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Deployment group ID the deployment belongs to","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"setupMethod":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMethod"},{"description":"Setup method recorded on the deployment when it has a setup-owned path."}]},"current":{"type":"object","properties":{"currentRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}]},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"protocolVersion":{"type":"integer","minimum":0,"description":"Protocol version for cross-actor compatibility.\nAll actors (manager, push client, agent) check this before stepping.\nMismatched versions produce a clear error instead of silent corruption.\nSee docs/02-manager/10-deployment-protocol.md."},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment\nWhen true and status is a failed state, the deployment system will retry failed resources"},"runtimeMetadata":{"oneOf":[{"type":"object","properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment\n\nStores deployment state that needs to persist across step calls."},{"nullable":true}]},"stackState":{"oneOf":[{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"Represents the collective state of all resources in a stack, including platform and pending actions."},{"nullable":true}]},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"targetRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]}},"required":["platform","protocolVersion","status"],"description":"Current deployment state (includes releases)"},"config":{"type":"object","properties":{"allowFrozenChanges":{"type":"boolean","description":"Allow frozen resource changes during updates\nWhen true, skips the frozen resources compatibility check.\nThis requires running with elevated cloud credentials."},"basePlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"computeBackend":{"oneOf":[{"allOf":[{"type":"object","properties":{"clusters":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"clusterId":{"type":"string","description":"Cluster ID (deterministic: workspace/project/deployment/resourceid)"},"managementToken":{"type":"string","description":"Management token for API access (hm_...)\nUsed by alien-deployment controllers to create/update containers"}},"required":["clusterId","managementToken"],"description":"Configuration for a single container worker cluster.\n\nContains the cluster ID and management token needed to interact with\nthe managed container control plane API for container operations."},"description":"Cluster configurations (one per ComputeCluster resource)\nKey: ComputeCluster resource ID from stack\nValue: Cluster ID and management token for that cluster"},"horizonMachineImage":{"oneOf":[{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"amis":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"AMI IDs by architecture, then AWS region."}},"required":["amis"],"description":"AWS Horizon machine image catalog."},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"images":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"imageVersionId":{"type":"string","description":"Azure Compute Gallery image version ID."}},"required":["imageVersionId"],"description":"Azure Horizon machine image entry."},"description":"Images by architecture."}},"required":["images"],"description":"Azure Horizon machine image catalog."},{"nullable":true}]},"baseImage":{"type":"object","properties":{"name":{"type":"string","description":"Base OS image name."},"version":{"type":"string","description":"Base OS image version or channel."}},"required":["name","version"],"description":"Base image metadata for the Horizon machine image."},"channel":{"type":"string","description":"Logical image channel, such as prod, staging, or canary."},"createdAt":{"type":"string","description":"Image manifest creation timestamp."},"gcp":{"oneOf":[{"type":"object","properties":{"images":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sourceImage":{"type":"string","description":"Source image self link or image-family URL."}},"required":["sourceImage"],"description":"GCP Horizon machine image entry."},"description":"Images by architecture."}},"required":["images"],"description":"GCP Horizon machine image catalog."},{"nullable":true}]},"gitSha":{"type":"string","description":"Git commit SHA used to build the image."},"horizondArtifacts":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sha256":{"type":"string","description":"SHA-256 digest for the artifact payload."},"url":{"type":"string","description":"HTTPS URL for the artifact."}},"required":["sha256","url"],"description":"Download artifact for one horizond release platform."},"description":"Per-architecture horizond artifacts by release-platform key."},"horizondVersion":{"type":"string","description":"horizond daemon version baked into the image."},"machineImageVersion":{"type":"string","description":"Published immutable machine image version."}},"required":["baseImage","channel","createdAt","gitSha","horizondArtifacts","horizondVersion","machineImageVersion"],"description":"Horizon machine image catalog.\n\nPlatform resolves concrete provider images from this catalog during rollout."},{"nullable":true}]},"url":{"type":"string","description":"Horizon control-plane API base URL."}},"required":["clusters","url"],"description":"Horizon control-plane configuration for container orchestration.\n\nContains all the information needed for Alien to interact with managed\ncontainer clusters during deployment. Each ComputeCluster resource gets its own\nentry in the clusters map."},{"type":"object","properties":{"type":{"type":"string","enum":["horizon"]}},"required":["type"]}],"description":"Compute backend for Container and Worker resources.\n\nDetermines how compute workloads are orchestrated on cloud platforms.\nWhen None, the platform default is used for cloud platforms."},{"nullable":true}]},"deploymentName":{"type":"string","nullable":true,"description":"Human-readable deployment name for cloud console metadata.\n\nThis is separate from the physical resource prefix in StackState. It is\nused only for display text such as IAM role descriptions, service\naccount descriptions, and custom role titles."},"deploymentToken":{"type":"string","nullable":true,"description":"Deployment token for pull authentication with the manager's registry.\n\nUsed by controllers to configure registry credentials so cloud platforms\nand K8s can pull images from the manager's `/v2/` endpoint."},"domainMetadata":{"oneOf":[{"type":"object","properties":{"baseDomain":{"type":"string","description":"Base domain for auto-generated domains (e.g., \"vpc.direct\")."},"hostedZoneId":{"type":"string","description":"Hosted zone ID for DNS records."},"publicSubdomain":{"type":"string","description":"Deployment public subdomain (e.g., \"k8f2j3\")."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"aliases":{"type":"array","items":{"type":"object","properties":{"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message. Present when DNS previously failed, even if status\nwas reset to pending for retry. Used to surface actionable error context\nin WaitingForDns failure messages."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a managed hostname.\n\nIncludes decrypted certificate data for issued certificates.\nPrivate keys are deployment-scoped secrets (like environment variables)."},"description":"Additional managed hostnames for the resource."},"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"endpoints":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message. Present when DNS previously failed, even if status\nwas reset to pending for retry. Used to surface actionable error context\nin WaitingForDns failure messages."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a managed hostname.\n\nIncludes decrypted certificate data for issued certificates.\nPrivate keys are deployment-scoped secrets (like environment variables)."},"description":"Endpoint-scoped metadata keyed by endpoint name."},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a public resource.\n\nThe direct fields describe the primary endpoint hostname. `endpoints`\ncontains endpoint-scoped metadata keyed by endpoint name. `aliases` contains\nadditional managed hostnames that route directly to the primary endpoint."},"description":"Metadata per resource ID."}},"required":["baseDomain","hostedZoneId","publicSubdomain","resources"],"description":"Domain metadata for auto-managed public resources (no private keys)."},{"nullable":true}]},"environmentVariables":{"type":"object","properties":{"createdAt":{"type":"string","description":"ISO 8601 timestamp when snapshot was created"},"hash":{"type":"string","description":"Deterministic hash of all variables (for change detection)"},"variables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Variable name"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource patterns (null = all resources, Some = wildcard patterns)"},"type":{"type":"string","enum":["plain","secret"],"description":"Type of environment variable"},"value":{"type":"string","description":"Variable value (decrypted - deployment has access to decryption keys)"}},"required":["name","type","value"],"description":"Environment variable for deployment"},"description":"Environment variables in the snapshot"}},"required":["createdAt","hash","variables"],"description":"Snapshot of environment variables at a point in time"},"externalBindings":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"bucketName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS S3 storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["s3"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"containerName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Blob Storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["blob"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"bucketName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Google Cloud Storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["gcs"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"storagePath":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local filesystem storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["local-storage"]}},"required":["service"]}]}],"description":"Service-type based storage binding that supports multiple storage providers"},{"type":"object","properties":{"type":{"type":"string","enum":["storage"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"queueUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS SQS queue parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["sqs"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"subscription":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"topic":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Pub/Sub parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["pubsub"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"queueName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Service Bus parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["servicebus"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"queuePath":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local queue parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["local-queue"]}},"required":["service"]}]}],"description":"Binding parameters for Queue at runtime or in templates."},{"type":"object","properties":{"type":{"type":"string","enum":["queue"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"endpointUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"region":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"tableName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS DynamoDB KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["dynamodb"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"collectionName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"databaseId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"projectId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Firestore KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["firestore"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"tableName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Table Storage KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["tablestorage"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"connectionUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"database":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"keyPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Redis KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["redis"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"keyPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Local development KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["local-kv"]}},"required":["service"]}]}],"description":"Represents a KV binding for key-value storage across platforms"},{"type":"object","properties":{"type":{"type":"string","enum":["kv"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"pullRoleArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"pushRoleArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"repositoryPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS ECR (Elastic Container Registry) binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["ecr"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"registryName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"repositoryPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Container Registry binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["acr"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"pullServiceAccountEmail":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"pushServiceAccountEmail":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"repositoryName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Google Artifact Registry binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["gar"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"type":"string"},{"nullable":true},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"registryUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local container registry binding configuration.\n\nThe local registry runs on localhost only and does not require authentication.\nSecurity boundary is the OS process isolation on the customer's machine.\nExternal image access is secured by the manager's registry proxy (deployment tokens)."},{"type":"object","properties":{"service":{"type":"string","enum":["local"]}},"required":["service"]}]}],"description":"Service-type based artifact registry binding that supports multiple registry providers"},{"type":"object","properties":{"type":{"type":"string","enum":["artifact_registry"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS SSM Parameter Store vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["parameter-store"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Secret Manager vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["secret-manager"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"vaultName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Key Vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["key-vault"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Kubernetes Secrets vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["kubernetes-secret"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"vaultName":{"type":"string","description":"The vault name for local storage"}},"required":["vaultName"],"description":"Local development vault binding (for testing/development)"},{"type":"object","properties":{"service":{"type":"string","enum":["local-vault"]}},"required":["service"]}]}],"description":"Represents a vault binding for secure secret management"},{"type":"object","properties":{"type":{"type":"string","enum":["vault"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"defaultDomain":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"environmentName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"staticIp":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Binding configuration for a pre-existing Azure Container Apps Environment.\n\nUsed when deploying to an existing environment instead of having Alien provision one.\nThis is useful for shared environments (e.g., test infrastructure) or enterprise\nsetups where environments are managed by a separate team."},{"type":"object","properties":{"type":{"type":"string","enum":["container_apps_environment"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"clusterEndpoint":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS Aurora Serverless v2 binding."},{"type":"object","properties":{"service":{"type":"string","enum":["aurora"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"serverCaCertificates":{"oneOf":[{"type":"array","items":{"type":"string"}},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Cloud SQL binding."},{"type":"object","properties":{"service":{"type":"string","enum":["cloud-sql"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretUri":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Flexible Server binding."},{"type":"object","properties":{"service":{"type":"string","enum":["flexible-server"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"password":{"type":"string","description":"Connection password as a concrete value, never an unresolved `SecretRef`: the platform\nmaterializes the Kubernetes secret into the pod env. The cloud variants carry a secret\nlocator instead."},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"sslMode":{"type":"string","enum":["verify-full","disable"],"description":"TLS policy for an operator-provided / BYO Postgres database.\n\nUnlike libpq's ambiguous `prefer` mode, both choices map exactly to the\nconnection settings exposed by every supported SDK."},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"required":["password"],"description":"Operator-provided / BYO database binding."},{"type":"object","properties":{"service":{"type":"string","enum":["external"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"password":{"type":"string"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"required":["password"],"description":"Local embedded Postgres binding."},{"type":"object","properties":{"service":{"type":"string","enum":["local-postgres"]}},"required":["service"]}]}],"description":"Connection details for a Postgres database, one variant per backend."},{"type":"object","properties":{"type":{"type":"string","enum":["postgres"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"apiKey":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"provider":{"type":"string","description":"The external AI provider name (e.g., \"openai\", \"anthropic\")"}},"required":["provider"],"description":"External AI provider binding configuration (BYO-key).\n\nThe operator-supplied secret rides inside the binding via\n`BindingValue`, so it is a literal on cloud platforms and gains\nKubernetes SecretRef resolution for free (`extract_binding_secrets` walks\nthe binding JSON for `secretRef`)."},{"type":"object","properties":{"type":{"type":"string","enum":["ai"]}},"required":["type"]}]}],"description":"Represents a binding to pre-existing infrastructure.\n\nThe binding type must match the resource type it's applied to.\nValidated at runtime by the executor."},"description":"Map from resource ID to external binding.\n\nValidated at runtime: binding type must match resource type."},"inputValues":{"type":"object","properties":{},"additionalProperties":{"nullable":true},"description":"Deployer-provided stack input values, keyed by input id. A resource\ngated with `.enabled(input)` and a Live lifecycle follows these\nvalues; a missing key falls back to the input's declared boolean\ndefault. Suppliers must not place secret-kind input values here:\nthis map serializes and debug-prints unredacted."},"labelDomain":{"type":"string","nullable":true,"description":"DNS-style label domain used for Kubernetes resource ownership labels.\n\nDefaults to `alien.dev` when absent. Whitelabeled Operator builds set this\nso generated workloads and optional log collectors share the same label\nnamespace."},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}]},"managerUrl":{"type":"string","nullable":true,"description":"Manager base URL (e.g., \"https://manager.alien.dev\").\n\nThe manager IS the container registry — its `/v2/` endpoint serves as\nthe OCI Distribution API. Controllers derive the proxy host from this\nto configure pull auth (RegistryCredentials, imagePullSecrets).\n\nWhen None (e.g., `alien dev`), controllers use image URIs as-is."},"monitoring":{"oneOf":[{"type":"object","properties":{"logsAuthHeader":{"type":"string","description":"Auth header value in \"key=value,...\" format.\nExample: \"authorization=Bearer \""},"logsEndpoint":{"type":"string","description":"Full OTLP logs endpoint URL.\nExample: \"https:///v1/logs\""},"metricsAuthHeader":{"type":"string","nullable":true,"description":"Auth header value for the metrics endpoint in \"key=value,...\" format (optional).\n\nWhen absent, `logs_auth_header` is reused for metrics -- suitable when the same\ncredential covers both signals. When present (e.g. Axiom with separate datasets),\nthis value is used exclusively for metrics.\n\nExample: \"authorization=Bearer ,x-axiom-dataset=\""},"metricsEndpoint":{"type":"string","nullable":true,"description":"Full OTLP metrics endpoint URL (optional).\nWhen set, the worker runtime exports its own VM/container orchestration metrics here.\nExample: \"https://api.axiom.co/v1/metrics\""},"resourceAttributes":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Resource attributes attached to every OTLP signal emitted for this deployment.\n\nPlatform managers use this for stable identity such as `alien.workspace_id`,\n`alien.project_id`, `alien.deployment_group_id`, and `alien.deployment_id`.\nRuntime-specific resource attributes such as `service.name` remain owned by\nthe runtime/exporter."}},"required":["logsAuthHeader","logsEndpoint"],"description":"OTLP log export configuration for a deployment.\n\nWhen set, injected compute runtimes export captured application logs\nthrough the given endpoint via OTLP/HTTP; which resources are injected\nis platform-dependent. Workers read auth headers from a runtime-only\nsecret. Runtime-less Containers and Daemons receive standard OTEL auth\nvariables only at the final hosting boundary: Local passes them directly\nto the process and Kubernetes projects them from a per-workload Secret."},{"nullable":true}]},"nativeImageHost":{"type":"string","nullable":true,"description":"Native image registry host+prefix for platforms that require it.\n\nLambda (ECR) and Cloud Run (GAR) require native registry URIs. Other\nruntimes, including Azure Container Apps, pull through the manager's\nregistry proxy.\n\nDerived by the manager from the artifact registry binding:\n- ECR: `{account_id}.dkr.ecr.{region}.amazonaws.com/{repository_prefix}`\n- GAR: `{region}-docker.pkg.dev/{project_id}/{repository_name}`"},"observeAllNamespaces":{"type":"boolean","description":"When true the observe pass reports raw resources across every namespace\n(cluster scope); otherwise it stays within the operator's own namespace.\nThe label selector, if any, still filters within whichever scope applies.\nIgnored by cloud observers."},"observeLabelSelector":{"type":"string","nullable":true,"description":"Kubernetes label selector that narrows which raw resources the observe\npass reports (e.g. `app.kubernetes.io/part-of=my-app`). `None` observes\neverything in the namespace. Ignored by cloud observers."},"publicEndpoints":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Public endpoint URLs for exposed resources (optional override).\n\nUse this only when a caller already knows the public URL. Managed public\nendpoint flows should prefer `domain_metadata` plus controller-reported\nload balancer outputs so DNS, certificate renewal, and route readiness\nstay tied to the resource state.\n\nIf not set, platforms determine public endpoint URLs from other sources:\n- Managed DNS/TLS flows: `domain_metadata` FQDN or load balancer DNS\n- Local: `http://localhost:{allocated_port}`\n- Custom or disabled exposure: no public endpoint URL unless a controller reports one\n\nOuter key: resource ID. Inner key: endpoint name. Value: public URL."},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["environmentVariables"],"description":"Deployment configuration"}},"required":["deploymentId","projectId","deploymentGroupId","current","config"]},"SyncContextRequest":{"type":"object","properties":{"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Manager requesting the context. Manager-scoped tokens are constrained to their own manager ID."}]},"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"}},"required":["deploymentId"],"additionalProperties":false},"SyncAcquireResponse":{"type":"object","properties":{"deployments":{"type":"array","items":{"$ref":"#/components/schemas/SyncAcquireResponseDeployment"},"description":"List of acquired deployments with deployment context"},"failures":{"type":"array","items":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"ID of the deployment that failed","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"projectId":{"type":"string","description":"Project ID the deployment belongs to"},"error":{"allOf":[{"$ref":"#/components/schemas/APIError"},{"description":"Error that occurred during context building"}]}},"required":["deploymentId","projectId","error"]},"description":"List of deployments that failed during context building (locks already released)"},"leaseExpiresAt":{"type":"string","nullable":true,"format":"date-time","description":"When the provisional leases on the returned deployments lapse. Confirm them with sync/renew before starting work. Null when nothing was acquired."}},"required":["deployments","failures","leaseExpiresAt"],"description":"Acquired deployments and failures"},"SyncAcquireRequest":{"type":"object","properties":{"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Manager requesting the deployments. If omitted, resolved from each deployment's managerId column."}]},"session":{"type":"string","description":"Unique session identifier for lock tracking"},"requestId":{"type":"string","minLength":1,"description":"Idempotency key for one logical acquire request"},"deploymentIds":{"type":"array","items":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"description":"Specific deployment IDs to lock (for Pull model sync)"},"statuses":{"type":"array","items":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"description":"Filter by deployment statuses (default: all deployment statuses)"},"platforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Filter by platforms (default: all platforms the Manager supports)"},"setupMethod":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMethod"},{"description":"Filter by setup method for setup-owned acquisition paths"}]},"acquireMode":{"type":"string","enum":["runtime","setup-run","setup-teardown"],"description":"Phase ownership mode for deployment acquisition"},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Filter by deployment model from stackSettings.deploymentModel."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum number of deployments to acquire (default: 10)"}},"required":["session","requestId","deploymentModel"],"additionalProperties":false,"description":"Request to acquire deployments for processing"},"SyncReconcileResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the state was reconciled"},"current":{"type":"object","properties":{"currentRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}]},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"protocolVersion":{"type":"integer","minimum":0,"description":"Protocol version for cross-actor compatibility.\nAll actors (manager, push client, agent) check this before stepping.\nMismatched versions produce a clear error instead of silent corruption.\nSee docs/02-manager/10-deployment-protocol.md."},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment\nWhen true and status is a failed state, the deployment system will retry failed resources"},"runtimeMetadata":{"oneOf":[{"type":"object","properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment\n\nStores deployment state that needs to persist across step calls."},{"nullable":true}]},"stackState":{"oneOf":[{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"Represents the collective state of all resources in a stack, including platform and pending actions."},{"nullable":true}]},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"targetRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]}},"required":["platform","protocolVersion","status"],"description":"Current deployment state after reconciliation"},"target":{"type":"object","properties":{"config":{"type":"object","properties":{"allowFrozenChanges":{"type":"boolean","description":"Allow frozen resource changes during updates\nWhen true, skips the frozen resources compatibility check.\nThis requires running with elevated cloud credentials."},"basePlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"computeBackend":{"oneOf":[{"allOf":[{"type":"object","properties":{"clusters":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"clusterId":{"type":"string","description":"Cluster ID (deterministic: workspace/project/deployment/resourceid)"},"managementToken":{"type":"string","description":"Management token for API access (hm_...)\nUsed by alien-deployment controllers to create/update containers"}},"required":["clusterId","managementToken"],"description":"Configuration for a single container worker cluster.\n\nContains the cluster ID and management token needed to interact with\nthe managed container control plane API for container operations."},"description":"Cluster configurations (one per ComputeCluster resource)\nKey: ComputeCluster resource ID from stack\nValue: Cluster ID and management token for that cluster"},"horizonMachineImage":{"oneOf":[{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"amis":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"AMI IDs by architecture, then AWS region."}},"required":["amis"],"description":"AWS Horizon machine image catalog."},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"images":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"imageVersionId":{"type":"string","description":"Azure Compute Gallery image version ID."}},"required":["imageVersionId"],"description":"Azure Horizon machine image entry."},"description":"Images by architecture."}},"required":["images"],"description":"Azure Horizon machine image catalog."},{"nullable":true}]},"baseImage":{"type":"object","properties":{"name":{"type":"string","description":"Base OS image name."},"version":{"type":"string","description":"Base OS image version or channel."}},"required":["name","version"],"description":"Base image metadata for the Horizon machine image."},"channel":{"type":"string","description":"Logical image channel, such as prod, staging, or canary."},"createdAt":{"type":"string","description":"Image manifest creation timestamp."},"gcp":{"oneOf":[{"type":"object","properties":{"images":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sourceImage":{"type":"string","description":"Source image self link or image-family URL."}},"required":["sourceImage"],"description":"GCP Horizon machine image entry."},"description":"Images by architecture."}},"required":["images"],"description":"GCP Horizon machine image catalog."},{"nullable":true}]},"gitSha":{"type":"string","description":"Git commit SHA used to build the image."},"horizondArtifacts":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sha256":{"type":"string","description":"SHA-256 digest for the artifact payload."},"url":{"type":"string","description":"HTTPS URL for the artifact."}},"required":["sha256","url"],"description":"Download artifact for one horizond release platform."},"description":"Per-architecture horizond artifacts by release-platform key."},"horizondVersion":{"type":"string","description":"horizond daemon version baked into the image."},"machineImageVersion":{"type":"string","description":"Published immutable machine image version."}},"required":["baseImage","channel","createdAt","gitSha","horizondArtifacts","horizondVersion","machineImageVersion"],"description":"Horizon machine image catalog.\n\nPlatform resolves concrete provider images from this catalog during rollout."},{"nullable":true}]},"url":{"type":"string","description":"Horizon control-plane API base URL."}},"required":["clusters","url"],"description":"Horizon control-plane configuration for container orchestration.\n\nContains all the information needed for Alien to interact with managed\ncontainer clusters during deployment. Each ComputeCluster resource gets its own\nentry in the clusters map."},{"type":"object","properties":{"type":{"type":"string","enum":["horizon"]}},"required":["type"]}],"description":"Compute backend for Container and Worker resources.\n\nDetermines how compute workloads are orchestrated on cloud platforms.\nWhen None, the platform default is used for cloud platforms."},{"nullable":true}]},"deploymentName":{"type":"string","nullable":true,"description":"Human-readable deployment name for cloud console metadata.\n\nThis is separate from the physical resource prefix in StackState. It is\nused only for display text such as IAM role descriptions, service\naccount descriptions, and custom role titles."},"deploymentToken":{"type":"string","nullable":true,"description":"Deployment token for pull authentication with the manager's registry.\n\nUsed by controllers to configure registry credentials so cloud platforms\nand K8s can pull images from the manager's `/v2/` endpoint."},"domainMetadata":{"oneOf":[{"type":"object","properties":{"baseDomain":{"type":"string","description":"Base domain for auto-generated domains (e.g., \"vpc.direct\")."},"hostedZoneId":{"type":"string","description":"Hosted zone ID for DNS records."},"publicSubdomain":{"type":"string","description":"Deployment public subdomain (e.g., \"k8f2j3\")."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"aliases":{"type":"array","items":{"type":"object","properties":{"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message. Present when DNS previously failed, even if status\nwas reset to pending for retry. Used to surface actionable error context\nin WaitingForDns failure messages."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a managed hostname.\n\nIncludes decrypted certificate data for issued certificates.\nPrivate keys are deployment-scoped secrets (like environment variables)."},"description":"Additional managed hostnames for the resource."},"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"endpoints":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message. Present when DNS previously failed, even if status\nwas reset to pending for retry. Used to surface actionable error context\nin WaitingForDns failure messages."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a managed hostname.\n\nIncludes decrypted certificate data for issued certificates.\nPrivate keys are deployment-scoped secrets (like environment variables)."},"description":"Endpoint-scoped metadata keyed by endpoint name."},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a public resource.\n\nThe direct fields describe the primary endpoint hostname. `endpoints`\ncontains endpoint-scoped metadata keyed by endpoint name. `aliases` contains\nadditional managed hostnames that route directly to the primary endpoint."},"description":"Metadata per resource ID."}},"required":["baseDomain","hostedZoneId","publicSubdomain","resources"],"description":"Domain metadata for auto-managed public resources (no private keys)."},{"nullable":true}]},"environmentVariables":{"type":"object","properties":{"createdAt":{"type":"string","description":"ISO 8601 timestamp when snapshot was created"},"hash":{"type":"string","description":"Deterministic hash of all variables (for change detection)"},"variables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Variable name"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource patterns (null = all resources, Some = wildcard patterns)"},"type":{"type":"string","enum":["plain","secret"],"description":"Type of environment variable"},"value":{"type":"string","description":"Variable value (decrypted - deployment has access to decryption keys)"}},"required":["name","type","value"],"description":"Environment variable for deployment"},"description":"Environment variables in the snapshot"}},"required":["createdAt","hash","variables"],"description":"Snapshot of environment variables at a point in time"},"externalBindings":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"bucketName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS S3 storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["s3"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"containerName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Blob Storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["blob"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"bucketName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Google Cloud Storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["gcs"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"storagePath":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local filesystem storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["local-storage"]}},"required":["service"]}]}],"description":"Service-type based storage binding that supports multiple storage providers"},{"type":"object","properties":{"type":{"type":"string","enum":["storage"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"queueUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS SQS queue parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["sqs"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"subscription":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"topic":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Pub/Sub parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["pubsub"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"queueName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Service Bus parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["servicebus"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"queuePath":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local queue parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["local-queue"]}},"required":["service"]}]}],"description":"Binding parameters for Queue at runtime or in templates."},{"type":"object","properties":{"type":{"type":"string","enum":["queue"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"endpointUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"region":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"tableName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS DynamoDB KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["dynamodb"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"collectionName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"databaseId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"projectId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Firestore KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["firestore"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"tableName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Table Storage KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["tablestorage"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"connectionUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"database":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"keyPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Redis KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["redis"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"keyPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Local development KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["local-kv"]}},"required":["service"]}]}],"description":"Represents a KV binding for key-value storage across platforms"},{"type":"object","properties":{"type":{"type":"string","enum":["kv"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"pullRoleArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"pushRoleArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"repositoryPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS ECR (Elastic Container Registry) binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["ecr"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"registryName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"repositoryPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Container Registry binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["acr"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"pullServiceAccountEmail":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"pushServiceAccountEmail":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"repositoryName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Google Artifact Registry binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["gar"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"type":"string"},{"nullable":true},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"registryUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local container registry binding configuration.\n\nThe local registry runs on localhost only and does not require authentication.\nSecurity boundary is the OS process isolation on the customer's machine.\nExternal image access is secured by the manager's registry proxy (deployment tokens)."},{"type":"object","properties":{"service":{"type":"string","enum":["local"]}},"required":["service"]}]}],"description":"Service-type based artifact registry binding that supports multiple registry providers"},{"type":"object","properties":{"type":{"type":"string","enum":["artifact_registry"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS SSM Parameter Store vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["parameter-store"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Secret Manager vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["secret-manager"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"vaultName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Key Vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["key-vault"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Kubernetes Secrets vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["kubernetes-secret"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"vaultName":{"type":"string","description":"The vault name for local storage"}},"required":["vaultName"],"description":"Local development vault binding (for testing/development)"},{"type":"object","properties":{"service":{"type":"string","enum":["local-vault"]}},"required":["service"]}]}],"description":"Represents a vault binding for secure secret management"},{"type":"object","properties":{"type":{"type":"string","enum":["vault"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"defaultDomain":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"environmentName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"staticIp":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Binding configuration for a pre-existing Azure Container Apps Environment.\n\nUsed when deploying to an existing environment instead of having Alien provision one.\nThis is useful for shared environments (e.g., test infrastructure) or enterprise\nsetups where environments are managed by a separate team."},{"type":"object","properties":{"type":{"type":"string","enum":["container_apps_environment"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"clusterEndpoint":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS Aurora Serverless v2 binding."},{"type":"object","properties":{"service":{"type":"string","enum":["aurora"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"serverCaCertificates":{"oneOf":[{"type":"array","items":{"type":"string"}},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Cloud SQL binding."},{"type":"object","properties":{"service":{"type":"string","enum":["cloud-sql"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretUri":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Flexible Server binding."},{"type":"object","properties":{"service":{"type":"string","enum":["flexible-server"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"password":{"type":"string","description":"Connection password as a concrete value, never an unresolved `SecretRef`: the platform\nmaterializes the Kubernetes secret into the pod env. The cloud variants carry a secret\nlocator instead."},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"sslMode":{"type":"string","enum":["verify-full","disable"],"description":"TLS policy for an operator-provided / BYO Postgres database.\n\nUnlike libpq's ambiguous `prefer` mode, both choices map exactly to the\nconnection settings exposed by every supported SDK."},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"required":["password"],"description":"Operator-provided / BYO database binding."},{"type":"object","properties":{"service":{"type":"string","enum":["external"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"password":{"type":"string"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"required":["password"],"description":"Local embedded Postgres binding."},{"type":"object","properties":{"service":{"type":"string","enum":["local-postgres"]}},"required":["service"]}]}],"description":"Connection details for a Postgres database, one variant per backend."},{"type":"object","properties":{"type":{"type":"string","enum":["postgres"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"apiKey":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"provider":{"type":"string","description":"The external AI provider name (e.g., \"openai\", \"anthropic\")"}},"required":["provider"],"description":"External AI provider binding configuration (BYO-key).\n\nThe operator-supplied secret rides inside the binding via\n`BindingValue`, so it is a literal on cloud platforms and gains\nKubernetes SecretRef resolution for free (`extract_binding_secrets` walks\nthe binding JSON for `secretRef`)."},{"type":"object","properties":{"type":{"type":"string","enum":["ai"]}},"required":["type"]}]}],"description":"Represents a binding to pre-existing infrastructure.\n\nThe binding type must match the resource type it's applied to.\nValidated at runtime by the executor."},"description":"Map from resource ID to external binding.\n\nValidated at runtime: binding type must match resource type."},"inputValues":{"type":"object","properties":{},"additionalProperties":{"nullable":true},"description":"Deployer-provided stack input values, keyed by input id. A resource\ngated with `.enabled(input)` and a Live lifecycle follows these\nvalues; a missing key falls back to the input's declared boolean\ndefault. Suppliers must not place secret-kind input values here:\nthis map serializes and debug-prints unredacted."},"labelDomain":{"type":"string","nullable":true,"description":"DNS-style label domain used for Kubernetes resource ownership labels.\n\nDefaults to `alien.dev` when absent. Whitelabeled Operator builds set this\nso generated workloads and optional log collectors share the same label\nnamespace."},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}]},"managerUrl":{"type":"string","nullable":true,"description":"Manager base URL (e.g., \"https://manager.alien.dev\").\n\nThe manager IS the container registry — its `/v2/` endpoint serves as\nthe OCI Distribution API. Controllers derive the proxy host from this\nto configure pull auth (RegistryCredentials, imagePullSecrets).\n\nWhen None (e.g., `alien dev`), controllers use image URIs as-is."},"monitoring":{"oneOf":[{"type":"object","properties":{"logsAuthHeader":{"type":"string","description":"Auth header value in \"key=value,...\" format.\nExample: \"authorization=Bearer \""},"logsEndpoint":{"type":"string","description":"Full OTLP logs endpoint URL.\nExample: \"https:///v1/logs\""},"metricsAuthHeader":{"type":"string","nullable":true,"description":"Auth header value for the metrics endpoint in \"key=value,...\" format (optional).\n\nWhen absent, `logs_auth_header` is reused for metrics -- suitable when the same\ncredential covers both signals. When present (e.g. Axiom with separate datasets),\nthis value is used exclusively for metrics.\n\nExample: \"authorization=Bearer ,x-axiom-dataset=\""},"metricsEndpoint":{"type":"string","nullable":true,"description":"Full OTLP metrics endpoint URL (optional).\nWhen set, the worker runtime exports its own VM/container orchestration metrics here.\nExample: \"https://api.axiom.co/v1/metrics\""},"resourceAttributes":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Resource attributes attached to every OTLP signal emitted for this deployment.\n\nPlatform managers use this for stable identity such as `alien.workspace_id`,\n`alien.project_id`, `alien.deployment_group_id`, and `alien.deployment_id`.\nRuntime-specific resource attributes such as `service.name` remain owned by\nthe runtime/exporter."}},"required":["logsAuthHeader","logsEndpoint"],"description":"OTLP log export configuration for a deployment.\n\nWhen set, injected compute runtimes export captured application logs\nthrough the given endpoint via OTLP/HTTP; which resources are injected\nis platform-dependent. Workers read auth headers from a runtime-only\nsecret. Runtime-less Containers and Daemons receive standard OTEL auth\nvariables only at the final hosting boundary: Local passes them directly\nto the process and Kubernetes projects them from a per-workload Secret."},{"nullable":true}]},"nativeImageHost":{"type":"string","nullable":true,"description":"Native image registry host+prefix for platforms that require it.\n\nLambda (ECR) and Cloud Run (GAR) require native registry URIs. Other\nruntimes, including Azure Container Apps, pull through the manager's\nregistry proxy.\n\nDerived by the manager from the artifact registry binding:\n- ECR: `{account_id}.dkr.ecr.{region}.amazonaws.com/{repository_prefix}`\n- GAR: `{region}-docker.pkg.dev/{project_id}/{repository_name}`"},"observeAllNamespaces":{"type":"boolean","description":"When true the observe pass reports raw resources across every namespace\n(cluster scope); otherwise it stays within the operator's own namespace.\nThe label selector, if any, still filters within whichever scope applies.\nIgnored by cloud observers."},"observeLabelSelector":{"type":"string","nullable":true,"description":"Kubernetes label selector that narrows which raw resources the observe\npass reports (e.g. `app.kubernetes.io/part-of=my-app`). `None` observes\neverything in the namespace. Ignored by cloud observers."},"publicEndpoints":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Public endpoint URLs for exposed resources (optional override).\n\nUse this only when a caller already knows the public URL. Managed public\nendpoint flows should prefer `domain_metadata` plus controller-reported\nload balancer outputs so DNS, certificate renewal, and route readiness\nstay tied to the resource state.\n\nIf not set, platforms determine public endpoint URLs from other sources:\n- Managed DNS/TLS flows: `domain_metadata` FQDN or load balancer DNS\n- Local: `http://localhost:{allocated_port}`\n- Custom or disabled exposure: no public endpoint URL unless a controller reports one\n\nOuter key: resource ID. Inner key: endpoint name. Value: public URL."},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["environmentVariables"],"description":"Deployment configuration\n\nConfiguration for how to perform the deployment.\nNote: Credentials (ClientConfig) are passed separately to step() function."},"releaseInfo":{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."}},"required":["config","releaseInfo"],"description":"Target deployment if update is needed"}},"required":["success","current"],"description":"State reconciliation result with optional target"},"SyncReconcileRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Deployment ID to reconcile state for","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"session":{"type":"string","description":"Lock session (push model only) - verifies lock ownership"},"state":{"type":"object","properties":{"currentRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}]},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"protocolVersion":{"type":"integer","minimum":0,"description":"Protocol version for cross-actor compatibility.\nAll actors (manager, push client, agent) check this before stepping.\nMismatched versions produce a clear error instead of silent corruption.\nSee docs/02-manager/10-deployment-protocol.md."},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment\nWhen true and status is a failed state, the deployment system will retry failed resources"},"runtimeMetadata":{"oneOf":[{"type":"object","properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment\n\nStores deployment state that needs to persist across step calls."},{"nullable":true}]},"stackState":{"oneOf":[{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"Represents the collective state of all resources in a stack, including platform and pending actions."},{"nullable":true}]},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"targetRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]}},"required":["platform","protocolVersion","status"],"description":"Complete deployment state after step() execution"},"updateHeartbeat":{"type":"boolean","description":"Update heartbeat timestamp (for successful health checks)"},"suggestedDelayMs":{"type":"integer","minimum":0,"description":"Delay before this deployment should be acquired again."},"resourceHeartbeats":{"type":"array","items":{"type":"object","properties":{"backend":{"type":"string","enum":["aws","gcp","azure","kubernetes","local","managed","external","test"]},"controllerPlatform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"data":{"oneOf":[{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"blockPublicAcls":{"type":"boolean","nullable":true},"blockPublicPolicy":{"type":"boolean","nullable":true},"bucketAclPresent":{"type":"boolean","nullable":true},"bucketLocation":{"type":"string","nullable":true},"bucketPolicyPresent":{"type":"boolean","nullable":true},"encryptionConfigPresent":{"type":"boolean"},"encryptionEnabled":{"type":"boolean","nullable":true},"ignorePublicAcls":{"type":"boolean","nullable":true},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"publicAccessBlockPresent":{"type":"boolean"},"region":{"type":"string","nullable":true},"restrictPublicBuckets":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"versioningEnabled":{"type":"boolean","nullable":true},"versioningStatus":{"type":"string","nullable":true}},"required":["encryptionConfigPresent","lifecyclePresent","name","publicAccessBlockPresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsS3"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"bucketId":{"type":"string","nullable":true},"defaultKmsKeyName":{"type":"string","nullable":true},"encryptionConfigPresent":{"type":"boolean"},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":"integer","nullable":true,"minimum":0},"location":{"type":"string","nullable":true},"locationType":{"type":"string","nullable":true},"name":{"type":"string"},"publicAccessPrevention":{"type":"string","nullable":true},"retentionPeriod":{"type":"string","nullable":true},"retentionPolicyEffectiveTime":{"type":"string","nullable":true},"retentionPolicyIsLocked":{"type":"boolean","nullable":true},"softDeleteEffectiveTime":{"type":"string","nullable":true},"softDeleteRetentionDurationSeconds":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"storageClass":{"type":"string","nullable":true},"uniformBucketLevelAccessEnabled":{"type":"boolean","nullable":true},"uniformBucketLevelAccessLockedTime":{"type":"string","nullable":true},"versioningEnabled":{"type":"boolean","nullable":true}},"required":["encryptionConfigPresent","lifecyclePresent","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudStorage"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessTier":{"type":"string","nullable":true},"accountKind":{"type":"string","nullable":true},"allowBlobPublicAccess":{"type":"boolean","nullable":true},"blobDeleteRetentionDays":{"type":"integer","nullable":true,"minimum":0},"blobDeleteRetentionEnabled":{"type":"boolean","nullable":true},"blobEncryptionEnabled":{"type":"boolean","nullable":true},"blobVersioningEnabled":{"type":"boolean","nullable":true},"changeFeedEnabled":{"type":"boolean","nullable":true},"changeFeedRetentionDays":{"type":"integer","nullable":true,"minimum":0},"containerDeleteRetentionDays":{"type":"integer","nullable":true,"minimum":0},"containerDeleteRetentionEnabled":{"type":"boolean","nullable":true},"containerPublicAccess":{"type":"string","nullable":true},"encryptionKeySource":{"type":"string","nullable":true},"fileEncryptionEnabled":{"type":"boolean","nullable":true},"location":{"type":"string","nullable":true},"name":{"type":"string"},"primaryLocation":{"type":"string","nullable":true},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"queueEncryptionEnabled":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"secondaryLocation":{"type":"string","nullable":true},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"statusOfPrimary":{"type":"string","nullable":true},"statusOfSecondary":{"type":"string","nullable":true},"storageAccountName":{"type":"string","nullable":true},"tableEncryptionEnabled":{"type":"boolean","nullable":true}},"required":["name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureBlob"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"isDirectory":{"type":"boolean","nullable":true},"modifiedAt":{"type":"string","nullable":true,"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["path","pathExists","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["storage"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"codeSha256":{"type":"string","nullable":true},"functionName":{"type":"string"},"functionUrlAuthType":{"type":"string","nullable":true},"functionUrlCorsPresent":{"type":"boolean"},"lastModified":{"type":"string","nullable":true},"lastUpdateStatus":{"type":"string","nullable":true},"lastUpdateStatusReason":{"type":"string","nullable":true},"lastUpdateStatusReasonCode":{"type":"string","nullable":true},"layerCount":{"type":"integer","minimum":0},"memorySizeMb":{"type":"integer","nullable":true},"packageType":{"type":"string","nullable":true},"revisionId":{"type":"string","nullable":true},"runtime":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"stateReason":{"type":"string","nullable":true},"stateReasonCode":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"timeoutSeconds":{"type":"integer","nullable":true},"triggerCount":{"type":"integer","minimum":0},"version":{"type":"string","nullable":true}},"required":["functionName","functionUrlCorsPresent","layerCount","status","triggerCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsLambda"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"containerImage":{"type":"string","nullable":true},"cpuLimit":{"type":"string","nullable":true},"generation":{"type":"integer","nullable":true},"latestCreatedRevision":{"type":"string","nullable":true},"latestReadyRevision":{"type":"string","nullable":true},"maxInstanceCount":{"type":"integer","nullable":true},"memoryLimit":{"type":"string","nullable":true},"minInstanceCount":{"type":"integer","nullable":true},"observedGeneration":{"type":"integer","nullable":true},"region":{"type":"string","nullable":true},"service":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"trafficCount":{"type":"integer","minimum":0},"uri":{"type":"string","nullable":true},"urls":{"type":"array","items":{"type":"string"}}},"required":["service","status","trafficCount","urls"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudRun"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"appName":{"type":"string"},"cpu":{"type":"number","nullable":true},"environmentName":{"type":"string","nullable":true},"ingressFqdn":{"type":"string","nullable":true},"maxReplicas":{"type":"integer","nullable":true},"memory":{"type":"string","nullable":true},"minReplicas":{"type":"integer","nullable":true},"provisioningState":{"type":"string","nullable":true},"revision":{"type":"string","nullable":true},"runningStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["appName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerApps"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"triggerCount":{"type":"integer","minimum":0},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"]}},"required":["events","name","namespace","pods","replicas","status","triggerCount","workloadKind"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"imagePathPresent":{"type":"boolean"},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pid":{"type":"integer","nullable":true,"minimum":0},"process":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"readinessProbeOk":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"triggerCount":{"type":"integer","minimum":0}},"required":["commandSupported","events","imagePathPresent","status","triggerCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["worker"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"attentionCount":{"type":"integer","minimum":0},"containerId":{"type":"string"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"image":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"observedImage":{"type":"string","nullable":true},"replicaUnits":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"schedulingMode":{"type":"string","enum":["replicated","stateful","daemon"]},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["attentionCount","containerId","events","replicaUnits","replicas","schedulingMode","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["horizonPlatform"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"]}},"required":["events","name","namespace","pods","replicas","status","workloadKind"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"bindMountCount":{"type":"integer","minimum":0},"containerId":{"type":"string","nullable":true},"containerUnit":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"image":{"type":"string","nullable":true},"localUrl":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string","nullable":true},"portCount":{"type":"integer","minimum":0},"restartCount":{"type":"integer","nullable":true,"minimum":0},"runtimeReachable":{"type":"boolean"},"runtimeStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["bindMountCount","events","portCount","runtimeReachable","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["container"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aws"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcp"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azure"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["machines"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]}},"required":["commandSupported","events","name","namespace","pods","replicas","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"daemonInstance":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"daemonName":{"type":"string"},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"exitReason":{"type":"string","nullable":true},"imagePathPresent":{"type":"boolean"},"pid":{"type":"integer","nullable":true,"minimum":0},"restartCount":{"type":"integer","nullable":true,"minimum":0},"runtimeId":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["commandSupported","events","imagePathPresent","runtimeId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["daemon"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aws"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcp"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azure"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"machines":{"type":"array","items":{"type":"object","properties":{"capacityGroup":{"type":"string"},"cpuCores":{"type":"number","nullable":true},"drainBlockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainForce":{"type":"boolean"},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"horizondVersion":{"type":"string","nullable":true},"lastHeartbeat":{"type":"string"},"machineId":{"type":"string"},"memoryBytes":{"type":"integer","nullable":true},"overlayIp":{"type":"string","nullable":true},"publicIp":{"type":"string","nullable":true},"replicaCount":{"type":"integer"},"status":{"type":"string"},"zone":{"type":"string"}},"required":["capacityGroup","drainForce","lastHeartbeat","machineId","replicaCount","status","zone"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","machines","name","nodes","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["machines"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"dockerApiVersion":{"type":"string","nullable":true},"dockerArch":{"type":"string","nullable":true},"dockerAvailable":{"type":"boolean"},"dockerOs":{"type":"string","nullable":true},"dockerVersion":{"type":"string","nullable":true},"hostIdentifier":{"type":"string","nullable":true},"name":{"type":"string"},"networkAvailable":{"type":"boolean"},"networkName":{"type":"string","nullable":true},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"runningContainers":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"trackedContainers":{"type":"integer","nullable":true,"minimum":0}},"required":["dockerAvailable","name","networkAvailable","nodes","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["compute-cluster"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string","nullable":true},"nodeCounts":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"nodeStatuses":{"type":"array","items":{"type":"object","properties":{"allocatable":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pods":{"type":"integer","nullable":true,"minimum":0}}},"capacity":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pods":{"type":"integer","nullable":true,"minimum":0}}},"conditions":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"containerRuntimeVersion":{"type":"string","nullable":true},"kubeletVersion":{"type":"string","nullable":true},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"name":{"type":"string"},"ready":{"type":"boolean"},"roles":{"type":"array","items":{"type":"string"}},"uid":{"type":"string","nullable":true},"usage":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}}},{"nullable":true}]}},"required":["allocatable","capacity","labels","name","ready","roles"]}},"podCounts":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string","nullable":true}},"required":["events","name","nodeCounts","podCounts","status"]},"resourceType":{"type":"string","enum":["kubernetes-cluster"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"approximateCounts":{"type":"boolean"},"approximateDelayedMessages":{"type":"integer","nullable":true,"minimum":0},"approximateInFlightMessages":{"type":"integer","nullable":true,"minimum":0},"approximateVisibleMessages":{"type":"integer","nullable":true,"minimum":0},"contentBasedDeduplication":{"type":"boolean","nullable":true},"deduplicationScope":{"type":"string","nullable":true},"delaySeconds":{"type":"integer","nullable":true,"minimum":0},"fifoQueue":{"type":"boolean","nullable":true},"fifoThroughputLimit":{"type":"string","nullable":true},"kmsDataKeyReusePeriodSeconds":{"type":"integer","nullable":true,"minimum":0},"kmsMasterKeyId":{"type":"string","nullable":true},"maximumMessageSize":{"type":"integer","nullable":true,"minimum":0},"messageRetentionPeriodSeconds":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"queueArn":{"type":"string","nullable":true},"queueUrl":{"type":"string","nullable":true},"receiveMessageWaitTimeSeconds":{"type":"integer","nullable":true,"minimum":0},"redriveAllowPolicy":{"type":"string","nullable":true},"redrivePolicy":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"sqsManagedSseEnabled":{"type":"boolean","nullable":true},"sseEnabled":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"visibilityTimeoutSeconds":{"type":"integer","nullable":true,"minimum":0}},"required":["approximateCounts","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsSqs"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"kmsKeyName":{"type":"string","nullable":true},"messageStorageAllowedPersistenceRegions":{"type":"array","items":{"type":"string"}},"messageStorageEnforceInTransit":{"type":"boolean","nullable":true},"projectId":{"type":"string","nullable":true},"schemaEncoding":{"type":"string","nullable":true},"schemaFirstRevisionId":{"type":"string","nullable":true},"schemaLastRevisionId":{"type":"string","nullable":true},"schemaName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"subscriptionAckDeadlineSeconds":{"type":"integer","nullable":true,"minimum":0},"subscriptionDeadLetterMaxDeliveryAttempts":{"type":"integer","nullable":true,"minimum":0},"subscriptionDeadLetterTopic":{"type":"string","nullable":true},"subscriptionDetached":{"type":"boolean","nullable":true},"subscriptionEnableMessageOrdering":{"type":"boolean","nullable":true},"subscriptionFilter":{"type":"string","nullable":true},"subscriptionFullName":{"type":"string","nullable":true},"subscriptionLabels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"subscriptionMessageRetentionDuration":{"type":"string","nullable":true},"subscriptionName":{"type":"string","nullable":true},"subscriptionPushAttributes":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"subscriptionPushConfigPresent":{"type":"boolean","nullable":true},"subscriptionPushEndpoint":{"type":"string","nullable":true},"subscriptionPushNoWrapperWriteMetadata":{"type":"boolean","nullable":true},"subscriptionPushOidcAudience":{"type":"string","nullable":true},"subscriptionPushOidcServiceAccountEmail":{"type":"string","nullable":true},"subscriptionPushPubsubWrapperWriteMetadata":{"type":"boolean","nullable":true},"subscriptionRetainAckedMessages":{"type":"boolean","nullable":true},"subscriptionState":{"type":"string","nullable":true},"topicFullName":{"type":"string","nullable":true},"topicLabels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"topicMessageRetentionDuration":{"type":"string","nullable":true},"topicName":{"type":"string"},"topicState":{"type":"string","nullable":true}},"required":["messageStorageAllowedPersistenceRegions","status","subscriptionLabels","subscriptionPushAttributes","topicLabels","topicName"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpPubSub"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessedAt":{"type":"string","nullable":true},"activeMessageCount":{"type":"integer","nullable":true,"minimum":0},"autoDeleteOnIdle":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"deadLetterMessageCount":{"type":"integer","nullable":true,"minimum":0},"deadLetteringOnMessageExpiration":{"type":"boolean","nullable":true},"defaultMessageTimeToLive":{"type":"string","nullable":true},"duplicateDetectionHistoryTimeWindow":{"type":"string","nullable":true},"enableBatchedOperations":{"type":"boolean","nullable":true},"enableExpress":{"type":"boolean","nullable":true},"enablePartitioning":{"type":"boolean","nullable":true},"endpoint":{"type":"string","nullable":true},"forwardDeadLetteredMessagesTo":{"type":"string","nullable":true},"forwardTo":{"type":"string","nullable":true},"lockDuration":{"type":"string","nullable":true},"maxDeliveryCount":{"type":"integer","nullable":true,"minimum":0},"maxMessageSizeInKilobytes":{"type":"integer","nullable":true,"minimum":0},"maxSizeInMegabytes":{"type":"integer","nullable":true,"minimum":0},"messageCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"namespaceName":{"type":"string"},"queueStatus":{"type":"string","nullable":true},"requiresDuplicateDetection":{"type":"boolean","nullable":true},"requiresSession":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"scheduledMessageCount":{"type":"integer","nullable":true,"minimum":0},"sizeInBytes":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"transferDeadLetterMessageCount":{"type":"integer","nullable":true,"minimum":0},"transferMessageCount":{"type":"integer","nullable":true,"minimum":0},"updatedAt":{"type":"string","nullable":true}},"required":["name","namespaceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureServiceBus"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"name":{"type":"string"},"path":{"type":"string","nullable":true},"serviceStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["queue"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"billingMode":{"type":"string","nullable":true},"deletionProtectionEnabled":{"type":"boolean","nullable":true},"globalSecondaryIndexCount":{"type":"integer","nullable":true,"minimum":0},"itemCount":{"type":"integer","nullable":true,"minimum":0},"keySchema":{"type":"array","items":{"type":"object","properties":{"attributeName":{"type":"string"},"keyType":{"type":"string"}},"required":["attributeName","keyType"]}},"localSecondaryIndexCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"region":{"type":"string","nullable":true},"replicaCount":{"type":"integer","nullable":true,"minimum":0},"restoreInProgress":{"type":"boolean","nullable":true},"sseStatus":{"type":"string","nullable":true},"sseType":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"streamEnabled":{"type":"boolean","nullable":true},"streamViewType":{"type":"string","nullable":true},"tableArn":{"type":"string","nullable":true},"tableClass":{"type":"string","nullable":true},"tableSizeBytes":{"type":"integer","nullable":true,"minimum":0},"tableStatus":{"type":"string","nullable":true},"ttlAttributeName":{"type":"string","nullable":true},"ttlStatus":{"type":"string","nullable":true}},"required":["keySchema","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsDynamoDb"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"appEngineIntegrationMode":{"type":"string","nullable":true},"cmekEnabled":{"type":"boolean"},"concurrencyMode":{"type":"string","nullable":true},"createTime":{"type":"string","nullable":true},"databaseEdition":{"type":"string","nullable":true},"databaseName":{"type":"string"},"databaseType":{"type":"string","nullable":true},"deleteProtectionState":{"type":"string","nullable":true},"deleteTime":{"type":"string","nullable":true},"earliestVersionTime":{"type":"string","nullable":true},"endpoint":{"type":"string","nullable":true},"locationId":{"type":"string","nullable":true},"pointInTimeRecoveryEnablement":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"sourceInfoPresent":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updateTime":{"type":"string","nullable":true},"versionRetentionPeriod":{"type":"string","nullable":true}},"required":["cmekEnabled","databaseName","sourceInfoPresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpFirestore"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"signedIdentifierCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"storageAccountKind":{"type":"string","nullable":true},"storageAccountLocation":{"type":"string","nullable":true},"storageAccountName":{"type":"string"},"storageAccountPrimaryStatus":{"type":"string","nullable":true},"storageAccountProvisioningState":{"type":"string","nullable":true},"storageAccountResourceId":{"type":"string","nullable":true},"tableExists":{"type":"boolean"},"tableName":{"type":"string"}},"required":["status","storageAccountName","tableExists","tableName"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureTable"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cloudMetadataSupported":{"type":"boolean"},"isDirectory":{"type":"boolean","nullable":true},"name":{"type":"string"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["cloudMetadataSupported","name","path","pathExists","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["kv"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"clusterIdentifier":{"type":"string"},"endpoint":{"type":"string","nullable":true},"engineVersion":{"type":"string","nullable":true},"neverPauses":{"type":"boolean","description":"True when a `minCapacity: 0` instance has not reached 0 ACU over the observation\nwindow — it is silently paying always-on prices (auto-pause verification)."},"serverlessCapacity":{"type":"number","nullable":true,"description":"Latest sampled `ServerlessDatabaseCapacity` (ACU)."},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["clusterIdentifier","neverPauses","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aurora"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"databaseVersion":{"type":"string","nullable":true},"instanceName":{"type":"string"},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["instanceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["cloudSql"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"serverName":{"type":"string"},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string","nullable":true}},"required":["serverName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["flexibleServer"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"name":{"type":"string"},"port":{"type":"integer","nullable":true,"minimum":0},"processRunning":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string"}},"required":["name","processRunning","status","version"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["postgres"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string"},"hasMoreParameters":{"type":"boolean","nullable":true},"latestModifiedAt":{"type":"string","nullable":true,"format":"date-time"},"parameterMetadataSampled":{"type":"boolean"},"prefix":{"type":"string"},"region":{"type":"string"},"sampledAdvancedTierCount":{"type":"integer","nullable":true,"minimum":0},"sampledKmsKeyMetadataPresentCount":{"type":"integer","nullable":true,"minimum":0},"sampledParameterCount":{"type":"integer","nullable":true,"minimum":0},"sampledSecureStringCount":{"type":"integer","nullable":true,"minimum":0},"sampledStringCount":{"type":"integer","nullable":true,"minimum":0},"sampledStringListCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["accountId","parameterMetadataSampled","prefix","region","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsParameterStore"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string"},"prefix":{"type":"string"},"projectId":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["location","prefix","projectId","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpSecretManager"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessPolicyCount":{"type":"integer","minimum":0},"location":{"type":"string","nullable":true},"name":{"type":"string"},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string"},"purgeProtectionEnabled":{"type":"boolean","nullable":true},"rbacAuthorizationEnabled":{"type":"boolean"},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"secretMetadataListed":{"type":"boolean"},"skuFamily":{"type":"string","nullable":true},"skuName":{"type":"string","nullable":true},"softDeleteEnabled":{"type":"boolean"},"softDeleteRetentionDays":{"type":"integer"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vaultUri":{"type":"string","nullable":true}},"required":["accessPolicyCount","name","privateEndpointConnectionCount","publicNetworkAccess","rbacAuthorizationEnabled","secretMetadataListed","softDeleteEnabled","softDeleteRetentionDays","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureKeyVault"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"type":"string"},"prefix":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["namespace","prefix","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetesSecret"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"isDirectory":{"type":"boolean","nullable":true},"modifiedAt":{"type":"string","nullable":true,"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":"boolean","nullable":true},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["path","pathExists","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["vault"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"assumeRolePolicyPresent":{"type":"boolean"},"attachedPolicyCount":{"type":"integer","minimum":0},"attachedPolicyNames":{"type":"array","items":{"type":"string"}},"createDate":{"type":"string"},"description":{"type":"string","nullable":true},"inlinePolicyCount":{"type":"integer","minimum":0},"inlinePolicyNames":{"type":"array","items":{"type":"string"}},"lastUsedDate":{"type":"string","nullable":true},"lastUsedRegion":{"type":"string","nullable":true},"managedTagCount":{"type":"integer","minimum":0},"maxSessionDuration":{"type":"integer","nullable":true},"path":{"type":"string"},"permissionsBoundaryArn":{"type":"string","nullable":true},"permissionsBoundaryType":{"type":"string","nullable":true},"roleArn":{"type":"string"},"roleId":{"type":"string"},"roleName":{"type":"string"},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tagCount":{"type":"integer","minimum":0}},"required":["assumeRolePolicyPresent","attachedPolicyCount","attachedPolicyNames","createDate","inlinePolicyCount","inlinePolicyNames","managedTagCount","path","roleArn","roleId","roleName","stackPermissionsApplied","status","tagCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsIamRole"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true},"disabled":{"type":"boolean","nullable":true},"displayName":{"type":"string","nullable":true},"email":{"type":"string"},"etag":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"oauth2ClientId":{"type":"string","nullable":true},"projectBindingCount":{"type":"integer","minimum":0},"projectId":{"type":"string","nullable":true},"projectRoles":{"type":"array","items":{"type":"string"}},"serviceAccountBindingCount":{"type":"integer","minimum":0},"serviceAccountRoles":{"type":"array","items":{"type":"string"}},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"uniqueId":{"type":"string","nullable":true}},"required":["email","projectBindingCount","projectRoles","serviceAccountBindingCount","serviceAccountRoles","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"clientId":{"type":"string","nullable":true},"customRoleDefinitionCount":{"type":"integer","minimum":0},"customRoleDefinitionIds":{"type":"array","items":{"type":"string"}},"isolationScope":{"type":"string","nullable":true},"location":{"type":"string"},"managedTagCount":{"type":"integer","minimum":0},"name":{"type":"string"},"principalId":{"type":"string","nullable":true},"resourceGroup":{"type":"string"},"resourceId":{"type":"string"},"roleAssignmentCount":{"type":"integer","minimum":0},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tenantId":{"type":"string","nullable":true},"type":{"type":"string","nullable":true}},"required":["customRoleDefinitionCount","customRoleDefinitionIds","location","managedTagCount","name","resourceGroup","resourceId","roleAssignmentCount","roleAssignmentIds","stackPermissionsApplied","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"configured":{"type":"boolean"},"identity":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["configured","identity","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["service-account"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"availabilityZones":{"type":"array","items":{"type":"string"}},"cidrBlock":{"type":"string","nullable":true},"internetGatewayId":{"type":"string","nullable":true},"isByoVpc":{"type":"boolean"},"natGatewayId":{"type":"string","nullable":true},"privateSubnetIds":{"type":"array","items":{"type":"string"}},"publicSubnetIds":{"type":"array","items":{"type":"string"}},"routeTableCount":{"type":"integer","minimum":0},"securityGroupId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vpcId":{"type":"string","nullable":true},"vpcState":{"type":"string","nullable":true}},"required":["availabilityZones","isByoVpc","privateSubnetIds","publicSubnetIds","routeTableCount","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsVpc"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cidrBlock":{"type":"string","nullable":true},"cloudNatName":{"type":"string","nullable":true},"firewallName":{"type":"string","nullable":true},"isByoVpc":{"type":"boolean"},"networkName":{"type":"string","nullable":true},"networkSelfLink":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"routerName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"subnetworkName":{"type":"string","nullable":true},"subnetworkSelfLink":{"type":"string","nullable":true}},"required":["isByoVpc","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpVpc"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"applicationGatewaySubnetName":{"type":"string","nullable":true},"cidrBlock":{"type":"string","nullable":true},"isByoVnet":{"type":"boolean"},"lastByoVnetVerificationErrorCode":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"natGatewayId":{"type":"string","nullable":true},"nsgId":{"type":"string","nullable":true},"privateEndpointSubnetName":{"type":"string","nullable":true},"privateSubnetName":{"type":"string","nullable":true},"publicIpId":{"type":"string","nullable":true},"publicSubnetName":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vnetName":{"type":"string","nullable":true},"vnetResourceId":{"type":"string","nullable":true}},"required":["isByoVnet","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureVnet"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["network"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"managementPermissionsApplied":{"type":"boolean"},"roleArn":{"type":"string","nullable":true},"roleName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["managementPermissionsApplied","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsIamRole"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"impersonationGranted":{"type":"boolean"},"roleBound":{"type":"boolean"},"serviceAccountEmail":{"type":"string","nullable":true},"serviceAccountUniqueId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["impersonationGranted","roleBound","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"ficName":{"type":"string","nullable":true},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"roleDefinitionId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tenantId":{"type":"string","nullable":true},"uamiClientId":{"type":"string","nullable":true},"uamiPrincipalId":{"type":"string","nullable":true},"uamiResourceId":{"type":"string","nullable":true}},"required":["roleAssignmentIds","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["remote-stack-management"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"pullRoleArn":{"type":"string","nullable":true},"pushRoleArn":{"type":"string","nullable":true},"region":{"type":"string"},"registryId":{"type":"string"},"registryUri":{"type":"string"},"repositories":{"type":"array","items":{"type":"object","properties":{"createdAt":{"type":"number"},"encryptionType":{"type":"string","nullable":true},"imageTagMutability":{"type":"string","nullable":true},"kmsKeyPresent":{"type":"boolean"},"registryId":{"type":"string"},"repositoryArn":{"type":"string"},"repositoryName":{"type":"string"},"repositoryUri":{"type":"string"},"scanOnPush":{"type":"boolean","nullable":true}},"required":["createdAt","kmsKeyPresent","registryId","repositoryArn","repositoryName","repositoryUri"]}},"repositoriesTruncated":{"type":"boolean"},"repositoryCount":{"type":"integer","minimum":0},"repositoryPrefix":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["region","registryId","registryUri","repositories","repositoriesTruncated","repositoryCount","repositoryPrefix","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsEcr"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cleanupPolicyCount":{"type":"integer","minimum":0},"cleanupPolicyDryRun":{"type":"boolean","nullable":true},"createTime":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"format":{"type":"string","nullable":true},"iamBindingCount":{"type":"integer","minimum":0},"iamPolicyEtagPresent":{"type":"boolean"},"iamRoles":{"type":"array","items":{"type":"string"}},"kmsKeyNamePresent":{"type":"boolean"},"labelCount":{"type":"integer","minimum":0},"location":{"type":"string"},"mode":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"projectId":{"type":"string"},"pullServiceAccountEmail":{"type":"string","nullable":true},"pushServiceAccountEmail":{"type":"string","nullable":true},"repositoryId":{"type":"string"},"satisfiesPzs":{"type":"boolean","nullable":true},"sizeBytes":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updateTime":{"type":"string","nullable":true}},"required":["cleanupPolicyCount","iamBindingCount","iamPolicyEtagPresent","iamRoles","kmsKeyNamePresent","labelCount","location","projectId","repositoryId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpArtifactRegistry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"adminUserEnabled":{"type":"boolean"},"anonymousPullEnabled":{"type":"boolean"},"creationDate":{"type":"string","nullable":true},"dataEndpointEnabled":{"type":"boolean","nullable":true},"dataEndpointHostNames":{"type":"array","items":{"type":"string"}},"encryptionKeyIdentifierPresent":{"type":"boolean"},"encryptionKeyVaultUriPresent":{"type":"boolean"},"encryptionStatus":{"type":"string","nullable":true},"ipRuleCount":{"type":"integer","minimum":0},"location":{"type":"string"},"loginServer":{"type":"string","nullable":true},"managedTagCount":{"type":"integer","minimum":0},"name":{"type":"string"},"networkRuleBypassOptions":{"type":"string"},"networkRuleDefaultAction":{"type":"string","nullable":true},"policiesPresent":{"type":"boolean"},"policyCount":{"type":"integer","minimum":0},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string"},"resourceGroup":{"type":"string"},"resourceId":{"type":"string","nullable":true},"skuName":{"type":"string"},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"type":{"type":"string","nullable":true},"zoneRedundancy":{"type":"string"}},"required":["adminUserEnabled","anonymousPullEnabled","dataEndpointHostNames","encryptionKeyIdentifierPresent","encryptionKeyVaultUriPresent","ipRuleCount","location","managedTagCount","name","networkRuleBypassOptions","policiesPresent","policyCount","privateEndpointConnectionCount","publicNetworkAccess","resourceGroup","skuName","status","zoneRedundancy"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerRegistry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"reachable":{"type":"boolean"},"registryUrl":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["reachable","registryUrl","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["artifact-registry"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"artifactsEncryptionDisabled":{"type":"boolean","nullable":true},"artifactsType":{"type":"string","nullable":true},"cloudWatchLogsStatus":{"type":"string","nullable":true},"computeType":{"type":"string","nullable":true},"created":{"type":"number","nullable":true},"description":{"type":"string","nullable":true},"encryptionKeyPresent":{"type":"boolean"},"environmentImage":{"type":"string","nullable":true},"environmentType":{"type":"string","nullable":true},"environmentVariableCount":{"type":"integer","minimum":0},"imagePullCredentialsType":{"type":"string","nullable":true},"lastModified":{"type":"number","nullable":true},"privilegedMode":{"type":"boolean","nullable":true},"projectArn":{"type":"string","nullable":true},"projectName":{"type":"string"},"queuedTimeoutInMinutes":{"type":"integer","nullable":true},"s3LogsStatus":{"type":"string","nullable":true},"serviceRolePresent":{"type":"boolean"},"sourceType":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"timeoutInMinutes":{"type":"integer","nullable":true}},"required":["encryptionKeyPresent","environmentVariableCount","projectName","serviceRolePresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsCodeBuild"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"buildConfigId":{"type":"string"},"environmentVariableCount":{"type":"integer","minimum":0},"location":{"type":"string"},"projectId":{"type":"string"},"serviceAccount":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["buildConfigId","environmentVariableCount","location","projectId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudBuild"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"environmentVariableCount":{"type":"integer","minimum":0},"managedEnvironmentId":{"type":"string"},"managedIdentityId":{"type":"string","nullable":true},"resourceGroupName":{"type":"string"},"resourcePrefix":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["environmentVariableCount","managedEnvironmentId","resourceGroupName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerApps"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"active":{"type":"integer","nullable":true},"completionTime":{"type":"string","nullable":true,"format":"date-time"},"conditionCount":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"failed":{"type":"integer","nullable":true},"imageDigest":{"type":"string","nullable":true},"jobName":{"type":"string"},"namespace":{"type":"string"},"startTime":{"type":"string","nullable":true,"format":"date-time"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"succeeded":{"type":"integer","nullable":true}},"required":["conditionCount","events","jobName","namespace","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetesJob"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["build"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"enabled":{"type":"boolean"},"lastOperationName":{"type":"string","nullable":true},"projectId":{"type":"string"},"serviceName":{"type":"string"},"serviceResourceName":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"title":{"type":"string","nullable":true}},"required":["enabled","projectId","serviceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceUsage"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"type":"string"},"providerId":{"type":"string","nullable":true},"registered":{"type":"boolean"},"registrationPolicy":{"type":"string","nullable":true},"registrationState":{"type":"string","nullable":true},"resourceTypeCount":{"type":"integer","minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["namespace","registered","resourceTypeCount","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureResourceProvider"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["service_activation"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"location":{"type":"string","nullable":true},"managedTags":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"name":{"type":"string"},"provisioningState":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["managedTags","name","status"]},"resourceType":{"type":"string","enum":["azure_resource_group"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"allowBlobPublicAccess":{"type":"boolean","nullable":true},"allowSharedKeyAccess":{"type":"boolean","nullable":true},"encryptionKeySource":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"minimumTlsVersion":{"type":"string","nullable":true},"name":{"type":"string"},"networkBypass":{"type":"string","nullable":true},"networkDefaultAction":{"type":"string","nullable":true},"networkIpRuleCount":{"type":"integer","nullable":true,"minimum":0},"networkResourceAccessRuleCount":{"type":"integer","nullable":true,"minimum":0},"networkVirtualNetworkRuleCount":{"type":"integer","nullable":true,"minimum":0},"primaryEndpoints":{"type":"object","properties":{"blob":{"type":"string","nullable":true},"dfs":{"type":"string","nullable":true},"file":{"type":"string","nullable":true},"queue":{"type":"string","nullable":true},"table":{"type":"string","nullable":true},"web":{"type":"string","nullable":true}}},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"requireInfrastructureEncryption":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"secondaryEndpoints":{"type":"object","properties":{"blob":{"type":"string","nullable":true},"dfs":{"type":"string","nullable":true},"file":{"type":"string","nullable":true},"queue":{"type":"string","nullable":true},"table":{"type":"string","nullable":true},"web":{"type":"string","nullable":true}}},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"supportsHttpsTrafficOnly":{"type":"boolean","nullable":true}},"required":["name","primaryEndpoints","secondaryEndpoints","status"]},"resourceType":{"type":"string","enum":["azure_storage_account"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"customDomainVerificationId":{"type":"string","nullable":true},"defaultDomain":{"type":"string","nullable":true},"eventStreamEndpoint":{"type":"string","nullable":true},"infrastructureResourceGroup":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"name":{"type":"string"},"provisioningState":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"staticIp":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workloadProfileCount":{"type":"integer","minimum":0},"workloadProfiles":{"type":"array","items":{"type":"object","properties":{"maximumCount":{"type":"integer","nullable":true},"minimumCount":{"type":"integer","nullable":true},"name":{"type":"string"},"workloadProfileType":{"type":"string"}},"required":["name","workloadProfileType"]}},"zoneRedundant":{"type":"boolean","nullable":true}},"required":["name","status","workloadProfileCount","workloadProfiles"]},"resourceType":{"type":"string","enum":["azure_container_apps_environment"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"createdAt":{"type":"string","nullable":true},"disableLocalAuth":{"type":"boolean","nullable":true},"location":{"type":"string","nullable":true},"metricId":{"type":"string","nullable":true},"minimumTlsVersion":{"type":"string","nullable":true},"name":{"type":"string"},"namespaceStatus":{"type":"string","nullable":true},"premiumMessagingPartitions":{"type":"integer","nullable":true},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"serviceBusEndpoint":{"type":"string","nullable":true},"skuCapacity":{"type":"integer","nullable":true},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updatedAt":{"type":"string","nullable":true},"zoneRedundant":{"type":"boolean","nullable":true}},"required":["name","privateEndpointConnectionCount","status"]},"resourceType":{"type":"string","enum":["azure_service_bus_namespace"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"availability":{"type":"object","properties":{"catalogRevision":{"type":"string"},"location":{"type":"string","nullable":true},"models":{"type":"array","items":{"type":"object","properties":{"accessTest":{"type":"string","enum":["verified","failed","not-checked"]},"availability":{"type":"string","enum":["available","blocked","unknown"]},"blockers":{"type":"array","items":{"type":"string","enum":["agreement-required","entitlement-required","model-activation-required","deployment-required","quota-configuration-required","region-unavailable","access-denied","observation-failed"]}},"clientApis":{"type":"array","items":{"type":"string","enum":["open-ai-chat-completions","open-ai-responses","anthropic-messages"],"description":"A public API accepted from an application client."}},"errorCode":{"type":"string","nullable":true},"publicModelId":{"type":"string"},"testedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["accessTest","availability","blockers","clientApis","publicModelId"]}},"source":{"type":"string","enum":["aws-bedrock","gcp-vertex","azure-foundry","anthropic"],"description":"Provider control plane used to observe model availability without invoking\na model, spending customer quota, or accepting provider terms."}},"required":["catalogRevision","models","source"]},"region":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["availability","region","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsBedrock"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"availability":{"type":"object","properties":{"catalogRevision":{"type":"string"},"location":{"type":"string","nullable":true},"models":{"type":"array","items":{"type":"object","properties":{"accessTest":{"type":"string","enum":["verified","failed","not-checked"]},"availability":{"type":"string","enum":["available","blocked","unknown"]},"blockers":{"type":"array","items":{"type":"string","enum":["agreement-required","entitlement-required","model-activation-required","deployment-required","quota-configuration-required","region-unavailable","access-denied","observation-failed"]}},"clientApis":{"type":"array","items":{"type":"string","enum":["open-ai-chat-completions","open-ai-responses","anthropic-messages"],"description":"A public API accepted from an application client."}},"errorCode":{"type":"string","nullable":true},"publicModelId":{"type":"string"},"testedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["accessTest","availability","blockers","clientApis","publicModelId"]}},"source":{"type":"string","enum":["aws-bedrock","gcp-vertex","azure-foundry","anthropic"],"description":"Provider control plane used to observe model availability without invoking\na model, spending customer quota, or accepting provider terms."}},"required":["catalogRevision","models","source"]},"location":{"type":"string"},"project":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["availability","location","project","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpVertex"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"type":"string"},"availability":{"type":"object","properties":{"catalogRevision":{"type":"string"},"location":{"type":"string","nullable":true},"models":{"type":"array","items":{"type":"object","properties":{"accessTest":{"type":"string","enum":["verified","failed","not-checked"]},"availability":{"type":"string","enum":["available","blocked","unknown"]},"blockers":{"type":"array","items":{"type":"string","enum":["agreement-required","entitlement-required","model-activation-required","deployment-required","quota-configuration-required","region-unavailable","access-denied","observation-failed"]}},"clientApis":{"type":"array","items":{"type":"string","enum":["open-ai-chat-completions","open-ai-responses","anthropic-messages"],"description":"A public API accepted from an application client."}},"errorCode":{"type":"string","nullable":true},"publicModelId":{"type":"string"},"testedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["accessTest","availability","blockers","clientApis","publicModelId"]}},"source":{"type":"string","enum":["aws-bedrock","gcp-vertex","azure-foundry","anthropic"],"description":"Provider control plane used to observe model availability without invoking\na model, spending customer quota, or accepting provider terms."}},"required":["catalogRevision","models","source"]},"endpoint":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["accountName","availability","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureFoundry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"availability":{"oneOf":[{"type":"object","properties":{"catalogRevision":{"type":"string"},"location":{"type":"string","nullable":true},"models":{"type":"array","items":{"type":"object","properties":{"accessTest":{"type":"string","enum":["verified","failed","not-checked"]},"availability":{"type":"string","enum":["available","blocked","unknown"]},"blockers":{"type":"array","items":{"type":"string","enum":["agreement-required","entitlement-required","model-activation-required","deployment-required","quota-configuration-required","region-unavailable","access-denied","observation-failed"]}},"clientApis":{"type":"array","items":{"type":"string","enum":["open-ai-chat-completions","open-ai-responses","anthropic-messages"],"description":"A public API accepted from an application client."}},"errorCode":{"type":"string","nullable":true},"publicModelId":{"type":"string"},"testedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["accessTest","availability","blockers","clientApis","publicModelId"]}},"source":{"type":"string","enum":["aws-bedrock","gcp-vertex","azure-foundry","anthropic"],"description":"Provider control plane used to observe model availability without invoking\na model, spending customer quota, or accepting provider terms."}},"required":["catalogRevision","models","source"]},{"nullable":true}]},"provider":{"type":"string","description":"The BYO-key provider serving this binding (e.g. \"openai\"). Used on the Local\nplatform, where the app brings its own provider key instead of an ambient cloud."},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["provider","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["external"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["ai"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"type":"object","properties":{"data":{"type":"object","properties":{"enabled":{"type":"boolean"},"keyArn":{"type":"string"},"keySpec":{"type":"string"},"keyState":{"type":"string"},"keyUsage":{"type":"string"},"status":{"type":"object","properties":{"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true}},"required":["health","lifecycle"]}},"required":["enabled","keyArn","keySpec","keyState","keyUsage","status"]},"provider":{"type":"string","enum":["aws-kms"]}},"required":["data","provider"]},{"type":"object","properties":{"data":{"type":"object","properties":{"algorithm":{"type":"string","nullable":true},"cryptoKeyName":{"type":"string"},"primaryState":{"type":"string","nullable":true},"primaryVersion":{"type":"string","nullable":true},"purpose":{"type":"string"},"status":{"type":"object","properties":{"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true}},"required":["health","lifecycle"]}},"required":["cryptoKeyName","purpose","status"]},"provider":{"type":"string","enum":["gcp-cloud-kms"]}},"required":["data","provider"]},{"type":"object","properties":{"data":{"type":"object","properties":{"enabled":{"type":"boolean","nullable":true},"keyId":{"type":"string"},"keyOperations":{"type":"array","items":{"type":"string"}},"keyType":{"type":"string"},"recoveryLevel":{"type":"string","nullable":true},"status":{"type":"object","properties":{"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true}},"required":["health","lifecycle"]}},"required":["keyId","keyOperations","keyType","status"]},"provider":{"type":"string","enum":["azure-key-vault"]}},"required":["data","provider"]}]},"resourceType":{"type":"string","enum":["key"]}},"required":["data","resourceType"]}]},"deploymentId":{"type":"string","nullable":true},"observedAt":{"type":"string","format":"date-time"},"raw":{"type":"array","items":{"type":"object","properties":{"body":{"type":"string"},"collectedAt":{"type":"string","format":"date-time"},"format":{"type":"string","enum":["json","yaml","text"]},"source":{"type":"string"},"truncated":{"type":"boolean"}},"required":["body","collectedAt","format","source","truncated"]}},"resourceId":{"type":"string","description":"Alien resource id, such as the `alien.Container` or `alien.Storage`\nresource id from the stack."},"resourceType":{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior."}},"required":["backend","controllerPlatform","data","observedAt","raw","resourceId","resourceType"]},"description":"Latest typed resource heartbeats collected during this step."},"observedInventoryBatches":{"type":"array","items":{"type":"object","properties":{"backend":{"type":"string","enum":["aws","gcp","azure","kubernetes","local","managed","external","test"],"description":"Backend whose observer produced this snapshot."},"complete":{"type":"boolean","description":"Whether this batch is a complete replacement for the scope. Complete\nbatches tombstone previously observed rows in the same scope when they\nare absent from `resources`."},"controllerPlatform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"inventoryScope":{"type":"string","description":"Stable scope for the provider list operation that produced this batch."},"observedAt":{"type":"string","format":"date-time","description":"Time the inventory scope was observed."},"resources":{"type":"array","items":{"type":"object","properties":{"alienResourceId":{"type":"string","nullable":true},"attributes":{"type":"object","properties":{},"additionalProperties":{"nullable":true}},"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"counts":{"oneOf":[{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},{"nullable":true}]},"deploymentId":{"type":"string","nullable":true},"displayName":{"type":"string"},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerKind":{"type":"string","description":"Provider-native kind, such as `apps/v1/Deployment`,\n`AWS::S3::Bucket`, `storage.googleapis.com/Bucket`, or an Azure\nresource type."},"providerStale":{"type":"boolean"},"raw":{"type":"array","items":{"type":"object","properties":{"body":{"type":"string"},"collectedAt":{"type":"string","format":"date-time"},"format":{"type":"string","enum":["json","yaml","text"]},"source":{"type":"string"},"truncated":{"type":"boolean"}},"required":["body","collectedAt","format","source","truncated"]}},"rawIdentity":{"type":"string","description":"Provider-native stable identity: Kubernetes object identity, cloud ARN,\nGCP full resource name, Azure resource id, etc."},"region":{"type":"string","nullable":true},"resourceTypeHint":{"oneOf":[{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior."},{"nullable":true}]},"scope":{"type":"string","nullable":true},"version":{"type":"string","nullable":true,"description":"Release/version identity observed from the provider resource, when available."}},"required":["displayName","health","lifecycle","partial","providerKind","providerStale","rawIdentity"]}},"sourceKind":{"type":"string","description":"Writer/source for this inventory pass, such as `operator` or\n`manager-observer`."}},"required":["backend","complete","controllerPlatform","inventoryScope","observedAt","resources","sourceKind"]},"description":"Observed raw-resource inventory batches read during this step."},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/OperatorCapabilityReport"},"description":"Operator-reported runtime capabilities."},"operatorVersion":{"type":"string","minLength":1,"maxLength":128,"description":"Operator binary version reported by the runtime."}},"required":["deploymentId","state"],"additionalProperties":false,"description":"Request to reconcile deployment state"},"SyncRenewRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Single deployment to renew. Deprecated: use deploymentIds. Retained so a manager built against the previous API keeps renewing during rollout.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"deploymentIds":{"type":"array","items":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"minItems":1,"maxItems":100,"description":"Deployments to renew or confirm. Renewal is per deployment: the response reports each one independently."},"session":{"type":"string","minLength":1}},"required":["session"],"additionalProperties":false},"SyncReleaseRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Deployment ID to release","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"session":{"type":"string","description":"Session identifier to release"}},"required":["deploymentId","session"],"additionalProperties":false,"description":"Request to release deployment lock"},"ResolveResponse":{"type":"object","properties":{"managerId":{"type":"string","description":"Manager ID"},"managerName":{"type":"string","description":"Manager display name"},"managerUrl":{"type":"string","format":"uri","description":"Manager URL"},"managerIsSystem":{"type":"boolean","description":"Whether the manager is Alien-hosted"},"managerCloud":{"type":"string","nullable":true,"enum":["aws","gcp","azure","kubernetes","machines","local","test",null],"description":"Cloud where the private manager is hosted. Null for Alien-hosted managers."},"projectId":{"type":"string","description":"Resolved project ID"},"installContext":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]}],"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."}},"required":["platform","managementConfig"],"description":"Target install context derived from platform-managed manager metadata. Present for cloud push platforms."}},"required":["managerId","managerName","managerUrl","managerIsSystem","projectId"]},"CloudRegionsResponse":{"type":"object","properties":{"supportedRegions":{"$ref":"#/components/schemas/SupportedCloudRegions"}},"required":["supportedRegions"]},"BillingAuditLogRow":{"type":"object","properties":{"id":{"type":"string"},"workspaceId":{"type":"string","nullable":true},"action":{"type":"string"},"payload":{"nullable":true},"createdAt":{"type":"string"}},"required":["id","workspaceId","action","createdAt"]},"WorkspaceBillingEntitlements":{"type":"object","properties":{"planId":{"$ref":"#/components/schemas/PlanId"},"planStatus":{"$ref":"#/components/schemas/BillingPlanStatus"},"features":{"$ref":"#/components/schemas/BillingFeatureFlags"},"limits":{"$ref":"#/components/schemas/BillingLimits"},"syncedAt":{"type":"string","nullable":true,"format":"date-time"},"stale":{"type":"boolean"}},"required":["planId","planStatus","features","limits","syncedAt","stale"]},"PlanId":{"type":"string","enum":["starter","pro","pro_annual","enterprise"]},"BillingPlanStatus":{"type":"string","enum":["active","trialing","past_due","canceled","none"]},"BillingFeatureFlags":{"type":"object","properties":{"custom_domains":{"type":"boolean"},"private_managers":{"type":"boolean"},"sso_saml":{"type":"boolean"},"audit_logs":{"type":"boolean"},"airgapped":{"type":"boolean"}},"required":["custom_domains","private_managers","sso_saml","audit_logs","airgapped"]},"BillingLimits":{"type":"object","properties":{"maxDeployments":{"type":"number","nullable":true},"maxProjects":{"type":"number","nullable":true},"maxSeats":{"type":"number","nullable":true},"maxCustomDomains":{"type":"number","nullable":true},"creditUsd":{"type":"number","nullable":true},"seatsIncluded":{"type":"number","nullable":true}},"required":["maxDeployments","maxProjects","maxSeats","maxCustomDomains","creditUsd","seatsIncluded"]}},"parameters":{}},"paths":{"/v1/invitations/{token}":{"get":{"operationId":"getWorkspaceInvitationPreview","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"token","in":"path"}],"responses":{"200":{"description":"Invitation preview.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInvitationPreview"}}}},"404":{"description":"Invitation not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/memberships":{"get":{"operationId":"listMemberships","description":"List all workspaces the current user has access to.","x-speakeasy-group":"user","x-speakeasy-name-override":"listMemberships","responses":{"200":{"description":"List of user's workspaces.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Membership"}}},"required":["items"]}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/profile":{"get":{"operationId":"getUserProfile","description":"Get the current user's profile and user-scoped onboarding state.","x-speakeasy-group":"user","x-speakeasy-name-override":"getProfile","responses":{"200":{"description":"User profile.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfile"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateUserProfile","description":"Update the current user's profile (display name).","x-speakeasy-group":"user","x-speakeasy-name-override":"updateProfile","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Display name"}}}}}},"responses":{"200":{"description":"Profile updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfile"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/profile/setup":{"post":{"operationId":"completeUserProfileSetup","description":"Complete the required beta intake and profile setup dialog.","x-speakeasy-group":"user","x-speakeasy-name-override":"completeProfileSetup","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfileSetupRequest"}}}},"responses":{"200":{"description":"Profile setup completed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfile"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/workspaces":{"post":{"operationId":"createWorkspace","description":"Create a new workspace. The current user will be automatically added as an admin.","x-speakeasy-group":"user","x-speakeasy-name-override":"createWorkspace","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name"},"logoUrl":{"type":"string","format":"uri","description":"Optional workspace logo URL"}},"required":["name"]}}}},"responses":{"201":{"description":"Created workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Membership"}}}},"400":{"description":"Bad request - invalid workspace name.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Workspace name already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/git-namespaces":{"get":{"operationId":"listGitNamespaces","description":"List all git namespaces (GitHub installations) the current user has access to.","x-speakeasy-group":"user","x-speakeasy-name-override":"listGitNamespaces","parameters":[{"schema":{"type":"string","enum":["github"],"default":"github"},"required":false,"name":"provider","in":"query"}],"responses":{"200":{"description":"List of user's git namespaces.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GitNamespace"}}},"required":["items"]}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/git-namespaces/sync":{"post":{"operationId":"syncGitNamespaces","description":"Sync git namespaces from the provider. For GitHub, this fetches all app installations accessible to the user.","x-speakeasy-group":"user","x-speakeasy-name-override":"syncGitNamespaces","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"provider":{"type":"string","enum":["github"],"description":"Git provider to sync"}},"required":["provider"]}}}},"responses":{"200":{"description":"Synced git namespaces.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GitNamespace"}}},"required":["items"]}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/git-namespaces/{id}/repositories":{"get":{"operationId":"listGitNamespaceRepositories","description":"List repositories accessible through a git namespace (GitHub installation).","x-speakeasy-group":"user","x-speakeasy-name-override":"listGitNamespaceRepositories","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","description":"Search query to filter repositories by name"},"required":false,"description":"Search query to filter repositories by name","name":"search","in":"query"}],"responses":{"200":{"description":"List of repositories.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GitRepository"}}},"required":["items"]}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Git namespace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/invitations/{token}/accept":{"post":{"operationId":"acceptWorkspaceInvitation","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"token","in":"path"}],"responses":{"200":{"description":"Invitation accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptWorkspaceInvitationResponse"}}}},"404":{"description":"Invitation not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Invitation unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/whoami":{"get":{"operationId":"whoami","description":"Get the current authenticated principal (user or service account). Works with both session cookies and API keys.","x-speakeasy-group":"auth","x-speakeasy-name-override":"whoami","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace to resolve the principal in. Required for user credentials because a user's role is per-workspace. Service accounts carry their workspace in the credential and may omit it.","example":"my-workspace"},"required":false,"description":"Workspace to resolve the principal in. Required for user credentials because a user's role is per-workspace. Service accounts carry their workspace in the credential and may omit it.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Current authenticated principal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Subject"}}}},"400":{"description":"Missing required workspace for user credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces":{"get":{"operationId":"listWorkspaces","description":"Retrieve all workspaces.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","description":"Search workspaces by name"},"required":false,"description":"Search workspaces by name","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved workspaces.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Workspace"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}":{"get":{"operationId":"getWorkspace","description":"Retrieve a workspace by ID.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workspace"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateWorkspace","description":"Update a workspace.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"update","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"logoUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"}}}}}},"responses":{"200":{"description":"Workspace updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workspace"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteWorkspace","description":"Delete a workspace. The workspace must have no projects.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"delete","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Workspace deleted successfully."},"400":{"description":"Workspace still has projects.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/members":{"get":{"operationId":"listWorkspaceMembers","description":"List all members of a workspace.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"listMembers","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"List of workspace members.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceMember"}}},"required":["items"]}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"addWorkspaceMember","description":"Add a member to a workspace by email. The user must already have an account.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"addMember","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"Email of the user to add"},"role":{"allOf":[{"$ref":"#/components/schemas/WorkspaceRole"},{"description":"Role to assign"}]}},"required":["email","role"]}}}},"responses":{"201":{"description":"Member added successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceMember"}}}},"404":{"description":"Workspace or user not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"User is already a member.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/members/{userId}":{"patch":{"operationId":"updateWorkspaceMember","description":"Update a workspace member's role.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"updateMember","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"userId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"allOf":[{"$ref":"#/components/schemas/WorkspaceRole"},{"description":"New role to assign"}]}},"required":["role"]}}}},"responses":{"200":{"description":"Member role updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceMember"}}}},"400":{"description":"Cannot remove last admin.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Workspace or member not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"removeWorkspaceMember","description":"Remove a member from a workspace.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"removeMember","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"userId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Member removed successfully."},"400":{"description":"Cannot remove last admin or self.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Workspace or member not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/dismiss-onboarding":{"post":{"operationId":"dismissWorkspaceOnboarding","description":"Mark the Getting Started walkthrough as dismissed for a workspace. The dashboard stops auto-promoting onboarding once this is set; users can still re-enter the walkthrough via the help menu.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"dismissOnboarding","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Workspace with onboardingDismissedAt populated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workspace"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/settings":{"get":{"operationId":"getWorkspaceSettings","description":"Read the ai-agent settings for a workspace. Returns defaults (`enabled: true`, `debugPermissionMode: auto`) when the workspace has never customized them.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"getSettings","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Workspace ai-agent settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSettings"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateWorkspaceSettings","description":"Update the ai-agent settings for a workspace. Supports `debugPermissionMode` (`ask` requires human approval on every ai-agent debug command, `auto` runs them without asking) and `enabled` (`false` turns the ai-agent off so incoming triggers are rejected before any session runs).","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"updateSettings","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkspaceSettingsRequest"}}}},"responses":{"200":{"description":"Updated ai-agent settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSettings"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/invitations":{"get":{"operationId":"listWorkspaceInvitations","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Pending invitations.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceInvitation"}}},"required":["items"]}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createWorkspaceInvitation","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"role":{"$ref":"#/components/schemas/WorkspaceRole"}},"required":["email","role"]}}}},"responses":{"201":{"description":"Invitation created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInvitation"}}}},"403":{"description":"Seat limit reached.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Invitation already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/invitations/{invitationId}/resend":{"post":{"operationId":"resendWorkspaceInvitation","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"invitationId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Invitation email sent again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInvitation"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/invitations/{invitationId}":{"delete":{"operationId":"revokeWorkspaceInvitation","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"invitationId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Invitation revoked."},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/invite-link":{"get":{"operationId":"getWorkspaceInviteLink","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Active invite link.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInviteLink"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"put":{"operationId":"createWorkspaceInviteLink","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/WorkspaceRole"}},"required":["role"]}}}},"responses":{"200":{"description":"Invite link created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInviteLink"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"revokeWorkspaceInviteLink","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Invite link revoked."},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects":{"get":{"operationId":"listProjects","description":"Retrieve all projects.","x-speakeasy-group":"projects","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","description":"Search projects by name"},"required":false,"description":"Search projects by name","name":"search","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["deploymentCount","latestRelease"]},"description":"Optional fields to include: deploymentCount, latestRelease"},"required":false,"description":"Optional fields to include: deploymentCount, latestRelease","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved projects.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ProjectListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createProject","description":"Create a new project.","x-speakeasy-group":"projects","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Project name.","example":"my-app"},"gitRepository":{"type":"object","nullable":true,"properties":{"type":{"type":"string","enum":["github"],"description":"The Git Provider of the repository","example":"github"},"repo":{"type":"string","maxLength":128,"description":"The name of the git repository","example":"alien/my-agent"}},"required":["type","repo"],"additionalProperties":false,"description":"Verified source repository connected to the project. Alien uses this for GitHub Actions setup and source-aware features; releases are still created explicitly by CI or `alien release`."},"rootDirectory":{"type":"string","nullable":true,"maxLength":256,"description":"The name of a directory or relative path to the source code of your project. When null is used it will default to the project root"},"packagesConfig":{"type":"object","nullable":true,"properties":{"cli":{"type":"object","nullable":true,"properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"},"enabled":{"type":"boolean","description":"Whether CLI package generation is enabled"}},"required":["displayName","name","enabled"],"description":"CLI package configuration. If null, CLI packages will not be generated."},"cloudformation":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether CloudFormation package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"CloudFormation package configuration. If null, CloudFormation packages will not be generated."},"operatorImage":{"type":"object","nullable":true,"properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"},"enabled":{"type":"boolean","description":"Whether Operator image package generation is enabled"}},"required":["displayName","name","enabled"],"description":"Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated."},"helm":{"type":"object","nullable":true,"properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"},"enabled":{"type":"boolean","description":"Whether Helm chart package generation is enabled"}},"required":["chartName","description","enabled"],"description":"Helm chart package configuration. If null, Helm packages will not be generated."},"terraform":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether Terraform package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"Terraform package configuration. If null, Terraform packages will not be generated."}},"description":"Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform)"}},"required":["name"]}}}},"responses":{"201":{"description":"Project created successfully.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Project"},{"type":"object","properties":{"githubSetup":{"type":"object","properties":{"pullRequestUrl":{"type":"string","format":"uri","description":"URL to the pull request with the Alien build workflow"},"workflowUrl":{"type":"string","format":"uri","description":"URL to the GitHub Actions workflow"}},"required":["pullRequestUrl","workflowUrl"]},"gitRepositoryWarning":{"$ref":"#/components/schemas/APIError"}}}]}}}},"400":{"description":"Invalid request or GitHub repository connection failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Insufficient permissions or plan limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Project name already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}":{"get":{"operationId":"getProject","description":"Retrieve a project by ID or name.","x-speakeasy-group":"projects","x-speakeasy-name-override":"get","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved project.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateProject","description":"Update a project.","x-speakeasy-group":"projects","x-speakeasy-name-override":"update","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProject"}}}},"responses":{"200":{"description":"Project updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteProject","description":"Delete a project. The project must have no deployments.","x-speakeasy-group":"projects","x-speakeasy-name-override":"delete","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Project deleted successfully."},"400":{"description":"Project still has deployments.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/gcp-oauth-provider":{"get":{"operationId":"getProjectGcpOAuthProvider","description":"Retrieve redacted project-level Google Cloud OAuth provider settings.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getGcpOAuthProvider","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved Google Cloud OAuth provider settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectGcpOAuthProvider"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"put":{"operationId":"updateProjectGcpOAuthProvider","description":"Update project-level Google Cloud OAuth provider settings.","x-speakeasy-group":"projects","x-speakeasy-name-override":"updateGcpOAuthProvider","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProjectGcpOAuthProvider"}}}},"responses":{"200":{"description":"Google Cloud OAuth provider settings updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectGcpOAuthProvider"}}}},"400":{"description":"Invalid provider settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/deployment-portal-domain":{"get":{"operationId":"getProjectDeploymentPortalDomain","description":"Get the deployment portal domain binding for a project.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getDeploymentPortalDomain","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved deployment portal domain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentPortalDomainResponse"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/import-template":{"post":{"operationId":"createProjectFromTemplate","description":"Create a project by forking alienplatform/alien into your namespace, then configuring GitHub Actions.","x-speakeasy-group":"projects","x-speakeasy-name-override":"createFromTemplate","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Project name.","example":"my-app"},"targetNamespace":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-zA-Z0-9-]+$","description":"GitHub owner namespace (user or organization) that will receive the fork"},"templatePath":{"type":"string","enum":["examples/remote-worker-ts","examples/github-agent/packages/remote-agent","examples/endpoint-agent","examples/byoc-database"],"description":"Template root directory inside alienplatform/alien"},"rootDirectory":{"type":"string","nullable":true,"maxLength":256,"description":"The name of a directory or relative path to the source code of your project. When null is used it will default to the project root"},"packagesConfig":{"type":"object","nullable":true,"properties":{"cli":{"type":"object","nullable":true,"properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"},"enabled":{"type":"boolean","description":"Whether CLI package generation is enabled"}},"required":["displayName","name","enabled"],"description":"CLI package configuration. If null, CLI packages will not be generated."},"cloudformation":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether CloudFormation package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"CloudFormation package configuration. If null, CloudFormation packages will not be generated."},"operatorImage":{"type":"object","nullable":true,"properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"},"enabled":{"type":"boolean","description":"Whether Operator image package generation is enabled"}},"required":["displayName","name","enabled"],"description":"Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated."},"helm":{"type":"object","nullable":true,"properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"},"enabled":{"type":"boolean","description":"Whether Helm chart package generation is enabled"}},"required":["chartName","description","enabled"],"description":"Helm chart package configuration. If null, Helm packages will not be generated."},"terraform":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether Terraform package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"Terraform package configuration. If null, Terraform packages will not be generated."}},"description":"Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform)"}},"required":["name","targetNamespace","templatePath"]}}}},"responses":{"201":{"description":"Project created successfully from template.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Project"},{"type":"object","properties":{"githubSetup":{"type":"object","properties":{"pullRequestUrl":{"type":"string","format":"uri","description":"URL to the pull request with the Alien build workflow"},"workflowUrl":{"type":"string","format":"uri","description":"URL to the GitHub Actions workflow"}},"required":["pullRequestUrl","workflowUrl"]},"gitRepositoryWarning":{"$ref":"#/components/schemas/APIError"},"template":{"type":"object","properties":{"sourceRepository":{"type":"string","enum":["alienplatform/alien"]},"forkRepository":{"type":"string","description":"Fork repository in / format"},"templatePath":{"type":"string","enum":["examples/remote-worker-ts","examples/github-agent/packages/remote-agent","examples/endpoint-agent","examples/byoc-database"],"description":"Template root directory inside alienplatform/alien"},"resolvedRootDirectory":{"type":"string"}},"required":["sourceRepository","forkRepository","templatePath","resolvedRootDirectory"]}},"required":["template"]}]}}}},"400":{"description":"Bad request or GitHub integration not installed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Project name already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"Fork exists but is not ready yet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/template-urls":{"get":{"operationId":"getProjectTemplateUrls","description":"Get template URLs for deploying setup stacks in this project.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getTemplateUrls","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Template URLs retrieved successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"aws":{"type":"object","nullable":true,"properties":{"templateUrl":{"type":"string","format":"uri","description":"URL to download the CloudFormation template"},"launchStackUrl":{"type":"string","format":"uri","description":"URL to launch the template in the AWS CloudFormation console"}},"required":["templateUrl","launchStackUrl"],"description":"Template URLs for deploying an AWS setup stack"}}}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/deployment-link-setup":{"get":{"operationId":"getProjectDeploymentLinkSetup","description":"Get the active release stack and portal-visible setup availability for deployment-link configuration.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getDeploymentLinkSetup","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Deployment-link setup retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentLinkSetupResponse"}}}},"404":{"description":"Project or active release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/active-release":{"get":{"operationId":"getProjectActiveRelease","description":"Get the production channel's current release. When deploymentId is provided, returns that deployment's effective release: its pin, or its followed channel's current release.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getActiveRelease","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","description":"Optional deployment ID to check for pinned release"},"required":false,"description":"Optional deployment ID to check for pinned release","name":"deploymentId","in":"query"}],"responses":{"200":{"description":"Effective release retrieved successfully.","content":{"application/json":{"schema":{"nullable":true}}}},"404":{"description":"Project or effective release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups":{"post":{"operationId":"createDeploymentGroup","tags":["deployment-groups"],"summary":"Create a new deployment group","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentGroupRequest"}}}},"responses":{"200":{"description":"Deployment group created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment group with this name already exists in the project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"listDeploymentGroups","tags":["deployment-groups"],"summary":"List deployment groups","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","description":"Search deployment groups by name"},"required":false,"description":"Search deployment groups by name","name":"search","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["project"]},"description":"Optional fields to include: project"},"required":false,"description":"Optional fields to include: project","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"List of deployment groups","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/DeploymentGroup"},{"type":"object","properties":{"project":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"Project ID"},"name":{"type":"string","description":"Project name"}},"required":["id","name"],"description":"Project info, included when ?include=project is used"}}}]},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/by-name":{"put":{"operationId":"ensureDeploymentGroupByName","tags":["deployment-groups"],"summary":"Get or create a deployment group by project and name","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnsureDeploymentGroupByNameRequest"}}}},"responses":{"200":{"description":"Deployment group returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/by-external-id":{"put":{"operationId":"ensureDeploymentGroupByExternalId","tags":["deployment-groups"],"summary":"Get or create a deployment group by project and external ID","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnsureDeploymentGroupByExternalIdRequest"}}}},"responses":{"200":{"description":"Deployment group returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment group name already exists in the project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"getDeploymentGroupByExternalId","tags":["deployment-groups"],"summary":"Get a deployment group by project and external ID","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","maxLength":100,"description":"Project ID or name. Optional for project-scoped API keys."},"required":false,"description":"Project ID or name. Optional for project-scoped API keys.","name":"project","in":"query"},{"schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9][A-Za-z0-9._~-]*$","description":"Case-sensitive, URL- and header-safe identifier from the integrating application.","example":"ext_example_01"},"required":true,"description":"Case-sensitive, URL- and header-safe identifier from the integrating application.","name":"externalId","in":"query"}],"responses":{"200":{"description":"Deployment group returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Project or deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/{id}":{"get":{"operationId":"getDeploymentGroup","tags":["deployment-groups"],"summary":"Get deployment group details","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["project"]},"description":"Optional fields to include: project"},"required":false,"description":"Optional fields to include: project","name":"include","in":"query"}],"responses":{"200":{"description":"Deployment group details","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DeploymentGroup"},{"type":"object","properties":{"project":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"Project ID"},"name":{"type":"string","description":"Project name"}},"required":["id","name"],"description":"Project info, included when ?include=project is used"},"deploymentCount":{"type":"integer","description":"Current number of deployments in this deployment group"}},"required":["deploymentCount"]}]}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateDeploymentGroup","tags":["deployment-groups"],"summary":"Update deployment group","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentGroupRequest"}}}},"responses":{"200":{"description":"Deployment group updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment group name already exists in the project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteDeploymentGroup","tags":["deployment-groups"],"summary":"Delete deployment group","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Deployment group deleted successfully"},"400":{"description":"Cannot delete deployment group that has deployments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/{id}/external-id":{"put":{"operationId":"setDeploymentGroupExternalId","tags":["deployment-groups"],"summary":"Set or clear a deployment group's external ID","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetDeploymentGroupExternalIdRequest"}}}},"responses":{"200":{"description":"Deployment group external ID updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment group external ID already exists in the project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/{id}/tokens":{"post":{"operationId":"createDeploymentGroupToken","tags":["deployment-groups"],"summary":"Create deployment group token","description":"Creates a deployment-group scoped API key and returns both the token and formatted deployment link","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentGroupTokenRequest"}}}},"responses":{"200":{"description":"Deployment group token created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentGroupTokenResponse"}}}},"400":{"description":"Deployment setup configuration is invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/{id}/first-party-session":{"post":{"operationId":"createFirstPartyDeploymentSession","tags":["deployment-groups"],"summary":"Create first-party deployment session","description":"Mints a short-lived deployment-group token with the recommended self-deploy policy for the authenticated developer.","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"First-party deployment session created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFirstPartyDeploymentSessionResponse"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/packages":{"get":{"operationId":"listPackages","description":"List packages with optional filters. Returns packages ordered by creation date (newest first).","x-speakeasy-group":"packages","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","enum":["cli","cloudformation","helm","operator-image","terraform"],"description":"Filter by package type"},"required":false,"description":"Filter by package type","name":"type","in":"query"},{"schema":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Filter by package status"},"required":false,"description":"Filter by package status","name":"status","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search packages by type or version"},"required":false,"description":"Search packages by type or version","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"List of packages.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Package"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/packages/{id}":{"get":{"operationId":"getPackage","description":"Get details of a specific package.","x-speakeasy-group":"packages","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"pkg_[0-9a-z]{28}$","description":"Unique identifier for the package.","example":"pkg_jebo2o5jmm7raefl2m1pe3cz"},"required":true,"description":"Unique identifier for the package.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Package details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Package"}}}},"404":{"description":"Package not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/packages/rebuild":{"post":{"operationId":"rebuildPackages","description":"Rebuild packages for a project. This will cancel any pending packages and create new ones with auto-incremented versions.","x-speakeasy-group":"packages","x-speakeasy-name-override":"rebuild","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"project":{"type":"string","maxLength":100,"description":"Project ID or name to rebuild packages for"}},"required":["project"]}}}},"responses":{"200":{"description":"Packages rebuilt successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"packagesCreated":{"type":"integer","description":"Number of packages created"}},"required":["packagesCreated"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/packages/{id}/cancel":{"post":{"operationId":"cancelPackage","description":"Cancel a pending or building package.","x-speakeasy-group":"packages","x-speakeasy-name-override":"cancel","parameters":[{"schema":{"type":"string","pattern":"pkg_[0-9a-z]{28}$","description":"Unique identifier for the package.","example":"pkg_jebo2o5jmm7raefl2m1pe3cz"},"required":true,"description":"Unique identifier for the package.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Package canceled successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Package"}}}},"400":{"description":"Package cannot be canceled (not in pending or building status).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Package not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases":{"get":{"operationId":"listReleases","description":"Retrieve all releases.","x-speakeasy-group":"releases","x-speakeasy-name-override":"list","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"}],"nullable":true},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","nullable":true,"minLength":1,"maxLength":63,"pattern":"^[a-z][a-z0-9-]*$","description":"Filter to releases promoted to this channel. Defaults to production."},"required":false,"description":"Filter to releases promoted to this channel. Defaults to production.","name":"channel","in":"query"},{"schema":{"type":"string","enum":["true","false"],"default":"false"},"required":false,"name":"allChannels","in":"query"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["project","rollout","createdBy"]},"description":"Optional fields to include: project, rollout"},"required":false,"description":"Optional fields to include: project, rollout","name":"include","in":"query"},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Search releases by commit message, branch, SHA, or release ID"},"required":false,"description":"Search releases by commit message, branch, SHA, or release ID","name":"search","in":"query"},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Filter by git branch (commitRef)"},"required":false,"description":"Filter by git branch (commitRef)","name":"branch","in":"query"},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Filter by commit author login or name"},"required":false,"description":"Filter by commit author login or name","name":"author","in":"query"},{"schema":{"type":"string","nullable":true,"format":"date-time","description":"Filter releases created after this date (ISO 8601)"},"required":false,"description":"Filter releases created after this date (ISO 8601)","name":"createdAfter","in":"query"},{"schema":{"type":"string","nullable":true,"format":"date-time","description":"Filter releases created before this date (ISO 8601)"},"required":false,"description":"Filter releases created before this date (ISO 8601)","name":"createdBefore","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved releases.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createRelease","description":"Create a new release.","x-speakeasy-group":"releases","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateReleaseRequest"}}}},"responses":{"201":{"description":"Release created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Release"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases/branches":{"get":{"operationId":"listReleaseBranches","description":"List distinct git branches across releases. Used for filter dropdowns.","x-speakeasy-group":"releases","x-speakeasy-name-override":"listBranches","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"allOf":[{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"}],"nullable":true},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Search branches by name (case-insensitive contains)"},"required":false,"description":"Search branches by name (case-insensitive contains)","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50,"description":"Maximum number of branches to return"},"required":false,"description":"Maximum number of branches to return","name":"limit","in":"query"}],"responses":{"200":{"description":"Retrieved distinct branches.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"string"}}},"required":["items"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases/authors":{"get":{"operationId":"listReleaseAuthors","description":"List distinct commit authors across releases. Used for filter dropdowns.","x-speakeasy-group":"releases","x-speakeasy-name-override":"listAuthors","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"allOf":[{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"}],"nullable":true},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Search authors by login or name (case-insensitive contains)"},"required":false,"description":"Search authors by login or name (case-insensitive contains)","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50,"description":"Maximum number of authors to return"},"required":false,"description":"Maximum number of authors to return","name":"limit","in":"query"}],"responses":{"200":{"description":"Retrieved distinct authors.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseAuthorFilterItem"}}},"required":["items"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases/{id}":{"get":{"operationId":"getRelease","description":"Retrieve a release by ID.","x-speakeasy-group":"releases","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"required":true,"description":"Unique identifier for the release.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["project","rollout","createdBy"]},"description":"Optional fields to include: project, rollout"},"required":false,"description":"Optional fields to include: project, rollout","name":"include","in":"query"}],"responses":{"200":{"description":"Retrieved release.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseListItemResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases/{id}/deployments":{"get":{"operationId":"listReleaseDeployments","description":"List the project's deployments with their rollout state relative to this release.","x-speakeasy-group":"releases","x-speakeasy-name-override":"listDeployments","parameters":[{"schema":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"required":true,"description":"Unique identifier for the release.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseRolloutState"},"description":"Filter deployments by rollout state"},"required":false,"description":"Filter deployments by rollout state","name":"state","in":"query"},{"schema":{"type":"string","description":"Filter by deployment group ID or name"},"required":false,"description":"Filter by deployment group ID or name","name":"deploymentGroup","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved release deployments.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseDeploymentsResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/release-channels":{"get":{"operationId":"listReleaseChannels","x-speakeasy-group":"releaseChannels","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"responses":{"200":{"description":"Project release channels.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseChannel"}}},"required":["items"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createReleaseChannel","x-speakeasy-group":"releaseChannels","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"$ref":"#/components/schemas/ReleaseChannelName"},"releaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Channel created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseChannel"}}}},"400":{"description":"Invalid release.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/release-channels/{name}/promote":{"post":{"operationId":"promoteRelease","x-speakeasy-group":"releases","x-speakeasy-name-override":"promote","parameters":[{"schema":{"$ref":"#/components/schemas/ReleaseChannelName"},"required":true,"name":"name","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"releaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"expectedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"}},"required":["releaseId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Release promoted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseChannel"}}}},"404":{"description":"Project, channel, or release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Channel changed concurrently.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/release-channels/{name}":{"delete":{"operationId":"deleteReleaseChannel","x-speakeasy-group":"releaseChannels","x-speakeasy-name-override":"delete","parameters":[{"schema":{"$ref":"#/components/schemas/ReleaseChannelName"},"required":true,"name":"name","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"responses":{"204":{"description":"Channel deleted."},"400":{"description":"Reserved channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project or channel not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Channel is still followed by deployments.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments":{"get":{"operationId":"listDeployments","description":"Retrieve all deployments.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"list","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","description":"Filter by deployment group ID or name"},"required":false,"description":"Filter by deployment group ID or name","name":"deploymentGroup","in":"query"},{"schema":{"type":"string","maxLength":100,"description":"Filter by exact deployment name. Must be used with deploymentGroup."},"required":false,"description":"Filter by exact deployment name. Must be used with deploymentGroup.","name":"name","in":"query"},{"schema":{"type":"string","description":"Filter by manager ID"},"required":false,"description":"Filter by manager ID","name":"managerId","in":"query"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search deployments by name, public subdomain, or deployment group name"},"required":false,"description":"Search deployments by name, public subdomain, or deployment group name","name":"search","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"description":"Filter deployments by status"},"required":false,"description":"Filter deployments by status","name":"status","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Filter deployments by effective environment"},"required":false,"description":"Filter deployments by effective environment","name":"environment","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["release","deploymentGroup","project"]},"description":"Optional fields to include: release, deploymentGroup, project"},"required":false,"description":"Optional fields to include: release, deploymentGroup, project","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved deployments.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"400":{"description":"Invalid deployment list filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createDeployment","description":"Create a new deployment. Deployment group tokens automatically use their group. Workspace/project tokens must provide deploymentGroupId.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewDeploymentRequest"}}}},"responses":{"200":{"description":"Existing deployment returned for idempotent deployment-group registration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentResponse"}}}},"201":{"description":"Deployment created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentResponse"}}}},"400":{"description":"Bad request - deployment group has reached max deployments limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Forbidden - insufficient permissions to create deployments in this context.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project or deployment group not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment with the specified ID already exists, or a deployment with the same name already exists in the deployment group.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/stats":{"get":{"operationId":"getDeploymentStats","description":"Get aggregated deployment statistics. Returns total count and breakdown by status.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"getStats","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","description":"Filter by deployment group ID or name"},"required":false,"description":"Filter by deployment group ID or name","name":"deploymentGroup","in":"query"},{"schema":{"type":"string","description":"Filter by manager ID"},"required":false,"description":"Filter by manager ID","name":"managerId","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Filter deployments by effective environment"},"required":false,"description":"Filter deployments by effective environment","name":"environment","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"description":"Filter deployments by status"},"required":false,"description":"Filter deployments by status","name":"status","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search deployments by name or deployment group name"},"required":false,"description":"Search deployments by name or deployment group name","name":"search","in":"query"}],"responses":{"200":{"description":"Deployment statistics retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentStats"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/filter-environments":{"get":{"operationId":"listDeploymentFilterEnvironments","description":"List distinct effective environments used by deployments. Used for filter dropdowns.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"listFilterEnvironments","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"responses":{"200":{"description":"Distinct environments retrieved.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."}}},"required":["items"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/filter-deployment-groups":{"get":{"operationId":"listDeploymentFilterDeploymentGroups","description":"List deployment groups with deployment counts. Used for filter dropdowns.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"listFilterDeploymentGroups","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Search deployment groups by name"},"required":false,"description":"Search deployment groups by name","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return"},"required":false,"description":"Maximum number of items to return","name":"limit","in":"query"}],"responses":{"200":{"description":"Deployment groups for filter retrieved.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string"},"deploymentCount":{"type":"number"},"runningCount":{"type":"number","description":"Number of deployments in 'running' status"},"failedCount":{"type":"number","description":"Number of deployments in a failed status"},"inProgressCount":{"type":"number","description":"Number of deployments in an in-progress status (provisioning, updating, etc.)"}},"required":["id","name","deploymentCount","runningCount","failedCount","inProgressCount"]}}},"required":["items"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}":{"get":{"operationId":"getDeployment","description":"Retrieve a deployment by ID.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["release","deploymentGroup","project"]},"description":"Optional fields to include: release, deploymentGroup, project"},"required":false,"description":"Optional fields to include: release, deploymentGroup, project","name":"include","in":"query"}],"responses":{"200":{"description":"Retrieved deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentDetailResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/info":{"get":{"operationId":"getDeploymentConnectionInfo","description":"Get deployment connection information including command endpoint and resource URLs.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"getInfo","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Deployment connection information.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentConnectionInfo"}}}},"400":{"description":"Deployment not ready (no manager assigned).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/import":{"post":{"operationId":"importDeployment","description":"Import a deployment from resolved setup infrastructure such as CloudFormation, Terraform, or Helm.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"import","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportDeploymentRequest"}}}},"responses":{"200":{"description":"Deployment import was idempotent and returned an existing deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deployment"}}}},"201":{"description":"Deployment imported and created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deployment"}}}},"409":{"description":"Deployment with the specified ID already exists, or a deployment with the same name already exists in the deployment group.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/first-party-inputs":{"put":{"operationId":"setFirstPartyDeploymentInputs","description":"Store operator-provided input values on a first-party deployment session token so CLI/local deploys apply them.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"setFirstPartyDeploymentInputs","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetFirstPartyDeploymentInputsRequest"}}}},"responses":{"200":{"description":"Input values stored on the session token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetFirstPartyDeploymentInputsResponse"}}}},"400":{"description":"A deployment-group token scope is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"The token is not a first-party deployment session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Failed to store input values.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/setup-registration-operations":{"post":{"operationId":"createSetupRegistrationOperation","description":"Start a durable setup registration operation for CloudFormation, Terraform, or Helm.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"createSetupRegistrationOperation","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSetupRegistrationOperationRequest"}}}},"responses":{"202":{"description":"Setup registration operation accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetupRegistrationOperationResponse"}}}},"400":{"description":"Invalid setup registration operation request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed before callback acceptance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/setup-registration-operations/{id}":{"get":{"operationId":"getSetupRegistrationOperation","description":"Get setup registration operation status.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"getSetupRegistrationOperation","parameters":[{"schema":{"type":"string","pattern":"setupop_[0-9a-z]{28}$","description":"Unique identifier for the setup registration operation.","example":"setupop_y41lqnfosxuwqkzmiax7"},"required":true,"description":"Unique identifier for the setup registration operation.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Setup registration operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetupRegistrationOperationResponse"}}}},"404":{"description":"Setup registration operation not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/delete":{"post":{"operationId":"deleteDeployment","description":"Delete, detach, or forget a deployment by ID.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"delete","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDeploymentRequest"}}}},"responses":{"202":{"description":"Deployment deletion request accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDeploymentResponse"}}}},"400":{"description":"Cannot delete the deployment in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment already has a conflicting delete request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/redeploy":{"post":{"operationId":"redeployDeployment","description":"Redeploy a running deployment with the same release and fresh environment variables. Sets status to update-pending.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"redeploy","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Deployment redeployment triggered successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot redeploy - deployment must be running.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/pin-release":{"post":{"operationId":"pinDeploymentRelease","description":"Pin or unpin a running or runtime-failed deployment. Running deployments start an update; failed deployments retry toward the selected release.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"pinRelease","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PinReleaseRequest"}}}},"responses":{"202":{"description":"Release pin updated successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot pin release from the deployment's current lifecycle state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment or release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/release-channel":{"post":{"operationId":"setDeploymentReleaseChannel","x-speakeasy-group":"deployments","x-speakeasy-name-override":"setReleaseChannel","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"$ref":"#/components/schemas/ReleaseChannelName"}},"required":["channel"],"additionalProperties":false}}}},"responses":{"200":{"description":"Deployment release channel updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deployment"}}}},"400":{"description":"Channel release is unavailable for the deployment platform.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment or release channel not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/retry":{"post":{"operationId":"retryDeployment","description":"Retry a failed deployment operation. Uses alien-infra's retry mechanisms to resume from exact failure point.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"retry","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Deployment retry enqueued successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Deployment is not in a failed state that can be retried.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/inputs":{"get":{"operationId":"getDeploymentInputs","description":"Get the active input definitions and current non-secret values for a deployment.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"getInputs","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Deployment inputs returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentInputsResponse"}}}},"403":{"description":"Insufficient permission to read deployment inputs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment or release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateDeploymentInputs","description":"Update runtime stack inputs, rebuild their environment-variable mappings, and request a deployment update when runtime configuration changes.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"updateInputs","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentInputsRequest"}}}},"responses":{"200":{"description":"Deployment inputs saved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentInputsResponse"}}}},"400":{"description":"Input values are invalid for the deployment release.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Insufficient permission to update deployment inputs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment, project, or release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/environment-variables":{"patch":{"operationId":"updateDeploymentEnvironmentVariables","description":"Update a deployment's environment variables. If the deployment is running and not locked, the status will be changed to update-pending to trigger a deployment.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"updateEnvironmentVariables","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentEnvironmentVariablesRequest"}}}},"responses":{"202":{"description":"Environment variables updated successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Environment variables are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Insufficient permission to update environment variables.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/token":{"post":{"operationId":"createDeploymentToken","description":"Create a deployment token (deployment-scoped API key). The deployment must exist before creating a token.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"createToken","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentTokenRequest"}}}},"responses":{"201":{"description":"Deployment token created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentTokenResponse"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers":{"post":{"operationId":"createManager","description":"Create a new manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewManagerRequest"}}}},"responses":{"201":{"description":"Manager created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateManagerResponse"}}}},"400":{"description":"Invalid private manager setup method.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"A manager for this target already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"listManagers","description":"Retrieve all managers.","x-speakeasy-group":"managers","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search managers by name"},"required":false,"description":"Search managers by name","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum number of managers to return"},"required":false,"description":"Maximum number of managers to return","name":"limit","in":"query"}],"responses":{"200":{"description":"Retrieved managers.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Manager"}}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/setup-token":{"post":{"operationId":"retryManagerSetup","description":"Revoke previous private-manager setup tokens and issue a fresh setup token/config.","x-speakeasy-group":"managers","x-speakeasy-name-override":"retrySetup","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"201":{"description":"Fresh manager setup token generated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateManagerResponse"}}}},"400":{"description":"Manager setup cannot be retried in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager or setup config not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/retry":{"post":{"operationId":"retryManager","description":"Retry private-manager setup. Returns a fresh setup action before the internal deployment exists, or requests retry for the internal deployment after it exists.","x-speakeasy-group":"managers","x-speakeasy-name-override":"retry","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Manager retry handled successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerRetryResponse"}}}},"400":{"description":"Manager cannot be retried in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager or internal deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/cancel-setup":{"post":{"operationId":"cancelManagerSetup","description":"Cancel pending private-manager setup, revoke setup/runtime tokens, and remove the undeployed manager record.","x-speakeasy-group":"managers","x-speakeasy-name-override":"cancelSetup","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Manager setup canceled successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Manager setup cannot be canceled in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}":{"get":{"operationId":"getManager","description":"Retrieve a manager by ID.","x-speakeasy-group":"managers","x-speakeasy-name-override":"get","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved manager.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Manager"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteManager","description":"Delete a manager by ID.","x-speakeasy-group":"managers","x-speakeasy-name-override":"delete","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Manager deletion enqueued successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot delete the manager in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Internal deployment already has a conflicting delete request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/domain-binding":{"get":{"operationId":"getManagerDomainBinding","description":"Get the custom domain binding for a private manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"getDomainBinding","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved manager domain binding.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerDomainBindingResponse"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"put":{"operationId":"updateManagerDomainBinding","description":"Create, update, or remove the custom domain binding for a private manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"updateDomainBinding","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateManagerDomainBinding"}}}},"responses":{"200":{"description":"Manager domain binding updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerDomainBindingResponse"}}}},"400":{"description":"Invalid domain binding request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager or domain not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/management-config":{"get":{"operationId":"getManagerManagementConfig","description":"Get the management configuration for a manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"getManagementConfig","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"required":true,"description":"Represents the target cloud platform.","name":"platform","in":"query"}],"responses":{"200":{"description":"Management config retrieved successfully.","content":{"application/json":{"schema":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]}],"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."}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/provision":{"post":{"operationId":"provisionManager","description":"Enqueue provisioning for a manager by ID.","x-speakeasy-group":"managers","x-speakeasy-name-override":"provision","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Manager provisioning enqueued successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot provision the manager in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/update":{"post":{"operationId":"updateManager","description":"Update a manager to a specific release ID or active release.","x-speakeasy-group":"managers","x-speakeasy-name-override":"update","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateManagerRequest"}}}},"responses":{"202":{"description":"Manager update enqueued successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot update the manager in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/events":{"get":{"operationId":"listManagerEvents","description":"Retrieve all events of a manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"listEvents","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved events.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Event"}}},"required":["items"]}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/token":{"post":{"operationId":"generateManagerToken","description":"Generate a short-lived JWT for direct browser → manager communication. Used for fetching command payloads and querying logs without routing sensitive data through the platform API.","x-speakeasy-group":"managers","x-speakeasy-name-override":"generateManagerToken","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateManagerTokenRequest"}}}},"responses":{"200":{"description":"Manager access token and connection info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateManagerTokenResponse"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/binding-token":{"post":{"operationId":"generateManagerBindingToken","description":"Generate a short-lived deployment-scoped token for resolving opted-in remote bindings through the currently assigned manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"generateManagerBindingToken","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateManagerBindingTokenRequest"}}}},"responses":{"200":{"description":"Remote Bindings token and assigned manager URL.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateManagerBindingTokenResponse"}}}},"403":{"description":"The caller cannot update the deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Assigned manager or deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"The assigned manager is offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/gcp-oauth-provider/resolve":{"post":{"operationId":"resolveManagerGcpOAuthProvider","description":"Resolve decrypted project-level Google Cloud OAuth provider settings for a manager-side deployment bootstrap.","x-speakeasy-group":"managers","x-speakeasy-name-override":"resolveGcpOAuthProvider","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveManagerGcpOAuthProviderRequest"}}}},"responses":{"200":{"description":"Resolved Google Cloud OAuth provider settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveManagerGcpOAuthProviderResponse"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Manager cannot resolve this deployment group's project settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager, deployment group, or project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/heartbeat":{"post":{"operationId":"reportManagerHeartbeat","description":"Report Manager health status and metrics.","x-speakeasy-group":"managers","x-speakeasy-name-override":"reportHeartbeat","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerHeartbeatRequest"}}}},"responses":{"200":{"description":"Heartbeat acknowledged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerHeartbeatResponse"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/deployment":{"get":{"operationId":"getManagerDeployment","description":"Get deployment details for a private manager (internal deployment platform, status, resources).","x-speakeasy-group":"managers","x-speakeasy-name-override":"getDeployment","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Manager deployment details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerDeployment"}}}},"404":{"description":"Manager not found or has no internal deployment (alien-hosted managers don't have deployment info).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/operator-manifests/prepare":{"post":{"operationId":"prepareOperatorManifestPackage","tags":["operator-manifests"],"summary":"Prepare the white-labeled Operator image for an Operate install","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrepareOperatorManifestPackageRequest"}}}},"responses":{"200":{"description":"Operator image package created or reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrepareOperatorManifestPackageResponse"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/operator-manifests/render":{"post":{"operationId":"renderOperatorManifest","tags":["operator-manifests"],"summary":"Render a Kubernetes Operator manifest","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenderOperatorManifestRequest"}}}},"responses":{"200":{"description":"Operator manifest rendered successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenderOperatorManifestResponse"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Operator image package is not ready.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Invalid platform or manager configuration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/api-keys":{"get":{"operationId":"listAPIKeys","description":"Retrieve all API keys for the current workspace.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved API keys.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/APIKey"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createAPIKey","description":"Create a new API key.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAPIKeyRequest"}}}},"responses":{"201":{"description":"API key created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAPIKeyResponse"}}}},"403":{"description":"Insufficient permissions to create API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/api-keys/{id}":{"get":{"operationId":"getAPIKey","description":"Retrieve a specific API key.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"required":true,"description":"Unique identifier for the api key.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKey"}}}},"404":{"description":"API key not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateAPIKey","description":"Update an API key (enable/disable, change description).","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"update","parameters":[{"schema":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"required":true,"description":"Unique identifier for the api key.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAPIKeyRequest"}}}},"responses":{"200":{"description":"API key updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKey"}}}},"404":{"description":"API key not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"revokeAPIKey","description":"Revoke (soft delete) an API key.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"revoke","parameters":[{"schema":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"required":true,"description":"Unique identifier for the api key.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"API key revoked successfully."},"404":{"description":"API key not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/api-keys/batch-delete":{"post":{"operationId":"deleteAPIKeys","description":"Permanently delete multiple API keys.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"deleteMultiple","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteAPIKeysRequest"}}}},"responses":{"200":{"description":"API keys deleted successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"deletedCount":{"type":"number"}},"required":["deletedCount"]}}}},"403":{"description":"Insufficient permissions to delete API keys.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains":{"get":{"operationId":"listDomains","description":"List system domains and workspace domains.","x-speakeasy-group":"domains","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved domains.","content":{"application/json":{"schema":{"type":"object","properties":{"domains":{"type":"array","items":{"$ref":"#/components/schemas/DomainWithUsage"}}},"required":["domains"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createDomain","description":"Create a workspace domain and optional initial endpoints.","x-speakeasy-group":"domains","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"maxLength":253},"setup":{"type":"object","properties":{"deploymentPortal":{"type":"boolean"},"packages":{"type":"boolean"},"deploymentUrlProjectId":{"type":"string","nullable":true,"pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"managerIds":{"type":"array","items":{"type":"string"}}}}},"required":["domain"]}}}},"responses":{"200":{"description":"Returned an existing workspace domain claim.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"201":{"description":"Created domain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"400":{"description":"Domain is reserved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Insufficient permissions or plan limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Domain cleanup is still in progress.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains/{id}/endpoints":{"post":{"operationId":"createDomainEndpoint","description":"Create an endpoint under a workspace domain.","x-speakeasy-group":"domains","x-speakeasy-name-override":"createEndpoint","parameters":[{"schema":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"required":true,"description":"Unique identifier for the domain.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["deployment_portal","workspace_packages","manager_api","deployment_url_base"]},"owner":{"type":"object","properties":{"type":{"type":"string","enum":["workspace","project","manager"]},"id":{"type":"string"}},"required":["type","id"]}},"required":["kind"]}}}},"responses":{"201":{"description":"Created endpoint.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"400":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Endpoint cleanup is still in progress.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains/{id}":{"get":{"operationId":"getDomain","description":"Get domain by ID.","x-speakeasy-group":"domains","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"required":true,"description":"Unique identifier for the domain.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved domain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteDomain","description":"Delete a workspace domain.","x-speakeasy-group":"domains","x-speakeasy-name-override":"delete","parameters":[{"schema":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"required":true,"description":"Unique identifier for the domain.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Domain deletion requested.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Domain is in use.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains/{id}/refresh":{"post":{"operationId":"refreshDomain","description":"Refresh workspace domain verification.","x-speakeasy-group":"domains","x-speakeasy-name-override":"refresh","parameters":[{"schema":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"required":true,"description":"Unique identifier for the domain.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Domain verification refresh requested.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/events":{"get":{"operationId":"listEvents","description":"Retrieve all events.","x-speakeasy-group":"events","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","description":"Filter events to a single deployment."},"required":false,"description":"Filter events to a single deployment.","name":"deploymentId","in":"query"},{"schema":{"type":"string","description":"Filter events to a single release."},"required":false,"description":"Filter events to a single release.","name":"releaseId","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["releaseCreatedAt"]},"description":"Optional fields to include: releaseCreatedAt"},"required":false,"description":"Optional fields to include: releaseCreatedAt","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved events.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/EventListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/events/{id}":{"get":{"operationId":"getEvent","description":"Retrieve an event by ID.","x-speakeasy-group":"events","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"event_[0-9a-zA-Z]{28}$","description":"Unique identifier for the event.","example":"event_MtSA24M3pWuAkQYxgZxuRI"},"required":true,"description":"Unique identifier for the event.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved event.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Event"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/join-tokens":{"get":{"operationId":"listMachinesJoinTokens","x-speakeasy-group":"machines","x-speakeasy-name-override":"listJoinTokens","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Join tokens for a Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMachinesJoinTokensResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createMachinesJoinToken","x-speakeasy-group":"machines","x-speakeasy-name-override":"createJoinToken","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Newly minted Machines join token. Existing tokens keep working; the token value is returned only once.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMachinesJoinTokenResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/join-tokens/rotate":{"post":{"operationId":"rotateMachinesJoinToken","x-speakeasy-group":"machines","x-speakeasy-name-override":"rotateJoinToken","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Rotated Machines join token. Revokes all existing tokens, then mints a new one; the token value is returned only once.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateMachinesJoinTokenResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/join-tokens/{tokenId}":{"delete":{"operationId":"revokeMachinesJoinToken","x-speakeasy-group":"machines","x-speakeasy-name-override":"revokeJoinToken","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"tokenId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Machines join token revocation result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeMachinesJoinTokenResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/inventory":{"get":{"operationId":"listMachinesInventory","x-speakeasy-group":"machines","x-speakeasy-name-override":"listInventory","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Machine inventory for a Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMachinesInventoryResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/machines/{machineId}/drain":{"delete":{"operationId":"cancelMachinesMachineDrain","x-speakeasy-group":"machines","x-speakeasy-name-override":"cancelMachineDrain","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"machineId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Machines drain cancellation result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelMachinesMachineDrainResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"drainMachinesMachine","x-speakeasy-group":"machines","x-speakeasy-name-override":"drainMachine","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"machineId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DrainMachinesMachineRequest"}}}},"responses":{"200":{"description":"Machines drain request result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DrainMachinesMachineResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/machines/{machineId}":{"delete":{"operationId":"removeMachinesMachine","x-speakeasy-group":"machines","x-speakeasy-name-override":"removeMachine","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"machineId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Machines remove request result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveMachinesMachineResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands":{"get":{"operationId":"listCommands","description":"Retrieve commands. Use for dashboard analytics and command history.","x-speakeasy-group":"commands","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Filter by deployment ID","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":false,"description":"Filter by deployment ID","name":"deploymentId","in":"query"},{"schema":{"type":"string","enum":["PENDING_UPLOAD","PENDING","DISPATCHED","SUCCEEDED","FAILED","EXPIRED"],"description":"Filter by command state"},"required":false,"description":"Filter by command state","name":"state","in":"query"},{"schema":{"type":"string","maxLength":255,"description":"Filter by command name"},"required":false,"description":"Filter by command name","name":"name","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search commands by name"},"required":false,"description":"Search commands by name","name":"search","in":"query"},{"schema":{"type":"string","nullable":true,"format":"date-time","description":"Filter commands created after this date (ISO 8601)"},"required":false,"description":"Filter commands created after this date (ISO 8601)","name":"createdAfter","in":"query"},{"schema":{"type":"string","nullable":true,"format":"date-time","description":"Filter commands created before this date (ISO 8601)"},"required":false,"description":"Filter commands created before this date (ISO 8601)","name":"createdBefore","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["deployment","project"]},"description":"Optional fields to include: deployment, project"},"required":false,"description":"Optional fields to include: deployment, project","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved commands.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CommandListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createCommand","description":"Create command metadata. Called by manager when processing commands. Returns project info for routing decisions.","x-speakeasy-group":"commands","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCommandRequest"}}}},"responses":{"201":{"description":"Command created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCommandResponse"}}}},"400":{"description":"Deployment is not ready or has no assigned manager.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Multiple command-capable targets; an explicit target is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"Deployment has no command-capable targets.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"The deployment manager is unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/names":{"get":{"operationId":"listCommandNames","description":"List distinct command names. Use for filter dropdowns in the dashboard.","x-speakeasy-group":"commands","x-speakeasy-name-override":"listNames","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","maxLength":255,"description":"Search command names (prefix match)"},"required":false,"description":"Search command names (prefix match)","name":"search","in":"query"}],"responses":{"200":{"description":"Distinct command names.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCommandNamesResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/deployments":{"get":{"operationId":"listCommandDeployments","description":"List distinct deployments that have commands, including deployment group info. Use for filter dropdowns in the dashboard.","x-speakeasy-group":"commands","x-speakeasy-name-override":"listDeployments","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","maxLength":255,"description":"Search deployment or deployment group names"},"required":false,"description":"Search deployment or deployment group names","name":"search","in":"query"}],"responses":{"200":{"description":"Distinct deployments that have commands.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCommandDeploymentsResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/target":{"get":{"operationId":"resolveCommandTarget","description":"Resolve which resource a command for this deployment would be addressed to, and how it would be delivered. Fails when the deployment has no command-capable resources, or more than one and no explicit target was named.","x-speakeasy-group":"commands","x-speakeasy-name-override":"resolveTarget","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Deployment to resolve the target for","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Deployment to resolve the target for","name":"deploymentId","in":"query"},{"schema":{"type":"string","maxLength":255,"description":"Explicit resource id to resolve; must be a command-capable resource"},"required":false,"description":"Explicit resource id to resolve; must be a command-capable resource","name":"target","in":"query"}],"responses":{"200":{"description":"Resolved command target.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolvedCommandTarget"}}}},"404":{"description":"Deployment or target not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Multiple command-capable targets; an explicit target is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"Deployment has no command-capable targets.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/{id}":{"patch":{"operationId":"updateCommand","description":"Update command state. Called by manager when command is dispatched or completes.","x-speakeasy-group":"commands","x-speakeasy-name-override":"update","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCommandRequest"}}}},"responses":{"200":{"description":"Command updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Command"}}}},"404":{"description":"Command not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"getCommand","description":"Retrieve a command by ID.","x-speakeasy-group":"commands","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved command.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Command"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/{id}/dispatch":{"post":{"operationId":"dispatchCommand","description":"Atomically mark a command DISPATCHED unless it is already terminal. Returns whether the transition was applied.","x-speakeasy-group":"commands","x-speakeasy-name-override":"dispatch","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DispatchCommandRequest"}}}},"responses":{"200":{"description":"Dispatch attempt result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DispatchCommandResponse"}}}},"404":{"description":"Command not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/{id}/complete":{"post":{"operationId":"completeCommand","description":"Atomically transition a command to a terminal state (SUCCEEDED, FAILED, or EXPIRED) unless it is already terminal. Returns whether the transition was applied.","x-speakeasy-group":"commands","x-speakeasy-name-override":"complete","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteCommandRequest"}}}},"responses":{"200":{"description":"Completion attempt result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteCommandResponse"}}}},"404":{"description":"Command not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/{id}/increment-attempt":{"post":{"operationId":"incrementCommandAttempt","description":"Atomically increment the command's attempt counter and return the new value.","x-speakeasy-group":"commands","x-speakeasy-name-override":"incrementAttempt","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Attempt incremented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncrementCommandAttemptResponse"}}}},"404":{"description":"Command not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/debug-sessions":{"get":{"operationId":"listDebugSessions","description":"Retrieve debug sessions for dashboard audit. Filters: project, deployment, state, mode.","x-speakeasy-group":"debugSessions","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Filter by deployment ID","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":false,"description":"Filter by deployment ID","name":"deploymentId","in":"query"},{"schema":{"allOf":[{"$ref":"#/components/schemas/DebugSessionState"},{"description":"Filter by session state"}]},"required":false,"description":"Filter by session state","name":"state","in":"query"},{"schema":{"type":"string","enum":["push","pull"],"description":"Filter by deployment model (push/pull). Joins against the parent deployment."},"required":false,"description":"Filter by deployment model (push/pull). Joins against the parent deployment.","name":"mode","in":"query"},{"schema":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Filter by cloud provider. Joins against the parent deployment."},"required":false,"description":"Filter by cloud provider. Joins against the parent deployment.","name":"provider","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Paginated debug sessions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugSessionListResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createDebugSession","description":"Create a debug-session audit row. Called by the manager when a pull or push debug tunnel is opened. Workspace + project derived from deployment.","x-speakeasy-group":"debugSessions","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDebugSessionRequest"}}}},"responses":{"201":{"description":"Debug session created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugSession"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/debug-sessions/{id}":{"patch":{"operationId":"updateDebugSession","description":"Update debug-session state. Called by manager on tunnel attach, close, or deadline expiry.","x-speakeasy-group":"debugSessions","x-speakeasy-name-override":"update","parameters":[{"schema":{"type":"string","pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Unique identifier for the debug session.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"required":true,"description":"Unique identifier for the debug session.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDebugSessionRequest"}}}},"responses":{"200":{"description":"Debug session updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugSession"}}}},"404":{"description":"Debug session not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"getDebugSession","description":"Retrieve a debug session by ID.","x-speakeasy-group":"debugSessions","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Unique identifier for the debug session.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"required":true,"description":"Unique identifier for the debug session.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved debug session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugSession"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-info":{"get":{"operationId":"getDeploymentInfo","description":"Get deployment information for the deployment portal. Accepts both deployment-scoped and deployment-group-scoped API keys. Returns project information, package status/outputs, and either deployment or deployment group details depending on the token type. Poll this endpoint to check if packages are ready.","x-speakeasy-group":"deployment","x-speakeasy-name-override":"getInfo","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"required":false,"description":"Represents the target cloud platform.","name":"platform","in":"query"}],"responses":{"200":{"description":"Deployment information retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentInfo"}}}},"401":{"description":"Unauthorized — requires a deployment-scoped or deployment-group-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment, deployment group, or project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-info/compute-plan":{"post":{"operationId":"planDeploymentCompute","description":"Plan deployment compute for the active release before stack preparation. The response contains recommended machine and scale choices for cloud compute pools.","x-speakeasy-group":"deployment","x-speakeasy-name-override":"planCompute","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure"]},"setupMethod":{"$ref":"#/components/schemas/DeploymentSetupMethod"},"region":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"type":"object","properties":{"pools":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["fixed"]},"machines":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","machines"]},{"type":"object","properties":{"mode":{"type":"string","enum":["autoscale"]},"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","min","max"]}]},"default":{}}}},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}}}},"required":["platform","setupMethod","stackSettings"]}}}},"responses":{"200":{"description":"Compute plan returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentComputePlan"}}}},"401":{"description":"Unauthorized — requires a deployment-group scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment group, project, release, or manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-info/prepare-stack":{"post":{"operationId":"prepareDeploymentStack","description":"Prepare the active release stack for a deployment portal setup session. The response contains the generated stack shape plus setup compatibility metadata.","x-speakeasy-group":"deployment","x-speakeasy-name-override":"prepareStack","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure"]},"setupMethod":{"$ref":"#/components/schemas/DeploymentSetupMethod"},"region":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"type":"object","properties":{"pools":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["fixed"]},"machines":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","machines"]},{"type":"object","properties":{"mode":{"type":"string","enum":["autoscale"]},"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","min","max"]}]},"default":{}}}},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}}}},"required":["platform","setupMethod","stackSettings"]}}}},"responses":{"200":{"description":"Prepared stack returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreparedDeploymentStack"}}}},"401":{"description":"Unauthorized — requires a deployment-group scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment group, project, release, or manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/slack/install-url":{"post":{"operationId":"slackIntegrationInstallUrl","description":"Generate the Slack OAuth consent URL for this workspace.","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"installUrl","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"OAuth URL the dashboard should redirect the user to.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackInstallUrlResponse"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/slack/status":{"get":{"operationId":"slackIntegrationStatus","description":"Return the Slack install for this workspace (if any).","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"status","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackIntegrationStatus"}}}}}}},"/v1/integrations/slack/channels":{"get":{"operationId":"slackIntegrationChannels","description":"List public Slack channels for this workspace's install. Used by the dashboard's notification-channel picker.","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"listChannels","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Public channels.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackChannelsResponse"}}}},"400":{"description":"Workspace not connected to Slack.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/slack/notification-channel":{"put":{"operationId":"slackIntegrationSetNotificationChannel","description":"Configure which Slack channel receives ai-agent monitor reports.","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"setNotificationChannel","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackNotificationChannelRequest"}}}},"responses":{"200":{"description":"Channel saved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackNotificationChannelResponse"}}}},"400":{"description":"Not connected, or join failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/slack/installation":{"delete":{"operationId":"slackIntegrationUninstall","description":"Uninstall the Slack integration for this workspace. Revokes the bot token at Slack and deletes the row.","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"uninstall","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Uninstalled."}}}},"/v1/agent-sessions":{"get":{"operationId":"listAgentSessions","description":"List ai-agent monitor sessions for this workspace. Newest first, capped at 50.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Sessions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionListResponse"}}}}}}},"/v1/agent-sessions/{id}":{"get":{"operationId":"getAgentSession","description":"Retrieve one ai-agent monitor session by id.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionDetail"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/agent-sessions/{id}/events":{"get":{"operationId":"listAgentSessionEvents","description":"Incrementally read a session's event log (steps, tool calls, report deltas, approvals, status transitions). Pass the previous response's `latestSeq` as `after` to fetch only new events.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"events","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"default":0},"required":false,"name":"after","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":500,"default":200},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Events after the cursor, oldest first.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionEventsResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/agent-sessions/{id}/approve":{"post":{"operationId":"approveAgentSession","description":"Approve a halted ai-agent monitor session. Proxies to the ai-agent service, minting a fresh CLI session for the caller so the ai-agent's own auth applies.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"approve","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Already resumed / no-op.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionApproveResponse"}}}},"202":{"description":"Approved; resume enqueued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionApproveResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"AI agent service is not configured.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/agent-sessions/{id}/stop":{"post":{"operationId":"stopAgentSession","description":"Stop (cancel) a running, queued, or halted ai-agent monitor session. Proxies to the ai-agent service, minting a fresh CLI session for the caller so the ai-agent's own auth applies. Idempotent — stopping an already-terminal session is a 200 no-op.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"stop","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Already terminal / no-op.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionStopResponse"}}}},"202":{"description":"Cancel accepted; session stopped.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionStopResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"AI agent service is not configured.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/list":{"post":{"operationId":"syncList","description":"List full deployment records for manager operational loops. This endpoint is intentionally separate from the public deployments list, which returns lightweight UI rows.","x-speakeasy-group":"sync","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncListRequest"}}}},"responses":{"200":{"description":"Full deployment records returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncListResponse"}}}},"400":{"description":"Bad request - invalid manager or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/context":{"post":{"operationId":"syncContext","description":"Get computed deployment state and configuration for a manager-side operation without acquiring the deployment reconciliation lock.","x-speakeasy-group":"sync","x-speakeasy-name-override":"context","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncContextRequest"}}}},"responses":{"200":{"description":"Computed deployment context returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncAcquireResponseDeployment"}}}},"404":{"description":"Deployment not found or not assigned to this manager.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Failed to build deployment context.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/acquire":{"post":{"operationId":"syncAcquire","description":"Acquire a batch of deployments for processing. Used by Manager to atomically lock deployments matching filters. Each deployment in the batch must be released after processing.","x-speakeasy-group":"sync","x-speakeasy-name-override":"acquire","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncAcquireRequest"}}}},"responses":{"200":{"description":"Deployments acquired successfully (empty arrays if none available). Failures indicate deployments that were locked but failed during context building - their locks have been released.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncAcquireResponse"}}}},"400":{"description":"Bad request - invalid manager or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/reconcile":{"post":{"operationId":"syncReconcile","description":"Reconcile deployment state. Push model requests that include a session verify lock ownership. Pull model state reports are accepted as authz-gated agent progress even when they carry an agent-sync session. Accepts full DeploymentState after step() execution.","x-speakeasy-group":"sync","x-speakeasy-name-override":"reconcile","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncReconcileRequest"}}}},"responses":{"200":{"description":"State reconciled successfully. If target is present, continue deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncReconcileResponse"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment locked (pull) or session mismatch (push).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/renew":{"post":{"operationId":"syncRenew","x-speakeasy-group":"sync","x-speakeasy-name-override":"renew","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncRenewRequest"}}}},"responses":{"200":{"description":"Renewal processed. Inspect `leases` for per-deployment outcomes; a lost lease is reported there rather than failing the whole batch.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"True when every requested deployment was renewed."},"leases":{"type":"array","items":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"renewed":{"type":"boolean","description":"False when this session no longer holds a live lease."},"leaseExpiresAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["deploymentId","renewed","leaseExpiresAt"]},"description":"Per-deployment renewal outcome."}},"required":["success","leases"]}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"The session no longer owns the deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/release":{"post":{"operationId":"syncRelease","description":"Release a deployment lock. Must be called after processing an acquired deployment, even if processing failed. This is critical to avoid deadlocks.","x-speakeasy-group":"sync","x-speakeasy-name-override":"release","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncReleaseRequest"}}}},"responses":{"200":{"description":"Lock released successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resources":{"get":{"operationId":"listInventory","x-speakeasy-group":"resources","x-speakeasy-name-override":"listInventory","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string"},"required":false,"name":"deploymentGroupId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"deploymentId","in":"query"}],"responses":{"200":{"description":"Unified managed and observed resource inventory rows.","content":{"application/json":{"schema":{"type":"object","properties":{"resources":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"resourceType":{"type":"string"},"resourceId":{"type":"string"},"name":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"deploymentCount":{"type":"integer"},"attentionCount":{"type":"integer"},"lastObservedAt":{"type":"string","format":"date-time"},"source":{"type":"string","enum":["managed"]},"deploymentId":{"type":"string"},"deploymentName":{"type":"string"}},"required":["resourceType","resourceId","name","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","deploymentCount","attentionCount","lastObservedAt","source","deploymentId","deploymentName"]},{"type":"object","properties":{"source":{"type":"string","enum":["observed"]},"deploymentId":{"type":"string"},"deploymentName":{"type":"string"},"deploymentGroupId":{"type":"string","nullable":true},"deploymentGroupName":{"type":"string","nullable":true},"resourceType":{"type":"string"},"resourceId":{"type":"string"},"name":{"type":"string"},"rawKind":{"type":"string"},"alienResourceId":{"type":"string","nullable":true},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"deploymentCount":{"type":"integer"},"attentionCount":{"type":"integer"},"lastObservedAt":{"type":"string","format":"date-time"}},"required":["source","deploymentId","deploymentName","deploymentGroupId","deploymentGroupName","resourceType","resourceId","name","rawKind","alienResourceId","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","deploymentCount","attentionCount","lastObservedAt"]}]}}},"required":["resources"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resources/{area}":{"get":{"operationId":"listResourceOverview","x-speakeasy-group":"resources","x-speakeasy-name-override":"listOverview","parameters":[{"schema":{"type":"string","enum":["container","worker","daemon"]},"required":true,"name":"area","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string"},"required":false,"name":"deploymentGroupId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"deploymentId","in":"query"}],"responses":{"200":{"description":"Compute resource overview rows from latest heartbeats.","content":{"application/json":{"schema":{"type":"object","properties":{"resources":{"type":"array","items":{"type":"object","properties":{"resourceType":{"type":"string"},"resourceId":{"type":"string"},"name":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"deploymentCount":{"type":"integer"},"attentionCount":{"type":"integer"},"lastObservedAt":{"type":"string","format":"date-time"}},"required":["resourceType","resourceId","name","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","deploymentCount","attentionCount","lastObservedAt"]}}},"required":["resources"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resources/{area}/{resourceId}/deployments":{"get":{"operationId":"listResourceDeployments","x-speakeasy-group":"resources","x-speakeasy-name-override":"listDeployments","parameters":[{"schema":{"type":"string","enum":["container","worker","daemon"]},"required":true,"name":"area","in":"path"},{"schema":{"type":"string"},"required":true,"name":"resourceId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string"},"required":false,"name":"deploymentGroupId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"deploymentId","in":"query"}],"responses":{"200":{"description":"Deployments where the resource is installed.","content":{"application/json":{"schema":{"type":"object","properties":{"resourceType":{"type":"string"},"resourceId":{"type":"string"},"deployments":{"type":"array","items":{"type":"object","properties":{"deploymentId":{"type":"string"},"deploymentName":{"type":"string"},"deploymentGroupId":{"type":"string","nullable":true},"deploymentGroupName":{"type":"string","nullable":true},"resourceType":{"type":"string"},"resourceId":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"observedAt":{"type":"string","format":"date-time"}},"required":["deploymentId","deploymentName","deploymentGroupId","deploymentGroupName","resourceType","resourceId","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","observedAt"]}}},"required":["resourceType","resourceId","deployments"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resources/{area}/deployments/{deploymentId}/{resourceId}":{"get":{"operationId":"getResourceDeploymentDetail","x-speakeasy-group":"resources","x-speakeasy-name-override":"getDeploymentDetail","parameters":[{"schema":{"type":"string","enum":["container","worker","daemon"]},"required":true,"name":"area","in":"path"},{"schema":{"type":"string"},"required":true,"name":"deploymentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"resourceId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"responses":{"200":{"description":"Latest heartbeat detail for one compute resource deployment.","content":{"application/json":{"schema":{"type":"object","properties":{"deployment":{"type":"object","properties":{"deploymentId":{"type":"string"},"deploymentName":{"type":"string"},"deploymentGroupId":{"type":"string","nullable":true},"deploymentGroupName":{"type":"string","nullable":true},"resourceType":{"type":"string"},"resourceId":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"observedAt":{"type":"string","format":"date-time"},"desiredImage":{"type":"string","nullable":true}},"required":["deploymentId","deploymentName","deploymentGroupId","deploymentGroupName","resourceType","resourceId","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","observedAt","desiredImage"]},"heartbeat":{"oneOf":[{"type":"object","properties":{"status":{"type":"string","enum":["available"]},"deploymentId":{"type":"string"},"resourceId":{"type":"string"},"resourceType":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"staleAt":{"type":"string","format":"date-time"},"platformStale":{"type":"boolean"},"heartbeat":{"type":"object","properties":{"backend":{"type":"string","enum":["aws","gcp","azure","kubernetes","local","managed","external","test"]},"controllerPlatform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"data":{"oneOf":[{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"blockPublicAcls":{"type":"boolean","nullable":true},"blockPublicPolicy":{"type":"boolean","nullable":true},"bucketAclPresent":{"type":"boolean","nullable":true},"bucketLocation":{"type":"string","nullable":true},"bucketPolicyPresent":{"type":"boolean","nullable":true},"encryptionConfigPresent":{"type":"boolean"},"encryptionEnabled":{"type":"boolean","nullable":true},"ignorePublicAcls":{"type":"boolean","nullable":true},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"publicAccessBlockPresent":{"type":"boolean"},"region":{"type":"string","nullable":true},"restrictPublicBuckets":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"versioningEnabled":{"type":"boolean","nullable":true},"versioningStatus":{"type":"string","nullable":true}},"required":["encryptionConfigPresent","lifecyclePresent","name","publicAccessBlockPresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsS3"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"bucketId":{"type":"string","nullable":true},"defaultKmsKeyName":{"type":"string","nullable":true},"encryptionConfigPresent":{"type":"boolean"},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":"integer","nullable":true,"minimum":0},"location":{"type":"string","nullable":true},"locationType":{"type":"string","nullable":true},"name":{"type":"string"},"publicAccessPrevention":{"type":"string","nullable":true},"retentionPeriod":{"type":"string","nullable":true},"retentionPolicyEffectiveTime":{"type":"string","nullable":true},"retentionPolicyIsLocked":{"type":"boolean","nullable":true},"softDeleteEffectiveTime":{"type":"string","nullable":true},"softDeleteRetentionDurationSeconds":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"storageClass":{"type":"string","nullable":true},"uniformBucketLevelAccessEnabled":{"type":"boolean","nullable":true},"uniformBucketLevelAccessLockedTime":{"type":"string","nullable":true},"versioningEnabled":{"type":"boolean","nullable":true}},"required":["encryptionConfigPresent","lifecyclePresent","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudStorage"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessTier":{"type":"string","nullable":true},"accountKind":{"type":"string","nullable":true},"allowBlobPublicAccess":{"type":"boolean","nullable":true},"blobDeleteRetentionDays":{"type":"integer","nullable":true,"minimum":0},"blobDeleteRetentionEnabled":{"type":"boolean","nullable":true},"blobEncryptionEnabled":{"type":"boolean","nullable":true},"blobVersioningEnabled":{"type":"boolean","nullable":true},"changeFeedEnabled":{"type":"boolean","nullable":true},"changeFeedRetentionDays":{"type":"integer","nullable":true,"minimum":0},"containerDeleteRetentionDays":{"type":"integer","nullable":true,"minimum":0},"containerDeleteRetentionEnabled":{"type":"boolean","nullable":true},"containerPublicAccess":{"type":"string","nullable":true},"encryptionKeySource":{"type":"string","nullable":true},"fileEncryptionEnabled":{"type":"boolean","nullable":true},"location":{"type":"string","nullable":true},"name":{"type":"string"},"primaryLocation":{"type":"string","nullable":true},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"queueEncryptionEnabled":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"secondaryLocation":{"type":"string","nullable":true},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"statusOfPrimary":{"type":"string","nullable":true},"statusOfSecondary":{"type":"string","nullable":true},"storageAccountName":{"type":"string","nullable":true},"tableEncryptionEnabled":{"type":"boolean","nullable":true}},"required":["name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureBlob"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"isDirectory":{"type":"boolean","nullable":true},"modifiedAt":{"type":"string","nullable":true,"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["path","pathExists","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["storage"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"codeSha256":{"type":"string","nullable":true},"functionName":{"type":"string"},"functionUrlAuthType":{"type":"string","nullable":true},"functionUrlCorsPresent":{"type":"boolean"},"lastModified":{"type":"string","nullable":true},"lastUpdateStatus":{"type":"string","nullable":true},"lastUpdateStatusReason":{"type":"string","nullable":true},"lastUpdateStatusReasonCode":{"type":"string","nullable":true},"layerCount":{"type":"integer","minimum":0},"memorySizeMb":{"type":"integer","nullable":true},"packageType":{"type":"string","nullable":true},"revisionId":{"type":"string","nullable":true},"runtime":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"stateReason":{"type":"string","nullable":true},"stateReasonCode":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"timeoutSeconds":{"type":"integer","nullable":true},"triggerCount":{"type":"integer","minimum":0},"version":{"type":"string","nullable":true}},"required":["functionName","functionUrlCorsPresent","layerCount","status","triggerCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsLambda"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"containerImage":{"type":"string","nullable":true},"cpuLimit":{"type":"string","nullable":true},"generation":{"type":"integer","nullable":true},"latestCreatedRevision":{"type":"string","nullable":true},"latestReadyRevision":{"type":"string","nullable":true},"maxInstanceCount":{"type":"integer","nullable":true},"memoryLimit":{"type":"string","nullable":true},"minInstanceCount":{"type":"integer","nullable":true},"observedGeneration":{"type":"integer","nullable":true},"region":{"type":"string","nullable":true},"service":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"trafficCount":{"type":"integer","minimum":0},"uri":{"type":"string","nullable":true},"urls":{"type":"array","items":{"type":"string"}}},"required":["service","status","trafficCount","urls"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudRun"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"appName":{"type":"string"},"cpu":{"type":"number","nullable":true},"environmentName":{"type":"string","nullable":true},"ingressFqdn":{"type":"string","nullable":true},"maxReplicas":{"type":"integer","nullable":true},"memory":{"type":"string","nullable":true},"minReplicas":{"type":"integer","nullable":true},"provisioningState":{"type":"string","nullable":true},"revision":{"type":"string","nullable":true},"runningStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["appName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerApps"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"triggerCount":{"type":"integer","minimum":0},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"]}},"required":["events","name","namespace","pods","replicas","status","triggerCount","workloadKind"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"imagePathPresent":{"type":"boolean"},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pid":{"type":"integer","nullable":true,"minimum":0},"process":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"readinessProbeOk":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"triggerCount":{"type":"integer","minimum":0}},"required":["commandSupported","events","imagePathPresent","status","triggerCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["worker"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"attentionCount":{"type":"integer","minimum":0},"containerId":{"type":"string"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"image":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"observedImage":{"type":"string","nullable":true},"replicaUnits":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"schedulingMode":{"type":"string","enum":["replicated","stateful","daemon"]},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["attentionCount","containerId","events","replicaUnits","replicas","schedulingMode","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["horizonPlatform"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"]}},"required":["events","name","namespace","pods","replicas","status","workloadKind"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"bindMountCount":{"type":"integer","minimum":0},"containerId":{"type":"string","nullable":true},"containerUnit":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"image":{"type":"string","nullable":true},"localUrl":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string","nullable":true},"portCount":{"type":"integer","minimum":0},"restartCount":{"type":"integer","nullable":true,"minimum":0},"runtimeReachable":{"type":"boolean"},"runtimeStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["bindMountCount","events","portCount","runtimeReachable","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["container"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aws"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcp"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azure"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["machines"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]}},"required":["commandSupported","events","name","namespace","pods","replicas","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"daemonInstance":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"daemonName":{"type":"string"},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"exitReason":{"type":"string","nullable":true},"imagePathPresent":{"type":"boolean"},"pid":{"type":"integer","nullable":true,"minimum":0},"restartCount":{"type":"integer","nullable":true,"minimum":0},"runtimeId":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["commandSupported","events","imagePathPresent","runtimeId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["daemon"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aws"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcp"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azure"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"machines":{"type":"array","items":{"type":"object","properties":{"capacityGroup":{"type":"string"},"cpuCores":{"type":"number","nullable":true},"drainBlockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainForce":{"type":"boolean"},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"horizondVersion":{"type":"string","nullable":true},"lastHeartbeat":{"type":"string"},"machineId":{"type":"string"},"memoryBytes":{"type":"integer","nullable":true},"overlayIp":{"type":"string","nullable":true},"publicIp":{"type":"string","nullable":true},"replicaCount":{"type":"integer"},"status":{"type":"string"},"zone":{"type":"string"}},"required":["capacityGroup","drainForce","lastHeartbeat","machineId","replicaCount","status","zone"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","machines","name","nodes","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["machines"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"dockerApiVersion":{"type":"string","nullable":true},"dockerArch":{"type":"string","nullable":true},"dockerAvailable":{"type":"boolean"},"dockerOs":{"type":"string","nullable":true},"dockerVersion":{"type":"string","nullable":true},"hostIdentifier":{"type":"string","nullable":true},"name":{"type":"string"},"networkAvailable":{"type":"boolean"},"networkName":{"type":"string","nullable":true},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"runningContainers":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"trackedContainers":{"type":"integer","nullable":true,"minimum":0}},"required":["dockerAvailable","name","networkAvailable","nodes","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["compute-cluster"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string","nullable":true},"nodeCounts":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"nodeStatuses":{"type":"array","items":{"type":"object","properties":{"allocatable":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pods":{"type":"integer","nullable":true,"minimum":0}}},"capacity":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pods":{"type":"integer","nullable":true,"minimum":0}}},"conditions":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"containerRuntimeVersion":{"type":"string","nullable":true},"kubeletVersion":{"type":"string","nullable":true},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"name":{"type":"string"},"ready":{"type":"boolean"},"roles":{"type":"array","items":{"type":"string"}},"uid":{"type":"string","nullable":true},"usage":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}}},{"nullable":true}]}},"required":["allocatable","capacity","labels","name","ready","roles"]}},"podCounts":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string","nullable":true}},"required":["events","name","nodeCounts","podCounts","status"]},"resourceType":{"type":"string","enum":["kubernetes-cluster"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"approximateCounts":{"type":"boolean"},"approximateDelayedMessages":{"type":"integer","nullable":true,"minimum":0},"approximateInFlightMessages":{"type":"integer","nullable":true,"minimum":0},"approximateVisibleMessages":{"type":"integer","nullable":true,"minimum":0},"contentBasedDeduplication":{"type":"boolean","nullable":true},"deduplicationScope":{"type":"string","nullable":true},"delaySeconds":{"type":"integer","nullable":true,"minimum":0},"fifoQueue":{"type":"boolean","nullable":true},"fifoThroughputLimit":{"type":"string","nullable":true},"kmsDataKeyReusePeriodSeconds":{"type":"integer","nullable":true,"minimum":0},"kmsMasterKeyId":{"type":"string","nullable":true},"maximumMessageSize":{"type":"integer","nullable":true,"minimum":0},"messageRetentionPeriodSeconds":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"queueArn":{"type":"string","nullable":true},"queueUrl":{"type":"string","nullable":true},"receiveMessageWaitTimeSeconds":{"type":"integer","nullable":true,"minimum":0},"redriveAllowPolicy":{"type":"string","nullable":true},"redrivePolicy":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"sqsManagedSseEnabled":{"type":"boolean","nullable":true},"sseEnabled":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"visibilityTimeoutSeconds":{"type":"integer","nullable":true,"minimum":0}},"required":["approximateCounts","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsSqs"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"kmsKeyName":{"type":"string","nullable":true},"messageStorageAllowedPersistenceRegions":{"type":"array","items":{"type":"string"}},"messageStorageEnforceInTransit":{"type":"boolean","nullable":true},"projectId":{"type":"string","nullable":true},"schemaEncoding":{"type":"string","nullable":true},"schemaFirstRevisionId":{"type":"string","nullable":true},"schemaLastRevisionId":{"type":"string","nullable":true},"schemaName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"subscriptionAckDeadlineSeconds":{"type":"integer","nullable":true,"minimum":0},"subscriptionDeadLetterMaxDeliveryAttempts":{"type":"integer","nullable":true,"minimum":0},"subscriptionDeadLetterTopic":{"type":"string","nullable":true},"subscriptionDetached":{"type":"boolean","nullable":true},"subscriptionEnableMessageOrdering":{"type":"boolean","nullable":true},"subscriptionFilter":{"type":"string","nullable":true},"subscriptionFullName":{"type":"string","nullable":true},"subscriptionLabels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"subscriptionMessageRetentionDuration":{"type":"string","nullable":true},"subscriptionName":{"type":"string","nullable":true},"subscriptionPushAttributes":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"subscriptionPushConfigPresent":{"type":"boolean","nullable":true},"subscriptionPushEndpoint":{"type":"string","nullable":true},"subscriptionPushNoWrapperWriteMetadata":{"type":"boolean","nullable":true},"subscriptionPushOidcAudience":{"type":"string","nullable":true},"subscriptionPushOidcServiceAccountEmail":{"type":"string","nullable":true},"subscriptionPushPubsubWrapperWriteMetadata":{"type":"boolean","nullable":true},"subscriptionRetainAckedMessages":{"type":"boolean","nullable":true},"subscriptionState":{"type":"string","nullable":true},"topicFullName":{"type":"string","nullable":true},"topicLabels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"topicMessageRetentionDuration":{"type":"string","nullable":true},"topicName":{"type":"string"},"topicState":{"type":"string","nullable":true}},"required":["messageStorageAllowedPersistenceRegions","status","subscriptionLabels","subscriptionPushAttributes","topicLabels","topicName"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpPubSub"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessedAt":{"type":"string","nullable":true},"activeMessageCount":{"type":"integer","nullable":true,"minimum":0},"autoDeleteOnIdle":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"deadLetterMessageCount":{"type":"integer","nullable":true,"minimum":0},"deadLetteringOnMessageExpiration":{"type":"boolean","nullable":true},"defaultMessageTimeToLive":{"type":"string","nullable":true},"duplicateDetectionHistoryTimeWindow":{"type":"string","nullable":true},"enableBatchedOperations":{"type":"boolean","nullable":true},"enableExpress":{"type":"boolean","nullable":true},"enablePartitioning":{"type":"boolean","nullable":true},"endpoint":{"type":"string","nullable":true},"forwardDeadLetteredMessagesTo":{"type":"string","nullable":true},"forwardTo":{"type":"string","nullable":true},"lockDuration":{"type":"string","nullable":true},"maxDeliveryCount":{"type":"integer","nullable":true,"minimum":0},"maxMessageSizeInKilobytes":{"type":"integer","nullable":true,"minimum":0},"maxSizeInMegabytes":{"type":"integer","nullable":true,"minimum":0},"messageCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"namespaceName":{"type":"string"},"queueStatus":{"type":"string","nullable":true},"requiresDuplicateDetection":{"type":"boolean","nullable":true},"requiresSession":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"scheduledMessageCount":{"type":"integer","nullable":true,"minimum":0},"sizeInBytes":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"transferDeadLetterMessageCount":{"type":"integer","nullable":true,"minimum":0},"transferMessageCount":{"type":"integer","nullable":true,"minimum":0},"updatedAt":{"type":"string","nullable":true}},"required":["name","namespaceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureServiceBus"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"name":{"type":"string"},"path":{"type":"string","nullable":true},"serviceStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["queue"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"billingMode":{"type":"string","nullable":true},"deletionProtectionEnabled":{"type":"boolean","nullable":true},"globalSecondaryIndexCount":{"type":"integer","nullable":true,"minimum":0},"itemCount":{"type":"integer","nullable":true,"minimum":0},"keySchema":{"type":"array","items":{"type":"object","properties":{"attributeName":{"type":"string"},"keyType":{"type":"string"}},"required":["attributeName","keyType"]}},"localSecondaryIndexCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"region":{"type":"string","nullable":true},"replicaCount":{"type":"integer","nullable":true,"minimum":0},"restoreInProgress":{"type":"boolean","nullable":true},"sseStatus":{"type":"string","nullable":true},"sseType":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"streamEnabled":{"type":"boolean","nullable":true},"streamViewType":{"type":"string","nullable":true},"tableArn":{"type":"string","nullable":true},"tableClass":{"type":"string","nullable":true},"tableSizeBytes":{"type":"integer","nullable":true,"minimum":0},"tableStatus":{"type":"string","nullable":true},"ttlAttributeName":{"type":"string","nullable":true},"ttlStatus":{"type":"string","nullable":true}},"required":["keySchema","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsDynamoDb"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"appEngineIntegrationMode":{"type":"string","nullable":true},"cmekEnabled":{"type":"boolean"},"concurrencyMode":{"type":"string","nullable":true},"createTime":{"type":"string","nullable":true},"databaseEdition":{"type":"string","nullable":true},"databaseName":{"type":"string"},"databaseType":{"type":"string","nullable":true},"deleteProtectionState":{"type":"string","nullable":true},"deleteTime":{"type":"string","nullable":true},"earliestVersionTime":{"type":"string","nullable":true},"endpoint":{"type":"string","nullable":true},"locationId":{"type":"string","nullable":true},"pointInTimeRecoveryEnablement":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"sourceInfoPresent":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updateTime":{"type":"string","nullable":true},"versionRetentionPeriod":{"type":"string","nullable":true}},"required":["cmekEnabled","databaseName","sourceInfoPresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpFirestore"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"signedIdentifierCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"storageAccountKind":{"type":"string","nullable":true},"storageAccountLocation":{"type":"string","nullable":true},"storageAccountName":{"type":"string"},"storageAccountPrimaryStatus":{"type":"string","nullable":true},"storageAccountProvisioningState":{"type":"string","nullable":true},"storageAccountResourceId":{"type":"string","nullable":true},"tableExists":{"type":"boolean"},"tableName":{"type":"string"}},"required":["status","storageAccountName","tableExists","tableName"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureTable"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cloudMetadataSupported":{"type":"boolean"},"isDirectory":{"type":"boolean","nullable":true},"name":{"type":"string"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["cloudMetadataSupported","name","path","pathExists","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["kv"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"clusterIdentifier":{"type":"string"},"endpoint":{"type":"string","nullable":true},"engineVersion":{"type":"string","nullable":true},"neverPauses":{"type":"boolean","description":"True when a `minCapacity: 0` instance has not reached 0 ACU over the observation\nwindow — it is silently paying always-on prices (auto-pause verification)."},"serverlessCapacity":{"type":"number","nullable":true,"description":"Latest sampled `ServerlessDatabaseCapacity` (ACU)."},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["clusterIdentifier","neverPauses","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aurora"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"databaseVersion":{"type":"string","nullable":true},"instanceName":{"type":"string"},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["instanceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["cloudSql"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"serverName":{"type":"string"},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string","nullable":true}},"required":["serverName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["flexibleServer"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"name":{"type":"string"},"port":{"type":"integer","nullable":true,"minimum":0},"processRunning":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string"}},"required":["name","processRunning","status","version"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["postgres"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string"},"hasMoreParameters":{"type":"boolean","nullable":true},"latestModifiedAt":{"type":"string","nullable":true,"format":"date-time"},"parameterMetadataSampled":{"type":"boolean"},"prefix":{"type":"string"},"region":{"type":"string"},"sampledAdvancedTierCount":{"type":"integer","nullable":true,"minimum":0},"sampledKmsKeyMetadataPresentCount":{"type":"integer","nullable":true,"minimum":0},"sampledParameterCount":{"type":"integer","nullable":true,"minimum":0},"sampledSecureStringCount":{"type":"integer","nullable":true,"minimum":0},"sampledStringCount":{"type":"integer","nullable":true,"minimum":0},"sampledStringListCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["accountId","parameterMetadataSampled","prefix","region","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsParameterStore"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string"},"prefix":{"type":"string"},"projectId":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["location","prefix","projectId","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpSecretManager"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessPolicyCount":{"type":"integer","minimum":0},"location":{"type":"string","nullable":true},"name":{"type":"string"},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string"},"purgeProtectionEnabled":{"type":"boolean","nullable":true},"rbacAuthorizationEnabled":{"type":"boolean"},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"secretMetadataListed":{"type":"boolean"},"skuFamily":{"type":"string","nullable":true},"skuName":{"type":"string","nullable":true},"softDeleteEnabled":{"type":"boolean"},"softDeleteRetentionDays":{"type":"integer"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vaultUri":{"type":"string","nullable":true}},"required":["accessPolicyCount","name","privateEndpointConnectionCount","publicNetworkAccess","rbacAuthorizationEnabled","secretMetadataListed","softDeleteEnabled","softDeleteRetentionDays","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureKeyVault"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"type":"string"},"prefix":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["namespace","prefix","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetesSecret"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"isDirectory":{"type":"boolean","nullable":true},"modifiedAt":{"type":"string","nullable":true,"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":"boolean","nullable":true},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["path","pathExists","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["vault"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"assumeRolePolicyPresent":{"type":"boolean"},"attachedPolicyCount":{"type":"integer","minimum":0},"attachedPolicyNames":{"type":"array","items":{"type":"string"}},"createDate":{"type":"string"},"description":{"type":"string","nullable":true},"inlinePolicyCount":{"type":"integer","minimum":0},"inlinePolicyNames":{"type":"array","items":{"type":"string"}},"lastUsedDate":{"type":"string","nullable":true},"lastUsedRegion":{"type":"string","nullable":true},"managedTagCount":{"type":"integer","minimum":0},"maxSessionDuration":{"type":"integer","nullable":true},"path":{"type":"string"},"permissionsBoundaryArn":{"type":"string","nullable":true},"permissionsBoundaryType":{"type":"string","nullable":true},"roleArn":{"type":"string"},"roleId":{"type":"string"},"roleName":{"type":"string"},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tagCount":{"type":"integer","minimum":0}},"required":["assumeRolePolicyPresent","attachedPolicyCount","attachedPolicyNames","createDate","inlinePolicyCount","inlinePolicyNames","managedTagCount","path","roleArn","roleId","roleName","stackPermissionsApplied","status","tagCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsIamRole"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true},"disabled":{"type":"boolean","nullable":true},"displayName":{"type":"string","nullable":true},"email":{"type":"string"},"etag":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"oauth2ClientId":{"type":"string","nullable":true},"projectBindingCount":{"type":"integer","minimum":0},"projectId":{"type":"string","nullable":true},"projectRoles":{"type":"array","items":{"type":"string"}},"serviceAccountBindingCount":{"type":"integer","minimum":0},"serviceAccountRoles":{"type":"array","items":{"type":"string"}},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"uniqueId":{"type":"string","nullable":true}},"required":["email","projectBindingCount","projectRoles","serviceAccountBindingCount","serviceAccountRoles","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"clientId":{"type":"string","nullable":true},"customRoleDefinitionCount":{"type":"integer","minimum":0},"customRoleDefinitionIds":{"type":"array","items":{"type":"string"}},"isolationScope":{"type":"string","nullable":true},"location":{"type":"string"},"managedTagCount":{"type":"integer","minimum":0},"name":{"type":"string"},"principalId":{"type":"string","nullable":true},"resourceGroup":{"type":"string"},"resourceId":{"type":"string"},"roleAssignmentCount":{"type":"integer","minimum":0},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tenantId":{"type":"string","nullable":true},"type":{"type":"string","nullable":true}},"required":["customRoleDefinitionCount","customRoleDefinitionIds","location","managedTagCount","name","resourceGroup","resourceId","roleAssignmentCount","roleAssignmentIds","stackPermissionsApplied","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"configured":{"type":"boolean"},"identity":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["configured","identity","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["service-account"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"availabilityZones":{"type":"array","items":{"type":"string"}},"cidrBlock":{"type":"string","nullable":true},"internetGatewayId":{"type":"string","nullable":true},"isByoVpc":{"type":"boolean"},"natGatewayId":{"type":"string","nullable":true},"privateSubnetIds":{"type":"array","items":{"type":"string"}},"publicSubnetIds":{"type":"array","items":{"type":"string"}},"routeTableCount":{"type":"integer","minimum":0},"securityGroupId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vpcId":{"type":"string","nullable":true},"vpcState":{"type":"string","nullable":true}},"required":["availabilityZones","isByoVpc","privateSubnetIds","publicSubnetIds","routeTableCount","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsVpc"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cidrBlock":{"type":"string","nullable":true},"cloudNatName":{"type":"string","nullable":true},"firewallName":{"type":"string","nullable":true},"isByoVpc":{"type":"boolean"},"networkName":{"type":"string","nullable":true},"networkSelfLink":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"routerName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"subnetworkName":{"type":"string","nullable":true},"subnetworkSelfLink":{"type":"string","nullable":true}},"required":["isByoVpc","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpVpc"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"applicationGatewaySubnetName":{"type":"string","nullable":true},"cidrBlock":{"type":"string","nullable":true},"isByoVnet":{"type":"boolean"},"lastByoVnetVerificationErrorCode":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"natGatewayId":{"type":"string","nullable":true},"nsgId":{"type":"string","nullable":true},"privateEndpointSubnetName":{"type":"string","nullable":true},"privateSubnetName":{"type":"string","nullable":true},"publicIpId":{"type":"string","nullable":true},"publicSubnetName":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vnetName":{"type":"string","nullable":true},"vnetResourceId":{"type":"string","nullable":true}},"required":["isByoVnet","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureVnet"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["network"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"managementPermissionsApplied":{"type":"boolean"},"roleArn":{"type":"string","nullable":true},"roleName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["managementPermissionsApplied","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsIamRole"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"impersonationGranted":{"type":"boolean"},"roleBound":{"type":"boolean"},"serviceAccountEmail":{"type":"string","nullable":true},"serviceAccountUniqueId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["impersonationGranted","roleBound","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"ficName":{"type":"string","nullable":true},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"roleDefinitionId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tenantId":{"type":"string","nullable":true},"uamiClientId":{"type":"string","nullable":true},"uamiPrincipalId":{"type":"string","nullable":true},"uamiResourceId":{"type":"string","nullable":true}},"required":["roleAssignmentIds","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["remote-stack-management"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"pullRoleArn":{"type":"string","nullable":true},"pushRoleArn":{"type":"string","nullable":true},"region":{"type":"string"},"registryId":{"type":"string"},"registryUri":{"type":"string"},"repositories":{"type":"array","items":{"type":"object","properties":{"createdAt":{"type":"number"},"encryptionType":{"type":"string","nullable":true},"imageTagMutability":{"type":"string","nullable":true},"kmsKeyPresent":{"type":"boolean"},"registryId":{"type":"string"},"repositoryArn":{"type":"string"},"repositoryName":{"type":"string"},"repositoryUri":{"type":"string"},"scanOnPush":{"type":"boolean","nullable":true}},"required":["createdAt","kmsKeyPresent","registryId","repositoryArn","repositoryName","repositoryUri"]}},"repositoriesTruncated":{"type":"boolean"},"repositoryCount":{"type":"integer","minimum":0},"repositoryPrefix":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["region","registryId","registryUri","repositories","repositoriesTruncated","repositoryCount","repositoryPrefix","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsEcr"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cleanupPolicyCount":{"type":"integer","minimum":0},"cleanupPolicyDryRun":{"type":"boolean","nullable":true},"createTime":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"format":{"type":"string","nullable":true},"iamBindingCount":{"type":"integer","minimum":0},"iamPolicyEtagPresent":{"type":"boolean"},"iamRoles":{"type":"array","items":{"type":"string"}},"kmsKeyNamePresent":{"type":"boolean"},"labelCount":{"type":"integer","minimum":0},"location":{"type":"string"},"mode":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"projectId":{"type":"string"},"pullServiceAccountEmail":{"type":"string","nullable":true},"pushServiceAccountEmail":{"type":"string","nullable":true},"repositoryId":{"type":"string"},"satisfiesPzs":{"type":"boolean","nullable":true},"sizeBytes":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updateTime":{"type":"string","nullable":true}},"required":["cleanupPolicyCount","iamBindingCount","iamPolicyEtagPresent","iamRoles","kmsKeyNamePresent","labelCount","location","projectId","repositoryId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpArtifactRegistry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"adminUserEnabled":{"type":"boolean"},"anonymousPullEnabled":{"type":"boolean"},"creationDate":{"type":"string","nullable":true},"dataEndpointEnabled":{"type":"boolean","nullable":true},"dataEndpointHostNames":{"type":"array","items":{"type":"string"}},"encryptionKeyIdentifierPresent":{"type":"boolean"},"encryptionKeyVaultUriPresent":{"type":"boolean"},"encryptionStatus":{"type":"string","nullable":true},"ipRuleCount":{"type":"integer","minimum":0},"location":{"type":"string"},"loginServer":{"type":"string","nullable":true},"managedTagCount":{"type":"integer","minimum":0},"name":{"type":"string"},"networkRuleBypassOptions":{"type":"string"},"networkRuleDefaultAction":{"type":"string","nullable":true},"policiesPresent":{"type":"boolean"},"policyCount":{"type":"integer","minimum":0},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string"},"resourceGroup":{"type":"string"},"resourceId":{"type":"string","nullable":true},"skuName":{"type":"string"},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"type":{"type":"string","nullable":true},"zoneRedundancy":{"type":"string"}},"required":["adminUserEnabled","anonymousPullEnabled","dataEndpointHostNames","encryptionKeyIdentifierPresent","encryptionKeyVaultUriPresent","ipRuleCount","location","managedTagCount","name","networkRuleBypassOptions","policiesPresent","policyCount","privateEndpointConnectionCount","publicNetworkAccess","resourceGroup","skuName","status","zoneRedundancy"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerRegistry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"reachable":{"type":"boolean"},"registryUrl":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["reachable","registryUrl","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["artifact-registry"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"artifactsEncryptionDisabled":{"type":"boolean","nullable":true},"artifactsType":{"type":"string","nullable":true},"cloudWatchLogsStatus":{"type":"string","nullable":true},"computeType":{"type":"string","nullable":true},"created":{"type":"number","nullable":true},"description":{"type":"string","nullable":true},"encryptionKeyPresent":{"type":"boolean"},"environmentImage":{"type":"string","nullable":true},"environmentType":{"type":"string","nullable":true},"environmentVariableCount":{"type":"integer","minimum":0},"imagePullCredentialsType":{"type":"string","nullable":true},"lastModified":{"type":"number","nullable":true},"privilegedMode":{"type":"boolean","nullable":true},"projectArn":{"type":"string","nullable":true},"projectName":{"type":"string"},"queuedTimeoutInMinutes":{"type":"integer","nullable":true},"s3LogsStatus":{"type":"string","nullable":true},"serviceRolePresent":{"type":"boolean"},"sourceType":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"timeoutInMinutes":{"type":"integer","nullable":true}},"required":["encryptionKeyPresent","environmentVariableCount","projectName","serviceRolePresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsCodeBuild"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"buildConfigId":{"type":"string"},"environmentVariableCount":{"type":"integer","minimum":0},"location":{"type":"string"},"projectId":{"type":"string"},"serviceAccount":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["buildConfigId","environmentVariableCount","location","projectId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudBuild"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"environmentVariableCount":{"type":"integer","minimum":0},"managedEnvironmentId":{"type":"string"},"managedIdentityId":{"type":"string","nullable":true},"resourceGroupName":{"type":"string"},"resourcePrefix":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["environmentVariableCount","managedEnvironmentId","resourceGroupName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerApps"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"active":{"type":"integer","nullable":true},"completionTime":{"type":"string","nullable":true,"format":"date-time"},"conditionCount":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"failed":{"type":"integer","nullable":true},"imageDigest":{"type":"string","nullable":true},"jobName":{"type":"string"},"namespace":{"type":"string"},"startTime":{"type":"string","nullable":true,"format":"date-time"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"succeeded":{"type":"integer","nullable":true}},"required":["conditionCount","events","jobName","namespace","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetesJob"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["build"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"enabled":{"type":"boolean"},"lastOperationName":{"type":"string","nullable":true},"projectId":{"type":"string"},"serviceName":{"type":"string"},"serviceResourceName":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"title":{"type":"string","nullable":true}},"required":["enabled","projectId","serviceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceUsage"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"type":"string"},"providerId":{"type":"string","nullable":true},"registered":{"type":"boolean"},"registrationPolicy":{"type":"string","nullable":true},"registrationState":{"type":"string","nullable":true},"resourceTypeCount":{"type":"integer","minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["namespace","registered","resourceTypeCount","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureResourceProvider"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["service_activation"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"location":{"type":"string","nullable":true},"managedTags":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"name":{"type":"string"},"provisioningState":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["managedTags","name","status"]},"resourceType":{"type":"string","enum":["azure_resource_group"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"allowBlobPublicAccess":{"type":"boolean","nullable":true},"allowSharedKeyAccess":{"type":"boolean","nullable":true},"encryptionKeySource":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"minimumTlsVersion":{"type":"string","nullable":true},"name":{"type":"string"},"networkBypass":{"type":"string","nullable":true},"networkDefaultAction":{"type":"string","nullable":true},"networkIpRuleCount":{"type":"integer","nullable":true,"minimum":0},"networkResourceAccessRuleCount":{"type":"integer","nullable":true,"minimum":0},"networkVirtualNetworkRuleCount":{"type":"integer","nullable":true,"minimum":0},"primaryEndpoints":{"type":"object","properties":{"blob":{"type":"string","nullable":true},"dfs":{"type":"string","nullable":true},"file":{"type":"string","nullable":true},"queue":{"type":"string","nullable":true},"table":{"type":"string","nullable":true},"web":{"type":"string","nullable":true}}},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"requireInfrastructureEncryption":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"secondaryEndpoints":{"type":"object","properties":{"blob":{"type":"string","nullable":true},"dfs":{"type":"string","nullable":true},"file":{"type":"string","nullable":true},"queue":{"type":"string","nullable":true},"table":{"type":"string","nullable":true},"web":{"type":"string","nullable":true}}},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"supportsHttpsTrafficOnly":{"type":"boolean","nullable":true}},"required":["name","primaryEndpoints","secondaryEndpoints","status"]},"resourceType":{"type":"string","enum":["azure_storage_account"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"customDomainVerificationId":{"type":"string","nullable":true},"defaultDomain":{"type":"string","nullable":true},"eventStreamEndpoint":{"type":"string","nullable":true},"infrastructureResourceGroup":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"name":{"type":"string"},"provisioningState":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"staticIp":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workloadProfileCount":{"type":"integer","minimum":0},"workloadProfiles":{"type":"array","items":{"type":"object","properties":{"maximumCount":{"type":"integer","nullable":true},"minimumCount":{"type":"integer","nullable":true},"name":{"type":"string"},"workloadProfileType":{"type":"string"}},"required":["name","workloadProfileType"]}},"zoneRedundant":{"type":"boolean","nullable":true}},"required":["name","status","workloadProfileCount","workloadProfiles"]},"resourceType":{"type":"string","enum":["azure_container_apps_environment"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"createdAt":{"type":"string","nullable":true},"disableLocalAuth":{"type":"boolean","nullable":true},"location":{"type":"string","nullable":true},"metricId":{"type":"string","nullable":true},"minimumTlsVersion":{"type":"string","nullable":true},"name":{"type":"string"},"namespaceStatus":{"type":"string","nullable":true},"premiumMessagingPartitions":{"type":"integer","nullable":true},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"serviceBusEndpoint":{"type":"string","nullable":true},"skuCapacity":{"type":"integer","nullable":true},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updatedAt":{"type":"string","nullable":true},"zoneRedundant":{"type":"boolean","nullable":true}},"required":["name","privateEndpointConnectionCount","status"]},"resourceType":{"type":"string","enum":["azure_service_bus_namespace"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"availability":{"type":"object","properties":{"catalogRevision":{"type":"string"},"location":{"type":"string","nullable":true},"models":{"type":"array","items":{"type":"object","properties":{"accessTest":{"type":"string","enum":["verified","failed","not-checked"]},"availability":{"type":"string","enum":["available","blocked","unknown"]},"blockers":{"type":"array","items":{"type":"string","enum":["agreement-required","entitlement-required","model-activation-required","deployment-required","quota-configuration-required","region-unavailable","access-denied","observation-failed"]}},"clientApis":{"type":"array","items":{"type":"string","enum":["open-ai-chat-completions","open-ai-responses","anthropic-messages"],"description":"A public API accepted from an application client."}},"errorCode":{"type":"string","nullable":true},"publicModelId":{"type":"string"},"testedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["accessTest","availability","blockers","clientApis","publicModelId"]}},"source":{"type":"string","enum":["aws-bedrock","gcp-vertex","azure-foundry","anthropic"],"description":"Provider control plane used to observe model availability without invoking\na model, spending customer quota, or accepting provider terms."}},"required":["catalogRevision","models","source"]},"region":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["availability","region","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsBedrock"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"availability":{"type":"object","properties":{"catalogRevision":{"type":"string"},"location":{"type":"string","nullable":true},"models":{"type":"array","items":{"type":"object","properties":{"accessTest":{"type":"string","enum":["verified","failed","not-checked"]},"availability":{"type":"string","enum":["available","blocked","unknown"]},"blockers":{"type":"array","items":{"type":"string","enum":["agreement-required","entitlement-required","model-activation-required","deployment-required","quota-configuration-required","region-unavailable","access-denied","observation-failed"]}},"clientApis":{"type":"array","items":{"type":"string","enum":["open-ai-chat-completions","open-ai-responses","anthropic-messages"],"description":"A public API accepted from an application client."}},"errorCode":{"type":"string","nullable":true},"publicModelId":{"type":"string"},"testedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["accessTest","availability","blockers","clientApis","publicModelId"]}},"source":{"type":"string","enum":["aws-bedrock","gcp-vertex","azure-foundry","anthropic"],"description":"Provider control plane used to observe model availability without invoking\na model, spending customer quota, or accepting provider terms."}},"required":["catalogRevision","models","source"]},"location":{"type":"string"},"project":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["availability","location","project","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpVertex"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"type":"string"},"availability":{"type":"object","properties":{"catalogRevision":{"type":"string"},"location":{"type":"string","nullable":true},"models":{"type":"array","items":{"type":"object","properties":{"accessTest":{"type":"string","enum":["verified","failed","not-checked"]},"availability":{"type":"string","enum":["available","blocked","unknown"]},"blockers":{"type":"array","items":{"type":"string","enum":["agreement-required","entitlement-required","model-activation-required","deployment-required","quota-configuration-required","region-unavailable","access-denied","observation-failed"]}},"clientApis":{"type":"array","items":{"type":"string","enum":["open-ai-chat-completions","open-ai-responses","anthropic-messages"],"description":"A public API accepted from an application client."}},"errorCode":{"type":"string","nullable":true},"publicModelId":{"type":"string"},"testedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["accessTest","availability","blockers","clientApis","publicModelId"]}},"source":{"type":"string","enum":["aws-bedrock","gcp-vertex","azure-foundry","anthropic"],"description":"Provider control plane used to observe model availability without invoking\na model, spending customer quota, or accepting provider terms."}},"required":["catalogRevision","models","source"]},"endpoint":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["accountName","availability","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureFoundry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"availability":{"oneOf":[{"type":"object","properties":{"catalogRevision":{"type":"string"},"location":{"type":"string","nullable":true},"models":{"type":"array","items":{"type":"object","properties":{"accessTest":{"type":"string","enum":["verified","failed","not-checked"]},"availability":{"type":"string","enum":["available","blocked","unknown"]},"blockers":{"type":"array","items":{"type":"string","enum":["agreement-required","entitlement-required","model-activation-required","deployment-required","quota-configuration-required","region-unavailable","access-denied","observation-failed"]}},"clientApis":{"type":"array","items":{"type":"string","enum":["open-ai-chat-completions","open-ai-responses","anthropic-messages"],"description":"A public API accepted from an application client."}},"errorCode":{"type":"string","nullable":true},"publicModelId":{"type":"string"},"testedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["accessTest","availability","blockers","clientApis","publicModelId"]}},"source":{"type":"string","enum":["aws-bedrock","gcp-vertex","azure-foundry","anthropic"],"description":"Provider control plane used to observe model availability without invoking\na model, spending customer quota, or accepting provider terms."}},"required":["catalogRevision","models","source"]},{"nullable":true}]},"provider":{"type":"string","description":"The BYO-key provider serving this binding (e.g. \"openai\"). Used on the Local\nplatform, where the app brings its own provider key instead of an ambient cloud."},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["provider","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["external"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["ai"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"type":"object","properties":{"data":{"type":"object","properties":{"enabled":{"type":"boolean"},"keyArn":{"type":"string"},"keySpec":{"type":"string"},"keyState":{"type":"string"},"keyUsage":{"type":"string"},"status":{"type":"object","properties":{"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true}},"required":["health","lifecycle"]}},"required":["enabled","keyArn","keySpec","keyState","keyUsage","status"]},"provider":{"type":"string","enum":["aws-kms"]}},"required":["data","provider"]},{"type":"object","properties":{"data":{"type":"object","properties":{"algorithm":{"type":"string","nullable":true},"cryptoKeyName":{"type":"string"},"primaryState":{"type":"string","nullable":true},"primaryVersion":{"type":"string","nullable":true},"purpose":{"type":"string"},"status":{"type":"object","properties":{"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true}},"required":["health","lifecycle"]}},"required":["cryptoKeyName","purpose","status"]},"provider":{"type":"string","enum":["gcp-cloud-kms"]}},"required":["data","provider"]},{"type":"object","properties":{"data":{"type":"object","properties":{"enabled":{"type":"boolean","nullable":true},"keyId":{"type":"string"},"keyOperations":{"type":"array","items":{"type":"string"}},"keyType":{"type":"string"},"recoveryLevel":{"type":"string","nullable":true},"status":{"type":"object","properties":{"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true}},"required":["health","lifecycle"]}},"required":["keyId","keyOperations","keyType","status"]},"provider":{"type":"string","enum":["azure-key-vault"]}},"required":["data","provider"]}]},"resourceType":{"type":"string","enum":["key"]}},"required":["data","resourceType"]}]},"deploymentId":{"type":"string","nullable":true},"observedAt":{"type":"string","format":"date-time"},"raw":{"type":"array","items":{"type":"object","properties":{"body":{"type":"string"},"collectedAt":{"type":"string","format":"date-time"},"format":{"type":"string","enum":["json","yaml","text"]},"source":{"type":"string"},"truncated":{"type":"boolean"}},"required":["body","collectedAt","format","source","truncated"]}},"resourceId":{"type":"string","description":"Alien resource id, such as the `alien.Container` or `alien.Storage`\nresource id from the stack."},"resourceType":{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior."}},"required":["backend","controllerPlatform","data","observedAt","raw","resourceId","resourceType"]},"raw":{"type":"array","items":{"nullable":true}}},"required":["status","deploymentId","resourceId","resourceType","backend","controllerPlatform","observedAt","staleAt","platformStale","heartbeat","raw"]},{"type":"object","properties":{"status":{"type":"string","enum":["missing"]},"deploymentId":{"type":"string"},"resourceId":{"type":"string"},"resourceType":{"type":"string"}},"required":["status","deploymentId","resourceId","resourceType"]}]}},"required":["deployment","heartbeat"]}}}},"404":{"description":"Deployment or resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resolve":{"get":{"operationId":"resolve","tags":["resolve"],"summary":"Resolve manager for a project and platform","description":"Returns the manager URL for a given project and platform. The project can be provided as a query parameter, or derived from the token's scope (project-scoped, deployment-group-scoped, or deployment-scoped tokens carry an implicit project). This is the single entry point for all CLI tools to discover which manager to talk to.","x-speakeasy-group":"resolve","x-speakeasy-name-override":"resolve","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform to resolve the manager for"},"required":true,"description":"Target platform to resolve the manager for","name":"platform","in":"query"},{"schema":{"type":"string","maxLength":100,"description":"Project ID or name. Required for user and workspace-scoped tokens. Optional for project/deployment-group/deployment-scoped tokens (derived from token scope)."},"required":false,"description":"Project ID or name. Required for user and workspace-scoped tokens. Optional for project/deployment-group/deployment-scoped tokens (derived from token scope).","name":"project","in":"query"}],"responses":{"200":{"description":"Manager resolved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveResponse"}}}},"400":{"description":"Missing required project parameter for this token type.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project not found or no manager available for platform.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"Manager not ready yet (no URL reported). Retry after a delay.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/cloud-regions":{"get":{"operationId":"getCloudRegions","description":"Get cloud regions supported by this Alien environment.","x-speakeasy-group":"cloudRegions","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Supported cloud regions retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloudRegionsResponse"}}}}}}},"/v1/billing/audit-log":{"get":{"operationId":"listBillingAuditLog","description":"List billing activity entries for the current workspace.","x-speakeasy-group":"billing","x-speakeasy-name-override":"listAuditLog","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"number","minimum":1,"maximum":200,"default":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor: id from the previous page."},"required":false,"description":"Cursor: id from the previous page.","name":"before","in":"query"}],"responses":{"200":{"description":"Audit-log rows newest-first.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/BillingAuditLogRow"}},"nextCursor":{"type":"string","nullable":true}},"required":["items","nextCursor"]}}}}}}},"/v1/billing/entitlements":{"get":{"operationId":"getWorkspaceBillingEntitlements","description":"Get the workspace billing entitlements used for product feature gates. Autumn is the source of truth; the response is served through the workspace billing read model with stale-cache fallback.","x-speakeasy-group":"billing","x-speakeasy-name-override":"getEntitlements","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Workspace billing entitlements.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceBillingEntitlements"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}}}} \ No newline at end of file diff --git a/client-sdks/platform/rust/openapi-3.0.json b/client-sdks/platform/rust/openapi-3.0.json index e8487136b..c699f0869 100644 --- a/client-sdks/platform/rust/openapi-3.0.json +++ b/client-sdks/platform/rust/openapi-3.0.json @@ -1 +1 @@ -{"openapi":"3.0.0","info":{"title":"Alien API","version":"1.0.0","contact":{"name":"Alien Team","url":"https://alien.dev"}},"servers":[{"url":"https://api.alien.dev","description":"Alien API - Production"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","bearerFormat":"API key","description":"API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys"}},"schemas":{"WorkspaceInvitationPreview":{"type":"object","properties":{"kind":{"type":"string","enum":["email","link"]},"workspace":{"type":"object","properties":{"id":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$"},"logoUrl":{"type":"string","nullable":true,"format":"uri"}},"required":["id","name","logoUrl"]},"inviter":{"type":"object","nullable":true,"properties":{"name":{"type":"string"},"image":{"type":"string","nullable":true,"format":"uri"}},"required":["name","image"]},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"expiresAt":{"type":"string","format":"date-time"},"state":{"type":"string","enum":["active","accepted","expired","revoked"]},"emailHint":{"type":"string","nullable":true}},"required":["kind","workspace","inviter","role","expiresAt","state","emailHint"],"additionalProperties":false},"WorkspaceRole":{"type":"string","enum":["workspace.viewer","workspace.member","workspace.admin"],"description":"Role for workspace-scoped service accounts","example":"workspace.member"},"APIError":{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"message":{"type":"string","maxLength":16384,"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."},"source":{"nullable":true,"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."},"retryable":{"type":"boolean","default":false,"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."},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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."},"requestId":{"type":"string","description":"Request ID echoed in the x-request-id response header and server logs."}},"required":["code","message","internal"]},"Membership":{"type":"object","properties":{"id":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$"},"logoUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"role":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","logoUrl","role","createdAt"],"additionalProperties":false},"UserProfile":{"type":"object","properties":{"id":{"type":"string","description":"Unique user identifier"},"email":{"type":"string","description":"User's email address"},"name":{"type":"string","description":"User's display name"},"image":{"type":"string","nullable":true,"description":"User's avatar image URL"},"githubUsername":{"type":"string","nullable":true,"description":"Linked GitHub username"},"cliConnected":{"type":"boolean","description":"Whether this user has ever authenticated a request from the Alien CLI. Latched on first CLI request, never cleared."},"company":{"type":"string","nullable":true,"description":"Company name collected during profile setup."},"acquisitionSource":{"type":"string","nullable":true,"enum":["github","x-twitter","linkedin","hacker-news","reddit","search","friend-or-colleague","founder","event-or-community","other",null],"description":"How the user heard about Alien."},"acquisitionSourceDetail":{"type":"string","nullable":true,"description":"Additional acquisition source detail when the source is other."},"useCases":{"type":"string","nullable":true,"description":"What the user is hoping to use Alien for."},"profileSetupCompletedAt":{"type":"string","format":"date-time","nullable":true,"description":"When the user completed the required profile setup dialog."},"profileSetupVersion":{"type":"integer","nullable":true,"description":"Version of the required profile setup dialog the user completed."}},"required":["id","email","name","image","githubUsername","cliConnected","company","acquisitionSource","acquisitionSourceDetail","useCases","profileSetupCompletedAt","profileSetupVersion"],"additionalProperties":false},"UserProfileSetupRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Display name"},"company":{"type":"string","minLength":1,"maxLength":120,"description":"Company name"},"acquisitionSource":{"type":"string","enum":["github","x-twitter","linkedin","hacker-news","reddit","search","friend-or-colleague","founder","event-or-community","other"],"description":"How the user heard about Alien"},"acquisitionSourceDetail":{"type":"string","minLength":1,"maxLength":200,"description":"Required when acquisitionSource is other"},"useCases":{"type":"string","maxLength":2000,"description":"What the user is hoping to use Alien for"}},"required":["name","company","acquisitionSource"],"additionalProperties":false},"GitNamespace":{"type":"object","properties":{"id":{"type":"number","nullable":true},"name":{"type":"string"},"slug":{"type":"string"},"installationId":{"type":"number","nullable":true},"type":{"type":"string","enum":["team","user"]},"provider":{"type":"string","enum":["github"]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","slug","installationId","type","provider","createdAt"],"additionalProperties":false},"GitRepository":{"type":"object","properties":{"name":{"type":"string"},"private":{"type":"boolean"},"defaultBranch":{"type":"string"},"pushedAt":{"type":"string","format":"date-time"}},"required":["name","private","defaultBranch"],"additionalProperties":false},"AcceptWorkspaceInvitationResponse":{"type":"object","properties":{"outcome":{"type":"string","enum":["joined","already-member"]},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"workspaceName":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$"},"role":{"$ref":"#/components/schemas/WorkspaceRole"}},"required":["outcome","workspaceId","workspaceName","role"],"additionalProperties":false},"Subject":{"oneOf":[{"$ref":"#/components/schemas/UserSubject"},{"$ref":"#/components/schemas/ServiceAccountSubject"}],"discriminator":{"propertyName":"kind","mapping":{"user":"#/components/schemas/UserSubject","serviceAccount":"#/components/schemas/ServiceAccountSubject"}},"description":"Authenticated principal that can be either a user (with workspace-scoped permissions) or a service account (with configurable scope and role)"},"UserSubject":{"type":"object","properties":{"kind":{"type":"string","enum":["user"],"description":"Subject type identifier"},"id":{"type":"string","description":"Unique user identifier"},"email":{"type":"string","format":"email","description":"User's email address"},"workspaceId":{"type":"string","description":"ID of the workspace the user is authenticated within"},"workspaceName":{"type":"string","description":"Name of the workspace the user is authenticated within"},"role":{"$ref":"#/components/schemas/UserRole"}},"required":["kind","id","email","workspaceId","role"],"description":"Authenticated user subject with workspace-scoped permissions"},"UserRole":{"type":"string","enum":["workspace.viewer","workspace.member","workspace.admin"],"description":"User's role within the workspace","example":"workspace.member"},"ServiceAccountSubject":{"type":"object","properties":{"kind":{"type":"string","enum":["serviceAccount"],"description":"Subject type identifier"},"id":{"type":"string","description":"Unique service account identifier (API key ID)"},"workspaceId":{"type":"string","description":"ID of the workspace the service account belongs to"},"workspaceName":{"type":"string","description":"Name of the workspace the service account belongs to"},"scope":{"$ref":"#/components/schemas/SubjectScope"},"role":{"$ref":"#/components/schemas/Role"}},"required":["kind","id","workspaceId","scope","role"],"description":"Authenticated service account subject with scoped permissions (workspace, project, or deployment level)"},"SubjectScope":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["workspace"],"description":"Workspace-scoped access"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["project"],"description":"Project-scoped access"},"projectId":{"type":"string","description":"ID of the specific project this scope applies to"}},"required":["type","projectId"]},{"type":"object","properties":{"type":{"type":"string","enum":["deployment"],"description":"Deployment-scoped access"},"deploymentId":{"type":"string","description":"ID of the specific deployment this scope applies to"},"projectId":{"type":"string","description":"ID of the project this deployment belongs to"}},"required":["type","deploymentId","projectId"]},{"type":"object","properties":{"type":{"type":"string","enum":["deployment-group"],"description":"Deployment group-scoped access"},"deploymentGroupId":{"type":"string","description":"ID of the specific deployment group this scope applies to"},"projectId":{"type":"string","description":"ID of the project this deployment group belongs to"}},"required":["type","deploymentGroupId","projectId"]},{"type":"object","properties":{"type":{"type":"string","enum":["manager"],"description":"Manager-scoped access"},"managerId":{"type":"string","description":"ID of the specific manager this scope applies to"}},"required":["type","managerId"]}],"description":"Authorization scope defining what resources this service account can access"},"Role":{"oneOf":[{"$ref":"#/components/schemas/WorkspaceRole"},{"$ref":"#/components/schemas/ProjectRole"},{"$ref":"#/components/schemas/DeploymentRole"},{"$ref":"#/components/schemas/DeploymentGroupRole"},{"$ref":"#/components/schemas/ManagerRole"}],"description":"Role defining what actions this service account can perform within its scope","example":"workspace.member"},"ProjectRole":{"type":"string","enum":["project.viewer","project.developer"],"description":"Role for project-scoped service accounts","example":"project.developer"},"DeploymentRole":{"type":"string","enum":["deployment.viewer","deployment.manager","deployment.telemetry-writer"],"description":"Role for deployment-scoped service accounts","example":"deployment.manager"},"DeploymentGroupRole":{"type":"string","enum":["deployment-group.deployer"],"description":"Role for deployment group-scoped service accounts","example":"deployment-group.deployer"},"ManagerRole":{"type":"string","enum":["manager.runtime"],"description":"Role for manager-scoped service accounts","example":"manager.runtime"},"Workspace":{"type":"object","properties":{"id":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name.","example":"my-workspace"},"logoUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"onboardingDismissedAt":{"type":"string","format":"date-time","nullable":true,"description":"When the Getting Started walkthrough was dismissed or completed for this workspace. Null means it has never been dismissed; the dashboard auto-promotes the walkthrough until this is set."},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","onboardingDismissedAt","createdAt"],"additionalProperties":false},"WorkspaceMember":{"type":"object","properties":{"userId":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"image":{"type":"string","nullable":true},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"joinedAt":{"type":"string","format":"date-time"}},"required":["userId","email","name","image","role","joinedAt"],"additionalProperties":false},"AgentSettings":{"type":"object","properties":{"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"enabled":{"type":"boolean","description":"Workspace on/off switch for the ai-agent. When `false`, incoming triggers (release/deployment monitoring and Slack-invoked sessions) are rejected before any session runs. Defaults to `true`."},"debugPermissionMode":{"type":"string","enum":["auto","ask"],"description":"Workspace-level policy for ai-agent debug commands. `auto` runs `alien_debug` tool calls without asking; `ask` halts each session before every debug command and waits for a human approval from dashboard or Slack."},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["workspaceId","enabled","debugPermissionMode","createdAt","updatedAt"],"additionalProperties":false},"UpdateWorkspaceSettingsRequest":{"type":"object","properties":{"debugPermissionMode":{"type":"string","enum":["auto","ask"],"description":"Workspace-level policy for ai-agent debug commands. `auto` runs `alien_debug` tool calls without asking; `ask` halts each session before every debug command and waits for a human approval from dashboard or Slack."},"enabled":{"type":"boolean","description":"Turn the ai-agent on (`true`) or off (`false`) for this workspace."}}},"WorkspaceInvitation":{"type":"object","properties":{"id":{"type":"string","pattern":"winv_[0-9a-zA-Z]{32}$","description":"Unique identifier for the workspace invitation.","example":"winv_DsgltMIFV0GmqtxV5NYTtrknrna"},"email":{"type":"string","format":"email"},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"status":{"type":"string","enum":["pending","accepted","revoked","expired"]},"deliveryStatus":{"type":"string","enum":["pending","sent","failed"]},"expiresAt":{"type":"string","format":"date-time"},"lastSentAt":{"type":"string","format":"date-time","nullable":true},"createdAt":{"type":"string","format":"date-time"},"inviteUrl":{"type":"string","format":"uri"}},"required":["id","email","role","status","deliveryStatus","expiresAt","lastSentAt","createdAt","inviteUrl"],"additionalProperties":false},"WorkspaceInviteLink":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"wil_[0-9a-zA-Z]{40}$","description":"Unique identifier for the workspace invite link.","example":"wil_RgcthDSZ37rmFLekuItpFS7btjXoYwou1gE4"},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"expiresAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"useCount":{"type":"integer","minimum":0},"lastUsedAt":{"type":"string","format":"date-time","nullable":true},"inviteUrl":{"type":"string","format":"uri"}},"required":["id","role","expiresAt","createdAt","useCount","lastUsedAt","inviteUrl"],"additionalProperties":false},"ProjectListItemResponse":{"allOf":[{"$ref":"#/components/schemas/Project"},{"type":"object","properties":{"deploymentCount":{"type":"number"},"latestRelease":{"$ref":"#/components/schemas/ProjectReleaseInfo"}}}]},"DeploymentPortalAppearancePreset":{"type":"string","enum":["clean","technical","enterprise","playful","minimal"],"default":"clean","description":"Curated visual style for the deployment portal."},"DeploymentPortalAccentColor":{"type":"string","enum":["blue","purple","green","orange","pink","slate"],"default":"blue","description":"Accent color used for highlights and primary actions."},"DeploymentPortalDensity":{"type":"string","enum":["comfortable","compact"],"default":"comfortable","description":"Layout density for portal content."},"ProjectReleaseInfo":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"gitMetadata":{"$ref":"#/components/schemas/GitMetadata"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","gitMetadata","createdAt"]},"GitMetadata":{"type":"object","nullable":true,"properties":{"commitSha":{"type":"string","nullable":true,"maxLength":40,"description":"The hash of the commit","example":"dc36199b2234c6586ebe05ec94078a895c707e29"},"commitMessage":{"type":"string","nullable":true,"maxLength":1024,"description":"The commit message","example":"add method to measure Interaction to Next Paint (INP) (#36490)"},"commitRef":{"type":"string","nullable":true,"maxLength":256,"description":"The branch or tag on which the commit was made","example":"main"},"commitDate":{"type":"string","nullable":true,"format":"date-time","description":"The date and time when the commit was created","example":"2026-03-16T12:00:00Z"},"dirty":{"type":"boolean","nullable":true,"description":"Whether or not there have been modifications to the working tree since the latest commit","example":true},"remoteUrl":{"type":"string","nullable":true,"maxLength":2048,"description":"The git repository's remote origin url","example":"https://github.com/alienplatform/alien"},"commitAuthorName":{"type":"string","nullable":true,"maxLength":256,"description":"The name of the author of the commit (from git config)","example":"John Doe"},"commitAuthorEmail":{"type":"string","nullable":true,"maxLength":256,"format":"email","description":"The email of the author of the commit (from git config)","example":"john@example.com"},"commitAuthorLogin":{"type":"string","nullable":true,"maxLength":256,"description":"The provider username of the commit author (e.g., GitHub login), resolved server-side from the commit email","example":"johndoe"},"commitAuthorAvatarUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"The avatar URL of the commit author, resolved server-side from the provider login","example":"https://github.com/johndoe.png"},"provider":{"$ref":"#/components/schemas/GitProvider"}}},"GitProvider":{"oneOf":[{"$ref":"#/components/schemas/GitHubProvider"},{"$ref":"#/components/schemas/GitLabProvider"},{"nullable":true}],"description":"Provider-specific repository information, resolved server-side from remoteUrl"},"GitHubProvider":{"type":"object","properties":{"type":{"type":"string","enum":["github"]},"org":{"type":"string","maxLength":256,"description":"Repository owner (user or organization)"},"repo":{"type":"string","maxLength":256,"description":"Repository name"}},"required":["type","org","repo"]},"GitLabProvider":{"type":"object","properties":{"type":{"type":"string","enum":["gitlab"]},"namespace":{"type":"string","maxLength":256,"description":"Group/project namespace"},"project":{"type":"string","maxLength":256,"description":"Project name"}},"required":["type","namespace","project"]},"Project":{"type":"object","properties":{"id":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Project name.","example":"my-app"},"gitRepository":{"type":"object","nullable":true,"properties":{"type":{"type":"string","enum":["github"],"description":"The Git Provider of the repository","example":"github"},"repo":{"type":"string","maxLength":128,"description":"The name of the git repository","example":"alien/my-agent"}},"required":["type","repo"],"additionalProperties":false,"description":"Verified source repository connected to the project. Alien uses this for GitHub Actions setup and source-aware features; releases are still created explicitly by CI or `alien release`."},"rootDirectory":{"type":"string","nullable":true,"maxLength":256,"description":"The name of a directory or relative path to the source code of your project. When null is used it will default to the project root"},"deploymentPortalAppearance":{"type":"object","nullable":true,"properties":{"avatarUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional project-specific avatar override for the deployment portal."},"preset":{"$ref":"#/components/schemas/DeploymentPortalAppearancePreset"},"accentColor":{"$ref":"#/components/schemas/DeploymentPortalAccentColor"},"title":{"type":"string","nullable":true,"maxLength":80,"description":"Optional portal title. Defaults to the project name."},"subtitle":{"type":"string","nullable":true,"maxLength":160,"description":"Optional customer-facing subtitle."},"supportUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional support or contact URL."},"docsUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional documentation URL."},"density":{"$ref":"#/components/schemas/DeploymentPortalDensity"}},"description":"Customer-facing deployment portal appearance settings."},"packagesConfig":{"type":"object","nullable":true,"properties":{"cli":{"type":"object","nullable":true,"properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"},"enabled":{"type":"boolean","description":"Whether CLI package generation is enabled"}},"required":["displayName","name","enabled"],"description":"CLI package configuration. If null, CLI packages will not be generated."},"cloudformation":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether CloudFormation package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"CloudFormation package configuration. If null, CloudFormation packages will not be generated."},"operatorImage":{"type":"object","nullable":true,"properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"},"enabled":{"type":"boolean","description":"Whether Operator image package generation is enabled"}},"required":["displayName","name","enabled"],"description":"Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated."},"helm":{"type":"object","nullable":true,"properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"},"enabled":{"type":"boolean","description":"Whether Helm chart package generation is enabled"}},"required":["chartName","description","enabled"],"description":"Helm chart package configuration. If null, Helm packages will not be generated."},"terraform":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether Terraform package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"Terraform package configuration. If null, Terraform packages will not be generated."}},"description":"Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform)"},"domainId":{"type":"string","nullable":true,"pattern":"dom_[0-9a-z]{28}$","description":"Selected domain for this project (null = default system domain)","example":"dom_469m0agk8luj4s16sakmmpdd"},"defaultManagers":{"type":"object","nullable":true,"properties":{"aws":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"gcp":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"azure":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"kubernetes":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"machines":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"local":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"}},"description":"Project default private managers for new push deployments."},"createdAt":{"type":"string","format":"date-time"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"}},"required":["id","name","createdAt","workspaceId"]},"ProjectIDOrNamePathParam":{"type":"string","maxLength":100,"description":"Project ID or name."},"ProjectGcpOAuthProvider":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["alien-managed"]},"redirectUris":{"type":"array","items":{"type":"string","format":"uri"},"description":"Authorized redirect URIs that must be configured on the Google OAuth client."}},"required":["mode","redirectUris"]},{"type":"object","properties":{"mode":{"type":"string","enum":["custom"]},"clientId":{"$ref":"#/components/schemas/GcpOAuthClientId"},"hasClientSecret":{"type":"boolean","enum":[true]},"redirectUris":{"type":"array","items":{"type":"string","format":"uri"},"description":"Authorized redirect URIs that must be configured on the Google OAuth client."}},"required":["mode","clientId","hasClientSecret","redirectUris"]}]},"GcpOAuthClientId":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[a-zA-Z0-9_-]+-[a-zA-Z0-9_-]+\\.apps\\.googleusercontent\\.com$","description":"Google OAuth web client ID.","example":"1234567890-abc123.apps.googleusercontent.com"},"UpdateProjectGcpOAuthProvider":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["alien-managed"]}},"required":["mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["custom"]},"clientId":{"$ref":"#/components/schemas/GcpOAuthClientId"},"clientSecret":{"$ref":"#/components/schemas/GcpOAuthClientSecret"}},"required":["mode","clientId"]}]},"GcpOAuthClientSecret":{"type":"string","minLength":1,"maxLength":512,"description":"Google OAuth web client secret. Write-only; never returned by the API.","example":"GOCSPX-example"},"UpdateProject":{"type":"object","properties":{"gitRepository":{"type":"object","nullable":true,"properties":{"type":{"type":"string","enum":["github"],"description":"The Git Provider of the repository","example":"github"},"repo":{"type":"string","maxLength":128,"description":"The name of the git repository","example":"alien/my-agent"}},"required":["type","repo"],"additionalProperties":false,"description":"Verified source repository connected to the project. Alien uses this for GitHub Actions setup and source-aware features; releases are still created explicitly by CI or `alien release`."},"rootDirectory":{"type":"string","nullable":true,"maxLength":256,"description":"The name of a directory or relative path to the source code of your project. When null is used it will default to the project root"},"deploymentPortalAppearance":{"type":"object","nullable":true,"properties":{"avatarUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional project-specific avatar override for the deployment portal."},"preset":{"$ref":"#/components/schemas/DeploymentPortalAppearancePreset"},"accentColor":{"$ref":"#/components/schemas/DeploymentPortalAccentColor"},"title":{"type":"string","nullable":true,"maxLength":80,"description":"Optional portal title. Defaults to the project name."},"subtitle":{"type":"string","nullable":true,"maxLength":160,"description":"Optional customer-facing subtitle."},"supportUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional support or contact URL."},"docsUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional documentation URL."},"density":{"$ref":"#/components/schemas/DeploymentPortalDensity"}},"description":"Customer-facing deployment portal appearance settings."},"packagesConfig":{"type":"object","nullable":true,"properties":{"cli":{"type":"object","nullable":true,"properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"},"enabled":{"type":"boolean","description":"Whether CLI package generation is enabled"}},"required":["displayName","name","enabled"],"description":"CLI package configuration. If null, CLI packages will not be generated."},"cloudformation":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether CloudFormation package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"CloudFormation package configuration. If null, CloudFormation packages will not be generated."},"operatorImage":{"type":"object","nullable":true,"properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"},"enabled":{"type":"boolean","description":"Whether Operator image package generation is enabled"}},"required":["displayName","name","enabled"],"description":"Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated."},"helm":{"type":"object","nullable":true,"properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"},"enabled":{"type":"boolean","description":"Whether Helm chart package generation is enabled"}},"required":["chartName","description","enabled"],"description":"Helm chart package configuration. If null, Helm packages will not be generated."},"terraform":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether Terraform package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"Terraform package configuration. If null, Terraform packages will not be generated."}},"description":"Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform)"},"domainId":{"type":"string","nullable":true,"pattern":"dom_[0-9a-z]{28}$","description":"Selected domain for this project (null = default system domain)","example":"dom_469m0agk8luj4s16sakmmpdd"},"defaultManagers":{"type":"object","nullable":true,"properties":{"aws":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"gcp":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"azure":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"kubernetes":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"machines":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"local":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"}},"description":"Project default private managers for new push deployments."}}},"DeploymentPortalDomainResponse":{"type":"object","properties":{"deploymentPortalEndpoint":{"$ref":"#/components/schemas/DomainEndpoint"},"packageEndpoint":{"$ref":"#/components/schemas/DomainEndpoint"}},"required":["deploymentPortalEndpoint","packageEndpoint"]},"DomainEndpoint":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"dend_[0-9a-z]{28}$","description":"Unique identifier for the domain endpoint.","example":"dend_1bb6gdvm1bs74acqkjstcgv"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"domainId":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"kind":{"$ref":"#/components/schemas/DomainEndpointKind"},"owner":{"$ref":"#/components/schemas/DomainEndpointOwner"},"hostname":{"type":"string","minLength":1,"maxLength":253},"status":{"$ref":"#/components/schemas/DomainEndpointStatus"},"provider":{"type":"string","nullable":true},"providerState":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"managedDnsRecords":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentPortalManagedDnsRecord"}},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},"lockedAt":{"type":"string","format":"date-time","nullable":true},"lockedBy":{"type":"string","nullable":true},"retryAttempts":{"type":"integer","minimum":0},"nextStepAfter":{"type":"string","format":"date-time","nullable":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","workspaceId","domainId","kind","owner","hostname","status","managedDnsRecords","retryAttempts","createdAt","updatedAt"]},"DomainEndpointKind":{"type":"string","enum":["deployment_portal","workspace_packages","manager_api","deployment_url_base"]},"DomainEndpointOwner":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/DomainEndpointOwnerType"},"id":{"type":"string"}},"required":["type","id"]},"DomainEndpointOwnerType":{"type":"string","enum":["workspace","project","manager"]},"DomainEndpointStatus":{"type":"string","enum":["waiting_for_domain","provisioning","waiting_for_dns","waiting_for_health","active","failed","deleting"]},"DeploymentPortalManagedDnsRecord":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"value":{"type":"string"},"ttl":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true}},"required":["name","type","value"]},"DeploymentLinkSetupResponse":{"type":"object","properties":{"activeRelease":{"type":"object","properties":{"id":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"version":{"type":"string","nullable":true},"stack":{"allOf":[{"$ref":"#/components/schemas/StackByPlatform"}],"nullable":true}},"required":["id","version","stack"]},"visiblePackageTypes":{"type":"array","items":{"type":"string","enum":["cli","cloudformation","helm","operator-image","terraform"],"description":"Types of packages that can be built"}},"visibleSetupMethods":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentSetupMethod"}}},"required":["activeRelease","visiblePackageTypes","visibleSetupMethods"]},"StackByPlatform":{"type":"object","properties":{"aws":{"nullable":true},"gcp":{"nullable":true},"azure":{"nullable":true},"kubernetes":{"nullable":true},"machines":{"nullable":true},"local":{"nullable":true},"test":{"nullable":true}},"additionalProperties":false},"DeploymentSetupMethod":{"type":"string","enum":["cloudformation","google-oauth","terraform","helm","cli","manual"]},"DeploymentGroup":{"type":"object","properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"maxDeployments":{"type":"integer","minimum":1,"default":100,"description":"Maximum number of deployments allowed in this deployment group"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","projectId","workspaceId","createdAt"]},"CreateDeploymentGroupRequest":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"project":{"type":"string","maxLength":100,"description":"Project ID or name this deployment group belongs to"},"maxDeployments":{"type":"integer","minimum":1,"default":100,"description":"Maximum number of deployments in this deployment group"}},"required":["name","project"]},"EnsureDeploymentGroupByNameRequest":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"project":{"type":"string","maxLength":100,"description":"Project ID or name this deployment group belongs to"},"maxDeployments":{"type":"integer","minimum":1,"default":100,"description":"Maximum number of deployments for newly created groups"}},"required":["name","project"]},"ProjectIDOrNameQueryParam":{"type":"string","maxLength":100,"description":"Filter by project ID or name."},"UpdateDeploymentGroupRequest":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"maxDeployments":{"type":"integer","minimum":1,"description":"Maximum number of deployments in this deployment group"}}},"CreateDeploymentGroupTokenResponse":{"type":"object","properties":{"token":{"type":"string","description":"The API key token"},"deploymentLink":{"type":"string","description":"Formatted deployment link"}},"required":["token","deploymentLink"]},"CreateDeploymentGroupTokenRequest":{"type":"object","properties":{"description":{"type":"string","description":"Description for the API key"},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"Optional expiration date for the API key"},"deploymentSetupConfig":{"$ref":"#/components/schemas/DeploymentSetupConfig"},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"}},"required":["deploymentSetupConfig"]},"DeploymentSetupConfig":{"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"environmentVariables":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"}},"inputValues":{"$ref":"#/components/schemas/EncryptedStackInputValues"},"publicSubdomain":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","description":"Operator-pinned deployment subdomain for this setup token."}},"required":["metadata","policy","environmentVariables"]},"DeploymentSetupMetadata":{"type":"object","additionalProperties":{"nullable":true}},"DeploymentSetupPolicy":{"type":"object","properties":{"allowedPlatforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."}},"allowedKubernetesBasePlatforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","on-prem"]},"minItems":1,"description":"Kubernetes base environments the recipient may target."},"allowedKubernetesClusterSources":{"type":"array","items":{"$ref":"#/components/schemas/KubernetesClusterSource"},"minItems":1,"description":"Whether recipients may create a cluster, use an existing cluster, or both."},"allowedSetupMethods":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentSetupMethod"}},"allowReleasePinning":{"type":"boolean"},"stackSettings":{"$ref":"#/components/schemas/DeploymentSetupStackSettingsPolicy"}},"required":["allowedPlatforms","allowedSetupMethods"]},"KubernetesClusterSource":{"type":"string","enum":["create","existing"]},"DeploymentSetupStackSettingsPolicy":{"type":"object","properties":{"defaults":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."},"allowedDeploymentModels":{"type":"array","items":{"type":"string","enum":["push","pull","airgapped"]}},"allowedNetworkModes":{"type":"array","items":{"type":"string","enum":["none","create","default","byo"]}},"allowedUpdatesModes":{"type":"array","items":{"type":"string","enum":["auto","approval-required"]}},"allowedTelemetryModes":{"type":"array","items":{"type":"string","enum":["auto","approval-required","off"]}},"allowedHeartbeatsModes":{"type":"array","items":{"type":"string","enum":["on","off"]}},"allowExternalBindings":{"type":"boolean"},"allowCustomRegistry":{"type":"boolean"}}},"EnvironmentVariableConfig":{"type":"object","properties":{"name":{"type":"string","pattern":"^[A-Z_][A-Z0-9_]*$","description":"Variable name"},"value":{"type":"string","maxLength":10000,"description":"Variable value (encrypted in database)"},"type":{"$ref":"#/components/schemas/EnvironmentVariableType"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string","pattern":"^[a-zA-Z0-9_-]+(\\*)?$"},"description":"Target resource patterns (null = all resources, array = wildcard patterns)"}},"required":["name","value","type","targetResources"]},"EnvironmentVariableType":{"type":"string","enum":["plain","secret"],"description":"Variable type (plain or secret)"},"EncryptedStackInputValues":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/EncryptedStackInputValue"},"default":{}},"EncryptedStackInputValue":{"type":"object","properties":{"value":{"type":"string","description":"Encrypted JSON-encoded input value."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"]},"secret":{"type":"boolean","description":"Whether the original input is secret."}},"required":["value","kind","secret"]},"StackInputValuesRequest":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/StackInputValueRequest"},"default":{}},"StackInputValueRequest":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"CreateFirstPartyDeploymentSessionResponse":{"type":"object","properties":{"token":{"type":"string","description":"The deployment-group session token"}},"required":["token"]},"Package":{"type":"object","properties":{"id":{"type":"string","pattern":"pkg_[0-9a-z]{28}$","description":"Unique identifier for the package.","example":"pkg_jebo2o5jmm7raefl2m1pe3cz"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"type":{"type":"string","enum":["cli","cloudformation","helm","operator-image","terraform"],"description":"Types of packages that can be built"},"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"version":{"type":"string","description":"Package version (e.g., '1.0.0', 'rel_abc123')"},"sourceReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Release used as package build input. Null for release-less packages such as Operate Operator images.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"setupFingerprints":{"$ref":"#/components/schemas/SetupFingerprintMap"},"packageBuildInputHash":{"type":"string","description":"Hash of Platform-known package build request inputs: package type, source release, setup fingerprints, package config, and setup contract version"},"config":{"oneOf":[{"allOf":[{"type":"object","properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"}},"required":["displayName","name"],"description":"Branding configuration for the deploy CLI binary."},{"type":"object","properties":{"type":{"type":"string","enum":["cli"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts."},"supportedAwsRegions":{"type":"array","items":{"type":"string"},"description":"AWS regions supported by the environment that built this package."}},"description":"Configuration for CloudFormation packages"},{"type":"object","properties":{"type":{"type":"string","enum":["cloudformation"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"}},"required":["chartName","description"],"description":"Configuration for the Helm chart package"},{"type":"object","properties":{"type":{"type":"string","enum":["helm"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"}},"required":["displayName","name"],"description":"Branding configuration for the Operator image."},{"type":"object","properties":{"type":{"type":"string","enum":["operator-image"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts."},"supportedAwsRegions":{"type":"array","items":{"type":"string"},"description":"AWS regions supported by the environment that built this package."}},"description":"Configuration for Terraform package generation."},{"type":"object","properties":{"type":{"type":"string","enum":["terraform"]}},"required":["type"]}]}],"description":"Type-specific configuration"},"outputs":{"oneOf":[{"allOf":[{"type":"object","properties":{"binaries":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sha256":{"type":"string","description":"SHA256 checksum"},"size":{"type":"integer","minimum":0,"description":"File size in bytes"},"url":{"type":"string","description":"Download URL for the binary"}},"required":["sha256","size","url"],"description":"Information about a single binary artifact"},"description":"Binary information for each target platform"},"buildInfo":{"type":"object","properties":{"alienSha":{"type":"string","description":"Alien source commit used to build the source CLI and agent binaries."},"horizonSha":{"type":"string","description":"Compute backend source revision used by optional package extensions, if applicable."},"machineBundleManifestUrl":{"type":"string","nullable":true,"description":"Machine runtime release manifest embedded into the generated CLI."},"platformSha":{"type":"string","description":"Source revision used to build the package service and optional extensions."},"sourceAgentBinarySha256":{"type":"string","nullable":true,"description":"SHA256 checksum of the source runtime helper binary shipped with the CLI package, when present."},"sourceCliBinarySha256":{"type":"string","description":"SHA256 checksum of the source deploy CLI binary before white-label config is appended."}},"required":["alienSha","horizonSha","platformSha","sourceCliBinarySha256"],"description":"Source provenance for a generated CLI package."}},"required":["binaries","buildInfo"],"description":"Outputs from a CLI package build"},{"type":"object","properties":{"type":{"type":"string","enum":["cli"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"digest":{"type":"string","description":"Image digest (e.g., \"sha256:abc123...\")"},"image":{"type":"string","description":"Full image reference (e.g., \"public.ecr.aws/acme/operators/project-id:1.2.3\")"},"labelDomain":{"type":"string","nullable":true,"description":"DNS-style label domain embedded into the Operator binary, if whitelabeled."}},"required":["digest","image"],"description":"Outputs from an Operator image package build"},{"type":"object","properties":{"type":{"type":"string","enum":["operator-image"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"chart":{"type":"string","description":"OCI chart reference (e.g., \"oci://public.ecr.aws/acme/charts/project-id\")"},"version":{"type":"string","description":"Chart version (e.g., \"1.2.3\")"}},"required":["chart","version"],"description":"Outputs from a Helm chart package build"},{"type":"object","properties":{"type":{"type":"string","enum":["helm"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"targets":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"launchStackUrl":{"type":"string","description":"AWS Console quick-launch URL"},"sha256":{"type":"string","description":"SHA256 checksum of the template"},"size":{"type":"integer","minimum":0,"description":"Template size in bytes"},"stackPolicyUrl":{"type":"string","description":"S3 URL to the CloudFormation stack policy"},"target":{"type":"string","description":"CloudFormation target (aws, eks)"},"templateUrl":{"type":"string","description":"S3 URL to the CloudFormation template"}},"required":["launchStackUrl","sha256","size","stackPolicyUrl","target","templateUrl"],"description":"Information about a single CloudFormation template package for one target."},"description":"Template artifacts by CloudFormation target."}},"required":["targets"],"description":"Outputs from a CloudFormation package build."},{"type":"object","properties":{"type":{"type":"string","enum":["cloudformation"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"modules":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL for the module archive"},"filename":{"type":"string","description":"Filename of the module archive"},"shasum":{"type":"string","description":"SHA256 checksum of the archive"},"size":{"type":"integer","minimum":0,"description":"Size of the archive in bytes"},"source":{"type":"string","description":"Terraform module source (hostname/namespace/name/provider, without scheme)"},"target":{"type":"string","description":"Terraform module target (aws, gcp, azure, eks, gke, aks)"},"variables":{"type":"array","items":{"type":"string"},"description":"Terraform input variables exposed by this module."}},"required":["downloadUrl","filename","shasum","size","source","target"],"description":"Information about a single Terraform module package for one target."},"description":"Module registry artifacts by Terraform target."},"provider":{"type":"object","properties":{"gpgPublicKey":{"type":"object","properties":{"asciiArmor":{"type":"string","description":"ASCII-armored public key"},"keyId":{"type":"string","description":"GPG key ID"}},"required":["asciiArmor","keyId"],"description":"GPG public key for Terraform provider signature verification"},"platforms":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL for the provider zip"},"filename":{"type":"string","description":"Filename of the provider zip"},"shasum":{"type":"string","description":"SHA256 checksum of the zip file"},"shasumsSignatureUrl":{"type":"string","description":"URL to the shasums signature file"},"shasumsUrl":{"type":"string","description":"URL to the shasums file"},"size":{"type":"integer","minimum":0,"description":"Size of the zip file in bytes"}},"required":["downloadUrl","filename","shasum","shasumsSignatureUrl","shasumsUrl","size"],"description":"Information about a single Terraform provider package for a specific platform"},"description":"Provider packages for each target platform"},"source":{"type":"string","description":"Terraform provider source (hostname/namespace/type, without scheme)"}},"required":["gpgPublicKey","platforms","source"],"description":"Terraform provider registry outputs."}},"required":["modules","provider"],"description":"Outputs from a Terraform package build."},{"type":"object","properties":{"type":{"type":"string","enum":["terraform"]}},"required":["type"]}]},{"nullable":true}],"description":"Package outputs (only when status is 'ready')"},"error":{"nullable":true,"description":"Error information if status is 'failed'"},"sourceBinarySha256":{"type":"string","nullable":true,"description":"Builder-recorded source binary SHA256 (for cli/terraform packages)"},"retries":{"type":"integer","minimum":0,"description":"Number of build retries"},"lockedAt":{"type":"string","format":"date-time","nullable":true},"lockedBy":{"type":"string","nullable":true},"leaseExpiresAt":{"type":"string","format":"date-time","nullable":true,"description":"Expiration of the current builder lease"},"buildPhase":{"type":"string","nullable":true,"enum":["building","publishing",null],"description":"Coarse package build phase"},"lastProgressAt":{"type":"string","format":"date-time","nullable":true,"description":"Last successful builder lease renewal or phase change"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"completedAt":{"type":"string","format":"date-time","nullable":true}},"required":["id","projectId","workspaceId","type","status","version","setupFingerprints","packageBuildInputHash","config","retries","createdAt","updatedAt"]},"SetupFingerprintMap":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/SetupFingerprintInfo"},"description":"Per-target setup compatibility fingerprints copied from the source release"},"SetupFingerprintInfo":{"type":"object","properties":{"target":{"$ref":"#/components/schemas/SetupTarget"},"fingerprint":{"$ref":"#/components/schemas/SetupFingerprint"},"version":{"$ref":"#/components/schemas/SetupFingerprintVersion"}},"required":["target","fingerprint","version"]},"SetupTarget":{"type":"string","minLength":1,"description":"Stable target key for the setup contract, e.g. aws/us-east-1"},"SetupFingerprint":{"type":"string","minLength":1,"description":"Deterministic setup contract fingerprint for one setup target"},"SetupFingerprintVersion":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Setup fingerprint algorithm version"},"ReleaseListItemResponse":{"allOf":[{"$ref":"#/components/schemas/Release"},{"type":"object","properties":{"currentChannels":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseChannelName"},"description":"Channels for which this release is currently selected"},"commitUrl":{"type":"string","nullable":true,"format":"uri","description":"Validated canonical provider URL for the exact commit"},"project":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"Project ID"},"name":{"type":"string","description":"Project name"}},"required":["id","name"],"description":"Project info, included when ?include=project is used"},"rollout":{"type":"object","nullable":true,"properties":{"updatedCount":{"type":"integer","description":"Deployments that finished updating to this release (excludes initial provisions)"},"pendingCount":{"type":"integer","description":"Deployments currently targeting this release but not yet running it"},"avgDurationMs":{"type":"number","nullable":true,"description":"Average time from release creation until a deployment finished updating, in milliseconds"}},"required":["updatedCount","pendingCount","avgDurationMs"],"description":"Rollout stats, included when ?include=rollout is used"},"createdBy":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"User ID"},"name":{"type":"string","description":"User's display name"},"email":{"type":"string","description":"User's email address"},"image":{"type":"string","nullable":true,"description":"User's avatar image URL"}},"required":["id","name","email","image"],"description":"Platform user who created the release, included when ?include=createdBy is used"}},"required":["currentChannels","commitUrl"]}]},"ReleaseChannelName":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z][a-z0-9-]*$"},"Release":{"type":"object","properties":{"id":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"projectId":{"type":"string","maxLength":128},"version":{"type":"string","minLength":1,"maxLength":256},"gitMetadata":{"$ref":"#/components/schemas/GitMetadata"},"createdAt":{"type":"string","format":"date-time"},"stack":{"allOf":[{"$ref":"#/components/schemas/StackByPlatform"}],"nullable":true},"setupFingerprints":{"allOf":[{"$ref":"#/components/schemas/SetupFingerprintMap"},{"description":"Per-target setup compatibility fingerprints for this release"}]},"rootDirectory":{"type":"string","nullable":true,"maxLength":256},"createdByUserId":{"type":"string","nullable":true,"maxLength":128,"description":"ID of the platform user who created the release, if known"},"workspaceId":{"type":"string","maxLength":128}},"required":["id","projectId","version","createdAt","setupFingerprints","workspaceId"]},"CreateReleaseRequest":{"type":"object","properties":{"project":{"type":"string","maxLength":100,"description":"Project ID or name"},"version":{"type":"string","minLength":1,"maxLength":256},"gitMetadata":{"$ref":"#/components/schemas/GitMetadata"},"stack":{"$ref":"#/components/schemas/StackByPlatform"},"rootDirectory":{"type":"string","nullable":true,"maxLength":256},"channel":{"allOf":[{"$ref":"#/components/schemas/ReleaseChannelName"},{"description":"Release channel to advance. Defaults to production."}]}},"required":["project"]},"ReleaseAuthorFilterItem":{"type":"object","properties":{"login":{"type":"string","nullable":true,"description":"Provider username (e.g., GitHub login)"},"name":{"type":"string","nullable":true,"description":"Git commit author name"},"avatarUrl":{"type":"string","nullable":true,"format":"uri","description":"Author avatar URL"}},"required":["login","name","avatarUrl"]},"ReleaseDeploymentsResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseDeploymentItem"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"},"stateCounts":{"$ref":"#/components/schemas/ReleaseRolloutStateCounts"}},"required":["items","nextCursor","stateCounts"]},"ReleaseDeploymentItem":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"deploymentGroup":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"}},"required":["id","name"],"description":"Deployment group this deployment belongs to"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the currently deployed release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the desired release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat"},"rolloutState":{"$ref":"#/components/schemas/ReleaseRolloutState"},"releasedAt":{"type":"string","format":"date-time","nullable":true,"description":"When this release went live on the deployment, null if it never did"},"durationMs":{"type":"integer","nullable":true,"description":"Time from release creation until the deployment finished updating, in milliseconds. Null for initial provisions and deployments that never ran this release."},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Latest error information if the deployment is in a failed state"}},"required":["id","name","status","platform","rolloutState","releasedAt","durationMs"]},"ReleaseRolloutState":{"type":"string","enum":["updated","updating","failed","pending","pinned-other","superseded","on-other"]},"ReleaseRolloutStateCounts":{"type":"object","properties":{"updated":{"type":"integer"},"updating":{"type":"integer"},"failed":{"type":"integer"},"pending":{"type":"integer"},"pinned-other":{"type":"integer"},"superseded":{"type":"integer"},"on-other":{"type":"integer"}},"required":["updated","updating","failed","pending","pinned-other","superseded","on-other"],"description":"Deployment counts per rollout state across all deployments the filters allow (ignores the state filter)"},"ReleaseChannel":{"type":"object","properties":{"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"name":{"$ref":"#/components/schemas/ReleaseChannelName"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"deploymentCount":{"type":"integer","minimum":0},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["workspaceId","projectId","name","currentReleaseId","createdAt","updatedAt"]},"DeploymentListItemResponse":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"deploymentProtocolVersion":{"$ref":"#/components/schemas/DeploymentProtocolVersion"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"ID of deployment group this deployment belongs to","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the currently deployed release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the desired release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"releaseChannel":{"allOf":[{"$ref":"#/components/schemas/ReleaseChannelName"},{"description":"Named release stream followed when the deployment is not pinned"}]},"importSource":{"type":"string","nullable":true,"enum":["cloudformation","terraform","helm",null],"description":"Setup source that imported this deployment"},"setupMethod":{"type":"string","nullable":true,"enum":["cloudformation","google-oauth","terraform","helm","cli","manual",null],"description":"Setup method that created the deployment record."},"setupMetadata":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Setup method metadata needed to guide privileged teardown."},"setupTarget":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup target for compatibility checks"},"setupFingerprint":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup compatibility fingerprint"},"setupFingerprintVersion":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Imported setup fingerprint version"},"operatorScope":{"type":"string","nullable":true,"description":"Display-only scope reported by the Operator manifest"},"operatorPermission":{"type":"string","nullable":true,"description":"Display-only permission tier reported by the Operator manifest"},"operatorVersion":{"type":"string","nullable":true,"description":"Version reported by the Operator"},"capabilities":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OperatorCapabilityReport"},"description":"Capability state reported by the Operator"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat"},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Latest error information if in a failed state"},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"managerId":{"$ref":"#/components/schemas/ManagerID"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"release":{"$ref":"#/components/schemas/DeploymentReleaseInfo"},"deploymentGroup":{"$ref":"#/components/schemas/DeploymentGroupInfo"},"project":{"$ref":"#/components/schemas/DeploymentProjectInfo"}},"required":["id","name","status","projectId","platform","deploymentProtocolVersion","deploymentGroupId","releaseChannel","retryRequested","createdAt","updatedAt","managerId","workspaceId"]},"DeploymentProtocolVersion":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"DeploymentState protocol version owned by the runtime/manager"},"OperatorCapabilityReport":{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":128},"state":{"$ref":"#/components/schemas/OperatorCapabilityState"},"detail":{"type":"string","nullable":true,"maxLength":512}},"required":["key","state"]},"OperatorCapabilityState":{"type":"string","enum":["granted","denied","unavailable"]},"ManagerID":{"type":"string","pattern":"mgr_[0-9a-z]{28}$","description":"ID of the manager","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"DeploymentReleaseInfo":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"version":{"type":"string","minLength":1,"maxLength":256},"gitMetadata":{"$ref":"#/components/schemas/GitMetadata"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","version","createdAt"]},"DeploymentGroupInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"}},"required":["id","name"]},"DeploymentProjectInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Project name.","example":"my-app"}},"required":["id","name"]},"DeploymentStats":{"type":"object","properties":{"total":{"type":"number","description":"Total number of deployments matching filters"},"byStatus":{"type":"object","additionalProperties":{"type":"number"},"description":"Count of deployments by status (only includes statuses with non-zero counts)"},"byPlatform":{"type":"object","additionalProperties":{"type":"number"},"description":"Count of deployments by platform (only includes platforms with non-zero counts)"},"byCurrentRelease":{"type":"object","additionalProperties":{"type":"number"},"description":"Count of deployments by currentReleaseId. The empty string key represents deployments with no current release (initial provisioning)."},"byPinnedRelease":{"type":"object","additionalProperties":{"type":"number"},"description":"Count of deployments by pinnedReleaseId among deployments that are pinned. Excludes unpinned deployments."}},"required":["total","byStatus","byPlatform","byCurrentRelease","byPinnedRelease"]},"DeploymentDetailResponse":{"allOf":[{"$ref":"#/components/schemas/Deployment"},{"type":"object","properties":{"release":{"$ref":"#/components/schemas/DeploymentReleaseInfo"},"deploymentGroup":{"$ref":"#/components/schemas/DeploymentGroupInfo"},"project":{"$ref":"#/components/schemas/DeploymentProjectInfo"}}}]},"Deployment":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!ag[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment name.","example":"acme-prod"},"publicSubdomain":{"type":"string","nullable":true,"minLength":1,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","description":"Public subdomain for auto-generated domains"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"basePlatform":{"type":"string","nullable":true,"enum":["aws","gcp","azure",null],"description":"Underlying cloud platform for Kubernetes deployments."},"region":{"type":"string","nullable":true,"description":"Cloud region or location for the deployment."},"deploymentProtocolVersion":{"$ref":"#/components/schemas/DeploymentProtocolVersion"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"ID of deployment group this deployment belongs to","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-provided configuration (network, deployment model, approvals)"},"stackState":{"type":"object","nullable":true,"properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"State of infrastructure components managed by this deployment"},"runtimeMetadata":{"type":"object","nullable":true,"properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment state persistence"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the currently deployed release (actual state)","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the desired release for deployment/update (desired state)","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"releaseChannel":{"allOf":[{"$ref":"#/components/schemas/ReleaseChannelName"},{"description":"Named release stream followed when the deployment is not pinned"}]},"importSource":{"type":"string","nullable":true,"enum":["cloudformation","terraform","helm",null],"description":"Setup source that imported this deployment"},"setupMethod":{"type":"string","nullable":true,"enum":["cloudformation","google-oauth","terraform","helm","cli","manual",null],"description":"Setup method that created the deployment record and owns setup-time resources."},"setupMetadata":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Setup method metadata needed to guide privileged teardown."},"setupTarget":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup target for compatibility checks"},"setupFingerprint":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup compatibility fingerprint"},"setupFingerprintVersion":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Imported setup fingerprint algorithm version"},"operatorScope":{"type":"string","nullable":true,"description":"Display-only scope reported by the Operator manifest"},"operatorPermission":{"type":"string","nullable":true,"description":"Display-only permission tier reported by the Operator manifest"},"operatorVersion":{"type":"string","nullable":true,"description":"Version reported by the Operator"},"capabilities":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OperatorCapabilityReport"},"description":"Capability state reported by the Operator"},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat from the deployment"},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Latest error information if the deployment is in a failed state"},"environmentVariables":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"},"description":"Configuration of environment variables for the deployment"},"targetEnvironmentVariables":{"type":"object","nullable":true,"properties":{"variables":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"},"description":"Environment variables in the snapshot"},"hash":{"type":"string","description":"Deterministic hash of all variables for change detection"},"createdAt":{"type":"string","format":"date-time","description":"ISO 8601 timestamp when snapshot was created"}},"required":["variables","hash","createdAt"],"description":"Snapshot of target environment variables for the deployment"},"currentEnvironmentVariables":{"type":"object","nullable":true,"properties":{"variables":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"},"description":"Environment variables in the snapshot"},"hash":{"type":"string","description":"Deterministic hash of all variables for change detection"},"createdAt":{"type":"string","format":"date-time","description":"ISO 8601 timestamp when snapshot was created"}},"required":["variables","hash","createdAt"],"description":"Snapshot of current environment variables for the deployment"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"ID of the manager responsible for this deployment"}]},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"}},"required":["id","name","status","projectId","platform","deploymentProtocolVersion","deploymentGroupId","stackSettings","releaseChannel","retryRequested","createdAt","updatedAt","managerId","workspaceId"]},"DeploymentConnectionInfo":{"type":"object","properties":{"arc":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Manager URL for commands"},"deploymentId":{"type":"string","description":"Deployment ID to use in command requests"}},"required":["url","deploymentId"]},"resources":{"type":"object","additionalProperties":{"type":"object","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."},"publicEndpoints":{"type":"object","additionalProperties":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"protocol":{"type":"string","enum":["http","tcp"]},"host":{"type":"string","minLength":1},"port":{"type":"integer","minimum":1,"maximum":65535},"wildcardHost":{"type":"string"}},"required":["url","protocol","host","port"]},"description":"Public endpoints keyed by endpoint name."}},"required":["type"]},"description":"Deployed resources and their public endpoints"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"platform":{"type":"string"}},"required":["arc","resources","status","platform"]},"CreateDeploymentResponse":{"type":"object","properties":{"deployment":{"$ref":"#/components/schemas/Deployment"},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Effective deployment model persisted for the deployment."},"token":{"type":"string","description":"Deployment token (only returned when using deployment group token)"}},"required":["deployment","deploymentModel"]},"NewDeploymentRequest":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!ag[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment name.","example":"acme-prod"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"deploymentGroupId":{"type":"string","description":"Required for workspace/project tokens. Deployment group tokens use their own group automatically."},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Optional manager to assign. If omitted, the project default or system manager is selected."}]},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"environmentVariables":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"},"description":"Configuration of environment variables for the deployment"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"project":{"type":"string","maxLength":100,"description":"Project ID or name"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"Stack settings for deployment customization"},"resourcePrefix":{"$ref":"#/components/schemas/ResourcePrefix"},"publicSubdomain":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","description":"Optional deployment subdomain under the project's generated-domain parent. Operator-only and requires a custom project domain; customer deploy-link tokens and the shared system domain are rejected. Omit to generate a random subdomain."},"setupMethod":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMethod"},{"description":"Setup method that created the deployment. Defaults to cli."}]},"setupMetadata":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMetadata"},{"description":"Setup method metadata used to guide privileged teardown."}]},"inputValues":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/StackInputValueRequest"},"default":{},"description":"Stack input values provided by the deployment creator."},"operatorScope":{"type":"string","minLength":1,"maxLength":512,"description":"Display-only scope reported by the Operator manifest."},"operatorPermission":{"type":"string","minLength":1,"maxLength":64,"description":"Display-only permission tier reported by the Operator manifest."},"initialDesiredRelease":{"type":"string","enum":["active","none"],"default":"active","description":"Desired-release selection for a new deployment. Use none to register an environment without initially requesting a release; later updates can assign one."},"releaseChannel":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z][a-z0-9-]*$","default":"production","description":"Release channel followed while this deployment is not pinned."}},"required":["name","platform","project"],"additionalProperties":false,"description":"Request schema for creating a new deployment"},"ResourcePrefix":{"type":"string","pattern":"^[a-z](?:[a-z0-9]|-(?=[a-z0-9])){1,38}[a-z0-9]$","description":"Optional physical-name prefix for generated cloud resources. Omit to let the manager generate one."},"ImportDeploymentRequest":{"oneOf":[{"$ref":"#/components/schemas/ForwardImportRequest"},{"$ref":"#/components/schemas/PersistImportedDeploymentRequest"}],"description":"Request schema for importing a deployment from resolved setup infrastructure"},"ForwardImportRequest":{"type":"object","properties":{"mode":{"type":"string","enum":["forward"],"default":"forward"},"project":{"type":"string","maxLength":100,"description":"Project ID or name. Required for user-session callers."},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Required for user-session callers. Deployment-group tokens use their own group automatically.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Manager ID. If omitted, the first suitable manager for the source platform is used."}]},"source":{"$ref":"#/components/schemas/ImportSource"},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"}},"required":["source"]},"ImportSource":{"type":"object","properties":{"deploymentName":{"type":"string","minLength":1,"description":"User-chosen deployment name. Must be unique within the deployment group; the manager returns 409 on collision."},"resourcePrefix":{"allOf":[{"$ref":"#/components/schemas/ResourcePrefix"},{"description":"Stable physical-name prefix used by the setup artifact."}]},"sourceKind":{"$ref":"#/components/schemas/ImportSourceKind"},"setupMetadata":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMetadata"},{"description":"Setup source metadata needed to guide privileged teardown."}]},"releaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Release that produced the setup artifact. Defaults to latest.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Cloud platform of the imported stack"},"basePlatform":{"$ref":"#/components/schemas/KubernetesBasePlatform"},"region":{"type":"string","description":"Region or location reported by the setup artifact"},"setupTarget":{"allOf":[{"$ref":"#/components/schemas/SetupTarget"},{"description":"Setup target this package was generated for"}]},"setupImportFormatVersion":{"$ref":"#/components/schemas/SetupImportFormatVersion"},"setupFingerprint":{"allOf":[{"$ref":"#/components/schemas/SetupFingerprint"},{"description":"Setup compatibility fingerprint embedded in the package"}]},"setupFingerprintVersion":{"allOf":[{"$ref":"#/components/schemas/SetupFingerprintVersion"},{"description":"Setup fingerprint algorithm version embedded in the package"}]},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}],"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."},"resources":{"type":"array","items":{"$ref":"#/components/schemas/ImportedResource"},"minItems":1}},"required":["deploymentName","resourcePrefix","platform","region","setupTarget","setupImportFormatVersion","setupFingerprint","setupFingerprintVersion","stackSettings","resources"],"description":"Resolved setup import payload"},"ImportSourceKind":{"type":"string","enum":["cloudformation","terraform","helm"],"description":"Source label for observability only — does not affect import behavior."},"KubernetesBasePlatform":{"type":"string","enum":["aws","gcp","azure"],"description":"Base cloud platform for cloud-backed Kubernetes imports."},"SetupImportFormatVersion":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Setup import payload format version embedded in the package"},"ImportedResource":{"type":"object","properties":{"id":{"type":"string","description":"Resource id from the active stack"},"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."},"importData":{"type":"object","additionalProperties":{"nullable":true},"description":"Resolved typed import payload"}},"required":["id","type","importData"]},"PersistImportedDeploymentRequest":{"type":"object","properties":{"mode":{"type":"string","enum":["persist"]},"name":{"type":"string","minLength":1,"description":"Deployment name. Must be unique within the deployment group."},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"publicSubdomain":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","description":"Optional deployment subdomain under the project's generated-domain parent. Operator-only and requires a custom project domain; customer deploy-link tokens and the shared system domain are rejected. Omit to generate a random subdomain."},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"basePlatform":{"$ref":"#/components/schemas/KubernetesBasePlatform"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."},"stackState":{"nullable":true},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Platform-specific environment information"},"runtimeMetadata":{"type":"object","properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment\n\nStores deployment state that needs to persist across step calls."},"scheduleReconciliation":{"type":"boolean","default":false},"deploymentProtocolVersion":{"$ref":"#/components/schemas/DeploymentProtocolVersion"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"default":"provisioning","description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"currentReleaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"importSource":{"allOf":[{"$ref":"#/components/schemas/ImportSourceKind"},{"description":"Package source that produced the import payload"}]},"setupMetadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"setupTarget":{"$ref":"#/components/schemas/SetupTarget"},"setupFingerprint":{"$ref":"#/components/schemas/SetupFingerprint"},"setupFingerprintVersion":{"$ref":"#/components/schemas/SetupFingerprintVersion"},"deploymentToken":{"type":"string"},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]}],"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."},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"}},"required":["mode","name","deploymentGroupId","managerId","platform","stackSettings","runtimeMetadata","deploymentProtocolVersion","setupTarget","setupFingerprint","setupFingerprintVersion"]},"SetFirstPartyDeploymentInputsResponse":{"type":"object","properties":{"ok":{"type":"boolean"}},"required":["ok"]},"SetFirstPartyDeploymentInputsRequest":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"}},"required":["platform"]},"SetupRegistrationOperationResponse":{"type":"object","properties":{"id":{"type":"string","pattern":"setupop_[0-9a-z]{28}$","description":"Unique identifier for the setup registration operation.","example":"setupop_y41lqnfosxuwqkzmiax7"},"action":{"$ref":"#/components/schemas/SetupRegistrationAction"},"sourceKind":{"allOf":[{"$ref":"#/components/schemas/ImportSourceKind"},{"description":"Package source that produced the import payload"}]},"status":{"$ref":"#/components/schemas/SetupRegistrationOperationStatus"},"deploymentId":{"type":"string","nullable":true,"pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"physicalResourceId":{"type":"string","nullable":true},"result":{"$ref":"#/components/schemas/SetupRegistrationOperationResult"},"error":{"type":"object","nullable":true,"properties":{"message":{"type":"string"},"retryable":{"type":"boolean"}},"required":["message","retryable"]}},"required":["id","action","sourceKind","status","deploymentId","physicalResourceId","result","error"]},"SetupRegistrationAction":{"type":"string","enum":["create","update","delete"]},"SetupRegistrationOperationStatus":{"type":"string","enum":["pending","processing","waiting-for-handoff","succeeded","failed","responding","responded"]},"SetupRegistrationOperationResult":{"type":"object","nullable":true,"properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"deploymentToken":{"type":"string","nullable":true},"helmValues":{"type":"string","nullable":true}},"required":["deploymentId","deploymentToken","helmValues"]},"CreateSetupRegistrationOperationRequest":{"type":"object","properties":{"action":{"$ref":"#/components/schemas/SetupRegistrationAction"},"sourceKind":{"allOf":[{"$ref":"#/components/schemas/ImportSourceKind"},{"description":"Package source that produced the import payload"}]},"source":{"allOf":[{"$ref":"#/components/schemas/ImportSource"}],"nullable":true},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"},"deploymentId":{"type":"string","nullable":true,"pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":512},"cloudFormation":{"$ref":"#/components/schemas/SetupRegistrationCloudFormationTarget"}},"required":["action","sourceKind"],"additionalProperties":false},"SetupRegistrationCloudFormationTarget":{"type":"object","nullable":true,"properties":{"stackId":{"type":"string","minLength":1},"requestId":{"type":"string","minLength":1},"logicalResourceId":{"type":"string","minLength":1},"responseUrl":{"type":"string","format":"uri"},"physicalResourceId":{"type":"string","nullable":true,"minLength":1},"serviceTimeoutSeconds":{"type":"integer","minimum":60,"maximum":7200,"default":3300}},"required":["stackId","requestId","logicalResourceId","responseUrl"],"additionalProperties":false},"DeleteDeploymentResponse":{"type":"object","properties":{"action":{"type":"string","enum":["cleanup","detach","forget"]},"message":{"type":"string"}},"required":["action","message"]},"DeleteDeploymentRequest":{"type":"object","properties":{"action":{"type":"string","enum":["cleanup","detach","forget"]}},"required":["action"]},"PinReleaseRequest":{"type":"object","properties":{"releaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Release ID to pin the deployment to. Set to null to resume its followed channel.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"}},"additionalProperties":false,"description":"Request schema for pinning/unpinning deployment release"},"DeploymentInputsResponse":{"type":"object","properties":{"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."}},"values":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/StackInputValueRequest"},"description":"Current non-secret input values. Secret values are never returned."},"providedInputIds":{"type":"array","items":{"type":"string"},"description":"Input IDs that currently have a value, including redacted secrets."}},"required":["inputs","values","providedInputIds"]},"UpdateDeploymentInputsResponse":{"allOf":[{"$ref":"#/components/schemas/DeploymentInputsResponse"},{"type":"object","properties":{"runtimeUpdateRequested":{"type":"boolean"}},"required":["runtimeUpdateRequested"]}]},"UpdateDeploymentInputsRequest":{"type":"object","properties":{"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"},"clearInputIds":{"type":"array","items":{"type":"string"},"default":[]}},"additionalProperties":false},"UpdateDeploymentEnvironmentVariablesRequest":{"type":"object","properties":{"variables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Variable name"},"value":{"type":"string","description":"Variable value"},"type":{"type":"string","enum":["plain","secret"],"description":"Variable type"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource patterns (null = all resources)"}},"required":["name","value","type"]},"description":"Environment variables for the deployment"}},"required":["variables"],"additionalProperties":false,"description":"Request schema for updating deployment environment variables"},"CreateDeploymentTokenResponse":{"type":"object","properties":{"token":{"type":"string","description":"The generated deployment token (only shown once)"},"deploymentId":{"type":"string","description":"The deployment ID that this token is scoped to"}},"required":["token","deploymentId"]},"CreateDeploymentTokenRequest":{"type":"object","properties":{"description":{"type":"string","nullable":true,"minLength":3,"maxLength":128,"description":"Optional description for the deployment token"},"expiresAt":{"type":"string","format":"date-time","nullable":true,"description":"Optional expiration date for the deployment token"}},"required":["description"]},"CreateManagerResponse":{"type":"object","properties":{"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"setupStatus":{"type":"string","enum":["pending"]},"setupToken":{"type":"string"},"setupTokenId":{"type":"string"},"deploymentLink":{"type":"string"},"setupConfig":{"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"inputValues":{"$ref":"#/components/schemas/EncryptedStackInputValues"},"publicSubdomain":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","description":"Operator-pinned deployment subdomain for this setup token."},"environmentVariables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string","enum":["plain","secret"]},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"}}},"required":["name","type","targetResources"]}}},"required":["metadata","policy","environmentVariables"]},"setup":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","enum":["cloudformation"]},"deploymentPortalUrl":{"type":"string"},"launchUrl":{"type":"string"},"templateUrl":{"type":"string"},"stackName":{"type":"string"},"region":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["method","deploymentPortalUrl","launchUrl","templateUrl","stackName","region","stackSettings"]},{"type":"object","properties":{"method":{"type":"string","enum":["google-oauth"]},"deploymentPortalUrl":{"type":"string"},"managerUrl":{"type":"string"},"oauthStartUrl":{"type":"string"},"region":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["method","deploymentPortalUrl","managerUrl","oauthStartUrl","region","stackSettings"]},{"type":"object","properties":{"method":{"type":"string","enum":["terraform"]},"deploymentPortalUrl":{"type":"string"},"managerUrl":{"type":"string"},"providerSource":{"type":"string"},"moduleSource":{"type":"string"},"moduleVersion":{"type":"string"},"moduleInputs":{"type":"object","additionalProperties":{"type":"string"}},"mainTf":{"type":"string"},"tfvars":{"type":"string"},"commands":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["method","deploymentPortalUrl","managerUrl","providerSource","moduleSource","moduleInputs","mainTf","tfvars","commands","stackSettings"]}]}},"required":["managerId","setupStatus","setupToken","setupTokenId","deploymentLink","setupConfig","setup"]},"NewManagerRequest":{"type":"object","properties":{"name":{"type":"string"},"cloud":{"$ref":"#/components/schemas/PrivateManagerCloud"},"region":{"type":"string","minLength":1,"maxLength":64,"description":"Cloud region for the manager."},"setupMethod":{"$ref":"#/components/schemas/PrivateManagerSetupMethod"},"network":{"type":"string","enum":["create","default"],"description":"Optional network mode for the private-manager setup. Defaults to create for production isolation; default uses the provider default network for faster dev/test setup."},"otlpConfig":{"type":"object","properties":{"logsEndpoint":{"type":"string","format":"uri","description":"External OTLP logs endpoint (e.g. https://api.axiom.co/v1/logs)"},"logsAuthHeader":{"type":"string","description":"Auth header in 'key=value,...' format (e.g. 'authorization=Bearer ,x-axiom-dataset=')"}},"required":["logsEndpoint","logsAuthHeader"],"description":"Optional external OTLP config for forwarding logs to Axiom, Datadog, etc. Falls back to built-in DeepStore when not set."}},"required":["name","cloud","region"]},"PrivateManagerCloud":{"type":"string","enum":["aws","gcp","azure"],"description":"Cloud where the private manager will be deployed."},"PrivateManagerSetupMethod":{"type":"string","enum":["cloudformation","google-oauth","terraform"],"description":"Optional setup method. Defaults to cloudformation for AWS, google-oauth for GCP, and terraform for Azure."},"ManagerRetryResponse":{"oneOf":[{"allOf":[{"$ref":"#/components/schemas/CreateManagerResponse"},{"type":"object","properties":{"mode":{"type":"string","enum":["setup"]}},"required":["mode"]}]},{"$ref":"#/components/schemas/ManagerRetryDeploymentResponse"}]},"ManagerRetryDeploymentResponse":{"type":"object","properties":{"mode":{"type":"string","enum":["deployment"]},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"setupStatus":{"type":"string","enum":["provisioning"]},"deploymentId":{"type":"string"},"message":{"type":"string"}},"required":["mode","managerId","setupStatus","deploymentId","message"]},"Manager":{"type":"object","properties":{"id":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for the manager"}]},"name":{"type":"string","description":"Display name of the manager"},"targets":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms this manager can handle"},"cloud":{"type":"string","nullable":true,"enum":["aws","gcp","azure","kubernetes","machines","local","test",null],"description":"Cloud where this private manager is deployed"},"region":{"type":"string","nullable":true,"description":"Cloud region selected for this private manager"},"setupStatus":{"type":"string","nullable":true,"enum":["pending","provisioning","active","failed","deleting","deleted",null],"description":"Private manager setup lifecycle status"},"url":{"type":"string","nullable":true,"format":"uri","description":"Manager URL (self-reported via heartbeat). DeepStore endpoints are exposed through this URL (e.g., {url}/v1/logs)"},"managementConfigs":{"$ref":"#/components/schemas/ManagerManagementConfigs"},"isSystem":{"type":"boolean","description":"Whether this is a system manager (Alien-hosted)"},"workspaceId":{"type":"string","description":"The workspace ID (for system managers, this is ALIEN_WORKSPACE_ID)"},"status":{"$ref":"#/components/schemas/ManagerStatus"},"version":{"type":"string","nullable":true,"description":"Manager version (self-reported via heartbeat)"},"metrics":{"type":"object","nullable":true,"properties":{"activeDeployments":{"type":"number","description":"Number of active deployments"},"pendingDeployments":{"type":"number","description":"Number of pending deployments"},"memoryUsageMb":{"type":"number","description":"Memory usage in megabytes"},"cpuUsagePercent":{"type":"number","description":"CPU usage percentage"}},"description":"Runtime metrics (self-reported via heartbeat)"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat from the manager"},"logsDatabaseId":{"type":"string","nullable":true,"description":"ID of the logs database associated with this manager"},"managedDeploymentCount":{"type":"integer","minimum":0,"description":"Number of deployments currently being managed by this manager"},"defaultProjectCount":{"type":"integer","minimum":0,"description":"Number of projects that select this manager as a default manager"},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the manager was created"}},"required":["id","name","targets","managementConfigs","isSystem","workspaceId","status","managedDeploymentCount","defaultProjectCount","createdAt"],"description":"Manager schema"},"ManagerManagementConfigs":{"type":"object","properties":{"aws":{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"},"platform":{"type":"string","enum":["aws"]}},"required":["managingRoleArn","platform"]},"gcp":{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"},"platform":{"type":"string","enum":["gcp"]}},"required":["serviceAccountEmail","platform"]},"azure":{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."},"platform":{"type":"string","enum":["azure"]}},"required":["managingTenantId","oidcIssuer","oidcSubject","platform"]},"kubernetes":{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]}},"description":"Per-platform management configurations for cross-account access (self-reported via heartbeat)"},"ManagerStatus":{"type":"string","enum":["healthy","degraded","unhealthy","unknown"],"description":"Current health status"},"ManagerDomainBindingResponse":{"type":"object","properties":{"managerDomainBinding":{"$ref":"#/components/schemas/DomainEndpoint"}},"required":["managerDomainBinding"]},"UpdateManagerDomainBinding":{"type":"object","properties":{"domainId":{"type":"string","nullable":true,"pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"}},"additionalProperties":false},"UpdateManagerRequest":{"type":"object","properties":{"releaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Optional release ID to update to. If not provided, the active release will be chosen","example":"rel_WbhQgksrawSKIpEN0NAssHX9"}},"additionalProperties":false,"description":"Request schema for updating a manager to a new release"},"Event":{"type":"object","properties":{"id":{"type":"string","pattern":"event_[0-9a-zA-Z]{28}$","description":"Unique identifier for the event.","example":"event_MtSA24M3pWuAkQYxgZxuRI"},"deploymentId":{"type":"string","nullable":true,"pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"releaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"debugSessionId":{"type":"string","nullable":true,"pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Unique identifier for the debug session.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"data":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["LoadingConfiguration"]}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["Finished"]}},"required":["type"]},{"type":"object","properties":{"stack":{"type":"string","description":"Name of the stack being built"},"type":{"type":"string","enum":["BuildingStack"]}},"required":["stack","type"]},{"type":"object","properties":{"platform":{"type":"string","description":"Platform being targeted"},"stack":{"type":"string","description":"Name of the stack being checked"},"type":{"type":"string","enum":["RunningPreflights"]}},"required":["platform","stack","type"]},{"type":"object","properties":{"targetTriple":{"type":"string","description":"Target triple for the runtime"},"type":{"type":"string","enum":["DownloadingAlienRuntime"]},"url":{"type":"string","description":"URL being downloaded from"}},"required":["targetTriple","type","url"]},{"type":"object","properties":{"relatedResources":{"type":"array","items":{"type":"string"},"description":"All resource names sharing this build (for deduped container groups)"},"resourceName":{"type":"string","description":"Name of the resource being built"},"resourceType":{"type":"string","description":"Type of the resource: \"worker\", \"container\""},"type":{"type":"string","enum":["BuildingResource"]}},"required":["resourceName","resourceType","type"]},{"type":"object","properties":{"image":{"type":"string","description":"Name of the image being built"},"type":{"type":"string","enum":["BuildingImage"]}},"required":["image","type"]},{"type":"object","properties":{"image":{"type":"string","description":"Name of the image being pushed"},"progress":{"oneOf":[{"type":"object","properties":{"bytesUploaded":{"type":"integer","minimum":0,"description":"Bytes uploaded so far"},"layersUploaded":{"type":"integer","minimum":0,"description":"Number of layers uploaded so far"},"operation":{"type":"string","description":"Current operation being performed"},"totalBytes":{"type":"integer","minimum":0,"description":"Total bytes to upload"},"totalLayers":{"type":"integer","minimum":0,"description":"Total number of layers to upload"}},"required":["bytesUploaded","layersUploaded","operation","totalBytes","totalLayers"],"description":"Progress information for image push operations"},{"nullable":true}]},"type":{"type":"string","enum":["PushingImage"]}},"required":["image","type"]},{"type":"object","properties":{"destination":{"type":"string","nullable":true,"description":"Human-readable destination for pushed images"},"platform":{"type":"string","description":"Target platform"},"stack":{"type":"string","description":"Name of the stack being pushed"},"type":{"type":"string","enum":["PushingStack"]}},"required":["platform","stack","type"]},{"type":"object","properties":{"resourceName":{"type":"string","description":"Name of the resource being pushed"},"resourceType":{"type":"string","description":"Type of the resource: \"worker\", \"container\""},"type":{"type":"string","enum":["PushingResource"]}},"required":["resourceName","resourceType","type"]},{"type":"object","properties":{"project":{"type":"string","description":"Project name"},"type":{"type":"string","enum":["CreatingRelease"]}},"required":["project","type"]},{"type":"object","properties":{"language":{"type":"string","description":"Language being compiled (rust, typescript, etc.)"},"progress":{"type":"string","nullable":true,"description":"Current progress/status line from the build output"},"type":{"type":"string","enum":["CompilingCode"]}},"required":["language","type"]},{"type":"object","properties":{"nextState":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"Represents the collective state of all resources in a stack, including platform and pending actions."},"suggestedDelayMs":{"type":"integer","nullable":true,"minimum":0,"description":"An suggested duration to wait before executing the next step."},"type":{"type":"string","enum":["StackStep"]}},"required":["nextState","type"]},{"type":"object","properties":{"type":{"type":"string","enum":["GeneratingCloudFormationTemplate"]}},"required":["type"]},{"type":"object","properties":{"platform":{"type":"string","description":"Platform for which the template is being generated"},"type":{"type":"string","enum":["GeneratingTemplate"]}},"required":["platform","type"]},{"type":"object","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"]}},"required":["agentId","releaseId","type"]},{"type":"object","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"]}},"required":["agentId","releaseId","type"]},{"type":"object","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"]}},"required":["agentId","releaseId","type"]},{"type":"object","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"]}},"required":["agentId","debugSessionId","type"]},{"type":"object","properties":{"strategyName":{"type":"string","description":"Name of the deployment strategy being used"},"type":{"type":"string","enum":["PreparingEnvironment"]}},"required":["strategyName","type"]},{"type":"object","properties":{"stackName":{"type":"string","description":"Name of the stack being deployed"},"type":{"type":"string","enum":["DeployingStack"]}},"required":["stackName","type"]},{"type":"object","properties":{"stackName":{"type":"string","description":"Name of the stack being tested"},"type":{"type":"string","enum":["RunningTestWorker"]}},"required":["stackName","type"]},{"type":"object","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"]}},"required":["stackName","strategyName","type"]},{"type":"object","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"]}},"required":["stackName","strategyName","type"]},{"type":"object","properties":{"platformName":{"type":"string","description":"Name of the platform (e.g., \"AWS\", \"GCP\")"},"type":{"type":"string","enum":["SettingUpPlatformContext"]}},"required":["platformName","type"]},{"type":"object","properties":{"repositoryName":{"type":"string","description":"Name of the docker repository"},"type":{"type":"string","enum":["EnsuringDockerRepository"]}},"required":["repositoryName","type"]},{"type":"object","properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"currentStatus":{"type":"string","description":"Current stack status"},"type":{"type":"string","enum":["DeployingCloudFormationStack"]}},"required":["cfnStackName","currentStatus","type"]},{"type":"object","properties":{"roleArn":{"type":"string","description":"ARN of the role to assume"},"type":{"type":"string","enum":["AssumingRole"]}},"required":["roleArn","type"]},{"type":"object","properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"type":{"type":"string","enum":["ImportingStackStateFromCloudFormation"]}},"required":["cfnStackName","type"]},{"type":"object","properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"currentStatus":{"type":"string","description":"Current stack status"},"type":{"type":"string","enum":["DeletingCloudFormationStack"]}},"required":["cfnStackName","currentStatus","type"]},{"type":"object","properties":{"bucketNames":{"type":"array","items":{"type":"string"},"description":"Names of the S3 buckets being emptied"},"type":{"type":"string","enum":["EmptyingBuckets"]}},"required":["bucketNames","type"]},{"type":"object","properties":{"deploymentGroupId":{"type":"string","description":"ID of the deployment group this slot belongs to"},"deploymentId":{"type":"string","description":"ID of the deployment that was created"},"releaseId":{"type":"string","nullable":true,"description":"Initial release the slot was created with, if any"},"type":{"type":"string","enum":["DeploymentCreated"]}},"required":["deploymentGroupId","deploymentId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"previousReleaseId":{"type":"string","nullable":true,"description":"ID of the release that was previously live, if any"},"releaseId":{"type":"string","description":"ID of the release that is now live"},"type":{"type":"string","enum":["DeploymentReleased"]}},"required":["deploymentId","releaseId","type"]},{"type":"object","properties":{"attemptedReleaseId":{"type":"string","nullable":true,"description":"ID of the release the platform was trying to deploy, if known"},"deploymentId":{"type":"string","description":"ID of the deployment"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},"phase":{"type":"string","enum":["preflights","provisioning","updating","deleting"],"description":"Phase of a deployment at which a failure occurred.\n\nDerived from the source deployment status: `preflights-failed` →\n`Preflights`, `provisioning-failed` → `Provisioning`, `update-failed` →\n`Updating`, `delete-failed` → `Deleting`.\n`refresh-failed` is modelled separately via `DeploymentDegraded`."},"type":{"type":"string","enum":["DeploymentFailed"]}},"required":["deploymentId","error","phase","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},"type":{"type":"string","enum":["DeploymentDegraded"]}},"required":["deploymentId","error","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"releaseId":{"type":"string","description":"ID of the release that is now live"},"type":{"type":"string","enum":["DeploymentRecovered"]}},"required":["deploymentId","releaseId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment that was deleted"},"type":{"type":"string","enum":["DeploymentDeleted"]}},"required":["deploymentId","type"]},{"type":"object","properties":{"actor":{"oneOf":[{"type":"object","properties":{"email":{"type":"string","nullable":true,"description":"User email when the principal is a user."},"id":{"type":"string","description":"Stable user or service-account identifier."},"kind":{"type":"string","enum":["user","serviceAccount"],"description":"Type of authenticated principal that requested an event."}},"required":["id","kind"],"description":"Authenticated principal that requested a deployment intent event."},{"nullable":true}]},"channel":{"type":"string","description":"Name of the channel that moved"},"previousReleaseId":{"type":"string","nullable":true,"description":"ID of the release that was previously current, if any"},"releaseId":{"type":"string","description":"ID of the release that is now current"},"type":{"type":"string","enum":["ReleaseChannelUpdated"]}},"required":["channel","releaseId","type"]},{"type":"object","properties":{"actor":{"oneOf":[{"type":"object","properties":{"email":{"type":"string","nullable":true,"description":"User email when the principal is a user."},"id":{"type":"string","description":"Stable user or service-account identifier."},"kind":{"type":"string","enum":["user","serviceAccount"],"description":"Type of authenticated principal that requested an event."}},"required":["id","kind"],"description":"Authenticated principal that requested a deployment intent event."},{"nullable":true}]},"channel":{"type":"string","description":"Newly followed channel"},"deploymentId":{"type":"string","description":"ID of the deployment"},"previousChannel":{"type":"string","description":"Previously followed channel"},"type":{"type":"string","enum":["DeploymentReleaseChannelChanged"]}},"required":["channel","deploymentId","previousChannel","type"]},{"type":"object","properties":{"actor":{"oneOf":[{"type":"object","properties":{"email":{"type":"string","nullable":true,"description":"User email when the principal is a user."},"id":{"type":"string","description":"Stable user or service-account identifier."},"kind":{"type":"string","enum":["user","serviceAccount"],"description":"Type of authenticated principal that requested an event."}},"required":["id","kind"],"description":"Authenticated principal that requested a deployment intent event."},{"nullable":true}]},"attemptedReleaseId":{"type":"string","nullable":true,"description":"ID of the release that the failed attempt was targeting, if known"},"deploymentId":{"type":"string","description":"ID of the deployment"},"previousError":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"type":{"type":"string","enum":["DeploymentRetryRequested"]}},"required":["deploymentId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"releaseId":{"type":"string","description":"ID of the release being redeployed"},"type":{"type":"string","enum":["DeploymentRedeployRequested"]}},"required":["deploymentId","releaseId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"pinnedReleaseId":{"type":"string","description":"ID of the release that is now pinned"},"previousPinnedReleaseId":{"type":"string","nullable":true,"description":"ID of the previously pinned release, if any"},"type":{"type":"string","enum":["DeploymentReleasePinned"]}},"required":["deploymentId","pinnedReleaseId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"previousPinnedReleaseId":{"type":"string","description":"ID of the release that was previously pinned"},"type":{"type":"string","enum":["DeploymentReleaseUnpinned"]}},"required":["deploymentId","previousPinnedReleaseId","type"]},{"type":"object","properties":{"actor":{"oneOf":[{"type":"object","properties":{"email":{"type":"string","nullable":true,"description":"User email when the principal is a user."},"id":{"type":"string","description":"Stable user or service-account identifier."},"kind":{"type":"string","enum":["user","serviceAccount"],"description":"Type of authenticated principal that requested an event."}},"required":["id","kind"],"description":"Authenticated principal that requested a deployment intent event."},{"nullable":true}]},"changedKeys":{"type":"array","items":{"type":"string"},"description":"Names of the environment variables that changed (added, removed, or modified)"},"deploymentId":{"type":"string","description":"ID of the deployment"},"type":{"type":"string","enum":["DeploymentEnvironmentUpdated"]}},"required":["changedKeys","deploymentId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"type":{"type":"string","enum":["DeploymentDeletionRequested"]}},"required":["deploymentId","type"]}]},"state":{"oneOf":[{"type":"object","properties":{"failed":{"type":"object","properties":{"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]}},"description":"Event failed with an error"}},"required":["failed"]},{"type":"string","enum":["none"]},{"type":"string","enum":["started"]},{"type":"string","enum":["success"]}],"description":"Represents the state of an event"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"createdAt":{"type":"string","format":"date-time"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"}},"required":["id","data","state","projectId","createdAt","workspaceId"]},"GenerateManagerTokenResponse":{"type":"object","properties":{"accessToken":{"type":"string","description":"Platform JWT for authenticating with the manager"},"expiresIn":{"type":"number","nullable":true,"description":"Token lifetime in seconds"},"tokenType":{"type":"string","enum":["Bearer"]},"managerUrl":{"type":"string","description":"Manager URL for direct access"},"databaseId":{"type":"string","nullable":true,"description":"Log database ID (null if logs not configured)"},"controlPlaneUrl":{"type":"string","nullable":true,"description":"Log control plane URL (null if logs not configured)"}},"required":["accessToken","expiresIn","tokenType","managerUrl","databaseId","controlPlaneUrl"]},"GenerateManagerTokenRequest":{"type":"object","properties":{"project":{"type":"string","maxLength":100,"description":"Project ID or name to scope token access to."}},"required":["project"]},"GenerateManagerBindingTokenResponse":{"type":"object","properties":{"accessToken":{"type":"string"},"expiresIn":{"type":"number","nullable":true},"tokenType":{"type":"string","enum":["Bearer"]},"managerUrl":{"type":"string"}},"required":["accessToken","expiresIn","tokenType","managerUrl"]},"GenerateManagerBindingTokenRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"}},"required":["deploymentId"],"additionalProperties":false},"ResolveManagerGcpOAuthProviderResponse":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["alien-managed"]}},"required":["mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["custom"]},"clientId":{"$ref":"#/components/schemas/GcpOAuthClientId"},"clientSecret":{"$ref":"#/components/schemas/GcpOAuthClientSecret"}},"required":["mode","clientId","clientSecret"]}]},"ResolveManagerGcpOAuthProviderRequest":{"type":"object","properties":{"deploymentGroupToken":{"type":"string","minLength":1,"description":"Deployment-group bearer token whose project-level OAuth provider should be resolved."},"returnOrigin":{"type":"string","format":"uri","description":"Browser origin that will receive the Google OAuth callback result. Must be a first-party dashboard origin or the active portal origin for the deployment group's project."}},"required":["deploymentGroupToken"]},"ManagerHeartbeatResponse":{"type":"object","properties":{"acknowledged":{"type":"boolean"},"timestamp":{"type":"string"}},"required":["acknowledged","timestamp"]},"ManagerHeartbeatRequest":{"type":"object","properties":{"status":{"type":"string","enum":["healthy","degraded","unhealthy"],"description":"Current health status"},"version":{"type":"string","description":"Manager version"},"url":{"type":"string","format":"uri","description":"Manager public URL (for accessing DeepStore endpoints)"},"managementConfigs":{"allOf":[{"$ref":"#/components/schemas/ManagerManagementConfigs"},{"description":"Per-platform management configurations for cross-account access"}]},"metrics":{"type":"object","properties":{"activeDeployments":{"type":"number"},"pendingDeployments":{"type":"number"},"memoryUsageMb":{"type":"number"},"cpuUsagePercent":{"type":"number"}},"description":"Optional runtime metrics"}},"required":["status","url","managementConfigs"]},"ManagerDeployment":{"type":"object","properties":{"platform":{"type":"string","description":"Platform of the internal deployment"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status of the internal deployment"},"deploymentId":{"type":"string","description":"Internal deployment ID"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Currently deployed private manager release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Target private manager release for an in-progress update","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"error":{"nullable":true,"description":"Latest provision / upgrade / delete error"},"resources":{"type":"object","additionalProperties":{"type":"object","properties":{"type":{"type":"string","description":"Resource type"},"status":{"type":"string","description":"Resource status"},"outputs":{"type":"object","additionalProperties":{"nullable":true},"description":"Resource outputs"}},"required":["type","status"]},"description":"Simplified stack state resources"},"environmentInfo":{"nullable":true,"description":"Manager environment info"}},"required":["platform","status","deploymentId","resources"]},"PrepareOperatorManifestPackageResponse":{"type":"object","properties":{"package":{"$ref":"#/components/schemas/Package"}},"required":["package"]},"PrepareOperatorManifestPackageRequest":{"type":"object","properties":{"project":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"}},"required":["project"],"additionalProperties":false},"RenderOperatorManifestResponse":{"type":"object","properties":{"manifest":{"type":"string","description":"Rendered multi-document Kubernetes manifest"},"applyCommand":{"type":"string","description":"kubectl command for applying the manifest from a file"},"filename":{"type":"string","description":"Suggested local filename"},"managerUrl":{"type":"string","format":"uri","description":"Manager URL embedded in the manifest"},"imagePending":{"type":"boolean","description":"True when the operator image is still building. The manifest contains a placeholder image () and must not be applied yet — re-render once the operator-image package is ready to get the real image."}},"required":["manifest","applyCommand","filename","managerUrl","imagePending"]},"RenderOperatorManifestRequest":{"type":"object","properties":{"project":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"format":{"type":"string","enum":["raw","helm"],"default":"raw","description":"raw: a kubectl-applyable manifest for one cluster. helm: a paste-into-your-chart template whose namespace and environment name come from Helm at install time."},"environmentName":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Per-environment identity. Required for raw output, ignored for helm.","example":"my-app"},"namespace":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9]([-a-z0-9]*[a-z0-9])?$","description":"Namespace to observe and install into. Omit for helm to use the release namespace."},"scope":{"type":"string","enum":["namespace","cluster"],"default":"namespace","description":"namespace: a namespaced Role that manages the install namespace. cluster: a ClusterRole that manages every namespace."},"labelSelector":{"type":"string","minLength":1,"maxLength":256,"description":"Optional Kubernetes label selector narrowing what is managed, applied within the scope."},"permission":{"type":"string","enum":["observe"],"default":"observe","description":"Operator permission tier"},"operatorImagePackageId":{"type":"string","pattern":"pkg_[0-9a-z]{28}$","description":"Ready operator-image package to use for the Operator image. If omitted, the latest ready operator-image package for the project is used.","example":"pkg_jebo2o5jmm7raefl2m1pe3cz"},"deploymentGroupToken":{"type":"string","minLength":1,"description":"Deployment-group token embedded in the operator Secret"},"logCollector":{"type":"object","properties":{"enabled":{"type":"boolean","default":false}},"description":"Enable the node log collector DaemonSet for raw pod logs."}},"required":["project","deploymentGroupToken"],"additionalProperties":false},"APIKey":{"type":"object","properties":{"id":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"description":{"type":"string","nullable":true},"keyPrefix":{"type":"string"},"type":{"type":"string","enum":["workspace","project","deployment","deployment-group","manager"]},"role":{"type":"string"},"workspaceId":{"type":"string"},"projectId":{"type":"string","nullable":true},"deploymentId":{"type":"string","nullable":true},"deploymentGroupId":{"type":"string","nullable":true},"managerId":{"type":"string","nullable":true},"enabled":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","nullable":true,"format":"date-time"},"lastUsedAt":{"type":"string","nullable":true,"format":"date-time"},"revokedAt":{"type":"string","nullable":true,"format":"date-time"},"deploymentSetupConfig":{"$ref":"#/components/schemas/APIKeyDeploymentSetupConfig"},"createdByUser":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"email":{"type":"string"},"image":{"type":"string","nullable":true}},"required":["id","email","image"],"description":"User information associated with the API key"}},"required":["id","description","keyPrefix","type","role","workspaceId","projectId","deploymentId","deploymentGroupId","managerId","enabled","createdAt","expiresAt","lastUsedAt","revokedAt","deploymentSetupConfig","createdByUser"],"description":"API key information"},"APIKeyDeploymentSetupConfig":{"type":"object","nullable":true,"properties":{"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"environmentVariables":{"type":"array","items":{"$ref":"#/components/schemas/APIKeyDeploymentSetupEnvironmentVariable"}}},"required":["metadata","policy","environmentVariables"]},"APIKeyDeploymentSetupEnvironmentVariable":{"type":"object","properties":{"name":{"type":"string","pattern":"^[A-Z_][A-Z0-9_]*$","description":"Variable name"},"type":{"$ref":"#/components/schemas/EnvironmentVariableType"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string","pattern":"^[a-zA-Z0-9_-]+(\\*)?$"},"description":"Target resource patterns (null = all resources, array = wildcard patterns)"}},"required":["name","type","targetResources"]},"CreateAPIKeyResponse":{"type":"object","properties":{"apiKey":{"type":"string","description":"The generated API key value (only shown once)"},"keyInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"description":{"type":"string","nullable":true},"keyPrefix":{"type":"string"},"type":{"type":"string","enum":["workspace","project","deployment","deployment-group","manager"]},"role":{"type":"string"},"workspaceId":{"type":"string"},"projectId":{"type":"string","nullable":true},"deploymentId":{"type":"string","nullable":true},"deploymentGroupId":{"type":"string","nullable":true},"managerId":{"type":"string","nullable":true},"enabled":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","nullable":true,"format":"date-time"},"lastUsedAt":{"type":"string","nullable":true,"format":"date-time"},"revokedAt":{"type":"string","nullable":true,"format":"date-time"},"deploymentSetupConfig":{"$ref":"#/components/schemas/APIKeyDeploymentSetupConfig"}},"required":["id","description","keyPrefix","type","role","workspaceId","projectId","deploymentId","deploymentGroupId","managerId","enabled","createdAt","expiresAt","lastUsedAt","revokedAt","deploymentSetupConfig"]}},"required":["apiKey","keyInfo"],"description":"Response containing the new API key and its metadata"},"CreateAPIKeyRequest":{"type":"object","properties":{"description":{"type":"string","nullable":true,"minLength":3,"maxLength":128},"scope":{"$ref":"#/components/schemas/Scope"},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"Optional expiration date for the API key"}},"required":["description","scope","expiresAt"],"description":"Request schema for creating a new API key"},"Scope":{"oneOf":[{"$ref":"#/components/schemas/WorkspaceScope"},{"$ref":"#/components/schemas/ProjectScope"},{"$ref":"#/components/schemas/DeploymentScope"},{"$ref":"#/components/schemas/DeploymentGroupScope"},{"$ref":"#/components/schemas/ManagerScope"}],"discriminator":{"propertyName":"type","mapping":{"workspace":"#/components/schemas/WorkspaceScope","project":"#/components/schemas/ProjectScope","deployment":"#/components/schemas/DeploymentScope","deployment-group":"#/components/schemas/DeploymentGroupScope","manager":"#/components/schemas/ManagerScope"}},"description":"Scope and role configuration for service accounts"},"WorkspaceScope":{"type":"object","properties":{"type":{"type":"string","enum":["workspace"]},"role":{"$ref":"#/components/schemas/WorkspaceRole"}},"required":["type","role"],"description":"Workspace-scoped configuration"},"ProjectScope":{"type":"object","properties":{"type":{"type":"string","enum":["project"]},"projectId":{"type":"string","description":"ID of the project this is scoped to"},"role":{"$ref":"#/components/schemas/ProjectRole"}},"required":["type","projectId","role"],"description":"Project-scoped configuration"},"DeploymentScope":{"type":"object","properties":{"type":{"type":"string","enum":["deployment"]},"deploymentId":{"type":"string","description":"ID of the deployment this is scoped to"},"projectId":{"type":"string","description":"ID of the project this deployment belongs to"},"role":{"$ref":"#/components/schemas/DeploymentRole"}},"required":["type","deploymentId","projectId","role"],"description":"Deployment-scoped configuration"},"DeploymentGroupScope":{"type":"object","properties":{"type":{"type":"string","enum":["deployment-group"]},"deploymentGroupId":{"type":"string","description":"ID of the deployment group this is scoped to"},"projectId":{"type":"string","description":"ID of the project this deployment group belongs to"},"role":{"$ref":"#/components/schemas/DeploymentGroupRole"}},"required":["type","deploymentGroupId","projectId","role"],"description":"Deployment group-scoped configuration"},"ManagerScope":{"type":"object","properties":{"type":{"type":"string","enum":["manager"]},"managerId":{"type":"string","description":"ID of the manager this is scoped to"},"role":{"$ref":"#/components/schemas/ManagerRole"}},"required":["type","managerId","role"],"description":"Manager-scoped configuration"},"UpdateAPIKeyRequest":{"type":"object","properties":{"enabled":{"type":"boolean"},"description":{"type":"string","nullable":true,"minLength":3,"maxLength":128},"deploymentSetupConfig":{"$ref":"#/components/schemas/UpdateDeploymentSetupPolicy"},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"Optional expiration date for the API key"}},"description":"Request schema for updating an API key"},"UpdateDeploymentSetupPolicy":{"type":"object","properties":{"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"}},"required":["policy"],"description":"Editable part of a deployment link's setup config. Locked env vars and input values are preserved."},"DeleteAPIKeysRequest":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"minItems":1}},"required":["ids"]},"DomainWithUsage":{"allOf":[{"$ref":"#/components/schemas/Domain"},{"type":"object","properties":{"endpoints":{"type":"array","items":{"$ref":"#/components/schemas/DomainEndpoint"}},"usage":{"type":"object","properties":{"deploymentUrlProjects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}},"portalBindings":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"projectId":{"type":"string","nullable":true},"projectName":{"type":"string","nullable":true},"hostname":{"type":"string"}},"required":["id","projectId","projectName","hostname"]}},"packageDomains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"hostname":{"type":"string"}},"required":["id","hostname"]}},"managerBindings":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"managerId":{"type":"string"},"managerName":{"type":"string"},"hostname":{"type":"string"}},"required":["id","managerId","managerName","hostname"]}}},"required":["deploymentUrlProjects","portalBindings","packageDomains","managerBindings"]}},"required":["endpoints","usage"]}]},"Domain":{"type":"object","properties":{"id":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"domain":{"type":"string"},"isSystem":{"type":"boolean"},"claimToken":{"type":"string"},"hostedZoneId":{"type":"string","nullable":true},"nameServers":{"type":"array","nullable":true,"items":{"type":"string"}},"status":{"type":"string","enum":["pending-zone-creation","pending-verification","verified","lost-verification","failed","deleting"]},"error":{"nullable":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"verifiedAt":{"type":"string","format":"date-time","nullable":true}},"required":["id","workspaceId","domain","isSystem","claimToken","status","createdAt","updatedAt"]},"EventListItemResponse":{"allOf":[{"$ref":"#/components/schemas/Event"},{"type":"object","properties":{"releaseCreatedAt":{"type":"string","format":"date-time","nullable":true,"description":"createdAt of the event's referenced release, included when ?include=releaseCreatedAt is used"}}}]},"ListMachinesJoinTokensResponse":{"type":"object","properties":{"tokens":{"type":"array","items":{"$ref":"#/components/schemas/MachinesJoinTokenSummary"}}},"required":["tokens"]},"MachinesJoinTokenSummary":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"expiresAt":{"type":"string","nullable":true},"maxJoins":{"type":"integer","nullable":true},"joinCount":{"type":"integer"},"lastUsedAt":{"type":"string","nullable":true},"revokedAt":{"type":"string","nullable":true}},"required":["id","createdAt","createdBy","joinCount"]},"CreateMachinesJoinTokenResponse":{"type":"object","properties":{"joinToken":{"type":"string"},"controlPlaneUrl":{"type":"string","format":"uri"},"clusterId":{"type":"string"},"token":{"$ref":"#/components/schemas/MachinesJoinTokenSummary"},"cliInstallScriptUrl":{"type":"string","nullable":true,"format":"uri","description":"Deploy CLI install script URL, or null when no ready CLI package exists."},"cliCommandName":{"type":"string","nullable":true,"description":"CLI command name to use in join instructions."}},"required":["joinToken","controlPlaneUrl","clusterId","token","cliInstallScriptUrl","cliCommandName"]},"RotateMachinesJoinTokenResponse":{"type":"object","properties":{"joinToken":{"type":"string"},"controlPlaneUrl":{"type":"string","format":"uri"},"clusterId":{"type":"string"},"token":{"$ref":"#/components/schemas/MachinesJoinTokenSummary"},"cliInstallScriptUrl":{"type":"string","nullable":true,"format":"uri","description":"Deploy CLI install script URL, or null when no ready CLI package exists."},"cliCommandName":{"type":"string","nullable":true,"description":"CLI command name to use in join instructions."}},"required":["joinToken","controlPlaneUrl","clusterId","token","cliInstallScriptUrl","cliCommandName"]},"RevokeMachinesJoinTokenResponse":{"type":"object","properties":{"tokenId":{"type":"string"},"revoked":{"type":"boolean"}},"required":["tokenId","revoked"]},"ListMachinesInventoryResponse":{"type":"object","properties":{"machines":{"type":"array","items":{"$ref":"#/components/schemas/MachinesInventoryItem"}}},"required":["machines"]},"MachinesInventoryItem":{"type":"object","properties":{"machineId":{"type":"string"},"status":{"type":"string"},"capacityGroup":{"type":"string"},"zone":{"type":"string"},"cpu":{"$ref":"#/components/schemas/MachinesCapacityMetric"},"memory":{"$ref":"#/components/schemas/MachinesCapacityMetric"},"storage":{"allOf":[{"$ref":"#/components/schemas/MachinesCapacityMetric"}],"nullable":true},"drainBlockers":{"type":"array","items":{"$ref":"#/components/schemas/MachinesDrainBlocker"}},"drainDeadlineAt":{"type":"string","nullable":true},"drainForce":{"type":"boolean"},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"publicIp":{"type":"string","nullable":true},"overlayIp":{"type":"string","nullable":true},"lastHeartbeat":{"type":"string"},"horizondVersion":{"type":"string","nullable":true},"localOverrides":{"type":"array","items":{"$ref":"#/components/schemas/MachinesLocalOverrideObservation"}},"localOverridesObservedAt":{"type":"string","nullable":true},"replicaCount":{"type":"integer"}},"required":["machineId","status","capacityGroup","zone","cpu","memory","drainBlockers","drainForce","lastHeartbeat","localOverrides","replicaCount"]},"MachinesCapacityMetric":{"type":"object","properties":{"allocated":{"type":"number"},"systemReserve":{"type":"number"},"total":{"type":"number"}},"required":["allocated","systemReserve","total"]},"MachinesDrainBlocker":{"type":"object","properties":{"reason":{"type":"string"},"workloadId":{"type":"string","nullable":true},"workloadName":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true},"schedulingMode":{"type":"string","nullable":true},"state":{"type":"string","nullable":true}},"required":["reason"]},"MachinesLocalOverrideObservation":{"type":"object","properties":{"activeDigest":{"type":"string","nullable":true},"actor":{"type":"string","nullable":true},"baseAssignmentHash":{"type":"string"},"baseDigest":{"type":"string","nullable":true},"candidateDigest":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"failureCategory":{"type":"string","nullable":true},"fallbackDigest":{"type":"string","nullable":true},"forcedStop":{"type":"boolean","nullable":true},"healthySince":{"type":"string","nullable":true},"incidentId":{"type":"string","nullable":true},"lifecycle":{"type":"string"},"phaseStartedAt":{"type":"string","nullable":true},"replicaId":{"type":"string"},"workloadName":{"type":"string"}},"required":["baseAssignmentHash","lifecycle","replicaId","workloadName"]},"CancelMachinesMachineDrainResponse":{"type":"object","properties":{"machineId":{"type":"string"},"cancelled":{"type":"boolean"}},"required":["machineId","cancelled"]},"DrainMachinesMachineResponse":{"type":"object","properties":{"machineId":{"type":"string"},"requested":{"type":"boolean"}},"required":["machineId","requested"]},"DrainMachinesMachineRequest":{"type":"object","properties":{"deadlineSeconds":{"type":"integer","nullable":true,"minimum":0},"force":{"type":"boolean"}}},"RemoveMachinesMachineResponse":{"type":"object","properties":{"machineId":{"type":"string"},"removed":{"type":"boolean"}},"required":["machineId","removed"]},"CommandListItemResponse":{"allOf":[{"$ref":"#/components/schemas/Command"},{"type":"object","properties":{"deployment":{"$ref":"#/components/schemas/CommandDeploymentInfo"},"project":{"$ref":"#/components/schemas/CommandProjectInfo"}}}]},"CommandDeploymentInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string"},"deploymentGroup":{"$ref":"#/components/schemas/CommandDeploymentGroupInfo"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Platform-specific environment information"},"managerId":{"type":"string","description":"Manager ID for obtaining access tokens"},"managerUrl":{"type":"string","nullable":true,"format":"uri","description":"URL of the manager for direct payload access"},"managerName":{"type":"string","nullable":true,"description":"Human-readable name of the manager"},"managerIsSystem":{"type":"boolean","nullable":true,"description":"Whether the manager is Alien-hosted (system)"}},"required":["id","name","managerId"]},"CommandDeploymentGroupInfo":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"CommandProjectInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"name":{"type":"string"}},"required":["id","name"]},"Command":{"type":"object","properties":{"id":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"name":{"type":"string","description":"Command name (e.g., 'analyze-repository', 'sync-data')"},"state":{"type":"string","enum":["PENDING_UPLOAD","PENDING","DISPATCHED","SUCCEEDED","FAILED","EXPIRED"],"description":"Command states in the Commands protocol lifecycle"},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Delivery mode for this command (push/pull), derived from the target at creation time"},"target":{"type":"object","nullable":true,"properties":{"resourceId":{"type":"string","description":"The resource ID within the deployment's stack (e.g. a Worker/Container/Daemon id)."},"resourceType":{"type":"string","enum":["worker","container","daemon"],"description":"The kind of command-capable resource a command targets."}},"required":["resourceId","resourceType"],"description":"Resource the command is addressed to; null on commands created before target routing"},"attempt":{"type":"number","nullable":true,"description":"Current attempt number"},"deadline":{"type":"string","nullable":true,"format":"date-time","description":"Optional deadline for command execution"},"requestSizeBytes":{"type":"number","nullable":true,"description":"Size of command params in bytes"},"responseSizeBytes":{"type":"number","nullable":true,"description":"Size of command response in bytes"},"createdAt":{"type":"string","format":"date-time","description":"When the command was created"},"dispatchedAt":{"type":"string","nullable":true,"format":"date-time","description":"When the command was dispatched to the deployment"},"completedAt":{"type":"string","nullable":true,"format":"date-time","description":"When the command completed"},"error":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Error details if command failed"},"result":{"nullable":true,"description":"Decoded command result when available"}},"required":["id","deploymentId","projectId","workspaceId","name","state","deploymentModel","target","attempt","deadline","requestSizeBytes","responseSizeBytes","createdAt","dispatchedAt","completedAt","error"]},"ListCommandNamesResponse":{"type":"object","properties":{"names":{"type":"array","items":{"type":"string"}}},"required":["names"]},"ListCommandDeploymentsResponse":{"type":"object","properties":{"deployments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string"},"deploymentGroup":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}},"required":["id","name"]}}},"required":["deployments"]},"CreateCommandResponse":{"type":"object","properties":{"id":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"projectId":{"type":"string","description":"Project ID (for manager to use in routing)"},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"How to dispatch the command"},"target":{"type":"object","properties":{"resourceId":{"type":"string","description":"The resource ID within the deployment's stack (e.g. a Worker/Container/Daemon id)."},"resourceType":{"type":"string","enum":["worker","container","daemon"],"description":"The kind of command-capable resource a command targets."}},"required":["resourceId","resourceType"],"description":"Resource the command is addressed to"},"deliveryMode":{"type":"string","enum":["push","pull"],"description":"How the command is delivered to its target"}},"required":["id","projectId","deploymentModel","target","deliveryMode"]},"CreateCommandRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Target deployment ID","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string","minLength":1,"maxLength":255,"description":"Command name (e.g., 'analyze-repository')"},"params":{"nullable":true,"description":"Command parameters for public invocation"},"target":{"type":"string","maxLength":255,"description":"Resource id the command is addressed to. Required when the deployment has more than one command-capable resource."},"initialState":{"type":"string","enum":["PENDING_UPLOAD","PENDING","DISPATCHED","SUCCEEDED","FAILED","EXPIRED"],"description":"Initial state (PENDING_UPLOAD if params require upload, PENDING if inline)"},"deadline":{"type":"string","nullable":true,"format":"date-time","description":"Optional deadline for command execution"},"requestSizeBytes":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Size of command params in bytes"}},"required":["deploymentId","name"]},"ResolvedCommandTarget":{"type":"object","properties":{"target":{"type":"object","properties":{"resourceId":{"type":"string","description":"The resource ID within the deployment's stack (e.g. a Worker/Container/Daemon id)."},"resourceType":{"type":"string","enum":["worker","container","daemon"],"description":"The kind of command-capable resource a command targets."}},"required":["resourceId","resourceType"],"description":"Identifies the specific resource a command is addressed to."},"deliveryMode":{"type":"string","enum":["push","pull"],"description":"How a command is delivered to its target resource.\n\nThis is a Commands-protocol-specific concept and is intentionally distinct\nfrom `DeploymentModel` (see `stack_settings.rs`), which governs the\ninfrastructure-level push/pull wiring for a deployment. Serialized\nlowercase for consistency with `CommandTargetType`."}},"required":["target","deliveryMode"]},"UpdateCommandRequest":{"type":"object","properties":{"state":{"type":"string","enum":["PENDING_UPLOAD","PENDING","DISPATCHED","SUCCEEDED","FAILED","EXPIRED"],"description":"New command state"},"attempt":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Current attempt number"},"dispatchedAt":{"type":"string","nullable":true,"format":"date-time","description":"When command was dispatched"},"completedAt":{"type":"string","nullable":true,"format":"date-time","description":"When command completed"},"responseSizeBytes":{"type":"number","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Size of response in bytes"},"error":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Error details if failed"}}},"DispatchCommandResponse":{"type":"object","properties":{"updated":{"type":"boolean","description":"Whether the command transitioned; false if it was already terminal"}},"required":["updated"]},"DispatchCommandRequest":{"type":"object","properties":{"dispatchedAt":{"type":"string","format":"date-time","description":"When the command was dispatched"}},"required":["dispatchedAt"]},"CompleteCommandResponse":{"type":"object","properties":{"updated":{"type":"boolean","description":"Whether the command transitioned; false if it was already terminal"}},"required":["updated"]},"CompleteCommandRequest":{"type":"object","properties":{"state":{"type":"string","enum":["SUCCEEDED","FAILED","EXPIRED"],"description":"Terminal state to transition to"},"completedAt":{"type":"string","format":"date-time","description":"When the command completed"},"responseSizeBytes":{"type":"number","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Size of response in bytes"},"error":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Error details if failed"}},"required":["state","completedAt"]},"IncrementCommandAttemptResponse":{"type":"object","properties":{"attempt":{"type":"integer","description":"The attempt number after the increment"}},"required":["attempt"]},"DebugSessionListResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DebugSession"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"},"DebugSession":{"type":"object","properties":{"id":{"type":"string","pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Unique identifier for the debug session.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"owner":{"type":"string","nullable":true,"maxLength":128},"state":{"$ref":"#/components/schemas/DebugSessionState"},"mode":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"provider":{"type":"string","nullable":true,"enum":["aws","gcp","azure","kubernetes","machines","local","test",null],"description":"Represents the target cloud platform."},"presignedUrls":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/DebugPackagePresignedURLs"}},"error":{"nullable":true},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"}},"required":["id","state","mode","presignedUrls","createdAt","expiresAt","deploymentId","projectId","workspaceId"]},"DebugSessionState":{"type":"string","enum":["pending","running","stopping","stopped","expired","failed"]},"DebugPackagePresignedURLs":{"type":"object","properties":{"readUrl":{"type":"string","maxLength":2048,"format":"uri"},"writeUrl":{"type":"string","maxLength":2048,"format":"uri"}},"required":["readUrl","writeUrl"]},"CreateDebugSessionRequest":{"type":"object","properties":{"id":{"type":"string","pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Override the generated id. Manager passes the registry session id so logs correlate.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"owner":{"type":"string","nullable":true,"maxLength":128},"expiresAt":{"type":"string","format":"date-time"},"state":{"allOf":[{"$ref":"#/components/schemas/DebugSessionState"},{"description":"Initial state. Defaults to 'pending'."}]}},"required":["deploymentId","expiresAt"]},"UpdateDebugSessionRequest":{"type":"object","properties":{"state":{"$ref":"#/components/schemas/DebugSessionState"},"error":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"expiresAt":{"type":"string","format":"date-time"}}},"DeploymentInfo":{"type":"object","properties":{"tokenType":{"type":"string","enum":["deployment","deployment-group"],"description":"Type of token used to authenticate this request"},"deployment":{"type":"object","properties":{"name":{"type":"string"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."}},"required":["name","platform"],"description":"Deployment details (present when using a deployment-scoped token)"},"deploymentGroup":{"type":"object","properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string"},"pinnedSubdomain":{"type":"string","nullable":true}},"required":["id","name","pinnedSubdomain"],"description":"Deployment group details (present when using a deployment-group token)"},"workspace":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"avatarUrl":{"type":"string","nullable":true,"format":"uri"}},"required":["id","name"]},"project":{"type":"object","properties":{"name":{"type":"string"},"portal":{"type":"object","properties":{"appearance":{"$ref":"#/components/schemas/DeploymentPortalAppearance"}},"required":["appearance"]},"stackSummary":{"type":"object","nullable":true,"properties":{"platforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms supported by the active release"},"requiresNetwork":{"type":"boolean","description":"Whether the stack contains resources that require cloud VPC networking"},"resourceCounts":{"type":"object","properties":{"workers":{"type":"integer","minimum":0},"containers":{"type":"integer","minimum":0},"daemons":{"type":"integer","minimum":0,"description":"Daemon resources that run on managed runtime machines"},"publicHttpsEndpoints":{"type":"integer","minimum":0,"description":"Resources that declare managed public HTTPS endpoint setup"},"externalInfra":{"type":"integer","minimum":0,"description":"Storage, queue, KV, vault, database, or cache resources that Kubernetes needs Terraform to provision"},"total":{"type":"integer","minimum":0}},"required":["workers","containers","publicHttpsEndpoints","externalInfra","total"]},"publicEndpoints":{"type":"array","items":{"type":"object","properties":{"resourceId":{"type":"string"},"endpointName":{"type":"string"},"hostLabel":{"type":"string"},"wildcardSubdomains":{"type":"boolean"}},"required":["resourceId","endpointName","hostLabel","wildcardSubdomains"]},"description":"Public endpoints declared by the active release stack"}},"required":["platforms","requiresNetwork","resourceCounts","publicEndpoints"]},"generatedDomain":{"type":"object","nullable":true,"properties":{"domain":{"type":"string"},"isSystem":{"type":"boolean"}},"required":["domain","isSystem"],"description":"Parent domain for generated deployment URLs. Chosen public subdomains are only allowed when isSystem is false."}},"required":["name","portal"]},"packages":{"type":"object","properties":{"ready":{"type":"boolean","description":"True if all enabled packages are ready for deployment"},"cli":{"type":"object","properties":{"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"commandName":{"type":"string","description":"CLI command name to use in install instructions"},"version":{"type":"string"},"outputs":{"type":"object","properties":{"binaries":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sha256":{"type":"string","description":"SHA256 checksum"},"size":{"type":"integer","minimum":0,"description":"File size in bytes"},"url":{"type":"string","description":"Download URL for the binary"}},"required":["sha256","size","url"],"description":"Information about a single binary artifact"},"description":"Binary information for each target platform"},"buildInfo":{"type":"object","properties":{"alienSha":{"type":"string","description":"Alien source commit used to build the source CLI and agent binaries."},"horizonSha":{"type":"string","description":"Compute backend source revision used by optional package extensions, if applicable."},"machineBundleManifestUrl":{"type":"string","nullable":true,"description":"Machine runtime release manifest embedded into the generated CLI."},"platformSha":{"type":"string","description":"Source revision used to build the package service and optional extensions."},"sourceAgentBinarySha256":{"type":"string","nullable":true,"description":"SHA256 checksum of the source runtime helper binary shipped with the CLI package, when present."},"sourceCliBinarySha256":{"type":"string","description":"SHA256 checksum of the source deploy CLI binary before white-label config is appended."}},"required":["alienSha","horizonSha","platformSha","sourceCliBinarySha256"],"description":"Source provenance for a generated CLI package."}},"required":["binaries","buildInfo"],"description":"Outputs from a CLI package build"},"error":{"nullable":true},"installScripts":{"type":"object","properties":{"windows":{"type":"string","format":"uri"},"mac":{"type":"string","format":"uri"},"linux":{"type":"string","format":"uri"}},"required":["windows","mac","linux"],"description":"Install script URLs for each OS"}},"required":["status","commandName","installScripts"]},"cloudformation":{"type":"object","properties":{"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"version":{"type":"string"},"outputs":{"type":"object","properties":{"targets":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"launchStackUrl":{"type":"string","description":"AWS Console quick-launch URL"},"sha256":{"type":"string","description":"SHA256 checksum of the template"},"size":{"type":"integer","minimum":0,"description":"Template size in bytes"},"stackPolicyUrl":{"type":"string","description":"S3 URL to the CloudFormation stack policy"},"target":{"type":"string","description":"CloudFormation target (aws, eks)"},"templateUrl":{"type":"string","description":"S3 URL to the CloudFormation template"}},"required":["launchStackUrl","sha256","size","stackPolicyUrl","target","templateUrl"],"description":"Information about a single CloudFormation template package for one target."},"description":"Template artifacts by CloudFormation target."}},"required":["targets"],"description":"Outputs from a CloudFormation package build."},"error":{"nullable":true},"mode":{"type":"string","enum":["auto","outputs"]},"launchUrl":{"type":"string","format":"uri","description":"CloudFormation launch URL"},"outputsSchema":{"nullable":true}},"required":["status","mode","launchUrl"]},"terraform":{"type":"object","properties":{"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"version":{"type":"string"},"outputs":{"type":"object","properties":{"modules":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL for the module archive"},"filename":{"type":"string","description":"Filename of the module archive"},"shasum":{"type":"string","description":"SHA256 checksum of the archive"},"size":{"type":"integer","minimum":0,"description":"Size of the archive in bytes"},"source":{"type":"string","description":"Terraform module source (hostname/namespace/name/provider, without scheme)"},"target":{"type":"string","description":"Terraform module target (aws, gcp, azure, eks, gke, aks)"},"variables":{"type":"array","items":{"type":"string"},"description":"Terraform input variables exposed by this module."}},"required":["downloadUrl","filename","shasum","size","source","target"],"description":"Information about a single Terraform module package for one target."},"description":"Module registry artifacts by Terraform target."},"provider":{"type":"object","properties":{"gpgPublicKey":{"type":"object","properties":{"asciiArmor":{"type":"string","description":"ASCII-armored public key"},"keyId":{"type":"string","description":"GPG key ID"}},"required":["asciiArmor","keyId"],"description":"GPG public key for Terraform provider signature verification"},"platforms":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL for the provider zip"},"filename":{"type":"string","description":"Filename of the provider zip"},"shasum":{"type":"string","description":"SHA256 checksum of the zip file"},"shasumsSignatureUrl":{"type":"string","description":"URL to the shasums signature file"},"shasumsUrl":{"type":"string","description":"URL to the shasums file"},"size":{"type":"integer","minimum":0,"description":"Size of the zip file in bytes"}},"required":["downloadUrl","filename","shasum","shasumsSignatureUrl","shasumsUrl","size"],"description":"Information about a single Terraform provider package for a specific platform"},"description":"Provider packages for each target platform"},"source":{"type":"string","description":"Terraform provider source (hostname/namespace/type, without scheme)"}},"required":["gpgPublicKey","platforms","source"],"description":"Terraform provider registry outputs."}},"required":["modules","provider"],"description":"Outputs from a Terraform package build."},"error":{"nullable":true},"providerSource":{"type":"string","description":"Terraform provider source (without https://)"},"moduleSources":{"type":"object","additionalProperties":{"type":"string"},"description":"Terraform module sources by target"},"moduleVersion":{"type":"string"},"managerUrls":{"type":"object","additionalProperties":{"type":"string"},"description":"Manager URLs by Terraform target"}},"required":["status","providerSource","moduleSources","managerUrls"]},"helm":{"type":"object","properties":{"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"version":{"type":"string"},"outputs":{"type":"object","properties":{"chart":{"type":"string","description":"OCI chart reference (e.g., \"oci://public.ecr.aws/acme/charts/project-id\")"},"version":{"type":"string","description":"Chart version (e.g., \"1.2.3\")"}},"required":["chart","version"],"description":"Outputs from a Helm chart package build"},"error":{"nullable":true},"chartRef":{"type":"string","description":"OCI chart reference"},"managerFetchExample":{"type":"string"},"localImportExample":{"type":"string"}},"required":["status","chartRef"]}},"required":["ready"]},"installContext":{"type":"object","properties":{"targets":{"type":"object","additionalProperties":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"managerUrl":{"type":"string","format":"uri"},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}],"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."},"awsManagingAccountId":{"type":"string"}},"required":["platform","managerUrl"]},"description":"Deployment-session install context by Terraform/installer target"}},"required":["targets"]},"supportedRegions":{"$ref":"#/components/schemas/SupportedCloudRegions"},"setupConfig":{"$ref":"#/components/schemas/DeploymentInfoSetupConfig"},"readiness":{"type":"object","properties":{"status":{"type":"string","enum":["ready","notReady","unknown"]},"checks":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"status":{"type":"string","enum":["passed","failed","warning","unknown"]},"message":{"type":"string"},"checkedAt":{"type":"string"}},"required":["code","status","message","checkedAt"]}}},"required":["status","checks"]}},"required":["tokenType","workspace","project","packages","installContext","supportedRegions"]},"DeploymentPortalAppearance":{"type":"object","properties":{"avatarUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional project-specific avatar override for the deployment portal."},"preset":{"$ref":"#/components/schemas/DeploymentPortalAppearancePreset"},"accentColor":{"$ref":"#/components/schemas/DeploymentPortalAccentColor"},"title":{"type":"string","nullable":true,"maxLength":80,"description":"Optional portal title. Defaults to the project name."},"subtitle":{"type":"string","nullable":true,"maxLength":160,"description":"Optional customer-facing subtitle."},"supportUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional support or contact URL."},"docsUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional documentation URL."},"density":{"$ref":"#/components/schemas/DeploymentPortalDensity"}}},"SupportedCloudRegions":{"type":"object","properties":{"aws":{"type":"array","items":{"type":"string"},"description":"AWS regions supported by this Alien environment."},"gcp":{"type":"array","items":{"type":"string"},"description":"GCP regions supported by this Alien environment."},"azure":{"type":"array","items":{"type":"string"},"description":"Azure locations supported by this Alien environment."}},"required":["aws","gcp","azure"]},"DeploymentInfoSetupConfig":{"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"environmentVariables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","pattern":"^[A-Z_][A-Z0-9_]*$","description":"Variable name"},"type":{"$ref":"#/components/schemas/EnvironmentVariableType"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string","pattern":"^[a-zA-Z0-9_-]+(\\*)?$"},"description":"Target resource patterns (null = all resources, array = wildcard patterns)"}},"required":["name","type","targetResources"]}},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."}},"inputValues":{"type":"array","items":{"$ref":"#/components/schemas/ResolvedStackInputSummary"}}},"required":["metadata","policy","environmentVariables"]},"ResolvedStackInputSummary":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"]}},"required":{"type":"boolean"},"secret":{"type":"boolean"},"provided":{"type":"boolean"}},"required":["id","label","providedBy","required","secret","provided"]},"DeploymentComputePlan":{"type":"object","properties":{"pools":{"type":"array","items":{"type":"object","properties":{"poolId":{"type":"string"},"workloads":{"type":"array","items":{"type":"string"}},"requirements":{"type":"object","properties":{"cpu":{"type":"string"},"memoryBytes":{"type":"integer","minimum":0},"ephemeralStorageBytes":{"type":"integer","minimum":0},"architecture":{"type":"string","nullable":true,"enum":["arm64","x86_64",null]},"gpu":{"type":"object","nullable":true,"properties":{"type":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["type","count"]}},"required":["cpu","memoryBytes","ephemeralStorageBytes"]},"scale":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["fixed"]},"machines":{"type":"object","properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"default":{"type":"integer","minimum":0}},"required":["min","max","default"]}},"required":["type","machines"]},{"type":"object","properties":{"type":{"type":"string","enum":["autoscale"]},"min":{"type":"object","properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"default":{"type":"integer","minimum":0}},"required":["min","max","default"]},"max":{"type":"object","properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"default":{"type":"integer","minimum":0}},"required":["min","max","default"]}},"required":["type","min","max"]}]},"selected":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["fixed"]},"machines":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","machines"]},{"type":"object","properties":{"mode":{"type":"string","enum":["autoscale"]},"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","min","max"]}]},"recommended":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["fixed"]},"machines":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","machines"]},{"type":"object","properties":{"mode":{"type":"string","enum":["autoscale"]},"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","min","max"]}]},"machines":{"type":"array","items":{"type":"object","properties":{"machine":{"type":"string"},"profile":{"type":"object","properties":{"cpu":{"type":"string"},"memoryBytes":{"type":"integer","minimum":0},"ephemeralStorageBytes":{"type":"integer","minimum":0},"architecture":{"type":"string","nullable":true,"enum":["arm64","x86_64",null]},"gpu":{"type":"object","nullable":true,"properties":{"type":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["type","count"]}},"required":["cpu","memoryBytes","ephemeralStorageBytes"]},"recommended":{"type":"boolean"}},"required":["machine","profile","recommended"]}},"errors":{"type":"array","items":{"type":"string"}}},"required":["poolId","workloads","requirements","scale","selected","recommended","machines"]}}},"required":["pools"]},"PreparedDeploymentStack":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure"]},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"setup":{"$ref":"#/components/schemas/SetupFingerprintInfo"}},"required":["platform","stack","setup"]},"SlackInstallUrlResponse":{"type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"]},"SlackIntegrationStatus":{"type":"object","properties":{"connected":{"type":"boolean"},"slackTeamId":{"type":"string","nullable":true},"slackTeamName":{"type":"string","nullable":true},"installedByUserId":{"type":"string","nullable":true},"installedAt":{"type":"string","nullable":true},"notificationChannelId":{"type":"string","nullable":true}},"required":["connected","slackTeamId","slackTeamName","installedByUserId","installedAt","notificationChannelId"]},"SlackChannelsResponse":{"type":"object","properties":{"channels":{"type":"array","items":{"$ref":"#/components/schemas/SlackChannel"}}},"required":["channels"]},"SlackChannel":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"isMember":{"type":"boolean"}},"required":["id","name","isMember"]},"SlackNotificationChannelResponse":{"type":"object","properties":{"notificationChannelId":{"type":"string","nullable":true},"warning":{"type":"string","nullable":true}},"required":["notificationChannelId","warning"]},"SlackNotificationChannelRequest":{"type":"object","properties":{"channelId":{"type":"string","nullable":true}},"required":["channelId"]},"AgentSessionListResponse":{"type":"object","properties":{"sessions":{"type":"array","items":{"$ref":"#/components/schemas/AgentSessionListItem"}}},"required":["sessions"]},"AgentSessionListItem":{"type":"object","properties":{"id":{"type":"string"},"triggerType":{"type":"string"},"subjectId":{"type":"string"},"subject":{"$ref":"#/components/schemas/AgentSessionSubject"},"status":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","triggerType","subjectId","subject","status","createdAt","updatedAt"]},"AgentSessionSubject":{"type":"object","properties":{"deploymentName":{"type":"string","nullable":true},"deploymentGroupId":{"type":"string","nullable":true},"deploymentGroupName":{"type":"string","nullable":true},"releaseId":{"type":"string","nullable":true},"releaseCommitMessage":{"type":"string","nullable":true},"releaseCommitRef":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"projectName":{"type":"string","nullable":true}},"required":["deploymentName","deploymentGroupId","deploymentGroupName","releaseId","releaseCommitMessage","releaseCommitRef","projectId","projectName"]},"AgentSessionDetail":{"allOf":[{"$ref":"#/components/schemas/AgentSessionListItem"},{"type":"object","properties":{"resultText":{"type":"string","nullable":true},"toolNames":{"type":"array","nullable":true,"items":{"type":"string"}},"error":{"type":"string","nullable":true},"pendingApproval":{"type":"object","nullable":true,"properties":{"approvalId":{"type":"string"},"toolCallId":{"type":"string"},"toolName":{"type":"string"},"input":{"nullable":true}},"required":["approvalId","toolCallId","toolName"]}},"required":["resultText","toolNames","error","pendingApproval"]}]},"AgentSessionEventsResponse":{"type":"object","properties":{"events":{"type":"array","items":{"$ref":"#/components/schemas/AgentSessionEvent"}},"latestSeq":{"type":"number"},"hasMore":{"type":"boolean"}},"required":["events","latestSeq","hasMore"]},"AgentSessionEvent":{"oneOf":[{"$ref":"#/components/schemas/AgentSessionStatusEvent"},{"$ref":"#/components/schemas/AgentSessionStepEvent"},{"$ref":"#/components/schemas/AgentSessionToolCallEvent"},{"$ref":"#/components/schemas/AgentSessionToolResultEvent"},{"$ref":"#/components/schemas/AgentSessionMarkdownEvent"},{"$ref":"#/components/schemas/AgentSessionApprovalRequestedEvent"},{"$ref":"#/components/schemas/AgentSessionApprovalGrantedEvent"},{"$ref":"#/components/schemas/AgentSessionRestartedEvent"},{"$ref":"#/components/schemas/AgentSessionEventsTruncatedEvent"}],"discriminator":{"propertyName":"type","mapping":{"status":"#/components/schemas/AgentSessionStatusEvent","step":"#/components/schemas/AgentSessionStepEvent","tool_call":"#/components/schemas/AgentSessionToolCallEvent","tool_result":"#/components/schemas/AgentSessionToolResultEvent","markdown":"#/components/schemas/AgentSessionMarkdownEvent","approval_requested":"#/components/schemas/AgentSessionApprovalRequestedEvent","approval_granted":"#/components/schemas/AgentSessionApprovalGrantedEvent","session_restarted":"#/components/schemas/AgentSessionRestartedEvent","events_truncated":"#/components/schemas/AgentSessionEventsTruncatedEvent"}}},"AgentSessionStatusEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["status"]},"payload":{"type":"object","properties":{"status":{"type":"string"},"error":{"type":"string"}},"required":["status"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionStepEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["step"]},"payload":{"type":"object","properties":{"stepId":{"type":"string"},"title":{"type":"string"},"status":{"type":"string","enum":["in_progress","complete","error"]}},"required":["stepId","title","status"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionToolCallEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["tool_call"]},"payload":{"type":"object","properties":{"toolCallId":{"type":"string"},"toolName":{"type":"string"},"input":{"nullable":true}},"required":["toolCallId","toolName"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionToolResultEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["tool_result"]},"payload":{"type":"object","properties":{"toolCallId":{"type":"string","nullable":true},"toolName":{"type":"string","nullable":true},"ok":{"type":"boolean"},"output":{"nullable":true}},"required":["toolCallId","toolName","ok"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionMarkdownEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["markdown"]},"payload":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionApprovalRequestedEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["approval_requested"]},"payload":{"type":"object","properties":{"approvalId":{"type":"string"},"toolCallId":{"type":"string"},"toolName":{"type":"string"},"input":{"nullable":true}},"required":["approvalId","toolCallId","toolName"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionApprovalGrantedEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["approval_granted"]},"payload":{"type":"object","properties":{"approvalId":{"type":"string"},"approvedByUserId":{"type":"string"},"approvedByName":{"type":"string","nullable":true},"source":{"type":"string","enum":["dashboard","slack"]}},"required":["approvalId","approvedByUserId","approvedByName","source"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionRestartedEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["session_restarted"]},"payload":{"type":"object","properties":{"reason":{"type":"string"}},"required":["reason"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionEventsTruncatedEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["events_truncated"]},"payload":{"type":"object","properties":{"limit":{"type":"number"}},"required":["limit"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionApproveResponse":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string"},"resumed":{"type":"boolean"}},"required":["jobId","status","resumed"]},"AgentSessionStopResponse":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string"},"canceled":{"type":"boolean"}},"required":["jobId","status","canceled"]},"SyncListResponse":{"type":"object","properties":{"deployments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!ag[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment name.","example":"acme-prod"},"publicSubdomain":{"type":"string","nullable":true,"minLength":1,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","description":"Public subdomain for auto-generated domains"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"basePlatform":{"type":"string","nullable":true,"enum":["aws","gcp","azure",null],"description":"Underlying cloud platform for Kubernetes deployments."},"region":{"type":"string","nullable":true,"description":"Cloud region or location for the deployment."},"deploymentProtocolVersion":{"$ref":"#/components/schemas/DeploymentProtocolVersion"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"ID of deployment group this deployment belongs to","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-provided configuration (network, deployment model, approvals)"},"stackState":{"type":"object","nullable":true,"properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"State of infrastructure components managed by this deployment"},"runtimeMetadata":{"type":"object","nullable":true,"properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment state persistence"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the currently deployed release (actual state)","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the desired release for deployment/update (desired state)","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"releaseChannel":{"allOf":[{"$ref":"#/components/schemas/ReleaseChannelName"},{"description":"Named release stream followed when the deployment is not pinned"}]},"importSource":{"type":"string","nullable":true,"enum":["cloudformation","terraform","helm",null],"description":"Setup source that imported this deployment"},"setupMethod":{"type":"string","nullable":true,"enum":["cloudformation","google-oauth","terraform","helm","cli","manual",null],"description":"Setup method that created the deployment record and owns setup-time resources."},"setupMetadata":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Setup method metadata needed to guide privileged teardown."},"setupTarget":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup target for compatibility checks"},"setupFingerprint":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup compatibility fingerprint"},"setupFingerprintVersion":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Imported setup fingerprint algorithm version"},"operatorScope":{"type":"string","nullable":true,"description":"Display-only scope reported by the Operator manifest"},"operatorPermission":{"type":"string","nullable":true,"description":"Display-only permission tier reported by the Operator manifest"},"operatorVersion":{"type":"string","nullable":true,"description":"Version reported by the Operator"},"capabilities":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OperatorCapabilityReport"},"description":"Capability state reported by the Operator"},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat from the deployment"},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Latest error information if the deployment is in a failed state"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"ID of the manager responsible for this deployment"}]},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"userEnvironmentVariables":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"}},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}],"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."},"deploymentToken":{"type":"string","nullable":true},"lockedBy":{"type":"string","nullable":true},"lockedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["id","name","status","projectId","platform","deploymentProtocolVersion","deploymentGroupId","stackSettings","releaseChannel","retryRequested","createdAt","updatedAt","managerId","workspaceId","userEnvironmentVariables"]}}},"required":["deployments"],"description":"Full deployment records for manager operation"},"SyncListRequest":{"type":"object","properties":{"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Manager requesting the deployments. Manager-scoped tokens are always constrained to their own manager ID."}]},"deploymentIds":{"type":"array","items":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"description":"Specific deployment IDs to include"},"statuses":{"type":"array","items":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"description":"Filter by deployment status"},"platforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Filter by deployment platform"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Filter by deployment group ID","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"limit":{"type":"integer","minimum":1,"maximum":500,"description":"Maximum records to return"}},"additionalProperties":false,"description":"Request to list full operational deployments"},"SyncAcquireResponseDeployment":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"ID of the deployment","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"projectId":{"type":"string","description":"Project ID the deployment belongs to"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Deployment group ID the deployment belongs to","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"setupMethod":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMethod"},{"description":"Setup method recorded on the deployment when it has a setup-owned path."}]},"current":{"type":"object","properties":{"currentRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}]},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"protocolVersion":{"type":"integer","minimum":0,"description":"Protocol version for cross-actor compatibility.\nAll actors (manager, push client, agent) check this before stepping.\nMismatched versions produce a clear error instead of silent corruption.\nSee docs/02-manager/10-deployment-protocol.md."},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment\nWhen true and status is a failed state, the deployment system will retry failed resources"},"runtimeMetadata":{"oneOf":[{"type":"object","properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment\n\nStores deployment state that needs to persist across step calls."},{"nullable":true}]},"stackState":{"oneOf":[{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"Represents the collective state of all resources in a stack, including platform and pending actions."},{"nullable":true}]},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"targetRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]}},"required":["platform","protocolVersion","status"],"description":"Current deployment state (includes releases)"},"config":{"type":"object","properties":{"allowFrozenChanges":{"type":"boolean","description":"Allow frozen resource changes during updates\nWhen true, skips the frozen resources compatibility check.\nThis requires running with elevated cloud credentials."},"basePlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"computeBackend":{"oneOf":[{"allOf":[{"type":"object","properties":{"clusters":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"clusterId":{"type":"string","description":"Cluster ID (deterministic: workspace/project/deployment/resourceid)"},"managementToken":{"type":"string","description":"Management token for API access (hm_...)\nUsed by alien-deployment controllers to create/update containers"}},"required":["clusterId","managementToken"],"description":"Configuration for a single container worker cluster.\n\nContains the cluster ID and management token needed to interact with\nthe managed container control plane API for container operations."},"description":"Cluster configurations (one per ComputeCluster resource)\nKey: ComputeCluster resource ID from stack\nValue: Cluster ID and management token for that cluster"},"horizonMachineImage":{"oneOf":[{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"amis":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"AMI IDs by architecture, then AWS region."}},"required":["amis"],"description":"AWS Horizon machine image catalog."},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"images":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"imageVersionId":{"type":"string","description":"Azure Compute Gallery image version ID."}},"required":["imageVersionId"],"description":"Azure Horizon machine image entry."},"description":"Images by architecture."}},"required":["images"],"description":"Azure Horizon machine image catalog."},{"nullable":true}]},"baseImage":{"type":"object","properties":{"name":{"type":"string","description":"Base OS image name."},"version":{"type":"string","description":"Base OS image version or channel."}},"required":["name","version"],"description":"Base image metadata for the Horizon machine image."},"channel":{"type":"string","description":"Logical image channel, such as prod, staging, or canary."},"createdAt":{"type":"string","description":"Image manifest creation timestamp."},"gcp":{"oneOf":[{"type":"object","properties":{"images":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sourceImage":{"type":"string","description":"Source image self link or image-family URL."}},"required":["sourceImage"],"description":"GCP Horizon machine image entry."},"description":"Images by architecture."}},"required":["images"],"description":"GCP Horizon machine image catalog."},{"nullable":true}]},"gitSha":{"type":"string","description":"Git commit SHA used to build the image."},"horizondArtifacts":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sha256":{"type":"string","description":"SHA-256 digest for the artifact payload."},"url":{"type":"string","description":"HTTPS URL for the artifact."}},"required":["sha256","url"],"description":"Download artifact for one horizond release platform."},"description":"Per-architecture horizond artifacts by release-platform key."},"horizondVersion":{"type":"string","description":"horizond daemon version baked into the image."},"machineImageVersion":{"type":"string","description":"Published immutable machine image version."}},"required":["baseImage","channel","createdAt","gitSha","horizondArtifacts","horizondVersion","machineImageVersion"],"description":"Horizon machine image catalog.\n\nPlatform resolves concrete provider images from this catalog during rollout."},{"nullable":true}]},"url":{"type":"string","description":"Horizon control-plane API base URL."}},"required":["clusters","url"],"description":"Horizon control-plane configuration for container orchestration.\n\nContains all the information needed for Alien to interact with managed\ncontainer clusters during deployment. Each ComputeCluster resource gets its own\nentry in the clusters map."},{"type":"object","properties":{"type":{"type":"string","enum":["horizon"]}},"required":["type"]}],"description":"Compute backend for Container and Worker resources.\n\nDetermines how compute workloads are orchestrated on cloud platforms.\nWhen None, the platform default is used for cloud platforms."},{"nullable":true}]},"deploymentName":{"type":"string","nullable":true,"description":"Human-readable deployment name for cloud console metadata.\n\nThis is separate from the physical resource prefix in StackState. It is\nused only for display text such as IAM role descriptions, service\naccount descriptions, and custom role titles."},"deploymentToken":{"type":"string","nullable":true,"description":"Deployment token for pull authentication with the manager's registry.\n\nUsed by controllers to configure registry credentials so cloud platforms\nand K8s can pull images from the manager's `/v2/` endpoint."},"domainMetadata":{"oneOf":[{"type":"object","properties":{"baseDomain":{"type":"string","description":"Base domain for auto-generated domains (e.g., \"vpc.direct\")."},"hostedZoneId":{"type":"string","description":"Hosted zone ID for DNS records."},"publicSubdomain":{"type":"string","description":"Deployment public subdomain (e.g., \"k8f2j3\")."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"aliases":{"type":"array","items":{"type":"object","properties":{"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message. Present when DNS previously failed, even if status\nwas reset to pending for retry. Used to surface actionable error context\nin WaitingForDns failure messages."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a managed hostname.\n\nIncludes decrypted certificate data for issued certificates.\nPrivate keys are deployment-scoped secrets (like environment variables)."},"description":"Additional managed hostnames for the resource."},"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"endpoints":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message. Present when DNS previously failed, even if status\nwas reset to pending for retry. Used to surface actionable error context\nin WaitingForDns failure messages."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a managed hostname.\n\nIncludes decrypted certificate data for issued certificates.\nPrivate keys are deployment-scoped secrets (like environment variables)."},"description":"Endpoint-scoped metadata keyed by endpoint name."},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a public resource.\n\nThe direct fields describe the primary endpoint hostname. `endpoints`\ncontains endpoint-scoped metadata keyed by endpoint name. `aliases` contains\nadditional managed hostnames that route directly to the primary endpoint."},"description":"Metadata per resource ID."}},"required":["baseDomain","hostedZoneId","publicSubdomain","resources"],"description":"Domain metadata for auto-managed public resources (no private keys)."},{"nullable":true}]},"environmentVariables":{"type":"object","properties":{"createdAt":{"type":"string","description":"ISO 8601 timestamp when snapshot was created"},"hash":{"type":"string","description":"Deterministic hash of all variables (for change detection)"},"variables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Variable name"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource patterns (null = all resources, Some = wildcard patterns)"},"type":{"type":"string","enum":["plain","secret"],"description":"Type of environment variable"},"value":{"type":"string","description":"Variable value (decrypted - deployment has access to decryption keys)"}},"required":["name","type","value"],"description":"Environment variable for deployment"},"description":"Environment variables in the snapshot"}},"required":["createdAt","hash","variables"],"description":"Snapshot of environment variables at a point in time"},"externalBindings":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"bucketName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS S3 storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["s3"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"containerName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Blob Storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["blob"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"bucketName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Google Cloud Storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["gcs"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"storagePath":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local filesystem storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["local-storage"]}},"required":["service"]}]}],"description":"Service-type based storage binding that supports multiple storage providers"},{"type":"object","properties":{"type":{"type":"string","enum":["storage"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"queueUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS SQS queue parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["sqs"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"subscription":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"topic":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Pub/Sub parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["pubsub"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"queueName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Service Bus parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["servicebus"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"queuePath":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local queue parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["local-queue"]}},"required":["service"]}]}],"description":"Binding parameters for Queue at runtime or in templates."},{"type":"object","properties":{"type":{"type":"string","enum":["queue"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"endpointUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"region":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"tableName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS DynamoDB KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["dynamodb"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"collectionName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"databaseId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"projectId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Firestore KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["firestore"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"tableName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Table Storage KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["tablestorage"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"connectionUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"database":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"keyPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Redis KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["redis"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"keyPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Local development KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["local-kv"]}},"required":["service"]}]}],"description":"Represents a KV binding for key-value storage across platforms"},{"type":"object","properties":{"type":{"type":"string","enum":["kv"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"pullRoleArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"pushRoleArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"repositoryPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS ECR (Elastic Container Registry) binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["ecr"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"registryName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"repositoryPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Container Registry binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["acr"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"pullServiceAccountEmail":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"pushServiceAccountEmail":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"repositoryName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Google Artifact Registry binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["gar"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"type":"string"},{"nullable":true},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"registryUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local container registry binding configuration.\n\nThe local registry runs on localhost only and does not require authentication.\nSecurity boundary is the OS process isolation on the customer's machine.\nExternal image access is secured by the manager's registry proxy (deployment tokens)."},{"type":"object","properties":{"service":{"type":"string","enum":["local"]}},"required":["service"]}]}],"description":"Service-type based artifact registry binding that supports multiple registry providers"},{"type":"object","properties":{"type":{"type":"string","enum":["artifact_registry"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS SSM Parameter Store vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["parameter-store"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Secret Manager vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["secret-manager"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"vaultName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Key Vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["key-vault"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Kubernetes Secrets vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["kubernetes-secret"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"vaultName":{"type":"string","description":"The vault name for local storage"}},"required":["vaultName"],"description":"Local development vault binding (for testing/development)"},{"type":"object","properties":{"service":{"type":"string","enum":["local-vault"]}},"required":["service"]}]}],"description":"Represents a vault binding for secure secret management"},{"type":"object","properties":{"type":{"type":"string","enum":["vault"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"defaultDomain":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"environmentName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"staticIp":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Binding configuration for a pre-existing Azure Container Apps Environment.\n\nUsed when deploying to an existing environment instead of having Alien provision one.\nThis is useful for shared environments (e.g., test infrastructure) or enterprise\nsetups where environments are managed by a separate team."},{"type":"object","properties":{"type":{"type":"string","enum":["container_apps_environment"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"clusterEndpoint":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS Aurora Serverless v2 binding."},{"type":"object","properties":{"service":{"type":"string","enum":["aurora"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"serverCaCertificates":{"oneOf":[{"type":"array","items":{"type":"string"}},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Cloud SQL binding."},{"type":"object","properties":{"service":{"type":"string","enum":["cloud-sql"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretUri":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Flexible Server binding."},{"type":"object","properties":{"service":{"type":"string","enum":["flexible-server"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"password":{"type":"string","description":"Connection password as a concrete value, never an unresolved `SecretRef`: the platform\nmaterializes the Kubernetes secret into the pod env. The cloud variants carry a secret\nlocator instead."},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"sslMode":{"type":"string","enum":["verify-full","disable"],"description":"TLS policy for an operator-provided / BYO Postgres database.\n\nUnlike libpq's ambiguous `prefer` mode, both choices map exactly to the\nconnection settings exposed by every supported SDK."},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"required":["password"],"description":"Operator-provided / BYO database binding."},{"type":"object","properties":{"service":{"type":"string","enum":["external"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"password":{"type":"string"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"required":["password"],"description":"Local embedded Postgres binding."},{"type":"object","properties":{"service":{"type":"string","enum":["local-postgres"]}},"required":["service"]}]}],"description":"Connection details for a Postgres database, one variant per backend."},{"type":"object","properties":{"type":{"type":"string","enum":["postgres"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"apiKey":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"provider":{"type":"string","description":"The external AI provider name (e.g., \"openai\", \"anthropic\")"}},"required":["provider"],"description":"External AI provider binding configuration (BYO-key).\n\nThe operator-supplied secret rides inside the binding via\n`BindingValue`, so it is a literal on cloud platforms and gains\nKubernetes SecretRef resolution for free (`extract_binding_secrets` walks\nthe binding JSON for `secretRef`)."},{"type":"object","properties":{"type":{"type":"string","enum":["ai"]}},"required":["type"]}]}],"description":"Represents a binding to pre-existing infrastructure.\n\nThe binding type must match the resource type it's applied to.\nValidated at runtime by the executor."},"description":"Map from resource ID to external binding.\n\nValidated at runtime: binding type must match resource type."},"inputValues":{"type":"object","properties":{},"additionalProperties":{"nullable":true},"description":"Deployer-provided stack input values, keyed by input id. A resource\ngated with `.enabled(input)` and a Live lifecycle follows these\nvalues; a missing key falls back to the input's declared boolean\ndefault. Suppliers must not place secret-kind input values here:\nthis map serializes and debug-prints unredacted."},"labelDomain":{"type":"string","nullable":true,"description":"DNS-style label domain used for Kubernetes resource ownership labels.\n\nDefaults to `alien.dev` when absent. Whitelabeled Operator builds set this\nso generated workloads and optional log collectors share the same label\nnamespace."},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}]},"managerUrl":{"type":"string","nullable":true,"description":"Manager base URL (e.g., \"https://manager.alien.dev\").\n\nThe manager IS the container registry — its `/v2/` endpoint serves as\nthe OCI Distribution API. Controllers derive the proxy host from this\nto configure pull auth (RegistryCredentials, imagePullSecrets).\n\nWhen None (e.g., `alien dev`), controllers use image URIs as-is."},"monitoring":{"oneOf":[{"type":"object","properties":{"logsAuthHeader":{"type":"string","description":"Auth header value in \"key=value,...\" format.\nExample: \"authorization=Bearer \""},"logsEndpoint":{"type":"string","description":"Full OTLP logs endpoint URL.\nExample: \"https:///v1/logs\""},"metricsAuthHeader":{"type":"string","nullable":true,"description":"Auth header value for the metrics endpoint in \"key=value,...\" format (optional).\n\nWhen absent, `logs_auth_header` is reused for metrics -- suitable when the same\ncredential covers both signals. When present (e.g. Axiom with separate datasets),\nthis value is used exclusively for metrics.\n\nExample: \"authorization=Bearer ,x-axiom-dataset=\""},"metricsEndpoint":{"type":"string","nullable":true,"description":"Full OTLP metrics endpoint URL (optional).\nWhen set, the worker runtime exports its own VM/container orchestration metrics here.\nExample: \"https://api.axiom.co/v1/metrics\""},"resourceAttributes":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Resource attributes attached to every OTLP signal emitted for this deployment.\n\nPlatform managers use this for stable identity such as `alien.workspace_id`,\n`alien.project_id`, `alien.deployment_group_id`, and `alien.deployment_id`.\nRuntime-specific resource attributes such as `service.name` remain owned by\nthe runtime/exporter."}},"required":["logsAuthHeader","logsEndpoint"],"description":"OTLP log export configuration for a deployment.\n\nWhen set, injected compute runtimes export captured application logs\nthrough the given endpoint via OTLP/HTTP; which resources are injected\nis platform-dependent. Workers read auth headers from a runtime-only\nsecret. Runtime-less Containers and Daemons receive standard OTEL auth\nvariables only at the final hosting boundary: Local passes them directly\nto the process and Kubernetes projects them from a per-workload Secret."},{"nullable":true}]},"nativeImageHost":{"type":"string","nullable":true,"description":"Native image registry host+prefix for platforms that require it.\n\nLambda (ECR) and Cloud Run (GAR) require native registry URIs. Other\nruntimes, including Azure Container Apps, pull through the manager's\nregistry proxy.\n\nDerived by the manager from the artifact registry binding:\n- ECR: `{account_id}.dkr.ecr.{region}.amazonaws.com/{repository_prefix}`\n- GAR: `{region}-docker.pkg.dev/{project_id}/{repository_name}`"},"observeAllNamespaces":{"type":"boolean","description":"When true the observe pass reports raw resources across every namespace\n(cluster scope); otherwise it stays within the operator's own namespace.\nThe label selector, if any, still filters within whichever scope applies.\nIgnored by cloud observers."},"observeLabelSelector":{"type":"string","nullable":true,"description":"Kubernetes label selector that narrows which raw resources the observe\npass reports (e.g. `app.kubernetes.io/part-of=my-app`). `None` observes\neverything in the namespace. Ignored by cloud observers."},"publicEndpoints":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Public endpoint URLs for exposed resources (optional override).\n\nUse this only when a caller already knows the public URL. Managed public\nendpoint flows should prefer `domain_metadata` plus controller-reported\nload balancer outputs so DNS, certificate renewal, and route readiness\nstay tied to the resource state.\n\nIf not set, platforms determine public endpoint URLs from other sources:\n- Managed DNS/TLS flows: `domain_metadata` FQDN or load balancer DNS\n- Local: `http://localhost:{allocated_port}`\n- Custom or disabled exposure: no public endpoint URL unless a controller reports one\n\nOuter key: resource ID. Inner key: endpoint name. Value: public URL."},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["environmentVariables"],"description":"Deployment configuration"}},"required":["deploymentId","projectId","deploymentGroupId","current","config"]},"SyncContextRequest":{"type":"object","properties":{"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Manager requesting the context. Manager-scoped tokens are constrained to their own manager ID."}]},"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"}},"required":["deploymentId"],"additionalProperties":false},"SyncAcquireResponse":{"type":"object","properties":{"deployments":{"type":"array","items":{"$ref":"#/components/schemas/SyncAcquireResponseDeployment"},"description":"List of acquired deployments with deployment context"},"failures":{"type":"array","items":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"ID of the deployment that failed","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"projectId":{"type":"string","description":"Project ID the deployment belongs to"},"error":{"allOf":[{"$ref":"#/components/schemas/APIError"},{"description":"Error that occurred during context building"}]}},"required":["deploymentId","projectId","error"]},"description":"List of deployments that failed during context building (locks already released)"},"leaseExpiresAt":{"type":"string","nullable":true,"format":"date-time","description":"When the provisional leases on the returned deployments lapse. Confirm them with sync/renew before starting work. Null when nothing was acquired."}},"required":["deployments","failures","leaseExpiresAt"],"description":"Acquired deployments and failures"},"SyncAcquireRequest":{"type":"object","properties":{"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Manager requesting the deployments. If omitted, resolved from each deployment's managerId column."}]},"session":{"type":"string","description":"Unique session identifier for lock tracking"},"requestId":{"type":"string","minLength":1,"description":"Idempotency key for one logical acquire request"},"deploymentIds":{"type":"array","items":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"description":"Specific deployment IDs to lock (for Pull model sync)"},"statuses":{"type":"array","items":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"description":"Filter by deployment statuses (default: all deployment statuses)"},"platforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Filter by platforms (default: all platforms the Manager supports)"},"setupMethod":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMethod"},{"description":"Filter by setup method for setup-owned acquisition paths"}]},"acquireMode":{"type":"string","enum":["runtime","setup-run","setup-teardown"],"description":"Phase ownership mode for deployment acquisition"},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Filter by deployment model from stackSettings.deploymentModel."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum number of deployments to acquire (default: 10)"}},"required":["session","requestId","deploymentModel"],"additionalProperties":false,"description":"Request to acquire deployments for processing"},"SyncReconcileResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the state was reconciled"},"current":{"type":"object","properties":{"currentRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}]},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"protocolVersion":{"type":"integer","minimum":0,"description":"Protocol version for cross-actor compatibility.\nAll actors (manager, push client, agent) check this before stepping.\nMismatched versions produce a clear error instead of silent corruption.\nSee docs/02-manager/10-deployment-protocol.md."},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment\nWhen true and status is a failed state, the deployment system will retry failed resources"},"runtimeMetadata":{"oneOf":[{"type":"object","properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment\n\nStores deployment state that needs to persist across step calls."},{"nullable":true}]},"stackState":{"oneOf":[{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"Represents the collective state of all resources in a stack, including platform and pending actions."},{"nullable":true}]},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"targetRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]}},"required":["platform","protocolVersion","status"],"description":"Current deployment state after reconciliation"},"target":{"type":"object","properties":{"config":{"type":"object","properties":{"allowFrozenChanges":{"type":"boolean","description":"Allow frozen resource changes during updates\nWhen true, skips the frozen resources compatibility check.\nThis requires running with elevated cloud credentials."},"basePlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"computeBackend":{"oneOf":[{"allOf":[{"type":"object","properties":{"clusters":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"clusterId":{"type":"string","description":"Cluster ID (deterministic: workspace/project/deployment/resourceid)"},"managementToken":{"type":"string","description":"Management token for API access (hm_...)\nUsed by alien-deployment controllers to create/update containers"}},"required":["clusterId","managementToken"],"description":"Configuration for a single container worker cluster.\n\nContains the cluster ID and management token needed to interact with\nthe managed container control plane API for container operations."},"description":"Cluster configurations (one per ComputeCluster resource)\nKey: ComputeCluster resource ID from stack\nValue: Cluster ID and management token for that cluster"},"horizonMachineImage":{"oneOf":[{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"amis":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"AMI IDs by architecture, then AWS region."}},"required":["amis"],"description":"AWS Horizon machine image catalog."},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"images":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"imageVersionId":{"type":"string","description":"Azure Compute Gallery image version ID."}},"required":["imageVersionId"],"description":"Azure Horizon machine image entry."},"description":"Images by architecture."}},"required":["images"],"description":"Azure Horizon machine image catalog."},{"nullable":true}]},"baseImage":{"type":"object","properties":{"name":{"type":"string","description":"Base OS image name."},"version":{"type":"string","description":"Base OS image version or channel."}},"required":["name","version"],"description":"Base image metadata for the Horizon machine image."},"channel":{"type":"string","description":"Logical image channel, such as prod, staging, or canary."},"createdAt":{"type":"string","description":"Image manifest creation timestamp."},"gcp":{"oneOf":[{"type":"object","properties":{"images":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sourceImage":{"type":"string","description":"Source image self link or image-family URL."}},"required":["sourceImage"],"description":"GCP Horizon machine image entry."},"description":"Images by architecture."}},"required":["images"],"description":"GCP Horizon machine image catalog."},{"nullable":true}]},"gitSha":{"type":"string","description":"Git commit SHA used to build the image."},"horizondArtifacts":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sha256":{"type":"string","description":"SHA-256 digest for the artifact payload."},"url":{"type":"string","description":"HTTPS URL for the artifact."}},"required":["sha256","url"],"description":"Download artifact for one horizond release platform."},"description":"Per-architecture horizond artifacts by release-platform key."},"horizondVersion":{"type":"string","description":"horizond daemon version baked into the image."},"machineImageVersion":{"type":"string","description":"Published immutable machine image version."}},"required":["baseImage","channel","createdAt","gitSha","horizondArtifacts","horizondVersion","machineImageVersion"],"description":"Horizon machine image catalog.\n\nPlatform resolves concrete provider images from this catalog during rollout."},{"nullable":true}]},"url":{"type":"string","description":"Horizon control-plane API base URL."}},"required":["clusters","url"],"description":"Horizon control-plane configuration for container orchestration.\n\nContains all the information needed for Alien to interact with managed\ncontainer clusters during deployment. Each ComputeCluster resource gets its own\nentry in the clusters map."},{"type":"object","properties":{"type":{"type":"string","enum":["horizon"]}},"required":["type"]}],"description":"Compute backend for Container and Worker resources.\n\nDetermines how compute workloads are orchestrated on cloud platforms.\nWhen None, the platform default is used for cloud platforms."},{"nullable":true}]},"deploymentName":{"type":"string","nullable":true,"description":"Human-readable deployment name for cloud console metadata.\n\nThis is separate from the physical resource prefix in StackState. It is\nused only for display text such as IAM role descriptions, service\naccount descriptions, and custom role titles."},"deploymentToken":{"type":"string","nullable":true,"description":"Deployment token for pull authentication with the manager's registry.\n\nUsed by controllers to configure registry credentials so cloud platforms\nand K8s can pull images from the manager's `/v2/` endpoint."},"domainMetadata":{"oneOf":[{"type":"object","properties":{"baseDomain":{"type":"string","description":"Base domain for auto-generated domains (e.g., \"vpc.direct\")."},"hostedZoneId":{"type":"string","description":"Hosted zone ID for DNS records."},"publicSubdomain":{"type":"string","description":"Deployment public subdomain (e.g., \"k8f2j3\")."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"aliases":{"type":"array","items":{"type":"object","properties":{"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message. Present when DNS previously failed, even if status\nwas reset to pending for retry. Used to surface actionable error context\nin WaitingForDns failure messages."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a managed hostname.\n\nIncludes decrypted certificate data for issued certificates.\nPrivate keys are deployment-scoped secrets (like environment variables)."},"description":"Additional managed hostnames for the resource."},"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"endpoints":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message. Present when DNS previously failed, even if status\nwas reset to pending for retry. Used to surface actionable error context\nin WaitingForDns failure messages."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a managed hostname.\n\nIncludes decrypted certificate data for issued certificates.\nPrivate keys are deployment-scoped secrets (like environment variables)."},"description":"Endpoint-scoped metadata keyed by endpoint name."},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a public resource.\n\nThe direct fields describe the primary endpoint hostname. `endpoints`\ncontains endpoint-scoped metadata keyed by endpoint name. `aliases` contains\nadditional managed hostnames that route directly to the primary endpoint."},"description":"Metadata per resource ID."}},"required":["baseDomain","hostedZoneId","publicSubdomain","resources"],"description":"Domain metadata for auto-managed public resources (no private keys)."},{"nullable":true}]},"environmentVariables":{"type":"object","properties":{"createdAt":{"type":"string","description":"ISO 8601 timestamp when snapshot was created"},"hash":{"type":"string","description":"Deterministic hash of all variables (for change detection)"},"variables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Variable name"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource patterns (null = all resources, Some = wildcard patterns)"},"type":{"type":"string","enum":["plain","secret"],"description":"Type of environment variable"},"value":{"type":"string","description":"Variable value (decrypted - deployment has access to decryption keys)"}},"required":["name","type","value"],"description":"Environment variable for deployment"},"description":"Environment variables in the snapshot"}},"required":["createdAt","hash","variables"],"description":"Snapshot of environment variables at a point in time"},"externalBindings":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"bucketName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS S3 storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["s3"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"containerName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Blob Storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["blob"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"bucketName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Google Cloud Storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["gcs"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"storagePath":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local filesystem storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["local-storage"]}},"required":["service"]}]}],"description":"Service-type based storage binding that supports multiple storage providers"},{"type":"object","properties":{"type":{"type":"string","enum":["storage"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"queueUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS SQS queue parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["sqs"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"subscription":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"topic":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Pub/Sub parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["pubsub"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"queueName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Service Bus parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["servicebus"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"queuePath":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local queue parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["local-queue"]}},"required":["service"]}]}],"description":"Binding parameters for Queue at runtime or in templates."},{"type":"object","properties":{"type":{"type":"string","enum":["queue"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"endpointUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"region":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"tableName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS DynamoDB KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["dynamodb"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"collectionName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"databaseId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"projectId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Firestore KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["firestore"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"tableName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Table Storage KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["tablestorage"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"connectionUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"database":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"keyPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Redis KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["redis"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"keyPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Local development KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["local-kv"]}},"required":["service"]}]}],"description":"Represents a KV binding for key-value storage across platforms"},{"type":"object","properties":{"type":{"type":"string","enum":["kv"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"pullRoleArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"pushRoleArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"repositoryPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS ECR (Elastic Container Registry) binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["ecr"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"registryName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"repositoryPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Container Registry binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["acr"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"pullServiceAccountEmail":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"pushServiceAccountEmail":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"repositoryName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Google Artifact Registry binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["gar"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"type":"string"},{"nullable":true},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"registryUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local container registry binding configuration.\n\nThe local registry runs on localhost only and does not require authentication.\nSecurity boundary is the OS process isolation on the customer's machine.\nExternal image access is secured by the manager's registry proxy (deployment tokens)."},{"type":"object","properties":{"service":{"type":"string","enum":["local"]}},"required":["service"]}]}],"description":"Service-type based artifact registry binding that supports multiple registry providers"},{"type":"object","properties":{"type":{"type":"string","enum":["artifact_registry"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS SSM Parameter Store vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["parameter-store"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Secret Manager vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["secret-manager"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"vaultName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Key Vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["key-vault"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Kubernetes Secrets vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["kubernetes-secret"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"vaultName":{"type":"string","description":"The vault name for local storage"}},"required":["vaultName"],"description":"Local development vault binding (for testing/development)"},{"type":"object","properties":{"service":{"type":"string","enum":["local-vault"]}},"required":["service"]}]}],"description":"Represents a vault binding for secure secret management"},{"type":"object","properties":{"type":{"type":"string","enum":["vault"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"defaultDomain":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"environmentName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"staticIp":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Binding configuration for a pre-existing Azure Container Apps Environment.\n\nUsed when deploying to an existing environment instead of having Alien provision one.\nThis is useful for shared environments (e.g., test infrastructure) or enterprise\nsetups where environments are managed by a separate team."},{"type":"object","properties":{"type":{"type":"string","enum":["container_apps_environment"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"clusterEndpoint":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS Aurora Serverless v2 binding."},{"type":"object","properties":{"service":{"type":"string","enum":["aurora"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"serverCaCertificates":{"oneOf":[{"type":"array","items":{"type":"string"}},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Cloud SQL binding."},{"type":"object","properties":{"service":{"type":"string","enum":["cloud-sql"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretUri":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Flexible Server binding."},{"type":"object","properties":{"service":{"type":"string","enum":["flexible-server"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"password":{"type":"string","description":"Connection password as a concrete value, never an unresolved `SecretRef`: the platform\nmaterializes the Kubernetes secret into the pod env. The cloud variants carry a secret\nlocator instead."},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"sslMode":{"type":"string","enum":["verify-full","disable"],"description":"TLS policy for an operator-provided / BYO Postgres database.\n\nUnlike libpq's ambiguous `prefer` mode, both choices map exactly to the\nconnection settings exposed by every supported SDK."},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"required":["password"],"description":"Operator-provided / BYO database binding."},{"type":"object","properties":{"service":{"type":"string","enum":["external"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"password":{"type":"string"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"required":["password"],"description":"Local embedded Postgres binding."},{"type":"object","properties":{"service":{"type":"string","enum":["local-postgres"]}},"required":["service"]}]}],"description":"Connection details for a Postgres database, one variant per backend."},{"type":"object","properties":{"type":{"type":"string","enum":["postgres"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"apiKey":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"provider":{"type":"string","description":"The external AI provider name (e.g., \"openai\", \"anthropic\")"}},"required":["provider"],"description":"External AI provider binding configuration (BYO-key).\n\nThe operator-supplied secret rides inside the binding via\n`BindingValue`, so it is a literal on cloud platforms and gains\nKubernetes SecretRef resolution for free (`extract_binding_secrets` walks\nthe binding JSON for `secretRef`)."},{"type":"object","properties":{"type":{"type":"string","enum":["ai"]}},"required":["type"]}]}],"description":"Represents a binding to pre-existing infrastructure.\n\nThe binding type must match the resource type it's applied to.\nValidated at runtime by the executor."},"description":"Map from resource ID to external binding.\n\nValidated at runtime: binding type must match resource type."},"inputValues":{"type":"object","properties":{},"additionalProperties":{"nullable":true},"description":"Deployer-provided stack input values, keyed by input id. A resource\ngated with `.enabled(input)` and a Live lifecycle follows these\nvalues; a missing key falls back to the input's declared boolean\ndefault. Suppliers must not place secret-kind input values here:\nthis map serializes and debug-prints unredacted."},"labelDomain":{"type":"string","nullable":true,"description":"DNS-style label domain used for Kubernetes resource ownership labels.\n\nDefaults to `alien.dev` when absent. Whitelabeled Operator builds set this\nso generated workloads and optional log collectors share the same label\nnamespace."},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}]},"managerUrl":{"type":"string","nullable":true,"description":"Manager base URL (e.g., \"https://manager.alien.dev\").\n\nThe manager IS the container registry — its `/v2/` endpoint serves as\nthe OCI Distribution API. Controllers derive the proxy host from this\nto configure pull auth (RegistryCredentials, imagePullSecrets).\n\nWhen None (e.g., `alien dev`), controllers use image URIs as-is."},"monitoring":{"oneOf":[{"type":"object","properties":{"logsAuthHeader":{"type":"string","description":"Auth header value in \"key=value,...\" format.\nExample: \"authorization=Bearer \""},"logsEndpoint":{"type":"string","description":"Full OTLP logs endpoint URL.\nExample: \"https:///v1/logs\""},"metricsAuthHeader":{"type":"string","nullable":true,"description":"Auth header value for the metrics endpoint in \"key=value,...\" format (optional).\n\nWhen absent, `logs_auth_header` is reused for metrics -- suitable when the same\ncredential covers both signals. When present (e.g. Axiom with separate datasets),\nthis value is used exclusively for metrics.\n\nExample: \"authorization=Bearer ,x-axiom-dataset=\""},"metricsEndpoint":{"type":"string","nullable":true,"description":"Full OTLP metrics endpoint URL (optional).\nWhen set, the worker runtime exports its own VM/container orchestration metrics here.\nExample: \"https://api.axiom.co/v1/metrics\""},"resourceAttributes":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Resource attributes attached to every OTLP signal emitted for this deployment.\n\nPlatform managers use this for stable identity such as `alien.workspace_id`,\n`alien.project_id`, `alien.deployment_group_id`, and `alien.deployment_id`.\nRuntime-specific resource attributes such as `service.name` remain owned by\nthe runtime/exporter."}},"required":["logsAuthHeader","logsEndpoint"],"description":"OTLP log export configuration for a deployment.\n\nWhen set, injected compute runtimes export captured application logs\nthrough the given endpoint via OTLP/HTTP; which resources are injected\nis platform-dependent. Workers read auth headers from a runtime-only\nsecret. Runtime-less Containers and Daemons receive standard OTEL auth\nvariables only at the final hosting boundary: Local passes them directly\nto the process and Kubernetes projects them from a per-workload Secret."},{"nullable":true}]},"nativeImageHost":{"type":"string","nullable":true,"description":"Native image registry host+prefix for platforms that require it.\n\nLambda (ECR) and Cloud Run (GAR) require native registry URIs. Other\nruntimes, including Azure Container Apps, pull through the manager's\nregistry proxy.\n\nDerived by the manager from the artifact registry binding:\n- ECR: `{account_id}.dkr.ecr.{region}.amazonaws.com/{repository_prefix}`\n- GAR: `{region}-docker.pkg.dev/{project_id}/{repository_name}`"},"observeAllNamespaces":{"type":"boolean","description":"When true the observe pass reports raw resources across every namespace\n(cluster scope); otherwise it stays within the operator's own namespace.\nThe label selector, if any, still filters within whichever scope applies.\nIgnored by cloud observers."},"observeLabelSelector":{"type":"string","nullable":true,"description":"Kubernetes label selector that narrows which raw resources the observe\npass reports (e.g. `app.kubernetes.io/part-of=my-app`). `None` observes\neverything in the namespace. Ignored by cloud observers."},"publicEndpoints":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Public endpoint URLs for exposed resources (optional override).\n\nUse this only when a caller already knows the public URL. Managed public\nendpoint flows should prefer `domain_metadata` plus controller-reported\nload balancer outputs so DNS, certificate renewal, and route readiness\nstay tied to the resource state.\n\nIf not set, platforms determine public endpoint URLs from other sources:\n- Managed DNS/TLS flows: `domain_metadata` FQDN or load balancer DNS\n- Local: `http://localhost:{allocated_port}`\n- Custom or disabled exposure: no public endpoint URL unless a controller reports one\n\nOuter key: resource ID. Inner key: endpoint name. Value: public URL."},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["environmentVariables"],"description":"Deployment configuration\n\nConfiguration for how to perform the deployment.\nNote: Credentials (ClientConfig) are passed separately to step() function."},"releaseInfo":{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."}},"required":["config","releaseInfo"],"description":"Target deployment if update is needed"}},"required":["success","current"],"description":"State reconciliation result with optional target"},"SyncReconcileRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Deployment ID to reconcile state for","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"session":{"type":"string","description":"Lock session (push model only) - verifies lock ownership"},"state":{"type":"object","properties":{"currentRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}]},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"protocolVersion":{"type":"integer","minimum":0,"description":"Protocol version for cross-actor compatibility.\nAll actors (manager, push client, agent) check this before stepping.\nMismatched versions produce a clear error instead of silent corruption.\nSee docs/02-manager/10-deployment-protocol.md."},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment\nWhen true and status is a failed state, the deployment system will retry failed resources"},"runtimeMetadata":{"oneOf":[{"type":"object","properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment\n\nStores deployment state that needs to persist across step calls."},{"nullable":true}]},"stackState":{"oneOf":[{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"Represents the collective state of all resources in a stack, including platform and pending actions."},{"nullable":true}]},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"targetRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]}},"required":["platform","protocolVersion","status"],"description":"Complete deployment state after step() execution"},"updateHeartbeat":{"type":"boolean","description":"Update heartbeat timestamp (for successful health checks)"},"suggestedDelayMs":{"type":"integer","minimum":0,"description":"Delay before this deployment should be acquired again."},"resourceHeartbeats":{"type":"array","items":{"type":"object","properties":{"backend":{"type":"string","enum":["aws","gcp","azure","kubernetes","local","managed","external","test"]},"controllerPlatform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"data":{"oneOf":[{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"blockPublicAcls":{"type":"boolean","nullable":true},"blockPublicPolicy":{"type":"boolean","nullable":true},"bucketAclPresent":{"type":"boolean","nullable":true},"bucketLocation":{"type":"string","nullable":true},"bucketPolicyPresent":{"type":"boolean","nullable":true},"encryptionConfigPresent":{"type":"boolean"},"encryptionEnabled":{"type":"boolean","nullable":true},"ignorePublicAcls":{"type":"boolean","nullable":true},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"publicAccessBlockPresent":{"type":"boolean"},"region":{"type":"string","nullable":true},"restrictPublicBuckets":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"versioningEnabled":{"type":"boolean","nullable":true},"versioningStatus":{"type":"string","nullable":true}},"required":["encryptionConfigPresent","lifecyclePresent","name","publicAccessBlockPresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsS3"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"bucketId":{"type":"string","nullable":true},"defaultKmsKeyName":{"type":"string","nullable":true},"encryptionConfigPresent":{"type":"boolean"},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":"integer","nullable":true,"minimum":0},"location":{"type":"string","nullable":true},"locationType":{"type":"string","nullable":true},"name":{"type":"string"},"publicAccessPrevention":{"type":"string","nullable":true},"retentionPeriod":{"type":"string","nullable":true},"retentionPolicyEffectiveTime":{"type":"string","nullable":true},"retentionPolicyIsLocked":{"type":"boolean","nullable":true},"softDeleteEffectiveTime":{"type":"string","nullable":true},"softDeleteRetentionDurationSeconds":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"storageClass":{"type":"string","nullable":true},"uniformBucketLevelAccessEnabled":{"type":"boolean","nullable":true},"uniformBucketLevelAccessLockedTime":{"type":"string","nullable":true},"versioningEnabled":{"type":"boolean","nullable":true}},"required":["encryptionConfigPresent","lifecyclePresent","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudStorage"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessTier":{"type":"string","nullable":true},"accountKind":{"type":"string","nullable":true},"allowBlobPublicAccess":{"type":"boolean","nullable":true},"blobDeleteRetentionDays":{"type":"integer","nullable":true,"minimum":0},"blobDeleteRetentionEnabled":{"type":"boolean","nullable":true},"blobEncryptionEnabled":{"type":"boolean","nullable":true},"blobVersioningEnabled":{"type":"boolean","nullable":true},"changeFeedEnabled":{"type":"boolean","nullable":true},"changeFeedRetentionDays":{"type":"integer","nullable":true,"minimum":0},"containerDeleteRetentionDays":{"type":"integer","nullable":true,"minimum":0},"containerDeleteRetentionEnabled":{"type":"boolean","nullable":true},"containerPublicAccess":{"type":"string","nullable":true},"encryptionKeySource":{"type":"string","nullable":true},"fileEncryptionEnabled":{"type":"boolean","nullable":true},"location":{"type":"string","nullable":true},"name":{"type":"string"},"primaryLocation":{"type":"string","nullable":true},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"queueEncryptionEnabled":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"secondaryLocation":{"type":"string","nullable":true},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"statusOfPrimary":{"type":"string","nullable":true},"statusOfSecondary":{"type":"string","nullable":true},"storageAccountName":{"type":"string","nullable":true},"tableEncryptionEnabled":{"type":"boolean","nullable":true}},"required":["name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureBlob"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"isDirectory":{"type":"boolean","nullable":true},"modifiedAt":{"type":"string","nullable":true,"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["path","pathExists","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["storage"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"codeSha256":{"type":"string","nullable":true},"functionName":{"type":"string"},"functionUrlAuthType":{"type":"string","nullable":true},"functionUrlCorsPresent":{"type":"boolean"},"lastModified":{"type":"string","nullable":true},"lastUpdateStatus":{"type":"string","nullable":true},"lastUpdateStatusReason":{"type":"string","nullable":true},"lastUpdateStatusReasonCode":{"type":"string","nullable":true},"layerCount":{"type":"integer","minimum":0},"memorySizeMb":{"type":"integer","nullable":true},"packageType":{"type":"string","nullable":true},"revisionId":{"type":"string","nullable":true},"runtime":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"stateReason":{"type":"string","nullable":true},"stateReasonCode":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"timeoutSeconds":{"type":"integer","nullable":true},"triggerCount":{"type":"integer","minimum":0},"version":{"type":"string","nullable":true}},"required":["functionName","functionUrlCorsPresent","layerCount","status","triggerCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsLambda"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"containerImage":{"type":"string","nullable":true},"cpuLimit":{"type":"string","nullable":true},"generation":{"type":"integer","nullable":true},"latestCreatedRevision":{"type":"string","nullable":true},"latestReadyRevision":{"type":"string","nullable":true},"maxInstanceCount":{"type":"integer","nullable":true},"memoryLimit":{"type":"string","nullable":true},"minInstanceCount":{"type":"integer","nullable":true},"observedGeneration":{"type":"integer","nullable":true},"region":{"type":"string","nullable":true},"service":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"trafficCount":{"type":"integer","minimum":0},"uri":{"type":"string","nullable":true},"urls":{"type":"array","items":{"type":"string"}}},"required":["service","status","trafficCount","urls"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudRun"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"appName":{"type":"string"},"cpu":{"type":"number","nullable":true},"environmentName":{"type":"string","nullable":true},"ingressFqdn":{"type":"string","nullable":true},"maxReplicas":{"type":"integer","nullable":true},"memory":{"type":"string","nullable":true},"minReplicas":{"type":"integer","nullable":true},"provisioningState":{"type":"string","nullable":true},"revision":{"type":"string","nullable":true},"runningStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["appName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerApps"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"triggerCount":{"type":"integer","minimum":0},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"]}},"required":["events","name","namespace","pods","replicas","status","triggerCount","workloadKind"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"imagePathPresent":{"type":"boolean"},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pid":{"type":"integer","nullable":true,"minimum":0},"process":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"readinessProbeOk":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"triggerCount":{"type":"integer","minimum":0}},"required":["commandSupported","events","imagePathPresent","status","triggerCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["worker"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"attentionCount":{"type":"integer","minimum":0},"containerId":{"type":"string"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"image":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"observedImage":{"type":"string","nullable":true},"replicaUnits":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"schedulingMode":{"type":"string","enum":["replicated","stateful","daemon"]},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["attentionCount","containerId","events","replicaUnits","replicas","schedulingMode","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["horizonPlatform"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"]}},"required":["events","name","namespace","pods","replicas","status","workloadKind"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"bindMountCount":{"type":"integer","minimum":0},"containerId":{"type":"string","nullable":true},"containerUnit":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"image":{"type":"string","nullable":true},"localUrl":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string","nullable":true},"portCount":{"type":"integer","minimum":0},"restartCount":{"type":"integer","nullable":true,"minimum":0},"runtimeReachable":{"type":"boolean"},"runtimeStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["bindMountCount","events","portCount","runtimeReachable","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["container"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aws"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcp"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azure"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["machines"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]}},"required":["commandSupported","events","name","namespace","pods","replicas","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"daemonInstance":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"daemonName":{"type":"string"},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"exitReason":{"type":"string","nullable":true},"imagePathPresent":{"type":"boolean"},"pid":{"type":"integer","nullable":true,"minimum":0},"restartCount":{"type":"integer","nullable":true,"minimum":0},"runtimeId":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["commandSupported","events","imagePathPresent","runtimeId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["daemon"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aws"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcp"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azure"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"machines":{"type":"array","items":{"type":"object","properties":{"capacityGroup":{"type":"string"},"cpuCores":{"type":"number","nullable":true},"drainBlockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainForce":{"type":"boolean"},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"horizondVersion":{"type":"string","nullable":true},"lastHeartbeat":{"type":"string"},"machineId":{"type":"string"},"memoryBytes":{"type":"integer","nullable":true},"overlayIp":{"type":"string","nullable":true},"publicIp":{"type":"string","nullable":true},"replicaCount":{"type":"integer"},"status":{"type":"string"},"zone":{"type":"string"}},"required":["capacityGroup","drainForce","lastHeartbeat","machineId","replicaCount","status","zone"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","machines","name","nodes","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["machines"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"dockerApiVersion":{"type":"string","nullable":true},"dockerArch":{"type":"string","nullable":true},"dockerAvailable":{"type":"boolean"},"dockerOs":{"type":"string","nullable":true},"dockerVersion":{"type":"string","nullable":true},"hostIdentifier":{"type":"string","nullable":true},"name":{"type":"string"},"networkAvailable":{"type":"boolean"},"networkName":{"type":"string","nullable":true},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"runningContainers":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"trackedContainers":{"type":"integer","nullable":true,"minimum":0}},"required":["dockerAvailable","name","networkAvailable","nodes","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["compute-cluster"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string","nullable":true},"nodeCounts":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"nodeStatuses":{"type":"array","items":{"type":"object","properties":{"allocatable":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pods":{"type":"integer","nullable":true,"minimum":0}}},"capacity":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pods":{"type":"integer","nullable":true,"minimum":0}}},"conditions":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"containerRuntimeVersion":{"type":"string","nullable":true},"kubeletVersion":{"type":"string","nullable":true},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"name":{"type":"string"},"ready":{"type":"boolean"},"roles":{"type":"array","items":{"type":"string"}},"uid":{"type":"string","nullable":true},"usage":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}}},{"nullable":true}]}},"required":["allocatable","capacity","labels","name","ready","roles"]}},"podCounts":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string","nullable":true}},"required":["events","name","nodeCounts","podCounts","status"]},"resourceType":{"type":"string","enum":["kubernetes-cluster"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"approximateCounts":{"type":"boolean"},"approximateDelayedMessages":{"type":"integer","nullable":true,"minimum":0},"approximateInFlightMessages":{"type":"integer","nullable":true,"minimum":0},"approximateVisibleMessages":{"type":"integer","nullable":true,"minimum":0},"contentBasedDeduplication":{"type":"boolean","nullable":true},"deduplicationScope":{"type":"string","nullable":true},"delaySeconds":{"type":"integer","nullable":true,"minimum":0},"fifoQueue":{"type":"boolean","nullable":true},"fifoThroughputLimit":{"type":"string","nullable":true},"kmsDataKeyReusePeriodSeconds":{"type":"integer","nullable":true,"minimum":0},"kmsMasterKeyId":{"type":"string","nullable":true},"maximumMessageSize":{"type":"integer","nullable":true,"minimum":0},"messageRetentionPeriodSeconds":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"queueArn":{"type":"string","nullable":true},"queueUrl":{"type":"string","nullable":true},"receiveMessageWaitTimeSeconds":{"type":"integer","nullable":true,"minimum":0},"redriveAllowPolicy":{"type":"string","nullable":true},"redrivePolicy":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"sqsManagedSseEnabled":{"type":"boolean","nullable":true},"sseEnabled":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"visibilityTimeoutSeconds":{"type":"integer","nullable":true,"minimum":0}},"required":["approximateCounts","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsSqs"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"kmsKeyName":{"type":"string","nullable":true},"messageStorageAllowedPersistenceRegions":{"type":"array","items":{"type":"string"}},"messageStorageEnforceInTransit":{"type":"boolean","nullable":true},"projectId":{"type":"string","nullable":true},"schemaEncoding":{"type":"string","nullable":true},"schemaFirstRevisionId":{"type":"string","nullable":true},"schemaLastRevisionId":{"type":"string","nullable":true},"schemaName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"subscriptionAckDeadlineSeconds":{"type":"integer","nullable":true,"minimum":0},"subscriptionDeadLetterMaxDeliveryAttempts":{"type":"integer","nullable":true,"minimum":0},"subscriptionDeadLetterTopic":{"type":"string","nullable":true},"subscriptionDetached":{"type":"boolean","nullable":true},"subscriptionEnableMessageOrdering":{"type":"boolean","nullable":true},"subscriptionFilter":{"type":"string","nullable":true},"subscriptionFullName":{"type":"string","nullable":true},"subscriptionLabels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"subscriptionMessageRetentionDuration":{"type":"string","nullable":true},"subscriptionName":{"type":"string","nullable":true},"subscriptionPushAttributes":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"subscriptionPushConfigPresent":{"type":"boolean","nullable":true},"subscriptionPushEndpoint":{"type":"string","nullable":true},"subscriptionPushNoWrapperWriteMetadata":{"type":"boolean","nullable":true},"subscriptionPushOidcAudience":{"type":"string","nullable":true},"subscriptionPushOidcServiceAccountEmail":{"type":"string","nullable":true},"subscriptionPushPubsubWrapperWriteMetadata":{"type":"boolean","nullable":true},"subscriptionRetainAckedMessages":{"type":"boolean","nullable":true},"subscriptionState":{"type":"string","nullable":true},"topicFullName":{"type":"string","nullable":true},"topicLabels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"topicMessageRetentionDuration":{"type":"string","nullable":true},"topicName":{"type":"string"},"topicState":{"type":"string","nullable":true}},"required":["messageStorageAllowedPersistenceRegions","status","subscriptionLabels","subscriptionPushAttributes","topicLabels","topicName"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpPubSub"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessedAt":{"type":"string","nullable":true},"activeMessageCount":{"type":"integer","nullable":true,"minimum":0},"autoDeleteOnIdle":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"deadLetterMessageCount":{"type":"integer","nullable":true,"minimum":0},"deadLetteringOnMessageExpiration":{"type":"boolean","nullable":true},"defaultMessageTimeToLive":{"type":"string","nullable":true},"duplicateDetectionHistoryTimeWindow":{"type":"string","nullable":true},"enableBatchedOperations":{"type":"boolean","nullable":true},"enableExpress":{"type":"boolean","nullable":true},"enablePartitioning":{"type":"boolean","nullable":true},"endpoint":{"type":"string","nullable":true},"forwardDeadLetteredMessagesTo":{"type":"string","nullable":true},"forwardTo":{"type":"string","nullable":true},"lockDuration":{"type":"string","nullable":true},"maxDeliveryCount":{"type":"integer","nullable":true,"minimum":0},"maxMessageSizeInKilobytes":{"type":"integer","nullable":true,"minimum":0},"maxSizeInMegabytes":{"type":"integer","nullable":true,"minimum":0},"messageCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"namespaceName":{"type":"string"},"queueStatus":{"type":"string","nullable":true},"requiresDuplicateDetection":{"type":"boolean","nullable":true},"requiresSession":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"scheduledMessageCount":{"type":"integer","nullable":true,"minimum":0},"sizeInBytes":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"transferDeadLetterMessageCount":{"type":"integer","nullable":true,"minimum":0},"transferMessageCount":{"type":"integer","nullable":true,"minimum":0},"updatedAt":{"type":"string","nullable":true}},"required":["name","namespaceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureServiceBus"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"name":{"type":"string"},"path":{"type":"string","nullable":true},"serviceStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["queue"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"billingMode":{"type":"string","nullable":true},"deletionProtectionEnabled":{"type":"boolean","nullable":true},"globalSecondaryIndexCount":{"type":"integer","nullable":true,"minimum":0},"itemCount":{"type":"integer","nullable":true,"minimum":0},"keySchema":{"type":"array","items":{"type":"object","properties":{"attributeName":{"type":"string"},"keyType":{"type":"string"}},"required":["attributeName","keyType"]}},"localSecondaryIndexCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"region":{"type":"string","nullable":true},"replicaCount":{"type":"integer","nullable":true,"minimum":0},"restoreInProgress":{"type":"boolean","nullable":true},"sseStatus":{"type":"string","nullable":true},"sseType":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"streamEnabled":{"type":"boolean","nullable":true},"streamViewType":{"type":"string","nullable":true},"tableArn":{"type":"string","nullable":true},"tableClass":{"type":"string","nullable":true},"tableSizeBytes":{"type":"integer","nullable":true,"minimum":0},"tableStatus":{"type":"string","nullable":true},"ttlAttributeName":{"type":"string","nullable":true},"ttlStatus":{"type":"string","nullable":true}},"required":["keySchema","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsDynamoDb"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"appEngineIntegrationMode":{"type":"string","nullable":true},"cmekEnabled":{"type":"boolean"},"concurrencyMode":{"type":"string","nullable":true},"createTime":{"type":"string","nullable":true},"databaseEdition":{"type":"string","nullable":true},"databaseName":{"type":"string"},"databaseType":{"type":"string","nullable":true},"deleteProtectionState":{"type":"string","nullable":true},"deleteTime":{"type":"string","nullable":true},"earliestVersionTime":{"type":"string","nullable":true},"endpoint":{"type":"string","nullable":true},"locationId":{"type":"string","nullable":true},"pointInTimeRecoveryEnablement":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"sourceInfoPresent":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updateTime":{"type":"string","nullable":true},"versionRetentionPeriod":{"type":"string","nullable":true}},"required":["cmekEnabled","databaseName","sourceInfoPresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpFirestore"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"signedIdentifierCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"storageAccountKind":{"type":"string","nullable":true},"storageAccountLocation":{"type":"string","nullable":true},"storageAccountName":{"type":"string"},"storageAccountPrimaryStatus":{"type":"string","nullable":true},"storageAccountProvisioningState":{"type":"string","nullable":true},"storageAccountResourceId":{"type":"string","nullable":true},"tableExists":{"type":"boolean"},"tableName":{"type":"string"}},"required":["status","storageAccountName","tableExists","tableName"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureTable"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cloudMetadataSupported":{"type":"boolean"},"isDirectory":{"type":"boolean","nullable":true},"name":{"type":"string"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["cloudMetadataSupported","name","path","pathExists","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["kv"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"clusterIdentifier":{"type":"string"},"endpoint":{"type":"string","nullable":true},"engineVersion":{"type":"string","nullable":true},"neverPauses":{"type":"boolean","description":"True when a `minCapacity: 0` instance has not reached 0 ACU over the observation\nwindow — it is silently paying always-on prices (auto-pause verification)."},"serverlessCapacity":{"type":"number","nullable":true,"description":"Latest sampled `ServerlessDatabaseCapacity` (ACU)."},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["clusterIdentifier","neverPauses","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aurora"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"databaseVersion":{"type":"string","nullable":true},"instanceName":{"type":"string"},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["instanceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["cloudSql"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"serverName":{"type":"string"},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string","nullable":true}},"required":["serverName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["flexibleServer"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"name":{"type":"string"},"port":{"type":"integer","nullable":true,"minimum":0},"processRunning":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string"}},"required":["name","processRunning","status","version"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["postgres"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string"},"hasMoreParameters":{"type":"boolean","nullable":true},"latestModifiedAt":{"type":"string","nullable":true,"format":"date-time"},"parameterMetadataSampled":{"type":"boolean"},"prefix":{"type":"string"},"region":{"type":"string"},"sampledAdvancedTierCount":{"type":"integer","nullable":true,"minimum":0},"sampledKmsKeyMetadataPresentCount":{"type":"integer","nullable":true,"minimum":0},"sampledParameterCount":{"type":"integer","nullable":true,"minimum":0},"sampledSecureStringCount":{"type":"integer","nullable":true,"minimum":0},"sampledStringCount":{"type":"integer","nullable":true,"minimum":0},"sampledStringListCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["accountId","parameterMetadataSampled","prefix","region","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsParameterStore"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string"},"prefix":{"type":"string"},"projectId":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["location","prefix","projectId","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpSecretManager"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessPolicyCount":{"type":"integer","minimum":0},"location":{"type":"string","nullable":true},"name":{"type":"string"},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string"},"purgeProtectionEnabled":{"type":"boolean","nullable":true},"rbacAuthorizationEnabled":{"type":"boolean"},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"secretMetadataListed":{"type":"boolean"},"skuFamily":{"type":"string","nullable":true},"skuName":{"type":"string","nullable":true},"softDeleteEnabled":{"type":"boolean"},"softDeleteRetentionDays":{"type":"integer"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vaultUri":{"type":"string","nullable":true}},"required":["accessPolicyCount","name","privateEndpointConnectionCount","publicNetworkAccess","rbacAuthorizationEnabled","secretMetadataListed","softDeleteEnabled","softDeleteRetentionDays","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureKeyVault"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"type":"string"},"prefix":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["namespace","prefix","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetesSecret"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"isDirectory":{"type":"boolean","nullable":true},"modifiedAt":{"type":"string","nullable":true,"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":"boolean","nullable":true},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["path","pathExists","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["vault"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"assumeRolePolicyPresent":{"type":"boolean"},"attachedPolicyCount":{"type":"integer","minimum":0},"attachedPolicyNames":{"type":"array","items":{"type":"string"}},"createDate":{"type":"string"},"description":{"type":"string","nullable":true},"inlinePolicyCount":{"type":"integer","minimum":0},"inlinePolicyNames":{"type":"array","items":{"type":"string"}},"lastUsedDate":{"type":"string","nullable":true},"lastUsedRegion":{"type":"string","nullable":true},"managedTagCount":{"type":"integer","minimum":0},"maxSessionDuration":{"type":"integer","nullable":true},"path":{"type":"string"},"permissionsBoundaryArn":{"type":"string","nullable":true},"permissionsBoundaryType":{"type":"string","nullable":true},"roleArn":{"type":"string"},"roleId":{"type":"string"},"roleName":{"type":"string"},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tagCount":{"type":"integer","minimum":0}},"required":["assumeRolePolicyPresent","attachedPolicyCount","attachedPolicyNames","createDate","inlinePolicyCount","inlinePolicyNames","managedTagCount","path","roleArn","roleId","roleName","stackPermissionsApplied","status","tagCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsIamRole"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true},"disabled":{"type":"boolean","nullable":true},"displayName":{"type":"string","nullable":true},"email":{"type":"string"},"etag":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"oauth2ClientId":{"type":"string","nullable":true},"projectBindingCount":{"type":"integer","minimum":0},"projectId":{"type":"string","nullable":true},"projectRoles":{"type":"array","items":{"type":"string"}},"serviceAccountBindingCount":{"type":"integer","minimum":0},"serviceAccountRoles":{"type":"array","items":{"type":"string"}},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"uniqueId":{"type":"string","nullable":true}},"required":["email","projectBindingCount","projectRoles","serviceAccountBindingCount","serviceAccountRoles","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"clientId":{"type":"string","nullable":true},"customRoleDefinitionCount":{"type":"integer","minimum":0},"customRoleDefinitionIds":{"type":"array","items":{"type":"string"}},"isolationScope":{"type":"string","nullable":true},"location":{"type":"string"},"managedTagCount":{"type":"integer","minimum":0},"name":{"type":"string"},"principalId":{"type":"string","nullable":true},"resourceGroup":{"type":"string"},"resourceId":{"type":"string"},"roleAssignmentCount":{"type":"integer","minimum":0},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tenantId":{"type":"string","nullable":true},"type":{"type":"string","nullable":true}},"required":["customRoleDefinitionCount","customRoleDefinitionIds","location","managedTagCount","name","resourceGroup","resourceId","roleAssignmentCount","roleAssignmentIds","stackPermissionsApplied","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"configured":{"type":"boolean"},"identity":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["configured","identity","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["service-account"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"availabilityZones":{"type":"array","items":{"type":"string"}},"cidrBlock":{"type":"string","nullable":true},"internetGatewayId":{"type":"string","nullable":true},"isByoVpc":{"type":"boolean"},"natGatewayId":{"type":"string","nullable":true},"privateSubnetIds":{"type":"array","items":{"type":"string"}},"publicSubnetIds":{"type":"array","items":{"type":"string"}},"routeTableCount":{"type":"integer","minimum":0},"securityGroupId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vpcId":{"type":"string","nullable":true},"vpcState":{"type":"string","nullable":true}},"required":["availabilityZones","isByoVpc","privateSubnetIds","publicSubnetIds","routeTableCount","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsVpc"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cidrBlock":{"type":"string","nullable":true},"cloudNatName":{"type":"string","nullable":true},"firewallName":{"type":"string","nullable":true},"isByoVpc":{"type":"boolean"},"networkName":{"type":"string","nullable":true},"networkSelfLink":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"routerName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"subnetworkName":{"type":"string","nullable":true},"subnetworkSelfLink":{"type":"string","nullable":true}},"required":["isByoVpc","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpVpc"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"applicationGatewaySubnetName":{"type":"string","nullable":true},"cidrBlock":{"type":"string","nullable":true},"isByoVnet":{"type":"boolean"},"lastByoVnetVerificationErrorCode":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"natGatewayId":{"type":"string","nullable":true},"nsgId":{"type":"string","nullable":true},"privateEndpointSubnetName":{"type":"string","nullable":true},"privateSubnetName":{"type":"string","nullable":true},"publicIpId":{"type":"string","nullable":true},"publicSubnetName":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vnetName":{"type":"string","nullable":true},"vnetResourceId":{"type":"string","nullable":true}},"required":["isByoVnet","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureVnet"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["network"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"managementPermissionsApplied":{"type":"boolean"},"roleArn":{"type":"string","nullable":true},"roleName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["managementPermissionsApplied","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsIamRole"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"impersonationGranted":{"type":"boolean"},"roleBound":{"type":"boolean"},"serviceAccountEmail":{"type":"string","nullable":true},"serviceAccountUniqueId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["impersonationGranted","roleBound","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"ficName":{"type":"string","nullable":true},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"roleDefinitionId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tenantId":{"type":"string","nullable":true},"uamiClientId":{"type":"string","nullable":true},"uamiPrincipalId":{"type":"string","nullable":true},"uamiResourceId":{"type":"string","nullable":true}},"required":["roleAssignmentIds","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["remote-stack-management"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"pullRoleArn":{"type":"string","nullable":true},"pushRoleArn":{"type":"string","nullable":true},"region":{"type":"string"},"registryId":{"type":"string"},"registryUri":{"type":"string"},"repositories":{"type":"array","items":{"type":"object","properties":{"createdAt":{"type":"number"},"encryptionType":{"type":"string","nullable":true},"imageTagMutability":{"type":"string","nullable":true},"kmsKeyPresent":{"type":"boolean"},"registryId":{"type":"string"},"repositoryArn":{"type":"string"},"repositoryName":{"type":"string"},"repositoryUri":{"type":"string"},"scanOnPush":{"type":"boolean","nullable":true}},"required":["createdAt","kmsKeyPresent","registryId","repositoryArn","repositoryName","repositoryUri"]}},"repositoriesTruncated":{"type":"boolean"},"repositoryCount":{"type":"integer","minimum":0},"repositoryPrefix":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["region","registryId","registryUri","repositories","repositoriesTruncated","repositoryCount","repositoryPrefix","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsEcr"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cleanupPolicyCount":{"type":"integer","minimum":0},"cleanupPolicyDryRun":{"type":"boolean","nullable":true},"createTime":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"format":{"type":"string","nullable":true},"iamBindingCount":{"type":"integer","minimum":0},"iamPolicyEtagPresent":{"type":"boolean"},"iamRoles":{"type":"array","items":{"type":"string"}},"kmsKeyNamePresent":{"type":"boolean"},"labelCount":{"type":"integer","minimum":0},"location":{"type":"string"},"mode":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"projectId":{"type":"string"},"pullServiceAccountEmail":{"type":"string","nullable":true},"pushServiceAccountEmail":{"type":"string","nullable":true},"repositoryId":{"type":"string"},"satisfiesPzs":{"type":"boolean","nullable":true},"sizeBytes":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updateTime":{"type":"string","nullable":true}},"required":["cleanupPolicyCount","iamBindingCount","iamPolicyEtagPresent","iamRoles","kmsKeyNamePresent","labelCount","location","projectId","repositoryId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpArtifactRegistry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"adminUserEnabled":{"type":"boolean"},"anonymousPullEnabled":{"type":"boolean"},"creationDate":{"type":"string","nullable":true},"dataEndpointEnabled":{"type":"boolean","nullable":true},"dataEndpointHostNames":{"type":"array","items":{"type":"string"}},"encryptionKeyIdentifierPresent":{"type":"boolean"},"encryptionKeyVaultUriPresent":{"type":"boolean"},"encryptionStatus":{"type":"string","nullable":true},"ipRuleCount":{"type":"integer","minimum":0},"location":{"type":"string"},"loginServer":{"type":"string","nullable":true},"managedTagCount":{"type":"integer","minimum":0},"name":{"type":"string"},"networkRuleBypassOptions":{"type":"string"},"networkRuleDefaultAction":{"type":"string","nullable":true},"policiesPresent":{"type":"boolean"},"policyCount":{"type":"integer","minimum":0},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string"},"resourceGroup":{"type":"string"},"resourceId":{"type":"string","nullable":true},"skuName":{"type":"string"},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"type":{"type":"string","nullable":true},"zoneRedundancy":{"type":"string"}},"required":["adminUserEnabled","anonymousPullEnabled","dataEndpointHostNames","encryptionKeyIdentifierPresent","encryptionKeyVaultUriPresent","ipRuleCount","location","managedTagCount","name","networkRuleBypassOptions","policiesPresent","policyCount","privateEndpointConnectionCount","publicNetworkAccess","resourceGroup","skuName","status","zoneRedundancy"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerRegistry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"reachable":{"type":"boolean"},"registryUrl":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["reachable","registryUrl","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["artifact-registry"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"artifactsEncryptionDisabled":{"type":"boolean","nullable":true},"artifactsType":{"type":"string","nullable":true},"cloudWatchLogsStatus":{"type":"string","nullable":true},"computeType":{"type":"string","nullable":true},"created":{"type":"number","nullable":true},"description":{"type":"string","nullable":true},"encryptionKeyPresent":{"type":"boolean"},"environmentImage":{"type":"string","nullable":true},"environmentType":{"type":"string","nullable":true},"environmentVariableCount":{"type":"integer","minimum":0},"imagePullCredentialsType":{"type":"string","nullable":true},"lastModified":{"type":"number","nullable":true},"privilegedMode":{"type":"boolean","nullable":true},"projectArn":{"type":"string","nullable":true},"projectName":{"type":"string"},"queuedTimeoutInMinutes":{"type":"integer","nullable":true},"s3LogsStatus":{"type":"string","nullable":true},"serviceRolePresent":{"type":"boolean"},"sourceType":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"timeoutInMinutes":{"type":"integer","nullable":true}},"required":["encryptionKeyPresent","environmentVariableCount","projectName","serviceRolePresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsCodeBuild"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"buildConfigId":{"type":"string"},"environmentVariableCount":{"type":"integer","minimum":0},"location":{"type":"string"},"projectId":{"type":"string"},"serviceAccount":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["buildConfigId","environmentVariableCount","location","projectId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudBuild"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"environmentVariableCount":{"type":"integer","minimum":0},"managedEnvironmentId":{"type":"string"},"managedIdentityId":{"type":"string","nullable":true},"resourceGroupName":{"type":"string"},"resourcePrefix":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["environmentVariableCount","managedEnvironmentId","resourceGroupName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerApps"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"active":{"type":"integer","nullable":true},"completionTime":{"type":"string","nullable":true,"format":"date-time"},"conditionCount":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"failed":{"type":"integer","nullable":true},"imageDigest":{"type":"string","nullable":true},"jobName":{"type":"string"},"namespace":{"type":"string"},"startTime":{"type":"string","nullable":true,"format":"date-time"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"succeeded":{"type":"integer","nullable":true}},"required":["conditionCount","events","jobName","namespace","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetesJob"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["build"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"enabled":{"type":"boolean"},"lastOperationName":{"type":"string","nullable":true},"projectId":{"type":"string"},"serviceName":{"type":"string"},"serviceResourceName":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"title":{"type":"string","nullable":true}},"required":["enabled","projectId","serviceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceUsage"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"type":"string"},"providerId":{"type":"string","nullable":true},"registered":{"type":"boolean"},"registrationPolicy":{"type":"string","nullable":true},"registrationState":{"type":"string","nullable":true},"resourceTypeCount":{"type":"integer","minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["namespace","registered","resourceTypeCount","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureResourceProvider"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["service_activation"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"location":{"type":"string","nullable":true},"managedTags":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"name":{"type":"string"},"provisioningState":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["managedTags","name","status"]},"resourceType":{"type":"string","enum":["azure_resource_group"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"allowBlobPublicAccess":{"type":"boolean","nullable":true},"allowSharedKeyAccess":{"type":"boolean","nullable":true},"encryptionKeySource":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"minimumTlsVersion":{"type":"string","nullable":true},"name":{"type":"string"},"networkBypass":{"type":"string","nullable":true},"networkDefaultAction":{"type":"string","nullable":true},"networkIpRuleCount":{"type":"integer","nullable":true,"minimum":0},"networkResourceAccessRuleCount":{"type":"integer","nullable":true,"minimum":0},"networkVirtualNetworkRuleCount":{"type":"integer","nullable":true,"minimum":0},"primaryEndpoints":{"type":"object","properties":{"blob":{"type":"string","nullable":true},"dfs":{"type":"string","nullable":true},"file":{"type":"string","nullable":true},"queue":{"type":"string","nullable":true},"table":{"type":"string","nullable":true},"web":{"type":"string","nullable":true}}},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"requireInfrastructureEncryption":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"secondaryEndpoints":{"type":"object","properties":{"blob":{"type":"string","nullable":true},"dfs":{"type":"string","nullable":true},"file":{"type":"string","nullable":true},"queue":{"type":"string","nullable":true},"table":{"type":"string","nullable":true},"web":{"type":"string","nullable":true}}},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"supportsHttpsTrafficOnly":{"type":"boolean","nullable":true}},"required":["name","primaryEndpoints","secondaryEndpoints","status"]},"resourceType":{"type":"string","enum":["azure_storage_account"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"customDomainVerificationId":{"type":"string","nullable":true},"defaultDomain":{"type":"string","nullable":true},"eventStreamEndpoint":{"type":"string","nullable":true},"infrastructureResourceGroup":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"name":{"type":"string"},"provisioningState":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"staticIp":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workloadProfileCount":{"type":"integer","minimum":0},"workloadProfiles":{"type":"array","items":{"type":"object","properties":{"maximumCount":{"type":"integer","nullable":true},"minimumCount":{"type":"integer","nullable":true},"name":{"type":"string"},"workloadProfileType":{"type":"string"}},"required":["name","workloadProfileType"]}},"zoneRedundant":{"type":"boolean","nullable":true}},"required":["name","status","workloadProfileCount","workloadProfiles"]},"resourceType":{"type":"string","enum":["azure_container_apps_environment"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"createdAt":{"type":"string","nullable":true},"disableLocalAuth":{"type":"boolean","nullable":true},"location":{"type":"string","nullable":true},"metricId":{"type":"string","nullable":true},"minimumTlsVersion":{"type":"string","nullable":true},"name":{"type":"string"},"namespaceStatus":{"type":"string","nullable":true},"premiumMessagingPartitions":{"type":"integer","nullable":true},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"serviceBusEndpoint":{"type":"string","nullable":true},"skuCapacity":{"type":"integer","nullable":true},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updatedAt":{"type":"string","nullable":true},"zoneRedundant":{"type":"boolean","nullable":true}},"required":["name","privateEndpointConnectionCount","status"]},"resourceType":{"type":"string","enum":["azure_service_bus_namespace"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"region":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["region","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsBedrock"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string"},"project":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["location","project","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpVertex"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"type":"string"},"endpoint":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["accountName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureFoundry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"provider":{"type":"string","description":"The BYO-key provider serving this binding (e.g. \"openai\"). Used on the Local\nplatform, where the app brings its own provider key instead of an ambient cloud."},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["provider","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["external"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["ai"]}},"required":["data","resourceType"]}]},"deploymentId":{"type":"string","nullable":true},"observedAt":{"type":"string","format":"date-time"},"raw":{"type":"array","items":{"type":"object","properties":{"body":{"type":"string"},"collectedAt":{"type":"string","format":"date-time"},"format":{"type":"string","enum":["json","yaml","text"]},"source":{"type":"string"},"truncated":{"type":"boolean"}},"required":["body","collectedAt","format","source","truncated"]}},"resourceId":{"type":"string","description":"Alien resource id, such as the `alien.Container` or `alien.Storage`\nresource id from the stack."},"resourceType":{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior."}},"required":["backend","controllerPlatform","data","observedAt","raw","resourceId","resourceType"]},"description":"Latest typed resource heartbeats collected during this step."},"observedInventoryBatches":{"type":"array","items":{"type":"object","properties":{"backend":{"type":"string","enum":["aws","gcp","azure","kubernetes","local","managed","external","test"],"description":"Backend whose observer produced this snapshot."},"complete":{"type":"boolean","description":"Whether this batch is a complete replacement for the scope. Complete\nbatches tombstone previously observed rows in the same scope when they\nare absent from `resources`."},"controllerPlatform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"inventoryScope":{"type":"string","description":"Stable scope for the provider list operation that produced this batch."},"observedAt":{"type":"string","format":"date-time","description":"Time the inventory scope was observed."},"resources":{"type":"array","items":{"type":"object","properties":{"alienResourceId":{"type":"string","nullable":true},"attributes":{"type":"object","properties":{},"additionalProperties":{"nullable":true}},"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"counts":{"oneOf":[{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},{"nullable":true}]},"deploymentId":{"type":"string","nullable":true},"displayName":{"type":"string"},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerKind":{"type":"string","description":"Provider-native kind, such as `apps/v1/Deployment`,\n`AWS::S3::Bucket`, `storage.googleapis.com/Bucket`, or an Azure\nresource type."},"providerStale":{"type":"boolean"},"raw":{"type":"array","items":{"type":"object","properties":{"body":{"type":"string"},"collectedAt":{"type":"string","format":"date-time"},"format":{"type":"string","enum":["json","yaml","text"]},"source":{"type":"string"},"truncated":{"type":"boolean"}},"required":["body","collectedAt","format","source","truncated"]}},"rawIdentity":{"type":"string","description":"Provider-native stable identity: Kubernetes object identity, cloud ARN,\nGCP full resource name, Azure resource id, etc."},"region":{"type":"string","nullable":true},"resourceTypeHint":{"oneOf":[{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior."},{"nullable":true}]},"scope":{"type":"string","nullable":true},"version":{"type":"string","nullable":true,"description":"Release/version identity observed from the provider resource, when available."}},"required":["displayName","health","lifecycle","partial","providerKind","providerStale","rawIdentity"]}},"sourceKind":{"type":"string","description":"Writer/source for this inventory pass, such as `operator` or\n`manager-observer`."}},"required":["backend","complete","controllerPlatform","inventoryScope","observedAt","resources","sourceKind"]},"description":"Observed raw-resource inventory batches read during this step."},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/OperatorCapabilityReport"},"description":"Operator-reported runtime capabilities."},"operatorVersion":{"type":"string","minLength":1,"maxLength":128,"description":"Operator binary version reported by the runtime."}},"required":["deploymentId","state"],"additionalProperties":false,"description":"Request to reconcile deployment state"},"SyncRenewRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Single deployment to renew. Deprecated: use deploymentIds. Retained so a manager built against the previous API keeps renewing during rollout.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"deploymentIds":{"type":"array","items":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"minItems":1,"maxItems":100,"description":"Deployments to renew or confirm. Renewal is per deployment: the response reports each one independently."},"session":{"type":"string","minLength":1}},"required":["session"],"additionalProperties":false},"SyncReleaseRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Deployment ID to release","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"session":{"type":"string","description":"Session identifier to release"}},"required":["deploymentId","session"],"additionalProperties":false,"description":"Request to release deployment lock"},"ResolveResponse":{"type":"object","properties":{"managerId":{"type":"string","description":"Manager ID"},"managerName":{"type":"string","description":"Manager display name"},"managerUrl":{"type":"string","format":"uri","description":"Manager URL"},"managerIsSystem":{"type":"boolean","description":"Whether the manager is Alien-hosted"},"managerCloud":{"type":"string","nullable":true,"enum":["aws","gcp","azure","kubernetes","machines","local","test",null],"description":"Cloud where the private manager is hosted. Null for Alien-hosted managers."},"projectId":{"type":"string","description":"Resolved project ID"},"installContext":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]}],"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."}},"required":["platform","managementConfig"],"description":"Target install context derived from platform-managed manager metadata. Present for cloud push platforms."}},"required":["managerId","managerName","managerUrl","managerIsSystem","projectId"]},"CloudRegionsResponse":{"type":"object","properties":{"supportedRegions":{"$ref":"#/components/schemas/SupportedCloudRegions"}},"required":["supportedRegions"]},"BillingAuditLogRow":{"type":"object","properties":{"id":{"type":"string"},"workspaceId":{"type":"string","nullable":true},"action":{"type":"string"},"payload":{"nullable":true},"createdAt":{"type":"string"}},"required":["id","workspaceId","action","createdAt"]},"WorkspaceBillingEntitlements":{"type":"object","properties":{"planId":{"$ref":"#/components/schemas/PlanId"},"planStatus":{"$ref":"#/components/schemas/BillingPlanStatus"},"features":{"$ref":"#/components/schemas/BillingFeatureFlags"},"limits":{"$ref":"#/components/schemas/BillingLimits"},"syncedAt":{"type":"string","nullable":true,"format":"date-time"},"stale":{"type":"boolean"}},"required":["planId","planStatus","features","limits","syncedAt","stale"]},"PlanId":{"type":"string","enum":["starter","pro","pro_annual","enterprise"]},"BillingPlanStatus":{"type":"string","enum":["active","trialing","past_due","canceled","none"]},"BillingFeatureFlags":{"type":"object","properties":{"custom_domains":{"type":"boolean"},"private_managers":{"type":"boolean"},"sso_saml":{"type":"boolean"},"audit_logs":{"type":"boolean"},"airgapped":{"type":"boolean"}},"required":["custom_domains","private_managers","sso_saml","audit_logs","airgapped"]},"BillingLimits":{"type":"object","properties":{"maxDeployments":{"type":"number","nullable":true},"maxProjects":{"type":"number","nullable":true},"maxSeats":{"type":"number","nullable":true},"maxCustomDomains":{"type":"number","nullable":true},"creditUsd":{"type":"number","nullable":true},"seatsIncluded":{"type":"number","nullable":true}},"required":["maxDeployments","maxProjects","maxSeats","maxCustomDomains","creditUsd","seatsIncluded"]}},"parameters":{}},"paths":{"/v1/invitations/{token}":{"get":{"operationId":"getWorkspaceInvitationPreview","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"token","in":"path"}],"responses":{"200":{"description":"Invitation preview.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInvitationPreview"}}}},"404":{"description":"Invitation not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/memberships":{"get":{"operationId":"listMemberships","description":"List all workspaces the current user has access to.","x-speakeasy-group":"user","x-speakeasy-name-override":"listMemberships","responses":{"200":{"description":"List of user's workspaces.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Membership"}}},"required":["items"]}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/profile":{"get":{"operationId":"getUserProfile","description":"Get the current user's profile and user-scoped onboarding state.","x-speakeasy-group":"user","x-speakeasy-name-override":"getProfile","responses":{"200":{"description":"User profile.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfile"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateUserProfile","description":"Update the current user's profile (display name).","x-speakeasy-group":"user","x-speakeasy-name-override":"updateProfile","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Display name"}}}}}},"responses":{"200":{"description":"Profile updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfile"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/profile/setup":{"post":{"operationId":"completeUserProfileSetup","description":"Complete the required beta intake and profile setup dialog.","x-speakeasy-group":"user","x-speakeasy-name-override":"completeProfileSetup","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfileSetupRequest"}}}},"responses":{"200":{"description":"Profile setup completed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfile"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/workspaces":{"post":{"operationId":"createWorkspace","description":"Create a new workspace. The current user will be automatically added as an admin.","x-speakeasy-group":"user","x-speakeasy-name-override":"createWorkspace","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name"},"logoUrl":{"type":"string","format":"uri","description":"Optional workspace logo URL"}},"required":["name"]}}}},"responses":{"201":{"description":"Created workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Membership"}}}},"400":{"description":"Bad request - invalid workspace name.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Workspace name already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/git-namespaces":{"get":{"operationId":"listGitNamespaces","description":"List all git namespaces (GitHub installations) the current user has access to.","x-speakeasy-group":"user","x-speakeasy-name-override":"listGitNamespaces","parameters":[{"schema":{"type":"string","enum":["github"],"default":"github"},"required":false,"name":"provider","in":"query"}],"responses":{"200":{"description":"List of user's git namespaces.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GitNamespace"}}},"required":["items"]}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/git-namespaces/sync":{"post":{"operationId":"syncGitNamespaces","description":"Sync git namespaces from the provider. For GitHub, this fetches all app installations accessible to the user.","x-speakeasy-group":"user","x-speakeasy-name-override":"syncGitNamespaces","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"provider":{"type":"string","enum":["github"],"description":"Git provider to sync"}},"required":["provider"]}}}},"responses":{"200":{"description":"Synced git namespaces.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GitNamespace"}}},"required":["items"]}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/git-namespaces/{id}/repositories":{"get":{"operationId":"listGitNamespaceRepositories","description":"List repositories accessible through a git namespace (GitHub installation).","x-speakeasy-group":"user","x-speakeasy-name-override":"listGitNamespaceRepositories","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","description":"Search query to filter repositories by name"},"required":false,"description":"Search query to filter repositories by name","name":"search","in":"query"}],"responses":{"200":{"description":"List of repositories.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GitRepository"}}},"required":["items"]}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Git namespace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/invitations/{token}/accept":{"post":{"operationId":"acceptWorkspaceInvitation","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"token","in":"path"}],"responses":{"200":{"description":"Invitation accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptWorkspaceInvitationResponse"}}}},"404":{"description":"Invitation not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Invitation unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/whoami":{"get":{"operationId":"whoami","description":"Get the current authenticated principal (user or service account). Works with both session cookies and API keys.","x-speakeasy-group":"auth","x-speakeasy-name-override":"whoami","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace to resolve the principal in. Required for user credentials because a user's role is per-workspace. Service accounts carry their workspace in the credential and may omit it.","example":"my-workspace"},"required":false,"description":"Workspace to resolve the principal in. Required for user credentials because a user's role is per-workspace. Service accounts carry their workspace in the credential and may omit it.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Current authenticated principal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Subject"}}}},"400":{"description":"Missing required workspace for user credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces":{"get":{"operationId":"listWorkspaces","description":"Retrieve all workspaces.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","description":"Search workspaces by name"},"required":false,"description":"Search workspaces by name","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved workspaces.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Workspace"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}":{"get":{"operationId":"getWorkspace","description":"Retrieve a workspace by ID.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workspace"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateWorkspace","description":"Update a workspace.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"update","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"logoUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"}}}}}},"responses":{"200":{"description":"Workspace updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workspace"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteWorkspace","description":"Delete a workspace. The workspace must have no projects.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"delete","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Workspace deleted successfully."},"400":{"description":"Workspace still has projects.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/members":{"get":{"operationId":"listWorkspaceMembers","description":"List all members of a workspace.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"listMembers","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"List of workspace members.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceMember"}}},"required":["items"]}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"addWorkspaceMember","description":"Add a member to a workspace by email. The user must already have an account.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"addMember","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"Email of the user to add"},"role":{"allOf":[{"$ref":"#/components/schemas/WorkspaceRole"},{"description":"Role to assign"}]}},"required":["email","role"]}}}},"responses":{"201":{"description":"Member added successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceMember"}}}},"404":{"description":"Workspace or user not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"User is already a member.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/members/{userId}":{"patch":{"operationId":"updateWorkspaceMember","description":"Update a workspace member's role.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"updateMember","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"userId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"allOf":[{"$ref":"#/components/schemas/WorkspaceRole"},{"description":"New role to assign"}]}},"required":["role"]}}}},"responses":{"200":{"description":"Member role updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceMember"}}}},"400":{"description":"Cannot remove last admin.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Workspace or member not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"removeWorkspaceMember","description":"Remove a member from a workspace.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"removeMember","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"userId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Member removed successfully."},"400":{"description":"Cannot remove last admin or self.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Workspace or member not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/dismiss-onboarding":{"post":{"operationId":"dismissWorkspaceOnboarding","description":"Mark the Getting Started walkthrough as dismissed for a workspace. The dashboard stops auto-promoting onboarding once this is set; users can still re-enter the walkthrough via the help menu.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"dismissOnboarding","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Workspace with onboardingDismissedAt populated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workspace"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/settings":{"get":{"operationId":"getWorkspaceSettings","description":"Read the ai-agent settings for a workspace. Returns defaults (`enabled: true`, `debugPermissionMode: auto`) when the workspace has never customized them.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"getSettings","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Workspace ai-agent settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSettings"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateWorkspaceSettings","description":"Update the ai-agent settings for a workspace. Supports `debugPermissionMode` (`ask` requires human approval on every ai-agent debug command, `auto` runs them without asking) and `enabled` (`false` turns the ai-agent off so incoming triggers are rejected before any session runs).","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"updateSettings","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkspaceSettingsRequest"}}}},"responses":{"200":{"description":"Updated ai-agent settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSettings"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/invitations":{"get":{"operationId":"listWorkspaceInvitations","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Pending invitations.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceInvitation"}}},"required":["items"]}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createWorkspaceInvitation","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"role":{"$ref":"#/components/schemas/WorkspaceRole"}},"required":["email","role"]}}}},"responses":{"201":{"description":"Invitation created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInvitation"}}}},"403":{"description":"Seat limit reached.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Invitation already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/invitations/{invitationId}/resend":{"post":{"operationId":"resendWorkspaceInvitation","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"invitationId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Invitation email sent again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInvitation"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/invitations/{invitationId}":{"delete":{"operationId":"revokeWorkspaceInvitation","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"invitationId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Invitation revoked."},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/invite-link":{"get":{"operationId":"getWorkspaceInviteLink","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Active invite link.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInviteLink"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"put":{"operationId":"createWorkspaceInviteLink","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/WorkspaceRole"}},"required":["role"]}}}},"responses":{"200":{"description":"Invite link created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInviteLink"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"revokeWorkspaceInviteLink","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Invite link revoked."},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects":{"get":{"operationId":"listProjects","description":"Retrieve all projects.","x-speakeasy-group":"projects","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","description":"Search projects by name"},"required":false,"description":"Search projects by name","name":"search","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["deploymentCount","latestRelease"]},"description":"Optional fields to include: deploymentCount, latestRelease"},"required":false,"description":"Optional fields to include: deploymentCount, latestRelease","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved projects.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ProjectListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createProject","description":"Create a new project.","x-speakeasy-group":"projects","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Project name.","example":"my-app"},"gitRepository":{"type":"object","nullable":true,"properties":{"type":{"type":"string","enum":["github"],"description":"The Git Provider of the repository","example":"github"},"repo":{"type":"string","maxLength":128,"description":"The name of the git repository","example":"alien/my-agent"}},"required":["type","repo"],"additionalProperties":false,"description":"Verified source repository connected to the project. Alien uses this for GitHub Actions setup and source-aware features; releases are still created explicitly by CI or `alien release`."},"rootDirectory":{"type":"string","nullable":true,"maxLength":256,"description":"The name of a directory or relative path to the source code of your project. When null is used it will default to the project root"},"packagesConfig":{"type":"object","nullable":true,"properties":{"cli":{"type":"object","nullable":true,"properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"},"enabled":{"type":"boolean","description":"Whether CLI package generation is enabled"}},"required":["displayName","name","enabled"],"description":"CLI package configuration. If null, CLI packages will not be generated."},"cloudformation":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether CloudFormation package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"CloudFormation package configuration. If null, CloudFormation packages will not be generated."},"operatorImage":{"type":"object","nullable":true,"properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"},"enabled":{"type":"boolean","description":"Whether Operator image package generation is enabled"}},"required":["displayName","name","enabled"],"description":"Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated."},"helm":{"type":"object","nullable":true,"properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"},"enabled":{"type":"boolean","description":"Whether Helm chart package generation is enabled"}},"required":["chartName","description","enabled"],"description":"Helm chart package configuration. If null, Helm packages will not be generated."},"terraform":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether Terraform package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"Terraform package configuration. If null, Terraform packages will not be generated."}},"description":"Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform)"}},"required":["name"]}}}},"responses":{"201":{"description":"Project created successfully.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Project"},{"type":"object","properties":{"githubSetup":{"type":"object","properties":{"pullRequestUrl":{"type":"string","format":"uri","description":"URL to the pull request with the Alien build workflow"},"workflowUrl":{"type":"string","format":"uri","description":"URL to the GitHub Actions workflow"}},"required":["pullRequestUrl","workflowUrl"]},"gitRepositoryWarning":{"$ref":"#/components/schemas/APIError"}}}]}}}},"400":{"description":"Invalid request or GitHub repository connection failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Insufficient permissions or plan limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Project name already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}":{"get":{"operationId":"getProject","description":"Retrieve a project by ID or name.","x-speakeasy-group":"projects","x-speakeasy-name-override":"get","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved project.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateProject","description":"Update a project.","x-speakeasy-group":"projects","x-speakeasy-name-override":"update","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProject"}}}},"responses":{"200":{"description":"Project updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteProject","description":"Delete a project. The project must have no deployments.","x-speakeasy-group":"projects","x-speakeasy-name-override":"delete","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Project deleted successfully."},"400":{"description":"Project still has deployments.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/gcp-oauth-provider":{"get":{"operationId":"getProjectGcpOAuthProvider","description":"Retrieve redacted project-level Google Cloud OAuth provider settings.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getGcpOAuthProvider","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved Google Cloud OAuth provider settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectGcpOAuthProvider"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"put":{"operationId":"updateProjectGcpOAuthProvider","description":"Update project-level Google Cloud OAuth provider settings.","x-speakeasy-group":"projects","x-speakeasy-name-override":"updateGcpOAuthProvider","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProjectGcpOAuthProvider"}}}},"responses":{"200":{"description":"Google Cloud OAuth provider settings updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectGcpOAuthProvider"}}}},"400":{"description":"Invalid provider settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/deployment-portal-domain":{"get":{"operationId":"getProjectDeploymentPortalDomain","description":"Get the deployment portal domain binding for a project.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getDeploymentPortalDomain","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved deployment portal domain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentPortalDomainResponse"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/import-template":{"post":{"operationId":"createProjectFromTemplate","description":"Create a project by forking alienplatform/alien into your namespace, then configuring GitHub Actions.","x-speakeasy-group":"projects","x-speakeasy-name-override":"createFromTemplate","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Project name.","example":"my-app"},"targetNamespace":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-zA-Z0-9-]+$","description":"GitHub owner namespace (user or organization) that will receive the fork"},"templatePath":{"type":"string","enum":["examples/remote-worker-ts","examples/github-agent/packages/remote-agent","examples/endpoint-agent","examples/byoc-database"],"description":"Template root directory inside alienplatform/alien"},"rootDirectory":{"type":"string","nullable":true,"maxLength":256,"description":"The name of a directory or relative path to the source code of your project. When null is used it will default to the project root"},"packagesConfig":{"type":"object","nullable":true,"properties":{"cli":{"type":"object","nullable":true,"properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"},"enabled":{"type":"boolean","description":"Whether CLI package generation is enabled"}},"required":["displayName","name","enabled"],"description":"CLI package configuration. If null, CLI packages will not be generated."},"cloudformation":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether CloudFormation package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"CloudFormation package configuration. If null, CloudFormation packages will not be generated."},"operatorImage":{"type":"object","nullable":true,"properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"},"enabled":{"type":"boolean","description":"Whether Operator image package generation is enabled"}},"required":["displayName","name","enabled"],"description":"Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated."},"helm":{"type":"object","nullable":true,"properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"},"enabled":{"type":"boolean","description":"Whether Helm chart package generation is enabled"}},"required":["chartName","description","enabled"],"description":"Helm chart package configuration. If null, Helm packages will not be generated."},"terraform":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether Terraform package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"Terraform package configuration. If null, Terraform packages will not be generated."}},"description":"Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform)"}},"required":["name","targetNamespace","templatePath"]}}}},"responses":{"201":{"description":"Project created successfully from template.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Project"},{"type":"object","properties":{"githubSetup":{"type":"object","properties":{"pullRequestUrl":{"type":"string","format":"uri","description":"URL to the pull request with the Alien build workflow"},"workflowUrl":{"type":"string","format":"uri","description":"URL to the GitHub Actions workflow"}},"required":["pullRequestUrl","workflowUrl"]},"gitRepositoryWarning":{"$ref":"#/components/schemas/APIError"},"template":{"type":"object","properties":{"sourceRepository":{"type":"string","enum":["alienplatform/alien"]},"forkRepository":{"type":"string","description":"Fork repository in / format"},"templatePath":{"type":"string","enum":["examples/remote-worker-ts","examples/github-agent/packages/remote-agent","examples/endpoint-agent","examples/byoc-database"],"description":"Template root directory inside alienplatform/alien"},"resolvedRootDirectory":{"type":"string"}},"required":["sourceRepository","forkRepository","templatePath","resolvedRootDirectory"]}},"required":["template"]}]}}}},"400":{"description":"Bad request or GitHub integration not installed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Project name already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"Fork exists but is not ready yet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/template-urls":{"get":{"operationId":"getProjectTemplateUrls","description":"Get template URLs for deploying setup stacks in this project.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getTemplateUrls","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Template URLs retrieved successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"aws":{"type":"object","nullable":true,"properties":{"templateUrl":{"type":"string","format":"uri","description":"URL to download the CloudFormation template"},"launchStackUrl":{"type":"string","format":"uri","description":"URL to launch the template in the AWS CloudFormation console"}},"required":["templateUrl","launchStackUrl"],"description":"Template URLs for deploying an AWS setup stack"}}}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/deployment-link-setup":{"get":{"operationId":"getProjectDeploymentLinkSetup","description":"Get the active release stack and portal-visible setup availability for deployment-link configuration.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getDeploymentLinkSetup","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Deployment-link setup retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentLinkSetupResponse"}}}},"404":{"description":"Project or active release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/active-release":{"get":{"operationId":"getProjectActiveRelease","description":"Get the production channel's current release. When deploymentId is provided, returns that deployment's effective release: its pin, or its followed channel's current release.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getActiveRelease","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","description":"Optional deployment ID to check for pinned release"},"required":false,"description":"Optional deployment ID to check for pinned release","name":"deploymentId","in":"query"}],"responses":{"200":{"description":"Effective release retrieved successfully.","content":{"application/json":{"schema":{"nullable":true}}}},"404":{"description":"Project or effective release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups":{"post":{"operationId":"createDeploymentGroup","tags":["deployment-groups"],"summary":"Create a new deployment group","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentGroupRequest"}}}},"responses":{"200":{"description":"Deployment group created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment group with this name already exists in the project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"listDeploymentGroups","tags":["deployment-groups"],"summary":"List deployment groups","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","description":"Search deployment groups by name"},"required":false,"description":"Search deployment groups by name","name":"search","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["project"]},"description":"Optional fields to include: project"},"required":false,"description":"Optional fields to include: project","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"List of deployment groups","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/DeploymentGroup"},{"type":"object","properties":{"project":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"Project ID"},"name":{"type":"string","description":"Project name"}},"required":["id","name"],"description":"Project info, included when ?include=project is used"}}}]},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/by-name":{"put":{"operationId":"ensureDeploymentGroupByName","tags":["deployment-groups"],"summary":"Get or create a deployment group by project and name","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnsureDeploymentGroupByNameRequest"}}}},"responses":{"200":{"description":"Deployment group returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/{id}":{"get":{"operationId":"getDeploymentGroup","tags":["deployment-groups"],"summary":"Get deployment group details","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["project"]},"description":"Optional fields to include: project"},"required":false,"description":"Optional fields to include: project","name":"include","in":"query"}],"responses":{"200":{"description":"Deployment group details","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DeploymentGroup"},{"type":"object","properties":{"project":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"Project ID"},"name":{"type":"string","description":"Project name"}},"required":["id","name"],"description":"Project info, included when ?include=project is used"},"deploymentCount":{"type":"integer","description":"Current number of deployments in this deployment group"}},"required":["deploymentCount"]}]}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateDeploymentGroup","tags":["deployment-groups"],"summary":"Update deployment group","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentGroupRequest"}}}},"responses":{"200":{"description":"Deployment group updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment group name already exists in the project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteDeploymentGroup","tags":["deployment-groups"],"summary":"Delete deployment group","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Deployment group deleted successfully"},"400":{"description":"Cannot delete deployment group that has deployments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/{id}/tokens":{"post":{"operationId":"createDeploymentGroupToken","tags":["deployment-groups"],"summary":"Create deployment group token","description":"Creates a deployment-group scoped API key and returns both the token and formatted deployment link","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentGroupTokenRequest"}}}},"responses":{"200":{"description":"Deployment group token created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentGroupTokenResponse"}}}},"400":{"description":"Deployment setup configuration is invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/{id}/first-party-session":{"post":{"operationId":"createFirstPartyDeploymentSession","tags":["deployment-groups"],"summary":"Create first-party deployment session","description":"Mints a short-lived deployment-group token with the recommended self-deploy policy for the authenticated developer.","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"First-party deployment session created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFirstPartyDeploymentSessionResponse"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/packages":{"get":{"operationId":"listPackages","description":"List packages with optional filters. Returns packages ordered by creation date (newest first).","x-speakeasy-group":"packages","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","enum":["cli","cloudformation","helm","operator-image","terraform"],"description":"Filter by package type"},"required":false,"description":"Filter by package type","name":"type","in":"query"},{"schema":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Filter by package status"},"required":false,"description":"Filter by package status","name":"status","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search packages by type or version"},"required":false,"description":"Search packages by type or version","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"List of packages.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Package"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/packages/{id}":{"get":{"operationId":"getPackage","description":"Get details of a specific package.","x-speakeasy-group":"packages","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"pkg_[0-9a-z]{28}$","description":"Unique identifier for the package.","example":"pkg_jebo2o5jmm7raefl2m1pe3cz"},"required":true,"description":"Unique identifier for the package.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Package details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Package"}}}},"404":{"description":"Package not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/packages/rebuild":{"post":{"operationId":"rebuildPackages","description":"Rebuild packages for a project. This will cancel any pending packages and create new ones with auto-incremented versions.","x-speakeasy-group":"packages","x-speakeasy-name-override":"rebuild","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"project":{"type":"string","maxLength":100,"description":"Project ID or name to rebuild packages for"}},"required":["project"]}}}},"responses":{"200":{"description":"Packages rebuilt successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"packagesCreated":{"type":"integer","description":"Number of packages created"}},"required":["packagesCreated"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/packages/{id}/cancel":{"post":{"operationId":"cancelPackage","description":"Cancel a pending or building package.","x-speakeasy-group":"packages","x-speakeasy-name-override":"cancel","parameters":[{"schema":{"type":"string","pattern":"pkg_[0-9a-z]{28}$","description":"Unique identifier for the package.","example":"pkg_jebo2o5jmm7raefl2m1pe3cz"},"required":true,"description":"Unique identifier for the package.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Package canceled successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Package"}}}},"400":{"description":"Package cannot be canceled (not in pending or building status).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Package not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases":{"get":{"operationId":"listReleases","description":"Retrieve all releases.","x-speakeasy-group":"releases","x-speakeasy-name-override":"list","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"}],"nullable":true},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","nullable":true,"minLength":1,"maxLength":63,"pattern":"^[a-z][a-z0-9-]*$","description":"Filter to releases promoted to this channel. Defaults to production."},"required":false,"description":"Filter to releases promoted to this channel. Defaults to production.","name":"channel","in":"query"},{"schema":{"type":"string","enum":["true","false"],"default":"false"},"required":false,"name":"allChannels","in":"query"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["project","rollout","createdBy"]},"description":"Optional fields to include: project, rollout"},"required":false,"description":"Optional fields to include: project, rollout","name":"include","in":"query"},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Search releases by commit message, branch, SHA, or release ID"},"required":false,"description":"Search releases by commit message, branch, SHA, or release ID","name":"search","in":"query"},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Filter by git branch (commitRef)"},"required":false,"description":"Filter by git branch (commitRef)","name":"branch","in":"query"},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Filter by commit author login or name"},"required":false,"description":"Filter by commit author login or name","name":"author","in":"query"},{"schema":{"type":"string","nullable":true,"format":"date-time","description":"Filter releases created after this date (ISO 8601)"},"required":false,"description":"Filter releases created after this date (ISO 8601)","name":"createdAfter","in":"query"},{"schema":{"type":"string","nullable":true,"format":"date-time","description":"Filter releases created before this date (ISO 8601)"},"required":false,"description":"Filter releases created before this date (ISO 8601)","name":"createdBefore","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved releases.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createRelease","description":"Create a new release.","x-speakeasy-group":"releases","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateReleaseRequest"}}}},"responses":{"201":{"description":"Release created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Release"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases/branches":{"get":{"operationId":"listReleaseBranches","description":"List distinct git branches across releases. Used for filter dropdowns.","x-speakeasy-group":"releases","x-speakeasy-name-override":"listBranches","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"allOf":[{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"}],"nullable":true},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Search branches by name (case-insensitive contains)"},"required":false,"description":"Search branches by name (case-insensitive contains)","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50,"description":"Maximum number of branches to return"},"required":false,"description":"Maximum number of branches to return","name":"limit","in":"query"}],"responses":{"200":{"description":"Retrieved distinct branches.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"string"}}},"required":["items"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases/authors":{"get":{"operationId":"listReleaseAuthors","description":"List distinct commit authors across releases. Used for filter dropdowns.","x-speakeasy-group":"releases","x-speakeasy-name-override":"listAuthors","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"allOf":[{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"}],"nullable":true},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Search authors by login or name (case-insensitive contains)"},"required":false,"description":"Search authors by login or name (case-insensitive contains)","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50,"description":"Maximum number of authors to return"},"required":false,"description":"Maximum number of authors to return","name":"limit","in":"query"}],"responses":{"200":{"description":"Retrieved distinct authors.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseAuthorFilterItem"}}},"required":["items"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases/{id}":{"get":{"operationId":"getRelease","description":"Retrieve a release by ID.","x-speakeasy-group":"releases","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"required":true,"description":"Unique identifier for the release.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["project","rollout","createdBy"]},"description":"Optional fields to include: project, rollout"},"required":false,"description":"Optional fields to include: project, rollout","name":"include","in":"query"}],"responses":{"200":{"description":"Retrieved release.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseListItemResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases/{id}/deployments":{"get":{"operationId":"listReleaseDeployments","description":"List the project's deployments with their rollout state relative to this release.","x-speakeasy-group":"releases","x-speakeasy-name-override":"listDeployments","parameters":[{"schema":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"required":true,"description":"Unique identifier for the release.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseRolloutState"},"description":"Filter deployments by rollout state"},"required":false,"description":"Filter deployments by rollout state","name":"state","in":"query"},{"schema":{"type":"string","description":"Filter by deployment group ID or name"},"required":false,"description":"Filter by deployment group ID or name","name":"deploymentGroup","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved release deployments.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseDeploymentsResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/release-channels":{"get":{"operationId":"listReleaseChannels","x-speakeasy-group":"releaseChannels","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"responses":{"200":{"description":"Project release channels.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseChannel"}}},"required":["items"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createReleaseChannel","x-speakeasy-group":"releaseChannels","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"$ref":"#/components/schemas/ReleaseChannelName"},"releaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Channel created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseChannel"}}}},"400":{"description":"Invalid release.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/release-channels/{name}/promote":{"post":{"operationId":"promoteRelease","x-speakeasy-group":"releases","x-speakeasy-name-override":"promote","parameters":[{"schema":{"$ref":"#/components/schemas/ReleaseChannelName"},"required":true,"name":"name","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"releaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"expectedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"}},"required":["releaseId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Release promoted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseChannel"}}}},"404":{"description":"Project, channel, or release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Channel changed concurrently.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/release-channels/{name}":{"delete":{"operationId":"deleteReleaseChannel","x-speakeasy-group":"releaseChannels","x-speakeasy-name-override":"delete","parameters":[{"schema":{"$ref":"#/components/schemas/ReleaseChannelName"},"required":true,"name":"name","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"responses":{"204":{"description":"Channel deleted."},"400":{"description":"Reserved channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project or channel not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Channel is still followed by deployments.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments":{"get":{"operationId":"listDeployments","description":"Retrieve all deployments.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"list","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","description":"Filter by deployment group ID or name"},"required":false,"description":"Filter by deployment group ID or name","name":"deploymentGroup","in":"query"},{"schema":{"type":"string","maxLength":100,"description":"Filter by exact deployment name. Must be used with deploymentGroup."},"required":false,"description":"Filter by exact deployment name. Must be used with deploymentGroup.","name":"name","in":"query"},{"schema":{"type":"string","description":"Filter by manager ID"},"required":false,"description":"Filter by manager ID","name":"managerId","in":"query"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search deployments by name, public subdomain, or deployment group name"},"required":false,"description":"Search deployments by name, public subdomain, or deployment group name","name":"search","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"description":"Filter deployments by status"},"required":false,"description":"Filter deployments by status","name":"status","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Filter deployments by effective environment"},"required":false,"description":"Filter deployments by effective environment","name":"environment","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["release","deploymentGroup","project"]},"description":"Optional fields to include: release, deploymentGroup, project"},"required":false,"description":"Optional fields to include: release, deploymentGroup, project","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved deployments.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"400":{"description":"Invalid deployment list filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createDeployment","description":"Create a new deployment. Deployment group tokens automatically use their group. Workspace/project tokens must provide deploymentGroupId.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewDeploymentRequest"}}}},"responses":{"200":{"description":"Existing deployment returned for idempotent deployment-group registration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentResponse"}}}},"201":{"description":"Deployment created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentResponse"}}}},"400":{"description":"Bad request - deployment group has reached max deployments limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Forbidden - insufficient permissions to create deployments in this context.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project or deployment group not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment with the specified ID already exists, or a deployment with the same name already exists in the deployment group.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/stats":{"get":{"operationId":"getDeploymentStats","description":"Get aggregated deployment statistics. Returns total count and breakdown by status.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"getStats","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","description":"Filter by deployment group ID or name"},"required":false,"description":"Filter by deployment group ID or name","name":"deploymentGroup","in":"query"},{"schema":{"type":"string","description":"Filter by manager ID"},"required":false,"description":"Filter by manager ID","name":"managerId","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Filter deployments by effective environment"},"required":false,"description":"Filter deployments by effective environment","name":"environment","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"description":"Filter deployments by status"},"required":false,"description":"Filter deployments by status","name":"status","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search deployments by name or deployment group name"},"required":false,"description":"Search deployments by name or deployment group name","name":"search","in":"query"}],"responses":{"200":{"description":"Deployment statistics retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentStats"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/filter-environments":{"get":{"operationId":"listDeploymentFilterEnvironments","description":"List distinct effective environments used by deployments. Used for filter dropdowns.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"listFilterEnvironments","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"responses":{"200":{"description":"Distinct environments retrieved.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."}}},"required":["items"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/filter-deployment-groups":{"get":{"operationId":"listDeploymentFilterDeploymentGroups","description":"List deployment groups with deployment counts. Used for filter dropdowns.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"listFilterDeploymentGroups","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Search deployment groups by name"},"required":false,"description":"Search deployment groups by name","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return"},"required":false,"description":"Maximum number of items to return","name":"limit","in":"query"}],"responses":{"200":{"description":"Deployment groups for filter retrieved.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string"},"deploymentCount":{"type":"number"},"runningCount":{"type":"number","description":"Number of deployments in 'running' status"},"failedCount":{"type":"number","description":"Number of deployments in a failed status"},"inProgressCount":{"type":"number","description":"Number of deployments in an in-progress status (provisioning, updating, etc.)"}},"required":["id","name","deploymentCount","runningCount","failedCount","inProgressCount"]}}},"required":["items"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}":{"get":{"operationId":"getDeployment","description":"Retrieve a deployment by ID.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["release","deploymentGroup","project"]},"description":"Optional fields to include: release, deploymentGroup, project"},"required":false,"description":"Optional fields to include: release, deploymentGroup, project","name":"include","in":"query"}],"responses":{"200":{"description":"Retrieved deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentDetailResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/info":{"get":{"operationId":"getDeploymentConnectionInfo","description":"Get deployment connection information including command endpoint and resource URLs.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"getInfo","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Deployment connection information.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentConnectionInfo"}}}},"400":{"description":"Deployment not ready (no manager assigned).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/import":{"post":{"operationId":"importDeployment","description":"Import a deployment from resolved setup infrastructure such as CloudFormation, Terraform, or Helm.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"import","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportDeploymentRequest"}}}},"responses":{"200":{"description":"Deployment import was idempotent and returned an existing deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deployment"}}}},"201":{"description":"Deployment imported and created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deployment"}}}},"409":{"description":"Deployment with the specified ID already exists, or a deployment with the same name already exists in the deployment group.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/first-party-inputs":{"put":{"operationId":"setFirstPartyDeploymentInputs","description":"Store operator-provided input values on a first-party deployment session token so CLI/local deploys apply them.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"setFirstPartyDeploymentInputs","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetFirstPartyDeploymentInputsRequest"}}}},"responses":{"200":{"description":"Input values stored on the session token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetFirstPartyDeploymentInputsResponse"}}}},"400":{"description":"A deployment-group token scope is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"The token is not a first-party deployment session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Failed to store input values.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/setup-registration-operations":{"post":{"operationId":"createSetupRegistrationOperation","description":"Start a durable setup registration operation for CloudFormation, Terraform, or Helm.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"createSetupRegistrationOperation","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSetupRegistrationOperationRequest"}}}},"responses":{"202":{"description":"Setup registration operation accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetupRegistrationOperationResponse"}}}},"400":{"description":"Invalid setup registration operation request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed before callback acceptance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/setup-registration-operations/{id}":{"get":{"operationId":"getSetupRegistrationOperation","description":"Get setup registration operation status.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"getSetupRegistrationOperation","parameters":[{"schema":{"type":"string","pattern":"setupop_[0-9a-z]{28}$","description":"Unique identifier for the setup registration operation.","example":"setupop_y41lqnfosxuwqkzmiax7"},"required":true,"description":"Unique identifier for the setup registration operation.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Setup registration operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetupRegistrationOperationResponse"}}}},"404":{"description":"Setup registration operation not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/delete":{"post":{"operationId":"deleteDeployment","description":"Delete, detach, or forget a deployment by ID.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"delete","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDeploymentRequest"}}}},"responses":{"202":{"description":"Deployment deletion request accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDeploymentResponse"}}}},"400":{"description":"Cannot delete the deployment in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment already has a conflicting delete request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/redeploy":{"post":{"operationId":"redeployDeployment","description":"Redeploy a running deployment with the same release and fresh environment variables. Sets status to update-pending.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"redeploy","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Deployment redeployment triggered successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot redeploy - deployment must be running.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/pin-release":{"post":{"operationId":"pinDeploymentRelease","description":"Pin or unpin a running or runtime-failed deployment. Running deployments start an update; failed deployments retry toward the selected release.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"pinRelease","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PinReleaseRequest"}}}},"responses":{"202":{"description":"Release pin updated successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot pin release from the deployment's current lifecycle state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment or release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/release-channel":{"post":{"operationId":"setDeploymentReleaseChannel","x-speakeasy-group":"deployments","x-speakeasy-name-override":"setReleaseChannel","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"$ref":"#/components/schemas/ReleaseChannelName"}},"required":["channel"],"additionalProperties":false}}}},"responses":{"200":{"description":"Deployment release channel updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deployment"}}}},"400":{"description":"Channel release is unavailable for the deployment platform.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment or release channel not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/retry":{"post":{"operationId":"retryDeployment","description":"Retry a failed deployment operation. Uses alien-infra's retry mechanisms to resume from exact failure point.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"retry","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Deployment retry enqueued successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Deployment is not in a failed state that can be retried.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/inputs":{"get":{"operationId":"getDeploymentInputs","description":"Get the active input definitions and current non-secret values for a deployment.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"getInputs","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Deployment inputs returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentInputsResponse"}}}},"403":{"description":"Insufficient permission to read deployment inputs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment or release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateDeploymentInputs","description":"Update runtime stack inputs, rebuild their environment-variable mappings, and request a deployment update when runtime configuration changes.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"updateInputs","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentInputsRequest"}}}},"responses":{"200":{"description":"Deployment inputs saved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentInputsResponse"}}}},"400":{"description":"Input values are invalid for the deployment release.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Insufficient permission to update deployment inputs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment, project, or release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/environment-variables":{"patch":{"operationId":"updateDeploymentEnvironmentVariables","description":"Update a deployment's environment variables. If the deployment is running and not locked, the status will be changed to update-pending to trigger a deployment.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"updateEnvironmentVariables","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentEnvironmentVariablesRequest"}}}},"responses":{"202":{"description":"Environment variables updated successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Environment variables are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Insufficient permission to update environment variables.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/token":{"post":{"operationId":"createDeploymentToken","description":"Create a deployment token (deployment-scoped API key). The deployment must exist before creating a token.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"createToken","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentTokenRequest"}}}},"responses":{"201":{"description":"Deployment token created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentTokenResponse"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers":{"post":{"operationId":"createManager","description":"Create a new manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewManagerRequest"}}}},"responses":{"201":{"description":"Manager created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateManagerResponse"}}}},"400":{"description":"Invalid private manager setup method.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"A manager for this target already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"listManagers","description":"Retrieve all managers.","x-speakeasy-group":"managers","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search managers by name"},"required":false,"description":"Search managers by name","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum number of managers to return"},"required":false,"description":"Maximum number of managers to return","name":"limit","in":"query"}],"responses":{"200":{"description":"Retrieved managers.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Manager"}}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/setup-token":{"post":{"operationId":"retryManagerSetup","description":"Revoke previous private-manager setup tokens and issue a fresh setup token/config.","x-speakeasy-group":"managers","x-speakeasy-name-override":"retrySetup","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"201":{"description":"Fresh manager setup token generated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateManagerResponse"}}}},"400":{"description":"Manager setup cannot be retried in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager or setup config not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/retry":{"post":{"operationId":"retryManager","description":"Retry private-manager setup. Returns a fresh setup action before the internal deployment exists, or requests retry for the internal deployment after it exists.","x-speakeasy-group":"managers","x-speakeasy-name-override":"retry","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Manager retry handled successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerRetryResponse"}}}},"400":{"description":"Manager cannot be retried in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager or internal deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/cancel-setup":{"post":{"operationId":"cancelManagerSetup","description":"Cancel pending private-manager setup, revoke setup/runtime tokens, and remove the undeployed manager record.","x-speakeasy-group":"managers","x-speakeasy-name-override":"cancelSetup","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Manager setup canceled successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Manager setup cannot be canceled in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}":{"get":{"operationId":"getManager","description":"Retrieve a manager by ID.","x-speakeasy-group":"managers","x-speakeasy-name-override":"get","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved manager.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Manager"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteManager","description":"Delete a manager by ID.","x-speakeasy-group":"managers","x-speakeasy-name-override":"delete","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Manager deletion enqueued successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot delete the manager in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Internal deployment already has a conflicting delete request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/domain-binding":{"get":{"operationId":"getManagerDomainBinding","description":"Get the custom domain binding for a private manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"getDomainBinding","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved manager domain binding.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerDomainBindingResponse"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"put":{"operationId":"updateManagerDomainBinding","description":"Create, update, or remove the custom domain binding for a private manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"updateDomainBinding","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateManagerDomainBinding"}}}},"responses":{"200":{"description":"Manager domain binding updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerDomainBindingResponse"}}}},"400":{"description":"Invalid domain binding request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager or domain not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/management-config":{"get":{"operationId":"getManagerManagementConfig","description":"Get the management configuration for a manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"getManagementConfig","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"required":true,"description":"Represents the target cloud platform.","name":"platform","in":"query"}],"responses":{"200":{"description":"Management config retrieved successfully.","content":{"application/json":{"schema":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]}],"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."}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/provision":{"post":{"operationId":"provisionManager","description":"Enqueue provisioning for a manager by ID.","x-speakeasy-group":"managers","x-speakeasy-name-override":"provision","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Manager provisioning enqueued successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot provision the manager in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/update":{"post":{"operationId":"updateManager","description":"Update a manager to a specific release ID or active release.","x-speakeasy-group":"managers","x-speakeasy-name-override":"update","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateManagerRequest"}}}},"responses":{"202":{"description":"Manager update enqueued successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot update the manager in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/events":{"get":{"operationId":"listManagerEvents","description":"Retrieve all events of a manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"listEvents","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved events.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Event"}}},"required":["items"]}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/token":{"post":{"operationId":"generateManagerToken","description":"Generate a short-lived JWT for direct browser → manager communication. Used for fetching command payloads and querying logs without routing sensitive data through the platform API.","x-speakeasy-group":"managers","x-speakeasy-name-override":"generateManagerToken","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateManagerTokenRequest"}}}},"responses":{"200":{"description":"Manager access token and connection info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateManagerTokenResponse"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/binding-token":{"post":{"operationId":"generateManagerBindingToken","description":"Generate a short-lived deployment-scoped token for resolving opted-in remote bindings through the currently assigned manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"generateManagerBindingToken","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateManagerBindingTokenRequest"}}}},"responses":{"200":{"description":"Remote Bindings token and assigned manager URL.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateManagerBindingTokenResponse"}}}},"403":{"description":"The caller cannot update the deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Assigned manager or deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"The assigned manager is offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/gcp-oauth-provider/resolve":{"post":{"operationId":"resolveManagerGcpOAuthProvider","description":"Resolve decrypted project-level Google Cloud OAuth provider settings for a manager-side deployment bootstrap.","x-speakeasy-group":"managers","x-speakeasy-name-override":"resolveGcpOAuthProvider","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveManagerGcpOAuthProviderRequest"}}}},"responses":{"200":{"description":"Resolved Google Cloud OAuth provider settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveManagerGcpOAuthProviderResponse"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Manager cannot resolve this deployment group's project settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager, deployment group, or project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/heartbeat":{"post":{"operationId":"reportManagerHeartbeat","description":"Report Manager health status and metrics.","x-speakeasy-group":"managers","x-speakeasy-name-override":"reportHeartbeat","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerHeartbeatRequest"}}}},"responses":{"200":{"description":"Heartbeat acknowledged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerHeartbeatResponse"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/deployment":{"get":{"operationId":"getManagerDeployment","description":"Get deployment details for a private manager (internal deployment platform, status, resources).","x-speakeasy-group":"managers","x-speakeasy-name-override":"getDeployment","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Manager deployment details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerDeployment"}}}},"404":{"description":"Manager not found or has no internal deployment (alien-hosted managers don't have deployment info).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/operator-manifests/prepare":{"post":{"operationId":"prepareOperatorManifestPackage","tags":["operator-manifests"],"summary":"Prepare the white-labeled Operator image for an Operate install","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrepareOperatorManifestPackageRequest"}}}},"responses":{"200":{"description":"Operator image package created or reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrepareOperatorManifestPackageResponse"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/operator-manifests/render":{"post":{"operationId":"renderOperatorManifest","tags":["operator-manifests"],"summary":"Render a Kubernetes Operator manifest","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenderOperatorManifestRequest"}}}},"responses":{"200":{"description":"Operator manifest rendered successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenderOperatorManifestResponse"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Operator image package is not ready.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Invalid platform or manager configuration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/api-keys":{"get":{"operationId":"listAPIKeys","description":"Retrieve all API keys for the current workspace.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved API keys.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/APIKey"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createAPIKey","description":"Create a new API key.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAPIKeyRequest"}}}},"responses":{"201":{"description":"API key created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAPIKeyResponse"}}}},"403":{"description":"Insufficient permissions to create API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/api-keys/{id}":{"get":{"operationId":"getAPIKey","description":"Retrieve a specific API key.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"required":true,"description":"Unique identifier for the api key.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKey"}}}},"404":{"description":"API key not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateAPIKey","description":"Update an API key (enable/disable, change description).","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"update","parameters":[{"schema":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"required":true,"description":"Unique identifier for the api key.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAPIKeyRequest"}}}},"responses":{"200":{"description":"API key updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKey"}}}},"404":{"description":"API key not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"revokeAPIKey","description":"Revoke (soft delete) an API key.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"revoke","parameters":[{"schema":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"required":true,"description":"Unique identifier for the api key.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"API key revoked successfully."},"404":{"description":"API key not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/api-keys/batch-delete":{"post":{"operationId":"deleteAPIKeys","description":"Permanently delete multiple API keys.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"deleteMultiple","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteAPIKeysRequest"}}}},"responses":{"200":{"description":"API keys deleted successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"deletedCount":{"type":"number"}},"required":["deletedCount"]}}}},"403":{"description":"Insufficient permissions to delete API keys.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains":{"get":{"operationId":"listDomains","description":"List system domains and workspace domains.","x-speakeasy-group":"domains","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved domains.","content":{"application/json":{"schema":{"type":"object","properties":{"domains":{"type":"array","items":{"$ref":"#/components/schemas/DomainWithUsage"}}},"required":["domains"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createDomain","description":"Create a workspace domain and optional initial endpoints.","x-speakeasy-group":"domains","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"maxLength":253},"setup":{"type":"object","properties":{"deploymentPortal":{"type":"boolean"},"packages":{"type":"boolean"},"deploymentUrlProjectId":{"type":"string","nullable":true,"pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"managerIds":{"type":"array","items":{"type":"string"}}}}},"required":["domain"]}}}},"responses":{"200":{"description":"Returned an existing workspace domain claim.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"201":{"description":"Created domain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"400":{"description":"Domain is reserved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Insufficient permissions or plan limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Domain cleanup is still in progress.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains/{id}/endpoints":{"post":{"operationId":"createDomainEndpoint","description":"Create an endpoint under a workspace domain.","x-speakeasy-group":"domains","x-speakeasy-name-override":"createEndpoint","parameters":[{"schema":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"required":true,"description":"Unique identifier for the domain.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["deployment_portal","workspace_packages","manager_api","deployment_url_base"]},"owner":{"type":"object","properties":{"type":{"type":"string","enum":["workspace","project","manager"]},"id":{"type":"string"}},"required":["type","id"]}},"required":["kind"]}}}},"responses":{"201":{"description":"Created endpoint.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"400":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Endpoint cleanup is still in progress.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains/{id}":{"get":{"operationId":"getDomain","description":"Get domain by ID.","x-speakeasy-group":"domains","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"required":true,"description":"Unique identifier for the domain.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved domain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteDomain","description":"Delete a workspace domain.","x-speakeasy-group":"domains","x-speakeasy-name-override":"delete","parameters":[{"schema":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"required":true,"description":"Unique identifier for the domain.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Domain deletion requested.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Domain is in use.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains/{id}/refresh":{"post":{"operationId":"refreshDomain","description":"Refresh workspace domain verification.","x-speakeasy-group":"domains","x-speakeasy-name-override":"refresh","parameters":[{"schema":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"required":true,"description":"Unique identifier for the domain.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Domain verification refresh requested.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/events":{"get":{"operationId":"listEvents","description":"Retrieve all events.","x-speakeasy-group":"events","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","description":"Filter events to a single deployment."},"required":false,"description":"Filter events to a single deployment.","name":"deploymentId","in":"query"},{"schema":{"type":"string","description":"Filter events to a single release."},"required":false,"description":"Filter events to a single release.","name":"releaseId","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["releaseCreatedAt"]},"description":"Optional fields to include: releaseCreatedAt"},"required":false,"description":"Optional fields to include: releaseCreatedAt","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved events.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/EventListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/events/{id}":{"get":{"operationId":"getEvent","description":"Retrieve an event by ID.","x-speakeasy-group":"events","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"event_[0-9a-zA-Z]{28}$","description":"Unique identifier for the event.","example":"event_MtSA24M3pWuAkQYxgZxuRI"},"required":true,"description":"Unique identifier for the event.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved event.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Event"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/join-tokens":{"get":{"operationId":"listMachinesJoinTokens","x-speakeasy-group":"machines","x-speakeasy-name-override":"listJoinTokens","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Join tokens for a Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMachinesJoinTokensResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createMachinesJoinToken","x-speakeasy-group":"machines","x-speakeasy-name-override":"createJoinToken","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Newly minted Machines join token. Existing tokens keep working; the token value is returned only once.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMachinesJoinTokenResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/join-tokens/rotate":{"post":{"operationId":"rotateMachinesJoinToken","x-speakeasy-group":"machines","x-speakeasy-name-override":"rotateJoinToken","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Rotated Machines join token. Revokes all existing tokens, then mints a new one; the token value is returned only once.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateMachinesJoinTokenResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/join-tokens/{tokenId}":{"delete":{"operationId":"revokeMachinesJoinToken","x-speakeasy-group":"machines","x-speakeasy-name-override":"revokeJoinToken","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"tokenId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Machines join token revocation result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeMachinesJoinTokenResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/inventory":{"get":{"operationId":"listMachinesInventory","x-speakeasy-group":"machines","x-speakeasy-name-override":"listInventory","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Machine inventory for a Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMachinesInventoryResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/machines/{machineId}/drain":{"delete":{"operationId":"cancelMachinesMachineDrain","x-speakeasy-group":"machines","x-speakeasy-name-override":"cancelMachineDrain","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"machineId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Machines drain cancellation result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelMachinesMachineDrainResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"drainMachinesMachine","x-speakeasy-group":"machines","x-speakeasy-name-override":"drainMachine","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"machineId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DrainMachinesMachineRequest"}}}},"responses":{"200":{"description":"Machines drain request result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DrainMachinesMachineResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/machines/{machineId}":{"delete":{"operationId":"removeMachinesMachine","x-speakeasy-group":"machines","x-speakeasy-name-override":"removeMachine","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"machineId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Machines remove request result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveMachinesMachineResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands":{"get":{"operationId":"listCommands","description":"Retrieve commands. Use for dashboard analytics and command history.","x-speakeasy-group":"commands","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Filter by deployment ID","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":false,"description":"Filter by deployment ID","name":"deploymentId","in":"query"},{"schema":{"type":"string","enum":["PENDING_UPLOAD","PENDING","DISPATCHED","SUCCEEDED","FAILED","EXPIRED"],"description":"Filter by command state"},"required":false,"description":"Filter by command state","name":"state","in":"query"},{"schema":{"type":"string","maxLength":255,"description":"Filter by command name"},"required":false,"description":"Filter by command name","name":"name","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search commands by name"},"required":false,"description":"Search commands by name","name":"search","in":"query"},{"schema":{"type":"string","nullable":true,"format":"date-time","description":"Filter commands created after this date (ISO 8601)"},"required":false,"description":"Filter commands created after this date (ISO 8601)","name":"createdAfter","in":"query"},{"schema":{"type":"string","nullable":true,"format":"date-time","description":"Filter commands created before this date (ISO 8601)"},"required":false,"description":"Filter commands created before this date (ISO 8601)","name":"createdBefore","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["deployment","project"]},"description":"Optional fields to include: deployment, project"},"required":false,"description":"Optional fields to include: deployment, project","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved commands.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CommandListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createCommand","description":"Create command metadata. Called by manager when processing commands. Returns project info for routing decisions.","x-speakeasy-group":"commands","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCommandRequest"}}}},"responses":{"201":{"description":"Command created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCommandResponse"}}}},"400":{"description":"Deployment is not ready or has no assigned manager.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Multiple command-capable targets; an explicit target is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"Deployment has no command-capable targets.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"The deployment manager is unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/names":{"get":{"operationId":"listCommandNames","description":"List distinct command names. Use for filter dropdowns in the dashboard.","x-speakeasy-group":"commands","x-speakeasy-name-override":"listNames","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","maxLength":255,"description":"Search command names (prefix match)"},"required":false,"description":"Search command names (prefix match)","name":"search","in":"query"}],"responses":{"200":{"description":"Distinct command names.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCommandNamesResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/deployments":{"get":{"operationId":"listCommandDeployments","description":"List distinct deployments that have commands, including deployment group info. Use for filter dropdowns in the dashboard.","x-speakeasy-group":"commands","x-speakeasy-name-override":"listDeployments","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","maxLength":255,"description":"Search deployment or deployment group names"},"required":false,"description":"Search deployment or deployment group names","name":"search","in":"query"}],"responses":{"200":{"description":"Distinct deployments that have commands.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCommandDeploymentsResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/target":{"get":{"operationId":"resolveCommandTarget","description":"Resolve which resource a command for this deployment would be addressed to, and how it would be delivered. Fails when the deployment has no command-capable resources, or more than one and no explicit target was named.","x-speakeasy-group":"commands","x-speakeasy-name-override":"resolveTarget","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Deployment to resolve the target for","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Deployment to resolve the target for","name":"deploymentId","in":"query"},{"schema":{"type":"string","maxLength":255,"description":"Explicit resource id to resolve; must be a command-capable resource"},"required":false,"description":"Explicit resource id to resolve; must be a command-capable resource","name":"target","in":"query"}],"responses":{"200":{"description":"Resolved command target.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolvedCommandTarget"}}}},"404":{"description":"Deployment or target not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Multiple command-capable targets; an explicit target is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"Deployment has no command-capable targets.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/{id}":{"patch":{"operationId":"updateCommand","description":"Update command state. Called by manager when command is dispatched or completes.","x-speakeasy-group":"commands","x-speakeasy-name-override":"update","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCommandRequest"}}}},"responses":{"200":{"description":"Command updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Command"}}}},"404":{"description":"Command not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"getCommand","description":"Retrieve a command by ID.","x-speakeasy-group":"commands","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved command.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Command"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/{id}/dispatch":{"post":{"operationId":"dispatchCommand","description":"Atomically mark a command DISPATCHED unless it is already terminal. Returns whether the transition was applied.","x-speakeasy-group":"commands","x-speakeasy-name-override":"dispatch","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DispatchCommandRequest"}}}},"responses":{"200":{"description":"Dispatch attempt result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DispatchCommandResponse"}}}},"404":{"description":"Command not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/{id}/complete":{"post":{"operationId":"completeCommand","description":"Atomically transition a command to a terminal state (SUCCEEDED, FAILED, or EXPIRED) unless it is already terminal. Returns whether the transition was applied.","x-speakeasy-group":"commands","x-speakeasy-name-override":"complete","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteCommandRequest"}}}},"responses":{"200":{"description":"Completion attempt result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteCommandResponse"}}}},"404":{"description":"Command not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/{id}/increment-attempt":{"post":{"operationId":"incrementCommandAttempt","description":"Atomically increment the command's attempt counter and return the new value.","x-speakeasy-group":"commands","x-speakeasy-name-override":"incrementAttempt","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Attempt incremented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncrementCommandAttemptResponse"}}}},"404":{"description":"Command not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/debug-sessions":{"get":{"operationId":"listDebugSessions","description":"Retrieve debug sessions for dashboard audit. Filters: project, deployment, state, mode.","x-speakeasy-group":"debugSessions","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Filter by deployment ID","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":false,"description":"Filter by deployment ID","name":"deploymentId","in":"query"},{"schema":{"allOf":[{"$ref":"#/components/schemas/DebugSessionState"},{"description":"Filter by session state"}]},"required":false,"description":"Filter by session state","name":"state","in":"query"},{"schema":{"type":"string","enum":["push","pull"],"description":"Filter by deployment model (push/pull). Joins against the parent deployment."},"required":false,"description":"Filter by deployment model (push/pull). Joins against the parent deployment.","name":"mode","in":"query"},{"schema":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Filter by cloud provider. Joins against the parent deployment."},"required":false,"description":"Filter by cloud provider. Joins against the parent deployment.","name":"provider","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Paginated debug sessions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugSessionListResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createDebugSession","description":"Create a debug-session audit row. Called by the manager when a pull or push debug tunnel is opened. Workspace + project derived from deployment.","x-speakeasy-group":"debugSessions","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDebugSessionRequest"}}}},"responses":{"201":{"description":"Debug session created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugSession"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/debug-sessions/{id}":{"patch":{"operationId":"updateDebugSession","description":"Update debug-session state. Called by manager on tunnel attach, close, or deadline expiry.","x-speakeasy-group":"debugSessions","x-speakeasy-name-override":"update","parameters":[{"schema":{"type":"string","pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Unique identifier for the debug session.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"required":true,"description":"Unique identifier for the debug session.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDebugSessionRequest"}}}},"responses":{"200":{"description":"Debug session updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugSession"}}}},"404":{"description":"Debug session not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"getDebugSession","description":"Retrieve a debug session by ID.","x-speakeasy-group":"debugSessions","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Unique identifier for the debug session.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"required":true,"description":"Unique identifier for the debug session.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved debug session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugSession"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-info":{"get":{"operationId":"getDeploymentInfo","description":"Get deployment information for the deployment portal. Accepts both deployment-scoped and deployment-group-scoped API keys. Returns project information, package status/outputs, and either deployment or deployment group details depending on the token type. Poll this endpoint to check if packages are ready.","x-speakeasy-group":"deployment","x-speakeasy-name-override":"getInfo","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"required":false,"description":"Represents the target cloud platform.","name":"platform","in":"query"}],"responses":{"200":{"description":"Deployment information retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentInfo"}}}},"401":{"description":"Unauthorized — requires a deployment-scoped or deployment-group-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment, deployment group, or project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-info/compute-plan":{"post":{"operationId":"planDeploymentCompute","description":"Plan deployment compute for the active release before stack preparation. The response contains recommended machine and scale choices for cloud compute pools.","x-speakeasy-group":"deployment","x-speakeasy-name-override":"planCompute","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure"]},"setupMethod":{"$ref":"#/components/schemas/DeploymentSetupMethod"},"region":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"type":"object","properties":{"pools":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["fixed"]},"machines":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","machines"]},{"type":"object","properties":{"mode":{"type":"string","enum":["autoscale"]},"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","min","max"]}]},"default":{}}}},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}}}},"required":["platform","setupMethod","stackSettings"]}}}},"responses":{"200":{"description":"Compute plan returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentComputePlan"}}}},"401":{"description":"Unauthorized — requires a deployment-group scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment group, project, release, or manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-info/prepare-stack":{"post":{"operationId":"prepareDeploymentStack","description":"Prepare the active release stack for a deployment portal setup session. The response contains the generated stack shape plus setup compatibility metadata.","x-speakeasy-group":"deployment","x-speakeasy-name-override":"prepareStack","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure"]},"setupMethod":{"$ref":"#/components/schemas/DeploymentSetupMethod"},"region":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"type":"object","properties":{"pools":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["fixed"]},"machines":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","machines"]},{"type":"object","properties":{"mode":{"type":"string","enum":["autoscale"]},"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","min","max"]}]},"default":{}}}},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}}}},"required":["platform","setupMethod","stackSettings"]}}}},"responses":{"200":{"description":"Prepared stack returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreparedDeploymentStack"}}}},"401":{"description":"Unauthorized — requires a deployment-group scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment group, project, release, or manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/slack/install-url":{"post":{"operationId":"slackIntegrationInstallUrl","description":"Generate the Slack OAuth consent URL for this workspace.","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"installUrl","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"OAuth URL the dashboard should redirect the user to.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackInstallUrlResponse"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/slack/status":{"get":{"operationId":"slackIntegrationStatus","description":"Return the Slack install for this workspace (if any).","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"status","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackIntegrationStatus"}}}}}}},"/v1/integrations/slack/channels":{"get":{"operationId":"slackIntegrationChannels","description":"List public Slack channels for this workspace's install. Used by the dashboard's notification-channel picker.","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"listChannels","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Public channels.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackChannelsResponse"}}}},"400":{"description":"Workspace not connected to Slack.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/slack/notification-channel":{"put":{"operationId":"slackIntegrationSetNotificationChannel","description":"Configure which Slack channel receives ai-agent monitor reports.","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"setNotificationChannel","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackNotificationChannelRequest"}}}},"responses":{"200":{"description":"Channel saved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackNotificationChannelResponse"}}}},"400":{"description":"Not connected, or join failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/slack/installation":{"delete":{"operationId":"slackIntegrationUninstall","description":"Uninstall the Slack integration for this workspace. Revokes the bot token at Slack and deletes the row.","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"uninstall","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Uninstalled."}}}},"/v1/agent-sessions":{"get":{"operationId":"listAgentSessions","description":"List ai-agent monitor sessions for this workspace. Newest first, capped at 50.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Sessions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionListResponse"}}}}}}},"/v1/agent-sessions/{id}":{"get":{"operationId":"getAgentSession","description":"Retrieve one ai-agent monitor session by id.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionDetail"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/agent-sessions/{id}/events":{"get":{"operationId":"listAgentSessionEvents","description":"Incrementally read a session's event log (steps, tool calls, report deltas, approvals, status transitions). Pass the previous response's `latestSeq` as `after` to fetch only new events.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"events","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"default":0},"required":false,"name":"after","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":500,"default":200},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Events after the cursor, oldest first.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionEventsResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/agent-sessions/{id}/approve":{"post":{"operationId":"approveAgentSession","description":"Approve a halted ai-agent monitor session. Proxies to the ai-agent service, minting a fresh CLI session for the caller so the ai-agent's own auth applies.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"approve","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Already resumed / no-op.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionApproveResponse"}}}},"202":{"description":"Approved; resume enqueued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionApproveResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"AI agent service is not configured.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/agent-sessions/{id}/stop":{"post":{"operationId":"stopAgentSession","description":"Stop (cancel) a running, queued, or halted ai-agent monitor session. Proxies to the ai-agent service, minting a fresh CLI session for the caller so the ai-agent's own auth applies. Idempotent — stopping an already-terminal session is a 200 no-op.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"stop","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Already terminal / no-op.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionStopResponse"}}}},"202":{"description":"Cancel accepted; session stopped.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionStopResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"AI agent service is not configured.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/list":{"post":{"operationId":"syncList","description":"List full deployment records for manager operational loops. This endpoint is intentionally separate from the public deployments list, which returns lightweight UI rows.","x-speakeasy-group":"sync","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncListRequest"}}}},"responses":{"200":{"description":"Full deployment records returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncListResponse"}}}},"400":{"description":"Bad request - invalid manager or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/context":{"post":{"operationId":"syncContext","description":"Get computed deployment state and configuration for a manager-side operation without acquiring the deployment reconciliation lock.","x-speakeasy-group":"sync","x-speakeasy-name-override":"context","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncContextRequest"}}}},"responses":{"200":{"description":"Computed deployment context returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncAcquireResponseDeployment"}}}},"404":{"description":"Deployment not found or not assigned to this manager.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Failed to build deployment context.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/acquire":{"post":{"operationId":"syncAcquire","description":"Acquire a batch of deployments for processing. Used by Manager to atomically lock deployments matching filters. Each deployment in the batch must be released after processing.","x-speakeasy-group":"sync","x-speakeasy-name-override":"acquire","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncAcquireRequest"}}}},"responses":{"200":{"description":"Deployments acquired successfully (empty arrays if none available). Failures indicate deployments that were locked but failed during context building - their locks have been released.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncAcquireResponse"}}}},"400":{"description":"Bad request - invalid manager or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/reconcile":{"post":{"operationId":"syncReconcile","description":"Reconcile deployment state. Push model requests that include a session verify lock ownership. Pull model state reports are accepted as authz-gated agent progress even when they carry an agent-sync session. Accepts full DeploymentState after step() execution.","x-speakeasy-group":"sync","x-speakeasy-name-override":"reconcile","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncReconcileRequest"}}}},"responses":{"200":{"description":"State reconciled successfully. If target is present, continue deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncReconcileResponse"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment locked (pull) or session mismatch (push).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/renew":{"post":{"operationId":"syncRenew","x-speakeasy-group":"sync","x-speakeasy-name-override":"renew","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncRenewRequest"}}}},"responses":{"200":{"description":"Renewal processed. Inspect `leases` for per-deployment outcomes; a lost lease is reported there rather than failing the whole batch.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"True when every requested deployment was renewed."},"leases":{"type":"array","items":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"renewed":{"type":"boolean","description":"False when this session no longer holds a live lease."},"leaseExpiresAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["deploymentId","renewed","leaseExpiresAt"]},"description":"Per-deployment renewal outcome."}},"required":["success","leases"]}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"The session no longer owns the deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/release":{"post":{"operationId":"syncRelease","description":"Release a deployment lock. Must be called after processing an acquired deployment, even if processing failed. This is critical to avoid deadlocks.","x-speakeasy-group":"sync","x-speakeasy-name-override":"release","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncReleaseRequest"}}}},"responses":{"200":{"description":"Lock released successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resources":{"get":{"operationId":"listInventory","x-speakeasy-group":"resources","x-speakeasy-name-override":"listInventory","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string"},"required":false,"name":"deploymentGroupId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"deploymentId","in":"query"}],"responses":{"200":{"description":"Unified managed and observed resource inventory rows.","content":{"application/json":{"schema":{"type":"object","properties":{"resources":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"resourceType":{"type":"string"},"resourceId":{"type":"string"},"name":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"deploymentCount":{"type":"integer"},"attentionCount":{"type":"integer"},"lastObservedAt":{"type":"string","format":"date-time"},"source":{"type":"string","enum":["managed"]},"deploymentId":{"type":"string"},"deploymentName":{"type":"string"}},"required":["resourceType","resourceId","name","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","deploymentCount","attentionCount","lastObservedAt","source","deploymentId","deploymentName"]},{"type":"object","properties":{"source":{"type":"string","enum":["observed"]},"deploymentId":{"type":"string"},"deploymentName":{"type":"string"},"deploymentGroupId":{"type":"string","nullable":true},"deploymentGroupName":{"type":"string","nullable":true},"resourceType":{"type":"string"},"resourceId":{"type":"string"},"name":{"type":"string"},"rawKind":{"type":"string"},"alienResourceId":{"type":"string","nullable":true},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"deploymentCount":{"type":"integer"},"attentionCount":{"type":"integer"},"lastObservedAt":{"type":"string","format":"date-time"}},"required":["source","deploymentId","deploymentName","deploymentGroupId","deploymentGroupName","resourceType","resourceId","name","rawKind","alienResourceId","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","deploymentCount","attentionCount","lastObservedAt"]}]}}},"required":["resources"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resources/{area}":{"get":{"operationId":"listResourceOverview","x-speakeasy-group":"resources","x-speakeasy-name-override":"listOverview","parameters":[{"schema":{"type":"string","enum":["container","worker","daemon"]},"required":true,"name":"area","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string"},"required":false,"name":"deploymentGroupId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"deploymentId","in":"query"}],"responses":{"200":{"description":"Compute resource overview rows from latest heartbeats.","content":{"application/json":{"schema":{"type":"object","properties":{"resources":{"type":"array","items":{"type":"object","properties":{"resourceType":{"type":"string"},"resourceId":{"type":"string"},"name":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"deploymentCount":{"type":"integer"},"attentionCount":{"type":"integer"},"lastObservedAt":{"type":"string","format":"date-time"}},"required":["resourceType","resourceId","name","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","deploymentCount","attentionCount","lastObservedAt"]}}},"required":["resources"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resources/{area}/{resourceId}/deployments":{"get":{"operationId":"listResourceDeployments","x-speakeasy-group":"resources","x-speakeasy-name-override":"listDeployments","parameters":[{"schema":{"type":"string","enum":["container","worker","daemon"]},"required":true,"name":"area","in":"path"},{"schema":{"type":"string"},"required":true,"name":"resourceId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string"},"required":false,"name":"deploymentGroupId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"deploymentId","in":"query"}],"responses":{"200":{"description":"Deployments where the resource is installed.","content":{"application/json":{"schema":{"type":"object","properties":{"resourceType":{"type":"string"},"resourceId":{"type":"string"},"deployments":{"type":"array","items":{"type":"object","properties":{"deploymentId":{"type":"string"},"deploymentName":{"type":"string"},"deploymentGroupId":{"type":"string","nullable":true},"deploymentGroupName":{"type":"string","nullable":true},"resourceType":{"type":"string"},"resourceId":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"observedAt":{"type":"string","format":"date-time"}},"required":["deploymentId","deploymentName","deploymentGroupId","deploymentGroupName","resourceType","resourceId","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","observedAt"]}}},"required":["resourceType","resourceId","deployments"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resources/{area}/deployments/{deploymentId}/{resourceId}":{"get":{"operationId":"getResourceDeploymentDetail","x-speakeasy-group":"resources","x-speakeasy-name-override":"getDeploymentDetail","parameters":[{"schema":{"type":"string","enum":["container","worker","daemon"]},"required":true,"name":"area","in":"path"},{"schema":{"type":"string"},"required":true,"name":"deploymentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"resourceId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"responses":{"200":{"description":"Latest heartbeat detail for one compute resource deployment.","content":{"application/json":{"schema":{"type":"object","properties":{"deployment":{"type":"object","properties":{"deploymentId":{"type":"string"},"deploymentName":{"type":"string"},"deploymentGroupId":{"type":"string","nullable":true},"deploymentGroupName":{"type":"string","nullable":true},"resourceType":{"type":"string"},"resourceId":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"observedAt":{"type":"string","format":"date-time"},"desiredImage":{"type":"string","nullable":true}},"required":["deploymentId","deploymentName","deploymentGroupId","deploymentGroupName","resourceType","resourceId","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","observedAt","desiredImage"]},"heartbeat":{"oneOf":[{"type":"object","properties":{"status":{"type":"string","enum":["available"]},"deploymentId":{"type":"string"},"resourceId":{"type":"string"},"resourceType":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"staleAt":{"type":"string","format":"date-time"},"platformStale":{"type":"boolean"},"heartbeat":{"type":"object","properties":{"backend":{"type":"string","enum":["aws","gcp","azure","kubernetes","local","managed","external","test"]},"controllerPlatform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"data":{"oneOf":[{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"blockPublicAcls":{"type":"boolean","nullable":true},"blockPublicPolicy":{"type":"boolean","nullable":true},"bucketAclPresent":{"type":"boolean","nullable":true},"bucketLocation":{"type":"string","nullable":true},"bucketPolicyPresent":{"type":"boolean","nullable":true},"encryptionConfigPresent":{"type":"boolean"},"encryptionEnabled":{"type":"boolean","nullable":true},"ignorePublicAcls":{"type":"boolean","nullable":true},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"publicAccessBlockPresent":{"type":"boolean"},"region":{"type":"string","nullable":true},"restrictPublicBuckets":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"versioningEnabled":{"type":"boolean","nullable":true},"versioningStatus":{"type":"string","nullable":true}},"required":["encryptionConfigPresent","lifecyclePresent","name","publicAccessBlockPresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsS3"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"bucketId":{"type":"string","nullable":true},"defaultKmsKeyName":{"type":"string","nullable":true},"encryptionConfigPresent":{"type":"boolean"},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":"integer","nullable":true,"minimum":0},"location":{"type":"string","nullable":true},"locationType":{"type":"string","nullable":true},"name":{"type":"string"},"publicAccessPrevention":{"type":"string","nullable":true},"retentionPeriod":{"type":"string","nullable":true},"retentionPolicyEffectiveTime":{"type":"string","nullable":true},"retentionPolicyIsLocked":{"type":"boolean","nullable":true},"softDeleteEffectiveTime":{"type":"string","nullable":true},"softDeleteRetentionDurationSeconds":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"storageClass":{"type":"string","nullable":true},"uniformBucketLevelAccessEnabled":{"type":"boolean","nullable":true},"uniformBucketLevelAccessLockedTime":{"type":"string","nullable":true},"versioningEnabled":{"type":"boolean","nullable":true}},"required":["encryptionConfigPresent","lifecyclePresent","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudStorage"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessTier":{"type":"string","nullable":true},"accountKind":{"type":"string","nullable":true},"allowBlobPublicAccess":{"type":"boolean","nullable":true},"blobDeleteRetentionDays":{"type":"integer","nullable":true,"minimum":0},"blobDeleteRetentionEnabled":{"type":"boolean","nullable":true},"blobEncryptionEnabled":{"type":"boolean","nullable":true},"blobVersioningEnabled":{"type":"boolean","nullable":true},"changeFeedEnabled":{"type":"boolean","nullable":true},"changeFeedRetentionDays":{"type":"integer","nullable":true,"minimum":0},"containerDeleteRetentionDays":{"type":"integer","nullable":true,"minimum":0},"containerDeleteRetentionEnabled":{"type":"boolean","nullable":true},"containerPublicAccess":{"type":"string","nullable":true},"encryptionKeySource":{"type":"string","nullable":true},"fileEncryptionEnabled":{"type":"boolean","nullable":true},"location":{"type":"string","nullable":true},"name":{"type":"string"},"primaryLocation":{"type":"string","nullable":true},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"queueEncryptionEnabled":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"secondaryLocation":{"type":"string","nullable":true},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"statusOfPrimary":{"type":"string","nullable":true},"statusOfSecondary":{"type":"string","nullable":true},"storageAccountName":{"type":"string","nullable":true},"tableEncryptionEnabled":{"type":"boolean","nullable":true}},"required":["name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureBlob"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"isDirectory":{"type":"boolean","nullable":true},"modifiedAt":{"type":"string","nullable":true,"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["path","pathExists","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["storage"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"codeSha256":{"type":"string","nullable":true},"functionName":{"type":"string"},"functionUrlAuthType":{"type":"string","nullable":true},"functionUrlCorsPresent":{"type":"boolean"},"lastModified":{"type":"string","nullable":true},"lastUpdateStatus":{"type":"string","nullable":true},"lastUpdateStatusReason":{"type":"string","nullable":true},"lastUpdateStatusReasonCode":{"type":"string","nullable":true},"layerCount":{"type":"integer","minimum":0},"memorySizeMb":{"type":"integer","nullable":true},"packageType":{"type":"string","nullable":true},"revisionId":{"type":"string","nullable":true},"runtime":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"stateReason":{"type":"string","nullable":true},"stateReasonCode":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"timeoutSeconds":{"type":"integer","nullable":true},"triggerCount":{"type":"integer","minimum":0},"version":{"type":"string","nullable":true}},"required":["functionName","functionUrlCorsPresent","layerCount","status","triggerCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsLambda"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"containerImage":{"type":"string","nullable":true},"cpuLimit":{"type":"string","nullable":true},"generation":{"type":"integer","nullable":true},"latestCreatedRevision":{"type":"string","nullable":true},"latestReadyRevision":{"type":"string","nullable":true},"maxInstanceCount":{"type":"integer","nullable":true},"memoryLimit":{"type":"string","nullable":true},"minInstanceCount":{"type":"integer","nullable":true},"observedGeneration":{"type":"integer","nullable":true},"region":{"type":"string","nullable":true},"service":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"trafficCount":{"type":"integer","minimum":0},"uri":{"type":"string","nullable":true},"urls":{"type":"array","items":{"type":"string"}}},"required":["service","status","trafficCount","urls"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudRun"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"appName":{"type":"string"},"cpu":{"type":"number","nullable":true},"environmentName":{"type":"string","nullable":true},"ingressFqdn":{"type":"string","nullable":true},"maxReplicas":{"type":"integer","nullable":true},"memory":{"type":"string","nullable":true},"minReplicas":{"type":"integer","nullable":true},"provisioningState":{"type":"string","nullable":true},"revision":{"type":"string","nullable":true},"runningStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["appName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerApps"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"triggerCount":{"type":"integer","minimum":0},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"]}},"required":["events","name","namespace","pods","replicas","status","triggerCount","workloadKind"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"imagePathPresent":{"type":"boolean"},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pid":{"type":"integer","nullable":true,"minimum":0},"process":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"readinessProbeOk":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"triggerCount":{"type":"integer","minimum":0}},"required":["commandSupported","events","imagePathPresent","status","triggerCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["worker"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"attentionCount":{"type":"integer","minimum":0},"containerId":{"type":"string"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"image":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"observedImage":{"type":"string","nullable":true},"replicaUnits":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"schedulingMode":{"type":"string","enum":["replicated","stateful","daemon"]},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["attentionCount","containerId","events","replicaUnits","replicas","schedulingMode","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["horizonPlatform"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"]}},"required":["events","name","namespace","pods","replicas","status","workloadKind"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"bindMountCount":{"type":"integer","minimum":0},"containerId":{"type":"string","nullable":true},"containerUnit":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"image":{"type":"string","nullable":true},"localUrl":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string","nullable":true},"portCount":{"type":"integer","minimum":0},"restartCount":{"type":"integer","nullable":true,"minimum":0},"runtimeReachable":{"type":"boolean"},"runtimeStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["bindMountCount","events","portCount","runtimeReachable","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["container"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aws"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcp"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azure"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["machines"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]}},"required":["commandSupported","events","name","namespace","pods","replicas","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"daemonInstance":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"daemonName":{"type":"string"},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"exitReason":{"type":"string","nullable":true},"imagePathPresent":{"type":"boolean"},"pid":{"type":"integer","nullable":true,"minimum":0},"restartCount":{"type":"integer","nullable":true,"minimum":0},"runtimeId":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["commandSupported","events","imagePathPresent","runtimeId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["daemon"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aws"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcp"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azure"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"machines":{"type":"array","items":{"type":"object","properties":{"capacityGroup":{"type":"string"},"cpuCores":{"type":"number","nullable":true},"drainBlockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainForce":{"type":"boolean"},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"horizondVersion":{"type":"string","nullable":true},"lastHeartbeat":{"type":"string"},"machineId":{"type":"string"},"memoryBytes":{"type":"integer","nullable":true},"overlayIp":{"type":"string","nullable":true},"publicIp":{"type":"string","nullable":true},"replicaCount":{"type":"integer"},"status":{"type":"string"},"zone":{"type":"string"}},"required":["capacityGroup","drainForce","lastHeartbeat","machineId","replicaCount","status","zone"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","machines","name","nodes","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["machines"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"dockerApiVersion":{"type":"string","nullable":true},"dockerArch":{"type":"string","nullable":true},"dockerAvailable":{"type":"boolean"},"dockerOs":{"type":"string","nullable":true},"dockerVersion":{"type":"string","nullable":true},"hostIdentifier":{"type":"string","nullable":true},"name":{"type":"string"},"networkAvailable":{"type":"boolean"},"networkName":{"type":"string","nullable":true},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"runningContainers":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"trackedContainers":{"type":"integer","nullable":true,"minimum":0}},"required":["dockerAvailable","name","networkAvailable","nodes","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["compute-cluster"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string","nullable":true},"nodeCounts":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"nodeStatuses":{"type":"array","items":{"type":"object","properties":{"allocatable":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pods":{"type":"integer","nullable":true,"minimum":0}}},"capacity":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pods":{"type":"integer","nullable":true,"minimum":0}}},"conditions":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"containerRuntimeVersion":{"type":"string","nullable":true},"kubeletVersion":{"type":"string","nullable":true},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"name":{"type":"string"},"ready":{"type":"boolean"},"roles":{"type":"array","items":{"type":"string"}},"uid":{"type":"string","nullable":true},"usage":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}}},{"nullable":true}]}},"required":["allocatable","capacity","labels","name","ready","roles"]}},"podCounts":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string","nullable":true}},"required":["events","name","nodeCounts","podCounts","status"]},"resourceType":{"type":"string","enum":["kubernetes-cluster"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"approximateCounts":{"type":"boolean"},"approximateDelayedMessages":{"type":"integer","nullable":true,"minimum":0},"approximateInFlightMessages":{"type":"integer","nullable":true,"minimum":0},"approximateVisibleMessages":{"type":"integer","nullable":true,"minimum":0},"contentBasedDeduplication":{"type":"boolean","nullable":true},"deduplicationScope":{"type":"string","nullable":true},"delaySeconds":{"type":"integer","nullable":true,"minimum":0},"fifoQueue":{"type":"boolean","nullable":true},"fifoThroughputLimit":{"type":"string","nullable":true},"kmsDataKeyReusePeriodSeconds":{"type":"integer","nullable":true,"minimum":0},"kmsMasterKeyId":{"type":"string","nullable":true},"maximumMessageSize":{"type":"integer","nullable":true,"minimum":0},"messageRetentionPeriodSeconds":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"queueArn":{"type":"string","nullable":true},"queueUrl":{"type":"string","nullable":true},"receiveMessageWaitTimeSeconds":{"type":"integer","nullable":true,"minimum":0},"redriveAllowPolicy":{"type":"string","nullable":true},"redrivePolicy":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"sqsManagedSseEnabled":{"type":"boolean","nullable":true},"sseEnabled":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"visibilityTimeoutSeconds":{"type":"integer","nullable":true,"minimum":0}},"required":["approximateCounts","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsSqs"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"kmsKeyName":{"type":"string","nullable":true},"messageStorageAllowedPersistenceRegions":{"type":"array","items":{"type":"string"}},"messageStorageEnforceInTransit":{"type":"boolean","nullable":true},"projectId":{"type":"string","nullable":true},"schemaEncoding":{"type":"string","nullable":true},"schemaFirstRevisionId":{"type":"string","nullable":true},"schemaLastRevisionId":{"type":"string","nullable":true},"schemaName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"subscriptionAckDeadlineSeconds":{"type":"integer","nullable":true,"minimum":0},"subscriptionDeadLetterMaxDeliveryAttempts":{"type":"integer","nullable":true,"minimum":0},"subscriptionDeadLetterTopic":{"type":"string","nullable":true},"subscriptionDetached":{"type":"boolean","nullable":true},"subscriptionEnableMessageOrdering":{"type":"boolean","nullable":true},"subscriptionFilter":{"type":"string","nullable":true},"subscriptionFullName":{"type":"string","nullable":true},"subscriptionLabels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"subscriptionMessageRetentionDuration":{"type":"string","nullable":true},"subscriptionName":{"type":"string","nullable":true},"subscriptionPushAttributes":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"subscriptionPushConfigPresent":{"type":"boolean","nullable":true},"subscriptionPushEndpoint":{"type":"string","nullable":true},"subscriptionPushNoWrapperWriteMetadata":{"type":"boolean","nullable":true},"subscriptionPushOidcAudience":{"type":"string","nullable":true},"subscriptionPushOidcServiceAccountEmail":{"type":"string","nullable":true},"subscriptionPushPubsubWrapperWriteMetadata":{"type":"boolean","nullable":true},"subscriptionRetainAckedMessages":{"type":"boolean","nullable":true},"subscriptionState":{"type":"string","nullable":true},"topicFullName":{"type":"string","nullable":true},"topicLabels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"topicMessageRetentionDuration":{"type":"string","nullable":true},"topicName":{"type":"string"},"topicState":{"type":"string","nullable":true}},"required":["messageStorageAllowedPersistenceRegions","status","subscriptionLabels","subscriptionPushAttributes","topicLabels","topicName"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpPubSub"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessedAt":{"type":"string","nullable":true},"activeMessageCount":{"type":"integer","nullable":true,"minimum":0},"autoDeleteOnIdle":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"deadLetterMessageCount":{"type":"integer","nullable":true,"minimum":0},"deadLetteringOnMessageExpiration":{"type":"boolean","nullable":true},"defaultMessageTimeToLive":{"type":"string","nullable":true},"duplicateDetectionHistoryTimeWindow":{"type":"string","nullable":true},"enableBatchedOperations":{"type":"boolean","nullable":true},"enableExpress":{"type":"boolean","nullable":true},"enablePartitioning":{"type":"boolean","nullable":true},"endpoint":{"type":"string","nullable":true},"forwardDeadLetteredMessagesTo":{"type":"string","nullable":true},"forwardTo":{"type":"string","nullable":true},"lockDuration":{"type":"string","nullable":true},"maxDeliveryCount":{"type":"integer","nullable":true,"minimum":0},"maxMessageSizeInKilobytes":{"type":"integer","nullable":true,"minimum":0},"maxSizeInMegabytes":{"type":"integer","nullable":true,"minimum":0},"messageCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"namespaceName":{"type":"string"},"queueStatus":{"type":"string","nullable":true},"requiresDuplicateDetection":{"type":"boolean","nullable":true},"requiresSession":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"scheduledMessageCount":{"type":"integer","nullable":true,"minimum":0},"sizeInBytes":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"transferDeadLetterMessageCount":{"type":"integer","nullable":true,"minimum":0},"transferMessageCount":{"type":"integer","nullable":true,"minimum":0},"updatedAt":{"type":"string","nullable":true}},"required":["name","namespaceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureServiceBus"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"name":{"type":"string"},"path":{"type":"string","nullable":true},"serviceStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["queue"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"billingMode":{"type":"string","nullable":true},"deletionProtectionEnabled":{"type":"boolean","nullable":true},"globalSecondaryIndexCount":{"type":"integer","nullable":true,"minimum":0},"itemCount":{"type":"integer","nullable":true,"minimum":0},"keySchema":{"type":"array","items":{"type":"object","properties":{"attributeName":{"type":"string"},"keyType":{"type":"string"}},"required":["attributeName","keyType"]}},"localSecondaryIndexCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"region":{"type":"string","nullable":true},"replicaCount":{"type":"integer","nullable":true,"minimum":0},"restoreInProgress":{"type":"boolean","nullable":true},"sseStatus":{"type":"string","nullable":true},"sseType":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"streamEnabled":{"type":"boolean","nullable":true},"streamViewType":{"type":"string","nullable":true},"tableArn":{"type":"string","nullable":true},"tableClass":{"type":"string","nullable":true},"tableSizeBytes":{"type":"integer","nullable":true,"minimum":0},"tableStatus":{"type":"string","nullable":true},"ttlAttributeName":{"type":"string","nullable":true},"ttlStatus":{"type":"string","nullable":true}},"required":["keySchema","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsDynamoDb"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"appEngineIntegrationMode":{"type":"string","nullable":true},"cmekEnabled":{"type":"boolean"},"concurrencyMode":{"type":"string","nullable":true},"createTime":{"type":"string","nullable":true},"databaseEdition":{"type":"string","nullable":true},"databaseName":{"type":"string"},"databaseType":{"type":"string","nullable":true},"deleteProtectionState":{"type":"string","nullable":true},"deleteTime":{"type":"string","nullable":true},"earliestVersionTime":{"type":"string","nullable":true},"endpoint":{"type":"string","nullable":true},"locationId":{"type":"string","nullable":true},"pointInTimeRecoveryEnablement":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"sourceInfoPresent":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updateTime":{"type":"string","nullable":true},"versionRetentionPeriod":{"type":"string","nullable":true}},"required":["cmekEnabled","databaseName","sourceInfoPresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpFirestore"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"signedIdentifierCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"storageAccountKind":{"type":"string","nullable":true},"storageAccountLocation":{"type":"string","nullable":true},"storageAccountName":{"type":"string"},"storageAccountPrimaryStatus":{"type":"string","nullable":true},"storageAccountProvisioningState":{"type":"string","nullable":true},"storageAccountResourceId":{"type":"string","nullable":true},"tableExists":{"type":"boolean"},"tableName":{"type":"string"}},"required":["status","storageAccountName","tableExists","tableName"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureTable"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cloudMetadataSupported":{"type":"boolean"},"isDirectory":{"type":"boolean","nullable":true},"name":{"type":"string"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["cloudMetadataSupported","name","path","pathExists","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["kv"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"clusterIdentifier":{"type":"string"},"endpoint":{"type":"string","nullable":true},"engineVersion":{"type":"string","nullable":true},"neverPauses":{"type":"boolean","description":"True when a `minCapacity: 0` instance has not reached 0 ACU over the observation\nwindow — it is silently paying always-on prices (auto-pause verification)."},"serverlessCapacity":{"type":"number","nullable":true,"description":"Latest sampled `ServerlessDatabaseCapacity` (ACU)."},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["clusterIdentifier","neverPauses","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aurora"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"databaseVersion":{"type":"string","nullable":true},"instanceName":{"type":"string"},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["instanceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["cloudSql"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"serverName":{"type":"string"},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string","nullable":true}},"required":["serverName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["flexibleServer"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"name":{"type":"string"},"port":{"type":"integer","nullable":true,"minimum":0},"processRunning":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string"}},"required":["name","processRunning","status","version"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["postgres"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string"},"hasMoreParameters":{"type":"boolean","nullable":true},"latestModifiedAt":{"type":"string","nullable":true,"format":"date-time"},"parameterMetadataSampled":{"type":"boolean"},"prefix":{"type":"string"},"region":{"type":"string"},"sampledAdvancedTierCount":{"type":"integer","nullable":true,"minimum":0},"sampledKmsKeyMetadataPresentCount":{"type":"integer","nullable":true,"minimum":0},"sampledParameterCount":{"type":"integer","nullable":true,"minimum":0},"sampledSecureStringCount":{"type":"integer","nullable":true,"minimum":0},"sampledStringCount":{"type":"integer","nullable":true,"minimum":0},"sampledStringListCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["accountId","parameterMetadataSampled","prefix","region","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsParameterStore"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string"},"prefix":{"type":"string"},"projectId":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["location","prefix","projectId","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpSecretManager"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessPolicyCount":{"type":"integer","minimum":0},"location":{"type":"string","nullable":true},"name":{"type":"string"},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string"},"purgeProtectionEnabled":{"type":"boolean","nullable":true},"rbacAuthorizationEnabled":{"type":"boolean"},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"secretMetadataListed":{"type":"boolean"},"skuFamily":{"type":"string","nullable":true},"skuName":{"type":"string","nullable":true},"softDeleteEnabled":{"type":"boolean"},"softDeleteRetentionDays":{"type":"integer"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vaultUri":{"type":"string","nullable":true}},"required":["accessPolicyCount","name","privateEndpointConnectionCount","publicNetworkAccess","rbacAuthorizationEnabled","secretMetadataListed","softDeleteEnabled","softDeleteRetentionDays","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureKeyVault"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"type":"string"},"prefix":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["namespace","prefix","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetesSecret"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"isDirectory":{"type":"boolean","nullable":true},"modifiedAt":{"type":"string","nullable":true,"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":"boolean","nullable":true},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["path","pathExists","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["vault"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"assumeRolePolicyPresent":{"type":"boolean"},"attachedPolicyCount":{"type":"integer","minimum":0},"attachedPolicyNames":{"type":"array","items":{"type":"string"}},"createDate":{"type":"string"},"description":{"type":"string","nullable":true},"inlinePolicyCount":{"type":"integer","minimum":0},"inlinePolicyNames":{"type":"array","items":{"type":"string"}},"lastUsedDate":{"type":"string","nullable":true},"lastUsedRegion":{"type":"string","nullable":true},"managedTagCount":{"type":"integer","minimum":0},"maxSessionDuration":{"type":"integer","nullable":true},"path":{"type":"string"},"permissionsBoundaryArn":{"type":"string","nullable":true},"permissionsBoundaryType":{"type":"string","nullable":true},"roleArn":{"type":"string"},"roleId":{"type":"string"},"roleName":{"type":"string"},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tagCount":{"type":"integer","minimum":0}},"required":["assumeRolePolicyPresent","attachedPolicyCount","attachedPolicyNames","createDate","inlinePolicyCount","inlinePolicyNames","managedTagCount","path","roleArn","roleId","roleName","stackPermissionsApplied","status","tagCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsIamRole"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true},"disabled":{"type":"boolean","nullable":true},"displayName":{"type":"string","nullable":true},"email":{"type":"string"},"etag":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"oauth2ClientId":{"type":"string","nullable":true},"projectBindingCount":{"type":"integer","minimum":0},"projectId":{"type":"string","nullable":true},"projectRoles":{"type":"array","items":{"type":"string"}},"serviceAccountBindingCount":{"type":"integer","minimum":0},"serviceAccountRoles":{"type":"array","items":{"type":"string"}},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"uniqueId":{"type":"string","nullable":true}},"required":["email","projectBindingCount","projectRoles","serviceAccountBindingCount","serviceAccountRoles","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"clientId":{"type":"string","nullable":true},"customRoleDefinitionCount":{"type":"integer","minimum":0},"customRoleDefinitionIds":{"type":"array","items":{"type":"string"}},"isolationScope":{"type":"string","nullable":true},"location":{"type":"string"},"managedTagCount":{"type":"integer","minimum":0},"name":{"type":"string"},"principalId":{"type":"string","nullable":true},"resourceGroup":{"type":"string"},"resourceId":{"type":"string"},"roleAssignmentCount":{"type":"integer","minimum":0},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tenantId":{"type":"string","nullable":true},"type":{"type":"string","nullable":true}},"required":["customRoleDefinitionCount","customRoleDefinitionIds","location","managedTagCount","name","resourceGroup","resourceId","roleAssignmentCount","roleAssignmentIds","stackPermissionsApplied","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"configured":{"type":"boolean"},"identity":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["configured","identity","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["service-account"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"availabilityZones":{"type":"array","items":{"type":"string"}},"cidrBlock":{"type":"string","nullable":true},"internetGatewayId":{"type":"string","nullable":true},"isByoVpc":{"type":"boolean"},"natGatewayId":{"type":"string","nullable":true},"privateSubnetIds":{"type":"array","items":{"type":"string"}},"publicSubnetIds":{"type":"array","items":{"type":"string"}},"routeTableCount":{"type":"integer","minimum":0},"securityGroupId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vpcId":{"type":"string","nullable":true},"vpcState":{"type":"string","nullable":true}},"required":["availabilityZones","isByoVpc","privateSubnetIds","publicSubnetIds","routeTableCount","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsVpc"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cidrBlock":{"type":"string","nullable":true},"cloudNatName":{"type":"string","nullable":true},"firewallName":{"type":"string","nullable":true},"isByoVpc":{"type":"boolean"},"networkName":{"type":"string","nullable":true},"networkSelfLink":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"routerName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"subnetworkName":{"type":"string","nullable":true},"subnetworkSelfLink":{"type":"string","nullable":true}},"required":["isByoVpc","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpVpc"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"applicationGatewaySubnetName":{"type":"string","nullable":true},"cidrBlock":{"type":"string","nullable":true},"isByoVnet":{"type":"boolean"},"lastByoVnetVerificationErrorCode":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"natGatewayId":{"type":"string","nullable":true},"nsgId":{"type":"string","nullable":true},"privateEndpointSubnetName":{"type":"string","nullable":true},"privateSubnetName":{"type":"string","nullable":true},"publicIpId":{"type":"string","nullable":true},"publicSubnetName":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vnetName":{"type":"string","nullable":true},"vnetResourceId":{"type":"string","nullable":true}},"required":["isByoVnet","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureVnet"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["network"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"managementPermissionsApplied":{"type":"boolean"},"roleArn":{"type":"string","nullable":true},"roleName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["managementPermissionsApplied","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsIamRole"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"impersonationGranted":{"type":"boolean"},"roleBound":{"type":"boolean"},"serviceAccountEmail":{"type":"string","nullable":true},"serviceAccountUniqueId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["impersonationGranted","roleBound","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"ficName":{"type":"string","nullable":true},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"roleDefinitionId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tenantId":{"type":"string","nullable":true},"uamiClientId":{"type":"string","nullable":true},"uamiPrincipalId":{"type":"string","nullable":true},"uamiResourceId":{"type":"string","nullable":true}},"required":["roleAssignmentIds","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["remote-stack-management"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"pullRoleArn":{"type":"string","nullable":true},"pushRoleArn":{"type":"string","nullable":true},"region":{"type":"string"},"registryId":{"type":"string"},"registryUri":{"type":"string"},"repositories":{"type":"array","items":{"type":"object","properties":{"createdAt":{"type":"number"},"encryptionType":{"type":"string","nullable":true},"imageTagMutability":{"type":"string","nullable":true},"kmsKeyPresent":{"type":"boolean"},"registryId":{"type":"string"},"repositoryArn":{"type":"string"},"repositoryName":{"type":"string"},"repositoryUri":{"type":"string"},"scanOnPush":{"type":"boolean","nullable":true}},"required":["createdAt","kmsKeyPresent","registryId","repositoryArn","repositoryName","repositoryUri"]}},"repositoriesTruncated":{"type":"boolean"},"repositoryCount":{"type":"integer","minimum":0},"repositoryPrefix":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["region","registryId","registryUri","repositories","repositoriesTruncated","repositoryCount","repositoryPrefix","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsEcr"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cleanupPolicyCount":{"type":"integer","minimum":0},"cleanupPolicyDryRun":{"type":"boolean","nullable":true},"createTime":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"format":{"type":"string","nullable":true},"iamBindingCount":{"type":"integer","minimum":0},"iamPolicyEtagPresent":{"type":"boolean"},"iamRoles":{"type":"array","items":{"type":"string"}},"kmsKeyNamePresent":{"type":"boolean"},"labelCount":{"type":"integer","minimum":0},"location":{"type":"string"},"mode":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"projectId":{"type":"string"},"pullServiceAccountEmail":{"type":"string","nullable":true},"pushServiceAccountEmail":{"type":"string","nullable":true},"repositoryId":{"type":"string"},"satisfiesPzs":{"type":"boolean","nullable":true},"sizeBytes":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updateTime":{"type":"string","nullable":true}},"required":["cleanupPolicyCount","iamBindingCount","iamPolicyEtagPresent","iamRoles","kmsKeyNamePresent","labelCount","location","projectId","repositoryId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpArtifactRegistry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"adminUserEnabled":{"type":"boolean"},"anonymousPullEnabled":{"type":"boolean"},"creationDate":{"type":"string","nullable":true},"dataEndpointEnabled":{"type":"boolean","nullable":true},"dataEndpointHostNames":{"type":"array","items":{"type":"string"}},"encryptionKeyIdentifierPresent":{"type":"boolean"},"encryptionKeyVaultUriPresent":{"type":"boolean"},"encryptionStatus":{"type":"string","nullable":true},"ipRuleCount":{"type":"integer","minimum":0},"location":{"type":"string"},"loginServer":{"type":"string","nullable":true},"managedTagCount":{"type":"integer","minimum":0},"name":{"type":"string"},"networkRuleBypassOptions":{"type":"string"},"networkRuleDefaultAction":{"type":"string","nullable":true},"policiesPresent":{"type":"boolean"},"policyCount":{"type":"integer","minimum":0},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string"},"resourceGroup":{"type":"string"},"resourceId":{"type":"string","nullable":true},"skuName":{"type":"string"},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"type":{"type":"string","nullable":true},"zoneRedundancy":{"type":"string"}},"required":["adminUserEnabled","anonymousPullEnabled","dataEndpointHostNames","encryptionKeyIdentifierPresent","encryptionKeyVaultUriPresent","ipRuleCount","location","managedTagCount","name","networkRuleBypassOptions","policiesPresent","policyCount","privateEndpointConnectionCount","publicNetworkAccess","resourceGroup","skuName","status","zoneRedundancy"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerRegistry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"reachable":{"type":"boolean"},"registryUrl":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["reachable","registryUrl","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["artifact-registry"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"artifactsEncryptionDisabled":{"type":"boolean","nullable":true},"artifactsType":{"type":"string","nullable":true},"cloudWatchLogsStatus":{"type":"string","nullable":true},"computeType":{"type":"string","nullable":true},"created":{"type":"number","nullable":true},"description":{"type":"string","nullable":true},"encryptionKeyPresent":{"type":"boolean"},"environmentImage":{"type":"string","nullable":true},"environmentType":{"type":"string","nullable":true},"environmentVariableCount":{"type":"integer","minimum":0},"imagePullCredentialsType":{"type":"string","nullable":true},"lastModified":{"type":"number","nullable":true},"privilegedMode":{"type":"boolean","nullable":true},"projectArn":{"type":"string","nullable":true},"projectName":{"type":"string"},"queuedTimeoutInMinutes":{"type":"integer","nullable":true},"s3LogsStatus":{"type":"string","nullable":true},"serviceRolePresent":{"type":"boolean"},"sourceType":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"timeoutInMinutes":{"type":"integer","nullable":true}},"required":["encryptionKeyPresent","environmentVariableCount","projectName","serviceRolePresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsCodeBuild"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"buildConfigId":{"type":"string"},"environmentVariableCount":{"type":"integer","minimum":0},"location":{"type":"string"},"projectId":{"type":"string"},"serviceAccount":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["buildConfigId","environmentVariableCount","location","projectId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudBuild"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"environmentVariableCount":{"type":"integer","minimum":0},"managedEnvironmentId":{"type":"string"},"managedIdentityId":{"type":"string","nullable":true},"resourceGroupName":{"type":"string"},"resourcePrefix":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["environmentVariableCount","managedEnvironmentId","resourceGroupName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerApps"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"active":{"type":"integer","nullable":true},"completionTime":{"type":"string","nullable":true,"format":"date-time"},"conditionCount":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"failed":{"type":"integer","nullable":true},"imageDigest":{"type":"string","nullable":true},"jobName":{"type":"string"},"namespace":{"type":"string"},"startTime":{"type":"string","nullable":true,"format":"date-time"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"succeeded":{"type":"integer","nullable":true}},"required":["conditionCount","events","jobName","namespace","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetesJob"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["build"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"enabled":{"type":"boolean"},"lastOperationName":{"type":"string","nullable":true},"projectId":{"type":"string"},"serviceName":{"type":"string"},"serviceResourceName":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"title":{"type":"string","nullable":true}},"required":["enabled","projectId","serviceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceUsage"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"type":"string"},"providerId":{"type":"string","nullable":true},"registered":{"type":"boolean"},"registrationPolicy":{"type":"string","nullable":true},"registrationState":{"type":"string","nullable":true},"resourceTypeCount":{"type":"integer","minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["namespace","registered","resourceTypeCount","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureResourceProvider"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["service_activation"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"location":{"type":"string","nullable":true},"managedTags":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"name":{"type":"string"},"provisioningState":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["managedTags","name","status"]},"resourceType":{"type":"string","enum":["azure_resource_group"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"allowBlobPublicAccess":{"type":"boolean","nullable":true},"allowSharedKeyAccess":{"type":"boolean","nullable":true},"encryptionKeySource":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"minimumTlsVersion":{"type":"string","nullable":true},"name":{"type":"string"},"networkBypass":{"type":"string","nullable":true},"networkDefaultAction":{"type":"string","nullable":true},"networkIpRuleCount":{"type":"integer","nullable":true,"minimum":0},"networkResourceAccessRuleCount":{"type":"integer","nullable":true,"minimum":0},"networkVirtualNetworkRuleCount":{"type":"integer","nullable":true,"minimum":0},"primaryEndpoints":{"type":"object","properties":{"blob":{"type":"string","nullable":true},"dfs":{"type":"string","nullable":true},"file":{"type":"string","nullable":true},"queue":{"type":"string","nullable":true},"table":{"type":"string","nullable":true},"web":{"type":"string","nullable":true}}},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"requireInfrastructureEncryption":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"secondaryEndpoints":{"type":"object","properties":{"blob":{"type":"string","nullable":true},"dfs":{"type":"string","nullable":true},"file":{"type":"string","nullable":true},"queue":{"type":"string","nullable":true},"table":{"type":"string","nullable":true},"web":{"type":"string","nullable":true}}},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"supportsHttpsTrafficOnly":{"type":"boolean","nullable":true}},"required":["name","primaryEndpoints","secondaryEndpoints","status"]},"resourceType":{"type":"string","enum":["azure_storage_account"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"customDomainVerificationId":{"type":"string","nullable":true},"defaultDomain":{"type":"string","nullable":true},"eventStreamEndpoint":{"type":"string","nullable":true},"infrastructureResourceGroup":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"name":{"type":"string"},"provisioningState":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"staticIp":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workloadProfileCount":{"type":"integer","minimum":0},"workloadProfiles":{"type":"array","items":{"type":"object","properties":{"maximumCount":{"type":"integer","nullable":true},"minimumCount":{"type":"integer","nullable":true},"name":{"type":"string"},"workloadProfileType":{"type":"string"}},"required":["name","workloadProfileType"]}},"zoneRedundant":{"type":"boolean","nullable":true}},"required":["name","status","workloadProfileCount","workloadProfiles"]},"resourceType":{"type":"string","enum":["azure_container_apps_environment"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"createdAt":{"type":"string","nullable":true},"disableLocalAuth":{"type":"boolean","nullable":true},"location":{"type":"string","nullable":true},"metricId":{"type":"string","nullable":true},"minimumTlsVersion":{"type":"string","nullable":true},"name":{"type":"string"},"namespaceStatus":{"type":"string","nullable":true},"premiumMessagingPartitions":{"type":"integer","nullable":true},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"serviceBusEndpoint":{"type":"string","nullable":true},"skuCapacity":{"type":"integer","nullable":true},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updatedAt":{"type":"string","nullable":true},"zoneRedundant":{"type":"boolean","nullable":true}},"required":["name","privateEndpointConnectionCount","status"]},"resourceType":{"type":"string","enum":["azure_service_bus_namespace"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"region":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["region","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsBedrock"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string"},"project":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["location","project","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpVertex"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"type":"string"},"endpoint":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["accountName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureFoundry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"provider":{"type":"string","description":"The BYO-key provider serving this binding (e.g. \"openai\"). Used on the Local\nplatform, where the app brings its own provider key instead of an ambient cloud."},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["provider","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["external"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["ai"]}},"required":["data","resourceType"]}]},"deploymentId":{"type":"string","nullable":true},"observedAt":{"type":"string","format":"date-time"},"raw":{"type":"array","items":{"type":"object","properties":{"body":{"type":"string"},"collectedAt":{"type":"string","format":"date-time"},"format":{"type":"string","enum":["json","yaml","text"]},"source":{"type":"string"},"truncated":{"type":"boolean"}},"required":["body","collectedAt","format","source","truncated"]}},"resourceId":{"type":"string","description":"Alien resource id, such as the `alien.Container` or `alien.Storage`\nresource id from the stack."},"resourceType":{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior."}},"required":["backend","controllerPlatform","data","observedAt","raw","resourceId","resourceType"]},"raw":{"type":"array","items":{"nullable":true}}},"required":["status","deploymentId","resourceId","resourceType","backend","controllerPlatform","observedAt","staleAt","platformStale","heartbeat","raw"]},{"type":"object","properties":{"status":{"type":"string","enum":["missing"]},"deploymentId":{"type":"string"},"resourceId":{"type":"string"},"resourceType":{"type":"string"}},"required":["status","deploymentId","resourceId","resourceType"]}]}},"required":["deployment","heartbeat"]}}}},"404":{"description":"Deployment or resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resolve":{"get":{"operationId":"resolve","tags":["resolve"],"summary":"Resolve manager for a project and platform","description":"Returns the manager URL for a given project and platform. The project can be provided as a query parameter, or derived from the token's scope (project-scoped, deployment-group-scoped, or deployment-scoped tokens carry an implicit project). This is the single entry point for all CLI tools to discover which manager to talk to.","x-speakeasy-group":"resolve","x-speakeasy-name-override":"resolve","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform to resolve the manager for"},"required":true,"description":"Target platform to resolve the manager for","name":"platform","in":"query"},{"schema":{"type":"string","maxLength":100,"description":"Project ID or name. Required for user and workspace-scoped tokens. Optional for project/deployment-group/deployment-scoped tokens (derived from token scope)."},"required":false,"description":"Project ID or name. Required for user and workspace-scoped tokens. Optional for project/deployment-group/deployment-scoped tokens (derived from token scope).","name":"project","in":"query"}],"responses":{"200":{"description":"Manager resolved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveResponse"}}}},"400":{"description":"Missing required project parameter for this token type.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project not found or no manager available for platform.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"Manager not ready yet (no URL reported). Retry after a delay.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/cloud-regions":{"get":{"operationId":"getCloudRegions","description":"Get cloud regions supported by this Alien environment.","x-speakeasy-group":"cloudRegions","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Supported cloud regions retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloudRegionsResponse"}}}}}}},"/v1/billing/audit-log":{"get":{"operationId":"listBillingAuditLog","description":"List billing activity entries for the current workspace.","x-speakeasy-group":"billing","x-speakeasy-name-override":"listAuditLog","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"number","minimum":1,"maximum":200,"default":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor: id from the previous page."},"required":false,"description":"Cursor: id from the previous page.","name":"before","in":"query"}],"responses":{"200":{"description":"Audit-log rows newest-first.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/BillingAuditLogRow"}},"nextCursor":{"type":"string","nullable":true}},"required":["items","nextCursor"]}}}}}}},"/v1/billing/entitlements":{"get":{"operationId":"getWorkspaceBillingEntitlements","description":"Get the workspace billing entitlements used for product feature gates. Autumn is the source of truth; the response is served through the workspace billing read model with stale-cache fallback.","x-speakeasy-group":"billing","x-speakeasy-name-override":"getEntitlements","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Workspace billing entitlements.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceBillingEntitlements"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}}}} \ No newline at end of file +{"openapi":"3.0.0","info":{"title":"Alien API","version":"1.0.0","contact":{"name":"Alien Team","url":"https://alien.dev"}},"servers":[{"url":"https://api.alien.dev","description":"Alien API - Production"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","bearerFormat":"API key","description":"API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys"}},"schemas":{"WorkspaceInvitationPreview":{"type":"object","properties":{"kind":{"type":"string","enum":["email","link"]},"workspace":{"type":"object","properties":{"id":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$"},"logoUrl":{"type":"string","nullable":true,"format":"uri"}},"required":["id","name","logoUrl"]},"inviter":{"type":"object","nullable":true,"properties":{"name":{"type":"string"},"image":{"type":"string","nullable":true,"format":"uri"}},"required":["name","image"]},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"expiresAt":{"type":"string","format":"date-time"},"state":{"type":"string","enum":["active","accepted","expired","revoked"]},"emailHint":{"type":"string","nullable":true}},"required":["kind","workspace","inviter","role","expiresAt","state","emailHint"],"additionalProperties":false},"WorkspaceRole":{"type":"string","enum":["workspace.viewer","workspace.member","workspace.admin"],"description":"Role for workspace-scoped service accounts","example":"workspace.member"},"APIError":{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"message":{"type":"string","maxLength":16384,"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."},"source":{"nullable":true,"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."},"retryable":{"type":"boolean","default":false,"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."},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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."},"requestId":{"type":"string","description":"Request ID echoed in the x-request-id response header and server logs."}},"required":["code","message","internal"]},"Membership":{"type":"object","properties":{"id":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$"},"logoUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"role":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","logoUrl","role","createdAt"],"additionalProperties":false},"UserProfile":{"type":"object","properties":{"id":{"type":"string","description":"Unique user identifier"},"email":{"type":"string","description":"User's email address"},"name":{"type":"string","description":"User's display name"},"image":{"type":"string","nullable":true,"description":"User's avatar image URL"},"githubUsername":{"type":"string","nullable":true,"description":"Linked GitHub username"},"cliConnected":{"type":"boolean","description":"Whether this user has ever authenticated a request from the Alien CLI. Latched on first CLI request, never cleared."},"company":{"type":"string","nullable":true,"description":"Company name collected during profile setup."},"acquisitionSource":{"type":"string","nullable":true,"enum":["github","x-twitter","linkedin","hacker-news","reddit","search","friend-or-colleague","founder","event-or-community","other",null],"description":"How the user heard about Alien."},"acquisitionSourceDetail":{"type":"string","nullable":true,"description":"Additional acquisition source detail when the source is other."},"useCases":{"type":"string","nullable":true,"description":"What the user is hoping to use Alien for."},"profileSetupCompletedAt":{"type":"string","format":"date-time","nullable":true,"description":"When the user completed the required profile setup dialog."},"profileSetupVersion":{"type":"integer","nullable":true,"description":"Version of the required profile setup dialog the user completed."}},"required":["id","email","name","image","githubUsername","cliConnected","company","acquisitionSource","acquisitionSourceDetail","useCases","profileSetupCompletedAt","profileSetupVersion"],"additionalProperties":false},"UserProfileSetupRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Display name"},"company":{"type":"string","minLength":1,"maxLength":120,"description":"Company name"},"acquisitionSource":{"type":"string","enum":["github","x-twitter","linkedin","hacker-news","reddit","search","friend-or-colleague","founder","event-or-community","other"],"description":"How the user heard about Alien"},"acquisitionSourceDetail":{"type":"string","minLength":1,"maxLength":200,"description":"Required when acquisitionSource is other"},"useCases":{"type":"string","maxLength":2000,"description":"What the user is hoping to use Alien for"}},"required":["name","company","acquisitionSource"],"additionalProperties":false},"GitNamespace":{"type":"object","properties":{"id":{"type":"number","nullable":true},"name":{"type":"string"},"slug":{"type":"string"},"installationId":{"type":"number","nullable":true},"type":{"type":"string","enum":["team","user"]},"provider":{"type":"string","enum":["github"]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","slug","installationId","type","provider","createdAt"],"additionalProperties":false},"GitRepository":{"type":"object","properties":{"name":{"type":"string"},"private":{"type":"boolean"},"defaultBranch":{"type":"string"},"pushedAt":{"type":"string","format":"date-time"}},"required":["name","private","defaultBranch"],"additionalProperties":false},"AcceptWorkspaceInvitationResponse":{"type":"object","properties":{"outcome":{"type":"string","enum":["joined","already-member"]},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"workspaceName":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$"},"role":{"$ref":"#/components/schemas/WorkspaceRole"}},"required":["outcome","workspaceId","workspaceName","role"],"additionalProperties":false},"Subject":{"oneOf":[{"$ref":"#/components/schemas/UserSubject"},{"$ref":"#/components/schemas/ServiceAccountSubject"}],"discriminator":{"propertyName":"kind","mapping":{"user":"#/components/schemas/UserSubject","serviceAccount":"#/components/schemas/ServiceAccountSubject"}},"description":"Authenticated principal that can be either a user (with workspace-scoped permissions) or a service account (with configurable scope and role)"},"UserSubject":{"type":"object","properties":{"kind":{"type":"string","enum":["user"],"description":"Subject type identifier"},"id":{"type":"string","description":"Unique user identifier"},"email":{"type":"string","format":"email","description":"User's email address"},"workspaceId":{"type":"string","description":"ID of the workspace the user is authenticated within"},"workspaceName":{"type":"string","description":"Name of the workspace the user is authenticated within"},"role":{"$ref":"#/components/schemas/UserRole"}},"required":["kind","id","email","workspaceId","role"],"description":"Authenticated user subject with workspace-scoped permissions"},"UserRole":{"type":"string","enum":["workspace.viewer","workspace.member","workspace.admin"],"description":"User's role within the workspace","example":"workspace.member"},"ServiceAccountSubject":{"type":"object","properties":{"kind":{"type":"string","enum":["serviceAccount"],"description":"Subject type identifier"},"id":{"type":"string","description":"Unique service account identifier (API key ID)"},"workspaceId":{"type":"string","description":"ID of the workspace the service account belongs to"},"workspaceName":{"type":"string","description":"Name of the workspace the service account belongs to"},"scope":{"$ref":"#/components/schemas/SubjectScope"},"role":{"$ref":"#/components/schemas/Role"}},"required":["kind","id","workspaceId","scope","role"],"description":"Authenticated service account subject with scoped permissions (workspace, project, or deployment level)"},"SubjectScope":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["workspace"],"description":"Workspace-scoped access"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["project"],"description":"Project-scoped access"},"projectId":{"type":"string","description":"ID of the specific project this scope applies to"}},"required":["type","projectId"]},{"type":"object","properties":{"type":{"type":"string","enum":["deployment"],"description":"Deployment-scoped access"},"deploymentId":{"type":"string","description":"ID of the specific deployment this scope applies to"},"projectId":{"type":"string","description":"ID of the project this deployment belongs to"}},"required":["type","deploymentId","projectId"]},{"type":"object","properties":{"type":{"type":"string","enum":["deployment-group"],"description":"Deployment group-scoped access"},"deploymentGroupId":{"type":"string","description":"ID of the specific deployment group this scope applies to"},"projectId":{"type":"string","description":"ID of the project this deployment group belongs to"}},"required":["type","deploymentGroupId","projectId"]},{"type":"object","properties":{"type":{"type":"string","enum":["manager"],"description":"Manager-scoped access"},"managerId":{"type":"string","description":"ID of the specific manager this scope applies to"}},"required":["type","managerId"]}],"description":"Authorization scope defining what resources this service account can access"},"Role":{"oneOf":[{"$ref":"#/components/schemas/WorkspaceRole"},{"$ref":"#/components/schemas/ProjectRole"},{"$ref":"#/components/schemas/DeploymentRole"},{"$ref":"#/components/schemas/DeploymentGroupRole"},{"$ref":"#/components/schemas/ManagerRole"}],"description":"Role defining what actions this service account can perform within its scope","example":"workspace.member"},"ProjectRole":{"type":"string","enum":["project.viewer","project.developer"],"description":"Role for project-scoped service accounts","example":"project.developer"},"DeploymentRole":{"type":"string","enum":["deployment.viewer","deployment.manager","deployment.telemetry-writer"],"description":"Role for deployment-scoped service accounts","example":"deployment.manager"},"DeploymentGroupRole":{"type":"string","enum":["deployment-group.deployer"],"description":"Role for deployment group-scoped service accounts","example":"deployment-group.deployer"},"ManagerRole":{"type":"string","enum":["manager.runtime"],"description":"Role for manager-scoped service accounts","example":"manager.runtime"},"Workspace":{"type":"object","properties":{"id":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name.","example":"my-workspace"},"logoUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"onboardingDismissedAt":{"type":"string","format":"date-time","nullable":true,"description":"When the Getting Started walkthrough was dismissed or completed for this workspace. Null means it has never been dismissed; the dashboard auto-promotes the walkthrough until this is set."},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","onboardingDismissedAt","createdAt"],"additionalProperties":false},"WorkspaceMember":{"type":"object","properties":{"userId":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"image":{"type":"string","nullable":true},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"joinedAt":{"type":"string","format":"date-time"}},"required":["userId","email","name","image","role","joinedAt"],"additionalProperties":false},"AgentSettings":{"type":"object","properties":{"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"enabled":{"type":"boolean","description":"Workspace on/off switch for the ai-agent. When `false`, incoming triggers (release/deployment monitoring and Slack-invoked sessions) are rejected before any session runs. Defaults to `true`."},"debugPermissionMode":{"type":"string","enum":["auto","ask"],"description":"Workspace-level policy for ai-agent debug commands. `auto` runs `alien_debug` tool calls without asking; `ask` halts each session before every debug command and waits for a human approval from dashboard or Slack."},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["workspaceId","enabled","debugPermissionMode","createdAt","updatedAt"],"additionalProperties":false},"UpdateWorkspaceSettingsRequest":{"type":"object","properties":{"debugPermissionMode":{"type":"string","enum":["auto","ask"],"description":"Workspace-level policy for ai-agent debug commands. `auto` runs `alien_debug` tool calls without asking; `ask` halts each session before every debug command and waits for a human approval from dashboard or Slack."},"enabled":{"type":"boolean","description":"Turn the ai-agent on (`true`) or off (`false`) for this workspace."}}},"WorkspaceInvitation":{"type":"object","properties":{"id":{"type":"string","pattern":"winv_[0-9a-zA-Z]{32}$","description":"Unique identifier for the workspace invitation.","example":"winv_DsgltMIFV0GmqtxV5NYTtrknrna"},"email":{"type":"string","format":"email"},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"status":{"type":"string","enum":["pending","accepted","revoked","expired"]},"deliveryStatus":{"type":"string","enum":["pending","sent","failed"]},"expiresAt":{"type":"string","format":"date-time"},"lastSentAt":{"type":"string","format":"date-time","nullable":true},"createdAt":{"type":"string","format":"date-time"},"inviteUrl":{"type":"string","format":"uri"}},"required":["id","email","role","status","deliveryStatus","expiresAt","lastSentAt","createdAt","inviteUrl"],"additionalProperties":false},"WorkspaceInviteLink":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"wil_[0-9a-zA-Z]{40}$","description":"Unique identifier for the workspace invite link.","example":"wil_RgcthDSZ37rmFLekuItpFS7btjXoYwou1gE4"},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"expiresAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"useCount":{"type":"integer","minimum":0},"lastUsedAt":{"type":"string","format":"date-time","nullable":true},"inviteUrl":{"type":"string","format":"uri"}},"required":["id","role","expiresAt","createdAt","useCount","lastUsedAt","inviteUrl"],"additionalProperties":false},"ProjectListItemResponse":{"allOf":[{"$ref":"#/components/schemas/Project"},{"type":"object","properties":{"deploymentCount":{"type":"number"},"latestRelease":{"$ref":"#/components/schemas/ProjectReleaseInfo"}}}]},"DeploymentPortalAppearancePreset":{"type":"string","enum":["clean","technical","enterprise","playful","minimal"],"default":"clean","description":"Curated visual style for the deployment portal."},"DeploymentPortalAccentColor":{"type":"string","enum":["blue","purple","green","orange","pink","slate"],"default":"blue","description":"Accent color used for highlights and primary actions."},"DeploymentPortalDensity":{"type":"string","enum":["comfortable","compact"],"default":"comfortable","description":"Layout density for portal content."},"ProjectReleaseInfo":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"gitMetadata":{"$ref":"#/components/schemas/GitMetadata"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","gitMetadata","createdAt"]},"GitMetadata":{"type":"object","nullable":true,"properties":{"commitSha":{"type":"string","nullable":true,"maxLength":40,"description":"The hash of the commit","example":"dc36199b2234c6586ebe05ec94078a895c707e29"},"commitMessage":{"type":"string","nullable":true,"maxLength":1024,"description":"The commit message","example":"add method to measure Interaction to Next Paint (INP) (#36490)"},"commitRef":{"type":"string","nullable":true,"maxLength":256,"description":"The branch or tag on which the commit was made","example":"main"},"commitDate":{"type":"string","nullable":true,"format":"date-time","description":"The date and time when the commit was created","example":"2026-03-16T12:00:00Z"},"dirty":{"type":"boolean","nullable":true,"description":"Whether or not there have been modifications to the working tree since the latest commit","example":true},"remoteUrl":{"type":"string","nullable":true,"maxLength":2048,"description":"The git repository's remote origin url","example":"https://github.com/alienplatform/alien"},"commitAuthorName":{"type":"string","nullable":true,"maxLength":256,"description":"The name of the author of the commit (from git config)","example":"John Doe"},"commitAuthorEmail":{"type":"string","nullable":true,"maxLength":256,"format":"email","description":"The email of the author of the commit (from git config)","example":"john@example.com"},"commitAuthorLogin":{"type":"string","nullable":true,"maxLength":256,"description":"The provider username of the commit author (e.g., GitHub login), resolved server-side from the commit email","example":"johndoe"},"commitAuthorAvatarUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"The avatar URL of the commit author, resolved server-side from the provider login","example":"https://github.com/johndoe.png"},"provider":{"$ref":"#/components/schemas/GitProvider"}}},"GitProvider":{"oneOf":[{"$ref":"#/components/schemas/GitHubProvider"},{"$ref":"#/components/schemas/GitLabProvider"},{"nullable":true}],"description":"Provider-specific repository information, resolved server-side from remoteUrl"},"GitHubProvider":{"type":"object","properties":{"type":{"type":"string","enum":["github"]},"org":{"type":"string","maxLength":256,"description":"Repository owner (user or organization)"},"repo":{"type":"string","maxLength":256,"description":"Repository name"}},"required":["type","org","repo"]},"GitLabProvider":{"type":"object","properties":{"type":{"type":"string","enum":["gitlab"]},"namespace":{"type":"string","maxLength":256,"description":"Group/project namespace"},"project":{"type":"string","maxLength":256,"description":"Project name"}},"required":["type","namespace","project"]},"Project":{"type":"object","properties":{"id":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Project name.","example":"my-app"},"gitRepository":{"type":"object","nullable":true,"properties":{"type":{"type":"string","enum":["github"],"description":"The Git Provider of the repository","example":"github"},"repo":{"type":"string","maxLength":128,"description":"The name of the git repository","example":"alien/my-agent"}},"required":["type","repo"],"additionalProperties":false,"description":"Verified source repository connected to the project. Alien uses this for GitHub Actions setup and source-aware features; releases are still created explicitly by CI or `alien release`."},"rootDirectory":{"type":"string","nullable":true,"maxLength":256,"description":"The name of a directory or relative path to the source code of your project. When null is used it will default to the project root"},"deploymentPortalAppearance":{"type":"object","nullable":true,"properties":{"avatarUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional project-specific avatar override for the deployment portal."},"preset":{"$ref":"#/components/schemas/DeploymentPortalAppearancePreset"},"accentColor":{"$ref":"#/components/schemas/DeploymentPortalAccentColor"},"title":{"type":"string","nullable":true,"maxLength":80,"description":"Optional portal title. Defaults to the project name."},"subtitle":{"type":"string","nullable":true,"maxLength":160,"description":"Optional customer-facing subtitle."},"supportUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional support or contact URL."},"docsUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional documentation URL."},"density":{"$ref":"#/components/schemas/DeploymentPortalDensity"}},"description":"Customer-facing deployment portal appearance settings."},"packagesConfig":{"type":"object","nullable":true,"properties":{"cli":{"type":"object","nullable":true,"properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"},"enabled":{"type":"boolean","description":"Whether CLI package generation is enabled"}},"required":["displayName","name","enabled"],"description":"CLI package configuration. If null, CLI packages will not be generated."},"cloudformation":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether CloudFormation package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"CloudFormation package configuration. If null, CloudFormation packages will not be generated."},"operatorImage":{"type":"object","nullable":true,"properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"},"enabled":{"type":"boolean","description":"Whether Operator image package generation is enabled"}},"required":["displayName","name","enabled"],"description":"Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated."},"helm":{"type":"object","nullable":true,"properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"},"enabled":{"type":"boolean","description":"Whether Helm chart package generation is enabled"}},"required":["chartName","description","enabled"],"description":"Helm chart package configuration. If null, Helm packages will not be generated."},"terraform":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether Terraform package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"Terraform package configuration. If null, Terraform packages will not be generated."}},"description":"Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform)"},"domainId":{"type":"string","nullable":true,"pattern":"dom_[0-9a-z]{28}$","description":"Selected domain for this project (null = default system domain)","example":"dom_469m0agk8luj4s16sakmmpdd"},"defaultManagers":{"type":"object","nullable":true,"properties":{"aws":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"gcp":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"azure":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"kubernetes":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"machines":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"local":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"}},"description":"Project default private managers for new push deployments."},"createdAt":{"type":"string","format":"date-time"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"}},"required":["id","name","createdAt","workspaceId"]},"ProjectIDOrNamePathParam":{"type":"string","maxLength":100,"description":"Project ID or name."},"ProjectGcpOAuthProvider":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["alien-managed"]},"redirectUris":{"type":"array","items":{"type":"string","format":"uri"},"description":"Authorized redirect URIs that must be configured on the Google OAuth client."}},"required":["mode","redirectUris"]},{"type":"object","properties":{"mode":{"type":"string","enum":["custom"]},"clientId":{"$ref":"#/components/schemas/GcpOAuthClientId"},"hasClientSecret":{"type":"boolean","enum":[true]},"redirectUris":{"type":"array","items":{"type":"string","format":"uri"},"description":"Authorized redirect URIs that must be configured on the Google OAuth client."}},"required":["mode","clientId","hasClientSecret","redirectUris"]}]},"GcpOAuthClientId":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[a-zA-Z0-9_-]+-[a-zA-Z0-9_-]+\\.apps\\.googleusercontent\\.com$","description":"Google OAuth web client ID.","example":"1234567890-abc123.apps.googleusercontent.com"},"UpdateProjectGcpOAuthProvider":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["alien-managed"]}},"required":["mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["custom"]},"clientId":{"$ref":"#/components/schemas/GcpOAuthClientId"},"clientSecret":{"$ref":"#/components/schemas/GcpOAuthClientSecret"}},"required":["mode","clientId"]}]},"GcpOAuthClientSecret":{"type":"string","minLength":1,"maxLength":512,"description":"Google OAuth web client secret. Write-only; never returned by the API.","example":"GOCSPX-example"},"UpdateProject":{"type":"object","properties":{"gitRepository":{"type":"object","nullable":true,"properties":{"type":{"type":"string","enum":["github"],"description":"The Git Provider of the repository","example":"github"},"repo":{"type":"string","maxLength":128,"description":"The name of the git repository","example":"alien/my-agent"}},"required":["type","repo"],"additionalProperties":false,"description":"Verified source repository connected to the project. Alien uses this for GitHub Actions setup and source-aware features; releases are still created explicitly by CI or `alien release`."},"rootDirectory":{"type":"string","nullable":true,"maxLength":256,"description":"The name of a directory or relative path to the source code of your project. When null is used it will default to the project root"},"deploymentPortalAppearance":{"type":"object","nullable":true,"properties":{"avatarUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional project-specific avatar override for the deployment portal."},"preset":{"$ref":"#/components/schemas/DeploymentPortalAppearancePreset"},"accentColor":{"$ref":"#/components/schemas/DeploymentPortalAccentColor"},"title":{"type":"string","nullable":true,"maxLength":80,"description":"Optional portal title. Defaults to the project name."},"subtitle":{"type":"string","nullable":true,"maxLength":160,"description":"Optional customer-facing subtitle."},"supportUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional support or contact URL."},"docsUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional documentation URL."},"density":{"$ref":"#/components/schemas/DeploymentPortalDensity"}},"description":"Customer-facing deployment portal appearance settings."},"packagesConfig":{"type":"object","nullable":true,"properties":{"cli":{"type":"object","nullable":true,"properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"},"enabled":{"type":"boolean","description":"Whether CLI package generation is enabled"}},"required":["displayName","name","enabled"],"description":"CLI package configuration. If null, CLI packages will not be generated."},"cloudformation":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether CloudFormation package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"CloudFormation package configuration. If null, CloudFormation packages will not be generated."},"operatorImage":{"type":"object","nullable":true,"properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"},"enabled":{"type":"boolean","description":"Whether Operator image package generation is enabled"}},"required":["displayName","name","enabled"],"description":"Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated."},"helm":{"type":"object","nullable":true,"properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"},"enabled":{"type":"boolean","description":"Whether Helm chart package generation is enabled"}},"required":["chartName","description","enabled"],"description":"Helm chart package configuration. If null, Helm packages will not be generated."},"terraform":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether Terraform package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"Terraform package configuration. If null, Terraform packages will not be generated."}},"description":"Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform)"},"domainId":{"type":"string","nullable":true,"pattern":"dom_[0-9a-z]{28}$","description":"Selected domain for this project (null = default system domain)","example":"dom_469m0agk8luj4s16sakmmpdd"},"defaultManagers":{"type":"object","nullable":true,"properties":{"aws":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"gcp":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"azure":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"kubernetes":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"machines":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"local":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"}},"description":"Project default private managers for new push deployments."}}},"DeploymentPortalDomainResponse":{"type":"object","properties":{"deploymentPortalEndpoint":{"$ref":"#/components/schemas/DomainEndpoint"},"packageEndpoint":{"$ref":"#/components/schemas/DomainEndpoint"}},"required":["deploymentPortalEndpoint","packageEndpoint"]},"DomainEndpoint":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"dend_[0-9a-z]{28}$","description":"Unique identifier for the domain endpoint.","example":"dend_1bb6gdvm1bs74acqkjstcgv"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"domainId":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"kind":{"$ref":"#/components/schemas/DomainEndpointKind"},"owner":{"$ref":"#/components/schemas/DomainEndpointOwner"},"hostname":{"type":"string","minLength":1,"maxLength":253},"status":{"$ref":"#/components/schemas/DomainEndpointStatus"},"provider":{"type":"string","nullable":true},"providerState":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"managedDnsRecords":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentPortalManagedDnsRecord"}},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},"lockedAt":{"type":"string","format":"date-time","nullable":true},"lockedBy":{"type":"string","nullable":true},"retryAttempts":{"type":"integer","minimum":0},"nextStepAfter":{"type":"string","format":"date-time","nullable":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","workspaceId","domainId","kind","owner","hostname","status","managedDnsRecords","retryAttempts","createdAt","updatedAt"]},"DomainEndpointKind":{"type":"string","enum":["deployment_portal","workspace_packages","manager_api","deployment_url_base"]},"DomainEndpointOwner":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/DomainEndpointOwnerType"},"id":{"type":"string"}},"required":["type","id"]},"DomainEndpointOwnerType":{"type":"string","enum":["workspace","project","manager"]},"DomainEndpointStatus":{"type":"string","enum":["waiting_for_domain","provisioning","waiting_for_dns","waiting_for_health","active","failed","deleting"]},"DeploymentPortalManagedDnsRecord":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"value":{"type":"string"},"ttl":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true}},"required":["name","type","value"]},"DeploymentLinkSetupResponse":{"type":"object","properties":{"activeRelease":{"type":"object","properties":{"id":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"version":{"type":"string","nullable":true},"stack":{"allOf":[{"$ref":"#/components/schemas/StackByPlatform"}],"nullable":true}},"required":["id","version","stack"]},"visiblePackageTypes":{"type":"array","items":{"type":"string","enum":["cli","cloudformation","helm","operator-image","terraform"],"description":"Types of packages that can be built"}},"visibleSetupMethods":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentSetupMethod"}}},"required":["activeRelease","visiblePackageTypes","visibleSetupMethods"]},"StackByPlatform":{"type":"object","properties":{"aws":{"nullable":true},"gcp":{"nullable":true},"azure":{"nullable":true},"kubernetes":{"nullable":true},"machines":{"nullable":true},"local":{"nullable":true},"test":{"nullable":true}},"additionalProperties":false},"DeploymentSetupMethod":{"type":"string","enum":["cloudformation","google-oauth","terraform","helm","cli","manual"]},"DeploymentGroup":{"type":"object","properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"externalId":{"type":"string","nullable":true,"minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9][A-Za-z0-9._~-]*$","description":"Case-sensitive, URL- and header-safe identifier from the integrating application.","example":"ext_example_01"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"maxDeployments":{"type":"integer","minimum":1,"default":100,"description":"Maximum number of deployments allowed in this deployment group"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","externalId","projectId","workspaceId","createdAt"]},"CreateDeploymentGroupRequest":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"externalId":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9][A-Za-z0-9._~-]*$","description":"Case-sensitive, URL- and header-safe identifier from the integrating application.","example":"ext_example_01"},"project":{"type":"string","maxLength":100,"description":"Project ID or name this deployment group belongs to"},"maxDeployments":{"type":"integer","minimum":1,"default":100,"description":"Maximum number of deployments in this deployment group"}},"required":["name","project"]},"EnsureDeploymentGroupByNameRequest":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"project":{"type":"string","maxLength":100,"description":"Project ID or name this deployment group belongs to"},"maxDeployments":{"type":"integer","minimum":1,"default":100,"description":"Maximum number of deployments for newly created groups"}},"required":["name","project"]},"EnsureDeploymentGroupByExternalIdRequest":{"type":"object","properties":{"externalId":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9][A-Za-z0-9._~-]*$","description":"Case-sensitive, URL- and header-safe identifier from the integrating application.","example":"ext_example_01"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"project":{"type":"string","maxLength":100,"description":"Project ID or name this deployment group belongs to"},"maxDeployments":{"type":"integer","minimum":1,"default":100,"description":"Maximum number of deployments for newly created groups"}},"required":["externalId","name","project"]},"ProjectIDOrNameQueryParam":{"type":"string","maxLength":100,"description":"Filter by project ID or name."},"SetDeploymentGroupExternalIdRequest":{"type":"object","properties":{"externalId":{"type":"string","nullable":true,"minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9][A-Za-z0-9._~-]*$","description":"Case-sensitive, URL- and header-safe identifier from the integrating application.","example":"ext_example_01"}},"required":["externalId"]},"UpdateDeploymentGroupRequest":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"maxDeployments":{"type":"integer","minimum":1,"description":"Maximum number of deployments in this deployment group"}}},"CreateDeploymentGroupTokenResponse":{"type":"object","properties":{"token":{"type":"string","description":"The API key token"},"deploymentLink":{"type":"string","description":"Formatted deployment link"}},"required":["token","deploymentLink"]},"CreateDeploymentGroupTokenRequest":{"type":"object","properties":{"description":{"type":"string","description":"Description for the API key"},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"Optional expiration date for the API key"},"deploymentSetupConfig":{"$ref":"#/components/schemas/DeploymentSetupConfig"},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"}},"required":["deploymentSetupConfig"]},"DeploymentSetupConfig":{"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"environmentVariables":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"}},"inputValues":{"$ref":"#/components/schemas/EncryptedStackInputValues"},"publicSubdomain":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","description":"Operator-pinned deployment subdomain for this setup token."}},"required":["metadata","policy","environmentVariables"]},"DeploymentSetupMetadata":{"type":"object","additionalProperties":{"nullable":true}},"DeploymentSetupPolicy":{"type":"object","properties":{"allowedPlatforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."}},"allowedKubernetesBasePlatforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","on-prem"]},"minItems":1,"description":"Kubernetes base environments the recipient may target."},"allowedKubernetesClusterSources":{"type":"array","items":{"$ref":"#/components/schemas/KubernetesClusterSource"},"minItems":1,"description":"Whether recipients may create a cluster, use an existing cluster, or both."},"allowedSetupMethods":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentSetupMethod"}},"allowReleasePinning":{"type":"boolean"},"stackSettings":{"$ref":"#/components/schemas/DeploymentSetupStackSettingsPolicy"}},"required":["allowedPlatforms","allowedSetupMethods"]},"KubernetesClusterSource":{"type":"string","enum":["create","existing"]},"DeploymentSetupStackSettingsPolicy":{"type":"object","properties":{"defaults":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."},"allowedDeploymentModels":{"type":"array","items":{"type":"string","enum":["push","pull","airgapped"]}},"allowedNetworkModes":{"type":"array","items":{"type":"string","enum":["none","create","default","byo"]}},"allowedUpdatesModes":{"type":"array","items":{"type":"string","enum":["auto","approval-required"]}},"allowedTelemetryModes":{"type":"array","items":{"type":"string","enum":["auto","approval-required","off"]}},"allowedHeartbeatsModes":{"type":"array","items":{"type":"string","enum":["on","off"]}},"allowExternalBindings":{"type":"boolean"},"allowCustomRegistry":{"type":"boolean"}}},"EnvironmentVariableConfig":{"type":"object","properties":{"name":{"type":"string","pattern":"^[A-Z_][A-Z0-9_]*$","description":"Variable name"},"value":{"type":"string","maxLength":10000,"description":"Variable value (encrypted in database)"},"type":{"$ref":"#/components/schemas/EnvironmentVariableType"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string","pattern":"^[a-zA-Z0-9_-]+(\\*)?$"},"description":"Target resource patterns (null = all resources, array = wildcard patterns)"}},"required":["name","value","type","targetResources"]},"EnvironmentVariableType":{"type":"string","enum":["plain","secret"],"description":"Variable type (plain or secret)"},"EncryptedStackInputValues":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/EncryptedStackInputValue"},"default":{}},"EncryptedStackInputValue":{"type":"object","properties":{"value":{"type":"string","description":"Encrypted JSON-encoded input value."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"]},"secret":{"type":"boolean","description":"Whether the original input is secret."}},"required":["value","kind","secret"]},"StackInputValuesRequest":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/StackInputValueRequest"},"default":{}},"StackInputValueRequest":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"CreateFirstPartyDeploymentSessionResponse":{"type":"object","properties":{"token":{"type":"string","description":"The deployment-group session token"}},"required":["token"]},"Package":{"type":"object","properties":{"id":{"type":"string","pattern":"pkg_[0-9a-z]{28}$","description":"Unique identifier for the package.","example":"pkg_jebo2o5jmm7raefl2m1pe3cz"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"type":{"type":"string","enum":["cli","cloudformation","helm","operator-image","terraform"],"description":"Types of packages that can be built"},"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"version":{"type":"string","description":"Package version (e.g., '1.0.0', 'rel_abc123')"},"sourceReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Release used as package build input. Null for release-less packages such as Operate Operator images.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"setupFingerprints":{"$ref":"#/components/schemas/SetupFingerprintMap"},"packageBuildInputHash":{"type":"string","description":"Hash of Platform-known package build request inputs: package type, source release, setup fingerprints, package config, and setup contract version"},"config":{"oneOf":[{"allOf":[{"type":"object","properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"}},"required":["displayName","name"],"description":"Branding configuration for the deploy CLI binary."},{"type":"object","properties":{"type":{"type":"string","enum":["cli"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts."},"supportedAwsRegions":{"type":"array","items":{"type":"string"},"description":"AWS regions supported by the environment that built this package."}},"description":"Configuration for CloudFormation packages"},{"type":"object","properties":{"type":{"type":"string","enum":["cloudformation"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"}},"required":["chartName","description"],"description":"Configuration for the Helm chart package"},{"type":"object","properties":{"type":{"type":"string","enum":["helm"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"}},"required":["displayName","name"],"description":"Branding configuration for the Operator image."},{"type":"object","properties":{"type":{"type":"string","enum":["operator-image"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts."},"supportedAwsRegions":{"type":"array","items":{"type":"string"},"description":"AWS regions supported by the environment that built this package."}},"description":"Configuration for Terraform package generation."},{"type":"object","properties":{"type":{"type":"string","enum":["terraform"]}},"required":["type"]}]}],"description":"Type-specific configuration"},"outputs":{"oneOf":[{"allOf":[{"type":"object","properties":{"binaries":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sha256":{"type":"string","description":"SHA256 checksum"},"size":{"type":"integer","minimum":0,"description":"File size in bytes"},"url":{"type":"string","description":"Download URL for the binary"}},"required":["sha256","size","url"],"description":"Information about a single binary artifact"},"description":"Binary information for each target platform"},"buildInfo":{"type":"object","properties":{"alienSha":{"type":"string","description":"Alien source commit used to build the source CLI and agent binaries."},"horizonSha":{"type":"string","description":"Compute backend source revision used by optional package extensions, if applicable."},"machineBundleManifestUrl":{"type":"string","nullable":true,"description":"Machine runtime release manifest embedded into the generated CLI."},"platformSha":{"type":"string","description":"Source revision used to build the package service and optional extensions."},"sourceAgentBinarySha256":{"type":"string","nullable":true,"description":"SHA256 checksum of the source runtime helper binary shipped with the CLI package, when present."},"sourceCliBinarySha256":{"type":"string","description":"SHA256 checksum of the source deploy CLI binary before white-label config is appended."}},"required":["alienSha","horizonSha","platformSha","sourceCliBinarySha256"],"description":"Source provenance for a generated CLI package."}},"required":["binaries","buildInfo"],"description":"Outputs from a CLI package build"},{"type":"object","properties":{"type":{"type":"string","enum":["cli"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"digest":{"type":"string","description":"Image digest (e.g., \"sha256:abc123...\")"},"image":{"type":"string","description":"Full image reference (e.g., \"public.ecr.aws/acme/operators/project-id:1.2.3\")"},"labelDomain":{"type":"string","nullable":true,"description":"DNS-style label domain embedded into the Operator binary, if whitelabeled."}},"required":["digest","image"],"description":"Outputs from an Operator image package build"},{"type":"object","properties":{"type":{"type":"string","enum":["operator-image"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"chart":{"type":"string","description":"OCI chart reference (e.g., \"oci://public.ecr.aws/acme/charts/project-id\")"},"version":{"type":"string","description":"Chart version (e.g., \"1.2.3\")"}},"required":["chart","version"],"description":"Outputs from a Helm chart package build"},{"type":"object","properties":{"type":{"type":"string","enum":["helm"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"targets":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"launchStackUrl":{"type":"string","description":"AWS Console quick-launch URL"},"sha256":{"type":"string","description":"SHA256 checksum of the template"},"size":{"type":"integer","minimum":0,"description":"Template size in bytes"},"stackPolicyUrl":{"type":"string","description":"S3 URL to the CloudFormation stack policy"},"target":{"type":"string","description":"CloudFormation target (aws, eks)"},"templateUrl":{"type":"string","description":"S3 URL to the CloudFormation template"}},"required":["launchStackUrl","sha256","size","stackPolicyUrl","target","templateUrl"],"description":"Information about a single CloudFormation template package for one target."},"description":"Template artifacts by CloudFormation target."}},"required":["targets"],"description":"Outputs from a CloudFormation package build."},{"type":"object","properties":{"type":{"type":"string","enum":["cloudformation"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"modules":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL for the module archive"},"filename":{"type":"string","description":"Filename of the module archive"},"shasum":{"type":"string","description":"SHA256 checksum of the archive"},"size":{"type":"integer","minimum":0,"description":"Size of the archive in bytes"},"source":{"type":"string","description":"Terraform module source (hostname/namespace/name/provider, without scheme)"},"target":{"type":"string","description":"Terraform module target (aws, gcp, azure, eks, gke, aks)"},"variables":{"type":"array","items":{"type":"string"},"description":"Terraform input variables exposed by this module."}},"required":["downloadUrl","filename","shasum","size","source","target"],"description":"Information about a single Terraform module package for one target."},"description":"Module registry artifacts by Terraform target."},"provider":{"type":"object","properties":{"gpgPublicKey":{"type":"object","properties":{"asciiArmor":{"type":"string","description":"ASCII-armored public key"},"keyId":{"type":"string","description":"GPG key ID"}},"required":["asciiArmor","keyId"],"description":"GPG public key for Terraform provider signature verification"},"platforms":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL for the provider zip"},"filename":{"type":"string","description":"Filename of the provider zip"},"shasum":{"type":"string","description":"SHA256 checksum of the zip file"},"shasumsSignatureUrl":{"type":"string","description":"URL to the shasums signature file"},"shasumsUrl":{"type":"string","description":"URL to the shasums file"},"size":{"type":"integer","minimum":0,"description":"Size of the zip file in bytes"}},"required":["downloadUrl","filename","shasum","shasumsSignatureUrl","shasumsUrl","size"],"description":"Information about a single Terraform provider package for a specific platform"},"description":"Provider packages for each target platform"},"source":{"type":"string","description":"Terraform provider source (hostname/namespace/type, without scheme)"}},"required":["gpgPublicKey","platforms","source"],"description":"Terraform provider registry outputs."}},"required":["modules","provider"],"description":"Outputs from a Terraform package build."},{"type":"object","properties":{"type":{"type":"string","enum":["terraform"]}},"required":["type"]}]},{"nullable":true}],"description":"Package outputs (only when status is 'ready')"},"error":{"nullable":true,"description":"Error information if status is 'failed'"},"sourceBinarySha256":{"type":"string","nullable":true,"description":"Builder-recorded source binary SHA256 (for cli/terraform packages)"},"retries":{"type":"integer","minimum":0,"description":"Number of build retries"},"lockedAt":{"type":"string","format":"date-time","nullable":true},"lockedBy":{"type":"string","nullable":true},"leaseExpiresAt":{"type":"string","format":"date-time","nullable":true,"description":"Expiration of the current builder lease"},"buildPhase":{"type":"string","nullable":true,"enum":["building","publishing",null],"description":"Coarse package build phase"},"lastProgressAt":{"type":"string","format":"date-time","nullable":true,"description":"Last successful builder lease renewal or phase change"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"completedAt":{"type":"string","format":"date-time","nullable":true}},"required":["id","projectId","workspaceId","type","status","version","setupFingerprints","packageBuildInputHash","config","retries","createdAt","updatedAt"]},"SetupFingerprintMap":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/SetupFingerprintInfo"},"description":"Per-target setup compatibility fingerprints copied from the source release"},"SetupFingerprintInfo":{"type":"object","properties":{"target":{"$ref":"#/components/schemas/SetupTarget"},"fingerprint":{"$ref":"#/components/schemas/SetupFingerprint"},"version":{"$ref":"#/components/schemas/SetupFingerprintVersion"}},"required":["target","fingerprint","version"]},"SetupTarget":{"type":"string","minLength":1,"description":"Stable target key for the setup contract, e.g. aws/us-east-1"},"SetupFingerprint":{"type":"string","minLength":1,"description":"Deterministic setup contract fingerprint for one setup target"},"SetupFingerprintVersion":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Setup fingerprint algorithm version"},"ReleaseListItemResponse":{"allOf":[{"$ref":"#/components/schemas/Release"},{"type":"object","properties":{"currentChannels":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseChannelName"},"description":"Channels for which this release is currently selected"},"commitUrl":{"type":"string","nullable":true,"format":"uri","description":"Validated canonical provider URL for the exact commit"},"project":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"Project ID"},"name":{"type":"string","description":"Project name"}},"required":["id","name"],"description":"Project info, included when ?include=project is used"},"rollout":{"type":"object","nullable":true,"properties":{"updatedCount":{"type":"integer","description":"Deployments that finished updating to this release (excludes initial provisions)"},"pendingCount":{"type":"integer","description":"Deployments currently targeting this release but not yet running it"},"avgDurationMs":{"type":"number","nullable":true,"description":"Average time from release creation until a deployment finished updating, in milliseconds"}},"required":["updatedCount","pendingCount","avgDurationMs"],"description":"Rollout stats, included when ?include=rollout is used"},"createdBy":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"User ID"},"name":{"type":"string","description":"User's display name"},"email":{"type":"string","description":"User's email address"},"image":{"type":"string","nullable":true,"description":"User's avatar image URL"}},"required":["id","name","email","image"],"description":"Platform user who created the release, included when ?include=createdBy is used"}},"required":["currentChannels","commitUrl"]}]},"ReleaseChannelName":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z][a-z0-9-]*$"},"Release":{"type":"object","properties":{"id":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"projectId":{"type":"string","maxLength":128},"version":{"type":"string","minLength":1,"maxLength":256},"gitMetadata":{"$ref":"#/components/schemas/GitMetadata"},"createdAt":{"type":"string","format":"date-time"},"stack":{"allOf":[{"$ref":"#/components/schemas/StackByPlatform"}],"nullable":true},"setupFingerprints":{"allOf":[{"$ref":"#/components/schemas/SetupFingerprintMap"},{"description":"Per-target setup compatibility fingerprints for this release"}]},"rootDirectory":{"type":"string","nullable":true,"maxLength":256},"createdByUserId":{"type":"string","nullable":true,"maxLength":128,"description":"ID of the platform user who created the release, if known"},"workspaceId":{"type":"string","maxLength":128}},"required":["id","projectId","version","createdAt","setupFingerprints","workspaceId"]},"CreateReleaseRequest":{"type":"object","properties":{"project":{"type":"string","maxLength":100,"description":"Project ID or name"},"version":{"type":"string","minLength":1,"maxLength":256},"gitMetadata":{"$ref":"#/components/schemas/GitMetadata"},"stack":{"$ref":"#/components/schemas/StackByPlatform"},"rootDirectory":{"type":"string","nullable":true,"maxLength":256},"channel":{"allOf":[{"$ref":"#/components/schemas/ReleaseChannelName"},{"description":"Release channel to advance. Defaults to production."}]}},"required":["project"]},"ReleaseAuthorFilterItem":{"type":"object","properties":{"login":{"type":"string","nullable":true,"description":"Provider username (e.g., GitHub login)"},"name":{"type":"string","nullable":true,"description":"Git commit author name"},"avatarUrl":{"type":"string","nullable":true,"format":"uri","description":"Author avatar URL"}},"required":["login","name","avatarUrl"]},"ReleaseDeploymentsResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseDeploymentItem"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"},"stateCounts":{"$ref":"#/components/schemas/ReleaseRolloutStateCounts"}},"required":["items","nextCursor","stateCounts"]},"ReleaseDeploymentItem":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"deploymentGroup":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"}},"required":["id","name"],"description":"Deployment group this deployment belongs to"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the currently deployed release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the desired release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat"},"rolloutState":{"$ref":"#/components/schemas/ReleaseRolloutState"},"releasedAt":{"type":"string","format":"date-time","nullable":true,"description":"When this release went live on the deployment, null if it never did"},"durationMs":{"type":"integer","nullable":true,"description":"Time from release creation until the deployment finished updating, in milliseconds. Null for initial provisions and deployments that never ran this release."},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Latest error information if the deployment is in a failed state"}},"required":["id","name","status","platform","rolloutState","releasedAt","durationMs"]},"ReleaseRolloutState":{"type":"string","enum":["updated","updating","failed","pending","pinned-other","superseded","on-other"]},"ReleaseRolloutStateCounts":{"type":"object","properties":{"updated":{"type":"integer"},"updating":{"type":"integer"},"failed":{"type":"integer"},"pending":{"type":"integer"},"pinned-other":{"type":"integer"},"superseded":{"type":"integer"},"on-other":{"type":"integer"}},"required":["updated","updating","failed","pending","pinned-other","superseded","on-other"],"description":"Deployment counts per rollout state across all deployments the filters allow (ignores the state filter)"},"ReleaseChannel":{"type":"object","properties":{"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"name":{"$ref":"#/components/schemas/ReleaseChannelName"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"deploymentCount":{"type":"integer","minimum":0},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["workspaceId","projectId","name","currentReleaseId","createdAt","updatedAt"]},"DeploymentListItemResponse":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"deploymentProtocolVersion":{"$ref":"#/components/schemas/DeploymentProtocolVersion"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"ID of deployment group this deployment belongs to","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the currently deployed release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the desired release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"releaseChannel":{"allOf":[{"$ref":"#/components/schemas/ReleaseChannelName"},{"description":"Named release stream followed when the deployment is not pinned"}]},"importSource":{"type":"string","nullable":true,"enum":["cloudformation","terraform","helm",null],"description":"Setup source that imported this deployment"},"setupMethod":{"type":"string","nullable":true,"enum":["cloudformation","google-oauth","terraform","helm","cli","manual",null],"description":"Setup method that created the deployment record."},"setupMetadata":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Setup method metadata needed to guide privileged teardown."},"setupTarget":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup target for compatibility checks"},"setupFingerprint":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup compatibility fingerprint"},"setupFingerprintVersion":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Imported setup fingerprint version"},"operatorScope":{"type":"string","nullable":true,"description":"Display-only scope reported by the Operator manifest"},"operatorPermission":{"type":"string","nullable":true,"description":"Display-only permission tier reported by the Operator manifest"},"operatorVersion":{"type":"string","nullable":true,"description":"Version reported by the Operator"},"capabilities":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OperatorCapabilityReport"},"description":"Capability state reported by the Operator"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat"},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Latest error information if in a failed state"},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"managerId":{"$ref":"#/components/schemas/ManagerID"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"release":{"$ref":"#/components/schemas/DeploymentReleaseInfo"},"deploymentGroup":{"$ref":"#/components/schemas/DeploymentGroupInfo"},"project":{"$ref":"#/components/schemas/DeploymentProjectInfo"}},"required":["id","name","status","projectId","platform","deploymentProtocolVersion","deploymentGroupId","releaseChannel","retryRequested","createdAt","updatedAt","managerId","workspaceId"]},"DeploymentProtocolVersion":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"DeploymentState protocol version owned by the runtime/manager"},"OperatorCapabilityReport":{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":128},"state":{"$ref":"#/components/schemas/OperatorCapabilityState"},"detail":{"type":"string","nullable":true,"maxLength":512}},"required":["key","state"]},"OperatorCapabilityState":{"type":"string","enum":["granted","denied","unavailable"]},"ManagerID":{"type":"string","pattern":"mgr_[0-9a-z]{28}$","description":"ID of the manager","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"DeploymentReleaseInfo":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"version":{"type":"string","minLength":1,"maxLength":256},"gitMetadata":{"$ref":"#/components/schemas/GitMetadata"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","version","createdAt"]},"DeploymentGroupInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"}},"required":["id","name"]},"DeploymentProjectInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Project name.","example":"my-app"}},"required":["id","name"]},"DeploymentStats":{"type":"object","properties":{"total":{"type":"number","description":"Total number of deployments matching filters"},"byStatus":{"type":"object","additionalProperties":{"type":"number"},"description":"Count of deployments by status (only includes statuses with non-zero counts)"},"byPlatform":{"type":"object","additionalProperties":{"type":"number"},"description":"Count of deployments by platform (only includes platforms with non-zero counts)"},"byCurrentRelease":{"type":"object","additionalProperties":{"type":"number"},"description":"Count of deployments by currentReleaseId. The empty string key represents deployments with no current release (initial provisioning)."},"byPinnedRelease":{"type":"object","additionalProperties":{"type":"number"},"description":"Count of deployments by pinnedReleaseId among deployments that are pinned. Excludes unpinned deployments."}},"required":["total","byStatus","byPlatform","byCurrentRelease","byPinnedRelease"]},"DeploymentDetailResponse":{"allOf":[{"$ref":"#/components/schemas/Deployment"},{"type":"object","properties":{"release":{"$ref":"#/components/schemas/DeploymentReleaseInfo"},"deploymentGroup":{"$ref":"#/components/schemas/DeploymentGroupInfo"},"project":{"$ref":"#/components/schemas/DeploymentProjectInfo"}}}]},"Deployment":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!ag[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment name.","example":"acme-prod"},"publicSubdomain":{"type":"string","nullable":true,"minLength":1,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","description":"Public subdomain for auto-generated domains"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"basePlatform":{"type":"string","nullable":true,"enum":["aws","gcp","azure",null],"description":"Underlying cloud platform for Kubernetes deployments."},"region":{"type":"string","nullable":true,"description":"Cloud region or location for the deployment."},"deploymentProtocolVersion":{"$ref":"#/components/schemas/DeploymentProtocolVersion"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"ID of deployment group this deployment belongs to","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-provided configuration (network, deployment model, approvals)"},"stackState":{"type":"object","nullable":true,"properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"State of infrastructure components managed by this deployment"},"runtimeMetadata":{"type":"object","nullable":true,"properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment state persistence"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the currently deployed release (actual state)","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the desired release for deployment/update (desired state)","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"releaseChannel":{"allOf":[{"$ref":"#/components/schemas/ReleaseChannelName"},{"description":"Named release stream followed when the deployment is not pinned"}]},"importSource":{"type":"string","nullable":true,"enum":["cloudformation","terraform","helm",null],"description":"Setup source that imported this deployment"},"setupMethod":{"type":"string","nullable":true,"enum":["cloudformation","google-oauth","terraform","helm","cli","manual",null],"description":"Setup method that created the deployment record and owns setup-time resources."},"setupMetadata":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Setup method metadata needed to guide privileged teardown."},"setupTarget":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup target for compatibility checks"},"setupFingerprint":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup compatibility fingerprint"},"setupFingerprintVersion":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Imported setup fingerprint algorithm version"},"operatorScope":{"type":"string","nullable":true,"description":"Display-only scope reported by the Operator manifest"},"operatorPermission":{"type":"string","nullable":true,"description":"Display-only permission tier reported by the Operator manifest"},"operatorVersion":{"type":"string","nullable":true,"description":"Version reported by the Operator"},"capabilities":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OperatorCapabilityReport"},"description":"Capability state reported by the Operator"},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat from the deployment"},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Latest error information if the deployment is in a failed state"},"environmentVariables":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"},"description":"Configuration of environment variables for the deployment"},"targetEnvironmentVariables":{"type":"object","nullable":true,"properties":{"variables":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"},"description":"Environment variables in the snapshot"},"hash":{"type":"string","description":"Deterministic hash of all variables for change detection"},"createdAt":{"type":"string","format":"date-time","description":"ISO 8601 timestamp when snapshot was created"}},"required":["variables","hash","createdAt"],"description":"Snapshot of target environment variables for the deployment"},"currentEnvironmentVariables":{"type":"object","nullable":true,"properties":{"variables":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"},"description":"Environment variables in the snapshot"},"hash":{"type":"string","description":"Deterministic hash of all variables for change detection"},"createdAt":{"type":"string","format":"date-time","description":"ISO 8601 timestamp when snapshot was created"}},"required":["variables","hash","createdAt"],"description":"Snapshot of current environment variables for the deployment"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"ID of the manager responsible for this deployment"}]},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"}},"required":["id","name","status","projectId","platform","deploymentProtocolVersion","deploymentGroupId","stackSettings","releaseChannel","retryRequested","createdAt","updatedAt","managerId","workspaceId"]},"DeploymentConnectionInfo":{"type":"object","properties":{"arc":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Manager URL for commands"},"deploymentId":{"type":"string","description":"Deployment ID to use in command requests"}},"required":["url","deploymentId"]},"resources":{"type":"object","additionalProperties":{"type":"object","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."},"publicEndpoints":{"type":"object","additionalProperties":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"protocol":{"type":"string","enum":["http","tcp"]},"host":{"type":"string","minLength":1},"port":{"type":"integer","minimum":1,"maximum":65535},"wildcardHost":{"type":"string"}},"required":["url","protocol","host","port"]},"description":"Public endpoints keyed by endpoint name."}},"required":["type"]},"description":"Deployed resources and their public endpoints"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"platform":{"type":"string"}},"required":["arc","resources","status","platform"]},"CreateDeploymentResponse":{"type":"object","properties":{"deployment":{"$ref":"#/components/schemas/Deployment"},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Effective deployment model persisted for the deployment."},"token":{"type":"string","description":"Deployment token (only returned when using deployment group token)"}},"required":["deployment","deploymentModel"]},"NewDeploymentRequest":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!ag[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment name.","example":"acme-prod"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"deploymentGroupId":{"type":"string","description":"Required for workspace/project tokens. Deployment group tokens use their own group automatically."},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Optional manager to assign. If omitted, the project default or system manager is selected."}]},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"environmentVariables":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"},"description":"Configuration of environment variables for the deployment"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"project":{"type":"string","maxLength":100,"description":"Project ID or name"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"Stack settings for deployment customization"},"resourcePrefix":{"$ref":"#/components/schemas/ResourcePrefix"},"publicSubdomain":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","description":"Optional deployment subdomain under the project's generated-domain parent. Operator-only and requires a custom project domain; customer deploy-link tokens and the shared system domain are rejected. Omit to generate a random subdomain."},"setupMethod":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMethod"},{"description":"Setup method that created the deployment. Defaults to cli."}]},"setupMetadata":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMetadata"},{"description":"Setup method metadata used to guide privileged teardown."}]},"inputValues":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/StackInputValueRequest"},"default":{},"description":"Stack input values provided by the deployment creator."},"operatorScope":{"type":"string","minLength":1,"maxLength":512,"description":"Display-only scope reported by the Operator manifest."},"operatorPermission":{"type":"string","minLength":1,"maxLength":64,"description":"Display-only permission tier reported by the Operator manifest."},"initialDesiredRelease":{"type":"string","enum":["active","none"],"default":"active","description":"Desired-release selection for a new deployment. Use none to register an environment without initially requesting a release; later updates can assign one."},"releaseChannel":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z][a-z0-9-]*$","default":"production","description":"Release channel followed while this deployment is not pinned."}},"required":["name","platform","project"],"additionalProperties":false,"description":"Request schema for creating a new deployment"},"ResourcePrefix":{"type":"string","pattern":"^[a-z](?:[a-z0-9]|-(?=[a-z0-9])){1,38}[a-z0-9]$","description":"Optional physical-name prefix for generated cloud resources. Omit to let the manager generate one."},"ImportDeploymentRequest":{"oneOf":[{"$ref":"#/components/schemas/ForwardImportRequest"},{"$ref":"#/components/schemas/PersistImportedDeploymentRequest"}],"description":"Request schema for importing a deployment from resolved setup infrastructure"},"ForwardImportRequest":{"type":"object","properties":{"mode":{"type":"string","enum":["forward"],"default":"forward"},"project":{"type":"string","maxLength":100,"description":"Project ID or name. Required for user-session callers."},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Required for user-session callers. Deployment-group tokens use their own group automatically.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Manager ID. If omitted, the first suitable manager for the source platform is used."}]},"source":{"$ref":"#/components/schemas/ImportSource"},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"}},"required":["source"]},"ImportSource":{"type":"object","properties":{"deploymentName":{"type":"string","minLength":1,"description":"User-chosen deployment name. Must be unique within the deployment group; the manager returns 409 on collision."},"resourcePrefix":{"allOf":[{"$ref":"#/components/schemas/ResourcePrefix"},{"description":"Stable physical-name prefix used by the setup artifact."}]},"sourceKind":{"$ref":"#/components/schemas/ImportSourceKind"},"setupMetadata":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMetadata"},{"description":"Setup source metadata needed to guide privileged teardown."}]},"releaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Release that produced the setup artifact. Defaults to latest.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Cloud platform of the imported stack"},"basePlatform":{"$ref":"#/components/schemas/KubernetesBasePlatform"},"region":{"type":"string","description":"Region or location reported by the setup artifact"},"setupTarget":{"allOf":[{"$ref":"#/components/schemas/SetupTarget"},{"description":"Setup target this package was generated for"}]},"setupImportFormatVersion":{"$ref":"#/components/schemas/SetupImportFormatVersion"},"setupFingerprint":{"allOf":[{"$ref":"#/components/schemas/SetupFingerprint"},{"description":"Setup compatibility fingerprint embedded in the package"}]},"setupFingerprintVersion":{"allOf":[{"$ref":"#/components/schemas/SetupFingerprintVersion"},{"description":"Setup fingerprint algorithm version embedded in the package"}]},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}],"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."},"resources":{"type":"array","items":{"$ref":"#/components/schemas/ImportedResource"},"minItems":1}},"required":["deploymentName","resourcePrefix","platform","region","setupTarget","setupImportFormatVersion","setupFingerprint","setupFingerprintVersion","stackSettings","resources"],"description":"Resolved setup import payload"},"ImportSourceKind":{"type":"string","enum":["cloudformation","terraform","helm"],"description":"Source label for observability only — does not affect import behavior."},"KubernetesBasePlatform":{"type":"string","enum":["aws","gcp","azure"],"description":"Base cloud platform for cloud-backed Kubernetes imports."},"SetupImportFormatVersion":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Setup import payload format version embedded in the package"},"ImportedResource":{"type":"object","properties":{"id":{"type":"string","description":"Resource id from the active stack"},"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."},"importData":{"type":"object","additionalProperties":{"nullable":true},"description":"Resolved typed import payload"}},"required":["id","type","importData"]},"PersistImportedDeploymentRequest":{"type":"object","properties":{"mode":{"type":"string","enum":["persist"]},"name":{"type":"string","minLength":1,"description":"Deployment name. Must be unique within the deployment group."},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"publicSubdomain":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","description":"Optional deployment subdomain under the project's generated-domain parent. Operator-only and requires a custom project domain; customer deploy-link tokens and the shared system domain are rejected. Omit to generate a random subdomain."},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"basePlatform":{"$ref":"#/components/schemas/KubernetesBasePlatform"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."},"stackState":{"nullable":true},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Platform-specific environment information"},"runtimeMetadata":{"type":"object","properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment\n\nStores deployment state that needs to persist across step calls."},"scheduleReconciliation":{"type":"boolean","default":false},"deploymentProtocolVersion":{"$ref":"#/components/schemas/DeploymentProtocolVersion"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"default":"provisioning","description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"currentReleaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"importSource":{"allOf":[{"$ref":"#/components/schemas/ImportSourceKind"},{"description":"Package source that produced the import payload"}]},"setupMetadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"setupTarget":{"$ref":"#/components/schemas/SetupTarget"},"setupFingerprint":{"$ref":"#/components/schemas/SetupFingerprint"},"setupFingerprintVersion":{"$ref":"#/components/schemas/SetupFingerprintVersion"},"deploymentToken":{"type":"string"},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]}],"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."},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"}},"required":["mode","name","deploymentGroupId","managerId","platform","stackSettings","runtimeMetadata","deploymentProtocolVersion","setupTarget","setupFingerprint","setupFingerprintVersion"]},"SetFirstPartyDeploymentInputsResponse":{"type":"object","properties":{"ok":{"type":"boolean"}},"required":["ok"]},"SetFirstPartyDeploymentInputsRequest":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"}},"required":["platform"]},"SetupRegistrationOperationResponse":{"type":"object","properties":{"id":{"type":"string","pattern":"setupop_[0-9a-z]{28}$","description":"Unique identifier for the setup registration operation.","example":"setupop_y41lqnfosxuwqkzmiax7"},"action":{"$ref":"#/components/schemas/SetupRegistrationAction"},"sourceKind":{"allOf":[{"$ref":"#/components/schemas/ImportSourceKind"},{"description":"Package source that produced the import payload"}]},"status":{"$ref":"#/components/schemas/SetupRegistrationOperationStatus"},"deploymentId":{"type":"string","nullable":true,"pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"physicalResourceId":{"type":"string","nullable":true},"result":{"$ref":"#/components/schemas/SetupRegistrationOperationResult"},"error":{"type":"object","nullable":true,"properties":{"message":{"type":"string"},"retryable":{"type":"boolean"}},"required":["message","retryable"]}},"required":["id","action","sourceKind","status","deploymentId","physicalResourceId","result","error"]},"SetupRegistrationAction":{"type":"string","enum":["create","update","delete"]},"SetupRegistrationOperationStatus":{"type":"string","enum":["pending","processing","waiting-for-handoff","succeeded","failed","responding","responded"]},"SetupRegistrationOperationResult":{"type":"object","nullable":true,"properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"deploymentToken":{"type":"string","nullable":true},"helmValues":{"type":"string","nullable":true}},"required":["deploymentId","deploymentToken","helmValues"]},"CreateSetupRegistrationOperationRequest":{"type":"object","properties":{"action":{"$ref":"#/components/schemas/SetupRegistrationAction"},"sourceKind":{"allOf":[{"$ref":"#/components/schemas/ImportSourceKind"},{"description":"Package source that produced the import payload"}]},"source":{"allOf":[{"$ref":"#/components/schemas/ImportSource"}],"nullable":true},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"},"deploymentId":{"type":"string","nullable":true,"pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":512},"cloudFormation":{"$ref":"#/components/schemas/SetupRegistrationCloudFormationTarget"}},"required":["action","sourceKind"],"additionalProperties":false},"SetupRegistrationCloudFormationTarget":{"type":"object","nullable":true,"properties":{"stackId":{"type":"string","minLength":1},"requestId":{"type":"string","minLength":1},"logicalResourceId":{"type":"string","minLength":1},"responseUrl":{"type":"string","format":"uri"},"physicalResourceId":{"type":"string","nullable":true,"minLength":1},"serviceTimeoutSeconds":{"type":"integer","minimum":60,"maximum":7200,"default":3300}},"required":["stackId","requestId","logicalResourceId","responseUrl"],"additionalProperties":false},"DeleteDeploymentResponse":{"type":"object","properties":{"action":{"type":"string","enum":["cleanup","detach","forget"]},"message":{"type":"string"}},"required":["action","message"]},"DeleteDeploymentRequest":{"type":"object","properties":{"action":{"type":"string","enum":["cleanup","detach","forget"]}},"required":["action"]},"PinReleaseRequest":{"type":"object","properties":{"releaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Release ID to pin the deployment to. Set to null to resume its followed channel.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"}},"additionalProperties":false,"description":"Request schema for pinning/unpinning deployment release"},"DeploymentInputsResponse":{"type":"object","properties":{"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."}},"values":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/StackInputValueRequest"},"description":"Current non-secret input values. Secret values are never returned."},"providedInputIds":{"type":"array","items":{"type":"string"},"description":"Input IDs that currently have a value, including redacted secrets."}},"required":["inputs","values","providedInputIds"]},"UpdateDeploymentInputsResponse":{"allOf":[{"$ref":"#/components/schemas/DeploymentInputsResponse"},{"type":"object","properties":{"runtimeUpdateRequested":{"type":"boolean"}},"required":["runtimeUpdateRequested"]}]},"UpdateDeploymentInputsRequest":{"type":"object","properties":{"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"},"clearInputIds":{"type":"array","items":{"type":"string"},"default":[]}},"additionalProperties":false},"UpdateDeploymentEnvironmentVariablesRequest":{"type":"object","properties":{"variables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Variable name"},"value":{"type":"string","description":"Variable value"},"type":{"type":"string","enum":["plain","secret"],"description":"Variable type"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource patterns (null = all resources)"}},"required":["name","value","type"]},"description":"Environment variables for the deployment"}},"required":["variables"],"additionalProperties":false,"description":"Request schema for updating deployment environment variables"},"CreateDeploymentTokenResponse":{"type":"object","properties":{"token":{"type":"string","description":"The generated deployment token (only shown once)"},"deploymentId":{"type":"string","description":"The deployment ID that this token is scoped to"}},"required":["token","deploymentId"]},"CreateDeploymentTokenRequest":{"type":"object","properties":{"description":{"type":"string","nullable":true,"minLength":3,"maxLength":128,"description":"Optional description for the deployment token"},"expiresAt":{"type":"string","format":"date-time","nullable":true,"description":"Optional expiration date for the deployment token"}},"required":["description"]},"CreateManagerResponse":{"type":"object","properties":{"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"setupStatus":{"type":"string","enum":["pending"]},"setupToken":{"type":"string"},"setupTokenId":{"type":"string"},"deploymentLink":{"type":"string"},"setupConfig":{"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"inputValues":{"$ref":"#/components/schemas/EncryptedStackInputValues"},"publicSubdomain":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","description":"Operator-pinned deployment subdomain for this setup token."},"environmentVariables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string","enum":["plain","secret"]},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"}}},"required":["name","type","targetResources"]}}},"required":["metadata","policy","environmentVariables"]},"setup":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","enum":["cloudformation"]},"deploymentPortalUrl":{"type":"string"},"launchUrl":{"type":"string"},"templateUrl":{"type":"string"},"stackName":{"type":"string"},"region":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["method","deploymentPortalUrl","launchUrl","templateUrl","stackName","region","stackSettings"]},{"type":"object","properties":{"method":{"type":"string","enum":["google-oauth"]},"deploymentPortalUrl":{"type":"string"},"managerUrl":{"type":"string"},"oauthStartUrl":{"type":"string"},"region":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["method","deploymentPortalUrl","managerUrl","oauthStartUrl","region","stackSettings"]},{"type":"object","properties":{"method":{"type":"string","enum":["terraform"]},"deploymentPortalUrl":{"type":"string"},"managerUrl":{"type":"string"},"providerSource":{"type":"string"},"moduleSource":{"type":"string"},"moduleVersion":{"type":"string"},"moduleInputs":{"type":"object","additionalProperties":{"type":"string"}},"mainTf":{"type":"string"},"tfvars":{"type":"string"},"commands":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["method","deploymentPortalUrl","managerUrl","providerSource","moduleSource","moduleInputs","mainTf","tfvars","commands","stackSettings"]}]}},"required":["managerId","setupStatus","setupToken","setupTokenId","deploymentLink","setupConfig","setup"]},"NewManagerRequest":{"type":"object","properties":{"name":{"type":"string"},"cloud":{"$ref":"#/components/schemas/PrivateManagerCloud"},"region":{"type":"string","minLength":1,"maxLength":64,"description":"Cloud region for the manager."},"setupMethod":{"$ref":"#/components/schemas/PrivateManagerSetupMethod"},"network":{"type":"string","enum":["create","default"],"description":"Optional network mode for the private-manager setup. Defaults to create for production isolation; default uses the provider default network for faster dev/test setup."},"otlpConfig":{"type":"object","properties":{"logsEndpoint":{"type":"string","format":"uri","description":"External OTLP logs endpoint (e.g. https://api.axiom.co/v1/logs)"},"logsAuthHeader":{"type":"string","description":"Auth header in 'key=value,...' format (e.g. 'authorization=Bearer ,x-axiom-dataset=')"}},"required":["logsEndpoint","logsAuthHeader"],"description":"Optional external OTLP config for forwarding logs to Axiom, Datadog, etc. Falls back to built-in DeepStore when not set."}},"required":["name","cloud","region"]},"PrivateManagerCloud":{"type":"string","enum":["aws","gcp","azure"],"description":"Cloud where the private manager will be deployed."},"PrivateManagerSetupMethod":{"type":"string","enum":["cloudformation","google-oauth","terraform"],"description":"Optional setup method. Defaults to cloudformation for AWS, google-oauth for GCP, and terraform for Azure."},"ManagerRetryResponse":{"oneOf":[{"allOf":[{"$ref":"#/components/schemas/CreateManagerResponse"},{"type":"object","properties":{"mode":{"type":"string","enum":["setup"]}},"required":["mode"]}]},{"$ref":"#/components/schemas/ManagerRetryDeploymentResponse"}]},"ManagerRetryDeploymentResponse":{"type":"object","properties":{"mode":{"type":"string","enum":["deployment"]},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"setupStatus":{"type":"string","enum":["provisioning"]},"deploymentId":{"type":"string"},"message":{"type":"string"}},"required":["mode","managerId","setupStatus","deploymentId","message"]},"Manager":{"type":"object","properties":{"id":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for the manager"}]},"name":{"type":"string","description":"Display name of the manager"},"targets":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms this manager can handle"},"cloud":{"type":"string","nullable":true,"enum":["aws","gcp","azure","kubernetes","machines","local","test",null],"description":"Cloud where this private manager is deployed"},"region":{"type":"string","nullable":true,"description":"Cloud region selected for this private manager"},"setupStatus":{"type":"string","nullable":true,"enum":["pending","provisioning","active","failed","deleting","deleted",null],"description":"Private manager setup lifecycle status"},"url":{"type":"string","nullable":true,"format":"uri","description":"Manager URL (self-reported via heartbeat). DeepStore endpoints are exposed through this URL (e.g., {url}/v1/logs)"},"managementConfigs":{"$ref":"#/components/schemas/ManagerManagementConfigs"},"isSystem":{"type":"boolean","description":"Whether this is a system manager (Alien-hosted)"},"workspaceId":{"type":"string","description":"The workspace ID (for system managers, this is ALIEN_WORKSPACE_ID)"},"status":{"$ref":"#/components/schemas/ManagerStatus"},"version":{"type":"string","nullable":true,"description":"Manager version (self-reported via heartbeat)"},"metrics":{"type":"object","nullable":true,"properties":{"activeDeployments":{"type":"number","description":"Number of active deployments"},"pendingDeployments":{"type":"number","description":"Number of pending deployments"},"memoryUsageMb":{"type":"number","description":"Memory usage in megabytes"},"cpuUsagePercent":{"type":"number","description":"CPU usage percentage"}},"description":"Runtime metrics (self-reported via heartbeat)"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat from the manager"},"logsDatabaseId":{"type":"string","nullable":true,"description":"ID of the logs database associated with this manager"},"managedDeploymentCount":{"type":"integer","minimum":0,"description":"Number of deployments currently being managed by this manager"},"defaultProjectCount":{"type":"integer","minimum":0,"description":"Number of projects that select this manager as a default manager"},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the manager was created"}},"required":["id","name","targets","managementConfigs","isSystem","workspaceId","status","managedDeploymentCount","defaultProjectCount","createdAt"],"description":"Manager schema"},"ManagerManagementConfigs":{"type":"object","properties":{"aws":{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"},"platform":{"type":"string","enum":["aws"]}},"required":["managingRoleArn","platform"]},"gcp":{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"},"platform":{"type":"string","enum":["gcp"]}},"required":["serviceAccountEmail","platform"]},"azure":{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."},"platform":{"type":"string","enum":["azure"]}},"required":["managingTenantId","oidcIssuer","oidcSubject","platform"]},"kubernetes":{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]}},"description":"Per-platform management configurations for cross-account access (self-reported via heartbeat)"},"ManagerStatus":{"type":"string","enum":["healthy","degraded","unhealthy","unknown"],"description":"Current health status"},"ManagerDomainBindingResponse":{"type":"object","properties":{"managerDomainBinding":{"$ref":"#/components/schemas/DomainEndpoint"}},"required":["managerDomainBinding"]},"UpdateManagerDomainBinding":{"type":"object","properties":{"domainId":{"type":"string","nullable":true,"pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"}},"additionalProperties":false},"UpdateManagerRequest":{"type":"object","properties":{"releaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Optional release ID to update to. If not provided, the active release will be chosen","example":"rel_WbhQgksrawSKIpEN0NAssHX9"}},"additionalProperties":false,"description":"Request schema for updating a manager to a new release"},"Event":{"type":"object","properties":{"id":{"type":"string","pattern":"event_[0-9a-zA-Z]{28}$","description":"Unique identifier for the event.","example":"event_MtSA24M3pWuAkQYxgZxuRI"},"deploymentId":{"type":"string","nullable":true,"pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"releaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"debugSessionId":{"type":"string","nullable":true,"pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Unique identifier for the debug session.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"data":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["LoadingConfiguration"]}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["Finished"]}},"required":["type"]},{"type":"object","properties":{"stack":{"type":"string","description":"Name of the stack being built"},"type":{"type":"string","enum":["BuildingStack"]}},"required":["stack","type"]},{"type":"object","properties":{"platform":{"type":"string","description":"Platform being targeted"},"stack":{"type":"string","description":"Name of the stack being checked"},"type":{"type":"string","enum":["RunningPreflights"]}},"required":["platform","stack","type"]},{"type":"object","properties":{"targetTriple":{"type":"string","description":"Target triple for the runtime"},"type":{"type":"string","enum":["DownloadingAlienRuntime"]},"url":{"type":"string","description":"URL being downloaded from"}},"required":["targetTriple","type","url"]},{"type":"object","properties":{"relatedResources":{"type":"array","items":{"type":"string"},"description":"All resource names sharing this build (for deduped container groups)"},"resourceName":{"type":"string","description":"Name of the resource being built"},"resourceType":{"type":"string","description":"Type of the resource: \"worker\", \"container\""},"type":{"type":"string","enum":["BuildingResource"]}},"required":["resourceName","resourceType","type"]},{"type":"object","properties":{"image":{"type":"string","description":"Name of the image being built"},"type":{"type":"string","enum":["BuildingImage"]}},"required":["image","type"]},{"type":"object","properties":{"image":{"type":"string","description":"Name of the image being pushed"},"progress":{"oneOf":[{"type":"object","properties":{"bytesUploaded":{"type":"integer","minimum":0,"description":"Bytes uploaded so far"},"layersUploaded":{"type":"integer","minimum":0,"description":"Number of layers uploaded so far"},"operation":{"type":"string","description":"Current operation being performed"},"totalBytes":{"type":"integer","minimum":0,"description":"Total bytes to upload"},"totalLayers":{"type":"integer","minimum":0,"description":"Total number of layers to upload"}},"required":["bytesUploaded","layersUploaded","operation","totalBytes","totalLayers"],"description":"Progress information for image push operations"},{"nullable":true}]},"type":{"type":"string","enum":["PushingImage"]}},"required":["image","type"]},{"type":"object","properties":{"destination":{"type":"string","nullable":true,"description":"Human-readable destination for pushed images"},"platform":{"type":"string","description":"Target platform"},"stack":{"type":"string","description":"Name of the stack being pushed"},"type":{"type":"string","enum":["PushingStack"]}},"required":["platform","stack","type"]},{"type":"object","properties":{"resourceName":{"type":"string","description":"Name of the resource being pushed"},"resourceType":{"type":"string","description":"Type of the resource: \"worker\", \"container\""},"type":{"type":"string","enum":["PushingResource"]}},"required":["resourceName","resourceType","type"]},{"type":"object","properties":{"project":{"type":"string","description":"Project name"},"type":{"type":"string","enum":["CreatingRelease"]}},"required":["project","type"]},{"type":"object","properties":{"language":{"type":"string","description":"Language being compiled (rust, typescript, etc.)"},"progress":{"type":"string","nullable":true,"description":"Current progress/status line from the build output"},"type":{"type":"string","enum":["CompilingCode"]}},"required":["language","type"]},{"type":"object","properties":{"nextState":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"Represents the collective state of all resources in a stack, including platform and pending actions."},"suggestedDelayMs":{"type":"integer","nullable":true,"minimum":0,"description":"An suggested duration to wait before executing the next step."},"type":{"type":"string","enum":["StackStep"]}},"required":["nextState","type"]},{"type":"object","properties":{"type":{"type":"string","enum":["GeneratingCloudFormationTemplate"]}},"required":["type"]},{"type":"object","properties":{"platform":{"type":"string","description":"Platform for which the template is being generated"},"type":{"type":"string","enum":["GeneratingTemplate"]}},"required":["platform","type"]},{"type":"object","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"]}},"required":["agentId","releaseId","type"]},{"type":"object","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"]}},"required":["agentId","releaseId","type"]},{"type":"object","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"]}},"required":["agentId","releaseId","type"]},{"type":"object","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"]}},"required":["agentId","debugSessionId","type"]},{"type":"object","properties":{"strategyName":{"type":"string","description":"Name of the deployment strategy being used"},"type":{"type":"string","enum":["PreparingEnvironment"]}},"required":["strategyName","type"]},{"type":"object","properties":{"stackName":{"type":"string","description":"Name of the stack being deployed"},"type":{"type":"string","enum":["DeployingStack"]}},"required":["stackName","type"]},{"type":"object","properties":{"stackName":{"type":"string","description":"Name of the stack being tested"},"type":{"type":"string","enum":["RunningTestWorker"]}},"required":["stackName","type"]},{"type":"object","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"]}},"required":["stackName","strategyName","type"]},{"type":"object","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"]}},"required":["stackName","strategyName","type"]},{"type":"object","properties":{"platformName":{"type":"string","description":"Name of the platform (e.g., \"AWS\", \"GCP\")"},"type":{"type":"string","enum":["SettingUpPlatformContext"]}},"required":["platformName","type"]},{"type":"object","properties":{"repositoryName":{"type":"string","description":"Name of the docker repository"},"type":{"type":"string","enum":["EnsuringDockerRepository"]}},"required":["repositoryName","type"]},{"type":"object","properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"currentStatus":{"type":"string","description":"Current stack status"},"type":{"type":"string","enum":["DeployingCloudFormationStack"]}},"required":["cfnStackName","currentStatus","type"]},{"type":"object","properties":{"roleArn":{"type":"string","description":"ARN of the role to assume"},"type":{"type":"string","enum":["AssumingRole"]}},"required":["roleArn","type"]},{"type":"object","properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"type":{"type":"string","enum":["ImportingStackStateFromCloudFormation"]}},"required":["cfnStackName","type"]},{"type":"object","properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"currentStatus":{"type":"string","description":"Current stack status"},"type":{"type":"string","enum":["DeletingCloudFormationStack"]}},"required":["cfnStackName","currentStatus","type"]},{"type":"object","properties":{"bucketNames":{"type":"array","items":{"type":"string"},"description":"Names of the S3 buckets being emptied"},"type":{"type":"string","enum":["EmptyingBuckets"]}},"required":["bucketNames","type"]},{"type":"object","properties":{"deploymentGroupId":{"type":"string","description":"ID of the deployment group this slot belongs to"},"deploymentId":{"type":"string","description":"ID of the deployment that was created"},"releaseId":{"type":"string","nullable":true,"description":"Initial release the slot was created with, if any"},"type":{"type":"string","enum":["DeploymentCreated"]}},"required":["deploymentGroupId","deploymentId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"previousReleaseId":{"type":"string","nullable":true,"description":"ID of the release that was previously live, if any"},"releaseId":{"type":"string","description":"ID of the release that is now live"},"type":{"type":"string","enum":["DeploymentReleased"]}},"required":["deploymentId","releaseId","type"]},{"type":"object","properties":{"attemptedReleaseId":{"type":"string","nullable":true,"description":"ID of the release the platform was trying to deploy, if known"},"deploymentId":{"type":"string","description":"ID of the deployment"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},"phase":{"type":"string","enum":["preflights","provisioning","updating","deleting"],"description":"Phase of a deployment at which a failure occurred.\n\nDerived from the source deployment status: `preflights-failed` →\n`Preflights`, `provisioning-failed` → `Provisioning`, `update-failed` →\n`Updating`, `delete-failed` → `Deleting`.\n`refresh-failed` is modelled separately via `DeploymentDegraded`."},"type":{"type":"string","enum":["DeploymentFailed"]}},"required":["deploymentId","error","phase","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},"type":{"type":"string","enum":["DeploymentDegraded"]}},"required":["deploymentId","error","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"releaseId":{"type":"string","description":"ID of the release that is now live"},"type":{"type":"string","enum":["DeploymentRecovered"]}},"required":["deploymentId","releaseId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment that was deleted"},"type":{"type":"string","enum":["DeploymentDeleted"]}},"required":["deploymentId","type"]},{"type":"object","properties":{"actor":{"oneOf":[{"type":"object","properties":{"email":{"type":"string","nullable":true,"description":"User email when the principal is a user."},"id":{"type":"string","description":"Stable user or service-account identifier."},"kind":{"type":"string","enum":["user","serviceAccount"],"description":"Type of authenticated principal that requested an event."}},"required":["id","kind"],"description":"Authenticated principal that requested a deployment intent event."},{"nullable":true}]},"channel":{"type":"string","description":"Name of the channel that moved"},"previousReleaseId":{"type":"string","nullable":true,"description":"ID of the release that was previously current, if any"},"releaseId":{"type":"string","description":"ID of the release that is now current"},"type":{"type":"string","enum":["ReleaseChannelUpdated"]}},"required":["channel","releaseId","type"]},{"type":"object","properties":{"actor":{"oneOf":[{"type":"object","properties":{"email":{"type":"string","nullable":true,"description":"User email when the principal is a user."},"id":{"type":"string","description":"Stable user or service-account identifier."},"kind":{"type":"string","enum":["user","serviceAccount"],"description":"Type of authenticated principal that requested an event."}},"required":["id","kind"],"description":"Authenticated principal that requested a deployment intent event."},{"nullable":true}]},"channel":{"type":"string","description":"Newly followed channel"},"deploymentId":{"type":"string","description":"ID of the deployment"},"previousChannel":{"type":"string","description":"Previously followed channel"},"type":{"type":"string","enum":["DeploymentReleaseChannelChanged"]}},"required":["channel","deploymentId","previousChannel","type"]},{"type":"object","properties":{"actor":{"oneOf":[{"type":"object","properties":{"email":{"type":"string","nullable":true,"description":"User email when the principal is a user."},"id":{"type":"string","description":"Stable user or service-account identifier."},"kind":{"type":"string","enum":["user","serviceAccount"],"description":"Type of authenticated principal that requested an event."}},"required":["id","kind"],"description":"Authenticated principal that requested a deployment intent event."},{"nullable":true}]},"attemptedReleaseId":{"type":"string","nullable":true,"description":"ID of the release that the failed attempt was targeting, if known"},"deploymentId":{"type":"string","description":"ID of the deployment"},"previousError":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"type":{"type":"string","enum":["DeploymentRetryRequested"]}},"required":["deploymentId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"releaseId":{"type":"string","description":"ID of the release being redeployed"},"type":{"type":"string","enum":["DeploymentRedeployRequested"]}},"required":["deploymentId","releaseId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"pinnedReleaseId":{"type":"string","description":"ID of the release that is now pinned"},"previousPinnedReleaseId":{"type":"string","nullable":true,"description":"ID of the previously pinned release, if any"},"type":{"type":"string","enum":["DeploymentReleasePinned"]}},"required":["deploymentId","pinnedReleaseId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"previousPinnedReleaseId":{"type":"string","description":"ID of the release that was previously pinned"},"type":{"type":"string","enum":["DeploymentReleaseUnpinned"]}},"required":["deploymentId","previousPinnedReleaseId","type"]},{"type":"object","properties":{"actor":{"oneOf":[{"type":"object","properties":{"email":{"type":"string","nullable":true,"description":"User email when the principal is a user."},"id":{"type":"string","description":"Stable user or service-account identifier."},"kind":{"type":"string","enum":["user","serviceAccount"],"description":"Type of authenticated principal that requested an event."}},"required":["id","kind"],"description":"Authenticated principal that requested a deployment intent event."},{"nullable":true}]},"changedKeys":{"type":"array","items":{"type":"string"},"description":"Names of the environment variables that changed (added, removed, or modified)"},"deploymentId":{"type":"string","description":"ID of the deployment"},"type":{"type":"string","enum":["DeploymentEnvironmentUpdated"]}},"required":["changedKeys","deploymentId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"type":{"type":"string","enum":["DeploymentDeletionRequested"]}},"required":["deploymentId","type"]}]},"state":{"oneOf":[{"type":"object","properties":{"failed":{"type":"object","properties":{"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]}},"description":"Event failed with an error"}},"required":["failed"]},{"type":"string","enum":["none"]},{"type":"string","enum":["started"]},{"type":"string","enum":["success"]}],"description":"Represents the state of an event"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"createdAt":{"type":"string","format":"date-time"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"}},"required":["id","data","state","projectId","createdAt","workspaceId"]},"GenerateManagerTokenResponse":{"type":"object","properties":{"accessToken":{"type":"string","description":"Platform JWT for authenticating with the manager"},"expiresIn":{"type":"number","nullable":true,"description":"Token lifetime in seconds"},"tokenType":{"type":"string","enum":["Bearer"]},"managerUrl":{"type":"string","description":"Manager URL for direct access"},"databaseId":{"type":"string","nullable":true,"description":"Log database ID (null if logs not configured)"},"controlPlaneUrl":{"type":"string","nullable":true,"description":"Log control plane URL (null if logs not configured)"}},"required":["accessToken","expiresIn","tokenType","managerUrl","databaseId","controlPlaneUrl"]},"GenerateManagerTokenRequest":{"type":"object","properties":{"project":{"type":"string","maxLength":100,"description":"Project ID or name to scope token access to."}},"required":["project"]},"GenerateManagerBindingTokenResponse":{"type":"object","properties":{"accessToken":{"type":"string"},"expiresIn":{"type":"number","nullable":true},"tokenType":{"type":"string","enum":["Bearer"]},"managerUrl":{"type":"string"}},"required":["accessToken","expiresIn","tokenType","managerUrl"]},"GenerateManagerBindingTokenRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"}},"required":["deploymentId"],"additionalProperties":false},"ResolveManagerGcpOAuthProviderResponse":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["alien-managed"]}},"required":["mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["custom"]},"clientId":{"$ref":"#/components/schemas/GcpOAuthClientId"},"clientSecret":{"$ref":"#/components/schemas/GcpOAuthClientSecret"}},"required":["mode","clientId","clientSecret"]}]},"ResolveManagerGcpOAuthProviderRequest":{"type":"object","properties":{"deploymentGroupToken":{"type":"string","minLength":1,"description":"Deployment-group bearer token whose project-level OAuth provider should be resolved."},"returnOrigin":{"type":"string","format":"uri","description":"Browser origin that will receive the Google OAuth callback result. Must be a first-party dashboard origin or the active portal origin for the deployment group's project."}},"required":["deploymentGroupToken"]},"ManagerHeartbeatResponse":{"type":"object","properties":{"acknowledged":{"type":"boolean"},"timestamp":{"type":"string"}},"required":["acknowledged","timestamp"]},"ManagerHeartbeatRequest":{"type":"object","properties":{"status":{"type":"string","enum":["healthy","degraded","unhealthy"],"description":"Current health status"},"version":{"type":"string","description":"Manager version"},"url":{"type":"string","format":"uri","description":"Manager public URL (for accessing DeepStore endpoints)"},"managementConfigs":{"allOf":[{"$ref":"#/components/schemas/ManagerManagementConfigs"},{"description":"Per-platform management configurations for cross-account access"}]},"metrics":{"type":"object","properties":{"activeDeployments":{"type":"number"},"pendingDeployments":{"type":"number"},"memoryUsageMb":{"type":"number"},"cpuUsagePercent":{"type":"number"}},"description":"Optional runtime metrics"}},"required":["status","url","managementConfigs"]},"ManagerDeployment":{"type":"object","properties":{"platform":{"type":"string","description":"Platform of the internal deployment"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status of the internal deployment"},"deploymentId":{"type":"string","description":"Internal deployment ID"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Currently deployed private manager release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Target private manager release for an in-progress update","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"error":{"nullable":true,"description":"Latest provision / upgrade / delete error"},"resources":{"type":"object","additionalProperties":{"type":"object","properties":{"type":{"type":"string","description":"Resource type"},"status":{"type":"string","description":"Resource status"},"outputs":{"type":"object","additionalProperties":{"nullable":true},"description":"Resource outputs"}},"required":["type","status"]},"description":"Simplified stack state resources"},"environmentInfo":{"nullable":true,"description":"Manager environment info"}},"required":["platform","status","deploymentId","resources"]},"PrepareOperatorManifestPackageResponse":{"type":"object","properties":{"package":{"$ref":"#/components/schemas/Package"}},"required":["package"]},"PrepareOperatorManifestPackageRequest":{"type":"object","properties":{"project":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"}},"required":["project"],"additionalProperties":false},"RenderOperatorManifestResponse":{"type":"object","properties":{"manifest":{"type":"string","description":"Rendered multi-document Kubernetes manifest"},"applyCommand":{"type":"string","description":"kubectl command for applying the manifest from a file"},"filename":{"type":"string","description":"Suggested local filename"},"managerUrl":{"type":"string","format":"uri","description":"Manager URL embedded in the manifest"},"imagePending":{"type":"boolean","description":"True when the operator image is still building. The manifest contains a placeholder image () and must not be applied yet — re-render once the operator-image package is ready to get the real image."}},"required":["manifest","applyCommand","filename","managerUrl","imagePending"]},"RenderOperatorManifestRequest":{"type":"object","properties":{"project":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"format":{"type":"string","enum":["raw","helm"],"default":"raw","description":"raw: a kubectl-applyable manifest for one cluster. helm: a paste-into-your-chart template whose namespace and environment name come from Helm at install time."},"environmentName":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Per-environment identity. Required for raw output, ignored for helm.","example":"my-app"},"namespace":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9]([-a-z0-9]*[a-z0-9])?$","description":"Namespace to observe and install into. Omit for helm to use the release namespace."},"scope":{"type":"string","enum":["namespace","cluster"],"default":"namespace","description":"namespace: a namespaced Role that manages the install namespace. cluster: a ClusterRole that manages every namespace."},"labelSelector":{"type":"string","minLength":1,"maxLength":256,"description":"Optional Kubernetes label selector narrowing what is managed, applied within the scope."},"permission":{"type":"string","enum":["observe"],"default":"observe","description":"Operator permission tier"},"operatorImagePackageId":{"type":"string","pattern":"pkg_[0-9a-z]{28}$","description":"Ready operator-image package to use for the Operator image. If omitted, the latest ready operator-image package for the project is used.","example":"pkg_jebo2o5jmm7raefl2m1pe3cz"},"deploymentGroupToken":{"type":"string","minLength":1,"description":"Deployment-group token embedded in the operator Secret"},"logCollector":{"type":"object","properties":{"enabled":{"type":"boolean","default":false}},"description":"Enable the node log collector DaemonSet for raw pod logs."}},"required":["project","deploymentGroupToken"],"additionalProperties":false},"APIKey":{"type":"object","properties":{"id":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"description":{"type":"string","nullable":true},"keyPrefix":{"type":"string"},"type":{"type":"string","enum":["workspace","project","deployment","deployment-group","manager"]},"role":{"type":"string"},"workspaceId":{"type":"string"},"projectId":{"type":"string","nullable":true},"deploymentId":{"type":"string","nullable":true},"deploymentGroupId":{"type":"string","nullable":true},"managerId":{"type":"string","nullable":true},"enabled":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","nullable":true,"format":"date-time"},"lastUsedAt":{"type":"string","nullable":true,"format":"date-time"},"revokedAt":{"type":"string","nullable":true,"format":"date-time"},"deploymentSetupConfig":{"$ref":"#/components/schemas/APIKeyDeploymentSetupConfig"},"createdByUser":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"email":{"type":"string"},"image":{"type":"string","nullable":true}},"required":["id","email","image"],"description":"User information associated with the API key"}},"required":["id","description","keyPrefix","type","role","workspaceId","projectId","deploymentId","deploymentGroupId","managerId","enabled","createdAt","expiresAt","lastUsedAt","revokedAt","deploymentSetupConfig","createdByUser"],"description":"API key information"},"APIKeyDeploymentSetupConfig":{"type":"object","nullable":true,"properties":{"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"environmentVariables":{"type":"array","items":{"$ref":"#/components/schemas/APIKeyDeploymentSetupEnvironmentVariable"}}},"required":["metadata","policy","environmentVariables"]},"APIKeyDeploymentSetupEnvironmentVariable":{"type":"object","properties":{"name":{"type":"string","pattern":"^[A-Z_][A-Z0-9_]*$","description":"Variable name"},"type":{"$ref":"#/components/schemas/EnvironmentVariableType"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string","pattern":"^[a-zA-Z0-9_-]+(\\*)?$"},"description":"Target resource patterns (null = all resources, array = wildcard patterns)"}},"required":["name","type","targetResources"]},"CreateAPIKeyResponse":{"type":"object","properties":{"apiKey":{"type":"string","description":"The generated API key value (only shown once)"},"keyInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"description":{"type":"string","nullable":true},"keyPrefix":{"type":"string"},"type":{"type":"string","enum":["workspace","project","deployment","deployment-group","manager"]},"role":{"type":"string"},"workspaceId":{"type":"string"},"projectId":{"type":"string","nullable":true},"deploymentId":{"type":"string","nullable":true},"deploymentGroupId":{"type":"string","nullable":true},"managerId":{"type":"string","nullable":true},"enabled":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","nullable":true,"format":"date-time"},"lastUsedAt":{"type":"string","nullable":true,"format":"date-time"},"revokedAt":{"type":"string","nullable":true,"format":"date-time"},"deploymentSetupConfig":{"$ref":"#/components/schemas/APIKeyDeploymentSetupConfig"}},"required":["id","description","keyPrefix","type","role","workspaceId","projectId","deploymentId","deploymentGroupId","managerId","enabled","createdAt","expiresAt","lastUsedAt","revokedAt","deploymentSetupConfig"]}},"required":["apiKey","keyInfo"],"description":"Response containing the new API key and its metadata"},"CreateAPIKeyRequest":{"type":"object","properties":{"description":{"type":"string","nullable":true,"minLength":3,"maxLength":128},"scope":{"$ref":"#/components/schemas/Scope"},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"Optional expiration date for the API key"}},"required":["description","scope","expiresAt"],"description":"Request schema for creating a new API key"},"Scope":{"oneOf":[{"$ref":"#/components/schemas/WorkspaceScope"},{"$ref":"#/components/schemas/ProjectScope"},{"$ref":"#/components/schemas/DeploymentScope"},{"$ref":"#/components/schemas/DeploymentGroupScope"},{"$ref":"#/components/schemas/ManagerScope"}],"discriminator":{"propertyName":"type","mapping":{"workspace":"#/components/schemas/WorkspaceScope","project":"#/components/schemas/ProjectScope","deployment":"#/components/schemas/DeploymentScope","deployment-group":"#/components/schemas/DeploymentGroupScope","manager":"#/components/schemas/ManagerScope"}},"description":"Scope and role configuration for service accounts"},"WorkspaceScope":{"type":"object","properties":{"type":{"type":"string","enum":["workspace"]},"role":{"$ref":"#/components/schemas/WorkspaceRole"}},"required":["type","role"],"description":"Workspace-scoped configuration"},"ProjectScope":{"type":"object","properties":{"type":{"type":"string","enum":["project"]},"projectId":{"type":"string","description":"ID of the project this is scoped to"},"role":{"$ref":"#/components/schemas/ProjectRole"}},"required":["type","projectId","role"],"description":"Project-scoped configuration"},"DeploymentScope":{"type":"object","properties":{"type":{"type":"string","enum":["deployment"]},"deploymentId":{"type":"string","description":"ID of the deployment this is scoped to"},"projectId":{"type":"string","description":"ID of the project this deployment belongs to"},"role":{"$ref":"#/components/schemas/DeploymentRole"}},"required":["type","deploymentId","projectId","role"],"description":"Deployment-scoped configuration"},"DeploymentGroupScope":{"type":"object","properties":{"type":{"type":"string","enum":["deployment-group"]},"deploymentGroupId":{"type":"string","description":"ID of the deployment group this is scoped to"},"projectId":{"type":"string","description":"ID of the project this deployment group belongs to"},"role":{"$ref":"#/components/schemas/DeploymentGroupRole"}},"required":["type","deploymentGroupId","projectId","role"],"description":"Deployment group-scoped configuration"},"ManagerScope":{"type":"object","properties":{"type":{"type":"string","enum":["manager"]},"managerId":{"type":"string","description":"ID of the manager this is scoped to"},"role":{"$ref":"#/components/schemas/ManagerRole"}},"required":["type","managerId","role"],"description":"Manager-scoped configuration"},"UpdateAPIKeyRequest":{"type":"object","properties":{"enabled":{"type":"boolean"},"description":{"type":"string","nullable":true,"minLength":3,"maxLength":128},"deploymentSetupConfig":{"$ref":"#/components/schemas/UpdateDeploymentSetupPolicy"},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"Optional expiration date for the API key"}},"description":"Request schema for updating an API key"},"UpdateDeploymentSetupPolicy":{"type":"object","properties":{"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"}},"required":["policy"],"description":"Editable part of a deployment link's setup config. Locked env vars and input values are preserved."},"DeleteAPIKeysRequest":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"minItems":1}},"required":["ids"]},"DomainWithUsage":{"allOf":[{"$ref":"#/components/schemas/Domain"},{"type":"object","properties":{"endpoints":{"type":"array","items":{"$ref":"#/components/schemas/DomainEndpoint"}},"usage":{"type":"object","properties":{"deploymentUrlProjects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}},"portalBindings":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"projectId":{"type":"string","nullable":true},"projectName":{"type":"string","nullable":true},"hostname":{"type":"string"}},"required":["id","projectId","projectName","hostname"]}},"packageDomains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"hostname":{"type":"string"}},"required":["id","hostname"]}},"managerBindings":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"managerId":{"type":"string"},"managerName":{"type":"string"},"hostname":{"type":"string"}},"required":["id","managerId","managerName","hostname"]}}},"required":["deploymentUrlProjects","portalBindings","packageDomains","managerBindings"]}},"required":["endpoints","usage"]}]},"Domain":{"type":"object","properties":{"id":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"domain":{"type":"string"},"isSystem":{"type":"boolean"},"claimToken":{"type":"string"},"hostedZoneId":{"type":"string","nullable":true},"nameServers":{"type":"array","nullable":true,"items":{"type":"string"}},"status":{"type":"string","enum":["pending-zone-creation","pending-verification","verified","lost-verification","failed","deleting"]},"error":{"nullable":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"verifiedAt":{"type":"string","format":"date-time","nullable":true}},"required":["id","workspaceId","domain","isSystem","claimToken","status","createdAt","updatedAt"]},"EventListItemResponse":{"allOf":[{"$ref":"#/components/schemas/Event"},{"type":"object","properties":{"releaseCreatedAt":{"type":"string","format":"date-time","nullable":true,"description":"createdAt of the event's referenced release, included when ?include=releaseCreatedAt is used"}}}]},"ListMachinesJoinTokensResponse":{"type":"object","properties":{"tokens":{"type":"array","items":{"$ref":"#/components/schemas/MachinesJoinTokenSummary"}}},"required":["tokens"]},"MachinesJoinTokenSummary":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"expiresAt":{"type":"string","nullable":true},"maxJoins":{"type":"integer","nullable":true},"joinCount":{"type":"integer"},"lastUsedAt":{"type":"string","nullable":true},"revokedAt":{"type":"string","nullable":true}},"required":["id","createdAt","createdBy","joinCount"]},"CreateMachinesJoinTokenResponse":{"type":"object","properties":{"joinToken":{"type":"string"},"controlPlaneUrl":{"type":"string","format":"uri"},"clusterId":{"type":"string"},"token":{"$ref":"#/components/schemas/MachinesJoinTokenSummary"},"cliInstallScriptUrl":{"type":"string","nullable":true,"format":"uri","description":"Deploy CLI install script URL, or null when no ready CLI package exists."},"cliCommandName":{"type":"string","nullable":true,"description":"CLI command name to use in join instructions."}},"required":["joinToken","controlPlaneUrl","clusterId","token","cliInstallScriptUrl","cliCommandName"]},"RotateMachinesJoinTokenResponse":{"type":"object","properties":{"joinToken":{"type":"string"},"controlPlaneUrl":{"type":"string","format":"uri"},"clusterId":{"type":"string"},"token":{"$ref":"#/components/schemas/MachinesJoinTokenSummary"},"cliInstallScriptUrl":{"type":"string","nullable":true,"format":"uri","description":"Deploy CLI install script URL, or null when no ready CLI package exists."},"cliCommandName":{"type":"string","nullable":true,"description":"CLI command name to use in join instructions."}},"required":["joinToken","controlPlaneUrl","clusterId","token","cliInstallScriptUrl","cliCommandName"]},"RevokeMachinesJoinTokenResponse":{"type":"object","properties":{"tokenId":{"type":"string"},"revoked":{"type":"boolean"}},"required":["tokenId","revoked"]},"ListMachinesInventoryResponse":{"type":"object","properties":{"machines":{"type":"array","items":{"$ref":"#/components/schemas/MachinesInventoryItem"}}},"required":["machines"]},"MachinesInventoryItem":{"type":"object","properties":{"machineId":{"type":"string"},"status":{"type":"string"},"capacityGroup":{"type":"string"},"zone":{"type":"string"},"cpu":{"$ref":"#/components/schemas/MachinesCapacityMetric"},"memory":{"$ref":"#/components/schemas/MachinesCapacityMetric"},"storage":{"allOf":[{"$ref":"#/components/schemas/MachinesCapacityMetric"}],"nullable":true},"drainBlockers":{"type":"array","items":{"$ref":"#/components/schemas/MachinesDrainBlocker"}},"drainDeadlineAt":{"type":"string","nullable":true},"drainForce":{"type":"boolean"},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"publicIp":{"type":"string","nullable":true},"overlayIp":{"type":"string","nullable":true},"lastHeartbeat":{"type":"string"},"horizondVersion":{"type":"string","nullable":true},"localOverrides":{"type":"array","items":{"$ref":"#/components/schemas/MachinesLocalOverrideObservation"}},"localOverridesObservedAt":{"type":"string","nullable":true},"replicaCount":{"type":"integer"}},"required":["machineId","status","capacityGroup","zone","cpu","memory","drainBlockers","drainForce","lastHeartbeat","localOverrides","replicaCount"]},"MachinesCapacityMetric":{"type":"object","properties":{"allocated":{"type":"number"},"systemReserve":{"type":"number"},"total":{"type":"number"}},"required":["allocated","systemReserve","total"]},"MachinesDrainBlocker":{"type":"object","properties":{"reason":{"type":"string"},"workloadId":{"type":"string","nullable":true},"workloadName":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true},"schedulingMode":{"type":"string","nullable":true},"state":{"type":"string","nullable":true}},"required":["reason"]},"MachinesLocalOverrideObservation":{"type":"object","properties":{"activeDigest":{"type":"string","nullable":true},"actor":{"type":"string","nullable":true},"baseAssignmentHash":{"type":"string"},"baseDigest":{"type":"string","nullable":true},"candidateDigest":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"failureCategory":{"type":"string","nullable":true},"fallbackDigest":{"type":"string","nullable":true},"forcedStop":{"type":"boolean","nullable":true},"healthySince":{"type":"string","nullable":true},"incidentId":{"type":"string","nullable":true},"lifecycle":{"type":"string"},"phaseStartedAt":{"type":"string","nullable":true},"replicaId":{"type":"string"},"workloadName":{"type":"string"}},"required":["baseAssignmentHash","lifecycle","replicaId","workloadName"]},"CancelMachinesMachineDrainResponse":{"type":"object","properties":{"machineId":{"type":"string"},"cancelled":{"type":"boolean"}},"required":["machineId","cancelled"]},"DrainMachinesMachineResponse":{"type":"object","properties":{"machineId":{"type":"string"},"requested":{"type":"boolean"}},"required":["machineId","requested"]},"DrainMachinesMachineRequest":{"type":"object","properties":{"deadlineSeconds":{"type":"integer","nullable":true,"minimum":0},"force":{"type":"boolean"}}},"RemoveMachinesMachineResponse":{"type":"object","properties":{"machineId":{"type":"string"},"removed":{"type":"boolean"}},"required":["machineId","removed"]},"CommandListItemResponse":{"allOf":[{"$ref":"#/components/schemas/Command"},{"type":"object","properties":{"deployment":{"$ref":"#/components/schemas/CommandDeploymentInfo"},"project":{"$ref":"#/components/schemas/CommandProjectInfo"}}}]},"CommandDeploymentInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string"},"deploymentGroup":{"$ref":"#/components/schemas/CommandDeploymentGroupInfo"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Platform-specific environment information"},"managerId":{"type":"string","description":"Manager ID for obtaining access tokens"},"managerUrl":{"type":"string","nullable":true,"format":"uri","description":"URL of the manager for direct payload access"},"managerName":{"type":"string","nullable":true,"description":"Human-readable name of the manager"},"managerIsSystem":{"type":"boolean","nullable":true,"description":"Whether the manager is Alien-hosted (system)"}},"required":["id","name","managerId"]},"CommandDeploymentGroupInfo":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"CommandProjectInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"name":{"type":"string"}},"required":["id","name"]},"Command":{"type":"object","properties":{"id":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"name":{"type":"string","description":"Command name (e.g., 'analyze-repository', 'sync-data')"},"state":{"type":"string","enum":["PENDING_UPLOAD","PENDING","DISPATCHED","SUCCEEDED","FAILED","EXPIRED"],"description":"Command states in the Commands protocol lifecycle"},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Delivery mode for this command (push/pull), derived from the target at creation time"},"target":{"type":"object","nullable":true,"properties":{"resourceId":{"type":"string","description":"The resource ID within the deployment's stack (e.g. a Worker/Container/Daemon id)."},"resourceType":{"type":"string","enum":["worker","container","daemon"],"description":"The kind of command-capable resource a command targets."}},"required":["resourceId","resourceType"],"description":"Resource the command is addressed to; null on commands created before target routing"},"attempt":{"type":"number","nullable":true,"description":"Current attempt number"},"deadline":{"type":"string","nullable":true,"format":"date-time","description":"Optional deadline for command execution"},"requestSizeBytes":{"type":"number","nullable":true,"description":"Size of command params in bytes"},"responseSizeBytes":{"type":"number","nullable":true,"description":"Size of command response in bytes"},"createdAt":{"type":"string","format":"date-time","description":"When the command was created"},"dispatchedAt":{"type":"string","nullable":true,"format":"date-time","description":"When the command was dispatched to the deployment"},"completedAt":{"type":"string","nullable":true,"format":"date-time","description":"When the command completed"},"error":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Error details if command failed"},"result":{"nullable":true,"description":"Decoded command result when available"}},"required":["id","deploymentId","projectId","workspaceId","name","state","deploymentModel","target","attempt","deadline","requestSizeBytes","responseSizeBytes","createdAt","dispatchedAt","completedAt","error"]},"ListCommandNamesResponse":{"type":"object","properties":{"names":{"type":"array","items":{"type":"string"}}},"required":["names"]},"ListCommandDeploymentsResponse":{"type":"object","properties":{"deployments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string"},"deploymentGroup":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}},"required":["id","name"]}}},"required":["deployments"]},"CreateCommandResponse":{"type":"object","properties":{"id":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"projectId":{"type":"string","description":"Project ID (for manager to use in routing)"},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"How to dispatch the command"},"target":{"type":"object","properties":{"resourceId":{"type":"string","description":"The resource ID within the deployment's stack (e.g. a Worker/Container/Daemon id)."},"resourceType":{"type":"string","enum":["worker","container","daemon"],"description":"The kind of command-capable resource a command targets."}},"required":["resourceId","resourceType"],"description":"Resource the command is addressed to"},"deliveryMode":{"type":"string","enum":["push","pull"],"description":"How the command is delivered to its target"}},"required":["id","projectId","deploymentModel","target","deliveryMode"]},"CreateCommandRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Target deployment ID","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string","minLength":1,"maxLength":255,"description":"Command name (e.g., 'analyze-repository')"},"params":{"nullable":true,"description":"Command parameters for public invocation"},"target":{"type":"string","maxLength":255,"description":"Resource id the command is addressed to. Required when the deployment has more than one command-capable resource."},"initialState":{"type":"string","enum":["PENDING_UPLOAD","PENDING","DISPATCHED","SUCCEEDED","FAILED","EXPIRED"],"description":"Initial state (PENDING_UPLOAD if params require upload, PENDING if inline)"},"deadline":{"type":"string","nullable":true,"format":"date-time","description":"Optional deadline for command execution"},"requestSizeBytes":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Size of command params in bytes"}},"required":["deploymentId","name"]},"ResolvedCommandTarget":{"type":"object","properties":{"target":{"type":"object","properties":{"resourceId":{"type":"string","description":"The resource ID within the deployment's stack (e.g. a Worker/Container/Daemon id)."},"resourceType":{"type":"string","enum":["worker","container","daemon"],"description":"The kind of command-capable resource a command targets."}},"required":["resourceId","resourceType"],"description":"Identifies the specific resource a command is addressed to."},"deliveryMode":{"type":"string","enum":["push","pull"],"description":"How a command is delivered to its target resource.\n\nThis is a Commands-protocol-specific concept and is intentionally distinct\nfrom `DeploymentModel` (see `stack_settings.rs`), which governs the\ninfrastructure-level push/pull wiring for a deployment. Serialized\nlowercase for consistency with `CommandTargetType`."}},"required":["target","deliveryMode"]},"UpdateCommandRequest":{"type":"object","properties":{"state":{"type":"string","enum":["PENDING_UPLOAD","PENDING","DISPATCHED","SUCCEEDED","FAILED","EXPIRED"],"description":"New command state"},"attempt":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Current attempt number"},"dispatchedAt":{"type":"string","nullable":true,"format":"date-time","description":"When command was dispatched"},"completedAt":{"type":"string","nullable":true,"format":"date-time","description":"When command completed"},"responseSizeBytes":{"type":"number","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Size of response in bytes"},"error":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Error details if failed"}}},"DispatchCommandResponse":{"type":"object","properties":{"updated":{"type":"boolean","description":"Whether the command transitioned; false if it was already terminal"}},"required":["updated"]},"DispatchCommandRequest":{"type":"object","properties":{"dispatchedAt":{"type":"string","format":"date-time","description":"When the command was dispatched"}},"required":["dispatchedAt"]},"CompleteCommandResponse":{"type":"object","properties":{"updated":{"type":"boolean","description":"Whether the command transitioned; false if it was already terminal"}},"required":["updated"]},"CompleteCommandRequest":{"type":"object","properties":{"state":{"type":"string","enum":["SUCCEEDED","FAILED","EXPIRED"],"description":"Terminal state to transition to"},"completedAt":{"type":"string","format":"date-time","description":"When the command completed"},"responseSizeBytes":{"type":"number","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Size of response in bytes"},"error":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Error details if failed"}},"required":["state","completedAt"]},"IncrementCommandAttemptResponse":{"type":"object","properties":{"attempt":{"type":"integer","description":"The attempt number after the increment"}},"required":["attempt"]},"DebugSessionListResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DebugSession"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"},"DebugSession":{"type":"object","properties":{"id":{"type":"string","pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Unique identifier for the debug session.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"owner":{"type":"string","nullable":true,"maxLength":128},"state":{"$ref":"#/components/schemas/DebugSessionState"},"mode":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"provider":{"type":"string","nullable":true,"enum":["aws","gcp","azure","kubernetes","machines","local","test",null],"description":"Represents the target cloud platform."},"presignedUrls":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/DebugPackagePresignedURLs"}},"error":{"nullable":true},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"}},"required":["id","state","mode","presignedUrls","createdAt","expiresAt","deploymentId","projectId","workspaceId"]},"DebugSessionState":{"type":"string","enum":["pending","running","stopping","stopped","expired","failed"]},"DebugPackagePresignedURLs":{"type":"object","properties":{"readUrl":{"type":"string","maxLength":2048,"format":"uri"},"writeUrl":{"type":"string","maxLength":2048,"format":"uri"}},"required":["readUrl","writeUrl"]},"CreateDebugSessionRequest":{"type":"object","properties":{"id":{"type":"string","pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Override the generated id. Manager passes the registry session id so logs correlate.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"owner":{"type":"string","nullable":true,"maxLength":128},"expiresAt":{"type":"string","format":"date-time"},"state":{"allOf":[{"$ref":"#/components/schemas/DebugSessionState"},{"description":"Initial state. Defaults to 'pending'."}]}},"required":["deploymentId","expiresAt"]},"UpdateDebugSessionRequest":{"type":"object","properties":{"state":{"$ref":"#/components/schemas/DebugSessionState"},"error":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"expiresAt":{"type":"string","format":"date-time"}}},"DeploymentInfo":{"type":"object","properties":{"tokenType":{"type":"string","enum":["deployment","deployment-group"],"description":"Type of token used to authenticate this request"},"deployment":{"type":"object","properties":{"name":{"type":"string"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."}},"required":["name","platform"],"description":"Deployment details (present when using a deployment-scoped token)"},"deploymentGroup":{"type":"object","properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string"},"pinnedSubdomain":{"type":"string","nullable":true}},"required":["id","name","pinnedSubdomain"],"description":"Deployment group details (present when using a deployment-group token)"},"workspace":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"avatarUrl":{"type":"string","nullable":true,"format":"uri"}},"required":["id","name"]},"project":{"type":"object","properties":{"name":{"type":"string"},"portal":{"type":"object","properties":{"appearance":{"$ref":"#/components/schemas/DeploymentPortalAppearance"}},"required":["appearance"]},"stackSummary":{"type":"object","nullable":true,"properties":{"platforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms supported by the active release"},"requiresNetwork":{"type":"boolean","description":"Whether the stack contains resources that require cloud VPC networking"},"resourceCounts":{"type":"object","properties":{"workers":{"type":"integer","minimum":0},"containers":{"type":"integer","minimum":0},"daemons":{"type":"integer","minimum":0,"description":"Daemon resources that run on managed runtime machines"},"publicHttpsEndpoints":{"type":"integer","minimum":0,"description":"Resources that declare managed public HTTPS endpoint setup"},"externalInfra":{"type":"integer","minimum":0,"description":"Storage, queue, KV, vault, database, or cache resources that Kubernetes needs Terraform to provision"},"total":{"type":"integer","minimum":0}},"required":["workers","containers","publicHttpsEndpoints","externalInfra","total"]},"publicEndpoints":{"type":"array","items":{"type":"object","properties":{"resourceId":{"type":"string"},"endpointName":{"type":"string"},"hostLabel":{"type":"string"},"wildcardSubdomains":{"type":"boolean"}},"required":["resourceId","endpointName","hostLabel","wildcardSubdomains"]},"description":"Public endpoints declared by the active release stack"}},"required":["platforms","requiresNetwork","resourceCounts","publicEndpoints"]},"generatedDomain":{"type":"object","nullable":true,"properties":{"domain":{"type":"string"},"isSystem":{"type":"boolean"}},"required":["domain","isSystem"],"description":"Parent domain for generated deployment URLs. Chosen public subdomains are only allowed when isSystem is false."}},"required":["name","portal"]},"packages":{"type":"object","properties":{"ready":{"type":"boolean","description":"True if all enabled packages are ready for deployment"},"cli":{"type":"object","properties":{"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"commandName":{"type":"string","description":"CLI command name to use in install instructions"},"version":{"type":"string"},"outputs":{"type":"object","properties":{"binaries":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sha256":{"type":"string","description":"SHA256 checksum"},"size":{"type":"integer","minimum":0,"description":"File size in bytes"},"url":{"type":"string","description":"Download URL for the binary"}},"required":["sha256","size","url"],"description":"Information about a single binary artifact"},"description":"Binary information for each target platform"},"buildInfo":{"type":"object","properties":{"alienSha":{"type":"string","description":"Alien source commit used to build the source CLI and agent binaries."},"horizonSha":{"type":"string","description":"Compute backend source revision used by optional package extensions, if applicable."},"machineBundleManifestUrl":{"type":"string","nullable":true,"description":"Machine runtime release manifest embedded into the generated CLI."},"platformSha":{"type":"string","description":"Source revision used to build the package service and optional extensions."},"sourceAgentBinarySha256":{"type":"string","nullable":true,"description":"SHA256 checksum of the source runtime helper binary shipped with the CLI package, when present."},"sourceCliBinarySha256":{"type":"string","description":"SHA256 checksum of the source deploy CLI binary before white-label config is appended."}},"required":["alienSha","horizonSha","platformSha","sourceCliBinarySha256"],"description":"Source provenance for a generated CLI package."}},"required":["binaries","buildInfo"],"description":"Outputs from a CLI package build"},"error":{"nullable":true},"installScripts":{"type":"object","properties":{"windows":{"type":"string","format":"uri"},"mac":{"type":"string","format":"uri"},"linux":{"type":"string","format":"uri"}},"required":["windows","mac","linux"],"description":"Install script URLs for each OS"}},"required":["status","commandName","installScripts"]},"cloudformation":{"type":"object","properties":{"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"version":{"type":"string"},"outputs":{"type":"object","properties":{"targets":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"launchStackUrl":{"type":"string","description":"AWS Console quick-launch URL"},"sha256":{"type":"string","description":"SHA256 checksum of the template"},"size":{"type":"integer","minimum":0,"description":"Template size in bytes"},"stackPolicyUrl":{"type":"string","description":"S3 URL to the CloudFormation stack policy"},"target":{"type":"string","description":"CloudFormation target (aws, eks)"},"templateUrl":{"type":"string","description":"S3 URL to the CloudFormation template"}},"required":["launchStackUrl","sha256","size","stackPolicyUrl","target","templateUrl"],"description":"Information about a single CloudFormation template package for one target."},"description":"Template artifacts by CloudFormation target."}},"required":["targets"],"description":"Outputs from a CloudFormation package build."},"error":{"nullable":true},"mode":{"type":"string","enum":["auto","outputs"]},"launchUrl":{"type":"string","format":"uri","description":"CloudFormation launch URL"},"outputsSchema":{"nullable":true}},"required":["status","mode","launchUrl"]},"terraform":{"type":"object","properties":{"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"version":{"type":"string"},"outputs":{"type":"object","properties":{"modules":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL for the module archive"},"filename":{"type":"string","description":"Filename of the module archive"},"shasum":{"type":"string","description":"SHA256 checksum of the archive"},"size":{"type":"integer","minimum":0,"description":"Size of the archive in bytes"},"source":{"type":"string","description":"Terraform module source (hostname/namespace/name/provider, without scheme)"},"target":{"type":"string","description":"Terraform module target (aws, gcp, azure, eks, gke, aks)"},"variables":{"type":"array","items":{"type":"string"},"description":"Terraform input variables exposed by this module."}},"required":["downloadUrl","filename","shasum","size","source","target"],"description":"Information about a single Terraform module package for one target."},"description":"Module registry artifacts by Terraform target."},"provider":{"type":"object","properties":{"gpgPublicKey":{"type":"object","properties":{"asciiArmor":{"type":"string","description":"ASCII-armored public key"},"keyId":{"type":"string","description":"GPG key ID"}},"required":["asciiArmor","keyId"],"description":"GPG public key for Terraform provider signature verification"},"platforms":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL for the provider zip"},"filename":{"type":"string","description":"Filename of the provider zip"},"shasum":{"type":"string","description":"SHA256 checksum of the zip file"},"shasumsSignatureUrl":{"type":"string","description":"URL to the shasums signature file"},"shasumsUrl":{"type":"string","description":"URL to the shasums file"},"size":{"type":"integer","minimum":0,"description":"Size of the zip file in bytes"}},"required":["downloadUrl","filename","shasum","shasumsSignatureUrl","shasumsUrl","size"],"description":"Information about a single Terraform provider package for a specific platform"},"description":"Provider packages for each target platform"},"source":{"type":"string","description":"Terraform provider source (hostname/namespace/type, without scheme)"}},"required":["gpgPublicKey","platforms","source"],"description":"Terraform provider registry outputs."}},"required":["modules","provider"],"description":"Outputs from a Terraform package build."},"error":{"nullable":true},"providerSource":{"type":"string","description":"Terraform provider source (without https://)"},"moduleSources":{"type":"object","additionalProperties":{"type":"string"},"description":"Terraform module sources by target"},"moduleVersion":{"type":"string"},"managerUrls":{"type":"object","additionalProperties":{"type":"string"},"description":"Manager URLs by Terraform target"}},"required":["status","providerSource","moduleSources","managerUrls"]},"helm":{"type":"object","properties":{"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"version":{"type":"string"},"outputs":{"type":"object","properties":{"chart":{"type":"string","description":"OCI chart reference (e.g., \"oci://public.ecr.aws/acme/charts/project-id\")"},"version":{"type":"string","description":"Chart version (e.g., \"1.2.3\")"}},"required":["chart","version"],"description":"Outputs from a Helm chart package build"},"error":{"nullable":true},"chartRef":{"type":"string","description":"OCI chart reference"},"managerFetchExample":{"type":"string"},"localImportExample":{"type":"string"}},"required":["status","chartRef"]}},"required":["ready"]},"installContext":{"type":"object","properties":{"targets":{"type":"object","additionalProperties":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"managerUrl":{"type":"string","format":"uri"},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}],"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."},"awsManagingAccountId":{"type":"string"}},"required":["platform","managerUrl"]},"description":"Deployment-session install context by Terraform/installer target"}},"required":["targets"]},"supportedRegions":{"$ref":"#/components/schemas/SupportedCloudRegions"},"setupConfig":{"$ref":"#/components/schemas/DeploymentInfoSetupConfig"},"readiness":{"type":"object","properties":{"status":{"type":"string","enum":["ready","notReady","unknown"]},"checks":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"status":{"type":"string","enum":["passed","failed","warning","unknown"]},"message":{"type":"string"},"checkedAt":{"type":"string"}},"required":["code","status","message","checkedAt"]}}},"required":["status","checks"]}},"required":["tokenType","workspace","project","packages","installContext","supportedRegions"]},"DeploymentPortalAppearance":{"type":"object","properties":{"avatarUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional project-specific avatar override for the deployment portal."},"preset":{"$ref":"#/components/schemas/DeploymentPortalAppearancePreset"},"accentColor":{"$ref":"#/components/schemas/DeploymentPortalAccentColor"},"title":{"type":"string","nullable":true,"maxLength":80,"description":"Optional portal title. Defaults to the project name."},"subtitle":{"type":"string","nullable":true,"maxLength":160,"description":"Optional customer-facing subtitle."},"supportUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional support or contact URL."},"docsUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional documentation URL."},"density":{"$ref":"#/components/schemas/DeploymentPortalDensity"}}},"SupportedCloudRegions":{"type":"object","properties":{"aws":{"type":"array","items":{"type":"string"},"description":"AWS regions supported by this Alien environment."},"gcp":{"type":"array","items":{"type":"string"},"description":"GCP regions supported by this Alien environment."},"azure":{"type":"array","items":{"type":"string"},"description":"Azure locations supported by this Alien environment."}},"required":["aws","gcp","azure"]},"DeploymentInfoSetupConfig":{"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"environmentVariables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","pattern":"^[A-Z_][A-Z0-9_]*$","description":"Variable name"},"type":{"$ref":"#/components/schemas/EnvironmentVariableType"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string","pattern":"^[a-zA-Z0-9_-]+(\\*)?$"},"description":"Target resource patterns (null = all resources, array = wildcard patterns)"}},"required":["name","type","targetResources"]}},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."}},"inputValues":{"type":"array","items":{"$ref":"#/components/schemas/ResolvedStackInputSummary"}}},"required":["metadata","policy","environmentVariables"]},"ResolvedStackInputSummary":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"]}},"required":{"type":"boolean"},"secret":{"type":"boolean"},"provided":{"type":"boolean"}},"required":["id","label","providedBy","required","secret","provided"]},"DeploymentComputePlan":{"type":"object","properties":{"pools":{"type":"array","items":{"type":"object","properties":{"poolId":{"type":"string"},"workloads":{"type":"array","items":{"type":"string"}},"requirements":{"type":"object","properties":{"cpu":{"type":"string"},"memoryBytes":{"type":"integer","minimum":0},"ephemeralStorageBytes":{"type":"integer","minimum":0},"architecture":{"type":"string","nullable":true,"enum":["arm64","x86_64",null]},"gpu":{"type":"object","nullable":true,"properties":{"type":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["type","count"]}},"required":["cpu","memoryBytes","ephemeralStorageBytes"]},"scale":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["fixed"]},"machines":{"type":"object","properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"default":{"type":"integer","minimum":0}},"required":["min","max","default"]}},"required":["type","machines"]},{"type":"object","properties":{"type":{"type":"string","enum":["autoscale"]},"min":{"type":"object","properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"default":{"type":"integer","minimum":0}},"required":["min","max","default"]},"max":{"type":"object","properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"default":{"type":"integer","minimum":0}},"required":["min","max","default"]}},"required":["type","min","max"]}]},"selected":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["fixed"]},"machines":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","machines"]},{"type":"object","properties":{"mode":{"type":"string","enum":["autoscale"]},"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","min","max"]}]},"recommended":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["fixed"]},"machines":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","machines"]},{"type":"object","properties":{"mode":{"type":"string","enum":["autoscale"]},"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","min","max"]}]},"machines":{"type":"array","items":{"type":"object","properties":{"machine":{"type":"string"},"profile":{"type":"object","properties":{"cpu":{"type":"string"},"memoryBytes":{"type":"integer","minimum":0},"ephemeralStorageBytes":{"type":"integer","minimum":0},"architecture":{"type":"string","nullable":true,"enum":["arm64","x86_64",null]},"gpu":{"type":"object","nullable":true,"properties":{"type":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["type","count"]}},"required":["cpu","memoryBytes","ephemeralStorageBytes"]},"recommended":{"type":"boolean"}},"required":["machine","profile","recommended"]}},"errors":{"type":"array","items":{"type":"string"}}},"required":["poolId","workloads","requirements","scale","selected","recommended","machines"]}}},"required":["pools"]},"PreparedDeploymentStack":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure"]},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"setup":{"$ref":"#/components/schemas/SetupFingerprintInfo"}},"required":["platform","stack","setup"]},"SlackInstallUrlResponse":{"type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"]},"SlackIntegrationStatus":{"type":"object","properties":{"connected":{"type":"boolean"},"slackTeamId":{"type":"string","nullable":true},"slackTeamName":{"type":"string","nullable":true},"installedByUserId":{"type":"string","nullable":true},"installedAt":{"type":"string","nullable":true},"notificationChannelId":{"type":"string","nullable":true}},"required":["connected","slackTeamId","slackTeamName","installedByUserId","installedAt","notificationChannelId"]},"SlackChannelsResponse":{"type":"object","properties":{"channels":{"type":"array","items":{"$ref":"#/components/schemas/SlackChannel"}}},"required":["channels"]},"SlackChannel":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"isMember":{"type":"boolean"}},"required":["id","name","isMember"]},"SlackNotificationChannelResponse":{"type":"object","properties":{"notificationChannelId":{"type":"string","nullable":true},"warning":{"type":"string","nullable":true}},"required":["notificationChannelId","warning"]},"SlackNotificationChannelRequest":{"type":"object","properties":{"channelId":{"type":"string","nullable":true}},"required":["channelId"]},"AgentSessionListResponse":{"type":"object","properties":{"sessions":{"type":"array","items":{"$ref":"#/components/schemas/AgentSessionListItem"}}},"required":["sessions"]},"AgentSessionListItem":{"type":"object","properties":{"id":{"type":"string"},"triggerType":{"type":"string"},"subjectId":{"type":"string"},"subject":{"$ref":"#/components/schemas/AgentSessionSubject"},"status":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","triggerType","subjectId","subject","status","createdAt","updatedAt"]},"AgentSessionSubject":{"type":"object","properties":{"deploymentName":{"type":"string","nullable":true},"deploymentGroupId":{"type":"string","nullable":true},"deploymentGroupName":{"type":"string","nullable":true},"releaseId":{"type":"string","nullable":true},"releaseCommitMessage":{"type":"string","nullable":true},"releaseCommitRef":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"projectName":{"type":"string","nullable":true}},"required":["deploymentName","deploymentGroupId","deploymentGroupName","releaseId","releaseCommitMessage","releaseCommitRef","projectId","projectName"]},"AgentSessionDetail":{"allOf":[{"$ref":"#/components/schemas/AgentSessionListItem"},{"type":"object","properties":{"resultText":{"type":"string","nullable":true},"toolNames":{"type":"array","nullable":true,"items":{"type":"string"}},"error":{"type":"string","nullable":true},"pendingApproval":{"type":"object","nullable":true,"properties":{"approvalId":{"type":"string"},"toolCallId":{"type":"string"},"toolName":{"type":"string"},"input":{"nullable":true}},"required":["approvalId","toolCallId","toolName"]}},"required":["resultText","toolNames","error","pendingApproval"]}]},"AgentSessionEventsResponse":{"type":"object","properties":{"events":{"type":"array","items":{"$ref":"#/components/schemas/AgentSessionEvent"}},"latestSeq":{"type":"number"},"hasMore":{"type":"boolean"}},"required":["events","latestSeq","hasMore"]},"AgentSessionEvent":{"oneOf":[{"$ref":"#/components/schemas/AgentSessionStatusEvent"},{"$ref":"#/components/schemas/AgentSessionStepEvent"},{"$ref":"#/components/schemas/AgentSessionToolCallEvent"},{"$ref":"#/components/schemas/AgentSessionToolResultEvent"},{"$ref":"#/components/schemas/AgentSessionMarkdownEvent"},{"$ref":"#/components/schemas/AgentSessionApprovalRequestedEvent"},{"$ref":"#/components/schemas/AgentSessionApprovalGrantedEvent"},{"$ref":"#/components/schemas/AgentSessionRestartedEvent"},{"$ref":"#/components/schemas/AgentSessionEventsTruncatedEvent"}],"discriminator":{"propertyName":"type","mapping":{"status":"#/components/schemas/AgentSessionStatusEvent","step":"#/components/schemas/AgentSessionStepEvent","tool_call":"#/components/schemas/AgentSessionToolCallEvent","tool_result":"#/components/schemas/AgentSessionToolResultEvent","markdown":"#/components/schemas/AgentSessionMarkdownEvent","approval_requested":"#/components/schemas/AgentSessionApprovalRequestedEvent","approval_granted":"#/components/schemas/AgentSessionApprovalGrantedEvent","session_restarted":"#/components/schemas/AgentSessionRestartedEvent","events_truncated":"#/components/schemas/AgentSessionEventsTruncatedEvent"}}},"AgentSessionStatusEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["status"]},"payload":{"type":"object","properties":{"status":{"type":"string"},"error":{"type":"string"}},"required":["status"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionStepEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["step"]},"payload":{"type":"object","properties":{"stepId":{"type":"string"},"title":{"type":"string"},"status":{"type":"string","enum":["in_progress","complete","error"]}},"required":["stepId","title","status"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionToolCallEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["tool_call"]},"payload":{"type":"object","properties":{"toolCallId":{"type":"string"},"toolName":{"type":"string"},"input":{"nullable":true}},"required":["toolCallId","toolName"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionToolResultEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["tool_result"]},"payload":{"type":"object","properties":{"toolCallId":{"type":"string","nullable":true},"toolName":{"type":"string","nullable":true},"ok":{"type":"boolean"},"output":{"nullable":true}},"required":["toolCallId","toolName","ok"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionMarkdownEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["markdown"]},"payload":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionApprovalRequestedEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["approval_requested"]},"payload":{"type":"object","properties":{"approvalId":{"type":"string"},"toolCallId":{"type":"string"},"toolName":{"type":"string"},"input":{"nullable":true}},"required":["approvalId","toolCallId","toolName"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionApprovalGrantedEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["approval_granted"]},"payload":{"type":"object","properties":{"approvalId":{"type":"string"},"approvedByUserId":{"type":"string"},"approvedByName":{"type":"string","nullable":true},"source":{"type":"string","enum":["dashboard","slack"]}},"required":["approvalId","approvedByUserId","approvedByName","source"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionRestartedEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["session_restarted"]},"payload":{"type":"object","properties":{"reason":{"type":"string"}},"required":["reason"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionEventsTruncatedEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["events_truncated"]},"payload":{"type":"object","properties":{"limit":{"type":"number"}},"required":["limit"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionApproveResponse":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string"},"resumed":{"type":"boolean"}},"required":["jobId","status","resumed"]},"AgentSessionStopResponse":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string"},"canceled":{"type":"boolean"}},"required":["jobId","status","canceled"]},"SyncListResponse":{"type":"object","properties":{"deployments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!ag[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment name.","example":"acme-prod"},"publicSubdomain":{"type":"string","nullable":true,"minLength":1,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","description":"Public subdomain for auto-generated domains"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"basePlatform":{"type":"string","nullable":true,"enum":["aws","gcp","azure",null],"description":"Underlying cloud platform for Kubernetes deployments."},"region":{"type":"string","nullable":true,"description":"Cloud region or location for the deployment."},"deploymentProtocolVersion":{"$ref":"#/components/schemas/DeploymentProtocolVersion"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"ID of deployment group this deployment belongs to","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-provided configuration (network, deployment model, approvals)"},"stackState":{"type":"object","nullable":true,"properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"State of infrastructure components managed by this deployment"},"runtimeMetadata":{"type":"object","nullable":true,"properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment state persistence"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the currently deployed release (actual state)","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the desired release for deployment/update (desired state)","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"releaseChannel":{"allOf":[{"$ref":"#/components/schemas/ReleaseChannelName"},{"description":"Named release stream followed when the deployment is not pinned"}]},"importSource":{"type":"string","nullable":true,"enum":["cloudformation","terraform","helm",null],"description":"Setup source that imported this deployment"},"setupMethod":{"type":"string","nullable":true,"enum":["cloudformation","google-oauth","terraform","helm","cli","manual",null],"description":"Setup method that created the deployment record and owns setup-time resources."},"setupMetadata":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Setup method metadata needed to guide privileged teardown."},"setupTarget":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup target for compatibility checks"},"setupFingerprint":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup compatibility fingerprint"},"setupFingerprintVersion":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Imported setup fingerprint algorithm version"},"operatorScope":{"type":"string","nullable":true,"description":"Display-only scope reported by the Operator manifest"},"operatorPermission":{"type":"string","nullable":true,"description":"Display-only permission tier reported by the Operator manifest"},"operatorVersion":{"type":"string","nullable":true,"description":"Version reported by the Operator"},"capabilities":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OperatorCapabilityReport"},"description":"Capability state reported by the Operator"},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat from the deployment"},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Latest error information if the deployment is in a failed state"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"ID of the manager responsible for this deployment"}]},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"userEnvironmentVariables":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"}},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}],"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."},"deploymentToken":{"type":"string","nullable":true},"lockedBy":{"type":"string","nullable":true},"lockedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["id","name","status","projectId","platform","deploymentProtocolVersion","deploymentGroupId","stackSettings","releaseChannel","retryRequested","createdAt","updatedAt","managerId","workspaceId","userEnvironmentVariables"]}}},"required":["deployments"],"description":"Full deployment records for manager operation"},"SyncListRequest":{"type":"object","properties":{"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Manager requesting the deployments. Manager-scoped tokens are always constrained to their own manager ID."}]},"deploymentIds":{"type":"array","items":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"description":"Specific deployment IDs to include"},"statuses":{"type":"array","items":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"description":"Filter by deployment status"},"platforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Filter by deployment platform"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Filter by deployment group ID","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"limit":{"type":"integer","minimum":1,"maximum":500,"description":"Maximum records to return"}},"additionalProperties":false,"description":"Request to list full operational deployments"},"SyncAcquireResponseDeployment":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"ID of the deployment","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"projectId":{"type":"string","description":"Project ID the deployment belongs to"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Deployment group ID the deployment belongs to","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"setupMethod":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMethod"},{"description":"Setup method recorded on the deployment when it has a setup-owned path."}]},"current":{"type":"object","properties":{"currentRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}]},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"protocolVersion":{"type":"integer","minimum":0,"description":"Protocol version for cross-actor compatibility.\nAll actors (manager, push client, agent) check this before stepping.\nMismatched versions produce a clear error instead of silent corruption.\nSee docs/02-manager/10-deployment-protocol.md."},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment\nWhen true and status is a failed state, the deployment system will retry failed resources"},"runtimeMetadata":{"oneOf":[{"type":"object","properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment\n\nStores deployment state that needs to persist across step calls."},{"nullable":true}]},"stackState":{"oneOf":[{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"Represents the collective state of all resources in a stack, including platform and pending actions."},{"nullable":true}]},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"targetRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]}},"required":["platform","protocolVersion","status"],"description":"Current deployment state (includes releases)"},"config":{"type":"object","properties":{"allowFrozenChanges":{"type":"boolean","description":"Allow frozen resource changes during updates\nWhen true, skips the frozen resources compatibility check.\nThis requires running with elevated cloud credentials."},"basePlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"computeBackend":{"oneOf":[{"allOf":[{"type":"object","properties":{"clusters":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"clusterId":{"type":"string","description":"Cluster ID (deterministic: workspace/project/deployment/resourceid)"},"managementToken":{"type":"string","description":"Management token for API access (hm_...)\nUsed by alien-deployment controllers to create/update containers"}},"required":["clusterId","managementToken"],"description":"Configuration for a single container worker cluster.\n\nContains the cluster ID and management token needed to interact with\nthe managed container control plane API for container operations."},"description":"Cluster configurations (one per ComputeCluster resource)\nKey: ComputeCluster resource ID from stack\nValue: Cluster ID and management token for that cluster"},"horizonMachineImage":{"oneOf":[{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"amis":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"AMI IDs by architecture, then AWS region."}},"required":["amis"],"description":"AWS Horizon machine image catalog."},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"images":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"imageVersionId":{"type":"string","description":"Azure Compute Gallery image version ID."}},"required":["imageVersionId"],"description":"Azure Horizon machine image entry."},"description":"Images by architecture."}},"required":["images"],"description":"Azure Horizon machine image catalog."},{"nullable":true}]},"baseImage":{"type":"object","properties":{"name":{"type":"string","description":"Base OS image name."},"version":{"type":"string","description":"Base OS image version or channel."}},"required":["name","version"],"description":"Base image metadata for the Horizon machine image."},"channel":{"type":"string","description":"Logical image channel, such as prod, staging, or canary."},"createdAt":{"type":"string","description":"Image manifest creation timestamp."},"gcp":{"oneOf":[{"type":"object","properties":{"images":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sourceImage":{"type":"string","description":"Source image self link or image-family URL."}},"required":["sourceImage"],"description":"GCP Horizon machine image entry."},"description":"Images by architecture."}},"required":["images"],"description":"GCP Horizon machine image catalog."},{"nullable":true}]},"gitSha":{"type":"string","description":"Git commit SHA used to build the image."},"horizondArtifacts":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sha256":{"type":"string","description":"SHA-256 digest for the artifact payload."},"url":{"type":"string","description":"HTTPS URL for the artifact."}},"required":["sha256","url"],"description":"Download artifact for one horizond release platform."},"description":"Per-architecture horizond artifacts by release-platform key."},"horizondVersion":{"type":"string","description":"horizond daemon version baked into the image."},"machineImageVersion":{"type":"string","description":"Published immutable machine image version."}},"required":["baseImage","channel","createdAt","gitSha","horizondArtifacts","horizondVersion","machineImageVersion"],"description":"Horizon machine image catalog.\n\nPlatform resolves concrete provider images from this catalog during rollout."},{"nullable":true}]},"url":{"type":"string","description":"Horizon control-plane API base URL."}},"required":["clusters","url"],"description":"Horizon control-plane configuration for container orchestration.\n\nContains all the information needed for Alien to interact with managed\ncontainer clusters during deployment. Each ComputeCluster resource gets its own\nentry in the clusters map."},{"type":"object","properties":{"type":{"type":"string","enum":["horizon"]}},"required":["type"]}],"description":"Compute backend for Container and Worker resources.\n\nDetermines how compute workloads are orchestrated on cloud platforms.\nWhen None, the platform default is used for cloud platforms."},{"nullable":true}]},"deploymentName":{"type":"string","nullable":true,"description":"Human-readable deployment name for cloud console metadata.\n\nThis is separate from the physical resource prefix in StackState. It is\nused only for display text such as IAM role descriptions, service\naccount descriptions, and custom role titles."},"deploymentToken":{"type":"string","nullable":true,"description":"Deployment token for pull authentication with the manager's registry.\n\nUsed by controllers to configure registry credentials so cloud platforms\nand K8s can pull images from the manager's `/v2/` endpoint."},"domainMetadata":{"oneOf":[{"type":"object","properties":{"baseDomain":{"type":"string","description":"Base domain for auto-generated domains (e.g., \"vpc.direct\")."},"hostedZoneId":{"type":"string","description":"Hosted zone ID for DNS records."},"publicSubdomain":{"type":"string","description":"Deployment public subdomain (e.g., \"k8f2j3\")."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"aliases":{"type":"array","items":{"type":"object","properties":{"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message. Present when DNS previously failed, even if status\nwas reset to pending for retry. Used to surface actionable error context\nin WaitingForDns failure messages."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a managed hostname.\n\nIncludes decrypted certificate data for issued certificates.\nPrivate keys are deployment-scoped secrets (like environment variables)."},"description":"Additional managed hostnames for the resource."},"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"endpoints":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message. Present when DNS previously failed, even if status\nwas reset to pending for retry. Used to surface actionable error context\nin WaitingForDns failure messages."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a managed hostname.\n\nIncludes decrypted certificate data for issued certificates.\nPrivate keys are deployment-scoped secrets (like environment variables)."},"description":"Endpoint-scoped metadata keyed by endpoint name."},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a public resource.\n\nThe direct fields describe the primary endpoint hostname. `endpoints`\ncontains endpoint-scoped metadata keyed by endpoint name. `aliases` contains\nadditional managed hostnames that route directly to the primary endpoint."},"description":"Metadata per resource ID."}},"required":["baseDomain","hostedZoneId","publicSubdomain","resources"],"description":"Domain metadata for auto-managed public resources (no private keys)."},{"nullable":true}]},"environmentVariables":{"type":"object","properties":{"createdAt":{"type":"string","description":"ISO 8601 timestamp when snapshot was created"},"hash":{"type":"string","description":"Deterministic hash of all variables (for change detection)"},"variables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Variable name"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource patterns (null = all resources, Some = wildcard patterns)"},"type":{"type":"string","enum":["plain","secret"],"description":"Type of environment variable"},"value":{"type":"string","description":"Variable value (decrypted - deployment has access to decryption keys)"}},"required":["name","type","value"],"description":"Environment variable for deployment"},"description":"Environment variables in the snapshot"}},"required":["createdAt","hash","variables"],"description":"Snapshot of environment variables at a point in time"},"externalBindings":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"bucketName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS S3 storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["s3"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"containerName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Blob Storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["blob"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"bucketName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Google Cloud Storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["gcs"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"storagePath":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local filesystem storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["local-storage"]}},"required":["service"]}]}],"description":"Service-type based storage binding that supports multiple storage providers"},{"type":"object","properties":{"type":{"type":"string","enum":["storage"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"queueUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS SQS queue parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["sqs"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"subscription":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"topic":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Pub/Sub parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["pubsub"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"queueName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Service Bus parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["servicebus"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"queuePath":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local queue parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["local-queue"]}},"required":["service"]}]}],"description":"Binding parameters for Queue at runtime or in templates."},{"type":"object","properties":{"type":{"type":"string","enum":["queue"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"endpointUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"region":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"tableName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS DynamoDB KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["dynamodb"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"collectionName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"databaseId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"projectId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Firestore KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["firestore"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"tableName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Table Storage KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["tablestorage"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"connectionUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"database":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"keyPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Redis KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["redis"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"keyPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Local development KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["local-kv"]}},"required":["service"]}]}],"description":"Represents a KV binding for key-value storage across platforms"},{"type":"object","properties":{"type":{"type":"string","enum":["kv"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"pullRoleArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"pushRoleArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"repositoryPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS ECR (Elastic Container Registry) binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["ecr"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"registryName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"repositoryPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Container Registry binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["acr"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"pullServiceAccountEmail":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"pushServiceAccountEmail":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"repositoryName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Google Artifact Registry binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["gar"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"type":"string"},{"nullable":true},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"registryUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local container registry binding configuration.\n\nThe local registry runs on localhost only and does not require authentication.\nSecurity boundary is the OS process isolation on the customer's machine.\nExternal image access is secured by the manager's registry proxy (deployment tokens)."},{"type":"object","properties":{"service":{"type":"string","enum":["local"]}},"required":["service"]}]}],"description":"Service-type based artifact registry binding that supports multiple registry providers"},{"type":"object","properties":{"type":{"type":"string","enum":["artifact_registry"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS SSM Parameter Store vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["parameter-store"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Secret Manager vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["secret-manager"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"vaultName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Key Vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["key-vault"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Kubernetes Secrets vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["kubernetes-secret"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"vaultName":{"type":"string","description":"The vault name for local storage"}},"required":["vaultName"],"description":"Local development vault binding (for testing/development)"},{"type":"object","properties":{"service":{"type":"string","enum":["local-vault"]}},"required":["service"]}]}],"description":"Represents a vault binding for secure secret management"},{"type":"object","properties":{"type":{"type":"string","enum":["vault"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"defaultDomain":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"environmentName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"staticIp":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Binding configuration for a pre-existing Azure Container Apps Environment.\n\nUsed when deploying to an existing environment instead of having Alien provision one.\nThis is useful for shared environments (e.g., test infrastructure) or enterprise\nsetups where environments are managed by a separate team."},{"type":"object","properties":{"type":{"type":"string","enum":["container_apps_environment"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"clusterEndpoint":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS Aurora Serverless v2 binding."},{"type":"object","properties":{"service":{"type":"string","enum":["aurora"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"serverCaCertificates":{"oneOf":[{"type":"array","items":{"type":"string"}},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Cloud SQL binding."},{"type":"object","properties":{"service":{"type":"string","enum":["cloud-sql"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretUri":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Flexible Server binding."},{"type":"object","properties":{"service":{"type":"string","enum":["flexible-server"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"password":{"type":"string","description":"Connection password as a concrete value, never an unresolved `SecretRef`: the platform\nmaterializes the Kubernetes secret into the pod env. The cloud variants carry a secret\nlocator instead."},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"sslMode":{"type":"string","enum":["verify-full","disable"],"description":"TLS policy for an operator-provided / BYO Postgres database.\n\nUnlike libpq's ambiguous `prefer` mode, both choices map exactly to the\nconnection settings exposed by every supported SDK."},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"required":["password"],"description":"Operator-provided / BYO database binding."},{"type":"object","properties":{"service":{"type":"string","enum":["external"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"password":{"type":"string"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"required":["password"],"description":"Local embedded Postgres binding."},{"type":"object","properties":{"service":{"type":"string","enum":["local-postgres"]}},"required":["service"]}]}],"description":"Connection details for a Postgres database, one variant per backend."},{"type":"object","properties":{"type":{"type":"string","enum":["postgres"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"apiKey":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"provider":{"type":"string","description":"The external AI provider name (e.g., \"openai\", \"anthropic\")"}},"required":["provider"],"description":"External AI provider binding configuration (BYO-key).\n\nThe operator-supplied secret rides inside the binding via\n`BindingValue`, so it is a literal on cloud platforms and gains\nKubernetes SecretRef resolution for free (`extract_binding_secrets` walks\nthe binding JSON for `secretRef`)."},{"type":"object","properties":{"type":{"type":"string","enum":["ai"]}},"required":["type"]}]}],"description":"Represents a binding to pre-existing infrastructure.\n\nThe binding type must match the resource type it's applied to.\nValidated at runtime by the executor."},"description":"Map from resource ID to external binding.\n\nValidated at runtime: binding type must match resource type."},"inputValues":{"type":"object","properties":{},"additionalProperties":{"nullable":true},"description":"Deployer-provided stack input values, keyed by input id. A resource\ngated with `.enabled(input)` and a Live lifecycle follows these\nvalues; a missing key falls back to the input's declared boolean\ndefault. Suppliers must not place secret-kind input values here:\nthis map serializes and debug-prints unredacted."},"labelDomain":{"type":"string","nullable":true,"description":"DNS-style label domain used for Kubernetes resource ownership labels.\n\nDefaults to `alien.dev` when absent. Whitelabeled Operator builds set this\nso generated workloads and optional log collectors share the same label\nnamespace."},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}]},"managerUrl":{"type":"string","nullable":true,"description":"Manager base URL (e.g., \"https://manager.alien.dev\").\n\nThe manager IS the container registry — its `/v2/` endpoint serves as\nthe OCI Distribution API. Controllers derive the proxy host from this\nto configure pull auth (RegistryCredentials, imagePullSecrets).\n\nWhen None (e.g., `alien dev`), controllers use image URIs as-is."},"monitoring":{"oneOf":[{"type":"object","properties":{"logsAuthHeader":{"type":"string","description":"Auth header value in \"key=value,...\" format.\nExample: \"authorization=Bearer \""},"logsEndpoint":{"type":"string","description":"Full OTLP logs endpoint URL.\nExample: \"https:///v1/logs\""},"metricsAuthHeader":{"type":"string","nullable":true,"description":"Auth header value for the metrics endpoint in \"key=value,...\" format (optional).\n\nWhen absent, `logs_auth_header` is reused for metrics -- suitable when the same\ncredential covers both signals. When present (e.g. Axiom with separate datasets),\nthis value is used exclusively for metrics.\n\nExample: \"authorization=Bearer ,x-axiom-dataset=\""},"metricsEndpoint":{"type":"string","nullable":true,"description":"Full OTLP metrics endpoint URL (optional).\nWhen set, the worker runtime exports its own VM/container orchestration metrics here.\nExample: \"https://api.axiom.co/v1/metrics\""},"resourceAttributes":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Resource attributes attached to every OTLP signal emitted for this deployment.\n\nPlatform managers use this for stable identity such as `alien.workspace_id`,\n`alien.project_id`, `alien.deployment_group_id`, and `alien.deployment_id`.\nRuntime-specific resource attributes such as `service.name` remain owned by\nthe runtime/exporter."}},"required":["logsAuthHeader","logsEndpoint"],"description":"OTLP log export configuration for a deployment.\n\nWhen set, injected compute runtimes export captured application logs\nthrough the given endpoint via OTLP/HTTP; which resources are injected\nis platform-dependent. Workers read auth headers from a runtime-only\nsecret. Runtime-less Containers and Daemons receive standard OTEL auth\nvariables only at the final hosting boundary: Local passes them directly\nto the process and Kubernetes projects them from a per-workload Secret."},{"nullable":true}]},"nativeImageHost":{"type":"string","nullable":true,"description":"Native image registry host+prefix for platforms that require it.\n\nLambda (ECR) and Cloud Run (GAR) require native registry URIs. Other\nruntimes, including Azure Container Apps, pull through the manager's\nregistry proxy.\n\nDerived by the manager from the artifact registry binding:\n- ECR: `{account_id}.dkr.ecr.{region}.amazonaws.com/{repository_prefix}`\n- GAR: `{region}-docker.pkg.dev/{project_id}/{repository_name}`"},"observeAllNamespaces":{"type":"boolean","description":"When true the observe pass reports raw resources across every namespace\n(cluster scope); otherwise it stays within the operator's own namespace.\nThe label selector, if any, still filters within whichever scope applies.\nIgnored by cloud observers."},"observeLabelSelector":{"type":"string","nullable":true,"description":"Kubernetes label selector that narrows which raw resources the observe\npass reports (e.g. `app.kubernetes.io/part-of=my-app`). `None` observes\neverything in the namespace. Ignored by cloud observers."},"publicEndpoints":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Public endpoint URLs for exposed resources (optional override).\n\nUse this only when a caller already knows the public URL. Managed public\nendpoint flows should prefer `domain_metadata` plus controller-reported\nload balancer outputs so DNS, certificate renewal, and route readiness\nstay tied to the resource state.\n\nIf not set, platforms determine public endpoint URLs from other sources:\n- Managed DNS/TLS flows: `domain_metadata` FQDN or load balancer DNS\n- Local: `http://localhost:{allocated_port}`\n- Custom or disabled exposure: no public endpoint URL unless a controller reports one\n\nOuter key: resource ID. Inner key: endpoint name. Value: public URL."},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["environmentVariables"],"description":"Deployment configuration"}},"required":["deploymentId","projectId","deploymentGroupId","current","config"]},"SyncContextRequest":{"type":"object","properties":{"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Manager requesting the context. Manager-scoped tokens are constrained to their own manager ID."}]},"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"}},"required":["deploymentId"],"additionalProperties":false},"SyncAcquireResponse":{"type":"object","properties":{"deployments":{"type":"array","items":{"$ref":"#/components/schemas/SyncAcquireResponseDeployment"},"description":"List of acquired deployments with deployment context"},"failures":{"type":"array","items":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"ID of the deployment that failed","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"projectId":{"type":"string","description":"Project ID the deployment belongs to"},"error":{"allOf":[{"$ref":"#/components/schemas/APIError"},{"description":"Error that occurred during context building"}]}},"required":["deploymentId","projectId","error"]},"description":"List of deployments that failed during context building (locks already released)"},"leaseExpiresAt":{"type":"string","nullable":true,"format":"date-time","description":"When the provisional leases on the returned deployments lapse. Confirm them with sync/renew before starting work. Null when nothing was acquired."}},"required":["deployments","failures","leaseExpiresAt"],"description":"Acquired deployments and failures"},"SyncAcquireRequest":{"type":"object","properties":{"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Manager requesting the deployments. If omitted, resolved from each deployment's managerId column."}]},"session":{"type":"string","description":"Unique session identifier for lock tracking"},"requestId":{"type":"string","minLength":1,"description":"Idempotency key for one logical acquire request"},"deploymentIds":{"type":"array","items":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"description":"Specific deployment IDs to lock (for Pull model sync)"},"statuses":{"type":"array","items":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"description":"Filter by deployment statuses (default: all deployment statuses)"},"platforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Filter by platforms (default: all platforms the Manager supports)"},"setupMethod":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMethod"},{"description":"Filter by setup method for setup-owned acquisition paths"}]},"acquireMode":{"type":"string","enum":["runtime","setup-run","setup-teardown"],"description":"Phase ownership mode for deployment acquisition"},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Filter by deployment model from stackSettings.deploymentModel."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum number of deployments to acquire (default: 10)"}},"required":["session","requestId","deploymentModel"],"additionalProperties":false,"description":"Request to acquire deployments for processing"},"SyncReconcileResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the state was reconciled"},"current":{"type":"object","properties":{"currentRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}]},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"protocolVersion":{"type":"integer","minimum":0,"description":"Protocol version for cross-actor compatibility.\nAll actors (manager, push client, agent) check this before stepping.\nMismatched versions produce a clear error instead of silent corruption.\nSee docs/02-manager/10-deployment-protocol.md."},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment\nWhen true and status is a failed state, the deployment system will retry failed resources"},"runtimeMetadata":{"oneOf":[{"type":"object","properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment\n\nStores deployment state that needs to persist across step calls."},{"nullable":true}]},"stackState":{"oneOf":[{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"Represents the collective state of all resources in a stack, including platform and pending actions."},{"nullable":true}]},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"targetRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]}},"required":["platform","protocolVersion","status"],"description":"Current deployment state after reconciliation"},"target":{"type":"object","properties":{"config":{"type":"object","properties":{"allowFrozenChanges":{"type":"boolean","description":"Allow frozen resource changes during updates\nWhen true, skips the frozen resources compatibility check.\nThis requires running with elevated cloud credentials."},"basePlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"computeBackend":{"oneOf":[{"allOf":[{"type":"object","properties":{"clusters":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"clusterId":{"type":"string","description":"Cluster ID (deterministic: workspace/project/deployment/resourceid)"},"managementToken":{"type":"string","description":"Management token for API access (hm_...)\nUsed by alien-deployment controllers to create/update containers"}},"required":["clusterId","managementToken"],"description":"Configuration for a single container worker cluster.\n\nContains the cluster ID and management token needed to interact with\nthe managed container control plane API for container operations."},"description":"Cluster configurations (one per ComputeCluster resource)\nKey: ComputeCluster resource ID from stack\nValue: Cluster ID and management token for that cluster"},"horizonMachineImage":{"oneOf":[{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"amis":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"AMI IDs by architecture, then AWS region."}},"required":["amis"],"description":"AWS Horizon machine image catalog."},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"images":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"imageVersionId":{"type":"string","description":"Azure Compute Gallery image version ID."}},"required":["imageVersionId"],"description":"Azure Horizon machine image entry."},"description":"Images by architecture."}},"required":["images"],"description":"Azure Horizon machine image catalog."},{"nullable":true}]},"baseImage":{"type":"object","properties":{"name":{"type":"string","description":"Base OS image name."},"version":{"type":"string","description":"Base OS image version or channel."}},"required":["name","version"],"description":"Base image metadata for the Horizon machine image."},"channel":{"type":"string","description":"Logical image channel, such as prod, staging, or canary."},"createdAt":{"type":"string","description":"Image manifest creation timestamp."},"gcp":{"oneOf":[{"type":"object","properties":{"images":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sourceImage":{"type":"string","description":"Source image self link or image-family URL."}},"required":["sourceImage"],"description":"GCP Horizon machine image entry."},"description":"Images by architecture."}},"required":["images"],"description":"GCP Horizon machine image catalog."},{"nullable":true}]},"gitSha":{"type":"string","description":"Git commit SHA used to build the image."},"horizondArtifacts":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sha256":{"type":"string","description":"SHA-256 digest for the artifact payload."},"url":{"type":"string","description":"HTTPS URL for the artifact."}},"required":["sha256","url"],"description":"Download artifact for one horizond release platform."},"description":"Per-architecture horizond artifacts by release-platform key."},"horizondVersion":{"type":"string","description":"horizond daemon version baked into the image."},"machineImageVersion":{"type":"string","description":"Published immutable machine image version."}},"required":["baseImage","channel","createdAt","gitSha","horizondArtifacts","horizondVersion","machineImageVersion"],"description":"Horizon machine image catalog.\n\nPlatform resolves concrete provider images from this catalog during rollout."},{"nullable":true}]},"url":{"type":"string","description":"Horizon control-plane API base URL."}},"required":["clusters","url"],"description":"Horizon control-plane configuration for container orchestration.\n\nContains all the information needed for Alien to interact with managed\ncontainer clusters during deployment. Each ComputeCluster resource gets its own\nentry in the clusters map."},{"type":"object","properties":{"type":{"type":"string","enum":["horizon"]}},"required":["type"]}],"description":"Compute backend for Container and Worker resources.\n\nDetermines how compute workloads are orchestrated on cloud platforms.\nWhen None, the platform default is used for cloud platforms."},{"nullable":true}]},"deploymentName":{"type":"string","nullable":true,"description":"Human-readable deployment name for cloud console metadata.\n\nThis is separate from the physical resource prefix in StackState. It is\nused only for display text such as IAM role descriptions, service\naccount descriptions, and custom role titles."},"deploymentToken":{"type":"string","nullable":true,"description":"Deployment token for pull authentication with the manager's registry.\n\nUsed by controllers to configure registry credentials so cloud platforms\nand K8s can pull images from the manager's `/v2/` endpoint."},"domainMetadata":{"oneOf":[{"type":"object","properties":{"baseDomain":{"type":"string","description":"Base domain for auto-generated domains (e.g., \"vpc.direct\")."},"hostedZoneId":{"type":"string","description":"Hosted zone ID for DNS records."},"publicSubdomain":{"type":"string","description":"Deployment public subdomain (e.g., \"k8f2j3\")."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"aliases":{"type":"array","items":{"type":"object","properties":{"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message. Present when DNS previously failed, even if status\nwas reset to pending for retry. Used to surface actionable error context\nin WaitingForDns failure messages."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a managed hostname.\n\nIncludes decrypted certificate data for issued certificates.\nPrivate keys are deployment-scoped secrets (like environment variables)."},"description":"Additional managed hostnames for the resource."},"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"endpoints":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message. Present when DNS previously failed, even if status\nwas reset to pending for retry. Used to surface actionable error context\nin WaitingForDns failure messages."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a managed hostname.\n\nIncludes decrypted certificate data for issued certificates.\nPrivate keys are deployment-scoped secrets (like environment variables)."},"description":"Endpoint-scoped metadata keyed by endpoint name."},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a public resource.\n\nThe direct fields describe the primary endpoint hostname. `endpoints`\ncontains endpoint-scoped metadata keyed by endpoint name. `aliases` contains\nadditional managed hostnames that route directly to the primary endpoint."},"description":"Metadata per resource ID."}},"required":["baseDomain","hostedZoneId","publicSubdomain","resources"],"description":"Domain metadata for auto-managed public resources (no private keys)."},{"nullable":true}]},"environmentVariables":{"type":"object","properties":{"createdAt":{"type":"string","description":"ISO 8601 timestamp when snapshot was created"},"hash":{"type":"string","description":"Deterministic hash of all variables (for change detection)"},"variables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Variable name"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource patterns (null = all resources, Some = wildcard patterns)"},"type":{"type":"string","enum":["plain","secret"],"description":"Type of environment variable"},"value":{"type":"string","description":"Variable value (decrypted - deployment has access to decryption keys)"}},"required":["name","type","value"],"description":"Environment variable for deployment"},"description":"Environment variables in the snapshot"}},"required":["createdAt","hash","variables"],"description":"Snapshot of environment variables at a point in time"},"externalBindings":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"bucketName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS S3 storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["s3"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"containerName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Blob Storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["blob"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"bucketName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Google Cloud Storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["gcs"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"storagePath":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local filesystem storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["local-storage"]}},"required":["service"]}]}],"description":"Service-type based storage binding that supports multiple storage providers"},{"type":"object","properties":{"type":{"type":"string","enum":["storage"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"queueUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS SQS queue parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["sqs"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"subscription":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"topic":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Pub/Sub parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["pubsub"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"queueName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Service Bus parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["servicebus"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"queuePath":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local queue parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["local-queue"]}},"required":["service"]}]}],"description":"Binding parameters for Queue at runtime or in templates."},{"type":"object","properties":{"type":{"type":"string","enum":["queue"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"endpointUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"region":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"tableName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS DynamoDB KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["dynamodb"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"collectionName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"databaseId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"projectId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Firestore KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["firestore"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"tableName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Table Storage KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["tablestorage"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"connectionUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"database":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"keyPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Redis KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["redis"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"keyPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Local development KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["local-kv"]}},"required":["service"]}]}],"description":"Represents a KV binding for key-value storage across platforms"},{"type":"object","properties":{"type":{"type":"string","enum":["kv"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"pullRoleArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"pushRoleArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"repositoryPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS ECR (Elastic Container Registry) binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["ecr"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"registryName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"repositoryPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Container Registry binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["acr"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"pullServiceAccountEmail":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"pushServiceAccountEmail":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"repositoryName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Google Artifact Registry binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["gar"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"type":"string"},{"nullable":true},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"registryUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local container registry binding configuration.\n\nThe local registry runs on localhost only and does not require authentication.\nSecurity boundary is the OS process isolation on the customer's machine.\nExternal image access is secured by the manager's registry proxy (deployment tokens)."},{"type":"object","properties":{"service":{"type":"string","enum":["local"]}},"required":["service"]}]}],"description":"Service-type based artifact registry binding that supports multiple registry providers"},{"type":"object","properties":{"type":{"type":"string","enum":["artifact_registry"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS SSM Parameter Store vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["parameter-store"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Secret Manager vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["secret-manager"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"vaultName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Key Vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["key-vault"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Kubernetes Secrets vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["kubernetes-secret"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"vaultName":{"type":"string","description":"The vault name for local storage"}},"required":["vaultName"],"description":"Local development vault binding (for testing/development)"},{"type":"object","properties":{"service":{"type":"string","enum":["local-vault"]}},"required":["service"]}]}],"description":"Represents a vault binding for secure secret management"},{"type":"object","properties":{"type":{"type":"string","enum":["vault"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"defaultDomain":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"environmentName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"staticIp":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Binding configuration for a pre-existing Azure Container Apps Environment.\n\nUsed when deploying to an existing environment instead of having Alien provision one.\nThis is useful for shared environments (e.g., test infrastructure) or enterprise\nsetups where environments are managed by a separate team."},{"type":"object","properties":{"type":{"type":"string","enum":["container_apps_environment"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"clusterEndpoint":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS Aurora Serverless v2 binding."},{"type":"object","properties":{"service":{"type":"string","enum":["aurora"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"serverCaCertificates":{"oneOf":[{"type":"array","items":{"type":"string"}},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Cloud SQL binding."},{"type":"object","properties":{"service":{"type":"string","enum":["cloud-sql"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretUri":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Flexible Server binding."},{"type":"object","properties":{"service":{"type":"string","enum":["flexible-server"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"password":{"type":"string","description":"Connection password as a concrete value, never an unresolved `SecretRef`: the platform\nmaterializes the Kubernetes secret into the pod env. The cloud variants carry a secret\nlocator instead."},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"sslMode":{"type":"string","enum":["verify-full","disable"],"description":"TLS policy for an operator-provided / BYO Postgres database.\n\nUnlike libpq's ambiguous `prefer` mode, both choices map exactly to the\nconnection settings exposed by every supported SDK."},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"required":["password"],"description":"Operator-provided / BYO database binding."},{"type":"object","properties":{"service":{"type":"string","enum":["external"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"password":{"type":"string"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"required":["password"],"description":"Local embedded Postgres binding."},{"type":"object","properties":{"service":{"type":"string","enum":["local-postgres"]}},"required":["service"]}]}],"description":"Connection details for a Postgres database, one variant per backend."},{"type":"object","properties":{"type":{"type":"string","enum":["postgres"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"apiKey":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"provider":{"type":"string","description":"The external AI provider name (e.g., \"openai\", \"anthropic\")"}},"required":["provider"],"description":"External AI provider binding configuration (BYO-key).\n\nThe operator-supplied secret rides inside the binding via\n`BindingValue`, so it is a literal on cloud platforms and gains\nKubernetes SecretRef resolution for free (`extract_binding_secrets` walks\nthe binding JSON for `secretRef`)."},{"type":"object","properties":{"type":{"type":"string","enum":["ai"]}},"required":["type"]}]}],"description":"Represents a binding to pre-existing infrastructure.\n\nThe binding type must match the resource type it's applied to.\nValidated at runtime by the executor."},"description":"Map from resource ID to external binding.\n\nValidated at runtime: binding type must match resource type."},"inputValues":{"type":"object","properties":{},"additionalProperties":{"nullable":true},"description":"Deployer-provided stack input values, keyed by input id. A resource\ngated with `.enabled(input)` and a Live lifecycle follows these\nvalues; a missing key falls back to the input's declared boolean\ndefault. Suppliers must not place secret-kind input values here:\nthis map serializes and debug-prints unredacted."},"labelDomain":{"type":"string","nullable":true,"description":"DNS-style label domain used for Kubernetes resource ownership labels.\n\nDefaults to `alien.dev` when absent. Whitelabeled Operator builds set this\nso generated workloads and optional log collectors share the same label\nnamespace."},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}]},"managerUrl":{"type":"string","nullable":true,"description":"Manager base URL (e.g., \"https://manager.alien.dev\").\n\nThe manager IS the container registry — its `/v2/` endpoint serves as\nthe OCI Distribution API. Controllers derive the proxy host from this\nto configure pull auth (RegistryCredentials, imagePullSecrets).\n\nWhen None (e.g., `alien dev`), controllers use image URIs as-is."},"monitoring":{"oneOf":[{"type":"object","properties":{"logsAuthHeader":{"type":"string","description":"Auth header value in \"key=value,...\" format.\nExample: \"authorization=Bearer \""},"logsEndpoint":{"type":"string","description":"Full OTLP logs endpoint URL.\nExample: \"https:///v1/logs\""},"metricsAuthHeader":{"type":"string","nullable":true,"description":"Auth header value for the metrics endpoint in \"key=value,...\" format (optional).\n\nWhen absent, `logs_auth_header` is reused for metrics -- suitable when the same\ncredential covers both signals. When present (e.g. Axiom with separate datasets),\nthis value is used exclusively for metrics.\n\nExample: \"authorization=Bearer ,x-axiom-dataset=\""},"metricsEndpoint":{"type":"string","nullable":true,"description":"Full OTLP metrics endpoint URL (optional).\nWhen set, the worker runtime exports its own VM/container orchestration metrics here.\nExample: \"https://api.axiom.co/v1/metrics\""},"resourceAttributes":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Resource attributes attached to every OTLP signal emitted for this deployment.\n\nPlatform managers use this for stable identity such as `alien.workspace_id`,\n`alien.project_id`, `alien.deployment_group_id`, and `alien.deployment_id`.\nRuntime-specific resource attributes such as `service.name` remain owned by\nthe runtime/exporter."}},"required":["logsAuthHeader","logsEndpoint"],"description":"OTLP log export configuration for a deployment.\n\nWhen set, injected compute runtimes export captured application logs\nthrough the given endpoint via OTLP/HTTP; which resources are injected\nis platform-dependent. Workers read auth headers from a runtime-only\nsecret. Runtime-less Containers and Daemons receive standard OTEL auth\nvariables only at the final hosting boundary: Local passes them directly\nto the process and Kubernetes projects them from a per-workload Secret."},{"nullable":true}]},"nativeImageHost":{"type":"string","nullable":true,"description":"Native image registry host+prefix for platforms that require it.\n\nLambda (ECR) and Cloud Run (GAR) require native registry URIs. Other\nruntimes, including Azure Container Apps, pull through the manager's\nregistry proxy.\n\nDerived by the manager from the artifact registry binding:\n- ECR: `{account_id}.dkr.ecr.{region}.amazonaws.com/{repository_prefix}`\n- GAR: `{region}-docker.pkg.dev/{project_id}/{repository_name}`"},"observeAllNamespaces":{"type":"boolean","description":"When true the observe pass reports raw resources across every namespace\n(cluster scope); otherwise it stays within the operator's own namespace.\nThe label selector, if any, still filters within whichever scope applies.\nIgnored by cloud observers."},"observeLabelSelector":{"type":"string","nullable":true,"description":"Kubernetes label selector that narrows which raw resources the observe\npass reports (e.g. `app.kubernetes.io/part-of=my-app`). `None` observes\neverything in the namespace. Ignored by cloud observers."},"publicEndpoints":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Public endpoint URLs for exposed resources (optional override).\n\nUse this only when a caller already knows the public URL. Managed public\nendpoint flows should prefer `domain_metadata` plus controller-reported\nload balancer outputs so DNS, certificate renewal, and route readiness\nstay tied to the resource state.\n\nIf not set, platforms determine public endpoint URLs from other sources:\n- Managed DNS/TLS flows: `domain_metadata` FQDN or load balancer DNS\n- Local: `http://localhost:{allocated_port}`\n- Custom or disabled exposure: no public endpoint URL unless a controller reports one\n\nOuter key: resource ID. Inner key: endpoint name. Value: public URL."},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["environmentVariables"],"description":"Deployment configuration\n\nConfiguration for how to perform the deployment.\nNote: Credentials (ClientConfig) are passed separately to step() function."},"releaseInfo":{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."}},"required":["config","releaseInfo"],"description":"Target deployment if update is needed"}},"required":["success","current"],"description":"State reconciliation result with optional target"},"SyncReconcileRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Deployment ID to reconcile state for","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"session":{"type":"string","description":"Lock session (push model only) - verifies lock ownership"},"state":{"type":"object","properties":{"currentRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}]},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"protocolVersion":{"type":"integer","minimum":0,"description":"Protocol version for cross-actor compatibility.\nAll actors (manager, push client, agent) check this before stepping.\nMismatched versions produce a clear error instead of silent corruption.\nSee docs/02-manager/10-deployment-protocol.md."},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment\nWhen true and status is a failed state, the deployment system will retry failed resources"},"runtimeMetadata":{"oneOf":[{"type":"object","properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment\n\nStores deployment state that needs to persist across step calls."},{"nullable":true}]},"stackState":{"oneOf":[{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"Represents the collective state of all resources in a stack, including platform and pending actions."},{"nullable":true}]},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"targetRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]}},"required":["platform","protocolVersion","status"],"description":"Complete deployment state after step() execution"},"updateHeartbeat":{"type":"boolean","description":"Update heartbeat timestamp (for successful health checks)"},"suggestedDelayMs":{"type":"integer","minimum":0,"description":"Delay before this deployment should be acquired again."},"resourceHeartbeats":{"type":"array","items":{"type":"object","properties":{"backend":{"type":"string","enum":["aws","gcp","azure","kubernetes","local","managed","external","test"]},"controllerPlatform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"data":{"oneOf":[{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"blockPublicAcls":{"type":"boolean","nullable":true},"blockPublicPolicy":{"type":"boolean","nullable":true},"bucketAclPresent":{"type":"boolean","nullable":true},"bucketLocation":{"type":"string","nullable":true},"bucketPolicyPresent":{"type":"boolean","nullable":true},"encryptionConfigPresent":{"type":"boolean"},"encryptionEnabled":{"type":"boolean","nullable":true},"ignorePublicAcls":{"type":"boolean","nullable":true},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"publicAccessBlockPresent":{"type":"boolean"},"region":{"type":"string","nullable":true},"restrictPublicBuckets":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"versioningEnabled":{"type":"boolean","nullable":true},"versioningStatus":{"type":"string","nullable":true}},"required":["encryptionConfigPresent","lifecyclePresent","name","publicAccessBlockPresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsS3"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"bucketId":{"type":"string","nullable":true},"defaultKmsKeyName":{"type":"string","nullable":true},"encryptionConfigPresent":{"type":"boolean"},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":"integer","nullable":true,"minimum":0},"location":{"type":"string","nullable":true},"locationType":{"type":"string","nullable":true},"name":{"type":"string"},"publicAccessPrevention":{"type":"string","nullable":true},"retentionPeriod":{"type":"string","nullable":true},"retentionPolicyEffectiveTime":{"type":"string","nullable":true},"retentionPolicyIsLocked":{"type":"boolean","nullable":true},"softDeleteEffectiveTime":{"type":"string","nullable":true},"softDeleteRetentionDurationSeconds":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"storageClass":{"type":"string","nullable":true},"uniformBucketLevelAccessEnabled":{"type":"boolean","nullable":true},"uniformBucketLevelAccessLockedTime":{"type":"string","nullable":true},"versioningEnabled":{"type":"boolean","nullable":true}},"required":["encryptionConfigPresent","lifecyclePresent","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudStorage"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessTier":{"type":"string","nullable":true},"accountKind":{"type":"string","nullable":true},"allowBlobPublicAccess":{"type":"boolean","nullable":true},"blobDeleteRetentionDays":{"type":"integer","nullable":true,"minimum":0},"blobDeleteRetentionEnabled":{"type":"boolean","nullable":true},"blobEncryptionEnabled":{"type":"boolean","nullable":true},"blobVersioningEnabled":{"type":"boolean","nullable":true},"changeFeedEnabled":{"type":"boolean","nullable":true},"changeFeedRetentionDays":{"type":"integer","nullable":true,"minimum":0},"containerDeleteRetentionDays":{"type":"integer","nullable":true,"minimum":0},"containerDeleteRetentionEnabled":{"type":"boolean","nullable":true},"containerPublicAccess":{"type":"string","nullable":true},"encryptionKeySource":{"type":"string","nullable":true},"fileEncryptionEnabled":{"type":"boolean","nullable":true},"location":{"type":"string","nullable":true},"name":{"type":"string"},"primaryLocation":{"type":"string","nullable":true},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"queueEncryptionEnabled":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"secondaryLocation":{"type":"string","nullable":true},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"statusOfPrimary":{"type":"string","nullable":true},"statusOfSecondary":{"type":"string","nullable":true},"storageAccountName":{"type":"string","nullable":true},"tableEncryptionEnabled":{"type":"boolean","nullable":true}},"required":["name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureBlob"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"isDirectory":{"type":"boolean","nullable":true},"modifiedAt":{"type":"string","nullable":true,"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["path","pathExists","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["storage"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"codeSha256":{"type":"string","nullable":true},"functionName":{"type":"string"},"functionUrlAuthType":{"type":"string","nullable":true},"functionUrlCorsPresent":{"type":"boolean"},"lastModified":{"type":"string","nullable":true},"lastUpdateStatus":{"type":"string","nullable":true},"lastUpdateStatusReason":{"type":"string","nullable":true},"lastUpdateStatusReasonCode":{"type":"string","nullable":true},"layerCount":{"type":"integer","minimum":0},"memorySizeMb":{"type":"integer","nullable":true},"packageType":{"type":"string","nullable":true},"revisionId":{"type":"string","nullable":true},"runtime":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"stateReason":{"type":"string","nullable":true},"stateReasonCode":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"timeoutSeconds":{"type":"integer","nullable":true},"triggerCount":{"type":"integer","minimum":0},"version":{"type":"string","nullable":true}},"required":["functionName","functionUrlCorsPresent","layerCount","status","triggerCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsLambda"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"containerImage":{"type":"string","nullable":true},"cpuLimit":{"type":"string","nullable":true},"generation":{"type":"integer","nullable":true},"latestCreatedRevision":{"type":"string","nullable":true},"latestReadyRevision":{"type":"string","nullable":true},"maxInstanceCount":{"type":"integer","nullable":true},"memoryLimit":{"type":"string","nullable":true},"minInstanceCount":{"type":"integer","nullable":true},"observedGeneration":{"type":"integer","nullable":true},"region":{"type":"string","nullable":true},"service":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"trafficCount":{"type":"integer","minimum":0},"uri":{"type":"string","nullable":true},"urls":{"type":"array","items":{"type":"string"}}},"required":["service","status","trafficCount","urls"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudRun"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"appName":{"type":"string"},"cpu":{"type":"number","nullable":true},"environmentName":{"type":"string","nullable":true},"ingressFqdn":{"type":"string","nullable":true},"maxReplicas":{"type":"integer","nullable":true},"memory":{"type":"string","nullable":true},"minReplicas":{"type":"integer","nullable":true},"provisioningState":{"type":"string","nullable":true},"revision":{"type":"string","nullable":true},"runningStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["appName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerApps"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"triggerCount":{"type":"integer","minimum":0},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"]}},"required":["events","name","namespace","pods","replicas","status","triggerCount","workloadKind"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"imagePathPresent":{"type":"boolean"},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pid":{"type":"integer","nullable":true,"minimum":0},"process":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"readinessProbeOk":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"triggerCount":{"type":"integer","minimum":0}},"required":["commandSupported","events","imagePathPresent","status","triggerCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["worker"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"attentionCount":{"type":"integer","minimum":0},"containerId":{"type":"string"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"image":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"observedImage":{"type":"string","nullable":true},"replicaUnits":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"schedulingMode":{"type":"string","enum":["replicated","stateful","daemon"]},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["attentionCount","containerId","events","replicaUnits","replicas","schedulingMode","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["horizonPlatform"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"]}},"required":["events","name","namespace","pods","replicas","status","workloadKind"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"bindMountCount":{"type":"integer","minimum":0},"containerId":{"type":"string","nullable":true},"containerUnit":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"image":{"type":"string","nullable":true},"localUrl":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string","nullable":true},"portCount":{"type":"integer","minimum":0},"restartCount":{"type":"integer","nullable":true,"minimum":0},"runtimeReachable":{"type":"boolean"},"runtimeStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["bindMountCount","events","portCount","runtimeReachable","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["container"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aws"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcp"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azure"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["machines"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]}},"required":["commandSupported","events","name","namespace","pods","replicas","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"daemonInstance":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"daemonName":{"type":"string"},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"exitReason":{"type":"string","nullable":true},"imagePathPresent":{"type":"boolean"},"pid":{"type":"integer","nullable":true,"minimum":0},"restartCount":{"type":"integer","nullable":true,"minimum":0},"runtimeId":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["commandSupported","events","imagePathPresent","runtimeId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["daemon"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aws"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcp"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azure"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"machines":{"type":"array","items":{"type":"object","properties":{"capacityGroup":{"type":"string"},"cpuCores":{"type":"number","nullable":true},"drainBlockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainForce":{"type":"boolean"},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"horizondVersion":{"type":"string","nullable":true},"lastHeartbeat":{"type":"string"},"machineId":{"type":"string"},"memoryBytes":{"type":"integer","nullable":true},"overlayIp":{"type":"string","nullable":true},"publicIp":{"type":"string","nullable":true},"replicaCount":{"type":"integer"},"status":{"type":"string"},"zone":{"type":"string"}},"required":["capacityGroup","drainForce","lastHeartbeat","machineId","replicaCount","status","zone"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","machines","name","nodes","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["machines"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"dockerApiVersion":{"type":"string","nullable":true},"dockerArch":{"type":"string","nullable":true},"dockerAvailable":{"type":"boolean"},"dockerOs":{"type":"string","nullable":true},"dockerVersion":{"type":"string","nullable":true},"hostIdentifier":{"type":"string","nullable":true},"name":{"type":"string"},"networkAvailable":{"type":"boolean"},"networkName":{"type":"string","nullable":true},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"runningContainers":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"trackedContainers":{"type":"integer","nullable":true,"minimum":0}},"required":["dockerAvailable","name","networkAvailable","nodes","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["compute-cluster"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string","nullable":true},"nodeCounts":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"nodeStatuses":{"type":"array","items":{"type":"object","properties":{"allocatable":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pods":{"type":"integer","nullable":true,"minimum":0}}},"capacity":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pods":{"type":"integer","nullable":true,"minimum":0}}},"conditions":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"containerRuntimeVersion":{"type":"string","nullable":true},"kubeletVersion":{"type":"string","nullable":true},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"name":{"type":"string"},"ready":{"type":"boolean"},"roles":{"type":"array","items":{"type":"string"}},"uid":{"type":"string","nullable":true},"usage":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}}},{"nullable":true}]}},"required":["allocatable","capacity","labels","name","ready","roles"]}},"podCounts":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string","nullable":true}},"required":["events","name","nodeCounts","podCounts","status"]},"resourceType":{"type":"string","enum":["kubernetes-cluster"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"approximateCounts":{"type":"boolean"},"approximateDelayedMessages":{"type":"integer","nullable":true,"minimum":0},"approximateInFlightMessages":{"type":"integer","nullable":true,"minimum":0},"approximateVisibleMessages":{"type":"integer","nullable":true,"minimum":0},"contentBasedDeduplication":{"type":"boolean","nullable":true},"deduplicationScope":{"type":"string","nullable":true},"delaySeconds":{"type":"integer","nullable":true,"minimum":0},"fifoQueue":{"type":"boolean","nullable":true},"fifoThroughputLimit":{"type":"string","nullable":true},"kmsDataKeyReusePeriodSeconds":{"type":"integer","nullable":true,"minimum":0},"kmsMasterKeyId":{"type":"string","nullable":true},"maximumMessageSize":{"type":"integer","nullable":true,"minimum":0},"messageRetentionPeriodSeconds":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"queueArn":{"type":"string","nullable":true},"queueUrl":{"type":"string","nullable":true},"receiveMessageWaitTimeSeconds":{"type":"integer","nullable":true,"minimum":0},"redriveAllowPolicy":{"type":"string","nullable":true},"redrivePolicy":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"sqsManagedSseEnabled":{"type":"boolean","nullable":true},"sseEnabled":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"visibilityTimeoutSeconds":{"type":"integer","nullable":true,"minimum":0}},"required":["approximateCounts","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsSqs"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"kmsKeyName":{"type":"string","nullable":true},"messageStorageAllowedPersistenceRegions":{"type":"array","items":{"type":"string"}},"messageStorageEnforceInTransit":{"type":"boolean","nullable":true},"projectId":{"type":"string","nullable":true},"schemaEncoding":{"type":"string","nullable":true},"schemaFirstRevisionId":{"type":"string","nullable":true},"schemaLastRevisionId":{"type":"string","nullable":true},"schemaName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"subscriptionAckDeadlineSeconds":{"type":"integer","nullable":true,"minimum":0},"subscriptionDeadLetterMaxDeliveryAttempts":{"type":"integer","nullable":true,"minimum":0},"subscriptionDeadLetterTopic":{"type":"string","nullable":true},"subscriptionDetached":{"type":"boolean","nullable":true},"subscriptionEnableMessageOrdering":{"type":"boolean","nullable":true},"subscriptionFilter":{"type":"string","nullable":true},"subscriptionFullName":{"type":"string","nullable":true},"subscriptionLabels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"subscriptionMessageRetentionDuration":{"type":"string","nullable":true},"subscriptionName":{"type":"string","nullable":true},"subscriptionPushAttributes":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"subscriptionPushConfigPresent":{"type":"boolean","nullable":true},"subscriptionPushEndpoint":{"type":"string","nullable":true},"subscriptionPushNoWrapperWriteMetadata":{"type":"boolean","nullable":true},"subscriptionPushOidcAudience":{"type":"string","nullable":true},"subscriptionPushOidcServiceAccountEmail":{"type":"string","nullable":true},"subscriptionPushPubsubWrapperWriteMetadata":{"type":"boolean","nullable":true},"subscriptionRetainAckedMessages":{"type":"boolean","nullable":true},"subscriptionState":{"type":"string","nullable":true},"topicFullName":{"type":"string","nullable":true},"topicLabels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"topicMessageRetentionDuration":{"type":"string","nullable":true},"topicName":{"type":"string"},"topicState":{"type":"string","nullable":true}},"required":["messageStorageAllowedPersistenceRegions","status","subscriptionLabels","subscriptionPushAttributes","topicLabels","topicName"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpPubSub"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessedAt":{"type":"string","nullable":true},"activeMessageCount":{"type":"integer","nullable":true,"minimum":0},"autoDeleteOnIdle":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"deadLetterMessageCount":{"type":"integer","nullable":true,"minimum":0},"deadLetteringOnMessageExpiration":{"type":"boolean","nullable":true},"defaultMessageTimeToLive":{"type":"string","nullable":true},"duplicateDetectionHistoryTimeWindow":{"type":"string","nullable":true},"enableBatchedOperations":{"type":"boolean","nullable":true},"enableExpress":{"type":"boolean","nullable":true},"enablePartitioning":{"type":"boolean","nullable":true},"endpoint":{"type":"string","nullable":true},"forwardDeadLetteredMessagesTo":{"type":"string","nullable":true},"forwardTo":{"type":"string","nullable":true},"lockDuration":{"type":"string","nullable":true},"maxDeliveryCount":{"type":"integer","nullable":true,"minimum":0},"maxMessageSizeInKilobytes":{"type":"integer","nullable":true,"minimum":0},"maxSizeInMegabytes":{"type":"integer","nullable":true,"minimum":0},"messageCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"namespaceName":{"type":"string"},"queueStatus":{"type":"string","nullable":true},"requiresDuplicateDetection":{"type":"boolean","nullable":true},"requiresSession":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"scheduledMessageCount":{"type":"integer","nullable":true,"minimum":0},"sizeInBytes":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"transferDeadLetterMessageCount":{"type":"integer","nullable":true,"minimum":0},"transferMessageCount":{"type":"integer","nullable":true,"minimum":0},"updatedAt":{"type":"string","nullable":true}},"required":["name","namespaceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureServiceBus"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"name":{"type":"string"},"path":{"type":"string","nullable":true},"serviceStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["queue"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"billingMode":{"type":"string","nullable":true},"deletionProtectionEnabled":{"type":"boolean","nullable":true},"globalSecondaryIndexCount":{"type":"integer","nullable":true,"minimum":0},"itemCount":{"type":"integer","nullable":true,"minimum":0},"keySchema":{"type":"array","items":{"type":"object","properties":{"attributeName":{"type":"string"},"keyType":{"type":"string"}},"required":["attributeName","keyType"]}},"localSecondaryIndexCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"region":{"type":"string","nullable":true},"replicaCount":{"type":"integer","nullable":true,"minimum":0},"restoreInProgress":{"type":"boolean","nullable":true},"sseStatus":{"type":"string","nullable":true},"sseType":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"streamEnabled":{"type":"boolean","nullable":true},"streamViewType":{"type":"string","nullable":true},"tableArn":{"type":"string","nullable":true},"tableClass":{"type":"string","nullable":true},"tableSizeBytes":{"type":"integer","nullable":true,"minimum":0},"tableStatus":{"type":"string","nullable":true},"ttlAttributeName":{"type":"string","nullable":true},"ttlStatus":{"type":"string","nullable":true}},"required":["keySchema","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsDynamoDb"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"appEngineIntegrationMode":{"type":"string","nullable":true},"cmekEnabled":{"type":"boolean"},"concurrencyMode":{"type":"string","nullable":true},"createTime":{"type":"string","nullable":true},"databaseEdition":{"type":"string","nullable":true},"databaseName":{"type":"string"},"databaseType":{"type":"string","nullable":true},"deleteProtectionState":{"type":"string","nullable":true},"deleteTime":{"type":"string","nullable":true},"earliestVersionTime":{"type":"string","nullable":true},"endpoint":{"type":"string","nullable":true},"locationId":{"type":"string","nullable":true},"pointInTimeRecoveryEnablement":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"sourceInfoPresent":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updateTime":{"type":"string","nullable":true},"versionRetentionPeriod":{"type":"string","nullable":true}},"required":["cmekEnabled","databaseName","sourceInfoPresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpFirestore"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"signedIdentifierCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"storageAccountKind":{"type":"string","nullable":true},"storageAccountLocation":{"type":"string","nullable":true},"storageAccountName":{"type":"string"},"storageAccountPrimaryStatus":{"type":"string","nullable":true},"storageAccountProvisioningState":{"type":"string","nullable":true},"storageAccountResourceId":{"type":"string","nullable":true},"tableExists":{"type":"boolean"},"tableName":{"type":"string"}},"required":["status","storageAccountName","tableExists","tableName"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureTable"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cloudMetadataSupported":{"type":"boolean"},"isDirectory":{"type":"boolean","nullable":true},"name":{"type":"string"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["cloudMetadataSupported","name","path","pathExists","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["kv"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"clusterIdentifier":{"type":"string"},"endpoint":{"type":"string","nullable":true},"engineVersion":{"type":"string","nullable":true},"neverPauses":{"type":"boolean","description":"True when a `minCapacity: 0` instance has not reached 0 ACU over the observation\nwindow — it is silently paying always-on prices (auto-pause verification)."},"serverlessCapacity":{"type":"number","nullable":true,"description":"Latest sampled `ServerlessDatabaseCapacity` (ACU)."},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["clusterIdentifier","neverPauses","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aurora"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"databaseVersion":{"type":"string","nullable":true},"instanceName":{"type":"string"},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["instanceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["cloudSql"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"serverName":{"type":"string"},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string","nullable":true}},"required":["serverName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["flexibleServer"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"name":{"type":"string"},"port":{"type":"integer","nullable":true,"minimum":0},"processRunning":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string"}},"required":["name","processRunning","status","version"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["postgres"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string"},"hasMoreParameters":{"type":"boolean","nullable":true},"latestModifiedAt":{"type":"string","nullable":true,"format":"date-time"},"parameterMetadataSampled":{"type":"boolean"},"prefix":{"type":"string"},"region":{"type":"string"},"sampledAdvancedTierCount":{"type":"integer","nullable":true,"minimum":0},"sampledKmsKeyMetadataPresentCount":{"type":"integer","nullable":true,"minimum":0},"sampledParameterCount":{"type":"integer","nullable":true,"minimum":0},"sampledSecureStringCount":{"type":"integer","nullable":true,"minimum":0},"sampledStringCount":{"type":"integer","nullable":true,"minimum":0},"sampledStringListCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["accountId","parameterMetadataSampled","prefix","region","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsParameterStore"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string"},"prefix":{"type":"string"},"projectId":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["location","prefix","projectId","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpSecretManager"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessPolicyCount":{"type":"integer","minimum":0},"location":{"type":"string","nullable":true},"name":{"type":"string"},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string"},"purgeProtectionEnabled":{"type":"boolean","nullable":true},"rbacAuthorizationEnabled":{"type":"boolean"},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"secretMetadataListed":{"type":"boolean"},"skuFamily":{"type":"string","nullable":true},"skuName":{"type":"string","nullable":true},"softDeleteEnabled":{"type":"boolean"},"softDeleteRetentionDays":{"type":"integer"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vaultUri":{"type":"string","nullable":true}},"required":["accessPolicyCount","name","privateEndpointConnectionCount","publicNetworkAccess","rbacAuthorizationEnabled","secretMetadataListed","softDeleteEnabled","softDeleteRetentionDays","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureKeyVault"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"type":"string"},"prefix":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["namespace","prefix","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetesSecret"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"isDirectory":{"type":"boolean","nullable":true},"modifiedAt":{"type":"string","nullable":true,"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":"boolean","nullable":true},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["path","pathExists","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["vault"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"assumeRolePolicyPresent":{"type":"boolean"},"attachedPolicyCount":{"type":"integer","minimum":0},"attachedPolicyNames":{"type":"array","items":{"type":"string"}},"createDate":{"type":"string"},"description":{"type":"string","nullable":true},"inlinePolicyCount":{"type":"integer","minimum":0},"inlinePolicyNames":{"type":"array","items":{"type":"string"}},"lastUsedDate":{"type":"string","nullable":true},"lastUsedRegion":{"type":"string","nullable":true},"managedTagCount":{"type":"integer","minimum":0},"maxSessionDuration":{"type":"integer","nullable":true},"path":{"type":"string"},"permissionsBoundaryArn":{"type":"string","nullable":true},"permissionsBoundaryType":{"type":"string","nullable":true},"roleArn":{"type":"string"},"roleId":{"type":"string"},"roleName":{"type":"string"},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tagCount":{"type":"integer","minimum":0}},"required":["assumeRolePolicyPresent","attachedPolicyCount","attachedPolicyNames","createDate","inlinePolicyCount","inlinePolicyNames","managedTagCount","path","roleArn","roleId","roleName","stackPermissionsApplied","status","tagCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsIamRole"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true},"disabled":{"type":"boolean","nullable":true},"displayName":{"type":"string","nullable":true},"email":{"type":"string"},"etag":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"oauth2ClientId":{"type":"string","nullable":true},"projectBindingCount":{"type":"integer","minimum":0},"projectId":{"type":"string","nullable":true},"projectRoles":{"type":"array","items":{"type":"string"}},"serviceAccountBindingCount":{"type":"integer","minimum":0},"serviceAccountRoles":{"type":"array","items":{"type":"string"}},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"uniqueId":{"type":"string","nullable":true}},"required":["email","projectBindingCount","projectRoles","serviceAccountBindingCount","serviceAccountRoles","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"clientId":{"type":"string","nullable":true},"customRoleDefinitionCount":{"type":"integer","minimum":0},"customRoleDefinitionIds":{"type":"array","items":{"type":"string"}},"isolationScope":{"type":"string","nullable":true},"location":{"type":"string"},"managedTagCount":{"type":"integer","minimum":0},"name":{"type":"string"},"principalId":{"type":"string","nullable":true},"resourceGroup":{"type":"string"},"resourceId":{"type":"string"},"roleAssignmentCount":{"type":"integer","minimum":0},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tenantId":{"type":"string","nullable":true},"type":{"type":"string","nullable":true}},"required":["customRoleDefinitionCount","customRoleDefinitionIds","location","managedTagCount","name","resourceGroup","resourceId","roleAssignmentCount","roleAssignmentIds","stackPermissionsApplied","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"configured":{"type":"boolean"},"identity":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["configured","identity","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["service-account"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"availabilityZones":{"type":"array","items":{"type":"string"}},"cidrBlock":{"type":"string","nullable":true},"internetGatewayId":{"type":"string","nullable":true},"isByoVpc":{"type":"boolean"},"natGatewayId":{"type":"string","nullable":true},"privateSubnetIds":{"type":"array","items":{"type":"string"}},"publicSubnetIds":{"type":"array","items":{"type":"string"}},"routeTableCount":{"type":"integer","minimum":0},"securityGroupId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vpcId":{"type":"string","nullable":true},"vpcState":{"type":"string","nullable":true}},"required":["availabilityZones","isByoVpc","privateSubnetIds","publicSubnetIds","routeTableCount","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsVpc"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cidrBlock":{"type":"string","nullable":true},"cloudNatName":{"type":"string","nullable":true},"firewallName":{"type":"string","nullable":true},"isByoVpc":{"type":"boolean"},"networkName":{"type":"string","nullable":true},"networkSelfLink":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"routerName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"subnetworkName":{"type":"string","nullable":true},"subnetworkSelfLink":{"type":"string","nullable":true}},"required":["isByoVpc","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpVpc"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"applicationGatewaySubnetName":{"type":"string","nullable":true},"cidrBlock":{"type":"string","nullable":true},"isByoVnet":{"type":"boolean"},"lastByoVnetVerificationErrorCode":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"natGatewayId":{"type":"string","nullable":true},"nsgId":{"type":"string","nullable":true},"privateEndpointSubnetName":{"type":"string","nullable":true},"privateSubnetName":{"type":"string","nullable":true},"publicIpId":{"type":"string","nullable":true},"publicSubnetName":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vnetName":{"type":"string","nullable":true},"vnetResourceId":{"type":"string","nullable":true}},"required":["isByoVnet","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureVnet"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["network"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"managementPermissionsApplied":{"type":"boolean"},"roleArn":{"type":"string","nullable":true},"roleName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["managementPermissionsApplied","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsIamRole"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"impersonationGranted":{"type":"boolean"},"roleBound":{"type":"boolean"},"serviceAccountEmail":{"type":"string","nullable":true},"serviceAccountUniqueId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["impersonationGranted","roleBound","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"ficName":{"type":"string","nullable":true},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"roleDefinitionId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tenantId":{"type":"string","nullable":true},"uamiClientId":{"type":"string","nullable":true},"uamiPrincipalId":{"type":"string","nullable":true},"uamiResourceId":{"type":"string","nullable":true}},"required":["roleAssignmentIds","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["remote-stack-management"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"pullRoleArn":{"type":"string","nullable":true},"pushRoleArn":{"type":"string","nullable":true},"region":{"type":"string"},"registryId":{"type":"string"},"registryUri":{"type":"string"},"repositories":{"type":"array","items":{"type":"object","properties":{"createdAt":{"type":"number"},"encryptionType":{"type":"string","nullable":true},"imageTagMutability":{"type":"string","nullable":true},"kmsKeyPresent":{"type":"boolean"},"registryId":{"type":"string"},"repositoryArn":{"type":"string"},"repositoryName":{"type":"string"},"repositoryUri":{"type":"string"},"scanOnPush":{"type":"boolean","nullable":true}},"required":["createdAt","kmsKeyPresent","registryId","repositoryArn","repositoryName","repositoryUri"]}},"repositoriesTruncated":{"type":"boolean"},"repositoryCount":{"type":"integer","minimum":0},"repositoryPrefix":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["region","registryId","registryUri","repositories","repositoriesTruncated","repositoryCount","repositoryPrefix","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsEcr"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cleanupPolicyCount":{"type":"integer","minimum":0},"cleanupPolicyDryRun":{"type":"boolean","nullable":true},"createTime":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"format":{"type":"string","nullable":true},"iamBindingCount":{"type":"integer","minimum":0},"iamPolicyEtagPresent":{"type":"boolean"},"iamRoles":{"type":"array","items":{"type":"string"}},"kmsKeyNamePresent":{"type":"boolean"},"labelCount":{"type":"integer","minimum":0},"location":{"type":"string"},"mode":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"projectId":{"type":"string"},"pullServiceAccountEmail":{"type":"string","nullable":true},"pushServiceAccountEmail":{"type":"string","nullable":true},"repositoryId":{"type":"string"},"satisfiesPzs":{"type":"boolean","nullable":true},"sizeBytes":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updateTime":{"type":"string","nullable":true}},"required":["cleanupPolicyCount","iamBindingCount","iamPolicyEtagPresent","iamRoles","kmsKeyNamePresent","labelCount","location","projectId","repositoryId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpArtifactRegistry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"adminUserEnabled":{"type":"boolean"},"anonymousPullEnabled":{"type":"boolean"},"creationDate":{"type":"string","nullable":true},"dataEndpointEnabled":{"type":"boolean","nullable":true},"dataEndpointHostNames":{"type":"array","items":{"type":"string"}},"encryptionKeyIdentifierPresent":{"type":"boolean"},"encryptionKeyVaultUriPresent":{"type":"boolean"},"encryptionStatus":{"type":"string","nullable":true},"ipRuleCount":{"type":"integer","minimum":0},"location":{"type":"string"},"loginServer":{"type":"string","nullable":true},"managedTagCount":{"type":"integer","minimum":0},"name":{"type":"string"},"networkRuleBypassOptions":{"type":"string"},"networkRuleDefaultAction":{"type":"string","nullable":true},"policiesPresent":{"type":"boolean"},"policyCount":{"type":"integer","minimum":0},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string"},"resourceGroup":{"type":"string"},"resourceId":{"type":"string","nullable":true},"skuName":{"type":"string"},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"type":{"type":"string","nullable":true},"zoneRedundancy":{"type":"string"}},"required":["adminUserEnabled","anonymousPullEnabled","dataEndpointHostNames","encryptionKeyIdentifierPresent","encryptionKeyVaultUriPresent","ipRuleCount","location","managedTagCount","name","networkRuleBypassOptions","policiesPresent","policyCount","privateEndpointConnectionCount","publicNetworkAccess","resourceGroup","skuName","status","zoneRedundancy"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerRegistry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"reachable":{"type":"boolean"},"registryUrl":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["reachable","registryUrl","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["artifact-registry"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"artifactsEncryptionDisabled":{"type":"boolean","nullable":true},"artifactsType":{"type":"string","nullable":true},"cloudWatchLogsStatus":{"type":"string","nullable":true},"computeType":{"type":"string","nullable":true},"created":{"type":"number","nullable":true},"description":{"type":"string","nullable":true},"encryptionKeyPresent":{"type":"boolean"},"environmentImage":{"type":"string","nullable":true},"environmentType":{"type":"string","nullable":true},"environmentVariableCount":{"type":"integer","minimum":0},"imagePullCredentialsType":{"type":"string","nullable":true},"lastModified":{"type":"number","nullable":true},"privilegedMode":{"type":"boolean","nullable":true},"projectArn":{"type":"string","nullable":true},"projectName":{"type":"string"},"queuedTimeoutInMinutes":{"type":"integer","nullable":true},"s3LogsStatus":{"type":"string","nullable":true},"serviceRolePresent":{"type":"boolean"},"sourceType":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"timeoutInMinutes":{"type":"integer","nullable":true}},"required":["encryptionKeyPresent","environmentVariableCount","projectName","serviceRolePresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsCodeBuild"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"buildConfigId":{"type":"string"},"environmentVariableCount":{"type":"integer","minimum":0},"location":{"type":"string"},"projectId":{"type":"string"},"serviceAccount":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["buildConfigId","environmentVariableCount","location","projectId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudBuild"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"environmentVariableCount":{"type":"integer","minimum":0},"managedEnvironmentId":{"type":"string"},"managedIdentityId":{"type":"string","nullable":true},"resourceGroupName":{"type":"string"},"resourcePrefix":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["environmentVariableCount","managedEnvironmentId","resourceGroupName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerApps"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"active":{"type":"integer","nullable":true},"completionTime":{"type":"string","nullable":true,"format":"date-time"},"conditionCount":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"failed":{"type":"integer","nullable":true},"imageDigest":{"type":"string","nullable":true},"jobName":{"type":"string"},"namespace":{"type":"string"},"startTime":{"type":"string","nullable":true,"format":"date-time"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"succeeded":{"type":"integer","nullable":true}},"required":["conditionCount","events","jobName","namespace","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetesJob"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["build"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"enabled":{"type":"boolean"},"lastOperationName":{"type":"string","nullable":true},"projectId":{"type":"string"},"serviceName":{"type":"string"},"serviceResourceName":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"title":{"type":"string","nullable":true}},"required":["enabled","projectId","serviceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceUsage"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"type":"string"},"providerId":{"type":"string","nullable":true},"registered":{"type":"boolean"},"registrationPolicy":{"type":"string","nullable":true},"registrationState":{"type":"string","nullable":true},"resourceTypeCount":{"type":"integer","minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["namespace","registered","resourceTypeCount","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureResourceProvider"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["service_activation"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"location":{"type":"string","nullable":true},"managedTags":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"name":{"type":"string"},"provisioningState":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["managedTags","name","status"]},"resourceType":{"type":"string","enum":["azure_resource_group"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"allowBlobPublicAccess":{"type":"boolean","nullable":true},"allowSharedKeyAccess":{"type":"boolean","nullable":true},"encryptionKeySource":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"minimumTlsVersion":{"type":"string","nullable":true},"name":{"type":"string"},"networkBypass":{"type":"string","nullable":true},"networkDefaultAction":{"type":"string","nullable":true},"networkIpRuleCount":{"type":"integer","nullable":true,"minimum":0},"networkResourceAccessRuleCount":{"type":"integer","nullable":true,"minimum":0},"networkVirtualNetworkRuleCount":{"type":"integer","nullable":true,"minimum":0},"primaryEndpoints":{"type":"object","properties":{"blob":{"type":"string","nullable":true},"dfs":{"type":"string","nullable":true},"file":{"type":"string","nullable":true},"queue":{"type":"string","nullable":true},"table":{"type":"string","nullable":true},"web":{"type":"string","nullable":true}}},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"requireInfrastructureEncryption":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"secondaryEndpoints":{"type":"object","properties":{"blob":{"type":"string","nullable":true},"dfs":{"type":"string","nullable":true},"file":{"type":"string","nullable":true},"queue":{"type":"string","nullable":true},"table":{"type":"string","nullable":true},"web":{"type":"string","nullable":true}}},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"supportsHttpsTrafficOnly":{"type":"boolean","nullable":true}},"required":["name","primaryEndpoints","secondaryEndpoints","status"]},"resourceType":{"type":"string","enum":["azure_storage_account"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"customDomainVerificationId":{"type":"string","nullable":true},"defaultDomain":{"type":"string","nullable":true},"eventStreamEndpoint":{"type":"string","nullable":true},"infrastructureResourceGroup":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"name":{"type":"string"},"provisioningState":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"staticIp":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workloadProfileCount":{"type":"integer","minimum":0},"workloadProfiles":{"type":"array","items":{"type":"object","properties":{"maximumCount":{"type":"integer","nullable":true},"minimumCount":{"type":"integer","nullable":true},"name":{"type":"string"},"workloadProfileType":{"type":"string"}},"required":["name","workloadProfileType"]}},"zoneRedundant":{"type":"boolean","nullable":true}},"required":["name","status","workloadProfileCount","workloadProfiles"]},"resourceType":{"type":"string","enum":["azure_container_apps_environment"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"createdAt":{"type":"string","nullable":true},"disableLocalAuth":{"type":"boolean","nullable":true},"location":{"type":"string","nullable":true},"metricId":{"type":"string","nullable":true},"minimumTlsVersion":{"type":"string","nullable":true},"name":{"type":"string"},"namespaceStatus":{"type":"string","nullable":true},"premiumMessagingPartitions":{"type":"integer","nullable":true},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"serviceBusEndpoint":{"type":"string","nullable":true},"skuCapacity":{"type":"integer","nullable":true},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updatedAt":{"type":"string","nullable":true},"zoneRedundant":{"type":"boolean","nullable":true}},"required":["name","privateEndpointConnectionCount","status"]},"resourceType":{"type":"string","enum":["azure_service_bus_namespace"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"availability":{"type":"object","properties":{"catalogRevision":{"type":"string"},"location":{"type":"string","nullable":true},"models":{"type":"array","items":{"type":"object","properties":{"accessTest":{"type":"string","enum":["verified","failed","not-checked"]},"availability":{"type":"string","enum":["available","blocked","unknown"]},"blockers":{"type":"array","items":{"type":"string","enum":["agreement-required","entitlement-required","model-activation-required","deployment-required","quota-configuration-required","region-unavailable","access-denied","observation-failed"]}},"clientApis":{"type":"array","items":{"type":"string","enum":["open-ai-chat-completions","open-ai-responses","anthropic-messages"],"description":"A public API accepted from an application client."}},"errorCode":{"type":"string","nullable":true},"publicModelId":{"type":"string"},"testedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["accessTest","availability","blockers","clientApis","publicModelId"]}},"source":{"type":"string","enum":["aws-bedrock","gcp-vertex","azure-foundry","anthropic"],"description":"Provider control plane used to observe model availability without invoking\na model, spending customer quota, or accepting provider terms."}},"required":["catalogRevision","models","source"]},"region":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["availability","region","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsBedrock"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"availability":{"type":"object","properties":{"catalogRevision":{"type":"string"},"location":{"type":"string","nullable":true},"models":{"type":"array","items":{"type":"object","properties":{"accessTest":{"type":"string","enum":["verified","failed","not-checked"]},"availability":{"type":"string","enum":["available","blocked","unknown"]},"blockers":{"type":"array","items":{"type":"string","enum":["agreement-required","entitlement-required","model-activation-required","deployment-required","quota-configuration-required","region-unavailable","access-denied","observation-failed"]}},"clientApis":{"type":"array","items":{"type":"string","enum":["open-ai-chat-completions","open-ai-responses","anthropic-messages"],"description":"A public API accepted from an application client."}},"errorCode":{"type":"string","nullable":true},"publicModelId":{"type":"string"},"testedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["accessTest","availability","blockers","clientApis","publicModelId"]}},"source":{"type":"string","enum":["aws-bedrock","gcp-vertex","azure-foundry","anthropic"],"description":"Provider control plane used to observe model availability without invoking\na model, spending customer quota, or accepting provider terms."}},"required":["catalogRevision","models","source"]},"location":{"type":"string"},"project":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["availability","location","project","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpVertex"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"type":"string"},"availability":{"type":"object","properties":{"catalogRevision":{"type":"string"},"location":{"type":"string","nullable":true},"models":{"type":"array","items":{"type":"object","properties":{"accessTest":{"type":"string","enum":["verified","failed","not-checked"]},"availability":{"type":"string","enum":["available","blocked","unknown"]},"blockers":{"type":"array","items":{"type":"string","enum":["agreement-required","entitlement-required","model-activation-required","deployment-required","quota-configuration-required","region-unavailable","access-denied","observation-failed"]}},"clientApis":{"type":"array","items":{"type":"string","enum":["open-ai-chat-completions","open-ai-responses","anthropic-messages"],"description":"A public API accepted from an application client."}},"errorCode":{"type":"string","nullable":true},"publicModelId":{"type":"string"},"testedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["accessTest","availability","blockers","clientApis","publicModelId"]}},"source":{"type":"string","enum":["aws-bedrock","gcp-vertex","azure-foundry","anthropic"],"description":"Provider control plane used to observe model availability without invoking\na model, spending customer quota, or accepting provider terms."}},"required":["catalogRevision","models","source"]},"endpoint":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["accountName","availability","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureFoundry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"availability":{"oneOf":[{"type":"object","properties":{"catalogRevision":{"type":"string"},"location":{"type":"string","nullable":true},"models":{"type":"array","items":{"type":"object","properties":{"accessTest":{"type":"string","enum":["verified","failed","not-checked"]},"availability":{"type":"string","enum":["available","blocked","unknown"]},"blockers":{"type":"array","items":{"type":"string","enum":["agreement-required","entitlement-required","model-activation-required","deployment-required","quota-configuration-required","region-unavailable","access-denied","observation-failed"]}},"clientApis":{"type":"array","items":{"type":"string","enum":["open-ai-chat-completions","open-ai-responses","anthropic-messages"],"description":"A public API accepted from an application client."}},"errorCode":{"type":"string","nullable":true},"publicModelId":{"type":"string"},"testedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["accessTest","availability","blockers","clientApis","publicModelId"]}},"source":{"type":"string","enum":["aws-bedrock","gcp-vertex","azure-foundry","anthropic"],"description":"Provider control plane used to observe model availability without invoking\na model, spending customer quota, or accepting provider terms."}},"required":["catalogRevision","models","source"]},{"nullable":true}]},"provider":{"type":"string","description":"The BYO-key provider serving this binding (e.g. \"openai\"). Used on the Local\nplatform, where the app brings its own provider key instead of an ambient cloud."},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["provider","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["external"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["ai"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"type":"object","properties":{"data":{"type":"object","properties":{"enabled":{"type":"boolean"},"keyArn":{"type":"string"},"keySpec":{"type":"string"},"keyState":{"type":"string"},"keyUsage":{"type":"string"},"status":{"type":"object","properties":{"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true}},"required":["health","lifecycle"]}},"required":["enabled","keyArn","keySpec","keyState","keyUsage","status"]},"provider":{"type":"string","enum":["aws-kms"]}},"required":["data","provider"]},{"type":"object","properties":{"data":{"type":"object","properties":{"algorithm":{"type":"string","nullable":true},"cryptoKeyName":{"type":"string"},"primaryState":{"type":"string","nullable":true},"primaryVersion":{"type":"string","nullable":true},"purpose":{"type":"string"},"status":{"type":"object","properties":{"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true}},"required":["health","lifecycle"]}},"required":["cryptoKeyName","purpose","status"]},"provider":{"type":"string","enum":["gcp-cloud-kms"]}},"required":["data","provider"]},{"type":"object","properties":{"data":{"type":"object","properties":{"enabled":{"type":"boolean","nullable":true},"keyId":{"type":"string"},"keyOperations":{"type":"array","items":{"type":"string"}},"keyType":{"type":"string"},"recoveryLevel":{"type":"string","nullable":true},"status":{"type":"object","properties":{"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true}},"required":["health","lifecycle"]}},"required":["keyId","keyOperations","keyType","status"]},"provider":{"type":"string","enum":["azure-key-vault"]}},"required":["data","provider"]}]},"resourceType":{"type":"string","enum":["key"]}},"required":["data","resourceType"]}]},"deploymentId":{"type":"string","nullable":true},"observedAt":{"type":"string","format":"date-time"},"raw":{"type":"array","items":{"type":"object","properties":{"body":{"type":"string"},"collectedAt":{"type":"string","format":"date-time"},"format":{"type":"string","enum":["json","yaml","text"]},"source":{"type":"string"},"truncated":{"type":"boolean"}},"required":["body","collectedAt","format","source","truncated"]}},"resourceId":{"type":"string","description":"Alien resource id, such as the `alien.Container` or `alien.Storage`\nresource id from the stack."},"resourceType":{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior."}},"required":["backend","controllerPlatform","data","observedAt","raw","resourceId","resourceType"]},"description":"Latest typed resource heartbeats collected during this step."},"observedInventoryBatches":{"type":"array","items":{"type":"object","properties":{"backend":{"type":"string","enum":["aws","gcp","azure","kubernetes","local","managed","external","test"],"description":"Backend whose observer produced this snapshot."},"complete":{"type":"boolean","description":"Whether this batch is a complete replacement for the scope. Complete\nbatches tombstone previously observed rows in the same scope when they\nare absent from `resources`."},"controllerPlatform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"inventoryScope":{"type":"string","description":"Stable scope for the provider list operation that produced this batch."},"observedAt":{"type":"string","format":"date-time","description":"Time the inventory scope was observed."},"resources":{"type":"array","items":{"type":"object","properties":{"alienResourceId":{"type":"string","nullable":true},"attributes":{"type":"object","properties":{},"additionalProperties":{"nullable":true}},"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"counts":{"oneOf":[{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},{"nullable":true}]},"deploymentId":{"type":"string","nullable":true},"displayName":{"type":"string"},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerKind":{"type":"string","description":"Provider-native kind, such as `apps/v1/Deployment`,\n`AWS::S3::Bucket`, `storage.googleapis.com/Bucket`, or an Azure\nresource type."},"providerStale":{"type":"boolean"},"raw":{"type":"array","items":{"type":"object","properties":{"body":{"type":"string"},"collectedAt":{"type":"string","format":"date-time"},"format":{"type":"string","enum":["json","yaml","text"]},"source":{"type":"string"},"truncated":{"type":"boolean"}},"required":["body","collectedAt","format","source","truncated"]}},"rawIdentity":{"type":"string","description":"Provider-native stable identity: Kubernetes object identity, cloud ARN,\nGCP full resource name, Azure resource id, etc."},"region":{"type":"string","nullable":true},"resourceTypeHint":{"oneOf":[{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior."},{"nullable":true}]},"scope":{"type":"string","nullable":true},"version":{"type":"string","nullable":true,"description":"Release/version identity observed from the provider resource, when available."}},"required":["displayName","health","lifecycle","partial","providerKind","providerStale","rawIdentity"]}},"sourceKind":{"type":"string","description":"Writer/source for this inventory pass, such as `operator` or\n`manager-observer`."}},"required":["backend","complete","controllerPlatform","inventoryScope","observedAt","resources","sourceKind"]},"description":"Observed raw-resource inventory batches read during this step."},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/OperatorCapabilityReport"},"description":"Operator-reported runtime capabilities."},"operatorVersion":{"type":"string","minLength":1,"maxLength":128,"description":"Operator binary version reported by the runtime."}},"required":["deploymentId","state"],"additionalProperties":false,"description":"Request to reconcile deployment state"},"SyncRenewRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Single deployment to renew. Deprecated: use deploymentIds. Retained so a manager built against the previous API keeps renewing during rollout.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"deploymentIds":{"type":"array","items":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"minItems":1,"maxItems":100,"description":"Deployments to renew or confirm. Renewal is per deployment: the response reports each one independently."},"session":{"type":"string","minLength":1}},"required":["session"],"additionalProperties":false},"SyncReleaseRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Deployment ID to release","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"session":{"type":"string","description":"Session identifier to release"}},"required":["deploymentId","session"],"additionalProperties":false,"description":"Request to release deployment lock"},"ResolveResponse":{"type":"object","properties":{"managerId":{"type":"string","description":"Manager ID"},"managerName":{"type":"string","description":"Manager display name"},"managerUrl":{"type":"string","format":"uri","description":"Manager URL"},"managerIsSystem":{"type":"boolean","description":"Whether the manager is Alien-hosted"},"managerCloud":{"type":"string","nullable":true,"enum":["aws","gcp","azure","kubernetes","machines","local","test",null],"description":"Cloud where the private manager is hosted. Null for Alien-hosted managers."},"projectId":{"type":"string","description":"Resolved project ID"},"installContext":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]}],"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."}},"required":["platform","managementConfig"],"description":"Target install context derived from platform-managed manager metadata. Present for cloud push platforms."}},"required":["managerId","managerName","managerUrl","managerIsSystem","projectId"]},"CloudRegionsResponse":{"type":"object","properties":{"supportedRegions":{"$ref":"#/components/schemas/SupportedCloudRegions"}},"required":["supportedRegions"]},"BillingAuditLogRow":{"type":"object","properties":{"id":{"type":"string"},"workspaceId":{"type":"string","nullable":true},"action":{"type":"string"},"payload":{"nullable":true},"createdAt":{"type":"string"}},"required":["id","workspaceId","action","createdAt"]},"WorkspaceBillingEntitlements":{"type":"object","properties":{"planId":{"$ref":"#/components/schemas/PlanId"},"planStatus":{"$ref":"#/components/schemas/BillingPlanStatus"},"features":{"$ref":"#/components/schemas/BillingFeatureFlags"},"limits":{"$ref":"#/components/schemas/BillingLimits"},"syncedAt":{"type":"string","nullable":true,"format":"date-time"},"stale":{"type":"boolean"}},"required":["planId","planStatus","features","limits","syncedAt","stale"]},"PlanId":{"type":"string","enum":["starter","pro","pro_annual","enterprise"]},"BillingPlanStatus":{"type":"string","enum":["active","trialing","past_due","canceled","none"]},"BillingFeatureFlags":{"type":"object","properties":{"custom_domains":{"type":"boolean"},"private_managers":{"type":"boolean"},"sso_saml":{"type":"boolean"},"audit_logs":{"type":"boolean"},"airgapped":{"type":"boolean"}},"required":["custom_domains","private_managers","sso_saml","audit_logs","airgapped"]},"BillingLimits":{"type":"object","properties":{"maxDeployments":{"type":"number","nullable":true},"maxProjects":{"type":"number","nullable":true},"maxSeats":{"type":"number","nullable":true},"maxCustomDomains":{"type":"number","nullable":true},"creditUsd":{"type":"number","nullable":true},"seatsIncluded":{"type":"number","nullable":true}},"required":["maxDeployments","maxProjects","maxSeats","maxCustomDomains","creditUsd","seatsIncluded"]}},"parameters":{}},"paths":{"/v1/invitations/{token}":{"get":{"operationId":"getWorkspaceInvitationPreview","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"token","in":"path"}],"responses":{"200":{"description":"Invitation preview.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInvitationPreview"}}}},"404":{"description":"Invitation not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/memberships":{"get":{"operationId":"listMemberships","description":"List all workspaces the current user has access to.","x-speakeasy-group":"user","x-speakeasy-name-override":"listMemberships","responses":{"200":{"description":"List of user's workspaces.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Membership"}}},"required":["items"]}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/profile":{"get":{"operationId":"getUserProfile","description":"Get the current user's profile and user-scoped onboarding state.","x-speakeasy-group":"user","x-speakeasy-name-override":"getProfile","responses":{"200":{"description":"User profile.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfile"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateUserProfile","description":"Update the current user's profile (display name).","x-speakeasy-group":"user","x-speakeasy-name-override":"updateProfile","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Display name"}}}}}},"responses":{"200":{"description":"Profile updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfile"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/profile/setup":{"post":{"operationId":"completeUserProfileSetup","description":"Complete the required beta intake and profile setup dialog.","x-speakeasy-group":"user","x-speakeasy-name-override":"completeProfileSetup","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfileSetupRequest"}}}},"responses":{"200":{"description":"Profile setup completed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfile"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/workspaces":{"post":{"operationId":"createWorkspace","description":"Create a new workspace. The current user will be automatically added as an admin.","x-speakeasy-group":"user","x-speakeasy-name-override":"createWorkspace","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name"},"logoUrl":{"type":"string","format":"uri","description":"Optional workspace logo URL"}},"required":["name"]}}}},"responses":{"201":{"description":"Created workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Membership"}}}},"400":{"description":"Bad request - invalid workspace name.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Workspace name already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/git-namespaces":{"get":{"operationId":"listGitNamespaces","description":"List all git namespaces (GitHub installations) the current user has access to.","x-speakeasy-group":"user","x-speakeasy-name-override":"listGitNamespaces","parameters":[{"schema":{"type":"string","enum":["github"],"default":"github"},"required":false,"name":"provider","in":"query"}],"responses":{"200":{"description":"List of user's git namespaces.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GitNamespace"}}},"required":["items"]}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/git-namespaces/sync":{"post":{"operationId":"syncGitNamespaces","description":"Sync git namespaces from the provider. For GitHub, this fetches all app installations accessible to the user.","x-speakeasy-group":"user","x-speakeasy-name-override":"syncGitNamespaces","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"provider":{"type":"string","enum":["github"],"description":"Git provider to sync"}},"required":["provider"]}}}},"responses":{"200":{"description":"Synced git namespaces.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GitNamespace"}}},"required":["items"]}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/git-namespaces/{id}/repositories":{"get":{"operationId":"listGitNamespaceRepositories","description":"List repositories accessible through a git namespace (GitHub installation).","x-speakeasy-group":"user","x-speakeasy-name-override":"listGitNamespaceRepositories","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","description":"Search query to filter repositories by name"},"required":false,"description":"Search query to filter repositories by name","name":"search","in":"query"}],"responses":{"200":{"description":"List of repositories.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GitRepository"}}},"required":["items"]}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Git namespace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/invitations/{token}/accept":{"post":{"operationId":"acceptWorkspaceInvitation","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"token","in":"path"}],"responses":{"200":{"description":"Invitation accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptWorkspaceInvitationResponse"}}}},"404":{"description":"Invitation not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Invitation unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/whoami":{"get":{"operationId":"whoami","description":"Get the current authenticated principal (user or service account). Works with both session cookies and API keys.","x-speakeasy-group":"auth","x-speakeasy-name-override":"whoami","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace to resolve the principal in. Required for user credentials because a user's role is per-workspace. Service accounts carry their workspace in the credential and may omit it.","example":"my-workspace"},"required":false,"description":"Workspace to resolve the principal in. Required for user credentials because a user's role is per-workspace. Service accounts carry their workspace in the credential and may omit it.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Current authenticated principal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Subject"}}}},"400":{"description":"Missing required workspace for user credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces":{"get":{"operationId":"listWorkspaces","description":"Retrieve all workspaces.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","description":"Search workspaces by name"},"required":false,"description":"Search workspaces by name","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved workspaces.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Workspace"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}":{"get":{"operationId":"getWorkspace","description":"Retrieve a workspace by ID.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workspace"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateWorkspace","description":"Update a workspace.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"update","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"logoUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"}}}}}},"responses":{"200":{"description":"Workspace updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workspace"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteWorkspace","description":"Delete a workspace. The workspace must have no projects.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"delete","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Workspace deleted successfully."},"400":{"description":"Workspace still has projects.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/members":{"get":{"operationId":"listWorkspaceMembers","description":"List all members of a workspace.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"listMembers","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"List of workspace members.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceMember"}}},"required":["items"]}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"addWorkspaceMember","description":"Add a member to a workspace by email. The user must already have an account.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"addMember","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"Email of the user to add"},"role":{"allOf":[{"$ref":"#/components/schemas/WorkspaceRole"},{"description":"Role to assign"}]}},"required":["email","role"]}}}},"responses":{"201":{"description":"Member added successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceMember"}}}},"404":{"description":"Workspace or user not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"User is already a member.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/members/{userId}":{"patch":{"operationId":"updateWorkspaceMember","description":"Update a workspace member's role.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"updateMember","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"userId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"allOf":[{"$ref":"#/components/schemas/WorkspaceRole"},{"description":"New role to assign"}]}},"required":["role"]}}}},"responses":{"200":{"description":"Member role updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceMember"}}}},"400":{"description":"Cannot remove last admin.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Workspace or member not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"removeWorkspaceMember","description":"Remove a member from a workspace.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"removeMember","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"userId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Member removed successfully."},"400":{"description":"Cannot remove last admin or self.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Workspace or member not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/dismiss-onboarding":{"post":{"operationId":"dismissWorkspaceOnboarding","description":"Mark the Getting Started walkthrough as dismissed for a workspace. The dashboard stops auto-promoting onboarding once this is set; users can still re-enter the walkthrough via the help menu.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"dismissOnboarding","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Workspace with onboardingDismissedAt populated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workspace"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/settings":{"get":{"operationId":"getWorkspaceSettings","description":"Read the ai-agent settings for a workspace. Returns defaults (`enabled: true`, `debugPermissionMode: auto`) when the workspace has never customized them.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"getSettings","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Workspace ai-agent settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSettings"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateWorkspaceSettings","description":"Update the ai-agent settings for a workspace. Supports `debugPermissionMode` (`ask` requires human approval on every ai-agent debug command, `auto` runs them without asking) and `enabled` (`false` turns the ai-agent off so incoming triggers are rejected before any session runs).","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"updateSettings","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkspaceSettingsRequest"}}}},"responses":{"200":{"description":"Updated ai-agent settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSettings"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/invitations":{"get":{"operationId":"listWorkspaceInvitations","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Pending invitations.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceInvitation"}}},"required":["items"]}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createWorkspaceInvitation","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"role":{"$ref":"#/components/schemas/WorkspaceRole"}},"required":["email","role"]}}}},"responses":{"201":{"description":"Invitation created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInvitation"}}}},"403":{"description":"Seat limit reached.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Invitation already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/invitations/{invitationId}/resend":{"post":{"operationId":"resendWorkspaceInvitation","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"invitationId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Invitation email sent again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInvitation"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/invitations/{invitationId}":{"delete":{"operationId":"revokeWorkspaceInvitation","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"invitationId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Invitation revoked."},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/invite-link":{"get":{"operationId":"getWorkspaceInviteLink","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Active invite link.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInviteLink"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"put":{"operationId":"createWorkspaceInviteLink","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/WorkspaceRole"}},"required":["role"]}}}},"responses":{"200":{"description":"Invite link created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInviteLink"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"revokeWorkspaceInviteLink","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Invite link revoked."},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects":{"get":{"operationId":"listProjects","description":"Retrieve all projects.","x-speakeasy-group":"projects","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","description":"Search projects by name"},"required":false,"description":"Search projects by name","name":"search","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["deploymentCount","latestRelease"]},"description":"Optional fields to include: deploymentCount, latestRelease"},"required":false,"description":"Optional fields to include: deploymentCount, latestRelease","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved projects.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ProjectListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createProject","description":"Create a new project.","x-speakeasy-group":"projects","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Project name.","example":"my-app"},"gitRepository":{"type":"object","nullable":true,"properties":{"type":{"type":"string","enum":["github"],"description":"The Git Provider of the repository","example":"github"},"repo":{"type":"string","maxLength":128,"description":"The name of the git repository","example":"alien/my-agent"}},"required":["type","repo"],"additionalProperties":false,"description":"Verified source repository connected to the project. Alien uses this for GitHub Actions setup and source-aware features; releases are still created explicitly by CI or `alien release`."},"rootDirectory":{"type":"string","nullable":true,"maxLength":256,"description":"The name of a directory or relative path to the source code of your project. When null is used it will default to the project root"},"packagesConfig":{"type":"object","nullable":true,"properties":{"cli":{"type":"object","nullable":true,"properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"},"enabled":{"type":"boolean","description":"Whether CLI package generation is enabled"}},"required":["displayName","name","enabled"],"description":"CLI package configuration. If null, CLI packages will not be generated."},"cloudformation":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether CloudFormation package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"CloudFormation package configuration. If null, CloudFormation packages will not be generated."},"operatorImage":{"type":"object","nullable":true,"properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"},"enabled":{"type":"boolean","description":"Whether Operator image package generation is enabled"}},"required":["displayName","name","enabled"],"description":"Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated."},"helm":{"type":"object","nullable":true,"properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"},"enabled":{"type":"boolean","description":"Whether Helm chart package generation is enabled"}},"required":["chartName","description","enabled"],"description":"Helm chart package configuration. If null, Helm packages will not be generated."},"terraform":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether Terraform package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"Terraform package configuration. If null, Terraform packages will not be generated."}},"description":"Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform)"}},"required":["name"]}}}},"responses":{"201":{"description":"Project created successfully.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Project"},{"type":"object","properties":{"githubSetup":{"type":"object","properties":{"pullRequestUrl":{"type":"string","format":"uri","description":"URL to the pull request with the Alien build workflow"},"workflowUrl":{"type":"string","format":"uri","description":"URL to the GitHub Actions workflow"}},"required":["pullRequestUrl","workflowUrl"]},"gitRepositoryWarning":{"$ref":"#/components/schemas/APIError"}}}]}}}},"400":{"description":"Invalid request or GitHub repository connection failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Insufficient permissions or plan limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Project name already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}":{"get":{"operationId":"getProject","description":"Retrieve a project by ID or name.","x-speakeasy-group":"projects","x-speakeasy-name-override":"get","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved project.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateProject","description":"Update a project.","x-speakeasy-group":"projects","x-speakeasy-name-override":"update","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProject"}}}},"responses":{"200":{"description":"Project updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteProject","description":"Delete a project. The project must have no deployments.","x-speakeasy-group":"projects","x-speakeasy-name-override":"delete","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Project deleted successfully."},"400":{"description":"Project still has deployments.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/gcp-oauth-provider":{"get":{"operationId":"getProjectGcpOAuthProvider","description":"Retrieve redacted project-level Google Cloud OAuth provider settings.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getGcpOAuthProvider","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved Google Cloud OAuth provider settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectGcpOAuthProvider"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"put":{"operationId":"updateProjectGcpOAuthProvider","description":"Update project-level Google Cloud OAuth provider settings.","x-speakeasy-group":"projects","x-speakeasy-name-override":"updateGcpOAuthProvider","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProjectGcpOAuthProvider"}}}},"responses":{"200":{"description":"Google Cloud OAuth provider settings updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectGcpOAuthProvider"}}}},"400":{"description":"Invalid provider settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/deployment-portal-domain":{"get":{"operationId":"getProjectDeploymentPortalDomain","description":"Get the deployment portal domain binding for a project.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getDeploymentPortalDomain","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved deployment portal domain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentPortalDomainResponse"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/import-template":{"post":{"operationId":"createProjectFromTemplate","description":"Create a project by forking alienplatform/alien into your namespace, then configuring GitHub Actions.","x-speakeasy-group":"projects","x-speakeasy-name-override":"createFromTemplate","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Project name.","example":"my-app"},"targetNamespace":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-zA-Z0-9-]+$","description":"GitHub owner namespace (user or organization) that will receive the fork"},"templatePath":{"type":"string","enum":["examples/remote-worker-ts","examples/github-agent/packages/remote-agent","examples/endpoint-agent","examples/byoc-database"],"description":"Template root directory inside alienplatform/alien"},"rootDirectory":{"type":"string","nullable":true,"maxLength":256,"description":"The name of a directory or relative path to the source code of your project. When null is used it will default to the project root"},"packagesConfig":{"type":"object","nullable":true,"properties":{"cli":{"type":"object","nullable":true,"properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"},"enabled":{"type":"boolean","description":"Whether CLI package generation is enabled"}},"required":["displayName","name","enabled"],"description":"CLI package configuration. If null, CLI packages will not be generated."},"cloudformation":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether CloudFormation package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"CloudFormation package configuration. If null, CloudFormation packages will not be generated."},"operatorImage":{"type":"object","nullable":true,"properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"},"enabled":{"type":"boolean","description":"Whether Operator image package generation is enabled"}},"required":["displayName","name","enabled"],"description":"Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated."},"helm":{"type":"object","nullable":true,"properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"},"enabled":{"type":"boolean","description":"Whether Helm chart package generation is enabled"}},"required":["chartName","description","enabled"],"description":"Helm chart package configuration. If null, Helm packages will not be generated."},"terraform":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether Terraform package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"Terraform package configuration. If null, Terraform packages will not be generated."}},"description":"Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform)"}},"required":["name","targetNamespace","templatePath"]}}}},"responses":{"201":{"description":"Project created successfully from template.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Project"},{"type":"object","properties":{"githubSetup":{"type":"object","properties":{"pullRequestUrl":{"type":"string","format":"uri","description":"URL to the pull request with the Alien build workflow"},"workflowUrl":{"type":"string","format":"uri","description":"URL to the GitHub Actions workflow"}},"required":["pullRequestUrl","workflowUrl"]},"gitRepositoryWarning":{"$ref":"#/components/schemas/APIError"},"template":{"type":"object","properties":{"sourceRepository":{"type":"string","enum":["alienplatform/alien"]},"forkRepository":{"type":"string","description":"Fork repository in / format"},"templatePath":{"type":"string","enum":["examples/remote-worker-ts","examples/github-agent/packages/remote-agent","examples/endpoint-agent","examples/byoc-database"],"description":"Template root directory inside alienplatform/alien"},"resolvedRootDirectory":{"type":"string"}},"required":["sourceRepository","forkRepository","templatePath","resolvedRootDirectory"]}},"required":["template"]}]}}}},"400":{"description":"Bad request or GitHub integration not installed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Project name already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"Fork exists but is not ready yet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/template-urls":{"get":{"operationId":"getProjectTemplateUrls","description":"Get template URLs for deploying setup stacks in this project.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getTemplateUrls","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Template URLs retrieved successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"aws":{"type":"object","nullable":true,"properties":{"templateUrl":{"type":"string","format":"uri","description":"URL to download the CloudFormation template"},"launchStackUrl":{"type":"string","format":"uri","description":"URL to launch the template in the AWS CloudFormation console"}},"required":["templateUrl","launchStackUrl"],"description":"Template URLs for deploying an AWS setup stack"}}}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/deployment-link-setup":{"get":{"operationId":"getProjectDeploymentLinkSetup","description":"Get the active release stack and portal-visible setup availability for deployment-link configuration.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getDeploymentLinkSetup","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Deployment-link setup retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentLinkSetupResponse"}}}},"404":{"description":"Project or active release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/active-release":{"get":{"operationId":"getProjectActiveRelease","description":"Get the production channel's current release. When deploymentId is provided, returns that deployment's effective release: its pin, or its followed channel's current release.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getActiveRelease","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","description":"Optional deployment ID to check for pinned release"},"required":false,"description":"Optional deployment ID to check for pinned release","name":"deploymentId","in":"query"}],"responses":{"200":{"description":"Effective release retrieved successfully.","content":{"application/json":{"schema":{"nullable":true}}}},"404":{"description":"Project or effective release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups":{"post":{"operationId":"createDeploymentGroup","tags":["deployment-groups"],"summary":"Create a new deployment group","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentGroupRequest"}}}},"responses":{"200":{"description":"Deployment group created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment group with this name already exists in the project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"listDeploymentGroups","tags":["deployment-groups"],"summary":"List deployment groups","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","description":"Search deployment groups by name"},"required":false,"description":"Search deployment groups by name","name":"search","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["project"]},"description":"Optional fields to include: project"},"required":false,"description":"Optional fields to include: project","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"List of deployment groups","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/DeploymentGroup"},{"type":"object","properties":{"project":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"Project ID"},"name":{"type":"string","description":"Project name"}},"required":["id","name"],"description":"Project info, included when ?include=project is used"}}}]},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/by-name":{"put":{"operationId":"ensureDeploymentGroupByName","tags":["deployment-groups"],"summary":"Get or create a deployment group by project and name","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnsureDeploymentGroupByNameRequest"}}}},"responses":{"200":{"description":"Deployment group returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/by-external-id":{"put":{"operationId":"ensureDeploymentGroupByExternalId","tags":["deployment-groups"],"summary":"Get or create a deployment group by project and external ID","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnsureDeploymentGroupByExternalIdRequest"}}}},"responses":{"200":{"description":"Deployment group returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment group name already exists in the project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"getDeploymentGroupByExternalId","tags":["deployment-groups"],"summary":"Get a deployment group by project and external ID","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","maxLength":100,"description":"Project ID or name. Optional for project-scoped API keys."},"required":false,"description":"Project ID or name. Optional for project-scoped API keys.","name":"project","in":"query"},{"schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9][A-Za-z0-9._~-]*$","description":"Case-sensitive, URL- and header-safe identifier from the integrating application.","example":"ext_example_01"},"required":true,"description":"Case-sensitive, URL- and header-safe identifier from the integrating application.","name":"externalId","in":"query"}],"responses":{"200":{"description":"Deployment group returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Project or deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/{id}":{"get":{"operationId":"getDeploymentGroup","tags":["deployment-groups"],"summary":"Get deployment group details","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["project"]},"description":"Optional fields to include: project"},"required":false,"description":"Optional fields to include: project","name":"include","in":"query"}],"responses":{"200":{"description":"Deployment group details","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DeploymentGroup"},{"type":"object","properties":{"project":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"Project ID"},"name":{"type":"string","description":"Project name"}},"required":["id","name"],"description":"Project info, included when ?include=project is used"},"deploymentCount":{"type":"integer","description":"Current number of deployments in this deployment group"}},"required":["deploymentCount"]}]}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateDeploymentGroup","tags":["deployment-groups"],"summary":"Update deployment group","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentGroupRequest"}}}},"responses":{"200":{"description":"Deployment group updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment group name already exists in the project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteDeploymentGroup","tags":["deployment-groups"],"summary":"Delete deployment group","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Deployment group deleted successfully"},"400":{"description":"Cannot delete deployment group that has deployments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/{id}/external-id":{"put":{"operationId":"setDeploymentGroupExternalId","tags":["deployment-groups"],"summary":"Set or clear a deployment group's external ID","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetDeploymentGroupExternalIdRequest"}}}},"responses":{"200":{"description":"Deployment group external ID updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment group external ID already exists in the project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/{id}/tokens":{"post":{"operationId":"createDeploymentGroupToken","tags":["deployment-groups"],"summary":"Create deployment group token","description":"Creates a deployment-group scoped API key and returns both the token and formatted deployment link","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentGroupTokenRequest"}}}},"responses":{"200":{"description":"Deployment group token created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentGroupTokenResponse"}}}},"400":{"description":"Deployment setup configuration is invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/{id}/first-party-session":{"post":{"operationId":"createFirstPartyDeploymentSession","tags":["deployment-groups"],"summary":"Create first-party deployment session","description":"Mints a short-lived deployment-group token with the recommended self-deploy policy for the authenticated developer.","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"First-party deployment session created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFirstPartyDeploymentSessionResponse"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/packages":{"get":{"operationId":"listPackages","description":"List packages with optional filters. Returns packages ordered by creation date (newest first).","x-speakeasy-group":"packages","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","enum":["cli","cloudformation","helm","operator-image","terraform"],"description":"Filter by package type"},"required":false,"description":"Filter by package type","name":"type","in":"query"},{"schema":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Filter by package status"},"required":false,"description":"Filter by package status","name":"status","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search packages by type or version"},"required":false,"description":"Search packages by type or version","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"List of packages.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Package"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/packages/{id}":{"get":{"operationId":"getPackage","description":"Get details of a specific package.","x-speakeasy-group":"packages","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"pkg_[0-9a-z]{28}$","description":"Unique identifier for the package.","example":"pkg_jebo2o5jmm7raefl2m1pe3cz"},"required":true,"description":"Unique identifier for the package.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Package details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Package"}}}},"404":{"description":"Package not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/packages/rebuild":{"post":{"operationId":"rebuildPackages","description":"Rebuild packages for a project. This will cancel any pending packages and create new ones with auto-incremented versions.","x-speakeasy-group":"packages","x-speakeasy-name-override":"rebuild","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"project":{"type":"string","maxLength":100,"description":"Project ID or name to rebuild packages for"}},"required":["project"]}}}},"responses":{"200":{"description":"Packages rebuilt successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"packagesCreated":{"type":"integer","description":"Number of packages created"}},"required":["packagesCreated"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/packages/{id}/cancel":{"post":{"operationId":"cancelPackage","description":"Cancel a pending or building package.","x-speakeasy-group":"packages","x-speakeasy-name-override":"cancel","parameters":[{"schema":{"type":"string","pattern":"pkg_[0-9a-z]{28}$","description":"Unique identifier for the package.","example":"pkg_jebo2o5jmm7raefl2m1pe3cz"},"required":true,"description":"Unique identifier for the package.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Package canceled successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Package"}}}},"400":{"description":"Package cannot be canceled (not in pending or building status).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Package not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases":{"get":{"operationId":"listReleases","description":"Retrieve all releases.","x-speakeasy-group":"releases","x-speakeasy-name-override":"list","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"}],"nullable":true},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","nullable":true,"minLength":1,"maxLength":63,"pattern":"^[a-z][a-z0-9-]*$","description":"Filter to releases promoted to this channel. Defaults to production."},"required":false,"description":"Filter to releases promoted to this channel. Defaults to production.","name":"channel","in":"query"},{"schema":{"type":"string","enum":["true","false"],"default":"false"},"required":false,"name":"allChannels","in":"query"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["project","rollout","createdBy"]},"description":"Optional fields to include: project, rollout"},"required":false,"description":"Optional fields to include: project, rollout","name":"include","in":"query"},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Search releases by commit message, branch, SHA, or release ID"},"required":false,"description":"Search releases by commit message, branch, SHA, or release ID","name":"search","in":"query"},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Filter by git branch (commitRef)"},"required":false,"description":"Filter by git branch (commitRef)","name":"branch","in":"query"},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Filter by commit author login or name"},"required":false,"description":"Filter by commit author login or name","name":"author","in":"query"},{"schema":{"type":"string","nullable":true,"format":"date-time","description":"Filter releases created after this date (ISO 8601)"},"required":false,"description":"Filter releases created after this date (ISO 8601)","name":"createdAfter","in":"query"},{"schema":{"type":"string","nullable":true,"format":"date-time","description":"Filter releases created before this date (ISO 8601)"},"required":false,"description":"Filter releases created before this date (ISO 8601)","name":"createdBefore","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved releases.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createRelease","description":"Create a new release.","x-speakeasy-group":"releases","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateReleaseRequest"}}}},"responses":{"201":{"description":"Release created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Release"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases/branches":{"get":{"operationId":"listReleaseBranches","description":"List distinct git branches across releases. Used for filter dropdowns.","x-speakeasy-group":"releases","x-speakeasy-name-override":"listBranches","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"allOf":[{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"}],"nullable":true},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Search branches by name (case-insensitive contains)"},"required":false,"description":"Search branches by name (case-insensitive contains)","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50,"description":"Maximum number of branches to return"},"required":false,"description":"Maximum number of branches to return","name":"limit","in":"query"}],"responses":{"200":{"description":"Retrieved distinct branches.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"string"}}},"required":["items"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases/authors":{"get":{"operationId":"listReleaseAuthors","description":"List distinct commit authors across releases. Used for filter dropdowns.","x-speakeasy-group":"releases","x-speakeasy-name-override":"listAuthors","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"allOf":[{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"}],"nullable":true},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Search authors by login or name (case-insensitive contains)"},"required":false,"description":"Search authors by login or name (case-insensitive contains)","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50,"description":"Maximum number of authors to return"},"required":false,"description":"Maximum number of authors to return","name":"limit","in":"query"}],"responses":{"200":{"description":"Retrieved distinct authors.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseAuthorFilterItem"}}},"required":["items"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases/{id}":{"get":{"operationId":"getRelease","description":"Retrieve a release by ID.","x-speakeasy-group":"releases","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"required":true,"description":"Unique identifier for the release.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["project","rollout","createdBy"]},"description":"Optional fields to include: project, rollout"},"required":false,"description":"Optional fields to include: project, rollout","name":"include","in":"query"}],"responses":{"200":{"description":"Retrieved release.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseListItemResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases/{id}/deployments":{"get":{"operationId":"listReleaseDeployments","description":"List the project's deployments with their rollout state relative to this release.","x-speakeasy-group":"releases","x-speakeasy-name-override":"listDeployments","parameters":[{"schema":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"required":true,"description":"Unique identifier for the release.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseRolloutState"},"description":"Filter deployments by rollout state"},"required":false,"description":"Filter deployments by rollout state","name":"state","in":"query"},{"schema":{"type":"string","description":"Filter by deployment group ID or name"},"required":false,"description":"Filter by deployment group ID or name","name":"deploymentGroup","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved release deployments.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseDeploymentsResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/release-channels":{"get":{"operationId":"listReleaseChannels","x-speakeasy-group":"releaseChannels","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"responses":{"200":{"description":"Project release channels.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseChannel"}}},"required":["items"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createReleaseChannel","x-speakeasy-group":"releaseChannels","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"$ref":"#/components/schemas/ReleaseChannelName"},"releaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Channel created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseChannel"}}}},"400":{"description":"Invalid release.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/release-channels/{name}/promote":{"post":{"operationId":"promoteRelease","x-speakeasy-group":"releases","x-speakeasy-name-override":"promote","parameters":[{"schema":{"$ref":"#/components/schemas/ReleaseChannelName"},"required":true,"name":"name","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"releaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"expectedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"}},"required":["releaseId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Release promoted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseChannel"}}}},"404":{"description":"Project, channel, or release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Channel changed concurrently.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/release-channels/{name}":{"delete":{"operationId":"deleteReleaseChannel","x-speakeasy-group":"releaseChannels","x-speakeasy-name-override":"delete","parameters":[{"schema":{"$ref":"#/components/schemas/ReleaseChannelName"},"required":true,"name":"name","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"responses":{"204":{"description":"Channel deleted."},"400":{"description":"Reserved channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project or channel not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Channel is still followed by deployments.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments":{"get":{"operationId":"listDeployments","description":"Retrieve all deployments.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"list","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","description":"Filter by deployment group ID or name"},"required":false,"description":"Filter by deployment group ID or name","name":"deploymentGroup","in":"query"},{"schema":{"type":"string","maxLength":100,"description":"Filter by exact deployment name. Must be used with deploymentGroup."},"required":false,"description":"Filter by exact deployment name. Must be used with deploymentGroup.","name":"name","in":"query"},{"schema":{"type":"string","description":"Filter by manager ID"},"required":false,"description":"Filter by manager ID","name":"managerId","in":"query"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search deployments by name, public subdomain, or deployment group name"},"required":false,"description":"Search deployments by name, public subdomain, or deployment group name","name":"search","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"description":"Filter deployments by status"},"required":false,"description":"Filter deployments by status","name":"status","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Filter deployments by effective environment"},"required":false,"description":"Filter deployments by effective environment","name":"environment","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["release","deploymentGroup","project"]},"description":"Optional fields to include: release, deploymentGroup, project"},"required":false,"description":"Optional fields to include: release, deploymentGroup, project","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved deployments.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"400":{"description":"Invalid deployment list filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createDeployment","description":"Create a new deployment. Deployment group tokens automatically use their group. Workspace/project tokens must provide deploymentGroupId.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewDeploymentRequest"}}}},"responses":{"200":{"description":"Existing deployment returned for idempotent deployment-group registration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentResponse"}}}},"201":{"description":"Deployment created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentResponse"}}}},"400":{"description":"Bad request - deployment group has reached max deployments limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Forbidden - insufficient permissions to create deployments in this context.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project or deployment group not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment with the specified ID already exists, or a deployment with the same name already exists in the deployment group.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/stats":{"get":{"operationId":"getDeploymentStats","description":"Get aggregated deployment statistics. Returns total count and breakdown by status.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"getStats","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","description":"Filter by deployment group ID or name"},"required":false,"description":"Filter by deployment group ID or name","name":"deploymentGroup","in":"query"},{"schema":{"type":"string","description":"Filter by manager ID"},"required":false,"description":"Filter by manager ID","name":"managerId","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Filter deployments by effective environment"},"required":false,"description":"Filter deployments by effective environment","name":"environment","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"description":"Filter deployments by status"},"required":false,"description":"Filter deployments by status","name":"status","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search deployments by name or deployment group name"},"required":false,"description":"Search deployments by name or deployment group name","name":"search","in":"query"}],"responses":{"200":{"description":"Deployment statistics retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentStats"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/filter-environments":{"get":{"operationId":"listDeploymentFilterEnvironments","description":"List distinct effective environments used by deployments. Used for filter dropdowns.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"listFilterEnvironments","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"responses":{"200":{"description":"Distinct environments retrieved.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."}}},"required":["items"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/filter-deployment-groups":{"get":{"operationId":"listDeploymentFilterDeploymentGroups","description":"List deployment groups with deployment counts. Used for filter dropdowns.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"listFilterDeploymentGroups","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Search deployment groups by name"},"required":false,"description":"Search deployment groups by name","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return"},"required":false,"description":"Maximum number of items to return","name":"limit","in":"query"}],"responses":{"200":{"description":"Deployment groups for filter retrieved.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string"},"deploymentCount":{"type":"number"},"runningCount":{"type":"number","description":"Number of deployments in 'running' status"},"failedCount":{"type":"number","description":"Number of deployments in a failed status"},"inProgressCount":{"type":"number","description":"Number of deployments in an in-progress status (provisioning, updating, etc.)"}},"required":["id","name","deploymentCount","runningCount","failedCount","inProgressCount"]}}},"required":["items"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}":{"get":{"operationId":"getDeployment","description":"Retrieve a deployment by ID.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["release","deploymentGroup","project"]},"description":"Optional fields to include: release, deploymentGroup, project"},"required":false,"description":"Optional fields to include: release, deploymentGroup, project","name":"include","in":"query"}],"responses":{"200":{"description":"Retrieved deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentDetailResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/info":{"get":{"operationId":"getDeploymentConnectionInfo","description":"Get deployment connection information including command endpoint and resource URLs.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"getInfo","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Deployment connection information.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentConnectionInfo"}}}},"400":{"description":"Deployment not ready (no manager assigned).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/import":{"post":{"operationId":"importDeployment","description":"Import a deployment from resolved setup infrastructure such as CloudFormation, Terraform, or Helm.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"import","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportDeploymentRequest"}}}},"responses":{"200":{"description":"Deployment import was idempotent and returned an existing deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deployment"}}}},"201":{"description":"Deployment imported and created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deployment"}}}},"409":{"description":"Deployment with the specified ID already exists, or a deployment with the same name already exists in the deployment group.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/first-party-inputs":{"put":{"operationId":"setFirstPartyDeploymentInputs","description":"Store operator-provided input values on a first-party deployment session token so CLI/local deploys apply them.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"setFirstPartyDeploymentInputs","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetFirstPartyDeploymentInputsRequest"}}}},"responses":{"200":{"description":"Input values stored on the session token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetFirstPartyDeploymentInputsResponse"}}}},"400":{"description":"A deployment-group token scope is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"The token is not a first-party deployment session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Failed to store input values.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/setup-registration-operations":{"post":{"operationId":"createSetupRegistrationOperation","description":"Start a durable setup registration operation for CloudFormation, Terraform, or Helm.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"createSetupRegistrationOperation","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSetupRegistrationOperationRequest"}}}},"responses":{"202":{"description":"Setup registration operation accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetupRegistrationOperationResponse"}}}},"400":{"description":"Invalid setup registration operation request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed before callback acceptance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/setup-registration-operations/{id}":{"get":{"operationId":"getSetupRegistrationOperation","description":"Get setup registration operation status.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"getSetupRegistrationOperation","parameters":[{"schema":{"type":"string","pattern":"setupop_[0-9a-z]{28}$","description":"Unique identifier for the setup registration operation.","example":"setupop_y41lqnfosxuwqkzmiax7"},"required":true,"description":"Unique identifier for the setup registration operation.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Setup registration operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetupRegistrationOperationResponse"}}}},"404":{"description":"Setup registration operation not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/delete":{"post":{"operationId":"deleteDeployment","description":"Delete, detach, or forget a deployment by ID.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"delete","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDeploymentRequest"}}}},"responses":{"202":{"description":"Deployment deletion request accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDeploymentResponse"}}}},"400":{"description":"Cannot delete the deployment in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment already has a conflicting delete request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/redeploy":{"post":{"operationId":"redeployDeployment","description":"Redeploy a running deployment with the same release and fresh environment variables. Sets status to update-pending.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"redeploy","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Deployment redeployment triggered successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot redeploy - deployment must be running.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/pin-release":{"post":{"operationId":"pinDeploymentRelease","description":"Pin or unpin a running or runtime-failed deployment. Running deployments start an update; failed deployments retry toward the selected release.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"pinRelease","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PinReleaseRequest"}}}},"responses":{"202":{"description":"Release pin updated successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot pin release from the deployment's current lifecycle state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment or release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/release-channel":{"post":{"operationId":"setDeploymentReleaseChannel","x-speakeasy-group":"deployments","x-speakeasy-name-override":"setReleaseChannel","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"$ref":"#/components/schemas/ReleaseChannelName"}},"required":["channel"],"additionalProperties":false}}}},"responses":{"200":{"description":"Deployment release channel updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deployment"}}}},"400":{"description":"Channel release is unavailable for the deployment platform.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment or release channel not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/retry":{"post":{"operationId":"retryDeployment","description":"Retry a failed deployment operation. Uses alien-infra's retry mechanisms to resume from exact failure point.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"retry","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Deployment retry enqueued successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Deployment is not in a failed state that can be retried.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/inputs":{"get":{"operationId":"getDeploymentInputs","description":"Get the active input definitions and current non-secret values for a deployment.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"getInputs","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Deployment inputs returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentInputsResponse"}}}},"403":{"description":"Insufficient permission to read deployment inputs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment or release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateDeploymentInputs","description":"Update runtime stack inputs, rebuild their environment-variable mappings, and request a deployment update when runtime configuration changes.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"updateInputs","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentInputsRequest"}}}},"responses":{"200":{"description":"Deployment inputs saved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentInputsResponse"}}}},"400":{"description":"Input values are invalid for the deployment release.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Insufficient permission to update deployment inputs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment, project, or release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/environment-variables":{"patch":{"operationId":"updateDeploymentEnvironmentVariables","description":"Update a deployment's environment variables. If the deployment is running and not locked, the status will be changed to update-pending to trigger a deployment.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"updateEnvironmentVariables","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentEnvironmentVariablesRequest"}}}},"responses":{"202":{"description":"Environment variables updated successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Environment variables are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Insufficient permission to update environment variables.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/token":{"post":{"operationId":"createDeploymentToken","description":"Create a deployment token (deployment-scoped API key). The deployment must exist before creating a token.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"createToken","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentTokenRequest"}}}},"responses":{"201":{"description":"Deployment token created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentTokenResponse"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers":{"post":{"operationId":"createManager","description":"Create a new manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewManagerRequest"}}}},"responses":{"201":{"description":"Manager created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateManagerResponse"}}}},"400":{"description":"Invalid private manager setup method.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"A manager for this target already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"listManagers","description":"Retrieve all managers.","x-speakeasy-group":"managers","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search managers by name"},"required":false,"description":"Search managers by name","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum number of managers to return"},"required":false,"description":"Maximum number of managers to return","name":"limit","in":"query"}],"responses":{"200":{"description":"Retrieved managers.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Manager"}}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/setup-token":{"post":{"operationId":"retryManagerSetup","description":"Revoke previous private-manager setup tokens and issue a fresh setup token/config.","x-speakeasy-group":"managers","x-speakeasy-name-override":"retrySetup","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"201":{"description":"Fresh manager setup token generated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateManagerResponse"}}}},"400":{"description":"Manager setup cannot be retried in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager or setup config not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/retry":{"post":{"operationId":"retryManager","description":"Retry private-manager setup. Returns a fresh setup action before the internal deployment exists, or requests retry for the internal deployment after it exists.","x-speakeasy-group":"managers","x-speakeasy-name-override":"retry","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Manager retry handled successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerRetryResponse"}}}},"400":{"description":"Manager cannot be retried in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager or internal deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/cancel-setup":{"post":{"operationId":"cancelManagerSetup","description":"Cancel pending private-manager setup, revoke setup/runtime tokens, and remove the undeployed manager record.","x-speakeasy-group":"managers","x-speakeasy-name-override":"cancelSetup","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Manager setup canceled successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Manager setup cannot be canceled in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}":{"get":{"operationId":"getManager","description":"Retrieve a manager by ID.","x-speakeasy-group":"managers","x-speakeasy-name-override":"get","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved manager.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Manager"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteManager","description":"Delete a manager by ID.","x-speakeasy-group":"managers","x-speakeasy-name-override":"delete","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Manager deletion enqueued successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot delete the manager in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Internal deployment already has a conflicting delete request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/domain-binding":{"get":{"operationId":"getManagerDomainBinding","description":"Get the custom domain binding for a private manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"getDomainBinding","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved manager domain binding.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerDomainBindingResponse"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"put":{"operationId":"updateManagerDomainBinding","description":"Create, update, or remove the custom domain binding for a private manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"updateDomainBinding","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateManagerDomainBinding"}}}},"responses":{"200":{"description":"Manager domain binding updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerDomainBindingResponse"}}}},"400":{"description":"Invalid domain binding request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager or domain not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/management-config":{"get":{"operationId":"getManagerManagementConfig","description":"Get the management configuration for a manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"getManagementConfig","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"required":true,"description":"Represents the target cloud platform.","name":"platform","in":"query"}],"responses":{"200":{"description":"Management config retrieved successfully.","content":{"application/json":{"schema":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]}],"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."}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/provision":{"post":{"operationId":"provisionManager","description":"Enqueue provisioning for a manager by ID.","x-speakeasy-group":"managers","x-speakeasy-name-override":"provision","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Manager provisioning enqueued successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot provision the manager in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/update":{"post":{"operationId":"updateManager","description":"Update a manager to a specific release ID or active release.","x-speakeasy-group":"managers","x-speakeasy-name-override":"update","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateManagerRequest"}}}},"responses":{"202":{"description":"Manager update enqueued successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot update the manager in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/events":{"get":{"operationId":"listManagerEvents","description":"Retrieve all events of a manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"listEvents","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved events.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Event"}}},"required":["items"]}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/token":{"post":{"operationId":"generateManagerToken","description":"Generate a short-lived JWT for direct browser → manager communication. Used for fetching command payloads and querying logs without routing sensitive data through the platform API.","x-speakeasy-group":"managers","x-speakeasy-name-override":"generateManagerToken","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateManagerTokenRequest"}}}},"responses":{"200":{"description":"Manager access token and connection info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateManagerTokenResponse"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/binding-token":{"post":{"operationId":"generateManagerBindingToken","description":"Generate a short-lived deployment-scoped token for resolving opted-in remote bindings through the currently assigned manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"generateManagerBindingToken","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateManagerBindingTokenRequest"}}}},"responses":{"200":{"description":"Remote Bindings token and assigned manager URL.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateManagerBindingTokenResponse"}}}},"403":{"description":"The caller cannot update the deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Assigned manager or deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"The assigned manager is offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/gcp-oauth-provider/resolve":{"post":{"operationId":"resolveManagerGcpOAuthProvider","description":"Resolve decrypted project-level Google Cloud OAuth provider settings for a manager-side deployment bootstrap.","x-speakeasy-group":"managers","x-speakeasy-name-override":"resolveGcpOAuthProvider","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveManagerGcpOAuthProviderRequest"}}}},"responses":{"200":{"description":"Resolved Google Cloud OAuth provider settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveManagerGcpOAuthProviderResponse"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Manager cannot resolve this deployment group's project settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager, deployment group, or project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/heartbeat":{"post":{"operationId":"reportManagerHeartbeat","description":"Report Manager health status and metrics.","x-speakeasy-group":"managers","x-speakeasy-name-override":"reportHeartbeat","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerHeartbeatRequest"}}}},"responses":{"200":{"description":"Heartbeat acknowledged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerHeartbeatResponse"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/deployment":{"get":{"operationId":"getManagerDeployment","description":"Get deployment details for a private manager (internal deployment platform, status, resources).","x-speakeasy-group":"managers","x-speakeasy-name-override":"getDeployment","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Manager deployment details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerDeployment"}}}},"404":{"description":"Manager not found or has no internal deployment (alien-hosted managers don't have deployment info).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/operator-manifests/prepare":{"post":{"operationId":"prepareOperatorManifestPackage","tags":["operator-manifests"],"summary":"Prepare the white-labeled Operator image for an Operate install","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrepareOperatorManifestPackageRequest"}}}},"responses":{"200":{"description":"Operator image package created or reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrepareOperatorManifestPackageResponse"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/operator-manifests/render":{"post":{"operationId":"renderOperatorManifest","tags":["operator-manifests"],"summary":"Render a Kubernetes Operator manifest","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenderOperatorManifestRequest"}}}},"responses":{"200":{"description":"Operator manifest rendered successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenderOperatorManifestResponse"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Operator image package is not ready.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Invalid platform or manager configuration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/api-keys":{"get":{"operationId":"listAPIKeys","description":"Retrieve all API keys for the current workspace.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved API keys.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/APIKey"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createAPIKey","description":"Create a new API key.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAPIKeyRequest"}}}},"responses":{"201":{"description":"API key created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAPIKeyResponse"}}}},"403":{"description":"Insufficient permissions to create API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/api-keys/{id}":{"get":{"operationId":"getAPIKey","description":"Retrieve a specific API key.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"required":true,"description":"Unique identifier for the api key.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKey"}}}},"404":{"description":"API key not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateAPIKey","description":"Update an API key (enable/disable, change description).","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"update","parameters":[{"schema":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"required":true,"description":"Unique identifier for the api key.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAPIKeyRequest"}}}},"responses":{"200":{"description":"API key updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKey"}}}},"404":{"description":"API key not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"revokeAPIKey","description":"Revoke (soft delete) an API key.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"revoke","parameters":[{"schema":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"required":true,"description":"Unique identifier for the api key.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"API key revoked successfully."},"404":{"description":"API key not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/api-keys/batch-delete":{"post":{"operationId":"deleteAPIKeys","description":"Permanently delete multiple API keys.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"deleteMultiple","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteAPIKeysRequest"}}}},"responses":{"200":{"description":"API keys deleted successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"deletedCount":{"type":"number"}},"required":["deletedCount"]}}}},"403":{"description":"Insufficient permissions to delete API keys.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains":{"get":{"operationId":"listDomains","description":"List system domains and workspace domains.","x-speakeasy-group":"domains","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved domains.","content":{"application/json":{"schema":{"type":"object","properties":{"domains":{"type":"array","items":{"$ref":"#/components/schemas/DomainWithUsage"}}},"required":["domains"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createDomain","description":"Create a workspace domain and optional initial endpoints.","x-speakeasy-group":"domains","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"maxLength":253},"setup":{"type":"object","properties":{"deploymentPortal":{"type":"boolean"},"packages":{"type":"boolean"},"deploymentUrlProjectId":{"type":"string","nullable":true,"pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"managerIds":{"type":"array","items":{"type":"string"}}}}},"required":["domain"]}}}},"responses":{"200":{"description":"Returned an existing workspace domain claim.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"201":{"description":"Created domain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"400":{"description":"Domain is reserved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Insufficient permissions or plan limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Domain cleanup is still in progress.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains/{id}/endpoints":{"post":{"operationId":"createDomainEndpoint","description":"Create an endpoint under a workspace domain.","x-speakeasy-group":"domains","x-speakeasy-name-override":"createEndpoint","parameters":[{"schema":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"required":true,"description":"Unique identifier for the domain.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["deployment_portal","workspace_packages","manager_api","deployment_url_base"]},"owner":{"type":"object","properties":{"type":{"type":"string","enum":["workspace","project","manager"]},"id":{"type":"string"}},"required":["type","id"]}},"required":["kind"]}}}},"responses":{"201":{"description":"Created endpoint.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"400":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Endpoint cleanup is still in progress.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains/{id}":{"get":{"operationId":"getDomain","description":"Get domain by ID.","x-speakeasy-group":"domains","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"required":true,"description":"Unique identifier for the domain.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved domain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteDomain","description":"Delete a workspace domain.","x-speakeasy-group":"domains","x-speakeasy-name-override":"delete","parameters":[{"schema":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"required":true,"description":"Unique identifier for the domain.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Domain deletion requested.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Domain is in use.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains/{id}/refresh":{"post":{"operationId":"refreshDomain","description":"Refresh workspace domain verification.","x-speakeasy-group":"domains","x-speakeasy-name-override":"refresh","parameters":[{"schema":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"required":true,"description":"Unique identifier for the domain.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Domain verification refresh requested.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/events":{"get":{"operationId":"listEvents","description":"Retrieve all events.","x-speakeasy-group":"events","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","description":"Filter events to a single deployment."},"required":false,"description":"Filter events to a single deployment.","name":"deploymentId","in":"query"},{"schema":{"type":"string","description":"Filter events to a single release."},"required":false,"description":"Filter events to a single release.","name":"releaseId","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["releaseCreatedAt"]},"description":"Optional fields to include: releaseCreatedAt"},"required":false,"description":"Optional fields to include: releaseCreatedAt","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved events.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/EventListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/events/{id}":{"get":{"operationId":"getEvent","description":"Retrieve an event by ID.","x-speakeasy-group":"events","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"event_[0-9a-zA-Z]{28}$","description":"Unique identifier for the event.","example":"event_MtSA24M3pWuAkQYxgZxuRI"},"required":true,"description":"Unique identifier for the event.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved event.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Event"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/join-tokens":{"get":{"operationId":"listMachinesJoinTokens","x-speakeasy-group":"machines","x-speakeasy-name-override":"listJoinTokens","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Join tokens for a Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMachinesJoinTokensResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createMachinesJoinToken","x-speakeasy-group":"machines","x-speakeasy-name-override":"createJoinToken","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Newly minted Machines join token. Existing tokens keep working; the token value is returned only once.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMachinesJoinTokenResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/join-tokens/rotate":{"post":{"operationId":"rotateMachinesJoinToken","x-speakeasy-group":"machines","x-speakeasy-name-override":"rotateJoinToken","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Rotated Machines join token. Revokes all existing tokens, then mints a new one; the token value is returned only once.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateMachinesJoinTokenResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/join-tokens/{tokenId}":{"delete":{"operationId":"revokeMachinesJoinToken","x-speakeasy-group":"machines","x-speakeasy-name-override":"revokeJoinToken","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"tokenId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Machines join token revocation result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeMachinesJoinTokenResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/inventory":{"get":{"operationId":"listMachinesInventory","x-speakeasy-group":"machines","x-speakeasy-name-override":"listInventory","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Machine inventory for a Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMachinesInventoryResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/machines/{machineId}/drain":{"delete":{"operationId":"cancelMachinesMachineDrain","x-speakeasy-group":"machines","x-speakeasy-name-override":"cancelMachineDrain","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"machineId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Machines drain cancellation result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelMachinesMachineDrainResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"drainMachinesMachine","x-speakeasy-group":"machines","x-speakeasy-name-override":"drainMachine","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"machineId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DrainMachinesMachineRequest"}}}},"responses":{"200":{"description":"Machines drain request result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DrainMachinesMachineResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/machines/{machineId}":{"delete":{"operationId":"removeMachinesMachine","x-speakeasy-group":"machines","x-speakeasy-name-override":"removeMachine","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"machineId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Machines remove request result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveMachinesMachineResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands":{"get":{"operationId":"listCommands","description":"Retrieve commands. Use for dashboard analytics and command history.","x-speakeasy-group":"commands","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Filter by deployment ID","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":false,"description":"Filter by deployment ID","name":"deploymentId","in":"query"},{"schema":{"type":"string","enum":["PENDING_UPLOAD","PENDING","DISPATCHED","SUCCEEDED","FAILED","EXPIRED"],"description":"Filter by command state"},"required":false,"description":"Filter by command state","name":"state","in":"query"},{"schema":{"type":"string","maxLength":255,"description":"Filter by command name"},"required":false,"description":"Filter by command name","name":"name","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search commands by name"},"required":false,"description":"Search commands by name","name":"search","in":"query"},{"schema":{"type":"string","nullable":true,"format":"date-time","description":"Filter commands created after this date (ISO 8601)"},"required":false,"description":"Filter commands created after this date (ISO 8601)","name":"createdAfter","in":"query"},{"schema":{"type":"string","nullable":true,"format":"date-time","description":"Filter commands created before this date (ISO 8601)"},"required":false,"description":"Filter commands created before this date (ISO 8601)","name":"createdBefore","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["deployment","project"]},"description":"Optional fields to include: deployment, project"},"required":false,"description":"Optional fields to include: deployment, project","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved commands.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CommandListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createCommand","description":"Create command metadata. Called by manager when processing commands. Returns project info for routing decisions.","x-speakeasy-group":"commands","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCommandRequest"}}}},"responses":{"201":{"description":"Command created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCommandResponse"}}}},"400":{"description":"Deployment is not ready or has no assigned manager.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Multiple command-capable targets; an explicit target is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"Deployment has no command-capable targets.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"The deployment manager is unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/names":{"get":{"operationId":"listCommandNames","description":"List distinct command names. Use for filter dropdowns in the dashboard.","x-speakeasy-group":"commands","x-speakeasy-name-override":"listNames","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","maxLength":255,"description":"Search command names (prefix match)"},"required":false,"description":"Search command names (prefix match)","name":"search","in":"query"}],"responses":{"200":{"description":"Distinct command names.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCommandNamesResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/deployments":{"get":{"operationId":"listCommandDeployments","description":"List distinct deployments that have commands, including deployment group info. Use for filter dropdowns in the dashboard.","x-speakeasy-group":"commands","x-speakeasy-name-override":"listDeployments","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","maxLength":255,"description":"Search deployment or deployment group names"},"required":false,"description":"Search deployment or deployment group names","name":"search","in":"query"}],"responses":{"200":{"description":"Distinct deployments that have commands.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCommandDeploymentsResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/target":{"get":{"operationId":"resolveCommandTarget","description":"Resolve which resource a command for this deployment would be addressed to, and how it would be delivered. Fails when the deployment has no command-capable resources, or more than one and no explicit target was named.","x-speakeasy-group":"commands","x-speakeasy-name-override":"resolveTarget","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Deployment to resolve the target for","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Deployment to resolve the target for","name":"deploymentId","in":"query"},{"schema":{"type":"string","maxLength":255,"description":"Explicit resource id to resolve; must be a command-capable resource"},"required":false,"description":"Explicit resource id to resolve; must be a command-capable resource","name":"target","in":"query"}],"responses":{"200":{"description":"Resolved command target.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolvedCommandTarget"}}}},"404":{"description":"Deployment or target not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Multiple command-capable targets; an explicit target is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"Deployment has no command-capable targets.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/{id}":{"patch":{"operationId":"updateCommand","description":"Update command state. Called by manager when command is dispatched or completes.","x-speakeasy-group":"commands","x-speakeasy-name-override":"update","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCommandRequest"}}}},"responses":{"200":{"description":"Command updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Command"}}}},"404":{"description":"Command not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"getCommand","description":"Retrieve a command by ID.","x-speakeasy-group":"commands","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved command.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Command"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/{id}/dispatch":{"post":{"operationId":"dispatchCommand","description":"Atomically mark a command DISPATCHED unless it is already terminal. Returns whether the transition was applied.","x-speakeasy-group":"commands","x-speakeasy-name-override":"dispatch","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DispatchCommandRequest"}}}},"responses":{"200":{"description":"Dispatch attempt result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DispatchCommandResponse"}}}},"404":{"description":"Command not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/{id}/complete":{"post":{"operationId":"completeCommand","description":"Atomically transition a command to a terminal state (SUCCEEDED, FAILED, or EXPIRED) unless it is already terminal. Returns whether the transition was applied.","x-speakeasy-group":"commands","x-speakeasy-name-override":"complete","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteCommandRequest"}}}},"responses":{"200":{"description":"Completion attempt result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteCommandResponse"}}}},"404":{"description":"Command not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/{id}/increment-attempt":{"post":{"operationId":"incrementCommandAttempt","description":"Atomically increment the command's attempt counter and return the new value.","x-speakeasy-group":"commands","x-speakeasy-name-override":"incrementAttempt","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Attempt incremented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncrementCommandAttemptResponse"}}}},"404":{"description":"Command not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/debug-sessions":{"get":{"operationId":"listDebugSessions","description":"Retrieve debug sessions for dashboard audit. Filters: project, deployment, state, mode.","x-speakeasy-group":"debugSessions","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Filter by deployment ID","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":false,"description":"Filter by deployment ID","name":"deploymentId","in":"query"},{"schema":{"allOf":[{"$ref":"#/components/schemas/DebugSessionState"},{"description":"Filter by session state"}]},"required":false,"description":"Filter by session state","name":"state","in":"query"},{"schema":{"type":"string","enum":["push","pull"],"description":"Filter by deployment model (push/pull). Joins against the parent deployment."},"required":false,"description":"Filter by deployment model (push/pull). Joins against the parent deployment.","name":"mode","in":"query"},{"schema":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Filter by cloud provider. Joins against the parent deployment."},"required":false,"description":"Filter by cloud provider. Joins against the parent deployment.","name":"provider","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Paginated debug sessions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugSessionListResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createDebugSession","description":"Create a debug-session audit row. Called by the manager when a pull or push debug tunnel is opened. Workspace + project derived from deployment.","x-speakeasy-group":"debugSessions","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDebugSessionRequest"}}}},"responses":{"201":{"description":"Debug session created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugSession"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/debug-sessions/{id}":{"patch":{"operationId":"updateDebugSession","description":"Update debug-session state. Called by manager on tunnel attach, close, or deadline expiry.","x-speakeasy-group":"debugSessions","x-speakeasy-name-override":"update","parameters":[{"schema":{"type":"string","pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Unique identifier for the debug session.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"required":true,"description":"Unique identifier for the debug session.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDebugSessionRequest"}}}},"responses":{"200":{"description":"Debug session updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugSession"}}}},"404":{"description":"Debug session not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"getDebugSession","description":"Retrieve a debug session by ID.","x-speakeasy-group":"debugSessions","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Unique identifier for the debug session.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"required":true,"description":"Unique identifier for the debug session.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved debug session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugSession"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-info":{"get":{"operationId":"getDeploymentInfo","description":"Get deployment information for the deployment portal. Accepts both deployment-scoped and deployment-group-scoped API keys. Returns project information, package status/outputs, and either deployment or deployment group details depending on the token type. Poll this endpoint to check if packages are ready.","x-speakeasy-group":"deployment","x-speakeasy-name-override":"getInfo","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"required":false,"description":"Represents the target cloud platform.","name":"platform","in":"query"}],"responses":{"200":{"description":"Deployment information retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentInfo"}}}},"401":{"description":"Unauthorized — requires a deployment-scoped or deployment-group-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment, deployment group, or project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-info/compute-plan":{"post":{"operationId":"planDeploymentCompute","description":"Plan deployment compute for the active release before stack preparation. The response contains recommended machine and scale choices for cloud compute pools.","x-speakeasy-group":"deployment","x-speakeasy-name-override":"planCompute","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure"]},"setupMethod":{"$ref":"#/components/schemas/DeploymentSetupMethod"},"region":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"type":"object","properties":{"pools":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["fixed"]},"machines":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","machines"]},{"type":"object","properties":{"mode":{"type":"string","enum":["autoscale"]},"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","min","max"]}]},"default":{}}}},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}}}},"required":["platform","setupMethod","stackSettings"]}}}},"responses":{"200":{"description":"Compute plan returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentComputePlan"}}}},"401":{"description":"Unauthorized — requires a deployment-group scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment group, project, release, or manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-info/prepare-stack":{"post":{"operationId":"prepareDeploymentStack","description":"Prepare the active release stack for a deployment portal setup session. The response contains the generated stack shape plus setup compatibility metadata.","x-speakeasy-group":"deployment","x-speakeasy-name-override":"prepareStack","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure"]},"setupMethod":{"$ref":"#/components/schemas/DeploymentSetupMethod"},"region":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"type":"object","properties":{"pools":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["fixed"]},"machines":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","machines"]},{"type":"object","properties":{"mode":{"type":"string","enum":["autoscale"]},"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","min","max"]}]},"default":{}}}},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}}}},"required":["platform","setupMethod","stackSettings"]}}}},"responses":{"200":{"description":"Prepared stack returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreparedDeploymentStack"}}}},"401":{"description":"Unauthorized — requires a deployment-group scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment group, project, release, or manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/slack/install-url":{"post":{"operationId":"slackIntegrationInstallUrl","description":"Generate the Slack OAuth consent URL for this workspace.","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"installUrl","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"OAuth URL the dashboard should redirect the user to.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackInstallUrlResponse"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/slack/status":{"get":{"operationId":"slackIntegrationStatus","description":"Return the Slack install for this workspace (if any).","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"status","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackIntegrationStatus"}}}}}}},"/v1/integrations/slack/channels":{"get":{"operationId":"slackIntegrationChannels","description":"List public Slack channels for this workspace's install. Used by the dashboard's notification-channel picker.","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"listChannels","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Public channels.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackChannelsResponse"}}}},"400":{"description":"Workspace not connected to Slack.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/slack/notification-channel":{"put":{"operationId":"slackIntegrationSetNotificationChannel","description":"Configure which Slack channel receives ai-agent monitor reports.","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"setNotificationChannel","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackNotificationChannelRequest"}}}},"responses":{"200":{"description":"Channel saved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackNotificationChannelResponse"}}}},"400":{"description":"Not connected, or join failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/slack/installation":{"delete":{"operationId":"slackIntegrationUninstall","description":"Uninstall the Slack integration for this workspace. Revokes the bot token at Slack and deletes the row.","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"uninstall","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Uninstalled."}}}},"/v1/agent-sessions":{"get":{"operationId":"listAgentSessions","description":"List ai-agent monitor sessions for this workspace. Newest first, capped at 50.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Sessions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionListResponse"}}}}}}},"/v1/agent-sessions/{id}":{"get":{"operationId":"getAgentSession","description":"Retrieve one ai-agent monitor session by id.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionDetail"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/agent-sessions/{id}/events":{"get":{"operationId":"listAgentSessionEvents","description":"Incrementally read a session's event log (steps, tool calls, report deltas, approvals, status transitions). Pass the previous response's `latestSeq` as `after` to fetch only new events.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"events","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"default":0},"required":false,"name":"after","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":500,"default":200},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Events after the cursor, oldest first.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionEventsResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/agent-sessions/{id}/approve":{"post":{"operationId":"approveAgentSession","description":"Approve a halted ai-agent monitor session. Proxies to the ai-agent service, minting a fresh CLI session for the caller so the ai-agent's own auth applies.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"approve","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Already resumed / no-op.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionApproveResponse"}}}},"202":{"description":"Approved; resume enqueued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionApproveResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"AI agent service is not configured.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/agent-sessions/{id}/stop":{"post":{"operationId":"stopAgentSession","description":"Stop (cancel) a running, queued, or halted ai-agent monitor session. Proxies to the ai-agent service, minting a fresh CLI session for the caller so the ai-agent's own auth applies. Idempotent — stopping an already-terminal session is a 200 no-op.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"stop","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Already terminal / no-op.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionStopResponse"}}}},"202":{"description":"Cancel accepted; session stopped.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionStopResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"AI agent service is not configured.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/list":{"post":{"operationId":"syncList","description":"List full deployment records for manager operational loops. This endpoint is intentionally separate from the public deployments list, which returns lightweight UI rows.","x-speakeasy-group":"sync","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncListRequest"}}}},"responses":{"200":{"description":"Full deployment records returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncListResponse"}}}},"400":{"description":"Bad request - invalid manager or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/context":{"post":{"operationId":"syncContext","description":"Get computed deployment state and configuration for a manager-side operation without acquiring the deployment reconciliation lock.","x-speakeasy-group":"sync","x-speakeasy-name-override":"context","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncContextRequest"}}}},"responses":{"200":{"description":"Computed deployment context returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncAcquireResponseDeployment"}}}},"404":{"description":"Deployment not found or not assigned to this manager.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Failed to build deployment context.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/acquire":{"post":{"operationId":"syncAcquire","description":"Acquire a batch of deployments for processing. Used by Manager to atomically lock deployments matching filters. Each deployment in the batch must be released after processing.","x-speakeasy-group":"sync","x-speakeasy-name-override":"acquire","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncAcquireRequest"}}}},"responses":{"200":{"description":"Deployments acquired successfully (empty arrays if none available). Failures indicate deployments that were locked but failed during context building - their locks have been released.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncAcquireResponse"}}}},"400":{"description":"Bad request - invalid manager or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/reconcile":{"post":{"operationId":"syncReconcile","description":"Reconcile deployment state. Push model requests that include a session verify lock ownership. Pull model state reports are accepted as authz-gated agent progress even when they carry an agent-sync session. Accepts full DeploymentState after step() execution.","x-speakeasy-group":"sync","x-speakeasy-name-override":"reconcile","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncReconcileRequest"}}}},"responses":{"200":{"description":"State reconciled successfully. If target is present, continue deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncReconcileResponse"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment locked (pull) or session mismatch (push).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/renew":{"post":{"operationId":"syncRenew","x-speakeasy-group":"sync","x-speakeasy-name-override":"renew","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncRenewRequest"}}}},"responses":{"200":{"description":"Renewal processed. Inspect `leases` for per-deployment outcomes; a lost lease is reported there rather than failing the whole batch.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"True when every requested deployment was renewed."},"leases":{"type":"array","items":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"renewed":{"type":"boolean","description":"False when this session no longer holds a live lease."},"leaseExpiresAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["deploymentId","renewed","leaseExpiresAt"]},"description":"Per-deployment renewal outcome."}},"required":["success","leases"]}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"The session no longer owns the deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/release":{"post":{"operationId":"syncRelease","description":"Release a deployment lock. Must be called after processing an acquired deployment, even if processing failed. This is critical to avoid deadlocks.","x-speakeasy-group":"sync","x-speakeasy-name-override":"release","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncReleaseRequest"}}}},"responses":{"200":{"description":"Lock released successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resources":{"get":{"operationId":"listInventory","x-speakeasy-group":"resources","x-speakeasy-name-override":"listInventory","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string"},"required":false,"name":"deploymentGroupId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"deploymentId","in":"query"}],"responses":{"200":{"description":"Unified managed and observed resource inventory rows.","content":{"application/json":{"schema":{"type":"object","properties":{"resources":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"resourceType":{"type":"string"},"resourceId":{"type":"string"},"name":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"deploymentCount":{"type":"integer"},"attentionCount":{"type":"integer"},"lastObservedAt":{"type":"string","format":"date-time"},"source":{"type":"string","enum":["managed"]},"deploymentId":{"type":"string"},"deploymentName":{"type":"string"}},"required":["resourceType","resourceId","name","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","deploymentCount","attentionCount","lastObservedAt","source","deploymentId","deploymentName"]},{"type":"object","properties":{"source":{"type":"string","enum":["observed"]},"deploymentId":{"type":"string"},"deploymentName":{"type":"string"},"deploymentGroupId":{"type":"string","nullable":true},"deploymentGroupName":{"type":"string","nullable":true},"resourceType":{"type":"string"},"resourceId":{"type":"string"},"name":{"type":"string"},"rawKind":{"type":"string"},"alienResourceId":{"type":"string","nullable":true},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"deploymentCount":{"type":"integer"},"attentionCount":{"type":"integer"},"lastObservedAt":{"type":"string","format":"date-time"}},"required":["source","deploymentId","deploymentName","deploymentGroupId","deploymentGroupName","resourceType","resourceId","name","rawKind","alienResourceId","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","deploymentCount","attentionCount","lastObservedAt"]}]}}},"required":["resources"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resources/{area}":{"get":{"operationId":"listResourceOverview","x-speakeasy-group":"resources","x-speakeasy-name-override":"listOverview","parameters":[{"schema":{"type":"string","enum":["container","worker","daemon"]},"required":true,"name":"area","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string"},"required":false,"name":"deploymentGroupId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"deploymentId","in":"query"}],"responses":{"200":{"description":"Compute resource overview rows from latest heartbeats.","content":{"application/json":{"schema":{"type":"object","properties":{"resources":{"type":"array","items":{"type":"object","properties":{"resourceType":{"type":"string"},"resourceId":{"type":"string"},"name":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"deploymentCount":{"type":"integer"},"attentionCount":{"type":"integer"},"lastObservedAt":{"type":"string","format":"date-time"}},"required":["resourceType","resourceId","name","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","deploymentCount","attentionCount","lastObservedAt"]}}},"required":["resources"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resources/{area}/{resourceId}/deployments":{"get":{"operationId":"listResourceDeployments","x-speakeasy-group":"resources","x-speakeasy-name-override":"listDeployments","parameters":[{"schema":{"type":"string","enum":["container","worker","daemon"]},"required":true,"name":"area","in":"path"},{"schema":{"type":"string"},"required":true,"name":"resourceId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string"},"required":false,"name":"deploymentGroupId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"deploymentId","in":"query"}],"responses":{"200":{"description":"Deployments where the resource is installed.","content":{"application/json":{"schema":{"type":"object","properties":{"resourceType":{"type":"string"},"resourceId":{"type":"string"},"deployments":{"type":"array","items":{"type":"object","properties":{"deploymentId":{"type":"string"},"deploymentName":{"type":"string"},"deploymentGroupId":{"type":"string","nullable":true},"deploymentGroupName":{"type":"string","nullable":true},"resourceType":{"type":"string"},"resourceId":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"observedAt":{"type":"string","format":"date-time"}},"required":["deploymentId","deploymentName","deploymentGroupId","deploymentGroupName","resourceType","resourceId","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","observedAt"]}}},"required":["resourceType","resourceId","deployments"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resources/{area}/deployments/{deploymentId}/{resourceId}":{"get":{"operationId":"getResourceDeploymentDetail","x-speakeasy-group":"resources","x-speakeasy-name-override":"getDeploymentDetail","parameters":[{"schema":{"type":"string","enum":["container","worker","daemon"]},"required":true,"name":"area","in":"path"},{"schema":{"type":"string"},"required":true,"name":"deploymentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"resourceId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"responses":{"200":{"description":"Latest heartbeat detail for one compute resource deployment.","content":{"application/json":{"schema":{"type":"object","properties":{"deployment":{"type":"object","properties":{"deploymentId":{"type":"string"},"deploymentName":{"type":"string"},"deploymentGroupId":{"type":"string","nullable":true},"deploymentGroupName":{"type":"string","nullable":true},"resourceType":{"type":"string"},"resourceId":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"observedAt":{"type":"string","format":"date-time"},"desiredImage":{"type":"string","nullable":true}},"required":["deploymentId","deploymentName","deploymentGroupId","deploymentGroupName","resourceType","resourceId","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","observedAt","desiredImage"]},"heartbeat":{"oneOf":[{"type":"object","properties":{"status":{"type":"string","enum":["available"]},"deploymentId":{"type":"string"},"resourceId":{"type":"string"},"resourceType":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"staleAt":{"type":"string","format":"date-time"},"platformStale":{"type":"boolean"},"heartbeat":{"type":"object","properties":{"backend":{"type":"string","enum":["aws","gcp","azure","kubernetes","local","managed","external","test"]},"controllerPlatform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"data":{"oneOf":[{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"blockPublicAcls":{"type":"boolean","nullable":true},"blockPublicPolicy":{"type":"boolean","nullable":true},"bucketAclPresent":{"type":"boolean","nullable":true},"bucketLocation":{"type":"string","nullable":true},"bucketPolicyPresent":{"type":"boolean","nullable":true},"encryptionConfigPresent":{"type":"boolean"},"encryptionEnabled":{"type":"boolean","nullable":true},"ignorePublicAcls":{"type":"boolean","nullable":true},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"publicAccessBlockPresent":{"type":"boolean"},"region":{"type":"string","nullable":true},"restrictPublicBuckets":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"versioningEnabled":{"type":"boolean","nullable":true},"versioningStatus":{"type":"string","nullable":true}},"required":["encryptionConfigPresent","lifecyclePresent","name","publicAccessBlockPresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsS3"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"bucketId":{"type":"string","nullable":true},"defaultKmsKeyName":{"type":"string","nullable":true},"encryptionConfigPresent":{"type":"boolean"},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":"integer","nullable":true,"minimum":0},"location":{"type":"string","nullable":true},"locationType":{"type":"string","nullable":true},"name":{"type":"string"},"publicAccessPrevention":{"type":"string","nullable":true},"retentionPeriod":{"type":"string","nullable":true},"retentionPolicyEffectiveTime":{"type":"string","nullable":true},"retentionPolicyIsLocked":{"type":"boolean","nullable":true},"softDeleteEffectiveTime":{"type":"string","nullable":true},"softDeleteRetentionDurationSeconds":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"storageClass":{"type":"string","nullable":true},"uniformBucketLevelAccessEnabled":{"type":"boolean","nullable":true},"uniformBucketLevelAccessLockedTime":{"type":"string","nullable":true},"versioningEnabled":{"type":"boolean","nullable":true}},"required":["encryptionConfigPresent","lifecyclePresent","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudStorage"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessTier":{"type":"string","nullable":true},"accountKind":{"type":"string","nullable":true},"allowBlobPublicAccess":{"type":"boolean","nullable":true},"blobDeleteRetentionDays":{"type":"integer","nullable":true,"minimum":0},"blobDeleteRetentionEnabled":{"type":"boolean","nullable":true},"blobEncryptionEnabled":{"type":"boolean","nullable":true},"blobVersioningEnabled":{"type":"boolean","nullable":true},"changeFeedEnabled":{"type":"boolean","nullable":true},"changeFeedRetentionDays":{"type":"integer","nullable":true,"minimum":0},"containerDeleteRetentionDays":{"type":"integer","nullable":true,"minimum":0},"containerDeleteRetentionEnabled":{"type":"boolean","nullable":true},"containerPublicAccess":{"type":"string","nullable":true},"encryptionKeySource":{"type":"string","nullable":true},"fileEncryptionEnabled":{"type":"boolean","nullable":true},"location":{"type":"string","nullable":true},"name":{"type":"string"},"primaryLocation":{"type":"string","nullable":true},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"queueEncryptionEnabled":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"secondaryLocation":{"type":"string","nullable":true},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"statusOfPrimary":{"type":"string","nullable":true},"statusOfSecondary":{"type":"string","nullable":true},"storageAccountName":{"type":"string","nullable":true},"tableEncryptionEnabled":{"type":"boolean","nullable":true}},"required":["name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureBlob"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"isDirectory":{"type":"boolean","nullable":true},"modifiedAt":{"type":"string","nullable":true,"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["path","pathExists","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["storage"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"codeSha256":{"type":"string","nullable":true},"functionName":{"type":"string"},"functionUrlAuthType":{"type":"string","nullable":true},"functionUrlCorsPresent":{"type":"boolean"},"lastModified":{"type":"string","nullable":true},"lastUpdateStatus":{"type":"string","nullable":true},"lastUpdateStatusReason":{"type":"string","nullable":true},"lastUpdateStatusReasonCode":{"type":"string","nullable":true},"layerCount":{"type":"integer","minimum":0},"memorySizeMb":{"type":"integer","nullable":true},"packageType":{"type":"string","nullable":true},"revisionId":{"type":"string","nullable":true},"runtime":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"stateReason":{"type":"string","nullable":true},"stateReasonCode":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"timeoutSeconds":{"type":"integer","nullable":true},"triggerCount":{"type":"integer","minimum":0},"version":{"type":"string","nullable":true}},"required":["functionName","functionUrlCorsPresent","layerCount","status","triggerCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsLambda"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"containerImage":{"type":"string","nullable":true},"cpuLimit":{"type":"string","nullable":true},"generation":{"type":"integer","nullable":true},"latestCreatedRevision":{"type":"string","nullable":true},"latestReadyRevision":{"type":"string","nullable":true},"maxInstanceCount":{"type":"integer","nullable":true},"memoryLimit":{"type":"string","nullable":true},"minInstanceCount":{"type":"integer","nullable":true},"observedGeneration":{"type":"integer","nullable":true},"region":{"type":"string","nullable":true},"service":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"trafficCount":{"type":"integer","minimum":0},"uri":{"type":"string","nullable":true},"urls":{"type":"array","items":{"type":"string"}}},"required":["service","status","trafficCount","urls"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudRun"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"appName":{"type":"string"},"cpu":{"type":"number","nullable":true},"environmentName":{"type":"string","nullable":true},"ingressFqdn":{"type":"string","nullable":true},"maxReplicas":{"type":"integer","nullable":true},"memory":{"type":"string","nullable":true},"minReplicas":{"type":"integer","nullable":true},"provisioningState":{"type":"string","nullable":true},"revision":{"type":"string","nullable":true},"runningStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["appName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerApps"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"triggerCount":{"type":"integer","minimum":0},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"]}},"required":["events","name","namespace","pods","replicas","status","triggerCount","workloadKind"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"imagePathPresent":{"type":"boolean"},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pid":{"type":"integer","nullable":true,"minimum":0},"process":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"readinessProbeOk":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"triggerCount":{"type":"integer","minimum":0}},"required":["commandSupported","events","imagePathPresent","status","triggerCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["worker"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"attentionCount":{"type":"integer","minimum":0},"containerId":{"type":"string"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"image":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"observedImage":{"type":"string","nullable":true},"replicaUnits":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"schedulingMode":{"type":"string","enum":["replicated","stateful","daemon"]},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["attentionCount","containerId","events","replicaUnits","replicas","schedulingMode","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["horizonPlatform"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"]}},"required":["events","name","namespace","pods","replicas","status","workloadKind"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"bindMountCount":{"type":"integer","minimum":0},"containerId":{"type":"string","nullable":true},"containerUnit":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"image":{"type":"string","nullable":true},"localUrl":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string","nullable":true},"portCount":{"type":"integer","minimum":0},"restartCount":{"type":"integer","nullable":true,"minimum":0},"runtimeReachable":{"type":"boolean"},"runtimeStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["bindMountCount","events","portCount","runtimeReachable","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["container"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aws"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcp"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azure"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["machines"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]}},"required":["commandSupported","events","name","namespace","pods","replicas","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"daemonInstance":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"daemonName":{"type":"string"},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"exitReason":{"type":"string","nullable":true},"imagePathPresent":{"type":"boolean"},"pid":{"type":"integer","nullable":true,"minimum":0},"restartCount":{"type":"integer","nullable":true,"minimum":0},"runtimeId":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["commandSupported","events","imagePathPresent","runtimeId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["daemon"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aws"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcp"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azure"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"machines":{"type":"array","items":{"type":"object","properties":{"capacityGroup":{"type":"string"},"cpuCores":{"type":"number","nullable":true},"drainBlockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainForce":{"type":"boolean"},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"horizondVersion":{"type":"string","nullable":true},"lastHeartbeat":{"type":"string"},"machineId":{"type":"string"},"memoryBytes":{"type":"integer","nullable":true},"overlayIp":{"type":"string","nullable":true},"publicIp":{"type":"string","nullable":true},"replicaCount":{"type":"integer"},"status":{"type":"string"},"zone":{"type":"string"}},"required":["capacityGroup","drainForce","lastHeartbeat","machineId","replicaCount","status","zone"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","machines","name","nodes","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["machines"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"dockerApiVersion":{"type":"string","nullable":true},"dockerArch":{"type":"string","nullable":true},"dockerAvailable":{"type":"boolean"},"dockerOs":{"type":"string","nullable":true},"dockerVersion":{"type":"string","nullable":true},"hostIdentifier":{"type":"string","nullable":true},"name":{"type":"string"},"networkAvailable":{"type":"boolean"},"networkName":{"type":"string","nullable":true},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"runningContainers":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"trackedContainers":{"type":"integer","nullable":true,"minimum":0}},"required":["dockerAvailable","name","networkAvailable","nodes","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["compute-cluster"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string","nullable":true},"nodeCounts":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"nodeStatuses":{"type":"array","items":{"type":"object","properties":{"allocatable":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pods":{"type":"integer","nullable":true,"minimum":0}}},"capacity":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pods":{"type":"integer","nullable":true,"minimum":0}}},"conditions":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"containerRuntimeVersion":{"type":"string","nullable":true},"kubeletVersion":{"type":"string","nullable":true},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"name":{"type":"string"},"ready":{"type":"boolean"},"roles":{"type":"array","items":{"type":"string"}},"uid":{"type":"string","nullable":true},"usage":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}}},{"nullable":true}]}},"required":["allocatable","capacity","labels","name","ready","roles"]}},"podCounts":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string","nullable":true}},"required":["events","name","nodeCounts","podCounts","status"]},"resourceType":{"type":"string","enum":["kubernetes-cluster"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"approximateCounts":{"type":"boolean"},"approximateDelayedMessages":{"type":"integer","nullable":true,"minimum":0},"approximateInFlightMessages":{"type":"integer","nullable":true,"minimum":0},"approximateVisibleMessages":{"type":"integer","nullable":true,"minimum":0},"contentBasedDeduplication":{"type":"boolean","nullable":true},"deduplicationScope":{"type":"string","nullable":true},"delaySeconds":{"type":"integer","nullable":true,"minimum":0},"fifoQueue":{"type":"boolean","nullable":true},"fifoThroughputLimit":{"type":"string","nullable":true},"kmsDataKeyReusePeriodSeconds":{"type":"integer","nullable":true,"minimum":0},"kmsMasterKeyId":{"type":"string","nullable":true},"maximumMessageSize":{"type":"integer","nullable":true,"minimum":0},"messageRetentionPeriodSeconds":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"queueArn":{"type":"string","nullable":true},"queueUrl":{"type":"string","nullable":true},"receiveMessageWaitTimeSeconds":{"type":"integer","nullable":true,"minimum":0},"redriveAllowPolicy":{"type":"string","nullable":true},"redrivePolicy":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"sqsManagedSseEnabled":{"type":"boolean","nullable":true},"sseEnabled":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"visibilityTimeoutSeconds":{"type":"integer","nullable":true,"minimum":0}},"required":["approximateCounts","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsSqs"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"kmsKeyName":{"type":"string","nullable":true},"messageStorageAllowedPersistenceRegions":{"type":"array","items":{"type":"string"}},"messageStorageEnforceInTransit":{"type":"boolean","nullable":true},"projectId":{"type":"string","nullable":true},"schemaEncoding":{"type":"string","nullable":true},"schemaFirstRevisionId":{"type":"string","nullable":true},"schemaLastRevisionId":{"type":"string","nullable":true},"schemaName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"subscriptionAckDeadlineSeconds":{"type":"integer","nullable":true,"minimum":0},"subscriptionDeadLetterMaxDeliveryAttempts":{"type":"integer","nullable":true,"minimum":0},"subscriptionDeadLetterTopic":{"type":"string","nullable":true},"subscriptionDetached":{"type":"boolean","nullable":true},"subscriptionEnableMessageOrdering":{"type":"boolean","nullable":true},"subscriptionFilter":{"type":"string","nullable":true},"subscriptionFullName":{"type":"string","nullable":true},"subscriptionLabels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"subscriptionMessageRetentionDuration":{"type":"string","nullable":true},"subscriptionName":{"type":"string","nullable":true},"subscriptionPushAttributes":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"subscriptionPushConfigPresent":{"type":"boolean","nullable":true},"subscriptionPushEndpoint":{"type":"string","nullable":true},"subscriptionPushNoWrapperWriteMetadata":{"type":"boolean","nullable":true},"subscriptionPushOidcAudience":{"type":"string","nullable":true},"subscriptionPushOidcServiceAccountEmail":{"type":"string","nullable":true},"subscriptionPushPubsubWrapperWriteMetadata":{"type":"boolean","nullable":true},"subscriptionRetainAckedMessages":{"type":"boolean","nullable":true},"subscriptionState":{"type":"string","nullable":true},"topicFullName":{"type":"string","nullable":true},"topicLabels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"topicMessageRetentionDuration":{"type":"string","nullable":true},"topicName":{"type":"string"},"topicState":{"type":"string","nullable":true}},"required":["messageStorageAllowedPersistenceRegions","status","subscriptionLabels","subscriptionPushAttributes","topicLabels","topicName"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpPubSub"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessedAt":{"type":"string","nullable":true},"activeMessageCount":{"type":"integer","nullable":true,"minimum":0},"autoDeleteOnIdle":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"deadLetterMessageCount":{"type":"integer","nullable":true,"minimum":0},"deadLetteringOnMessageExpiration":{"type":"boolean","nullable":true},"defaultMessageTimeToLive":{"type":"string","nullable":true},"duplicateDetectionHistoryTimeWindow":{"type":"string","nullable":true},"enableBatchedOperations":{"type":"boolean","nullable":true},"enableExpress":{"type":"boolean","nullable":true},"enablePartitioning":{"type":"boolean","nullable":true},"endpoint":{"type":"string","nullable":true},"forwardDeadLetteredMessagesTo":{"type":"string","nullable":true},"forwardTo":{"type":"string","nullable":true},"lockDuration":{"type":"string","nullable":true},"maxDeliveryCount":{"type":"integer","nullable":true,"minimum":0},"maxMessageSizeInKilobytes":{"type":"integer","nullable":true,"minimum":0},"maxSizeInMegabytes":{"type":"integer","nullable":true,"minimum":0},"messageCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"namespaceName":{"type":"string"},"queueStatus":{"type":"string","nullable":true},"requiresDuplicateDetection":{"type":"boolean","nullable":true},"requiresSession":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"scheduledMessageCount":{"type":"integer","nullable":true,"minimum":0},"sizeInBytes":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"transferDeadLetterMessageCount":{"type":"integer","nullable":true,"minimum":0},"transferMessageCount":{"type":"integer","nullable":true,"minimum":0},"updatedAt":{"type":"string","nullable":true}},"required":["name","namespaceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureServiceBus"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"name":{"type":"string"},"path":{"type":"string","nullable":true},"serviceStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["queue"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"billingMode":{"type":"string","nullable":true},"deletionProtectionEnabled":{"type":"boolean","nullable":true},"globalSecondaryIndexCount":{"type":"integer","nullable":true,"minimum":0},"itemCount":{"type":"integer","nullable":true,"minimum":0},"keySchema":{"type":"array","items":{"type":"object","properties":{"attributeName":{"type":"string"},"keyType":{"type":"string"}},"required":["attributeName","keyType"]}},"localSecondaryIndexCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"region":{"type":"string","nullable":true},"replicaCount":{"type":"integer","nullable":true,"minimum":0},"restoreInProgress":{"type":"boolean","nullable":true},"sseStatus":{"type":"string","nullable":true},"sseType":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"streamEnabled":{"type":"boolean","nullable":true},"streamViewType":{"type":"string","nullable":true},"tableArn":{"type":"string","nullable":true},"tableClass":{"type":"string","nullable":true},"tableSizeBytes":{"type":"integer","nullable":true,"minimum":0},"tableStatus":{"type":"string","nullable":true},"ttlAttributeName":{"type":"string","nullable":true},"ttlStatus":{"type":"string","nullable":true}},"required":["keySchema","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsDynamoDb"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"appEngineIntegrationMode":{"type":"string","nullable":true},"cmekEnabled":{"type":"boolean"},"concurrencyMode":{"type":"string","nullable":true},"createTime":{"type":"string","nullable":true},"databaseEdition":{"type":"string","nullable":true},"databaseName":{"type":"string"},"databaseType":{"type":"string","nullable":true},"deleteProtectionState":{"type":"string","nullable":true},"deleteTime":{"type":"string","nullable":true},"earliestVersionTime":{"type":"string","nullable":true},"endpoint":{"type":"string","nullable":true},"locationId":{"type":"string","nullable":true},"pointInTimeRecoveryEnablement":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"sourceInfoPresent":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updateTime":{"type":"string","nullable":true},"versionRetentionPeriod":{"type":"string","nullable":true}},"required":["cmekEnabled","databaseName","sourceInfoPresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpFirestore"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"signedIdentifierCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"storageAccountKind":{"type":"string","nullable":true},"storageAccountLocation":{"type":"string","nullable":true},"storageAccountName":{"type":"string"},"storageAccountPrimaryStatus":{"type":"string","nullable":true},"storageAccountProvisioningState":{"type":"string","nullable":true},"storageAccountResourceId":{"type":"string","nullable":true},"tableExists":{"type":"boolean"},"tableName":{"type":"string"}},"required":["status","storageAccountName","tableExists","tableName"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureTable"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cloudMetadataSupported":{"type":"boolean"},"isDirectory":{"type":"boolean","nullable":true},"name":{"type":"string"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["cloudMetadataSupported","name","path","pathExists","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["kv"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"clusterIdentifier":{"type":"string"},"endpoint":{"type":"string","nullable":true},"engineVersion":{"type":"string","nullable":true},"neverPauses":{"type":"boolean","description":"True when a `minCapacity: 0` instance has not reached 0 ACU over the observation\nwindow — it is silently paying always-on prices (auto-pause verification)."},"serverlessCapacity":{"type":"number","nullable":true,"description":"Latest sampled `ServerlessDatabaseCapacity` (ACU)."},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["clusterIdentifier","neverPauses","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aurora"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"databaseVersion":{"type":"string","nullable":true},"instanceName":{"type":"string"},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["instanceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["cloudSql"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"serverName":{"type":"string"},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string","nullable":true}},"required":["serverName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["flexibleServer"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"name":{"type":"string"},"port":{"type":"integer","nullable":true,"minimum":0},"processRunning":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string"}},"required":["name","processRunning","status","version"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["postgres"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string"},"hasMoreParameters":{"type":"boolean","nullable":true},"latestModifiedAt":{"type":"string","nullable":true,"format":"date-time"},"parameterMetadataSampled":{"type":"boolean"},"prefix":{"type":"string"},"region":{"type":"string"},"sampledAdvancedTierCount":{"type":"integer","nullable":true,"minimum":0},"sampledKmsKeyMetadataPresentCount":{"type":"integer","nullable":true,"minimum":0},"sampledParameterCount":{"type":"integer","nullable":true,"minimum":0},"sampledSecureStringCount":{"type":"integer","nullable":true,"minimum":0},"sampledStringCount":{"type":"integer","nullable":true,"minimum":0},"sampledStringListCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["accountId","parameterMetadataSampled","prefix","region","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsParameterStore"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string"},"prefix":{"type":"string"},"projectId":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["location","prefix","projectId","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpSecretManager"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessPolicyCount":{"type":"integer","minimum":0},"location":{"type":"string","nullable":true},"name":{"type":"string"},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string"},"purgeProtectionEnabled":{"type":"boolean","nullable":true},"rbacAuthorizationEnabled":{"type":"boolean"},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"secretMetadataListed":{"type":"boolean"},"skuFamily":{"type":"string","nullable":true},"skuName":{"type":"string","nullable":true},"softDeleteEnabled":{"type":"boolean"},"softDeleteRetentionDays":{"type":"integer"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vaultUri":{"type":"string","nullable":true}},"required":["accessPolicyCount","name","privateEndpointConnectionCount","publicNetworkAccess","rbacAuthorizationEnabled","secretMetadataListed","softDeleteEnabled","softDeleteRetentionDays","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureKeyVault"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"type":"string"},"prefix":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["namespace","prefix","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetesSecret"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"isDirectory":{"type":"boolean","nullable":true},"modifiedAt":{"type":"string","nullable":true,"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":"boolean","nullable":true},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["path","pathExists","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["vault"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"assumeRolePolicyPresent":{"type":"boolean"},"attachedPolicyCount":{"type":"integer","minimum":0},"attachedPolicyNames":{"type":"array","items":{"type":"string"}},"createDate":{"type":"string"},"description":{"type":"string","nullable":true},"inlinePolicyCount":{"type":"integer","minimum":0},"inlinePolicyNames":{"type":"array","items":{"type":"string"}},"lastUsedDate":{"type":"string","nullable":true},"lastUsedRegion":{"type":"string","nullable":true},"managedTagCount":{"type":"integer","minimum":0},"maxSessionDuration":{"type":"integer","nullable":true},"path":{"type":"string"},"permissionsBoundaryArn":{"type":"string","nullable":true},"permissionsBoundaryType":{"type":"string","nullable":true},"roleArn":{"type":"string"},"roleId":{"type":"string"},"roleName":{"type":"string"},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tagCount":{"type":"integer","minimum":0}},"required":["assumeRolePolicyPresent","attachedPolicyCount","attachedPolicyNames","createDate","inlinePolicyCount","inlinePolicyNames","managedTagCount","path","roleArn","roleId","roleName","stackPermissionsApplied","status","tagCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsIamRole"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true},"disabled":{"type":"boolean","nullable":true},"displayName":{"type":"string","nullable":true},"email":{"type":"string"},"etag":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"oauth2ClientId":{"type":"string","nullable":true},"projectBindingCount":{"type":"integer","minimum":0},"projectId":{"type":"string","nullable":true},"projectRoles":{"type":"array","items":{"type":"string"}},"serviceAccountBindingCount":{"type":"integer","minimum":0},"serviceAccountRoles":{"type":"array","items":{"type":"string"}},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"uniqueId":{"type":"string","nullable":true}},"required":["email","projectBindingCount","projectRoles","serviceAccountBindingCount","serviceAccountRoles","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"clientId":{"type":"string","nullable":true},"customRoleDefinitionCount":{"type":"integer","minimum":0},"customRoleDefinitionIds":{"type":"array","items":{"type":"string"}},"isolationScope":{"type":"string","nullable":true},"location":{"type":"string"},"managedTagCount":{"type":"integer","minimum":0},"name":{"type":"string"},"principalId":{"type":"string","nullable":true},"resourceGroup":{"type":"string"},"resourceId":{"type":"string"},"roleAssignmentCount":{"type":"integer","minimum":0},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tenantId":{"type":"string","nullable":true},"type":{"type":"string","nullable":true}},"required":["customRoleDefinitionCount","customRoleDefinitionIds","location","managedTagCount","name","resourceGroup","resourceId","roleAssignmentCount","roleAssignmentIds","stackPermissionsApplied","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"configured":{"type":"boolean"},"identity":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["configured","identity","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["service-account"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"availabilityZones":{"type":"array","items":{"type":"string"}},"cidrBlock":{"type":"string","nullable":true},"internetGatewayId":{"type":"string","nullable":true},"isByoVpc":{"type":"boolean"},"natGatewayId":{"type":"string","nullable":true},"privateSubnetIds":{"type":"array","items":{"type":"string"}},"publicSubnetIds":{"type":"array","items":{"type":"string"}},"routeTableCount":{"type":"integer","minimum":0},"securityGroupId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vpcId":{"type":"string","nullable":true},"vpcState":{"type":"string","nullable":true}},"required":["availabilityZones","isByoVpc","privateSubnetIds","publicSubnetIds","routeTableCount","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsVpc"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cidrBlock":{"type":"string","nullable":true},"cloudNatName":{"type":"string","nullable":true},"firewallName":{"type":"string","nullable":true},"isByoVpc":{"type":"boolean"},"networkName":{"type":"string","nullable":true},"networkSelfLink":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"routerName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"subnetworkName":{"type":"string","nullable":true},"subnetworkSelfLink":{"type":"string","nullable":true}},"required":["isByoVpc","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpVpc"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"applicationGatewaySubnetName":{"type":"string","nullable":true},"cidrBlock":{"type":"string","nullable":true},"isByoVnet":{"type":"boolean"},"lastByoVnetVerificationErrorCode":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"natGatewayId":{"type":"string","nullable":true},"nsgId":{"type":"string","nullable":true},"privateEndpointSubnetName":{"type":"string","nullable":true},"privateSubnetName":{"type":"string","nullable":true},"publicIpId":{"type":"string","nullable":true},"publicSubnetName":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vnetName":{"type":"string","nullable":true},"vnetResourceId":{"type":"string","nullable":true}},"required":["isByoVnet","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureVnet"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["network"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"managementPermissionsApplied":{"type":"boolean"},"roleArn":{"type":"string","nullable":true},"roleName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["managementPermissionsApplied","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsIamRole"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"impersonationGranted":{"type":"boolean"},"roleBound":{"type":"boolean"},"serviceAccountEmail":{"type":"string","nullable":true},"serviceAccountUniqueId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["impersonationGranted","roleBound","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"ficName":{"type":"string","nullable":true},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"roleDefinitionId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tenantId":{"type":"string","nullable":true},"uamiClientId":{"type":"string","nullable":true},"uamiPrincipalId":{"type":"string","nullable":true},"uamiResourceId":{"type":"string","nullable":true}},"required":["roleAssignmentIds","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["remote-stack-management"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"pullRoleArn":{"type":"string","nullable":true},"pushRoleArn":{"type":"string","nullable":true},"region":{"type":"string"},"registryId":{"type":"string"},"registryUri":{"type":"string"},"repositories":{"type":"array","items":{"type":"object","properties":{"createdAt":{"type":"number"},"encryptionType":{"type":"string","nullable":true},"imageTagMutability":{"type":"string","nullable":true},"kmsKeyPresent":{"type":"boolean"},"registryId":{"type":"string"},"repositoryArn":{"type":"string"},"repositoryName":{"type":"string"},"repositoryUri":{"type":"string"},"scanOnPush":{"type":"boolean","nullable":true}},"required":["createdAt","kmsKeyPresent","registryId","repositoryArn","repositoryName","repositoryUri"]}},"repositoriesTruncated":{"type":"boolean"},"repositoryCount":{"type":"integer","minimum":0},"repositoryPrefix":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["region","registryId","registryUri","repositories","repositoriesTruncated","repositoryCount","repositoryPrefix","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsEcr"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cleanupPolicyCount":{"type":"integer","minimum":0},"cleanupPolicyDryRun":{"type":"boolean","nullable":true},"createTime":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"format":{"type":"string","nullable":true},"iamBindingCount":{"type":"integer","minimum":0},"iamPolicyEtagPresent":{"type":"boolean"},"iamRoles":{"type":"array","items":{"type":"string"}},"kmsKeyNamePresent":{"type":"boolean"},"labelCount":{"type":"integer","minimum":0},"location":{"type":"string"},"mode":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"projectId":{"type":"string"},"pullServiceAccountEmail":{"type":"string","nullable":true},"pushServiceAccountEmail":{"type":"string","nullable":true},"repositoryId":{"type":"string"},"satisfiesPzs":{"type":"boolean","nullable":true},"sizeBytes":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updateTime":{"type":"string","nullable":true}},"required":["cleanupPolicyCount","iamBindingCount","iamPolicyEtagPresent","iamRoles","kmsKeyNamePresent","labelCount","location","projectId","repositoryId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpArtifactRegistry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"adminUserEnabled":{"type":"boolean"},"anonymousPullEnabled":{"type":"boolean"},"creationDate":{"type":"string","nullable":true},"dataEndpointEnabled":{"type":"boolean","nullable":true},"dataEndpointHostNames":{"type":"array","items":{"type":"string"}},"encryptionKeyIdentifierPresent":{"type":"boolean"},"encryptionKeyVaultUriPresent":{"type":"boolean"},"encryptionStatus":{"type":"string","nullable":true},"ipRuleCount":{"type":"integer","minimum":0},"location":{"type":"string"},"loginServer":{"type":"string","nullable":true},"managedTagCount":{"type":"integer","minimum":0},"name":{"type":"string"},"networkRuleBypassOptions":{"type":"string"},"networkRuleDefaultAction":{"type":"string","nullable":true},"policiesPresent":{"type":"boolean"},"policyCount":{"type":"integer","minimum":0},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string"},"resourceGroup":{"type":"string"},"resourceId":{"type":"string","nullable":true},"skuName":{"type":"string"},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"type":{"type":"string","nullable":true},"zoneRedundancy":{"type":"string"}},"required":["adminUserEnabled","anonymousPullEnabled","dataEndpointHostNames","encryptionKeyIdentifierPresent","encryptionKeyVaultUriPresent","ipRuleCount","location","managedTagCount","name","networkRuleBypassOptions","policiesPresent","policyCount","privateEndpointConnectionCount","publicNetworkAccess","resourceGroup","skuName","status","zoneRedundancy"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerRegistry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"reachable":{"type":"boolean"},"registryUrl":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["reachable","registryUrl","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["artifact-registry"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"artifactsEncryptionDisabled":{"type":"boolean","nullable":true},"artifactsType":{"type":"string","nullable":true},"cloudWatchLogsStatus":{"type":"string","nullable":true},"computeType":{"type":"string","nullable":true},"created":{"type":"number","nullable":true},"description":{"type":"string","nullable":true},"encryptionKeyPresent":{"type":"boolean"},"environmentImage":{"type":"string","nullable":true},"environmentType":{"type":"string","nullable":true},"environmentVariableCount":{"type":"integer","minimum":0},"imagePullCredentialsType":{"type":"string","nullable":true},"lastModified":{"type":"number","nullable":true},"privilegedMode":{"type":"boolean","nullable":true},"projectArn":{"type":"string","nullable":true},"projectName":{"type":"string"},"queuedTimeoutInMinutes":{"type":"integer","nullable":true},"s3LogsStatus":{"type":"string","nullable":true},"serviceRolePresent":{"type":"boolean"},"sourceType":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"timeoutInMinutes":{"type":"integer","nullable":true}},"required":["encryptionKeyPresent","environmentVariableCount","projectName","serviceRolePresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsCodeBuild"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"buildConfigId":{"type":"string"},"environmentVariableCount":{"type":"integer","minimum":0},"location":{"type":"string"},"projectId":{"type":"string"},"serviceAccount":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["buildConfigId","environmentVariableCount","location","projectId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudBuild"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"environmentVariableCount":{"type":"integer","minimum":0},"managedEnvironmentId":{"type":"string"},"managedIdentityId":{"type":"string","nullable":true},"resourceGroupName":{"type":"string"},"resourcePrefix":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["environmentVariableCount","managedEnvironmentId","resourceGroupName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerApps"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"active":{"type":"integer","nullable":true},"completionTime":{"type":"string","nullable":true,"format":"date-time"},"conditionCount":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"failed":{"type":"integer","nullable":true},"imageDigest":{"type":"string","nullable":true},"jobName":{"type":"string"},"namespace":{"type":"string"},"startTime":{"type":"string","nullable":true,"format":"date-time"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"succeeded":{"type":"integer","nullable":true}},"required":["conditionCount","events","jobName","namespace","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetesJob"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["build"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"enabled":{"type":"boolean"},"lastOperationName":{"type":"string","nullable":true},"projectId":{"type":"string"},"serviceName":{"type":"string"},"serviceResourceName":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"title":{"type":"string","nullable":true}},"required":["enabled","projectId","serviceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceUsage"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"type":"string"},"providerId":{"type":"string","nullable":true},"registered":{"type":"boolean"},"registrationPolicy":{"type":"string","nullable":true},"registrationState":{"type":"string","nullable":true},"resourceTypeCount":{"type":"integer","minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["namespace","registered","resourceTypeCount","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureResourceProvider"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["service_activation"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"location":{"type":"string","nullable":true},"managedTags":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"name":{"type":"string"},"provisioningState":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["managedTags","name","status"]},"resourceType":{"type":"string","enum":["azure_resource_group"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"allowBlobPublicAccess":{"type":"boolean","nullable":true},"allowSharedKeyAccess":{"type":"boolean","nullable":true},"encryptionKeySource":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"minimumTlsVersion":{"type":"string","nullable":true},"name":{"type":"string"},"networkBypass":{"type":"string","nullable":true},"networkDefaultAction":{"type":"string","nullable":true},"networkIpRuleCount":{"type":"integer","nullable":true,"minimum":0},"networkResourceAccessRuleCount":{"type":"integer","nullable":true,"minimum":0},"networkVirtualNetworkRuleCount":{"type":"integer","nullable":true,"minimum":0},"primaryEndpoints":{"type":"object","properties":{"blob":{"type":"string","nullable":true},"dfs":{"type":"string","nullable":true},"file":{"type":"string","nullable":true},"queue":{"type":"string","nullable":true},"table":{"type":"string","nullable":true},"web":{"type":"string","nullable":true}}},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"requireInfrastructureEncryption":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"secondaryEndpoints":{"type":"object","properties":{"blob":{"type":"string","nullable":true},"dfs":{"type":"string","nullable":true},"file":{"type":"string","nullable":true},"queue":{"type":"string","nullable":true},"table":{"type":"string","nullable":true},"web":{"type":"string","nullable":true}}},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"supportsHttpsTrafficOnly":{"type":"boolean","nullable":true}},"required":["name","primaryEndpoints","secondaryEndpoints","status"]},"resourceType":{"type":"string","enum":["azure_storage_account"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"customDomainVerificationId":{"type":"string","nullable":true},"defaultDomain":{"type":"string","nullable":true},"eventStreamEndpoint":{"type":"string","nullable":true},"infrastructureResourceGroup":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"name":{"type":"string"},"provisioningState":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"staticIp":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workloadProfileCount":{"type":"integer","minimum":0},"workloadProfiles":{"type":"array","items":{"type":"object","properties":{"maximumCount":{"type":"integer","nullable":true},"minimumCount":{"type":"integer","nullable":true},"name":{"type":"string"},"workloadProfileType":{"type":"string"}},"required":["name","workloadProfileType"]}},"zoneRedundant":{"type":"boolean","nullable":true}},"required":["name","status","workloadProfileCount","workloadProfiles"]},"resourceType":{"type":"string","enum":["azure_container_apps_environment"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"createdAt":{"type":"string","nullable":true},"disableLocalAuth":{"type":"boolean","nullable":true},"location":{"type":"string","nullable":true},"metricId":{"type":"string","nullable":true},"minimumTlsVersion":{"type":"string","nullable":true},"name":{"type":"string"},"namespaceStatus":{"type":"string","nullable":true},"premiumMessagingPartitions":{"type":"integer","nullable":true},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"serviceBusEndpoint":{"type":"string","nullable":true},"skuCapacity":{"type":"integer","nullable":true},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updatedAt":{"type":"string","nullable":true},"zoneRedundant":{"type":"boolean","nullable":true}},"required":["name","privateEndpointConnectionCount","status"]},"resourceType":{"type":"string","enum":["azure_service_bus_namespace"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"availability":{"type":"object","properties":{"catalogRevision":{"type":"string"},"location":{"type":"string","nullable":true},"models":{"type":"array","items":{"type":"object","properties":{"accessTest":{"type":"string","enum":["verified","failed","not-checked"]},"availability":{"type":"string","enum":["available","blocked","unknown"]},"blockers":{"type":"array","items":{"type":"string","enum":["agreement-required","entitlement-required","model-activation-required","deployment-required","quota-configuration-required","region-unavailable","access-denied","observation-failed"]}},"clientApis":{"type":"array","items":{"type":"string","enum":["open-ai-chat-completions","open-ai-responses","anthropic-messages"],"description":"A public API accepted from an application client."}},"errorCode":{"type":"string","nullable":true},"publicModelId":{"type":"string"},"testedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["accessTest","availability","blockers","clientApis","publicModelId"]}},"source":{"type":"string","enum":["aws-bedrock","gcp-vertex","azure-foundry","anthropic"],"description":"Provider control plane used to observe model availability without invoking\na model, spending customer quota, or accepting provider terms."}},"required":["catalogRevision","models","source"]},"region":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["availability","region","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsBedrock"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"availability":{"type":"object","properties":{"catalogRevision":{"type":"string"},"location":{"type":"string","nullable":true},"models":{"type":"array","items":{"type":"object","properties":{"accessTest":{"type":"string","enum":["verified","failed","not-checked"]},"availability":{"type":"string","enum":["available","blocked","unknown"]},"blockers":{"type":"array","items":{"type":"string","enum":["agreement-required","entitlement-required","model-activation-required","deployment-required","quota-configuration-required","region-unavailable","access-denied","observation-failed"]}},"clientApis":{"type":"array","items":{"type":"string","enum":["open-ai-chat-completions","open-ai-responses","anthropic-messages"],"description":"A public API accepted from an application client."}},"errorCode":{"type":"string","nullable":true},"publicModelId":{"type":"string"},"testedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["accessTest","availability","blockers","clientApis","publicModelId"]}},"source":{"type":"string","enum":["aws-bedrock","gcp-vertex","azure-foundry","anthropic"],"description":"Provider control plane used to observe model availability without invoking\na model, spending customer quota, or accepting provider terms."}},"required":["catalogRevision","models","source"]},"location":{"type":"string"},"project":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["availability","location","project","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpVertex"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"type":"string"},"availability":{"type":"object","properties":{"catalogRevision":{"type":"string"},"location":{"type":"string","nullable":true},"models":{"type":"array","items":{"type":"object","properties":{"accessTest":{"type":"string","enum":["verified","failed","not-checked"]},"availability":{"type":"string","enum":["available","blocked","unknown"]},"blockers":{"type":"array","items":{"type":"string","enum":["agreement-required","entitlement-required","model-activation-required","deployment-required","quota-configuration-required","region-unavailable","access-denied","observation-failed"]}},"clientApis":{"type":"array","items":{"type":"string","enum":["open-ai-chat-completions","open-ai-responses","anthropic-messages"],"description":"A public API accepted from an application client."}},"errorCode":{"type":"string","nullable":true},"publicModelId":{"type":"string"},"testedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["accessTest","availability","blockers","clientApis","publicModelId"]}},"source":{"type":"string","enum":["aws-bedrock","gcp-vertex","azure-foundry","anthropic"],"description":"Provider control plane used to observe model availability without invoking\na model, spending customer quota, or accepting provider terms."}},"required":["catalogRevision","models","source"]},"endpoint":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["accountName","availability","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureFoundry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"availability":{"oneOf":[{"type":"object","properties":{"catalogRevision":{"type":"string"},"location":{"type":"string","nullable":true},"models":{"type":"array","items":{"type":"object","properties":{"accessTest":{"type":"string","enum":["verified","failed","not-checked"]},"availability":{"type":"string","enum":["available","blocked","unknown"]},"blockers":{"type":"array","items":{"type":"string","enum":["agreement-required","entitlement-required","model-activation-required","deployment-required","quota-configuration-required","region-unavailable","access-denied","observation-failed"]}},"clientApis":{"type":"array","items":{"type":"string","enum":["open-ai-chat-completions","open-ai-responses","anthropic-messages"],"description":"A public API accepted from an application client."}},"errorCode":{"type":"string","nullable":true},"publicModelId":{"type":"string"},"testedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["accessTest","availability","blockers","clientApis","publicModelId"]}},"source":{"type":"string","enum":["aws-bedrock","gcp-vertex","azure-foundry","anthropic"],"description":"Provider control plane used to observe model availability without invoking\na model, spending customer quota, or accepting provider terms."}},"required":["catalogRevision","models","source"]},{"nullable":true}]},"provider":{"type":"string","description":"The BYO-key provider serving this binding (e.g. \"openai\"). Used on the Local\nplatform, where the app brings its own provider key instead of an ambient cloud."},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["provider","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["external"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["ai"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"type":"object","properties":{"data":{"type":"object","properties":{"enabled":{"type":"boolean"},"keyArn":{"type":"string"},"keySpec":{"type":"string"},"keyState":{"type":"string"},"keyUsage":{"type":"string"},"status":{"type":"object","properties":{"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true}},"required":["health","lifecycle"]}},"required":["enabled","keyArn","keySpec","keyState","keyUsage","status"]},"provider":{"type":"string","enum":["aws-kms"]}},"required":["data","provider"]},{"type":"object","properties":{"data":{"type":"object","properties":{"algorithm":{"type":"string","nullable":true},"cryptoKeyName":{"type":"string"},"primaryState":{"type":"string","nullable":true},"primaryVersion":{"type":"string","nullable":true},"purpose":{"type":"string"},"status":{"type":"object","properties":{"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true}},"required":["health","lifecycle"]}},"required":["cryptoKeyName","purpose","status"]},"provider":{"type":"string","enum":["gcp-cloud-kms"]}},"required":["data","provider"]},{"type":"object","properties":{"data":{"type":"object","properties":{"enabled":{"type":"boolean","nullable":true},"keyId":{"type":"string"},"keyOperations":{"type":"array","items":{"type":"string"}},"keyType":{"type":"string"},"recoveryLevel":{"type":"string","nullable":true},"status":{"type":"object","properties":{"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true}},"required":["health","lifecycle"]}},"required":["keyId","keyOperations","keyType","status"]},"provider":{"type":"string","enum":["azure-key-vault"]}},"required":["data","provider"]}]},"resourceType":{"type":"string","enum":["key"]}},"required":["data","resourceType"]}]},"deploymentId":{"type":"string","nullable":true},"observedAt":{"type":"string","format":"date-time"},"raw":{"type":"array","items":{"type":"object","properties":{"body":{"type":"string"},"collectedAt":{"type":"string","format":"date-time"},"format":{"type":"string","enum":["json","yaml","text"]},"source":{"type":"string"},"truncated":{"type":"boolean"}},"required":["body","collectedAt","format","source","truncated"]}},"resourceId":{"type":"string","description":"Alien resource id, such as the `alien.Container` or `alien.Storage`\nresource id from the stack."},"resourceType":{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior."}},"required":["backend","controllerPlatform","data","observedAt","raw","resourceId","resourceType"]},"raw":{"type":"array","items":{"nullable":true}}},"required":["status","deploymentId","resourceId","resourceType","backend","controllerPlatform","observedAt","staleAt","platformStale","heartbeat","raw"]},{"type":"object","properties":{"status":{"type":"string","enum":["missing"]},"deploymentId":{"type":"string"},"resourceId":{"type":"string"},"resourceType":{"type":"string"}},"required":["status","deploymentId","resourceId","resourceType"]}]}},"required":["deployment","heartbeat"]}}}},"404":{"description":"Deployment or resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resolve":{"get":{"operationId":"resolve","tags":["resolve"],"summary":"Resolve manager for a project and platform","description":"Returns the manager URL for a given project and platform. The project can be provided as a query parameter, or derived from the token's scope (project-scoped, deployment-group-scoped, or deployment-scoped tokens carry an implicit project). This is the single entry point for all CLI tools to discover which manager to talk to.","x-speakeasy-group":"resolve","x-speakeasy-name-override":"resolve","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform to resolve the manager for"},"required":true,"description":"Target platform to resolve the manager for","name":"platform","in":"query"},{"schema":{"type":"string","maxLength":100,"description":"Project ID or name. Required for user and workspace-scoped tokens. Optional for project/deployment-group/deployment-scoped tokens (derived from token scope)."},"required":false,"description":"Project ID or name. Required for user and workspace-scoped tokens. Optional for project/deployment-group/deployment-scoped tokens (derived from token scope).","name":"project","in":"query"}],"responses":{"200":{"description":"Manager resolved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveResponse"}}}},"400":{"description":"Missing required project parameter for this token type.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project not found or no manager available for platform.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"Manager not ready yet (no URL reported). Retry after a delay.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/cloud-regions":{"get":{"operationId":"getCloudRegions","description":"Get cloud regions supported by this Alien environment.","x-speakeasy-group":"cloudRegions","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Supported cloud regions retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloudRegionsResponse"}}}}}}},"/v1/billing/audit-log":{"get":{"operationId":"listBillingAuditLog","description":"List billing activity entries for the current workspace.","x-speakeasy-group":"billing","x-speakeasy-name-override":"listAuditLog","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"number","minimum":1,"maximum":200,"default":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor: id from the previous page."},"required":false,"description":"Cursor: id from the previous page.","name":"before","in":"query"}],"responses":{"200":{"description":"Audit-log rows newest-first.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/BillingAuditLogRow"}},"nextCursor":{"type":"string","nullable":true}},"required":["items","nextCursor"]}}}}}}},"/v1/billing/entitlements":{"get":{"operationId":"getWorkspaceBillingEntitlements","description":"Get the workspace billing entitlements used for product feature gates. Autumn is the source of truth; the response is served through the workspace billing read model with stale-cache fallback.","x-speakeasy-group":"billing","x-speakeasy-name-override":"getEntitlements","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Workspace billing entitlements.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceBillingEntitlements"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}}}} \ No newline at end of file diff --git a/client-sdks/platform/rust/openapi.json b/client-sdks/platform/rust/openapi.json index e8487136b..c699f0869 100644 --- a/client-sdks/platform/rust/openapi.json +++ b/client-sdks/platform/rust/openapi.json @@ -1 +1 @@ -{"openapi":"3.0.0","info":{"title":"Alien API","version":"1.0.0","contact":{"name":"Alien Team","url":"https://alien.dev"}},"servers":[{"url":"https://api.alien.dev","description":"Alien API - Production"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","bearerFormat":"API key","description":"API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys"}},"schemas":{"WorkspaceInvitationPreview":{"type":"object","properties":{"kind":{"type":"string","enum":["email","link"]},"workspace":{"type":"object","properties":{"id":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$"},"logoUrl":{"type":"string","nullable":true,"format":"uri"}},"required":["id","name","logoUrl"]},"inviter":{"type":"object","nullable":true,"properties":{"name":{"type":"string"},"image":{"type":"string","nullable":true,"format":"uri"}},"required":["name","image"]},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"expiresAt":{"type":"string","format":"date-time"},"state":{"type":"string","enum":["active","accepted","expired","revoked"]},"emailHint":{"type":"string","nullable":true}},"required":["kind","workspace","inviter","role","expiresAt","state","emailHint"],"additionalProperties":false},"WorkspaceRole":{"type":"string","enum":["workspace.viewer","workspace.member","workspace.admin"],"description":"Role for workspace-scoped service accounts","example":"workspace.member"},"APIError":{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"message":{"type":"string","maxLength":16384,"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."},"source":{"nullable":true,"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."},"retryable":{"type":"boolean","default":false,"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."},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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."},"requestId":{"type":"string","description":"Request ID echoed in the x-request-id response header and server logs."}},"required":["code","message","internal"]},"Membership":{"type":"object","properties":{"id":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$"},"logoUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"role":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","logoUrl","role","createdAt"],"additionalProperties":false},"UserProfile":{"type":"object","properties":{"id":{"type":"string","description":"Unique user identifier"},"email":{"type":"string","description":"User's email address"},"name":{"type":"string","description":"User's display name"},"image":{"type":"string","nullable":true,"description":"User's avatar image URL"},"githubUsername":{"type":"string","nullable":true,"description":"Linked GitHub username"},"cliConnected":{"type":"boolean","description":"Whether this user has ever authenticated a request from the Alien CLI. Latched on first CLI request, never cleared."},"company":{"type":"string","nullable":true,"description":"Company name collected during profile setup."},"acquisitionSource":{"type":"string","nullable":true,"enum":["github","x-twitter","linkedin","hacker-news","reddit","search","friend-or-colleague","founder","event-or-community","other",null],"description":"How the user heard about Alien."},"acquisitionSourceDetail":{"type":"string","nullable":true,"description":"Additional acquisition source detail when the source is other."},"useCases":{"type":"string","nullable":true,"description":"What the user is hoping to use Alien for."},"profileSetupCompletedAt":{"type":"string","format":"date-time","nullable":true,"description":"When the user completed the required profile setup dialog."},"profileSetupVersion":{"type":"integer","nullable":true,"description":"Version of the required profile setup dialog the user completed."}},"required":["id","email","name","image","githubUsername","cliConnected","company","acquisitionSource","acquisitionSourceDetail","useCases","profileSetupCompletedAt","profileSetupVersion"],"additionalProperties":false},"UserProfileSetupRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Display name"},"company":{"type":"string","minLength":1,"maxLength":120,"description":"Company name"},"acquisitionSource":{"type":"string","enum":["github","x-twitter","linkedin","hacker-news","reddit","search","friend-or-colleague","founder","event-or-community","other"],"description":"How the user heard about Alien"},"acquisitionSourceDetail":{"type":"string","minLength":1,"maxLength":200,"description":"Required when acquisitionSource is other"},"useCases":{"type":"string","maxLength":2000,"description":"What the user is hoping to use Alien for"}},"required":["name","company","acquisitionSource"],"additionalProperties":false},"GitNamespace":{"type":"object","properties":{"id":{"type":"number","nullable":true},"name":{"type":"string"},"slug":{"type":"string"},"installationId":{"type":"number","nullable":true},"type":{"type":"string","enum":["team","user"]},"provider":{"type":"string","enum":["github"]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","slug","installationId","type","provider","createdAt"],"additionalProperties":false},"GitRepository":{"type":"object","properties":{"name":{"type":"string"},"private":{"type":"boolean"},"defaultBranch":{"type":"string"},"pushedAt":{"type":"string","format":"date-time"}},"required":["name","private","defaultBranch"],"additionalProperties":false},"AcceptWorkspaceInvitationResponse":{"type":"object","properties":{"outcome":{"type":"string","enum":["joined","already-member"]},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"workspaceName":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$"},"role":{"$ref":"#/components/schemas/WorkspaceRole"}},"required":["outcome","workspaceId","workspaceName","role"],"additionalProperties":false},"Subject":{"oneOf":[{"$ref":"#/components/schemas/UserSubject"},{"$ref":"#/components/schemas/ServiceAccountSubject"}],"discriminator":{"propertyName":"kind","mapping":{"user":"#/components/schemas/UserSubject","serviceAccount":"#/components/schemas/ServiceAccountSubject"}},"description":"Authenticated principal that can be either a user (with workspace-scoped permissions) or a service account (with configurable scope and role)"},"UserSubject":{"type":"object","properties":{"kind":{"type":"string","enum":["user"],"description":"Subject type identifier"},"id":{"type":"string","description":"Unique user identifier"},"email":{"type":"string","format":"email","description":"User's email address"},"workspaceId":{"type":"string","description":"ID of the workspace the user is authenticated within"},"workspaceName":{"type":"string","description":"Name of the workspace the user is authenticated within"},"role":{"$ref":"#/components/schemas/UserRole"}},"required":["kind","id","email","workspaceId","role"],"description":"Authenticated user subject with workspace-scoped permissions"},"UserRole":{"type":"string","enum":["workspace.viewer","workspace.member","workspace.admin"],"description":"User's role within the workspace","example":"workspace.member"},"ServiceAccountSubject":{"type":"object","properties":{"kind":{"type":"string","enum":["serviceAccount"],"description":"Subject type identifier"},"id":{"type":"string","description":"Unique service account identifier (API key ID)"},"workspaceId":{"type":"string","description":"ID of the workspace the service account belongs to"},"workspaceName":{"type":"string","description":"Name of the workspace the service account belongs to"},"scope":{"$ref":"#/components/schemas/SubjectScope"},"role":{"$ref":"#/components/schemas/Role"}},"required":["kind","id","workspaceId","scope","role"],"description":"Authenticated service account subject with scoped permissions (workspace, project, or deployment level)"},"SubjectScope":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["workspace"],"description":"Workspace-scoped access"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["project"],"description":"Project-scoped access"},"projectId":{"type":"string","description":"ID of the specific project this scope applies to"}},"required":["type","projectId"]},{"type":"object","properties":{"type":{"type":"string","enum":["deployment"],"description":"Deployment-scoped access"},"deploymentId":{"type":"string","description":"ID of the specific deployment this scope applies to"},"projectId":{"type":"string","description":"ID of the project this deployment belongs to"}},"required":["type","deploymentId","projectId"]},{"type":"object","properties":{"type":{"type":"string","enum":["deployment-group"],"description":"Deployment group-scoped access"},"deploymentGroupId":{"type":"string","description":"ID of the specific deployment group this scope applies to"},"projectId":{"type":"string","description":"ID of the project this deployment group belongs to"}},"required":["type","deploymentGroupId","projectId"]},{"type":"object","properties":{"type":{"type":"string","enum":["manager"],"description":"Manager-scoped access"},"managerId":{"type":"string","description":"ID of the specific manager this scope applies to"}},"required":["type","managerId"]}],"description":"Authorization scope defining what resources this service account can access"},"Role":{"oneOf":[{"$ref":"#/components/schemas/WorkspaceRole"},{"$ref":"#/components/schemas/ProjectRole"},{"$ref":"#/components/schemas/DeploymentRole"},{"$ref":"#/components/schemas/DeploymentGroupRole"},{"$ref":"#/components/schemas/ManagerRole"}],"description":"Role defining what actions this service account can perform within its scope","example":"workspace.member"},"ProjectRole":{"type":"string","enum":["project.viewer","project.developer"],"description":"Role for project-scoped service accounts","example":"project.developer"},"DeploymentRole":{"type":"string","enum":["deployment.viewer","deployment.manager","deployment.telemetry-writer"],"description":"Role for deployment-scoped service accounts","example":"deployment.manager"},"DeploymentGroupRole":{"type":"string","enum":["deployment-group.deployer"],"description":"Role for deployment group-scoped service accounts","example":"deployment-group.deployer"},"ManagerRole":{"type":"string","enum":["manager.runtime"],"description":"Role for manager-scoped service accounts","example":"manager.runtime"},"Workspace":{"type":"object","properties":{"id":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name.","example":"my-workspace"},"logoUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"onboardingDismissedAt":{"type":"string","format":"date-time","nullable":true,"description":"When the Getting Started walkthrough was dismissed or completed for this workspace. Null means it has never been dismissed; the dashboard auto-promotes the walkthrough until this is set."},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","onboardingDismissedAt","createdAt"],"additionalProperties":false},"WorkspaceMember":{"type":"object","properties":{"userId":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"image":{"type":"string","nullable":true},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"joinedAt":{"type":"string","format":"date-time"}},"required":["userId","email","name","image","role","joinedAt"],"additionalProperties":false},"AgentSettings":{"type":"object","properties":{"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"enabled":{"type":"boolean","description":"Workspace on/off switch for the ai-agent. When `false`, incoming triggers (release/deployment monitoring and Slack-invoked sessions) are rejected before any session runs. Defaults to `true`."},"debugPermissionMode":{"type":"string","enum":["auto","ask"],"description":"Workspace-level policy for ai-agent debug commands. `auto` runs `alien_debug` tool calls without asking; `ask` halts each session before every debug command and waits for a human approval from dashboard or Slack."},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["workspaceId","enabled","debugPermissionMode","createdAt","updatedAt"],"additionalProperties":false},"UpdateWorkspaceSettingsRequest":{"type":"object","properties":{"debugPermissionMode":{"type":"string","enum":["auto","ask"],"description":"Workspace-level policy for ai-agent debug commands. `auto` runs `alien_debug` tool calls without asking; `ask` halts each session before every debug command and waits for a human approval from dashboard or Slack."},"enabled":{"type":"boolean","description":"Turn the ai-agent on (`true`) or off (`false`) for this workspace."}}},"WorkspaceInvitation":{"type":"object","properties":{"id":{"type":"string","pattern":"winv_[0-9a-zA-Z]{32}$","description":"Unique identifier for the workspace invitation.","example":"winv_DsgltMIFV0GmqtxV5NYTtrknrna"},"email":{"type":"string","format":"email"},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"status":{"type":"string","enum":["pending","accepted","revoked","expired"]},"deliveryStatus":{"type":"string","enum":["pending","sent","failed"]},"expiresAt":{"type":"string","format":"date-time"},"lastSentAt":{"type":"string","format":"date-time","nullable":true},"createdAt":{"type":"string","format":"date-time"},"inviteUrl":{"type":"string","format":"uri"}},"required":["id","email","role","status","deliveryStatus","expiresAt","lastSentAt","createdAt","inviteUrl"],"additionalProperties":false},"WorkspaceInviteLink":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"wil_[0-9a-zA-Z]{40}$","description":"Unique identifier for the workspace invite link.","example":"wil_RgcthDSZ37rmFLekuItpFS7btjXoYwou1gE4"},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"expiresAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"useCount":{"type":"integer","minimum":0},"lastUsedAt":{"type":"string","format":"date-time","nullable":true},"inviteUrl":{"type":"string","format":"uri"}},"required":["id","role","expiresAt","createdAt","useCount","lastUsedAt","inviteUrl"],"additionalProperties":false},"ProjectListItemResponse":{"allOf":[{"$ref":"#/components/schemas/Project"},{"type":"object","properties":{"deploymentCount":{"type":"number"},"latestRelease":{"$ref":"#/components/schemas/ProjectReleaseInfo"}}}]},"DeploymentPortalAppearancePreset":{"type":"string","enum":["clean","technical","enterprise","playful","minimal"],"default":"clean","description":"Curated visual style for the deployment portal."},"DeploymentPortalAccentColor":{"type":"string","enum":["blue","purple","green","orange","pink","slate"],"default":"blue","description":"Accent color used for highlights and primary actions."},"DeploymentPortalDensity":{"type":"string","enum":["comfortable","compact"],"default":"comfortable","description":"Layout density for portal content."},"ProjectReleaseInfo":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"gitMetadata":{"$ref":"#/components/schemas/GitMetadata"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","gitMetadata","createdAt"]},"GitMetadata":{"type":"object","nullable":true,"properties":{"commitSha":{"type":"string","nullable":true,"maxLength":40,"description":"The hash of the commit","example":"dc36199b2234c6586ebe05ec94078a895c707e29"},"commitMessage":{"type":"string","nullable":true,"maxLength":1024,"description":"The commit message","example":"add method to measure Interaction to Next Paint (INP) (#36490)"},"commitRef":{"type":"string","nullable":true,"maxLength":256,"description":"The branch or tag on which the commit was made","example":"main"},"commitDate":{"type":"string","nullable":true,"format":"date-time","description":"The date and time when the commit was created","example":"2026-03-16T12:00:00Z"},"dirty":{"type":"boolean","nullable":true,"description":"Whether or not there have been modifications to the working tree since the latest commit","example":true},"remoteUrl":{"type":"string","nullable":true,"maxLength":2048,"description":"The git repository's remote origin url","example":"https://github.com/alienplatform/alien"},"commitAuthorName":{"type":"string","nullable":true,"maxLength":256,"description":"The name of the author of the commit (from git config)","example":"John Doe"},"commitAuthorEmail":{"type":"string","nullable":true,"maxLength":256,"format":"email","description":"The email of the author of the commit (from git config)","example":"john@example.com"},"commitAuthorLogin":{"type":"string","nullable":true,"maxLength":256,"description":"The provider username of the commit author (e.g., GitHub login), resolved server-side from the commit email","example":"johndoe"},"commitAuthorAvatarUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"The avatar URL of the commit author, resolved server-side from the provider login","example":"https://github.com/johndoe.png"},"provider":{"$ref":"#/components/schemas/GitProvider"}}},"GitProvider":{"oneOf":[{"$ref":"#/components/schemas/GitHubProvider"},{"$ref":"#/components/schemas/GitLabProvider"},{"nullable":true}],"description":"Provider-specific repository information, resolved server-side from remoteUrl"},"GitHubProvider":{"type":"object","properties":{"type":{"type":"string","enum":["github"]},"org":{"type":"string","maxLength":256,"description":"Repository owner (user or organization)"},"repo":{"type":"string","maxLength":256,"description":"Repository name"}},"required":["type","org","repo"]},"GitLabProvider":{"type":"object","properties":{"type":{"type":"string","enum":["gitlab"]},"namespace":{"type":"string","maxLength":256,"description":"Group/project namespace"},"project":{"type":"string","maxLength":256,"description":"Project name"}},"required":["type","namespace","project"]},"Project":{"type":"object","properties":{"id":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Project name.","example":"my-app"},"gitRepository":{"type":"object","nullable":true,"properties":{"type":{"type":"string","enum":["github"],"description":"The Git Provider of the repository","example":"github"},"repo":{"type":"string","maxLength":128,"description":"The name of the git repository","example":"alien/my-agent"}},"required":["type","repo"],"additionalProperties":false,"description":"Verified source repository connected to the project. Alien uses this for GitHub Actions setup and source-aware features; releases are still created explicitly by CI or `alien release`."},"rootDirectory":{"type":"string","nullable":true,"maxLength":256,"description":"The name of a directory or relative path to the source code of your project. When null is used it will default to the project root"},"deploymentPortalAppearance":{"type":"object","nullable":true,"properties":{"avatarUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional project-specific avatar override for the deployment portal."},"preset":{"$ref":"#/components/schemas/DeploymentPortalAppearancePreset"},"accentColor":{"$ref":"#/components/schemas/DeploymentPortalAccentColor"},"title":{"type":"string","nullable":true,"maxLength":80,"description":"Optional portal title. Defaults to the project name."},"subtitle":{"type":"string","nullable":true,"maxLength":160,"description":"Optional customer-facing subtitle."},"supportUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional support or contact URL."},"docsUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional documentation URL."},"density":{"$ref":"#/components/schemas/DeploymentPortalDensity"}},"description":"Customer-facing deployment portal appearance settings."},"packagesConfig":{"type":"object","nullable":true,"properties":{"cli":{"type":"object","nullable":true,"properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"},"enabled":{"type":"boolean","description":"Whether CLI package generation is enabled"}},"required":["displayName","name","enabled"],"description":"CLI package configuration. If null, CLI packages will not be generated."},"cloudformation":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether CloudFormation package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"CloudFormation package configuration. If null, CloudFormation packages will not be generated."},"operatorImage":{"type":"object","nullable":true,"properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"},"enabled":{"type":"boolean","description":"Whether Operator image package generation is enabled"}},"required":["displayName","name","enabled"],"description":"Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated."},"helm":{"type":"object","nullable":true,"properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"},"enabled":{"type":"boolean","description":"Whether Helm chart package generation is enabled"}},"required":["chartName","description","enabled"],"description":"Helm chart package configuration. If null, Helm packages will not be generated."},"terraform":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether Terraform package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"Terraform package configuration. If null, Terraform packages will not be generated."}},"description":"Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform)"},"domainId":{"type":"string","nullable":true,"pattern":"dom_[0-9a-z]{28}$","description":"Selected domain for this project (null = default system domain)","example":"dom_469m0agk8luj4s16sakmmpdd"},"defaultManagers":{"type":"object","nullable":true,"properties":{"aws":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"gcp":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"azure":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"kubernetes":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"machines":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"local":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"}},"description":"Project default private managers for new push deployments."},"createdAt":{"type":"string","format":"date-time"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"}},"required":["id","name","createdAt","workspaceId"]},"ProjectIDOrNamePathParam":{"type":"string","maxLength":100,"description":"Project ID or name."},"ProjectGcpOAuthProvider":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["alien-managed"]},"redirectUris":{"type":"array","items":{"type":"string","format":"uri"},"description":"Authorized redirect URIs that must be configured on the Google OAuth client."}},"required":["mode","redirectUris"]},{"type":"object","properties":{"mode":{"type":"string","enum":["custom"]},"clientId":{"$ref":"#/components/schemas/GcpOAuthClientId"},"hasClientSecret":{"type":"boolean","enum":[true]},"redirectUris":{"type":"array","items":{"type":"string","format":"uri"},"description":"Authorized redirect URIs that must be configured on the Google OAuth client."}},"required":["mode","clientId","hasClientSecret","redirectUris"]}]},"GcpOAuthClientId":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[a-zA-Z0-9_-]+-[a-zA-Z0-9_-]+\\.apps\\.googleusercontent\\.com$","description":"Google OAuth web client ID.","example":"1234567890-abc123.apps.googleusercontent.com"},"UpdateProjectGcpOAuthProvider":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["alien-managed"]}},"required":["mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["custom"]},"clientId":{"$ref":"#/components/schemas/GcpOAuthClientId"},"clientSecret":{"$ref":"#/components/schemas/GcpOAuthClientSecret"}},"required":["mode","clientId"]}]},"GcpOAuthClientSecret":{"type":"string","minLength":1,"maxLength":512,"description":"Google OAuth web client secret. Write-only; never returned by the API.","example":"GOCSPX-example"},"UpdateProject":{"type":"object","properties":{"gitRepository":{"type":"object","nullable":true,"properties":{"type":{"type":"string","enum":["github"],"description":"The Git Provider of the repository","example":"github"},"repo":{"type":"string","maxLength":128,"description":"The name of the git repository","example":"alien/my-agent"}},"required":["type","repo"],"additionalProperties":false,"description":"Verified source repository connected to the project. Alien uses this for GitHub Actions setup and source-aware features; releases are still created explicitly by CI or `alien release`."},"rootDirectory":{"type":"string","nullable":true,"maxLength":256,"description":"The name of a directory or relative path to the source code of your project. When null is used it will default to the project root"},"deploymentPortalAppearance":{"type":"object","nullable":true,"properties":{"avatarUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional project-specific avatar override for the deployment portal."},"preset":{"$ref":"#/components/schemas/DeploymentPortalAppearancePreset"},"accentColor":{"$ref":"#/components/schemas/DeploymentPortalAccentColor"},"title":{"type":"string","nullable":true,"maxLength":80,"description":"Optional portal title. Defaults to the project name."},"subtitle":{"type":"string","nullable":true,"maxLength":160,"description":"Optional customer-facing subtitle."},"supportUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional support or contact URL."},"docsUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional documentation URL."},"density":{"$ref":"#/components/schemas/DeploymentPortalDensity"}},"description":"Customer-facing deployment portal appearance settings."},"packagesConfig":{"type":"object","nullable":true,"properties":{"cli":{"type":"object","nullable":true,"properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"},"enabled":{"type":"boolean","description":"Whether CLI package generation is enabled"}},"required":["displayName","name","enabled"],"description":"CLI package configuration. If null, CLI packages will not be generated."},"cloudformation":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether CloudFormation package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"CloudFormation package configuration. If null, CloudFormation packages will not be generated."},"operatorImage":{"type":"object","nullable":true,"properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"},"enabled":{"type":"boolean","description":"Whether Operator image package generation is enabled"}},"required":["displayName","name","enabled"],"description":"Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated."},"helm":{"type":"object","nullable":true,"properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"},"enabled":{"type":"boolean","description":"Whether Helm chart package generation is enabled"}},"required":["chartName","description","enabled"],"description":"Helm chart package configuration. If null, Helm packages will not be generated."},"terraform":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether Terraform package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"Terraform package configuration. If null, Terraform packages will not be generated."}},"description":"Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform)"},"domainId":{"type":"string","nullable":true,"pattern":"dom_[0-9a-z]{28}$","description":"Selected domain for this project (null = default system domain)","example":"dom_469m0agk8luj4s16sakmmpdd"},"defaultManagers":{"type":"object","nullable":true,"properties":{"aws":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"gcp":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"azure":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"kubernetes":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"machines":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"local":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"}},"description":"Project default private managers for new push deployments."}}},"DeploymentPortalDomainResponse":{"type":"object","properties":{"deploymentPortalEndpoint":{"$ref":"#/components/schemas/DomainEndpoint"},"packageEndpoint":{"$ref":"#/components/schemas/DomainEndpoint"}},"required":["deploymentPortalEndpoint","packageEndpoint"]},"DomainEndpoint":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"dend_[0-9a-z]{28}$","description":"Unique identifier for the domain endpoint.","example":"dend_1bb6gdvm1bs74acqkjstcgv"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"domainId":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"kind":{"$ref":"#/components/schemas/DomainEndpointKind"},"owner":{"$ref":"#/components/schemas/DomainEndpointOwner"},"hostname":{"type":"string","minLength":1,"maxLength":253},"status":{"$ref":"#/components/schemas/DomainEndpointStatus"},"provider":{"type":"string","nullable":true},"providerState":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"managedDnsRecords":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentPortalManagedDnsRecord"}},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},"lockedAt":{"type":"string","format":"date-time","nullable":true},"lockedBy":{"type":"string","nullable":true},"retryAttempts":{"type":"integer","minimum":0},"nextStepAfter":{"type":"string","format":"date-time","nullable":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","workspaceId","domainId","kind","owner","hostname","status","managedDnsRecords","retryAttempts","createdAt","updatedAt"]},"DomainEndpointKind":{"type":"string","enum":["deployment_portal","workspace_packages","manager_api","deployment_url_base"]},"DomainEndpointOwner":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/DomainEndpointOwnerType"},"id":{"type":"string"}},"required":["type","id"]},"DomainEndpointOwnerType":{"type":"string","enum":["workspace","project","manager"]},"DomainEndpointStatus":{"type":"string","enum":["waiting_for_domain","provisioning","waiting_for_dns","waiting_for_health","active","failed","deleting"]},"DeploymentPortalManagedDnsRecord":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"value":{"type":"string"},"ttl":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true}},"required":["name","type","value"]},"DeploymentLinkSetupResponse":{"type":"object","properties":{"activeRelease":{"type":"object","properties":{"id":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"version":{"type":"string","nullable":true},"stack":{"allOf":[{"$ref":"#/components/schemas/StackByPlatform"}],"nullable":true}},"required":["id","version","stack"]},"visiblePackageTypes":{"type":"array","items":{"type":"string","enum":["cli","cloudformation","helm","operator-image","terraform"],"description":"Types of packages that can be built"}},"visibleSetupMethods":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentSetupMethod"}}},"required":["activeRelease","visiblePackageTypes","visibleSetupMethods"]},"StackByPlatform":{"type":"object","properties":{"aws":{"nullable":true},"gcp":{"nullable":true},"azure":{"nullable":true},"kubernetes":{"nullable":true},"machines":{"nullable":true},"local":{"nullable":true},"test":{"nullable":true}},"additionalProperties":false},"DeploymentSetupMethod":{"type":"string","enum":["cloudformation","google-oauth","terraform","helm","cli","manual"]},"DeploymentGroup":{"type":"object","properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"maxDeployments":{"type":"integer","minimum":1,"default":100,"description":"Maximum number of deployments allowed in this deployment group"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","projectId","workspaceId","createdAt"]},"CreateDeploymentGroupRequest":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"project":{"type":"string","maxLength":100,"description":"Project ID or name this deployment group belongs to"},"maxDeployments":{"type":"integer","minimum":1,"default":100,"description":"Maximum number of deployments in this deployment group"}},"required":["name","project"]},"EnsureDeploymentGroupByNameRequest":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"project":{"type":"string","maxLength":100,"description":"Project ID or name this deployment group belongs to"},"maxDeployments":{"type":"integer","minimum":1,"default":100,"description":"Maximum number of deployments for newly created groups"}},"required":["name","project"]},"ProjectIDOrNameQueryParam":{"type":"string","maxLength":100,"description":"Filter by project ID or name."},"UpdateDeploymentGroupRequest":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"maxDeployments":{"type":"integer","minimum":1,"description":"Maximum number of deployments in this deployment group"}}},"CreateDeploymentGroupTokenResponse":{"type":"object","properties":{"token":{"type":"string","description":"The API key token"},"deploymentLink":{"type":"string","description":"Formatted deployment link"}},"required":["token","deploymentLink"]},"CreateDeploymentGroupTokenRequest":{"type":"object","properties":{"description":{"type":"string","description":"Description for the API key"},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"Optional expiration date for the API key"},"deploymentSetupConfig":{"$ref":"#/components/schemas/DeploymentSetupConfig"},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"}},"required":["deploymentSetupConfig"]},"DeploymentSetupConfig":{"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"environmentVariables":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"}},"inputValues":{"$ref":"#/components/schemas/EncryptedStackInputValues"},"publicSubdomain":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","description":"Operator-pinned deployment subdomain for this setup token."}},"required":["metadata","policy","environmentVariables"]},"DeploymentSetupMetadata":{"type":"object","additionalProperties":{"nullable":true}},"DeploymentSetupPolicy":{"type":"object","properties":{"allowedPlatforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."}},"allowedKubernetesBasePlatforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","on-prem"]},"minItems":1,"description":"Kubernetes base environments the recipient may target."},"allowedKubernetesClusterSources":{"type":"array","items":{"$ref":"#/components/schemas/KubernetesClusterSource"},"minItems":1,"description":"Whether recipients may create a cluster, use an existing cluster, or both."},"allowedSetupMethods":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentSetupMethod"}},"allowReleasePinning":{"type":"boolean"},"stackSettings":{"$ref":"#/components/schemas/DeploymentSetupStackSettingsPolicy"}},"required":["allowedPlatforms","allowedSetupMethods"]},"KubernetesClusterSource":{"type":"string","enum":["create","existing"]},"DeploymentSetupStackSettingsPolicy":{"type":"object","properties":{"defaults":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."},"allowedDeploymentModels":{"type":"array","items":{"type":"string","enum":["push","pull","airgapped"]}},"allowedNetworkModes":{"type":"array","items":{"type":"string","enum":["none","create","default","byo"]}},"allowedUpdatesModes":{"type":"array","items":{"type":"string","enum":["auto","approval-required"]}},"allowedTelemetryModes":{"type":"array","items":{"type":"string","enum":["auto","approval-required","off"]}},"allowedHeartbeatsModes":{"type":"array","items":{"type":"string","enum":["on","off"]}},"allowExternalBindings":{"type":"boolean"},"allowCustomRegistry":{"type":"boolean"}}},"EnvironmentVariableConfig":{"type":"object","properties":{"name":{"type":"string","pattern":"^[A-Z_][A-Z0-9_]*$","description":"Variable name"},"value":{"type":"string","maxLength":10000,"description":"Variable value (encrypted in database)"},"type":{"$ref":"#/components/schemas/EnvironmentVariableType"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string","pattern":"^[a-zA-Z0-9_-]+(\\*)?$"},"description":"Target resource patterns (null = all resources, array = wildcard patterns)"}},"required":["name","value","type","targetResources"]},"EnvironmentVariableType":{"type":"string","enum":["plain","secret"],"description":"Variable type (plain or secret)"},"EncryptedStackInputValues":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/EncryptedStackInputValue"},"default":{}},"EncryptedStackInputValue":{"type":"object","properties":{"value":{"type":"string","description":"Encrypted JSON-encoded input value."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"]},"secret":{"type":"boolean","description":"Whether the original input is secret."}},"required":["value","kind","secret"]},"StackInputValuesRequest":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/StackInputValueRequest"},"default":{}},"StackInputValueRequest":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"CreateFirstPartyDeploymentSessionResponse":{"type":"object","properties":{"token":{"type":"string","description":"The deployment-group session token"}},"required":["token"]},"Package":{"type":"object","properties":{"id":{"type":"string","pattern":"pkg_[0-9a-z]{28}$","description":"Unique identifier for the package.","example":"pkg_jebo2o5jmm7raefl2m1pe3cz"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"type":{"type":"string","enum":["cli","cloudformation","helm","operator-image","terraform"],"description":"Types of packages that can be built"},"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"version":{"type":"string","description":"Package version (e.g., '1.0.0', 'rel_abc123')"},"sourceReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Release used as package build input. Null for release-less packages such as Operate Operator images.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"setupFingerprints":{"$ref":"#/components/schemas/SetupFingerprintMap"},"packageBuildInputHash":{"type":"string","description":"Hash of Platform-known package build request inputs: package type, source release, setup fingerprints, package config, and setup contract version"},"config":{"oneOf":[{"allOf":[{"type":"object","properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"}},"required":["displayName","name"],"description":"Branding configuration for the deploy CLI binary."},{"type":"object","properties":{"type":{"type":"string","enum":["cli"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts."},"supportedAwsRegions":{"type":"array","items":{"type":"string"},"description":"AWS regions supported by the environment that built this package."}},"description":"Configuration for CloudFormation packages"},{"type":"object","properties":{"type":{"type":"string","enum":["cloudformation"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"}},"required":["chartName","description"],"description":"Configuration for the Helm chart package"},{"type":"object","properties":{"type":{"type":"string","enum":["helm"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"}},"required":["displayName","name"],"description":"Branding configuration for the Operator image."},{"type":"object","properties":{"type":{"type":"string","enum":["operator-image"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts."},"supportedAwsRegions":{"type":"array","items":{"type":"string"},"description":"AWS regions supported by the environment that built this package."}},"description":"Configuration for Terraform package generation."},{"type":"object","properties":{"type":{"type":"string","enum":["terraform"]}},"required":["type"]}]}],"description":"Type-specific configuration"},"outputs":{"oneOf":[{"allOf":[{"type":"object","properties":{"binaries":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sha256":{"type":"string","description":"SHA256 checksum"},"size":{"type":"integer","minimum":0,"description":"File size in bytes"},"url":{"type":"string","description":"Download URL for the binary"}},"required":["sha256","size","url"],"description":"Information about a single binary artifact"},"description":"Binary information for each target platform"},"buildInfo":{"type":"object","properties":{"alienSha":{"type":"string","description":"Alien source commit used to build the source CLI and agent binaries."},"horizonSha":{"type":"string","description":"Compute backend source revision used by optional package extensions, if applicable."},"machineBundleManifestUrl":{"type":"string","nullable":true,"description":"Machine runtime release manifest embedded into the generated CLI."},"platformSha":{"type":"string","description":"Source revision used to build the package service and optional extensions."},"sourceAgentBinarySha256":{"type":"string","nullable":true,"description":"SHA256 checksum of the source runtime helper binary shipped with the CLI package, when present."},"sourceCliBinarySha256":{"type":"string","description":"SHA256 checksum of the source deploy CLI binary before white-label config is appended."}},"required":["alienSha","horizonSha","platformSha","sourceCliBinarySha256"],"description":"Source provenance for a generated CLI package."}},"required":["binaries","buildInfo"],"description":"Outputs from a CLI package build"},{"type":"object","properties":{"type":{"type":"string","enum":["cli"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"digest":{"type":"string","description":"Image digest (e.g., \"sha256:abc123...\")"},"image":{"type":"string","description":"Full image reference (e.g., \"public.ecr.aws/acme/operators/project-id:1.2.3\")"},"labelDomain":{"type":"string","nullable":true,"description":"DNS-style label domain embedded into the Operator binary, if whitelabeled."}},"required":["digest","image"],"description":"Outputs from an Operator image package build"},{"type":"object","properties":{"type":{"type":"string","enum":["operator-image"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"chart":{"type":"string","description":"OCI chart reference (e.g., \"oci://public.ecr.aws/acme/charts/project-id\")"},"version":{"type":"string","description":"Chart version (e.g., \"1.2.3\")"}},"required":["chart","version"],"description":"Outputs from a Helm chart package build"},{"type":"object","properties":{"type":{"type":"string","enum":["helm"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"targets":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"launchStackUrl":{"type":"string","description":"AWS Console quick-launch URL"},"sha256":{"type":"string","description":"SHA256 checksum of the template"},"size":{"type":"integer","minimum":0,"description":"Template size in bytes"},"stackPolicyUrl":{"type":"string","description":"S3 URL to the CloudFormation stack policy"},"target":{"type":"string","description":"CloudFormation target (aws, eks)"},"templateUrl":{"type":"string","description":"S3 URL to the CloudFormation template"}},"required":["launchStackUrl","sha256","size","stackPolicyUrl","target","templateUrl"],"description":"Information about a single CloudFormation template package for one target."},"description":"Template artifacts by CloudFormation target."}},"required":["targets"],"description":"Outputs from a CloudFormation package build."},{"type":"object","properties":{"type":{"type":"string","enum":["cloudformation"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"modules":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL for the module archive"},"filename":{"type":"string","description":"Filename of the module archive"},"shasum":{"type":"string","description":"SHA256 checksum of the archive"},"size":{"type":"integer","minimum":0,"description":"Size of the archive in bytes"},"source":{"type":"string","description":"Terraform module source (hostname/namespace/name/provider, without scheme)"},"target":{"type":"string","description":"Terraform module target (aws, gcp, azure, eks, gke, aks)"},"variables":{"type":"array","items":{"type":"string"},"description":"Terraform input variables exposed by this module."}},"required":["downloadUrl","filename","shasum","size","source","target"],"description":"Information about a single Terraform module package for one target."},"description":"Module registry artifacts by Terraform target."},"provider":{"type":"object","properties":{"gpgPublicKey":{"type":"object","properties":{"asciiArmor":{"type":"string","description":"ASCII-armored public key"},"keyId":{"type":"string","description":"GPG key ID"}},"required":["asciiArmor","keyId"],"description":"GPG public key for Terraform provider signature verification"},"platforms":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL for the provider zip"},"filename":{"type":"string","description":"Filename of the provider zip"},"shasum":{"type":"string","description":"SHA256 checksum of the zip file"},"shasumsSignatureUrl":{"type":"string","description":"URL to the shasums signature file"},"shasumsUrl":{"type":"string","description":"URL to the shasums file"},"size":{"type":"integer","minimum":0,"description":"Size of the zip file in bytes"}},"required":["downloadUrl","filename","shasum","shasumsSignatureUrl","shasumsUrl","size"],"description":"Information about a single Terraform provider package for a specific platform"},"description":"Provider packages for each target platform"},"source":{"type":"string","description":"Terraform provider source (hostname/namespace/type, without scheme)"}},"required":["gpgPublicKey","platforms","source"],"description":"Terraform provider registry outputs."}},"required":["modules","provider"],"description":"Outputs from a Terraform package build."},{"type":"object","properties":{"type":{"type":"string","enum":["terraform"]}},"required":["type"]}]},{"nullable":true}],"description":"Package outputs (only when status is 'ready')"},"error":{"nullable":true,"description":"Error information if status is 'failed'"},"sourceBinarySha256":{"type":"string","nullable":true,"description":"Builder-recorded source binary SHA256 (for cli/terraform packages)"},"retries":{"type":"integer","minimum":0,"description":"Number of build retries"},"lockedAt":{"type":"string","format":"date-time","nullable":true},"lockedBy":{"type":"string","nullable":true},"leaseExpiresAt":{"type":"string","format":"date-time","nullable":true,"description":"Expiration of the current builder lease"},"buildPhase":{"type":"string","nullable":true,"enum":["building","publishing",null],"description":"Coarse package build phase"},"lastProgressAt":{"type":"string","format":"date-time","nullable":true,"description":"Last successful builder lease renewal or phase change"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"completedAt":{"type":"string","format":"date-time","nullable":true}},"required":["id","projectId","workspaceId","type","status","version","setupFingerprints","packageBuildInputHash","config","retries","createdAt","updatedAt"]},"SetupFingerprintMap":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/SetupFingerprintInfo"},"description":"Per-target setup compatibility fingerprints copied from the source release"},"SetupFingerprintInfo":{"type":"object","properties":{"target":{"$ref":"#/components/schemas/SetupTarget"},"fingerprint":{"$ref":"#/components/schemas/SetupFingerprint"},"version":{"$ref":"#/components/schemas/SetupFingerprintVersion"}},"required":["target","fingerprint","version"]},"SetupTarget":{"type":"string","minLength":1,"description":"Stable target key for the setup contract, e.g. aws/us-east-1"},"SetupFingerprint":{"type":"string","minLength":1,"description":"Deterministic setup contract fingerprint for one setup target"},"SetupFingerprintVersion":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Setup fingerprint algorithm version"},"ReleaseListItemResponse":{"allOf":[{"$ref":"#/components/schemas/Release"},{"type":"object","properties":{"currentChannels":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseChannelName"},"description":"Channels for which this release is currently selected"},"commitUrl":{"type":"string","nullable":true,"format":"uri","description":"Validated canonical provider URL for the exact commit"},"project":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"Project ID"},"name":{"type":"string","description":"Project name"}},"required":["id","name"],"description":"Project info, included when ?include=project is used"},"rollout":{"type":"object","nullable":true,"properties":{"updatedCount":{"type":"integer","description":"Deployments that finished updating to this release (excludes initial provisions)"},"pendingCount":{"type":"integer","description":"Deployments currently targeting this release but not yet running it"},"avgDurationMs":{"type":"number","nullable":true,"description":"Average time from release creation until a deployment finished updating, in milliseconds"}},"required":["updatedCount","pendingCount","avgDurationMs"],"description":"Rollout stats, included when ?include=rollout is used"},"createdBy":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"User ID"},"name":{"type":"string","description":"User's display name"},"email":{"type":"string","description":"User's email address"},"image":{"type":"string","nullable":true,"description":"User's avatar image URL"}},"required":["id","name","email","image"],"description":"Platform user who created the release, included when ?include=createdBy is used"}},"required":["currentChannels","commitUrl"]}]},"ReleaseChannelName":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z][a-z0-9-]*$"},"Release":{"type":"object","properties":{"id":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"projectId":{"type":"string","maxLength":128},"version":{"type":"string","minLength":1,"maxLength":256},"gitMetadata":{"$ref":"#/components/schemas/GitMetadata"},"createdAt":{"type":"string","format":"date-time"},"stack":{"allOf":[{"$ref":"#/components/schemas/StackByPlatform"}],"nullable":true},"setupFingerprints":{"allOf":[{"$ref":"#/components/schemas/SetupFingerprintMap"},{"description":"Per-target setup compatibility fingerprints for this release"}]},"rootDirectory":{"type":"string","nullable":true,"maxLength":256},"createdByUserId":{"type":"string","nullable":true,"maxLength":128,"description":"ID of the platform user who created the release, if known"},"workspaceId":{"type":"string","maxLength":128}},"required":["id","projectId","version","createdAt","setupFingerprints","workspaceId"]},"CreateReleaseRequest":{"type":"object","properties":{"project":{"type":"string","maxLength":100,"description":"Project ID or name"},"version":{"type":"string","minLength":1,"maxLength":256},"gitMetadata":{"$ref":"#/components/schemas/GitMetadata"},"stack":{"$ref":"#/components/schemas/StackByPlatform"},"rootDirectory":{"type":"string","nullable":true,"maxLength":256},"channel":{"allOf":[{"$ref":"#/components/schemas/ReleaseChannelName"},{"description":"Release channel to advance. Defaults to production."}]}},"required":["project"]},"ReleaseAuthorFilterItem":{"type":"object","properties":{"login":{"type":"string","nullable":true,"description":"Provider username (e.g., GitHub login)"},"name":{"type":"string","nullable":true,"description":"Git commit author name"},"avatarUrl":{"type":"string","nullable":true,"format":"uri","description":"Author avatar URL"}},"required":["login","name","avatarUrl"]},"ReleaseDeploymentsResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseDeploymentItem"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"},"stateCounts":{"$ref":"#/components/schemas/ReleaseRolloutStateCounts"}},"required":["items","nextCursor","stateCounts"]},"ReleaseDeploymentItem":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"deploymentGroup":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"}},"required":["id","name"],"description":"Deployment group this deployment belongs to"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the currently deployed release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the desired release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat"},"rolloutState":{"$ref":"#/components/schemas/ReleaseRolloutState"},"releasedAt":{"type":"string","format":"date-time","nullable":true,"description":"When this release went live on the deployment, null if it never did"},"durationMs":{"type":"integer","nullable":true,"description":"Time from release creation until the deployment finished updating, in milliseconds. Null for initial provisions and deployments that never ran this release."},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Latest error information if the deployment is in a failed state"}},"required":["id","name","status","platform","rolloutState","releasedAt","durationMs"]},"ReleaseRolloutState":{"type":"string","enum":["updated","updating","failed","pending","pinned-other","superseded","on-other"]},"ReleaseRolloutStateCounts":{"type":"object","properties":{"updated":{"type":"integer"},"updating":{"type":"integer"},"failed":{"type":"integer"},"pending":{"type":"integer"},"pinned-other":{"type":"integer"},"superseded":{"type":"integer"},"on-other":{"type":"integer"}},"required":["updated","updating","failed","pending","pinned-other","superseded","on-other"],"description":"Deployment counts per rollout state across all deployments the filters allow (ignores the state filter)"},"ReleaseChannel":{"type":"object","properties":{"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"name":{"$ref":"#/components/schemas/ReleaseChannelName"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"deploymentCount":{"type":"integer","minimum":0},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["workspaceId","projectId","name","currentReleaseId","createdAt","updatedAt"]},"DeploymentListItemResponse":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"deploymentProtocolVersion":{"$ref":"#/components/schemas/DeploymentProtocolVersion"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"ID of deployment group this deployment belongs to","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the currently deployed release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the desired release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"releaseChannel":{"allOf":[{"$ref":"#/components/schemas/ReleaseChannelName"},{"description":"Named release stream followed when the deployment is not pinned"}]},"importSource":{"type":"string","nullable":true,"enum":["cloudformation","terraform","helm",null],"description":"Setup source that imported this deployment"},"setupMethod":{"type":"string","nullable":true,"enum":["cloudformation","google-oauth","terraform","helm","cli","manual",null],"description":"Setup method that created the deployment record."},"setupMetadata":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Setup method metadata needed to guide privileged teardown."},"setupTarget":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup target for compatibility checks"},"setupFingerprint":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup compatibility fingerprint"},"setupFingerprintVersion":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Imported setup fingerprint version"},"operatorScope":{"type":"string","nullable":true,"description":"Display-only scope reported by the Operator manifest"},"operatorPermission":{"type":"string","nullable":true,"description":"Display-only permission tier reported by the Operator manifest"},"operatorVersion":{"type":"string","nullable":true,"description":"Version reported by the Operator"},"capabilities":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OperatorCapabilityReport"},"description":"Capability state reported by the Operator"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat"},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Latest error information if in a failed state"},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"managerId":{"$ref":"#/components/schemas/ManagerID"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"release":{"$ref":"#/components/schemas/DeploymentReleaseInfo"},"deploymentGroup":{"$ref":"#/components/schemas/DeploymentGroupInfo"},"project":{"$ref":"#/components/schemas/DeploymentProjectInfo"}},"required":["id","name","status","projectId","platform","deploymentProtocolVersion","deploymentGroupId","releaseChannel","retryRequested","createdAt","updatedAt","managerId","workspaceId"]},"DeploymentProtocolVersion":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"DeploymentState protocol version owned by the runtime/manager"},"OperatorCapabilityReport":{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":128},"state":{"$ref":"#/components/schemas/OperatorCapabilityState"},"detail":{"type":"string","nullable":true,"maxLength":512}},"required":["key","state"]},"OperatorCapabilityState":{"type":"string","enum":["granted","denied","unavailable"]},"ManagerID":{"type":"string","pattern":"mgr_[0-9a-z]{28}$","description":"ID of the manager","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"DeploymentReleaseInfo":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"version":{"type":"string","minLength":1,"maxLength":256},"gitMetadata":{"$ref":"#/components/schemas/GitMetadata"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","version","createdAt"]},"DeploymentGroupInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"}},"required":["id","name"]},"DeploymentProjectInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Project name.","example":"my-app"}},"required":["id","name"]},"DeploymentStats":{"type":"object","properties":{"total":{"type":"number","description":"Total number of deployments matching filters"},"byStatus":{"type":"object","additionalProperties":{"type":"number"},"description":"Count of deployments by status (only includes statuses with non-zero counts)"},"byPlatform":{"type":"object","additionalProperties":{"type":"number"},"description":"Count of deployments by platform (only includes platforms with non-zero counts)"},"byCurrentRelease":{"type":"object","additionalProperties":{"type":"number"},"description":"Count of deployments by currentReleaseId. The empty string key represents deployments with no current release (initial provisioning)."},"byPinnedRelease":{"type":"object","additionalProperties":{"type":"number"},"description":"Count of deployments by pinnedReleaseId among deployments that are pinned. Excludes unpinned deployments."}},"required":["total","byStatus","byPlatform","byCurrentRelease","byPinnedRelease"]},"DeploymentDetailResponse":{"allOf":[{"$ref":"#/components/schemas/Deployment"},{"type":"object","properties":{"release":{"$ref":"#/components/schemas/DeploymentReleaseInfo"},"deploymentGroup":{"$ref":"#/components/schemas/DeploymentGroupInfo"},"project":{"$ref":"#/components/schemas/DeploymentProjectInfo"}}}]},"Deployment":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!ag[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment name.","example":"acme-prod"},"publicSubdomain":{"type":"string","nullable":true,"minLength":1,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","description":"Public subdomain for auto-generated domains"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"basePlatform":{"type":"string","nullable":true,"enum":["aws","gcp","azure",null],"description":"Underlying cloud platform for Kubernetes deployments."},"region":{"type":"string","nullable":true,"description":"Cloud region or location for the deployment."},"deploymentProtocolVersion":{"$ref":"#/components/schemas/DeploymentProtocolVersion"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"ID of deployment group this deployment belongs to","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-provided configuration (network, deployment model, approvals)"},"stackState":{"type":"object","nullable":true,"properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"State of infrastructure components managed by this deployment"},"runtimeMetadata":{"type":"object","nullable":true,"properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment state persistence"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the currently deployed release (actual state)","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the desired release for deployment/update (desired state)","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"releaseChannel":{"allOf":[{"$ref":"#/components/schemas/ReleaseChannelName"},{"description":"Named release stream followed when the deployment is not pinned"}]},"importSource":{"type":"string","nullable":true,"enum":["cloudformation","terraform","helm",null],"description":"Setup source that imported this deployment"},"setupMethod":{"type":"string","nullable":true,"enum":["cloudformation","google-oauth","terraform","helm","cli","manual",null],"description":"Setup method that created the deployment record and owns setup-time resources."},"setupMetadata":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Setup method metadata needed to guide privileged teardown."},"setupTarget":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup target for compatibility checks"},"setupFingerprint":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup compatibility fingerprint"},"setupFingerprintVersion":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Imported setup fingerprint algorithm version"},"operatorScope":{"type":"string","nullable":true,"description":"Display-only scope reported by the Operator manifest"},"operatorPermission":{"type":"string","nullable":true,"description":"Display-only permission tier reported by the Operator manifest"},"operatorVersion":{"type":"string","nullable":true,"description":"Version reported by the Operator"},"capabilities":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OperatorCapabilityReport"},"description":"Capability state reported by the Operator"},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat from the deployment"},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Latest error information if the deployment is in a failed state"},"environmentVariables":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"},"description":"Configuration of environment variables for the deployment"},"targetEnvironmentVariables":{"type":"object","nullable":true,"properties":{"variables":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"},"description":"Environment variables in the snapshot"},"hash":{"type":"string","description":"Deterministic hash of all variables for change detection"},"createdAt":{"type":"string","format":"date-time","description":"ISO 8601 timestamp when snapshot was created"}},"required":["variables","hash","createdAt"],"description":"Snapshot of target environment variables for the deployment"},"currentEnvironmentVariables":{"type":"object","nullable":true,"properties":{"variables":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"},"description":"Environment variables in the snapshot"},"hash":{"type":"string","description":"Deterministic hash of all variables for change detection"},"createdAt":{"type":"string","format":"date-time","description":"ISO 8601 timestamp when snapshot was created"}},"required":["variables","hash","createdAt"],"description":"Snapshot of current environment variables for the deployment"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"ID of the manager responsible for this deployment"}]},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"}},"required":["id","name","status","projectId","platform","deploymentProtocolVersion","deploymentGroupId","stackSettings","releaseChannel","retryRequested","createdAt","updatedAt","managerId","workspaceId"]},"DeploymentConnectionInfo":{"type":"object","properties":{"arc":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Manager URL for commands"},"deploymentId":{"type":"string","description":"Deployment ID to use in command requests"}},"required":["url","deploymentId"]},"resources":{"type":"object","additionalProperties":{"type":"object","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."},"publicEndpoints":{"type":"object","additionalProperties":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"protocol":{"type":"string","enum":["http","tcp"]},"host":{"type":"string","minLength":1},"port":{"type":"integer","minimum":1,"maximum":65535},"wildcardHost":{"type":"string"}},"required":["url","protocol","host","port"]},"description":"Public endpoints keyed by endpoint name."}},"required":["type"]},"description":"Deployed resources and their public endpoints"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"platform":{"type":"string"}},"required":["arc","resources","status","platform"]},"CreateDeploymentResponse":{"type":"object","properties":{"deployment":{"$ref":"#/components/schemas/Deployment"},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Effective deployment model persisted for the deployment."},"token":{"type":"string","description":"Deployment token (only returned when using deployment group token)"}},"required":["deployment","deploymentModel"]},"NewDeploymentRequest":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!ag[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment name.","example":"acme-prod"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"deploymentGroupId":{"type":"string","description":"Required for workspace/project tokens. Deployment group tokens use their own group automatically."},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Optional manager to assign. If omitted, the project default or system manager is selected."}]},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"environmentVariables":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"},"description":"Configuration of environment variables for the deployment"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"project":{"type":"string","maxLength":100,"description":"Project ID or name"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"Stack settings for deployment customization"},"resourcePrefix":{"$ref":"#/components/schemas/ResourcePrefix"},"publicSubdomain":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","description":"Optional deployment subdomain under the project's generated-domain parent. Operator-only and requires a custom project domain; customer deploy-link tokens and the shared system domain are rejected. Omit to generate a random subdomain."},"setupMethod":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMethod"},{"description":"Setup method that created the deployment. Defaults to cli."}]},"setupMetadata":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMetadata"},{"description":"Setup method metadata used to guide privileged teardown."}]},"inputValues":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/StackInputValueRequest"},"default":{},"description":"Stack input values provided by the deployment creator."},"operatorScope":{"type":"string","minLength":1,"maxLength":512,"description":"Display-only scope reported by the Operator manifest."},"operatorPermission":{"type":"string","minLength":1,"maxLength":64,"description":"Display-only permission tier reported by the Operator manifest."},"initialDesiredRelease":{"type":"string","enum":["active","none"],"default":"active","description":"Desired-release selection for a new deployment. Use none to register an environment without initially requesting a release; later updates can assign one."},"releaseChannel":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z][a-z0-9-]*$","default":"production","description":"Release channel followed while this deployment is not pinned."}},"required":["name","platform","project"],"additionalProperties":false,"description":"Request schema for creating a new deployment"},"ResourcePrefix":{"type":"string","pattern":"^[a-z](?:[a-z0-9]|-(?=[a-z0-9])){1,38}[a-z0-9]$","description":"Optional physical-name prefix for generated cloud resources. Omit to let the manager generate one."},"ImportDeploymentRequest":{"oneOf":[{"$ref":"#/components/schemas/ForwardImportRequest"},{"$ref":"#/components/schemas/PersistImportedDeploymentRequest"}],"description":"Request schema for importing a deployment from resolved setup infrastructure"},"ForwardImportRequest":{"type":"object","properties":{"mode":{"type":"string","enum":["forward"],"default":"forward"},"project":{"type":"string","maxLength":100,"description":"Project ID or name. Required for user-session callers."},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Required for user-session callers. Deployment-group tokens use their own group automatically.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Manager ID. If omitted, the first suitable manager for the source platform is used."}]},"source":{"$ref":"#/components/schemas/ImportSource"},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"}},"required":["source"]},"ImportSource":{"type":"object","properties":{"deploymentName":{"type":"string","minLength":1,"description":"User-chosen deployment name. Must be unique within the deployment group; the manager returns 409 on collision."},"resourcePrefix":{"allOf":[{"$ref":"#/components/schemas/ResourcePrefix"},{"description":"Stable physical-name prefix used by the setup artifact."}]},"sourceKind":{"$ref":"#/components/schemas/ImportSourceKind"},"setupMetadata":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMetadata"},{"description":"Setup source metadata needed to guide privileged teardown."}]},"releaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Release that produced the setup artifact. Defaults to latest.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Cloud platform of the imported stack"},"basePlatform":{"$ref":"#/components/schemas/KubernetesBasePlatform"},"region":{"type":"string","description":"Region or location reported by the setup artifact"},"setupTarget":{"allOf":[{"$ref":"#/components/schemas/SetupTarget"},{"description":"Setup target this package was generated for"}]},"setupImportFormatVersion":{"$ref":"#/components/schemas/SetupImportFormatVersion"},"setupFingerprint":{"allOf":[{"$ref":"#/components/schemas/SetupFingerprint"},{"description":"Setup compatibility fingerprint embedded in the package"}]},"setupFingerprintVersion":{"allOf":[{"$ref":"#/components/schemas/SetupFingerprintVersion"},{"description":"Setup fingerprint algorithm version embedded in the package"}]},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}],"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."},"resources":{"type":"array","items":{"$ref":"#/components/schemas/ImportedResource"},"minItems":1}},"required":["deploymentName","resourcePrefix","platform","region","setupTarget","setupImportFormatVersion","setupFingerprint","setupFingerprintVersion","stackSettings","resources"],"description":"Resolved setup import payload"},"ImportSourceKind":{"type":"string","enum":["cloudformation","terraform","helm"],"description":"Source label for observability only — does not affect import behavior."},"KubernetesBasePlatform":{"type":"string","enum":["aws","gcp","azure"],"description":"Base cloud platform for cloud-backed Kubernetes imports."},"SetupImportFormatVersion":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Setup import payload format version embedded in the package"},"ImportedResource":{"type":"object","properties":{"id":{"type":"string","description":"Resource id from the active stack"},"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."},"importData":{"type":"object","additionalProperties":{"nullable":true},"description":"Resolved typed import payload"}},"required":["id","type","importData"]},"PersistImportedDeploymentRequest":{"type":"object","properties":{"mode":{"type":"string","enum":["persist"]},"name":{"type":"string","minLength":1,"description":"Deployment name. Must be unique within the deployment group."},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"publicSubdomain":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","description":"Optional deployment subdomain under the project's generated-domain parent. Operator-only and requires a custom project domain; customer deploy-link tokens and the shared system domain are rejected. Omit to generate a random subdomain."},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"basePlatform":{"$ref":"#/components/schemas/KubernetesBasePlatform"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."},"stackState":{"nullable":true},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Platform-specific environment information"},"runtimeMetadata":{"type":"object","properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment\n\nStores deployment state that needs to persist across step calls."},"scheduleReconciliation":{"type":"boolean","default":false},"deploymentProtocolVersion":{"$ref":"#/components/schemas/DeploymentProtocolVersion"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"default":"provisioning","description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"currentReleaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"importSource":{"allOf":[{"$ref":"#/components/schemas/ImportSourceKind"},{"description":"Package source that produced the import payload"}]},"setupMetadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"setupTarget":{"$ref":"#/components/schemas/SetupTarget"},"setupFingerprint":{"$ref":"#/components/schemas/SetupFingerprint"},"setupFingerprintVersion":{"$ref":"#/components/schemas/SetupFingerprintVersion"},"deploymentToken":{"type":"string"},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]}],"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."},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"}},"required":["mode","name","deploymentGroupId","managerId","platform","stackSettings","runtimeMetadata","deploymentProtocolVersion","setupTarget","setupFingerprint","setupFingerprintVersion"]},"SetFirstPartyDeploymentInputsResponse":{"type":"object","properties":{"ok":{"type":"boolean"}},"required":["ok"]},"SetFirstPartyDeploymentInputsRequest":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"}},"required":["platform"]},"SetupRegistrationOperationResponse":{"type":"object","properties":{"id":{"type":"string","pattern":"setupop_[0-9a-z]{28}$","description":"Unique identifier for the setup registration operation.","example":"setupop_y41lqnfosxuwqkzmiax7"},"action":{"$ref":"#/components/schemas/SetupRegistrationAction"},"sourceKind":{"allOf":[{"$ref":"#/components/schemas/ImportSourceKind"},{"description":"Package source that produced the import payload"}]},"status":{"$ref":"#/components/schemas/SetupRegistrationOperationStatus"},"deploymentId":{"type":"string","nullable":true,"pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"physicalResourceId":{"type":"string","nullable":true},"result":{"$ref":"#/components/schemas/SetupRegistrationOperationResult"},"error":{"type":"object","nullable":true,"properties":{"message":{"type":"string"},"retryable":{"type":"boolean"}},"required":["message","retryable"]}},"required":["id","action","sourceKind","status","deploymentId","physicalResourceId","result","error"]},"SetupRegistrationAction":{"type":"string","enum":["create","update","delete"]},"SetupRegistrationOperationStatus":{"type":"string","enum":["pending","processing","waiting-for-handoff","succeeded","failed","responding","responded"]},"SetupRegistrationOperationResult":{"type":"object","nullable":true,"properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"deploymentToken":{"type":"string","nullable":true},"helmValues":{"type":"string","nullable":true}},"required":["deploymentId","deploymentToken","helmValues"]},"CreateSetupRegistrationOperationRequest":{"type":"object","properties":{"action":{"$ref":"#/components/schemas/SetupRegistrationAction"},"sourceKind":{"allOf":[{"$ref":"#/components/schemas/ImportSourceKind"},{"description":"Package source that produced the import payload"}]},"source":{"allOf":[{"$ref":"#/components/schemas/ImportSource"}],"nullable":true},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"},"deploymentId":{"type":"string","nullable":true,"pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":512},"cloudFormation":{"$ref":"#/components/schemas/SetupRegistrationCloudFormationTarget"}},"required":["action","sourceKind"],"additionalProperties":false},"SetupRegistrationCloudFormationTarget":{"type":"object","nullable":true,"properties":{"stackId":{"type":"string","minLength":1},"requestId":{"type":"string","minLength":1},"logicalResourceId":{"type":"string","minLength":1},"responseUrl":{"type":"string","format":"uri"},"physicalResourceId":{"type":"string","nullable":true,"minLength":1},"serviceTimeoutSeconds":{"type":"integer","minimum":60,"maximum":7200,"default":3300}},"required":["stackId","requestId","logicalResourceId","responseUrl"],"additionalProperties":false},"DeleteDeploymentResponse":{"type":"object","properties":{"action":{"type":"string","enum":["cleanup","detach","forget"]},"message":{"type":"string"}},"required":["action","message"]},"DeleteDeploymentRequest":{"type":"object","properties":{"action":{"type":"string","enum":["cleanup","detach","forget"]}},"required":["action"]},"PinReleaseRequest":{"type":"object","properties":{"releaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Release ID to pin the deployment to. Set to null to resume its followed channel.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"}},"additionalProperties":false,"description":"Request schema for pinning/unpinning deployment release"},"DeploymentInputsResponse":{"type":"object","properties":{"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."}},"values":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/StackInputValueRequest"},"description":"Current non-secret input values. Secret values are never returned."},"providedInputIds":{"type":"array","items":{"type":"string"},"description":"Input IDs that currently have a value, including redacted secrets."}},"required":["inputs","values","providedInputIds"]},"UpdateDeploymentInputsResponse":{"allOf":[{"$ref":"#/components/schemas/DeploymentInputsResponse"},{"type":"object","properties":{"runtimeUpdateRequested":{"type":"boolean"}},"required":["runtimeUpdateRequested"]}]},"UpdateDeploymentInputsRequest":{"type":"object","properties":{"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"},"clearInputIds":{"type":"array","items":{"type":"string"},"default":[]}},"additionalProperties":false},"UpdateDeploymentEnvironmentVariablesRequest":{"type":"object","properties":{"variables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Variable name"},"value":{"type":"string","description":"Variable value"},"type":{"type":"string","enum":["plain","secret"],"description":"Variable type"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource patterns (null = all resources)"}},"required":["name","value","type"]},"description":"Environment variables for the deployment"}},"required":["variables"],"additionalProperties":false,"description":"Request schema for updating deployment environment variables"},"CreateDeploymentTokenResponse":{"type":"object","properties":{"token":{"type":"string","description":"The generated deployment token (only shown once)"},"deploymentId":{"type":"string","description":"The deployment ID that this token is scoped to"}},"required":["token","deploymentId"]},"CreateDeploymentTokenRequest":{"type":"object","properties":{"description":{"type":"string","nullable":true,"minLength":3,"maxLength":128,"description":"Optional description for the deployment token"},"expiresAt":{"type":"string","format":"date-time","nullable":true,"description":"Optional expiration date for the deployment token"}},"required":["description"]},"CreateManagerResponse":{"type":"object","properties":{"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"setupStatus":{"type":"string","enum":["pending"]},"setupToken":{"type":"string"},"setupTokenId":{"type":"string"},"deploymentLink":{"type":"string"},"setupConfig":{"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"inputValues":{"$ref":"#/components/schemas/EncryptedStackInputValues"},"publicSubdomain":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","description":"Operator-pinned deployment subdomain for this setup token."},"environmentVariables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string","enum":["plain","secret"]},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"}}},"required":["name","type","targetResources"]}}},"required":["metadata","policy","environmentVariables"]},"setup":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","enum":["cloudformation"]},"deploymentPortalUrl":{"type":"string"},"launchUrl":{"type":"string"},"templateUrl":{"type":"string"},"stackName":{"type":"string"},"region":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["method","deploymentPortalUrl","launchUrl","templateUrl","stackName","region","stackSettings"]},{"type":"object","properties":{"method":{"type":"string","enum":["google-oauth"]},"deploymentPortalUrl":{"type":"string"},"managerUrl":{"type":"string"},"oauthStartUrl":{"type":"string"},"region":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["method","deploymentPortalUrl","managerUrl","oauthStartUrl","region","stackSettings"]},{"type":"object","properties":{"method":{"type":"string","enum":["terraform"]},"deploymentPortalUrl":{"type":"string"},"managerUrl":{"type":"string"},"providerSource":{"type":"string"},"moduleSource":{"type":"string"},"moduleVersion":{"type":"string"},"moduleInputs":{"type":"object","additionalProperties":{"type":"string"}},"mainTf":{"type":"string"},"tfvars":{"type":"string"},"commands":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["method","deploymentPortalUrl","managerUrl","providerSource","moduleSource","moduleInputs","mainTf","tfvars","commands","stackSettings"]}]}},"required":["managerId","setupStatus","setupToken","setupTokenId","deploymentLink","setupConfig","setup"]},"NewManagerRequest":{"type":"object","properties":{"name":{"type":"string"},"cloud":{"$ref":"#/components/schemas/PrivateManagerCloud"},"region":{"type":"string","minLength":1,"maxLength":64,"description":"Cloud region for the manager."},"setupMethod":{"$ref":"#/components/schemas/PrivateManagerSetupMethod"},"network":{"type":"string","enum":["create","default"],"description":"Optional network mode for the private-manager setup. Defaults to create for production isolation; default uses the provider default network for faster dev/test setup."},"otlpConfig":{"type":"object","properties":{"logsEndpoint":{"type":"string","format":"uri","description":"External OTLP logs endpoint (e.g. https://api.axiom.co/v1/logs)"},"logsAuthHeader":{"type":"string","description":"Auth header in 'key=value,...' format (e.g. 'authorization=Bearer ,x-axiom-dataset=')"}},"required":["logsEndpoint","logsAuthHeader"],"description":"Optional external OTLP config for forwarding logs to Axiom, Datadog, etc. Falls back to built-in DeepStore when not set."}},"required":["name","cloud","region"]},"PrivateManagerCloud":{"type":"string","enum":["aws","gcp","azure"],"description":"Cloud where the private manager will be deployed."},"PrivateManagerSetupMethod":{"type":"string","enum":["cloudformation","google-oauth","terraform"],"description":"Optional setup method. Defaults to cloudformation for AWS, google-oauth for GCP, and terraform for Azure."},"ManagerRetryResponse":{"oneOf":[{"allOf":[{"$ref":"#/components/schemas/CreateManagerResponse"},{"type":"object","properties":{"mode":{"type":"string","enum":["setup"]}},"required":["mode"]}]},{"$ref":"#/components/schemas/ManagerRetryDeploymentResponse"}]},"ManagerRetryDeploymentResponse":{"type":"object","properties":{"mode":{"type":"string","enum":["deployment"]},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"setupStatus":{"type":"string","enum":["provisioning"]},"deploymentId":{"type":"string"},"message":{"type":"string"}},"required":["mode","managerId","setupStatus","deploymentId","message"]},"Manager":{"type":"object","properties":{"id":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for the manager"}]},"name":{"type":"string","description":"Display name of the manager"},"targets":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms this manager can handle"},"cloud":{"type":"string","nullable":true,"enum":["aws","gcp","azure","kubernetes","machines","local","test",null],"description":"Cloud where this private manager is deployed"},"region":{"type":"string","nullable":true,"description":"Cloud region selected for this private manager"},"setupStatus":{"type":"string","nullable":true,"enum":["pending","provisioning","active","failed","deleting","deleted",null],"description":"Private manager setup lifecycle status"},"url":{"type":"string","nullable":true,"format":"uri","description":"Manager URL (self-reported via heartbeat). DeepStore endpoints are exposed through this URL (e.g., {url}/v1/logs)"},"managementConfigs":{"$ref":"#/components/schemas/ManagerManagementConfigs"},"isSystem":{"type":"boolean","description":"Whether this is a system manager (Alien-hosted)"},"workspaceId":{"type":"string","description":"The workspace ID (for system managers, this is ALIEN_WORKSPACE_ID)"},"status":{"$ref":"#/components/schemas/ManagerStatus"},"version":{"type":"string","nullable":true,"description":"Manager version (self-reported via heartbeat)"},"metrics":{"type":"object","nullable":true,"properties":{"activeDeployments":{"type":"number","description":"Number of active deployments"},"pendingDeployments":{"type":"number","description":"Number of pending deployments"},"memoryUsageMb":{"type":"number","description":"Memory usage in megabytes"},"cpuUsagePercent":{"type":"number","description":"CPU usage percentage"}},"description":"Runtime metrics (self-reported via heartbeat)"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat from the manager"},"logsDatabaseId":{"type":"string","nullable":true,"description":"ID of the logs database associated with this manager"},"managedDeploymentCount":{"type":"integer","minimum":0,"description":"Number of deployments currently being managed by this manager"},"defaultProjectCount":{"type":"integer","minimum":0,"description":"Number of projects that select this manager as a default manager"},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the manager was created"}},"required":["id","name","targets","managementConfigs","isSystem","workspaceId","status","managedDeploymentCount","defaultProjectCount","createdAt"],"description":"Manager schema"},"ManagerManagementConfigs":{"type":"object","properties":{"aws":{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"},"platform":{"type":"string","enum":["aws"]}},"required":["managingRoleArn","platform"]},"gcp":{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"},"platform":{"type":"string","enum":["gcp"]}},"required":["serviceAccountEmail","platform"]},"azure":{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."},"platform":{"type":"string","enum":["azure"]}},"required":["managingTenantId","oidcIssuer","oidcSubject","platform"]},"kubernetes":{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]}},"description":"Per-platform management configurations for cross-account access (self-reported via heartbeat)"},"ManagerStatus":{"type":"string","enum":["healthy","degraded","unhealthy","unknown"],"description":"Current health status"},"ManagerDomainBindingResponse":{"type":"object","properties":{"managerDomainBinding":{"$ref":"#/components/schemas/DomainEndpoint"}},"required":["managerDomainBinding"]},"UpdateManagerDomainBinding":{"type":"object","properties":{"domainId":{"type":"string","nullable":true,"pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"}},"additionalProperties":false},"UpdateManagerRequest":{"type":"object","properties":{"releaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Optional release ID to update to. If not provided, the active release will be chosen","example":"rel_WbhQgksrawSKIpEN0NAssHX9"}},"additionalProperties":false,"description":"Request schema for updating a manager to a new release"},"Event":{"type":"object","properties":{"id":{"type":"string","pattern":"event_[0-9a-zA-Z]{28}$","description":"Unique identifier for the event.","example":"event_MtSA24M3pWuAkQYxgZxuRI"},"deploymentId":{"type":"string","nullable":true,"pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"releaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"debugSessionId":{"type":"string","nullable":true,"pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Unique identifier for the debug session.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"data":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["LoadingConfiguration"]}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["Finished"]}},"required":["type"]},{"type":"object","properties":{"stack":{"type":"string","description":"Name of the stack being built"},"type":{"type":"string","enum":["BuildingStack"]}},"required":["stack","type"]},{"type":"object","properties":{"platform":{"type":"string","description":"Platform being targeted"},"stack":{"type":"string","description":"Name of the stack being checked"},"type":{"type":"string","enum":["RunningPreflights"]}},"required":["platform","stack","type"]},{"type":"object","properties":{"targetTriple":{"type":"string","description":"Target triple for the runtime"},"type":{"type":"string","enum":["DownloadingAlienRuntime"]},"url":{"type":"string","description":"URL being downloaded from"}},"required":["targetTriple","type","url"]},{"type":"object","properties":{"relatedResources":{"type":"array","items":{"type":"string"},"description":"All resource names sharing this build (for deduped container groups)"},"resourceName":{"type":"string","description":"Name of the resource being built"},"resourceType":{"type":"string","description":"Type of the resource: \"worker\", \"container\""},"type":{"type":"string","enum":["BuildingResource"]}},"required":["resourceName","resourceType","type"]},{"type":"object","properties":{"image":{"type":"string","description":"Name of the image being built"},"type":{"type":"string","enum":["BuildingImage"]}},"required":["image","type"]},{"type":"object","properties":{"image":{"type":"string","description":"Name of the image being pushed"},"progress":{"oneOf":[{"type":"object","properties":{"bytesUploaded":{"type":"integer","minimum":0,"description":"Bytes uploaded so far"},"layersUploaded":{"type":"integer","minimum":0,"description":"Number of layers uploaded so far"},"operation":{"type":"string","description":"Current operation being performed"},"totalBytes":{"type":"integer","minimum":0,"description":"Total bytes to upload"},"totalLayers":{"type":"integer","minimum":0,"description":"Total number of layers to upload"}},"required":["bytesUploaded","layersUploaded","operation","totalBytes","totalLayers"],"description":"Progress information for image push operations"},{"nullable":true}]},"type":{"type":"string","enum":["PushingImage"]}},"required":["image","type"]},{"type":"object","properties":{"destination":{"type":"string","nullable":true,"description":"Human-readable destination for pushed images"},"platform":{"type":"string","description":"Target platform"},"stack":{"type":"string","description":"Name of the stack being pushed"},"type":{"type":"string","enum":["PushingStack"]}},"required":["platform","stack","type"]},{"type":"object","properties":{"resourceName":{"type":"string","description":"Name of the resource being pushed"},"resourceType":{"type":"string","description":"Type of the resource: \"worker\", \"container\""},"type":{"type":"string","enum":["PushingResource"]}},"required":["resourceName","resourceType","type"]},{"type":"object","properties":{"project":{"type":"string","description":"Project name"},"type":{"type":"string","enum":["CreatingRelease"]}},"required":["project","type"]},{"type":"object","properties":{"language":{"type":"string","description":"Language being compiled (rust, typescript, etc.)"},"progress":{"type":"string","nullable":true,"description":"Current progress/status line from the build output"},"type":{"type":"string","enum":["CompilingCode"]}},"required":["language","type"]},{"type":"object","properties":{"nextState":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"Represents the collective state of all resources in a stack, including platform and pending actions."},"suggestedDelayMs":{"type":"integer","nullable":true,"minimum":0,"description":"An suggested duration to wait before executing the next step."},"type":{"type":"string","enum":["StackStep"]}},"required":["nextState","type"]},{"type":"object","properties":{"type":{"type":"string","enum":["GeneratingCloudFormationTemplate"]}},"required":["type"]},{"type":"object","properties":{"platform":{"type":"string","description":"Platform for which the template is being generated"},"type":{"type":"string","enum":["GeneratingTemplate"]}},"required":["platform","type"]},{"type":"object","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"]}},"required":["agentId","releaseId","type"]},{"type":"object","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"]}},"required":["agentId","releaseId","type"]},{"type":"object","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"]}},"required":["agentId","releaseId","type"]},{"type":"object","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"]}},"required":["agentId","debugSessionId","type"]},{"type":"object","properties":{"strategyName":{"type":"string","description":"Name of the deployment strategy being used"},"type":{"type":"string","enum":["PreparingEnvironment"]}},"required":["strategyName","type"]},{"type":"object","properties":{"stackName":{"type":"string","description":"Name of the stack being deployed"},"type":{"type":"string","enum":["DeployingStack"]}},"required":["stackName","type"]},{"type":"object","properties":{"stackName":{"type":"string","description":"Name of the stack being tested"},"type":{"type":"string","enum":["RunningTestWorker"]}},"required":["stackName","type"]},{"type":"object","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"]}},"required":["stackName","strategyName","type"]},{"type":"object","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"]}},"required":["stackName","strategyName","type"]},{"type":"object","properties":{"platformName":{"type":"string","description":"Name of the platform (e.g., \"AWS\", \"GCP\")"},"type":{"type":"string","enum":["SettingUpPlatformContext"]}},"required":["platformName","type"]},{"type":"object","properties":{"repositoryName":{"type":"string","description":"Name of the docker repository"},"type":{"type":"string","enum":["EnsuringDockerRepository"]}},"required":["repositoryName","type"]},{"type":"object","properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"currentStatus":{"type":"string","description":"Current stack status"},"type":{"type":"string","enum":["DeployingCloudFormationStack"]}},"required":["cfnStackName","currentStatus","type"]},{"type":"object","properties":{"roleArn":{"type":"string","description":"ARN of the role to assume"},"type":{"type":"string","enum":["AssumingRole"]}},"required":["roleArn","type"]},{"type":"object","properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"type":{"type":"string","enum":["ImportingStackStateFromCloudFormation"]}},"required":["cfnStackName","type"]},{"type":"object","properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"currentStatus":{"type":"string","description":"Current stack status"},"type":{"type":"string","enum":["DeletingCloudFormationStack"]}},"required":["cfnStackName","currentStatus","type"]},{"type":"object","properties":{"bucketNames":{"type":"array","items":{"type":"string"},"description":"Names of the S3 buckets being emptied"},"type":{"type":"string","enum":["EmptyingBuckets"]}},"required":["bucketNames","type"]},{"type":"object","properties":{"deploymentGroupId":{"type":"string","description":"ID of the deployment group this slot belongs to"},"deploymentId":{"type":"string","description":"ID of the deployment that was created"},"releaseId":{"type":"string","nullable":true,"description":"Initial release the slot was created with, if any"},"type":{"type":"string","enum":["DeploymentCreated"]}},"required":["deploymentGroupId","deploymentId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"previousReleaseId":{"type":"string","nullable":true,"description":"ID of the release that was previously live, if any"},"releaseId":{"type":"string","description":"ID of the release that is now live"},"type":{"type":"string","enum":["DeploymentReleased"]}},"required":["deploymentId","releaseId","type"]},{"type":"object","properties":{"attemptedReleaseId":{"type":"string","nullable":true,"description":"ID of the release the platform was trying to deploy, if known"},"deploymentId":{"type":"string","description":"ID of the deployment"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},"phase":{"type":"string","enum":["preflights","provisioning","updating","deleting"],"description":"Phase of a deployment at which a failure occurred.\n\nDerived from the source deployment status: `preflights-failed` →\n`Preflights`, `provisioning-failed` → `Provisioning`, `update-failed` →\n`Updating`, `delete-failed` → `Deleting`.\n`refresh-failed` is modelled separately via `DeploymentDegraded`."},"type":{"type":"string","enum":["DeploymentFailed"]}},"required":["deploymentId","error","phase","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},"type":{"type":"string","enum":["DeploymentDegraded"]}},"required":["deploymentId","error","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"releaseId":{"type":"string","description":"ID of the release that is now live"},"type":{"type":"string","enum":["DeploymentRecovered"]}},"required":["deploymentId","releaseId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment that was deleted"},"type":{"type":"string","enum":["DeploymentDeleted"]}},"required":["deploymentId","type"]},{"type":"object","properties":{"actor":{"oneOf":[{"type":"object","properties":{"email":{"type":"string","nullable":true,"description":"User email when the principal is a user."},"id":{"type":"string","description":"Stable user or service-account identifier."},"kind":{"type":"string","enum":["user","serviceAccount"],"description":"Type of authenticated principal that requested an event."}},"required":["id","kind"],"description":"Authenticated principal that requested a deployment intent event."},{"nullable":true}]},"channel":{"type":"string","description":"Name of the channel that moved"},"previousReleaseId":{"type":"string","nullable":true,"description":"ID of the release that was previously current, if any"},"releaseId":{"type":"string","description":"ID of the release that is now current"},"type":{"type":"string","enum":["ReleaseChannelUpdated"]}},"required":["channel","releaseId","type"]},{"type":"object","properties":{"actor":{"oneOf":[{"type":"object","properties":{"email":{"type":"string","nullable":true,"description":"User email when the principal is a user."},"id":{"type":"string","description":"Stable user or service-account identifier."},"kind":{"type":"string","enum":["user","serviceAccount"],"description":"Type of authenticated principal that requested an event."}},"required":["id","kind"],"description":"Authenticated principal that requested a deployment intent event."},{"nullable":true}]},"channel":{"type":"string","description":"Newly followed channel"},"deploymentId":{"type":"string","description":"ID of the deployment"},"previousChannel":{"type":"string","description":"Previously followed channel"},"type":{"type":"string","enum":["DeploymentReleaseChannelChanged"]}},"required":["channel","deploymentId","previousChannel","type"]},{"type":"object","properties":{"actor":{"oneOf":[{"type":"object","properties":{"email":{"type":"string","nullable":true,"description":"User email when the principal is a user."},"id":{"type":"string","description":"Stable user or service-account identifier."},"kind":{"type":"string","enum":["user","serviceAccount"],"description":"Type of authenticated principal that requested an event."}},"required":["id","kind"],"description":"Authenticated principal that requested a deployment intent event."},{"nullable":true}]},"attemptedReleaseId":{"type":"string","nullable":true,"description":"ID of the release that the failed attempt was targeting, if known"},"deploymentId":{"type":"string","description":"ID of the deployment"},"previousError":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"type":{"type":"string","enum":["DeploymentRetryRequested"]}},"required":["deploymentId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"releaseId":{"type":"string","description":"ID of the release being redeployed"},"type":{"type":"string","enum":["DeploymentRedeployRequested"]}},"required":["deploymentId","releaseId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"pinnedReleaseId":{"type":"string","description":"ID of the release that is now pinned"},"previousPinnedReleaseId":{"type":"string","nullable":true,"description":"ID of the previously pinned release, if any"},"type":{"type":"string","enum":["DeploymentReleasePinned"]}},"required":["deploymentId","pinnedReleaseId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"previousPinnedReleaseId":{"type":"string","description":"ID of the release that was previously pinned"},"type":{"type":"string","enum":["DeploymentReleaseUnpinned"]}},"required":["deploymentId","previousPinnedReleaseId","type"]},{"type":"object","properties":{"actor":{"oneOf":[{"type":"object","properties":{"email":{"type":"string","nullable":true,"description":"User email when the principal is a user."},"id":{"type":"string","description":"Stable user or service-account identifier."},"kind":{"type":"string","enum":["user","serviceAccount"],"description":"Type of authenticated principal that requested an event."}},"required":["id","kind"],"description":"Authenticated principal that requested a deployment intent event."},{"nullable":true}]},"changedKeys":{"type":"array","items":{"type":"string"},"description":"Names of the environment variables that changed (added, removed, or modified)"},"deploymentId":{"type":"string","description":"ID of the deployment"},"type":{"type":"string","enum":["DeploymentEnvironmentUpdated"]}},"required":["changedKeys","deploymentId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"type":{"type":"string","enum":["DeploymentDeletionRequested"]}},"required":["deploymentId","type"]}]},"state":{"oneOf":[{"type":"object","properties":{"failed":{"type":"object","properties":{"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]}},"description":"Event failed with an error"}},"required":["failed"]},{"type":"string","enum":["none"]},{"type":"string","enum":["started"]},{"type":"string","enum":["success"]}],"description":"Represents the state of an event"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"createdAt":{"type":"string","format":"date-time"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"}},"required":["id","data","state","projectId","createdAt","workspaceId"]},"GenerateManagerTokenResponse":{"type":"object","properties":{"accessToken":{"type":"string","description":"Platform JWT for authenticating with the manager"},"expiresIn":{"type":"number","nullable":true,"description":"Token lifetime in seconds"},"tokenType":{"type":"string","enum":["Bearer"]},"managerUrl":{"type":"string","description":"Manager URL for direct access"},"databaseId":{"type":"string","nullable":true,"description":"Log database ID (null if logs not configured)"},"controlPlaneUrl":{"type":"string","nullable":true,"description":"Log control plane URL (null if logs not configured)"}},"required":["accessToken","expiresIn","tokenType","managerUrl","databaseId","controlPlaneUrl"]},"GenerateManagerTokenRequest":{"type":"object","properties":{"project":{"type":"string","maxLength":100,"description":"Project ID or name to scope token access to."}},"required":["project"]},"GenerateManagerBindingTokenResponse":{"type":"object","properties":{"accessToken":{"type":"string"},"expiresIn":{"type":"number","nullable":true},"tokenType":{"type":"string","enum":["Bearer"]},"managerUrl":{"type":"string"}},"required":["accessToken","expiresIn","tokenType","managerUrl"]},"GenerateManagerBindingTokenRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"}},"required":["deploymentId"],"additionalProperties":false},"ResolveManagerGcpOAuthProviderResponse":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["alien-managed"]}},"required":["mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["custom"]},"clientId":{"$ref":"#/components/schemas/GcpOAuthClientId"},"clientSecret":{"$ref":"#/components/schemas/GcpOAuthClientSecret"}},"required":["mode","clientId","clientSecret"]}]},"ResolveManagerGcpOAuthProviderRequest":{"type":"object","properties":{"deploymentGroupToken":{"type":"string","minLength":1,"description":"Deployment-group bearer token whose project-level OAuth provider should be resolved."},"returnOrigin":{"type":"string","format":"uri","description":"Browser origin that will receive the Google OAuth callback result. Must be a first-party dashboard origin or the active portal origin for the deployment group's project."}},"required":["deploymentGroupToken"]},"ManagerHeartbeatResponse":{"type":"object","properties":{"acknowledged":{"type":"boolean"},"timestamp":{"type":"string"}},"required":["acknowledged","timestamp"]},"ManagerHeartbeatRequest":{"type":"object","properties":{"status":{"type":"string","enum":["healthy","degraded","unhealthy"],"description":"Current health status"},"version":{"type":"string","description":"Manager version"},"url":{"type":"string","format":"uri","description":"Manager public URL (for accessing DeepStore endpoints)"},"managementConfigs":{"allOf":[{"$ref":"#/components/schemas/ManagerManagementConfigs"},{"description":"Per-platform management configurations for cross-account access"}]},"metrics":{"type":"object","properties":{"activeDeployments":{"type":"number"},"pendingDeployments":{"type":"number"},"memoryUsageMb":{"type":"number"},"cpuUsagePercent":{"type":"number"}},"description":"Optional runtime metrics"}},"required":["status","url","managementConfigs"]},"ManagerDeployment":{"type":"object","properties":{"platform":{"type":"string","description":"Platform of the internal deployment"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status of the internal deployment"},"deploymentId":{"type":"string","description":"Internal deployment ID"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Currently deployed private manager release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Target private manager release for an in-progress update","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"error":{"nullable":true,"description":"Latest provision / upgrade / delete error"},"resources":{"type":"object","additionalProperties":{"type":"object","properties":{"type":{"type":"string","description":"Resource type"},"status":{"type":"string","description":"Resource status"},"outputs":{"type":"object","additionalProperties":{"nullable":true},"description":"Resource outputs"}},"required":["type","status"]},"description":"Simplified stack state resources"},"environmentInfo":{"nullable":true,"description":"Manager environment info"}},"required":["platform","status","deploymentId","resources"]},"PrepareOperatorManifestPackageResponse":{"type":"object","properties":{"package":{"$ref":"#/components/schemas/Package"}},"required":["package"]},"PrepareOperatorManifestPackageRequest":{"type":"object","properties":{"project":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"}},"required":["project"],"additionalProperties":false},"RenderOperatorManifestResponse":{"type":"object","properties":{"manifest":{"type":"string","description":"Rendered multi-document Kubernetes manifest"},"applyCommand":{"type":"string","description":"kubectl command for applying the manifest from a file"},"filename":{"type":"string","description":"Suggested local filename"},"managerUrl":{"type":"string","format":"uri","description":"Manager URL embedded in the manifest"},"imagePending":{"type":"boolean","description":"True when the operator image is still building. The manifest contains a placeholder image () and must not be applied yet — re-render once the operator-image package is ready to get the real image."}},"required":["manifest","applyCommand","filename","managerUrl","imagePending"]},"RenderOperatorManifestRequest":{"type":"object","properties":{"project":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"format":{"type":"string","enum":["raw","helm"],"default":"raw","description":"raw: a kubectl-applyable manifest for one cluster. helm: a paste-into-your-chart template whose namespace and environment name come from Helm at install time."},"environmentName":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Per-environment identity. Required for raw output, ignored for helm.","example":"my-app"},"namespace":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9]([-a-z0-9]*[a-z0-9])?$","description":"Namespace to observe and install into. Omit for helm to use the release namespace."},"scope":{"type":"string","enum":["namespace","cluster"],"default":"namespace","description":"namespace: a namespaced Role that manages the install namespace. cluster: a ClusterRole that manages every namespace."},"labelSelector":{"type":"string","minLength":1,"maxLength":256,"description":"Optional Kubernetes label selector narrowing what is managed, applied within the scope."},"permission":{"type":"string","enum":["observe"],"default":"observe","description":"Operator permission tier"},"operatorImagePackageId":{"type":"string","pattern":"pkg_[0-9a-z]{28}$","description":"Ready operator-image package to use for the Operator image. If omitted, the latest ready operator-image package for the project is used.","example":"pkg_jebo2o5jmm7raefl2m1pe3cz"},"deploymentGroupToken":{"type":"string","minLength":1,"description":"Deployment-group token embedded in the operator Secret"},"logCollector":{"type":"object","properties":{"enabled":{"type":"boolean","default":false}},"description":"Enable the node log collector DaemonSet for raw pod logs."}},"required":["project","deploymentGroupToken"],"additionalProperties":false},"APIKey":{"type":"object","properties":{"id":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"description":{"type":"string","nullable":true},"keyPrefix":{"type":"string"},"type":{"type":"string","enum":["workspace","project","deployment","deployment-group","manager"]},"role":{"type":"string"},"workspaceId":{"type":"string"},"projectId":{"type":"string","nullable":true},"deploymentId":{"type":"string","nullable":true},"deploymentGroupId":{"type":"string","nullable":true},"managerId":{"type":"string","nullable":true},"enabled":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","nullable":true,"format":"date-time"},"lastUsedAt":{"type":"string","nullable":true,"format":"date-time"},"revokedAt":{"type":"string","nullable":true,"format":"date-time"},"deploymentSetupConfig":{"$ref":"#/components/schemas/APIKeyDeploymentSetupConfig"},"createdByUser":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"email":{"type":"string"},"image":{"type":"string","nullable":true}},"required":["id","email","image"],"description":"User information associated with the API key"}},"required":["id","description","keyPrefix","type","role","workspaceId","projectId","deploymentId","deploymentGroupId","managerId","enabled","createdAt","expiresAt","lastUsedAt","revokedAt","deploymentSetupConfig","createdByUser"],"description":"API key information"},"APIKeyDeploymentSetupConfig":{"type":"object","nullable":true,"properties":{"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"environmentVariables":{"type":"array","items":{"$ref":"#/components/schemas/APIKeyDeploymentSetupEnvironmentVariable"}}},"required":["metadata","policy","environmentVariables"]},"APIKeyDeploymentSetupEnvironmentVariable":{"type":"object","properties":{"name":{"type":"string","pattern":"^[A-Z_][A-Z0-9_]*$","description":"Variable name"},"type":{"$ref":"#/components/schemas/EnvironmentVariableType"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string","pattern":"^[a-zA-Z0-9_-]+(\\*)?$"},"description":"Target resource patterns (null = all resources, array = wildcard patterns)"}},"required":["name","type","targetResources"]},"CreateAPIKeyResponse":{"type":"object","properties":{"apiKey":{"type":"string","description":"The generated API key value (only shown once)"},"keyInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"description":{"type":"string","nullable":true},"keyPrefix":{"type":"string"},"type":{"type":"string","enum":["workspace","project","deployment","deployment-group","manager"]},"role":{"type":"string"},"workspaceId":{"type":"string"},"projectId":{"type":"string","nullable":true},"deploymentId":{"type":"string","nullable":true},"deploymentGroupId":{"type":"string","nullable":true},"managerId":{"type":"string","nullable":true},"enabled":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","nullable":true,"format":"date-time"},"lastUsedAt":{"type":"string","nullable":true,"format":"date-time"},"revokedAt":{"type":"string","nullable":true,"format":"date-time"},"deploymentSetupConfig":{"$ref":"#/components/schemas/APIKeyDeploymentSetupConfig"}},"required":["id","description","keyPrefix","type","role","workspaceId","projectId","deploymentId","deploymentGroupId","managerId","enabled","createdAt","expiresAt","lastUsedAt","revokedAt","deploymentSetupConfig"]}},"required":["apiKey","keyInfo"],"description":"Response containing the new API key and its metadata"},"CreateAPIKeyRequest":{"type":"object","properties":{"description":{"type":"string","nullable":true,"minLength":3,"maxLength":128},"scope":{"$ref":"#/components/schemas/Scope"},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"Optional expiration date for the API key"}},"required":["description","scope","expiresAt"],"description":"Request schema for creating a new API key"},"Scope":{"oneOf":[{"$ref":"#/components/schemas/WorkspaceScope"},{"$ref":"#/components/schemas/ProjectScope"},{"$ref":"#/components/schemas/DeploymentScope"},{"$ref":"#/components/schemas/DeploymentGroupScope"},{"$ref":"#/components/schemas/ManagerScope"}],"discriminator":{"propertyName":"type","mapping":{"workspace":"#/components/schemas/WorkspaceScope","project":"#/components/schemas/ProjectScope","deployment":"#/components/schemas/DeploymentScope","deployment-group":"#/components/schemas/DeploymentGroupScope","manager":"#/components/schemas/ManagerScope"}},"description":"Scope and role configuration for service accounts"},"WorkspaceScope":{"type":"object","properties":{"type":{"type":"string","enum":["workspace"]},"role":{"$ref":"#/components/schemas/WorkspaceRole"}},"required":["type","role"],"description":"Workspace-scoped configuration"},"ProjectScope":{"type":"object","properties":{"type":{"type":"string","enum":["project"]},"projectId":{"type":"string","description":"ID of the project this is scoped to"},"role":{"$ref":"#/components/schemas/ProjectRole"}},"required":["type","projectId","role"],"description":"Project-scoped configuration"},"DeploymentScope":{"type":"object","properties":{"type":{"type":"string","enum":["deployment"]},"deploymentId":{"type":"string","description":"ID of the deployment this is scoped to"},"projectId":{"type":"string","description":"ID of the project this deployment belongs to"},"role":{"$ref":"#/components/schemas/DeploymentRole"}},"required":["type","deploymentId","projectId","role"],"description":"Deployment-scoped configuration"},"DeploymentGroupScope":{"type":"object","properties":{"type":{"type":"string","enum":["deployment-group"]},"deploymentGroupId":{"type":"string","description":"ID of the deployment group this is scoped to"},"projectId":{"type":"string","description":"ID of the project this deployment group belongs to"},"role":{"$ref":"#/components/schemas/DeploymentGroupRole"}},"required":["type","deploymentGroupId","projectId","role"],"description":"Deployment group-scoped configuration"},"ManagerScope":{"type":"object","properties":{"type":{"type":"string","enum":["manager"]},"managerId":{"type":"string","description":"ID of the manager this is scoped to"},"role":{"$ref":"#/components/schemas/ManagerRole"}},"required":["type","managerId","role"],"description":"Manager-scoped configuration"},"UpdateAPIKeyRequest":{"type":"object","properties":{"enabled":{"type":"boolean"},"description":{"type":"string","nullable":true,"minLength":3,"maxLength":128},"deploymentSetupConfig":{"$ref":"#/components/schemas/UpdateDeploymentSetupPolicy"},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"Optional expiration date for the API key"}},"description":"Request schema for updating an API key"},"UpdateDeploymentSetupPolicy":{"type":"object","properties":{"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"}},"required":["policy"],"description":"Editable part of a deployment link's setup config. Locked env vars and input values are preserved."},"DeleteAPIKeysRequest":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"minItems":1}},"required":["ids"]},"DomainWithUsage":{"allOf":[{"$ref":"#/components/schemas/Domain"},{"type":"object","properties":{"endpoints":{"type":"array","items":{"$ref":"#/components/schemas/DomainEndpoint"}},"usage":{"type":"object","properties":{"deploymentUrlProjects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}},"portalBindings":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"projectId":{"type":"string","nullable":true},"projectName":{"type":"string","nullable":true},"hostname":{"type":"string"}},"required":["id","projectId","projectName","hostname"]}},"packageDomains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"hostname":{"type":"string"}},"required":["id","hostname"]}},"managerBindings":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"managerId":{"type":"string"},"managerName":{"type":"string"},"hostname":{"type":"string"}},"required":["id","managerId","managerName","hostname"]}}},"required":["deploymentUrlProjects","portalBindings","packageDomains","managerBindings"]}},"required":["endpoints","usage"]}]},"Domain":{"type":"object","properties":{"id":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"domain":{"type":"string"},"isSystem":{"type":"boolean"},"claimToken":{"type":"string"},"hostedZoneId":{"type":"string","nullable":true},"nameServers":{"type":"array","nullable":true,"items":{"type":"string"}},"status":{"type":"string","enum":["pending-zone-creation","pending-verification","verified","lost-verification","failed","deleting"]},"error":{"nullable":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"verifiedAt":{"type":"string","format":"date-time","nullable":true}},"required":["id","workspaceId","domain","isSystem","claimToken","status","createdAt","updatedAt"]},"EventListItemResponse":{"allOf":[{"$ref":"#/components/schemas/Event"},{"type":"object","properties":{"releaseCreatedAt":{"type":"string","format":"date-time","nullable":true,"description":"createdAt of the event's referenced release, included when ?include=releaseCreatedAt is used"}}}]},"ListMachinesJoinTokensResponse":{"type":"object","properties":{"tokens":{"type":"array","items":{"$ref":"#/components/schemas/MachinesJoinTokenSummary"}}},"required":["tokens"]},"MachinesJoinTokenSummary":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"expiresAt":{"type":"string","nullable":true},"maxJoins":{"type":"integer","nullable":true},"joinCount":{"type":"integer"},"lastUsedAt":{"type":"string","nullable":true},"revokedAt":{"type":"string","nullable":true}},"required":["id","createdAt","createdBy","joinCount"]},"CreateMachinesJoinTokenResponse":{"type":"object","properties":{"joinToken":{"type":"string"},"controlPlaneUrl":{"type":"string","format":"uri"},"clusterId":{"type":"string"},"token":{"$ref":"#/components/schemas/MachinesJoinTokenSummary"},"cliInstallScriptUrl":{"type":"string","nullable":true,"format":"uri","description":"Deploy CLI install script URL, or null when no ready CLI package exists."},"cliCommandName":{"type":"string","nullable":true,"description":"CLI command name to use in join instructions."}},"required":["joinToken","controlPlaneUrl","clusterId","token","cliInstallScriptUrl","cliCommandName"]},"RotateMachinesJoinTokenResponse":{"type":"object","properties":{"joinToken":{"type":"string"},"controlPlaneUrl":{"type":"string","format":"uri"},"clusterId":{"type":"string"},"token":{"$ref":"#/components/schemas/MachinesJoinTokenSummary"},"cliInstallScriptUrl":{"type":"string","nullable":true,"format":"uri","description":"Deploy CLI install script URL, or null when no ready CLI package exists."},"cliCommandName":{"type":"string","nullable":true,"description":"CLI command name to use in join instructions."}},"required":["joinToken","controlPlaneUrl","clusterId","token","cliInstallScriptUrl","cliCommandName"]},"RevokeMachinesJoinTokenResponse":{"type":"object","properties":{"tokenId":{"type":"string"},"revoked":{"type":"boolean"}},"required":["tokenId","revoked"]},"ListMachinesInventoryResponse":{"type":"object","properties":{"machines":{"type":"array","items":{"$ref":"#/components/schemas/MachinesInventoryItem"}}},"required":["machines"]},"MachinesInventoryItem":{"type":"object","properties":{"machineId":{"type":"string"},"status":{"type":"string"},"capacityGroup":{"type":"string"},"zone":{"type":"string"},"cpu":{"$ref":"#/components/schemas/MachinesCapacityMetric"},"memory":{"$ref":"#/components/schemas/MachinesCapacityMetric"},"storage":{"allOf":[{"$ref":"#/components/schemas/MachinesCapacityMetric"}],"nullable":true},"drainBlockers":{"type":"array","items":{"$ref":"#/components/schemas/MachinesDrainBlocker"}},"drainDeadlineAt":{"type":"string","nullable":true},"drainForce":{"type":"boolean"},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"publicIp":{"type":"string","nullable":true},"overlayIp":{"type":"string","nullable":true},"lastHeartbeat":{"type":"string"},"horizondVersion":{"type":"string","nullable":true},"localOverrides":{"type":"array","items":{"$ref":"#/components/schemas/MachinesLocalOverrideObservation"}},"localOverridesObservedAt":{"type":"string","nullable":true},"replicaCount":{"type":"integer"}},"required":["machineId","status","capacityGroup","zone","cpu","memory","drainBlockers","drainForce","lastHeartbeat","localOverrides","replicaCount"]},"MachinesCapacityMetric":{"type":"object","properties":{"allocated":{"type":"number"},"systemReserve":{"type":"number"},"total":{"type":"number"}},"required":["allocated","systemReserve","total"]},"MachinesDrainBlocker":{"type":"object","properties":{"reason":{"type":"string"},"workloadId":{"type":"string","nullable":true},"workloadName":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true},"schedulingMode":{"type":"string","nullable":true},"state":{"type":"string","nullable":true}},"required":["reason"]},"MachinesLocalOverrideObservation":{"type":"object","properties":{"activeDigest":{"type":"string","nullable":true},"actor":{"type":"string","nullable":true},"baseAssignmentHash":{"type":"string"},"baseDigest":{"type":"string","nullable":true},"candidateDigest":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"failureCategory":{"type":"string","nullable":true},"fallbackDigest":{"type":"string","nullable":true},"forcedStop":{"type":"boolean","nullable":true},"healthySince":{"type":"string","nullable":true},"incidentId":{"type":"string","nullable":true},"lifecycle":{"type":"string"},"phaseStartedAt":{"type":"string","nullable":true},"replicaId":{"type":"string"},"workloadName":{"type":"string"}},"required":["baseAssignmentHash","lifecycle","replicaId","workloadName"]},"CancelMachinesMachineDrainResponse":{"type":"object","properties":{"machineId":{"type":"string"},"cancelled":{"type":"boolean"}},"required":["machineId","cancelled"]},"DrainMachinesMachineResponse":{"type":"object","properties":{"machineId":{"type":"string"},"requested":{"type":"boolean"}},"required":["machineId","requested"]},"DrainMachinesMachineRequest":{"type":"object","properties":{"deadlineSeconds":{"type":"integer","nullable":true,"minimum":0},"force":{"type":"boolean"}}},"RemoveMachinesMachineResponse":{"type":"object","properties":{"machineId":{"type":"string"},"removed":{"type":"boolean"}},"required":["machineId","removed"]},"CommandListItemResponse":{"allOf":[{"$ref":"#/components/schemas/Command"},{"type":"object","properties":{"deployment":{"$ref":"#/components/schemas/CommandDeploymentInfo"},"project":{"$ref":"#/components/schemas/CommandProjectInfo"}}}]},"CommandDeploymentInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string"},"deploymentGroup":{"$ref":"#/components/schemas/CommandDeploymentGroupInfo"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Platform-specific environment information"},"managerId":{"type":"string","description":"Manager ID for obtaining access tokens"},"managerUrl":{"type":"string","nullable":true,"format":"uri","description":"URL of the manager for direct payload access"},"managerName":{"type":"string","nullable":true,"description":"Human-readable name of the manager"},"managerIsSystem":{"type":"boolean","nullable":true,"description":"Whether the manager is Alien-hosted (system)"}},"required":["id","name","managerId"]},"CommandDeploymentGroupInfo":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"CommandProjectInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"name":{"type":"string"}},"required":["id","name"]},"Command":{"type":"object","properties":{"id":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"name":{"type":"string","description":"Command name (e.g., 'analyze-repository', 'sync-data')"},"state":{"type":"string","enum":["PENDING_UPLOAD","PENDING","DISPATCHED","SUCCEEDED","FAILED","EXPIRED"],"description":"Command states in the Commands protocol lifecycle"},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Delivery mode for this command (push/pull), derived from the target at creation time"},"target":{"type":"object","nullable":true,"properties":{"resourceId":{"type":"string","description":"The resource ID within the deployment's stack (e.g. a Worker/Container/Daemon id)."},"resourceType":{"type":"string","enum":["worker","container","daemon"],"description":"The kind of command-capable resource a command targets."}},"required":["resourceId","resourceType"],"description":"Resource the command is addressed to; null on commands created before target routing"},"attempt":{"type":"number","nullable":true,"description":"Current attempt number"},"deadline":{"type":"string","nullable":true,"format":"date-time","description":"Optional deadline for command execution"},"requestSizeBytes":{"type":"number","nullable":true,"description":"Size of command params in bytes"},"responseSizeBytes":{"type":"number","nullable":true,"description":"Size of command response in bytes"},"createdAt":{"type":"string","format":"date-time","description":"When the command was created"},"dispatchedAt":{"type":"string","nullable":true,"format":"date-time","description":"When the command was dispatched to the deployment"},"completedAt":{"type":"string","nullable":true,"format":"date-time","description":"When the command completed"},"error":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Error details if command failed"},"result":{"nullable":true,"description":"Decoded command result when available"}},"required":["id","deploymentId","projectId","workspaceId","name","state","deploymentModel","target","attempt","deadline","requestSizeBytes","responseSizeBytes","createdAt","dispatchedAt","completedAt","error"]},"ListCommandNamesResponse":{"type":"object","properties":{"names":{"type":"array","items":{"type":"string"}}},"required":["names"]},"ListCommandDeploymentsResponse":{"type":"object","properties":{"deployments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string"},"deploymentGroup":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}},"required":["id","name"]}}},"required":["deployments"]},"CreateCommandResponse":{"type":"object","properties":{"id":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"projectId":{"type":"string","description":"Project ID (for manager to use in routing)"},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"How to dispatch the command"},"target":{"type":"object","properties":{"resourceId":{"type":"string","description":"The resource ID within the deployment's stack (e.g. a Worker/Container/Daemon id)."},"resourceType":{"type":"string","enum":["worker","container","daemon"],"description":"The kind of command-capable resource a command targets."}},"required":["resourceId","resourceType"],"description":"Resource the command is addressed to"},"deliveryMode":{"type":"string","enum":["push","pull"],"description":"How the command is delivered to its target"}},"required":["id","projectId","deploymentModel","target","deliveryMode"]},"CreateCommandRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Target deployment ID","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string","minLength":1,"maxLength":255,"description":"Command name (e.g., 'analyze-repository')"},"params":{"nullable":true,"description":"Command parameters for public invocation"},"target":{"type":"string","maxLength":255,"description":"Resource id the command is addressed to. Required when the deployment has more than one command-capable resource."},"initialState":{"type":"string","enum":["PENDING_UPLOAD","PENDING","DISPATCHED","SUCCEEDED","FAILED","EXPIRED"],"description":"Initial state (PENDING_UPLOAD if params require upload, PENDING if inline)"},"deadline":{"type":"string","nullable":true,"format":"date-time","description":"Optional deadline for command execution"},"requestSizeBytes":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Size of command params in bytes"}},"required":["deploymentId","name"]},"ResolvedCommandTarget":{"type":"object","properties":{"target":{"type":"object","properties":{"resourceId":{"type":"string","description":"The resource ID within the deployment's stack (e.g. a Worker/Container/Daemon id)."},"resourceType":{"type":"string","enum":["worker","container","daemon"],"description":"The kind of command-capable resource a command targets."}},"required":["resourceId","resourceType"],"description":"Identifies the specific resource a command is addressed to."},"deliveryMode":{"type":"string","enum":["push","pull"],"description":"How a command is delivered to its target resource.\n\nThis is a Commands-protocol-specific concept and is intentionally distinct\nfrom `DeploymentModel` (see `stack_settings.rs`), which governs the\ninfrastructure-level push/pull wiring for a deployment. Serialized\nlowercase for consistency with `CommandTargetType`."}},"required":["target","deliveryMode"]},"UpdateCommandRequest":{"type":"object","properties":{"state":{"type":"string","enum":["PENDING_UPLOAD","PENDING","DISPATCHED","SUCCEEDED","FAILED","EXPIRED"],"description":"New command state"},"attempt":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Current attempt number"},"dispatchedAt":{"type":"string","nullable":true,"format":"date-time","description":"When command was dispatched"},"completedAt":{"type":"string","nullable":true,"format":"date-time","description":"When command completed"},"responseSizeBytes":{"type":"number","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Size of response in bytes"},"error":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Error details if failed"}}},"DispatchCommandResponse":{"type":"object","properties":{"updated":{"type":"boolean","description":"Whether the command transitioned; false if it was already terminal"}},"required":["updated"]},"DispatchCommandRequest":{"type":"object","properties":{"dispatchedAt":{"type":"string","format":"date-time","description":"When the command was dispatched"}},"required":["dispatchedAt"]},"CompleteCommandResponse":{"type":"object","properties":{"updated":{"type":"boolean","description":"Whether the command transitioned; false if it was already terminal"}},"required":["updated"]},"CompleteCommandRequest":{"type":"object","properties":{"state":{"type":"string","enum":["SUCCEEDED","FAILED","EXPIRED"],"description":"Terminal state to transition to"},"completedAt":{"type":"string","format":"date-time","description":"When the command completed"},"responseSizeBytes":{"type":"number","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Size of response in bytes"},"error":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Error details if failed"}},"required":["state","completedAt"]},"IncrementCommandAttemptResponse":{"type":"object","properties":{"attempt":{"type":"integer","description":"The attempt number after the increment"}},"required":["attempt"]},"DebugSessionListResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DebugSession"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"},"DebugSession":{"type":"object","properties":{"id":{"type":"string","pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Unique identifier for the debug session.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"owner":{"type":"string","nullable":true,"maxLength":128},"state":{"$ref":"#/components/schemas/DebugSessionState"},"mode":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"provider":{"type":"string","nullable":true,"enum":["aws","gcp","azure","kubernetes","machines","local","test",null],"description":"Represents the target cloud platform."},"presignedUrls":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/DebugPackagePresignedURLs"}},"error":{"nullable":true},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"}},"required":["id","state","mode","presignedUrls","createdAt","expiresAt","deploymentId","projectId","workspaceId"]},"DebugSessionState":{"type":"string","enum":["pending","running","stopping","stopped","expired","failed"]},"DebugPackagePresignedURLs":{"type":"object","properties":{"readUrl":{"type":"string","maxLength":2048,"format":"uri"},"writeUrl":{"type":"string","maxLength":2048,"format":"uri"}},"required":["readUrl","writeUrl"]},"CreateDebugSessionRequest":{"type":"object","properties":{"id":{"type":"string","pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Override the generated id. Manager passes the registry session id so logs correlate.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"owner":{"type":"string","nullable":true,"maxLength":128},"expiresAt":{"type":"string","format":"date-time"},"state":{"allOf":[{"$ref":"#/components/schemas/DebugSessionState"},{"description":"Initial state. Defaults to 'pending'."}]}},"required":["deploymentId","expiresAt"]},"UpdateDebugSessionRequest":{"type":"object","properties":{"state":{"$ref":"#/components/schemas/DebugSessionState"},"error":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"expiresAt":{"type":"string","format":"date-time"}}},"DeploymentInfo":{"type":"object","properties":{"tokenType":{"type":"string","enum":["deployment","deployment-group"],"description":"Type of token used to authenticate this request"},"deployment":{"type":"object","properties":{"name":{"type":"string"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."}},"required":["name","platform"],"description":"Deployment details (present when using a deployment-scoped token)"},"deploymentGroup":{"type":"object","properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string"},"pinnedSubdomain":{"type":"string","nullable":true}},"required":["id","name","pinnedSubdomain"],"description":"Deployment group details (present when using a deployment-group token)"},"workspace":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"avatarUrl":{"type":"string","nullable":true,"format":"uri"}},"required":["id","name"]},"project":{"type":"object","properties":{"name":{"type":"string"},"portal":{"type":"object","properties":{"appearance":{"$ref":"#/components/schemas/DeploymentPortalAppearance"}},"required":["appearance"]},"stackSummary":{"type":"object","nullable":true,"properties":{"platforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms supported by the active release"},"requiresNetwork":{"type":"boolean","description":"Whether the stack contains resources that require cloud VPC networking"},"resourceCounts":{"type":"object","properties":{"workers":{"type":"integer","minimum":0},"containers":{"type":"integer","minimum":0},"daemons":{"type":"integer","minimum":0,"description":"Daemon resources that run on managed runtime machines"},"publicHttpsEndpoints":{"type":"integer","minimum":0,"description":"Resources that declare managed public HTTPS endpoint setup"},"externalInfra":{"type":"integer","minimum":0,"description":"Storage, queue, KV, vault, database, or cache resources that Kubernetes needs Terraform to provision"},"total":{"type":"integer","minimum":0}},"required":["workers","containers","publicHttpsEndpoints","externalInfra","total"]},"publicEndpoints":{"type":"array","items":{"type":"object","properties":{"resourceId":{"type":"string"},"endpointName":{"type":"string"},"hostLabel":{"type":"string"},"wildcardSubdomains":{"type":"boolean"}},"required":["resourceId","endpointName","hostLabel","wildcardSubdomains"]},"description":"Public endpoints declared by the active release stack"}},"required":["platforms","requiresNetwork","resourceCounts","publicEndpoints"]},"generatedDomain":{"type":"object","nullable":true,"properties":{"domain":{"type":"string"},"isSystem":{"type":"boolean"}},"required":["domain","isSystem"],"description":"Parent domain for generated deployment URLs. Chosen public subdomains are only allowed when isSystem is false."}},"required":["name","portal"]},"packages":{"type":"object","properties":{"ready":{"type":"boolean","description":"True if all enabled packages are ready for deployment"},"cli":{"type":"object","properties":{"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"commandName":{"type":"string","description":"CLI command name to use in install instructions"},"version":{"type":"string"},"outputs":{"type":"object","properties":{"binaries":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sha256":{"type":"string","description":"SHA256 checksum"},"size":{"type":"integer","minimum":0,"description":"File size in bytes"},"url":{"type":"string","description":"Download URL for the binary"}},"required":["sha256","size","url"],"description":"Information about a single binary artifact"},"description":"Binary information for each target platform"},"buildInfo":{"type":"object","properties":{"alienSha":{"type":"string","description":"Alien source commit used to build the source CLI and agent binaries."},"horizonSha":{"type":"string","description":"Compute backend source revision used by optional package extensions, if applicable."},"machineBundleManifestUrl":{"type":"string","nullable":true,"description":"Machine runtime release manifest embedded into the generated CLI."},"platformSha":{"type":"string","description":"Source revision used to build the package service and optional extensions."},"sourceAgentBinarySha256":{"type":"string","nullable":true,"description":"SHA256 checksum of the source runtime helper binary shipped with the CLI package, when present."},"sourceCliBinarySha256":{"type":"string","description":"SHA256 checksum of the source deploy CLI binary before white-label config is appended."}},"required":["alienSha","horizonSha","platformSha","sourceCliBinarySha256"],"description":"Source provenance for a generated CLI package."}},"required":["binaries","buildInfo"],"description":"Outputs from a CLI package build"},"error":{"nullable":true},"installScripts":{"type":"object","properties":{"windows":{"type":"string","format":"uri"},"mac":{"type":"string","format":"uri"},"linux":{"type":"string","format":"uri"}},"required":["windows","mac","linux"],"description":"Install script URLs for each OS"}},"required":["status","commandName","installScripts"]},"cloudformation":{"type":"object","properties":{"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"version":{"type":"string"},"outputs":{"type":"object","properties":{"targets":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"launchStackUrl":{"type":"string","description":"AWS Console quick-launch URL"},"sha256":{"type":"string","description":"SHA256 checksum of the template"},"size":{"type":"integer","minimum":0,"description":"Template size in bytes"},"stackPolicyUrl":{"type":"string","description":"S3 URL to the CloudFormation stack policy"},"target":{"type":"string","description":"CloudFormation target (aws, eks)"},"templateUrl":{"type":"string","description":"S3 URL to the CloudFormation template"}},"required":["launchStackUrl","sha256","size","stackPolicyUrl","target","templateUrl"],"description":"Information about a single CloudFormation template package for one target."},"description":"Template artifacts by CloudFormation target."}},"required":["targets"],"description":"Outputs from a CloudFormation package build."},"error":{"nullable":true},"mode":{"type":"string","enum":["auto","outputs"]},"launchUrl":{"type":"string","format":"uri","description":"CloudFormation launch URL"},"outputsSchema":{"nullable":true}},"required":["status","mode","launchUrl"]},"terraform":{"type":"object","properties":{"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"version":{"type":"string"},"outputs":{"type":"object","properties":{"modules":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL for the module archive"},"filename":{"type":"string","description":"Filename of the module archive"},"shasum":{"type":"string","description":"SHA256 checksum of the archive"},"size":{"type":"integer","minimum":0,"description":"Size of the archive in bytes"},"source":{"type":"string","description":"Terraform module source (hostname/namespace/name/provider, without scheme)"},"target":{"type":"string","description":"Terraform module target (aws, gcp, azure, eks, gke, aks)"},"variables":{"type":"array","items":{"type":"string"},"description":"Terraform input variables exposed by this module."}},"required":["downloadUrl","filename","shasum","size","source","target"],"description":"Information about a single Terraform module package for one target."},"description":"Module registry artifacts by Terraform target."},"provider":{"type":"object","properties":{"gpgPublicKey":{"type":"object","properties":{"asciiArmor":{"type":"string","description":"ASCII-armored public key"},"keyId":{"type":"string","description":"GPG key ID"}},"required":["asciiArmor","keyId"],"description":"GPG public key for Terraform provider signature verification"},"platforms":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL for the provider zip"},"filename":{"type":"string","description":"Filename of the provider zip"},"shasum":{"type":"string","description":"SHA256 checksum of the zip file"},"shasumsSignatureUrl":{"type":"string","description":"URL to the shasums signature file"},"shasumsUrl":{"type":"string","description":"URL to the shasums file"},"size":{"type":"integer","minimum":0,"description":"Size of the zip file in bytes"}},"required":["downloadUrl","filename","shasum","shasumsSignatureUrl","shasumsUrl","size"],"description":"Information about a single Terraform provider package for a specific platform"},"description":"Provider packages for each target platform"},"source":{"type":"string","description":"Terraform provider source (hostname/namespace/type, without scheme)"}},"required":["gpgPublicKey","platforms","source"],"description":"Terraform provider registry outputs."}},"required":["modules","provider"],"description":"Outputs from a Terraform package build."},"error":{"nullable":true},"providerSource":{"type":"string","description":"Terraform provider source (without https://)"},"moduleSources":{"type":"object","additionalProperties":{"type":"string"},"description":"Terraform module sources by target"},"moduleVersion":{"type":"string"},"managerUrls":{"type":"object","additionalProperties":{"type":"string"},"description":"Manager URLs by Terraform target"}},"required":["status","providerSource","moduleSources","managerUrls"]},"helm":{"type":"object","properties":{"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"version":{"type":"string"},"outputs":{"type":"object","properties":{"chart":{"type":"string","description":"OCI chart reference (e.g., \"oci://public.ecr.aws/acme/charts/project-id\")"},"version":{"type":"string","description":"Chart version (e.g., \"1.2.3\")"}},"required":["chart","version"],"description":"Outputs from a Helm chart package build"},"error":{"nullable":true},"chartRef":{"type":"string","description":"OCI chart reference"},"managerFetchExample":{"type":"string"},"localImportExample":{"type":"string"}},"required":["status","chartRef"]}},"required":["ready"]},"installContext":{"type":"object","properties":{"targets":{"type":"object","additionalProperties":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"managerUrl":{"type":"string","format":"uri"},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}],"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."},"awsManagingAccountId":{"type":"string"}},"required":["platform","managerUrl"]},"description":"Deployment-session install context by Terraform/installer target"}},"required":["targets"]},"supportedRegions":{"$ref":"#/components/schemas/SupportedCloudRegions"},"setupConfig":{"$ref":"#/components/schemas/DeploymentInfoSetupConfig"},"readiness":{"type":"object","properties":{"status":{"type":"string","enum":["ready","notReady","unknown"]},"checks":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"status":{"type":"string","enum":["passed","failed","warning","unknown"]},"message":{"type":"string"},"checkedAt":{"type":"string"}},"required":["code","status","message","checkedAt"]}}},"required":["status","checks"]}},"required":["tokenType","workspace","project","packages","installContext","supportedRegions"]},"DeploymentPortalAppearance":{"type":"object","properties":{"avatarUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional project-specific avatar override for the deployment portal."},"preset":{"$ref":"#/components/schemas/DeploymentPortalAppearancePreset"},"accentColor":{"$ref":"#/components/schemas/DeploymentPortalAccentColor"},"title":{"type":"string","nullable":true,"maxLength":80,"description":"Optional portal title. Defaults to the project name."},"subtitle":{"type":"string","nullable":true,"maxLength":160,"description":"Optional customer-facing subtitle."},"supportUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional support or contact URL."},"docsUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional documentation URL."},"density":{"$ref":"#/components/schemas/DeploymentPortalDensity"}}},"SupportedCloudRegions":{"type":"object","properties":{"aws":{"type":"array","items":{"type":"string"},"description":"AWS regions supported by this Alien environment."},"gcp":{"type":"array","items":{"type":"string"},"description":"GCP regions supported by this Alien environment."},"azure":{"type":"array","items":{"type":"string"},"description":"Azure locations supported by this Alien environment."}},"required":["aws","gcp","azure"]},"DeploymentInfoSetupConfig":{"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"environmentVariables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","pattern":"^[A-Z_][A-Z0-9_]*$","description":"Variable name"},"type":{"$ref":"#/components/schemas/EnvironmentVariableType"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string","pattern":"^[a-zA-Z0-9_-]+(\\*)?$"},"description":"Target resource patterns (null = all resources, array = wildcard patterns)"}},"required":["name","type","targetResources"]}},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."}},"inputValues":{"type":"array","items":{"$ref":"#/components/schemas/ResolvedStackInputSummary"}}},"required":["metadata","policy","environmentVariables"]},"ResolvedStackInputSummary":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"]}},"required":{"type":"boolean"},"secret":{"type":"boolean"},"provided":{"type":"boolean"}},"required":["id","label","providedBy","required","secret","provided"]},"DeploymentComputePlan":{"type":"object","properties":{"pools":{"type":"array","items":{"type":"object","properties":{"poolId":{"type":"string"},"workloads":{"type":"array","items":{"type":"string"}},"requirements":{"type":"object","properties":{"cpu":{"type":"string"},"memoryBytes":{"type":"integer","minimum":0},"ephemeralStorageBytes":{"type":"integer","minimum":0},"architecture":{"type":"string","nullable":true,"enum":["arm64","x86_64",null]},"gpu":{"type":"object","nullable":true,"properties":{"type":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["type","count"]}},"required":["cpu","memoryBytes","ephemeralStorageBytes"]},"scale":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["fixed"]},"machines":{"type":"object","properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"default":{"type":"integer","minimum":0}},"required":["min","max","default"]}},"required":["type","machines"]},{"type":"object","properties":{"type":{"type":"string","enum":["autoscale"]},"min":{"type":"object","properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"default":{"type":"integer","minimum":0}},"required":["min","max","default"]},"max":{"type":"object","properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"default":{"type":"integer","minimum":0}},"required":["min","max","default"]}},"required":["type","min","max"]}]},"selected":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["fixed"]},"machines":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","machines"]},{"type":"object","properties":{"mode":{"type":"string","enum":["autoscale"]},"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","min","max"]}]},"recommended":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["fixed"]},"machines":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","machines"]},{"type":"object","properties":{"mode":{"type":"string","enum":["autoscale"]},"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","min","max"]}]},"machines":{"type":"array","items":{"type":"object","properties":{"machine":{"type":"string"},"profile":{"type":"object","properties":{"cpu":{"type":"string"},"memoryBytes":{"type":"integer","minimum":0},"ephemeralStorageBytes":{"type":"integer","minimum":0},"architecture":{"type":"string","nullable":true,"enum":["arm64","x86_64",null]},"gpu":{"type":"object","nullable":true,"properties":{"type":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["type","count"]}},"required":["cpu","memoryBytes","ephemeralStorageBytes"]},"recommended":{"type":"boolean"}},"required":["machine","profile","recommended"]}},"errors":{"type":"array","items":{"type":"string"}}},"required":["poolId","workloads","requirements","scale","selected","recommended","machines"]}}},"required":["pools"]},"PreparedDeploymentStack":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure"]},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"setup":{"$ref":"#/components/schemas/SetupFingerprintInfo"}},"required":["platform","stack","setup"]},"SlackInstallUrlResponse":{"type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"]},"SlackIntegrationStatus":{"type":"object","properties":{"connected":{"type":"boolean"},"slackTeamId":{"type":"string","nullable":true},"slackTeamName":{"type":"string","nullable":true},"installedByUserId":{"type":"string","nullable":true},"installedAt":{"type":"string","nullable":true},"notificationChannelId":{"type":"string","nullable":true}},"required":["connected","slackTeamId","slackTeamName","installedByUserId","installedAt","notificationChannelId"]},"SlackChannelsResponse":{"type":"object","properties":{"channels":{"type":"array","items":{"$ref":"#/components/schemas/SlackChannel"}}},"required":["channels"]},"SlackChannel":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"isMember":{"type":"boolean"}},"required":["id","name","isMember"]},"SlackNotificationChannelResponse":{"type":"object","properties":{"notificationChannelId":{"type":"string","nullable":true},"warning":{"type":"string","nullable":true}},"required":["notificationChannelId","warning"]},"SlackNotificationChannelRequest":{"type":"object","properties":{"channelId":{"type":"string","nullable":true}},"required":["channelId"]},"AgentSessionListResponse":{"type":"object","properties":{"sessions":{"type":"array","items":{"$ref":"#/components/schemas/AgentSessionListItem"}}},"required":["sessions"]},"AgentSessionListItem":{"type":"object","properties":{"id":{"type":"string"},"triggerType":{"type":"string"},"subjectId":{"type":"string"},"subject":{"$ref":"#/components/schemas/AgentSessionSubject"},"status":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","triggerType","subjectId","subject","status","createdAt","updatedAt"]},"AgentSessionSubject":{"type":"object","properties":{"deploymentName":{"type":"string","nullable":true},"deploymentGroupId":{"type":"string","nullable":true},"deploymentGroupName":{"type":"string","nullable":true},"releaseId":{"type":"string","nullable":true},"releaseCommitMessage":{"type":"string","nullable":true},"releaseCommitRef":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"projectName":{"type":"string","nullable":true}},"required":["deploymentName","deploymentGroupId","deploymentGroupName","releaseId","releaseCommitMessage","releaseCommitRef","projectId","projectName"]},"AgentSessionDetail":{"allOf":[{"$ref":"#/components/schemas/AgentSessionListItem"},{"type":"object","properties":{"resultText":{"type":"string","nullable":true},"toolNames":{"type":"array","nullable":true,"items":{"type":"string"}},"error":{"type":"string","nullable":true},"pendingApproval":{"type":"object","nullable":true,"properties":{"approvalId":{"type":"string"},"toolCallId":{"type":"string"},"toolName":{"type":"string"},"input":{"nullable":true}},"required":["approvalId","toolCallId","toolName"]}},"required":["resultText","toolNames","error","pendingApproval"]}]},"AgentSessionEventsResponse":{"type":"object","properties":{"events":{"type":"array","items":{"$ref":"#/components/schemas/AgentSessionEvent"}},"latestSeq":{"type":"number"},"hasMore":{"type":"boolean"}},"required":["events","latestSeq","hasMore"]},"AgentSessionEvent":{"oneOf":[{"$ref":"#/components/schemas/AgentSessionStatusEvent"},{"$ref":"#/components/schemas/AgentSessionStepEvent"},{"$ref":"#/components/schemas/AgentSessionToolCallEvent"},{"$ref":"#/components/schemas/AgentSessionToolResultEvent"},{"$ref":"#/components/schemas/AgentSessionMarkdownEvent"},{"$ref":"#/components/schemas/AgentSessionApprovalRequestedEvent"},{"$ref":"#/components/schemas/AgentSessionApprovalGrantedEvent"},{"$ref":"#/components/schemas/AgentSessionRestartedEvent"},{"$ref":"#/components/schemas/AgentSessionEventsTruncatedEvent"}],"discriminator":{"propertyName":"type","mapping":{"status":"#/components/schemas/AgentSessionStatusEvent","step":"#/components/schemas/AgentSessionStepEvent","tool_call":"#/components/schemas/AgentSessionToolCallEvent","tool_result":"#/components/schemas/AgentSessionToolResultEvent","markdown":"#/components/schemas/AgentSessionMarkdownEvent","approval_requested":"#/components/schemas/AgentSessionApprovalRequestedEvent","approval_granted":"#/components/schemas/AgentSessionApprovalGrantedEvent","session_restarted":"#/components/schemas/AgentSessionRestartedEvent","events_truncated":"#/components/schemas/AgentSessionEventsTruncatedEvent"}}},"AgentSessionStatusEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["status"]},"payload":{"type":"object","properties":{"status":{"type":"string"},"error":{"type":"string"}},"required":["status"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionStepEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["step"]},"payload":{"type":"object","properties":{"stepId":{"type":"string"},"title":{"type":"string"},"status":{"type":"string","enum":["in_progress","complete","error"]}},"required":["stepId","title","status"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionToolCallEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["tool_call"]},"payload":{"type":"object","properties":{"toolCallId":{"type":"string"},"toolName":{"type":"string"},"input":{"nullable":true}},"required":["toolCallId","toolName"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionToolResultEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["tool_result"]},"payload":{"type":"object","properties":{"toolCallId":{"type":"string","nullable":true},"toolName":{"type":"string","nullable":true},"ok":{"type":"boolean"},"output":{"nullable":true}},"required":["toolCallId","toolName","ok"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionMarkdownEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["markdown"]},"payload":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionApprovalRequestedEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["approval_requested"]},"payload":{"type":"object","properties":{"approvalId":{"type":"string"},"toolCallId":{"type":"string"},"toolName":{"type":"string"},"input":{"nullable":true}},"required":["approvalId","toolCallId","toolName"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionApprovalGrantedEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["approval_granted"]},"payload":{"type":"object","properties":{"approvalId":{"type":"string"},"approvedByUserId":{"type":"string"},"approvedByName":{"type":"string","nullable":true},"source":{"type":"string","enum":["dashboard","slack"]}},"required":["approvalId","approvedByUserId","approvedByName","source"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionRestartedEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["session_restarted"]},"payload":{"type":"object","properties":{"reason":{"type":"string"}},"required":["reason"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionEventsTruncatedEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["events_truncated"]},"payload":{"type":"object","properties":{"limit":{"type":"number"}},"required":["limit"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionApproveResponse":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string"},"resumed":{"type":"boolean"}},"required":["jobId","status","resumed"]},"AgentSessionStopResponse":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string"},"canceled":{"type":"boolean"}},"required":["jobId","status","canceled"]},"SyncListResponse":{"type":"object","properties":{"deployments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!ag[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment name.","example":"acme-prod"},"publicSubdomain":{"type":"string","nullable":true,"minLength":1,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","description":"Public subdomain for auto-generated domains"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"basePlatform":{"type":"string","nullable":true,"enum":["aws","gcp","azure",null],"description":"Underlying cloud platform for Kubernetes deployments."},"region":{"type":"string","nullable":true,"description":"Cloud region or location for the deployment."},"deploymentProtocolVersion":{"$ref":"#/components/schemas/DeploymentProtocolVersion"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"ID of deployment group this deployment belongs to","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-provided configuration (network, deployment model, approvals)"},"stackState":{"type":"object","nullable":true,"properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"State of infrastructure components managed by this deployment"},"runtimeMetadata":{"type":"object","nullable":true,"properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment state persistence"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the currently deployed release (actual state)","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the desired release for deployment/update (desired state)","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"releaseChannel":{"allOf":[{"$ref":"#/components/schemas/ReleaseChannelName"},{"description":"Named release stream followed when the deployment is not pinned"}]},"importSource":{"type":"string","nullable":true,"enum":["cloudformation","terraform","helm",null],"description":"Setup source that imported this deployment"},"setupMethod":{"type":"string","nullable":true,"enum":["cloudformation","google-oauth","terraform","helm","cli","manual",null],"description":"Setup method that created the deployment record and owns setup-time resources."},"setupMetadata":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Setup method metadata needed to guide privileged teardown."},"setupTarget":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup target for compatibility checks"},"setupFingerprint":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup compatibility fingerprint"},"setupFingerprintVersion":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Imported setup fingerprint algorithm version"},"operatorScope":{"type":"string","nullable":true,"description":"Display-only scope reported by the Operator manifest"},"operatorPermission":{"type":"string","nullable":true,"description":"Display-only permission tier reported by the Operator manifest"},"operatorVersion":{"type":"string","nullable":true,"description":"Version reported by the Operator"},"capabilities":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OperatorCapabilityReport"},"description":"Capability state reported by the Operator"},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat from the deployment"},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Latest error information if the deployment is in a failed state"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"ID of the manager responsible for this deployment"}]},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"userEnvironmentVariables":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"}},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}],"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."},"deploymentToken":{"type":"string","nullable":true},"lockedBy":{"type":"string","nullable":true},"lockedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["id","name","status","projectId","platform","deploymentProtocolVersion","deploymentGroupId","stackSettings","releaseChannel","retryRequested","createdAt","updatedAt","managerId","workspaceId","userEnvironmentVariables"]}}},"required":["deployments"],"description":"Full deployment records for manager operation"},"SyncListRequest":{"type":"object","properties":{"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Manager requesting the deployments. Manager-scoped tokens are always constrained to their own manager ID."}]},"deploymentIds":{"type":"array","items":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"description":"Specific deployment IDs to include"},"statuses":{"type":"array","items":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"description":"Filter by deployment status"},"platforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Filter by deployment platform"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Filter by deployment group ID","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"limit":{"type":"integer","minimum":1,"maximum":500,"description":"Maximum records to return"}},"additionalProperties":false,"description":"Request to list full operational deployments"},"SyncAcquireResponseDeployment":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"ID of the deployment","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"projectId":{"type":"string","description":"Project ID the deployment belongs to"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Deployment group ID the deployment belongs to","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"setupMethod":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMethod"},{"description":"Setup method recorded on the deployment when it has a setup-owned path."}]},"current":{"type":"object","properties":{"currentRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}]},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"protocolVersion":{"type":"integer","minimum":0,"description":"Protocol version for cross-actor compatibility.\nAll actors (manager, push client, agent) check this before stepping.\nMismatched versions produce a clear error instead of silent corruption.\nSee docs/02-manager/10-deployment-protocol.md."},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment\nWhen true and status is a failed state, the deployment system will retry failed resources"},"runtimeMetadata":{"oneOf":[{"type":"object","properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment\n\nStores deployment state that needs to persist across step calls."},{"nullable":true}]},"stackState":{"oneOf":[{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"Represents the collective state of all resources in a stack, including platform and pending actions."},{"nullable":true}]},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"targetRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]}},"required":["platform","protocolVersion","status"],"description":"Current deployment state (includes releases)"},"config":{"type":"object","properties":{"allowFrozenChanges":{"type":"boolean","description":"Allow frozen resource changes during updates\nWhen true, skips the frozen resources compatibility check.\nThis requires running with elevated cloud credentials."},"basePlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"computeBackend":{"oneOf":[{"allOf":[{"type":"object","properties":{"clusters":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"clusterId":{"type":"string","description":"Cluster ID (deterministic: workspace/project/deployment/resourceid)"},"managementToken":{"type":"string","description":"Management token for API access (hm_...)\nUsed by alien-deployment controllers to create/update containers"}},"required":["clusterId","managementToken"],"description":"Configuration for a single container worker cluster.\n\nContains the cluster ID and management token needed to interact with\nthe managed container control plane API for container operations."},"description":"Cluster configurations (one per ComputeCluster resource)\nKey: ComputeCluster resource ID from stack\nValue: Cluster ID and management token for that cluster"},"horizonMachineImage":{"oneOf":[{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"amis":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"AMI IDs by architecture, then AWS region."}},"required":["amis"],"description":"AWS Horizon machine image catalog."},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"images":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"imageVersionId":{"type":"string","description":"Azure Compute Gallery image version ID."}},"required":["imageVersionId"],"description":"Azure Horizon machine image entry."},"description":"Images by architecture."}},"required":["images"],"description":"Azure Horizon machine image catalog."},{"nullable":true}]},"baseImage":{"type":"object","properties":{"name":{"type":"string","description":"Base OS image name."},"version":{"type":"string","description":"Base OS image version or channel."}},"required":["name","version"],"description":"Base image metadata for the Horizon machine image."},"channel":{"type":"string","description":"Logical image channel, such as prod, staging, or canary."},"createdAt":{"type":"string","description":"Image manifest creation timestamp."},"gcp":{"oneOf":[{"type":"object","properties":{"images":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sourceImage":{"type":"string","description":"Source image self link or image-family URL."}},"required":["sourceImage"],"description":"GCP Horizon machine image entry."},"description":"Images by architecture."}},"required":["images"],"description":"GCP Horizon machine image catalog."},{"nullable":true}]},"gitSha":{"type":"string","description":"Git commit SHA used to build the image."},"horizondArtifacts":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sha256":{"type":"string","description":"SHA-256 digest for the artifact payload."},"url":{"type":"string","description":"HTTPS URL for the artifact."}},"required":["sha256","url"],"description":"Download artifact for one horizond release platform."},"description":"Per-architecture horizond artifacts by release-platform key."},"horizondVersion":{"type":"string","description":"horizond daemon version baked into the image."},"machineImageVersion":{"type":"string","description":"Published immutable machine image version."}},"required":["baseImage","channel","createdAt","gitSha","horizondArtifacts","horizondVersion","machineImageVersion"],"description":"Horizon machine image catalog.\n\nPlatform resolves concrete provider images from this catalog during rollout."},{"nullable":true}]},"url":{"type":"string","description":"Horizon control-plane API base URL."}},"required":["clusters","url"],"description":"Horizon control-plane configuration for container orchestration.\n\nContains all the information needed for Alien to interact with managed\ncontainer clusters during deployment. Each ComputeCluster resource gets its own\nentry in the clusters map."},{"type":"object","properties":{"type":{"type":"string","enum":["horizon"]}},"required":["type"]}],"description":"Compute backend for Container and Worker resources.\n\nDetermines how compute workloads are orchestrated on cloud platforms.\nWhen None, the platform default is used for cloud platforms."},{"nullable":true}]},"deploymentName":{"type":"string","nullable":true,"description":"Human-readable deployment name for cloud console metadata.\n\nThis is separate from the physical resource prefix in StackState. It is\nused only for display text such as IAM role descriptions, service\naccount descriptions, and custom role titles."},"deploymentToken":{"type":"string","nullable":true,"description":"Deployment token for pull authentication with the manager's registry.\n\nUsed by controllers to configure registry credentials so cloud platforms\nand K8s can pull images from the manager's `/v2/` endpoint."},"domainMetadata":{"oneOf":[{"type":"object","properties":{"baseDomain":{"type":"string","description":"Base domain for auto-generated domains (e.g., \"vpc.direct\")."},"hostedZoneId":{"type":"string","description":"Hosted zone ID for DNS records."},"publicSubdomain":{"type":"string","description":"Deployment public subdomain (e.g., \"k8f2j3\")."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"aliases":{"type":"array","items":{"type":"object","properties":{"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message. Present when DNS previously failed, even if status\nwas reset to pending for retry. Used to surface actionable error context\nin WaitingForDns failure messages."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a managed hostname.\n\nIncludes decrypted certificate data for issued certificates.\nPrivate keys are deployment-scoped secrets (like environment variables)."},"description":"Additional managed hostnames for the resource."},"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"endpoints":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message. Present when DNS previously failed, even if status\nwas reset to pending for retry. Used to surface actionable error context\nin WaitingForDns failure messages."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a managed hostname.\n\nIncludes decrypted certificate data for issued certificates.\nPrivate keys are deployment-scoped secrets (like environment variables)."},"description":"Endpoint-scoped metadata keyed by endpoint name."},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a public resource.\n\nThe direct fields describe the primary endpoint hostname. `endpoints`\ncontains endpoint-scoped metadata keyed by endpoint name. `aliases` contains\nadditional managed hostnames that route directly to the primary endpoint."},"description":"Metadata per resource ID."}},"required":["baseDomain","hostedZoneId","publicSubdomain","resources"],"description":"Domain metadata for auto-managed public resources (no private keys)."},{"nullable":true}]},"environmentVariables":{"type":"object","properties":{"createdAt":{"type":"string","description":"ISO 8601 timestamp when snapshot was created"},"hash":{"type":"string","description":"Deterministic hash of all variables (for change detection)"},"variables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Variable name"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource patterns (null = all resources, Some = wildcard patterns)"},"type":{"type":"string","enum":["plain","secret"],"description":"Type of environment variable"},"value":{"type":"string","description":"Variable value (decrypted - deployment has access to decryption keys)"}},"required":["name","type","value"],"description":"Environment variable for deployment"},"description":"Environment variables in the snapshot"}},"required":["createdAt","hash","variables"],"description":"Snapshot of environment variables at a point in time"},"externalBindings":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"bucketName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS S3 storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["s3"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"containerName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Blob Storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["blob"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"bucketName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Google Cloud Storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["gcs"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"storagePath":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local filesystem storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["local-storage"]}},"required":["service"]}]}],"description":"Service-type based storage binding that supports multiple storage providers"},{"type":"object","properties":{"type":{"type":"string","enum":["storage"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"queueUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS SQS queue parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["sqs"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"subscription":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"topic":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Pub/Sub parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["pubsub"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"queueName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Service Bus parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["servicebus"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"queuePath":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local queue parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["local-queue"]}},"required":["service"]}]}],"description":"Binding parameters for Queue at runtime or in templates."},{"type":"object","properties":{"type":{"type":"string","enum":["queue"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"endpointUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"region":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"tableName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS DynamoDB KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["dynamodb"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"collectionName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"databaseId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"projectId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Firestore KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["firestore"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"tableName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Table Storage KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["tablestorage"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"connectionUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"database":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"keyPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Redis KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["redis"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"keyPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Local development KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["local-kv"]}},"required":["service"]}]}],"description":"Represents a KV binding for key-value storage across platforms"},{"type":"object","properties":{"type":{"type":"string","enum":["kv"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"pullRoleArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"pushRoleArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"repositoryPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS ECR (Elastic Container Registry) binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["ecr"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"registryName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"repositoryPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Container Registry binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["acr"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"pullServiceAccountEmail":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"pushServiceAccountEmail":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"repositoryName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Google Artifact Registry binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["gar"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"type":"string"},{"nullable":true},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"registryUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local container registry binding configuration.\n\nThe local registry runs on localhost only and does not require authentication.\nSecurity boundary is the OS process isolation on the customer's machine.\nExternal image access is secured by the manager's registry proxy (deployment tokens)."},{"type":"object","properties":{"service":{"type":"string","enum":["local"]}},"required":["service"]}]}],"description":"Service-type based artifact registry binding that supports multiple registry providers"},{"type":"object","properties":{"type":{"type":"string","enum":["artifact_registry"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS SSM Parameter Store vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["parameter-store"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Secret Manager vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["secret-manager"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"vaultName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Key Vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["key-vault"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Kubernetes Secrets vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["kubernetes-secret"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"vaultName":{"type":"string","description":"The vault name for local storage"}},"required":["vaultName"],"description":"Local development vault binding (for testing/development)"},{"type":"object","properties":{"service":{"type":"string","enum":["local-vault"]}},"required":["service"]}]}],"description":"Represents a vault binding for secure secret management"},{"type":"object","properties":{"type":{"type":"string","enum":["vault"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"defaultDomain":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"environmentName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"staticIp":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Binding configuration for a pre-existing Azure Container Apps Environment.\n\nUsed when deploying to an existing environment instead of having Alien provision one.\nThis is useful for shared environments (e.g., test infrastructure) or enterprise\nsetups where environments are managed by a separate team."},{"type":"object","properties":{"type":{"type":"string","enum":["container_apps_environment"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"clusterEndpoint":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS Aurora Serverless v2 binding."},{"type":"object","properties":{"service":{"type":"string","enum":["aurora"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"serverCaCertificates":{"oneOf":[{"type":"array","items":{"type":"string"}},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Cloud SQL binding."},{"type":"object","properties":{"service":{"type":"string","enum":["cloud-sql"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretUri":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Flexible Server binding."},{"type":"object","properties":{"service":{"type":"string","enum":["flexible-server"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"password":{"type":"string","description":"Connection password as a concrete value, never an unresolved `SecretRef`: the platform\nmaterializes the Kubernetes secret into the pod env. The cloud variants carry a secret\nlocator instead."},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"sslMode":{"type":"string","enum":["verify-full","disable"],"description":"TLS policy for an operator-provided / BYO Postgres database.\n\nUnlike libpq's ambiguous `prefer` mode, both choices map exactly to the\nconnection settings exposed by every supported SDK."},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"required":["password"],"description":"Operator-provided / BYO database binding."},{"type":"object","properties":{"service":{"type":"string","enum":["external"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"password":{"type":"string"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"required":["password"],"description":"Local embedded Postgres binding."},{"type":"object","properties":{"service":{"type":"string","enum":["local-postgres"]}},"required":["service"]}]}],"description":"Connection details for a Postgres database, one variant per backend."},{"type":"object","properties":{"type":{"type":"string","enum":["postgres"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"apiKey":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"provider":{"type":"string","description":"The external AI provider name (e.g., \"openai\", \"anthropic\")"}},"required":["provider"],"description":"External AI provider binding configuration (BYO-key).\n\nThe operator-supplied secret rides inside the binding via\n`BindingValue`, so it is a literal on cloud platforms and gains\nKubernetes SecretRef resolution for free (`extract_binding_secrets` walks\nthe binding JSON for `secretRef`)."},{"type":"object","properties":{"type":{"type":"string","enum":["ai"]}},"required":["type"]}]}],"description":"Represents a binding to pre-existing infrastructure.\n\nThe binding type must match the resource type it's applied to.\nValidated at runtime by the executor."},"description":"Map from resource ID to external binding.\n\nValidated at runtime: binding type must match resource type."},"inputValues":{"type":"object","properties":{},"additionalProperties":{"nullable":true},"description":"Deployer-provided stack input values, keyed by input id. A resource\ngated with `.enabled(input)` and a Live lifecycle follows these\nvalues; a missing key falls back to the input's declared boolean\ndefault. Suppliers must not place secret-kind input values here:\nthis map serializes and debug-prints unredacted."},"labelDomain":{"type":"string","nullable":true,"description":"DNS-style label domain used for Kubernetes resource ownership labels.\n\nDefaults to `alien.dev` when absent. Whitelabeled Operator builds set this\nso generated workloads and optional log collectors share the same label\nnamespace."},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}]},"managerUrl":{"type":"string","nullable":true,"description":"Manager base URL (e.g., \"https://manager.alien.dev\").\n\nThe manager IS the container registry — its `/v2/` endpoint serves as\nthe OCI Distribution API. Controllers derive the proxy host from this\nto configure pull auth (RegistryCredentials, imagePullSecrets).\n\nWhen None (e.g., `alien dev`), controllers use image URIs as-is."},"monitoring":{"oneOf":[{"type":"object","properties":{"logsAuthHeader":{"type":"string","description":"Auth header value in \"key=value,...\" format.\nExample: \"authorization=Bearer \""},"logsEndpoint":{"type":"string","description":"Full OTLP logs endpoint URL.\nExample: \"https:///v1/logs\""},"metricsAuthHeader":{"type":"string","nullable":true,"description":"Auth header value for the metrics endpoint in \"key=value,...\" format (optional).\n\nWhen absent, `logs_auth_header` is reused for metrics -- suitable when the same\ncredential covers both signals. When present (e.g. Axiom with separate datasets),\nthis value is used exclusively for metrics.\n\nExample: \"authorization=Bearer ,x-axiom-dataset=\""},"metricsEndpoint":{"type":"string","nullable":true,"description":"Full OTLP metrics endpoint URL (optional).\nWhen set, the worker runtime exports its own VM/container orchestration metrics here.\nExample: \"https://api.axiom.co/v1/metrics\""},"resourceAttributes":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Resource attributes attached to every OTLP signal emitted for this deployment.\n\nPlatform managers use this for stable identity such as `alien.workspace_id`,\n`alien.project_id`, `alien.deployment_group_id`, and `alien.deployment_id`.\nRuntime-specific resource attributes such as `service.name` remain owned by\nthe runtime/exporter."}},"required":["logsAuthHeader","logsEndpoint"],"description":"OTLP log export configuration for a deployment.\n\nWhen set, injected compute runtimes export captured application logs\nthrough the given endpoint via OTLP/HTTP; which resources are injected\nis platform-dependent. Workers read auth headers from a runtime-only\nsecret. Runtime-less Containers and Daemons receive standard OTEL auth\nvariables only at the final hosting boundary: Local passes them directly\nto the process and Kubernetes projects them from a per-workload Secret."},{"nullable":true}]},"nativeImageHost":{"type":"string","nullable":true,"description":"Native image registry host+prefix for platforms that require it.\n\nLambda (ECR) and Cloud Run (GAR) require native registry URIs. Other\nruntimes, including Azure Container Apps, pull through the manager's\nregistry proxy.\n\nDerived by the manager from the artifact registry binding:\n- ECR: `{account_id}.dkr.ecr.{region}.amazonaws.com/{repository_prefix}`\n- GAR: `{region}-docker.pkg.dev/{project_id}/{repository_name}`"},"observeAllNamespaces":{"type":"boolean","description":"When true the observe pass reports raw resources across every namespace\n(cluster scope); otherwise it stays within the operator's own namespace.\nThe label selector, if any, still filters within whichever scope applies.\nIgnored by cloud observers."},"observeLabelSelector":{"type":"string","nullable":true,"description":"Kubernetes label selector that narrows which raw resources the observe\npass reports (e.g. `app.kubernetes.io/part-of=my-app`). `None` observes\neverything in the namespace. Ignored by cloud observers."},"publicEndpoints":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Public endpoint URLs for exposed resources (optional override).\n\nUse this only when a caller already knows the public URL. Managed public\nendpoint flows should prefer `domain_metadata` plus controller-reported\nload balancer outputs so DNS, certificate renewal, and route readiness\nstay tied to the resource state.\n\nIf not set, platforms determine public endpoint URLs from other sources:\n- Managed DNS/TLS flows: `domain_metadata` FQDN or load balancer DNS\n- Local: `http://localhost:{allocated_port}`\n- Custom or disabled exposure: no public endpoint URL unless a controller reports one\n\nOuter key: resource ID. Inner key: endpoint name. Value: public URL."},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["environmentVariables"],"description":"Deployment configuration"}},"required":["deploymentId","projectId","deploymentGroupId","current","config"]},"SyncContextRequest":{"type":"object","properties":{"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Manager requesting the context. Manager-scoped tokens are constrained to their own manager ID."}]},"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"}},"required":["deploymentId"],"additionalProperties":false},"SyncAcquireResponse":{"type":"object","properties":{"deployments":{"type":"array","items":{"$ref":"#/components/schemas/SyncAcquireResponseDeployment"},"description":"List of acquired deployments with deployment context"},"failures":{"type":"array","items":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"ID of the deployment that failed","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"projectId":{"type":"string","description":"Project ID the deployment belongs to"},"error":{"allOf":[{"$ref":"#/components/schemas/APIError"},{"description":"Error that occurred during context building"}]}},"required":["deploymentId","projectId","error"]},"description":"List of deployments that failed during context building (locks already released)"},"leaseExpiresAt":{"type":"string","nullable":true,"format":"date-time","description":"When the provisional leases on the returned deployments lapse. Confirm them with sync/renew before starting work. Null when nothing was acquired."}},"required":["deployments","failures","leaseExpiresAt"],"description":"Acquired deployments and failures"},"SyncAcquireRequest":{"type":"object","properties":{"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Manager requesting the deployments. If omitted, resolved from each deployment's managerId column."}]},"session":{"type":"string","description":"Unique session identifier for lock tracking"},"requestId":{"type":"string","minLength":1,"description":"Idempotency key for one logical acquire request"},"deploymentIds":{"type":"array","items":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"description":"Specific deployment IDs to lock (for Pull model sync)"},"statuses":{"type":"array","items":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"description":"Filter by deployment statuses (default: all deployment statuses)"},"platforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Filter by platforms (default: all platforms the Manager supports)"},"setupMethod":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMethod"},{"description":"Filter by setup method for setup-owned acquisition paths"}]},"acquireMode":{"type":"string","enum":["runtime","setup-run","setup-teardown"],"description":"Phase ownership mode for deployment acquisition"},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Filter by deployment model from stackSettings.deploymentModel."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum number of deployments to acquire (default: 10)"}},"required":["session","requestId","deploymentModel"],"additionalProperties":false,"description":"Request to acquire deployments for processing"},"SyncReconcileResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the state was reconciled"},"current":{"type":"object","properties":{"currentRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}]},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"protocolVersion":{"type":"integer","minimum":0,"description":"Protocol version for cross-actor compatibility.\nAll actors (manager, push client, agent) check this before stepping.\nMismatched versions produce a clear error instead of silent corruption.\nSee docs/02-manager/10-deployment-protocol.md."},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment\nWhen true and status is a failed state, the deployment system will retry failed resources"},"runtimeMetadata":{"oneOf":[{"type":"object","properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment\n\nStores deployment state that needs to persist across step calls."},{"nullable":true}]},"stackState":{"oneOf":[{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"Represents the collective state of all resources in a stack, including platform and pending actions."},{"nullable":true}]},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"targetRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]}},"required":["platform","protocolVersion","status"],"description":"Current deployment state after reconciliation"},"target":{"type":"object","properties":{"config":{"type":"object","properties":{"allowFrozenChanges":{"type":"boolean","description":"Allow frozen resource changes during updates\nWhen true, skips the frozen resources compatibility check.\nThis requires running with elevated cloud credentials."},"basePlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"computeBackend":{"oneOf":[{"allOf":[{"type":"object","properties":{"clusters":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"clusterId":{"type":"string","description":"Cluster ID (deterministic: workspace/project/deployment/resourceid)"},"managementToken":{"type":"string","description":"Management token for API access (hm_...)\nUsed by alien-deployment controllers to create/update containers"}},"required":["clusterId","managementToken"],"description":"Configuration for a single container worker cluster.\n\nContains the cluster ID and management token needed to interact with\nthe managed container control plane API for container operations."},"description":"Cluster configurations (one per ComputeCluster resource)\nKey: ComputeCluster resource ID from stack\nValue: Cluster ID and management token for that cluster"},"horizonMachineImage":{"oneOf":[{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"amis":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"AMI IDs by architecture, then AWS region."}},"required":["amis"],"description":"AWS Horizon machine image catalog."},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"images":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"imageVersionId":{"type":"string","description":"Azure Compute Gallery image version ID."}},"required":["imageVersionId"],"description":"Azure Horizon machine image entry."},"description":"Images by architecture."}},"required":["images"],"description":"Azure Horizon machine image catalog."},{"nullable":true}]},"baseImage":{"type":"object","properties":{"name":{"type":"string","description":"Base OS image name."},"version":{"type":"string","description":"Base OS image version or channel."}},"required":["name","version"],"description":"Base image metadata for the Horizon machine image."},"channel":{"type":"string","description":"Logical image channel, such as prod, staging, or canary."},"createdAt":{"type":"string","description":"Image manifest creation timestamp."},"gcp":{"oneOf":[{"type":"object","properties":{"images":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sourceImage":{"type":"string","description":"Source image self link or image-family URL."}},"required":["sourceImage"],"description":"GCP Horizon machine image entry."},"description":"Images by architecture."}},"required":["images"],"description":"GCP Horizon machine image catalog."},{"nullable":true}]},"gitSha":{"type":"string","description":"Git commit SHA used to build the image."},"horizondArtifacts":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sha256":{"type":"string","description":"SHA-256 digest for the artifact payload."},"url":{"type":"string","description":"HTTPS URL for the artifact."}},"required":["sha256","url"],"description":"Download artifact for one horizond release platform."},"description":"Per-architecture horizond artifacts by release-platform key."},"horizondVersion":{"type":"string","description":"horizond daemon version baked into the image."},"machineImageVersion":{"type":"string","description":"Published immutable machine image version."}},"required":["baseImage","channel","createdAt","gitSha","horizondArtifacts","horizondVersion","machineImageVersion"],"description":"Horizon machine image catalog.\n\nPlatform resolves concrete provider images from this catalog during rollout."},{"nullable":true}]},"url":{"type":"string","description":"Horizon control-plane API base URL."}},"required":["clusters","url"],"description":"Horizon control-plane configuration for container orchestration.\n\nContains all the information needed for Alien to interact with managed\ncontainer clusters during deployment. Each ComputeCluster resource gets its own\nentry in the clusters map."},{"type":"object","properties":{"type":{"type":"string","enum":["horizon"]}},"required":["type"]}],"description":"Compute backend for Container and Worker resources.\n\nDetermines how compute workloads are orchestrated on cloud platforms.\nWhen None, the platform default is used for cloud platforms."},{"nullable":true}]},"deploymentName":{"type":"string","nullable":true,"description":"Human-readable deployment name for cloud console metadata.\n\nThis is separate from the physical resource prefix in StackState. It is\nused only for display text such as IAM role descriptions, service\naccount descriptions, and custom role titles."},"deploymentToken":{"type":"string","nullable":true,"description":"Deployment token for pull authentication with the manager's registry.\n\nUsed by controllers to configure registry credentials so cloud platforms\nand K8s can pull images from the manager's `/v2/` endpoint."},"domainMetadata":{"oneOf":[{"type":"object","properties":{"baseDomain":{"type":"string","description":"Base domain for auto-generated domains (e.g., \"vpc.direct\")."},"hostedZoneId":{"type":"string","description":"Hosted zone ID for DNS records."},"publicSubdomain":{"type":"string","description":"Deployment public subdomain (e.g., \"k8f2j3\")."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"aliases":{"type":"array","items":{"type":"object","properties":{"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message. Present when DNS previously failed, even if status\nwas reset to pending for retry. Used to surface actionable error context\nin WaitingForDns failure messages."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a managed hostname.\n\nIncludes decrypted certificate data for issued certificates.\nPrivate keys are deployment-scoped secrets (like environment variables)."},"description":"Additional managed hostnames for the resource."},"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"endpoints":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message. Present when DNS previously failed, even if status\nwas reset to pending for retry. Used to surface actionable error context\nin WaitingForDns failure messages."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a managed hostname.\n\nIncludes decrypted certificate data for issued certificates.\nPrivate keys are deployment-scoped secrets (like environment variables)."},"description":"Endpoint-scoped metadata keyed by endpoint name."},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a public resource.\n\nThe direct fields describe the primary endpoint hostname. `endpoints`\ncontains endpoint-scoped metadata keyed by endpoint name. `aliases` contains\nadditional managed hostnames that route directly to the primary endpoint."},"description":"Metadata per resource ID."}},"required":["baseDomain","hostedZoneId","publicSubdomain","resources"],"description":"Domain metadata for auto-managed public resources (no private keys)."},{"nullable":true}]},"environmentVariables":{"type":"object","properties":{"createdAt":{"type":"string","description":"ISO 8601 timestamp when snapshot was created"},"hash":{"type":"string","description":"Deterministic hash of all variables (for change detection)"},"variables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Variable name"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource patterns (null = all resources, Some = wildcard patterns)"},"type":{"type":"string","enum":["plain","secret"],"description":"Type of environment variable"},"value":{"type":"string","description":"Variable value (decrypted - deployment has access to decryption keys)"}},"required":["name","type","value"],"description":"Environment variable for deployment"},"description":"Environment variables in the snapshot"}},"required":["createdAt","hash","variables"],"description":"Snapshot of environment variables at a point in time"},"externalBindings":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"bucketName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS S3 storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["s3"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"containerName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Blob Storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["blob"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"bucketName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Google Cloud Storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["gcs"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"storagePath":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local filesystem storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["local-storage"]}},"required":["service"]}]}],"description":"Service-type based storage binding that supports multiple storage providers"},{"type":"object","properties":{"type":{"type":"string","enum":["storage"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"queueUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS SQS queue parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["sqs"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"subscription":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"topic":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Pub/Sub parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["pubsub"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"queueName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Service Bus parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["servicebus"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"queuePath":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local queue parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["local-queue"]}},"required":["service"]}]}],"description":"Binding parameters for Queue at runtime or in templates."},{"type":"object","properties":{"type":{"type":"string","enum":["queue"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"endpointUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"region":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"tableName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS DynamoDB KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["dynamodb"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"collectionName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"databaseId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"projectId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Firestore KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["firestore"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"tableName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Table Storage KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["tablestorage"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"connectionUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"database":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"keyPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Redis KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["redis"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"keyPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Local development KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["local-kv"]}},"required":["service"]}]}],"description":"Represents a KV binding for key-value storage across platforms"},{"type":"object","properties":{"type":{"type":"string","enum":["kv"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"pullRoleArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"pushRoleArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"repositoryPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS ECR (Elastic Container Registry) binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["ecr"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"registryName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"repositoryPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Container Registry binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["acr"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"pullServiceAccountEmail":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"pushServiceAccountEmail":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"repositoryName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Google Artifact Registry binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["gar"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"type":"string"},{"nullable":true},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"registryUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local container registry binding configuration.\n\nThe local registry runs on localhost only and does not require authentication.\nSecurity boundary is the OS process isolation on the customer's machine.\nExternal image access is secured by the manager's registry proxy (deployment tokens)."},{"type":"object","properties":{"service":{"type":"string","enum":["local"]}},"required":["service"]}]}],"description":"Service-type based artifact registry binding that supports multiple registry providers"},{"type":"object","properties":{"type":{"type":"string","enum":["artifact_registry"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS SSM Parameter Store vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["parameter-store"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Secret Manager vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["secret-manager"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"vaultName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Key Vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["key-vault"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Kubernetes Secrets vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["kubernetes-secret"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"vaultName":{"type":"string","description":"The vault name for local storage"}},"required":["vaultName"],"description":"Local development vault binding (for testing/development)"},{"type":"object","properties":{"service":{"type":"string","enum":["local-vault"]}},"required":["service"]}]}],"description":"Represents a vault binding for secure secret management"},{"type":"object","properties":{"type":{"type":"string","enum":["vault"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"defaultDomain":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"environmentName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"staticIp":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Binding configuration for a pre-existing Azure Container Apps Environment.\n\nUsed when deploying to an existing environment instead of having Alien provision one.\nThis is useful for shared environments (e.g., test infrastructure) or enterprise\nsetups where environments are managed by a separate team."},{"type":"object","properties":{"type":{"type":"string","enum":["container_apps_environment"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"clusterEndpoint":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS Aurora Serverless v2 binding."},{"type":"object","properties":{"service":{"type":"string","enum":["aurora"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"serverCaCertificates":{"oneOf":[{"type":"array","items":{"type":"string"}},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Cloud SQL binding."},{"type":"object","properties":{"service":{"type":"string","enum":["cloud-sql"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretUri":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Flexible Server binding."},{"type":"object","properties":{"service":{"type":"string","enum":["flexible-server"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"password":{"type":"string","description":"Connection password as a concrete value, never an unresolved `SecretRef`: the platform\nmaterializes the Kubernetes secret into the pod env. The cloud variants carry a secret\nlocator instead."},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"sslMode":{"type":"string","enum":["verify-full","disable"],"description":"TLS policy for an operator-provided / BYO Postgres database.\n\nUnlike libpq's ambiguous `prefer` mode, both choices map exactly to the\nconnection settings exposed by every supported SDK."},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"required":["password"],"description":"Operator-provided / BYO database binding."},{"type":"object","properties":{"service":{"type":"string","enum":["external"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"password":{"type":"string"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"required":["password"],"description":"Local embedded Postgres binding."},{"type":"object","properties":{"service":{"type":"string","enum":["local-postgres"]}},"required":["service"]}]}],"description":"Connection details for a Postgres database, one variant per backend."},{"type":"object","properties":{"type":{"type":"string","enum":["postgres"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"apiKey":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"provider":{"type":"string","description":"The external AI provider name (e.g., \"openai\", \"anthropic\")"}},"required":["provider"],"description":"External AI provider binding configuration (BYO-key).\n\nThe operator-supplied secret rides inside the binding via\n`BindingValue`, so it is a literal on cloud platforms and gains\nKubernetes SecretRef resolution for free (`extract_binding_secrets` walks\nthe binding JSON for `secretRef`)."},{"type":"object","properties":{"type":{"type":"string","enum":["ai"]}},"required":["type"]}]}],"description":"Represents a binding to pre-existing infrastructure.\n\nThe binding type must match the resource type it's applied to.\nValidated at runtime by the executor."},"description":"Map from resource ID to external binding.\n\nValidated at runtime: binding type must match resource type."},"inputValues":{"type":"object","properties":{},"additionalProperties":{"nullable":true},"description":"Deployer-provided stack input values, keyed by input id. A resource\ngated with `.enabled(input)` and a Live lifecycle follows these\nvalues; a missing key falls back to the input's declared boolean\ndefault. Suppliers must not place secret-kind input values here:\nthis map serializes and debug-prints unredacted."},"labelDomain":{"type":"string","nullable":true,"description":"DNS-style label domain used for Kubernetes resource ownership labels.\n\nDefaults to `alien.dev` when absent. Whitelabeled Operator builds set this\nso generated workloads and optional log collectors share the same label\nnamespace."},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}]},"managerUrl":{"type":"string","nullable":true,"description":"Manager base URL (e.g., \"https://manager.alien.dev\").\n\nThe manager IS the container registry — its `/v2/` endpoint serves as\nthe OCI Distribution API. Controllers derive the proxy host from this\nto configure pull auth (RegistryCredentials, imagePullSecrets).\n\nWhen None (e.g., `alien dev`), controllers use image URIs as-is."},"monitoring":{"oneOf":[{"type":"object","properties":{"logsAuthHeader":{"type":"string","description":"Auth header value in \"key=value,...\" format.\nExample: \"authorization=Bearer \""},"logsEndpoint":{"type":"string","description":"Full OTLP logs endpoint URL.\nExample: \"https:///v1/logs\""},"metricsAuthHeader":{"type":"string","nullable":true,"description":"Auth header value for the metrics endpoint in \"key=value,...\" format (optional).\n\nWhen absent, `logs_auth_header` is reused for metrics -- suitable when the same\ncredential covers both signals. When present (e.g. Axiom with separate datasets),\nthis value is used exclusively for metrics.\n\nExample: \"authorization=Bearer ,x-axiom-dataset=\""},"metricsEndpoint":{"type":"string","nullable":true,"description":"Full OTLP metrics endpoint URL (optional).\nWhen set, the worker runtime exports its own VM/container orchestration metrics here.\nExample: \"https://api.axiom.co/v1/metrics\""},"resourceAttributes":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Resource attributes attached to every OTLP signal emitted for this deployment.\n\nPlatform managers use this for stable identity such as `alien.workspace_id`,\n`alien.project_id`, `alien.deployment_group_id`, and `alien.deployment_id`.\nRuntime-specific resource attributes such as `service.name` remain owned by\nthe runtime/exporter."}},"required":["logsAuthHeader","logsEndpoint"],"description":"OTLP log export configuration for a deployment.\n\nWhen set, injected compute runtimes export captured application logs\nthrough the given endpoint via OTLP/HTTP; which resources are injected\nis platform-dependent. Workers read auth headers from a runtime-only\nsecret. Runtime-less Containers and Daemons receive standard OTEL auth\nvariables only at the final hosting boundary: Local passes them directly\nto the process and Kubernetes projects them from a per-workload Secret."},{"nullable":true}]},"nativeImageHost":{"type":"string","nullable":true,"description":"Native image registry host+prefix for platforms that require it.\n\nLambda (ECR) and Cloud Run (GAR) require native registry URIs. Other\nruntimes, including Azure Container Apps, pull through the manager's\nregistry proxy.\n\nDerived by the manager from the artifact registry binding:\n- ECR: `{account_id}.dkr.ecr.{region}.amazonaws.com/{repository_prefix}`\n- GAR: `{region}-docker.pkg.dev/{project_id}/{repository_name}`"},"observeAllNamespaces":{"type":"boolean","description":"When true the observe pass reports raw resources across every namespace\n(cluster scope); otherwise it stays within the operator's own namespace.\nThe label selector, if any, still filters within whichever scope applies.\nIgnored by cloud observers."},"observeLabelSelector":{"type":"string","nullable":true,"description":"Kubernetes label selector that narrows which raw resources the observe\npass reports (e.g. `app.kubernetes.io/part-of=my-app`). `None` observes\neverything in the namespace. Ignored by cloud observers."},"publicEndpoints":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Public endpoint URLs for exposed resources (optional override).\n\nUse this only when a caller already knows the public URL. Managed public\nendpoint flows should prefer `domain_metadata` plus controller-reported\nload balancer outputs so DNS, certificate renewal, and route readiness\nstay tied to the resource state.\n\nIf not set, platforms determine public endpoint URLs from other sources:\n- Managed DNS/TLS flows: `domain_metadata` FQDN or load balancer DNS\n- Local: `http://localhost:{allocated_port}`\n- Custom or disabled exposure: no public endpoint URL unless a controller reports one\n\nOuter key: resource ID. Inner key: endpoint name. Value: public URL."},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["environmentVariables"],"description":"Deployment configuration\n\nConfiguration for how to perform the deployment.\nNote: Credentials (ClientConfig) are passed separately to step() function."},"releaseInfo":{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."}},"required":["config","releaseInfo"],"description":"Target deployment if update is needed"}},"required":["success","current"],"description":"State reconciliation result with optional target"},"SyncReconcileRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Deployment ID to reconcile state for","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"session":{"type":"string","description":"Lock session (push model only) - verifies lock ownership"},"state":{"type":"object","properties":{"currentRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}]},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"protocolVersion":{"type":"integer","minimum":0,"description":"Protocol version for cross-actor compatibility.\nAll actors (manager, push client, agent) check this before stepping.\nMismatched versions produce a clear error instead of silent corruption.\nSee docs/02-manager/10-deployment-protocol.md."},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment\nWhen true and status is a failed state, the deployment system will retry failed resources"},"runtimeMetadata":{"oneOf":[{"type":"object","properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment\n\nStores deployment state that needs to persist across step calls."},{"nullable":true}]},"stackState":{"oneOf":[{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"Represents the collective state of all resources in a stack, including platform and pending actions."},{"nullable":true}]},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"targetRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]}},"required":["platform","protocolVersion","status"],"description":"Complete deployment state after step() execution"},"updateHeartbeat":{"type":"boolean","description":"Update heartbeat timestamp (for successful health checks)"},"suggestedDelayMs":{"type":"integer","minimum":0,"description":"Delay before this deployment should be acquired again."},"resourceHeartbeats":{"type":"array","items":{"type":"object","properties":{"backend":{"type":"string","enum":["aws","gcp","azure","kubernetes","local","managed","external","test"]},"controllerPlatform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"data":{"oneOf":[{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"blockPublicAcls":{"type":"boolean","nullable":true},"blockPublicPolicy":{"type":"boolean","nullable":true},"bucketAclPresent":{"type":"boolean","nullable":true},"bucketLocation":{"type":"string","nullable":true},"bucketPolicyPresent":{"type":"boolean","nullable":true},"encryptionConfigPresent":{"type":"boolean"},"encryptionEnabled":{"type":"boolean","nullable":true},"ignorePublicAcls":{"type":"boolean","nullable":true},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"publicAccessBlockPresent":{"type":"boolean"},"region":{"type":"string","nullable":true},"restrictPublicBuckets":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"versioningEnabled":{"type":"boolean","nullable":true},"versioningStatus":{"type":"string","nullable":true}},"required":["encryptionConfigPresent","lifecyclePresent","name","publicAccessBlockPresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsS3"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"bucketId":{"type":"string","nullable":true},"defaultKmsKeyName":{"type":"string","nullable":true},"encryptionConfigPresent":{"type":"boolean"},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":"integer","nullable":true,"minimum":0},"location":{"type":"string","nullable":true},"locationType":{"type":"string","nullable":true},"name":{"type":"string"},"publicAccessPrevention":{"type":"string","nullable":true},"retentionPeriod":{"type":"string","nullable":true},"retentionPolicyEffectiveTime":{"type":"string","nullable":true},"retentionPolicyIsLocked":{"type":"boolean","nullable":true},"softDeleteEffectiveTime":{"type":"string","nullable":true},"softDeleteRetentionDurationSeconds":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"storageClass":{"type":"string","nullable":true},"uniformBucketLevelAccessEnabled":{"type":"boolean","nullable":true},"uniformBucketLevelAccessLockedTime":{"type":"string","nullable":true},"versioningEnabled":{"type":"boolean","nullable":true}},"required":["encryptionConfigPresent","lifecyclePresent","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudStorage"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessTier":{"type":"string","nullable":true},"accountKind":{"type":"string","nullable":true},"allowBlobPublicAccess":{"type":"boolean","nullable":true},"blobDeleteRetentionDays":{"type":"integer","nullable":true,"minimum":0},"blobDeleteRetentionEnabled":{"type":"boolean","nullable":true},"blobEncryptionEnabled":{"type":"boolean","nullable":true},"blobVersioningEnabled":{"type":"boolean","nullable":true},"changeFeedEnabled":{"type":"boolean","nullable":true},"changeFeedRetentionDays":{"type":"integer","nullable":true,"minimum":0},"containerDeleteRetentionDays":{"type":"integer","nullable":true,"minimum":0},"containerDeleteRetentionEnabled":{"type":"boolean","nullable":true},"containerPublicAccess":{"type":"string","nullable":true},"encryptionKeySource":{"type":"string","nullable":true},"fileEncryptionEnabled":{"type":"boolean","nullable":true},"location":{"type":"string","nullable":true},"name":{"type":"string"},"primaryLocation":{"type":"string","nullable":true},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"queueEncryptionEnabled":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"secondaryLocation":{"type":"string","nullable":true},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"statusOfPrimary":{"type":"string","nullable":true},"statusOfSecondary":{"type":"string","nullable":true},"storageAccountName":{"type":"string","nullable":true},"tableEncryptionEnabled":{"type":"boolean","nullable":true}},"required":["name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureBlob"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"isDirectory":{"type":"boolean","nullable":true},"modifiedAt":{"type":"string","nullable":true,"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["path","pathExists","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["storage"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"codeSha256":{"type":"string","nullable":true},"functionName":{"type":"string"},"functionUrlAuthType":{"type":"string","nullable":true},"functionUrlCorsPresent":{"type":"boolean"},"lastModified":{"type":"string","nullable":true},"lastUpdateStatus":{"type":"string","nullable":true},"lastUpdateStatusReason":{"type":"string","nullable":true},"lastUpdateStatusReasonCode":{"type":"string","nullable":true},"layerCount":{"type":"integer","minimum":0},"memorySizeMb":{"type":"integer","nullable":true},"packageType":{"type":"string","nullable":true},"revisionId":{"type":"string","nullable":true},"runtime":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"stateReason":{"type":"string","nullable":true},"stateReasonCode":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"timeoutSeconds":{"type":"integer","nullable":true},"triggerCount":{"type":"integer","minimum":0},"version":{"type":"string","nullable":true}},"required":["functionName","functionUrlCorsPresent","layerCount","status","triggerCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsLambda"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"containerImage":{"type":"string","nullable":true},"cpuLimit":{"type":"string","nullable":true},"generation":{"type":"integer","nullable":true},"latestCreatedRevision":{"type":"string","nullable":true},"latestReadyRevision":{"type":"string","nullable":true},"maxInstanceCount":{"type":"integer","nullable":true},"memoryLimit":{"type":"string","nullable":true},"minInstanceCount":{"type":"integer","nullable":true},"observedGeneration":{"type":"integer","nullable":true},"region":{"type":"string","nullable":true},"service":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"trafficCount":{"type":"integer","minimum":0},"uri":{"type":"string","nullable":true},"urls":{"type":"array","items":{"type":"string"}}},"required":["service","status","trafficCount","urls"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudRun"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"appName":{"type":"string"},"cpu":{"type":"number","nullable":true},"environmentName":{"type":"string","nullable":true},"ingressFqdn":{"type":"string","nullable":true},"maxReplicas":{"type":"integer","nullable":true},"memory":{"type":"string","nullable":true},"minReplicas":{"type":"integer","nullable":true},"provisioningState":{"type":"string","nullable":true},"revision":{"type":"string","nullable":true},"runningStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["appName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerApps"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"triggerCount":{"type":"integer","minimum":0},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"]}},"required":["events","name","namespace","pods","replicas","status","triggerCount","workloadKind"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"imagePathPresent":{"type":"boolean"},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pid":{"type":"integer","nullable":true,"minimum":0},"process":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"readinessProbeOk":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"triggerCount":{"type":"integer","minimum":0}},"required":["commandSupported","events","imagePathPresent","status","triggerCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["worker"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"attentionCount":{"type":"integer","minimum":0},"containerId":{"type":"string"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"image":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"observedImage":{"type":"string","nullable":true},"replicaUnits":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"schedulingMode":{"type":"string","enum":["replicated","stateful","daemon"]},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["attentionCount","containerId","events","replicaUnits","replicas","schedulingMode","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["horizonPlatform"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"]}},"required":["events","name","namespace","pods","replicas","status","workloadKind"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"bindMountCount":{"type":"integer","minimum":0},"containerId":{"type":"string","nullable":true},"containerUnit":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"image":{"type":"string","nullable":true},"localUrl":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string","nullable":true},"portCount":{"type":"integer","minimum":0},"restartCount":{"type":"integer","nullable":true,"minimum":0},"runtimeReachable":{"type":"boolean"},"runtimeStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["bindMountCount","events","portCount","runtimeReachable","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["container"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aws"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcp"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azure"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["machines"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]}},"required":["commandSupported","events","name","namespace","pods","replicas","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"daemonInstance":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"daemonName":{"type":"string"},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"exitReason":{"type":"string","nullable":true},"imagePathPresent":{"type":"boolean"},"pid":{"type":"integer","nullable":true,"minimum":0},"restartCount":{"type":"integer","nullable":true,"minimum":0},"runtimeId":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["commandSupported","events","imagePathPresent","runtimeId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["daemon"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aws"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcp"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azure"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"machines":{"type":"array","items":{"type":"object","properties":{"capacityGroup":{"type":"string"},"cpuCores":{"type":"number","nullable":true},"drainBlockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainForce":{"type":"boolean"},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"horizondVersion":{"type":"string","nullable":true},"lastHeartbeat":{"type":"string"},"machineId":{"type":"string"},"memoryBytes":{"type":"integer","nullable":true},"overlayIp":{"type":"string","nullable":true},"publicIp":{"type":"string","nullable":true},"replicaCount":{"type":"integer"},"status":{"type":"string"},"zone":{"type":"string"}},"required":["capacityGroup","drainForce","lastHeartbeat","machineId","replicaCount","status","zone"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","machines","name","nodes","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["machines"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"dockerApiVersion":{"type":"string","nullable":true},"dockerArch":{"type":"string","nullable":true},"dockerAvailable":{"type":"boolean"},"dockerOs":{"type":"string","nullable":true},"dockerVersion":{"type":"string","nullable":true},"hostIdentifier":{"type":"string","nullable":true},"name":{"type":"string"},"networkAvailable":{"type":"boolean"},"networkName":{"type":"string","nullable":true},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"runningContainers":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"trackedContainers":{"type":"integer","nullable":true,"minimum":0}},"required":["dockerAvailable","name","networkAvailable","nodes","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["compute-cluster"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string","nullable":true},"nodeCounts":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"nodeStatuses":{"type":"array","items":{"type":"object","properties":{"allocatable":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pods":{"type":"integer","nullable":true,"minimum":0}}},"capacity":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pods":{"type":"integer","nullable":true,"minimum":0}}},"conditions":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"containerRuntimeVersion":{"type":"string","nullable":true},"kubeletVersion":{"type":"string","nullable":true},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"name":{"type":"string"},"ready":{"type":"boolean"},"roles":{"type":"array","items":{"type":"string"}},"uid":{"type":"string","nullable":true},"usage":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}}},{"nullable":true}]}},"required":["allocatable","capacity","labels","name","ready","roles"]}},"podCounts":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string","nullable":true}},"required":["events","name","nodeCounts","podCounts","status"]},"resourceType":{"type":"string","enum":["kubernetes-cluster"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"approximateCounts":{"type":"boolean"},"approximateDelayedMessages":{"type":"integer","nullable":true,"minimum":0},"approximateInFlightMessages":{"type":"integer","nullable":true,"minimum":0},"approximateVisibleMessages":{"type":"integer","nullable":true,"minimum":0},"contentBasedDeduplication":{"type":"boolean","nullable":true},"deduplicationScope":{"type":"string","nullable":true},"delaySeconds":{"type":"integer","nullable":true,"minimum":0},"fifoQueue":{"type":"boolean","nullable":true},"fifoThroughputLimit":{"type":"string","nullable":true},"kmsDataKeyReusePeriodSeconds":{"type":"integer","nullable":true,"minimum":0},"kmsMasterKeyId":{"type":"string","nullable":true},"maximumMessageSize":{"type":"integer","nullable":true,"minimum":0},"messageRetentionPeriodSeconds":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"queueArn":{"type":"string","nullable":true},"queueUrl":{"type":"string","nullable":true},"receiveMessageWaitTimeSeconds":{"type":"integer","nullable":true,"minimum":0},"redriveAllowPolicy":{"type":"string","nullable":true},"redrivePolicy":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"sqsManagedSseEnabled":{"type":"boolean","nullable":true},"sseEnabled":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"visibilityTimeoutSeconds":{"type":"integer","nullable":true,"minimum":0}},"required":["approximateCounts","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsSqs"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"kmsKeyName":{"type":"string","nullable":true},"messageStorageAllowedPersistenceRegions":{"type":"array","items":{"type":"string"}},"messageStorageEnforceInTransit":{"type":"boolean","nullable":true},"projectId":{"type":"string","nullable":true},"schemaEncoding":{"type":"string","nullable":true},"schemaFirstRevisionId":{"type":"string","nullable":true},"schemaLastRevisionId":{"type":"string","nullable":true},"schemaName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"subscriptionAckDeadlineSeconds":{"type":"integer","nullable":true,"minimum":0},"subscriptionDeadLetterMaxDeliveryAttempts":{"type":"integer","nullable":true,"minimum":0},"subscriptionDeadLetterTopic":{"type":"string","nullable":true},"subscriptionDetached":{"type":"boolean","nullable":true},"subscriptionEnableMessageOrdering":{"type":"boolean","nullable":true},"subscriptionFilter":{"type":"string","nullable":true},"subscriptionFullName":{"type":"string","nullable":true},"subscriptionLabels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"subscriptionMessageRetentionDuration":{"type":"string","nullable":true},"subscriptionName":{"type":"string","nullable":true},"subscriptionPushAttributes":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"subscriptionPushConfigPresent":{"type":"boolean","nullable":true},"subscriptionPushEndpoint":{"type":"string","nullable":true},"subscriptionPushNoWrapperWriteMetadata":{"type":"boolean","nullable":true},"subscriptionPushOidcAudience":{"type":"string","nullable":true},"subscriptionPushOidcServiceAccountEmail":{"type":"string","nullable":true},"subscriptionPushPubsubWrapperWriteMetadata":{"type":"boolean","nullable":true},"subscriptionRetainAckedMessages":{"type":"boolean","nullable":true},"subscriptionState":{"type":"string","nullable":true},"topicFullName":{"type":"string","nullable":true},"topicLabels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"topicMessageRetentionDuration":{"type":"string","nullable":true},"topicName":{"type":"string"},"topicState":{"type":"string","nullable":true}},"required":["messageStorageAllowedPersistenceRegions","status","subscriptionLabels","subscriptionPushAttributes","topicLabels","topicName"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpPubSub"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessedAt":{"type":"string","nullable":true},"activeMessageCount":{"type":"integer","nullable":true,"minimum":0},"autoDeleteOnIdle":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"deadLetterMessageCount":{"type":"integer","nullable":true,"minimum":0},"deadLetteringOnMessageExpiration":{"type":"boolean","nullable":true},"defaultMessageTimeToLive":{"type":"string","nullable":true},"duplicateDetectionHistoryTimeWindow":{"type":"string","nullable":true},"enableBatchedOperations":{"type":"boolean","nullable":true},"enableExpress":{"type":"boolean","nullable":true},"enablePartitioning":{"type":"boolean","nullable":true},"endpoint":{"type":"string","nullable":true},"forwardDeadLetteredMessagesTo":{"type":"string","nullable":true},"forwardTo":{"type":"string","nullable":true},"lockDuration":{"type":"string","nullable":true},"maxDeliveryCount":{"type":"integer","nullable":true,"minimum":0},"maxMessageSizeInKilobytes":{"type":"integer","nullable":true,"minimum":0},"maxSizeInMegabytes":{"type":"integer","nullable":true,"minimum":0},"messageCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"namespaceName":{"type":"string"},"queueStatus":{"type":"string","nullable":true},"requiresDuplicateDetection":{"type":"boolean","nullable":true},"requiresSession":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"scheduledMessageCount":{"type":"integer","nullable":true,"minimum":0},"sizeInBytes":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"transferDeadLetterMessageCount":{"type":"integer","nullable":true,"minimum":0},"transferMessageCount":{"type":"integer","nullable":true,"minimum":0},"updatedAt":{"type":"string","nullable":true}},"required":["name","namespaceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureServiceBus"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"name":{"type":"string"},"path":{"type":"string","nullable":true},"serviceStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["queue"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"billingMode":{"type":"string","nullable":true},"deletionProtectionEnabled":{"type":"boolean","nullable":true},"globalSecondaryIndexCount":{"type":"integer","nullable":true,"minimum":0},"itemCount":{"type":"integer","nullable":true,"minimum":0},"keySchema":{"type":"array","items":{"type":"object","properties":{"attributeName":{"type":"string"},"keyType":{"type":"string"}},"required":["attributeName","keyType"]}},"localSecondaryIndexCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"region":{"type":"string","nullable":true},"replicaCount":{"type":"integer","nullable":true,"minimum":0},"restoreInProgress":{"type":"boolean","nullable":true},"sseStatus":{"type":"string","nullable":true},"sseType":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"streamEnabled":{"type":"boolean","nullable":true},"streamViewType":{"type":"string","nullable":true},"tableArn":{"type":"string","nullable":true},"tableClass":{"type":"string","nullable":true},"tableSizeBytes":{"type":"integer","nullable":true,"minimum":0},"tableStatus":{"type":"string","nullable":true},"ttlAttributeName":{"type":"string","nullable":true},"ttlStatus":{"type":"string","nullable":true}},"required":["keySchema","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsDynamoDb"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"appEngineIntegrationMode":{"type":"string","nullable":true},"cmekEnabled":{"type":"boolean"},"concurrencyMode":{"type":"string","nullable":true},"createTime":{"type":"string","nullable":true},"databaseEdition":{"type":"string","nullable":true},"databaseName":{"type":"string"},"databaseType":{"type":"string","nullable":true},"deleteProtectionState":{"type":"string","nullable":true},"deleteTime":{"type":"string","nullable":true},"earliestVersionTime":{"type":"string","nullable":true},"endpoint":{"type":"string","nullable":true},"locationId":{"type":"string","nullable":true},"pointInTimeRecoveryEnablement":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"sourceInfoPresent":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updateTime":{"type":"string","nullable":true},"versionRetentionPeriod":{"type":"string","nullable":true}},"required":["cmekEnabled","databaseName","sourceInfoPresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpFirestore"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"signedIdentifierCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"storageAccountKind":{"type":"string","nullable":true},"storageAccountLocation":{"type":"string","nullable":true},"storageAccountName":{"type":"string"},"storageAccountPrimaryStatus":{"type":"string","nullable":true},"storageAccountProvisioningState":{"type":"string","nullable":true},"storageAccountResourceId":{"type":"string","nullable":true},"tableExists":{"type":"boolean"},"tableName":{"type":"string"}},"required":["status","storageAccountName","tableExists","tableName"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureTable"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cloudMetadataSupported":{"type":"boolean"},"isDirectory":{"type":"boolean","nullable":true},"name":{"type":"string"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["cloudMetadataSupported","name","path","pathExists","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["kv"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"clusterIdentifier":{"type":"string"},"endpoint":{"type":"string","nullable":true},"engineVersion":{"type":"string","nullable":true},"neverPauses":{"type":"boolean","description":"True when a `minCapacity: 0` instance has not reached 0 ACU over the observation\nwindow — it is silently paying always-on prices (auto-pause verification)."},"serverlessCapacity":{"type":"number","nullable":true,"description":"Latest sampled `ServerlessDatabaseCapacity` (ACU)."},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["clusterIdentifier","neverPauses","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aurora"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"databaseVersion":{"type":"string","nullable":true},"instanceName":{"type":"string"},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["instanceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["cloudSql"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"serverName":{"type":"string"},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string","nullable":true}},"required":["serverName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["flexibleServer"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"name":{"type":"string"},"port":{"type":"integer","nullable":true,"minimum":0},"processRunning":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string"}},"required":["name","processRunning","status","version"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["postgres"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string"},"hasMoreParameters":{"type":"boolean","nullable":true},"latestModifiedAt":{"type":"string","nullable":true,"format":"date-time"},"parameterMetadataSampled":{"type":"boolean"},"prefix":{"type":"string"},"region":{"type":"string"},"sampledAdvancedTierCount":{"type":"integer","nullable":true,"minimum":0},"sampledKmsKeyMetadataPresentCount":{"type":"integer","nullable":true,"minimum":0},"sampledParameterCount":{"type":"integer","nullable":true,"minimum":0},"sampledSecureStringCount":{"type":"integer","nullable":true,"minimum":0},"sampledStringCount":{"type":"integer","nullable":true,"minimum":0},"sampledStringListCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["accountId","parameterMetadataSampled","prefix","region","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsParameterStore"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string"},"prefix":{"type":"string"},"projectId":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["location","prefix","projectId","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpSecretManager"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessPolicyCount":{"type":"integer","minimum":0},"location":{"type":"string","nullable":true},"name":{"type":"string"},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string"},"purgeProtectionEnabled":{"type":"boolean","nullable":true},"rbacAuthorizationEnabled":{"type":"boolean"},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"secretMetadataListed":{"type":"boolean"},"skuFamily":{"type":"string","nullable":true},"skuName":{"type":"string","nullable":true},"softDeleteEnabled":{"type":"boolean"},"softDeleteRetentionDays":{"type":"integer"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vaultUri":{"type":"string","nullable":true}},"required":["accessPolicyCount","name","privateEndpointConnectionCount","publicNetworkAccess","rbacAuthorizationEnabled","secretMetadataListed","softDeleteEnabled","softDeleteRetentionDays","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureKeyVault"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"type":"string"},"prefix":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["namespace","prefix","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetesSecret"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"isDirectory":{"type":"boolean","nullable":true},"modifiedAt":{"type":"string","nullable":true,"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":"boolean","nullable":true},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["path","pathExists","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["vault"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"assumeRolePolicyPresent":{"type":"boolean"},"attachedPolicyCount":{"type":"integer","minimum":0},"attachedPolicyNames":{"type":"array","items":{"type":"string"}},"createDate":{"type":"string"},"description":{"type":"string","nullable":true},"inlinePolicyCount":{"type":"integer","minimum":0},"inlinePolicyNames":{"type":"array","items":{"type":"string"}},"lastUsedDate":{"type":"string","nullable":true},"lastUsedRegion":{"type":"string","nullable":true},"managedTagCount":{"type":"integer","minimum":0},"maxSessionDuration":{"type":"integer","nullable":true},"path":{"type":"string"},"permissionsBoundaryArn":{"type":"string","nullable":true},"permissionsBoundaryType":{"type":"string","nullable":true},"roleArn":{"type":"string"},"roleId":{"type":"string"},"roleName":{"type":"string"},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tagCount":{"type":"integer","minimum":0}},"required":["assumeRolePolicyPresent","attachedPolicyCount","attachedPolicyNames","createDate","inlinePolicyCount","inlinePolicyNames","managedTagCount","path","roleArn","roleId","roleName","stackPermissionsApplied","status","tagCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsIamRole"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true},"disabled":{"type":"boolean","nullable":true},"displayName":{"type":"string","nullable":true},"email":{"type":"string"},"etag":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"oauth2ClientId":{"type":"string","nullable":true},"projectBindingCount":{"type":"integer","minimum":0},"projectId":{"type":"string","nullable":true},"projectRoles":{"type":"array","items":{"type":"string"}},"serviceAccountBindingCount":{"type":"integer","minimum":0},"serviceAccountRoles":{"type":"array","items":{"type":"string"}},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"uniqueId":{"type":"string","nullable":true}},"required":["email","projectBindingCount","projectRoles","serviceAccountBindingCount","serviceAccountRoles","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"clientId":{"type":"string","nullable":true},"customRoleDefinitionCount":{"type":"integer","minimum":0},"customRoleDefinitionIds":{"type":"array","items":{"type":"string"}},"isolationScope":{"type":"string","nullable":true},"location":{"type":"string"},"managedTagCount":{"type":"integer","minimum":0},"name":{"type":"string"},"principalId":{"type":"string","nullable":true},"resourceGroup":{"type":"string"},"resourceId":{"type":"string"},"roleAssignmentCount":{"type":"integer","minimum":0},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tenantId":{"type":"string","nullable":true},"type":{"type":"string","nullable":true}},"required":["customRoleDefinitionCount","customRoleDefinitionIds","location","managedTagCount","name","resourceGroup","resourceId","roleAssignmentCount","roleAssignmentIds","stackPermissionsApplied","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"configured":{"type":"boolean"},"identity":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["configured","identity","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["service-account"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"availabilityZones":{"type":"array","items":{"type":"string"}},"cidrBlock":{"type":"string","nullable":true},"internetGatewayId":{"type":"string","nullable":true},"isByoVpc":{"type":"boolean"},"natGatewayId":{"type":"string","nullable":true},"privateSubnetIds":{"type":"array","items":{"type":"string"}},"publicSubnetIds":{"type":"array","items":{"type":"string"}},"routeTableCount":{"type":"integer","minimum":0},"securityGroupId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vpcId":{"type":"string","nullable":true},"vpcState":{"type":"string","nullable":true}},"required":["availabilityZones","isByoVpc","privateSubnetIds","publicSubnetIds","routeTableCount","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsVpc"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cidrBlock":{"type":"string","nullable":true},"cloudNatName":{"type":"string","nullable":true},"firewallName":{"type":"string","nullable":true},"isByoVpc":{"type":"boolean"},"networkName":{"type":"string","nullable":true},"networkSelfLink":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"routerName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"subnetworkName":{"type":"string","nullable":true},"subnetworkSelfLink":{"type":"string","nullable":true}},"required":["isByoVpc","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpVpc"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"applicationGatewaySubnetName":{"type":"string","nullable":true},"cidrBlock":{"type":"string","nullable":true},"isByoVnet":{"type":"boolean"},"lastByoVnetVerificationErrorCode":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"natGatewayId":{"type":"string","nullable":true},"nsgId":{"type":"string","nullable":true},"privateEndpointSubnetName":{"type":"string","nullable":true},"privateSubnetName":{"type":"string","nullable":true},"publicIpId":{"type":"string","nullable":true},"publicSubnetName":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vnetName":{"type":"string","nullable":true},"vnetResourceId":{"type":"string","nullable":true}},"required":["isByoVnet","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureVnet"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["network"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"managementPermissionsApplied":{"type":"boolean"},"roleArn":{"type":"string","nullable":true},"roleName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["managementPermissionsApplied","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsIamRole"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"impersonationGranted":{"type":"boolean"},"roleBound":{"type":"boolean"},"serviceAccountEmail":{"type":"string","nullable":true},"serviceAccountUniqueId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["impersonationGranted","roleBound","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"ficName":{"type":"string","nullable":true},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"roleDefinitionId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tenantId":{"type":"string","nullable":true},"uamiClientId":{"type":"string","nullable":true},"uamiPrincipalId":{"type":"string","nullable":true},"uamiResourceId":{"type":"string","nullable":true}},"required":["roleAssignmentIds","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["remote-stack-management"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"pullRoleArn":{"type":"string","nullable":true},"pushRoleArn":{"type":"string","nullable":true},"region":{"type":"string"},"registryId":{"type":"string"},"registryUri":{"type":"string"},"repositories":{"type":"array","items":{"type":"object","properties":{"createdAt":{"type":"number"},"encryptionType":{"type":"string","nullable":true},"imageTagMutability":{"type":"string","nullable":true},"kmsKeyPresent":{"type":"boolean"},"registryId":{"type":"string"},"repositoryArn":{"type":"string"},"repositoryName":{"type":"string"},"repositoryUri":{"type":"string"},"scanOnPush":{"type":"boolean","nullable":true}},"required":["createdAt","kmsKeyPresent","registryId","repositoryArn","repositoryName","repositoryUri"]}},"repositoriesTruncated":{"type":"boolean"},"repositoryCount":{"type":"integer","minimum":0},"repositoryPrefix":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["region","registryId","registryUri","repositories","repositoriesTruncated","repositoryCount","repositoryPrefix","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsEcr"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cleanupPolicyCount":{"type":"integer","minimum":0},"cleanupPolicyDryRun":{"type":"boolean","nullable":true},"createTime":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"format":{"type":"string","nullable":true},"iamBindingCount":{"type":"integer","minimum":0},"iamPolicyEtagPresent":{"type":"boolean"},"iamRoles":{"type":"array","items":{"type":"string"}},"kmsKeyNamePresent":{"type":"boolean"},"labelCount":{"type":"integer","minimum":0},"location":{"type":"string"},"mode":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"projectId":{"type":"string"},"pullServiceAccountEmail":{"type":"string","nullable":true},"pushServiceAccountEmail":{"type":"string","nullable":true},"repositoryId":{"type":"string"},"satisfiesPzs":{"type":"boolean","nullable":true},"sizeBytes":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updateTime":{"type":"string","nullable":true}},"required":["cleanupPolicyCount","iamBindingCount","iamPolicyEtagPresent","iamRoles","kmsKeyNamePresent","labelCount","location","projectId","repositoryId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpArtifactRegistry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"adminUserEnabled":{"type":"boolean"},"anonymousPullEnabled":{"type":"boolean"},"creationDate":{"type":"string","nullable":true},"dataEndpointEnabled":{"type":"boolean","nullable":true},"dataEndpointHostNames":{"type":"array","items":{"type":"string"}},"encryptionKeyIdentifierPresent":{"type":"boolean"},"encryptionKeyVaultUriPresent":{"type":"boolean"},"encryptionStatus":{"type":"string","nullable":true},"ipRuleCount":{"type":"integer","minimum":0},"location":{"type":"string"},"loginServer":{"type":"string","nullable":true},"managedTagCount":{"type":"integer","minimum":0},"name":{"type":"string"},"networkRuleBypassOptions":{"type":"string"},"networkRuleDefaultAction":{"type":"string","nullable":true},"policiesPresent":{"type":"boolean"},"policyCount":{"type":"integer","minimum":0},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string"},"resourceGroup":{"type":"string"},"resourceId":{"type":"string","nullable":true},"skuName":{"type":"string"},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"type":{"type":"string","nullable":true},"zoneRedundancy":{"type":"string"}},"required":["adminUserEnabled","anonymousPullEnabled","dataEndpointHostNames","encryptionKeyIdentifierPresent","encryptionKeyVaultUriPresent","ipRuleCount","location","managedTagCount","name","networkRuleBypassOptions","policiesPresent","policyCount","privateEndpointConnectionCount","publicNetworkAccess","resourceGroup","skuName","status","zoneRedundancy"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerRegistry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"reachable":{"type":"boolean"},"registryUrl":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["reachable","registryUrl","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["artifact-registry"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"artifactsEncryptionDisabled":{"type":"boolean","nullable":true},"artifactsType":{"type":"string","nullable":true},"cloudWatchLogsStatus":{"type":"string","nullable":true},"computeType":{"type":"string","nullable":true},"created":{"type":"number","nullable":true},"description":{"type":"string","nullable":true},"encryptionKeyPresent":{"type":"boolean"},"environmentImage":{"type":"string","nullable":true},"environmentType":{"type":"string","nullable":true},"environmentVariableCount":{"type":"integer","minimum":0},"imagePullCredentialsType":{"type":"string","nullable":true},"lastModified":{"type":"number","nullable":true},"privilegedMode":{"type":"boolean","nullable":true},"projectArn":{"type":"string","nullable":true},"projectName":{"type":"string"},"queuedTimeoutInMinutes":{"type":"integer","nullable":true},"s3LogsStatus":{"type":"string","nullable":true},"serviceRolePresent":{"type":"boolean"},"sourceType":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"timeoutInMinutes":{"type":"integer","nullable":true}},"required":["encryptionKeyPresent","environmentVariableCount","projectName","serviceRolePresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsCodeBuild"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"buildConfigId":{"type":"string"},"environmentVariableCount":{"type":"integer","minimum":0},"location":{"type":"string"},"projectId":{"type":"string"},"serviceAccount":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["buildConfigId","environmentVariableCount","location","projectId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudBuild"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"environmentVariableCount":{"type":"integer","minimum":0},"managedEnvironmentId":{"type":"string"},"managedIdentityId":{"type":"string","nullable":true},"resourceGroupName":{"type":"string"},"resourcePrefix":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["environmentVariableCount","managedEnvironmentId","resourceGroupName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerApps"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"active":{"type":"integer","nullable":true},"completionTime":{"type":"string","nullable":true,"format":"date-time"},"conditionCount":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"failed":{"type":"integer","nullable":true},"imageDigest":{"type":"string","nullable":true},"jobName":{"type":"string"},"namespace":{"type":"string"},"startTime":{"type":"string","nullable":true,"format":"date-time"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"succeeded":{"type":"integer","nullable":true}},"required":["conditionCount","events","jobName","namespace","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetesJob"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["build"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"enabled":{"type":"boolean"},"lastOperationName":{"type":"string","nullable":true},"projectId":{"type":"string"},"serviceName":{"type":"string"},"serviceResourceName":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"title":{"type":"string","nullable":true}},"required":["enabled","projectId","serviceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceUsage"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"type":"string"},"providerId":{"type":"string","nullable":true},"registered":{"type":"boolean"},"registrationPolicy":{"type":"string","nullable":true},"registrationState":{"type":"string","nullable":true},"resourceTypeCount":{"type":"integer","minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["namespace","registered","resourceTypeCount","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureResourceProvider"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["service_activation"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"location":{"type":"string","nullable":true},"managedTags":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"name":{"type":"string"},"provisioningState":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["managedTags","name","status"]},"resourceType":{"type":"string","enum":["azure_resource_group"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"allowBlobPublicAccess":{"type":"boolean","nullable":true},"allowSharedKeyAccess":{"type":"boolean","nullable":true},"encryptionKeySource":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"minimumTlsVersion":{"type":"string","nullable":true},"name":{"type":"string"},"networkBypass":{"type":"string","nullable":true},"networkDefaultAction":{"type":"string","nullable":true},"networkIpRuleCount":{"type":"integer","nullable":true,"minimum":0},"networkResourceAccessRuleCount":{"type":"integer","nullable":true,"minimum":0},"networkVirtualNetworkRuleCount":{"type":"integer","nullable":true,"minimum":0},"primaryEndpoints":{"type":"object","properties":{"blob":{"type":"string","nullable":true},"dfs":{"type":"string","nullable":true},"file":{"type":"string","nullable":true},"queue":{"type":"string","nullable":true},"table":{"type":"string","nullable":true},"web":{"type":"string","nullable":true}}},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"requireInfrastructureEncryption":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"secondaryEndpoints":{"type":"object","properties":{"blob":{"type":"string","nullable":true},"dfs":{"type":"string","nullable":true},"file":{"type":"string","nullable":true},"queue":{"type":"string","nullable":true},"table":{"type":"string","nullable":true},"web":{"type":"string","nullable":true}}},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"supportsHttpsTrafficOnly":{"type":"boolean","nullable":true}},"required":["name","primaryEndpoints","secondaryEndpoints","status"]},"resourceType":{"type":"string","enum":["azure_storage_account"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"customDomainVerificationId":{"type":"string","nullable":true},"defaultDomain":{"type":"string","nullable":true},"eventStreamEndpoint":{"type":"string","nullable":true},"infrastructureResourceGroup":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"name":{"type":"string"},"provisioningState":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"staticIp":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workloadProfileCount":{"type":"integer","minimum":0},"workloadProfiles":{"type":"array","items":{"type":"object","properties":{"maximumCount":{"type":"integer","nullable":true},"minimumCount":{"type":"integer","nullable":true},"name":{"type":"string"},"workloadProfileType":{"type":"string"}},"required":["name","workloadProfileType"]}},"zoneRedundant":{"type":"boolean","nullable":true}},"required":["name","status","workloadProfileCount","workloadProfiles"]},"resourceType":{"type":"string","enum":["azure_container_apps_environment"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"createdAt":{"type":"string","nullable":true},"disableLocalAuth":{"type":"boolean","nullable":true},"location":{"type":"string","nullable":true},"metricId":{"type":"string","nullable":true},"minimumTlsVersion":{"type":"string","nullable":true},"name":{"type":"string"},"namespaceStatus":{"type":"string","nullable":true},"premiumMessagingPartitions":{"type":"integer","nullable":true},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"serviceBusEndpoint":{"type":"string","nullable":true},"skuCapacity":{"type":"integer","nullable":true},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updatedAt":{"type":"string","nullable":true},"zoneRedundant":{"type":"boolean","nullable":true}},"required":["name","privateEndpointConnectionCount","status"]},"resourceType":{"type":"string","enum":["azure_service_bus_namespace"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"region":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["region","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsBedrock"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string"},"project":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["location","project","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpVertex"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"type":"string"},"endpoint":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["accountName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureFoundry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"provider":{"type":"string","description":"The BYO-key provider serving this binding (e.g. \"openai\"). Used on the Local\nplatform, where the app brings its own provider key instead of an ambient cloud."},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["provider","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["external"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["ai"]}},"required":["data","resourceType"]}]},"deploymentId":{"type":"string","nullable":true},"observedAt":{"type":"string","format":"date-time"},"raw":{"type":"array","items":{"type":"object","properties":{"body":{"type":"string"},"collectedAt":{"type":"string","format":"date-time"},"format":{"type":"string","enum":["json","yaml","text"]},"source":{"type":"string"},"truncated":{"type":"boolean"}},"required":["body","collectedAt","format","source","truncated"]}},"resourceId":{"type":"string","description":"Alien resource id, such as the `alien.Container` or `alien.Storage`\nresource id from the stack."},"resourceType":{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior."}},"required":["backend","controllerPlatform","data","observedAt","raw","resourceId","resourceType"]},"description":"Latest typed resource heartbeats collected during this step."},"observedInventoryBatches":{"type":"array","items":{"type":"object","properties":{"backend":{"type":"string","enum":["aws","gcp","azure","kubernetes","local","managed","external","test"],"description":"Backend whose observer produced this snapshot."},"complete":{"type":"boolean","description":"Whether this batch is a complete replacement for the scope. Complete\nbatches tombstone previously observed rows in the same scope when they\nare absent from `resources`."},"controllerPlatform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"inventoryScope":{"type":"string","description":"Stable scope for the provider list operation that produced this batch."},"observedAt":{"type":"string","format":"date-time","description":"Time the inventory scope was observed."},"resources":{"type":"array","items":{"type":"object","properties":{"alienResourceId":{"type":"string","nullable":true},"attributes":{"type":"object","properties":{},"additionalProperties":{"nullable":true}},"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"counts":{"oneOf":[{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},{"nullable":true}]},"deploymentId":{"type":"string","nullable":true},"displayName":{"type":"string"},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerKind":{"type":"string","description":"Provider-native kind, such as `apps/v1/Deployment`,\n`AWS::S3::Bucket`, `storage.googleapis.com/Bucket`, or an Azure\nresource type."},"providerStale":{"type":"boolean"},"raw":{"type":"array","items":{"type":"object","properties":{"body":{"type":"string"},"collectedAt":{"type":"string","format":"date-time"},"format":{"type":"string","enum":["json","yaml","text"]},"source":{"type":"string"},"truncated":{"type":"boolean"}},"required":["body","collectedAt","format","source","truncated"]}},"rawIdentity":{"type":"string","description":"Provider-native stable identity: Kubernetes object identity, cloud ARN,\nGCP full resource name, Azure resource id, etc."},"region":{"type":"string","nullable":true},"resourceTypeHint":{"oneOf":[{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior."},{"nullable":true}]},"scope":{"type":"string","nullable":true},"version":{"type":"string","nullable":true,"description":"Release/version identity observed from the provider resource, when available."}},"required":["displayName","health","lifecycle","partial","providerKind","providerStale","rawIdentity"]}},"sourceKind":{"type":"string","description":"Writer/source for this inventory pass, such as `operator` or\n`manager-observer`."}},"required":["backend","complete","controllerPlatform","inventoryScope","observedAt","resources","sourceKind"]},"description":"Observed raw-resource inventory batches read during this step."},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/OperatorCapabilityReport"},"description":"Operator-reported runtime capabilities."},"operatorVersion":{"type":"string","minLength":1,"maxLength":128,"description":"Operator binary version reported by the runtime."}},"required":["deploymentId","state"],"additionalProperties":false,"description":"Request to reconcile deployment state"},"SyncRenewRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Single deployment to renew. Deprecated: use deploymentIds. Retained so a manager built against the previous API keeps renewing during rollout.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"deploymentIds":{"type":"array","items":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"minItems":1,"maxItems":100,"description":"Deployments to renew or confirm. Renewal is per deployment: the response reports each one independently."},"session":{"type":"string","minLength":1}},"required":["session"],"additionalProperties":false},"SyncReleaseRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Deployment ID to release","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"session":{"type":"string","description":"Session identifier to release"}},"required":["deploymentId","session"],"additionalProperties":false,"description":"Request to release deployment lock"},"ResolveResponse":{"type":"object","properties":{"managerId":{"type":"string","description":"Manager ID"},"managerName":{"type":"string","description":"Manager display name"},"managerUrl":{"type":"string","format":"uri","description":"Manager URL"},"managerIsSystem":{"type":"boolean","description":"Whether the manager is Alien-hosted"},"managerCloud":{"type":"string","nullable":true,"enum":["aws","gcp","azure","kubernetes","machines","local","test",null],"description":"Cloud where the private manager is hosted. Null for Alien-hosted managers."},"projectId":{"type":"string","description":"Resolved project ID"},"installContext":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]}],"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."}},"required":["platform","managementConfig"],"description":"Target install context derived from platform-managed manager metadata. Present for cloud push platforms."}},"required":["managerId","managerName","managerUrl","managerIsSystem","projectId"]},"CloudRegionsResponse":{"type":"object","properties":{"supportedRegions":{"$ref":"#/components/schemas/SupportedCloudRegions"}},"required":["supportedRegions"]},"BillingAuditLogRow":{"type":"object","properties":{"id":{"type":"string"},"workspaceId":{"type":"string","nullable":true},"action":{"type":"string"},"payload":{"nullable":true},"createdAt":{"type":"string"}},"required":["id","workspaceId","action","createdAt"]},"WorkspaceBillingEntitlements":{"type":"object","properties":{"planId":{"$ref":"#/components/schemas/PlanId"},"planStatus":{"$ref":"#/components/schemas/BillingPlanStatus"},"features":{"$ref":"#/components/schemas/BillingFeatureFlags"},"limits":{"$ref":"#/components/schemas/BillingLimits"},"syncedAt":{"type":"string","nullable":true,"format":"date-time"},"stale":{"type":"boolean"}},"required":["planId","planStatus","features","limits","syncedAt","stale"]},"PlanId":{"type":"string","enum":["starter","pro","pro_annual","enterprise"]},"BillingPlanStatus":{"type":"string","enum":["active","trialing","past_due","canceled","none"]},"BillingFeatureFlags":{"type":"object","properties":{"custom_domains":{"type":"boolean"},"private_managers":{"type":"boolean"},"sso_saml":{"type":"boolean"},"audit_logs":{"type":"boolean"},"airgapped":{"type":"boolean"}},"required":["custom_domains","private_managers","sso_saml","audit_logs","airgapped"]},"BillingLimits":{"type":"object","properties":{"maxDeployments":{"type":"number","nullable":true},"maxProjects":{"type":"number","nullable":true},"maxSeats":{"type":"number","nullable":true},"maxCustomDomains":{"type":"number","nullable":true},"creditUsd":{"type":"number","nullable":true},"seatsIncluded":{"type":"number","nullable":true}},"required":["maxDeployments","maxProjects","maxSeats","maxCustomDomains","creditUsd","seatsIncluded"]}},"parameters":{}},"paths":{"/v1/invitations/{token}":{"get":{"operationId":"getWorkspaceInvitationPreview","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"token","in":"path"}],"responses":{"200":{"description":"Invitation preview.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInvitationPreview"}}}},"404":{"description":"Invitation not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/memberships":{"get":{"operationId":"listMemberships","description":"List all workspaces the current user has access to.","x-speakeasy-group":"user","x-speakeasy-name-override":"listMemberships","responses":{"200":{"description":"List of user's workspaces.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Membership"}}},"required":["items"]}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/profile":{"get":{"operationId":"getUserProfile","description":"Get the current user's profile and user-scoped onboarding state.","x-speakeasy-group":"user","x-speakeasy-name-override":"getProfile","responses":{"200":{"description":"User profile.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfile"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateUserProfile","description":"Update the current user's profile (display name).","x-speakeasy-group":"user","x-speakeasy-name-override":"updateProfile","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Display name"}}}}}},"responses":{"200":{"description":"Profile updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfile"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/profile/setup":{"post":{"operationId":"completeUserProfileSetup","description":"Complete the required beta intake and profile setup dialog.","x-speakeasy-group":"user","x-speakeasy-name-override":"completeProfileSetup","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfileSetupRequest"}}}},"responses":{"200":{"description":"Profile setup completed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfile"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/workspaces":{"post":{"operationId":"createWorkspace","description":"Create a new workspace. The current user will be automatically added as an admin.","x-speakeasy-group":"user","x-speakeasy-name-override":"createWorkspace","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name"},"logoUrl":{"type":"string","format":"uri","description":"Optional workspace logo URL"}},"required":["name"]}}}},"responses":{"201":{"description":"Created workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Membership"}}}},"400":{"description":"Bad request - invalid workspace name.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Workspace name already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/git-namespaces":{"get":{"operationId":"listGitNamespaces","description":"List all git namespaces (GitHub installations) the current user has access to.","x-speakeasy-group":"user","x-speakeasy-name-override":"listGitNamespaces","parameters":[{"schema":{"type":"string","enum":["github"],"default":"github"},"required":false,"name":"provider","in":"query"}],"responses":{"200":{"description":"List of user's git namespaces.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GitNamespace"}}},"required":["items"]}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/git-namespaces/sync":{"post":{"operationId":"syncGitNamespaces","description":"Sync git namespaces from the provider. For GitHub, this fetches all app installations accessible to the user.","x-speakeasy-group":"user","x-speakeasy-name-override":"syncGitNamespaces","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"provider":{"type":"string","enum":["github"],"description":"Git provider to sync"}},"required":["provider"]}}}},"responses":{"200":{"description":"Synced git namespaces.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GitNamespace"}}},"required":["items"]}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/git-namespaces/{id}/repositories":{"get":{"operationId":"listGitNamespaceRepositories","description":"List repositories accessible through a git namespace (GitHub installation).","x-speakeasy-group":"user","x-speakeasy-name-override":"listGitNamespaceRepositories","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","description":"Search query to filter repositories by name"},"required":false,"description":"Search query to filter repositories by name","name":"search","in":"query"}],"responses":{"200":{"description":"List of repositories.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GitRepository"}}},"required":["items"]}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Git namespace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/invitations/{token}/accept":{"post":{"operationId":"acceptWorkspaceInvitation","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"token","in":"path"}],"responses":{"200":{"description":"Invitation accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptWorkspaceInvitationResponse"}}}},"404":{"description":"Invitation not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Invitation unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/whoami":{"get":{"operationId":"whoami","description":"Get the current authenticated principal (user or service account). Works with both session cookies and API keys.","x-speakeasy-group":"auth","x-speakeasy-name-override":"whoami","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace to resolve the principal in. Required for user credentials because a user's role is per-workspace. Service accounts carry their workspace in the credential and may omit it.","example":"my-workspace"},"required":false,"description":"Workspace to resolve the principal in. Required for user credentials because a user's role is per-workspace. Service accounts carry their workspace in the credential and may omit it.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Current authenticated principal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Subject"}}}},"400":{"description":"Missing required workspace for user credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces":{"get":{"operationId":"listWorkspaces","description":"Retrieve all workspaces.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","description":"Search workspaces by name"},"required":false,"description":"Search workspaces by name","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved workspaces.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Workspace"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}":{"get":{"operationId":"getWorkspace","description":"Retrieve a workspace by ID.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workspace"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateWorkspace","description":"Update a workspace.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"update","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"logoUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"}}}}}},"responses":{"200":{"description":"Workspace updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workspace"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteWorkspace","description":"Delete a workspace. The workspace must have no projects.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"delete","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Workspace deleted successfully."},"400":{"description":"Workspace still has projects.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/members":{"get":{"operationId":"listWorkspaceMembers","description":"List all members of a workspace.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"listMembers","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"List of workspace members.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceMember"}}},"required":["items"]}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"addWorkspaceMember","description":"Add a member to a workspace by email. The user must already have an account.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"addMember","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"Email of the user to add"},"role":{"allOf":[{"$ref":"#/components/schemas/WorkspaceRole"},{"description":"Role to assign"}]}},"required":["email","role"]}}}},"responses":{"201":{"description":"Member added successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceMember"}}}},"404":{"description":"Workspace or user not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"User is already a member.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/members/{userId}":{"patch":{"operationId":"updateWorkspaceMember","description":"Update a workspace member's role.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"updateMember","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"userId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"allOf":[{"$ref":"#/components/schemas/WorkspaceRole"},{"description":"New role to assign"}]}},"required":["role"]}}}},"responses":{"200":{"description":"Member role updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceMember"}}}},"400":{"description":"Cannot remove last admin.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Workspace or member not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"removeWorkspaceMember","description":"Remove a member from a workspace.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"removeMember","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"userId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Member removed successfully."},"400":{"description":"Cannot remove last admin or self.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Workspace or member not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/dismiss-onboarding":{"post":{"operationId":"dismissWorkspaceOnboarding","description":"Mark the Getting Started walkthrough as dismissed for a workspace. The dashboard stops auto-promoting onboarding once this is set; users can still re-enter the walkthrough via the help menu.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"dismissOnboarding","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Workspace with onboardingDismissedAt populated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workspace"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/settings":{"get":{"operationId":"getWorkspaceSettings","description":"Read the ai-agent settings for a workspace. Returns defaults (`enabled: true`, `debugPermissionMode: auto`) when the workspace has never customized them.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"getSettings","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Workspace ai-agent settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSettings"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateWorkspaceSettings","description":"Update the ai-agent settings for a workspace. Supports `debugPermissionMode` (`ask` requires human approval on every ai-agent debug command, `auto` runs them without asking) and `enabled` (`false` turns the ai-agent off so incoming triggers are rejected before any session runs).","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"updateSettings","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkspaceSettingsRequest"}}}},"responses":{"200":{"description":"Updated ai-agent settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSettings"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/invitations":{"get":{"operationId":"listWorkspaceInvitations","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Pending invitations.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceInvitation"}}},"required":["items"]}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createWorkspaceInvitation","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"role":{"$ref":"#/components/schemas/WorkspaceRole"}},"required":["email","role"]}}}},"responses":{"201":{"description":"Invitation created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInvitation"}}}},"403":{"description":"Seat limit reached.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Invitation already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/invitations/{invitationId}/resend":{"post":{"operationId":"resendWorkspaceInvitation","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"invitationId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Invitation email sent again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInvitation"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/invitations/{invitationId}":{"delete":{"operationId":"revokeWorkspaceInvitation","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"invitationId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Invitation revoked."},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/invite-link":{"get":{"operationId":"getWorkspaceInviteLink","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Active invite link.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInviteLink"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"put":{"operationId":"createWorkspaceInviteLink","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/WorkspaceRole"}},"required":["role"]}}}},"responses":{"200":{"description":"Invite link created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInviteLink"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"revokeWorkspaceInviteLink","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Invite link revoked."},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects":{"get":{"operationId":"listProjects","description":"Retrieve all projects.","x-speakeasy-group":"projects","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","description":"Search projects by name"},"required":false,"description":"Search projects by name","name":"search","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["deploymentCount","latestRelease"]},"description":"Optional fields to include: deploymentCount, latestRelease"},"required":false,"description":"Optional fields to include: deploymentCount, latestRelease","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved projects.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ProjectListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createProject","description":"Create a new project.","x-speakeasy-group":"projects","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Project name.","example":"my-app"},"gitRepository":{"type":"object","nullable":true,"properties":{"type":{"type":"string","enum":["github"],"description":"The Git Provider of the repository","example":"github"},"repo":{"type":"string","maxLength":128,"description":"The name of the git repository","example":"alien/my-agent"}},"required":["type","repo"],"additionalProperties":false,"description":"Verified source repository connected to the project. Alien uses this for GitHub Actions setup and source-aware features; releases are still created explicitly by CI or `alien release`."},"rootDirectory":{"type":"string","nullable":true,"maxLength":256,"description":"The name of a directory or relative path to the source code of your project. When null is used it will default to the project root"},"packagesConfig":{"type":"object","nullable":true,"properties":{"cli":{"type":"object","nullable":true,"properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"},"enabled":{"type":"boolean","description":"Whether CLI package generation is enabled"}},"required":["displayName","name","enabled"],"description":"CLI package configuration. If null, CLI packages will not be generated."},"cloudformation":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether CloudFormation package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"CloudFormation package configuration. If null, CloudFormation packages will not be generated."},"operatorImage":{"type":"object","nullable":true,"properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"},"enabled":{"type":"boolean","description":"Whether Operator image package generation is enabled"}},"required":["displayName","name","enabled"],"description":"Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated."},"helm":{"type":"object","nullable":true,"properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"},"enabled":{"type":"boolean","description":"Whether Helm chart package generation is enabled"}},"required":["chartName","description","enabled"],"description":"Helm chart package configuration. If null, Helm packages will not be generated."},"terraform":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether Terraform package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"Terraform package configuration. If null, Terraform packages will not be generated."}},"description":"Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform)"}},"required":["name"]}}}},"responses":{"201":{"description":"Project created successfully.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Project"},{"type":"object","properties":{"githubSetup":{"type":"object","properties":{"pullRequestUrl":{"type":"string","format":"uri","description":"URL to the pull request with the Alien build workflow"},"workflowUrl":{"type":"string","format":"uri","description":"URL to the GitHub Actions workflow"}},"required":["pullRequestUrl","workflowUrl"]},"gitRepositoryWarning":{"$ref":"#/components/schemas/APIError"}}}]}}}},"400":{"description":"Invalid request or GitHub repository connection failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Insufficient permissions or plan limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Project name already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}":{"get":{"operationId":"getProject","description":"Retrieve a project by ID or name.","x-speakeasy-group":"projects","x-speakeasy-name-override":"get","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved project.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateProject","description":"Update a project.","x-speakeasy-group":"projects","x-speakeasy-name-override":"update","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProject"}}}},"responses":{"200":{"description":"Project updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteProject","description":"Delete a project. The project must have no deployments.","x-speakeasy-group":"projects","x-speakeasy-name-override":"delete","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Project deleted successfully."},"400":{"description":"Project still has deployments.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/gcp-oauth-provider":{"get":{"operationId":"getProjectGcpOAuthProvider","description":"Retrieve redacted project-level Google Cloud OAuth provider settings.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getGcpOAuthProvider","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved Google Cloud OAuth provider settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectGcpOAuthProvider"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"put":{"operationId":"updateProjectGcpOAuthProvider","description":"Update project-level Google Cloud OAuth provider settings.","x-speakeasy-group":"projects","x-speakeasy-name-override":"updateGcpOAuthProvider","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProjectGcpOAuthProvider"}}}},"responses":{"200":{"description":"Google Cloud OAuth provider settings updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectGcpOAuthProvider"}}}},"400":{"description":"Invalid provider settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/deployment-portal-domain":{"get":{"operationId":"getProjectDeploymentPortalDomain","description":"Get the deployment portal domain binding for a project.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getDeploymentPortalDomain","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved deployment portal domain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentPortalDomainResponse"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/import-template":{"post":{"operationId":"createProjectFromTemplate","description":"Create a project by forking alienplatform/alien into your namespace, then configuring GitHub Actions.","x-speakeasy-group":"projects","x-speakeasy-name-override":"createFromTemplate","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Project name.","example":"my-app"},"targetNamespace":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-zA-Z0-9-]+$","description":"GitHub owner namespace (user or organization) that will receive the fork"},"templatePath":{"type":"string","enum":["examples/remote-worker-ts","examples/github-agent/packages/remote-agent","examples/endpoint-agent","examples/byoc-database"],"description":"Template root directory inside alienplatform/alien"},"rootDirectory":{"type":"string","nullable":true,"maxLength":256,"description":"The name of a directory or relative path to the source code of your project. When null is used it will default to the project root"},"packagesConfig":{"type":"object","nullable":true,"properties":{"cli":{"type":"object","nullable":true,"properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"},"enabled":{"type":"boolean","description":"Whether CLI package generation is enabled"}},"required":["displayName","name","enabled"],"description":"CLI package configuration. If null, CLI packages will not be generated."},"cloudformation":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether CloudFormation package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"CloudFormation package configuration. If null, CloudFormation packages will not be generated."},"operatorImage":{"type":"object","nullable":true,"properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"},"enabled":{"type":"boolean","description":"Whether Operator image package generation is enabled"}},"required":["displayName","name","enabled"],"description":"Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated."},"helm":{"type":"object","nullable":true,"properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"},"enabled":{"type":"boolean","description":"Whether Helm chart package generation is enabled"}},"required":["chartName","description","enabled"],"description":"Helm chart package configuration. If null, Helm packages will not be generated."},"terraform":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether Terraform package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"Terraform package configuration. If null, Terraform packages will not be generated."}},"description":"Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform)"}},"required":["name","targetNamespace","templatePath"]}}}},"responses":{"201":{"description":"Project created successfully from template.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Project"},{"type":"object","properties":{"githubSetup":{"type":"object","properties":{"pullRequestUrl":{"type":"string","format":"uri","description":"URL to the pull request with the Alien build workflow"},"workflowUrl":{"type":"string","format":"uri","description":"URL to the GitHub Actions workflow"}},"required":["pullRequestUrl","workflowUrl"]},"gitRepositoryWarning":{"$ref":"#/components/schemas/APIError"},"template":{"type":"object","properties":{"sourceRepository":{"type":"string","enum":["alienplatform/alien"]},"forkRepository":{"type":"string","description":"Fork repository in / format"},"templatePath":{"type":"string","enum":["examples/remote-worker-ts","examples/github-agent/packages/remote-agent","examples/endpoint-agent","examples/byoc-database"],"description":"Template root directory inside alienplatform/alien"},"resolvedRootDirectory":{"type":"string"}},"required":["sourceRepository","forkRepository","templatePath","resolvedRootDirectory"]}},"required":["template"]}]}}}},"400":{"description":"Bad request or GitHub integration not installed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Project name already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"Fork exists but is not ready yet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/template-urls":{"get":{"operationId":"getProjectTemplateUrls","description":"Get template URLs for deploying setup stacks in this project.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getTemplateUrls","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Template URLs retrieved successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"aws":{"type":"object","nullable":true,"properties":{"templateUrl":{"type":"string","format":"uri","description":"URL to download the CloudFormation template"},"launchStackUrl":{"type":"string","format":"uri","description":"URL to launch the template in the AWS CloudFormation console"}},"required":["templateUrl","launchStackUrl"],"description":"Template URLs for deploying an AWS setup stack"}}}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/deployment-link-setup":{"get":{"operationId":"getProjectDeploymentLinkSetup","description":"Get the active release stack and portal-visible setup availability for deployment-link configuration.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getDeploymentLinkSetup","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Deployment-link setup retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentLinkSetupResponse"}}}},"404":{"description":"Project or active release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/active-release":{"get":{"operationId":"getProjectActiveRelease","description":"Get the production channel's current release. When deploymentId is provided, returns that deployment's effective release: its pin, or its followed channel's current release.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getActiveRelease","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","description":"Optional deployment ID to check for pinned release"},"required":false,"description":"Optional deployment ID to check for pinned release","name":"deploymentId","in":"query"}],"responses":{"200":{"description":"Effective release retrieved successfully.","content":{"application/json":{"schema":{"nullable":true}}}},"404":{"description":"Project or effective release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups":{"post":{"operationId":"createDeploymentGroup","tags":["deployment-groups"],"summary":"Create a new deployment group","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentGroupRequest"}}}},"responses":{"200":{"description":"Deployment group created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment group with this name already exists in the project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"listDeploymentGroups","tags":["deployment-groups"],"summary":"List deployment groups","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","description":"Search deployment groups by name"},"required":false,"description":"Search deployment groups by name","name":"search","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["project"]},"description":"Optional fields to include: project"},"required":false,"description":"Optional fields to include: project","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"List of deployment groups","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/DeploymentGroup"},{"type":"object","properties":{"project":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"Project ID"},"name":{"type":"string","description":"Project name"}},"required":["id","name"],"description":"Project info, included when ?include=project is used"}}}]},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/by-name":{"put":{"operationId":"ensureDeploymentGroupByName","tags":["deployment-groups"],"summary":"Get or create a deployment group by project and name","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnsureDeploymentGroupByNameRequest"}}}},"responses":{"200":{"description":"Deployment group returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/{id}":{"get":{"operationId":"getDeploymentGroup","tags":["deployment-groups"],"summary":"Get deployment group details","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["project"]},"description":"Optional fields to include: project"},"required":false,"description":"Optional fields to include: project","name":"include","in":"query"}],"responses":{"200":{"description":"Deployment group details","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DeploymentGroup"},{"type":"object","properties":{"project":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"Project ID"},"name":{"type":"string","description":"Project name"}},"required":["id","name"],"description":"Project info, included when ?include=project is used"},"deploymentCount":{"type":"integer","description":"Current number of deployments in this deployment group"}},"required":["deploymentCount"]}]}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateDeploymentGroup","tags":["deployment-groups"],"summary":"Update deployment group","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentGroupRequest"}}}},"responses":{"200":{"description":"Deployment group updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment group name already exists in the project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteDeploymentGroup","tags":["deployment-groups"],"summary":"Delete deployment group","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Deployment group deleted successfully"},"400":{"description":"Cannot delete deployment group that has deployments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/{id}/tokens":{"post":{"operationId":"createDeploymentGroupToken","tags":["deployment-groups"],"summary":"Create deployment group token","description":"Creates a deployment-group scoped API key and returns both the token and formatted deployment link","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentGroupTokenRequest"}}}},"responses":{"200":{"description":"Deployment group token created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentGroupTokenResponse"}}}},"400":{"description":"Deployment setup configuration is invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/{id}/first-party-session":{"post":{"operationId":"createFirstPartyDeploymentSession","tags":["deployment-groups"],"summary":"Create first-party deployment session","description":"Mints a short-lived deployment-group token with the recommended self-deploy policy for the authenticated developer.","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"First-party deployment session created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFirstPartyDeploymentSessionResponse"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/packages":{"get":{"operationId":"listPackages","description":"List packages with optional filters. Returns packages ordered by creation date (newest first).","x-speakeasy-group":"packages","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","enum":["cli","cloudformation","helm","operator-image","terraform"],"description":"Filter by package type"},"required":false,"description":"Filter by package type","name":"type","in":"query"},{"schema":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Filter by package status"},"required":false,"description":"Filter by package status","name":"status","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search packages by type or version"},"required":false,"description":"Search packages by type or version","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"List of packages.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Package"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/packages/{id}":{"get":{"operationId":"getPackage","description":"Get details of a specific package.","x-speakeasy-group":"packages","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"pkg_[0-9a-z]{28}$","description":"Unique identifier for the package.","example":"pkg_jebo2o5jmm7raefl2m1pe3cz"},"required":true,"description":"Unique identifier for the package.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Package details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Package"}}}},"404":{"description":"Package not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/packages/rebuild":{"post":{"operationId":"rebuildPackages","description":"Rebuild packages for a project. This will cancel any pending packages and create new ones with auto-incremented versions.","x-speakeasy-group":"packages","x-speakeasy-name-override":"rebuild","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"project":{"type":"string","maxLength":100,"description":"Project ID or name to rebuild packages for"}},"required":["project"]}}}},"responses":{"200":{"description":"Packages rebuilt successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"packagesCreated":{"type":"integer","description":"Number of packages created"}},"required":["packagesCreated"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/packages/{id}/cancel":{"post":{"operationId":"cancelPackage","description":"Cancel a pending or building package.","x-speakeasy-group":"packages","x-speakeasy-name-override":"cancel","parameters":[{"schema":{"type":"string","pattern":"pkg_[0-9a-z]{28}$","description":"Unique identifier for the package.","example":"pkg_jebo2o5jmm7raefl2m1pe3cz"},"required":true,"description":"Unique identifier for the package.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Package canceled successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Package"}}}},"400":{"description":"Package cannot be canceled (not in pending or building status).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Package not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases":{"get":{"operationId":"listReleases","description":"Retrieve all releases.","x-speakeasy-group":"releases","x-speakeasy-name-override":"list","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"}],"nullable":true},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","nullable":true,"minLength":1,"maxLength":63,"pattern":"^[a-z][a-z0-9-]*$","description":"Filter to releases promoted to this channel. Defaults to production."},"required":false,"description":"Filter to releases promoted to this channel. Defaults to production.","name":"channel","in":"query"},{"schema":{"type":"string","enum":["true","false"],"default":"false"},"required":false,"name":"allChannels","in":"query"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["project","rollout","createdBy"]},"description":"Optional fields to include: project, rollout"},"required":false,"description":"Optional fields to include: project, rollout","name":"include","in":"query"},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Search releases by commit message, branch, SHA, or release ID"},"required":false,"description":"Search releases by commit message, branch, SHA, or release ID","name":"search","in":"query"},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Filter by git branch (commitRef)"},"required":false,"description":"Filter by git branch (commitRef)","name":"branch","in":"query"},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Filter by commit author login or name"},"required":false,"description":"Filter by commit author login or name","name":"author","in":"query"},{"schema":{"type":"string","nullable":true,"format":"date-time","description":"Filter releases created after this date (ISO 8601)"},"required":false,"description":"Filter releases created after this date (ISO 8601)","name":"createdAfter","in":"query"},{"schema":{"type":"string","nullable":true,"format":"date-time","description":"Filter releases created before this date (ISO 8601)"},"required":false,"description":"Filter releases created before this date (ISO 8601)","name":"createdBefore","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved releases.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createRelease","description":"Create a new release.","x-speakeasy-group":"releases","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateReleaseRequest"}}}},"responses":{"201":{"description":"Release created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Release"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases/branches":{"get":{"operationId":"listReleaseBranches","description":"List distinct git branches across releases. Used for filter dropdowns.","x-speakeasy-group":"releases","x-speakeasy-name-override":"listBranches","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"allOf":[{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"}],"nullable":true},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Search branches by name (case-insensitive contains)"},"required":false,"description":"Search branches by name (case-insensitive contains)","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50,"description":"Maximum number of branches to return"},"required":false,"description":"Maximum number of branches to return","name":"limit","in":"query"}],"responses":{"200":{"description":"Retrieved distinct branches.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"string"}}},"required":["items"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases/authors":{"get":{"operationId":"listReleaseAuthors","description":"List distinct commit authors across releases. Used for filter dropdowns.","x-speakeasy-group":"releases","x-speakeasy-name-override":"listAuthors","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"allOf":[{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"}],"nullable":true},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Search authors by login or name (case-insensitive contains)"},"required":false,"description":"Search authors by login or name (case-insensitive contains)","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50,"description":"Maximum number of authors to return"},"required":false,"description":"Maximum number of authors to return","name":"limit","in":"query"}],"responses":{"200":{"description":"Retrieved distinct authors.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseAuthorFilterItem"}}},"required":["items"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases/{id}":{"get":{"operationId":"getRelease","description":"Retrieve a release by ID.","x-speakeasy-group":"releases","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"required":true,"description":"Unique identifier for the release.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["project","rollout","createdBy"]},"description":"Optional fields to include: project, rollout"},"required":false,"description":"Optional fields to include: project, rollout","name":"include","in":"query"}],"responses":{"200":{"description":"Retrieved release.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseListItemResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases/{id}/deployments":{"get":{"operationId":"listReleaseDeployments","description":"List the project's deployments with their rollout state relative to this release.","x-speakeasy-group":"releases","x-speakeasy-name-override":"listDeployments","parameters":[{"schema":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"required":true,"description":"Unique identifier for the release.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseRolloutState"},"description":"Filter deployments by rollout state"},"required":false,"description":"Filter deployments by rollout state","name":"state","in":"query"},{"schema":{"type":"string","description":"Filter by deployment group ID or name"},"required":false,"description":"Filter by deployment group ID or name","name":"deploymentGroup","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved release deployments.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseDeploymentsResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/release-channels":{"get":{"operationId":"listReleaseChannels","x-speakeasy-group":"releaseChannels","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"responses":{"200":{"description":"Project release channels.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseChannel"}}},"required":["items"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createReleaseChannel","x-speakeasy-group":"releaseChannels","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"$ref":"#/components/schemas/ReleaseChannelName"},"releaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Channel created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseChannel"}}}},"400":{"description":"Invalid release.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/release-channels/{name}/promote":{"post":{"operationId":"promoteRelease","x-speakeasy-group":"releases","x-speakeasy-name-override":"promote","parameters":[{"schema":{"$ref":"#/components/schemas/ReleaseChannelName"},"required":true,"name":"name","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"releaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"expectedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"}},"required":["releaseId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Release promoted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseChannel"}}}},"404":{"description":"Project, channel, or release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Channel changed concurrently.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/release-channels/{name}":{"delete":{"operationId":"deleteReleaseChannel","x-speakeasy-group":"releaseChannels","x-speakeasy-name-override":"delete","parameters":[{"schema":{"$ref":"#/components/schemas/ReleaseChannelName"},"required":true,"name":"name","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"responses":{"204":{"description":"Channel deleted."},"400":{"description":"Reserved channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project or channel not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Channel is still followed by deployments.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments":{"get":{"operationId":"listDeployments","description":"Retrieve all deployments.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"list","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","description":"Filter by deployment group ID or name"},"required":false,"description":"Filter by deployment group ID or name","name":"deploymentGroup","in":"query"},{"schema":{"type":"string","maxLength":100,"description":"Filter by exact deployment name. Must be used with deploymentGroup."},"required":false,"description":"Filter by exact deployment name. Must be used with deploymentGroup.","name":"name","in":"query"},{"schema":{"type":"string","description":"Filter by manager ID"},"required":false,"description":"Filter by manager ID","name":"managerId","in":"query"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search deployments by name, public subdomain, or deployment group name"},"required":false,"description":"Search deployments by name, public subdomain, or deployment group name","name":"search","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"description":"Filter deployments by status"},"required":false,"description":"Filter deployments by status","name":"status","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Filter deployments by effective environment"},"required":false,"description":"Filter deployments by effective environment","name":"environment","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["release","deploymentGroup","project"]},"description":"Optional fields to include: release, deploymentGroup, project"},"required":false,"description":"Optional fields to include: release, deploymentGroup, project","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved deployments.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"400":{"description":"Invalid deployment list filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createDeployment","description":"Create a new deployment. Deployment group tokens automatically use their group. Workspace/project tokens must provide deploymentGroupId.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewDeploymentRequest"}}}},"responses":{"200":{"description":"Existing deployment returned for idempotent deployment-group registration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentResponse"}}}},"201":{"description":"Deployment created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentResponse"}}}},"400":{"description":"Bad request - deployment group has reached max deployments limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Forbidden - insufficient permissions to create deployments in this context.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project or deployment group not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment with the specified ID already exists, or a deployment with the same name already exists in the deployment group.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/stats":{"get":{"operationId":"getDeploymentStats","description":"Get aggregated deployment statistics. Returns total count and breakdown by status.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"getStats","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","description":"Filter by deployment group ID or name"},"required":false,"description":"Filter by deployment group ID or name","name":"deploymentGroup","in":"query"},{"schema":{"type":"string","description":"Filter by manager ID"},"required":false,"description":"Filter by manager ID","name":"managerId","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Filter deployments by effective environment"},"required":false,"description":"Filter deployments by effective environment","name":"environment","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"description":"Filter deployments by status"},"required":false,"description":"Filter deployments by status","name":"status","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search deployments by name or deployment group name"},"required":false,"description":"Search deployments by name or deployment group name","name":"search","in":"query"}],"responses":{"200":{"description":"Deployment statistics retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentStats"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/filter-environments":{"get":{"operationId":"listDeploymentFilterEnvironments","description":"List distinct effective environments used by deployments. Used for filter dropdowns.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"listFilterEnvironments","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"responses":{"200":{"description":"Distinct environments retrieved.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."}}},"required":["items"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/filter-deployment-groups":{"get":{"operationId":"listDeploymentFilterDeploymentGroups","description":"List deployment groups with deployment counts. Used for filter dropdowns.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"listFilterDeploymentGroups","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Search deployment groups by name"},"required":false,"description":"Search deployment groups by name","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return"},"required":false,"description":"Maximum number of items to return","name":"limit","in":"query"}],"responses":{"200":{"description":"Deployment groups for filter retrieved.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string"},"deploymentCount":{"type":"number"},"runningCount":{"type":"number","description":"Number of deployments in 'running' status"},"failedCount":{"type":"number","description":"Number of deployments in a failed status"},"inProgressCount":{"type":"number","description":"Number of deployments in an in-progress status (provisioning, updating, etc.)"}},"required":["id","name","deploymentCount","runningCount","failedCount","inProgressCount"]}}},"required":["items"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}":{"get":{"operationId":"getDeployment","description":"Retrieve a deployment by ID.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["release","deploymentGroup","project"]},"description":"Optional fields to include: release, deploymentGroup, project"},"required":false,"description":"Optional fields to include: release, deploymentGroup, project","name":"include","in":"query"}],"responses":{"200":{"description":"Retrieved deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentDetailResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/info":{"get":{"operationId":"getDeploymentConnectionInfo","description":"Get deployment connection information including command endpoint and resource URLs.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"getInfo","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Deployment connection information.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentConnectionInfo"}}}},"400":{"description":"Deployment not ready (no manager assigned).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/import":{"post":{"operationId":"importDeployment","description":"Import a deployment from resolved setup infrastructure such as CloudFormation, Terraform, or Helm.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"import","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportDeploymentRequest"}}}},"responses":{"200":{"description":"Deployment import was idempotent and returned an existing deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deployment"}}}},"201":{"description":"Deployment imported and created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deployment"}}}},"409":{"description":"Deployment with the specified ID already exists, or a deployment with the same name already exists in the deployment group.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/first-party-inputs":{"put":{"operationId":"setFirstPartyDeploymentInputs","description":"Store operator-provided input values on a first-party deployment session token so CLI/local deploys apply them.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"setFirstPartyDeploymentInputs","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetFirstPartyDeploymentInputsRequest"}}}},"responses":{"200":{"description":"Input values stored on the session token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetFirstPartyDeploymentInputsResponse"}}}},"400":{"description":"A deployment-group token scope is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"The token is not a first-party deployment session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Failed to store input values.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/setup-registration-operations":{"post":{"operationId":"createSetupRegistrationOperation","description":"Start a durable setup registration operation for CloudFormation, Terraform, or Helm.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"createSetupRegistrationOperation","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSetupRegistrationOperationRequest"}}}},"responses":{"202":{"description":"Setup registration operation accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetupRegistrationOperationResponse"}}}},"400":{"description":"Invalid setup registration operation request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed before callback acceptance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/setup-registration-operations/{id}":{"get":{"operationId":"getSetupRegistrationOperation","description":"Get setup registration operation status.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"getSetupRegistrationOperation","parameters":[{"schema":{"type":"string","pattern":"setupop_[0-9a-z]{28}$","description":"Unique identifier for the setup registration operation.","example":"setupop_y41lqnfosxuwqkzmiax7"},"required":true,"description":"Unique identifier for the setup registration operation.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Setup registration operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetupRegistrationOperationResponse"}}}},"404":{"description":"Setup registration operation not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/delete":{"post":{"operationId":"deleteDeployment","description":"Delete, detach, or forget a deployment by ID.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"delete","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDeploymentRequest"}}}},"responses":{"202":{"description":"Deployment deletion request accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDeploymentResponse"}}}},"400":{"description":"Cannot delete the deployment in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment already has a conflicting delete request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/redeploy":{"post":{"operationId":"redeployDeployment","description":"Redeploy a running deployment with the same release and fresh environment variables. Sets status to update-pending.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"redeploy","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Deployment redeployment triggered successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot redeploy - deployment must be running.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/pin-release":{"post":{"operationId":"pinDeploymentRelease","description":"Pin or unpin a running or runtime-failed deployment. Running deployments start an update; failed deployments retry toward the selected release.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"pinRelease","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PinReleaseRequest"}}}},"responses":{"202":{"description":"Release pin updated successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot pin release from the deployment's current lifecycle state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment or release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/release-channel":{"post":{"operationId":"setDeploymentReleaseChannel","x-speakeasy-group":"deployments","x-speakeasy-name-override":"setReleaseChannel","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"$ref":"#/components/schemas/ReleaseChannelName"}},"required":["channel"],"additionalProperties":false}}}},"responses":{"200":{"description":"Deployment release channel updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deployment"}}}},"400":{"description":"Channel release is unavailable for the deployment platform.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment or release channel not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/retry":{"post":{"operationId":"retryDeployment","description":"Retry a failed deployment operation. Uses alien-infra's retry mechanisms to resume from exact failure point.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"retry","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Deployment retry enqueued successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Deployment is not in a failed state that can be retried.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/inputs":{"get":{"operationId":"getDeploymentInputs","description":"Get the active input definitions and current non-secret values for a deployment.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"getInputs","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Deployment inputs returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentInputsResponse"}}}},"403":{"description":"Insufficient permission to read deployment inputs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment or release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateDeploymentInputs","description":"Update runtime stack inputs, rebuild their environment-variable mappings, and request a deployment update when runtime configuration changes.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"updateInputs","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentInputsRequest"}}}},"responses":{"200":{"description":"Deployment inputs saved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentInputsResponse"}}}},"400":{"description":"Input values are invalid for the deployment release.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Insufficient permission to update deployment inputs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment, project, or release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/environment-variables":{"patch":{"operationId":"updateDeploymentEnvironmentVariables","description":"Update a deployment's environment variables. If the deployment is running and not locked, the status will be changed to update-pending to trigger a deployment.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"updateEnvironmentVariables","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentEnvironmentVariablesRequest"}}}},"responses":{"202":{"description":"Environment variables updated successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Environment variables are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Insufficient permission to update environment variables.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/token":{"post":{"operationId":"createDeploymentToken","description":"Create a deployment token (deployment-scoped API key). The deployment must exist before creating a token.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"createToken","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentTokenRequest"}}}},"responses":{"201":{"description":"Deployment token created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentTokenResponse"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers":{"post":{"operationId":"createManager","description":"Create a new manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewManagerRequest"}}}},"responses":{"201":{"description":"Manager created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateManagerResponse"}}}},"400":{"description":"Invalid private manager setup method.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"A manager for this target already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"listManagers","description":"Retrieve all managers.","x-speakeasy-group":"managers","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search managers by name"},"required":false,"description":"Search managers by name","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum number of managers to return"},"required":false,"description":"Maximum number of managers to return","name":"limit","in":"query"}],"responses":{"200":{"description":"Retrieved managers.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Manager"}}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/setup-token":{"post":{"operationId":"retryManagerSetup","description":"Revoke previous private-manager setup tokens and issue a fresh setup token/config.","x-speakeasy-group":"managers","x-speakeasy-name-override":"retrySetup","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"201":{"description":"Fresh manager setup token generated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateManagerResponse"}}}},"400":{"description":"Manager setup cannot be retried in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager or setup config not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/retry":{"post":{"operationId":"retryManager","description":"Retry private-manager setup. Returns a fresh setup action before the internal deployment exists, or requests retry for the internal deployment after it exists.","x-speakeasy-group":"managers","x-speakeasy-name-override":"retry","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Manager retry handled successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerRetryResponse"}}}},"400":{"description":"Manager cannot be retried in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager or internal deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/cancel-setup":{"post":{"operationId":"cancelManagerSetup","description":"Cancel pending private-manager setup, revoke setup/runtime tokens, and remove the undeployed manager record.","x-speakeasy-group":"managers","x-speakeasy-name-override":"cancelSetup","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Manager setup canceled successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Manager setup cannot be canceled in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}":{"get":{"operationId":"getManager","description":"Retrieve a manager by ID.","x-speakeasy-group":"managers","x-speakeasy-name-override":"get","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved manager.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Manager"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteManager","description":"Delete a manager by ID.","x-speakeasy-group":"managers","x-speakeasy-name-override":"delete","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Manager deletion enqueued successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot delete the manager in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Internal deployment already has a conflicting delete request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/domain-binding":{"get":{"operationId":"getManagerDomainBinding","description":"Get the custom domain binding for a private manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"getDomainBinding","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved manager domain binding.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerDomainBindingResponse"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"put":{"operationId":"updateManagerDomainBinding","description":"Create, update, or remove the custom domain binding for a private manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"updateDomainBinding","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateManagerDomainBinding"}}}},"responses":{"200":{"description":"Manager domain binding updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerDomainBindingResponse"}}}},"400":{"description":"Invalid domain binding request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager or domain not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/management-config":{"get":{"operationId":"getManagerManagementConfig","description":"Get the management configuration for a manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"getManagementConfig","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"required":true,"description":"Represents the target cloud platform.","name":"platform","in":"query"}],"responses":{"200":{"description":"Management config retrieved successfully.","content":{"application/json":{"schema":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]}],"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."}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/provision":{"post":{"operationId":"provisionManager","description":"Enqueue provisioning for a manager by ID.","x-speakeasy-group":"managers","x-speakeasy-name-override":"provision","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Manager provisioning enqueued successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot provision the manager in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/update":{"post":{"operationId":"updateManager","description":"Update a manager to a specific release ID or active release.","x-speakeasy-group":"managers","x-speakeasy-name-override":"update","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateManagerRequest"}}}},"responses":{"202":{"description":"Manager update enqueued successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot update the manager in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/events":{"get":{"operationId":"listManagerEvents","description":"Retrieve all events of a manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"listEvents","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved events.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Event"}}},"required":["items"]}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/token":{"post":{"operationId":"generateManagerToken","description":"Generate a short-lived JWT for direct browser → manager communication. Used for fetching command payloads and querying logs without routing sensitive data through the platform API.","x-speakeasy-group":"managers","x-speakeasy-name-override":"generateManagerToken","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateManagerTokenRequest"}}}},"responses":{"200":{"description":"Manager access token and connection info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateManagerTokenResponse"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/binding-token":{"post":{"operationId":"generateManagerBindingToken","description":"Generate a short-lived deployment-scoped token for resolving opted-in remote bindings through the currently assigned manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"generateManagerBindingToken","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateManagerBindingTokenRequest"}}}},"responses":{"200":{"description":"Remote Bindings token and assigned manager URL.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateManagerBindingTokenResponse"}}}},"403":{"description":"The caller cannot update the deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Assigned manager or deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"The assigned manager is offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/gcp-oauth-provider/resolve":{"post":{"operationId":"resolveManagerGcpOAuthProvider","description":"Resolve decrypted project-level Google Cloud OAuth provider settings for a manager-side deployment bootstrap.","x-speakeasy-group":"managers","x-speakeasy-name-override":"resolveGcpOAuthProvider","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveManagerGcpOAuthProviderRequest"}}}},"responses":{"200":{"description":"Resolved Google Cloud OAuth provider settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveManagerGcpOAuthProviderResponse"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Manager cannot resolve this deployment group's project settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager, deployment group, or project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/heartbeat":{"post":{"operationId":"reportManagerHeartbeat","description":"Report Manager health status and metrics.","x-speakeasy-group":"managers","x-speakeasy-name-override":"reportHeartbeat","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerHeartbeatRequest"}}}},"responses":{"200":{"description":"Heartbeat acknowledged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerHeartbeatResponse"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/deployment":{"get":{"operationId":"getManagerDeployment","description":"Get deployment details for a private manager (internal deployment platform, status, resources).","x-speakeasy-group":"managers","x-speakeasy-name-override":"getDeployment","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Manager deployment details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerDeployment"}}}},"404":{"description":"Manager not found or has no internal deployment (alien-hosted managers don't have deployment info).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/operator-manifests/prepare":{"post":{"operationId":"prepareOperatorManifestPackage","tags":["operator-manifests"],"summary":"Prepare the white-labeled Operator image for an Operate install","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrepareOperatorManifestPackageRequest"}}}},"responses":{"200":{"description":"Operator image package created or reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrepareOperatorManifestPackageResponse"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/operator-manifests/render":{"post":{"operationId":"renderOperatorManifest","tags":["operator-manifests"],"summary":"Render a Kubernetes Operator manifest","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenderOperatorManifestRequest"}}}},"responses":{"200":{"description":"Operator manifest rendered successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenderOperatorManifestResponse"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Operator image package is not ready.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Invalid platform or manager configuration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/api-keys":{"get":{"operationId":"listAPIKeys","description":"Retrieve all API keys for the current workspace.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved API keys.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/APIKey"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createAPIKey","description":"Create a new API key.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAPIKeyRequest"}}}},"responses":{"201":{"description":"API key created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAPIKeyResponse"}}}},"403":{"description":"Insufficient permissions to create API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/api-keys/{id}":{"get":{"operationId":"getAPIKey","description":"Retrieve a specific API key.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"required":true,"description":"Unique identifier for the api key.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKey"}}}},"404":{"description":"API key not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateAPIKey","description":"Update an API key (enable/disable, change description).","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"update","parameters":[{"schema":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"required":true,"description":"Unique identifier for the api key.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAPIKeyRequest"}}}},"responses":{"200":{"description":"API key updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKey"}}}},"404":{"description":"API key not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"revokeAPIKey","description":"Revoke (soft delete) an API key.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"revoke","parameters":[{"schema":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"required":true,"description":"Unique identifier for the api key.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"API key revoked successfully."},"404":{"description":"API key not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/api-keys/batch-delete":{"post":{"operationId":"deleteAPIKeys","description":"Permanently delete multiple API keys.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"deleteMultiple","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteAPIKeysRequest"}}}},"responses":{"200":{"description":"API keys deleted successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"deletedCount":{"type":"number"}},"required":["deletedCount"]}}}},"403":{"description":"Insufficient permissions to delete API keys.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains":{"get":{"operationId":"listDomains","description":"List system domains and workspace domains.","x-speakeasy-group":"domains","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved domains.","content":{"application/json":{"schema":{"type":"object","properties":{"domains":{"type":"array","items":{"$ref":"#/components/schemas/DomainWithUsage"}}},"required":["domains"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createDomain","description":"Create a workspace domain and optional initial endpoints.","x-speakeasy-group":"domains","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"maxLength":253},"setup":{"type":"object","properties":{"deploymentPortal":{"type":"boolean"},"packages":{"type":"boolean"},"deploymentUrlProjectId":{"type":"string","nullable":true,"pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"managerIds":{"type":"array","items":{"type":"string"}}}}},"required":["domain"]}}}},"responses":{"200":{"description":"Returned an existing workspace domain claim.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"201":{"description":"Created domain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"400":{"description":"Domain is reserved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Insufficient permissions or plan limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Domain cleanup is still in progress.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains/{id}/endpoints":{"post":{"operationId":"createDomainEndpoint","description":"Create an endpoint under a workspace domain.","x-speakeasy-group":"domains","x-speakeasy-name-override":"createEndpoint","parameters":[{"schema":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"required":true,"description":"Unique identifier for the domain.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["deployment_portal","workspace_packages","manager_api","deployment_url_base"]},"owner":{"type":"object","properties":{"type":{"type":"string","enum":["workspace","project","manager"]},"id":{"type":"string"}},"required":["type","id"]}},"required":["kind"]}}}},"responses":{"201":{"description":"Created endpoint.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"400":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Endpoint cleanup is still in progress.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains/{id}":{"get":{"operationId":"getDomain","description":"Get domain by ID.","x-speakeasy-group":"domains","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"required":true,"description":"Unique identifier for the domain.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved domain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteDomain","description":"Delete a workspace domain.","x-speakeasy-group":"domains","x-speakeasy-name-override":"delete","parameters":[{"schema":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"required":true,"description":"Unique identifier for the domain.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Domain deletion requested.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Domain is in use.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains/{id}/refresh":{"post":{"operationId":"refreshDomain","description":"Refresh workspace domain verification.","x-speakeasy-group":"domains","x-speakeasy-name-override":"refresh","parameters":[{"schema":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"required":true,"description":"Unique identifier for the domain.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Domain verification refresh requested.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/events":{"get":{"operationId":"listEvents","description":"Retrieve all events.","x-speakeasy-group":"events","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","description":"Filter events to a single deployment."},"required":false,"description":"Filter events to a single deployment.","name":"deploymentId","in":"query"},{"schema":{"type":"string","description":"Filter events to a single release."},"required":false,"description":"Filter events to a single release.","name":"releaseId","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["releaseCreatedAt"]},"description":"Optional fields to include: releaseCreatedAt"},"required":false,"description":"Optional fields to include: releaseCreatedAt","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved events.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/EventListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/events/{id}":{"get":{"operationId":"getEvent","description":"Retrieve an event by ID.","x-speakeasy-group":"events","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"event_[0-9a-zA-Z]{28}$","description":"Unique identifier for the event.","example":"event_MtSA24M3pWuAkQYxgZxuRI"},"required":true,"description":"Unique identifier for the event.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved event.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Event"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/join-tokens":{"get":{"operationId":"listMachinesJoinTokens","x-speakeasy-group":"machines","x-speakeasy-name-override":"listJoinTokens","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Join tokens for a Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMachinesJoinTokensResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createMachinesJoinToken","x-speakeasy-group":"machines","x-speakeasy-name-override":"createJoinToken","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Newly minted Machines join token. Existing tokens keep working; the token value is returned only once.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMachinesJoinTokenResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/join-tokens/rotate":{"post":{"operationId":"rotateMachinesJoinToken","x-speakeasy-group":"machines","x-speakeasy-name-override":"rotateJoinToken","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Rotated Machines join token. Revokes all existing tokens, then mints a new one; the token value is returned only once.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateMachinesJoinTokenResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/join-tokens/{tokenId}":{"delete":{"operationId":"revokeMachinesJoinToken","x-speakeasy-group":"machines","x-speakeasy-name-override":"revokeJoinToken","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"tokenId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Machines join token revocation result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeMachinesJoinTokenResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/inventory":{"get":{"operationId":"listMachinesInventory","x-speakeasy-group":"machines","x-speakeasy-name-override":"listInventory","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Machine inventory for a Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMachinesInventoryResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/machines/{machineId}/drain":{"delete":{"operationId":"cancelMachinesMachineDrain","x-speakeasy-group":"machines","x-speakeasy-name-override":"cancelMachineDrain","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"machineId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Machines drain cancellation result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelMachinesMachineDrainResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"drainMachinesMachine","x-speakeasy-group":"machines","x-speakeasy-name-override":"drainMachine","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"machineId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DrainMachinesMachineRequest"}}}},"responses":{"200":{"description":"Machines drain request result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DrainMachinesMachineResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/machines/{machineId}":{"delete":{"operationId":"removeMachinesMachine","x-speakeasy-group":"machines","x-speakeasy-name-override":"removeMachine","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"machineId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Machines remove request result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveMachinesMachineResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands":{"get":{"operationId":"listCommands","description":"Retrieve commands. Use for dashboard analytics and command history.","x-speakeasy-group":"commands","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Filter by deployment ID","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":false,"description":"Filter by deployment ID","name":"deploymentId","in":"query"},{"schema":{"type":"string","enum":["PENDING_UPLOAD","PENDING","DISPATCHED","SUCCEEDED","FAILED","EXPIRED"],"description":"Filter by command state"},"required":false,"description":"Filter by command state","name":"state","in":"query"},{"schema":{"type":"string","maxLength":255,"description":"Filter by command name"},"required":false,"description":"Filter by command name","name":"name","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search commands by name"},"required":false,"description":"Search commands by name","name":"search","in":"query"},{"schema":{"type":"string","nullable":true,"format":"date-time","description":"Filter commands created after this date (ISO 8601)"},"required":false,"description":"Filter commands created after this date (ISO 8601)","name":"createdAfter","in":"query"},{"schema":{"type":"string","nullable":true,"format":"date-time","description":"Filter commands created before this date (ISO 8601)"},"required":false,"description":"Filter commands created before this date (ISO 8601)","name":"createdBefore","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["deployment","project"]},"description":"Optional fields to include: deployment, project"},"required":false,"description":"Optional fields to include: deployment, project","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved commands.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CommandListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createCommand","description":"Create command metadata. Called by manager when processing commands. Returns project info for routing decisions.","x-speakeasy-group":"commands","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCommandRequest"}}}},"responses":{"201":{"description":"Command created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCommandResponse"}}}},"400":{"description":"Deployment is not ready or has no assigned manager.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Multiple command-capable targets; an explicit target is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"Deployment has no command-capable targets.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"The deployment manager is unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/names":{"get":{"operationId":"listCommandNames","description":"List distinct command names. Use for filter dropdowns in the dashboard.","x-speakeasy-group":"commands","x-speakeasy-name-override":"listNames","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","maxLength":255,"description":"Search command names (prefix match)"},"required":false,"description":"Search command names (prefix match)","name":"search","in":"query"}],"responses":{"200":{"description":"Distinct command names.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCommandNamesResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/deployments":{"get":{"operationId":"listCommandDeployments","description":"List distinct deployments that have commands, including deployment group info. Use for filter dropdowns in the dashboard.","x-speakeasy-group":"commands","x-speakeasy-name-override":"listDeployments","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","maxLength":255,"description":"Search deployment or deployment group names"},"required":false,"description":"Search deployment or deployment group names","name":"search","in":"query"}],"responses":{"200":{"description":"Distinct deployments that have commands.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCommandDeploymentsResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/target":{"get":{"operationId":"resolveCommandTarget","description":"Resolve which resource a command for this deployment would be addressed to, and how it would be delivered. Fails when the deployment has no command-capable resources, or more than one and no explicit target was named.","x-speakeasy-group":"commands","x-speakeasy-name-override":"resolveTarget","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Deployment to resolve the target for","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Deployment to resolve the target for","name":"deploymentId","in":"query"},{"schema":{"type":"string","maxLength":255,"description":"Explicit resource id to resolve; must be a command-capable resource"},"required":false,"description":"Explicit resource id to resolve; must be a command-capable resource","name":"target","in":"query"}],"responses":{"200":{"description":"Resolved command target.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolvedCommandTarget"}}}},"404":{"description":"Deployment or target not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Multiple command-capable targets; an explicit target is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"Deployment has no command-capable targets.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/{id}":{"patch":{"operationId":"updateCommand","description":"Update command state. Called by manager when command is dispatched or completes.","x-speakeasy-group":"commands","x-speakeasy-name-override":"update","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCommandRequest"}}}},"responses":{"200":{"description":"Command updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Command"}}}},"404":{"description":"Command not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"getCommand","description":"Retrieve a command by ID.","x-speakeasy-group":"commands","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved command.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Command"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/{id}/dispatch":{"post":{"operationId":"dispatchCommand","description":"Atomically mark a command DISPATCHED unless it is already terminal. Returns whether the transition was applied.","x-speakeasy-group":"commands","x-speakeasy-name-override":"dispatch","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DispatchCommandRequest"}}}},"responses":{"200":{"description":"Dispatch attempt result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DispatchCommandResponse"}}}},"404":{"description":"Command not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/{id}/complete":{"post":{"operationId":"completeCommand","description":"Atomically transition a command to a terminal state (SUCCEEDED, FAILED, or EXPIRED) unless it is already terminal. Returns whether the transition was applied.","x-speakeasy-group":"commands","x-speakeasy-name-override":"complete","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteCommandRequest"}}}},"responses":{"200":{"description":"Completion attempt result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteCommandResponse"}}}},"404":{"description":"Command not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/{id}/increment-attempt":{"post":{"operationId":"incrementCommandAttempt","description":"Atomically increment the command's attempt counter and return the new value.","x-speakeasy-group":"commands","x-speakeasy-name-override":"incrementAttempt","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Attempt incremented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncrementCommandAttemptResponse"}}}},"404":{"description":"Command not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/debug-sessions":{"get":{"operationId":"listDebugSessions","description":"Retrieve debug sessions for dashboard audit. Filters: project, deployment, state, mode.","x-speakeasy-group":"debugSessions","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Filter by deployment ID","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":false,"description":"Filter by deployment ID","name":"deploymentId","in":"query"},{"schema":{"allOf":[{"$ref":"#/components/schemas/DebugSessionState"},{"description":"Filter by session state"}]},"required":false,"description":"Filter by session state","name":"state","in":"query"},{"schema":{"type":"string","enum":["push","pull"],"description":"Filter by deployment model (push/pull). Joins against the parent deployment."},"required":false,"description":"Filter by deployment model (push/pull). Joins against the parent deployment.","name":"mode","in":"query"},{"schema":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Filter by cloud provider. Joins against the parent deployment."},"required":false,"description":"Filter by cloud provider. Joins against the parent deployment.","name":"provider","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Paginated debug sessions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugSessionListResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createDebugSession","description":"Create a debug-session audit row. Called by the manager when a pull or push debug tunnel is opened. Workspace + project derived from deployment.","x-speakeasy-group":"debugSessions","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDebugSessionRequest"}}}},"responses":{"201":{"description":"Debug session created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugSession"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/debug-sessions/{id}":{"patch":{"operationId":"updateDebugSession","description":"Update debug-session state. Called by manager on tunnel attach, close, or deadline expiry.","x-speakeasy-group":"debugSessions","x-speakeasy-name-override":"update","parameters":[{"schema":{"type":"string","pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Unique identifier for the debug session.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"required":true,"description":"Unique identifier for the debug session.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDebugSessionRequest"}}}},"responses":{"200":{"description":"Debug session updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugSession"}}}},"404":{"description":"Debug session not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"getDebugSession","description":"Retrieve a debug session by ID.","x-speakeasy-group":"debugSessions","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Unique identifier for the debug session.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"required":true,"description":"Unique identifier for the debug session.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved debug session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugSession"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-info":{"get":{"operationId":"getDeploymentInfo","description":"Get deployment information for the deployment portal. Accepts both deployment-scoped and deployment-group-scoped API keys. Returns project information, package status/outputs, and either deployment or deployment group details depending on the token type. Poll this endpoint to check if packages are ready.","x-speakeasy-group":"deployment","x-speakeasy-name-override":"getInfo","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"required":false,"description":"Represents the target cloud platform.","name":"platform","in":"query"}],"responses":{"200":{"description":"Deployment information retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentInfo"}}}},"401":{"description":"Unauthorized — requires a deployment-scoped or deployment-group-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment, deployment group, or project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-info/compute-plan":{"post":{"operationId":"planDeploymentCompute","description":"Plan deployment compute for the active release before stack preparation. The response contains recommended machine and scale choices for cloud compute pools.","x-speakeasy-group":"deployment","x-speakeasy-name-override":"planCompute","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure"]},"setupMethod":{"$ref":"#/components/schemas/DeploymentSetupMethod"},"region":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"type":"object","properties":{"pools":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["fixed"]},"machines":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","machines"]},{"type":"object","properties":{"mode":{"type":"string","enum":["autoscale"]},"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","min","max"]}]},"default":{}}}},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}}}},"required":["platform","setupMethod","stackSettings"]}}}},"responses":{"200":{"description":"Compute plan returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentComputePlan"}}}},"401":{"description":"Unauthorized — requires a deployment-group scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment group, project, release, or manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-info/prepare-stack":{"post":{"operationId":"prepareDeploymentStack","description":"Prepare the active release stack for a deployment portal setup session. The response contains the generated stack shape plus setup compatibility metadata.","x-speakeasy-group":"deployment","x-speakeasy-name-override":"prepareStack","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure"]},"setupMethod":{"$ref":"#/components/schemas/DeploymentSetupMethod"},"region":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"type":"object","properties":{"pools":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["fixed"]},"machines":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","machines"]},{"type":"object","properties":{"mode":{"type":"string","enum":["autoscale"]},"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","min","max"]}]},"default":{}}}},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}}}},"required":["platform","setupMethod","stackSettings"]}}}},"responses":{"200":{"description":"Prepared stack returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreparedDeploymentStack"}}}},"401":{"description":"Unauthorized — requires a deployment-group scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment group, project, release, or manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/slack/install-url":{"post":{"operationId":"slackIntegrationInstallUrl","description":"Generate the Slack OAuth consent URL for this workspace.","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"installUrl","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"OAuth URL the dashboard should redirect the user to.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackInstallUrlResponse"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/slack/status":{"get":{"operationId":"slackIntegrationStatus","description":"Return the Slack install for this workspace (if any).","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"status","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackIntegrationStatus"}}}}}}},"/v1/integrations/slack/channels":{"get":{"operationId":"slackIntegrationChannels","description":"List public Slack channels for this workspace's install. Used by the dashboard's notification-channel picker.","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"listChannels","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Public channels.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackChannelsResponse"}}}},"400":{"description":"Workspace not connected to Slack.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/slack/notification-channel":{"put":{"operationId":"slackIntegrationSetNotificationChannel","description":"Configure which Slack channel receives ai-agent monitor reports.","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"setNotificationChannel","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackNotificationChannelRequest"}}}},"responses":{"200":{"description":"Channel saved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackNotificationChannelResponse"}}}},"400":{"description":"Not connected, or join failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/slack/installation":{"delete":{"operationId":"slackIntegrationUninstall","description":"Uninstall the Slack integration for this workspace. Revokes the bot token at Slack and deletes the row.","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"uninstall","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Uninstalled."}}}},"/v1/agent-sessions":{"get":{"operationId":"listAgentSessions","description":"List ai-agent monitor sessions for this workspace. Newest first, capped at 50.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Sessions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionListResponse"}}}}}}},"/v1/agent-sessions/{id}":{"get":{"operationId":"getAgentSession","description":"Retrieve one ai-agent monitor session by id.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionDetail"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/agent-sessions/{id}/events":{"get":{"operationId":"listAgentSessionEvents","description":"Incrementally read a session's event log (steps, tool calls, report deltas, approvals, status transitions). Pass the previous response's `latestSeq` as `after` to fetch only new events.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"events","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"default":0},"required":false,"name":"after","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":500,"default":200},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Events after the cursor, oldest first.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionEventsResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/agent-sessions/{id}/approve":{"post":{"operationId":"approveAgentSession","description":"Approve a halted ai-agent monitor session. Proxies to the ai-agent service, minting a fresh CLI session for the caller so the ai-agent's own auth applies.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"approve","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Already resumed / no-op.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionApproveResponse"}}}},"202":{"description":"Approved; resume enqueued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionApproveResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"AI agent service is not configured.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/agent-sessions/{id}/stop":{"post":{"operationId":"stopAgentSession","description":"Stop (cancel) a running, queued, or halted ai-agent monitor session. Proxies to the ai-agent service, minting a fresh CLI session for the caller so the ai-agent's own auth applies. Idempotent — stopping an already-terminal session is a 200 no-op.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"stop","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Already terminal / no-op.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionStopResponse"}}}},"202":{"description":"Cancel accepted; session stopped.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionStopResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"AI agent service is not configured.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/list":{"post":{"operationId":"syncList","description":"List full deployment records for manager operational loops. This endpoint is intentionally separate from the public deployments list, which returns lightweight UI rows.","x-speakeasy-group":"sync","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncListRequest"}}}},"responses":{"200":{"description":"Full deployment records returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncListResponse"}}}},"400":{"description":"Bad request - invalid manager or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/context":{"post":{"operationId":"syncContext","description":"Get computed deployment state and configuration for a manager-side operation without acquiring the deployment reconciliation lock.","x-speakeasy-group":"sync","x-speakeasy-name-override":"context","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncContextRequest"}}}},"responses":{"200":{"description":"Computed deployment context returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncAcquireResponseDeployment"}}}},"404":{"description":"Deployment not found or not assigned to this manager.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Failed to build deployment context.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/acquire":{"post":{"operationId":"syncAcquire","description":"Acquire a batch of deployments for processing. Used by Manager to atomically lock deployments matching filters. Each deployment in the batch must be released after processing.","x-speakeasy-group":"sync","x-speakeasy-name-override":"acquire","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncAcquireRequest"}}}},"responses":{"200":{"description":"Deployments acquired successfully (empty arrays if none available). Failures indicate deployments that were locked but failed during context building - their locks have been released.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncAcquireResponse"}}}},"400":{"description":"Bad request - invalid manager or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/reconcile":{"post":{"operationId":"syncReconcile","description":"Reconcile deployment state. Push model requests that include a session verify lock ownership. Pull model state reports are accepted as authz-gated agent progress even when they carry an agent-sync session. Accepts full DeploymentState after step() execution.","x-speakeasy-group":"sync","x-speakeasy-name-override":"reconcile","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncReconcileRequest"}}}},"responses":{"200":{"description":"State reconciled successfully. If target is present, continue deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncReconcileResponse"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment locked (pull) or session mismatch (push).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/renew":{"post":{"operationId":"syncRenew","x-speakeasy-group":"sync","x-speakeasy-name-override":"renew","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncRenewRequest"}}}},"responses":{"200":{"description":"Renewal processed. Inspect `leases` for per-deployment outcomes; a lost lease is reported there rather than failing the whole batch.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"True when every requested deployment was renewed."},"leases":{"type":"array","items":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"renewed":{"type":"boolean","description":"False when this session no longer holds a live lease."},"leaseExpiresAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["deploymentId","renewed","leaseExpiresAt"]},"description":"Per-deployment renewal outcome."}},"required":["success","leases"]}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"The session no longer owns the deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/release":{"post":{"operationId":"syncRelease","description":"Release a deployment lock. Must be called after processing an acquired deployment, even if processing failed. This is critical to avoid deadlocks.","x-speakeasy-group":"sync","x-speakeasy-name-override":"release","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncReleaseRequest"}}}},"responses":{"200":{"description":"Lock released successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resources":{"get":{"operationId":"listInventory","x-speakeasy-group":"resources","x-speakeasy-name-override":"listInventory","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string"},"required":false,"name":"deploymentGroupId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"deploymentId","in":"query"}],"responses":{"200":{"description":"Unified managed and observed resource inventory rows.","content":{"application/json":{"schema":{"type":"object","properties":{"resources":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"resourceType":{"type":"string"},"resourceId":{"type":"string"},"name":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"deploymentCount":{"type":"integer"},"attentionCount":{"type":"integer"},"lastObservedAt":{"type":"string","format":"date-time"},"source":{"type":"string","enum":["managed"]},"deploymentId":{"type":"string"},"deploymentName":{"type":"string"}},"required":["resourceType","resourceId","name","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","deploymentCount","attentionCount","lastObservedAt","source","deploymentId","deploymentName"]},{"type":"object","properties":{"source":{"type":"string","enum":["observed"]},"deploymentId":{"type":"string"},"deploymentName":{"type":"string"},"deploymentGroupId":{"type":"string","nullable":true},"deploymentGroupName":{"type":"string","nullable":true},"resourceType":{"type":"string"},"resourceId":{"type":"string"},"name":{"type":"string"},"rawKind":{"type":"string"},"alienResourceId":{"type":"string","nullable":true},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"deploymentCount":{"type":"integer"},"attentionCount":{"type":"integer"},"lastObservedAt":{"type":"string","format":"date-time"}},"required":["source","deploymentId","deploymentName","deploymentGroupId","deploymentGroupName","resourceType","resourceId","name","rawKind","alienResourceId","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","deploymentCount","attentionCount","lastObservedAt"]}]}}},"required":["resources"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resources/{area}":{"get":{"operationId":"listResourceOverview","x-speakeasy-group":"resources","x-speakeasy-name-override":"listOverview","parameters":[{"schema":{"type":"string","enum":["container","worker","daemon"]},"required":true,"name":"area","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string"},"required":false,"name":"deploymentGroupId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"deploymentId","in":"query"}],"responses":{"200":{"description":"Compute resource overview rows from latest heartbeats.","content":{"application/json":{"schema":{"type":"object","properties":{"resources":{"type":"array","items":{"type":"object","properties":{"resourceType":{"type":"string"},"resourceId":{"type":"string"},"name":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"deploymentCount":{"type":"integer"},"attentionCount":{"type":"integer"},"lastObservedAt":{"type":"string","format":"date-time"}},"required":["resourceType","resourceId","name","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","deploymentCount","attentionCount","lastObservedAt"]}}},"required":["resources"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resources/{area}/{resourceId}/deployments":{"get":{"operationId":"listResourceDeployments","x-speakeasy-group":"resources","x-speakeasy-name-override":"listDeployments","parameters":[{"schema":{"type":"string","enum":["container","worker","daemon"]},"required":true,"name":"area","in":"path"},{"schema":{"type":"string"},"required":true,"name":"resourceId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string"},"required":false,"name":"deploymentGroupId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"deploymentId","in":"query"}],"responses":{"200":{"description":"Deployments where the resource is installed.","content":{"application/json":{"schema":{"type":"object","properties":{"resourceType":{"type":"string"},"resourceId":{"type":"string"},"deployments":{"type":"array","items":{"type":"object","properties":{"deploymentId":{"type":"string"},"deploymentName":{"type":"string"},"deploymentGroupId":{"type":"string","nullable":true},"deploymentGroupName":{"type":"string","nullable":true},"resourceType":{"type":"string"},"resourceId":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"observedAt":{"type":"string","format":"date-time"}},"required":["deploymentId","deploymentName","deploymentGroupId","deploymentGroupName","resourceType","resourceId","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","observedAt"]}}},"required":["resourceType","resourceId","deployments"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resources/{area}/deployments/{deploymentId}/{resourceId}":{"get":{"operationId":"getResourceDeploymentDetail","x-speakeasy-group":"resources","x-speakeasy-name-override":"getDeploymentDetail","parameters":[{"schema":{"type":"string","enum":["container","worker","daemon"]},"required":true,"name":"area","in":"path"},{"schema":{"type":"string"},"required":true,"name":"deploymentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"resourceId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"responses":{"200":{"description":"Latest heartbeat detail for one compute resource deployment.","content":{"application/json":{"schema":{"type":"object","properties":{"deployment":{"type":"object","properties":{"deploymentId":{"type":"string"},"deploymentName":{"type":"string"},"deploymentGroupId":{"type":"string","nullable":true},"deploymentGroupName":{"type":"string","nullable":true},"resourceType":{"type":"string"},"resourceId":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"observedAt":{"type":"string","format":"date-time"},"desiredImage":{"type":"string","nullable":true}},"required":["deploymentId","deploymentName","deploymentGroupId","deploymentGroupName","resourceType","resourceId","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","observedAt","desiredImage"]},"heartbeat":{"oneOf":[{"type":"object","properties":{"status":{"type":"string","enum":["available"]},"deploymentId":{"type":"string"},"resourceId":{"type":"string"},"resourceType":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"staleAt":{"type":"string","format":"date-time"},"platformStale":{"type":"boolean"},"heartbeat":{"type":"object","properties":{"backend":{"type":"string","enum":["aws","gcp","azure","kubernetes","local","managed","external","test"]},"controllerPlatform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"data":{"oneOf":[{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"blockPublicAcls":{"type":"boolean","nullable":true},"blockPublicPolicy":{"type":"boolean","nullable":true},"bucketAclPresent":{"type":"boolean","nullable":true},"bucketLocation":{"type":"string","nullable":true},"bucketPolicyPresent":{"type":"boolean","nullable":true},"encryptionConfigPresent":{"type":"boolean"},"encryptionEnabled":{"type":"boolean","nullable":true},"ignorePublicAcls":{"type":"boolean","nullable":true},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"publicAccessBlockPresent":{"type":"boolean"},"region":{"type":"string","nullable":true},"restrictPublicBuckets":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"versioningEnabled":{"type":"boolean","nullable":true},"versioningStatus":{"type":"string","nullable":true}},"required":["encryptionConfigPresent","lifecyclePresent","name","publicAccessBlockPresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsS3"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"bucketId":{"type":"string","nullable":true},"defaultKmsKeyName":{"type":"string","nullable":true},"encryptionConfigPresent":{"type":"boolean"},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":"integer","nullable":true,"minimum":0},"location":{"type":"string","nullable":true},"locationType":{"type":"string","nullable":true},"name":{"type":"string"},"publicAccessPrevention":{"type":"string","nullable":true},"retentionPeriod":{"type":"string","nullable":true},"retentionPolicyEffectiveTime":{"type":"string","nullable":true},"retentionPolicyIsLocked":{"type":"boolean","nullable":true},"softDeleteEffectiveTime":{"type":"string","nullable":true},"softDeleteRetentionDurationSeconds":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"storageClass":{"type":"string","nullable":true},"uniformBucketLevelAccessEnabled":{"type":"boolean","nullable":true},"uniformBucketLevelAccessLockedTime":{"type":"string","nullable":true},"versioningEnabled":{"type":"boolean","nullable":true}},"required":["encryptionConfigPresent","lifecyclePresent","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudStorage"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessTier":{"type":"string","nullable":true},"accountKind":{"type":"string","nullable":true},"allowBlobPublicAccess":{"type":"boolean","nullable":true},"blobDeleteRetentionDays":{"type":"integer","nullable":true,"minimum":0},"blobDeleteRetentionEnabled":{"type":"boolean","nullable":true},"blobEncryptionEnabled":{"type":"boolean","nullable":true},"blobVersioningEnabled":{"type":"boolean","nullable":true},"changeFeedEnabled":{"type":"boolean","nullable":true},"changeFeedRetentionDays":{"type":"integer","nullable":true,"minimum":0},"containerDeleteRetentionDays":{"type":"integer","nullable":true,"minimum":0},"containerDeleteRetentionEnabled":{"type":"boolean","nullable":true},"containerPublicAccess":{"type":"string","nullable":true},"encryptionKeySource":{"type":"string","nullable":true},"fileEncryptionEnabled":{"type":"boolean","nullable":true},"location":{"type":"string","nullable":true},"name":{"type":"string"},"primaryLocation":{"type":"string","nullable":true},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"queueEncryptionEnabled":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"secondaryLocation":{"type":"string","nullable":true},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"statusOfPrimary":{"type":"string","nullable":true},"statusOfSecondary":{"type":"string","nullable":true},"storageAccountName":{"type":"string","nullable":true},"tableEncryptionEnabled":{"type":"boolean","nullable":true}},"required":["name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureBlob"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"isDirectory":{"type":"boolean","nullable":true},"modifiedAt":{"type":"string","nullable":true,"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["path","pathExists","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["storage"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"codeSha256":{"type":"string","nullable":true},"functionName":{"type":"string"},"functionUrlAuthType":{"type":"string","nullable":true},"functionUrlCorsPresent":{"type":"boolean"},"lastModified":{"type":"string","nullable":true},"lastUpdateStatus":{"type":"string","nullable":true},"lastUpdateStatusReason":{"type":"string","nullable":true},"lastUpdateStatusReasonCode":{"type":"string","nullable":true},"layerCount":{"type":"integer","minimum":0},"memorySizeMb":{"type":"integer","nullable":true},"packageType":{"type":"string","nullable":true},"revisionId":{"type":"string","nullable":true},"runtime":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"stateReason":{"type":"string","nullable":true},"stateReasonCode":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"timeoutSeconds":{"type":"integer","nullable":true},"triggerCount":{"type":"integer","minimum":0},"version":{"type":"string","nullable":true}},"required":["functionName","functionUrlCorsPresent","layerCount","status","triggerCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsLambda"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"containerImage":{"type":"string","nullable":true},"cpuLimit":{"type":"string","nullable":true},"generation":{"type":"integer","nullable":true},"latestCreatedRevision":{"type":"string","nullable":true},"latestReadyRevision":{"type":"string","nullable":true},"maxInstanceCount":{"type":"integer","nullable":true},"memoryLimit":{"type":"string","nullable":true},"minInstanceCount":{"type":"integer","nullable":true},"observedGeneration":{"type":"integer","nullable":true},"region":{"type":"string","nullable":true},"service":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"trafficCount":{"type":"integer","minimum":0},"uri":{"type":"string","nullable":true},"urls":{"type":"array","items":{"type":"string"}}},"required":["service","status","trafficCount","urls"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudRun"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"appName":{"type":"string"},"cpu":{"type":"number","nullable":true},"environmentName":{"type":"string","nullable":true},"ingressFqdn":{"type":"string","nullable":true},"maxReplicas":{"type":"integer","nullable":true},"memory":{"type":"string","nullable":true},"minReplicas":{"type":"integer","nullable":true},"provisioningState":{"type":"string","nullable":true},"revision":{"type":"string","nullable":true},"runningStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["appName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerApps"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"triggerCount":{"type":"integer","minimum":0},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"]}},"required":["events","name","namespace","pods","replicas","status","triggerCount","workloadKind"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"imagePathPresent":{"type":"boolean"},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pid":{"type":"integer","nullable":true,"minimum":0},"process":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"readinessProbeOk":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"triggerCount":{"type":"integer","minimum":0}},"required":["commandSupported","events","imagePathPresent","status","triggerCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["worker"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"attentionCount":{"type":"integer","minimum":0},"containerId":{"type":"string"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"image":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"observedImage":{"type":"string","nullable":true},"replicaUnits":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"schedulingMode":{"type":"string","enum":["replicated","stateful","daemon"]},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["attentionCount","containerId","events","replicaUnits","replicas","schedulingMode","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["horizonPlatform"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"]}},"required":["events","name","namespace","pods","replicas","status","workloadKind"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"bindMountCount":{"type":"integer","minimum":0},"containerId":{"type":"string","nullable":true},"containerUnit":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"image":{"type":"string","nullable":true},"localUrl":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string","nullable":true},"portCount":{"type":"integer","minimum":0},"restartCount":{"type":"integer","nullable":true,"minimum":0},"runtimeReachable":{"type":"boolean"},"runtimeStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["bindMountCount","events","portCount","runtimeReachable","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["container"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aws"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcp"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azure"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["machines"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]}},"required":["commandSupported","events","name","namespace","pods","replicas","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"daemonInstance":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"daemonName":{"type":"string"},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"exitReason":{"type":"string","nullable":true},"imagePathPresent":{"type":"boolean"},"pid":{"type":"integer","nullable":true,"minimum":0},"restartCount":{"type":"integer","nullable":true,"minimum":0},"runtimeId":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["commandSupported","events","imagePathPresent","runtimeId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["daemon"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aws"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcp"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azure"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"machines":{"type":"array","items":{"type":"object","properties":{"capacityGroup":{"type":"string"},"cpuCores":{"type":"number","nullable":true},"drainBlockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainForce":{"type":"boolean"},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"horizondVersion":{"type":"string","nullable":true},"lastHeartbeat":{"type":"string"},"machineId":{"type":"string"},"memoryBytes":{"type":"integer","nullable":true},"overlayIp":{"type":"string","nullable":true},"publicIp":{"type":"string","nullable":true},"replicaCount":{"type":"integer"},"status":{"type":"string"},"zone":{"type":"string"}},"required":["capacityGroup","drainForce","lastHeartbeat","machineId","replicaCount","status","zone"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","machines","name","nodes","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["machines"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"dockerApiVersion":{"type":"string","nullable":true},"dockerArch":{"type":"string","nullable":true},"dockerAvailable":{"type":"boolean"},"dockerOs":{"type":"string","nullable":true},"dockerVersion":{"type":"string","nullable":true},"hostIdentifier":{"type":"string","nullable":true},"name":{"type":"string"},"networkAvailable":{"type":"boolean"},"networkName":{"type":"string","nullable":true},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"runningContainers":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"trackedContainers":{"type":"integer","nullable":true,"minimum":0}},"required":["dockerAvailable","name","networkAvailable","nodes","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["compute-cluster"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string","nullable":true},"nodeCounts":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"nodeStatuses":{"type":"array","items":{"type":"object","properties":{"allocatable":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pods":{"type":"integer","nullable":true,"minimum":0}}},"capacity":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pods":{"type":"integer","nullable":true,"minimum":0}}},"conditions":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"containerRuntimeVersion":{"type":"string","nullable":true},"kubeletVersion":{"type":"string","nullable":true},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"name":{"type":"string"},"ready":{"type":"boolean"},"roles":{"type":"array","items":{"type":"string"}},"uid":{"type":"string","nullable":true},"usage":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}}},{"nullable":true}]}},"required":["allocatable","capacity","labels","name","ready","roles"]}},"podCounts":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string","nullable":true}},"required":["events","name","nodeCounts","podCounts","status"]},"resourceType":{"type":"string","enum":["kubernetes-cluster"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"approximateCounts":{"type":"boolean"},"approximateDelayedMessages":{"type":"integer","nullable":true,"minimum":0},"approximateInFlightMessages":{"type":"integer","nullable":true,"minimum":0},"approximateVisibleMessages":{"type":"integer","nullable":true,"minimum":0},"contentBasedDeduplication":{"type":"boolean","nullable":true},"deduplicationScope":{"type":"string","nullable":true},"delaySeconds":{"type":"integer","nullable":true,"minimum":0},"fifoQueue":{"type":"boolean","nullable":true},"fifoThroughputLimit":{"type":"string","nullable":true},"kmsDataKeyReusePeriodSeconds":{"type":"integer","nullable":true,"minimum":0},"kmsMasterKeyId":{"type":"string","nullable":true},"maximumMessageSize":{"type":"integer","nullable":true,"minimum":0},"messageRetentionPeriodSeconds":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"queueArn":{"type":"string","nullable":true},"queueUrl":{"type":"string","nullable":true},"receiveMessageWaitTimeSeconds":{"type":"integer","nullable":true,"minimum":0},"redriveAllowPolicy":{"type":"string","nullable":true},"redrivePolicy":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"sqsManagedSseEnabled":{"type":"boolean","nullable":true},"sseEnabled":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"visibilityTimeoutSeconds":{"type":"integer","nullable":true,"minimum":0}},"required":["approximateCounts","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsSqs"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"kmsKeyName":{"type":"string","nullable":true},"messageStorageAllowedPersistenceRegions":{"type":"array","items":{"type":"string"}},"messageStorageEnforceInTransit":{"type":"boolean","nullable":true},"projectId":{"type":"string","nullable":true},"schemaEncoding":{"type":"string","nullable":true},"schemaFirstRevisionId":{"type":"string","nullable":true},"schemaLastRevisionId":{"type":"string","nullable":true},"schemaName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"subscriptionAckDeadlineSeconds":{"type":"integer","nullable":true,"minimum":0},"subscriptionDeadLetterMaxDeliveryAttempts":{"type":"integer","nullable":true,"minimum":0},"subscriptionDeadLetterTopic":{"type":"string","nullable":true},"subscriptionDetached":{"type":"boolean","nullable":true},"subscriptionEnableMessageOrdering":{"type":"boolean","nullable":true},"subscriptionFilter":{"type":"string","nullable":true},"subscriptionFullName":{"type":"string","nullable":true},"subscriptionLabels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"subscriptionMessageRetentionDuration":{"type":"string","nullable":true},"subscriptionName":{"type":"string","nullable":true},"subscriptionPushAttributes":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"subscriptionPushConfigPresent":{"type":"boolean","nullable":true},"subscriptionPushEndpoint":{"type":"string","nullable":true},"subscriptionPushNoWrapperWriteMetadata":{"type":"boolean","nullable":true},"subscriptionPushOidcAudience":{"type":"string","nullable":true},"subscriptionPushOidcServiceAccountEmail":{"type":"string","nullable":true},"subscriptionPushPubsubWrapperWriteMetadata":{"type":"boolean","nullable":true},"subscriptionRetainAckedMessages":{"type":"boolean","nullable":true},"subscriptionState":{"type":"string","nullable":true},"topicFullName":{"type":"string","nullable":true},"topicLabels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"topicMessageRetentionDuration":{"type":"string","nullable":true},"topicName":{"type":"string"},"topicState":{"type":"string","nullable":true}},"required":["messageStorageAllowedPersistenceRegions","status","subscriptionLabels","subscriptionPushAttributes","topicLabels","topicName"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpPubSub"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessedAt":{"type":"string","nullable":true},"activeMessageCount":{"type":"integer","nullable":true,"minimum":0},"autoDeleteOnIdle":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"deadLetterMessageCount":{"type":"integer","nullable":true,"minimum":0},"deadLetteringOnMessageExpiration":{"type":"boolean","nullable":true},"defaultMessageTimeToLive":{"type":"string","nullable":true},"duplicateDetectionHistoryTimeWindow":{"type":"string","nullable":true},"enableBatchedOperations":{"type":"boolean","nullable":true},"enableExpress":{"type":"boolean","nullable":true},"enablePartitioning":{"type":"boolean","nullable":true},"endpoint":{"type":"string","nullable":true},"forwardDeadLetteredMessagesTo":{"type":"string","nullable":true},"forwardTo":{"type":"string","nullable":true},"lockDuration":{"type":"string","nullable":true},"maxDeliveryCount":{"type":"integer","nullable":true,"minimum":0},"maxMessageSizeInKilobytes":{"type":"integer","nullable":true,"minimum":0},"maxSizeInMegabytes":{"type":"integer","nullable":true,"minimum":0},"messageCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"namespaceName":{"type":"string"},"queueStatus":{"type":"string","nullable":true},"requiresDuplicateDetection":{"type":"boolean","nullable":true},"requiresSession":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"scheduledMessageCount":{"type":"integer","nullable":true,"minimum":0},"sizeInBytes":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"transferDeadLetterMessageCount":{"type":"integer","nullable":true,"minimum":0},"transferMessageCount":{"type":"integer","nullable":true,"minimum":0},"updatedAt":{"type":"string","nullable":true}},"required":["name","namespaceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureServiceBus"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"name":{"type":"string"},"path":{"type":"string","nullable":true},"serviceStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["queue"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"billingMode":{"type":"string","nullable":true},"deletionProtectionEnabled":{"type":"boolean","nullable":true},"globalSecondaryIndexCount":{"type":"integer","nullable":true,"minimum":0},"itemCount":{"type":"integer","nullable":true,"minimum":0},"keySchema":{"type":"array","items":{"type":"object","properties":{"attributeName":{"type":"string"},"keyType":{"type":"string"}},"required":["attributeName","keyType"]}},"localSecondaryIndexCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"region":{"type":"string","nullable":true},"replicaCount":{"type":"integer","nullable":true,"minimum":0},"restoreInProgress":{"type":"boolean","nullable":true},"sseStatus":{"type":"string","nullable":true},"sseType":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"streamEnabled":{"type":"boolean","nullable":true},"streamViewType":{"type":"string","nullable":true},"tableArn":{"type":"string","nullable":true},"tableClass":{"type":"string","nullable":true},"tableSizeBytes":{"type":"integer","nullable":true,"minimum":0},"tableStatus":{"type":"string","nullable":true},"ttlAttributeName":{"type":"string","nullable":true},"ttlStatus":{"type":"string","nullable":true}},"required":["keySchema","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsDynamoDb"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"appEngineIntegrationMode":{"type":"string","nullable":true},"cmekEnabled":{"type":"boolean"},"concurrencyMode":{"type":"string","nullable":true},"createTime":{"type":"string","nullable":true},"databaseEdition":{"type":"string","nullable":true},"databaseName":{"type":"string"},"databaseType":{"type":"string","nullable":true},"deleteProtectionState":{"type":"string","nullable":true},"deleteTime":{"type":"string","nullable":true},"earliestVersionTime":{"type":"string","nullable":true},"endpoint":{"type":"string","nullable":true},"locationId":{"type":"string","nullable":true},"pointInTimeRecoveryEnablement":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"sourceInfoPresent":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updateTime":{"type":"string","nullable":true},"versionRetentionPeriod":{"type":"string","nullable":true}},"required":["cmekEnabled","databaseName","sourceInfoPresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpFirestore"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"signedIdentifierCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"storageAccountKind":{"type":"string","nullable":true},"storageAccountLocation":{"type":"string","nullable":true},"storageAccountName":{"type":"string"},"storageAccountPrimaryStatus":{"type":"string","nullable":true},"storageAccountProvisioningState":{"type":"string","nullable":true},"storageAccountResourceId":{"type":"string","nullable":true},"tableExists":{"type":"boolean"},"tableName":{"type":"string"}},"required":["status","storageAccountName","tableExists","tableName"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureTable"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cloudMetadataSupported":{"type":"boolean"},"isDirectory":{"type":"boolean","nullable":true},"name":{"type":"string"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["cloudMetadataSupported","name","path","pathExists","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["kv"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"clusterIdentifier":{"type":"string"},"endpoint":{"type":"string","nullable":true},"engineVersion":{"type":"string","nullable":true},"neverPauses":{"type":"boolean","description":"True when a `minCapacity: 0` instance has not reached 0 ACU over the observation\nwindow — it is silently paying always-on prices (auto-pause verification)."},"serverlessCapacity":{"type":"number","nullable":true,"description":"Latest sampled `ServerlessDatabaseCapacity` (ACU)."},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["clusterIdentifier","neverPauses","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aurora"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"databaseVersion":{"type":"string","nullable":true},"instanceName":{"type":"string"},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["instanceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["cloudSql"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"serverName":{"type":"string"},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string","nullable":true}},"required":["serverName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["flexibleServer"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"name":{"type":"string"},"port":{"type":"integer","nullable":true,"minimum":0},"processRunning":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string"}},"required":["name","processRunning","status","version"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["postgres"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string"},"hasMoreParameters":{"type":"boolean","nullable":true},"latestModifiedAt":{"type":"string","nullable":true,"format":"date-time"},"parameterMetadataSampled":{"type":"boolean"},"prefix":{"type":"string"},"region":{"type":"string"},"sampledAdvancedTierCount":{"type":"integer","nullable":true,"minimum":0},"sampledKmsKeyMetadataPresentCount":{"type":"integer","nullable":true,"minimum":0},"sampledParameterCount":{"type":"integer","nullable":true,"minimum":0},"sampledSecureStringCount":{"type":"integer","nullable":true,"minimum":0},"sampledStringCount":{"type":"integer","nullable":true,"minimum":0},"sampledStringListCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["accountId","parameterMetadataSampled","prefix","region","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsParameterStore"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string"},"prefix":{"type":"string"},"projectId":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["location","prefix","projectId","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpSecretManager"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessPolicyCount":{"type":"integer","minimum":0},"location":{"type":"string","nullable":true},"name":{"type":"string"},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string"},"purgeProtectionEnabled":{"type":"boolean","nullable":true},"rbacAuthorizationEnabled":{"type":"boolean"},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"secretMetadataListed":{"type":"boolean"},"skuFamily":{"type":"string","nullable":true},"skuName":{"type":"string","nullable":true},"softDeleteEnabled":{"type":"boolean"},"softDeleteRetentionDays":{"type":"integer"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vaultUri":{"type":"string","nullable":true}},"required":["accessPolicyCount","name","privateEndpointConnectionCount","publicNetworkAccess","rbacAuthorizationEnabled","secretMetadataListed","softDeleteEnabled","softDeleteRetentionDays","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureKeyVault"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"type":"string"},"prefix":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["namespace","prefix","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetesSecret"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"isDirectory":{"type":"boolean","nullable":true},"modifiedAt":{"type":"string","nullable":true,"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":"boolean","nullable":true},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["path","pathExists","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["vault"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"assumeRolePolicyPresent":{"type":"boolean"},"attachedPolicyCount":{"type":"integer","minimum":0},"attachedPolicyNames":{"type":"array","items":{"type":"string"}},"createDate":{"type":"string"},"description":{"type":"string","nullable":true},"inlinePolicyCount":{"type":"integer","minimum":0},"inlinePolicyNames":{"type":"array","items":{"type":"string"}},"lastUsedDate":{"type":"string","nullable":true},"lastUsedRegion":{"type":"string","nullable":true},"managedTagCount":{"type":"integer","minimum":0},"maxSessionDuration":{"type":"integer","nullable":true},"path":{"type":"string"},"permissionsBoundaryArn":{"type":"string","nullable":true},"permissionsBoundaryType":{"type":"string","nullable":true},"roleArn":{"type":"string"},"roleId":{"type":"string"},"roleName":{"type":"string"},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tagCount":{"type":"integer","minimum":0}},"required":["assumeRolePolicyPresent","attachedPolicyCount","attachedPolicyNames","createDate","inlinePolicyCount","inlinePolicyNames","managedTagCount","path","roleArn","roleId","roleName","stackPermissionsApplied","status","tagCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsIamRole"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true},"disabled":{"type":"boolean","nullable":true},"displayName":{"type":"string","nullable":true},"email":{"type":"string"},"etag":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"oauth2ClientId":{"type":"string","nullable":true},"projectBindingCount":{"type":"integer","minimum":0},"projectId":{"type":"string","nullable":true},"projectRoles":{"type":"array","items":{"type":"string"}},"serviceAccountBindingCount":{"type":"integer","minimum":0},"serviceAccountRoles":{"type":"array","items":{"type":"string"}},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"uniqueId":{"type":"string","nullable":true}},"required":["email","projectBindingCount","projectRoles","serviceAccountBindingCount","serviceAccountRoles","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"clientId":{"type":"string","nullable":true},"customRoleDefinitionCount":{"type":"integer","minimum":0},"customRoleDefinitionIds":{"type":"array","items":{"type":"string"}},"isolationScope":{"type":"string","nullable":true},"location":{"type":"string"},"managedTagCount":{"type":"integer","minimum":0},"name":{"type":"string"},"principalId":{"type":"string","nullable":true},"resourceGroup":{"type":"string"},"resourceId":{"type":"string"},"roleAssignmentCount":{"type":"integer","minimum":0},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tenantId":{"type":"string","nullable":true},"type":{"type":"string","nullable":true}},"required":["customRoleDefinitionCount","customRoleDefinitionIds","location","managedTagCount","name","resourceGroup","resourceId","roleAssignmentCount","roleAssignmentIds","stackPermissionsApplied","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"configured":{"type":"boolean"},"identity":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["configured","identity","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["service-account"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"availabilityZones":{"type":"array","items":{"type":"string"}},"cidrBlock":{"type":"string","nullable":true},"internetGatewayId":{"type":"string","nullable":true},"isByoVpc":{"type":"boolean"},"natGatewayId":{"type":"string","nullable":true},"privateSubnetIds":{"type":"array","items":{"type":"string"}},"publicSubnetIds":{"type":"array","items":{"type":"string"}},"routeTableCount":{"type":"integer","minimum":0},"securityGroupId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vpcId":{"type":"string","nullable":true},"vpcState":{"type":"string","nullable":true}},"required":["availabilityZones","isByoVpc","privateSubnetIds","publicSubnetIds","routeTableCount","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsVpc"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cidrBlock":{"type":"string","nullable":true},"cloudNatName":{"type":"string","nullable":true},"firewallName":{"type":"string","nullable":true},"isByoVpc":{"type":"boolean"},"networkName":{"type":"string","nullable":true},"networkSelfLink":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"routerName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"subnetworkName":{"type":"string","nullable":true},"subnetworkSelfLink":{"type":"string","nullable":true}},"required":["isByoVpc","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpVpc"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"applicationGatewaySubnetName":{"type":"string","nullable":true},"cidrBlock":{"type":"string","nullable":true},"isByoVnet":{"type":"boolean"},"lastByoVnetVerificationErrorCode":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"natGatewayId":{"type":"string","nullable":true},"nsgId":{"type":"string","nullable":true},"privateEndpointSubnetName":{"type":"string","nullable":true},"privateSubnetName":{"type":"string","nullable":true},"publicIpId":{"type":"string","nullable":true},"publicSubnetName":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vnetName":{"type":"string","nullable":true},"vnetResourceId":{"type":"string","nullable":true}},"required":["isByoVnet","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureVnet"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["network"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"managementPermissionsApplied":{"type":"boolean"},"roleArn":{"type":"string","nullable":true},"roleName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["managementPermissionsApplied","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsIamRole"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"impersonationGranted":{"type":"boolean"},"roleBound":{"type":"boolean"},"serviceAccountEmail":{"type":"string","nullable":true},"serviceAccountUniqueId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["impersonationGranted","roleBound","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"ficName":{"type":"string","nullable":true},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"roleDefinitionId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tenantId":{"type":"string","nullable":true},"uamiClientId":{"type":"string","nullable":true},"uamiPrincipalId":{"type":"string","nullable":true},"uamiResourceId":{"type":"string","nullable":true}},"required":["roleAssignmentIds","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["remote-stack-management"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"pullRoleArn":{"type":"string","nullable":true},"pushRoleArn":{"type":"string","nullable":true},"region":{"type":"string"},"registryId":{"type":"string"},"registryUri":{"type":"string"},"repositories":{"type":"array","items":{"type":"object","properties":{"createdAt":{"type":"number"},"encryptionType":{"type":"string","nullable":true},"imageTagMutability":{"type":"string","nullable":true},"kmsKeyPresent":{"type":"boolean"},"registryId":{"type":"string"},"repositoryArn":{"type":"string"},"repositoryName":{"type":"string"},"repositoryUri":{"type":"string"},"scanOnPush":{"type":"boolean","nullable":true}},"required":["createdAt","kmsKeyPresent","registryId","repositoryArn","repositoryName","repositoryUri"]}},"repositoriesTruncated":{"type":"boolean"},"repositoryCount":{"type":"integer","minimum":0},"repositoryPrefix":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["region","registryId","registryUri","repositories","repositoriesTruncated","repositoryCount","repositoryPrefix","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsEcr"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cleanupPolicyCount":{"type":"integer","minimum":0},"cleanupPolicyDryRun":{"type":"boolean","nullable":true},"createTime":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"format":{"type":"string","nullable":true},"iamBindingCount":{"type":"integer","minimum":0},"iamPolicyEtagPresent":{"type":"boolean"},"iamRoles":{"type":"array","items":{"type":"string"}},"kmsKeyNamePresent":{"type":"boolean"},"labelCount":{"type":"integer","minimum":0},"location":{"type":"string"},"mode":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"projectId":{"type":"string"},"pullServiceAccountEmail":{"type":"string","nullable":true},"pushServiceAccountEmail":{"type":"string","nullable":true},"repositoryId":{"type":"string"},"satisfiesPzs":{"type":"boolean","nullable":true},"sizeBytes":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updateTime":{"type":"string","nullable":true}},"required":["cleanupPolicyCount","iamBindingCount","iamPolicyEtagPresent","iamRoles","kmsKeyNamePresent","labelCount","location","projectId","repositoryId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpArtifactRegistry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"adminUserEnabled":{"type":"boolean"},"anonymousPullEnabled":{"type":"boolean"},"creationDate":{"type":"string","nullable":true},"dataEndpointEnabled":{"type":"boolean","nullable":true},"dataEndpointHostNames":{"type":"array","items":{"type":"string"}},"encryptionKeyIdentifierPresent":{"type":"boolean"},"encryptionKeyVaultUriPresent":{"type":"boolean"},"encryptionStatus":{"type":"string","nullable":true},"ipRuleCount":{"type":"integer","minimum":0},"location":{"type":"string"},"loginServer":{"type":"string","nullable":true},"managedTagCount":{"type":"integer","minimum":0},"name":{"type":"string"},"networkRuleBypassOptions":{"type":"string"},"networkRuleDefaultAction":{"type":"string","nullable":true},"policiesPresent":{"type":"boolean"},"policyCount":{"type":"integer","minimum":0},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string"},"resourceGroup":{"type":"string"},"resourceId":{"type":"string","nullable":true},"skuName":{"type":"string"},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"type":{"type":"string","nullable":true},"zoneRedundancy":{"type":"string"}},"required":["adminUserEnabled","anonymousPullEnabled","dataEndpointHostNames","encryptionKeyIdentifierPresent","encryptionKeyVaultUriPresent","ipRuleCount","location","managedTagCount","name","networkRuleBypassOptions","policiesPresent","policyCount","privateEndpointConnectionCount","publicNetworkAccess","resourceGroup","skuName","status","zoneRedundancy"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerRegistry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"reachable":{"type":"boolean"},"registryUrl":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["reachable","registryUrl","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["artifact-registry"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"artifactsEncryptionDisabled":{"type":"boolean","nullable":true},"artifactsType":{"type":"string","nullable":true},"cloudWatchLogsStatus":{"type":"string","nullable":true},"computeType":{"type":"string","nullable":true},"created":{"type":"number","nullable":true},"description":{"type":"string","nullable":true},"encryptionKeyPresent":{"type":"boolean"},"environmentImage":{"type":"string","nullable":true},"environmentType":{"type":"string","nullable":true},"environmentVariableCount":{"type":"integer","minimum":0},"imagePullCredentialsType":{"type":"string","nullable":true},"lastModified":{"type":"number","nullable":true},"privilegedMode":{"type":"boolean","nullable":true},"projectArn":{"type":"string","nullable":true},"projectName":{"type":"string"},"queuedTimeoutInMinutes":{"type":"integer","nullable":true},"s3LogsStatus":{"type":"string","nullable":true},"serviceRolePresent":{"type":"boolean"},"sourceType":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"timeoutInMinutes":{"type":"integer","nullable":true}},"required":["encryptionKeyPresent","environmentVariableCount","projectName","serviceRolePresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsCodeBuild"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"buildConfigId":{"type":"string"},"environmentVariableCount":{"type":"integer","minimum":0},"location":{"type":"string"},"projectId":{"type":"string"},"serviceAccount":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["buildConfigId","environmentVariableCount","location","projectId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudBuild"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"environmentVariableCount":{"type":"integer","minimum":0},"managedEnvironmentId":{"type":"string"},"managedIdentityId":{"type":"string","nullable":true},"resourceGroupName":{"type":"string"},"resourcePrefix":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["environmentVariableCount","managedEnvironmentId","resourceGroupName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerApps"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"active":{"type":"integer","nullable":true},"completionTime":{"type":"string","nullable":true,"format":"date-time"},"conditionCount":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"failed":{"type":"integer","nullable":true},"imageDigest":{"type":"string","nullable":true},"jobName":{"type":"string"},"namespace":{"type":"string"},"startTime":{"type":"string","nullable":true,"format":"date-time"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"succeeded":{"type":"integer","nullable":true}},"required":["conditionCount","events","jobName","namespace","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetesJob"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["build"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"enabled":{"type":"boolean"},"lastOperationName":{"type":"string","nullable":true},"projectId":{"type":"string"},"serviceName":{"type":"string"},"serviceResourceName":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"title":{"type":"string","nullable":true}},"required":["enabled","projectId","serviceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceUsage"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"type":"string"},"providerId":{"type":"string","nullable":true},"registered":{"type":"boolean"},"registrationPolicy":{"type":"string","nullable":true},"registrationState":{"type":"string","nullable":true},"resourceTypeCount":{"type":"integer","minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["namespace","registered","resourceTypeCount","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureResourceProvider"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["service_activation"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"location":{"type":"string","nullable":true},"managedTags":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"name":{"type":"string"},"provisioningState":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["managedTags","name","status"]},"resourceType":{"type":"string","enum":["azure_resource_group"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"allowBlobPublicAccess":{"type":"boolean","nullable":true},"allowSharedKeyAccess":{"type":"boolean","nullable":true},"encryptionKeySource":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"minimumTlsVersion":{"type":"string","nullable":true},"name":{"type":"string"},"networkBypass":{"type":"string","nullable":true},"networkDefaultAction":{"type":"string","nullable":true},"networkIpRuleCount":{"type":"integer","nullable":true,"minimum":0},"networkResourceAccessRuleCount":{"type":"integer","nullable":true,"minimum":0},"networkVirtualNetworkRuleCount":{"type":"integer","nullable":true,"minimum":0},"primaryEndpoints":{"type":"object","properties":{"blob":{"type":"string","nullable":true},"dfs":{"type":"string","nullable":true},"file":{"type":"string","nullable":true},"queue":{"type":"string","nullable":true},"table":{"type":"string","nullable":true},"web":{"type":"string","nullable":true}}},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"requireInfrastructureEncryption":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"secondaryEndpoints":{"type":"object","properties":{"blob":{"type":"string","nullable":true},"dfs":{"type":"string","nullable":true},"file":{"type":"string","nullable":true},"queue":{"type":"string","nullable":true},"table":{"type":"string","nullable":true},"web":{"type":"string","nullable":true}}},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"supportsHttpsTrafficOnly":{"type":"boolean","nullable":true}},"required":["name","primaryEndpoints","secondaryEndpoints","status"]},"resourceType":{"type":"string","enum":["azure_storage_account"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"customDomainVerificationId":{"type":"string","nullable":true},"defaultDomain":{"type":"string","nullable":true},"eventStreamEndpoint":{"type":"string","nullable":true},"infrastructureResourceGroup":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"name":{"type":"string"},"provisioningState":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"staticIp":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workloadProfileCount":{"type":"integer","minimum":0},"workloadProfiles":{"type":"array","items":{"type":"object","properties":{"maximumCount":{"type":"integer","nullable":true},"minimumCount":{"type":"integer","nullable":true},"name":{"type":"string"},"workloadProfileType":{"type":"string"}},"required":["name","workloadProfileType"]}},"zoneRedundant":{"type":"boolean","nullable":true}},"required":["name","status","workloadProfileCount","workloadProfiles"]},"resourceType":{"type":"string","enum":["azure_container_apps_environment"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"createdAt":{"type":"string","nullable":true},"disableLocalAuth":{"type":"boolean","nullable":true},"location":{"type":"string","nullable":true},"metricId":{"type":"string","nullable":true},"minimumTlsVersion":{"type":"string","nullable":true},"name":{"type":"string"},"namespaceStatus":{"type":"string","nullable":true},"premiumMessagingPartitions":{"type":"integer","nullable":true},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"serviceBusEndpoint":{"type":"string","nullable":true},"skuCapacity":{"type":"integer","nullable":true},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updatedAt":{"type":"string","nullable":true},"zoneRedundant":{"type":"boolean","nullable":true}},"required":["name","privateEndpointConnectionCount","status"]},"resourceType":{"type":"string","enum":["azure_service_bus_namespace"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"region":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["region","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsBedrock"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string"},"project":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["location","project","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpVertex"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"type":"string"},"endpoint":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["accountName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureFoundry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"provider":{"type":"string","description":"The BYO-key provider serving this binding (e.g. \"openai\"). Used on the Local\nplatform, where the app brings its own provider key instead of an ambient cloud."},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["provider","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["external"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["ai"]}},"required":["data","resourceType"]}]},"deploymentId":{"type":"string","nullable":true},"observedAt":{"type":"string","format":"date-time"},"raw":{"type":"array","items":{"type":"object","properties":{"body":{"type":"string"},"collectedAt":{"type":"string","format":"date-time"},"format":{"type":"string","enum":["json","yaml","text"]},"source":{"type":"string"},"truncated":{"type":"boolean"}},"required":["body","collectedAt","format","source","truncated"]}},"resourceId":{"type":"string","description":"Alien resource id, such as the `alien.Container` or `alien.Storage`\nresource id from the stack."},"resourceType":{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior."}},"required":["backend","controllerPlatform","data","observedAt","raw","resourceId","resourceType"]},"raw":{"type":"array","items":{"nullable":true}}},"required":["status","deploymentId","resourceId","resourceType","backend","controllerPlatform","observedAt","staleAt","platformStale","heartbeat","raw"]},{"type":"object","properties":{"status":{"type":"string","enum":["missing"]},"deploymentId":{"type":"string"},"resourceId":{"type":"string"},"resourceType":{"type":"string"}},"required":["status","deploymentId","resourceId","resourceType"]}]}},"required":["deployment","heartbeat"]}}}},"404":{"description":"Deployment or resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resolve":{"get":{"operationId":"resolve","tags":["resolve"],"summary":"Resolve manager for a project and platform","description":"Returns the manager URL for a given project and platform. The project can be provided as a query parameter, or derived from the token's scope (project-scoped, deployment-group-scoped, or deployment-scoped tokens carry an implicit project). This is the single entry point for all CLI tools to discover which manager to talk to.","x-speakeasy-group":"resolve","x-speakeasy-name-override":"resolve","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform to resolve the manager for"},"required":true,"description":"Target platform to resolve the manager for","name":"platform","in":"query"},{"schema":{"type":"string","maxLength":100,"description":"Project ID or name. Required for user and workspace-scoped tokens. Optional for project/deployment-group/deployment-scoped tokens (derived from token scope)."},"required":false,"description":"Project ID or name. Required for user and workspace-scoped tokens. Optional for project/deployment-group/deployment-scoped tokens (derived from token scope).","name":"project","in":"query"}],"responses":{"200":{"description":"Manager resolved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveResponse"}}}},"400":{"description":"Missing required project parameter for this token type.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project not found or no manager available for platform.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"Manager not ready yet (no URL reported). Retry after a delay.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/cloud-regions":{"get":{"operationId":"getCloudRegions","description":"Get cloud regions supported by this Alien environment.","x-speakeasy-group":"cloudRegions","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Supported cloud regions retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloudRegionsResponse"}}}}}}},"/v1/billing/audit-log":{"get":{"operationId":"listBillingAuditLog","description":"List billing activity entries for the current workspace.","x-speakeasy-group":"billing","x-speakeasy-name-override":"listAuditLog","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"number","minimum":1,"maximum":200,"default":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor: id from the previous page."},"required":false,"description":"Cursor: id from the previous page.","name":"before","in":"query"}],"responses":{"200":{"description":"Audit-log rows newest-first.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/BillingAuditLogRow"}},"nextCursor":{"type":"string","nullable":true}},"required":["items","nextCursor"]}}}}}}},"/v1/billing/entitlements":{"get":{"operationId":"getWorkspaceBillingEntitlements","description":"Get the workspace billing entitlements used for product feature gates. Autumn is the source of truth; the response is served through the workspace billing read model with stale-cache fallback.","x-speakeasy-group":"billing","x-speakeasy-name-override":"getEntitlements","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Workspace billing entitlements.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceBillingEntitlements"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}}}} \ No newline at end of file +{"openapi":"3.0.0","info":{"title":"Alien API","version":"1.0.0","contact":{"name":"Alien Team","url":"https://alien.dev"}},"servers":[{"url":"https://api.alien.dev","description":"Alien API - Production"}],"security":[{"apiKey":[]}],"components":{"securitySchemes":{"apiKey":{"type":"http","scheme":"bearer","bearerFormat":"API key","description":"API key for authentication, must be provided as a Bearer token. Generate an API key at https://alien.dev/api-keys"}},"schemas":{"WorkspaceInvitationPreview":{"type":"object","properties":{"kind":{"type":"string","enum":["email","link"]},"workspace":{"type":"object","properties":{"id":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$"},"logoUrl":{"type":"string","nullable":true,"format":"uri"}},"required":["id","name","logoUrl"]},"inviter":{"type":"object","nullable":true,"properties":{"name":{"type":"string"},"image":{"type":"string","nullable":true,"format":"uri"}},"required":["name","image"]},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"expiresAt":{"type":"string","format":"date-time"},"state":{"type":"string","enum":["active","accepted","expired","revoked"]},"emailHint":{"type":"string","nullable":true}},"required":["kind","workspace","inviter","role","expiresAt","state","emailHint"],"additionalProperties":false},"WorkspaceRole":{"type":"string","enum":["workspace.viewer","workspace.member","workspace.admin"],"description":"Role for workspace-scoped service accounts","example":"workspace.member"},"APIError":{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"message":{"type":"string","maxLength":16384,"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."},"source":{"nullable":true,"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."},"retryable":{"type":"boolean","default":false,"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."},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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."},"requestId":{"type":"string","description":"Request ID echoed in the x-request-id response header and server logs."}},"required":["code","message","internal"]},"Membership":{"type":"object","properties":{"id":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$"},"logoUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"role":{"type":"string"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","logoUrl","role","createdAt"],"additionalProperties":false},"UserProfile":{"type":"object","properties":{"id":{"type":"string","description":"Unique user identifier"},"email":{"type":"string","description":"User's email address"},"name":{"type":"string","description":"User's display name"},"image":{"type":"string","nullable":true,"description":"User's avatar image URL"},"githubUsername":{"type":"string","nullable":true,"description":"Linked GitHub username"},"cliConnected":{"type":"boolean","description":"Whether this user has ever authenticated a request from the Alien CLI. Latched on first CLI request, never cleared."},"company":{"type":"string","nullable":true,"description":"Company name collected during profile setup."},"acquisitionSource":{"type":"string","nullable":true,"enum":["github","x-twitter","linkedin","hacker-news","reddit","search","friend-or-colleague","founder","event-or-community","other",null],"description":"How the user heard about Alien."},"acquisitionSourceDetail":{"type":"string","nullable":true,"description":"Additional acquisition source detail when the source is other."},"useCases":{"type":"string","nullable":true,"description":"What the user is hoping to use Alien for."},"profileSetupCompletedAt":{"type":"string","format":"date-time","nullable":true,"description":"When the user completed the required profile setup dialog."},"profileSetupVersion":{"type":"integer","nullable":true,"description":"Version of the required profile setup dialog the user completed."}},"required":["id","email","name","image","githubUsername","cliConnected","company","acquisitionSource","acquisitionSourceDetail","useCases","profileSetupCompletedAt","profileSetupVersion"],"additionalProperties":false},"UserProfileSetupRequest":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Display name"},"company":{"type":"string","minLength":1,"maxLength":120,"description":"Company name"},"acquisitionSource":{"type":"string","enum":["github","x-twitter","linkedin","hacker-news","reddit","search","friend-or-colleague","founder","event-or-community","other"],"description":"How the user heard about Alien"},"acquisitionSourceDetail":{"type":"string","minLength":1,"maxLength":200,"description":"Required when acquisitionSource is other"},"useCases":{"type":"string","maxLength":2000,"description":"What the user is hoping to use Alien for"}},"required":["name","company","acquisitionSource"],"additionalProperties":false},"GitNamespace":{"type":"object","properties":{"id":{"type":"number","nullable":true},"name":{"type":"string"},"slug":{"type":"string"},"installationId":{"type":"number","nullable":true},"type":{"type":"string","enum":["team","user"]},"provider":{"type":"string","enum":["github"]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","slug","installationId","type","provider","createdAt"],"additionalProperties":false},"GitRepository":{"type":"object","properties":{"name":{"type":"string"},"private":{"type":"boolean"},"defaultBranch":{"type":"string"},"pushedAt":{"type":"string","format":"date-time"}},"required":["name","private","defaultBranch"],"additionalProperties":false},"AcceptWorkspaceInvitationResponse":{"type":"object","properties":{"outcome":{"type":"string","enum":["joined","already-member"]},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"workspaceName":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$"},"role":{"$ref":"#/components/schemas/WorkspaceRole"}},"required":["outcome","workspaceId","workspaceName","role"],"additionalProperties":false},"Subject":{"oneOf":[{"$ref":"#/components/schemas/UserSubject"},{"$ref":"#/components/schemas/ServiceAccountSubject"}],"discriminator":{"propertyName":"kind","mapping":{"user":"#/components/schemas/UserSubject","serviceAccount":"#/components/schemas/ServiceAccountSubject"}},"description":"Authenticated principal that can be either a user (with workspace-scoped permissions) or a service account (with configurable scope and role)"},"UserSubject":{"type":"object","properties":{"kind":{"type":"string","enum":["user"],"description":"Subject type identifier"},"id":{"type":"string","description":"Unique user identifier"},"email":{"type":"string","format":"email","description":"User's email address"},"workspaceId":{"type":"string","description":"ID of the workspace the user is authenticated within"},"workspaceName":{"type":"string","description":"Name of the workspace the user is authenticated within"},"role":{"$ref":"#/components/schemas/UserRole"}},"required":["kind","id","email","workspaceId","role"],"description":"Authenticated user subject with workspace-scoped permissions"},"UserRole":{"type":"string","enum":["workspace.viewer","workspace.member","workspace.admin"],"description":"User's role within the workspace","example":"workspace.member"},"ServiceAccountSubject":{"type":"object","properties":{"kind":{"type":"string","enum":["serviceAccount"],"description":"Subject type identifier"},"id":{"type":"string","description":"Unique service account identifier (API key ID)"},"workspaceId":{"type":"string","description":"ID of the workspace the service account belongs to"},"workspaceName":{"type":"string","description":"Name of the workspace the service account belongs to"},"scope":{"$ref":"#/components/schemas/SubjectScope"},"role":{"$ref":"#/components/schemas/Role"}},"required":["kind","id","workspaceId","scope","role"],"description":"Authenticated service account subject with scoped permissions (workspace, project, or deployment level)"},"SubjectScope":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["workspace"],"description":"Workspace-scoped access"}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["project"],"description":"Project-scoped access"},"projectId":{"type":"string","description":"ID of the specific project this scope applies to"}},"required":["type","projectId"]},{"type":"object","properties":{"type":{"type":"string","enum":["deployment"],"description":"Deployment-scoped access"},"deploymentId":{"type":"string","description":"ID of the specific deployment this scope applies to"},"projectId":{"type":"string","description":"ID of the project this deployment belongs to"}},"required":["type","deploymentId","projectId"]},{"type":"object","properties":{"type":{"type":"string","enum":["deployment-group"],"description":"Deployment group-scoped access"},"deploymentGroupId":{"type":"string","description":"ID of the specific deployment group this scope applies to"},"projectId":{"type":"string","description":"ID of the project this deployment group belongs to"}},"required":["type","deploymentGroupId","projectId"]},{"type":"object","properties":{"type":{"type":"string","enum":["manager"],"description":"Manager-scoped access"},"managerId":{"type":"string","description":"ID of the specific manager this scope applies to"}},"required":["type","managerId"]}],"description":"Authorization scope defining what resources this service account can access"},"Role":{"oneOf":[{"$ref":"#/components/schemas/WorkspaceRole"},{"$ref":"#/components/schemas/ProjectRole"},{"$ref":"#/components/schemas/DeploymentRole"},{"$ref":"#/components/schemas/DeploymentGroupRole"},{"$ref":"#/components/schemas/ManagerRole"}],"description":"Role defining what actions this service account can perform within its scope","example":"workspace.member"},"ProjectRole":{"type":"string","enum":["project.viewer","project.developer"],"description":"Role for project-scoped service accounts","example":"project.developer"},"DeploymentRole":{"type":"string","enum":["deployment.viewer","deployment.manager","deployment.telemetry-writer"],"description":"Role for deployment-scoped service accounts","example":"deployment.manager"},"DeploymentGroupRole":{"type":"string","enum":["deployment-group.deployer"],"description":"Role for deployment group-scoped service accounts","example":"deployment-group.deployer"},"ManagerRole":{"type":"string","enum":["manager.runtime"],"description":"Role for manager-scoped service accounts","example":"manager.runtime"},"Workspace":{"type":"object","properties":{"id":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name.","example":"my-workspace"},"logoUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"},"onboardingDismissedAt":{"type":"string","format":"date-time","nullable":true,"description":"When the Getting Started walkthrough was dismissed or completed for this workspace. Null means it has never been dismissed; the dashboard auto-promotes the walkthrough until this is set."},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","onboardingDismissedAt","createdAt"],"additionalProperties":false},"WorkspaceMember":{"type":"object","properties":{"userId":{"type":"string"},"email":{"type":"string"},"name":{"type":"string"},"image":{"type":"string","nullable":true},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"joinedAt":{"type":"string","format":"date-time"}},"required":["userId","email","name","image","role","joinedAt"],"additionalProperties":false},"AgentSettings":{"type":"object","properties":{"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"enabled":{"type":"boolean","description":"Workspace on/off switch for the ai-agent. When `false`, incoming triggers (release/deployment monitoring and Slack-invoked sessions) are rejected before any session runs. Defaults to `true`."},"debugPermissionMode":{"type":"string","enum":["auto","ask"],"description":"Workspace-level policy for ai-agent debug commands. `auto` runs `alien_debug` tool calls without asking; `ask` halts each session before every debug command and waits for a human approval from dashboard or Slack."},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["workspaceId","enabled","debugPermissionMode","createdAt","updatedAt"],"additionalProperties":false},"UpdateWorkspaceSettingsRequest":{"type":"object","properties":{"debugPermissionMode":{"type":"string","enum":["auto","ask"],"description":"Workspace-level policy for ai-agent debug commands. `auto` runs `alien_debug` tool calls without asking; `ask` halts each session before every debug command and waits for a human approval from dashboard or Slack."},"enabled":{"type":"boolean","description":"Turn the ai-agent on (`true`) or off (`false`) for this workspace."}}},"WorkspaceInvitation":{"type":"object","properties":{"id":{"type":"string","pattern":"winv_[0-9a-zA-Z]{32}$","description":"Unique identifier for the workspace invitation.","example":"winv_DsgltMIFV0GmqtxV5NYTtrknrna"},"email":{"type":"string","format":"email"},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"status":{"type":"string","enum":["pending","accepted","revoked","expired"]},"deliveryStatus":{"type":"string","enum":["pending","sent","failed"]},"expiresAt":{"type":"string","format":"date-time"},"lastSentAt":{"type":"string","format":"date-time","nullable":true},"createdAt":{"type":"string","format":"date-time"},"inviteUrl":{"type":"string","format":"uri"}},"required":["id","email","role","status","deliveryStatus","expiresAt","lastSentAt","createdAt","inviteUrl"],"additionalProperties":false},"WorkspaceInviteLink":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"wil_[0-9a-zA-Z]{40}$","description":"Unique identifier for the workspace invite link.","example":"wil_RgcthDSZ37rmFLekuItpFS7btjXoYwou1gE4"},"role":{"$ref":"#/components/schemas/WorkspaceRole"},"expiresAt":{"type":"string","format":"date-time"},"createdAt":{"type":"string","format":"date-time"},"useCount":{"type":"integer","minimum":0},"lastUsedAt":{"type":"string","format":"date-time","nullable":true},"inviteUrl":{"type":"string","format":"uri"}},"required":["id","role","expiresAt","createdAt","useCount","lastUsedAt","inviteUrl"],"additionalProperties":false},"ProjectListItemResponse":{"allOf":[{"$ref":"#/components/schemas/Project"},{"type":"object","properties":{"deploymentCount":{"type":"number"},"latestRelease":{"$ref":"#/components/schemas/ProjectReleaseInfo"}}}]},"DeploymentPortalAppearancePreset":{"type":"string","enum":["clean","technical","enterprise","playful","minimal"],"default":"clean","description":"Curated visual style for the deployment portal."},"DeploymentPortalAccentColor":{"type":"string","enum":["blue","purple","green","orange","pink","slate"],"default":"blue","description":"Accent color used for highlights and primary actions."},"DeploymentPortalDensity":{"type":"string","enum":["comfortable","compact"],"default":"comfortable","description":"Layout density for portal content."},"ProjectReleaseInfo":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"gitMetadata":{"$ref":"#/components/schemas/GitMetadata"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","gitMetadata","createdAt"]},"GitMetadata":{"type":"object","nullable":true,"properties":{"commitSha":{"type":"string","nullable":true,"maxLength":40,"description":"The hash of the commit","example":"dc36199b2234c6586ebe05ec94078a895c707e29"},"commitMessage":{"type":"string","nullable":true,"maxLength":1024,"description":"The commit message","example":"add method to measure Interaction to Next Paint (INP) (#36490)"},"commitRef":{"type":"string","nullable":true,"maxLength":256,"description":"The branch or tag on which the commit was made","example":"main"},"commitDate":{"type":"string","nullable":true,"format":"date-time","description":"The date and time when the commit was created","example":"2026-03-16T12:00:00Z"},"dirty":{"type":"boolean","nullable":true,"description":"Whether or not there have been modifications to the working tree since the latest commit","example":true},"remoteUrl":{"type":"string","nullable":true,"maxLength":2048,"description":"The git repository's remote origin url","example":"https://github.com/alienplatform/alien"},"commitAuthorName":{"type":"string","nullable":true,"maxLength":256,"description":"The name of the author of the commit (from git config)","example":"John Doe"},"commitAuthorEmail":{"type":"string","nullable":true,"maxLength":256,"format":"email","description":"The email of the author of the commit (from git config)","example":"john@example.com"},"commitAuthorLogin":{"type":"string","nullable":true,"maxLength":256,"description":"The provider username of the commit author (e.g., GitHub login), resolved server-side from the commit email","example":"johndoe"},"commitAuthorAvatarUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"The avatar URL of the commit author, resolved server-side from the provider login","example":"https://github.com/johndoe.png"},"provider":{"$ref":"#/components/schemas/GitProvider"}}},"GitProvider":{"oneOf":[{"$ref":"#/components/schemas/GitHubProvider"},{"$ref":"#/components/schemas/GitLabProvider"},{"nullable":true}],"description":"Provider-specific repository information, resolved server-side from remoteUrl"},"GitHubProvider":{"type":"object","properties":{"type":{"type":"string","enum":["github"]},"org":{"type":"string","maxLength":256,"description":"Repository owner (user or organization)"},"repo":{"type":"string","maxLength":256,"description":"Repository name"}},"required":["type","org","repo"]},"GitLabProvider":{"type":"object","properties":{"type":{"type":"string","enum":["gitlab"]},"namespace":{"type":"string","maxLength":256,"description":"Group/project namespace"},"project":{"type":"string","maxLength":256,"description":"Project name"}},"required":["type","namespace","project"]},"Project":{"type":"object","properties":{"id":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Project name.","example":"my-app"},"gitRepository":{"type":"object","nullable":true,"properties":{"type":{"type":"string","enum":["github"],"description":"The Git Provider of the repository","example":"github"},"repo":{"type":"string","maxLength":128,"description":"The name of the git repository","example":"alien/my-agent"}},"required":["type","repo"],"additionalProperties":false,"description":"Verified source repository connected to the project. Alien uses this for GitHub Actions setup and source-aware features; releases are still created explicitly by CI or `alien release`."},"rootDirectory":{"type":"string","nullable":true,"maxLength":256,"description":"The name of a directory or relative path to the source code of your project. When null is used it will default to the project root"},"deploymentPortalAppearance":{"type":"object","nullable":true,"properties":{"avatarUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional project-specific avatar override for the deployment portal."},"preset":{"$ref":"#/components/schemas/DeploymentPortalAppearancePreset"},"accentColor":{"$ref":"#/components/schemas/DeploymentPortalAccentColor"},"title":{"type":"string","nullable":true,"maxLength":80,"description":"Optional portal title. Defaults to the project name."},"subtitle":{"type":"string","nullable":true,"maxLength":160,"description":"Optional customer-facing subtitle."},"supportUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional support or contact URL."},"docsUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional documentation URL."},"density":{"$ref":"#/components/schemas/DeploymentPortalDensity"}},"description":"Customer-facing deployment portal appearance settings."},"packagesConfig":{"type":"object","nullable":true,"properties":{"cli":{"type":"object","nullable":true,"properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"},"enabled":{"type":"boolean","description":"Whether CLI package generation is enabled"}},"required":["displayName","name","enabled"],"description":"CLI package configuration. If null, CLI packages will not be generated."},"cloudformation":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether CloudFormation package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"CloudFormation package configuration. If null, CloudFormation packages will not be generated."},"operatorImage":{"type":"object","nullable":true,"properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"},"enabled":{"type":"boolean","description":"Whether Operator image package generation is enabled"}},"required":["displayName","name","enabled"],"description":"Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated."},"helm":{"type":"object","nullable":true,"properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"},"enabled":{"type":"boolean","description":"Whether Helm chart package generation is enabled"}},"required":["chartName","description","enabled"],"description":"Helm chart package configuration. If null, Helm packages will not be generated."},"terraform":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether Terraform package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"Terraform package configuration. If null, Terraform packages will not be generated."}},"description":"Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform)"},"domainId":{"type":"string","nullable":true,"pattern":"dom_[0-9a-z]{28}$","description":"Selected domain for this project (null = default system domain)","example":"dom_469m0agk8luj4s16sakmmpdd"},"defaultManagers":{"type":"object","nullable":true,"properties":{"aws":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"gcp":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"azure":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"kubernetes":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"machines":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"local":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"}},"description":"Project default private managers for new push deployments."},"createdAt":{"type":"string","format":"date-time"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"}},"required":["id","name","createdAt","workspaceId"]},"ProjectIDOrNamePathParam":{"type":"string","maxLength":100,"description":"Project ID or name."},"ProjectGcpOAuthProvider":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["alien-managed"]},"redirectUris":{"type":"array","items":{"type":"string","format":"uri"},"description":"Authorized redirect URIs that must be configured on the Google OAuth client."}},"required":["mode","redirectUris"]},{"type":"object","properties":{"mode":{"type":"string","enum":["custom"]},"clientId":{"$ref":"#/components/schemas/GcpOAuthClientId"},"hasClientSecret":{"type":"boolean","enum":[true]},"redirectUris":{"type":"array","items":{"type":"string","format":"uri"},"description":"Authorized redirect URIs that must be configured on the Google OAuth client."}},"required":["mode","clientId","hasClientSecret","redirectUris"]}]},"GcpOAuthClientId":{"type":"string","minLength":1,"maxLength":256,"pattern":"^[a-zA-Z0-9_-]+-[a-zA-Z0-9_-]+\\.apps\\.googleusercontent\\.com$","description":"Google OAuth web client ID.","example":"1234567890-abc123.apps.googleusercontent.com"},"UpdateProjectGcpOAuthProvider":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["alien-managed"]}},"required":["mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["custom"]},"clientId":{"$ref":"#/components/schemas/GcpOAuthClientId"},"clientSecret":{"$ref":"#/components/schemas/GcpOAuthClientSecret"}},"required":["mode","clientId"]}]},"GcpOAuthClientSecret":{"type":"string","minLength":1,"maxLength":512,"description":"Google OAuth web client secret. Write-only; never returned by the API.","example":"GOCSPX-example"},"UpdateProject":{"type":"object","properties":{"gitRepository":{"type":"object","nullable":true,"properties":{"type":{"type":"string","enum":["github"],"description":"The Git Provider of the repository","example":"github"},"repo":{"type":"string","maxLength":128,"description":"The name of the git repository","example":"alien/my-agent"}},"required":["type","repo"],"additionalProperties":false,"description":"Verified source repository connected to the project. Alien uses this for GitHub Actions setup and source-aware features; releases are still created explicitly by CI or `alien release`."},"rootDirectory":{"type":"string","nullable":true,"maxLength":256,"description":"The name of a directory or relative path to the source code of your project. When null is used it will default to the project root"},"deploymentPortalAppearance":{"type":"object","nullable":true,"properties":{"avatarUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional project-specific avatar override for the deployment portal."},"preset":{"$ref":"#/components/schemas/DeploymentPortalAppearancePreset"},"accentColor":{"$ref":"#/components/schemas/DeploymentPortalAccentColor"},"title":{"type":"string","nullable":true,"maxLength":80,"description":"Optional portal title. Defaults to the project name."},"subtitle":{"type":"string","nullable":true,"maxLength":160,"description":"Optional customer-facing subtitle."},"supportUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional support or contact URL."},"docsUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional documentation URL."},"density":{"$ref":"#/components/schemas/DeploymentPortalDensity"}},"description":"Customer-facing deployment portal appearance settings."},"packagesConfig":{"type":"object","nullable":true,"properties":{"cli":{"type":"object","nullable":true,"properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"},"enabled":{"type":"boolean","description":"Whether CLI package generation is enabled"}},"required":["displayName","name","enabled"],"description":"CLI package configuration. If null, CLI packages will not be generated."},"cloudformation":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether CloudFormation package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"CloudFormation package configuration. If null, CloudFormation packages will not be generated."},"operatorImage":{"type":"object","nullable":true,"properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"},"enabled":{"type":"boolean","description":"Whether Operator image package generation is enabled"}},"required":["displayName","name","enabled"],"description":"Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated."},"helm":{"type":"object","nullable":true,"properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"},"enabled":{"type":"boolean","description":"Whether Helm chart package generation is enabled"}},"required":["chartName","description","enabled"],"description":"Helm chart package configuration. If null, Helm packages will not be generated."},"terraform":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether Terraform package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"Terraform package configuration. If null, Terraform packages will not be generated."}},"description":"Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform)"},"domainId":{"type":"string","nullable":true,"pattern":"dom_[0-9a-z]{28}$","description":"Selected domain for this project (null = default system domain)","example":"dom_469m0agk8luj4s16sakmmpdd"},"defaultManagers":{"type":"object","nullable":true,"properties":{"aws":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"gcp":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"azure":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"kubernetes":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"machines":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"local":{"type":"string","nullable":true,"pattern":"mgr_[0-9a-z]{28}$","description":"Unique identifier for a default private manager.","example":"mgr_enxscjrqiiu2lrc672hwwuc5"}},"description":"Project default private managers for new push deployments."}}},"DeploymentPortalDomainResponse":{"type":"object","properties":{"deploymentPortalEndpoint":{"$ref":"#/components/schemas/DomainEndpoint"},"packageEndpoint":{"$ref":"#/components/schemas/DomainEndpoint"}},"required":["deploymentPortalEndpoint","packageEndpoint"]},"DomainEndpoint":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"dend_[0-9a-z]{28}$","description":"Unique identifier for the domain endpoint.","example":"dend_1bb6gdvm1bs74acqkjstcgv"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"domainId":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"kind":{"$ref":"#/components/schemas/DomainEndpointKind"},"owner":{"$ref":"#/components/schemas/DomainEndpointOwner"},"hostname":{"type":"string","minLength":1,"maxLength":253},"status":{"$ref":"#/components/schemas/DomainEndpointStatus"},"provider":{"type":"string","nullable":true},"providerState":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"managedDnsRecords":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentPortalManagedDnsRecord"}},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},"lockedAt":{"type":"string","format":"date-time","nullable":true},"lockedBy":{"type":"string","nullable":true},"retryAttempts":{"type":"integer","minimum":0},"nextStepAfter":{"type":"string","format":"date-time","nullable":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","workspaceId","domainId","kind","owner","hostname","status","managedDnsRecords","retryAttempts","createdAt","updatedAt"]},"DomainEndpointKind":{"type":"string","enum":["deployment_portal","workspace_packages","manager_api","deployment_url_base"]},"DomainEndpointOwner":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/DomainEndpointOwnerType"},"id":{"type":"string"}},"required":["type","id"]},"DomainEndpointOwnerType":{"type":"string","enum":["workspace","project","manager"]},"DomainEndpointStatus":{"type":"string","enum":["waiting_for_domain","provisioning","waiting_for_dns","waiting_for_health","active","failed","deleting"]},"DeploymentPortalManagedDnsRecord":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string"},"value":{"type":"string"},"ttl":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true}},"required":["name","type","value"]},"DeploymentLinkSetupResponse":{"type":"object","properties":{"activeRelease":{"type":"object","properties":{"id":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"version":{"type":"string","nullable":true},"stack":{"allOf":[{"$ref":"#/components/schemas/StackByPlatform"}],"nullable":true}},"required":["id","version","stack"]},"visiblePackageTypes":{"type":"array","items":{"type":"string","enum":["cli","cloudformation","helm","operator-image","terraform"],"description":"Types of packages that can be built"}},"visibleSetupMethods":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentSetupMethod"}}},"required":["activeRelease","visiblePackageTypes","visibleSetupMethods"]},"StackByPlatform":{"type":"object","properties":{"aws":{"nullable":true},"gcp":{"nullable":true},"azure":{"nullable":true},"kubernetes":{"nullable":true},"machines":{"nullable":true},"local":{"nullable":true},"test":{"nullable":true}},"additionalProperties":false},"DeploymentSetupMethod":{"type":"string","enum":["cloudformation","google-oauth","terraform","helm","cli","manual"]},"DeploymentGroup":{"type":"object","properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"externalId":{"type":"string","nullable":true,"minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9][A-Za-z0-9._~-]*$","description":"Case-sensitive, URL- and header-safe identifier from the integrating application.","example":"ext_example_01"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"maxDeployments":{"type":"integer","minimum":1,"default":100,"description":"Maximum number of deployments allowed in this deployment group"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","name","externalId","projectId","workspaceId","createdAt"]},"CreateDeploymentGroupRequest":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"externalId":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9][A-Za-z0-9._~-]*$","description":"Case-sensitive, URL- and header-safe identifier from the integrating application.","example":"ext_example_01"},"project":{"type":"string","maxLength":100,"description":"Project ID or name this deployment group belongs to"},"maxDeployments":{"type":"integer","minimum":1,"default":100,"description":"Maximum number of deployments in this deployment group"}},"required":["name","project"]},"EnsureDeploymentGroupByNameRequest":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"project":{"type":"string","maxLength":100,"description":"Project ID or name this deployment group belongs to"},"maxDeployments":{"type":"integer","minimum":1,"default":100,"description":"Maximum number of deployments for newly created groups"}},"required":["name","project"]},"EnsureDeploymentGroupByExternalIdRequest":{"type":"object","properties":{"externalId":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9][A-Za-z0-9._~-]*$","description":"Case-sensitive, URL- and header-safe identifier from the integrating application.","example":"ext_example_01"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"project":{"type":"string","maxLength":100,"description":"Project ID or name this deployment group belongs to"},"maxDeployments":{"type":"integer","minimum":1,"default":100,"description":"Maximum number of deployments for newly created groups"}},"required":["externalId","name","project"]},"ProjectIDOrNameQueryParam":{"type":"string","maxLength":100,"description":"Filter by project ID or name."},"SetDeploymentGroupExternalIdRequest":{"type":"object","properties":{"externalId":{"type":"string","nullable":true,"minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9][A-Za-z0-9._~-]*$","description":"Case-sensitive, URL- and header-safe identifier from the integrating application.","example":"ext_example_01"}},"required":["externalId"]},"UpdateDeploymentGroupRequest":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"},"maxDeployments":{"type":"integer","minimum":1,"description":"Maximum number of deployments in this deployment group"}}},"CreateDeploymentGroupTokenResponse":{"type":"object","properties":{"token":{"type":"string","description":"The API key token"},"deploymentLink":{"type":"string","description":"Formatted deployment link"}},"required":["token","deploymentLink"]},"CreateDeploymentGroupTokenRequest":{"type":"object","properties":{"description":{"type":"string","description":"Description for the API key"},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"Optional expiration date for the API key"},"deploymentSetupConfig":{"$ref":"#/components/schemas/DeploymentSetupConfig"},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"}},"required":["deploymentSetupConfig"]},"DeploymentSetupConfig":{"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"environmentVariables":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"}},"inputValues":{"$ref":"#/components/schemas/EncryptedStackInputValues"},"publicSubdomain":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","description":"Operator-pinned deployment subdomain for this setup token."}},"required":["metadata","policy","environmentVariables"]},"DeploymentSetupMetadata":{"type":"object","additionalProperties":{"nullable":true}},"DeploymentSetupPolicy":{"type":"object","properties":{"allowedPlatforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."}},"allowedKubernetesBasePlatforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","on-prem"]},"minItems":1,"description":"Kubernetes base environments the recipient may target."},"allowedKubernetesClusterSources":{"type":"array","items":{"$ref":"#/components/schemas/KubernetesClusterSource"},"minItems":1,"description":"Whether recipients may create a cluster, use an existing cluster, or both."},"allowedSetupMethods":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentSetupMethod"}},"allowReleasePinning":{"type":"boolean"},"stackSettings":{"$ref":"#/components/schemas/DeploymentSetupStackSettingsPolicy"}},"required":["allowedPlatforms","allowedSetupMethods"]},"KubernetesClusterSource":{"type":"string","enum":["create","existing"]},"DeploymentSetupStackSettingsPolicy":{"type":"object","properties":{"defaults":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."},"allowedDeploymentModels":{"type":"array","items":{"type":"string","enum":["push","pull","airgapped"]}},"allowedNetworkModes":{"type":"array","items":{"type":"string","enum":["none","create","default","byo"]}},"allowedUpdatesModes":{"type":"array","items":{"type":"string","enum":["auto","approval-required"]}},"allowedTelemetryModes":{"type":"array","items":{"type":"string","enum":["auto","approval-required","off"]}},"allowedHeartbeatsModes":{"type":"array","items":{"type":"string","enum":["on","off"]}},"allowExternalBindings":{"type":"boolean"},"allowCustomRegistry":{"type":"boolean"}}},"EnvironmentVariableConfig":{"type":"object","properties":{"name":{"type":"string","pattern":"^[A-Z_][A-Z0-9_]*$","description":"Variable name"},"value":{"type":"string","maxLength":10000,"description":"Variable value (encrypted in database)"},"type":{"$ref":"#/components/schemas/EnvironmentVariableType"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string","pattern":"^[a-zA-Z0-9_-]+(\\*)?$"},"description":"Target resource patterns (null = all resources, array = wildcard patterns)"}},"required":["name","value","type","targetResources"]},"EnvironmentVariableType":{"type":"string","enum":["plain","secret"],"description":"Variable type (plain or secret)"},"EncryptedStackInputValues":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/EncryptedStackInputValue"},"default":{}},"EncryptedStackInputValue":{"type":"object","properties":{"value":{"type":"string","description":"Encrypted JSON-encoded input value."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"]},"secret":{"type":"boolean","description":"Whether the original input is secret."}},"required":["value","kind","secret"]},"StackInputValuesRequest":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/StackInputValueRequest"},"default":{}},"StackInputValueRequest":{"oneOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"type":"array","items":{"type":"string"}}]},"CreateFirstPartyDeploymentSessionResponse":{"type":"object","properties":{"token":{"type":"string","description":"The deployment-group session token"}},"required":["token"]},"Package":{"type":"object","properties":{"id":{"type":"string","pattern":"pkg_[0-9a-z]{28}$","description":"Unique identifier for the package.","example":"pkg_jebo2o5jmm7raefl2m1pe3cz"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"type":{"type":"string","enum":["cli","cloudformation","helm","operator-image","terraform"],"description":"Types of packages that can be built"},"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"version":{"type":"string","description":"Package version (e.g., '1.0.0', 'rel_abc123')"},"sourceReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Release used as package build input. Null for release-less packages such as Operate Operator images.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"setupFingerprints":{"$ref":"#/components/schemas/SetupFingerprintMap"},"packageBuildInputHash":{"type":"string","description":"Hash of Platform-known package build request inputs: package type, source release, setup fingerprints, package config, and setup contract version"},"config":{"oneOf":[{"allOf":[{"type":"object","properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"}},"required":["displayName","name"],"description":"Branding configuration for the deploy CLI binary."},{"type":"object","properties":{"type":{"type":"string","enum":["cli"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts."},"supportedAwsRegions":{"type":"array","items":{"type":"string"},"description":"AWS regions supported by the environment that built this package."}},"description":"Configuration for CloudFormation packages"},{"type":"object","properties":{"type":{"type":"string","enum":["cloudformation"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"}},"required":["chartName","description"],"description":"Configuration for the Helm chart package"},{"type":"object","properties":{"type":{"type":"string","enum":["helm"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"}},"required":["displayName","name"],"description":"Branding configuration for the Operator image."},{"type":"object","properties":{"type":{"type":"string","enum":["operator-image"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts."},"supportedAwsRegions":{"type":"array","items":{"type":"string"},"description":"AWS regions supported by the environment that built this package."}},"description":"Configuration for Terraform package generation."},{"type":"object","properties":{"type":{"type":"string","enum":["terraform"]}},"required":["type"]}]}],"description":"Type-specific configuration"},"outputs":{"oneOf":[{"allOf":[{"type":"object","properties":{"binaries":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sha256":{"type":"string","description":"SHA256 checksum"},"size":{"type":"integer","minimum":0,"description":"File size in bytes"},"url":{"type":"string","description":"Download URL for the binary"}},"required":["sha256","size","url"],"description":"Information about a single binary artifact"},"description":"Binary information for each target platform"},"buildInfo":{"type":"object","properties":{"alienSha":{"type":"string","description":"Alien source commit used to build the source CLI and agent binaries."},"horizonSha":{"type":"string","description":"Compute backend source revision used by optional package extensions, if applicable."},"machineBundleManifestUrl":{"type":"string","nullable":true,"description":"Machine runtime release manifest embedded into the generated CLI."},"platformSha":{"type":"string","description":"Source revision used to build the package service and optional extensions."},"sourceAgentBinarySha256":{"type":"string","nullable":true,"description":"SHA256 checksum of the source runtime helper binary shipped with the CLI package, when present."},"sourceCliBinarySha256":{"type":"string","description":"SHA256 checksum of the source deploy CLI binary before white-label config is appended."}},"required":["alienSha","horizonSha","platformSha","sourceCliBinarySha256"],"description":"Source provenance for a generated CLI package."}},"required":["binaries","buildInfo"],"description":"Outputs from a CLI package build"},{"type":"object","properties":{"type":{"type":"string","enum":["cli"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"digest":{"type":"string","description":"Image digest (e.g., \"sha256:abc123...\")"},"image":{"type":"string","description":"Full image reference (e.g., \"public.ecr.aws/acme/operators/project-id:1.2.3\")"},"labelDomain":{"type":"string","nullable":true,"description":"DNS-style label domain embedded into the Operator binary, if whitelabeled."}},"required":["digest","image"],"description":"Outputs from an Operator image package build"},{"type":"object","properties":{"type":{"type":"string","enum":["operator-image"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"chart":{"type":"string","description":"OCI chart reference (e.g., \"oci://public.ecr.aws/acme/charts/project-id\")"},"version":{"type":"string","description":"Chart version (e.g., \"1.2.3\")"}},"required":["chart","version"],"description":"Outputs from a Helm chart package build"},{"type":"object","properties":{"type":{"type":"string","enum":["helm"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"targets":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"launchStackUrl":{"type":"string","description":"AWS Console quick-launch URL"},"sha256":{"type":"string","description":"SHA256 checksum of the template"},"size":{"type":"integer","minimum":0,"description":"Template size in bytes"},"stackPolicyUrl":{"type":"string","description":"S3 URL to the CloudFormation stack policy"},"target":{"type":"string","description":"CloudFormation target (aws, eks)"},"templateUrl":{"type":"string","description":"S3 URL to the CloudFormation template"}},"required":["launchStackUrl","sha256","size","stackPolicyUrl","target","templateUrl"],"description":"Information about a single CloudFormation template package for one target."},"description":"Template artifacts by CloudFormation target."}},"required":["targets"],"description":"Outputs from a CloudFormation package build."},{"type":"object","properties":{"type":{"type":"string","enum":["cloudformation"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"modules":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL for the module archive"},"filename":{"type":"string","description":"Filename of the module archive"},"shasum":{"type":"string","description":"SHA256 checksum of the archive"},"size":{"type":"integer","minimum":0,"description":"Size of the archive in bytes"},"source":{"type":"string","description":"Terraform module source (hostname/namespace/name/provider, without scheme)"},"target":{"type":"string","description":"Terraform module target (aws, gcp, azure, eks, gke, aks)"},"variables":{"type":"array","items":{"type":"string"},"description":"Terraform input variables exposed by this module."}},"required":["downloadUrl","filename","shasum","size","source","target"],"description":"Information about a single Terraform module package for one target."},"description":"Module registry artifacts by Terraform target."},"provider":{"type":"object","properties":{"gpgPublicKey":{"type":"object","properties":{"asciiArmor":{"type":"string","description":"ASCII-armored public key"},"keyId":{"type":"string","description":"GPG key ID"}},"required":["asciiArmor","keyId"],"description":"GPG public key for Terraform provider signature verification"},"platforms":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL for the provider zip"},"filename":{"type":"string","description":"Filename of the provider zip"},"shasum":{"type":"string","description":"SHA256 checksum of the zip file"},"shasumsSignatureUrl":{"type":"string","description":"URL to the shasums signature file"},"shasumsUrl":{"type":"string","description":"URL to the shasums file"},"size":{"type":"integer","minimum":0,"description":"Size of the zip file in bytes"}},"required":["downloadUrl","filename","shasum","shasumsSignatureUrl","shasumsUrl","size"],"description":"Information about a single Terraform provider package for a specific platform"},"description":"Provider packages for each target platform"},"source":{"type":"string","description":"Terraform provider source (hostname/namespace/type, without scheme)"}},"required":["gpgPublicKey","platforms","source"],"description":"Terraform provider registry outputs."}},"required":["modules","provider"],"description":"Outputs from a Terraform package build."},{"type":"object","properties":{"type":{"type":"string","enum":["terraform"]}},"required":["type"]}]},{"nullable":true}],"description":"Package outputs (only when status is 'ready')"},"error":{"nullable":true,"description":"Error information if status is 'failed'"},"sourceBinarySha256":{"type":"string","nullable":true,"description":"Builder-recorded source binary SHA256 (for cli/terraform packages)"},"retries":{"type":"integer","minimum":0,"description":"Number of build retries"},"lockedAt":{"type":"string","format":"date-time","nullable":true},"lockedBy":{"type":"string","nullable":true},"leaseExpiresAt":{"type":"string","format":"date-time","nullable":true,"description":"Expiration of the current builder lease"},"buildPhase":{"type":"string","nullable":true,"enum":["building","publishing",null],"description":"Coarse package build phase"},"lastProgressAt":{"type":"string","format":"date-time","nullable":true,"description":"Last successful builder lease renewal or phase change"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"completedAt":{"type":"string","format":"date-time","nullable":true}},"required":["id","projectId","workspaceId","type","status","version","setupFingerprints","packageBuildInputHash","config","retries","createdAt","updatedAt"]},"SetupFingerprintMap":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/SetupFingerprintInfo"},"description":"Per-target setup compatibility fingerprints copied from the source release"},"SetupFingerprintInfo":{"type":"object","properties":{"target":{"$ref":"#/components/schemas/SetupTarget"},"fingerprint":{"$ref":"#/components/schemas/SetupFingerprint"},"version":{"$ref":"#/components/schemas/SetupFingerprintVersion"}},"required":["target","fingerprint","version"]},"SetupTarget":{"type":"string","minLength":1,"description":"Stable target key for the setup contract, e.g. aws/us-east-1"},"SetupFingerprint":{"type":"string","minLength":1,"description":"Deterministic setup contract fingerprint for one setup target"},"SetupFingerprintVersion":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Setup fingerprint algorithm version"},"ReleaseListItemResponse":{"allOf":[{"$ref":"#/components/schemas/Release"},{"type":"object","properties":{"currentChannels":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseChannelName"},"description":"Channels for which this release is currently selected"},"commitUrl":{"type":"string","nullable":true,"format":"uri","description":"Validated canonical provider URL for the exact commit"},"project":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"Project ID"},"name":{"type":"string","description":"Project name"}},"required":["id","name"],"description":"Project info, included when ?include=project is used"},"rollout":{"type":"object","nullable":true,"properties":{"updatedCount":{"type":"integer","description":"Deployments that finished updating to this release (excludes initial provisions)"},"pendingCount":{"type":"integer","description":"Deployments currently targeting this release but not yet running it"},"avgDurationMs":{"type":"number","nullable":true,"description":"Average time from release creation until a deployment finished updating, in milliseconds"}},"required":["updatedCount","pendingCount","avgDurationMs"],"description":"Rollout stats, included when ?include=rollout is used"},"createdBy":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"User ID"},"name":{"type":"string","description":"User's display name"},"email":{"type":"string","description":"User's email address"},"image":{"type":"string","nullable":true,"description":"User's avatar image URL"}},"required":["id","name","email","image"],"description":"Platform user who created the release, included when ?include=createdBy is used"}},"required":["currentChannels","commitUrl"]}]},"ReleaseChannelName":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z][a-z0-9-]*$"},"Release":{"type":"object","properties":{"id":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"projectId":{"type":"string","maxLength":128},"version":{"type":"string","minLength":1,"maxLength":256},"gitMetadata":{"$ref":"#/components/schemas/GitMetadata"},"createdAt":{"type":"string","format":"date-time"},"stack":{"allOf":[{"$ref":"#/components/schemas/StackByPlatform"}],"nullable":true},"setupFingerprints":{"allOf":[{"$ref":"#/components/schemas/SetupFingerprintMap"},{"description":"Per-target setup compatibility fingerprints for this release"}]},"rootDirectory":{"type":"string","nullable":true,"maxLength":256},"createdByUserId":{"type":"string","nullable":true,"maxLength":128,"description":"ID of the platform user who created the release, if known"},"workspaceId":{"type":"string","maxLength":128}},"required":["id","projectId","version","createdAt","setupFingerprints","workspaceId"]},"CreateReleaseRequest":{"type":"object","properties":{"project":{"type":"string","maxLength":100,"description":"Project ID or name"},"version":{"type":"string","minLength":1,"maxLength":256},"gitMetadata":{"$ref":"#/components/schemas/GitMetadata"},"stack":{"$ref":"#/components/schemas/StackByPlatform"},"rootDirectory":{"type":"string","nullable":true,"maxLength":256},"channel":{"allOf":[{"$ref":"#/components/schemas/ReleaseChannelName"},{"description":"Release channel to advance. Defaults to production."}]}},"required":["project"]},"ReleaseAuthorFilterItem":{"type":"object","properties":{"login":{"type":"string","nullable":true,"description":"Provider username (e.g., GitHub login)"},"name":{"type":"string","nullable":true,"description":"Git commit author name"},"avatarUrl":{"type":"string","nullable":true,"format":"uri","description":"Author avatar URL"}},"required":["login","name","avatarUrl"]},"ReleaseDeploymentsResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseDeploymentItem"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"},"stateCounts":{"$ref":"#/components/schemas/ReleaseRolloutStateCounts"}},"required":["items","nextCursor","stateCounts"]},"ReleaseDeploymentItem":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"deploymentGroup":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"}},"required":["id","name"],"description":"Deployment group this deployment belongs to"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the currently deployed release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the desired release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat"},"rolloutState":{"$ref":"#/components/schemas/ReleaseRolloutState"},"releasedAt":{"type":"string","format":"date-time","nullable":true,"description":"When this release went live on the deployment, null if it never did"},"durationMs":{"type":"integer","nullable":true,"description":"Time from release creation until the deployment finished updating, in milliseconds. Null for initial provisions and deployments that never ran this release."},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Latest error information if the deployment is in a failed state"}},"required":["id","name","status","platform","rolloutState","releasedAt","durationMs"]},"ReleaseRolloutState":{"type":"string","enum":["updated","updating","failed","pending","pinned-other","superseded","on-other"]},"ReleaseRolloutStateCounts":{"type":"object","properties":{"updated":{"type":"integer"},"updating":{"type":"integer"},"failed":{"type":"integer"},"pending":{"type":"integer"},"pinned-other":{"type":"integer"},"superseded":{"type":"integer"},"on-other":{"type":"integer"}},"required":["updated","updating","failed","pending","pinned-other","superseded","on-other"],"description":"Deployment counts per rollout state across all deployments the filters allow (ignores the state filter)"},"ReleaseChannel":{"type":"object","properties":{"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"name":{"$ref":"#/components/schemas/ReleaseChannelName"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"deploymentCount":{"type":"integer","minimum":0},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["workspaceId","projectId","name","currentReleaseId","createdAt","updatedAt"]},"DeploymentListItemResponse":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"deploymentProtocolVersion":{"$ref":"#/components/schemas/DeploymentProtocolVersion"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"ID of deployment group this deployment belongs to","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the currently deployed release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the desired release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"releaseChannel":{"allOf":[{"$ref":"#/components/schemas/ReleaseChannelName"},{"description":"Named release stream followed when the deployment is not pinned"}]},"importSource":{"type":"string","nullable":true,"enum":["cloudformation","terraform","helm",null],"description":"Setup source that imported this deployment"},"setupMethod":{"type":"string","nullable":true,"enum":["cloudformation","google-oauth","terraform","helm","cli","manual",null],"description":"Setup method that created the deployment record."},"setupMetadata":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Setup method metadata needed to guide privileged teardown."},"setupTarget":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup target for compatibility checks"},"setupFingerprint":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup compatibility fingerprint"},"setupFingerprintVersion":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Imported setup fingerprint version"},"operatorScope":{"type":"string","nullable":true,"description":"Display-only scope reported by the Operator manifest"},"operatorPermission":{"type":"string","nullable":true,"description":"Display-only permission tier reported by the Operator manifest"},"operatorVersion":{"type":"string","nullable":true,"description":"Version reported by the Operator"},"capabilities":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OperatorCapabilityReport"},"description":"Capability state reported by the Operator"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat"},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Latest error information if in a failed state"},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"managerId":{"$ref":"#/components/schemas/ManagerID"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"release":{"$ref":"#/components/schemas/DeploymentReleaseInfo"},"deploymentGroup":{"$ref":"#/components/schemas/DeploymentGroupInfo"},"project":{"$ref":"#/components/schemas/DeploymentProjectInfo"}},"required":["id","name","status","projectId","platform","deploymentProtocolVersion","deploymentGroupId","releaseChannel","retryRequested","createdAt","updatedAt","managerId","workspaceId"]},"DeploymentProtocolVersion":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"DeploymentState protocol version owned by the runtime/manager"},"OperatorCapabilityReport":{"type":"object","properties":{"key":{"type":"string","minLength":1,"maxLength":128},"state":{"$ref":"#/components/schemas/OperatorCapabilityState"},"detail":{"type":"string","nullable":true,"maxLength":512}},"required":["key","state"]},"OperatorCapabilityState":{"type":"string","enum":["granted","denied","unavailable"]},"ManagerID":{"type":"string","pattern":"mgr_[0-9a-z]{28}$","description":"ID of the manager","example":"mgr_enxscjrqiiu2lrc672hwwuc5"},"DeploymentReleaseInfo":{"type":"object","nullable":true,"properties":{"id":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"version":{"type":"string","minLength":1,"maxLength":256},"gitMetadata":{"$ref":"#/components/schemas/GitMetadata"},"createdAt":{"type":"string","format":"date-time"}},"required":["id","version","createdAt"]},"DeploymentGroupInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!dg[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment group name.","example":"prod-us-east-1"}},"required":["id","name"]},"DeploymentProjectInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Project name.","example":"my-app"}},"required":["id","name"]},"DeploymentStats":{"type":"object","properties":{"total":{"type":"number","description":"Total number of deployments matching filters"},"byStatus":{"type":"object","additionalProperties":{"type":"number"},"description":"Count of deployments by status (only includes statuses with non-zero counts)"},"byPlatform":{"type":"object","additionalProperties":{"type":"number"},"description":"Count of deployments by platform (only includes platforms with non-zero counts)"},"byCurrentRelease":{"type":"object","additionalProperties":{"type":"number"},"description":"Count of deployments by currentReleaseId. The empty string key represents deployments with no current release (initial provisioning)."},"byPinnedRelease":{"type":"object","additionalProperties":{"type":"number"},"description":"Count of deployments by pinnedReleaseId among deployments that are pinned. Excludes unpinned deployments."}},"required":["total","byStatus","byPlatform","byCurrentRelease","byPinnedRelease"]},"DeploymentDetailResponse":{"allOf":[{"$ref":"#/components/schemas/Deployment"},{"type":"object","properties":{"release":{"$ref":"#/components/schemas/DeploymentReleaseInfo"},"deploymentGroup":{"$ref":"#/components/schemas/DeploymentGroupInfo"},"project":{"$ref":"#/components/schemas/DeploymentProjectInfo"}}}]},"Deployment":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!ag[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment name.","example":"acme-prod"},"publicSubdomain":{"type":"string","nullable":true,"minLength":1,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","description":"Public subdomain for auto-generated domains"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"basePlatform":{"type":"string","nullable":true,"enum":["aws","gcp","azure",null],"description":"Underlying cloud platform for Kubernetes deployments."},"region":{"type":"string","nullable":true,"description":"Cloud region or location for the deployment."},"deploymentProtocolVersion":{"$ref":"#/components/schemas/DeploymentProtocolVersion"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"ID of deployment group this deployment belongs to","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-provided configuration (network, deployment model, approvals)"},"stackState":{"type":"object","nullable":true,"properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"State of infrastructure components managed by this deployment"},"runtimeMetadata":{"type":"object","nullable":true,"properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment state persistence"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the currently deployed release (actual state)","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the desired release for deployment/update (desired state)","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"releaseChannel":{"allOf":[{"$ref":"#/components/schemas/ReleaseChannelName"},{"description":"Named release stream followed when the deployment is not pinned"}]},"importSource":{"type":"string","nullable":true,"enum":["cloudformation","terraform","helm",null],"description":"Setup source that imported this deployment"},"setupMethod":{"type":"string","nullable":true,"enum":["cloudformation","google-oauth","terraform","helm","cli","manual",null],"description":"Setup method that created the deployment record and owns setup-time resources."},"setupMetadata":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Setup method metadata needed to guide privileged teardown."},"setupTarget":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup target for compatibility checks"},"setupFingerprint":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup compatibility fingerprint"},"setupFingerprintVersion":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Imported setup fingerprint algorithm version"},"operatorScope":{"type":"string","nullable":true,"description":"Display-only scope reported by the Operator manifest"},"operatorPermission":{"type":"string","nullable":true,"description":"Display-only permission tier reported by the Operator manifest"},"operatorVersion":{"type":"string","nullable":true,"description":"Version reported by the Operator"},"capabilities":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OperatorCapabilityReport"},"description":"Capability state reported by the Operator"},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat from the deployment"},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Latest error information if the deployment is in a failed state"},"environmentVariables":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"},"description":"Configuration of environment variables for the deployment"},"targetEnvironmentVariables":{"type":"object","nullable":true,"properties":{"variables":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"},"description":"Environment variables in the snapshot"},"hash":{"type":"string","description":"Deterministic hash of all variables for change detection"},"createdAt":{"type":"string","format":"date-time","description":"ISO 8601 timestamp when snapshot was created"}},"required":["variables","hash","createdAt"],"description":"Snapshot of target environment variables for the deployment"},"currentEnvironmentVariables":{"type":"object","nullable":true,"properties":{"variables":{"type":"array","items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"},"description":"Environment variables in the snapshot"},"hash":{"type":"string","description":"Deterministic hash of all variables for change detection"},"createdAt":{"type":"string","format":"date-time","description":"ISO 8601 timestamp when snapshot was created"}},"required":["variables","hash","createdAt"],"description":"Snapshot of current environment variables for the deployment"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"ID of the manager responsible for this deployment"}]},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"}},"required":["id","name","status","projectId","platform","deploymentProtocolVersion","deploymentGroupId","stackSettings","releaseChannel","retryRequested","createdAt","updatedAt","managerId","workspaceId"]},"DeploymentConnectionInfo":{"type":"object","properties":{"arc":{"type":"object","properties":{"url":{"type":"string","format":"uri","description":"Manager URL for commands"},"deploymentId":{"type":"string","description":"Deployment ID to use in command requests"}},"required":["url","deploymentId"]},"resources":{"type":"object","additionalProperties":{"type":"object","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."},"publicEndpoints":{"type":"object","additionalProperties":{"type":"object","properties":{"url":{"type":"string","format":"uri"},"protocol":{"type":"string","enum":["http","tcp"]},"host":{"type":"string","minLength":1},"port":{"type":"integer","minimum":1,"maximum":65535},"wildcardHost":{"type":"string"}},"required":["url","protocol","host","port"]},"description":"Public endpoints keyed by endpoint name."}},"required":["type"]},"description":"Deployed resources and their public endpoints"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"platform":{"type":"string"}},"required":["arc","resources","status","platform"]},"CreateDeploymentResponse":{"type":"object","properties":{"deployment":{"$ref":"#/components/schemas/Deployment"},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Effective deployment model persisted for the deployment."},"token":{"type":"string","description":"Deployment token (only returned when using deployment group token)"}},"required":["deployment","deploymentModel"]},"NewDeploymentRequest":{"type":"object","properties":{"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!ag[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment name.","example":"acme-prod"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"deploymentGroupId":{"type":"string","description":"Required for workspace/project tokens. Deployment group tokens use their own group automatically."},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Optional manager to assign. If omitted, the project default or system manager is selected."}]},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"environmentVariables":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"},"description":"Configuration of environment variables for the deployment"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"project":{"type":"string","maxLength":100,"description":"Project ID or name"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"Stack settings for deployment customization"},"resourcePrefix":{"$ref":"#/components/schemas/ResourcePrefix"},"publicSubdomain":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","description":"Optional deployment subdomain under the project's generated-domain parent. Operator-only and requires a custom project domain; customer deploy-link tokens and the shared system domain are rejected. Omit to generate a random subdomain."},"setupMethod":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMethod"},{"description":"Setup method that created the deployment. Defaults to cli."}]},"setupMetadata":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMetadata"},{"description":"Setup method metadata used to guide privileged teardown."}]},"inputValues":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/StackInputValueRequest"},"default":{},"description":"Stack input values provided by the deployment creator."},"operatorScope":{"type":"string","minLength":1,"maxLength":512,"description":"Display-only scope reported by the Operator manifest."},"operatorPermission":{"type":"string","minLength":1,"maxLength":64,"description":"Display-only permission tier reported by the Operator manifest."},"initialDesiredRelease":{"type":"string","enum":["active","none"],"default":"active","description":"Desired-release selection for a new deployment. Use none to register an environment without initially requesting a release; later updates can assign one."},"releaseChannel":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z][a-z0-9-]*$","default":"production","description":"Release channel followed while this deployment is not pinned."}},"required":["name","platform","project"],"additionalProperties":false,"description":"Request schema for creating a new deployment"},"ResourcePrefix":{"type":"string","pattern":"^[a-z](?:[a-z0-9]|-(?=[a-z0-9])){1,38}[a-z0-9]$","description":"Optional physical-name prefix for generated cloud resources. Omit to let the manager generate one."},"ImportDeploymentRequest":{"oneOf":[{"$ref":"#/components/schemas/ForwardImportRequest"},{"$ref":"#/components/schemas/PersistImportedDeploymentRequest"}],"description":"Request schema for importing a deployment from resolved setup infrastructure"},"ForwardImportRequest":{"type":"object","properties":{"mode":{"type":"string","enum":["forward"],"default":"forward"},"project":{"type":"string","maxLength":100,"description":"Project ID or name. Required for user-session callers."},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Required for user-session callers. Deployment-group tokens use their own group automatically.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Manager ID. If omitted, the first suitable manager for the source platform is used."}]},"source":{"$ref":"#/components/schemas/ImportSource"},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"}},"required":["source"]},"ImportSource":{"type":"object","properties":{"deploymentName":{"type":"string","minLength":1,"description":"User-chosen deployment name. Must be unique within the deployment group; the manager returns 409 on collision."},"resourcePrefix":{"allOf":[{"$ref":"#/components/schemas/ResourcePrefix"},{"description":"Stable physical-name prefix used by the setup artifact."}]},"sourceKind":{"$ref":"#/components/schemas/ImportSourceKind"},"setupMetadata":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMetadata"},{"description":"Setup source metadata needed to guide privileged teardown."}]},"releaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Release that produced the setup artifact. Defaults to latest.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Cloud platform of the imported stack"},"basePlatform":{"$ref":"#/components/schemas/KubernetesBasePlatform"},"region":{"type":"string","description":"Region or location reported by the setup artifact"},"setupTarget":{"allOf":[{"$ref":"#/components/schemas/SetupTarget"},{"description":"Setup target this package was generated for"}]},"setupImportFormatVersion":{"$ref":"#/components/schemas/SetupImportFormatVersion"},"setupFingerprint":{"allOf":[{"$ref":"#/components/schemas/SetupFingerprint"},{"description":"Setup compatibility fingerprint embedded in the package"}]},"setupFingerprintVersion":{"allOf":[{"$ref":"#/components/schemas/SetupFingerprintVersion"},{"description":"Setup fingerprint algorithm version embedded in the package"}]},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}],"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."},"resources":{"type":"array","items":{"$ref":"#/components/schemas/ImportedResource"},"minItems":1}},"required":["deploymentName","resourcePrefix","platform","region","setupTarget","setupImportFormatVersion","setupFingerprint","setupFingerprintVersion","stackSettings","resources"],"description":"Resolved setup import payload"},"ImportSourceKind":{"type":"string","enum":["cloudformation","terraform","helm"],"description":"Source label for observability only — does not affect import behavior."},"KubernetesBasePlatform":{"type":"string","enum":["aws","gcp","azure"],"description":"Base cloud platform for cloud-backed Kubernetes imports."},"SetupImportFormatVersion":{"type":"integer","minimum":0,"exclusiveMinimum":true,"description":"Setup import payload format version embedded in the package"},"ImportedResource":{"type":"object","properties":{"id":{"type":"string","description":"Resource id from the active stack"},"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."},"importData":{"type":"object","additionalProperties":{"nullable":true},"description":"Resolved typed import payload"}},"required":["id","type","importData"]},"PersistImportedDeploymentRequest":{"type":"object","properties":{"mode":{"type":"string","enum":["persist"]},"name":{"type":"string","minLength":1,"description":"Deployment name. Must be unique within the deployment group."},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"publicSubdomain":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","description":"Optional deployment subdomain under the project's generated-domain parent. Operator-only and requires a custom project domain; customer deploy-link tokens and the shared system domain are rejected. Omit to generate a random subdomain."},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"basePlatform":{"$ref":"#/components/schemas/KubernetesBasePlatform"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."},"stackState":{"nullable":true},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Platform-specific environment information"},"runtimeMetadata":{"type":"object","properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment\n\nStores deployment state that needs to persist across step calls."},"scheduleReconciliation":{"type":"boolean","default":false},"deploymentProtocolVersion":{"$ref":"#/components/schemas/DeploymentProtocolVersion"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"default":"provisioning","description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"currentReleaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"importSource":{"allOf":[{"$ref":"#/components/schemas/ImportSourceKind"},{"description":"Package source that produced the import payload"}]},"setupMetadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"setupTarget":{"$ref":"#/components/schemas/SetupTarget"},"setupFingerprint":{"$ref":"#/components/schemas/SetupFingerprint"},"setupFingerprintVersion":{"$ref":"#/components/schemas/SetupFingerprintVersion"},"deploymentToken":{"type":"string"},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]}],"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."},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"}},"required":["mode","name","deploymentGroupId","managerId","platform","stackSettings","runtimeMetadata","deploymentProtocolVersion","setupTarget","setupFingerprint","setupFingerprintVersion"]},"SetFirstPartyDeploymentInputsResponse":{"type":"object","properties":{"ok":{"type":"boolean"}},"required":["ok"]},"SetFirstPartyDeploymentInputsRequest":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"}},"required":["platform"]},"SetupRegistrationOperationResponse":{"type":"object","properties":{"id":{"type":"string","pattern":"setupop_[0-9a-z]{28}$","description":"Unique identifier for the setup registration operation.","example":"setupop_y41lqnfosxuwqkzmiax7"},"action":{"$ref":"#/components/schemas/SetupRegistrationAction"},"sourceKind":{"allOf":[{"$ref":"#/components/schemas/ImportSourceKind"},{"description":"Package source that produced the import payload"}]},"status":{"$ref":"#/components/schemas/SetupRegistrationOperationStatus"},"deploymentId":{"type":"string","nullable":true,"pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"physicalResourceId":{"type":"string","nullable":true},"result":{"$ref":"#/components/schemas/SetupRegistrationOperationResult"},"error":{"type":"object","nullable":true,"properties":{"message":{"type":"string"},"retryable":{"type":"boolean"}},"required":["message","retryable"]}},"required":["id","action","sourceKind","status","deploymentId","physicalResourceId","result","error"]},"SetupRegistrationAction":{"type":"string","enum":["create","update","delete"]},"SetupRegistrationOperationStatus":{"type":"string","enum":["pending","processing","waiting-for-handoff","succeeded","failed","responding","responded"]},"SetupRegistrationOperationResult":{"type":"object","nullable":true,"properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"deploymentToken":{"type":"string","nullable":true},"helmValues":{"type":"string","nullable":true}},"required":["deploymentId","deploymentToken","helmValues"]},"CreateSetupRegistrationOperationRequest":{"type":"object","properties":{"action":{"$ref":"#/components/schemas/SetupRegistrationAction"},"sourceKind":{"allOf":[{"$ref":"#/components/schemas/ImportSourceKind"},{"description":"Package source that produced the import payload"}]},"source":{"allOf":[{"$ref":"#/components/schemas/ImportSource"}],"nullable":true},"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"},"deploymentId":{"type":"string","nullable":true,"pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"idempotencyKey":{"type":"string","minLength":1,"maxLength":512},"cloudFormation":{"$ref":"#/components/schemas/SetupRegistrationCloudFormationTarget"}},"required":["action","sourceKind"],"additionalProperties":false},"SetupRegistrationCloudFormationTarget":{"type":"object","nullable":true,"properties":{"stackId":{"type":"string","minLength":1},"requestId":{"type":"string","minLength":1},"logicalResourceId":{"type":"string","minLength":1},"responseUrl":{"type":"string","format":"uri"},"physicalResourceId":{"type":"string","nullable":true,"minLength":1},"serviceTimeoutSeconds":{"type":"integer","minimum":60,"maximum":7200,"default":3300}},"required":["stackId","requestId","logicalResourceId","responseUrl"],"additionalProperties":false},"DeleteDeploymentResponse":{"type":"object","properties":{"action":{"type":"string","enum":["cleanup","detach","forget"]},"message":{"type":"string"}},"required":["action","message"]},"DeleteDeploymentRequest":{"type":"object","properties":{"action":{"type":"string","enum":["cleanup","detach","forget"]}},"required":["action"]},"PinReleaseRequest":{"type":"object","properties":{"releaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Release ID to pin the deployment to. Set to null to resume its followed channel.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"}},"additionalProperties":false,"description":"Request schema for pinning/unpinning deployment release"},"DeploymentInputsResponse":{"type":"object","properties":{"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."}},"values":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/StackInputValueRequest"},"description":"Current non-secret input values. Secret values are never returned."},"providedInputIds":{"type":"array","items":{"type":"string"},"description":"Input IDs that currently have a value, including redacted secrets."}},"required":["inputs","values","providedInputIds"]},"UpdateDeploymentInputsResponse":{"allOf":[{"$ref":"#/components/schemas/DeploymentInputsResponse"},{"type":"object","properties":{"runtimeUpdateRequested":{"type":"boolean"}},"required":["runtimeUpdateRequested"]}]},"UpdateDeploymentInputsRequest":{"type":"object","properties":{"inputValues":{"$ref":"#/components/schemas/StackInputValuesRequest"},"clearInputIds":{"type":"array","items":{"type":"string"},"default":[]}},"additionalProperties":false},"UpdateDeploymentEnvironmentVariablesRequest":{"type":"object","properties":{"variables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Variable name"},"value":{"type":"string","description":"Variable value"},"type":{"type":"string","enum":["plain","secret"],"description":"Variable type"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource patterns (null = all resources)"}},"required":["name","value","type"]},"description":"Environment variables for the deployment"}},"required":["variables"],"additionalProperties":false,"description":"Request schema for updating deployment environment variables"},"CreateDeploymentTokenResponse":{"type":"object","properties":{"token":{"type":"string","description":"The generated deployment token (only shown once)"},"deploymentId":{"type":"string","description":"The deployment ID that this token is scoped to"}},"required":["token","deploymentId"]},"CreateDeploymentTokenRequest":{"type":"object","properties":{"description":{"type":"string","nullable":true,"minLength":3,"maxLength":128,"description":"Optional description for the deployment token"},"expiresAt":{"type":"string","format":"date-time","nullable":true,"description":"Optional expiration date for the deployment token"}},"required":["description"]},"CreateManagerResponse":{"type":"object","properties":{"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"setupStatus":{"type":"string","enum":["pending"]},"setupToken":{"type":"string"},"setupTokenId":{"type":"string"},"deploymentLink":{"type":"string"},"setupConfig":{"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"inputValues":{"$ref":"#/components/schemas/EncryptedStackInputValues"},"publicSubdomain":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9]([a-z0-9-]*[a-z0-9])?$","description":"Operator-pinned deployment subdomain for this setup token."},"environmentVariables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"type":{"type":"string","enum":["plain","secret"]},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"}}},"required":["name","type","targetResources"]}}},"required":["metadata","policy","environmentVariables"]},"setup":{"oneOf":[{"type":"object","properties":{"method":{"type":"string","enum":["cloudformation"]},"deploymentPortalUrl":{"type":"string"},"launchUrl":{"type":"string"},"templateUrl":{"type":"string"},"stackName":{"type":"string"},"region":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["method","deploymentPortalUrl","launchUrl","templateUrl","stackName","region","stackSettings"]},{"type":"object","properties":{"method":{"type":"string","enum":["google-oauth"]},"deploymentPortalUrl":{"type":"string"},"managerUrl":{"type":"string"},"oauthStartUrl":{"type":"string"},"region":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["method","deploymentPortalUrl","managerUrl","oauthStartUrl","region","stackSettings"]},{"type":"object","properties":{"method":{"type":"string","enum":["terraform"]},"deploymentPortalUrl":{"type":"string"},"managerUrl":{"type":"string"},"providerSource":{"type":"string"},"moduleSource":{"type":"string"},"moduleVersion":{"type":"string"},"moduleInputs":{"type":"object","additionalProperties":{"type":"string"}},"mainTf":{"type":"string"},"tfvars":{"type":"string"},"commands":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["method","deploymentPortalUrl","managerUrl","providerSource","moduleSource","moduleInputs","mainTf","tfvars","commands","stackSettings"]}]}},"required":["managerId","setupStatus","setupToken","setupTokenId","deploymentLink","setupConfig","setup"]},"NewManagerRequest":{"type":"object","properties":{"name":{"type":"string"},"cloud":{"$ref":"#/components/schemas/PrivateManagerCloud"},"region":{"type":"string","minLength":1,"maxLength":64,"description":"Cloud region for the manager."},"setupMethod":{"$ref":"#/components/schemas/PrivateManagerSetupMethod"},"network":{"type":"string","enum":["create","default"],"description":"Optional network mode for the private-manager setup. Defaults to create for production isolation; default uses the provider default network for faster dev/test setup."},"otlpConfig":{"type":"object","properties":{"logsEndpoint":{"type":"string","format":"uri","description":"External OTLP logs endpoint (e.g. https://api.axiom.co/v1/logs)"},"logsAuthHeader":{"type":"string","description":"Auth header in 'key=value,...' format (e.g. 'authorization=Bearer ,x-axiom-dataset=')"}},"required":["logsEndpoint","logsAuthHeader"],"description":"Optional external OTLP config for forwarding logs to Axiom, Datadog, etc. Falls back to built-in DeepStore when not set."}},"required":["name","cloud","region"]},"PrivateManagerCloud":{"type":"string","enum":["aws","gcp","azure"],"description":"Cloud where the private manager will be deployed."},"PrivateManagerSetupMethod":{"type":"string","enum":["cloudformation","google-oauth","terraform"],"description":"Optional setup method. Defaults to cloudformation for AWS, google-oauth for GCP, and terraform for Azure."},"ManagerRetryResponse":{"oneOf":[{"allOf":[{"$ref":"#/components/schemas/CreateManagerResponse"},{"type":"object","properties":{"mode":{"type":"string","enum":["setup"]}},"required":["mode"]}]},{"$ref":"#/components/schemas/ManagerRetryDeploymentResponse"}]},"ManagerRetryDeploymentResponse":{"type":"object","properties":{"mode":{"type":"string","enum":["deployment"]},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"setupStatus":{"type":"string","enum":["provisioning"]},"deploymentId":{"type":"string"},"message":{"type":"string"}},"required":["mode","managerId","setupStatus","deploymentId","message"]},"Manager":{"type":"object","properties":{"id":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for the manager"}]},"name":{"type":"string","description":"Display name of the manager"},"targets":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms this manager can handle"},"cloud":{"type":"string","nullable":true,"enum":["aws","gcp","azure","kubernetes","machines","local","test",null],"description":"Cloud where this private manager is deployed"},"region":{"type":"string","nullable":true,"description":"Cloud region selected for this private manager"},"setupStatus":{"type":"string","nullable":true,"enum":["pending","provisioning","active","failed","deleting","deleted",null],"description":"Private manager setup lifecycle status"},"url":{"type":"string","nullable":true,"format":"uri","description":"Manager URL (self-reported via heartbeat). DeepStore endpoints are exposed through this URL (e.g., {url}/v1/logs)"},"managementConfigs":{"$ref":"#/components/schemas/ManagerManagementConfigs"},"isSystem":{"type":"boolean","description":"Whether this is a system manager (Alien-hosted)"},"workspaceId":{"type":"string","description":"The workspace ID (for system managers, this is ALIEN_WORKSPACE_ID)"},"status":{"$ref":"#/components/schemas/ManagerStatus"},"version":{"type":"string","nullable":true,"description":"Manager version (self-reported via heartbeat)"},"metrics":{"type":"object","nullable":true,"properties":{"activeDeployments":{"type":"number","description":"Number of active deployments"},"pendingDeployments":{"type":"number","description":"Number of pending deployments"},"memoryUsageMb":{"type":"number","description":"Memory usage in megabytes"},"cpuUsagePercent":{"type":"number","description":"CPU usage percentage"}},"description":"Runtime metrics (self-reported via heartbeat)"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat from the manager"},"logsDatabaseId":{"type":"string","nullable":true,"description":"ID of the logs database associated with this manager"},"managedDeploymentCount":{"type":"integer","minimum":0,"description":"Number of deployments currently being managed by this manager"},"defaultProjectCount":{"type":"integer","minimum":0,"description":"Number of projects that select this manager as a default manager"},"createdAt":{"type":"string","format":"date-time","description":"Timestamp when the manager was created"}},"required":["id","name","targets","managementConfigs","isSystem","workspaceId","status","managedDeploymentCount","defaultProjectCount","createdAt"],"description":"Manager schema"},"ManagerManagementConfigs":{"type":"object","properties":{"aws":{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"},"platform":{"type":"string","enum":["aws"]}},"required":["managingRoleArn","platform"]},"gcp":{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"},"platform":{"type":"string","enum":["gcp"]}},"required":["serviceAccountEmail","platform"]},"azure":{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."},"platform":{"type":"string","enum":["azure"]}},"required":["managingTenantId","oidcIssuer","oidcSubject","platform"]},"kubernetes":{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]}},"description":"Per-platform management configurations for cross-account access (self-reported via heartbeat)"},"ManagerStatus":{"type":"string","enum":["healthy","degraded","unhealthy","unknown"],"description":"Current health status"},"ManagerDomainBindingResponse":{"type":"object","properties":{"managerDomainBinding":{"$ref":"#/components/schemas/DomainEndpoint"}},"required":["managerDomainBinding"]},"UpdateManagerDomainBinding":{"type":"object","properties":{"domainId":{"type":"string","nullable":true,"pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"}},"additionalProperties":false},"UpdateManagerRequest":{"type":"object","properties":{"releaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Optional release ID to update to. If not provided, the active release will be chosen","example":"rel_WbhQgksrawSKIpEN0NAssHX9"}},"additionalProperties":false,"description":"Request schema for updating a manager to a new release"},"Event":{"type":"object","properties":{"id":{"type":"string","pattern":"event_[0-9a-zA-Z]{28}$","description":"Unique identifier for the event.","example":"event_MtSA24M3pWuAkQYxgZxuRI"},"deploymentId":{"type":"string","nullable":true,"pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"releaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"debugSessionId":{"type":"string","nullable":true,"pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Unique identifier for the debug session.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"data":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["LoadingConfiguration"]}},"required":["type"]},{"type":"object","properties":{"type":{"type":"string","enum":["Finished"]}},"required":["type"]},{"type":"object","properties":{"stack":{"type":"string","description":"Name of the stack being built"},"type":{"type":"string","enum":["BuildingStack"]}},"required":["stack","type"]},{"type":"object","properties":{"platform":{"type":"string","description":"Platform being targeted"},"stack":{"type":"string","description":"Name of the stack being checked"},"type":{"type":"string","enum":["RunningPreflights"]}},"required":["platform","stack","type"]},{"type":"object","properties":{"targetTriple":{"type":"string","description":"Target triple for the runtime"},"type":{"type":"string","enum":["DownloadingAlienRuntime"]},"url":{"type":"string","description":"URL being downloaded from"}},"required":["targetTriple","type","url"]},{"type":"object","properties":{"relatedResources":{"type":"array","items":{"type":"string"},"description":"All resource names sharing this build (for deduped container groups)"},"resourceName":{"type":"string","description":"Name of the resource being built"},"resourceType":{"type":"string","description":"Type of the resource: \"worker\", \"container\""},"type":{"type":"string","enum":["BuildingResource"]}},"required":["resourceName","resourceType","type"]},{"type":"object","properties":{"image":{"type":"string","description":"Name of the image being built"},"type":{"type":"string","enum":["BuildingImage"]}},"required":["image","type"]},{"type":"object","properties":{"image":{"type":"string","description":"Name of the image being pushed"},"progress":{"oneOf":[{"type":"object","properties":{"bytesUploaded":{"type":"integer","minimum":0,"description":"Bytes uploaded so far"},"layersUploaded":{"type":"integer","minimum":0,"description":"Number of layers uploaded so far"},"operation":{"type":"string","description":"Current operation being performed"},"totalBytes":{"type":"integer","minimum":0,"description":"Total bytes to upload"},"totalLayers":{"type":"integer","minimum":0,"description":"Total number of layers to upload"}},"required":["bytesUploaded","layersUploaded","operation","totalBytes","totalLayers"],"description":"Progress information for image push operations"},{"nullable":true}]},"type":{"type":"string","enum":["PushingImage"]}},"required":["image","type"]},{"type":"object","properties":{"destination":{"type":"string","nullable":true,"description":"Human-readable destination for pushed images"},"platform":{"type":"string","description":"Target platform"},"stack":{"type":"string","description":"Name of the stack being pushed"},"type":{"type":"string","enum":["PushingStack"]}},"required":["platform","stack","type"]},{"type":"object","properties":{"resourceName":{"type":"string","description":"Name of the resource being pushed"},"resourceType":{"type":"string","description":"Type of the resource: \"worker\", \"container\""},"type":{"type":"string","enum":["PushingResource"]}},"required":["resourceName","resourceType","type"]},{"type":"object","properties":{"project":{"type":"string","description":"Project name"},"type":{"type":"string","enum":["CreatingRelease"]}},"required":["project","type"]},{"type":"object","properties":{"language":{"type":"string","description":"Language being compiled (rust, typescript, etc.)"},"progress":{"type":"string","nullable":true,"description":"Current progress/status line from the build output"},"type":{"type":"string","enum":["CompilingCode"]}},"required":["language","type"]},{"type":"object","properties":{"nextState":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"Represents the collective state of all resources in a stack, including platform and pending actions."},"suggestedDelayMs":{"type":"integer","nullable":true,"minimum":0,"description":"An suggested duration to wait before executing the next step."},"type":{"type":"string","enum":["StackStep"]}},"required":["nextState","type"]},{"type":"object","properties":{"type":{"type":"string","enum":["GeneratingCloudFormationTemplate"]}},"required":["type"]},{"type":"object","properties":{"platform":{"type":"string","description":"Platform for which the template is being generated"},"type":{"type":"string","enum":["GeneratingTemplate"]}},"required":["platform","type"]},{"type":"object","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"]}},"required":["agentId","releaseId","type"]},{"type":"object","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"]}},"required":["agentId","releaseId","type"]},{"type":"object","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"]}},"required":["agentId","releaseId","type"]},{"type":"object","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"]}},"required":["agentId","debugSessionId","type"]},{"type":"object","properties":{"strategyName":{"type":"string","description":"Name of the deployment strategy being used"},"type":{"type":"string","enum":["PreparingEnvironment"]}},"required":["strategyName","type"]},{"type":"object","properties":{"stackName":{"type":"string","description":"Name of the stack being deployed"},"type":{"type":"string","enum":["DeployingStack"]}},"required":["stackName","type"]},{"type":"object","properties":{"stackName":{"type":"string","description":"Name of the stack being tested"},"type":{"type":"string","enum":["RunningTestWorker"]}},"required":["stackName","type"]},{"type":"object","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"]}},"required":["stackName","strategyName","type"]},{"type":"object","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"]}},"required":["stackName","strategyName","type"]},{"type":"object","properties":{"platformName":{"type":"string","description":"Name of the platform (e.g., \"AWS\", \"GCP\")"},"type":{"type":"string","enum":["SettingUpPlatformContext"]}},"required":["platformName","type"]},{"type":"object","properties":{"repositoryName":{"type":"string","description":"Name of the docker repository"},"type":{"type":"string","enum":["EnsuringDockerRepository"]}},"required":["repositoryName","type"]},{"type":"object","properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"currentStatus":{"type":"string","description":"Current stack status"},"type":{"type":"string","enum":["DeployingCloudFormationStack"]}},"required":["cfnStackName","currentStatus","type"]},{"type":"object","properties":{"roleArn":{"type":"string","description":"ARN of the role to assume"},"type":{"type":"string","enum":["AssumingRole"]}},"required":["roleArn","type"]},{"type":"object","properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"type":{"type":"string","enum":["ImportingStackStateFromCloudFormation"]}},"required":["cfnStackName","type"]},{"type":"object","properties":{"cfnStackName":{"type":"string","description":"Name of the CloudFormation stack"},"currentStatus":{"type":"string","description":"Current stack status"},"type":{"type":"string","enum":["DeletingCloudFormationStack"]}},"required":["cfnStackName","currentStatus","type"]},{"type":"object","properties":{"bucketNames":{"type":"array","items":{"type":"string"},"description":"Names of the S3 buckets being emptied"},"type":{"type":"string","enum":["EmptyingBuckets"]}},"required":["bucketNames","type"]},{"type":"object","properties":{"deploymentGroupId":{"type":"string","description":"ID of the deployment group this slot belongs to"},"deploymentId":{"type":"string","description":"ID of the deployment that was created"},"releaseId":{"type":"string","nullable":true,"description":"Initial release the slot was created with, if any"},"type":{"type":"string","enum":["DeploymentCreated"]}},"required":["deploymentGroupId","deploymentId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"previousReleaseId":{"type":"string","nullable":true,"description":"ID of the release that was previously live, if any"},"releaseId":{"type":"string","description":"ID of the release that is now live"},"type":{"type":"string","enum":["DeploymentReleased"]}},"required":["deploymentId","releaseId","type"]},{"type":"object","properties":{"attemptedReleaseId":{"type":"string","nullable":true,"description":"ID of the release the platform was trying to deploy, if known"},"deploymentId":{"type":"string","description":"ID of the deployment"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},"phase":{"type":"string","enum":["preflights","provisioning","updating","deleting"],"description":"Phase of a deployment at which a failure occurred.\n\nDerived from the source deployment status: `preflights-failed` →\n`Preflights`, `provisioning-failed` → `Provisioning`, `update-failed` →\n`Updating`, `delete-failed` → `Deleting`.\n`refresh-failed` is modelled separately via `DeploymentDegraded`."},"type":{"type":"string","enum":["DeploymentFailed"]}},"required":["deploymentId","error","phase","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"error":{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},"type":{"type":"string","enum":["DeploymentDegraded"]}},"required":["deploymentId","error","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"releaseId":{"type":"string","description":"ID of the release that is now live"},"type":{"type":"string","enum":["DeploymentRecovered"]}},"required":["deploymentId","releaseId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment that was deleted"},"type":{"type":"string","enum":["DeploymentDeleted"]}},"required":["deploymentId","type"]},{"type":"object","properties":{"actor":{"oneOf":[{"type":"object","properties":{"email":{"type":"string","nullable":true,"description":"User email when the principal is a user."},"id":{"type":"string","description":"Stable user or service-account identifier."},"kind":{"type":"string","enum":["user","serviceAccount"],"description":"Type of authenticated principal that requested an event."}},"required":["id","kind"],"description":"Authenticated principal that requested a deployment intent event."},{"nullable":true}]},"channel":{"type":"string","description":"Name of the channel that moved"},"previousReleaseId":{"type":"string","nullable":true,"description":"ID of the release that was previously current, if any"},"releaseId":{"type":"string","description":"ID of the release that is now current"},"type":{"type":"string","enum":["ReleaseChannelUpdated"]}},"required":["channel","releaseId","type"]},{"type":"object","properties":{"actor":{"oneOf":[{"type":"object","properties":{"email":{"type":"string","nullable":true,"description":"User email when the principal is a user."},"id":{"type":"string","description":"Stable user or service-account identifier."},"kind":{"type":"string","enum":["user","serviceAccount"],"description":"Type of authenticated principal that requested an event."}},"required":["id","kind"],"description":"Authenticated principal that requested a deployment intent event."},{"nullable":true}]},"channel":{"type":"string","description":"Newly followed channel"},"deploymentId":{"type":"string","description":"ID of the deployment"},"previousChannel":{"type":"string","description":"Previously followed channel"},"type":{"type":"string","enum":["DeploymentReleaseChannelChanged"]}},"required":["channel","deploymentId","previousChannel","type"]},{"type":"object","properties":{"actor":{"oneOf":[{"type":"object","properties":{"email":{"type":"string","nullable":true,"description":"User email when the principal is a user."},"id":{"type":"string","description":"Stable user or service-account identifier."},"kind":{"type":"string","enum":["user","serviceAccount"],"description":"Type of authenticated principal that requested an event."}},"required":["id","kind"],"description":"Authenticated principal that requested a deployment intent event."},{"nullable":true}]},"attemptedReleaseId":{"type":"string","nullable":true,"description":"ID of the release that the failed attempt was targeting, if known"},"deploymentId":{"type":"string","description":"ID of the deployment"},"previousError":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"type":{"type":"string","enum":["DeploymentRetryRequested"]}},"required":["deploymentId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"releaseId":{"type":"string","description":"ID of the release being redeployed"},"type":{"type":"string","enum":["DeploymentRedeployRequested"]}},"required":["deploymentId","releaseId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"pinnedReleaseId":{"type":"string","description":"ID of the release that is now pinned"},"previousPinnedReleaseId":{"type":"string","nullable":true,"description":"ID of the previously pinned release, if any"},"type":{"type":"string","enum":["DeploymentReleasePinned"]}},"required":["deploymentId","pinnedReleaseId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"previousPinnedReleaseId":{"type":"string","description":"ID of the release that was previously pinned"},"type":{"type":"string","enum":["DeploymentReleaseUnpinned"]}},"required":["deploymentId","previousPinnedReleaseId","type"]},{"type":"object","properties":{"actor":{"oneOf":[{"type":"object","properties":{"email":{"type":"string","nullable":true,"description":"User email when the principal is a user."},"id":{"type":"string","description":"Stable user or service-account identifier."},"kind":{"type":"string","enum":["user","serviceAccount"],"description":"Type of authenticated principal that requested an event."}},"required":["id","kind"],"description":"Authenticated principal that requested a deployment intent event."},{"nullable":true}]},"changedKeys":{"type":"array","items":{"type":"string"},"description":"Names of the environment variables that changed (added, removed, or modified)"},"deploymentId":{"type":"string","description":"ID of the deployment"},"type":{"type":"string","enum":["DeploymentEnvironmentUpdated"]}},"required":["changedKeys","deploymentId","type"]},{"type":"object","properties":{"deploymentId":{"type":"string","description":"ID of the deployment"},"type":{"type":"string","enum":["DeploymentDeletionRequested"]}},"required":["deploymentId","type"]}]},"state":{"oneOf":[{"type":"object","properties":{"failed":{"type":"object","properties":{"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]}},"description":"Event failed with an error"}},"required":["failed"]},{"type":"string","enum":["none"]},{"type":"string","enum":["started"]},{"type":"string","enum":["success"]}],"description":"Represents the state of an event"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"createdAt":{"type":"string","format":"date-time"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"}},"required":["id","data","state","projectId","createdAt","workspaceId"]},"GenerateManagerTokenResponse":{"type":"object","properties":{"accessToken":{"type":"string","description":"Platform JWT for authenticating with the manager"},"expiresIn":{"type":"number","nullable":true,"description":"Token lifetime in seconds"},"tokenType":{"type":"string","enum":["Bearer"]},"managerUrl":{"type":"string","description":"Manager URL for direct access"},"databaseId":{"type":"string","nullable":true,"description":"Log database ID (null if logs not configured)"},"controlPlaneUrl":{"type":"string","nullable":true,"description":"Log control plane URL (null if logs not configured)"}},"required":["accessToken","expiresIn","tokenType","managerUrl","databaseId","controlPlaneUrl"]},"GenerateManagerTokenRequest":{"type":"object","properties":{"project":{"type":"string","maxLength":100,"description":"Project ID or name to scope token access to."}},"required":["project"]},"GenerateManagerBindingTokenResponse":{"type":"object","properties":{"accessToken":{"type":"string"},"expiresIn":{"type":"number","nullable":true},"tokenType":{"type":"string","enum":["Bearer"]},"managerUrl":{"type":"string"}},"required":["accessToken","expiresIn","tokenType","managerUrl"]},"GenerateManagerBindingTokenRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"}},"required":["deploymentId"],"additionalProperties":false},"ResolveManagerGcpOAuthProviderResponse":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["alien-managed"]}},"required":["mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["custom"]},"clientId":{"$ref":"#/components/schemas/GcpOAuthClientId"},"clientSecret":{"$ref":"#/components/schemas/GcpOAuthClientSecret"}},"required":["mode","clientId","clientSecret"]}]},"ResolveManagerGcpOAuthProviderRequest":{"type":"object","properties":{"deploymentGroupToken":{"type":"string","minLength":1,"description":"Deployment-group bearer token whose project-level OAuth provider should be resolved."},"returnOrigin":{"type":"string","format":"uri","description":"Browser origin that will receive the Google OAuth callback result. Must be a first-party dashboard origin or the active portal origin for the deployment group's project."}},"required":["deploymentGroupToken"]},"ManagerHeartbeatResponse":{"type":"object","properties":{"acknowledged":{"type":"boolean"},"timestamp":{"type":"string"}},"required":["acknowledged","timestamp"]},"ManagerHeartbeatRequest":{"type":"object","properties":{"status":{"type":"string","enum":["healthy","degraded","unhealthy"],"description":"Current health status"},"version":{"type":"string","description":"Manager version"},"url":{"type":"string","format":"uri","description":"Manager public URL (for accessing DeepStore endpoints)"},"managementConfigs":{"allOf":[{"$ref":"#/components/schemas/ManagerManagementConfigs"},{"description":"Per-platform management configurations for cross-account access"}]},"metrics":{"type":"object","properties":{"activeDeployments":{"type":"number"},"pendingDeployments":{"type":"number"},"memoryUsageMb":{"type":"number"},"cpuUsagePercent":{"type":"number"}},"description":"Optional runtime metrics"}},"required":["status","url","managementConfigs"]},"ManagerDeployment":{"type":"object","properties":{"platform":{"type":"string","description":"Platform of the internal deployment"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status of the internal deployment"},"deploymentId":{"type":"string","description":"Internal deployment ID"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Currently deployed private manager release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Target private manager release for an in-progress update","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"error":{"nullable":true,"description":"Latest provision / upgrade / delete error"},"resources":{"type":"object","additionalProperties":{"type":"object","properties":{"type":{"type":"string","description":"Resource type"},"status":{"type":"string","description":"Resource status"},"outputs":{"type":"object","additionalProperties":{"nullable":true},"description":"Resource outputs"}},"required":["type","status"]},"description":"Simplified stack state resources"},"environmentInfo":{"nullable":true,"description":"Manager environment info"}},"required":["platform","status","deploymentId","resources"]},"PrepareOperatorManifestPackageResponse":{"type":"object","properties":{"package":{"$ref":"#/components/schemas/Package"}},"required":["package"]},"PrepareOperatorManifestPackageRequest":{"type":"object","properties":{"project":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"}},"required":["project"],"additionalProperties":false},"RenderOperatorManifestResponse":{"type":"object","properties":{"manifest":{"type":"string","description":"Rendered multi-document Kubernetes manifest"},"applyCommand":{"type":"string","description":"kubectl command for applying the manifest from a file"},"filename":{"type":"string","description":"Suggested local filename"},"managerUrl":{"type":"string","format":"uri","description":"Manager URL embedded in the manifest"},"imagePending":{"type":"boolean","description":"True when the operator image is still building. The manifest contains a placeholder image () and must not be applied yet — re-render once the operator-image package is ready to get the real image."}},"required":["manifest","applyCommand","filename","managerUrl","imagePending"]},"RenderOperatorManifestRequest":{"type":"object","properties":{"project":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"format":{"type":"string","enum":["raw","helm"],"default":"raw","description":"raw: a kubectl-applyable manifest for one cluster. helm: a paste-into-your-chart template whose namespace and environment name come from Helm at install time."},"environmentName":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Per-environment identity. Required for raw output, ignored for helm.","example":"my-app"},"namespace":{"type":"string","minLength":1,"maxLength":63,"pattern":"^[a-z0-9]([-a-z0-9]*[a-z0-9])?$","description":"Namespace to observe and install into. Omit for helm to use the release namespace."},"scope":{"type":"string","enum":["namespace","cluster"],"default":"namespace","description":"namespace: a namespaced Role that manages the install namespace. cluster: a ClusterRole that manages every namespace."},"labelSelector":{"type":"string","minLength":1,"maxLength":256,"description":"Optional Kubernetes label selector narrowing what is managed, applied within the scope."},"permission":{"type":"string","enum":["observe"],"default":"observe","description":"Operator permission tier"},"operatorImagePackageId":{"type":"string","pattern":"pkg_[0-9a-z]{28}$","description":"Ready operator-image package to use for the Operator image. If omitted, the latest ready operator-image package for the project is used.","example":"pkg_jebo2o5jmm7raefl2m1pe3cz"},"deploymentGroupToken":{"type":"string","minLength":1,"description":"Deployment-group token embedded in the operator Secret"},"logCollector":{"type":"object","properties":{"enabled":{"type":"boolean","default":false}},"description":"Enable the node log collector DaemonSet for raw pod logs."}},"required":["project","deploymentGroupToken"],"additionalProperties":false},"APIKey":{"type":"object","properties":{"id":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"description":{"type":"string","nullable":true},"keyPrefix":{"type":"string"},"type":{"type":"string","enum":["workspace","project","deployment","deployment-group","manager"]},"role":{"type":"string"},"workspaceId":{"type":"string"},"projectId":{"type":"string","nullable":true},"deploymentId":{"type":"string","nullable":true},"deploymentGroupId":{"type":"string","nullable":true},"managerId":{"type":"string","nullable":true},"enabled":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","nullable":true,"format":"date-time"},"lastUsedAt":{"type":"string","nullable":true,"format":"date-time"},"revokedAt":{"type":"string","nullable":true,"format":"date-time"},"deploymentSetupConfig":{"$ref":"#/components/schemas/APIKeyDeploymentSetupConfig"},"createdByUser":{"type":"object","nullable":true,"properties":{"id":{"type":"string"},"email":{"type":"string"},"image":{"type":"string","nullable":true}},"required":["id","email","image"],"description":"User information associated with the API key"}},"required":["id","description","keyPrefix","type","role","workspaceId","projectId","deploymentId","deploymentGroupId","managerId","enabled","createdAt","expiresAt","lastUsedAt","revokedAt","deploymentSetupConfig","createdByUser"],"description":"API key information"},"APIKeyDeploymentSetupConfig":{"type":"object","nullable":true,"properties":{"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"environmentVariables":{"type":"array","items":{"$ref":"#/components/schemas/APIKeyDeploymentSetupEnvironmentVariable"}}},"required":["metadata","policy","environmentVariables"]},"APIKeyDeploymentSetupEnvironmentVariable":{"type":"object","properties":{"name":{"type":"string","pattern":"^[A-Z_][A-Z0-9_]*$","description":"Variable name"},"type":{"$ref":"#/components/schemas/EnvironmentVariableType"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string","pattern":"^[a-zA-Z0-9_-]+(\\*)?$"},"description":"Target resource patterns (null = all resources, array = wildcard patterns)"}},"required":["name","type","targetResources"]},"CreateAPIKeyResponse":{"type":"object","properties":{"apiKey":{"type":"string","description":"The generated API key value (only shown once)"},"keyInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"description":{"type":"string","nullable":true},"keyPrefix":{"type":"string"},"type":{"type":"string","enum":["workspace","project","deployment","deployment-group","manager"]},"role":{"type":"string"},"workspaceId":{"type":"string"},"projectId":{"type":"string","nullable":true},"deploymentId":{"type":"string","nullable":true},"deploymentGroupId":{"type":"string","nullable":true},"managerId":{"type":"string","nullable":true},"enabled":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","nullable":true,"format":"date-time"},"lastUsedAt":{"type":"string","nullable":true,"format":"date-time"},"revokedAt":{"type":"string","nullable":true,"format":"date-time"},"deploymentSetupConfig":{"$ref":"#/components/schemas/APIKeyDeploymentSetupConfig"}},"required":["id","description","keyPrefix","type","role","workspaceId","projectId","deploymentId","deploymentGroupId","managerId","enabled","createdAt","expiresAt","lastUsedAt","revokedAt","deploymentSetupConfig"]}},"required":["apiKey","keyInfo"],"description":"Response containing the new API key and its metadata"},"CreateAPIKeyRequest":{"type":"object","properties":{"description":{"type":"string","nullable":true,"minLength":3,"maxLength":128},"scope":{"$ref":"#/components/schemas/Scope"},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"Optional expiration date for the API key"}},"required":["description","scope","expiresAt"],"description":"Request schema for creating a new API key"},"Scope":{"oneOf":[{"$ref":"#/components/schemas/WorkspaceScope"},{"$ref":"#/components/schemas/ProjectScope"},{"$ref":"#/components/schemas/DeploymentScope"},{"$ref":"#/components/schemas/DeploymentGroupScope"},{"$ref":"#/components/schemas/ManagerScope"}],"discriminator":{"propertyName":"type","mapping":{"workspace":"#/components/schemas/WorkspaceScope","project":"#/components/schemas/ProjectScope","deployment":"#/components/schemas/DeploymentScope","deployment-group":"#/components/schemas/DeploymentGroupScope","manager":"#/components/schemas/ManagerScope"}},"description":"Scope and role configuration for service accounts"},"WorkspaceScope":{"type":"object","properties":{"type":{"type":"string","enum":["workspace"]},"role":{"$ref":"#/components/schemas/WorkspaceRole"}},"required":["type","role"],"description":"Workspace-scoped configuration"},"ProjectScope":{"type":"object","properties":{"type":{"type":"string","enum":["project"]},"projectId":{"type":"string","description":"ID of the project this is scoped to"},"role":{"$ref":"#/components/schemas/ProjectRole"}},"required":["type","projectId","role"],"description":"Project-scoped configuration"},"DeploymentScope":{"type":"object","properties":{"type":{"type":"string","enum":["deployment"]},"deploymentId":{"type":"string","description":"ID of the deployment this is scoped to"},"projectId":{"type":"string","description":"ID of the project this deployment belongs to"},"role":{"$ref":"#/components/schemas/DeploymentRole"}},"required":["type","deploymentId","projectId","role"],"description":"Deployment-scoped configuration"},"DeploymentGroupScope":{"type":"object","properties":{"type":{"type":"string","enum":["deployment-group"]},"deploymentGroupId":{"type":"string","description":"ID of the deployment group this is scoped to"},"projectId":{"type":"string","description":"ID of the project this deployment group belongs to"},"role":{"$ref":"#/components/schemas/DeploymentGroupRole"}},"required":["type","deploymentGroupId","projectId","role"],"description":"Deployment group-scoped configuration"},"ManagerScope":{"type":"object","properties":{"type":{"type":"string","enum":["manager"]},"managerId":{"type":"string","description":"ID of the manager this is scoped to"},"role":{"$ref":"#/components/schemas/ManagerRole"}},"required":["type","managerId","role"],"description":"Manager-scoped configuration"},"UpdateAPIKeyRequest":{"type":"object","properties":{"enabled":{"type":"boolean"},"description":{"type":"string","nullable":true,"minLength":3,"maxLength":128},"deploymentSetupConfig":{"$ref":"#/components/schemas/UpdateDeploymentSetupPolicy"},"expiresAt":{"type":"string","nullable":true,"format":"date-time","description":"Optional expiration date for the API key"}},"description":"Request schema for updating an API key"},"UpdateDeploymentSetupPolicy":{"type":"object","properties":{"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"}},"required":["policy"],"description":"Editable part of a deployment link's setup config. Locked env vars and input values are preserved."},"DeleteAPIKeysRequest":{"type":"object","properties":{"ids":{"type":"array","items":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"minItems":1}},"required":["ids"]},"DomainWithUsage":{"allOf":[{"$ref":"#/components/schemas/Domain"},{"type":"object","properties":{"endpoints":{"type":"array","items":{"$ref":"#/components/schemas/DomainEndpoint"}},"usage":{"type":"object","properties":{"deploymentUrlProjects":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}},"portalBindings":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"projectId":{"type":"string","nullable":true},"projectName":{"type":"string","nullable":true},"hostname":{"type":"string"}},"required":["id","projectId","projectName","hostname"]}},"packageDomains":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"hostname":{"type":"string"}},"required":["id","hostname"]}},"managerBindings":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"managerId":{"type":"string"},"managerName":{"type":"string"},"hostname":{"type":"string"}},"required":["id","managerId","managerName","hostname"]}}},"required":["deploymentUrlProjects","portalBindings","packageDomains","managerBindings"]}},"required":["endpoints","usage"]}]},"Domain":{"type":"object","properties":{"id":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"domain":{"type":"string"},"isSystem":{"type":"boolean"},"claimToken":{"type":"string"},"hostedZoneId":{"type":"string","nullable":true},"nameServers":{"type":"array","nullable":true,"items":{"type":"string"}},"status":{"type":"string","enum":["pending-zone-creation","pending-verification","verified","lost-verification","failed","deleting"]},"error":{"nullable":true},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"verifiedAt":{"type":"string","format":"date-time","nullable":true}},"required":["id","workspaceId","domain","isSystem","claimToken","status","createdAt","updatedAt"]},"EventListItemResponse":{"allOf":[{"$ref":"#/components/schemas/Event"},{"type":"object","properties":{"releaseCreatedAt":{"type":"string","format":"date-time","nullable":true,"description":"createdAt of the event's referenced release, included when ?include=releaseCreatedAt is used"}}}]},"ListMachinesJoinTokensResponse":{"type":"object","properties":{"tokens":{"type":"array","items":{"$ref":"#/components/schemas/MachinesJoinTokenSummary"}}},"required":["tokens"]},"MachinesJoinTokenSummary":{"type":"object","properties":{"id":{"type":"string"},"createdAt":{"type":"string"},"createdBy":{"type":"string"},"expiresAt":{"type":"string","nullable":true},"maxJoins":{"type":"integer","nullable":true},"joinCount":{"type":"integer"},"lastUsedAt":{"type":"string","nullable":true},"revokedAt":{"type":"string","nullable":true}},"required":["id","createdAt","createdBy","joinCount"]},"CreateMachinesJoinTokenResponse":{"type":"object","properties":{"joinToken":{"type":"string"},"controlPlaneUrl":{"type":"string","format":"uri"},"clusterId":{"type":"string"},"token":{"$ref":"#/components/schemas/MachinesJoinTokenSummary"},"cliInstallScriptUrl":{"type":"string","nullable":true,"format":"uri","description":"Deploy CLI install script URL, or null when no ready CLI package exists."},"cliCommandName":{"type":"string","nullable":true,"description":"CLI command name to use in join instructions."}},"required":["joinToken","controlPlaneUrl","clusterId","token","cliInstallScriptUrl","cliCommandName"]},"RotateMachinesJoinTokenResponse":{"type":"object","properties":{"joinToken":{"type":"string"},"controlPlaneUrl":{"type":"string","format":"uri"},"clusterId":{"type":"string"},"token":{"$ref":"#/components/schemas/MachinesJoinTokenSummary"},"cliInstallScriptUrl":{"type":"string","nullable":true,"format":"uri","description":"Deploy CLI install script URL, or null when no ready CLI package exists."},"cliCommandName":{"type":"string","nullable":true,"description":"CLI command name to use in join instructions."}},"required":["joinToken","controlPlaneUrl","clusterId","token","cliInstallScriptUrl","cliCommandName"]},"RevokeMachinesJoinTokenResponse":{"type":"object","properties":{"tokenId":{"type":"string"},"revoked":{"type":"boolean"}},"required":["tokenId","revoked"]},"ListMachinesInventoryResponse":{"type":"object","properties":{"machines":{"type":"array","items":{"$ref":"#/components/schemas/MachinesInventoryItem"}}},"required":["machines"]},"MachinesInventoryItem":{"type":"object","properties":{"machineId":{"type":"string"},"status":{"type":"string"},"capacityGroup":{"type":"string"},"zone":{"type":"string"},"cpu":{"$ref":"#/components/schemas/MachinesCapacityMetric"},"memory":{"$ref":"#/components/schemas/MachinesCapacityMetric"},"storage":{"allOf":[{"$ref":"#/components/schemas/MachinesCapacityMetric"}],"nullable":true},"drainBlockers":{"type":"array","items":{"$ref":"#/components/schemas/MachinesDrainBlocker"}},"drainDeadlineAt":{"type":"string","nullable":true},"drainForce":{"type":"boolean"},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"publicIp":{"type":"string","nullable":true},"overlayIp":{"type":"string","nullable":true},"lastHeartbeat":{"type":"string"},"horizondVersion":{"type":"string","nullable":true},"localOverrides":{"type":"array","items":{"$ref":"#/components/schemas/MachinesLocalOverrideObservation"}},"localOverridesObservedAt":{"type":"string","nullable":true},"replicaCount":{"type":"integer"}},"required":["machineId","status","capacityGroup","zone","cpu","memory","drainBlockers","drainForce","lastHeartbeat","localOverrides","replicaCount"]},"MachinesCapacityMetric":{"type":"object","properties":{"allocated":{"type":"number"},"systemReserve":{"type":"number"},"total":{"type":"number"}},"required":["allocated","systemReserve","total"]},"MachinesDrainBlocker":{"type":"object","properties":{"reason":{"type":"string"},"workloadId":{"type":"string","nullable":true},"workloadName":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true},"schedulingMode":{"type":"string","nullable":true},"state":{"type":"string","nullable":true}},"required":["reason"]},"MachinesLocalOverrideObservation":{"type":"object","properties":{"activeDigest":{"type":"string","nullable":true},"actor":{"type":"string","nullable":true},"baseAssignmentHash":{"type":"string"},"baseDigest":{"type":"string","nullable":true},"candidateDigest":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"failureCategory":{"type":"string","nullable":true},"fallbackDigest":{"type":"string","nullable":true},"forcedStop":{"type":"boolean","nullable":true},"healthySince":{"type":"string","nullable":true},"incidentId":{"type":"string","nullable":true},"lifecycle":{"type":"string"},"phaseStartedAt":{"type":"string","nullable":true},"replicaId":{"type":"string"},"workloadName":{"type":"string"}},"required":["baseAssignmentHash","lifecycle","replicaId","workloadName"]},"CancelMachinesMachineDrainResponse":{"type":"object","properties":{"machineId":{"type":"string"},"cancelled":{"type":"boolean"}},"required":["machineId","cancelled"]},"DrainMachinesMachineResponse":{"type":"object","properties":{"machineId":{"type":"string"},"requested":{"type":"boolean"}},"required":["machineId","requested"]},"DrainMachinesMachineRequest":{"type":"object","properties":{"deadlineSeconds":{"type":"integer","nullable":true,"minimum":0},"force":{"type":"boolean"}}},"RemoveMachinesMachineResponse":{"type":"object","properties":{"machineId":{"type":"string"},"removed":{"type":"boolean"}},"required":["machineId","removed"]},"CommandListItemResponse":{"allOf":[{"$ref":"#/components/schemas/Command"},{"type":"object","properties":{"deployment":{"$ref":"#/components/schemas/CommandDeploymentInfo"},"project":{"$ref":"#/components/schemas/CommandProjectInfo"}}}]},"CommandDeploymentInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string"},"deploymentGroup":{"$ref":"#/components/schemas/CommandDeploymentGroupInfo"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Platform-specific environment information"},"managerId":{"type":"string","description":"Manager ID for obtaining access tokens"},"managerUrl":{"type":"string","nullable":true,"format":"uri","description":"URL of the manager for direct payload access"},"managerName":{"type":"string","nullable":true,"description":"Human-readable name of the manager"},"managerIsSystem":{"type":"boolean","nullable":true,"description":"Whether the manager is Alien-hosted (system)"}},"required":["id","name","managerId"]},"CommandDeploymentGroupInfo":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]},"CommandProjectInfo":{"type":"object","properties":{"id":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"name":{"type":"string"}},"required":["id","name"]},"Command":{"type":"object","properties":{"id":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"name":{"type":"string","description":"Command name (e.g., 'analyze-repository', 'sync-data')"},"state":{"type":"string","enum":["PENDING_UPLOAD","PENDING","DISPATCHED","SUCCEEDED","FAILED","EXPIRED"],"description":"Command states in the Commands protocol lifecycle"},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Delivery mode for this command (push/pull), derived from the target at creation time"},"target":{"type":"object","nullable":true,"properties":{"resourceId":{"type":"string","description":"The resource ID within the deployment's stack (e.g. a Worker/Container/Daemon id)."},"resourceType":{"type":"string","enum":["worker","container","daemon"],"description":"The kind of command-capable resource a command targets."}},"required":["resourceId","resourceType"],"description":"Resource the command is addressed to; null on commands created before target routing"},"attempt":{"type":"number","nullable":true,"description":"Current attempt number"},"deadline":{"type":"string","nullable":true,"format":"date-time","description":"Optional deadline for command execution"},"requestSizeBytes":{"type":"number","nullable":true,"description":"Size of command params in bytes"},"responseSizeBytes":{"type":"number","nullable":true,"description":"Size of command response in bytes"},"createdAt":{"type":"string","format":"date-time","description":"When the command was created"},"dispatchedAt":{"type":"string","nullable":true,"format":"date-time","description":"When the command was dispatched to the deployment"},"completedAt":{"type":"string","nullable":true,"format":"date-time","description":"When the command completed"},"error":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Error details if command failed"},"result":{"nullable":true,"description":"Decoded command result when available"}},"required":["id","deploymentId","projectId","workspaceId","name","state","deploymentModel","target","attempt","deadline","requestSizeBytes","responseSizeBytes","createdAt","dispatchedAt","completedAt","error"]},"ListCommandNamesResponse":{"type":"object","properties":{"names":{"type":"array","items":{"type":"string"}}},"required":["names"]},"ListCommandDeploymentsResponse":{"type":"object","properties":{"deployments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string"},"deploymentGroup":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"}},"required":["id","name"]}},"required":["id","name"]}}},"required":["deployments"]},"CreateCommandResponse":{"type":"object","properties":{"id":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"projectId":{"type":"string","description":"Project ID (for manager to use in routing)"},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"How to dispatch the command"},"target":{"type":"object","properties":{"resourceId":{"type":"string","description":"The resource ID within the deployment's stack (e.g. a Worker/Container/Daemon id)."},"resourceType":{"type":"string","enum":["worker","container","daemon"],"description":"The kind of command-capable resource a command targets."}},"required":["resourceId","resourceType"],"description":"Resource the command is addressed to"},"deliveryMode":{"type":"string","enum":["push","pull"],"description":"How the command is delivered to its target"}},"required":["id","projectId","deploymentModel","target","deliveryMode"]},"CreateCommandRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Target deployment ID","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string","minLength":1,"maxLength":255,"description":"Command name (e.g., 'analyze-repository')"},"params":{"nullable":true,"description":"Command parameters for public invocation"},"target":{"type":"string","maxLength":255,"description":"Resource id the command is addressed to. Required when the deployment has more than one command-capable resource."},"initialState":{"type":"string","enum":["PENDING_UPLOAD","PENDING","DISPATCHED","SUCCEEDED","FAILED","EXPIRED"],"description":"Initial state (PENDING_UPLOAD if params require upload, PENDING if inline)"},"deadline":{"type":"string","nullable":true,"format":"date-time","description":"Optional deadline for command execution"},"requestSizeBytes":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Size of command params in bytes"}},"required":["deploymentId","name"]},"ResolvedCommandTarget":{"type":"object","properties":{"target":{"type":"object","properties":{"resourceId":{"type":"string","description":"The resource ID within the deployment's stack (e.g. a Worker/Container/Daemon id)."},"resourceType":{"type":"string","enum":["worker","container","daemon"],"description":"The kind of command-capable resource a command targets."}},"required":["resourceId","resourceType"],"description":"Identifies the specific resource a command is addressed to."},"deliveryMode":{"type":"string","enum":["push","pull"],"description":"How a command is delivered to its target resource.\n\nThis is a Commands-protocol-specific concept and is intentionally distinct\nfrom `DeploymentModel` (see `stack_settings.rs`), which governs the\ninfrastructure-level push/pull wiring for a deployment. Serialized\nlowercase for consistency with `CommandTargetType`."}},"required":["target","deliveryMode"]},"UpdateCommandRequest":{"type":"object","properties":{"state":{"type":"string","enum":["PENDING_UPLOAD","PENDING","DISPATCHED","SUCCEEDED","FAILED","EXPIRED"],"description":"New command state"},"attempt":{"type":"number","minimum":0,"exclusiveMinimum":true,"description":"Current attempt number"},"dispatchedAt":{"type":"string","nullable":true,"format":"date-time","description":"When command was dispatched"},"completedAt":{"type":"string","nullable":true,"format":"date-time","description":"When command completed"},"responseSizeBytes":{"type":"number","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Size of response in bytes"},"error":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Error details if failed"}}},"DispatchCommandResponse":{"type":"object","properties":{"updated":{"type":"boolean","description":"Whether the command transitioned; false if it was already terminal"}},"required":["updated"]},"DispatchCommandRequest":{"type":"object","properties":{"dispatchedAt":{"type":"string","format":"date-time","description":"When the command was dispatched"}},"required":["dispatchedAt"]},"CompleteCommandResponse":{"type":"object","properties":{"updated":{"type":"boolean","description":"Whether the command transitioned; false if it was already terminal"}},"required":["updated"]},"CompleteCommandRequest":{"type":"object","properties":{"state":{"type":"string","enum":["SUCCEEDED","FAILED","EXPIRED"],"description":"Terminal state to transition to"},"completedAt":{"type":"string","format":"date-time","description":"When the command completed"},"responseSizeBytes":{"type":"number","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Size of response in bytes"},"error":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Error details if failed"}},"required":["state","completedAt"]},"IncrementCommandAttemptResponse":{"type":"object","properties":{"attempt":{"type":"integer","description":"The attempt number after the increment"}},"required":["attempt"]},"DebugSessionListResponse":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DebugSession"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"},"DebugSession":{"type":"object","properties":{"id":{"type":"string","pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Unique identifier for the debug session.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"owner":{"type":"string","nullable":true,"maxLength":128},"state":{"$ref":"#/components/schemas/DebugSessionState"},"mode":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"provider":{"type":"string","nullable":true,"enum":["aws","gcp","azure","kubernetes","machines","local","test",null],"description":"Represents the target cloud platform."},"presignedUrls":{"type":"object","additionalProperties":{"$ref":"#/components/schemas/DebugPackagePresignedURLs"}},"error":{"nullable":true},"createdAt":{"type":"string","format":"date-time"},"expiresAt":{"type":"string","format":"date-time"},"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"}},"required":["id","state","mode","presignedUrls","createdAt","expiresAt","deploymentId","projectId","workspaceId"]},"DebugSessionState":{"type":"string","enum":["pending","running","stopping","stopped","expired","failed"]},"DebugPackagePresignedURLs":{"type":"object","properties":{"readUrl":{"type":"string","maxLength":2048,"format":"uri"},"writeUrl":{"type":"string","maxLength":2048,"format":"uri"}},"required":["readUrl","writeUrl"]},"CreateDebugSessionRequest":{"type":"object","properties":{"id":{"type":"string","pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Override the generated id. Manager passes the registry session id so logs correlate.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"owner":{"type":"string","nullable":true,"maxLength":128},"expiresAt":{"type":"string","format":"date-time"},"state":{"allOf":[{"$ref":"#/components/schemas/DebugSessionState"},{"description":"Initial state. Defaults to 'pending'."}]}},"required":["deploymentId","expiresAt"]},"UpdateDebugSessionRequest":{"type":"object","properties":{"state":{"$ref":"#/components/schemas/DebugSessionState"},"error":{"type":"object","nullable":true,"additionalProperties":{"nullable":true}},"expiresAt":{"type":"string","format":"date-time"}}},"DeploymentInfo":{"type":"object","properties":{"tokenType":{"type":"string","enum":["deployment","deployment-group"],"description":"Type of token used to authenticate this request"},"deployment":{"type":"object","properties":{"name":{"type":"string"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."}},"required":["name","platform"],"description":"Deployment details (present when using a deployment-scoped token)"},"deploymentGroup":{"type":"object","properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string"},"pinnedSubdomain":{"type":"string","nullable":true}},"required":["id","name","pinnedSubdomain"],"description":"Deployment group details (present when using a deployment-group token)"},"workspace":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"avatarUrl":{"type":"string","nullable":true,"format":"uri"}},"required":["id","name"]},"project":{"type":"object","properties":{"name":{"type":"string"},"portal":{"type":"object","properties":{"appearance":{"$ref":"#/components/schemas/DeploymentPortalAppearance"}},"required":["appearance"]},"stackSummary":{"type":"object","nullable":true,"properties":{"platforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms supported by the active release"},"requiresNetwork":{"type":"boolean","description":"Whether the stack contains resources that require cloud VPC networking"},"resourceCounts":{"type":"object","properties":{"workers":{"type":"integer","minimum":0},"containers":{"type":"integer","minimum":0},"daemons":{"type":"integer","minimum":0,"description":"Daemon resources that run on managed runtime machines"},"publicHttpsEndpoints":{"type":"integer","minimum":0,"description":"Resources that declare managed public HTTPS endpoint setup"},"externalInfra":{"type":"integer","minimum":0,"description":"Storage, queue, KV, vault, database, or cache resources that Kubernetes needs Terraform to provision"},"total":{"type":"integer","minimum":0}},"required":["workers","containers","publicHttpsEndpoints","externalInfra","total"]},"publicEndpoints":{"type":"array","items":{"type":"object","properties":{"resourceId":{"type":"string"},"endpointName":{"type":"string"},"hostLabel":{"type":"string"},"wildcardSubdomains":{"type":"boolean"}},"required":["resourceId","endpointName","hostLabel","wildcardSubdomains"]},"description":"Public endpoints declared by the active release stack"}},"required":["platforms","requiresNetwork","resourceCounts","publicEndpoints"]},"generatedDomain":{"type":"object","nullable":true,"properties":{"domain":{"type":"string"},"isSystem":{"type":"boolean"}},"required":["domain","isSystem"],"description":"Parent domain for generated deployment URLs. Chosen public subdomains are only allowed when isSystem is false."}},"required":["name","portal"]},"packages":{"type":"object","properties":{"ready":{"type":"boolean","description":"True if all enabled packages are ready for deployment"},"cli":{"type":"object","properties":{"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"commandName":{"type":"string","description":"CLI command name to use in install instructions"},"version":{"type":"string"},"outputs":{"type":"object","properties":{"binaries":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sha256":{"type":"string","description":"SHA256 checksum"},"size":{"type":"integer","minimum":0,"description":"File size in bytes"},"url":{"type":"string","description":"Download URL for the binary"}},"required":["sha256","size","url"],"description":"Information about a single binary artifact"},"description":"Binary information for each target platform"},"buildInfo":{"type":"object","properties":{"alienSha":{"type":"string","description":"Alien source commit used to build the source CLI and agent binaries."},"horizonSha":{"type":"string","description":"Compute backend source revision used by optional package extensions, if applicable."},"machineBundleManifestUrl":{"type":"string","nullable":true,"description":"Machine runtime release manifest embedded into the generated CLI."},"platformSha":{"type":"string","description":"Source revision used to build the package service and optional extensions."},"sourceAgentBinarySha256":{"type":"string","nullable":true,"description":"SHA256 checksum of the source runtime helper binary shipped with the CLI package, when present."},"sourceCliBinarySha256":{"type":"string","description":"SHA256 checksum of the source deploy CLI binary before white-label config is appended."}},"required":["alienSha","horizonSha","platformSha","sourceCliBinarySha256"],"description":"Source provenance for a generated CLI package."}},"required":["binaries","buildInfo"],"description":"Outputs from a CLI package build"},"error":{"nullable":true},"installScripts":{"type":"object","properties":{"windows":{"type":"string","format":"uri"},"mac":{"type":"string","format":"uri"},"linux":{"type":"string","format":"uri"}},"required":["windows","mac","linux"],"description":"Install script URLs for each OS"}},"required":["status","commandName","installScripts"]},"cloudformation":{"type":"object","properties":{"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"version":{"type":"string"},"outputs":{"type":"object","properties":{"targets":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"launchStackUrl":{"type":"string","description":"AWS Console quick-launch URL"},"sha256":{"type":"string","description":"SHA256 checksum of the template"},"size":{"type":"integer","minimum":0,"description":"Template size in bytes"},"stackPolicyUrl":{"type":"string","description":"S3 URL to the CloudFormation stack policy"},"target":{"type":"string","description":"CloudFormation target (aws, eks)"},"templateUrl":{"type":"string","description":"S3 URL to the CloudFormation template"}},"required":["launchStackUrl","sha256","size","stackPolicyUrl","target","templateUrl"],"description":"Information about a single CloudFormation template package for one target."},"description":"Template artifacts by CloudFormation target."}},"required":["targets"],"description":"Outputs from a CloudFormation package build."},"error":{"nullable":true},"mode":{"type":"string","enum":["auto","outputs"]},"launchUrl":{"type":"string","format":"uri","description":"CloudFormation launch URL"},"outputsSchema":{"nullable":true}},"required":["status","mode","launchUrl"]},"terraform":{"type":"object","properties":{"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"version":{"type":"string"},"outputs":{"type":"object","properties":{"modules":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL for the module archive"},"filename":{"type":"string","description":"Filename of the module archive"},"shasum":{"type":"string","description":"SHA256 checksum of the archive"},"size":{"type":"integer","minimum":0,"description":"Size of the archive in bytes"},"source":{"type":"string","description":"Terraform module source (hostname/namespace/name/provider, without scheme)"},"target":{"type":"string","description":"Terraform module target (aws, gcp, azure, eks, gke, aks)"},"variables":{"type":"array","items":{"type":"string"},"description":"Terraform input variables exposed by this module."}},"required":["downloadUrl","filename","shasum","size","source","target"],"description":"Information about a single Terraform module package for one target."},"description":"Module registry artifacts by Terraform target."},"provider":{"type":"object","properties":{"gpgPublicKey":{"type":"object","properties":{"asciiArmor":{"type":"string","description":"ASCII-armored public key"},"keyId":{"type":"string","description":"GPG key ID"}},"required":["asciiArmor","keyId"],"description":"GPG public key for Terraform provider signature verification"},"platforms":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"downloadUrl":{"type":"string","description":"Download URL for the provider zip"},"filename":{"type":"string","description":"Filename of the provider zip"},"shasum":{"type":"string","description":"SHA256 checksum of the zip file"},"shasumsSignatureUrl":{"type":"string","description":"URL to the shasums signature file"},"shasumsUrl":{"type":"string","description":"URL to the shasums file"},"size":{"type":"integer","minimum":0,"description":"Size of the zip file in bytes"}},"required":["downloadUrl","filename","shasum","shasumsSignatureUrl","shasumsUrl","size"],"description":"Information about a single Terraform provider package for a specific platform"},"description":"Provider packages for each target platform"},"source":{"type":"string","description":"Terraform provider source (hostname/namespace/type, without scheme)"}},"required":["gpgPublicKey","platforms","source"],"description":"Terraform provider registry outputs."}},"required":["modules","provider"],"description":"Outputs from a Terraform package build."},"error":{"nullable":true},"providerSource":{"type":"string","description":"Terraform provider source (without https://)"},"moduleSources":{"type":"object","additionalProperties":{"type":"string"},"description":"Terraform module sources by target"},"moduleVersion":{"type":"string"},"managerUrls":{"type":"object","additionalProperties":{"type":"string"},"description":"Manager URLs by Terraform target"}},"required":["status","providerSource","moduleSources","managerUrls"]},"helm":{"type":"object","properties":{"status":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Status of a package build"},"version":{"type":"string"},"outputs":{"type":"object","properties":{"chart":{"type":"string","description":"OCI chart reference (e.g., \"oci://public.ecr.aws/acme/charts/project-id\")"},"version":{"type":"string","description":"Chart version (e.g., \"1.2.3\")"}},"required":["chart","version"],"description":"Outputs from a Helm chart package build"},"error":{"nullable":true},"chartRef":{"type":"string","description":"OCI chart reference"},"managerFetchExample":{"type":"string"},"localImportExample":{"type":"string"}},"required":["status","chartRef"]}},"required":["ready"]},"installContext":{"type":"object","properties":{"targets":{"type":"object","additionalProperties":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"managerUrl":{"type":"string","format":"uri"},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}],"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."},"awsManagingAccountId":{"type":"string"}},"required":["platform","managerUrl"]},"description":"Deployment-session install context by Terraform/installer target"}},"required":["targets"]},"supportedRegions":{"$ref":"#/components/schemas/SupportedCloudRegions"},"setupConfig":{"$ref":"#/components/schemas/DeploymentInfoSetupConfig"},"readiness":{"type":"object","properties":{"status":{"type":"string","enum":["ready","notReady","unknown"]},"checks":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"status":{"type":"string","enum":["passed","failed","warning","unknown"]},"message":{"type":"string"},"checkedAt":{"type":"string"}},"required":["code","status","message","checkedAt"]}}},"required":["status","checks"]}},"required":["tokenType","workspace","project","packages","installContext","supportedRegions"]},"DeploymentPortalAppearance":{"type":"object","properties":{"avatarUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional project-specific avatar override for the deployment portal."},"preset":{"$ref":"#/components/schemas/DeploymentPortalAppearancePreset"},"accentColor":{"$ref":"#/components/schemas/DeploymentPortalAccentColor"},"title":{"type":"string","nullable":true,"maxLength":80,"description":"Optional portal title. Defaults to the project name."},"subtitle":{"type":"string","nullable":true,"maxLength":160,"description":"Optional customer-facing subtitle."},"supportUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional support or contact URL."},"docsUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri","description":"Optional documentation URL."},"density":{"$ref":"#/components/schemas/DeploymentPortalDensity"}}},"SupportedCloudRegions":{"type":"object","properties":{"aws":{"type":"array","items":{"type":"string"},"description":"AWS regions supported by this Alien environment."},"gcp":{"type":"array","items":{"type":"string"},"description":"GCP regions supported by this Alien environment."},"azure":{"type":"array","items":{"type":"string"},"description":"Azure locations supported by this Alien environment."}},"required":["aws","gcp","azure"]},"DeploymentInfoSetupConfig":{"type":"object","properties":{"metadata":{"$ref":"#/components/schemas/DeploymentSetupMetadata"},"policy":{"$ref":"#/components/schemas/DeploymentSetupPolicy"},"environmentVariables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","pattern":"^[A-Z_][A-Z0-9_]*$","description":"Variable name"},"type":{"$ref":"#/components/schemas/EnvironmentVariableType"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string","pattern":"^[a-zA-Z0-9_-]+(\\*)?$"},"description":"Target resource patterns (null = all resources, array = wildcard patterns)"}},"required":["name","type","targetResources"]}},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."}},"inputValues":{"type":"array","items":{"$ref":"#/components/schemas/ResolvedStackInputSummary"}}},"required":["metadata","policy","environmentVariables"]},"ResolvedStackInputSummary":{"type":"object","properties":{"id":{"type":"string"},"label":{"type":"string"},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"]}},"required":{"type":"boolean"},"secret":{"type":"boolean"},"provided":{"type":"boolean"}},"required":["id","label","providedBy","required","secret","provided"]},"DeploymentComputePlan":{"type":"object","properties":{"pools":{"type":"array","items":{"type":"object","properties":{"poolId":{"type":"string"},"workloads":{"type":"array","items":{"type":"string"}},"requirements":{"type":"object","properties":{"cpu":{"type":"string"},"memoryBytes":{"type":"integer","minimum":0},"ephemeralStorageBytes":{"type":"integer","minimum":0},"architecture":{"type":"string","nullable":true,"enum":["arm64","x86_64",null]},"gpu":{"type":"object","nullable":true,"properties":{"type":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["type","count"]}},"required":["cpu","memoryBytes","ephemeralStorageBytes"]},"scale":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["fixed"]},"machines":{"type":"object","properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"default":{"type":"integer","minimum":0}},"required":["min","max","default"]}},"required":["type","machines"]},{"type":"object","properties":{"type":{"type":"string","enum":["autoscale"]},"min":{"type":"object","properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"default":{"type":"integer","minimum":0}},"required":["min","max","default"]},"max":{"type":"object","properties":{"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"default":{"type":"integer","minimum":0}},"required":["min","max","default"]}},"required":["type","min","max"]}]},"selected":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["fixed"]},"machines":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","machines"]},{"type":"object","properties":{"mode":{"type":"string","enum":["autoscale"]},"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","min","max"]}]},"recommended":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["fixed"]},"machines":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","machines"]},{"type":"object","properties":{"mode":{"type":"string","enum":["autoscale"]},"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","min","max"]}]},"machines":{"type":"array","items":{"type":"object","properties":{"machine":{"type":"string"},"profile":{"type":"object","properties":{"cpu":{"type":"string"},"memoryBytes":{"type":"integer","minimum":0},"ephemeralStorageBytes":{"type":"integer","minimum":0},"architecture":{"type":"string","nullable":true,"enum":["arm64","x86_64",null]},"gpu":{"type":"object","nullable":true,"properties":{"type":{"type":"string"},"count":{"type":"integer","minimum":0}},"required":["type","count"]}},"required":["cpu","memoryBytes","ephemeralStorageBytes"]},"recommended":{"type":"boolean"}},"required":["machine","profile","recommended"]}},"errors":{"type":"array","items":{"type":"string"}}},"required":["poolId","workloads","requirements","scale","selected","recommended","machines"]}}},"required":["pools"]},"PreparedDeploymentStack":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure"]},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"setup":{"$ref":"#/components/schemas/SetupFingerprintInfo"}},"required":["platform","stack","setup"]},"SlackInstallUrlResponse":{"type":"object","properties":{"url":{"type":"string","format":"uri"}},"required":["url"]},"SlackIntegrationStatus":{"type":"object","properties":{"connected":{"type":"boolean"},"slackTeamId":{"type":"string","nullable":true},"slackTeamName":{"type":"string","nullable":true},"installedByUserId":{"type":"string","nullable":true},"installedAt":{"type":"string","nullable":true},"notificationChannelId":{"type":"string","nullable":true}},"required":["connected","slackTeamId","slackTeamName","installedByUserId","installedAt","notificationChannelId"]},"SlackChannelsResponse":{"type":"object","properties":{"channels":{"type":"array","items":{"$ref":"#/components/schemas/SlackChannel"}}},"required":["channels"]},"SlackChannel":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"isMember":{"type":"boolean"}},"required":["id","name","isMember"]},"SlackNotificationChannelResponse":{"type":"object","properties":{"notificationChannelId":{"type":"string","nullable":true},"warning":{"type":"string","nullable":true}},"required":["notificationChannelId","warning"]},"SlackNotificationChannelRequest":{"type":"object","properties":{"channelId":{"type":"string","nullable":true}},"required":["channelId"]},"AgentSessionListResponse":{"type":"object","properties":{"sessions":{"type":"array","items":{"$ref":"#/components/schemas/AgentSessionListItem"}}},"required":["sessions"]},"AgentSessionListItem":{"type":"object","properties":{"id":{"type":"string"},"triggerType":{"type":"string"},"subjectId":{"type":"string"},"subject":{"$ref":"#/components/schemas/AgentSessionSubject"},"status":{"type":"string"},"createdAt":{"type":"string"},"updatedAt":{"type":"string"}},"required":["id","triggerType","subjectId","subject","status","createdAt","updatedAt"]},"AgentSessionSubject":{"type":"object","properties":{"deploymentName":{"type":"string","nullable":true},"deploymentGroupId":{"type":"string","nullable":true},"deploymentGroupName":{"type":"string","nullable":true},"releaseId":{"type":"string","nullable":true},"releaseCommitMessage":{"type":"string","nullable":true},"releaseCommitRef":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"projectName":{"type":"string","nullable":true}},"required":["deploymentName","deploymentGroupId","deploymentGroupName","releaseId","releaseCommitMessage","releaseCommitRef","projectId","projectName"]},"AgentSessionDetail":{"allOf":[{"$ref":"#/components/schemas/AgentSessionListItem"},{"type":"object","properties":{"resultText":{"type":"string","nullable":true},"toolNames":{"type":"array","nullable":true,"items":{"type":"string"}},"error":{"type":"string","nullable":true},"pendingApproval":{"type":"object","nullable":true,"properties":{"approvalId":{"type":"string"},"toolCallId":{"type":"string"},"toolName":{"type":"string"},"input":{"nullable":true}},"required":["approvalId","toolCallId","toolName"]}},"required":["resultText","toolNames","error","pendingApproval"]}]},"AgentSessionEventsResponse":{"type":"object","properties":{"events":{"type":"array","items":{"$ref":"#/components/schemas/AgentSessionEvent"}},"latestSeq":{"type":"number"},"hasMore":{"type":"boolean"}},"required":["events","latestSeq","hasMore"]},"AgentSessionEvent":{"oneOf":[{"$ref":"#/components/schemas/AgentSessionStatusEvent"},{"$ref":"#/components/schemas/AgentSessionStepEvent"},{"$ref":"#/components/schemas/AgentSessionToolCallEvent"},{"$ref":"#/components/schemas/AgentSessionToolResultEvent"},{"$ref":"#/components/schemas/AgentSessionMarkdownEvent"},{"$ref":"#/components/schemas/AgentSessionApprovalRequestedEvent"},{"$ref":"#/components/schemas/AgentSessionApprovalGrantedEvent"},{"$ref":"#/components/schemas/AgentSessionRestartedEvent"},{"$ref":"#/components/schemas/AgentSessionEventsTruncatedEvent"}],"discriminator":{"propertyName":"type","mapping":{"status":"#/components/schemas/AgentSessionStatusEvent","step":"#/components/schemas/AgentSessionStepEvent","tool_call":"#/components/schemas/AgentSessionToolCallEvent","tool_result":"#/components/schemas/AgentSessionToolResultEvent","markdown":"#/components/schemas/AgentSessionMarkdownEvent","approval_requested":"#/components/schemas/AgentSessionApprovalRequestedEvent","approval_granted":"#/components/schemas/AgentSessionApprovalGrantedEvent","session_restarted":"#/components/schemas/AgentSessionRestartedEvent","events_truncated":"#/components/schemas/AgentSessionEventsTruncatedEvent"}}},"AgentSessionStatusEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["status"]},"payload":{"type":"object","properties":{"status":{"type":"string"},"error":{"type":"string"}},"required":["status"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionStepEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["step"]},"payload":{"type":"object","properties":{"stepId":{"type":"string"},"title":{"type":"string"},"status":{"type":"string","enum":["in_progress","complete","error"]}},"required":["stepId","title","status"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionToolCallEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["tool_call"]},"payload":{"type":"object","properties":{"toolCallId":{"type":"string"},"toolName":{"type":"string"},"input":{"nullable":true}},"required":["toolCallId","toolName"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionToolResultEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["tool_result"]},"payload":{"type":"object","properties":{"toolCallId":{"type":"string","nullable":true},"toolName":{"type":"string","nullable":true},"ok":{"type":"boolean"},"output":{"nullable":true}},"required":["toolCallId","toolName","ok"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionMarkdownEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["markdown"]},"payload":{"type":"object","properties":{"text":{"type":"string"}},"required":["text"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionApprovalRequestedEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["approval_requested"]},"payload":{"type":"object","properties":{"approvalId":{"type":"string"},"toolCallId":{"type":"string"},"toolName":{"type":"string"},"input":{"nullable":true}},"required":["approvalId","toolCallId","toolName"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionApprovalGrantedEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["approval_granted"]},"payload":{"type":"object","properties":{"approvalId":{"type":"string"},"approvedByUserId":{"type":"string"},"approvedByName":{"type":"string","nullable":true},"source":{"type":"string","enum":["dashboard","slack"]}},"required":["approvalId","approvedByUserId","approvedByName","source"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionRestartedEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["session_restarted"]},"payload":{"type":"object","properties":{"reason":{"type":"string"}},"required":["reason"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionEventsTruncatedEvent":{"type":"object","properties":{"seq":{"type":"number"},"createdAt":{"type":"string"},"type":{"type":"string","enum":["events_truncated"]},"payload":{"type":"object","properties":{"limit":{"type":"number"}},"required":["limit"]}},"required":["seq","createdAt","type","payload"]},"AgentSessionApproveResponse":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string"},"resumed":{"type":"boolean"}},"required":["jobId","status","resumed"]},"AgentSessionStopResponse":{"type":"object","properties":{"jobId":{"type":"string"},"status":{"type":"string"},"canceled":{"type":"boolean"}},"required":["jobId","status","canceled"]},"SyncListResponse":{"type":"object","properties":{"deployments":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"name":{"type":"string","minLength":2,"maxLength":100,"pattern":"^(?!ag[-_])[a-z0-9](-?[a-z0-9])*$","description":"Deployment name.","example":"acme-prod"},"publicSubdomain":{"type":"string","nullable":true,"minLength":1,"maxLength":63,"pattern":"^[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$","description":"Public subdomain for auto-generated domains"},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"projectId":{"type":"string","pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform for the deployment"},"basePlatform":{"type":"string","nullable":true,"enum":["aws","gcp","azure",null],"description":"Underlying cloud platform for Kubernetes deployments."},"region":{"type":"string","nullable":true,"description":"Cloud region or location for the deployment."},"deploymentProtocolVersion":{"$ref":"#/components/schemas/DeploymentProtocolVersion"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"ID of deployment group this deployment belongs to","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}],"description":"Cloud environment information"},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-provided configuration (network, deployment model, approvals)"},"stackState":{"type":"object","nullable":true,"properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"State of infrastructure components managed by this deployment"},"runtimeMetadata":{"type":"object","nullable":true,"properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment state persistence"},"currentReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the currently deployed release (actual state)","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"desiredReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the desired release for deployment/update (desired state)","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"pinnedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"ID of the pinned release","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"releaseChannel":{"allOf":[{"$ref":"#/components/schemas/ReleaseChannelName"},{"description":"Named release stream followed when the deployment is not pinned"}]},"importSource":{"type":"string","nullable":true,"enum":["cloudformation","terraform","helm",null],"description":"Setup source that imported this deployment"},"setupMethod":{"type":"string","nullable":true,"enum":["cloudformation","google-oauth","terraform","helm","cli","manual",null],"description":"Setup method that created the deployment record and owns setup-time resources."},"setupMetadata":{"type":"object","nullable":true,"additionalProperties":{"nullable":true},"description":"Setup method metadata needed to guide privileged teardown."},"setupTarget":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup target for compatibility checks"},"setupFingerprint":{"type":"string","nullable":true,"minLength":1,"description":"Imported setup compatibility fingerprint"},"setupFingerprintVersion":{"type":"integer","nullable":true,"minimum":0,"exclusiveMinimum":true,"description":"Imported setup fingerprint algorithm version"},"operatorScope":{"type":"string","nullable":true,"description":"Display-only scope reported by the Operator manifest"},"operatorPermission":{"type":"string","nullable":true,"description":"Display-only permission tier reported by the Operator manifest"},"operatorVersion":{"type":"string","nullable":true,"description":"Version reported by the Operator"},"capabilities":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/OperatorCapabilityReport"},"description":"Capability state reported by the Operator"},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment"},"lastHeartbeatAt":{"type":"string","format":"date-time","nullable":true,"description":"Timestamp of the last received heartbeat from the deployment"},"error":{"type":"object","nullable":true,"properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Latest error information if the deployment is in a failed state"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"ID of the manager responsible for this deployment"}]},"workspaceId":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"userEnvironmentVariables":{"type":"array","nullable":true,"items":{"$ref":"#/components/schemas/EnvironmentVariableConfig"}},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}],"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."},"deploymentToken":{"type":"string","nullable":true},"lockedBy":{"type":"string","nullable":true},"lockedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["id","name","status","projectId","platform","deploymentProtocolVersion","deploymentGroupId","stackSettings","releaseChannel","retryRequested","createdAt","updatedAt","managerId","workspaceId","userEnvironmentVariables"]}}},"required":["deployments"],"description":"Full deployment records for manager operation"},"SyncListRequest":{"type":"object","properties":{"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Manager requesting the deployments. Manager-scoped tokens are always constrained to their own manager ID."}]},"deploymentIds":{"type":"array","items":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"description":"Specific deployment IDs to include"},"statuses":{"type":"array","items":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"description":"Filter by deployment status"},"platforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Filter by deployment platform"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Filter by deployment group ID","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"limit":{"type":"integer","minimum":1,"maximum":500,"description":"Maximum records to return"}},"additionalProperties":false,"description":"Request to list full operational deployments"},"SyncAcquireResponseDeployment":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"ID of the deployment","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"projectId":{"type":"string","description":"Project ID the deployment belongs to"},"deploymentGroupId":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Deployment group ID the deployment belongs to","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"setupMethod":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMethod"},{"description":"Setup method recorded on the deployment when it has a setup-owned path."}]},"current":{"type":"object","properties":{"currentRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}]},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"protocolVersion":{"type":"integer","minimum":0,"description":"Protocol version for cross-actor compatibility.\nAll actors (manager, push client, agent) check this before stepping.\nMismatched versions produce a clear error instead of silent corruption.\nSee docs/02-manager/10-deployment-protocol.md."},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment\nWhen true and status is a failed state, the deployment system will retry failed resources"},"runtimeMetadata":{"oneOf":[{"type":"object","properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment\n\nStores deployment state that needs to persist across step calls."},{"nullable":true}]},"stackState":{"oneOf":[{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"Represents the collective state of all resources in a stack, including platform and pending actions."},{"nullable":true}]},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"targetRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]}},"required":["platform","protocolVersion","status"],"description":"Current deployment state (includes releases)"},"config":{"type":"object","properties":{"allowFrozenChanges":{"type":"boolean","description":"Allow frozen resource changes during updates\nWhen true, skips the frozen resources compatibility check.\nThis requires running with elevated cloud credentials."},"basePlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"computeBackend":{"oneOf":[{"allOf":[{"type":"object","properties":{"clusters":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"clusterId":{"type":"string","description":"Cluster ID (deterministic: workspace/project/deployment/resourceid)"},"managementToken":{"type":"string","description":"Management token for API access (hm_...)\nUsed by alien-deployment controllers to create/update containers"}},"required":["clusterId","managementToken"],"description":"Configuration for a single container worker cluster.\n\nContains the cluster ID and management token needed to interact with\nthe managed container control plane API for container operations."},"description":"Cluster configurations (one per ComputeCluster resource)\nKey: ComputeCluster resource ID from stack\nValue: Cluster ID and management token for that cluster"},"horizonMachineImage":{"oneOf":[{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"amis":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"AMI IDs by architecture, then AWS region."}},"required":["amis"],"description":"AWS Horizon machine image catalog."},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"images":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"imageVersionId":{"type":"string","description":"Azure Compute Gallery image version ID."}},"required":["imageVersionId"],"description":"Azure Horizon machine image entry."},"description":"Images by architecture."}},"required":["images"],"description":"Azure Horizon machine image catalog."},{"nullable":true}]},"baseImage":{"type":"object","properties":{"name":{"type":"string","description":"Base OS image name."},"version":{"type":"string","description":"Base OS image version or channel."}},"required":["name","version"],"description":"Base image metadata for the Horizon machine image."},"channel":{"type":"string","description":"Logical image channel, such as prod, staging, or canary."},"createdAt":{"type":"string","description":"Image manifest creation timestamp."},"gcp":{"oneOf":[{"type":"object","properties":{"images":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sourceImage":{"type":"string","description":"Source image self link or image-family URL."}},"required":["sourceImage"],"description":"GCP Horizon machine image entry."},"description":"Images by architecture."}},"required":["images"],"description":"GCP Horizon machine image catalog."},{"nullable":true}]},"gitSha":{"type":"string","description":"Git commit SHA used to build the image."},"horizondArtifacts":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sha256":{"type":"string","description":"SHA-256 digest for the artifact payload."},"url":{"type":"string","description":"HTTPS URL for the artifact."}},"required":["sha256","url"],"description":"Download artifact for one horizond release platform."},"description":"Per-architecture horizond artifacts by release-platform key."},"horizondVersion":{"type":"string","description":"horizond daemon version baked into the image."},"machineImageVersion":{"type":"string","description":"Published immutable machine image version."}},"required":["baseImage","channel","createdAt","gitSha","horizondArtifacts","horizondVersion","machineImageVersion"],"description":"Horizon machine image catalog.\n\nPlatform resolves concrete provider images from this catalog during rollout."},{"nullable":true}]},"url":{"type":"string","description":"Horizon control-plane API base URL."}},"required":["clusters","url"],"description":"Horizon control-plane configuration for container orchestration.\n\nContains all the information needed for Alien to interact with managed\ncontainer clusters during deployment. Each ComputeCluster resource gets its own\nentry in the clusters map."},{"type":"object","properties":{"type":{"type":"string","enum":["horizon"]}},"required":["type"]}],"description":"Compute backend for Container and Worker resources.\n\nDetermines how compute workloads are orchestrated on cloud platforms.\nWhen None, the platform default is used for cloud platforms."},{"nullable":true}]},"deploymentName":{"type":"string","nullable":true,"description":"Human-readable deployment name for cloud console metadata.\n\nThis is separate from the physical resource prefix in StackState. It is\nused only for display text such as IAM role descriptions, service\naccount descriptions, and custom role titles."},"deploymentToken":{"type":"string","nullable":true,"description":"Deployment token for pull authentication with the manager's registry.\n\nUsed by controllers to configure registry credentials so cloud platforms\nand K8s can pull images from the manager's `/v2/` endpoint."},"domainMetadata":{"oneOf":[{"type":"object","properties":{"baseDomain":{"type":"string","description":"Base domain for auto-generated domains (e.g., \"vpc.direct\")."},"hostedZoneId":{"type":"string","description":"Hosted zone ID for DNS records."},"publicSubdomain":{"type":"string","description":"Deployment public subdomain (e.g., \"k8f2j3\")."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"aliases":{"type":"array","items":{"type":"object","properties":{"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message. Present when DNS previously failed, even if status\nwas reset to pending for retry. Used to surface actionable error context\nin WaitingForDns failure messages."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a managed hostname.\n\nIncludes decrypted certificate data for issued certificates.\nPrivate keys are deployment-scoped secrets (like environment variables)."},"description":"Additional managed hostnames for the resource."},"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"endpoints":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message. Present when DNS previously failed, even if status\nwas reset to pending for retry. Used to surface actionable error context\nin WaitingForDns failure messages."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a managed hostname.\n\nIncludes decrypted certificate data for issued certificates.\nPrivate keys are deployment-scoped secrets (like environment variables)."},"description":"Endpoint-scoped metadata keyed by endpoint name."},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a public resource.\n\nThe direct fields describe the primary endpoint hostname. `endpoints`\ncontains endpoint-scoped metadata keyed by endpoint name. `aliases` contains\nadditional managed hostnames that route directly to the primary endpoint."},"description":"Metadata per resource ID."}},"required":["baseDomain","hostedZoneId","publicSubdomain","resources"],"description":"Domain metadata for auto-managed public resources (no private keys)."},{"nullable":true}]},"environmentVariables":{"type":"object","properties":{"createdAt":{"type":"string","description":"ISO 8601 timestamp when snapshot was created"},"hash":{"type":"string","description":"Deterministic hash of all variables (for change detection)"},"variables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Variable name"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource patterns (null = all resources, Some = wildcard patterns)"},"type":{"type":"string","enum":["plain","secret"],"description":"Type of environment variable"},"value":{"type":"string","description":"Variable value (decrypted - deployment has access to decryption keys)"}},"required":["name","type","value"],"description":"Environment variable for deployment"},"description":"Environment variables in the snapshot"}},"required":["createdAt","hash","variables"],"description":"Snapshot of environment variables at a point in time"},"externalBindings":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"bucketName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS S3 storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["s3"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"containerName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Blob Storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["blob"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"bucketName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Google Cloud Storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["gcs"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"storagePath":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local filesystem storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["local-storage"]}},"required":["service"]}]}],"description":"Service-type based storage binding that supports multiple storage providers"},{"type":"object","properties":{"type":{"type":"string","enum":["storage"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"queueUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS SQS queue parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["sqs"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"subscription":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"topic":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Pub/Sub parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["pubsub"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"queueName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Service Bus parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["servicebus"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"queuePath":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local queue parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["local-queue"]}},"required":["service"]}]}],"description":"Binding parameters for Queue at runtime or in templates."},{"type":"object","properties":{"type":{"type":"string","enum":["queue"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"endpointUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"region":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"tableName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS DynamoDB KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["dynamodb"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"collectionName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"databaseId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"projectId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Firestore KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["firestore"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"tableName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Table Storage KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["tablestorage"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"connectionUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"database":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"keyPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Redis KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["redis"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"keyPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Local development KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["local-kv"]}},"required":["service"]}]}],"description":"Represents a KV binding for key-value storage across platforms"},{"type":"object","properties":{"type":{"type":"string","enum":["kv"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"pullRoleArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"pushRoleArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"repositoryPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS ECR (Elastic Container Registry) binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["ecr"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"registryName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"repositoryPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Container Registry binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["acr"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"pullServiceAccountEmail":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"pushServiceAccountEmail":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"repositoryName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Google Artifact Registry binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["gar"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"type":"string"},{"nullable":true},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"registryUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local container registry binding configuration.\n\nThe local registry runs on localhost only and does not require authentication.\nSecurity boundary is the OS process isolation on the customer's machine.\nExternal image access is secured by the manager's registry proxy (deployment tokens)."},{"type":"object","properties":{"service":{"type":"string","enum":["local"]}},"required":["service"]}]}],"description":"Service-type based artifact registry binding that supports multiple registry providers"},{"type":"object","properties":{"type":{"type":"string","enum":["artifact_registry"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS SSM Parameter Store vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["parameter-store"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Secret Manager vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["secret-manager"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"vaultName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Key Vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["key-vault"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Kubernetes Secrets vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["kubernetes-secret"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"vaultName":{"type":"string","description":"The vault name for local storage"}},"required":["vaultName"],"description":"Local development vault binding (for testing/development)"},{"type":"object","properties":{"service":{"type":"string","enum":["local-vault"]}},"required":["service"]}]}],"description":"Represents a vault binding for secure secret management"},{"type":"object","properties":{"type":{"type":"string","enum":["vault"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"defaultDomain":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"environmentName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"staticIp":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Binding configuration for a pre-existing Azure Container Apps Environment.\n\nUsed when deploying to an existing environment instead of having Alien provision one.\nThis is useful for shared environments (e.g., test infrastructure) or enterprise\nsetups where environments are managed by a separate team."},{"type":"object","properties":{"type":{"type":"string","enum":["container_apps_environment"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"clusterEndpoint":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS Aurora Serverless v2 binding."},{"type":"object","properties":{"service":{"type":"string","enum":["aurora"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"serverCaCertificates":{"oneOf":[{"type":"array","items":{"type":"string"}},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Cloud SQL binding."},{"type":"object","properties":{"service":{"type":"string","enum":["cloud-sql"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretUri":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Flexible Server binding."},{"type":"object","properties":{"service":{"type":"string","enum":["flexible-server"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"password":{"type":"string","description":"Connection password as a concrete value, never an unresolved `SecretRef`: the platform\nmaterializes the Kubernetes secret into the pod env. The cloud variants carry a secret\nlocator instead."},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"sslMode":{"type":"string","enum":["verify-full","disable"],"description":"TLS policy for an operator-provided / BYO Postgres database.\n\nUnlike libpq's ambiguous `prefer` mode, both choices map exactly to the\nconnection settings exposed by every supported SDK."},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"required":["password"],"description":"Operator-provided / BYO database binding."},{"type":"object","properties":{"service":{"type":"string","enum":["external"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"password":{"type":"string"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"required":["password"],"description":"Local embedded Postgres binding."},{"type":"object","properties":{"service":{"type":"string","enum":["local-postgres"]}},"required":["service"]}]}],"description":"Connection details for a Postgres database, one variant per backend."},{"type":"object","properties":{"type":{"type":"string","enum":["postgres"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"apiKey":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"provider":{"type":"string","description":"The external AI provider name (e.g., \"openai\", \"anthropic\")"}},"required":["provider"],"description":"External AI provider binding configuration (BYO-key).\n\nThe operator-supplied secret rides inside the binding via\n`BindingValue`, so it is a literal on cloud platforms and gains\nKubernetes SecretRef resolution for free (`extract_binding_secrets` walks\nthe binding JSON for `secretRef`)."},{"type":"object","properties":{"type":{"type":"string","enum":["ai"]}},"required":["type"]}]}],"description":"Represents a binding to pre-existing infrastructure.\n\nThe binding type must match the resource type it's applied to.\nValidated at runtime by the executor."},"description":"Map from resource ID to external binding.\n\nValidated at runtime: binding type must match resource type."},"inputValues":{"type":"object","properties":{},"additionalProperties":{"nullable":true},"description":"Deployer-provided stack input values, keyed by input id. A resource\ngated with `.enabled(input)` and a Live lifecycle follows these\nvalues; a missing key falls back to the input's declared boolean\ndefault. Suppliers must not place secret-kind input values here:\nthis map serializes and debug-prints unredacted."},"labelDomain":{"type":"string","nullable":true,"description":"DNS-style label domain used for Kubernetes resource ownership labels.\n\nDefaults to `alien.dev` when absent. Whitelabeled Operator builds set this\nso generated workloads and optional log collectors share the same label\nnamespace."},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}]},"managerUrl":{"type":"string","nullable":true,"description":"Manager base URL (e.g., \"https://manager.alien.dev\").\n\nThe manager IS the container registry — its `/v2/` endpoint serves as\nthe OCI Distribution API. Controllers derive the proxy host from this\nto configure pull auth (RegistryCredentials, imagePullSecrets).\n\nWhen None (e.g., `alien dev`), controllers use image URIs as-is."},"monitoring":{"oneOf":[{"type":"object","properties":{"logsAuthHeader":{"type":"string","description":"Auth header value in \"key=value,...\" format.\nExample: \"authorization=Bearer \""},"logsEndpoint":{"type":"string","description":"Full OTLP logs endpoint URL.\nExample: \"https:///v1/logs\""},"metricsAuthHeader":{"type":"string","nullable":true,"description":"Auth header value for the metrics endpoint in \"key=value,...\" format (optional).\n\nWhen absent, `logs_auth_header` is reused for metrics -- suitable when the same\ncredential covers both signals. When present (e.g. Axiom with separate datasets),\nthis value is used exclusively for metrics.\n\nExample: \"authorization=Bearer ,x-axiom-dataset=\""},"metricsEndpoint":{"type":"string","nullable":true,"description":"Full OTLP metrics endpoint URL (optional).\nWhen set, the worker runtime exports its own VM/container orchestration metrics here.\nExample: \"https://api.axiom.co/v1/metrics\""},"resourceAttributes":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Resource attributes attached to every OTLP signal emitted for this deployment.\n\nPlatform managers use this for stable identity such as `alien.workspace_id`,\n`alien.project_id`, `alien.deployment_group_id`, and `alien.deployment_id`.\nRuntime-specific resource attributes such as `service.name` remain owned by\nthe runtime/exporter."}},"required":["logsAuthHeader","logsEndpoint"],"description":"OTLP log export configuration for a deployment.\n\nWhen set, injected compute runtimes export captured application logs\nthrough the given endpoint via OTLP/HTTP; which resources are injected\nis platform-dependent. Workers read auth headers from a runtime-only\nsecret. Runtime-less Containers and Daemons receive standard OTEL auth\nvariables only at the final hosting boundary: Local passes them directly\nto the process and Kubernetes projects them from a per-workload Secret."},{"nullable":true}]},"nativeImageHost":{"type":"string","nullable":true,"description":"Native image registry host+prefix for platforms that require it.\n\nLambda (ECR) and Cloud Run (GAR) require native registry URIs. Other\nruntimes, including Azure Container Apps, pull through the manager's\nregistry proxy.\n\nDerived by the manager from the artifact registry binding:\n- ECR: `{account_id}.dkr.ecr.{region}.amazonaws.com/{repository_prefix}`\n- GAR: `{region}-docker.pkg.dev/{project_id}/{repository_name}`"},"observeAllNamespaces":{"type":"boolean","description":"When true the observe pass reports raw resources across every namespace\n(cluster scope); otherwise it stays within the operator's own namespace.\nThe label selector, if any, still filters within whichever scope applies.\nIgnored by cloud observers."},"observeLabelSelector":{"type":"string","nullable":true,"description":"Kubernetes label selector that narrows which raw resources the observe\npass reports (e.g. `app.kubernetes.io/part-of=my-app`). `None` observes\neverything in the namespace. Ignored by cloud observers."},"publicEndpoints":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Public endpoint URLs for exposed resources (optional override).\n\nUse this only when a caller already knows the public URL. Managed public\nendpoint flows should prefer `domain_metadata` plus controller-reported\nload balancer outputs so DNS, certificate renewal, and route readiness\nstay tied to the resource state.\n\nIf not set, platforms determine public endpoint URLs from other sources:\n- Managed DNS/TLS flows: `domain_metadata` FQDN or load balancer DNS\n- Local: `http://localhost:{allocated_port}`\n- Custom or disabled exposure: no public endpoint URL unless a controller reports one\n\nOuter key: resource ID. Inner key: endpoint name. Value: public URL."},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["environmentVariables"],"description":"Deployment configuration"}},"required":["deploymentId","projectId","deploymentGroupId","current","config"]},"SyncContextRequest":{"type":"object","properties":{"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Manager requesting the context. Manager-scoped tokens are constrained to their own manager ID."}]},"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"}},"required":["deploymentId"],"additionalProperties":false},"SyncAcquireResponse":{"type":"object","properties":{"deployments":{"type":"array","items":{"$ref":"#/components/schemas/SyncAcquireResponseDeployment"},"description":"List of acquired deployments with deployment context"},"failures":{"type":"array","items":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"ID of the deployment that failed","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"projectId":{"type":"string","description":"Project ID the deployment belongs to"},"error":{"allOf":[{"$ref":"#/components/schemas/APIError"},{"description":"Error that occurred during context building"}]}},"required":["deploymentId","projectId","error"]},"description":"List of deployments that failed during context building (locks already released)"},"leaseExpiresAt":{"type":"string","nullable":true,"format":"date-time","description":"When the provisional leases on the returned deployments lapse. Confirm them with sync/renew before starting work. Null when nothing was acquired."}},"required":["deployments","failures","leaseExpiresAt"],"description":"Acquired deployments and failures"},"SyncAcquireRequest":{"type":"object","properties":{"managerId":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Manager requesting the deployments. If omitted, resolved from each deployment's managerId column."}]},"session":{"type":"string","description":"Unique session identifier for lock tracking"},"requestId":{"type":"string","minLength":1,"description":"Idempotency key for one logical acquire request"},"deploymentIds":{"type":"array","items":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"description":"Specific deployment IDs to lock (for Pull model sync)"},"statuses":{"type":"array","items":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"description":"Filter by deployment statuses (default: all deployment statuses)"},"platforms":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Filter by platforms (default: all platforms the Manager supports)"},"setupMethod":{"allOf":[{"$ref":"#/components/schemas/DeploymentSetupMethod"},{"description":"Filter by setup method for setup-owned acquisition paths"}]},"acquireMode":{"type":"string","enum":["runtime","setup-run","setup-teardown"],"description":"Phase ownership mode for deployment acquisition"},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Filter by deployment model from stackSettings.deploymentModel."},"limit":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum number of deployments to acquire (default: 10)"}},"required":["session","requestId","deploymentModel"],"additionalProperties":false,"description":"Request to acquire deployments for processing"},"SyncReconcileResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Whether the state was reconciled"},"current":{"type":"object","properties":{"currentRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}]},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"protocolVersion":{"type":"integer","minimum":0,"description":"Protocol version for cross-actor compatibility.\nAll actors (manager, push client, agent) check this before stepping.\nMismatched versions produce a clear error instead of silent corruption.\nSee docs/02-manager/10-deployment-protocol.md."},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment\nWhen true and status is a failed state, the deployment system will retry failed resources"},"runtimeMetadata":{"oneOf":[{"type":"object","properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment\n\nStores deployment state that needs to persist across step calls."},{"nullable":true}]},"stackState":{"oneOf":[{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"Represents the collective state of all resources in a stack, including platform and pending actions."},{"nullable":true}]},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"targetRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]}},"required":["platform","protocolVersion","status"],"description":"Current deployment state after reconciliation"},"target":{"type":"object","properties":{"config":{"type":"object","properties":{"allowFrozenChanges":{"type":"boolean","description":"Allow frozen resource changes during updates\nWhen true, skips the frozen resources compatibility check.\nThis requires running with elevated cloud credentials."},"basePlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"computeBackend":{"oneOf":[{"allOf":[{"type":"object","properties":{"clusters":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"clusterId":{"type":"string","description":"Cluster ID (deterministic: workspace/project/deployment/resourceid)"},"managementToken":{"type":"string","description":"Management token for API access (hm_...)\nUsed by alien-deployment controllers to create/update containers"}},"required":["clusterId","managementToken"],"description":"Configuration for a single container worker cluster.\n\nContains the cluster ID and management token needed to interact with\nthe managed container control plane API for container operations."},"description":"Cluster configurations (one per ComputeCluster resource)\nKey: ComputeCluster resource ID from stack\nValue: Cluster ID and management token for that cluster"},"horizonMachineImage":{"oneOf":[{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"amis":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"AMI IDs by architecture, then AWS region."}},"required":["amis"],"description":"AWS Horizon machine image catalog."},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"images":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"imageVersionId":{"type":"string","description":"Azure Compute Gallery image version ID."}},"required":["imageVersionId"],"description":"Azure Horizon machine image entry."},"description":"Images by architecture."}},"required":["images"],"description":"Azure Horizon machine image catalog."},{"nullable":true}]},"baseImage":{"type":"object","properties":{"name":{"type":"string","description":"Base OS image name."},"version":{"type":"string","description":"Base OS image version or channel."}},"required":["name","version"],"description":"Base image metadata for the Horizon machine image."},"channel":{"type":"string","description":"Logical image channel, such as prod, staging, or canary."},"createdAt":{"type":"string","description":"Image manifest creation timestamp."},"gcp":{"oneOf":[{"type":"object","properties":{"images":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sourceImage":{"type":"string","description":"Source image self link or image-family URL."}},"required":["sourceImage"],"description":"GCP Horizon machine image entry."},"description":"Images by architecture."}},"required":["images"],"description":"GCP Horizon machine image catalog."},{"nullable":true}]},"gitSha":{"type":"string","description":"Git commit SHA used to build the image."},"horizondArtifacts":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"sha256":{"type":"string","description":"SHA-256 digest for the artifact payload."},"url":{"type":"string","description":"HTTPS URL for the artifact."}},"required":["sha256","url"],"description":"Download artifact for one horizond release platform."},"description":"Per-architecture horizond artifacts by release-platform key."},"horizondVersion":{"type":"string","description":"horizond daemon version baked into the image."},"machineImageVersion":{"type":"string","description":"Published immutable machine image version."}},"required":["baseImage","channel","createdAt","gitSha","horizondArtifacts","horizondVersion","machineImageVersion"],"description":"Horizon machine image catalog.\n\nPlatform resolves concrete provider images from this catalog during rollout."},{"nullable":true}]},"url":{"type":"string","description":"Horizon control-plane API base URL."}},"required":["clusters","url"],"description":"Horizon control-plane configuration for container orchestration.\n\nContains all the information needed for Alien to interact with managed\ncontainer clusters during deployment. Each ComputeCluster resource gets its own\nentry in the clusters map."},{"type":"object","properties":{"type":{"type":"string","enum":["horizon"]}},"required":["type"]}],"description":"Compute backend for Container and Worker resources.\n\nDetermines how compute workloads are orchestrated on cloud platforms.\nWhen None, the platform default is used for cloud platforms."},{"nullable":true}]},"deploymentName":{"type":"string","nullable":true,"description":"Human-readable deployment name for cloud console metadata.\n\nThis is separate from the physical resource prefix in StackState. It is\nused only for display text such as IAM role descriptions, service\naccount descriptions, and custom role titles."},"deploymentToken":{"type":"string","nullable":true,"description":"Deployment token for pull authentication with the manager's registry.\n\nUsed by controllers to configure registry credentials so cloud platforms\nand K8s can pull images from the manager's `/v2/` endpoint."},"domainMetadata":{"oneOf":[{"type":"object","properties":{"baseDomain":{"type":"string","description":"Base domain for auto-generated domains (e.g., \"vpc.direct\")."},"hostedZoneId":{"type":"string","description":"Hosted zone ID for DNS records."},"publicSubdomain":{"type":"string","description":"Deployment public subdomain (e.g., \"k8f2j3\")."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"aliases":{"type":"array","items":{"type":"object","properties":{"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message. Present when DNS previously failed, even if status\nwas reset to pending for retry. Used to surface actionable error context\nin WaitingForDns failure messages."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a managed hostname.\n\nIncludes decrypted certificate data for issued certificates.\nPrivate keys are deployment-scoped secrets (like environment variables)."},"description":"Additional managed hostnames for the resource."},"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"endpoints":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"certificateChain":{"type":"string","nullable":true,"description":"Full PEM certificate chain (only present if status is \"issued\")."},"certificateId":{"type":"string","description":"Certificate ID (for tracking/logging)."},"certificateStatus":{"type":"string","enum":["pending","issued","renewing","renewal-failed","failed","deleting"],"description":"Certificate status in the certificate lifecycle"},"dnsError":{"type":"string","nullable":true,"description":"Last DNS error message. Present when DNS previously failed, even if status\nwas reset to pending for retry. Used to surface actionable error context\nin WaitingForDns failure messages."},"dnsStatus":{"type":"string","enum":["pending","active","updating","deleting","failed"],"description":"DNS record status in the DNS lifecycle"},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a managed hostname.\n\nIncludes decrypted certificate data for issued certificates.\nPrivate keys are deployment-scoped secrets (like environment variables)."},"description":"Endpoint-scoped metadata keyed by endpoint name."},"fqdn":{"type":"string","description":"Fully qualified domain name."},"issuedAt":{"type":"string","nullable":true,"description":"ISO 8601 timestamp when certificate was issued (for renewal detection)."},"privateKey":{"type":"string","nullable":true,"description":"Decrypted private key (only present if status is \"issued\")."}},"required":["certificateId","certificateStatus","dnsStatus","fqdn"],"description":"Certificate and DNS metadata for a public resource.\n\nThe direct fields describe the primary endpoint hostname. `endpoints`\ncontains endpoint-scoped metadata keyed by endpoint name. `aliases` contains\nadditional managed hostnames that route directly to the primary endpoint."},"description":"Metadata per resource ID."}},"required":["baseDomain","hostedZoneId","publicSubdomain","resources"],"description":"Domain metadata for auto-managed public resources (no private keys)."},{"nullable":true}]},"environmentVariables":{"type":"object","properties":{"createdAt":{"type":"string","description":"ISO 8601 timestamp when snapshot was created"},"hash":{"type":"string","description":"Deterministic hash of all variables (for change detection)"},"variables":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Variable name"},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource patterns (null = all resources, Some = wildcard patterns)"},"type":{"type":"string","enum":["plain","secret"],"description":"Type of environment variable"},"value":{"type":"string","description":"Variable value (decrypted - deployment has access to decryption keys)"}},"required":["name","type","value"],"description":"Environment variable for deployment"},"description":"Environment variables in the snapshot"}},"required":["createdAt","hash","variables"],"description":"Snapshot of environment variables at a point in time"},"externalBindings":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"bucketName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS S3 storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["s3"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"containerName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Blob Storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["blob"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"bucketName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Google Cloud Storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["gcs"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"storagePath":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local filesystem storage binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["local-storage"]}},"required":["service"]}]}],"description":"Service-type based storage binding that supports multiple storage providers"},{"type":"object","properties":{"type":{"type":"string","enum":["storage"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"queueUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS SQS queue parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["sqs"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"subscription":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"topic":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Pub/Sub parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["pubsub"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"queueName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Service Bus parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["servicebus"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"queuePath":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local queue parameters"},{"type":"object","properties":{"service":{"type":"string","enum":["local-queue"]}},"required":["service"]}]}],"description":"Binding parameters for Queue at runtime or in templates."},{"type":"object","properties":{"type":{"type":"string","enum":["queue"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"endpointUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"region":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"tableName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS DynamoDB KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["dynamodb"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"collectionName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"databaseId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"projectId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Firestore KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["firestore"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"tableName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Table Storage KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["tablestorage"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"connectionUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"database":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"keyPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Redis KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["redis"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"keyPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Local development KV binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["local-kv"]}},"required":["service"]}]}],"description":"Represents a KV binding for key-value storage across platforms"},{"type":"object","properties":{"type":{"type":"string","enum":["kv"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"pullRoleArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"pushRoleArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"repositoryPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS ECR (Elastic Container Registry) binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["ecr"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"registryName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"repositoryPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Container Registry binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["acr"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"pullServiceAccountEmail":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"pushServiceAccountEmail":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]},"repositoryName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Google Artifact Registry binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["gar"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"type":"string"},{"nullable":true},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"registryUrl":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Local container registry binding configuration.\n\nThe local registry runs on localhost only and does not require authentication.\nSecurity boundary is the OS process isolation on the customer's machine.\nExternal image access is secured by the manager's registry proxy (deployment tokens)."},{"type":"object","properties":{"service":{"type":"string","enum":["local"]}},"required":["service"]}]}],"description":"Service-type based artifact registry binding that supports multiple registry providers"},{"type":"object","properties":{"type":{"type":"string","enum":["artifact_registry"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS SSM Parameter Store vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["parameter-store"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Secret Manager vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["secret-manager"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"vaultName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Key Vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["key-vault"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"vaultPrefix":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Kubernetes Secrets vault binding configuration"},{"type":"object","properties":{"service":{"type":"string","enum":["kubernetes-secret"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"dataDir":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"vaultName":{"type":"string","description":"The vault name for local storage"}},"required":["vaultName"],"description":"Local development vault binding (for testing/development)"},{"type":"object","properties":{"service":{"type":"string","enum":["local-vault"]}},"required":["service"]}]}],"description":"Represents a vault binding for secure secret management"},{"type":"object","properties":{"type":{"type":"string","enum":["vault"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"defaultDomain":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"environmentName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceGroupName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"resourceId":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"staticIp":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]},{"nullable":true}]}},"description":"Binding configuration for a pre-existing Azure Container Apps Environment.\n\nUsed when deploying to an existing environment instead of having Alien provision one.\nThis is useful for shared environments (e.g., test infrastructure) or enterprise\nsetups where environments are managed by a separate team."},{"type":"object","properties":{"type":{"type":"string","enum":["container_apps_environment"]}},"required":["type"]}]},{"allOf":[{"oneOf":[{"allOf":[{"type":"object","properties":{"clusterEndpoint":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretArn":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"AWS Aurora Serverless v2 binding."},{"type":"object","properties":{"service":{"type":"string","enum":["aurora"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretName":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"serverCaCertificates":{"oneOf":[{"type":"array","items":{"type":"string"}},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"GCP Cloud SQL binding."},{"type":"object","properties":{"service":{"type":"string","enum":["cloud-sql"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"passwordSecretUri":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"description":"Azure Flexible Server binding."},{"type":"object","properties":{"service":{"type":"string","enum":["flexible-server"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"password":{"type":"string","description":"Connection password as a concrete value, never an unresolved `SecretRef`: the platform\nmaterializes the Kubernetes secret into the pod env. The cloud variants carry a secret\nlocator instead."},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"sslMode":{"type":"string","enum":["verify-full","disable"],"description":"TLS policy for an operator-provided / BYO Postgres database.\n\nUnlike libpq's ambiguous `prefer` mode, both choices map exactly to the\nconnection settings exposed by every supported SDK."},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"required":["password"],"description":"Operator-provided / BYO database binding."},{"type":"object","properties":{"service":{"type":"string","enum":["external"]}},"required":["service"]}]},{"allOf":[{"type":"object","properties":{"database":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"host":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"password":{"type":"string"},"port":{"oneOf":[{"type":"integer"},{"nullable":true},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"username":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"}},"required":["password"],"description":"Local embedded Postgres binding."},{"type":"object","properties":{"service":{"type":"string","enum":["local-postgres"]}},"required":["service"]}]}],"description":"Connection details for a Postgres database, one variant per backend."},{"type":"object","properties":{"type":{"type":"string","enum":["postgres"]}},"required":["type"]}]},{"allOf":[{"type":"object","properties":{"apiKey":{"oneOf":[{"nullable":true},{"type":"string"},{"type":"object","properties":{"secretRef":{"type":"object","properties":{"key":{"type":"string"},"name":{"type":"string"}},"required":["key","name"],"description":"Reference to a Kubernetes Secret"}},"required":["secretRef"]}],"description":"Represents a value that can be either a concrete value, a template expression,\nor a reference to a Kubernetes Secret"},"provider":{"type":"string","description":"The external AI provider name (e.g., \"openai\", \"anthropic\")"}},"required":["provider"],"description":"External AI provider binding configuration (BYO-key).\n\nThe operator-supplied secret rides inside the binding via\n`BindingValue`, so it is a literal on cloud platforms and gains\nKubernetes SecretRef resolution for free (`extract_binding_secrets` walks\nthe binding JSON for `secretRef`)."},{"type":"object","properties":{"type":{"type":"string","enum":["ai"]}},"required":["type"]}]}],"description":"Represents a binding to pre-existing infrastructure.\n\nThe binding type must match the resource type it's applied to.\nValidated at runtime by the executor."},"description":"Map from resource ID to external binding.\n\nValidated at runtime: binding type must match resource type."},"inputValues":{"type":"object","properties":{},"additionalProperties":{"nullable":true},"description":"Deployer-provided stack input values, keyed by input id. A resource\ngated with `.enabled(input)` and a Live lifecycle follows these\nvalues; a missing key falls back to the input's declared boolean\ndefault. Suppliers must not place secret-kind input values here:\nthis map serializes and debug-prints unredacted."},"labelDomain":{"type":"string","nullable":true,"description":"DNS-style label domain used for Kubernetes resource ownership labels.\n\nDefaults to `alien.dev` when absent. Whitelabeled Operator builds set this\nso generated workloads and optional log collectors share the same label\nnamespace."},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]},{"nullable":true}]},"managerUrl":{"type":"string","nullable":true,"description":"Manager base URL (e.g., \"https://manager.alien.dev\").\n\nThe manager IS the container registry — its `/v2/` endpoint serves as\nthe OCI Distribution API. Controllers derive the proxy host from this\nto configure pull auth (RegistryCredentials, imagePullSecrets).\n\nWhen None (e.g., `alien dev`), controllers use image URIs as-is."},"monitoring":{"oneOf":[{"type":"object","properties":{"logsAuthHeader":{"type":"string","description":"Auth header value in \"key=value,...\" format.\nExample: \"authorization=Bearer \""},"logsEndpoint":{"type":"string","description":"Full OTLP logs endpoint URL.\nExample: \"https:///v1/logs\""},"metricsAuthHeader":{"type":"string","nullable":true,"description":"Auth header value for the metrics endpoint in \"key=value,...\" format (optional).\n\nWhen absent, `logs_auth_header` is reused for metrics -- suitable when the same\ncredential covers both signals. When present (e.g. Axiom with separate datasets),\nthis value is used exclusively for metrics.\n\nExample: \"authorization=Bearer ,x-axiom-dataset=\""},"metricsEndpoint":{"type":"string","nullable":true,"description":"Full OTLP metrics endpoint URL (optional).\nWhen set, the worker runtime exports its own VM/container orchestration metrics here.\nExample: \"https://api.axiom.co/v1/metrics\""},"resourceAttributes":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Resource attributes attached to every OTLP signal emitted for this deployment.\n\nPlatform managers use this for stable identity such as `alien.workspace_id`,\n`alien.project_id`, `alien.deployment_group_id`, and `alien.deployment_id`.\nRuntime-specific resource attributes such as `service.name` remain owned by\nthe runtime/exporter."}},"required":["logsAuthHeader","logsEndpoint"],"description":"OTLP log export configuration for a deployment.\n\nWhen set, injected compute runtimes export captured application logs\nthrough the given endpoint via OTLP/HTTP; which resources are injected\nis platform-dependent. Workers read auth headers from a runtime-only\nsecret. Runtime-less Containers and Daemons receive standard OTEL auth\nvariables only at the final hosting boundary: Local passes them directly\nto the process and Kubernetes projects them from a per-workload Secret."},{"nullable":true}]},"nativeImageHost":{"type":"string","nullable":true,"description":"Native image registry host+prefix for platforms that require it.\n\nLambda (ECR) and Cloud Run (GAR) require native registry URIs. Other\nruntimes, including Azure Container Apps, pull through the manager's\nregistry proxy.\n\nDerived by the manager from the artifact registry binding:\n- ECR: `{account_id}.dkr.ecr.{region}.amazonaws.com/{repository_prefix}`\n- GAR: `{region}-docker.pkg.dev/{project_id}/{repository_name}`"},"observeAllNamespaces":{"type":"boolean","description":"When true the observe pass reports raw resources across every namespace\n(cluster scope); otherwise it stays within the operator's own namespace.\nThe label selector, if any, still filters within whichever scope applies.\nIgnored by cloud observers."},"observeLabelSelector":{"type":"string","nullable":true,"description":"Kubernetes label selector that narrows which raw resources the observe\npass reports (e.g. `app.kubernetes.io/part-of=my-app`). `None` observes\neverything in the namespace. Ignored by cloud observers."},"publicEndpoints":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Public endpoint URLs for exposed resources (optional override).\n\nUse this only when a caller already knows the public URL. Managed public\nendpoint flows should prefer `domain_metadata` plus controller-reported\nload balancer outputs so DNS, certificate renewal, and route readiness\nstay tied to the resource state.\n\nIf not set, platforms determine public endpoint URLs from other sources:\n- Managed DNS/TLS flows: `domain_metadata` FQDN or load balancer DNS\n- Local: `http://localhost:{allocated_port}`\n- Custom or disabled exposure: no public endpoint URL unless a controller reports one\n\nOuter key: resource ID. Inner key: endpoint name. Value: public URL."},"stackSettings":{"type":"object","properties":{"compute":{"oneOf":[{"type":"object","properties":{"pools":{"type":"object","properties":{},"additionalProperties":{"oneOf":[{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"machines":{"type":"integer","minimum":0,"description":"Number of machines to run."},"mode":{"type":"string","enum":["fixed"]}},"required":["machines","mode"]},{"type":"object","properties":{"failure_domains":{"oneOf":[{"type":"object","properties":{"selectedFailureDomains":{"type":"array","items":{"type":"string"},"description":"Concrete provider domains selected during setup.\nEmpty delegates deterministic selection to the provider setup implementation."},"spread":{"type":"integer","minimum":0,"description":"Number of distinct failure domains across which new stateful replicas may be spread."}},"required":["spread"],"description":"Failure-domain policy selected for a compute pool."},{"nullable":true}]},"machine":{"type":"string","nullable":true,"description":"Provider machine type selected for this deployment."},"max":{"type":"integer","minimum":0,"description":"Maximum machine count."},"min":{"type":"integer","minimum":0,"description":"Minimum machine count."},"mode":{"type":"string","enum":["autoscale"]}},"required":["max","min","mode"]}],"description":"User-selected deployment settings for one compute pool."},"description":"Selected compute choices keyed by pool ID."}},"description":"Deployment-time compute choices for Alien-managed compute pools.\n\nApplication source declares portable pool requirements. This settings\nobject stores the concrete choices made for one deployment, such as the\nprovider machine type and selected machine counts."},{"nullable":true}]},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}},"description":"User-customizable deployment settings specified at deploy time.\n\nThese settings are provided by the customer via CloudFormation parameters,\nTerraform attributes, CLI flags, or Helm values. They customize how the\ndeployment runs and what capabilities are enabled.\n\n**Key distinction**: StackSettings is user-customizable, while ManagementConfig\nis platform-derived (from the Manager's ServiceAccount)."}},"required":["environmentVariables"],"description":"Deployment configuration\n\nConfiguration for how to perform the deployment.\nNote: Credentials (ClientConfig) are passed separately to step() function."},"releaseInfo":{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."}},"required":["config","releaseInfo"],"description":"Target deployment if update is needed"}},"required":["success","current"],"description":"State reconciliation result with optional target"},"SyncReconcileRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Deployment ID to reconcile state for","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"session":{"type":"string","description":"Lock session (push model only) - verifies lock ownership"},"state":{"type":"object","properties":{"currentRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]},"environmentInfo":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string","description":"AWS account ID"},"region":{"type":"string","description":"AWS region"}},"required":["accountId","region"],"description":"AWS-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"projectId":{"type":"string","description":"GCP project ID (e.g., \"my-project\")"},"projectNumber":{"type":"string","description":"GCP project number (e.g., \"123456789012\")"},"region":{"type":"string","description":"GCP region"}},"required":["projectId","projectNumber","region"],"description":"GCP-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string","description":"Azure location/region"},"subscriptionId":{"type":"string","description":"Azure subscription ID"},"tenantId":{"type":"string","description":"Azure tenant ID"}},"required":["location","subscriptionId","tenantId"],"description":"Azure-specific environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"arch":{"type":"string","description":"Architecture (e.g., \"x86_64\", \"aarch64\")"},"hostname":{"type":"string","description":"Hostname of the machine running the deployment"},"os":{"type":"string","description":"Operating system (e.g., \"linux\", \"macos\", \"windows\")"}},"required":["arch","hostname","os"],"description":"Local platform environment information"},{"type":"object","properties":{"platform":{"type":"string","enum":["local"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"testId":{"type":"string","description":"Test identifier for this environment"}},"required":["testId"],"description":"Test platform environment information (mock)"},{"type":"object","properties":{"platform":{"type":"string","enum":["test"]}},"required":["platform"]}]},{"nullable":true}]},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"protocolVersion":{"type":"integer","minimum":0,"description":"Protocol version for cross-actor compatibility.\nAll actors (manager, push client, agent) check this before stepping.\nMismatched versions produce a clear error instead of silent corruption.\nSee docs/02-manager/10-deployment-protocol.md."},"retryRequested":{"type":"boolean","description":"Whether a retry has been requested for a failed deployment\nWhen true and status is a failed state, the deployment system will retry failed resources"},"runtimeMetadata":{"oneOf":[{"type":"object","properties":{"initialSetupAuthority":{"type":"string","enum":["importedHandoff","directSetup"],"description":"Actor that owns structural work during the initial setup phase."},"lastSyncedEnvVarsHash":{"type":"string","nullable":true,"description":"Hash of the environment variables snapshot that was last synced to the vault\nUsed to avoid redundant sync operations during incremental deployment"},"lastSyncedSecretNames":{"type":"array","items":{"type":"string"},"description":"Exact vault keys owned by the deployment secret synchronizer. This\ninventory lets a later snapshot delete removed keys without listing or\ntouching unrelated values in the same vault."},"pendingPreparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"persistedGateAnswers":{"type":"object","properties":{},"additionalProperties":{"type":"boolean"},"description":"Canonical resolved answers for inputs that gate Frozen resources,\nkeyed by input id, recorded when the deployment is created or its\nsetup import registers.\n\nA frozen gate's answer is fixed for the deployment's lifetime: the\nupdate path refuses input values that conflict with these, and a Live\nresource sharing such an input resolves the persisted answer forever."},"preparedStack":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},{"nullable":true}]},"registryAccessGranted":{"type":"boolean","description":"Whether cross-account registry access has been successfully granted.\nSet to true after the manager successfully sets the ECR/GAR repo policy\nfor this deployment's target account. Prevents redundant API calls on\nevery reconcile tick."},"setupUpdateAuthorization":{"oneOf":[{"type":"object","properties":{"baselineFrozenDigest":{"type":"string","description":"Frozen resource projection from the last successful deployment."},"nonce":{"type":"string","description":"Unique revision used by persistence layers for compare-and-swap updates."},"releaseId":{"type":"string","description":"Release whose stack was prepared by setup."},"setupFingerprint":{"type":"string","description":"Exact setup artifact revision that authored this authority."},"setupFingerprintVersion":{"type":"integer","minimum":0,"description":"Setup fingerprint contract version."},"setupTarget":{"type":"string","description":"Stable setup target recorded on the imported deployment."},"targetFrozenDigest":{"type":"string","description":"Frozen resource projection prepared by the setup re-import."}},"required":["baselineFrozenDigest","nonce","releaseId","setupFingerprint","setupFingerprintVersion","setupTarget","targetFrozenDigest"],"description":"One-shot authority for a setup re-import to replace setup-owned resources."},{"nullable":true}]}},"description":"Runtime metadata for deployment\n\nStores deployment state that needs to persist across step calls."},{"nullable":true}]},"stackState":{"oneOf":[{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"resourcePrefix":{"type":"string","description":"A prefix used for resource naming to ensure uniqueness across deployments."},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"_internal":{"nullable":true,"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":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"controllerPlatform":{"oneOf":[{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},{"nullable":true}]},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Complete list of dependencies for this resource, including infrastructure dependencies.\nThis preserves the full dependency information from the stack definition."},"error":{"oneOf":[{"type":"object","properties":{"code":{"type":"string","maxLength":128,"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\""},"context":{"nullable":true,"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","nullable":true,"description":"Optional human-facing remediation hint."},"httpStatusCode":{"type":"integer","nullable":true,"minimum":100,"maximum":599,"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."},"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","maxLength":16384,"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."},"retryable":{"type":"boolean","default":false,"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."},"source":{"nullable":true,"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."}},"required":["code","internal","message"],"description":"Canonical error container that provides a structured way to represent errors\nwith rich metadata including error codes, human-readable messages, context,\nand chaining capabilities for error propagation.\n\nThis struct is designed to be both machine-readable and user-friendly,\nsupporting serialization for API responses and detailed error reporting\nin distributed systems."},{"nullable":true}]},"lastFailedState":{"nullable":true,"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":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},{"nullable":true}]},"outputs":{"oneOf":[{"type":"object","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."}},"required":["type"],"additionalProperties":{"nullable":true},"description":"Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties."},{"nullable":true}]},"previousConfig":{"oneOf":[{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},{"nullable":true}]},"remoteBindingParams":{"nullable":true,"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","minimum":0,"description":"Tracks consecutive retry attempts for the current state transition."},"status":{"type":"string","enum":["pending","provisioning","provision-failed","running","updating","update-failed","deleting","delete-failed","teardown-required","deleted","refresh-failed"],"description":"Represents the high-level status of a resource during its lifecycle."},"type":{"type":"string","description":"The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE)."}},"required":["config","status","type"],"description":"Represents the state of a single resource within the stack for a specific platform."},"description":"The state of individual resources, keyed by resource ID."}},"required":["platform","resourcePrefix","resources"],"description":"Represents the collective state of all resources in a stack, including platform and pending actions."},{"nullable":true}]},"status":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"targetRelease":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true,"description":"Short description of the release"},"releaseId":{"type":"string","nullable":true,"description":"Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no\nAlien-assigned release — the platform resolves a release from `version`."},"stack":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for the stack"},"inputs":{"type":"array","items":{"type":"object","properties":{"default":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["string"]},"value":{"type":"string","description":"String default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["number"]},"value":{"type":"string","description":"Number default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["boolean"]},"value":{"type":"boolean","description":"Boolean default."}},"required":["type","value"]},{"type":"object","properties":{"type":{"type":"string","enum":["stringList"]},"value":{"type":"array","items":{"type":"string"},"description":"String list default."}},"required":["type","value"]},{"nullable":true}]},"description":{"type":"string","description":"Human-facing helper text."},"env":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string","description":"Environment variable name."},"targetResources":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Target resource IDs or patterns. None means every env-capable resource."},"type":{"oneOf":[{"type":"string","enum":["plain","secret"],"description":"Environment variable handling for a stack input mapping."},{"nullable":true}]}},"required":["name"],"description":"How a resolved stack input is injected into runtime environment variables."},"description":"Runtime env-var mappings for v1 input resolution."},"id":{"type":"string","description":"Stable input ID used by CLI/API calls."},"kind":{"type":"string","enum":["string","secret","number","integer","boolean","enum","stringList"],"description":"Primitive stack input kind."},"label":{"type":"string","description":"Human-facing field label."},"placeholder":{"type":"string","nullable":true,"description":"Example placeholder shown in UI."},"platforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Platforms where this input applies."},"providedBy":{"type":"array","items":{"type":"string","enum":["developer","deployer"],"description":"Who can provide a stack input value."},"description":"Who can provide this value."},"required":{"type":"boolean","description":"Whether a resolved value is required before deployment can proceed."},"validation":{"oneOf":[{"type":"object","properties":{"format":{"type":"string","nullable":true,"description":"Semantic format hint such as url."},"max":{"type":"string","nullable":true,"description":"Maximum number."},"maxItems":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string-list items."},"maxLength":{"type":"integer","nullable":true,"minimum":0,"description":"Maximum string length."},"min":{"type":"string","nullable":true,"description":"Minimum number."},"minItems":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string-list items."},"minLength":{"type":"integer","nullable":true,"minimum":0,"description":"Minimum string length."},"pattern":{"type":"string","nullable":true,"description":"Portable whole-value regex pattern."},"values":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Allowed string enum values."}},"description":"Portable stack input validation constraints."},{"nullable":true}]}},"required":["description","id","kind","label","providedBy","required"],"description":"Stack input definition serialized into a release stack."},"description":"Input definitions required before setup or deployment can proceed."},"permissions":{"type":"object","properties":{"management":{"oneOf":[{"type":"object","properties":{"extend":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["extend"]},{"type":"object","properties":{"override":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"}},"required":["override"]},{"type":"string","enum":["auto"]}],"description":"Management permissions configuration for stack management access"},"profiles":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"description":{"type":"string","description":"Human-readable description of what this permission set allows"},"id":{"type":"string","description":"Unique identifier for the permission set (e.g., \"storage/data-read\")"},"platforms":{"type":"object","properties":{"aws":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"description":"Optional condition for additional filtering (rare)"},"resources":{"type":"array","items":{"type":"string"},"description":"Resource ARNs to bind to"}},"required":["resources"],"description":"AWS-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"effect":{"type":"string","enum":["Allow","Deny"],"description":"IAM effect. Defaults to Allow."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"AWS-specific platform permission configuration"},"description":"AWS permission configurations"},"azure":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"},"stack":{"type":"object","properties":{"scope":{"type":"string","description":"Scope (subscription/resource group/resource level)"}},"required":["scope"],"description":"Azure-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"Azure-specific platform permission configuration"},"description":"Azure permission configurations"},"gcp":{"type":"array","nullable":true,"items":{"type":"object","properties":{"binding":{"type":"object","properties":{"resource":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"},"stack":{"type":"object","properties":{"condition":{"oneOf":[{"type":"object","properties":{"expression":{"type":"string"},"title":{"type":"string"}},"required":["expression","title"],"description":"GCP IAM condition"},{"nullable":true}]},"scope":{"type":"string","description":"Scope (project/resource level)"}},"required":["scope"],"description":"GCP-specific binding specification"}},"description":"Generic binding configuration for permissions"},"description":{"type":"string","nullable":true,"description":"Short admin-facing description of why this entry exists."},"grant":{"type":"object","properties":{"actions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"AWS IAM actions (only for AWS)"},"dataActions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Azure actions (only for Azure)"},"permissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP permissions that require an exact residual custom role."},"predefinedRoles":{"type":"array","nullable":true,"items":{"type":"string"},"description":"Provider predefined roles to bind directly."},"residualPermissions":{"type":"array","nullable":true,"items":{"type":"string"},"description":"GCP residual custom permissions to pair with predefined roles."}},"description":"Grant permissions for a specific cloud platform"},"label":{"type":"string","nullable":true,"description":"Stable admin-facing label for this permission entry."}},"required":["binding","grant"],"description":"GCP-specific platform permission configuration"},"description":"GCP permission configurations"}},"description":"Platform-specific permission configurations"}},"required":["description","id","platforms"],"description":"A permission set that can be applied across different cloud platforms"},{"type":"string"}],"description":"Reference to a permission set - either by name or inline definition"}},"description":"Permission profile that maps resources to permission sets\nKey can be \"*\" for all resources or resource name for specific resource"},"description":"Permission profiles that define access control for compute services\nKey is the profile name, value is the permission configuration"}},"required":["profiles"],"description":"Combined permissions configuration that contains both profiles and management"},"resources":{"type":"object","properties":{},"additionalProperties":{"type":"object","properties":{"config":{"type":"object","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."}},"required":["id","type"],"additionalProperties":{"nullable":true},"description":"Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties."},"dependencies":{"type":"array","items":{"type":"object","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."}},"required":["id","type"],"description":"Reference to a resource by its stable id and resource type."},"description":"Additional dependencies for this resource beyond those defined in the resource itself.\nThe total dependencies are: resource.get_dependencies() + this list"},"enabledWhen":{"type":"string","nullable":true,"description":"Id of the boolean stack input that decides whether this resource is\ncreated at all. `None` means always create it.\n\nSet by `.enabled(input)` in the SDK. Setup emitters render the resource\nconditionally on the matching template variable, so a deployer who says no\nnever gets the resource, its outputs, or anything derived from it."},"lifecycle":{"type":"string","enum":["frozen","live"],"description":"Describes the lifecycle of a resource within a stack, determining how it's managed and deployed."},"remoteAccess":{"type":"boolean","description":"Enable remote bindings for this resource (BYOB use case).\nWhen true, binding params are synced to StackState's `remote_binding_params`.\nDefault: false (prevents sensitive data in synced state)."}},"required":["config","dependencies","lifecycle"]},"description":"Map of resource IDs to their configurations and lifecycle settings"},"supportedPlatforms":{"type":"array","nullable":true,"items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Which platforms this stack supports. When None, all platforms are supported."}},"required":["id","resources"],"description":"A bag of resources, unaware of any cloud."},"version":{"type":"string","nullable":true,"description":"Version string (e.g., 2.1.0)"}},"required":["stack"],"description":"Release metadata\n\nIdentifies a specific release version and includes the stack definition.\nThe deployment engine uses this to track which release is currently deployed\nand which is the target."},{"nullable":true}]}},"required":["platform","protocolVersion","status"],"description":"Complete deployment state after step() execution"},"updateHeartbeat":{"type":"boolean","description":"Update heartbeat timestamp (for successful health checks)"},"suggestedDelayMs":{"type":"integer","minimum":0,"description":"Delay before this deployment should be acquired again."},"resourceHeartbeats":{"type":"array","items":{"type":"object","properties":{"backend":{"type":"string","enum":["aws","gcp","azure","kubernetes","local","managed","external","test"]},"controllerPlatform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"data":{"oneOf":[{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"blockPublicAcls":{"type":"boolean","nullable":true},"blockPublicPolicy":{"type":"boolean","nullable":true},"bucketAclPresent":{"type":"boolean","nullable":true},"bucketLocation":{"type":"string","nullable":true},"bucketPolicyPresent":{"type":"boolean","nullable":true},"encryptionConfigPresent":{"type":"boolean"},"encryptionEnabled":{"type":"boolean","nullable":true},"ignorePublicAcls":{"type":"boolean","nullable":true},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"publicAccessBlockPresent":{"type":"boolean"},"region":{"type":"string","nullable":true},"restrictPublicBuckets":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"versioningEnabled":{"type":"boolean","nullable":true},"versioningStatus":{"type":"string","nullable":true}},"required":["encryptionConfigPresent","lifecyclePresent","name","publicAccessBlockPresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsS3"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"bucketId":{"type":"string","nullable":true},"defaultKmsKeyName":{"type":"string","nullable":true},"encryptionConfigPresent":{"type":"boolean"},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":"integer","nullable":true,"minimum":0},"location":{"type":"string","nullable":true},"locationType":{"type":"string","nullable":true},"name":{"type":"string"},"publicAccessPrevention":{"type":"string","nullable":true},"retentionPeriod":{"type":"string","nullable":true},"retentionPolicyEffectiveTime":{"type":"string","nullable":true},"retentionPolicyIsLocked":{"type":"boolean","nullable":true},"softDeleteEffectiveTime":{"type":"string","nullable":true},"softDeleteRetentionDurationSeconds":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"storageClass":{"type":"string","nullable":true},"uniformBucketLevelAccessEnabled":{"type":"boolean","nullable":true},"uniformBucketLevelAccessLockedTime":{"type":"string","nullable":true},"versioningEnabled":{"type":"boolean","nullable":true}},"required":["encryptionConfigPresent","lifecyclePresent","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudStorage"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessTier":{"type":"string","nullable":true},"accountKind":{"type":"string","nullable":true},"allowBlobPublicAccess":{"type":"boolean","nullable":true},"blobDeleteRetentionDays":{"type":"integer","nullable":true,"minimum":0},"blobDeleteRetentionEnabled":{"type":"boolean","nullable":true},"blobEncryptionEnabled":{"type":"boolean","nullable":true},"blobVersioningEnabled":{"type":"boolean","nullable":true},"changeFeedEnabled":{"type":"boolean","nullable":true},"changeFeedRetentionDays":{"type":"integer","nullable":true,"minimum":0},"containerDeleteRetentionDays":{"type":"integer","nullable":true,"minimum":0},"containerDeleteRetentionEnabled":{"type":"boolean","nullable":true},"containerPublicAccess":{"type":"string","nullable":true},"encryptionKeySource":{"type":"string","nullable":true},"fileEncryptionEnabled":{"type":"boolean","nullable":true},"location":{"type":"string","nullable":true},"name":{"type":"string"},"primaryLocation":{"type":"string","nullable":true},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"queueEncryptionEnabled":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"secondaryLocation":{"type":"string","nullable":true},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"statusOfPrimary":{"type":"string","nullable":true},"statusOfSecondary":{"type":"string","nullable":true},"storageAccountName":{"type":"string","nullable":true},"tableEncryptionEnabled":{"type":"boolean","nullable":true}},"required":["name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureBlob"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"isDirectory":{"type":"boolean","nullable":true},"modifiedAt":{"type":"string","nullable":true,"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["path","pathExists","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["storage"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"codeSha256":{"type":"string","nullable":true},"functionName":{"type":"string"},"functionUrlAuthType":{"type":"string","nullable":true},"functionUrlCorsPresent":{"type":"boolean"},"lastModified":{"type":"string","nullable":true},"lastUpdateStatus":{"type":"string","nullable":true},"lastUpdateStatusReason":{"type":"string","nullable":true},"lastUpdateStatusReasonCode":{"type":"string","nullable":true},"layerCount":{"type":"integer","minimum":0},"memorySizeMb":{"type":"integer","nullable":true},"packageType":{"type":"string","nullable":true},"revisionId":{"type":"string","nullable":true},"runtime":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"stateReason":{"type":"string","nullable":true},"stateReasonCode":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"timeoutSeconds":{"type":"integer","nullable":true},"triggerCount":{"type":"integer","minimum":0},"version":{"type":"string","nullable":true}},"required":["functionName","functionUrlCorsPresent","layerCount","status","triggerCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsLambda"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"containerImage":{"type":"string","nullable":true},"cpuLimit":{"type":"string","nullable":true},"generation":{"type":"integer","nullable":true},"latestCreatedRevision":{"type":"string","nullable":true},"latestReadyRevision":{"type":"string","nullable":true},"maxInstanceCount":{"type":"integer","nullable":true},"memoryLimit":{"type":"string","nullable":true},"minInstanceCount":{"type":"integer","nullable":true},"observedGeneration":{"type":"integer","nullable":true},"region":{"type":"string","nullable":true},"service":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"trafficCount":{"type":"integer","minimum":0},"uri":{"type":"string","nullable":true},"urls":{"type":"array","items":{"type":"string"}}},"required":["service","status","trafficCount","urls"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudRun"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"appName":{"type":"string"},"cpu":{"type":"number","nullable":true},"environmentName":{"type":"string","nullable":true},"ingressFqdn":{"type":"string","nullable":true},"maxReplicas":{"type":"integer","nullable":true},"memory":{"type":"string","nullable":true},"minReplicas":{"type":"integer","nullable":true},"provisioningState":{"type":"string","nullable":true},"revision":{"type":"string","nullable":true},"runningStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["appName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerApps"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"triggerCount":{"type":"integer","minimum":0},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"]}},"required":["events","name","namespace","pods","replicas","status","triggerCount","workloadKind"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"imagePathPresent":{"type":"boolean"},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pid":{"type":"integer","nullable":true,"minimum":0},"process":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"readinessProbeOk":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"triggerCount":{"type":"integer","minimum":0}},"required":["commandSupported","events","imagePathPresent","status","triggerCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["worker"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"attentionCount":{"type":"integer","minimum":0},"containerId":{"type":"string"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"image":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"observedImage":{"type":"string","nullable":true},"replicaUnits":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"schedulingMode":{"type":"string","enum":["replicated","stateful","daemon"]},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["attentionCount","containerId","events","replicaUnits","replicas","schedulingMode","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["horizonPlatform"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"]}},"required":["events","name","namespace","pods","replicas","status","workloadKind"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"bindMountCount":{"type":"integer","minimum":0},"containerId":{"type":"string","nullable":true},"containerUnit":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"image":{"type":"string","nullable":true},"localUrl":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string","nullable":true},"portCount":{"type":"integer","minimum":0},"restartCount":{"type":"integer","nullable":true,"minimum":0},"runtimeReachable":{"type":"boolean"},"runtimeStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["bindMountCount","events","portCount","runtimeReachable","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["container"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aws"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcp"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azure"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["machines"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]}},"required":["commandSupported","events","name","namespace","pods","replicas","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"daemonInstance":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"daemonName":{"type":"string"},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"exitReason":{"type":"string","nullable":true},"imagePathPresent":{"type":"boolean"},"pid":{"type":"integer","nullable":true,"minimum":0},"restartCount":{"type":"integer","nullable":true,"minimum":0},"runtimeId":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["commandSupported","events","imagePathPresent","runtimeId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["daemon"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aws"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcp"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azure"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"machines":{"type":"array","items":{"type":"object","properties":{"capacityGroup":{"type":"string"},"cpuCores":{"type":"number","nullable":true},"drainBlockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainForce":{"type":"boolean"},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"horizondVersion":{"type":"string","nullable":true},"lastHeartbeat":{"type":"string"},"machineId":{"type":"string"},"memoryBytes":{"type":"integer","nullable":true},"overlayIp":{"type":"string","nullable":true},"publicIp":{"type":"string","nullable":true},"replicaCount":{"type":"integer"},"status":{"type":"string"},"zone":{"type":"string"}},"required":["capacityGroup","drainForce","lastHeartbeat","machineId","replicaCount","status","zone"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","machines","name","nodes","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["machines"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"dockerApiVersion":{"type":"string","nullable":true},"dockerArch":{"type":"string","nullable":true},"dockerAvailable":{"type":"boolean"},"dockerOs":{"type":"string","nullable":true},"dockerVersion":{"type":"string","nullable":true},"hostIdentifier":{"type":"string","nullable":true},"name":{"type":"string"},"networkAvailable":{"type":"boolean"},"networkName":{"type":"string","nullable":true},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"runningContainers":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"trackedContainers":{"type":"integer","nullable":true,"minimum":0}},"required":["dockerAvailable","name","networkAvailable","nodes","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["compute-cluster"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string","nullable":true},"nodeCounts":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"nodeStatuses":{"type":"array","items":{"type":"object","properties":{"allocatable":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pods":{"type":"integer","nullable":true,"minimum":0}}},"capacity":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pods":{"type":"integer","nullable":true,"minimum":0}}},"conditions":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"containerRuntimeVersion":{"type":"string","nullable":true},"kubeletVersion":{"type":"string","nullable":true},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"name":{"type":"string"},"ready":{"type":"boolean"},"roles":{"type":"array","items":{"type":"string"}},"uid":{"type":"string","nullable":true},"usage":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}}},{"nullable":true}]}},"required":["allocatable","capacity","labels","name","ready","roles"]}},"podCounts":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string","nullable":true}},"required":["events","name","nodeCounts","podCounts","status"]},"resourceType":{"type":"string","enum":["kubernetes-cluster"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"approximateCounts":{"type":"boolean"},"approximateDelayedMessages":{"type":"integer","nullable":true,"minimum":0},"approximateInFlightMessages":{"type":"integer","nullable":true,"minimum":0},"approximateVisibleMessages":{"type":"integer","nullable":true,"minimum":0},"contentBasedDeduplication":{"type":"boolean","nullable":true},"deduplicationScope":{"type":"string","nullable":true},"delaySeconds":{"type":"integer","nullable":true,"minimum":0},"fifoQueue":{"type":"boolean","nullable":true},"fifoThroughputLimit":{"type":"string","nullable":true},"kmsDataKeyReusePeriodSeconds":{"type":"integer","nullable":true,"minimum":0},"kmsMasterKeyId":{"type":"string","nullable":true},"maximumMessageSize":{"type":"integer","nullable":true,"minimum":0},"messageRetentionPeriodSeconds":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"queueArn":{"type":"string","nullable":true},"queueUrl":{"type":"string","nullable":true},"receiveMessageWaitTimeSeconds":{"type":"integer","nullable":true,"minimum":0},"redriveAllowPolicy":{"type":"string","nullable":true},"redrivePolicy":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"sqsManagedSseEnabled":{"type":"boolean","nullable":true},"sseEnabled":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"visibilityTimeoutSeconds":{"type":"integer","nullable":true,"minimum":0}},"required":["approximateCounts","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsSqs"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"kmsKeyName":{"type":"string","nullable":true},"messageStorageAllowedPersistenceRegions":{"type":"array","items":{"type":"string"}},"messageStorageEnforceInTransit":{"type":"boolean","nullable":true},"projectId":{"type":"string","nullable":true},"schemaEncoding":{"type":"string","nullable":true},"schemaFirstRevisionId":{"type":"string","nullable":true},"schemaLastRevisionId":{"type":"string","nullable":true},"schemaName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"subscriptionAckDeadlineSeconds":{"type":"integer","nullable":true,"minimum":0},"subscriptionDeadLetterMaxDeliveryAttempts":{"type":"integer","nullable":true,"minimum":0},"subscriptionDeadLetterTopic":{"type":"string","nullable":true},"subscriptionDetached":{"type":"boolean","nullable":true},"subscriptionEnableMessageOrdering":{"type":"boolean","nullable":true},"subscriptionFilter":{"type":"string","nullable":true},"subscriptionFullName":{"type":"string","nullable":true},"subscriptionLabels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"subscriptionMessageRetentionDuration":{"type":"string","nullable":true},"subscriptionName":{"type":"string","nullable":true},"subscriptionPushAttributes":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"subscriptionPushConfigPresent":{"type":"boolean","nullable":true},"subscriptionPushEndpoint":{"type":"string","nullable":true},"subscriptionPushNoWrapperWriteMetadata":{"type":"boolean","nullable":true},"subscriptionPushOidcAudience":{"type":"string","nullable":true},"subscriptionPushOidcServiceAccountEmail":{"type":"string","nullable":true},"subscriptionPushPubsubWrapperWriteMetadata":{"type":"boolean","nullable":true},"subscriptionRetainAckedMessages":{"type":"boolean","nullable":true},"subscriptionState":{"type":"string","nullable":true},"topicFullName":{"type":"string","nullable":true},"topicLabels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"topicMessageRetentionDuration":{"type":"string","nullable":true},"topicName":{"type":"string"},"topicState":{"type":"string","nullable":true}},"required":["messageStorageAllowedPersistenceRegions","status","subscriptionLabels","subscriptionPushAttributes","topicLabels","topicName"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpPubSub"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessedAt":{"type":"string","nullable":true},"activeMessageCount":{"type":"integer","nullable":true,"minimum":0},"autoDeleteOnIdle":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"deadLetterMessageCount":{"type":"integer","nullable":true,"minimum":0},"deadLetteringOnMessageExpiration":{"type":"boolean","nullable":true},"defaultMessageTimeToLive":{"type":"string","nullable":true},"duplicateDetectionHistoryTimeWindow":{"type":"string","nullable":true},"enableBatchedOperations":{"type":"boolean","nullable":true},"enableExpress":{"type":"boolean","nullable":true},"enablePartitioning":{"type":"boolean","nullable":true},"endpoint":{"type":"string","nullable":true},"forwardDeadLetteredMessagesTo":{"type":"string","nullable":true},"forwardTo":{"type":"string","nullable":true},"lockDuration":{"type":"string","nullable":true},"maxDeliveryCount":{"type":"integer","nullable":true,"minimum":0},"maxMessageSizeInKilobytes":{"type":"integer","nullable":true,"minimum":0},"maxSizeInMegabytes":{"type":"integer","nullable":true,"minimum":0},"messageCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"namespaceName":{"type":"string"},"queueStatus":{"type":"string","nullable":true},"requiresDuplicateDetection":{"type":"boolean","nullable":true},"requiresSession":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"scheduledMessageCount":{"type":"integer","nullable":true,"minimum":0},"sizeInBytes":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"transferDeadLetterMessageCount":{"type":"integer","nullable":true,"minimum":0},"transferMessageCount":{"type":"integer","nullable":true,"minimum":0},"updatedAt":{"type":"string","nullable":true}},"required":["name","namespaceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureServiceBus"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"name":{"type":"string"},"path":{"type":"string","nullable":true},"serviceStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["queue"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"billingMode":{"type":"string","nullable":true},"deletionProtectionEnabled":{"type":"boolean","nullable":true},"globalSecondaryIndexCount":{"type":"integer","nullable":true,"minimum":0},"itemCount":{"type":"integer","nullable":true,"minimum":0},"keySchema":{"type":"array","items":{"type":"object","properties":{"attributeName":{"type":"string"},"keyType":{"type":"string"}},"required":["attributeName","keyType"]}},"localSecondaryIndexCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"region":{"type":"string","nullable":true},"replicaCount":{"type":"integer","nullable":true,"minimum":0},"restoreInProgress":{"type":"boolean","nullable":true},"sseStatus":{"type":"string","nullable":true},"sseType":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"streamEnabled":{"type":"boolean","nullable":true},"streamViewType":{"type":"string","nullable":true},"tableArn":{"type":"string","nullable":true},"tableClass":{"type":"string","nullable":true},"tableSizeBytes":{"type":"integer","nullable":true,"minimum":0},"tableStatus":{"type":"string","nullable":true},"ttlAttributeName":{"type":"string","nullable":true},"ttlStatus":{"type":"string","nullable":true}},"required":["keySchema","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsDynamoDb"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"appEngineIntegrationMode":{"type":"string","nullable":true},"cmekEnabled":{"type":"boolean"},"concurrencyMode":{"type":"string","nullable":true},"createTime":{"type":"string","nullable":true},"databaseEdition":{"type":"string","nullable":true},"databaseName":{"type":"string"},"databaseType":{"type":"string","nullable":true},"deleteProtectionState":{"type":"string","nullable":true},"deleteTime":{"type":"string","nullable":true},"earliestVersionTime":{"type":"string","nullable":true},"endpoint":{"type":"string","nullable":true},"locationId":{"type":"string","nullable":true},"pointInTimeRecoveryEnablement":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"sourceInfoPresent":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updateTime":{"type":"string","nullable":true},"versionRetentionPeriod":{"type":"string","nullable":true}},"required":["cmekEnabled","databaseName","sourceInfoPresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpFirestore"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"signedIdentifierCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"storageAccountKind":{"type":"string","nullable":true},"storageAccountLocation":{"type":"string","nullable":true},"storageAccountName":{"type":"string"},"storageAccountPrimaryStatus":{"type":"string","nullable":true},"storageAccountProvisioningState":{"type":"string","nullable":true},"storageAccountResourceId":{"type":"string","nullable":true},"tableExists":{"type":"boolean"},"tableName":{"type":"string"}},"required":["status","storageAccountName","tableExists","tableName"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureTable"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cloudMetadataSupported":{"type":"boolean"},"isDirectory":{"type":"boolean","nullable":true},"name":{"type":"string"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["cloudMetadataSupported","name","path","pathExists","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["kv"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"clusterIdentifier":{"type":"string"},"endpoint":{"type":"string","nullable":true},"engineVersion":{"type":"string","nullable":true},"neverPauses":{"type":"boolean","description":"True when a `minCapacity: 0` instance has not reached 0 ACU over the observation\nwindow — it is silently paying always-on prices (auto-pause verification)."},"serverlessCapacity":{"type":"number","nullable":true,"description":"Latest sampled `ServerlessDatabaseCapacity` (ACU)."},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["clusterIdentifier","neverPauses","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aurora"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"databaseVersion":{"type":"string","nullable":true},"instanceName":{"type":"string"},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["instanceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["cloudSql"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"serverName":{"type":"string"},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string","nullable":true}},"required":["serverName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["flexibleServer"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"name":{"type":"string"},"port":{"type":"integer","nullable":true,"minimum":0},"processRunning":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string"}},"required":["name","processRunning","status","version"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["postgres"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string"},"hasMoreParameters":{"type":"boolean","nullable":true},"latestModifiedAt":{"type":"string","nullable":true,"format":"date-time"},"parameterMetadataSampled":{"type":"boolean"},"prefix":{"type":"string"},"region":{"type":"string"},"sampledAdvancedTierCount":{"type":"integer","nullable":true,"minimum":0},"sampledKmsKeyMetadataPresentCount":{"type":"integer","nullable":true,"minimum":0},"sampledParameterCount":{"type":"integer","nullable":true,"minimum":0},"sampledSecureStringCount":{"type":"integer","nullable":true,"minimum":0},"sampledStringCount":{"type":"integer","nullable":true,"minimum":0},"sampledStringListCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["accountId","parameterMetadataSampled","prefix","region","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsParameterStore"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string"},"prefix":{"type":"string"},"projectId":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["location","prefix","projectId","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpSecretManager"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessPolicyCount":{"type":"integer","minimum":0},"location":{"type":"string","nullable":true},"name":{"type":"string"},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string"},"purgeProtectionEnabled":{"type":"boolean","nullable":true},"rbacAuthorizationEnabled":{"type":"boolean"},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"secretMetadataListed":{"type":"boolean"},"skuFamily":{"type":"string","nullable":true},"skuName":{"type":"string","nullable":true},"softDeleteEnabled":{"type":"boolean"},"softDeleteRetentionDays":{"type":"integer"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vaultUri":{"type":"string","nullable":true}},"required":["accessPolicyCount","name","privateEndpointConnectionCount","publicNetworkAccess","rbacAuthorizationEnabled","secretMetadataListed","softDeleteEnabled","softDeleteRetentionDays","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureKeyVault"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"type":"string"},"prefix":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["namespace","prefix","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetesSecret"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"isDirectory":{"type":"boolean","nullable":true},"modifiedAt":{"type":"string","nullable":true,"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":"boolean","nullable":true},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["path","pathExists","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["vault"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"assumeRolePolicyPresent":{"type":"boolean"},"attachedPolicyCount":{"type":"integer","minimum":0},"attachedPolicyNames":{"type":"array","items":{"type":"string"}},"createDate":{"type":"string"},"description":{"type":"string","nullable":true},"inlinePolicyCount":{"type":"integer","minimum":0},"inlinePolicyNames":{"type":"array","items":{"type":"string"}},"lastUsedDate":{"type":"string","nullable":true},"lastUsedRegion":{"type":"string","nullable":true},"managedTagCount":{"type":"integer","minimum":0},"maxSessionDuration":{"type":"integer","nullable":true},"path":{"type":"string"},"permissionsBoundaryArn":{"type":"string","nullable":true},"permissionsBoundaryType":{"type":"string","nullable":true},"roleArn":{"type":"string"},"roleId":{"type":"string"},"roleName":{"type":"string"},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tagCount":{"type":"integer","minimum":0}},"required":["assumeRolePolicyPresent","attachedPolicyCount","attachedPolicyNames","createDate","inlinePolicyCount","inlinePolicyNames","managedTagCount","path","roleArn","roleId","roleName","stackPermissionsApplied","status","tagCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsIamRole"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true},"disabled":{"type":"boolean","nullable":true},"displayName":{"type":"string","nullable":true},"email":{"type":"string"},"etag":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"oauth2ClientId":{"type":"string","nullable":true},"projectBindingCount":{"type":"integer","minimum":0},"projectId":{"type":"string","nullable":true},"projectRoles":{"type":"array","items":{"type":"string"}},"serviceAccountBindingCount":{"type":"integer","minimum":0},"serviceAccountRoles":{"type":"array","items":{"type":"string"}},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"uniqueId":{"type":"string","nullable":true}},"required":["email","projectBindingCount","projectRoles","serviceAccountBindingCount","serviceAccountRoles","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"clientId":{"type":"string","nullable":true},"customRoleDefinitionCount":{"type":"integer","minimum":0},"customRoleDefinitionIds":{"type":"array","items":{"type":"string"}},"isolationScope":{"type":"string","nullable":true},"location":{"type":"string"},"managedTagCount":{"type":"integer","minimum":0},"name":{"type":"string"},"principalId":{"type":"string","nullable":true},"resourceGroup":{"type":"string"},"resourceId":{"type":"string"},"roleAssignmentCount":{"type":"integer","minimum":0},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tenantId":{"type":"string","nullable":true},"type":{"type":"string","nullable":true}},"required":["customRoleDefinitionCount","customRoleDefinitionIds","location","managedTagCount","name","resourceGroup","resourceId","roleAssignmentCount","roleAssignmentIds","stackPermissionsApplied","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"configured":{"type":"boolean"},"identity":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["configured","identity","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["service-account"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"availabilityZones":{"type":"array","items":{"type":"string"}},"cidrBlock":{"type":"string","nullable":true},"internetGatewayId":{"type":"string","nullable":true},"isByoVpc":{"type":"boolean"},"natGatewayId":{"type":"string","nullable":true},"privateSubnetIds":{"type":"array","items":{"type":"string"}},"publicSubnetIds":{"type":"array","items":{"type":"string"}},"routeTableCount":{"type":"integer","minimum":0},"securityGroupId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vpcId":{"type":"string","nullable":true},"vpcState":{"type":"string","nullable":true}},"required":["availabilityZones","isByoVpc","privateSubnetIds","publicSubnetIds","routeTableCount","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsVpc"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cidrBlock":{"type":"string","nullable":true},"cloudNatName":{"type":"string","nullable":true},"firewallName":{"type":"string","nullable":true},"isByoVpc":{"type":"boolean"},"networkName":{"type":"string","nullable":true},"networkSelfLink":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"routerName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"subnetworkName":{"type":"string","nullable":true},"subnetworkSelfLink":{"type":"string","nullable":true}},"required":["isByoVpc","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpVpc"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"applicationGatewaySubnetName":{"type":"string","nullable":true},"cidrBlock":{"type":"string","nullable":true},"isByoVnet":{"type":"boolean"},"lastByoVnetVerificationErrorCode":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"natGatewayId":{"type":"string","nullable":true},"nsgId":{"type":"string","nullable":true},"privateEndpointSubnetName":{"type":"string","nullable":true},"privateSubnetName":{"type":"string","nullable":true},"publicIpId":{"type":"string","nullable":true},"publicSubnetName":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vnetName":{"type":"string","nullable":true},"vnetResourceId":{"type":"string","nullable":true}},"required":["isByoVnet","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureVnet"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["network"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"managementPermissionsApplied":{"type":"boolean"},"roleArn":{"type":"string","nullable":true},"roleName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["managementPermissionsApplied","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsIamRole"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"impersonationGranted":{"type":"boolean"},"roleBound":{"type":"boolean"},"serviceAccountEmail":{"type":"string","nullable":true},"serviceAccountUniqueId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["impersonationGranted","roleBound","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"ficName":{"type":"string","nullable":true},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"roleDefinitionId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tenantId":{"type":"string","nullable":true},"uamiClientId":{"type":"string","nullable":true},"uamiPrincipalId":{"type":"string","nullable":true},"uamiResourceId":{"type":"string","nullable":true}},"required":["roleAssignmentIds","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["remote-stack-management"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"pullRoleArn":{"type":"string","nullable":true},"pushRoleArn":{"type":"string","nullable":true},"region":{"type":"string"},"registryId":{"type":"string"},"registryUri":{"type":"string"},"repositories":{"type":"array","items":{"type":"object","properties":{"createdAt":{"type":"number"},"encryptionType":{"type":"string","nullable":true},"imageTagMutability":{"type":"string","nullable":true},"kmsKeyPresent":{"type":"boolean"},"registryId":{"type":"string"},"repositoryArn":{"type":"string"},"repositoryName":{"type":"string"},"repositoryUri":{"type":"string"},"scanOnPush":{"type":"boolean","nullable":true}},"required":["createdAt","kmsKeyPresent","registryId","repositoryArn","repositoryName","repositoryUri"]}},"repositoriesTruncated":{"type":"boolean"},"repositoryCount":{"type":"integer","minimum":0},"repositoryPrefix":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["region","registryId","registryUri","repositories","repositoriesTruncated","repositoryCount","repositoryPrefix","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsEcr"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cleanupPolicyCount":{"type":"integer","minimum":0},"cleanupPolicyDryRun":{"type":"boolean","nullable":true},"createTime":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"format":{"type":"string","nullable":true},"iamBindingCount":{"type":"integer","minimum":0},"iamPolicyEtagPresent":{"type":"boolean"},"iamRoles":{"type":"array","items":{"type":"string"}},"kmsKeyNamePresent":{"type":"boolean"},"labelCount":{"type":"integer","minimum":0},"location":{"type":"string"},"mode":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"projectId":{"type":"string"},"pullServiceAccountEmail":{"type":"string","nullable":true},"pushServiceAccountEmail":{"type":"string","nullable":true},"repositoryId":{"type":"string"},"satisfiesPzs":{"type":"boolean","nullable":true},"sizeBytes":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updateTime":{"type":"string","nullable":true}},"required":["cleanupPolicyCount","iamBindingCount","iamPolicyEtagPresent","iamRoles","kmsKeyNamePresent","labelCount","location","projectId","repositoryId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpArtifactRegistry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"adminUserEnabled":{"type":"boolean"},"anonymousPullEnabled":{"type":"boolean"},"creationDate":{"type":"string","nullable":true},"dataEndpointEnabled":{"type":"boolean","nullable":true},"dataEndpointHostNames":{"type":"array","items":{"type":"string"}},"encryptionKeyIdentifierPresent":{"type":"boolean"},"encryptionKeyVaultUriPresent":{"type":"boolean"},"encryptionStatus":{"type":"string","nullable":true},"ipRuleCount":{"type":"integer","minimum":0},"location":{"type":"string"},"loginServer":{"type":"string","nullable":true},"managedTagCount":{"type":"integer","minimum":0},"name":{"type":"string"},"networkRuleBypassOptions":{"type":"string"},"networkRuleDefaultAction":{"type":"string","nullable":true},"policiesPresent":{"type":"boolean"},"policyCount":{"type":"integer","minimum":0},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string"},"resourceGroup":{"type":"string"},"resourceId":{"type":"string","nullable":true},"skuName":{"type":"string"},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"type":{"type":"string","nullable":true},"zoneRedundancy":{"type":"string"}},"required":["adminUserEnabled","anonymousPullEnabled","dataEndpointHostNames","encryptionKeyIdentifierPresent","encryptionKeyVaultUriPresent","ipRuleCount","location","managedTagCount","name","networkRuleBypassOptions","policiesPresent","policyCount","privateEndpointConnectionCount","publicNetworkAccess","resourceGroup","skuName","status","zoneRedundancy"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerRegistry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"reachable":{"type":"boolean"},"registryUrl":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["reachable","registryUrl","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["artifact-registry"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"artifactsEncryptionDisabled":{"type":"boolean","nullable":true},"artifactsType":{"type":"string","nullable":true},"cloudWatchLogsStatus":{"type":"string","nullable":true},"computeType":{"type":"string","nullable":true},"created":{"type":"number","nullable":true},"description":{"type":"string","nullable":true},"encryptionKeyPresent":{"type":"boolean"},"environmentImage":{"type":"string","nullable":true},"environmentType":{"type":"string","nullable":true},"environmentVariableCount":{"type":"integer","minimum":0},"imagePullCredentialsType":{"type":"string","nullable":true},"lastModified":{"type":"number","nullable":true},"privilegedMode":{"type":"boolean","nullable":true},"projectArn":{"type":"string","nullable":true},"projectName":{"type":"string"},"queuedTimeoutInMinutes":{"type":"integer","nullable":true},"s3LogsStatus":{"type":"string","nullable":true},"serviceRolePresent":{"type":"boolean"},"sourceType":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"timeoutInMinutes":{"type":"integer","nullable":true}},"required":["encryptionKeyPresent","environmentVariableCount","projectName","serviceRolePresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsCodeBuild"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"buildConfigId":{"type":"string"},"environmentVariableCount":{"type":"integer","minimum":0},"location":{"type":"string"},"projectId":{"type":"string"},"serviceAccount":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["buildConfigId","environmentVariableCount","location","projectId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudBuild"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"environmentVariableCount":{"type":"integer","minimum":0},"managedEnvironmentId":{"type":"string"},"managedIdentityId":{"type":"string","nullable":true},"resourceGroupName":{"type":"string"},"resourcePrefix":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["environmentVariableCount","managedEnvironmentId","resourceGroupName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerApps"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"active":{"type":"integer","nullable":true},"completionTime":{"type":"string","nullable":true,"format":"date-time"},"conditionCount":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"failed":{"type":"integer","nullable":true},"imageDigest":{"type":"string","nullable":true},"jobName":{"type":"string"},"namespace":{"type":"string"},"startTime":{"type":"string","nullable":true,"format":"date-time"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"succeeded":{"type":"integer","nullable":true}},"required":["conditionCount","events","jobName","namespace","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetesJob"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["build"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"enabled":{"type":"boolean"},"lastOperationName":{"type":"string","nullable":true},"projectId":{"type":"string"},"serviceName":{"type":"string"},"serviceResourceName":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"title":{"type":"string","nullable":true}},"required":["enabled","projectId","serviceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceUsage"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"type":"string"},"providerId":{"type":"string","nullable":true},"registered":{"type":"boolean"},"registrationPolicy":{"type":"string","nullable":true},"registrationState":{"type":"string","nullable":true},"resourceTypeCount":{"type":"integer","minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["namespace","registered","resourceTypeCount","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureResourceProvider"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["service_activation"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"location":{"type":"string","nullable":true},"managedTags":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"name":{"type":"string"},"provisioningState":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["managedTags","name","status"]},"resourceType":{"type":"string","enum":["azure_resource_group"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"allowBlobPublicAccess":{"type":"boolean","nullable":true},"allowSharedKeyAccess":{"type":"boolean","nullable":true},"encryptionKeySource":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"minimumTlsVersion":{"type":"string","nullable":true},"name":{"type":"string"},"networkBypass":{"type":"string","nullable":true},"networkDefaultAction":{"type":"string","nullable":true},"networkIpRuleCount":{"type":"integer","nullable":true,"minimum":0},"networkResourceAccessRuleCount":{"type":"integer","nullable":true,"minimum":0},"networkVirtualNetworkRuleCount":{"type":"integer","nullable":true,"minimum":0},"primaryEndpoints":{"type":"object","properties":{"blob":{"type":"string","nullable":true},"dfs":{"type":"string","nullable":true},"file":{"type":"string","nullable":true},"queue":{"type":"string","nullable":true},"table":{"type":"string","nullable":true},"web":{"type":"string","nullable":true}}},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"requireInfrastructureEncryption":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"secondaryEndpoints":{"type":"object","properties":{"blob":{"type":"string","nullable":true},"dfs":{"type":"string","nullable":true},"file":{"type":"string","nullable":true},"queue":{"type":"string","nullable":true},"table":{"type":"string","nullable":true},"web":{"type":"string","nullable":true}}},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"supportsHttpsTrafficOnly":{"type":"boolean","nullable":true}},"required":["name","primaryEndpoints","secondaryEndpoints","status"]},"resourceType":{"type":"string","enum":["azure_storage_account"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"customDomainVerificationId":{"type":"string","nullable":true},"defaultDomain":{"type":"string","nullable":true},"eventStreamEndpoint":{"type":"string","nullable":true},"infrastructureResourceGroup":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"name":{"type":"string"},"provisioningState":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"staticIp":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workloadProfileCount":{"type":"integer","minimum":0},"workloadProfiles":{"type":"array","items":{"type":"object","properties":{"maximumCount":{"type":"integer","nullable":true},"minimumCount":{"type":"integer","nullable":true},"name":{"type":"string"},"workloadProfileType":{"type":"string"}},"required":["name","workloadProfileType"]}},"zoneRedundant":{"type":"boolean","nullable":true}},"required":["name","status","workloadProfileCount","workloadProfiles"]},"resourceType":{"type":"string","enum":["azure_container_apps_environment"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"createdAt":{"type":"string","nullable":true},"disableLocalAuth":{"type":"boolean","nullable":true},"location":{"type":"string","nullable":true},"metricId":{"type":"string","nullable":true},"minimumTlsVersion":{"type":"string","nullable":true},"name":{"type":"string"},"namespaceStatus":{"type":"string","nullable":true},"premiumMessagingPartitions":{"type":"integer","nullable":true},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"serviceBusEndpoint":{"type":"string","nullable":true},"skuCapacity":{"type":"integer","nullable":true},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updatedAt":{"type":"string","nullable":true},"zoneRedundant":{"type":"boolean","nullable":true}},"required":["name","privateEndpointConnectionCount","status"]},"resourceType":{"type":"string","enum":["azure_service_bus_namespace"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"availability":{"type":"object","properties":{"catalogRevision":{"type":"string"},"location":{"type":"string","nullable":true},"models":{"type":"array","items":{"type":"object","properties":{"accessTest":{"type":"string","enum":["verified","failed","not-checked"]},"availability":{"type":"string","enum":["available","blocked","unknown"]},"blockers":{"type":"array","items":{"type":"string","enum":["agreement-required","entitlement-required","model-activation-required","deployment-required","quota-configuration-required","region-unavailable","access-denied","observation-failed"]}},"clientApis":{"type":"array","items":{"type":"string","enum":["open-ai-chat-completions","open-ai-responses","anthropic-messages"],"description":"A public API accepted from an application client."}},"errorCode":{"type":"string","nullable":true},"publicModelId":{"type":"string"},"testedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["accessTest","availability","blockers","clientApis","publicModelId"]}},"source":{"type":"string","enum":["aws-bedrock","gcp-vertex","azure-foundry","anthropic"],"description":"Provider control plane used to observe model availability without invoking\na model, spending customer quota, or accepting provider terms."}},"required":["catalogRevision","models","source"]},"region":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["availability","region","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsBedrock"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"availability":{"type":"object","properties":{"catalogRevision":{"type":"string"},"location":{"type":"string","nullable":true},"models":{"type":"array","items":{"type":"object","properties":{"accessTest":{"type":"string","enum":["verified","failed","not-checked"]},"availability":{"type":"string","enum":["available","blocked","unknown"]},"blockers":{"type":"array","items":{"type":"string","enum":["agreement-required","entitlement-required","model-activation-required","deployment-required","quota-configuration-required","region-unavailable","access-denied","observation-failed"]}},"clientApis":{"type":"array","items":{"type":"string","enum":["open-ai-chat-completions","open-ai-responses","anthropic-messages"],"description":"A public API accepted from an application client."}},"errorCode":{"type":"string","nullable":true},"publicModelId":{"type":"string"},"testedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["accessTest","availability","blockers","clientApis","publicModelId"]}},"source":{"type":"string","enum":["aws-bedrock","gcp-vertex","azure-foundry","anthropic"],"description":"Provider control plane used to observe model availability without invoking\na model, spending customer quota, or accepting provider terms."}},"required":["catalogRevision","models","source"]},"location":{"type":"string"},"project":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["availability","location","project","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpVertex"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"type":"string"},"availability":{"type":"object","properties":{"catalogRevision":{"type":"string"},"location":{"type":"string","nullable":true},"models":{"type":"array","items":{"type":"object","properties":{"accessTest":{"type":"string","enum":["verified","failed","not-checked"]},"availability":{"type":"string","enum":["available","blocked","unknown"]},"blockers":{"type":"array","items":{"type":"string","enum":["agreement-required","entitlement-required","model-activation-required","deployment-required","quota-configuration-required","region-unavailable","access-denied","observation-failed"]}},"clientApis":{"type":"array","items":{"type":"string","enum":["open-ai-chat-completions","open-ai-responses","anthropic-messages"],"description":"A public API accepted from an application client."}},"errorCode":{"type":"string","nullable":true},"publicModelId":{"type":"string"},"testedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["accessTest","availability","blockers","clientApis","publicModelId"]}},"source":{"type":"string","enum":["aws-bedrock","gcp-vertex","azure-foundry","anthropic"],"description":"Provider control plane used to observe model availability without invoking\na model, spending customer quota, or accepting provider terms."}},"required":["catalogRevision","models","source"]},"endpoint":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["accountName","availability","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureFoundry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"availability":{"oneOf":[{"type":"object","properties":{"catalogRevision":{"type":"string"},"location":{"type":"string","nullable":true},"models":{"type":"array","items":{"type":"object","properties":{"accessTest":{"type":"string","enum":["verified","failed","not-checked"]},"availability":{"type":"string","enum":["available","blocked","unknown"]},"blockers":{"type":"array","items":{"type":"string","enum":["agreement-required","entitlement-required","model-activation-required","deployment-required","quota-configuration-required","region-unavailable","access-denied","observation-failed"]}},"clientApis":{"type":"array","items":{"type":"string","enum":["open-ai-chat-completions","open-ai-responses","anthropic-messages"],"description":"A public API accepted from an application client."}},"errorCode":{"type":"string","nullable":true},"publicModelId":{"type":"string"},"testedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["accessTest","availability","blockers","clientApis","publicModelId"]}},"source":{"type":"string","enum":["aws-bedrock","gcp-vertex","azure-foundry","anthropic"],"description":"Provider control plane used to observe model availability without invoking\na model, spending customer quota, or accepting provider terms."}},"required":["catalogRevision","models","source"]},{"nullable":true}]},"provider":{"type":"string","description":"The BYO-key provider serving this binding (e.g. \"openai\"). Used on the Local\nplatform, where the app brings its own provider key instead of an ambient cloud."},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["provider","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["external"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["ai"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"type":"object","properties":{"data":{"type":"object","properties":{"enabled":{"type":"boolean"},"keyArn":{"type":"string"},"keySpec":{"type":"string"},"keyState":{"type":"string"},"keyUsage":{"type":"string"},"status":{"type":"object","properties":{"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true}},"required":["health","lifecycle"]}},"required":["enabled","keyArn","keySpec","keyState","keyUsage","status"]},"provider":{"type":"string","enum":["aws-kms"]}},"required":["data","provider"]},{"type":"object","properties":{"data":{"type":"object","properties":{"algorithm":{"type":"string","nullable":true},"cryptoKeyName":{"type":"string"},"primaryState":{"type":"string","nullable":true},"primaryVersion":{"type":"string","nullable":true},"purpose":{"type":"string"},"status":{"type":"object","properties":{"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true}},"required":["health","lifecycle"]}},"required":["cryptoKeyName","purpose","status"]},"provider":{"type":"string","enum":["gcp-cloud-kms"]}},"required":["data","provider"]},{"type":"object","properties":{"data":{"type":"object","properties":{"enabled":{"type":"boolean","nullable":true},"keyId":{"type":"string"},"keyOperations":{"type":"array","items":{"type":"string"}},"keyType":{"type":"string"},"recoveryLevel":{"type":"string","nullable":true},"status":{"type":"object","properties":{"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true}},"required":["health","lifecycle"]}},"required":["keyId","keyOperations","keyType","status"]},"provider":{"type":"string","enum":["azure-key-vault"]}},"required":["data","provider"]}]},"resourceType":{"type":"string","enum":["key"]}},"required":["data","resourceType"]}]},"deploymentId":{"type":"string","nullable":true},"observedAt":{"type":"string","format":"date-time"},"raw":{"type":"array","items":{"type":"object","properties":{"body":{"type":"string"},"collectedAt":{"type":"string","format":"date-time"},"format":{"type":"string","enum":["json","yaml","text"]},"source":{"type":"string"},"truncated":{"type":"boolean"}},"required":["body","collectedAt","format","source","truncated"]}},"resourceId":{"type":"string","description":"Alien resource id, such as the `alien.Container` or `alien.Storage`\nresource id from the stack."},"resourceType":{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior."}},"required":["backend","controllerPlatform","data","observedAt","raw","resourceId","resourceType"]},"description":"Latest typed resource heartbeats collected during this step."},"observedInventoryBatches":{"type":"array","items":{"type":"object","properties":{"backend":{"type":"string","enum":["aws","gcp","azure","kubernetes","local","managed","external","test"],"description":"Backend whose observer produced this snapshot."},"complete":{"type":"boolean","description":"Whether this batch is a complete replacement for the scope. Complete\nbatches tombstone previously observed rows in the same scope when they\nare absent from `resources`."},"controllerPlatform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"inventoryScope":{"type":"string","description":"Stable scope for the provider list operation that produced this batch."},"observedAt":{"type":"string","format":"date-time","description":"Time the inventory scope was observed."},"resources":{"type":"array","items":{"type":"object","properties":{"alienResourceId":{"type":"string","nullable":true},"attributes":{"type":"object","properties":{},"additionalProperties":{"nullable":true}},"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"counts":{"oneOf":[{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},{"nullable":true}]},"deploymentId":{"type":"string","nullable":true},"displayName":{"type":"string"},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerKind":{"type":"string","description":"Provider-native kind, such as `apps/v1/Deployment`,\n`AWS::S3::Bucket`, `storage.googleapis.com/Bucket`, or an Azure\nresource type."},"providerStale":{"type":"boolean"},"raw":{"type":"array","items":{"type":"object","properties":{"body":{"type":"string"},"collectedAt":{"type":"string","format":"date-time"},"format":{"type":"string","enum":["json","yaml","text"]},"source":{"type":"string"},"truncated":{"type":"boolean"}},"required":["body","collectedAt","format","source","truncated"]}},"rawIdentity":{"type":"string","description":"Provider-native stable identity: Kubernetes object identity, cloud ARN,\nGCP full resource name, Azure resource id, etc."},"region":{"type":"string","nullable":true},"resourceTypeHint":{"oneOf":[{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior."},{"nullable":true}]},"scope":{"type":"string","nullable":true},"version":{"type":"string","nullable":true,"description":"Release/version identity observed from the provider resource, when available."}},"required":["displayName","health","lifecycle","partial","providerKind","providerStale","rawIdentity"]}},"sourceKind":{"type":"string","description":"Writer/source for this inventory pass, such as `operator` or\n`manager-observer`."}},"required":["backend","complete","controllerPlatform","inventoryScope","observedAt","resources","sourceKind"]},"description":"Observed raw-resource inventory batches read during this step."},"capabilities":{"type":"array","items":{"$ref":"#/components/schemas/OperatorCapabilityReport"},"description":"Operator-reported runtime capabilities."},"operatorVersion":{"type":"string","minLength":1,"maxLength":128,"description":"Operator binary version reported by the runtime."}},"required":["deploymentId","state"],"additionalProperties":false,"description":"Request to reconcile deployment state"},"SyncRenewRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Single deployment to renew. Deprecated: use deploymentIds. Retained so a manager built against the previous API keeps renewing during rollout.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"deploymentIds":{"type":"array","items":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"minItems":1,"maxItems":100,"description":"Deployments to renew or confirm. Renewal is per deployment: the response reports each one independently."},"session":{"type":"string","minLength":1}},"required":["session"],"additionalProperties":false},"SyncReleaseRequest":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Deployment ID to release","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"session":{"type":"string","description":"Session identifier to release"}},"required":["deploymentId","session"],"additionalProperties":false,"description":"Request to release deployment lock"},"ResolveResponse":{"type":"object","properties":{"managerId":{"type":"string","description":"Manager ID"},"managerName":{"type":"string","description":"Manager display name"},"managerUrl":{"type":"string","format":"uri","description":"Manager URL"},"managerIsSystem":{"type":"boolean","description":"Whether the manager is Alien-hosted"},"managerCloud":{"type":"string","nullable":true,"enum":["aws","gcp","azure","kubernetes","machines","local","test",null],"description":"Cloud where the private manager is hosted. Null for Alien-hosted managers."},"projectId":{"type":"string","description":"Resolved project ID"},"installContext":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"managementConfig":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]}],"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."}},"required":["platform","managementConfig"],"description":"Target install context derived from platform-managed manager metadata. Present for cloud push platforms."}},"required":["managerId","managerName","managerUrl","managerIsSystem","projectId"]},"CloudRegionsResponse":{"type":"object","properties":{"supportedRegions":{"$ref":"#/components/schemas/SupportedCloudRegions"}},"required":["supportedRegions"]},"BillingAuditLogRow":{"type":"object","properties":{"id":{"type":"string"},"workspaceId":{"type":"string","nullable":true},"action":{"type":"string"},"payload":{"nullable":true},"createdAt":{"type":"string"}},"required":["id","workspaceId","action","createdAt"]},"WorkspaceBillingEntitlements":{"type":"object","properties":{"planId":{"$ref":"#/components/schemas/PlanId"},"planStatus":{"$ref":"#/components/schemas/BillingPlanStatus"},"features":{"$ref":"#/components/schemas/BillingFeatureFlags"},"limits":{"$ref":"#/components/schemas/BillingLimits"},"syncedAt":{"type":"string","nullable":true,"format":"date-time"},"stale":{"type":"boolean"}},"required":["planId","planStatus","features","limits","syncedAt","stale"]},"PlanId":{"type":"string","enum":["starter","pro","pro_annual","enterprise"]},"BillingPlanStatus":{"type":"string","enum":["active","trialing","past_due","canceled","none"]},"BillingFeatureFlags":{"type":"object","properties":{"custom_domains":{"type":"boolean"},"private_managers":{"type":"boolean"},"sso_saml":{"type":"boolean"},"audit_logs":{"type":"boolean"},"airgapped":{"type":"boolean"}},"required":["custom_domains","private_managers","sso_saml","audit_logs","airgapped"]},"BillingLimits":{"type":"object","properties":{"maxDeployments":{"type":"number","nullable":true},"maxProjects":{"type":"number","nullable":true},"maxSeats":{"type":"number","nullable":true},"maxCustomDomains":{"type":"number","nullable":true},"creditUsd":{"type":"number","nullable":true},"seatsIncluded":{"type":"number","nullable":true}},"required":["maxDeployments","maxProjects","maxSeats","maxCustomDomains","creditUsd","seatsIncluded"]}},"parameters":{}},"paths":{"/v1/invitations/{token}":{"get":{"operationId":"getWorkspaceInvitationPreview","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"token","in":"path"}],"responses":{"200":{"description":"Invitation preview.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInvitationPreview"}}}},"404":{"description":"Invitation not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/memberships":{"get":{"operationId":"listMemberships","description":"List all workspaces the current user has access to.","x-speakeasy-group":"user","x-speakeasy-name-override":"listMemberships","responses":{"200":{"description":"List of user's workspaces.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Membership"}}},"required":["items"]}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/profile":{"get":{"operationId":"getUserProfile","description":"Get the current user's profile and user-scoped onboarding state.","x-speakeasy-group":"user","x-speakeasy-name-override":"getProfile","responses":{"200":{"description":"User profile.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfile"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateUserProfile","description":"Update the current user's profile (display name).","x-speakeasy-group":"user","x-speakeasy-name-override":"updateProfile","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100,"description":"Display name"}}}}}},"responses":{"200":{"description":"Profile updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfile"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/profile/setup":{"post":{"operationId":"completeUserProfileSetup","description":"Complete the required beta intake and profile setup dialog.","x-speakeasy-group":"user","x-speakeasy-name-override":"completeProfileSetup","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfileSetupRequest"}}}},"responses":{"200":{"description":"Profile setup completed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UserProfile"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/workspaces":{"post":{"operationId":"createWorkspace","description":"Create a new workspace. The current user will be automatically added as an admin.","x-speakeasy-group":"user","x-speakeasy-name-override":"createWorkspace","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name"},"logoUrl":{"type":"string","format":"uri","description":"Optional workspace logo URL"}},"required":["name"]}}}},"responses":{"201":{"description":"Created workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Membership"}}}},"400":{"description":"Bad request - invalid workspace name.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Workspace name already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/git-namespaces":{"get":{"operationId":"listGitNamespaces","description":"List all git namespaces (GitHub installations) the current user has access to.","x-speakeasy-group":"user","x-speakeasy-name-override":"listGitNamespaces","parameters":[{"schema":{"type":"string","enum":["github"],"default":"github"},"required":false,"name":"provider","in":"query"}],"responses":{"200":{"description":"List of user's git namespaces.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GitNamespace"}}},"required":["items"]}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/git-namespaces/sync":{"post":{"operationId":"syncGitNamespaces","description":"Sync git namespaces from the provider. For GitHub, this fetches all app installations accessible to the user.","x-speakeasy-group":"user","x-speakeasy-name-override":"syncGitNamespaces","requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"provider":{"type":"string","enum":["github"],"description":"Git provider to sync"}},"required":["provider"]}}}},"responses":{"200":{"description":"Synced git namespaces.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GitNamespace"}}},"required":["items"]}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/git-namespaces/{id}/repositories":{"get":{"operationId":"listGitNamespaceRepositories","description":"List repositories accessible through a git namespace (GitHub installation).","x-speakeasy-group":"user","x-speakeasy-name-override":"listGitNamespaceRepositories","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","description":"Search query to filter repositories by name"},"required":false,"description":"Search query to filter repositories by name","name":"search","in":"query"}],"responses":{"200":{"description":"List of repositories.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/GitRepository"}}},"required":["items"]}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Git namespace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/user/invitations/{token}/accept":{"post":{"operationId":"acceptWorkspaceInvitation","parameters":[{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"token","in":"path"}],"responses":{"200":{"description":"Invitation accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AcceptWorkspaceInvitationResponse"}}}},"404":{"description":"Invitation not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Invitation unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/whoami":{"get":{"operationId":"whoami","description":"Get the current authenticated principal (user or service account). Works with both session cookies and API keys.","x-speakeasy-group":"auth","x-speakeasy-name-override":"whoami","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace to resolve the principal in. Required for user credentials because a user's role is per-workspace. Service accounts carry their workspace in the credential and may omit it.","example":"my-workspace"},"required":false,"description":"Workspace to resolve the principal in. Required for user credentials because a user's role is per-workspace. Service accounts carry their workspace in the credential and may omit it.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Current authenticated principal.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Subject"}}}},"400":{"description":"Missing required workspace for user credentials.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"Unauthorized - no valid authentication provided.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"Request validation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces":{"get":{"operationId":"listWorkspaces","description":"Retrieve all workspaces.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","description":"Search workspaces by name"},"required":false,"description":"Search workspaces by name","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved workspaces.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Workspace"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}":{"get":{"operationId":"getWorkspace","description":"Retrieve a workspace by ID.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved workspace.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workspace"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateWorkspace","description":"Update a workspace.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"update","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"logoUrl":{"type":"string","nullable":true,"maxLength":2048,"format":"uri"}}}}}},"responses":{"200":{"description":"Workspace updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workspace"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteWorkspace","description":"Delete a workspace. The workspace must have no projects.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"delete","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Workspace deleted successfully."},"400":{"description":"Workspace still has projects.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/members":{"get":{"operationId":"listWorkspaceMembers","description":"List all members of a workspace.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"listMembers","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"List of workspace members.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceMember"}}},"required":["items"]}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"addWorkspaceMember","description":"Add a member to a workspace by email. The user must already have an account.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"addMember","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email","description":"Email of the user to add"},"role":{"allOf":[{"$ref":"#/components/schemas/WorkspaceRole"},{"description":"Role to assign"}]}},"required":["email","role"]}}}},"responses":{"201":{"description":"Member added successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceMember"}}}},"404":{"description":"Workspace or user not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"User is already a member.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/members/{userId}":{"patch":{"operationId":"updateWorkspaceMember","description":"Update a workspace member's role.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"updateMember","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"userId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"allOf":[{"$ref":"#/components/schemas/WorkspaceRole"},{"description":"New role to assign"}]}},"required":["role"]}}}},"responses":{"200":{"description":"Member role updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceMember"}}}},"400":{"description":"Cannot remove last admin.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Workspace or member not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"removeWorkspaceMember","description":"Remove a member from a workspace.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"removeMember","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string"},"required":true,"name":"userId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Member removed successfully."},"400":{"description":"Cannot remove last admin or self.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Workspace or member not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/dismiss-onboarding":{"post":{"operationId":"dismissWorkspaceOnboarding","description":"Mark the Getting Started walkthrough as dismissed for a workspace. The dashboard stops auto-promoting onboarding once this is set; users can still re-enter the walkthrough via the help menu.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"dismissOnboarding","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Workspace with onboardingDismissedAt populated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Workspace"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/settings":{"get":{"operationId":"getWorkspaceSettings","description":"Read the ai-agent settings for a workspace. Returns defaults (`enabled: true`, `debugPermissionMode: auto`) when the workspace has never customized them.","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"getSettings","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Workspace ai-agent settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSettings"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateWorkspaceSettings","description":"Update the ai-agent settings for a workspace. Supports `debugPermissionMode` (`ask` requires human approval on every ai-agent debug command, `auto` runs them without asking) and `enabled` (`false` turns the ai-agent off so incoming triggers are rejected before any session runs).","x-speakeasy-group":"workspaces","x-speakeasy-name-override":"updateSettings","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateWorkspaceSettingsRequest"}}}},"responses":{"200":{"description":"Updated ai-agent settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSettings"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/invitations":{"get":{"operationId":"listWorkspaceInvitations","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Pending invitations.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/WorkspaceInvitation"}}},"required":["items"]}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createWorkspaceInvitation","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","format":"email"},"role":{"$ref":"#/components/schemas/WorkspaceRole"}},"required":["email","role"]}}}},"responses":{"201":{"description":"Invitation created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInvitation"}}}},"403":{"description":"Seat limit reached.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Invitation already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/invitations/{invitationId}/resend":{"post":{"operationId":"resendWorkspaceInvitation","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"invitationId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Invitation email sent again.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInvitation"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/invitations/{invitationId}":{"delete":{"operationId":"revokeWorkspaceInvitation","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1,"maxLength":128},"required":true,"name":"invitationId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Invitation revoked."},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/workspaces/{id}/invite-link":{"get":{"operationId":"getWorkspaceInviteLink","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Active invite link.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInviteLink"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"put":{"operationId":"createWorkspaceInviteLink","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"role":{"$ref":"#/components/schemas/WorkspaceRole"}},"required":["role"]}}}},"responses":{"200":{"description":"Invite link created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceInviteLink"}}}},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"revokeWorkspaceInviteLink","parameters":[{"schema":{"type":"string","pattern":"ws_[0-9a-zA-Z]{24}$","description":"Unique identifier for the workspace.","example":"ws_It13CUaGEhLLAB87simX0"},"required":true,"description":"Unique identifier for the workspace.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Invite link revoked."},"404":{"description":"Workspace not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects":{"get":{"operationId":"listProjects","description":"Retrieve all projects.","x-speakeasy-group":"projects","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","description":"Search projects by name"},"required":false,"description":"Search projects by name","name":"search","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["deploymentCount","latestRelease"]},"description":"Optional fields to include: deploymentCount, latestRelease"},"required":false,"description":"Optional fields to include: deploymentCount, latestRelease","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved projects.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ProjectListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createProject","description":"Create a new project.","x-speakeasy-group":"projects","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Project name.","example":"my-app"},"gitRepository":{"type":"object","nullable":true,"properties":{"type":{"type":"string","enum":["github"],"description":"The Git Provider of the repository","example":"github"},"repo":{"type":"string","maxLength":128,"description":"The name of the git repository","example":"alien/my-agent"}},"required":["type","repo"],"additionalProperties":false,"description":"Verified source repository connected to the project. Alien uses this for GitHub Actions setup and source-aware features; releases are still created explicitly by CI or `alien release`."},"rootDirectory":{"type":"string","nullable":true,"maxLength":256,"description":"The name of a directory or relative path to the source code of your project. When null is used it will default to the project root"},"packagesConfig":{"type":"object","nullable":true,"properties":{"cli":{"type":"object","nullable":true,"properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"},"enabled":{"type":"boolean","description":"Whether CLI package generation is enabled"}},"required":["displayName","name","enabled"],"description":"CLI package configuration. If null, CLI packages will not be generated."},"cloudformation":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether CloudFormation package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"CloudFormation package configuration. If null, CloudFormation packages will not be generated."},"operatorImage":{"type":"object","nullable":true,"properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"},"enabled":{"type":"boolean","description":"Whether Operator image package generation is enabled"}},"required":["displayName","name","enabled"],"description":"Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated."},"helm":{"type":"object","nullable":true,"properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"},"enabled":{"type":"boolean","description":"Whether Helm chart package generation is enabled"}},"required":["chartName","description","enabled"],"description":"Helm chart package configuration. If null, Helm packages will not be generated."},"terraform":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether Terraform package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"Terraform package configuration. If null, Terraform packages will not be generated."}},"description":"Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform)"}},"required":["name"]}}}},"responses":{"201":{"description":"Project created successfully.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Project"},{"type":"object","properties":{"githubSetup":{"type":"object","properties":{"pullRequestUrl":{"type":"string","format":"uri","description":"URL to the pull request with the Alien build workflow"},"workflowUrl":{"type":"string","format":"uri","description":"URL to the GitHub Actions workflow"}},"required":["pullRequestUrl","workflowUrl"]},"gitRepositoryWarning":{"$ref":"#/components/schemas/APIError"}}}]}}}},"400":{"description":"Invalid request or GitHub repository connection failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"401":{"description":"Authentication is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Insufficient permissions or plan limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Project name already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}":{"get":{"operationId":"getProject","description":"Retrieve a project by ID or name.","x-speakeasy-group":"projects","x-speakeasy-name-override":"get","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved project.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateProject","description":"Update a project.","x-speakeasy-group":"projects","x-speakeasy-name-override":"update","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProject"}}}},"responses":{"200":{"description":"Project updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Project"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteProject","description":"Delete a project. The project must have no deployments.","x-speakeasy-group":"projects","x-speakeasy-name-override":"delete","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Project deleted successfully."},"400":{"description":"Project still has deployments.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/gcp-oauth-provider":{"get":{"operationId":"getProjectGcpOAuthProvider","description":"Retrieve redacted project-level Google Cloud OAuth provider settings.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getGcpOAuthProvider","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved Google Cloud OAuth provider settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectGcpOAuthProvider"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"put":{"operationId":"updateProjectGcpOAuthProvider","description":"Update project-level Google Cloud OAuth provider settings.","x-speakeasy-group":"projects","x-speakeasy-name-override":"updateGcpOAuthProvider","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateProjectGcpOAuthProvider"}}}},"responses":{"200":{"description":"Google Cloud OAuth provider settings updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ProjectGcpOAuthProvider"}}}},"400":{"description":"Invalid provider settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/deployment-portal-domain":{"get":{"operationId":"getProjectDeploymentPortalDomain","description":"Get the deployment portal domain binding for a project.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getDeploymentPortalDomain","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved deployment portal domain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentPortalDomainResponse"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/import-template":{"post":{"operationId":"createProjectFromTemplate","description":"Create a project by forking alienplatform/alien into your namespace, then configuring GitHub Actions.","x-speakeasy-group":"projects","x-speakeasy-name-override":"createFromTemplate","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!prj[-_])[a-z0-9](-?[a-z0-9])*$","description":"Project name.","example":"my-app"},"targetNamespace":{"type":"string","minLength":1,"maxLength":100,"pattern":"^[a-zA-Z0-9-]+$","description":"GitHub owner namespace (user or organization) that will receive the fork"},"templatePath":{"type":"string","enum":["examples/remote-worker-ts","examples/github-agent/packages/remote-agent","examples/endpoint-agent","examples/byoc-database"],"description":"Template root directory inside alienplatform/alien"},"rootDirectory":{"type":"string","nullable":true,"maxLength":256,"description":"The name of a directory or relative path to the source code of your project. When null is used it will default to the project root"},"packagesConfig":{"type":"object","nullable":true,"properties":{"cli":{"type":"object","nullable":true,"properties":{"binaryTargets":{"type":"array","items":{"type":"string","enum":["windows-x64","linux-x64","linux-arm64","darwin-arm64"],"description":"Target OS and architecture for compiled binaries.\n\nUsed as keys in package output maps (CLI binaries, Terraform providers, etc.)\nand for cross-compilation target selection during builds."},"description":"Binary targets required by this package's setup consumer.\n\nOlder package rows omit this field and retain the historical all-target\nbehavior. Callers creating new packages should state their target set."},"displayName":{"type":"string","description":"Human-friendly display name for help banners and about text"},"name":{"type":"string","description":"Binary name displayed in help and usage (e.g., \"acmectl\")"},"enabled":{"type":"boolean","description":"Whether CLI package generation is enabled"}},"required":["displayName","name","enabled"],"description":"CLI package configuration. If null, CLI packages will not be generated."},"cloudformation":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether CloudFormation package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"CloudFormation package configuration. If null, CloudFormation packages will not be generated."},"operatorImage":{"type":"object","nullable":true,"properties":{"brand":{"type":"string","nullable":true,"description":"Short brand slug used for generated resource names."},"displayName":{"type":"string","description":"Human-friendly display name for logs and startup messages"},"envPrefix":{"type":"string","nullable":true,"description":"Branded environment variable prefix (e.g., \"ACME\")."},"labelDomain":{"type":"string","nullable":true,"description":"Branded Kubernetes/cloud label domain (e.g., \"acme.dev\")."},"name":{"type":"string","description":"Image name (e.g., \"acme-operator\")"},"enabled":{"type":"boolean","description":"Whether Operator image package generation is enabled"}},"required":["displayName","name","enabled"],"description":"Operator image package configuration. Required when Helm is enabled. If null, Operator image packages will not be generated."},"helm":{"type":"object","nullable":true,"properties":{"chartName":{"type":"string","description":"Chart name (e.g., \"acme-operator\")"},"description":{"type":"string","description":"Human-friendly description of the chart"},"enabled":{"type":"boolean","description":"Whether Helm chart package generation is enabled"}},"required":["chartName","description","enabled"],"description":"Helm chart package configuration. If null, Helm packages will not be generated."},"terraform":{"type":"object","nullable":true,"properties":{"enabled":{"type":"boolean","description":"Whether Terraform package generation is enabled"},"displayName":{"type":"string","nullable":true,"description":"Human-friendly application name shown in generated install artifacts"}},"required":["enabled"],"description":"Terraform package configuration. If null, Terraform packages will not be generated."}},"description":"Configuration for embedded packages (CLI, CloudFormation, Helm, Terraform)"}},"required":["name","targetNamespace","templatePath"]}}}},"responses":{"201":{"description":"Project created successfully from template.","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/Project"},{"type":"object","properties":{"githubSetup":{"type":"object","properties":{"pullRequestUrl":{"type":"string","format":"uri","description":"URL to the pull request with the Alien build workflow"},"workflowUrl":{"type":"string","format":"uri","description":"URL to the GitHub Actions workflow"}},"required":["pullRequestUrl","workflowUrl"]},"gitRepositoryWarning":{"$ref":"#/components/schemas/APIError"},"template":{"type":"object","properties":{"sourceRepository":{"type":"string","enum":["alienplatform/alien"]},"forkRepository":{"type":"string","description":"Fork repository in / format"},"templatePath":{"type":"string","enum":["examples/remote-worker-ts","examples/github-agent/packages/remote-agent","examples/endpoint-agent","examples/byoc-database"],"description":"Template root directory inside alienplatform/alien"},"resolvedRootDirectory":{"type":"string"}},"required":["sourceRepository","forkRepository","templatePath","resolvedRootDirectory"]}},"required":["template"]}]}}}},"400":{"description":"Bad request or GitHub integration not installed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Project name already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"Fork exists but is not ready yet.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/template-urls":{"get":{"operationId":"getProjectTemplateUrls","description":"Get template URLs for deploying setup stacks in this project.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getTemplateUrls","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Template URLs retrieved successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"aws":{"type":"object","nullable":true,"properties":{"templateUrl":{"type":"string","format":"uri","description":"URL to download the CloudFormation template"},"launchStackUrl":{"type":"string","format":"uri","description":"URL to launch the template in the AWS CloudFormation console"}},"required":["templateUrl","launchStackUrl"],"description":"Template URLs for deploying an AWS setup stack"}}}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/deployment-link-setup":{"get":{"operationId":"getProjectDeploymentLinkSetup","description":"Get the active release stack and portal-visible setup availability for deployment-link configuration.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getDeploymentLinkSetup","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Deployment-link setup retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentLinkSetupResponse"}}}},"404":{"description":"Project or active release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/projects/{idOrName}/active-release":{"get":{"operationId":"getProjectActiveRelease","description":"Get the production channel's current release. When deploymentId is provided, returns that deployment's effective release: its pin, or its followed channel's current release.","x-speakeasy-group":"projects","x-speakeasy-name-override":"getActiveRelease","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNamePathParam"},"required":true,"description":"Project ID or name.","name":"idOrName","in":"path","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","description":"Optional deployment ID to check for pinned release"},"required":false,"description":"Optional deployment ID to check for pinned release","name":"deploymentId","in":"query"}],"responses":{"200":{"description":"Effective release retrieved successfully.","content":{"application/json":{"schema":{"nullable":true}}}},"404":{"description":"Project or effective release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups":{"post":{"operationId":"createDeploymentGroup","tags":["deployment-groups"],"summary":"Create a new deployment group","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentGroupRequest"}}}},"responses":{"200":{"description":"Deployment group created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment group with this name already exists in the project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"listDeploymentGroups","tags":["deployment-groups"],"summary":"List deployment groups","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","description":"Search deployment groups by name"},"required":false,"description":"Search deployment groups by name","name":"search","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["project"]},"description":"Optional fields to include: project"},"required":false,"description":"Optional fields to include: project","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"List of deployment groups","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"allOf":[{"$ref":"#/components/schemas/DeploymentGroup"},{"type":"object","properties":{"project":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"Project ID"},"name":{"type":"string","description":"Project name"}},"required":["id","name"],"description":"Project info, included when ?include=project is used"}}}]},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/by-name":{"put":{"operationId":"ensureDeploymentGroupByName","tags":["deployment-groups"],"summary":"Get or create a deployment group by project and name","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnsureDeploymentGroupByNameRequest"}}}},"responses":{"200":{"description":"Deployment group returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/by-external-id":{"put":{"operationId":"ensureDeploymentGroupByExternalId","tags":["deployment-groups"],"summary":"Get or create a deployment group by project and external ID","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/EnsureDeploymentGroupByExternalIdRequest"}}}},"responses":{"200":{"description":"Deployment group returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Project not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment group name already exists in the project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"getDeploymentGroupByExternalId","tags":["deployment-groups"],"summary":"Get a deployment group by project and external ID","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","maxLength":100,"description":"Project ID or name. Optional for project-scoped API keys."},"required":false,"description":"Project ID or name. Optional for project-scoped API keys.","name":"project","in":"query"},{"schema":{"type":"string","minLength":1,"maxLength":128,"pattern":"^[A-Za-z0-9][A-Za-z0-9._~-]*$","description":"Case-sensitive, URL- and header-safe identifier from the integrating application.","example":"ext_example_01"},"required":true,"description":"Case-sensitive, URL- and header-safe identifier from the integrating application.","name":"externalId","in":"query"}],"responses":{"200":{"description":"Deployment group returned successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Project or deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/{id}":{"get":{"operationId":"getDeploymentGroup","tags":["deployment-groups"],"summary":"Get deployment group details","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["project"]},"description":"Optional fields to include: project"},"required":false,"description":"Optional fields to include: project","name":"include","in":"query"}],"responses":{"200":{"description":"Deployment group details","content":{"application/json":{"schema":{"allOf":[{"$ref":"#/components/schemas/DeploymentGroup"},{"type":"object","properties":{"project":{"type":"object","nullable":true,"properties":{"id":{"type":"string","description":"Project ID"},"name":{"type":"string","description":"Project name"}},"required":["id","name"],"description":"Project info, included when ?include=project is used"},"deploymentCount":{"type":"integer","description":"Current number of deployments in this deployment group"}},"required":["deploymentCount"]}]}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateDeploymentGroup","tags":["deployment-groups"],"summary":"Update deployment group","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentGroupRequest"}}}},"responses":{"200":{"description":"Deployment group updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment group name already exists in the project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteDeploymentGroup","tags":["deployment-groups"],"summary":"Delete deployment group","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Deployment group deleted successfully"},"400":{"description":"Cannot delete deployment group that has deployments","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/{id}/external-id":{"put":{"operationId":"setDeploymentGroupExternalId","tags":["deployment-groups"],"summary":"Set or clear a deployment group's external ID","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetDeploymentGroupExternalIdRequest"}}}},"responses":{"200":{"description":"Deployment group external ID updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentGroup"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment group external ID already exists in the project","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/{id}/tokens":{"post":{"operationId":"createDeploymentGroupToken","tags":["deployment-groups"],"summary":"Create deployment group token","description":"Creates a deployment-group scoped API key and returns both the token and formatted deployment link","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentGroupTokenRequest"}}}},"responses":{"200":{"description":"Deployment group token created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentGroupTokenResponse"}}}},"400":{"description":"Deployment setup configuration is invalid","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-groups/{id}/first-party-session":{"post":{"operationId":"createFirstPartyDeploymentSession","tags":["deployment-groups"],"summary":"Create first-party deployment session","description":"Mints a short-lived deployment-group token with the recommended self-deploy policy for the authenticated developer.","parameters":[{"schema":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"required":true,"description":"Unique identifier for the deployment group.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"First-party deployment session created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateFirstPartyDeploymentSessionResponse"}}}},"404":{"description":"Deployment group not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/packages":{"get":{"operationId":"listPackages","description":"List packages with optional filters. Returns packages ordered by creation date (newest first).","x-speakeasy-group":"packages","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","enum":["cli","cloudformation","helm","operator-image","terraform"],"description":"Filter by package type"},"required":false,"description":"Filter by package type","name":"type","in":"query"},{"schema":{"type":"string","enum":["pending","building","ready","failed","canceled"],"description":"Filter by package status"},"required":false,"description":"Filter by package status","name":"status","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search packages by type or version"},"required":false,"description":"Search packages by type or version","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"List of packages.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Package"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/packages/{id}":{"get":{"operationId":"getPackage","description":"Get details of a specific package.","x-speakeasy-group":"packages","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"pkg_[0-9a-z]{28}$","description":"Unique identifier for the package.","example":"pkg_jebo2o5jmm7raefl2m1pe3cz"},"required":true,"description":"Unique identifier for the package.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Package details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Package"}}}},"404":{"description":"Package not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/packages/rebuild":{"post":{"operationId":"rebuildPackages","description":"Rebuild packages for a project. This will cancel any pending packages and create new ones with auto-incremented versions.","x-speakeasy-group":"packages","x-speakeasy-name-override":"rebuild","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"project":{"type":"string","maxLength":100,"description":"Project ID or name to rebuild packages for"}},"required":["project"]}}}},"responses":{"200":{"description":"Packages rebuilt successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"packagesCreated":{"type":"integer","description":"Number of packages created"}},"required":["packagesCreated"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/packages/{id}/cancel":{"post":{"operationId":"cancelPackage","description":"Cancel a pending or building package.","x-speakeasy-group":"packages","x-speakeasy-name-override":"cancel","parameters":[{"schema":{"type":"string","pattern":"pkg_[0-9a-z]{28}$","description":"Unique identifier for the package.","example":"pkg_jebo2o5jmm7raefl2m1pe3cz"},"required":true,"description":"Unique identifier for the package.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Package canceled successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Package"}}}},"400":{"description":"Package cannot be canceled (not in pending or building status).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Package not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases":{"get":{"operationId":"listReleases","description":"Retrieve all releases.","x-speakeasy-group":"releases","x-speakeasy-name-override":"list","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"}],"nullable":true},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","nullable":true,"minLength":1,"maxLength":63,"pattern":"^[a-z][a-z0-9-]*$","description":"Filter to releases promoted to this channel. Defaults to production."},"required":false,"description":"Filter to releases promoted to this channel. Defaults to production.","name":"channel","in":"query"},{"schema":{"type":"string","enum":["true","false"],"default":"false"},"required":false,"name":"allChannels","in":"query"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["project","rollout","createdBy"]},"description":"Optional fields to include: project, rollout"},"required":false,"description":"Optional fields to include: project, rollout","name":"include","in":"query"},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Search releases by commit message, branch, SHA, or release ID"},"required":false,"description":"Search releases by commit message, branch, SHA, or release ID","name":"search","in":"query"},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Filter by git branch (commitRef)"},"required":false,"description":"Filter by git branch (commitRef)","name":"branch","in":"query"},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Filter by commit author login or name"},"required":false,"description":"Filter by commit author login or name","name":"author","in":"query"},{"schema":{"type":"string","nullable":true,"format":"date-time","description":"Filter releases created after this date (ISO 8601)"},"required":false,"description":"Filter releases created after this date (ISO 8601)","name":"createdAfter","in":"query"},{"schema":{"type":"string","nullable":true,"format":"date-time","description":"Filter releases created before this date (ISO 8601)"},"required":false,"description":"Filter releases created before this date (ISO 8601)","name":"createdBefore","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved releases.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createRelease","description":"Create a new release.","x-speakeasy-group":"releases","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateReleaseRequest"}}}},"responses":{"201":{"description":"Release created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Release"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases/branches":{"get":{"operationId":"listReleaseBranches","description":"List distinct git branches across releases. Used for filter dropdowns.","x-speakeasy-group":"releases","x-speakeasy-name-override":"listBranches","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"allOf":[{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"}],"nullable":true},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Search branches by name (case-insensitive contains)"},"required":false,"description":"Search branches by name (case-insensitive contains)","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50,"description":"Maximum number of branches to return"},"required":false,"description":"Maximum number of branches to return","name":"limit","in":"query"}],"responses":{"200":{"description":"Retrieved distinct branches.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"string"}}},"required":["items"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases/authors":{"get":{"operationId":"listReleaseAuthors","description":"List distinct commit authors across releases. Used for filter dropdowns.","x-speakeasy-group":"releases","x-speakeasy-name-override":"listAuthors","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"allOf":[{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"}],"nullable":true},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Search authors by login or name (case-insensitive contains)"},"required":false,"description":"Search authors by login or name (case-insensitive contains)","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":50,"description":"Maximum number of authors to return"},"required":false,"description":"Maximum number of authors to return","name":"limit","in":"query"}],"responses":{"200":{"description":"Retrieved distinct authors.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseAuthorFilterItem"}}},"required":["items"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases/{id}":{"get":{"operationId":"getRelease","description":"Retrieve a release by ID.","x-speakeasy-group":"releases","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"required":true,"description":"Unique identifier for the release.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["project","rollout","createdBy"]},"description":"Optional fields to include: project, rollout"},"required":false,"description":"Optional fields to include: project, rollout","name":"include","in":"query"}],"responses":{"200":{"description":"Retrieved release.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseListItemResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/releases/{id}/deployments":{"get":{"operationId":"listReleaseDeployments","description":"List the project's deployments with their rollout state relative to this release.","x-speakeasy-group":"releases","x-speakeasy-name-override":"listDeployments","parameters":[{"schema":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"required":true,"description":"Unique identifier for the release.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseRolloutState"},"description":"Filter deployments by rollout state"},"required":false,"description":"Filter deployments by rollout state","name":"state","in":"query"},{"schema":{"type":"string","description":"Filter by deployment group ID or name"},"required":false,"description":"Filter by deployment group ID or name","name":"deploymentGroup","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved release deployments.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseDeploymentsResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/release-channels":{"get":{"operationId":"listReleaseChannels","x-speakeasy-group":"releaseChannels","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"responses":{"200":{"description":"Project release channels.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/ReleaseChannel"}}},"required":["items"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createReleaseChannel","x-speakeasy-group":"releaseChannels","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"$ref":"#/components/schemas/ReleaseChannelName"},"releaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"}},"required":["name"],"additionalProperties":false}}}},"responses":{"201":{"description":"Channel created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseChannel"}}}},"400":{"description":"Invalid release.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/release-channels/{name}/promote":{"post":{"operationId":"promoteRelease","x-speakeasy-group":"releases","x-speakeasy-name-override":"promote","parameters":[{"schema":{"$ref":"#/components/schemas/ReleaseChannelName"},"required":true,"name":"name","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"releaseId":{"type":"string","pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"},"expectedReleaseId":{"type":"string","nullable":true,"pattern":"rel_[0-9a-zA-Z]{28}$","description":"Unique identifier for the release.","example":"rel_WbhQgksrawSKIpEN0NAssHX9"}},"required":["releaseId"],"additionalProperties":false}}}},"responses":{"200":{"description":"Release promoted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ReleaseChannel"}}}},"404":{"description":"Project, channel, or release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Channel changed concurrently.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/release-channels/{name}":{"delete":{"operationId":"deleteReleaseChannel","x-speakeasy-group":"releaseChannels","x-speakeasy-name-override":"delete","parameters":[{"schema":{"$ref":"#/components/schemas/ReleaseChannelName"},"required":true,"name":"name","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"responses":{"204":{"description":"Channel deleted."},"400":{"description":"Reserved channel.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project or channel not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Channel is still followed by deployments.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments":{"get":{"operationId":"listDeployments","description":"Retrieve all deployments.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"list","parameters":[{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","description":"Filter by deployment group ID or name"},"required":false,"description":"Filter by deployment group ID or name","name":"deploymentGroup","in":"query"},{"schema":{"type":"string","maxLength":100,"description":"Filter by exact deployment name. Must be used with deploymentGroup."},"required":false,"description":"Filter by exact deployment name. Must be used with deploymentGroup.","name":"name","in":"query"},{"schema":{"type":"string","description":"Filter by manager ID"},"required":false,"description":"Filter by manager ID","name":"managerId","in":"query"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search deployments by name, public subdomain, or deployment group name"},"required":false,"description":"Search deployments by name, public subdomain, or deployment group name","name":"search","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"description":"Filter deployments by status"},"required":false,"description":"Filter deployments by status","name":"status","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Filter deployments by effective environment"},"required":false,"description":"Filter deployments by effective environment","name":"environment","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["release","deploymentGroup","project"]},"description":"Optional fields to include: release, deploymentGroup, project"},"required":false,"description":"Optional fields to include: release, deploymentGroup, project","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved deployments.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/DeploymentListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"400":{"description":"Invalid deployment list filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createDeployment","description":"Create a new deployment. Deployment group tokens automatically use their group. Workspace/project tokens must provide deploymentGroupId.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewDeploymentRequest"}}}},"responses":{"200":{"description":"Existing deployment returned for idempotent deployment-group registration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentResponse"}}}},"201":{"description":"Deployment created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentResponse"}}}},"400":{"description":"Bad request - deployment group has reached max deployments limit.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Forbidden - insufficient permissions to create deployments in this context.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project or deployment group not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment with the specified ID already exists, or a deployment with the same name already exists in the deployment group.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/stats":{"get":{"operationId":"getDeploymentStats","description":"Get aggregated deployment statistics. Returns total count and breakdown by status.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"getStats","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","description":"Filter by deployment group ID or name"},"required":false,"description":"Filter by deployment group ID or name","name":"deploymentGroup","in":"query"},{"schema":{"type":"string","description":"Filter by manager ID"},"required":false,"description":"Filter by manager ID","name":"managerId","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"description":"Filter deployments by effective environment"},"required":false,"description":"Filter deployments by effective environment","name":"environment","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["pending","preflights-failed","initial-setup","initial-setup-failed","provisioning","waiting-for-machines","provisioning-failed","running","refresh-failed","update-pending","updating","update-failed","delete-pending","deleting","delete-failed","teardown-required","teardown-failed","deleted","error"],"description":"Deployment status in the deployment lifecycle.\n\nFor observe-only deployments with no release or stack state, `Running`\nmeans the Operator is attached. Connectivity comes from `lastHeartbeatAt`;\nresource health comes from inventory and resource heartbeat data."},"description":"Filter deployments by status"},"required":false,"description":"Filter deployments by status","name":"status","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search deployments by name or deployment group name"},"required":false,"description":"Search deployments by name or deployment group name","name":"search","in":"query"}],"responses":{"200":{"description":"Deployment statistics retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentStats"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/filter-environments":{"get":{"operationId":"listDeploymentFilterEnvironments","description":"List distinct effective environments used by deployments. Used for filter dropdowns.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"listFilterEnvironments","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"responses":{"200":{"description":"Distinct environments retrieved.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."}}},"required":["items"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/filter-deployment-groups":{"get":{"operationId":"listDeploymentFilterDeploymentGroups","description":"List deployment groups with deployment counts. Used for filter dropdowns.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"listFilterDeploymentGroups","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","nullable":true,"maxLength":256,"description":"Search deployment groups by name"},"required":false,"description":"Search deployment groups by name","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return"},"required":false,"description":"Maximum number of items to return","name":"limit","in":"query"}],"responses":{"200":{"description":"Deployment groups for filter retrieved.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string","pattern":"dg_[0-9a-z]{28}$","description":"Unique identifier for the deployment group.","example":"dg_r27ict8c7vcgsumpj90ackf7b"},"name":{"type":"string"},"deploymentCount":{"type":"number"},"runningCount":{"type":"number","description":"Number of deployments in 'running' status"},"failedCount":{"type":"number","description":"Number of deployments in a failed status"},"inProgressCount":{"type":"number","description":"Number of deployments in an in-progress status (provisioning, updating, etc.)"}},"required":["id","name","deploymentCount","runningCount","failedCount","inProgressCount"]}}},"required":["items"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}":{"get":{"operationId":"getDeployment","description":"Retrieve a deployment by ID.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["release","deploymentGroup","project"]},"description":"Optional fields to include: release, deploymentGroup, project"},"required":false,"description":"Optional fields to include: release, deploymentGroup, project","name":"include","in":"query"}],"responses":{"200":{"description":"Retrieved deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentDetailResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/info":{"get":{"operationId":"getDeploymentConnectionInfo","description":"Get deployment connection information including command endpoint and resource URLs.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"getInfo","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Deployment connection information.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentConnectionInfo"}}}},"400":{"description":"Deployment not ready (no manager assigned).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/import":{"post":{"operationId":"importDeployment","description":"Import a deployment from resolved setup infrastructure such as CloudFormation, Terraform, or Helm.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"import","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImportDeploymentRequest"}}}},"responses":{"200":{"description":"Deployment import was idempotent and returned an existing deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deployment"}}}},"201":{"description":"Deployment imported and created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deployment"}}}},"409":{"description":"Deployment with the specified ID already exists, or a deployment with the same name already exists in the deployment group.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/first-party-inputs":{"put":{"operationId":"setFirstPartyDeploymentInputs","description":"Store operator-provided input values on a first-party deployment session token so CLI/local deploys apply them.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"setFirstPartyDeploymentInputs","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetFirstPartyDeploymentInputsRequest"}}}},"responses":{"200":{"description":"Input values stored on the session token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetFirstPartyDeploymentInputsResponse"}}}},"400":{"description":"A deployment-group token scope is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"The token is not a first-party deployment session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Failed to store input values.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/setup-registration-operations":{"post":{"operationId":"createSetupRegistrationOperation","description":"Start a durable setup registration operation for CloudFormation, Terraform, or Helm.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"createSetupRegistrationOperation","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateSetupRegistrationOperationRequest"}}}},"responses":{"202":{"description":"Setup registration operation accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetupRegistrationOperationResponse"}}}},"400":{"description":"Invalid setup registration operation request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed before callback acceptance.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/setup-registration-operations/{id}":{"get":{"operationId":"getSetupRegistrationOperation","description":"Get setup registration operation status.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"getSetupRegistrationOperation","parameters":[{"schema":{"type":"string","pattern":"setupop_[0-9a-z]{28}$","description":"Unique identifier for the setup registration operation.","example":"setupop_y41lqnfosxuwqkzmiax7"},"required":true,"description":"Unique identifier for the setup registration operation.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Setup registration operation.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SetupRegistrationOperationResponse"}}}},"404":{"description":"Setup registration operation not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/delete":{"post":{"operationId":"deleteDeployment","description":"Delete, detach, or forget a deployment by ID.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"delete","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDeploymentRequest"}}}},"responses":{"202":{"description":"Deployment deletion request accepted.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteDeploymentResponse"}}}},"400":{"description":"Cannot delete the deployment in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment already has a conflicting delete request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/redeploy":{"post":{"operationId":"redeployDeployment","description":"Redeploy a running deployment with the same release and fresh environment variables. Sets status to update-pending.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"redeploy","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Deployment redeployment triggered successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot redeploy - deployment must be running.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/pin-release":{"post":{"operationId":"pinDeploymentRelease","description":"Pin or unpin a running or runtime-failed deployment. Running deployments start an update; failed deployments retry toward the selected release.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"pinRelease","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PinReleaseRequest"}}}},"responses":{"202":{"description":"Release pin updated successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot pin release from the deployment's current lifecycle state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment or release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/release-channel":{"post":{"operationId":"setDeploymentReleaseChannel","x-speakeasy-group":"deployments","x-speakeasy-name-override":"setReleaseChannel","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"channel":{"$ref":"#/components/schemas/ReleaseChannelName"}},"required":["channel"],"additionalProperties":false}}}},"responses":{"200":{"description":"Deployment release channel updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Deployment"}}}},"400":{"description":"Channel release is unavailable for the deployment platform.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment or release channel not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/retry":{"post":{"operationId":"retryDeployment","description":"Retry a failed deployment operation. Uses alien-infra's retry mechanisms to resume from exact failure point.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"retry","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Deployment retry enqueued successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Deployment is not in a failed state that can be retried.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/inputs":{"get":{"operationId":"getDeploymentInputs","description":"Get the active input definitions and current non-secret values for a deployment.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"getInputs","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Deployment inputs returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentInputsResponse"}}}},"403":{"description":"Insufficient permission to read deployment inputs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment or release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateDeploymentInputs","description":"Update runtime stack inputs, rebuild their environment-variable mappings, and request a deployment update when runtime configuration changes.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"updateInputs","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentInputsRequest"}}}},"responses":{"200":{"description":"Deployment inputs saved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentInputsResponse"}}}},"400":{"description":"Input values are invalid for the deployment release.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Insufficient permission to update deployment inputs.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment, project, or release not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/environment-variables":{"patch":{"operationId":"updateDeploymentEnvironmentVariables","description":"Update a deployment's environment variables. If the deployment is running and not locked, the status will be changed to update-pending to trigger a deployment.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"updateEnvironmentVariables","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDeploymentEnvironmentVariablesRequest"}}}},"responses":{"202":{"description":"Environment variables updated successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Environment variables are invalid.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Insufficient permission to update environment variables.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployments/{id}/token":{"post":{"operationId":"createDeploymentToken","description":"Create a deployment token (deployment-scoped API key). The deployment must exist before creating a token.","x-speakeasy-group":"deployments","x-speakeasy-name-override":"createToken","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentTokenRequest"}}}},"responses":{"201":{"description":"Deployment token created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDeploymentTokenResponse"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers":{"post":{"operationId":"createManager","description":"Create a new manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NewManagerRequest"}}}},"responses":{"201":{"description":"Manager created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateManagerResponse"}}}},"400":{"description":"Invalid private manager setup method.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"A manager for this target already exists.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"listManagers","description":"Retrieve all managers.","x-speakeasy-group":"managers","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search managers by name"},"required":false,"description":"Search managers by name","name":"search","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Maximum number of managers to return"},"required":false,"description":"Maximum number of managers to return","name":"limit","in":"query"}],"responses":{"200":{"description":"Retrieved managers.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Manager"}}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/setup-token":{"post":{"operationId":"retryManagerSetup","description":"Revoke previous private-manager setup tokens and issue a fresh setup token/config.","x-speakeasy-group":"managers","x-speakeasy-name-override":"retrySetup","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"201":{"description":"Fresh manager setup token generated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateManagerResponse"}}}},"400":{"description":"Manager setup cannot be retried in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager or setup config not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/retry":{"post":{"operationId":"retryManager","description":"Retry private-manager setup. Returns a fresh setup action before the internal deployment exists, or requests retry for the internal deployment after it exists.","x-speakeasy-group":"managers","x-speakeasy-name-override":"retry","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Manager retry handled successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerRetryResponse"}}}},"400":{"description":"Manager cannot be retried in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager or internal deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/cancel-setup":{"post":{"operationId":"cancelManagerSetup","description":"Cancel pending private-manager setup, revoke setup/runtime tokens, and remove the undeployed manager record.","x-speakeasy-group":"managers","x-speakeasy-name-override":"cancelSetup","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Manager setup canceled successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Manager setup cannot be canceled in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}":{"get":{"operationId":"getManager","description":"Retrieve a manager by ID.","x-speakeasy-group":"managers","x-speakeasy-name-override":"get","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved manager.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Manager"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteManager","description":"Delete a manager by ID.","x-speakeasy-group":"managers","x-speakeasy-name-override":"delete","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Manager deletion enqueued successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot delete the manager in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Internal deployment already has a conflicting delete request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/domain-binding":{"get":{"operationId":"getManagerDomainBinding","description":"Get the custom domain binding for a private manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"getDomainBinding","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved manager domain binding.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerDomainBindingResponse"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"put":{"operationId":"updateManagerDomainBinding","description":"Create, update, or remove the custom domain binding for a private manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"updateDomainBinding","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateManagerDomainBinding"}}}},"responses":{"200":{"description":"Manager domain binding updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerDomainBindingResponse"}}}},"400":{"description":"Invalid domain binding request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager or domain not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/management-config":{"get":{"operationId":"getManagerManagementConfig","description":"Get the management configuration for a manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"getManagementConfig","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"required":true,"description":"Represents the target cloud platform.","name":"platform","in":"query"}],"responses":{"200":{"description":"Management config retrieved successfully.","content":{"application/json":{"schema":{"oneOf":[{"allOf":[{"type":"object","properties":{"managingRoleArn":{"type":"string","description":"The managing AWS IAM role ARN that can assume cross-account roles"}},"required":["managingRoleArn"],"description":"AWS management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["aws"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"serviceAccountEmail":{"type":"string","description":"Service account email for management roles"}},"required":["serviceAccountEmail"],"description":"GCP management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["gcp"]}},"required":["platform"]}]},{"allOf":[{"type":"object","properties":{"managingTenantId":{"type":"string","description":"The managing Azure Tenant ID for cross-tenant access"},"oidcIssuer":{"type":"string","description":"OIDC issuer URL trusted by the target-side managed identity."},"oidcSubject":{"type":"string","description":"OIDC subject claim trusted by the target-side managed identity."}},"required":["managingTenantId","oidcIssuer","oidcSubject"],"description":"Azure management configuration extracted from stack settings"},{"type":"object","properties":{"platform":{"type":"string","enum":["azure"]}},"required":["platform"]}]},{"type":"object","properties":{"platform":{"type":"string","enum":["kubernetes"]}},"required":["platform"]}],"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."}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/provision":{"post":{"operationId":"provisionManager","description":"Enqueue provisioning for a manager by ID.","x-speakeasy-group":"managers","x-speakeasy-name-override":"provision","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"202":{"description":"Manager provisioning enqueued successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot provision the manager in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/update":{"post":{"operationId":"updateManager","description":"Update a manager to a specific release ID or active release.","x-speakeasy-group":"managers","x-speakeasy-name-override":"update","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateManagerRequest"}}}},"responses":{"202":{"description":"Manager update enqueued successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"message":{"type":"string"}},"required":["message"]}}}},"400":{"description":"Cannot update the manager in its current state.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/events":{"get":{"operationId":"listManagerEvents","description":"Retrieve all events of a manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"listEvents","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved events.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/Event"}}},"required":["items"]}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/token":{"post":{"operationId":"generateManagerToken","description":"Generate a short-lived JWT for direct browser → manager communication. Used for fetching command payloads and querying logs without routing sensitive data through the platform API.","x-speakeasy-group":"managers","x-speakeasy-name-override":"generateManagerToken","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateManagerTokenRequest"}}}},"responses":{"200":{"description":"Manager access token and connection info.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateManagerTokenResponse"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/binding-token":{"post":{"operationId":"generateManagerBindingToken","description":"Generate a short-lived deployment-scoped token for resolving opted-in remote bindings through the currently assigned manager.","x-speakeasy-group":"managers","x-speakeasy-name-override":"generateManagerBindingToken","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateManagerBindingTokenRequest"}}}},"responses":{"200":{"description":"Remote Bindings token and assigned manager URL.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/GenerateManagerBindingTokenResponse"}}}},"403":{"description":"The caller cannot update the deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Assigned manager or deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"The assigned manager is offline.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/gcp-oauth-provider/resolve":{"post":{"operationId":"resolveManagerGcpOAuthProvider","description":"Resolve decrypted project-level Google Cloud OAuth provider settings for a manager-side deployment bootstrap.","x-speakeasy-group":"managers","x-speakeasy-name-override":"resolveGcpOAuthProvider","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveManagerGcpOAuthProviderRequest"}}}},"responses":{"200":{"description":"Resolved Google Cloud OAuth provider settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveManagerGcpOAuthProviderResponse"}}}},"401":{"description":"Unauthorized.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Manager cannot resolve this deployment group's project settings.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Manager, deployment group, or project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/heartbeat":{"post":{"operationId":"reportManagerHeartbeat","description":"Report Manager health status and metrics.","x-speakeasy-group":"managers","x-speakeasy-name-override":"reportHeartbeat","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerHeartbeatRequest"}}}},"responses":{"200":{"description":"Heartbeat acknowledged.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerHeartbeatResponse"}}}},"404":{"description":"Manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/managers/{id}/deployment":{"get":{"operationId":"getManagerDeployment","description":"Get deployment details for a private manager (internal deployment platform, status, resources).","x-speakeasy-group":"managers","x-speakeasy-name-override":"getDeployment","parameters":[{"schema":{"allOf":[{"$ref":"#/components/schemas/ManagerID"},{"description":"Unique identifier for a manager."}]},"required":true,"description":"Unique identifier for a manager.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Manager deployment details.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ManagerDeployment"}}}},"404":{"description":"Manager not found or has no internal deployment (alien-hosted managers don't have deployment info).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Operation failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/operator-manifests/prepare":{"post":{"operationId":"prepareOperatorManifestPackage","tags":["operator-manifests"],"summary":"Prepare the white-labeled Operator image for an Operate install","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrepareOperatorManifestPackageRequest"}}}},"responses":{"200":{"description":"Operator image package created or reused.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PrepareOperatorManifestPackageResponse"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/operator-manifests/render":{"post":{"operationId":"renderOperatorManifest","tags":["operator-manifests"],"summary":"Render a Kubernetes Operator manifest","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenderOperatorManifestRequest"}}}},"responses":{"200":{"description":"Operator manifest rendered successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RenderOperatorManifestResponse"}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Operator image package is not ready.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Invalid platform or manager configuration.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/api-keys":{"get":{"operationId":"listAPIKeys","description":"Retrieve all API keys for the current workspace.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved API keys.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/APIKey"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createAPIKey","description":"Create a new API key.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAPIKeyRequest"}}}},"responses":{"201":{"description":"API key created successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateAPIKeyResponse"}}}},"403":{"description":"Insufficient permissions to create API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/api-keys/{id}":{"get":{"operationId":"getAPIKey","description":"Retrieve a specific API key.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"required":true,"description":"Unique identifier for the api key.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKey"}}}},"404":{"description":"API key not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"patch":{"operationId":"updateAPIKey","description":"Update an API key (enable/disable, change description).","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"update","parameters":[{"schema":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"required":true,"description":"Unique identifier for the api key.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateAPIKeyRequest"}}}},"responses":{"200":{"description":"API key updated successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIKey"}}}},"404":{"description":"API key not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"revokeAPIKey","description":"Revoke (soft delete) an API key.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"revoke","parameters":[{"schema":{"type":"string","pattern":"apikey_[0-9a-z]{28}$","description":"Unique identifier for the api key.","example":"apikey_ye96yxs1tjnrrwulp8frh"},"required":true,"description":"Unique identifier for the api key.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"API key revoked successfully."},"404":{"description":"API key not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/api-keys/batch-delete":{"post":{"operationId":"deleteAPIKeys","description":"Permanently delete multiple API keys.","x-speakeasy-group":"apiKeys","x-speakeasy-name-override":"deleteMultiple","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteAPIKeysRequest"}}}},"responses":{"200":{"description":"API keys deleted successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"deletedCount":{"type":"number"}},"required":["deletedCount"]}}}},"403":{"description":"Insufficient permissions to delete API keys.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains":{"get":{"operationId":"listDomains","description":"List system domains and workspace domains.","x-speakeasy-group":"domains","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved domains.","content":{"application/json":{"schema":{"type":"object","properties":{"domains":{"type":"array","items":{"$ref":"#/components/schemas/DomainWithUsage"}}},"required":["domains"]}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createDomain","description":"Create a workspace domain and optional initial endpoints.","x-speakeasy-group":"domains","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","minLength":1,"maxLength":253},"setup":{"type":"object","properties":{"deploymentPortal":{"type":"boolean"},"packages":{"type":"boolean"},"deploymentUrlProjectId":{"type":"string","nullable":true,"pattern":"prj_[0-9a-z]{28}$","description":"Unique identifier for the project.","example":"prj_mcytp6z3j91f7tn5ryqsfwtr"},"managerIds":{"type":"array","items":{"type":"string"}}}}},"required":["domain"]}}}},"responses":{"200":{"description":"Returned an existing workspace domain claim.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"201":{"description":"Created domain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"400":{"description":"Domain is reserved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"403":{"description":"Insufficient permissions or plan limit exceeded.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Domain cleanup is still in progress.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains/{id}/endpoints":{"post":{"operationId":"createDomainEndpoint","description":"Create an endpoint under a workspace domain.","x-speakeasy-group":"domains","x-speakeasy-name-override":"createEndpoint","parameters":[{"schema":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"required":true,"description":"Unique identifier for the domain.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"kind":{"type":"string","enum":["deployment_portal","workspace_packages","manager_api","deployment_url_base"]},"owner":{"type":"object","properties":{"type":{"type":"string","enum":["workspace","project","manager"]},"id":{"type":"string"}},"required":["type","id"]}},"required":["kind"]}}}},"responses":{"201":{"description":"Created endpoint.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"400":{"description":"Bad request.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Endpoint cleanup is still in progress.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains/{id}":{"get":{"operationId":"getDomain","description":"Get domain by ID.","x-speakeasy-group":"domains","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"required":true,"description":"Unique identifier for the domain.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved domain.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"delete":{"operationId":"deleteDomain","description":"Delete a workspace domain.","x-speakeasy-group":"domains","x-speakeasy-name-override":"delete","parameters":[{"schema":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"required":true,"description":"Unique identifier for the domain.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Domain deletion requested.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Domain is in use.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/domains/{id}/refresh":{"post":{"operationId":"refreshDomain","description":"Refresh workspace domain verification.","x-speakeasy-group":"domains","x-speakeasy-name-override":"refresh","parameters":[{"schema":{"type":"string","pattern":"dom_[0-9a-z]{28}$","description":"Unique identifier for the domain.","example":"dom_469m0agk8luj4s16sakmmpdd"},"required":true,"description":"Unique identifier for the domain.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Domain verification refresh requested.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DomainWithUsage"}}}},"403":{"description":"Forbidden.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/events":{"get":{"operationId":"listEvents","description":"Retrieve all events.","x-speakeasy-group":"events","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","description":"Filter events to a single deployment."},"required":false,"description":"Filter events to a single deployment.","name":"deploymentId","in":"query"},{"schema":{"type":"string","description":"Filter events to a single release."},"required":false,"description":"Filter events to a single release.","name":"releaseId","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["releaseCreatedAt"]},"description":"Optional fields to include: releaseCreatedAt"},"required":false,"description":"Optional fields to include: releaseCreatedAt","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved events.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/EventListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/events/{id}":{"get":{"operationId":"getEvent","description":"Retrieve an event by ID.","x-speakeasy-group":"events","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"event_[0-9a-zA-Z]{28}$","description":"Unique identifier for the event.","example":"event_MtSA24M3pWuAkQYxgZxuRI"},"required":true,"description":"Unique identifier for the event.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved event.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Event"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/join-tokens":{"get":{"operationId":"listMachinesJoinTokens","x-speakeasy-group":"machines","x-speakeasy-name-override":"listJoinTokens","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Join tokens for a Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMachinesJoinTokensResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createMachinesJoinToken","x-speakeasy-group":"machines","x-speakeasy-name-override":"createJoinToken","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Newly minted Machines join token. Existing tokens keep working; the token value is returned only once.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateMachinesJoinTokenResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/join-tokens/rotate":{"post":{"operationId":"rotateMachinesJoinToken","x-speakeasy-group":"machines","x-speakeasy-name-override":"rotateJoinToken","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Rotated Machines join token. Revokes all existing tokens, then mints a new one; the token value is returned only once.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RotateMachinesJoinTokenResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/join-tokens/{tokenId}":{"delete":{"operationId":"revokeMachinesJoinToken","x-speakeasy-group":"machines","x-speakeasy-name-override":"revokeJoinToken","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"tokenId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Machines join token revocation result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RevokeMachinesJoinTokenResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/inventory":{"get":{"operationId":"listMachinesInventory","x-speakeasy-group":"machines","x-speakeasy-name-override":"listInventory","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Machine inventory for a Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListMachinesInventoryResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/machines/{machineId}/drain":{"delete":{"operationId":"cancelMachinesMachineDrain","x-speakeasy-group":"machines","x-speakeasy-name-override":"cancelMachineDrain","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"machineId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Machines drain cancellation result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CancelMachinesMachineDrainResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"drainMachinesMachine","x-speakeasy-group":"machines","x-speakeasy-name-override":"drainMachine","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"machineId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DrainMachinesMachineRequest"}}}},"responses":{"200":{"description":"Machines drain request result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DrainMachinesMachineResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/machines/deployments/{id}/machines/{machineId}":{"delete":{"operationId":"removeMachinesMachine","x-speakeasy-group":"machines","x-speakeasy-name-override":"removeMachine","parameters":[{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Unique identifier for the deployment.","name":"id","in":"path"},{"schema":{"type":"string","minLength":1},"required":true,"name":"machineId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Machines remove request result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RemoveMachinesMachineResponse"}}}},"400":{"description":"Deployment is not a provisioned Machines deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands":{"get":{"operationId":"listCommands","description":"Retrieve commands. Use for dashboard analytics and command history.","x-speakeasy-group":"commands","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Filter by deployment ID","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":false,"description":"Filter by deployment ID","name":"deploymentId","in":"query"},{"schema":{"type":"string","enum":["PENDING_UPLOAD","PENDING","DISPATCHED","SUCCEEDED","FAILED","EXPIRED"],"description":"Filter by command state"},"required":false,"description":"Filter by command state","name":"state","in":"query"},{"schema":{"type":"string","maxLength":255,"description":"Filter by command name"},"required":false,"description":"Filter by command name","name":"name","in":"query"},{"schema":{"type":"string","maxLength":256,"description":"Search commands by name"},"required":false,"description":"Search commands by name","name":"search","in":"query"},{"schema":{"type":"string","nullable":true,"format":"date-time","description":"Filter commands created after this date (ISO 8601)"},"required":false,"description":"Filter commands created after this date (ISO 8601)","name":"createdAfter","in":"query"},{"schema":{"type":"string","nullable":true,"format":"date-time","description":"Filter commands created before this date (ISO 8601)"},"required":false,"description":"Filter commands created before this date (ISO 8601)","name":"createdBefore","in":"query"},{"schema":{"type":"array","items":{"type":"string","enum":["deployment","project"]},"description":"Optional fields to include: deployment, project"},"required":false,"description":"Optional fields to include: deployment, project","name":"include","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Retrieved commands.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/CommandListItemResponse"},"description":"Items in this page"},"nextCursor":{"type":"string","nullable":true,"description":"Cursor for the next page, null if last page"}},"required":["items","nextCursor"],"description":"Paginated response"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createCommand","description":"Create command metadata. Called by manager when processing commands. Returns project info for routing decisions.","x-speakeasy-group":"commands","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCommandRequest"}}}},"responses":{"201":{"description":"Command created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCommandResponse"}}}},"400":{"description":"Deployment is not ready or has no assigned manager.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Multiple command-capable targets; an explicit target is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"Deployment has no command-capable targets.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"The deployment manager is unavailable.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/names":{"get":{"operationId":"listCommandNames","description":"List distinct command names. Use for filter dropdowns in the dashboard.","x-speakeasy-group":"commands","x-speakeasy-name-override":"listNames","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","maxLength":255,"description":"Search command names (prefix match)"},"required":false,"description":"Search command names (prefix match)","name":"search","in":"query"}],"responses":{"200":{"description":"Distinct command names.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCommandNamesResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/deployments":{"get":{"operationId":"listCommandDeployments","description":"List distinct deployments that have commands, including deployment group info. Use for filter dropdowns in the dashboard.","x-speakeasy-group":"commands","x-speakeasy-name-override":"listDeployments","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","maxLength":255,"description":"Search deployment or deployment group names"},"required":false,"description":"Search deployment or deployment group names","name":"search","in":"query"}],"responses":{"200":{"description":"Distinct deployments that have commands.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ListCommandDeploymentsResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/target":{"get":{"operationId":"resolveCommandTarget","description":"Resolve which resource a command for this deployment would be addressed to, and how it would be delivered. Fails when the deployment has no command-capable resources, or more than one and no explicit target was named.","x-speakeasy-group":"commands","x-speakeasy-name-override":"resolveTarget","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Deployment to resolve the target for","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":true,"description":"Deployment to resolve the target for","name":"deploymentId","in":"query"},{"schema":{"type":"string","maxLength":255,"description":"Explicit resource id to resolve; must be a command-capable resource"},"required":false,"description":"Explicit resource id to resolve; must be a command-capable resource","name":"target","in":"query"}],"responses":{"200":{"description":"Resolved command target.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolvedCommandTarget"}}}},"404":{"description":"Deployment or target not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Multiple command-capable targets; an explicit target is required.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"422":{"description":"Deployment has no command-capable targets.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/{id}":{"patch":{"operationId":"updateCommand","description":"Update command state. Called by manager when command is dispatched or completes.","x-speakeasy-group":"commands","x-speakeasy-name-override":"update","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCommandRequest"}}}},"responses":{"200":{"description":"Command updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Command"}}}},"404":{"description":"Command not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"getCommand","description":"Retrieve a command by ID.","x-speakeasy-group":"commands","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved command.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Command"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/{id}/dispatch":{"post":{"operationId":"dispatchCommand","description":"Atomically mark a command DISPATCHED unless it is already terminal. Returns whether the transition was applied.","x-speakeasy-group":"commands","x-speakeasy-name-override":"dispatch","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DispatchCommandRequest"}}}},"responses":{"200":{"description":"Dispatch attempt result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DispatchCommandResponse"}}}},"404":{"description":"Command not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/{id}/complete":{"post":{"operationId":"completeCommand","description":"Atomically transition a command to a terminal state (SUCCEEDED, FAILED, or EXPIRED) unless it is already terminal. Returns whether the transition was applied.","x-speakeasy-group":"commands","x-speakeasy-name-override":"complete","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteCommandRequest"}}}},"responses":{"200":{"description":"Completion attempt result.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CompleteCommandResponse"}}}},"404":{"description":"Command not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/commands/{id}/increment-attempt":{"post":{"operationId":"incrementCommandAttempt","description":"Atomically increment the command's attempt counter and return the new value.","x-speakeasy-group":"commands","x-speakeasy-name-override":"incrementAttempt","parameters":[{"schema":{"type":"string","pattern":"cmd_[0-9a-zA-Z]{28}$","description":"Unique identifier for the command.","example":"cmd_2sxjXxvOYct7IohT3ukliAzf"},"required":true,"description":"Unique identifier for the command.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Attempt incremented.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/IncrementCommandAttemptResponse"}}}},"404":{"description":"Command not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/debug-sessions":{"get":{"operationId":"listDebugSessions","description":"Retrieve debug sessions for dashboard audit. Filters: project, deployment, state, mode.","x-speakeasy-group":"debugSessions","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":false,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Filter by deployment ID","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"required":false,"description":"Filter by deployment ID","name":"deploymentId","in":"query"},{"schema":{"allOf":[{"$ref":"#/components/schemas/DebugSessionState"},{"description":"Filter by session state"}]},"required":false,"description":"Filter by session state","name":"state","in":"query"},{"schema":{"type":"string","enum":["push","pull"],"description":"Filter by deployment model (push/pull). Joins against the parent deployment."},"required":false,"description":"Filter by deployment model (push/pull). Joins against the parent deployment.","name":"mode","in":"query"},{"schema":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Filter by cloud provider. Joins against the parent deployment."},"required":false,"description":"Filter by cloud provider. Joins against the parent deployment.","name":"provider","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":100,"default":20,"description":"Maximum number of items to return per page"},"required":false,"description":"Maximum number of items to return per page","name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor for pagination - omit for first page"},"required":false,"description":"Cursor for pagination - omit for first page","name":"cursor","in":"query"}],"responses":{"200":{"description":"Paginated debug sessions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugSessionListResponse"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"post":{"operationId":"createDebugSession","description":"Create a debug-session audit row. Called by the manager when a pull or push debug tunnel is opened. Workspace + project derived from deployment.","x-speakeasy-group":"debugSessions","x-speakeasy-name-override":"create","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateDebugSessionRequest"}}}},"responses":{"201":{"description":"Debug session created.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugSession"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/debug-sessions/{id}":{"patch":{"operationId":"updateDebugSession","description":"Update debug-session state. Called by manager on tunnel attach, close, or deadline expiry.","x-speakeasy-group":"debugSessions","x-speakeasy-name-override":"update","parameters":[{"schema":{"type":"string","pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Unique identifier for the debug session.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"required":true,"description":"Unique identifier for the debug session.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateDebugSessionRequest"}}}},"responses":{"200":{"description":"Debug session updated.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugSession"}}}},"404":{"description":"Debug session not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}},"get":{"operationId":"getDebugSession","description":"Retrieve a debug session by ID.","x-speakeasy-group":"debugSessions","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","pattern":"dbg_[0-9a-zA-Z]{28}$","description":"Unique identifier for the debug session.","example":"dbg_HOXmkmT9UPYlsnxqSNlEGoXL"},"required":true,"description":"Unique identifier for the debug session.","name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Retrieved debug session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DebugSession"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-info":{"get":{"operationId":"getDeploymentInfo","description":"Get deployment information for the deployment portal. Accepts both deployment-scoped and deployment-group-scoped API keys. Returns project information, package status/outputs, and either deployment or deployment group details depending on the token type. Poll this endpoint to check if packages are ready.","x-speakeasy-group":"deployment","x-speakeasy-name-override":"getInfo","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"required":false,"description":"Represents the target cloud platform.","name":"platform","in":"query"}],"responses":{"200":{"description":"Deployment information retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentInfo"}}}},"401":{"description":"Unauthorized — requires a deployment-scoped or deployment-group-scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment, deployment group, or project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-info/compute-plan":{"post":{"operationId":"planDeploymentCompute","description":"Plan deployment compute for the active release before stack preparation. The response contains recommended machine and scale choices for cloud compute pools.","x-speakeasy-group":"deployment","x-speakeasy-name-override":"planCompute","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure"]},"setupMethod":{"$ref":"#/components/schemas/DeploymentSetupMethod"},"region":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"type":"object","properties":{"pools":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["fixed"]},"machines":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","machines"]},{"type":"object","properties":{"mode":{"type":"string","enum":["autoscale"]},"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","min","max"]}]},"default":{}}}},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}}}},"required":["platform","setupMethod","stackSettings"]}}}},"responses":{"200":{"description":"Compute plan returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeploymentComputePlan"}}}},"401":{"description":"Unauthorized — requires a deployment-group scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment group, project, release, or manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/deployment-info/prepare-stack":{"post":{"operationId":"prepareDeploymentStack","description":"Prepare the active release stack for a deployment portal setup session. The response contains the generated stack shape plus setup compatibility metadata.","x-speakeasy-group":"deployment","x-speakeasy-name-override":"prepareStack","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"platform":{"type":"string","enum":["aws","gcp","azure"]},"setupMethod":{"$ref":"#/components/schemas/DeploymentSetupMethod"},"region":{"type":"string"},"stackSettings":{"type":"object","properties":{"compute":{"type":"object","properties":{"pools":{"type":"object","additionalProperties":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["fixed"]},"machines":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","machines"]},{"type":"object","properties":{"mode":{"type":"string","enum":["autoscale"]},"min":{"type":"integer","minimum":0},"max":{"type":"integer","minimum":0},"machine":{"type":"string"}},"required":["mode","min","max"]}]},"default":{}}}},"deploymentModel":{"type":"string","enum":["push","pull"],"description":"Deployment model: how updates are delivered to the remote environment."},"domains":{"oneOf":[{"type":"object","properties":{"customDomains":{"type":"object","nullable":true,"properties":{},"additionalProperties":{"type":"object","properties":{"certificate":{"type":"object","properties":{"aws":{"oneOf":[{"type":"object","properties":{"certificateArn":{"type":"string"}},"required":["certificateArn"]},{"nullable":true}]},"azure":{"oneOf":[{"type":"object","properties":{"keyVaultCertificateId":{"type":"string"},"keyVaultResourceId":{"type":"string","nullable":true}},"required":["keyVaultCertificateId"]},{"nullable":true}]},"gcp":{"oneOf":[{"type":"object","properties":{"certificateName":{"type":"string"}},"required":["certificateName"]},{"nullable":true}]},"kubernetes":{"oneOf":[{"type":"object","properties":{"tlsSecretRef":{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."}},"required":["tlsSecretRef"]},{"nullable":true}]}},"description":"Platform-specific certificate references for custom domains."},"domain":{"type":"string","description":"Fully qualified domain name to use."}},"required":["certificate","domain"],"description":"Custom domain configuration for a single resource."},"description":"Custom domain configuration per resource ID."},"publicEndpointTarget":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["machineAddresses"]}},"required":["mode"]},{"type":"object","properties":{"cnameTarget":{"type":"string","description":"DNS name or URL for the external load balancer."},"mode":{"type":"string","enum":["loadBalancer"]}},"required":["cnameTarget","mode"]},{"nullable":true}]}},"description":"Domain configuration for the stack.\n\nWhen `custom_domains` is set, the specified resources use customer-provided\ndomains and certificates. Otherwise, Alien auto-generates domains."},{"nullable":true}]},"externalBindings":{"type":"object","nullable":true,"properties":{},"description":"External bindings for pre-existing infrastructure.\nAllows using existing resources (MinIO, Redis, shared Container Apps\nEnvironment, etc.) instead of having Alien provision them.\nRequired for Kubernetes platform, optional for cloud platforms."},"heartbeats":{"type":"string","enum":["off","on"],"description":"How heartbeat health checks are handled."},"kubernetes":{"oneOf":[{"type":"object","properties":{"cluster":{"oneOf":[{"type":"object","properties":{"cloud":{"oneOf":[{"type":"object","properties":{"accountId":{"type":"string","nullable":true},"clusterId":{"type":"string","nullable":true},"clusterName":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"subscriptionId":{"type":"string","nullable":true}},"description":"Optional provider-specific identity for a cloud-backed Kubernetes cluster."},{"nullable":true}]},"namespace":{"type":"string","nullable":true,"description":"Namespace where the Alien chart and application resources run."},"ownership":{"type":"string","enum":["managed","existing","external"],"description":"Ownership model for the Kubernetes cluster."}},"required":["ownership"],"description":"Kubernetes cluster setup settings."},{"nullable":true}]},"exposure":{"oneOf":[{"type":"object","properties":{"mode":{"type":"string","enum":["disabled"]}},"required":["mode"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"mode":{"type":"string","enum":["generated"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","mode","route"]},{"type":"object","properties":{"certificate":{"oneOf":[{"allOf":[{"type":"object","properties":{"namespace":{"type":"string","nullable":true,"description":"Secret namespace. Defaults to the release namespace when omitted."},"secretName":{"type":"string","description":"Secret name."}},"required":["secretName"],"description":"Namespace-scoped Kubernetes TLS Secret reference."},{"type":"object","properties":{"mode":{"type":"string","enum":["tlsSecretRef"]}},"required":["mode"]}]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedAcmImport"]},"region":{"type":"string","nullable":true,"description":"ACM region. Defaults to the deployment region when omitted."},"tags":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Tags applied to runtime-imported ACM certificates."}},"required":["mode"]},{"type":"object","properties":{"certificateArn":{"type":"string","description":"Existing ACM certificate ARN."},"mode":{"type":"string","enum":["awsAcmArn"]}},"required":["certificateArn","mode"]},{"type":"object","properties":{"mode":{"type":"string","enum":["managedTlsSecret"]},"secretNameTemplate":{"type":"string","description":"Secret name template. Runtime may substitute resource/deployment tokens."}},"required":["mode","secretNameTemplate"]},{"type":"object","properties":{"mode":{"type":"string","enum":["none"]}},"required":["mode"]}],"description":"Certificate publication or reference mode for Kubernetes public endpoints."},"domain":{"type":"string","description":"Hostname routed by the Kubernetes public endpoint."},"mode":{"type":"string","enum":["custom"]},"route":{"oneOf":[{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example `eks.amazonaws.com/alb`."},"ingressClassName":{"type":"string","description":"`spec.ingressClassName` for generated Ingresses."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["ingressClassName"],"description":"Shared Ingress route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["ingress"]}},"required":["routeApi"]}]},{"allOf":[{"type":"object","properties":{"annotations":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Annotations applied to route objects."},"controller":{"type":"string","nullable":true,"description":"Route controller identifier, for example a cloud Gateway controller."},"gatewayClassName":{"type":"string","description":"GatewayClass selected for generated Gateways."},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"},"description":"Labels applied to route objects."},"listenerPort":{"type":"integer","minimum":0,"description":"Listener port, usually 443."},"provider":{"oneOf":[{"type":"object","properties":{"ipAddressType":{"type":"string","nullable":true,"description":"Optional ALB IP address type, such as `dualstack`."},"provider":{"type":"string","enum":["awsAlb"]},"scheme":{"type":"string","description":"Internet-facing or internal ALB scheme."},"subnetIds":{"type":"array","items":{"type":"string"},"description":"Explicit subnet IDs when the profile cannot rely on controller discovery."},"targetType":{"type":"string","description":"ALB target type, usually `ip`."}},"required":["provider","scheme","targetType"]},{"type":"object","properties":{"provider":{"type":"string","enum":["gkeGateway"]},"staticAddressName":{"type":"string","nullable":true,"description":"Optional static address name for the Gateway frontend."}},"required":["provider"]},{"type":"object","properties":{"albName":{"type":"string","nullable":true,"description":"Optional ALB name when using BYO Application Gateway resources."},"albNamespace":{"type":"string","nullable":true,"description":"Optional ALB namespace when using BYO Application Gateway resources."},"frontend":{"type":"string","description":"Public or internal frontend exposure."},"provider":{"type":"string","enum":["azureApplicationGatewayForContainers"]}},"required":["frontend","provider"]},{"nullable":true}]}},"required":["gatewayClassName","listenerPort"],"description":"Shared Gateway API route profile values."},{"type":"object","properties":{"routeApi":{"type":"string","enum":["gateway"]}},"required":["routeApi"]}]}],"description":"Kubernetes route API selected for public endpoints."}},"required":["certificate","domain","mode","route"]},{"nullable":true}]}},"description":"Kubernetes runtime substrate configuration.\n\nThis controls how setup chooses the cluster backing `Platform::Kubernetes`\ndeployments. When omitted, cloud-backed Kubernetes deployments default to a\nmanaged cluster and generic/on-prem Kubernetes defaults to an external\ncluster."},{"nullable":true}]},"network":{"oneOf":[{"type":"object","properties":{"type":{"type":"string","enum":["use-default"]}},"required":["type"]},{"type":"object","properties":{"availability_zones":{"type":"integer","minimum":0,"description":"Number of availability zones (default: 2)."},"cidr":{"type":"string","nullable":true,"description":"VPC/VNet CIDR block. If not specified, auto-generated from stack ID\nto reduce conflicts (e.g., \"10.{hash}.0.0/16\")."},"type":{"type":"string","enum":["create"]}},"required":["type"]},{"type":"object","properties":{"private_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of private subnets"},"public_subnet_ids":{"type":"array","items":{"type":"string"},"description":"IDs of public subnets (required for public ingress)"},"security_group_ids":{"type":"array","items":{"type":"string"},"description":"Optional security group IDs to use"},"type":{"type":"string","enum":["byo-vpc-aws"]},"vpc_id":{"type":"string","description":"The ID of the existing VPC"}},"required":["private_subnet_ids","public_subnet_ids","type","vpc_id"]},{"type":"object","properties":{"network_name":{"type":"string","description":"The name of the existing VPC network"},"region":{"type":"string","description":"The region of the subnet"},"subnet_name":{"type":"string","description":"The name of the subnet to use"},"type":{"type":"string","enum":["byo-vpc-gcp"]}},"required":["network_name","region","subnet_name","type"]},{"type":"object","properties":{"application_gateway_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated classic Application Gateway subnet within the VNet."},"private_endpoint_subnet_name":{"type":"string","nullable":true,"description":"Name of the dedicated subnet that hosts Private Endpoints (e.g. for a\nPostgres Flexible Server). A Private Endpoint must not share the private\nsubnet, which is already claimed by the Container Apps environment's\n`infrastructure_subnet_id`. Required only when the stack contains a\nPostgres resource; otherwise unused."},"private_subnet_name":{"type":"string","description":"Name of the private subnet within the VNet"},"public_subnet_name":{"type":"string","description":"Name of the public subnet within the VNet"},"type":{"type":"string","enum":["byo-vnet-azure"]},"vnet_resource_id":{"type":"string","description":"The full resource ID of the existing VNet"}},"required":["private_subnet_name","public_subnet_name","type","vnet_resource_id"]},{"nullable":true}]},"telemetry":{"type":"string","enum":["off","auto","approval-required"],"description":"How telemetry (logs, metrics, traces) is handled."},"updates":{"type":"string","enum":["auto","approval-required"],"description":"How updates are delivered to the deployment."}}}},"required":["platform","setupMethod","stackSettings"]}}}},"responses":{"200":{"description":"Prepared stack returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PreparedDeploymentStack"}}}},"401":{"description":"Unauthorized — requires a deployment-group scoped API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Deployment group, project, release, or manager not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/slack/install-url":{"post":{"operationId":"slackIntegrationInstallUrl","description":"Generate the Slack OAuth consent URL for this workspace.","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"installUrl","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"OAuth URL the dashboard should redirect the user to.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackInstallUrlResponse"}}}},"500":{"description":"Server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/slack/status":{"get":{"operationId":"slackIntegrationStatus","description":"Return the Slack install for this workspace (if any).","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"status","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Status.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackIntegrationStatus"}}}}}}},"/v1/integrations/slack/channels":{"get":{"operationId":"slackIntegrationChannels","description":"List public Slack channels for this workspace's install. Used by the dashboard's notification-channel picker.","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"listChannels","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Public channels.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackChannelsResponse"}}}},"400":{"description":"Workspace not connected to Slack.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/slack/notification-channel":{"put":{"operationId":"slackIntegrationSetNotificationChannel","description":"Configure which Slack channel receives ai-agent monitor reports.","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"setNotificationChannel","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackNotificationChannelRequest"}}}},"responses":{"200":{"description":"Channel saved.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SlackNotificationChannelResponse"}}}},"400":{"description":"Not connected, or join failed.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/integrations/slack/installation":{"delete":{"operationId":"slackIntegrationUninstall","description":"Uninstall the Slack integration for this workspace. Revokes the bot token at Slack and deletes the row.","x-speakeasy-group":"slackIntegration","x-speakeasy-name-override":"uninstall","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"204":{"description":"Uninstalled."}}}},"/v1/agent-sessions":{"get":{"operationId":"listAgentSessions","description":"List ai-agent monitor sessions for this workspace. Newest first, capped at 50.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Sessions.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionListResponse"}}}}}}},"/v1/agent-sessions/{id}":{"get":{"operationId":"getAgentSession","description":"Retrieve one ai-agent monitor session by id.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Session.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionDetail"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/agent-sessions/{id}/events":{"get":{"operationId":"listAgentSessionEvents","description":"Incrementally read a session's event log (steps, tool calls, report deltas, approvals, status transitions). Pass the previous response's `latestSeq` as `after` to fetch only new events.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"events","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"integer","nullable":true,"minimum":0,"default":0},"required":false,"name":"after","in":"query"},{"schema":{"type":"integer","minimum":1,"maximum":500,"default":200},"required":false,"name":"limit","in":"query"}],"responses":{"200":{"description":"Events after the cursor, oldest first.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionEventsResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/agent-sessions/{id}/approve":{"post":{"operationId":"approveAgentSession","description":"Approve a halted ai-agent monitor session. Proxies to the ai-agent service, minting a fresh CLI session for the caller so the ai-agent's own auth applies.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"approve","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Already resumed / no-op.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionApproveResponse"}}}},"202":{"description":"Approved; resume enqueued.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionApproveResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"AI agent service is not configured.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/agent-sessions/{id}/stop":{"post":{"operationId":"stopAgentSession","description":"Stop (cancel) a running, queued, or halted ai-agent monitor session. Proxies to the ai-agent service, minting a fresh CLI session for the caller so the ai-agent's own auth applies. Idempotent — stopping an already-terminal session is a 200 no-op.","x-speakeasy-group":"agentSessions","x-speakeasy-name-override":"stop","parameters":[{"schema":{"type":"string"},"required":true,"name":"id","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Already terminal / no-op.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionStopResponse"}}}},"202":{"description":"Cancel accepted; session stopped.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/AgentSessionStopResponse"}}}},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"AI agent service is not configured.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/list":{"post":{"operationId":"syncList","description":"List full deployment records for manager operational loops. This endpoint is intentionally separate from the public deployments list, which returns lightweight UI rows.","x-speakeasy-group":"sync","x-speakeasy-name-override":"list","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncListRequest"}}}},"responses":{"200":{"description":"Full deployment records returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncListResponse"}}}},"400":{"description":"Bad request - invalid manager or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/context":{"post":{"operationId":"syncContext","description":"Get computed deployment state and configuration for a manager-side operation without acquiring the deployment reconciliation lock.","x-speakeasy-group":"sync","x-speakeasy-name-override":"context","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncContextRequest"}}}},"responses":{"200":{"description":"Computed deployment context returned successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncAcquireResponseDeployment"}}}},"404":{"description":"Deployment not found or not assigned to this manager.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Failed to build deployment context.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/acquire":{"post":{"operationId":"syncAcquire","description":"Acquire a batch of deployments for processing. Used by Manager to atomically lock deployments matching filters. Each deployment in the batch must be released after processing.","x-speakeasy-group":"sync","x-speakeasy-name-override":"acquire","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncAcquireRequest"}}}},"responses":{"200":{"description":"Deployments acquired successfully (empty arrays if none available). Failures indicate deployments that were locked but failed during context building - their locks have been released.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncAcquireResponse"}}}},"400":{"description":"Bad request - invalid manager or filters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/reconcile":{"post":{"operationId":"syncReconcile","description":"Reconcile deployment state. Push model requests that include a session verify lock ownership. Pull model state reports are accepted as authz-gated agent progress even when they carry an agent-sync session. Accepts full DeploymentState after step() execution.","x-speakeasy-group":"sync","x-speakeasy-name-override":"reconcile","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncReconcileRequest"}}}},"responses":{"200":{"description":"State reconciled successfully. If target is present, continue deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncReconcileResponse"}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"Deployment locked (pull) or session mismatch (push).","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/renew":{"post":{"operationId":"syncRenew","x-speakeasy-group":"sync","x-speakeasy-name-override":"renew","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncRenewRequest"}}}},"responses":{"200":{"description":"Renewal processed. Inspect `leases` for per-deployment outcomes; a lost lease is reported there rather than failing the whole batch.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean","description":"True when every requested deployment was renewed."},"leases":{"type":"array","items":{"type":"object","properties":{"deploymentId":{"type":"string","pattern":"dep_[0-9a-z]{28}$","description":"Unique identifier for the deployment.","example":"dep_0c29fq4a2yjb7kx3smwdgxlc"},"renewed":{"type":"boolean","description":"False when this session no longer holds a live lease."},"leaseExpiresAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["deploymentId","renewed","leaseExpiresAt"]},"description":"Per-deployment renewal outcome."}},"required":["success","leases"]}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"409":{"description":"The session no longer owns the deployment.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/sync/release":{"post":{"operationId":"syncRelease","description":"Release a deployment lock. Must be called after processing an acquired deployment, even if processing failed. This is critical to avoid deadlocks.","x-speakeasy-group":"sync","x-speakeasy-name-override":"release","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SyncReleaseRequest"}}}},"responses":{"200":{"description":"Lock released successfully.","content":{"application/json":{"schema":{"type":"object","properties":{"success":{"type":"boolean"}},"required":["success"]}}}},"404":{"description":"Deployment not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resources":{"get":{"operationId":"listInventory","x-speakeasy-group":"resources","x-speakeasy-name-override":"listInventory","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string"},"required":false,"name":"deploymentGroupId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"deploymentId","in":"query"}],"responses":{"200":{"description":"Unified managed and observed resource inventory rows.","content":{"application/json":{"schema":{"type":"object","properties":{"resources":{"type":"array","items":{"oneOf":[{"type":"object","properties":{"resourceType":{"type":"string"},"resourceId":{"type":"string"},"name":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"deploymentCount":{"type":"integer"},"attentionCount":{"type":"integer"},"lastObservedAt":{"type":"string","format":"date-time"},"source":{"type":"string","enum":["managed"]},"deploymentId":{"type":"string"},"deploymentName":{"type":"string"}},"required":["resourceType","resourceId","name","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","deploymentCount","attentionCount","lastObservedAt","source","deploymentId","deploymentName"]},{"type":"object","properties":{"source":{"type":"string","enum":["observed"]},"deploymentId":{"type":"string"},"deploymentName":{"type":"string"},"deploymentGroupId":{"type":"string","nullable":true},"deploymentGroupName":{"type":"string","nullable":true},"resourceType":{"type":"string"},"resourceId":{"type":"string"},"name":{"type":"string"},"rawKind":{"type":"string"},"alienResourceId":{"type":"string","nullable":true},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"deploymentCount":{"type":"integer"},"attentionCount":{"type":"integer"},"lastObservedAt":{"type":"string","format":"date-time"}},"required":["source","deploymentId","deploymentName","deploymentGroupId","deploymentGroupName","resourceType","resourceId","name","rawKind","alienResourceId","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","deploymentCount","attentionCount","lastObservedAt"]}]}}},"required":["resources"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resources/{area}":{"get":{"operationId":"listResourceOverview","x-speakeasy-group":"resources","x-speakeasy-name-override":"listOverview","parameters":[{"schema":{"type":"string","enum":["container","worker","daemon"]},"required":true,"name":"area","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string"},"required":false,"name":"deploymentGroupId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"deploymentId","in":"query"}],"responses":{"200":{"description":"Compute resource overview rows from latest heartbeats.","content":{"application/json":{"schema":{"type":"object","properties":{"resources":{"type":"array","items":{"type":"object","properties":{"resourceType":{"type":"string"},"resourceId":{"type":"string"},"name":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"deploymentCount":{"type":"integer"},"attentionCount":{"type":"integer"},"lastObservedAt":{"type":"string","format":"date-time"}},"required":["resourceType","resourceId","name","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","deploymentCount","attentionCount","lastObservedAt"]}}},"required":["resources"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resources/{area}/{resourceId}/deployments":{"get":{"operationId":"listResourceDeployments","x-speakeasy-group":"resources","x-speakeasy-name-override":"listDeployments","parameters":[{"schema":{"type":"string","enum":["container","worker","daemon"]},"required":true,"name":"area","in":"path"},{"schema":{"type":"string"},"required":true,"name":"resourceId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}},{"schema":{"type":"string"},"required":false,"name":"deploymentGroupId","in":"query"},{"schema":{"type":"string"},"required":false,"name":"deploymentId","in":"query"}],"responses":{"200":{"description":"Deployments where the resource is installed.","content":{"application/json":{"schema":{"type":"object","properties":{"resourceType":{"type":"string"},"resourceId":{"type":"string"},"deployments":{"type":"array","items":{"type":"object","properties":{"deploymentId":{"type":"string"},"deploymentName":{"type":"string"},"deploymentGroupId":{"type":"string","nullable":true},"deploymentGroupName":{"type":"string","nullable":true},"resourceType":{"type":"string"},"resourceId":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"observedAt":{"type":"string","format":"date-time"}},"required":["deploymentId","deploymentName","deploymentGroupId","deploymentGroupName","resourceType","resourceId","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","observedAt"]}}},"required":["resourceType","resourceId","deployments"]}}}},"404":{"description":"Project not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resources/{area}/deployments/{deploymentId}/{resourceId}":{"get":{"operationId":"getResourceDeploymentDetail","x-speakeasy-group":"resources","x-speakeasy-name-override":"getDeploymentDetail","parameters":[{"schema":{"type":"string","enum":["container","worker","daemon"]},"required":true,"name":"area","in":"path"},{"schema":{"type":"string"},"required":true,"name":"deploymentId","in":"path"},{"schema":{"type":"string"},"required":true,"name":"resourceId","in":"path"},{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"$ref":"#/components/schemas/ProjectIDOrNameQueryParam"},"required":true,"description":"Filter by project ID or name.","name":"project","in":"query","examples":{"projectName":{"value":"my-project"},"projectId":{"value":"prj_mcytp6z3j91f7tn5ryqsfwtr"}}}],"responses":{"200":{"description":"Latest heartbeat detail for one compute resource deployment.","content":{"application/json":{"schema":{"type":"object","properties":{"deployment":{"type":"object","properties":{"deploymentId":{"type":"string"},"deploymentName":{"type":"string"},"deploymentGroupId":{"type":"string","nullable":true},"deploymentGroupName":{"type":"string","nullable":true},"resourceType":{"type":"string"},"resourceId":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"health":{"type":"string"},"lifecycle":{"type":"string"},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"providerStale":{"type":"boolean"},"platformStale":{"type":"boolean"},"desiredCount":{"type":"integer","nullable":true},"currentCount":{"type":"integer","nullable":true},"readyCount":{"type":"integer","nullable":true},"observedAt":{"type":"string","format":"date-time"},"desiredImage":{"type":"string","nullable":true}},"required":["deploymentId","deploymentName","deploymentGroupId","deploymentGroupName","resourceType","resourceId","backend","controllerPlatform","health","lifecycle","message","partial","providerStale","platformStale","desiredCount","currentCount","readyCount","observedAt","desiredImage"]},"heartbeat":{"oneOf":[{"type":"object","properties":{"status":{"type":"string","enum":["available"]},"deploymentId":{"type":"string"},"resourceId":{"type":"string"},"resourceType":{"type":"string"},"backend":{"type":"string"},"controllerPlatform":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"staleAt":{"type":"string","format":"date-time"},"platformStale":{"type":"boolean"},"heartbeat":{"type":"object","properties":{"backend":{"type":"string","enum":["aws","gcp","azure","kubernetes","local","managed","external","test"]},"controllerPlatform":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Represents the target cloud platform."},"data":{"oneOf":[{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"blockPublicAcls":{"type":"boolean","nullable":true},"blockPublicPolicy":{"type":"boolean","nullable":true},"bucketAclPresent":{"type":"boolean","nullable":true},"bucketLocation":{"type":"string","nullable":true},"bucketPolicyPresent":{"type":"boolean","nullable":true},"encryptionConfigPresent":{"type":"boolean"},"encryptionEnabled":{"type":"boolean","nullable":true},"ignorePublicAcls":{"type":"boolean","nullable":true},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"publicAccessBlockPresent":{"type":"boolean"},"region":{"type":"string","nullable":true},"restrictPublicBuckets":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"versioningEnabled":{"type":"boolean","nullable":true},"versioningStatus":{"type":"string","nullable":true}},"required":["encryptionConfigPresent","lifecyclePresent","name","publicAccessBlockPresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsS3"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"bucketId":{"type":"string","nullable":true},"defaultKmsKeyName":{"type":"string","nullable":true},"encryptionConfigPresent":{"type":"boolean"},"lifecyclePresent":{"type":"boolean"},"lifecycleRuleCount":{"type":"integer","nullable":true,"minimum":0},"location":{"type":"string","nullable":true},"locationType":{"type":"string","nullable":true},"name":{"type":"string"},"publicAccessPrevention":{"type":"string","nullable":true},"retentionPeriod":{"type":"string","nullable":true},"retentionPolicyEffectiveTime":{"type":"string","nullable":true},"retentionPolicyIsLocked":{"type":"boolean","nullable":true},"softDeleteEffectiveTime":{"type":"string","nullable":true},"softDeleteRetentionDurationSeconds":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"storageClass":{"type":"string","nullable":true},"uniformBucketLevelAccessEnabled":{"type":"boolean","nullable":true},"uniformBucketLevelAccessLockedTime":{"type":"string","nullable":true},"versioningEnabled":{"type":"boolean","nullable":true}},"required":["encryptionConfigPresent","lifecyclePresent","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudStorage"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessTier":{"type":"string","nullable":true},"accountKind":{"type":"string","nullable":true},"allowBlobPublicAccess":{"type":"boolean","nullable":true},"blobDeleteRetentionDays":{"type":"integer","nullable":true,"minimum":0},"blobDeleteRetentionEnabled":{"type":"boolean","nullable":true},"blobEncryptionEnabled":{"type":"boolean","nullable":true},"blobVersioningEnabled":{"type":"boolean","nullable":true},"changeFeedEnabled":{"type":"boolean","nullable":true},"changeFeedRetentionDays":{"type":"integer","nullable":true,"minimum":0},"containerDeleteRetentionDays":{"type":"integer","nullable":true,"minimum":0},"containerDeleteRetentionEnabled":{"type":"boolean","nullable":true},"containerPublicAccess":{"type":"string","nullable":true},"encryptionKeySource":{"type":"string","nullable":true},"fileEncryptionEnabled":{"type":"boolean","nullable":true},"location":{"type":"string","nullable":true},"name":{"type":"string"},"primaryLocation":{"type":"string","nullable":true},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"queueEncryptionEnabled":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"secondaryLocation":{"type":"string","nullable":true},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"statusOfPrimary":{"type":"string","nullable":true},"statusOfSecondary":{"type":"string","nullable":true},"storageAccountName":{"type":"string","nullable":true},"tableEncryptionEnabled":{"type":"boolean","nullable":true}},"required":["name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureBlob"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"isDirectory":{"type":"boolean","nullable":true},"modifiedAt":{"type":"string","nullable":true,"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["path","pathExists","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["storage"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"codeSha256":{"type":"string","nullable":true},"functionName":{"type":"string"},"functionUrlAuthType":{"type":"string","nullable":true},"functionUrlCorsPresent":{"type":"boolean"},"lastModified":{"type":"string","nullable":true},"lastUpdateStatus":{"type":"string","nullable":true},"lastUpdateStatusReason":{"type":"string","nullable":true},"lastUpdateStatusReasonCode":{"type":"string","nullable":true},"layerCount":{"type":"integer","minimum":0},"memorySizeMb":{"type":"integer","nullable":true},"packageType":{"type":"string","nullable":true},"revisionId":{"type":"string","nullable":true},"runtime":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"stateReason":{"type":"string","nullable":true},"stateReasonCode":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"timeoutSeconds":{"type":"integer","nullable":true},"triggerCount":{"type":"integer","minimum":0},"version":{"type":"string","nullable":true}},"required":["functionName","functionUrlCorsPresent","layerCount","status","triggerCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsLambda"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"containerImage":{"type":"string","nullable":true},"cpuLimit":{"type":"string","nullable":true},"generation":{"type":"integer","nullable":true},"latestCreatedRevision":{"type":"string","nullable":true},"latestReadyRevision":{"type":"string","nullable":true},"maxInstanceCount":{"type":"integer","nullable":true},"memoryLimit":{"type":"string","nullable":true},"minInstanceCount":{"type":"integer","nullable":true},"observedGeneration":{"type":"integer","nullable":true},"region":{"type":"string","nullable":true},"service":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"trafficCount":{"type":"integer","minimum":0},"uri":{"type":"string","nullable":true},"urls":{"type":"array","items":{"type":"string"}}},"required":["service","status","trafficCount","urls"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudRun"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"appName":{"type":"string"},"cpu":{"type":"number","nullable":true},"environmentName":{"type":"string","nullable":true},"ingressFqdn":{"type":"string","nullable":true},"maxReplicas":{"type":"integer","nullable":true},"memory":{"type":"string","nullable":true},"minReplicas":{"type":"integer","nullable":true},"provisioningState":{"type":"string","nullable":true},"revision":{"type":"string","nullable":true},"runningStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["appName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerApps"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"triggerCount":{"type":"integer","minimum":0},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"]}},"required":["events","name","namespace","pods","replicas","status","triggerCount","workloadKind"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"imagePathPresent":{"type":"boolean"},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pid":{"type":"integer","nullable":true,"minimum":0},"process":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"readinessProbeOk":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"triggerCount":{"type":"integer","minimum":0}},"required":["commandSupported","events","imagePathPresent","status","triggerCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["worker"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"attentionCount":{"type":"integer","minimum":0},"containerId":{"type":"string"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"image":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"observedImage":{"type":"string","nullable":true},"replicaUnits":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"schedulingMode":{"type":"string","enum":["replicated","stateful","daemon"]},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["attentionCount","containerId","events","replicaUnits","replicas","schedulingMode","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["horizonPlatform"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]},"workloadKind":{"type":"string","enum":["deployment","statefulSet","daemonSet","replicaSet","pod"]}},"required":["events","name","namespace","pods","replicas","status","workloadKind"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"bindMountCount":{"type":"integer","minimum":0},"containerId":{"type":"string","nullable":true},"containerUnit":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"image":{"type":"string","nullable":true},"localUrl":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string","nullable":true},"portCount":{"type":"integer","minimum":0},"restartCount":{"type":"integer","nullable":true,"minimum":0},"runtimeReachable":{"type":"boolean"},"runtimeStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["bindMountCount","events","portCount","runtimeReachable","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["container"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aws"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcp"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azure"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"assignedMachines":{"type":"integer","minimum":0},"capacityGroup":{"type":"string"},"commandSupported":{"type":"boolean"},"daemonInstances":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"ip":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"message":{"type":"string","nullable":true},"metricsHealthy":{"type":"boolean","nullable":true},"metricsLastUpdated":{"type":"string","nullable":true},"metricsStatus":{"type":"string","nullable":true},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"phase":{"type":"string","nullable":true},"ready":{"type":"boolean"},"reason":{"type":"string","nullable":true},"replicaId":{"type":"string"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"string","nullable":true},"terminatedReason":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ready","replicaId"]}},"daemonName":{"type":"string"},"desiredMachines":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"eventId":{"type":"string","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"details":{"oneOf":[{"nullable":true},{"nullable":true}]},"id":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"machineId":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"replicaId":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"healthyInstances":{"type":"integer","minimum":0},"horizonClusterId":{"type":"string"},"horizonStatus":{"type":"string"},"horizonStatusMessage":{"type":"string","nullable":true},"horizonStatusReason":{"type":"string","nullable":true},"latestUpdateTimestamp":{"type":"string"},"observedImage":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"unavailableInstances":{"type":"integer","minimum":0}},"required":["assignedMachines","capacityGroup","commandSupported","daemonInstances","desiredMachines","events","healthyInstances","horizonClusterId","horizonStatus","latestUpdateTimestamp","status","unavailableInstances"]},{"type":"object","properties":{"backend":{"type":"string","enum":["machines"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string"},"pods":{"type":"array","items":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodeName":{"type":"string","nullable":true},"ownerReferences":{"type":"array","items":{"type":"object","properties":{"controller":{"type":"boolean"},"kind":{"type":"string"},"name":{"type":"string"},"uid":{"type":"string"}},"required":["controller","kind","name","uid"]}},"phase":{"type":"string","nullable":true},"podIp":{"type":"string","nullable":true},"ready":{"type":"boolean"},"restartCount":{"type":"integer","minimum":0},"terminatedReason":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true},"waitingReason":{"type":"string","nullable":true}},"required":["name","ownerReferences","ready","restartCount"]}},"replicas":{"type":"object","properties":{"available":{"type":"integer","nullable":true,"minimum":0},"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"misscheduled":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0},"updated":{"type":"integer","nullable":true,"minimum":0}}},"restarts":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workload":{"oneOf":[{"type":"object","properties":{"availableReplicas":{"type":"integer","nullable":true,"minimum":0},"conditions":{"type":"array","items":{"type":"object","properties":{"lastTransitionTime":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"desiredGeneration":{"type":"integer","nullable":true},"desiredReplicas":{"type":"integer","nullable":true,"minimum":0},"observedGeneration":{"type":"integer","nullable":true},"readyReplicas":{"type":"integer","nullable":true,"minimum":0},"rolloutReason":{"type":"string","nullable":true},"updatedReplicas":{"type":"integer","nullable":true,"minimum":0}},"required":["conditions"]},{"nullable":true}]}},"required":["commandSupported","events","name","namespace","pods","replicas","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetes"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"commandSupported":{"type":"boolean"},"daemonInstance":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"kind":{"type":"string","enum":["container","process","daemon"]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"phase":{"type":"string","nullable":true},"pid":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"boolean"},"restartCount":{"type":"integer","nullable":true,"minimum":0},"unitId":{"type":"string"}},"required":["kind","name","ready","unitId"]},{"nullable":true}]},"daemonName":{"type":"string"},"events":{"type":"array","items":{"type":"object","properties":{"kind":{"type":"string"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"severity":{"type":"string","enum":["info","warning","error"]},"subject":{"oneOf":[{"type":"object","properties":{"id":{"type":"string","nullable":true},"kind":{"type":"string"},"name":{"type":"string","nullable":true}},"required":["kind"]},{"nullable":true}]},"timestamp":{"type":"string","format":"date-time"}},"required":["kind","message","severity","timestamp"]}},"exitReason":{"type":"string","nullable":true},"imagePathPresent":{"type":"boolean"},"pid":{"type":"integer","nullable":true,"minimum":0},"restartCount":{"type":"integer","nullable":true,"minimum":0},"runtimeId":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["commandSupported","events","imagePathPresent","runtimeId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["daemon"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aws"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcp"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"providerFleets":{"type":"array","items":{"type":"object","properties":{"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"groupId":{"type":"string"},"location":{"type":"string","nullable":true},"providerId":{"type":"string"}},"required":["currentMachines","desiredMachines","groupId","providerId"]}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","name","nodes","providerFleets","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azure"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"backendClusterId":{"type":"string","nullable":true},"capacityGroups":{"type":"array","items":{"type":"object","properties":{"capacityBlocker":{"oneOf":[{"type":"object","properties":{"category":{"type":"string","enum":["quota","capacity","allocation","other"]},"message":{"type":"string"},"observedAt":{"type":"string","format":"date-time"},"providerCode":{"type":"string","nullable":true},"providerReference":{"type":"string","nullable":true}},"required":["category","message","observedAt"]},{"nullable":true}]},"currentMachines":{"type":"integer","minimum":0},"desiredMachines":{"type":"integer","minimum":0},"drainProgress":{"oneOf":[{"type":"object","properties":{"blockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"force":{"type":"boolean"},"machineId":{"type":"string"},"replicaCount":{"type":"integer"},"stalled":{"type":"boolean"},"status":{"type":"string","enum":["draining","drained","terminating"]}},"required":["force","machineId","replicaCount","stalled","status"]},{"nullable":true}]},"groupId":{"type":"string"},"instanceType":{"type":"string","nullable":true},"maxMachines":{"type":"integer","nullable":true,"minimum":0},"minMachines":{"type":"integer","nullable":true,"minimum":0},"recommendation":{"oneOf":[{"type":"object","properties":{"desiredMachines":{"type":"integer","minimum":0},"reason":{"type":"string","nullable":true},"unschedulableReplicas":{"type":"integer","nullable":true,"minimum":0},"utilization":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}},"required":["desiredMachines"]},{"nullable":true}]}},"required":["currentMachines","desiredMachines","groupId"]}},"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"machines":{"type":"array","items":{"type":"object","properties":{"capacityGroup":{"type":"string"},"cpuCores":{"type":"number","nullable":true},"drainBlockers":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"replicaId":{"type":"string"},"schedulingMode":{"type":"string"},"state":{"type":"string"},"workloadName":{"type":"string"}},"required":["reason","replicaId","schedulingMode","state","workloadName"]}},"drainDeadlineAt":{"type":"string","nullable":true},"drainForce":{"type":"boolean"},"drainRequestedAt":{"type":"string","nullable":true},"drainedAt":{"type":"string","nullable":true},"horizondVersion":{"type":"string","nullable":true},"lastHeartbeat":{"type":"string"},"machineId":{"type":"string"},"memoryBytes":{"type":"integer","nullable":true},"overlayIp":{"type":"string","nullable":true},"publicIp":{"type":"string","nullable":true},"replicaCount":{"type":"integer"},"status":{"type":"string"},"zone":{"type":"string"}},"required":["capacityGroup","drainForce","lastHeartbeat","machineId","replicaCount","status","zone"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["capacityGroups","machines","name","nodes","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["machines"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"dockerApiVersion":{"type":"string","nullable":true},"dockerArch":{"type":"string","nullable":true},"dockerAvailable":{"type":"boolean"},"dockerOs":{"type":"string","nullable":true},"dockerVersion":{"type":"string","nullable":true},"hostIdentifier":{"type":"string","nullable":true},"name":{"type":"string"},"networkAvailable":{"type":"boolean"},"networkName":{"type":"string","nullable":true},"nodes":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"runningContainers":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"trackedContainers":{"type":"integer","nullable":true,"minimum":0}},"required":["dockerAvailable","name","networkAvailable","nodes","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["compute-cluster"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"name":{"type":"string"},"namespace":{"type":"string","nullable":true},"nodeCounts":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"nodeStatuses":{"type":"array","items":{"type":"object","properties":{"allocatable":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pods":{"type":"integer","nullable":true,"minimum":0}}},"capacity":{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"pods":{"type":"integer","nullable":true,"minimum":0}}},"conditions":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string","nullable":true},"reason":{"type":"string","nullable":true},"status":{"type":"string"},"type":{"type":"string"}},"required":["status","type"]}},"containerRuntimeVersion":{"type":"string","nullable":true},"kubeletVersion":{"type":"string","nullable":true},"labels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"name":{"type":"string"},"ready":{"type":"boolean"},"roles":{"type":"array","items":{"type":"string"}},"uid":{"type":"string","nullable":true},"usage":{"oneOf":[{"type":"object","properties":{"cpu":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]},"memory":{"oneOf":[{"type":"object","properties":{"unit":{"type":"string","enum":["count","percent","bytes","cores","milliseconds","requests-per-second"]},"value":{"type":"number"}},"required":["unit","value"]},{"nullable":true}]}}},{"nullable":true}]}},"required":["allocatable","capacity","labels","name","ready","roles"]}},"podCounts":{"type":"object","properties":{"current":{"type":"integer","nullable":true,"minimum":0},"desired":{"type":"integer","nullable":true,"minimum":0},"ready":{"type":"integer","nullable":true,"minimum":0}}},"region":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string","nullable":true}},"required":["events","name","nodeCounts","podCounts","status"]},"resourceType":{"type":"string","enum":["kubernetes-cluster"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"approximateCounts":{"type":"boolean"},"approximateDelayedMessages":{"type":"integer","nullable":true,"minimum":0},"approximateInFlightMessages":{"type":"integer","nullable":true,"minimum":0},"approximateVisibleMessages":{"type":"integer","nullable":true,"minimum":0},"contentBasedDeduplication":{"type":"boolean","nullable":true},"deduplicationScope":{"type":"string","nullable":true},"delaySeconds":{"type":"integer","nullable":true,"minimum":0},"fifoQueue":{"type":"boolean","nullable":true},"fifoThroughputLimit":{"type":"string","nullable":true},"kmsDataKeyReusePeriodSeconds":{"type":"integer","nullable":true,"minimum":0},"kmsMasterKeyId":{"type":"string","nullable":true},"maximumMessageSize":{"type":"integer","nullable":true,"minimum":0},"messageRetentionPeriodSeconds":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"queueArn":{"type":"string","nullable":true},"queueUrl":{"type":"string","nullable":true},"receiveMessageWaitTimeSeconds":{"type":"integer","nullable":true,"minimum":0},"redriveAllowPolicy":{"type":"string","nullable":true},"redrivePolicy":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"sqsManagedSseEnabled":{"type":"boolean","nullable":true},"sseEnabled":{"type":"boolean","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"visibilityTimeoutSeconds":{"type":"integer","nullable":true,"minimum":0}},"required":["approximateCounts","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsSqs"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"kmsKeyName":{"type":"string","nullable":true},"messageStorageAllowedPersistenceRegions":{"type":"array","items":{"type":"string"}},"messageStorageEnforceInTransit":{"type":"boolean","nullable":true},"projectId":{"type":"string","nullable":true},"schemaEncoding":{"type":"string","nullable":true},"schemaFirstRevisionId":{"type":"string","nullable":true},"schemaLastRevisionId":{"type":"string","nullable":true},"schemaName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"subscriptionAckDeadlineSeconds":{"type":"integer","nullable":true,"minimum":0},"subscriptionDeadLetterMaxDeliveryAttempts":{"type":"integer","nullable":true,"minimum":0},"subscriptionDeadLetterTopic":{"type":"string","nullable":true},"subscriptionDetached":{"type":"boolean","nullable":true},"subscriptionEnableMessageOrdering":{"type":"boolean","nullable":true},"subscriptionFilter":{"type":"string","nullable":true},"subscriptionFullName":{"type":"string","nullable":true},"subscriptionLabels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"subscriptionMessageRetentionDuration":{"type":"string","nullable":true},"subscriptionName":{"type":"string","nullable":true},"subscriptionPushAttributes":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"subscriptionPushConfigPresent":{"type":"boolean","nullable":true},"subscriptionPushEndpoint":{"type":"string","nullable":true},"subscriptionPushNoWrapperWriteMetadata":{"type":"boolean","nullable":true},"subscriptionPushOidcAudience":{"type":"string","nullable":true},"subscriptionPushOidcServiceAccountEmail":{"type":"string","nullable":true},"subscriptionPushPubsubWrapperWriteMetadata":{"type":"boolean","nullable":true},"subscriptionRetainAckedMessages":{"type":"boolean","nullable":true},"subscriptionState":{"type":"string","nullable":true},"topicFullName":{"type":"string","nullable":true},"topicLabels":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"topicMessageRetentionDuration":{"type":"string","nullable":true},"topicName":{"type":"string"},"topicState":{"type":"string","nullable":true}},"required":["messageStorageAllowedPersistenceRegions","status","subscriptionLabels","subscriptionPushAttributes","topicLabels","topicName"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpPubSub"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessedAt":{"type":"string","nullable":true},"activeMessageCount":{"type":"integer","nullable":true,"minimum":0},"autoDeleteOnIdle":{"type":"string","nullable":true},"createdAt":{"type":"string","nullable":true},"deadLetterMessageCount":{"type":"integer","nullable":true,"minimum":0},"deadLetteringOnMessageExpiration":{"type":"boolean","nullable":true},"defaultMessageTimeToLive":{"type":"string","nullable":true},"duplicateDetectionHistoryTimeWindow":{"type":"string","nullable":true},"enableBatchedOperations":{"type":"boolean","nullable":true},"enableExpress":{"type":"boolean","nullable":true},"enablePartitioning":{"type":"boolean","nullable":true},"endpoint":{"type":"string","nullable":true},"forwardDeadLetteredMessagesTo":{"type":"string","nullable":true},"forwardTo":{"type":"string","nullable":true},"lockDuration":{"type":"string","nullable":true},"maxDeliveryCount":{"type":"integer","nullable":true,"minimum":0},"maxMessageSizeInKilobytes":{"type":"integer","nullable":true,"minimum":0},"maxSizeInMegabytes":{"type":"integer","nullable":true,"minimum":0},"messageCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"namespaceName":{"type":"string"},"queueStatus":{"type":"string","nullable":true},"requiresDuplicateDetection":{"type":"boolean","nullable":true},"requiresSession":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"scheduledMessageCount":{"type":"integer","nullable":true,"minimum":0},"sizeInBytes":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"transferDeadLetterMessageCount":{"type":"integer","nullable":true,"minimum":0},"transferMessageCount":{"type":"integer","nullable":true,"minimum":0},"updatedAt":{"type":"string","nullable":true}},"required":["name","namespaceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureServiceBus"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"name":{"type":"string"},"path":{"type":"string","nullable":true},"serviceStatus":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["queue"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"billingMode":{"type":"string","nullable":true},"deletionProtectionEnabled":{"type":"boolean","nullable":true},"globalSecondaryIndexCount":{"type":"integer","nullable":true,"minimum":0},"itemCount":{"type":"integer","nullable":true,"minimum":0},"keySchema":{"type":"array","items":{"type":"object","properties":{"attributeName":{"type":"string"},"keyType":{"type":"string"}},"required":["attributeName","keyType"]}},"localSecondaryIndexCount":{"type":"integer","nullable":true,"minimum":0},"name":{"type":"string"},"region":{"type":"string","nullable":true},"replicaCount":{"type":"integer","nullable":true,"minimum":0},"restoreInProgress":{"type":"boolean","nullable":true},"sseStatus":{"type":"string","nullable":true},"sseType":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"streamEnabled":{"type":"boolean","nullable":true},"streamViewType":{"type":"string","nullable":true},"tableArn":{"type":"string","nullable":true},"tableClass":{"type":"string","nullable":true},"tableSizeBytes":{"type":"integer","nullable":true,"minimum":0},"tableStatus":{"type":"string","nullable":true},"ttlAttributeName":{"type":"string","nullable":true},"ttlStatus":{"type":"string","nullable":true}},"required":["keySchema","name","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsDynamoDb"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"appEngineIntegrationMode":{"type":"string","nullable":true},"cmekEnabled":{"type":"boolean"},"concurrencyMode":{"type":"string","nullable":true},"createTime":{"type":"string","nullable":true},"databaseEdition":{"type":"string","nullable":true},"databaseName":{"type":"string"},"databaseType":{"type":"string","nullable":true},"deleteProtectionState":{"type":"string","nullable":true},"deleteTime":{"type":"string","nullable":true},"earliestVersionTime":{"type":"string","nullable":true},"endpoint":{"type":"string","nullable":true},"locationId":{"type":"string","nullable":true},"pointInTimeRecoveryEnablement":{"type":"string","nullable":true},"projectId":{"type":"string","nullable":true},"sourceInfoPresent":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updateTime":{"type":"string","nullable":true},"versionRetentionPeriod":{"type":"string","nullable":true}},"required":["cmekEnabled","databaseName","sourceInfoPresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpFirestore"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"endpoint":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"signedIdentifierCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"storageAccountKind":{"type":"string","nullable":true},"storageAccountLocation":{"type":"string","nullable":true},"storageAccountName":{"type":"string"},"storageAccountPrimaryStatus":{"type":"string","nullable":true},"storageAccountProvisioningState":{"type":"string","nullable":true},"storageAccountResourceId":{"type":"string","nullable":true},"tableExists":{"type":"boolean"},"tableName":{"type":"string"}},"required":["status","storageAccountName","tableExists","tableName"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureTable"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cloudMetadataSupported":{"type":"boolean"},"isDirectory":{"type":"boolean","nullable":true},"name":{"type":"string"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["cloudMetadataSupported","name","path","pathExists","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["kv"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"clusterIdentifier":{"type":"string"},"endpoint":{"type":"string","nullable":true},"engineVersion":{"type":"string","nullable":true},"neverPauses":{"type":"boolean","description":"True when a `minCapacity: 0` instance has not reached 0 ACU over the observation\nwindow — it is silently paying always-on prices (auto-pause verification)."},"serverlessCapacity":{"type":"number","nullable":true,"description":"Latest sampled `ServerlessDatabaseCapacity` (ACU)."},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["clusterIdentifier","neverPauses","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["aurora"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"databaseVersion":{"type":"string","nullable":true},"instanceName":{"type":"string"},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["instanceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["cloudSql"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"serverName":{"type":"string"},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string","nullable":true}},"required":["serverName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["flexibleServer"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"name":{"type":"string"},"port":{"type":"integer","nullable":true,"minimum":0},"processRunning":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"version":{"type":"string"}},"required":["name","processRunning","status","version"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["postgres"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"accountId":{"type":"string"},"hasMoreParameters":{"type":"boolean","nullable":true},"latestModifiedAt":{"type":"string","nullable":true,"format":"date-time"},"parameterMetadataSampled":{"type":"boolean"},"prefix":{"type":"string"},"region":{"type":"string"},"sampledAdvancedTierCount":{"type":"integer","nullable":true,"minimum":0},"sampledKmsKeyMetadataPresentCount":{"type":"integer","nullable":true,"minimum":0},"sampledParameterCount":{"type":"integer","nullable":true,"minimum":0},"sampledSecureStringCount":{"type":"integer","nullable":true,"minimum":0},"sampledStringCount":{"type":"integer","nullable":true,"minimum":0},"sampledStringListCount":{"type":"integer","nullable":true,"minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["accountId","parameterMetadataSampled","prefix","region","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsParameterStore"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"location":{"type":"string"},"prefix":{"type":"string"},"projectId":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["location","prefix","projectId","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpSecretManager"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accessPolicyCount":{"type":"integer","minimum":0},"location":{"type":"string","nullable":true},"name":{"type":"string"},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string"},"purgeProtectionEnabled":{"type":"boolean","nullable":true},"rbacAuthorizationEnabled":{"type":"boolean"},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"secretMetadataListed":{"type":"boolean"},"skuFamily":{"type":"string","nullable":true},"skuName":{"type":"string","nullable":true},"softDeleteEnabled":{"type":"boolean"},"softDeleteRetentionDays":{"type":"integer"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vaultUri":{"type":"string","nullable":true}},"required":["accessPolicyCount","name","privateEndpointConnectionCount","publicNetworkAccess","rbacAuthorizationEnabled","secretMetadataListed","softDeleteEnabled","softDeleteRetentionDays","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureKeyVault"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"type":"string"},"prefix":{"type":"string"},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["namespace","prefix","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetesSecret"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"isDirectory":{"type":"boolean","nullable":true},"modifiedAt":{"type":"string","nullable":true,"format":"date-time"},"path":{"type":"string"},"pathExists":{"type":"boolean"},"readonly":{"type":"boolean","nullable":true},"secretMetadataListed":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["path","pathExists","secretMetadataListed","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["vault"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"assumeRolePolicyPresent":{"type":"boolean"},"attachedPolicyCount":{"type":"integer","minimum":0},"attachedPolicyNames":{"type":"array","items":{"type":"string"}},"createDate":{"type":"string"},"description":{"type":"string","nullable":true},"inlinePolicyCount":{"type":"integer","minimum":0},"inlinePolicyNames":{"type":"array","items":{"type":"string"}},"lastUsedDate":{"type":"string","nullable":true},"lastUsedRegion":{"type":"string","nullable":true},"managedTagCount":{"type":"integer","minimum":0},"maxSessionDuration":{"type":"integer","nullable":true},"path":{"type":"string"},"permissionsBoundaryArn":{"type":"string","nullable":true},"permissionsBoundaryType":{"type":"string","nullable":true},"roleArn":{"type":"string"},"roleId":{"type":"string"},"roleName":{"type":"string"},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tagCount":{"type":"integer","minimum":0}},"required":["assumeRolePolicyPresent","attachedPolicyCount","attachedPolicyNames","createDate","inlinePolicyCount","inlinePolicyNames","managedTagCount","path","roleArn","roleId","roleName","stackPermissionsApplied","status","tagCount"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsIamRole"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"description":{"type":"string","nullable":true},"disabled":{"type":"boolean","nullable":true},"displayName":{"type":"string","nullable":true},"email":{"type":"string"},"etag":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"oauth2ClientId":{"type":"string","nullable":true},"projectBindingCount":{"type":"integer","minimum":0},"projectId":{"type":"string","nullable":true},"projectRoles":{"type":"array","items":{"type":"string"}},"serviceAccountBindingCount":{"type":"integer","minimum":0},"serviceAccountRoles":{"type":"array","items":{"type":"string"}},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"uniqueId":{"type":"string","nullable":true}},"required":["email","projectBindingCount","projectRoles","serviceAccountBindingCount","serviceAccountRoles","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"clientId":{"type":"string","nullable":true},"customRoleDefinitionCount":{"type":"integer","minimum":0},"customRoleDefinitionIds":{"type":"array","items":{"type":"string"}},"isolationScope":{"type":"string","nullable":true},"location":{"type":"string"},"managedTagCount":{"type":"integer","minimum":0},"name":{"type":"string"},"principalId":{"type":"string","nullable":true},"resourceGroup":{"type":"string"},"resourceId":{"type":"string"},"roleAssignmentCount":{"type":"integer","minimum":0},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"stackPermissionsApplied":{"type":"boolean"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tenantId":{"type":"string","nullable":true},"type":{"type":"string","nullable":true}},"required":["customRoleDefinitionCount","customRoleDefinitionIds","location","managedTagCount","name","resourceGroup","resourceId","roleAssignmentCount","roleAssignmentIds","stackPermissionsApplied","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"configured":{"type":"boolean"},"identity":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["configured","identity","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["service-account"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"availabilityZones":{"type":"array","items":{"type":"string"}},"cidrBlock":{"type":"string","nullable":true},"internetGatewayId":{"type":"string","nullable":true},"isByoVpc":{"type":"boolean"},"natGatewayId":{"type":"string","nullable":true},"privateSubnetIds":{"type":"array","items":{"type":"string"}},"publicSubnetIds":{"type":"array","items":{"type":"string"}},"routeTableCount":{"type":"integer","minimum":0},"securityGroupId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vpcId":{"type":"string","nullable":true},"vpcState":{"type":"string","nullable":true}},"required":["availabilityZones","isByoVpc","privateSubnetIds","publicSubnetIds","routeTableCount","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsVpc"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cidrBlock":{"type":"string","nullable":true},"cloudNatName":{"type":"string","nullable":true},"firewallName":{"type":"string","nullable":true},"isByoVpc":{"type":"boolean"},"networkName":{"type":"string","nullable":true},"networkSelfLink":{"type":"string","nullable":true},"region":{"type":"string","nullable":true},"routerName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"subnetworkName":{"type":"string","nullable":true},"subnetworkSelfLink":{"type":"string","nullable":true}},"required":["isByoVpc","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpVpc"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"applicationGatewaySubnetName":{"type":"string","nullable":true},"cidrBlock":{"type":"string","nullable":true},"isByoVnet":{"type":"boolean"},"lastByoVnetVerificationErrorCode":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"natGatewayId":{"type":"string","nullable":true},"nsgId":{"type":"string","nullable":true},"privateEndpointSubnetName":{"type":"string","nullable":true},"privateSubnetName":{"type":"string","nullable":true},"publicIpId":{"type":"string","nullable":true},"publicSubnetName":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"vnetName":{"type":"string","nullable":true},"vnetResourceId":{"type":"string","nullable":true}},"required":["isByoVnet","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureVnet"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["network"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"managementPermissionsApplied":{"type":"boolean"},"roleArn":{"type":"string","nullable":true},"roleName":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["managementPermissionsApplied","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsIamRole"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"impersonationGranted":{"type":"boolean"},"roleBound":{"type":"boolean"},"serviceAccountEmail":{"type":"string","nullable":true},"serviceAccountUniqueId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["impersonationGranted","roleBound","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceAccount"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"ficName":{"type":"string","nullable":true},"roleAssignmentIds":{"type":"array","items":{"type":"string"}},"roleDefinitionId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"tenantId":{"type":"string","nullable":true},"uamiClientId":{"type":"string","nullable":true},"uamiPrincipalId":{"type":"string","nullable":true},"uamiResourceId":{"type":"string","nullable":true}},"required":["roleAssignmentIds","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureManagedIdentity"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["remote-stack-management"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"pullRoleArn":{"type":"string","nullable":true},"pushRoleArn":{"type":"string","nullable":true},"region":{"type":"string"},"registryId":{"type":"string"},"registryUri":{"type":"string"},"repositories":{"type":"array","items":{"type":"object","properties":{"createdAt":{"type":"number"},"encryptionType":{"type":"string","nullable":true},"imageTagMutability":{"type":"string","nullable":true},"kmsKeyPresent":{"type":"boolean"},"registryId":{"type":"string"},"repositoryArn":{"type":"string"},"repositoryName":{"type":"string"},"repositoryUri":{"type":"string"},"scanOnPush":{"type":"boolean","nullable":true}},"required":["createdAt","kmsKeyPresent","registryId","repositoryArn","repositoryName","repositoryUri"]}},"repositoriesTruncated":{"type":"boolean"},"repositoryCount":{"type":"integer","minimum":0},"repositoryPrefix":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["region","registryId","registryUri","repositories","repositoriesTruncated","repositoryCount","repositoryPrefix","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsEcr"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"cleanupPolicyCount":{"type":"integer","minimum":0},"cleanupPolicyDryRun":{"type":"boolean","nullable":true},"createTime":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"format":{"type":"string","nullable":true},"iamBindingCount":{"type":"integer","minimum":0},"iamPolicyEtagPresent":{"type":"boolean"},"iamRoles":{"type":"array","items":{"type":"string"}},"kmsKeyNamePresent":{"type":"boolean"},"labelCount":{"type":"integer","minimum":0},"location":{"type":"string"},"mode":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"projectId":{"type":"string"},"pullServiceAccountEmail":{"type":"string","nullable":true},"pushServiceAccountEmail":{"type":"string","nullable":true},"repositoryId":{"type":"string"},"satisfiesPzs":{"type":"boolean","nullable":true},"sizeBytes":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updateTime":{"type":"string","nullable":true}},"required":["cleanupPolicyCount","iamBindingCount","iamPolicyEtagPresent","iamRoles","kmsKeyNamePresent","labelCount","location","projectId","repositoryId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpArtifactRegistry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"adminUserEnabled":{"type":"boolean"},"anonymousPullEnabled":{"type":"boolean"},"creationDate":{"type":"string","nullable":true},"dataEndpointEnabled":{"type":"boolean","nullable":true},"dataEndpointHostNames":{"type":"array","items":{"type":"string"}},"encryptionKeyIdentifierPresent":{"type":"boolean"},"encryptionKeyVaultUriPresent":{"type":"boolean"},"encryptionStatus":{"type":"string","nullable":true},"ipRuleCount":{"type":"integer","minimum":0},"location":{"type":"string"},"loginServer":{"type":"string","nullable":true},"managedTagCount":{"type":"integer","minimum":0},"name":{"type":"string"},"networkRuleBypassOptions":{"type":"string"},"networkRuleDefaultAction":{"type":"string","nullable":true},"policiesPresent":{"type":"boolean"},"policyCount":{"type":"integer","minimum":0},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string"},"resourceGroup":{"type":"string"},"resourceId":{"type":"string","nullable":true},"skuName":{"type":"string"},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"type":{"type":"string","nullable":true},"zoneRedundancy":{"type":"string"}},"required":["adminUserEnabled","anonymousPullEnabled","dataEndpointHostNames","encryptionKeyIdentifierPresent","encryptionKeyVaultUriPresent","ipRuleCount","location","managedTagCount","name","networkRuleBypassOptions","policiesPresent","policyCount","privateEndpointConnectionCount","publicNetworkAccess","resourceGroup","skuName","status","zoneRedundancy"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerRegistry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"reachable":{"type":"boolean"},"registryUrl":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["reachable","registryUrl","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["local"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["artifact-registry"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"artifactsEncryptionDisabled":{"type":"boolean","nullable":true},"artifactsType":{"type":"string","nullable":true},"cloudWatchLogsStatus":{"type":"string","nullable":true},"computeType":{"type":"string","nullable":true},"created":{"type":"number","nullable":true},"description":{"type":"string","nullable":true},"encryptionKeyPresent":{"type":"boolean"},"environmentImage":{"type":"string","nullable":true},"environmentType":{"type":"string","nullable":true},"environmentVariableCount":{"type":"integer","minimum":0},"imagePullCredentialsType":{"type":"string","nullable":true},"lastModified":{"type":"number","nullable":true},"privilegedMode":{"type":"boolean","nullable":true},"projectArn":{"type":"string","nullable":true},"projectName":{"type":"string"},"queuedTimeoutInMinutes":{"type":"integer","nullable":true},"s3LogsStatus":{"type":"string","nullable":true},"serviceRolePresent":{"type":"boolean"},"sourceType":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"timeoutInMinutes":{"type":"integer","nullable":true}},"required":["encryptionKeyPresent","environmentVariableCount","projectName","serviceRolePresent","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsCodeBuild"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"buildConfigId":{"type":"string"},"environmentVariableCount":{"type":"integer","minimum":0},"location":{"type":"string"},"projectId":{"type":"string"},"serviceAccount":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["buildConfigId","environmentVariableCount","location","projectId","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpCloudBuild"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"environmentVariableCount":{"type":"integer","minimum":0},"managedEnvironmentId":{"type":"string"},"managedIdentityId":{"type":"string","nullable":true},"resourceGroupName":{"type":"string"},"resourcePrefix":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["environmentVariableCount","managedEnvironmentId","resourceGroupName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureContainerApps"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"active":{"type":"integer","nullable":true},"completionTime":{"type":"string","nullable":true,"format":"date-time"},"conditionCount":{"type":"integer","minimum":0},"events":{"type":"array","items":{"type":"object","properties":{"count":{"type":"integer","nullable":true},"eventTime":{"type":"string","nullable":true,"format":"date-time"},"firstTimestamp":{"type":"string","nullable":true,"format":"date-time"},"involvedObject":{"oneOf":[{"type":"object","properties":{"apiVersion":{"type":"string","nullable":true},"fieldPath":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"name":{"type":"string","nullable":true},"namespace":{"type":"string","nullable":true},"resourceVersion":{"type":"string","nullable":true},"uid":{"type":"string","nullable":true}}},{"nullable":true}]},"lastTimestamp":{"type":"string","nullable":true,"format":"date-time"},"message":{"type":"string"},"raw":{"oneOf":[{"nullable":true},{"nullable":true}]},"reason":{"type":"string"},"source":{"oneOf":[{"type":"object","properties":{"component":{"type":"string","nullable":true},"host":{"type":"string","nullable":true}}},{"nullable":true}]},"type":{"type":"string","nullable":true}},"required":["message","reason"]}},"failed":{"type":"integer","nullable":true},"imageDigest":{"type":"string","nullable":true},"jobName":{"type":"string"},"namespace":{"type":"string"},"startTime":{"type":"string","nullable":true,"format":"date-time"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"succeeded":{"type":"integer","nullable":true}},"required":["conditionCount","events","jobName","namespace","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["kubernetesJob"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["build"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"enabled":{"type":"boolean"},"lastOperationName":{"type":"string","nullable":true},"projectId":{"type":"string"},"serviceName":{"type":"string"},"serviceResourceName":{"type":"string","nullable":true},"state":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"title":{"type":"string","nullable":true}},"required":["enabled","projectId","serviceName","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpServiceUsage"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"namespace":{"type":"string"},"providerId":{"type":"string","nullable":true},"registered":{"type":"boolean"},"registrationPolicy":{"type":"string","nullable":true},"registrationState":{"type":"string","nullable":true},"resourceTypeCount":{"type":"integer","minimum":0},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["namespace","registered","resourceTypeCount","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureResourceProvider"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["service_activation"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"location":{"type":"string","nullable":true},"managedTags":{"type":"object","properties":{},"additionalProperties":{"type":"string"}},"name":{"type":"string"},"provisioningState":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["managedTags","name","status"]},"resourceType":{"type":"string","enum":["azure_resource_group"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"allowBlobPublicAccess":{"type":"boolean","nullable":true},"allowSharedKeyAccess":{"type":"boolean","nullable":true},"encryptionKeySource":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"minimumTlsVersion":{"type":"string","nullable":true},"name":{"type":"string"},"networkBypass":{"type":"string","nullable":true},"networkDefaultAction":{"type":"string","nullable":true},"networkIpRuleCount":{"type":"integer","nullable":true,"minimum":0},"networkResourceAccessRuleCount":{"type":"integer","nullable":true,"minimum":0},"networkVirtualNetworkRuleCount":{"type":"integer","nullable":true,"minimum":0},"primaryEndpoints":{"type":"object","properties":{"blob":{"type":"string","nullable":true},"dfs":{"type":"string","nullable":true},"file":{"type":"string","nullable":true},"queue":{"type":"string","nullable":true},"table":{"type":"string","nullable":true},"web":{"type":"string","nullable":true}}},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"requireInfrastructureEncryption":{"type":"boolean","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"secondaryEndpoints":{"type":"object","properties":{"blob":{"type":"string","nullable":true},"dfs":{"type":"string","nullable":true},"file":{"type":"string","nullable":true},"queue":{"type":"string","nullable":true},"table":{"type":"string","nullable":true},"web":{"type":"string","nullable":true}}},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"supportsHttpsTrafficOnly":{"type":"boolean","nullable":true}},"required":["name","primaryEndpoints","secondaryEndpoints","status"]},"resourceType":{"type":"string","enum":["azure_storage_account"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"customDomainVerificationId":{"type":"string","nullable":true},"defaultDomain":{"type":"string","nullable":true},"eventStreamEndpoint":{"type":"string","nullable":true},"infrastructureResourceGroup":{"type":"string","nullable":true},"kind":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"name":{"type":"string"},"provisioningState":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"staticIp":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"workloadProfileCount":{"type":"integer","minimum":0},"workloadProfiles":{"type":"array","items":{"type":"object","properties":{"maximumCount":{"type":"integer","nullable":true},"minimumCount":{"type":"integer","nullable":true},"name":{"type":"string"},"workloadProfileType":{"type":"string"}},"required":["name","workloadProfileType"]}},"zoneRedundant":{"type":"boolean","nullable":true}},"required":["name","status","workloadProfileCount","workloadProfiles"]},"resourceType":{"type":"string","enum":["azure_container_apps_environment"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"type":"object","properties":{"createdAt":{"type":"string","nullable":true},"disableLocalAuth":{"type":"boolean","nullable":true},"location":{"type":"string","nullable":true},"metricId":{"type":"string","nullable":true},"minimumTlsVersion":{"type":"string","nullable":true},"name":{"type":"string"},"namespaceStatus":{"type":"string","nullable":true},"premiumMessagingPartitions":{"type":"integer","nullable":true},"privateEndpointConnectionCount":{"type":"integer","minimum":0},"provisioningState":{"type":"string","nullable":true},"publicNetworkAccess":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"resourceId":{"type":"string","nullable":true},"serviceBusEndpoint":{"type":"string","nullable":true},"skuCapacity":{"type":"integer","nullable":true},"skuName":{"type":"string","nullable":true},"skuTier":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]},"updatedAt":{"type":"string","nullable":true},"zoneRedundant":{"type":"boolean","nullable":true}},"required":["name","privateEndpointConnectionCount","status"]},"resourceType":{"type":"string","enum":["azure_service_bus_namespace"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"allOf":[{"type":"object","properties":{"availability":{"type":"object","properties":{"catalogRevision":{"type":"string"},"location":{"type":"string","nullable":true},"models":{"type":"array","items":{"type":"object","properties":{"accessTest":{"type":"string","enum":["verified","failed","not-checked"]},"availability":{"type":"string","enum":["available","blocked","unknown"]},"blockers":{"type":"array","items":{"type":"string","enum":["agreement-required","entitlement-required","model-activation-required","deployment-required","quota-configuration-required","region-unavailable","access-denied","observation-failed"]}},"clientApis":{"type":"array","items":{"type":"string","enum":["open-ai-chat-completions","open-ai-responses","anthropic-messages"],"description":"A public API accepted from an application client."}},"errorCode":{"type":"string","nullable":true},"publicModelId":{"type":"string"},"testedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["accessTest","availability","blockers","clientApis","publicModelId"]}},"source":{"type":"string","enum":["aws-bedrock","gcp-vertex","azure-foundry","anthropic"],"description":"Provider control plane used to observe model availability without invoking\na model, spending customer quota, or accepting provider terms."}},"required":["catalogRevision","models","source"]},"region":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["availability","region","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["awsBedrock"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"availability":{"type":"object","properties":{"catalogRevision":{"type":"string"},"location":{"type":"string","nullable":true},"models":{"type":"array","items":{"type":"object","properties":{"accessTest":{"type":"string","enum":["verified","failed","not-checked"]},"availability":{"type":"string","enum":["available","blocked","unknown"]},"blockers":{"type":"array","items":{"type":"string","enum":["agreement-required","entitlement-required","model-activation-required","deployment-required","quota-configuration-required","region-unavailable","access-denied","observation-failed"]}},"clientApis":{"type":"array","items":{"type":"string","enum":["open-ai-chat-completions","open-ai-responses","anthropic-messages"],"description":"A public API accepted from an application client."}},"errorCode":{"type":"string","nullable":true},"publicModelId":{"type":"string"},"testedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["accessTest","availability","blockers","clientApis","publicModelId"]}},"source":{"type":"string","enum":["aws-bedrock","gcp-vertex","azure-foundry","anthropic"],"description":"Provider control plane used to observe model availability without invoking\na model, spending customer quota, or accepting provider terms."}},"required":["catalogRevision","models","source"]},"location":{"type":"string"},"project":{"type":"string"},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["availability","location","project","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["gcpVertex"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"accountName":{"type":"string"},"availability":{"type":"object","properties":{"catalogRevision":{"type":"string"},"location":{"type":"string","nullable":true},"models":{"type":"array","items":{"type":"object","properties":{"accessTest":{"type":"string","enum":["verified","failed","not-checked"]},"availability":{"type":"string","enum":["available","blocked","unknown"]},"blockers":{"type":"array","items":{"type":"string","enum":["agreement-required","entitlement-required","model-activation-required","deployment-required","quota-configuration-required","region-unavailable","access-denied","observation-failed"]}},"clientApis":{"type":"array","items":{"type":"string","enum":["open-ai-chat-completions","open-ai-responses","anthropic-messages"],"description":"A public API accepted from an application client."}},"errorCode":{"type":"string","nullable":true},"publicModelId":{"type":"string"},"testedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["accessTest","availability","blockers","clientApis","publicModelId"]}},"source":{"type":"string","enum":["aws-bedrock","gcp-vertex","azure-foundry","anthropic"],"description":"Provider control plane used to observe model availability without invoking\na model, spending customer quota, or accepting provider terms."}},"required":["catalogRevision","models","source"]},"endpoint":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"resourceGroup":{"type":"string","nullable":true},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["accountName","availability","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["azureFoundry"]}},"required":["backend"]}]},{"allOf":[{"type":"object","properties":{"availability":{"oneOf":[{"type":"object","properties":{"catalogRevision":{"type":"string"},"location":{"type":"string","nullable":true},"models":{"type":"array","items":{"type":"object","properties":{"accessTest":{"type":"string","enum":["verified","failed","not-checked"]},"availability":{"type":"string","enum":["available","blocked","unknown"]},"blockers":{"type":"array","items":{"type":"string","enum":["agreement-required","entitlement-required","model-activation-required","deployment-required","quota-configuration-required","region-unavailable","access-denied","observation-failed"]}},"clientApis":{"type":"array","items":{"type":"string","enum":["open-ai-chat-completions","open-ai-responses","anthropic-messages"],"description":"A public API accepted from an application client."}},"errorCode":{"type":"string","nullable":true},"publicModelId":{"type":"string"},"testedAt":{"type":"string","nullable":true,"format":"date-time"}},"required":["accessTest","availability","blockers","clientApis","publicModelId"]}},"source":{"type":"string","enum":["aws-bedrock","gcp-vertex","azure-foundry","anthropic"],"description":"Provider control plane used to observe model availability without invoking\na model, spending customer quota, or accepting provider terms."}},"required":["catalogRevision","models","source"]},{"nullable":true}]},"provider":{"type":"string","description":"The BYO-key provider serving this binding (e.g. \"openai\"). Used on the Local\nplatform, where the app brings its own provider key instead of an ambient cloud."},"status":{"type":"object","properties":{"collectionIssues":{"type":"array","items":{"type":"object","properties":{"message":{"type":"string"},"reason":{"type":"string","enum":["forbidden","not-installed","api-unavailable","collection-failed","timed-out"]},"severity":{"type":"string","enum":["info","warning","error"]},"source":{"type":"string"}},"required":["message","reason","severity","source"]}},"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true},"partial":{"type":"boolean"},"stale":{"type":"boolean"}},"required":["collectionIssues","health","lifecycle","partial","stale"]}},"required":["provider","status"]},{"type":"object","properties":{"backend":{"type":"string","enum":["external"]}},"required":["backend"]}]}]},"resourceType":{"type":"string","enum":["ai"]}},"required":["data","resourceType"]},{"type":"object","properties":{"data":{"oneOf":[{"type":"object","properties":{"data":{"type":"object","properties":{"enabled":{"type":"boolean"},"keyArn":{"type":"string"},"keySpec":{"type":"string"},"keyState":{"type":"string"},"keyUsage":{"type":"string"},"status":{"type":"object","properties":{"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true}},"required":["health","lifecycle"]}},"required":["enabled","keyArn","keySpec","keyState","keyUsage","status"]},"provider":{"type":"string","enum":["aws-kms"]}},"required":["data","provider"]},{"type":"object","properties":{"data":{"type":"object","properties":{"algorithm":{"type":"string","nullable":true},"cryptoKeyName":{"type":"string"},"primaryState":{"type":"string","nullable":true},"primaryVersion":{"type":"string","nullable":true},"purpose":{"type":"string"},"status":{"type":"object","properties":{"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true}},"required":["health","lifecycle"]}},"required":["cryptoKeyName","purpose","status"]},"provider":{"type":"string","enum":["gcp-cloud-kms"]}},"required":["data","provider"]},{"type":"object","properties":{"data":{"type":"object","properties":{"enabled":{"type":"boolean","nullable":true},"keyId":{"type":"string"},"keyOperations":{"type":"array","items":{"type":"string"}},"keyType":{"type":"string"},"recoveryLevel":{"type":"string","nullable":true},"status":{"type":"object","properties":{"health":{"type":"string","enum":["unknown","healthy","degraded","unhealthy"]},"lifecycle":{"type":"string","enum":["unknown","creating","updating","running","scaling","stopping","stopped","deleting","deleted","failed"]},"message":{"type":"string","nullable":true}},"required":["health","lifecycle"]}},"required":["keyId","keyOperations","keyType","status"]},"provider":{"type":"string","enum":["azure-key-vault"]}},"required":["data","provider"]}]},"resourceType":{"type":"string","enum":["key"]}},"required":["data","resourceType"]}]},"deploymentId":{"type":"string","nullable":true},"observedAt":{"type":"string","format":"date-time"},"raw":{"type":"array","items":{"type":"object","properties":{"body":{"type":"string"},"collectedAt":{"type":"string","format":"date-time"},"format":{"type":"string","enum":["json","yaml","text"]},"source":{"type":"string"},"truncated":{"type":"boolean"}},"required":["body","collectedAt","format","source","truncated"]}},"resourceId":{"type":"string","description":"Alien resource id, such as the `alien.Container` or `alien.Storage`\nresource id from the stack."},"resourceType":{"type":"string","description":"Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior."}},"required":["backend","controllerPlatform","data","observedAt","raw","resourceId","resourceType"]},"raw":{"type":"array","items":{"nullable":true}}},"required":["status","deploymentId","resourceId","resourceType","backend","controllerPlatform","observedAt","staleAt","platformStale","heartbeat","raw"]},{"type":"object","properties":{"status":{"type":"string","enum":["missing"]},"deploymentId":{"type":"string"},"resourceId":{"type":"string"},"resourceType":{"type":"string"}},"required":["status","deploymentId","resourceId","resourceType"]}]}},"required":["deployment","heartbeat"]}}}},"404":{"description":"Deployment or resource not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/resolve":{"get":{"operationId":"resolve","tags":["resolve"],"summary":"Resolve manager for a project and platform","description":"Returns the manager URL for a given project and platform. The project can be provided as a query parameter, or derived from the token's scope (project-scoped, deployment-group-scoped, or deployment-scoped tokens carry an implicit project). This is the single entry point for all CLI tools to discover which manager to talk to.","x-speakeasy-group":"resolve","x-speakeasy-name-override":"resolve","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"string","enum":["aws","gcp","azure","kubernetes","machines","local","test"],"description":"Target platform to resolve the manager for"},"required":true,"description":"Target platform to resolve the manager for","name":"platform","in":"query"},{"schema":{"type":"string","maxLength":100,"description":"Project ID or name. Required for user and workspace-scoped tokens. Optional for project/deployment-group/deployment-scoped tokens (derived from token scope)."},"required":false,"description":"Project ID or name. Required for user and workspace-scoped tokens. Optional for project/deployment-group/deployment-scoped tokens (derived from token scope).","name":"project","in":"query"}],"responses":{"200":{"description":"Manager resolved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResolveResponse"}}}},"400":{"description":"Missing required project parameter for this token type.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"404":{"description":"Project not found or no manager available for platform.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}},"503":{"description":"Manager not ready yet (no URL reported). Retry after a delay.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}},"/v1/cloud-regions":{"get":{"operationId":"getCloudRegions","description":"Get cloud regions supported by this Alien environment.","x-speakeasy-group":"cloudRegions","x-speakeasy-name-override":"get","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Supported cloud regions retrieved successfully.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CloudRegionsResponse"}}}}}}},"/v1/billing/audit-log":{"get":{"operationId":"listBillingAuditLog","description":"List billing activity entries for the current workspace.","x-speakeasy-group":"billing","x-speakeasy-name-override":"listAuditLog","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"},{"schema":{"type":"number","minimum":1,"maximum":200,"default":50},"required":false,"name":"limit","in":"query"},{"schema":{"type":"string","description":"Cursor: id from the previous page."},"required":false,"description":"Cursor: id from the previous page.","name":"before","in":"query"}],"responses":{"200":{"description":"Audit-log rows newest-first.","content":{"application/json":{"schema":{"type":"object","properties":{"items":{"type":"array","items":{"$ref":"#/components/schemas/BillingAuditLogRow"}},"nextCursor":{"type":"string","nullable":true}},"required":["items","nextCursor"]}}}}}}},"/v1/billing/entitlements":{"get":{"operationId":"getWorkspaceBillingEntitlements","description":"Get the workspace billing entitlements used for product feature gates. Autumn is the source of truth; the response is served through the workspace billing read model with stale-cache fallback.","x-speakeasy-group":"billing","x-speakeasy-name-override":"getEntitlements","parameters":[{"schema":{"type":"string","minLength":4,"maxLength":100,"pattern":"^(?!ws[-_])[a-z0-9](-?[a-z0-9])*$","description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","example":"my-workspace"},"required":false,"description":"Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace.","name":"workspace","in":"query"}],"responses":{"200":{"description":"Workspace billing entitlements.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/WorkspaceBillingEntitlements"}}}},"500":{"description":"Internal server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/APIError"}}}}}}}}} \ No newline at end of file diff --git a/client-sdks/platform/rust/tests/deployment_group_external_id.rs b/client-sdks/platform/rust/tests/deployment_group_external_id.rs new file mode 100644 index 000000000..e518a53a1 --- /dev/null +++ b/client-sdks/platform/rust/tests/deployment_group_external_id.rs @@ -0,0 +1,34 @@ +use alien_platform_api::{types, Client}; + +#[test] +fn generated_client_exposes_external_id_operations() { + let client = Client::new("https://api.alien.dev"); + let body: types::EnsureDeploymentGroupByExternalIdRequest = + types::EnsureDeploymentGroupByExternalIdRequest::builder() + .external_id("customer_123") + .name("production") + .project("my-project") + .try_into() + .expect("valid ensure request"); + + // Construct both generated request builders. Calling `send` is covered by + // API integration tests; this test protects the public Rust SDK surface. + let _ensure = client.ensure_deployment_group_by_external_id().body(body); + let _read = client + .get_deployment_group_by_external_id() + .external_id("customer_123") + .project("my-project"); + let update: types::SetDeploymentGroupExternalIdRequest = + types::SetDeploymentGroupExternalIdRequest::builder() + .external_id(Some( + "customer_456" + .parse::() + .expect("valid external ID"), + )) + .try_into() + .expect("valid update request"); + let _update = client + .set_deployment_group_external_id() + .id("dg_0000000000000000000000000000") + .body(update); +} diff --git a/client-sdks/platform/typescript/.speakeasy/gen.lock b/client-sdks/platform/typescript/.speakeasy/gen.lock index 4b4d499ca..277252483 100644 --- a/client-sdks/platform/typescript/.speakeasy/gen.lock +++ b/client-sdks/platform/typescript/.speakeasy/gen.lock @@ -1,12 +1,12 @@ lockVersion: 2.0.0 id: bc51eaa5-3f88-4290-b64f-cae16746dd5d management: - docChecksum: 00107cedc4334c3871e5d334c2b0a914 + docChecksum: a56e0cc95cfbd8d2d97456c1be33f0ee docVersion: 1.0.0 speakeasyVersion: 1.680.11 generationVersion: 2.788.15 releaseVersion: 3.3.11 - configChecksum: 63869a3d2a5d56230cef83f771a82d02 + configChecksum: dc2d2d2105682b3172c7edd41134d009 persistentEdits: generation_id: db6ac3e5-6bcc-4de5-a81f-eb659048385d pristine_commit_hash: 13c44a72093f4387918cbb07b6c85d4fbfa92cc6 @@ -56,7 +56,7 @@ trackedFiles: pristine_git_object: cf98a6bf092538eb10ff0edc915102682ce9a6e6 FUNCTIONS.md: id: 21b9df02aaeb - last_write_checksum: sha1:ab2b06c33898806991c52b65abe91e2646e37cbd + last_write_checksum: sha1:67cc398afb6ef4f884ed5057d3e077a483edcf33 pristine_git_object: 2f62253f5bf4f2ea763bd876093cbfbddd1d1e82 RUNTIMES.md: id: 620c490847b6 @@ -64,28 +64,90 @@ trackedFiles: pristine_git_object: 27731c3b5ace66bedc454ed5acbe15075aacd3dc USAGE.md: id: 3aed33ce6e6f - last_write_checksum: sha1:fe52152d4f3b3c1f28811e59dc980986f2b0d069 + last_write_checksum: sha1:d620c7e234c18bcdb50b903c73f1f23e8d665fd3 pristine_git_object: 662dae6d1d60e71ad8179bdfbe4311d2548a01fd docs/lib/utils/retryconfig.md: id: 0ce9707cb848 last_write_checksum: sha1:bc4454e196fcd219f5a78da690375a884f5ed07b pristine_git_object: 08f95f4552349360b2c0b01802aa71ec3a55d2c2 + docs/models/acceptworkspaceinvitationresponse.md: + last_write_checksum: sha1:f6d5f3fff7349c7f09f26059eec2f46e93f02ec4 + docs/models/accesstest1.md: + last_write_checksum: sha1:b17e885fea2a986adb8ccee845df740b3fd29106 + docs/models/accesstest2.md: + last_write_checksum: sha1:4878658be1ab29618c2554f8077512ca57329bf8 + docs/models/accesstest3.md: + last_write_checksum: sha1:025f970a9a59b398cc48887219063a7c5a56f276 + docs/models/accesstest4.md: + last_write_checksum: sha1:4be9e2f517dc1152cd1d0780b871c1abb03a62fd docs/models/acquiremode.md: id: 2da2ba33bf92 last_write_checksum: sha1:98645df55f0ce0c869d15b4da92bb5b6121e5bb4 pristine_git_object: e4c3bdd6beea0db1b930677ff240be8e73f58cad docs/models/activerelease.md: id: 8334265c22b7 - last_write_checksum: sha1:ba9619bd55828ba54a5df057af093ebd804e9c87 + last_write_checksum: sha1:e6b2200496aa58099f35f7a825f8d3269746a33d pristine_git_object: 0c79a99c40f36b1af14cafb0772f94d03eda20a0 - docs/models/actor1.md: - last_write_checksum: sha1:bf623ff81028fd9d927beb267200936f7cededd3 - docs/models/actor2.md: - last_write_checksum: sha1:4839fe1be0a5fb30d846ae66359473a2fa1501c5 - docs/models/actorunion1.md: - last_write_checksum: sha1:766370184186d4162137336ff1ebd84640042df0 - docs/models/actorunion2.md: - last_write_checksum: sha1:1341324a1c15ff23f787ba2212475a072d2579b4 + docs/models/agentsessionapprovalgrantedevent.md: + last_write_checksum: sha1:7f3e0614c3d86f54e063bfa1533c60cb6d1bcdaa + docs/models/agentsessionapprovalgrantedeventpayload.md: + last_write_checksum: sha1:a557796ca0e264977a529029438df4928121c6c2 + docs/models/agentsessionapprovalgrantedeventsource.md: + last_write_checksum: sha1:126335a52d7f05c8b790cf1649539563f6f220d9 + docs/models/agentsessionapprovalrequestedevent.md: + last_write_checksum: sha1:bf1baf83d369a6b7eb269b7f0eee65babe6ffc5f + docs/models/agentsessionapprovalrequestedeventpayload.md: + last_write_checksum: sha1:55a0197d3fe013946ff59d9c0be0905c492a9070 + docs/models/agentsessionapproveresponse.md: + last_write_checksum: sha1:641557884e281688574b35a9a44dd83901c5f694 + docs/models/agentsessiondetail.md: + last_write_checksum: sha1:03049e62f4f00d63e68a0a7f358ffb5a28fdb414 + docs/models/agentsessionevent.md: + last_write_checksum: sha1:c307f967f50eb509ebdb020e30531f1df914de60 + docs/models/agentsessioneventsresponse.md: + last_write_checksum: sha1:80050104519f37e39dd93e3fa9564c95e1d6fe09 + docs/models/agentsessioneventstruncatedevent.md: + last_write_checksum: sha1:2b2a7b91b51a4ccd4e5e08eeb6f1ab068d4e5e21 + docs/models/agentsessioneventstruncatedeventpayload.md: + last_write_checksum: sha1:01e4826d7baf208c506fd29bc72e07b66df21480 + docs/models/agentsessionlistitem.md: + last_write_checksum: sha1:12c8f7eb482cf584e38189437b1e249f4243198b + docs/models/agentsessionlistresponse.md: + last_write_checksum: sha1:01adec9b321d97e5cfbb6e8c6fbb5902b6a619d7 + docs/models/agentsessionmarkdownevent.md: + last_write_checksum: sha1:01aaad731fe9d00cb777c237d1de9cb77a8c4512 + docs/models/agentsessionmarkdowneventpayload.md: + last_write_checksum: sha1:b41e9da1411a6d4bad09ea3ab6fcf131a8797f58 + docs/models/agentsessionrestartedevent.md: + last_write_checksum: sha1:735440ce80877e7e44dce35a01b1592a0301ba8c + docs/models/agentsessionrestartedeventpayload.md: + last_write_checksum: sha1:01db84f0841c7b494b853079a09888e12843aadd + docs/models/agentsessionstatusevent.md: + last_write_checksum: sha1:a35aa20d74be6f06f4102215c9d9c13173f20834 + docs/models/agentsessionstatuseventpayload.md: + last_write_checksum: sha1:9a2c9ca3fb833458180f18330a7883a11b260671 + docs/models/agentsessionstepevent.md: + last_write_checksum: sha1:9bc89ed07dbbe8ab9479e503387145af5654d664 + docs/models/agentsessionstepeventpayload.md: + last_write_checksum: sha1:0461c91c97657e5d5de804970e0f8c756a4dfdcc + docs/models/agentsessionstepeventstatus.md: + last_write_checksum: sha1:2bfccd5713f1b45ac49a07aa2bf25a5ac975461c + docs/models/agentsessionstopresponse.md: + last_write_checksum: sha1:e2a16a4baabb7c1c081c9c193b4d15c4bc3e6e85 + docs/models/agentsessionsubject.md: + last_write_checksum: sha1:3cc734a0d113e1d6eb6661eca62ed321c5efcb3b + docs/models/agentsessiontoolcallevent.md: + last_write_checksum: sha1:96fbd75d87915809f6d9eb7d295750014f89572c + docs/models/agentsessiontoolcalleventpayload.md: + last_write_checksum: sha1:cc17c9fb475716a4e683119b7d000adc3c8fb7f5 + docs/models/agentsessiontoolresultevent.md: + last_write_checksum: sha1:a733bd0d4e8575ee03ba5e702e3b55e67b38754e + docs/models/agentsessiontoolresulteventpayload.md: + last_write_checksum: sha1:d67d3f048d42c8024606dcdc2943fbd7153694fa + docs/models/agentsettings.md: + last_write_checksum: sha1:ce5de71907b72e60ac85e7cb9b26df83ae4da3f3 + docs/models/agentsettingsdebugpermissionmode.md: + last_write_checksum: sha1:ecea287ae4bd4eb85acf5a0d634a9465c481dfb7 docs/models/allocatable.md: id: f5e4ed9861ea last_write_checksum: sha1:57e689252e391d47f3d94ef7e87c95c1f13cb24f @@ -132,11 +194,11 @@ trackedFiles: pristine_git_object: 384ee37f3879db1819d585ad6bb8702c8c3fb77d docs/models/apikey.md: id: 3cd1b4235d4f - last_write_checksum: sha1:1fd3969add312c09614f4f96e1cf62170780c204 + last_write_checksum: sha1:e666419dad56024769df2533e900ae371e695d55 pristine_git_object: e81bb271ba1e9235dc56d3b78b0b636d1fb9063d docs/models/apikeydeploymentsetupconfig.md: id: 94e948d4277d - last_write_checksum: sha1:e6907825e541da0f67c0f237d6743bee58f5cf8e + last_write_checksum: sha1:cdc25c4b655512ed2e1660b8dbc4f7b8b93f697a pristine_git_object: 225b98c318b4a9c5c49506edfb4bf236e7852ef1 docs/models/apikeydeploymentsetupenvironmentvariable.md: id: c70b47f3747b @@ -150,6 +212,32 @@ trackedFiles: id: ee921219595e last_write_checksum: sha1:c71d08572ee16fb9628dc9d71c1b611dcd66a660 pristine_git_object: f0f8e176942934e58229d7c3587fc5ce156a0c21 + docs/models/availability1.md: + last_write_checksum: sha1:109595af738eb13a82e9d6d695aff8ab2d19ccad + docs/models/availability2.md: + last_write_checksum: sha1:1023a998e2d2bb0cf91d3bbf1e668729099915d8 + docs/models/availability3.md: + last_write_checksum: sha1:fd098ebf4abf86cd69cf50d1e663aef5e8bf761f + docs/models/availability4.md: + last_write_checksum: sha1:db4551dbc0c50e01dbb7d779715c79ca5e55e25d + docs/models/availabilityenum1.md: + last_write_checksum: sha1:2369b8122340ff0ea756486c888457ebcbcbebb1 + docs/models/availabilityenum2.md: + last_write_checksum: sha1:69c62c33c91c59462f082970a56fb4a8cfaa70fe + docs/models/availabilityenum3.md: + last_write_checksum: sha1:175374fe8d9dc299c1d477132654fe361f7cfe8e + docs/models/availabilityenum4.md: + last_write_checksum: sha1:f0762f6ff1095de35274653e21b6d6df64bdbde8 + docs/models/availabilitysource1.md: + last_write_checksum: sha1:1d35384586aa80d15d16a33021d98549c99d59a9 + docs/models/availabilitysource2.md: + last_write_checksum: sha1:2738f40c5306dbe4cbbd72f5a4fab588c18fe27f + docs/models/availabilitysource3.md: + last_write_checksum: sha1:6bc3b222d9fc557e819882728ee999a078cae398 + docs/models/availabilitysource4.md: + last_write_checksum: sha1:c1a3c67ae691659a9a2625687d79bccb2ee6ed40 + docs/models/availabilityunion.md: + last_write_checksum: sha1:a767263666af3e892ac8a6b4d665453aa4f45976 docs/models/azuretargetstacksettings.md: id: 5025c3d232b3 last_write_checksum: sha1:52d1d0a285d3f6228019ac2b9d12d759bfdeb58a @@ -170,22 +258,14 @@ trackedFiles: id: 5a46cf0db1b3 last_write_checksum: sha1:0c16cfaaa21609779183d9284666e64b32907d63 pristine_git_object: d1a0ca802eed152adb467d2af67603ca373f8d9f - docs/models/blocker1.md: - id: 507cd016d998 - last_write_checksum: sha1:77053e8b94d7091e5b293c38bd0f5f0498c49369 - pristine_git_object: 2fe0fc84f9ff76a6f0162ffc64b02858850bf785 - docs/models/blocker2.md: - id: f01996218dd0 - last_write_checksum: sha1:405cfebb74595d93a7b9de75d86c7b3254fdc0e4 - pristine_git_object: ff965e3a1db8f83693893c9efda1881231039935 - docs/models/blocker3.md: - id: 5cf6f72c1bc6 - last_write_checksum: sha1:51ac5ca9e8fd8ae034d2f07642b2cd07f0748105 - pristine_git_object: 484343a2d8557d2bcab763cfbcf79b5f8ddbb7db - docs/models/blocker4.md: - id: 3e5133e0ccf4 - last_write_checksum: sha1:7e51bd175aea71babdaab475cf4dee5252533451 - pristine_git_object: 63003c959639415571049440ac4064aa60ee8a2a + docs/models/blockerenum1.md: + last_write_checksum: sha1:0e60955df4dfc74beceadd01d407215bb58fee34 + docs/models/blockerenum2.md: + last_write_checksum: sha1:acf2839feebc1f4d5b88c68474acbeb3b22f73a5 + docs/models/blockerenum3.md: + last_write_checksum: sha1:90e05eb057fa2adcde96dee23cd180ef3f17ce4a + docs/models/blockerenum4.md: + last_write_checksum: sha1:fff071ff1003118025f9fa75c6919cc9223de17f docs/models/buildphase.md: last_write_checksum: sha1:e5e2e979bd69fa37e8dade60e41909ffc8e9f0f2 docs/models/cancelmachinesmachinedrainresponse.md: @@ -276,6 +356,14 @@ trackedFiles: id: 28c98472732d last_write_checksum: sha1:27517667d194036ba920b53707d753ac857eb301 pristine_git_object: 8c71bf16fef064baec8711d6cac5e6338b24eb72 + docs/models/clientapi1.md: + last_write_checksum: sha1:cd208911b1d41f5675c2b79f71a997ea882e4c91 + docs/models/clientapi2.md: + last_write_checksum: sha1:2eb3fe8a459cdf71ce89753544b929349cd93628 + docs/models/clientapi3.md: + last_write_checksum: sha1:05bba9ceab6e3210fb518e37294d62b5b1dc22c8 + docs/models/clientapi4.md: + last_write_checksum: sha1:194d18a898f1399b520e2af2cfe88f6c13495022 docs/models/clioutputs.md: id: 21217d26d7be last_write_checksum: sha1:de766a2059acf3cb8e93ba8c71ac4e8415b7ee42 @@ -710,7 +798,7 @@ trackedFiles: pristine_git_object: fb419607eddc72c62487fe371f773d47443cb0e2 docs/models/createapikeyresponse.md: id: 996065c0a0a7 - last_write_checksum: sha1:ebacec95b1644ee5623fadeeb247ae9f0bf16d6c + last_write_checksum: sha1:e713189646fe8467629624698145a7ceef76e100 pristine_git_object: 33a675c3efc193380afc87185f83d0c8810cb914 docs/models/createapikeyresponsetype.md: id: 4e3b885278af @@ -740,6 +828,8 @@ trackedFiles: id: 6fb2d2ed429a last_write_checksum: sha1:838f8335e47bb60b9981232093994164e88269c8 pristine_git_object: e42fd0f648f4d056c5c4e07837875b7f5d0a5d73 + docs/models/createdby.md: + last_write_checksum: sha1:00c9ce9571a58f03954e5512ed17f29c44600967 docs/models/createdbyuser.md: id: 7edc5072a546 last_write_checksum: sha1:1eceed53828cfb7f87a5e705b1fdebfce728ea66 @@ -750,11 +840,11 @@ trackedFiles: pristine_git_object: 5e650afd873b87c30698dc25391cf1b696bb25d6 docs/models/createdeploymentgrouprequest.md: id: c766039a815c - last_write_checksum: sha1:2bc9cc02abd2b3f0addeb7abbb3ce0b6994697c1 + last_write_checksum: sha1:624b08291f86cbaf9311e885fa6e1beed408d8db pristine_git_object: d8c4c8a1a07fd40184460fca5dbfc23f4793005e docs/models/createdeploymentgrouptokenrequest.md: id: 6a628edd53de - last_write_checksum: sha1:eca2e9f66912f4ada328a7ebffbf972dced8911b + last_write_checksum: sha1:f61aa4fc0086cddcd8c440eb082ea42b8dfd3370 pristine_git_object: 0a0b12f140126dde52d3de6458f8795acc342097 docs/models/createdeploymentgrouptokenresponse.md: id: eeac48f28c45 @@ -762,7 +852,7 @@ trackedFiles: pristine_git_object: 2dad4d8973b11b7f21d659b5f31969678ee5d79d docs/models/createdeploymentresponse.md: id: d0094ab801d5 - last_write_checksum: sha1:63e56a679739a1f6b8b27c8d85398c5e0fe216eb + last_write_checksum: sha1:c2d1503b58924f7491654bc6acba62996282ed75 pristine_git_object: f4a8e527b319110bc420664795c203322960f3b7 docs/models/createdeploymentresponsedeploymentmodel.md: id: 154b0e1730f7 @@ -786,7 +876,7 @@ trackedFiles: pristine_git_object: a4f55cf55ca190a6cc661a37ed934bfbf26b2de4 docs/models/createmanagerresponse.md: id: 0a11154b47da - last_write_checksum: sha1:2e7f061ea5ce06b7f601c574b35e0128bb713072 + last_write_checksum: sha1:0b37d8b2adc41fe3ff147ae09fa661a27afc4e37 pristine_git_object: f87e7633ac6b6473514a59f63ecfc711ebbc90db docs/models/createmanagerresponseaws1.md: id: 5755836d97fd @@ -1204,6 +1294,30 @@ trackedFiles: id: 51df42a7ca56 last_write_checksum: sha1:5f8d3077353b97a38d90820cd751e73beafff70b pristine_git_object: bd665b6a1aa916b6d2129c86fd7c76d605b32405 + docs/models/createmanagerresponsefailuredomains1.md: + last_write_checksum: sha1:942f6ee4949b2a491fe472204075f284c9f31962 + docs/models/createmanagerresponsefailuredomains2.md: + last_write_checksum: sha1:5ab6471cfab979ddb0f234e0caa37059f941bc57 + docs/models/createmanagerresponsefailuredomains3.md: + last_write_checksum: sha1:908fc54b5d0ad2db482ff260ea478d00f68bea5a + docs/models/createmanagerresponsefailuredomains4.md: + last_write_checksum: sha1:dd794d26123b54f09433038718cbd2125d0573b8 + docs/models/createmanagerresponsefailuredomains5.md: + last_write_checksum: sha1:2512ae64739dcb4b5ae93bcbfa7f5765da1ee14e + docs/models/createmanagerresponsefailuredomains6.md: + last_write_checksum: sha1:75ae039b3d0eccdca27524b6e1fe3e35ab1c4605 + docs/models/createmanagerresponsefailuredomainsunion1.md: + last_write_checksum: sha1:045e34f5da371ee4e1dca6a6dcaa0e1a350c3c26 + docs/models/createmanagerresponsefailuredomainsunion2.md: + last_write_checksum: sha1:cf01b5d87c5c18ad65f23b2360f23f7c9f6bd96e + docs/models/createmanagerresponsefailuredomainsunion3.md: + last_write_checksum: sha1:9dfd64464ba2a1729f19d4022ed8bcb4ccc8403f + docs/models/createmanagerresponsefailuredomainsunion4.md: + last_write_checksum: sha1:3a32593d17c56759606bf988030e3bc9c5b76a96 + docs/models/createmanagerresponsefailuredomainsunion5.md: + last_write_checksum: sha1:a14d3ed6725b0fde2b12b1ef51e4d7829487347b + docs/models/createmanagerresponsefailuredomainsunion6.md: + last_write_checksum: sha1:948dc4dbac53ff5b29a485d3378a846f40153e16 docs/models/createmanagerresponsegcp1.md: id: eb22a80b3824 last_write_checksum: sha1:5eddafb4c9686069fbd0ba5dfd819a7cd0fe6542 @@ -1410,27 +1524,27 @@ trackedFiles: pristine_git_object: 14c78dedfe2c01baab18da282a00bef00e64f1f5 docs/models/createmanagerresponsepoolsautoscale1.md: id: 7e4b16fc9837 - last_write_checksum: sha1:b770a769f6a3e84feca0770a93e1d50ab78a8d81 + last_write_checksum: sha1:cce919accaff4c80b69fdf6ffd14f8057427b3e8 pristine_git_object: cb1ecb7c35583e407b93d96ca2dd56e9a5af33ba docs/models/createmanagerresponsepoolsautoscale2.md: id: 20092f13dd60 - last_write_checksum: sha1:6027be9498dfc61a66e86b79bdcf041b19b7606a + last_write_checksum: sha1:688b4f1acd9d19d2704f51acdb5d40c553569b9d pristine_git_object: f7f0d20316e564ba550d0e8d810697cc643a25d0 docs/models/createmanagerresponsepoolsautoscale3.md: id: 4e00d6a93c2e - last_write_checksum: sha1:bfa6a423fb59f448bcdcd1cf689fb334eea94b0c + last_write_checksum: sha1:971ca80e0f88b7de5890500fbea9232272349be0 pristine_git_object: 9d13dc814ad58814f61e6f96cc648319b3ef7095 docs/models/createmanagerresponsepoolsfixed1.md: id: d3b9d57808b5 - last_write_checksum: sha1:2cfa5b67cc909ecf54604f0f852e9c192816c28d + last_write_checksum: sha1:dcb007210493358d9b8a5933900173282a34d19d pristine_git_object: 7dee6b6068177d4d7bec0ac84320802e04dc175b docs/models/createmanagerresponsepoolsfixed2.md: id: d2bee126027c - last_write_checksum: sha1:a944b25ecdf7cb39455120820d21a63a6ea9e307 + last_write_checksum: sha1:e6b37e77d740fa3019c9ab3c2f95683def2dc432 pristine_git_object: 1cc3557ea3f292eee18f0a2f4a134bf00399e53a docs/models/createmanagerresponsepoolsfixed3.md: id: 2872c45be94c - last_write_checksum: sha1:ff2a8e81720fc00e6460766cc7270393d7fee429 + last_write_checksum: sha1:2569b40a439f8be34fa6c35c06d76cf0d0032a7b pristine_git_object: 5bf975c7b47fabf116540e2209fc908b33541701 docs/models/createmanagerresponsepoolsunion1.md: id: f444c1fc8f6c @@ -1894,7 +2008,7 @@ trackedFiles: pristine_git_object: 9f27025d64b6f3997426a355d78e5710754a81b0 docs/models/createmanagerresponsesetupconfig.md: id: ae97736792ae - last_write_checksum: sha1:e88d54f00826da0d7955fad36197ccc32cf2a3f7 + last_write_checksum: sha1:614deb6a834c404f73a87d89f7a9ec9162699dc5 pristine_git_object: 0f3a67f07ab314fe56f098349171b4229eeca7aa docs/models/createmanagerresponsesetupgoogleoauth.md: id: 6f6f72183056 @@ -2022,11 +2136,11 @@ trackedFiles: pristine_git_object: fadc1c463f3ef9fc7e6f8e9b0ada28db4d12b01c docs/models/createreleaserequest.md: id: 04c80489018b - last_write_checksum: sha1:f5552f647ac4a4e710c18338b40cc10eb84df65a + last_write_checksum: sha1:4b443149c00932fddf1bdeda6b1bbe15a8e77cdc pristine_git_object: b26f05c7575e138c6953669e1b7f28d66fe8dcad docs/models/createsetupregistrationoperationrequest.md: id: 58e8c2d278b2 - last_write_checksum: sha1:1e0136b2ee4230d50f7c558760fcd8081e337389 + last_write_checksum: sha1:cab60d4ee8c270faf1842850ec0d4f9058ad8ce4 pristine_git_object: 5ef3701004068745aacee70691a00360803a6071 docs/models/createsetupregistrationoperationrequestaws.md: id: 417f099237fe @@ -2164,6 +2278,14 @@ trackedFiles: id: e18d82512d65 last_write_checksum: sha1:10067605d8e26c5649ecd0b200f35a6b4d154fb9 pristine_git_object: 19ebf9a4ba59d6cafec88daa5db84167fd552b65 + docs/models/createsetupregistrationoperationrequestfailuredomains1.md: + last_write_checksum: sha1:596f9b2eb05e52e45685bb9dc9f0a455aac63a33 + docs/models/createsetupregistrationoperationrequestfailuredomains2.md: + last_write_checksum: sha1:bb9bed5006fdfd1fea666372e3a8441c3468b743 + docs/models/createsetupregistrationoperationrequestfailuredomainsunion1.md: + last_write_checksum: sha1:4b76e1e969d7665dc2bc2a80692938bafa7eb1ba + docs/models/createsetupregistrationoperationrequestfailuredomainsunion2.md: + last_write_checksum: sha1:b6f1d25b58d6371ae77eeaefed394ac5484c01ea docs/models/createsetupregistrationoperationrequestgcp.md: id: 5608a171b819 last_write_checksum: sha1:e644b7ffb9c43dbe3020276c06b900d35a90b712 @@ -2274,11 +2396,11 @@ trackedFiles: pristine_git_object: 867d5d25f129f32f5be1cba247d787306aad506e docs/models/createsetupregistrationoperationrequestpoolsautoscale.md: id: 85d445130720 - last_write_checksum: sha1:02f9cb3762dca82f9454546be34a98e6c2afd5cb + last_write_checksum: sha1:c6d8193e387c129ee1aa786ccf1442d6549374d7 pristine_git_object: a3088980ff6eb64aae3352ee4127f1a121f0ee37 docs/models/createsetupregistrationoperationrequestpoolsfixed.md: id: 0e3d85b24fbc - last_write_checksum: sha1:439f0ced83ee4dbc7e61c2617364da07828dff36 + last_write_checksum: sha1:73ade5ed71ec01fc81cad221c812ab042207df63 pristine_git_object: e76d3e7c137a8d3fccd1cc0a15bf99c85baa0303 docs/models/createsetupregistrationoperationrequestpoolsunion.md: id: d08fe90df826 @@ -2434,7 +2556,7 @@ trackedFiles: pristine_git_object: fb4db879451ee867285dc9a402994c587232e5b7 docs/models/createsetupregistrationoperationrequestsource.md: id: 7a84ffef345a - last_write_checksum: sha1:062d961d00efcbe71fc7d350fc51328ecd1306ed + last_write_checksum: sha1:9972bcc563e7b5b7df87820de0dee89550f4d4a4 pristine_git_object: 65b4a4a44824480a719d692db9eed1e88917dae9 docs/models/createsetupregistrationoperationrequeststacksettings.md: id: 629acb1b8791 @@ -2648,26 +2770,26 @@ trackedFiles: id: fd6b15529498 last_write_checksum: sha1:b37585a65e44d2d2cef42d6b1a9ec2e6d392c006 pristine_git_object: b2454da5a59dd385063fa4881ccc53da5c936495 + docs/models/dataai.md: + last_write_checksum: sha1:8d3b78e7365b6eda036685219d1793f14c830544 docs/models/dataartifactregistry.md: id: 94e318c7b775 last_write_checksum: sha1:97fe78c24a26d8b5f5f4c09c68fc6caf0fcf1975 pristine_git_object: 401e9ba5215e2afef55f937a5f8ef22bc682cc3c - docs/models/dataassumingrole.md: - id: 7b72799ea2e0 - last_write_checksum: sha1:52e904ca5d50dd4d4ac2e86c6f0f7a4e400d1bb3 - pristine_git_object: 3b44fd7931f23f2fa791a171bfbb0aa4afb440c6 docs/models/dataaurora.md: id: ebef36103990 last_write_checksum: sha1:c1b40f15a57106074bfea1dff6e39e6f463e80ef pristine_git_object: 845576f5c988f4d81850364cc2fcfd7b2490fb3f docs/models/dataaws1.md: id: 4e43c89c248b - last_write_checksum: sha1:04a98ac4486942858abe56fb57f015bfb4464858 + last_write_checksum: sha1:4300e1cf2640bf7963f9c1f5c2320a341394659d pristine_git_object: e5001eef3ea912b3bc71573cf41ca340c20f9bb8 docs/models/dataaws2.md: id: 015288489f0e last_write_checksum: sha1:f916a73361fe97e7ff73458765cffd4305c97fe5 pristine_git_object: dc78efe59f39412d276e3ee1872b95ead339ebf5 + docs/models/dataawsbedrock.md: + last_write_checksum: sha1:f241c3641d4128b317e51bd7254981845483ed38 docs/models/dataawscodebuild.md: id: c8757e186b23 last_write_checksum: sha1:79ac5434d827a7f19ff4b21386c2592733dfac46 @@ -2688,6 +2810,8 @@ trackedFiles: id: 5ec841c1419e last_write_checksum: sha1:fb43a1e250be7fa292436b70bc73ee1cf13223fa pristine_git_object: 466a4f93cf8e0188ab14e01f0aff14d6eb3c1753 + docs/models/dataawskms.md: + last_write_checksum: sha1:4673927940c718cac1ca8e050a2673910f7461b6 docs/models/dataawslambda.md: id: f64f7f57ccf4 last_write_checksum: sha1:1350769c43becc3cd6a0298959ffdf4f7231bac1 @@ -2710,7 +2834,7 @@ trackedFiles: pristine_git_object: db8341fa8e49e3275ff15ad96666cd9737fc922e docs/models/dataazure1.md: id: a79343db7624 - last_write_checksum: sha1:10536e750f58e86e8bf26c9dfcd0884a513a77f6 + last_write_checksum: sha1:90e6b29dc47643118eb7d00c83d8b454c9431e75 pristine_git_object: 379971c487a7db8a568ea05b25f80e99f4027f54 docs/models/dataazure2.md: id: ea5119b629e6 @@ -2736,10 +2860,12 @@ trackedFiles: id: deb9f89405d3 last_write_checksum: sha1:fc3053bf2218474a1501b6291461ae8c49473047 pristine_git_object: 6bf4dcd9cd90f28eb5781409c3e1baf0ecc271f3 - docs/models/dataazurekeyvault.md: - id: f34b429d814f - last_write_checksum: sha1:ab251e4ddf12ac406b1532440448ba6def24ec1e - pristine_git_object: fa903de85df6638f739edf74806b5906dfd990bd + docs/models/dataazurefoundry.md: + last_write_checksum: sha1:dcdd7d6584e4232d5c1e4ed44306b6f561e92763 + docs/models/dataazurekeyvault1.md: + last_write_checksum: sha1:f78bf8eb863179dae295c3ba3a735ec02e8ce6eb + docs/models/dataazurekeyvault2.md: + last_write_checksum: sha1:f4414f4d11d95013cc7c1bbdfd0d10b10426d763 docs/models/dataazuremanagedidentity1.md: id: 42038bde58b3 last_write_checksum: sha1:1b6f0c47962f508957bc1f3113b324889d3c9e30 @@ -2780,26 +2906,6 @@ trackedFiles: id: d7f02587b7be last_write_checksum: sha1:2b44a5c9c5e28c60b0715ed9d469ed91e8f2251b pristine_git_object: 76bcd3919cef5ca1cec3a2f8d4dddf877bfb0cb9 - docs/models/databuildingimage.md: - id: ae8ac7d1ab1d - last_write_checksum: sha1:0c4f0da59ae94502f69d2a73879ea9984212b5a5 - pristine_git_object: 8451bcb4751b76b0100b9d693c11a80952a9ac11 - docs/models/databuildingresource.md: - id: 4757a944e420 - last_write_checksum: sha1:97e9b8dac05f159725e16f0630e076c67352019c - pristine_git_object: 697efce49df9f6428bd8a3c15e0c50ed90a6fb06 - docs/models/databuildingstack.md: - id: b9439804fa81 - last_write_checksum: sha1:b5bbce5cf16c2a7c437dd80d6b71fb269c4887b9 - pristine_git_object: ebc60fb551f4672ce36a5dac3e82e1401ac0daea - docs/models/datacleaningupenvironment.md: - id: 3f58261956a8 - last_write_checksum: sha1:ad1219d8780108ae4c5bac6cd6ebc77ee8bf5cdd - pristine_git_object: 5ee56c6583beeca76940ceaa1c2a7c6ebcf45a55 - docs/models/datacleaningupstack.md: - id: bb58eaeffbe0 - last_write_checksum: sha1:635d10d83fbb65aa12ecbab5b75c03ca365d0726 - pristine_git_object: 8496daa1d6cc6017e58f9015254f5e3b936c46f7 docs/models/datacloudsql.md: id: 0f5d5326c164 last_write_checksum: sha1:a7d1b5ab03bc60e8c0e84c08d39036321bbfba63 @@ -3052,6 +3158,14 @@ trackedFiles: id: 1ce50f99ad6b last_write_checksum: sha1:80fc3d7db83ddc5fa642ba9a942386beab73d65b pristine_git_object: 2133357d1f2bffc1dc6df465e0f5b451f7f7b2ad + docs/models/datacollectionissue66.md: + last_write_checksum: sha1:bc0f00b5781d0270b03b559f9bbc047346c846d6 + docs/models/datacollectionissue67.md: + last_write_checksum: sha1:4ec13864b5ff9ba4f984c63bc0d7e6774deabbf5 + docs/models/datacollectionissue68.md: + last_write_checksum: sha1:2f38c22510723b0d97e53e35fee9f7ee5ff44f87 + docs/models/datacollectionissue69.md: + last_write_checksum: sha1:3007a3ec1df89f672bde95f1cb9c669e37538187 docs/models/datacollectionissue7.md: id: 010a315ec94a last_write_checksum: sha1:5d033b6006cfa63ea9a0833f7ee80d3c31fb1baa @@ -3064,10 +3178,6 @@ trackedFiles: id: 7f8bfcd83914 last_write_checksum: sha1:b2a5c22b154043fb2ddb680627f0d2e01783bdce pristine_git_object: 0108650ac9d2be03f9ffb83382da0bc30b86d0fc - docs/models/datacompilingcode.md: - id: 46c0bff28614 - last_write_checksum: sha1:8db0540624f103ab8a9d936ae6c23aba1859e7db - pristine_git_object: 1a14afdd25edfaf67b5de2649899b92b4b53cf2b docs/models/datacomputecluster.md: id: 570b6ceef1ae last_write_checksum: sha1:ff774fbd839d36ac566a0ba1efef98dbb97375db @@ -3076,111 +3186,19 @@ trackedFiles: id: 268420ee4dd3 last_write_checksum: sha1:2542f9639629ff2460310cf1442f995b15cf1a72 pristine_git_object: 787120ac4682133d94cb12930a1c3fb021fc737c - docs/models/datacreatingrelease.md: - id: f07dd9072d78 - last_write_checksum: sha1:2bfb8184604223614f5c8bc744d55175ae741e30 - pristine_git_object: af2526d5a2aeacea6d41840868082d7a52d1af1a docs/models/datadaemon.md: id: 16b0ad709d6f last_write_checksum: sha1:7804059700a19b0512e05f2848598f015409edf7 pristine_git_object: a881640e344632797755924eef0546232f908d15 - docs/models/datadebuggingagent.md: - id: aba80ec1eb83 - last_write_checksum: sha1:489837d27293005887e915fcc13f91defe0d6ce2 - pristine_git_object: 595ffc79cc22a5175c6f28ccdeacb9b486130183 - docs/models/datadeletingagent.md: - id: bad29cbe37df - last_write_checksum: sha1:cb5156641758770a39a9f6c1ca9bd820735a25b7 - pristine_git_object: ea7feeb31c30b8da4350ad5efa4284f7bf97179f - docs/models/datadeletingcloudformationstack.md: - id: d4b93652f442 - last_write_checksum: sha1:21b6aecae715825ede871f1a0d6852df82bcfa9b - pristine_git_object: 93b4be6aab4eb13c07a2434209a04a6abba7287e - docs/models/datadeployingcloudformationstack.md: - id: 7e283b200ed2 - last_write_checksum: sha1:f02a370bfc0f83cabac75cf4a6f1e6ec573d2f2c - pristine_git_object: 1079d63322623ef5ad4980694b583d0adeb655fe - docs/models/datadeployingstack.md: - id: 535767541eeb - last_write_checksum: sha1:93c6f6ff7b429f4fd7d723c2780953fc287a60de - pristine_git_object: 49c811e65402371062533594cbf345a377e80006 - docs/models/datadeploymentcreated.md: - id: c92f8f571066 - last_write_checksum: sha1:8df1761b2c1d63ab2aa39bfbfc664bec21e73c50 - pristine_git_object: c13c03230d1c8ee221ddad3d9552ee3055c4150d - docs/models/datadeploymentdegraded.md: - id: 98daf5bd8a62 - last_write_checksum: sha1:1afd25a4df43d9070650a8c9668028678d29c716 - pristine_git_object: bc800471943e40b6ef68e066b2f47135af8118c2 - docs/models/datadeploymentdeleted.md: - id: d417d5815c96 - last_write_checksum: sha1:e76077f202ea70fb8b887e7cd3bafd78d8aed328 - pristine_git_object: 572373e0ffce1d11fb53e0a52cb233dd6009d9aa - docs/models/datadeploymentdeletionrequested.md: - id: 29b2dcc04f40 - last_write_checksum: sha1:880676ab8665922d49f58943335bebaeeafd38dc - pristine_git_object: 1382144047447077b25f1bee22e2a0aa1151ec8f - docs/models/datadeploymentenvironmentupdated.md: - id: 10f44b4d8678 - last_write_checksum: sha1:8a51455193787a89d194e4463aa60092e3a222e1 - pristine_git_object: b4e94540150e8d8a78a23b0fe78b73517d2f3897 - docs/models/datadeploymentfailed.md: - id: 5af8ee73d66f - last_write_checksum: sha1:2e842f281e33868b56c751b20acda39d013000f4 - pristine_git_object: c21788f88e9687016e49ca43dcf06bdf051d4d7d - docs/models/datadeploymentrecovered.md: - id: 39231634e572 - last_write_checksum: sha1:1e213f283636b1d999d542ff00c1af65369ea659 - pristine_git_object: 6833109bc0306881bf2dc4a1a7f33e6cd23e3220 - docs/models/datadeploymentredeployrequested.md: - id: 1f5ce29dbb2f - last_write_checksum: sha1:2abf5b064af370b1cc2160f120e59b651ea77dd4 - pristine_git_object: d3b46276d867b517682d59c03663792117d42a4c - docs/models/datadeploymentreleased.md: - id: 7c94572003bc - last_write_checksum: sha1:8106af7ace27180117079fb1428b43901f2dc9a3 - pristine_git_object: cf9ffeb9f7b0ca75b2b62db33fabe01c367fe645 - docs/models/datadeploymentreleasepinned.md: - id: e869ebf4e641 - last_write_checksum: sha1:d68b39c7d328900288d5d909b6f6d610740ed279 - pristine_git_object: 26abd58c4afbd9f43224cf3d7efa1b59013b5d0b - docs/models/datadeploymentreleaseunpinned.md: - id: 6129a292b662 - last_write_checksum: sha1:2eb3b32ce89a7b7530577c661e3a11b519153f06 - pristine_git_object: 5f9000befc4fba080419e704fc621ca7f52dce78 - docs/models/datadeploymentretryrequested.md: - id: ef7906ef5135 - last_write_checksum: sha1:43b309068048d924c373cf27c6e652cef6600512 - pristine_git_object: 034e56f22ba47377e4309b3895f09245faff2971 - docs/models/datadownloadingalienruntime.md: - last_write_checksum: sha1:9bf5130186142021d64e0f6dbea7dcec4bdb954e - docs/models/dataemptyingbuckets.md: - id: 48eb0000bfe6 - last_write_checksum: sha1:05b9d191726a460f68704e27767d525b1c369137 - pristine_git_object: 0c5dba194732657e1a5bbdad970f57a8873d3249 - docs/models/dataensuringdockerrepository.md: - id: f02f868523c3 - last_write_checksum: sha1:6a736b644bac91462025ca09f7abd7dcd3890e88 - pristine_git_object: d73067ba0e7b53b4791b1ad63cae382e7a556996 - docs/models/dataerror1.md: - id: 209fab812981 - last_write_checksum: sha1:d2077ef00eaeb7b17bdd65f9dcf9e09a21c28cc2 - pristine_git_object: 7a697b901bc77c6c7317c5853da1406e76ca0a84 - docs/models/dataerror2.md: - id: 10689a917b52 - last_write_checksum: sha1:5149a7bb1f2384f22e4e893fdab517b573b1ad2a - pristine_git_object: cd2c5cb5a1b23b6a140764ecce46f3a069a138ff - docs/models/datafinished.md: - id: 48d2627a55e1 - last_write_checksum: sha1:d83144245ccb53563e190f3eee9b1cb9e2b18c4a - pristine_git_object: 0669e0ef8c3f4844bb2947e20c0dbc266c62eb73 + docs/models/dataexternal.md: + last_write_checksum: sha1:e7dbe8ca715d29e82fcdf93a25e920b8fa278920 docs/models/dataflexibleserver.md: id: 2f1ebd3fc027 last_write_checksum: sha1:f57b3b72393468213e37109085e8cfd636778e71 pristine_git_object: 8d4c58d98f162d4dc6e84a0fe6d1e1c244fecc2e docs/models/datagcp1.md: id: 029d6b531c5b - last_write_checksum: sha1:69a378756bf79b9ad8b0bf859cf4b541bbd5c5b1 + last_write_checksum: sha1:3f52adb7f03eb5ec6a4a23961d83fbf7f024fd03 pristine_git_object: ba5d59e1c74002d9116faf4906fe3e5f0195d638 docs/models/datagcp2.md: id: 0beeab4d9b37 @@ -3194,6 +3212,8 @@ trackedFiles: id: a39aab4d2834 last_write_checksum: sha1:26690f894a2e2118fe9a023ddd04a83ab6eb5786 pristine_git_object: 0141c9e951471f47af9cd241db3e60fb56c43af1 + docs/models/datagcpcloudkms.md: + last_write_checksum: sha1:24e8e532c3606b75a999ef3d644f764a2f0b12b1 docs/models/datagcpcloudrun.md: id: 3a66d6274bbc last_write_checksum: sha1:2c9eb65e44a355c9992934fe613eb5d98a859af9 @@ -3226,18 +3246,12 @@ trackedFiles: id: 80009dfbbc14 last_write_checksum: sha1:d23eff1448b820f6e2f4a8c7e6ac0e14d66a0ba6 pristine_git_object: 94cee6a3504edc39fe4c71b3050a5a5f7622c3db + docs/models/datagcpvertex.md: + last_write_checksum: sha1:5f33a6e214c10c5ea5bb3fa486ffe1e0b7eca4a2 docs/models/datagcpvpc.md: id: a48c8a2142d6 last_write_checksum: sha1:ecdfb55e973c1ac75ad75d57bf73f3d879ecf3e3 pristine_git_object: 35401801a2a8749983dfbae04150e4160c225b81 - docs/models/datageneratingcloudformationtemplate.md: - id: 381027571b71 - last_write_checksum: sha1:cc7ea1791525fb2c951f233740b244612fa27c58 - pristine_git_object: 13e9bd0e6d134440b233f91d6fbdcf8e0575db01 - docs/models/datageneratingtemplate.md: - id: 9660148684b7 - last_write_checksum: sha1:fbd83764982727ccd4cd5762cb74e04ed8778725 - pristine_git_object: e83d11e190c23a086c50f0ae058f3218e2900f94 docs/models/datahealth1.md: id: fe849c8ee783 last_write_checksum: sha1:8b5e543044f2156646339fbd4acf1bf869c125b9 @@ -3486,10 +3500,24 @@ trackedFiles: id: 6722e06302e9 last_write_checksum: sha1:26ee913ee554d61996818de2de96b24102fdc5bb pristine_git_object: 42a077b1794407356dd4fd521e005408e688dd30 + docs/models/datahealth66.md: + last_write_checksum: sha1:3b9534ef167ccb707f6af8718bdfbf4d3ae0d48d + docs/models/datahealth67.md: + last_write_checksum: sha1:bb3150076e2ddfcf63f866ed6b456f6b9209cbb8 + docs/models/datahealth68.md: + last_write_checksum: sha1:135e6ae6a6d51b59478b5f789706fc5156ec016c + docs/models/datahealth69.md: + last_write_checksum: sha1:4c9a94888ff690a1111e3b89788f9e678eb80268 docs/models/datahealth7.md: id: c15d02a79867 last_write_checksum: sha1:3a2370d20ce5ecda3f85c599db8ee7a2332319ea pristine_git_object: 948b09c151470f21192436e0f6178b046eea1759 + docs/models/datahealth70.md: + last_write_checksum: sha1:d25e40370f0259ad82cbff511677ff83f3e2bae1 + docs/models/datahealth71.md: + last_write_checksum: sha1:b544d0d01b36dadce8fd19b5671508073847fa38 + docs/models/datahealth72.md: + last_write_checksum: sha1:6b69bae64823ec52e08742c37b2509a38de5130a docs/models/datahealth8.md: id: ebf7dec693fb last_write_checksum: sha1:57122e413cbd35a8c4a3b39811a84538b4963164 @@ -3500,12 +3528,10 @@ trackedFiles: pristine_git_object: e32150dbf3450a07ebd7f519d011e9d1658aa8e5 docs/models/datahorizonplatform.md: id: 9ba5c768edf1 - last_write_checksum: sha1:4be8538e2201bb979d33ce6f5eb69e185492afd3 + last_write_checksum: sha1:e5ce285da37bde7f34d9fd33369835b96bf65cb3 pristine_git_object: ea5b52c3059ed0aa8ee5a333452c8f59e9735e05 - docs/models/dataimportingstackstatefromcloudformation.md: - id: e2a2623a21b3 - last_write_checksum: sha1:4802f7fbbd261e7dfd0497df378d1acdabead82f - pristine_git_object: 8320b3128898402c86039b2ad47279dd181d4fc9 + docs/models/datakey.md: + last_write_checksum: sha1:10baa563943a97c791dc0d31bf83fd130bd4c7d9 docs/models/datakubernetes1.md: id: 74224d2bec4e last_write_checksum: sha1:9409ef3ab875afb3a6a3660b6aa2ddc4bed91244 @@ -3534,10 +3560,6 @@ trackedFiles: id: c1e906c7a015 last_write_checksum: sha1:f251a5d0789f3806cb2c8e693cb46281fd445602 pristine_git_object: 2d0d5fa63bae094fbfeeff37b4c71c1ba98acd76 - docs/models/dataloadingconfiguration.md: - id: cd0bd855dcb1 - last_write_checksum: sha1:1593a0d85b0f622686835d2b7205010672a35b6b - pristine_git_object: 5cb5148eed4f282d2d0ad480b789d1a0eee967f6 docs/models/datalocal1.md: id: 7ced19acc7a2 last_write_checksum: sha1:4018aaf6ad2c754b079102ffbecfe6df70bcbeb3 @@ -3584,7 +3606,7 @@ trackedFiles: pristine_git_object: 95c28cfa7a0c024d3e20f830a371c65ac328ca45 docs/models/datamachines1.md: id: 0d4e62962ae4 - last_write_checksum: sha1:bf2487328ce2ae511d71caa41eeb0a2af9892155 + last_write_checksum: sha1:0eab9da443767a65c5e7e33d01883b5db0f0630d pristine_git_object: b049d4b97a0f2cd8dd837a55a065702807991bf8 docs/models/datamachines2.md: id: 9506c5dfe4a9 @@ -3598,26 +3620,6 @@ trackedFiles: id: 47cb3abe0c8a last_write_checksum: sha1:245e7124e305834e85348890d9cdadae78d487b8 pristine_git_object: 5d3c81eee1887fa267a0dbaddb18f37d17d135f6 - docs/models/datapreparingenvironment.md: - id: 9f74baf1b294 - last_write_checksum: sha1:ed5f853e0366b7e54cfe9c71e86a82dd0983a662 - pristine_git_object: 52f8c8f3f79df5b64122d9923a8f7376e23f927f - docs/models/dataprovisioningagent.md: - id: a164fbc73c1f - last_write_checksum: sha1:8bbee5e755f52852f659a8d5c0a55d8ccab14802 - pristine_git_object: bc8856ca54fdecf85f7186407f158a48de2b9116 - docs/models/datapushingimage.md: - id: 460fa9e77dff - last_write_checksum: sha1:e1590b75673593645e1030b03a4f1b0417e18aea - pristine_git_object: 4fc451a2f4d025d3f5ea74c96c9fdb7c90c9d63e - docs/models/datapushingresource.md: - id: 14d57fff1132 - last_write_checksum: sha1:caf791154370880c6cc04b12a46c4f0e9a6e1b3d - pristine_git_object: 4e4a2078334dda0552fc8f035ee187942b896c1d - docs/models/datapushingstack.md: - id: 6e089c7a5290 - last_write_checksum: sha1:43955a7e9be76b480c2892530aaee28ebaa212c4 - pristine_git_object: b5da8bdc4cba98c405748d69dcfc11dd24cfb0a1 docs/models/dataqueue.md: id: 790fc933b7de last_write_checksum: sha1:9bf83f69c4de8bf38ac5e0dd2c9c31ede621fff5 @@ -3870,6 +3872,14 @@ trackedFiles: id: 4d51ce64f572 last_write_checksum: sha1:8b8e5d937dc10be94f977edac181a14f98cfffde pristine_git_object: 72f4fe8e7f0722c7d64e1f4ea2fdc5f05e40517f + docs/models/datareason66.md: + last_write_checksum: sha1:997039b1a83dac74a92c15ab767f67cbb8b756e6 + docs/models/datareason67.md: + last_write_checksum: sha1:55f5e97085b8376fa5ef247bd99236cc9e404b17 + docs/models/datareason68.md: + last_write_checksum: sha1:6fcc130812110d7b91315e8ebe389539c6d79947 + docs/models/datareason69.md: + last_write_checksum: sha1:2b77544d2ff19a5476e9349c6a3b82d4ba035413 docs/models/datareason7.md: id: 899e68a68ebb last_write_checksum: sha1:1200b1d244024845e90009a3e5ba1e5d718ca3d9 @@ -3886,14 +3896,6 @@ trackedFiles: id: 609a6e0bfff8 last_write_checksum: sha1:82e9fcb6a5b809f2cd4afa4147202bc376d15ac9 pristine_git_object: 9701267344348b7faf2c5742e4c7023c99be0af6 - docs/models/datarunningpreflights.md: - id: 41eac019b13a - last_write_checksum: sha1:4e3bf9b38b895bf50be21e1a95fcc88c45205fed - pristine_git_object: aa2c9ddb41ad65534417e0385287d01e985c527b - docs/models/datarunningtestworker.md: - id: ddfb0531481f - last_write_checksum: sha1:bc8b5701c604189a87a56c63e9fe10965f44b4dc - pristine_git_object: 475f34733524d7028c57507daff8a69e53bf1866 docs/models/dataserviceaccount.md: id: 69ffe7d6e718 last_write_checksum: sha1:66e800a7ba64573502058cd7b3b178c96580aba9 @@ -3902,22 +3904,10 @@ trackedFiles: id: e5ef919f557f last_write_checksum: sha1:38519fda9d2a386654c3d8a8729d5123356ed599 pristine_git_object: 5a3ccc997dd95d12c1ec8a6bdb4e59a826cdb0d6 - docs/models/datasettingupplatformcontext.md: - id: 98e52999db7b - last_write_checksum: sha1:2a45c3e5feedf64265cbb4120358a0b7ac4f2f82 - pristine_git_object: 2caff39861d376bb188031d84ca6c31db80e4b37 - docs/models/datastackstep.md: - id: ce973b8e73af - last_write_checksum: sha1:67e508ac6679244ac8dcf9739f4d7468d6c72e62 - pristine_git_object: 30d528696aae56b2aaf9828ebcb47ed865c42bef docs/models/datastorage.md: id: d13f9e6843dc last_write_checksum: sha1:ea8cb906ec2196557cd1044ffe366d96c111f063 pristine_git_object: 84dba92a67d703038ab565b279e7a4c4fc47e0dd - docs/models/dataupdatingagent.md: - id: d6c56f7c9536 - last_write_checksum: sha1:b3ac2d86e27f7f20a0691c8d3cc3a4bba648f59a - pristine_git_object: 79e63e3fbb08a1f23b63f2f73cd395a4e5ce69a4 docs/models/datavault.md: id: f7188cc0add6 last_write_checksum: sha1:a93d55c9060f825ae857ce32ae4a3673a6cc062b @@ -3990,9 +3980,11 @@ trackedFiles: id: 76db72e79688 last_write_checksum: sha1:dd991a07fe690c86f68b11cbf298a1717a7d3328 pristine_git_object: 3c2c58061fcc626b206dd478b4908772363536f5 + docs/models/deliverystatus.md: + last_write_checksum: sha1:72ddcd0ece31d2d13f50c1149a878e6582d11205 docs/models/deployment.md: id: e43ddcf597c5 - last_write_checksum: sha1:c1a2d4b8b4c1fce5c26515dc3fe59ee9700a987c + last_write_checksum: sha1:4f3cbbc713f51d52cdb22df8da148db9004d0d26 pristine_git_object: bc502aba0233b228e3f95bc6c79f896f2969391c docs/models/deploymentaws.md: id: 394331ec4c8d @@ -4126,33 +4118,13 @@ trackedFiles: id: 6c5375fdcca7 last_write_checksum: sha1:438405e75a2153c75735335283dc46c2e59f169e pristine_git_object: 1f9c56b24624364a3d58fdb01c06f2ee3db9ea21 - docs/models/deploymentdefaultboolean.md: - id: 6e2c86a3cb19 - last_write_checksum: sha1:b7359420caf29fb51a3d0a705ae1fd4a1fc16a21 - pristine_git_object: a3b912e0af87d379e6907e96502bf8e1778f6c65 - docs/models/deploymentdefaultnumber.md: - id: 6c52fdb6e322 - last_write_checksum: sha1:84217b4033261db2ce1caad7ba9ad6fc000352eb - pristine_git_object: 558b97aa896db2cd44ef10ff79711292f145ee83 - docs/models/deploymentdefaultstring.md: - id: 1a2d2fdc0cca - last_write_checksum: sha1:c656c7c2323a3007d4e0c1e829be45289f207a2e - pristine_git_object: 517a60fde979cc95ae5f03b06bced8b7685092a2 - docs/models/deploymentdefaultstringlist.md: - id: fa329743b031 - last_write_checksum: sha1:90284ba7e671151dd473c6a77f31d20711ffe0b2 - pristine_git_object: 54075985b0733a51eb44f81bf88f6f09816637de - docs/models/deploymentdefaultunion.md: - id: be82f3761caa - last_write_checksum: sha1:1ff690e5e7a3a8164befd44cea0889d4d1bcc4ff - pristine_git_object: d98673fadf6a336e4a15563496de50873cd162fe docs/models/deploymentdeploymentmodel.md: id: 81ff42dd9a74 last_write_checksum: sha1:ef84a8326e61973cd6d23b5f9e935d5efde5ba06 pristine_git_object: d493877a3400acbdbf8b9bbb6a36754fb60bb6f6 docs/models/deploymentdetailresponse.md: id: 712f7bbc8cc0 - last_write_checksum: sha1:007f2df1b7520e0a39a6d2df380624201fb1343e + last_write_checksum: sha1:cadb56d0e3c964bb55abb6207fdc8170e1d2d4fc pristine_git_object: 3edeebf1fc9f84d959a0c609e32588a548a5f00f docs/models/deploymentdetailresponseaws.md: id: c1ab737c8113 @@ -4262,26 +4234,6 @@ trackedFiles: id: e25e09f5bd43 last_write_checksum: sha1:d0c8996c057c02f883e6fe74e629e2ce6aa972e9 pristine_git_object: 0f7fa5712fa8f95f5a0e6919f8501a9fc0045bb9 - docs/models/deploymentdetailresponsedefaultboolean.md: - id: 2b338c7a7e3f - last_write_checksum: sha1:23d99dfcc0e71f48651f2a7b2a5a2dbed8225be8 - pristine_git_object: a0c8820c988ff47c1b1c716d308aa7a28204b0c9 - docs/models/deploymentdetailresponsedefaultnumber.md: - id: fb6dba14e559 - last_write_checksum: sha1:0d0e8f76d50cb8c828cde7e0944838e744e09719 - pristine_git_object: 331a30acebd50de9f15150e8c4762fa1afebe134 - docs/models/deploymentdetailresponsedefaultstring.md: - id: c6f36efb3939 - last_write_checksum: sha1:54722a2d9745616b7485e9b0ceb8531a85548cc5 - pristine_git_object: 8f4e09e3c9177b3b1f9c2a1ce538172ce9f67c33 - docs/models/deploymentdetailresponsedefaultstringlist.md: - id: a916380b130a - last_write_checksum: sha1:c27328de49c0f357e3970521feeb6f00c1ecf008 - pristine_git_object: d3192be77be7f80574ba1d8b4d66400f068458c3 - docs/models/deploymentdetailresponsedefaultunion.md: - id: e3f8a73b48a7 - last_write_checksum: sha1:6e41e835db18cac644389bf5dc5a3b0f19436998 - pristine_git_object: 0f8867ec8e7df9918753c288ceadde53eb9e2b95 docs/models/deploymentdetailresponsedeploymentmodel.md: id: 097384e10aaa last_write_checksum: sha1:fd7640ca41318b398ef227ad66139cc299517c49 @@ -4306,10 +4258,6 @@ trackedFiles: id: 35daebcbeb2a last_write_checksum: sha1:dc96181a39de817923d83a236f1e22ae3ab8f574 pristine_git_object: 71f1bcb6ac36590615a19e189a6f1cea8bd97edf - docs/models/deploymentdetailresponseenv.md: - id: 422fc7af6a93 - last_write_checksum: sha1:fd56d5030baba40b51855c2e54c8eb9704e7dca0 - pristine_git_object: a4630e177b292adb274d5d1ec8cf47bbab2f0744 docs/models/deploymentdetailresponseenvironmentinfoaws.md: id: 12771a984be6 last_write_checksum: sha1:9dc4e9d3512dd115b2822c21279c1a9fd8802b8b @@ -4362,102 +4310,18 @@ trackedFiles: id: b87ce1c9b33d last_write_checksum: sha1:dd3f996efb1851a7f7b47dce785ae2c20fd11e26 pristine_git_object: 8b8f7280fa0e7b8ac8fbf8b210fe792a551a208a - docs/models/deploymentdetailresponseextend.md: - id: 9879f1df604e - last_write_checksum: sha1:70f28c8351be754be4582219fc94f4f214005d42 - pristine_git_object: c20cbbb0331f401106cfa4decb9f863501f84174 - docs/models/deploymentdetailresponseextendaw.md: - id: 490e6eab6db9 - last_write_checksum: sha1:dcf654670c5234104fc88d2fbfb3525ec731d239 - pristine_git_object: 695f927a7bd5cc11b36018fa06362e38c00ba8d8 - docs/models/deploymentdetailresponseextendawbinding.md: - id: 93114dd45b8c - last_write_checksum: sha1:b194b61fecb246998fc4ae1789493fb08da82b9d - pristine_git_object: fb65dafa1a4234c15815104248dadb1078cb4418 - docs/models/deploymentdetailresponseextendawgrant.md: - id: 861a9839b46c - last_write_checksum: sha1:05f3a8016ce0db103c24c3ce89309385bf445a45 - pristine_git_object: c321c42962b81e1fb31ab46f8a0f8e65ee02ddf1 - docs/models/deploymentdetailresponseextendawresource.md: - id: ba6b1b933dd1 - last_write_checksum: sha1:aca26434aa148197cf6fb251f696492484c33f49 - pristine_git_object: ac2278fe3bfa0f8acaef34f9823032a9e2e13404 - docs/models/deploymentdetailresponseextendawstack.md: - id: 255a3420ea70 - last_write_checksum: sha1:623a8208bb723557ab9ebc839a6bce983c52ce18 - pristine_git_object: d707ad91881268896d0f798434bd774f47eb1643 - docs/models/deploymentdetailresponseextendazure.md: - id: f290a27aa861 - last_write_checksum: sha1:f40a75a8c3d4d3b00d29072921ff78afd8834af5 - pristine_git_object: c9e06f22dd7bf0d237d23c93dff4403fb98e7700 - docs/models/deploymentdetailresponseextendazurebinding.md: - id: 4038fe245c63 - last_write_checksum: sha1:c0e65cd50162b4e33fc5dca119b6e9ec39578798 - pristine_git_object: 9d78cc1ce59746367c23fb49fe2ddbbf9ff2d15d - docs/models/deploymentdetailresponseextendazuregrant.md: - id: 4ab0b68e5b4b - last_write_checksum: sha1:2afeb0fe8ab228e2b51e7a6cd2ffc06cf9448276 - pristine_git_object: 9c7b01cabc782854f1d054fc1def3e2158733d88 - docs/models/deploymentdetailresponseextendazureresource.md: - id: "094925366348" - last_write_checksum: sha1:e103ff28dde61c101f4613fe51b3cce2f205e5e1 - pristine_git_object: 8c7f98216b629d4f37de4129a7a2b72e5bf87485 - docs/models/deploymentdetailresponseextendazurestack.md: - id: 9a2b41a40b36 - last_write_checksum: sha1:420c189702769cd329d71b07ef468999aabfbfae - pristine_git_object: 99cb94a373f6e1cd8d1a639a825a843e99ece7b4 - docs/models/deploymentdetailresponseextendconditionresource.md: - id: 7bdfbf891505 - last_write_checksum: sha1:7f3760b9b3185970d3b69128be050f7a201b8cf9 - pristine_git_object: 97c8752682e257a367a279e395e3a998b7b3d6ec - docs/models/deploymentdetailresponseextendconditionstack.md: - id: cf7c08b9363a - last_write_checksum: sha1:76b475d7703d5b3e68a9cdc8e7ac9d50bbaef8d3 - pristine_git_object: 2a688ff7cee6ad8ce920b1ea1d7470365f882a76 - docs/models/deploymentdetailresponseextendeffect.md: - id: 7a0a85c2e41e - last_write_checksum: sha1:359ed802f0f6bf61fd642ec6808b686b942efaa8 - pristine_git_object: e146007c329947d57e2619f2951686a79986aacf - docs/models/deploymentdetailresponseextendgcp.md: - id: 21cba32b3f3f - last_write_checksum: sha1:7d2b8236f138d5654b2566fd734e025096353f6e - pristine_git_object: 50fd114d1c31719fcab3ddc5bed0a05ae6bfb625 - docs/models/deploymentdetailresponseextendgcpbinding.md: - id: 08b7c2533865 - last_write_checksum: sha1:5776cfb79a22f41799942cda7884226be83b5ad5 - pristine_git_object: 565702231f91e318d458b2b8df483fde028ce79c - docs/models/deploymentdetailresponseextendgcpgrant.md: - id: cdb9bf0d22a6 - last_write_checksum: sha1:e01d3ff8442c2a97292db42cd253179e9658961e - pristine_git_object: 289010cbb37b280ef32bffd58a59a83e8f9428de - docs/models/deploymentdetailresponseextendgcpresource.md: - id: 24e68e0e3e61 - last_write_checksum: sha1:da54f299ef70a75e786a65c78bb331a8ad919487 - pristine_git_object: 8cad3f4121c60924b66a845931081e037e90e7df - docs/models/deploymentdetailresponseextendgcpstack.md: - id: 934c61c15278 - last_write_checksum: sha1:2e2c208660c0289689185dd69331d07118d9d896 - pristine_git_object: 6c15305bf1b1f30fc733672f029cd500f9cb5da0 - docs/models/deploymentdetailresponseextendplatforms.md: - id: ac38683843a6 - last_write_checksum: sha1:d361790f509460399ab4d9f7f9d995bb9e71a75b - pristine_git_object: a0473f156561f989be67e82e38e30c043757425d - docs/models/deploymentdetailresponseextendresourceconditionunion.md: - id: 93034b1a3f42 - last_write_checksum: sha1:c5df9e2f2de0636b4373cf66b9f470e1c0e99ec2 - pristine_git_object: 0b5e5216335df1a73eef2e65d294f92ef5bb2314 - docs/models/deploymentdetailresponseextendstackconditionunion.md: - id: 57934c6a1310 - last_write_checksum: sha1:bb7ef00bdce1a67dd3d916a889a0f026d30463f7 - pristine_git_object: 58883f707b4f235f46c54da1fa1cdb16a6194b2d - docs/models/deploymentdetailresponseextendunion.md: - id: edd8c0a8b87c - last_write_checksum: sha1:34110cf86f4cf48e80c30d1157311a53d8d8727e - pristine_git_object: fff71bf176eeeaa88ff206c1fd55af327e9349fc docs/models/deploymentdetailresponseexternalbindings.md: id: 9057d03ab118 last_write_checksum: sha1:449b20fdcdc6fd1c22b6de158b3ff07080533156 pristine_git_object: 95942807f971d672d5cdbfb2ac571d4c2f9e5223 + docs/models/deploymentdetailresponsefailuredomains1.md: + last_write_checksum: sha1:6cba627d730d86c25304b9eb916d8d0123234fb0 + docs/models/deploymentdetailresponsefailuredomains2.md: + last_write_checksum: sha1:a4137ae1d787e917c01fcee129bdb965ca1a5aa4 + docs/models/deploymentdetailresponsefailuredomainsunion1.md: + last_write_checksum: sha1:33efec8133ed8bcf42f9c10c6ae915f4fd83b429 + docs/models/deploymentdetailresponsefailuredomainsunion2.md: + last_write_checksum: sha1:58cc0146a8247ce9ccc2e629c03992c1aa57bf47 docs/models/deploymentdetailresponsegcpstacksettings.md: id: feccced930d4 last_write_checksum: sha1:e35bdf553f2022767c7159ac29fe2ded1d937227 @@ -4474,14 +4338,8 @@ trackedFiles: id: ed69aa0792f8 last_write_checksum: sha1:b854e9c779eeffd6c5768e5bc3434b357cf76565 pristine_git_object: e3292701a6938b0048d314c640ded60d11b51611 - docs/models/deploymentdetailresponseinput.md: - id: 138c8d395567 - last_write_checksum: sha1:f772a0aef790d9c0db3bf228188b0966fd292a2f - pristine_git_object: 014b0801e7462b649c8ff2c00e4969351f408a52 - docs/models/deploymentdetailresponsekind.md: - id: a67606a4d660 - last_write_checksum: sha1:4aa62641d6ddf10b8b84c8eb72163ac0aab33758 - pristine_git_object: e183d12aa56e9e14193234232dd95f27de706429 + docs/models/deploymentdetailresponseinitialsetupauthority.md: + last_write_checksum: sha1:ac3207405d86dcfb96dae3da2c0f2f352fcf15f7 docs/models/deploymentdetailresponsekubernetes.md: id: 5d8c298959ae last_write_checksum: sha1:436bbd071c9d3fe985add3300661717ffc8d2e0e @@ -4498,22 +4356,6 @@ trackedFiles: id: ef4f0f6ce5d3 last_write_checksum: sha1:c7cf034c1756258624e3d77d4ae1f86e3af53248 pristine_git_object: 5af2a020d9b55a492f6cc14e9e5311d67b27cbb0 - docs/models/deploymentdetailresponsemanagement1.md: - id: ce4103614205 - last_write_checksum: sha1:dd8ce120e703aa718968153d6e57f6a5abd43a9d - pristine_git_object: 7c2345b1be1ef528ede771593b3432179851db9a - docs/models/deploymentdetailresponsemanagement2.md: - id: a4661887a243 - last_write_checksum: sha1:9b6121f2cb035482f39bfe691f4a544cecfa3dc9 - pristine_git_object: ea22791df42fa08f94a6e2c7b12bb73034c8d2a8 - docs/models/deploymentdetailresponsemanagementenum.md: - id: 23b0a2562255 - last_write_checksum: sha1:09a04c00bb7ca6266b1931b590ecdcaad1506ba4 - pristine_git_object: a9c932982730d205c922098b2b85c3d3a238d735 - docs/models/deploymentdetailresponsemanagementunion.md: - id: 4253dc86062b - last_write_checksum: sha1:58422df96c19f6b12ef1ae34d46c1986a5835258 - pristine_git_object: 0bcce718754dbfe66cb81c4927f5a68e67061901 docs/models/deploymentdetailresponsemodecustom.md: id: 31a56006f52f last_write_checksum: sha1:3d96f63df506c7f9e60c254bbe0a767fe68b3bc2 @@ -4566,106 +4408,208 @@ trackedFiles: id: fd0cc6e279e3 last_write_checksum: sha1:8cd2db61b6063498a22d17a593707ddfe0db6b59 pristine_git_object: 288ba854f02521c0b8f3a4e63f8c390e999c0d01 - docs/models/deploymentdetailresponseoverride.md: - id: f336aa151b82 - last_write_checksum: sha1:9020ccc7d88be6e84b93b0cb6feeccd0d22ede02 - pristine_git_object: 071f7765e0638c13316983b5cfd49bfd0c3b92ce - docs/models/deploymentdetailresponseoverrideaw.md: - id: 5787561ddd12 - last_write_checksum: sha1:6891432c181741763966926c4559d3c53f8f11da - pristine_git_object: 700073994f7012d685c0f7e88890bc9ba4b89e4a - docs/models/deploymentdetailresponseoverrideawbinding.md: - id: 60a21e12947c - last_write_checksum: sha1:4e5f6baeb160dfd88e0b678ceb21d4acb52fbb31 - pristine_git_object: 04e0f75dc4de25fa46f9ff176482c1e6b02eda76 - docs/models/deploymentdetailresponseoverrideawgrant.md: - id: e756d201c593 - last_write_checksum: sha1:f1350fc32eb0e81f9e635308bfcacbd64c74673a - pristine_git_object: d6bfdf58506dfa6ad90d2d131c8b73053d39daec - docs/models/deploymentdetailresponseoverrideawresource.md: - id: 490f96801039 - last_write_checksum: sha1:b786f3ac04ea587385babcab4482cf862cb48972 - pristine_git_object: 819c0afc7a992aefe0ec94b363a376af781e386a - docs/models/deploymentdetailresponseoverrideawstack.md: - id: 6d038a087de5 - last_write_checksum: sha1:2efc4ee98255f0398f9daac402cd914469831f7a - pristine_git_object: 2afbef6a8d09030164f38e68232c8d1e7fe056d1 - docs/models/deploymentdetailresponseoverrideazure.md: - id: 97bf0e32c8e2 - last_write_checksum: sha1:a0ce55083d9ccc2907d037d67000380c4836a8bc - pristine_git_object: d754d5097b41f3d07bdde4ae364113449b5f589a - docs/models/deploymentdetailresponseoverrideazurebinding.md: - id: 8c92153786e6 - last_write_checksum: sha1:56dee61869e723ff56521fa1a09919b96b51d09c - pristine_git_object: 9563fad45d27b5f20413813b64f0a1068acf834d - docs/models/deploymentdetailresponseoverrideazuregrant.md: - id: 8baf5a0e7aec - last_write_checksum: sha1:2a4ff82e0623e80ddba891aa89ff9c5d6d5f39e5 - pristine_git_object: 83846b0aafd19f4aa35ff78e1a57b38e18d50918 - docs/models/deploymentdetailresponseoverrideazureresource.md: - id: 7f82421e1c26 - last_write_checksum: sha1:d7057d92fbad783956431909345055d838442fb2 - pristine_git_object: 0c30c43b06f839a35cab69b0d7f324c2d1ba853f - docs/models/deploymentdetailresponseoverrideazurestack.md: - id: f2224b5f7b64 - last_write_checksum: sha1:0e0bbfdac554523bd11d4cc5235bbc4868561509 - pristine_git_object: 7be375f03b6c2d4593daf74559405d569527aad3 - docs/models/deploymentdetailresponseoverrideconditionresource.md: - id: 083ae4c00bef - last_write_checksum: sha1:81a291d1685a003267f70a71ba1077b09a2ab968 - pristine_git_object: 7685ba33d2a8625ca64ba2e7e59a877bb6414057 - docs/models/deploymentdetailresponseoverrideconditionstack.md: - id: 57b2a6ebcbb3 - last_write_checksum: sha1:dade19477479c65edfe3db6d8ca2ac004d0d9b17 - pristine_git_object: d44f96a54484aff1cb5becdae20c235828f206c5 - docs/models/deploymentdetailresponseoverrideeffect.md: - id: 574ee0e6140e - last_write_checksum: sha1:620e0ed42cc523f3a78f06327f6798e7af439229 - pristine_git_object: bedb8d3a89d22e77fac2e42dbe8f042177ef554b - docs/models/deploymentdetailresponseoverridegcp.md: - id: 2676420d62cb - last_write_checksum: sha1:7bc657ac80c1136e7e416e97661fd79292f0f4d2 - pristine_git_object: 7e7e20fc319a326f93e1a75529a8d4c161d1a2b5 - docs/models/deploymentdetailresponseoverridegcpbinding.md: - id: 812f30c5a2f7 - last_write_checksum: sha1:b32940b7af435f7ebabfafd08b0881ae19ae95af - pristine_git_object: f96ea22549f735b1c8118785f077f53c55fcb8d4 - docs/models/deploymentdetailresponseoverridegcpgrant.md: - id: 4e1bbf920d10 - last_write_checksum: sha1:6782b2bc4ee6fd8a18307afb5d7178393aecce1f - pristine_git_object: ef844b1888ae71f499158c60486e0676af8fa689 - docs/models/deploymentdetailresponseoverridegcpresource.md: - id: 9b69d2487eab - last_write_checksum: sha1:9dbfcc999090360abc2dedd6fc6c4e17b6321e8d - pristine_git_object: 741e62b033b41e67ab4a7848a5a425903ad98387 - docs/models/deploymentdetailresponseoverridegcpstack.md: - id: 38d30040ab0f - last_write_checksum: sha1:0b41208742782373e750698f68d251effecd5ec5 - pristine_git_object: fb8511e55106863195d8dee7bfdd51443295ad21 - docs/models/deploymentdetailresponseoverrideplatforms.md: - id: b387235e66e0 - last_write_checksum: sha1:a65600769659e40de79f8d14e2c6bfa5858e94df - pristine_git_object: ccae4039390f9b810c61745a3a25a8ad78312ebe - docs/models/deploymentdetailresponseoverrideresourceconditionunion.md: - id: ff2ea980a63f - last_write_checksum: sha1:de6823833ebef8a820ea880bb9f27c7a207cc8ba - pristine_git_object: dc23b0b3f71883bd3127b0a704f3597cd5185075 - docs/models/deploymentdetailresponseoverridestackconditionunion.md: - id: 94686173ff64 - last_write_checksum: sha1:d724a64be6a2b53bf0de6e1a2d1b35d65e745a37 - pristine_git_object: 0b39721ed7e8951dc8d80def9bf508b2414cd1be - docs/models/deploymentdetailresponseoverrideunion.md: - id: f0e3e34ca27f - last_write_checksum: sha1:2f55e3b0667a85a2450c2da1504a6df197bc34c5 - pristine_git_object: 9f2a38d0ee7f51faed28e86e14ef365a0e7a18a0 docs/models/deploymentdetailresponseownership.md: id: cb03f50a4674 last_write_checksum: sha1:4ac16a50af2da6a506285606acf2edfebfe216c4 pristine_git_object: a5d81b7d1700dcc394656ea679e33e0470e3b176 - docs/models/deploymentdetailresponsepermissions.md: - id: 046b6d823240 - last_write_checksum: sha1:dc7f1737a60ca186c0ad1474716e51a17cca1928 - pristine_git_object: 095bee0cf5c70cbfec5053a201eee5601862ad5b + docs/models/deploymentdetailresponsependingpreparedstack.md: + last_write_checksum: sha1:fda2d4a2b8a0650e7fe1dfda2497a44de79013a6 + docs/models/deploymentdetailresponsependingpreparedstackconfig.md: + last_write_checksum: sha1:2a4d43aff18ae6a48ef09d473f5ca6c9d2b1ddda + docs/models/deploymentdetailresponsependingpreparedstackdefaultboolean.md: + last_write_checksum: sha1:a2fb83f0ccf34a4017d3cbcc67e41f0fd705d0e6 + docs/models/deploymentdetailresponsependingpreparedstackdefaultnumber.md: + last_write_checksum: sha1:98517719bdf09f9b7eccda3c4bb1479aeb4db6b5 + docs/models/deploymentdetailresponsependingpreparedstackdefaultstring.md: + last_write_checksum: sha1:db3de4aa53dfb6f3c2859e47f29bae5eb51e1bf9 + docs/models/deploymentdetailresponsependingpreparedstackdefaultstringlist.md: + last_write_checksum: sha1:e3030dadb3ad39ad8e09060c5b12595f593895e0 + docs/models/deploymentdetailresponsependingpreparedstackdefaultunion.md: + last_write_checksum: sha1:494a876db24e4fd6d80a160224e97b0d4c6ff9f0 + docs/models/deploymentdetailresponsependingpreparedstackdependency.md: + last_write_checksum: sha1:a09f6580c57ab52c18dba4e28d0ff3af42eccc92 + docs/models/deploymentdetailresponsependingpreparedstackenv.md: + last_write_checksum: sha1:b6bb23fe72ba5d0dd33c5932563e1e0abcac8a60 + docs/models/deploymentdetailresponsependingpreparedstackextend.md: + last_write_checksum: sha1:8bd86d24a347314a9c8adb8958994b9e679578cd + docs/models/deploymentdetailresponsependingpreparedstackextendaw.md: + last_write_checksum: sha1:2bf7045e6977db9ed628dfdd19091d63567b96c2 + docs/models/deploymentdetailresponsependingpreparedstackextendawbinding.md: + last_write_checksum: sha1:f4efde1aa3f728b83842009e02a9a5e5aeb1b000 + docs/models/deploymentdetailresponsependingpreparedstackextendawgrant.md: + last_write_checksum: sha1:4ec51d6ce43cc453e06553b4811561aad7a39625 + docs/models/deploymentdetailresponsependingpreparedstackextendawresource.md: + last_write_checksum: sha1:976d8a6de22bb1f40e972506fca8c0190a81ff76 + docs/models/deploymentdetailresponsependingpreparedstackextendawstack.md: + last_write_checksum: sha1:35d31142c422b48cfa7e1242459c0ac6443ba356 + docs/models/deploymentdetailresponsependingpreparedstackextendazure.md: + last_write_checksum: sha1:9e838d79f4f54abca2ea399c84adc397fbc1d9ac + docs/models/deploymentdetailresponsependingpreparedstackextendazurebinding.md: + last_write_checksum: sha1:4cb301b0e2cfb691a2c060e8ae51b732bccd2ea5 + docs/models/deploymentdetailresponsependingpreparedstackextendazuregrant.md: + last_write_checksum: sha1:3138830eef7130cd6ef82f485d6e28e803d6e542 + docs/models/deploymentdetailresponsependingpreparedstackextendazureresource.md: + last_write_checksum: sha1:95b0eb7deb14c2b6b05bd0b588ba141e109ec872 + docs/models/deploymentdetailresponsependingpreparedstackextendazurestack.md: + last_write_checksum: sha1:c0803d28c5104c278502b0d400ae58216ece358a + docs/models/deploymentdetailresponsependingpreparedstackextendconditionresource.md: + last_write_checksum: sha1:1179f535fd1a2cc59ff03dedc6d2a3a1f81bc1e3 + docs/models/deploymentdetailresponsependingpreparedstackextendconditionstack.md: + last_write_checksum: sha1:b3af4e4a9a4c4ff62c93e3e22011059fa85b6827 + docs/models/deploymentdetailresponsependingpreparedstackextendeffect.md: + last_write_checksum: sha1:be005c4be703f3a96ec799d54a4aec25f04cc83c + docs/models/deploymentdetailresponsependingpreparedstackextendgcp.md: + last_write_checksum: sha1:fc344e3fc90f033e7d2768f7167d4bdd00586acb + docs/models/deploymentdetailresponsependingpreparedstackextendgcpbinding.md: + last_write_checksum: sha1:6de2816618e08a13990d1b55176bcf53a020fbf3 + docs/models/deploymentdetailresponsependingpreparedstackextendgcpgrant.md: + last_write_checksum: sha1:dba5471486fc030dba78a0c237e8a5f2ec4f532c + docs/models/deploymentdetailresponsependingpreparedstackextendgcpresource.md: + last_write_checksum: sha1:ec0960f63203854672647afae0b9bf527d3e4586 + docs/models/deploymentdetailresponsependingpreparedstackextendgcpstack.md: + last_write_checksum: sha1:61d8708727d4b52e284346ed5363f09c22a86983 + docs/models/deploymentdetailresponsependingpreparedstackextendplatforms.md: + last_write_checksum: sha1:51b57a3bd0532b2eb86b3210486464a9386c0239 + docs/models/deploymentdetailresponsependingpreparedstackextendresourceconditionunion.md: + last_write_checksum: sha1:4445d5d870ed8ae048ef6c003e13e4113cf173c5 + docs/models/deploymentdetailresponsependingpreparedstackextendstackconditionunion.md: + last_write_checksum: sha1:621491f6d024c5687c598e6975bf3bcf62d206be + docs/models/deploymentdetailresponsependingpreparedstackextendunion.md: + last_write_checksum: sha1:31e67a323527b4ec7ad8298206be5a5e40560c8e + docs/models/deploymentdetailresponsependingpreparedstackinput.md: + last_write_checksum: sha1:78ff32ac46e64ea02e7ce782c0a0db27774e51d2 + docs/models/deploymentdetailresponsependingpreparedstackkind.md: + last_write_checksum: sha1:1e1ce67b8572fe8babd40f57e753ff4381a100e5 + docs/models/deploymentdetailresponsependingpreparedstacklifecycle.md: + last_write_checksum: sha1:62999d3b2adc9d48cffe3359db26e1499f9183ec + docs/models/deploymentdetailresponsependingpreparedstackmanagement1.md: + last_write_checksum: sha1:69df043a28e750231c1a9a923eeb9aa22533f2f3 + docs/models/deploymentdetailresponsependingpreparedstackmanagement2.md: + last_write_checksum: sha1:0e76e62ea53f89e6f6421be1c9a608350ba9c2e7 + docs/models/deploymentdetailresponsependingpreparedstackmanagementenum.md: + last_write_checksum: sha1:b7ffdd918e695b5fa56d8edf8c13712a978b41e6 + docs/models/deploymentdetailresponsependingpreparedstackmanagementunion.md: + last_write_checksum: sha1:e998f8de635229730bd4a9c235cf72bbd1653acf + docs/models/deploymentdetailresponsependingpreparedstackoverride.md: + last_write_checksum: sha1:36828c81b3b53cc20aec88deb219a48b9a8706a7 + docs/models/deploymentdetailresponsependingpreparedstackoverrideaw.md: + last_write_checksum: sha1:8f8f81f3090673af5b88479b88661fe06ed140b2 + docs/models/deploymentdetailresponsependingpreparedstackoverrideawbinding.md: + last_write_checksum: sha1:e1ddcb7f845badd17f6a84d619e11be07ad3d8ac + docs/models/deploymentdetailresponsependingpreparedstackoverrideawgrant.md: + last_write_checksum: sha1:af74a5de38bc660ac0b95737d9987f0cd49ca1ba + docs/models/deploymentdetailresponsependingpreparedstackoverrideawresource.md: + last_write_checksum: sha1:c20c46dbd17af00b042188dff02e037723719f80 + docs/models/deploymentdetailresponsependingpreparedstackoverrideawstack.md: + last_write_checksum: sha1:cd471e5b2ad626b5044585324de2f056de1cb035 + docs/models/deploymentdetailresponsependingpreparedstackoverrideazure.md: + last_write_checksum: sha1:af742f0c43ef37745fcfb34363b5341632a44649 + docs/models/deploymentdetailresponsependingpreparedstackoverrideazurebinding.md: + last_write_checksum: sha1:d95024a3a37e9c19c223e2babd9c61db94a5b803 + docs/models/deploymentdetailresponsependingpreparedstackoverrideazuregrant.md: + last_write_checksum: sha1:b7ae9a61929ffe2a327a2882f33fbc977b464d8e + docs/models/deploymentdetailresponsependingpreparedstackoverrideazureresource.md: + last_write_checksum: sha1:83f712d7efb5a324f29967385f748ac843eaf008 + docs/models/deploymentdetailresponsependingpreparedstackoverrideazurestack.md: + last_write_checksum: sha1:eb84a87899b891c1d461dcd3adc1f861f0ad356d + docs/models/deploymentdetailresponsependingpreparedstackoverrideconditionresource.md: + last_write_checksum: sha1:eee8e927cad10ee190f942809e6d0ef2e4e7f361 + docs/models/deploymentdetailresponsependingpreparedstackoverrideconditionstack.md: + last_write_checksum: sha1:e693f43f55dd64bea1ac835f12d250cfd19c2ca3 + docs/models/deploymentdetailresponsependingpreparedstackoverrideeffect.md: + last_write_checksum: sha1:631a979428198bb0868596b0791499218448b91d + docs/models/deploymentdetailresponsependingpreparedstackoverridegcp.md: + last_write_checksum: sha1:feb42a597a15b2b77fd2235f76c07cfb30c1d084 + docs/models/deploymentdetailresponsependingpreparedstackoverridegcpbinding.md: + last_write_checksum: sha1:16949679862fb274feee6648d0ae08637a1c4f09 + docs/models/deploymentdetailresponsependingpreparedstackoverridegcpgrant.md: + last_write_checksum: sha1:4c293efd3d1886f1e4a2a4035306caf3357276f6 + docs/models/deploymentdetailresponsependingpreparedstackoverridegcpresource.md: + last_write_checksum: sha1:6ce7909e0a4cd13dbd9dedc865371ae527165947 + docs/models/deploymentdetailresponsependingpreparedstackoverridegcpstack.md: + last_write_checksum: sha1:9d637f8892951b19e22b85fc5fe614d6c86c7628 + docs/models/deploymentdetailresponsependingpreparedstackoverrideplatforms.md: + last_write_checksum: sha1:f0eee048832ff4eebd237570cf10b54e9cd2d06e + docs/models/deploymentdetailresponsependingpreparedstackoverrideresourceconditionunion.md: + last_write_checksum: sha1:829b5253318b872aa80204506203f1431f04ff07 + docs/models/deploymentdetailresponsependingpreparedstackoverridestackconditionunion.md: + last_write_checksum: sha1:03647201a4577b79e7c2c92b3ad2dbb01704831b + docs/models/deploymentdetailresponsependingpreparedstackoverrideunion.md: + last_write_checksum: sha1:73d55af71ffd5d82411b82dca23d369695a2e65b + docs/models/deploymentdetailresponsependingpreparedstackpermissions.md: + last_write_checksum: sha1:f43dc402e5c43e144d545f6e9b22d53ddf492792 + docs/models/deploymentdetailresponsependingpreparedstackplatform.md: + last_write_checksum: sha1:52c6bdc30843f47f9d9a253693fef1a3305f2580 + docs/models/deploymentdetailresponsependingpreparedstackprofile.md: + last_write_checksum: sha1:37ab12ecb11d06f9e8fd9df93020816f71381340 + docs/models/deploymentdetailresponsependingpreparedstackprofileaw.md: + last_write_checksum: sha1:3f99d83c19b166ac486f257c96e35bb612b136ad + docs/models/deploymentdetailresponsependingpreparedstackprofileawbinding.md: + last_write_checksum: sha1:7bbcb7e3313343a789e01ab77e6a31e7a314d2a6 + docs/models/deploymentdetailresponsependingpreparedstackprofileawgrant.md: + last_write_checksum: sha1:14deb343cc395717d365ebdc596384fe1deb8f67 + docs/models/deploymentdetailresponsependingpreparedstackprofileawresource.md: + last_write_checksum: sha1:b55932e9e9254859347355486cf67fac8e43c494 + docs/models/deploymentdetailresponsependingpreparedstackprofileawstack.md: + last_write_checksum: sha1:fb35993de2156acdf113a161fee4567afa40bd89 + docs/models/deploymentdetailresponsependingpreparedstackprofileazure.md: + last_write_checksum: sha1:4ec838c1552e474c14e443780d8280f5a27c132f + docs/models/deploymentdetailresponsependingpreparedstackprofileazurebinding.md: + last_write_checksum: sha1:45fda2c45513d3571504574007ec2a7b61f41b3b + docs/models/deploymentdetailresponsependingpreparedstackprofileazuregrant.md: + last_write_checksum: sha1:8b0d4e26c5f3b4d2986f131b9a319f19f64bc223 + docs/models/deploymentdetailresponsependingpreparedstackprofileazureresource.md: + last_write_checksum: sha1:cf68674e4cc58b4f30be4854041e0030bbbb8a8c + docs/models/deploymentdetailresponsependingpreparedstackprofileazurestack.md: + last_write_checksum: sha1:6b413e400da5f82683046efa15dce7ec03c39443 + docs/models/deploymentdetailresponsependingpreparedstackprofileconditionresource.md: + last_write_checksum: sha1:44c272ba68681e1547677fdda2ef8253af44ee4a + docs/models/deploymentdetailresponsependingpreparedstackprofileconditionstack.md: + last_write_checksum: sha1:a54159c4a6adee143d24ee1e1eb253c09842f716 + docs/models/deploymentdetailresponsependingpreparedstackprofileeffect.md: + last_write_checksum: sha1:b112e1442dc0e6766c973c0a69554238f1e36a30 + docs/models/deploymentdetailresponsependingpreparedstackprofilegcp.md: + last_write_checksum: sha1:89b8a52fd123c174b26afa9795100a36029ee335 + docs/models/deploymentdetailresponsependingpreparedstackprofilegcpbinding.md: + last_write_checksum: sha1:7bfb6fbc65b29f131b2b3424c73d35df2f626ef0 + docs/models/deploymentdetailresponsependingpreparedstackprofilegcpgrant.md: + last_write_checksum: sha1:c54bfbc8142269dce04cbc9b20fff5125a6c0897 + docs/models/deploymentdetailresponsependingpreparedstackprofilegcpresource.md: + last_write_checksum: sha1:d01992f62584f6f63a51c3675f54a96717f5fa28 + docs/models/deploymentdetailresponsependingpreparedstackprofilegcpstack.md: + last_write_checksum: sha1:bb7b44f44ceca9d4714fbd2b1e22d165c1479ea3 + docs/models/deploymentdetailresponsependingpreparedstackprofileplatforms.md: + last_write_checksum: sha1:927c39050435a0e44502e297514b31ccd88e677c + docs/models/deploymentdetailresponsependingpreparedstackprofileresourceconditionunion.md: + last_write_checksum: sha1:b860c122ef9ce5a40bbc482f2f45b458f720682c + docs/models/deploymentdetailresponsependingpreparedstackprofilestackconditionunion.md: + last_write_checksum: sha1:13ed3f7f5c3ce8cc321f690546407b668e10db27 + docs/models/deploymentdetailresponsependingpreparedstackprofileunion.md: + last_write_checksum: sha1:4f2f783d06c36596f55db61d2b5b9409db83b4fb + docs/models/deploymentdetailresponsependingpreparedstackprovidedby.md: + last_write_checksum: sha1:0f318bb1c5acd96d5d311be011fa44b41852f468 + docs/models/deploymentdetailresponsependingpreparedstackresources.md: + last_write_checksum: sha1:644dfd45d5270e793e1cde60fe77e84ec29c57c7 + docs/models/deploymentdetailresponsependingpreparedstacksupportedplatform.md: + last_write_checksum: sha1:047d3af9eadf213436a7ce2df8310f2f4c646782 + docs/models/deploymentdetailresponsependingpreparedstacktypeboolean.md: + last_write_checksum: sha1:c3fc69439b012ebd5dd53585564daebc75181333 + docs/models/deploymentdetailresponsependingpreparedstacktypeenvenum.md: + last_write_checksum: sha1:abcdd0afee7dd85b78d0d35f8866de66a2059494 + docs/models/deploymentdetailresponsependingpreparedstacktypenumber.md: + last_write_checksum: sha1:388378d03622a2652eba0cfe6f5b4bd3b581d841 + docs/models/deploymentdetailresponsependingpreparedstacktypestring.md: + last_write_checksum: sha1:8f68fe2ed5003b251ff0c19be49e73143da9acf5 + docs/models/deploymentdetailresponsependingpreparedstacktypestringlist.md: + last_write_checksum: sha1:c952d2b8b6b3d6cd65ecbc057afb6e55268ea789 + docs/models/deploymentdetailresponsependingpreparedstacktypeunion.md: + last_write_checksum: sha1:5eacf4724a4de1d94735e1c9841ae15f9bf90dc3 + docs/models/deploymentdetailresponsependingpreparedstackunion.md: + last_write_checksum: sha1:138388899caf6a94612074ae56906b58cfcf8f79 + docs/models/deploymentdetailresponsependingpreparedstackvalidation.md: + last_write_checksum: sha1:37c0027ebc99734f3c40eebcfb25e663424151b8 + docs/models/deploymentdetailresponsependingpreparedstackvalidationunion.md: + last_write_checksum: sha1:5ec675eae7dd3355a27edac99192efd8e787bb14 docs/models/deploymentdetailresponseplatform.md: id: f3d24ab5d14f last_write_checksum: sha1:e2a01cf66281ab939b3f8f399b49340a1def5a19 @@ -4692,11 +4636,11 @@ trackedFiles: pristine_git_object: e38ed1e779eb21f12bfc0d494c61c99cb9f0cd7b docs/models/deploymentdetailresponsepoolsautoscale.md: id: bcad5af95501 - last_write_checksum: sha1:669696a6a22c37377bb861ba0c48c205e8f7f15a + last_write_checksum: sha1:b078a1242f39551827283d70574bd04569846242 pristine_git_object: c4488832fe874bcb0b96205a6ea8cb4f05cf2a8a docs/models/deploymentdetailresponsepoolsfixed.md: id: c350e7dc47c7 - last_write_checksum: sha1:7b017fa07e6c77835481974dea788980cb314e86 + last_write_checksum: sha1:c93dd1c38b9cc58c973f1b181e2bc227b098646c pristine_git_object: f978ffc1a2948ce31f336864133475b1f57287e4 docs/models/deploymentdetailresponsepoolsunion.md: id: cc2d38f56cbb @@ -4704,32 +4648,216 @@ trackedFiles: pristine_git_object: ff4b57534738d4c64824ac027692e96d87e9acec docs/models/deploymentdetailresponsepreparedstack.md: id: 4f5cd431a210 - last_write_checksum: sha1:670217e9538cb6cc30745fbd1f5d3b92cac3812f + last_write_checksum: sha1:6052031c4c6b80234fe20e8c98c1a7c13987fdf4 pristine_git_object: 7dddc9ca8b47c9a097eedb6d7d84f6a8618d1d20 docs/models/deploymentdetailresponsepreparedstackconfig.md: id: 433a700da80f last_write_checksum: sha1:046d411d2a34537b764667eec2d726f1ca4bf525 pristine_git_object: bb173a2bfe987c82efcce9b3bff85c0545dab1c8 + docs/models/deploymentdetailresponsepreparedstackdefaultboolean.md: + last_write_checksum: sha1:59e91f23d11bc204067806b84b0280f9f75b0917 + docs/models/deploymentdetailresponsepreparedstackdefaultnumber.md: + last_write_checksum: sha1:288fa97a91a97a2d0b7dfefc8b88c7e4534f10fa + docs/models/deploymentdetailresponsepreparedstackdefaultstring.md: + last_write_checksum: sha1:c607b367a3dada96fa77a7adbe3e860a639bbf5d + docs/models/deploymentdetailresponsepreparedstackdefaultstringlist.md: + last_write_checksum: sha1:8290647bd21848902336ff28c81cc1d626d5567f + docs/models/deploymentdetailresponsepreparedstackdefaultunion.md: + last_write_checksum: sha1:e837b869e9b7f9317acb71bb916565ae47f7f408 docs/models/deploymentdetailresponsepreparedstackdependency.md: id: 2d2ee6fd9b98 last_write_checksum: sha1:8e722a4adf419a569957c56ae0fd43a7efca0f52 pristine_git_object: 4e3608892f75746b5b43549b5912da4b0a48171f + docs/models/deploymentdetailresponsepreparedstackenv.md: + last_write_checksum: sha1:227c188e7fcddd8d0df2b66be00f46c519a0efc3 + docs/models/deploymentdetailresponsepreparedstackextend.md: + last_write_checksum: sha1:6dfaee7224b9c4b97aaa2679a7dfd2f5c994d334 + docs/models/deploymentdetailresponsepreparedstackextendaw.md: + last_write_checksum: sha1:a9e355b1a8223b86bac972d90712b3170bed6a42 + docs/models/deploymentdetailresponsepreparedstackextendawbinding.md: + last_write_checksum: sha1:e6d03b9625494b7ff591783309347f7823cace3d + docs/models/deploymentdetailresponsepreparedstackextendawgrant.md: + last_write_checksum: sha1:ee27cb5054d77734a7f8789e022ff93ba6ed3a07 + docs/models/deploymentdetailresponsepreparedstackextendawresource.md: + last_write_checksum: sha1:6beadd0f755b2936e42144ea821c5b7c44b4ae97 + docs/models/deploymentdetailresponsepreparedstackextendawstack.md: + last_write_checksum: sha1:0c056de712a647067c8e59100412abe317b5a089 + docs/models/deploymentdetailresponsepreparedstackextendazure.md: + last_write_checksum: sha1:1655073d2b026695611614145b060b80e89821bd + docs/models/deploymentdetailresponsepreparedstackextendazurebinding.md: + last_write_checksum: sha1:91c526af8dd3bea2be95a7a8768c68595f7aca5a + docs/models/deploymentdetailresponsepreparedstackextendazuregrant.md: + last_write_checksum: sha1:c32e109822c1baadceadf786f12f997385036d59 + docs/models/deploymentdetailresponsepreparedstackextendazureresource.md: + last_write_checksum: sha1:7bed1ec3c9bf1a2a93826d9fcce8dfd66fa60113 + docs/models/deploymentdetailresponsepreparedstackextendazurestack.md: + last_write_checksum: sha1:9613aea248aae976e2ffd80b517faf1a17b5e93a + docs/models/deploymentdetailresponsepreparedstackextendconditionresource.md: + last_write_checksum: sha1:ea63e0b6e625b71bf628efbd915ea943ae2a67f7 + docs/models/deploymentdetailresponsepreparedstackextendconditionstack.md: + last_write_checksum: sha1:762e94a8f5db707cf7eedb2d739da4829e4d374b + docs/models/deploymentdetailresponsepreparedstackextendeffect.md: + last_write_checksum: sha1:93ecbc749447ce7123a602c2f347da68a714b582 + docs/models/deploymentdetailresponsepreparedstackextendgcp.md: + last_write_checksum: sha1:1162b9761fec8ce1507b081fc200258b233e57cd + docs/models/deploymentdetailresponsepreparedstackextendgcpbinding.md: + last_write_checksum: sha1:ffb3276c9d29d54c45371967f7a26dfc5a19685f + docs/models/deploymentdetailresponsepreparedstackextendgcpgrant.md: + last_write_checksum: sha1:8694f490c185dbd131a063353670ffd715792525 + docs/models/deploymentdetailresponsepreparedstackextendgcpresource.md: + last_write_checksum: sha1:61c18755931afd067edb0cfda786a97b9e4e206a + docs/models/deploymentdetailresponsepreparedstackextendgcpstack.md: + last_write_checksum: sha1:5269834a284e9cb3111fb859e6a71311adf2498f + docs/models/deploymentdetailresponsepreparedstackextendplatforms.md: + last_write_checksum: sha1:850e163f50152fab244e226741062ed7eef61750 + docs/models/deploymentdetailresponsepreparedstackextendresourceconditionunion.md: + last_write_checksum: sha1:6dd49b00ea5ade884f7eec184edde2e57a0a989d + docs/models/deploymentdetailresponsepreparedstackextendstackconditionunion.md: + last_write_checksum: sha1:c5469d6f3dd5ed84342d6500fea07d79661403b1 + docs/models/deploymentdetailresponsepreparedstackextendunion.md: + last_write_checksum: sha1:2d52f207725788eba41d4fb01c850d2274cacf90 + docs/models/deploymentdetailresponsepreparedstackinput.md: + last_write_checksum: sha1:3154818f36fff8b8d249dcc35010dc2f53efeef9 + docs/models/deploymentdetailresponsepreparedstackkind.md: + last_write_checksum: sha1:382a41664767c1327b521fcfe9522496532b9f75 docs/models/deploymentdetailresponsepreparedstacklifecycle.md: id: dee4bcc11412 last_write_checksum: sha1:ab59d01238c849caecd585cd1c4849439fa82e1c pristine_git_object: 6aff0d010d87cadde14795b88dda4508f9d249ed + docs/models/deploymentdetailresponsepreparedstackmanagement1.md: + last_write_checksum: sha1:10cd78d06ac7bbf965acee1ed9c6e618db92fba3 + docs/models/deploymentdetailresponsepreparedstackmanagement2.md: + last_write_checksum: sha1:033b1a3fad0d1fa6a91d4e8f13684ca2b36038ae + docs/models/deploymentdetailresponsepreparedstackmanagementenum.md: + last_write_checksum: sha1:cae660f6b81006edddf1c2c5d394c895c5e6d258 + docs/models/deploymentdetailresponsepreparedstackmanagementunion.md: + last_write_checksum: sha1:4a45863e0709dfd5ac2b5eb6bd9a7fb97f232a97 + docs/models/deploymentdetailresponsepreparedstackoverride.md: + last_write_checksum: sha1:0ad579017cfd2db32b3485a698580e59956e4a18 + docs/models/deploymentdetailresponsepreparedstackoverrideaw.md: + last_write_checksum: sha1:2969445df7e5e74c5a0624347d015c986d232864 + docs/models/deploymentdetailresponsepreparedstackoverrideawbinding.md: + last_write_checksum: sha1:15a0ddc8748ea8faf06f190d4954436ba2c292bc + docs/models/deploymentdetailresponsepreparedstackoverrideawgrant.md: + last_write_checksum: sha1:9b97bd586667dd2f4b0a213de55810ef64e5351d + docs/models/deploymentdetailresponsepreparedstackoverrideawresource.md: + last_write_checksum: sha1:2aaf6814bb19d44e6cd60d676288eea8d980134f + docs/models/deploymentdetailresponsepreparedstackoverrideawstack.md: + last_write_checksum: sha1:48f54076d54fce3805e7ac04c6b56b56e23e2fa0 + docs/models/deploymentdetailresponsepreparedstackoverrideazure.md: + last_write_checksum: sha1:8daada5db6828ba4703ecd56a040cc8dd9c9c555 + docs/models/deploymentdetailresponsepreparedstackoverrideazurebinding.md: + last_write_checksum: sha1:92e3b46cf1e9837335cd93b3e56aa1437b7f4194 + docs/models/deploymentdetailresponsepreparedstackoverrideazuregrant.md: + last_write_checksum: sha1:e697ee60404d2d4798a554358e24958dbe293621 + docs/models/deploymentdetailresponsepreparedstackoverrideazureresource.md: + last_write_checksum: sha1:72c6894cdf0484c1766b63a098486f2a39f73cb7 + docs/models/deploymentdetailresponsepreparedstackoverrideazurestack.md: + last_write_checksum: sha1:e53d2d6e2890336e1b180c2643e054bf57e38de9 + docs/models/deploymentdetailresponsepreparedstackoverrideconditionresource.md: + last_write_checksum: sha1:57cfce2a41e837f69a478aed46057f5641492928 + docs/models/deploymentdetailresponsepreparedstackoverrideconditionstack.md: + last_write_checksum: sha1:3405d9bd60885e03b1c86e0a0ea22fc2acdd7a97 + docs/models/deploymentdetailresponsepreparedstackoverrideeffect.md: + last_write_checksum: sha1:0d0f21d9234e3bb2a6ce96b73b62991b39a46822 + docs/models/deploymentdetailresponsepreparedstackoverridegcp.md: + last_write_checksum: sha1:433d4f9b5336f6a98bec338a21283610dd10fe1c + docs/models/deploymentdetailresponsepreparedstackoverridegcpbinding.md: + last_write_checksum: sha1:e919c32352af3078b8540b70069c380959fef36c + docs/models/deploymentdetailresponsepreparedstackoverridegcpgrant.md: + last_write_checksum: sha1:8b3aebac8541e9ce96cc90c0b396fc8f4b6824a4 + docs/models/deploymentdetailresponsepreparedstackoverridegcpresource.md: + last_write_checksum: sha1:7ecfbfcc303713e6534d551440ccfa73a55920d1 + docs/models/deploymentdetailresponsepreparedstackoverridegcpstack.md: + last_write_checksum: sha1:2d0d915054bef23911b58403b451caa9cc6d5c15 + docs/models/deploymentdetailresponsepreparedstackoverrideplatforms.md: + last_write_checksum: sha1:52a2a9c990101f320bd0a6c770774edb74bbea18 + docs/models/deploymentdetailresponsepreparedstackoverrideresourceconditionunion.md: + last_write_checksum: sha1:05cccfd98974cef068ed6534dc2efabd24c8e80e + docs/models/deploymentdetailresponsepreparedstackoverridestackconditionunion.md: + last_write_checksum: sha1:decc8d0579ea470f980f6a276760787ee0db3867 + docs/models/deploymentdetailresponsepreparedstackoverrideunion.md: + last_write_checksum: sha1:c8c7ba09f139427aec1b005dae631db86d86b4f7 + docs/models/deploymentdetailresponsepreparedstackpermissions.md: + last_write_checksum: sha1:594dd6bb064e44aa01ae3b768db0d75b17553878 docs/models/deploymentdetailresponsepreparedstackplatform.md: id: 853d0259f05a last_write_checksum: sha1:ce9a5948fac337143ce691d22582712f2acd3070 pristine_git_object: 053564e5c3c3e29ee6ccbdd73c902c53a1720753 + docs/models/deploymentdetailresponsepreparedstackprofile.md: + last_write_checksum: sha1:f89e87c2275fe899ced73ef95317c3e9fc21098f + docs/models/deploymentdetailresponsepreparedstackprofileaw.md: + last_write_checksum: sha1:a0f5848d4a9e7dd78b4eabdef1bf305f23c2cf91 + docs/models/deploymentdetailresponsepreparedstackprofileawbinding.md: + last_write_checksum: sha1:41f799c3c30c7f99783a7a60d38e1268ba4605a7 + docs/models/deploymentdetailresponsepreparedstackprofileawgrant.md: + last_write_checksum: sha1:7f693dd69cb298cda91eb5f1e40a4fd0978a885b + docs/models/deploymentdetailresponsepreparedstackprofileawresource.md: + last_write_checksum: sha1:97ebeb86bfb4df89a814cc8a51925ef50ed81613 + docs/models/deploymentdetailresponsepreparedstackprofileawstack.md: + last_write_checksum: sha1:6cee5b7f7cecb638c1ca4578f5a0cb9537dc9280 + docs/models/deploymentdetailresponsepreparedstackprofileazure.md: + last_write_checksum: sha1:1367ab4133853482480af149e907f64e5606dacd + docs/models/deploymentdetailresponsepreparedstackprofileazurebinding.md: + last_write_checksum: sha1:5702f54eacbce3fe92e151c92917dcb5f2511cf5 + docs/models/deploymentdetailresponsepreparedstackprofileazuregrant.md: + last_write_checksum: sha1:8d71386ad71f4559ede774c4d648c92dd3c92532 + docs/models/deploymentdetailresponsepreparedstackprofileazureresource.md: + last_write_checksum: sha1:55bb157741324f44633a37004c074d98cd32d40e + docs/models/deploymentdetailresponsepreparedstackprofileazurestack.md: + last_write_checksum: sha1:a2a349d2151bfc5345d2a9d0fe55538962524b01 + docs/models/deploymentdetailresponsepreparedstackprofileconditionresource.md: + last_write_checksum: sha1:5e8b1aa61859db3a77317227f341c0de5e44d10b + docs/models/deploymentdetailresponsepreparedstackprofileconditionstack.md: + last_write_checksum: sha1:441ff357b6b591b62c9f63b9a610dbc80c759565 + docs/models/deploymentdetailresponsepreparedstackprofileeffect.md: + last_write_checksum: sha1:adb2f74e7785dd19df629b90b803512d24ddb207 + docs/models/deploymentdetailresponsepreparedstackprofilegcp.md: + last_write_checksum: sha1:756ffa97a98563effa5680c15294115d411bc69d + docs/models/deploymentdetailresponsepreparedstackprofilegcpbinding.md: + last_write_checksum: sha1:03dc953799c6fc7cd5e7fd72026be1825847ffd3 + docs/models/deploymentdetailresponsepreparedstackprofilegcpgrant.md: + last_write_checksum: sha1:29c01f42d6d1a7e1f08f658c74d43505ea8a843f + docs/models/deploymentdetailresponsepreparedstackprofilegcpresource.md: + last_write_checksum: sha1:a7709b97fd51d0deb62bfcfd998284f535164844 + docs/models/deploymentdetailresponsepreparedstackprofilegcpstack.md: + last_write_checksum: sha1:dd6e27f57747bb21b0c6cc98c57c9b752a29d04d + docs/models/deploymentdetailresponsepreparedstackprofileplatforms.md: + last_write_checksum: sha1:26f1270b4629591e0794cd8655f8f345eed6b407 + docs/models/deploymentdetailresponsepreparedstackprofileresourceconditionunion.md: + last_write_checksum: sha1:fc782bbb16c616861080da6a704fcce810efe98e + docs/models/deploymentdetailresponsepreparedstackprofilestackconditionunion.md: + last_write_checksum: sha1:aba984359191757bd750d2a378c2fd81ea53667a + docs/models/deploymentdetailresponsepreparedstackprofileunion.md: + last_write_checksum: sha1:1744c2f46dc6b76455bffa24030565739c368ee3 + docs/models/deploymentdetailresponsepreparedstackprovidedby.md: + last_write_checksum: sha1:1e1113f9a49c82ef25f7f284edcfa25b9dcc4332 docs/models/deploymentdetailresponsepreparedstackresources.md: id: 029bdce1ddff - last_write_checksum: sha1:f7324014eaefef6ba063cae20b3c183db5026d9a + last_write_checksum: sha1:cf85b319e25fbf9ed032fae1f6b4e7c3c819a2b3 pristine_git_object: d935c4eb330c1a302a9fca950889111669e06fbe + docs/models/deploymentdetailresponsepreparedstacksupportedplatform.md: + last_write_checksum: sha1:44e04bf448e9fad0ccba6b056ac85077c4d314f7 + docs/models/deploymentdetailresponsepreparedstacktypeboolean.md: + last_write_checksum: sha1:ee5a577f1d4718effaeed26bc49a34ab1f92a799 + docs/models/deploymentdetailresponsepreparedstacktypeenvenum.md: + last_write_checksum: sha1:25be1b5471e4d33ddca224634610d948ce7342d7 + docs/models/deploymentdetailresponsepreparedstacktypenumber.md: + last_write_checksum: sha1:f3351f34343db41fb5cdbfcc66609db94f8a72bf + docs/models/deploymentdetailresponsepreparedstacktypestring.md: + last_write_checksum: sha1:50563ec3473440b668161e35ec46e78d51a7a15d + docs/models/deploymentdetailresponsepreparedstacktypestringlist.md: + last_write_checksum: sha1:abb985a225aac2043b7665af481361dfc2098e11 + docs/models/deploymentdetailresponsepreparedstacktypeunion.md: + last_write_checksum: sha1:60ef05d39318ead1cb1f3065aa95a29deeaf2b44 docs/models/deploymentdetailresponsepreparedstackunion.md: id: 52e1da15130a last_write_checksum: sha1:4d67a02c771917d812c818d79fb479b01e5dd612 pristine_git_object: fc16b8cb1ef13515bae6a293301d8c1c71cab8e1 + docs/models/deploymentdetailresponsepreparedstackvalidation.md: + last_write_checksum: sha1:114c56333848f061e4fe566e4ed79080c294898c + docs/models/deploymentdetailresponsepreparedstackvalidationunion.md: + last_write_checksum: sha1:8582f1ca6efdac888fd95ff3736b8450bd42c282 docs/models/deploymentdetailresponsepreviousconfig.md: id: f69f69f15286 last_write_checksum: sha1:d6300e5a49569630a4728715b9cb7d2a62ffa800 @@ -4738,102 +4866,6 @@ trackedFiles: id: "429325394931" last_write_checksum: sha1:74e0b05fae2eab2c8640a069e7959d860d41aa80 pristine_git_object: 3de62c9201c62bae5c88da7282b5d82ce8f50f43 - docs/models/deploymentdetailresponseprofile.md: - id: e5dd409e53e7 - last_write_checksum: sha1:48a26515119d2abf56135c399dd6a6249e7283b9 - pristine_git_object: 8c37cb01efe537db22bb36e5af954af1af372af1 - docs/models/deploymentdetailresponseprofileaw.md: - id: ab6b650e8f07 - last_write_checksum: sha1:9d38e6617f57b24d9465db1f43fa775d7478f26e - pristine_git_object: 066acad94ee62399915647b05407a29d3fffc39e - docs/models/deploymentdetailresponseprofileawbinding.md: - id: e4ab0c200bb9 - last_write_checksum: sha1:0c355b180990f8c42e9c5db41a0826f30e12fe72 - pristine_git_object: c51fbe38e3a8a98aae56324208e10419ae8e57b7 - docs/models/deploymentdetailresponseprofileawgrant.md: - id: 1c5ef7af15d7 - last_write_checksum: sha1:4040bc1eb360b9cda7e79f2a6ec6936f539654cf - pristine_git_object: 3e45a26dd0860eba15202663333d73becf5a75a9 - docs/models/deploymentdetailresponseprofileawresource.md: - id: b042ceb27810 - last_write_checksum: sha1:0ba32d5ece244b0f3a620190558e34fee2089241 - pristine_git_object: cf04e1ff82af11392ee0b200bbf31ba403b58f0b - docs/models/deploymentdetailresponseprofileawstack.md: - id: 4564261882db - last_write_checksum: sha1:7db71e772db84a372073cc66e25b2458f2863b10 - pristine_git_object: ccaaa7b84490b744d11fce7510ae27c6449d7728 - docs/models/deploymentdetailresponseprofileazure.md: - id: 87865cd51db0 - last_write_checksum: sha1:150606fefa1d66ed706d35903ce659defaeef16e - pristine_git_object: 35c0493b602263a2c2f02d77482d6f1d813b9948 - docs/models/deploymentdetailresponseprofileazurebinding.md: - id: f42dfe31133e - last_write_checksum: sha1:bf263dd8b005f4b0e9e75364d9580489878b233d - pristine_git_object: 1b0b2d979df5677d6928dc773fab71de1a249efa - docs/models/deploymentdetailresponseprofileazuregrant.md: - id: 96f626723e8c - last_write_checksum: sha1:8ef213e3baf1d1c2b53ccf0fae062cfe7c4fb496 - pristine_git_object: 6352c4086855bb551144b687cc6a0009fc1fd07c - docs/models/deploymentdetailresponseprofileazureresource.md: - id: fae14c0bf128 - last_write_checksum: sha1:c0c183e74412ed843f326807216f36d291502184 - pristine_git_object: b11e6f90a4a98d596bd657291237922a959b2326 - docs/models/deploymentdetailresponseprofileazurestack.md: - id: bc4e4b15b802 - last_write_checksum: sha1:00f6f9128b3309f7312b00340680602160fd19be - pristine_git_object: e472bfc129b99bc2f62b0e0dead9b6cb41625375 - docs/models/deploymentdetailresponseprofileconditionresource.md: - id: 0e8005fc1d68 - last_write_checksum: sha1:9a381b974f8797a8f4a2f08ca0fbf0df2ac7feb7 - pristine_git_object: eb2c19d968f9e551a5dcbd9a98a6d7412d6bd703 - docs/models/deploymentdetailresponseprofileconditionstack.md: - id: 2eb913d8986a - last_write_checksum: sha1:8b6af234070930c7b3ee3c4083f9b71a4a0f094a - pristine_git_object: c73efb071305cee21d603f0ba437f0b1bf8f6b16 - docs/models/deploymentdetailresponseprofileeffect.md: - id: d77814ce595a - last_write_checksum: sha1:c88c8121b9654599e0b9cc6806e1c503819ba81d - pristine_git_object: d62e2054439ddce9c59201cd8d290e8cd306859f - docs/models/deploymentdetailresponseprofilegcp.md: - id: d91f432ebe8e - last_write_checksum: sha1:56109adf753524f5108497411dfb1aa533164478 - pristine_git_object: d3266af628706381d0657836fc70f2fbf05a3743 - docs/models/deploymentdetailresponseprofilegcpbinding.md: - id: bb7d1307ad83 - last_write_checksum: sha1:e04e12f61e7f2fc791c169e8e210b93d7641479a - pristine_git_object: 654cad612a766e191fe017a2b7c315068ef15f9b - docs/models/deploymentdetailresponseprofilegcpgrant.md: - id: 646bb01ea4e6 - last_write_checksum: sha1:3f83b68fc5ed8e52ad00da29de9a870f3154d5bf - pristine_git_object: 038fa473a8348b417b4b6ee04813db51848f2816 - docs/models/deploymentdetailresponseprofilegcpresource.md: - id: 6c241a05d8c8 - last_write_checksum: sha1:873dea4593fc069edb050cf2d0c8f0b347d9190b - pristine_git_object: c2a1a98289eb5c802c0714201ec43b51f1f11d1c - docs/models/deploymentdetailresponseprofilegcpstack.md: - id: 19ea359174b2 - last_write_checksum: sha1:f5fea67b0b4b536f6d0f7d83566dbbe16f7d18fa - pristine_git_object: 94f57e2f98f281940c9ba50f436419e55050852f - docs/models/deploymentdetailresponseprofileplatforms.md: - id: 225dbe0c1c95 - last_write_checksum: sha1:25e634e42765c7adc4720a1636fd8f65e2240917 - pristine_git_object: 770e063140e8be6087ef030f9c8c034527441561 - docs/models/deploymentdetailresponseprofileresourceconditionunion.md: - id: e187981a7821 - last_write_checksum: sha1:e06a0ee737abde891c76ff10162ba3f2d0cf341e - pristine_git_object: 1bf66e67c68f80e732be3a3dce56d5841f253c84 - docs/models/deploymentdetailresponseprofilestackconditionunion.md: - id: 74aef4924612 - last_write_checksum: sha1:ea3c79da78b936334e816e167e65cf9b473e8081 - pristine_git_object: 2c37ebe625e7ce7e582be67c9cf47918175df86e - docs/models/deploymentdetailresponseprofileunion.md: - id: 89c642ad18cc - last_write_checksum: sha1:3c546d4fb2d6d694655305bd75f61cae38e3932e - pristine_git_object: ca58c6f7699dd1868fc47a7bb0dab14bba4fea7c - docs/models/deploymentdetailresponseprovidedby.md: - id: b4a4498bbc3b - last_write_checksum: sha1:73c81444eb4edb2f5e221f294371b188e06a0eaa - pristine_git_object: 7c64aad2e8475025c67880b6fdfd746b13af4da5 docs/models/deploymentdetailresponseproviderawsalb1.md: id: dd250307a56b last_write_checksum: sha1:86e042ca23f1ab51fbeed85c0ff2b99c776ca749 @@ -4984,12 +5016,16 @@ trackedFiles: pristine_git_object: a55f7d0a49d51b89f2558f3be439bbc0667b47ed docs/models/deploymentdetailresponseruntimemetadata.md: id: 99c9d501c0f3 - last_write_checksum: sha1:6b13a8bd7a8778fcfc26812f955eb84106f5b569 + last_write_checksum: sha1:ea56f4a2103aaef1e657c05446516528be0dd029 pristine_git_object: 347272d4b0617a1aeb7a6c90f2928ba0c052d901 docs/models/deploymentdetailresponsesetupmethod.md: id: a90909a89d17 last_write_checksum: sha1:c74703e20e65675919264821235c021350413c42 pristine_git_object: ec70e745a87da01df69850bd0f9f53020ede715a + docs/models/deploymentdetailresponsesetupupdateauthorization.md: + last_write_checksum: sha1:f8ee6041e0df8484516b5fee4ba831bef8be8322 + docs/models/deploymentdetailresponsesetupupdateauthorizationunion.md: + last_write_checksum: sha1:40bda9d82d3ff20dc48453203bb984cf4c803646 docs/models/deploymentdetailresponsestacksettings.md: id: 422d0568beeb last_write_checksum: sha1:6edb7a84c86e9686b29436df854299bb75fbda21 @@ -5022,10 +5058,6 @@ trackedFiles: id: 91903655c7ae last_write_checksum: sha1:c20d9f59ae7a340fc31f2bbc6401649f023b4343 pristine_git_object: 447b5e29eb2c75e2909e2e8ef8002e5a95933b22 - docs/models/deploymentdetailresponsesupportedplatform.md: - id: 21cffbfc08d6 - last_write_checksum: sha1:a712ca6d8a7ebd81a48e03caa23baa14f7876eb8 - pristine_git_object: 2fe773d2dec95899d89dec47943e36e059cc730c docs/models/deploymentdetailresponsetargetenvironmentvariables.md: id: 9dadea580a7b last_write_checksum: sha1:efc790cb92e71bd32b58d14baeb7c7a72c2a7d80 @@ -5038,10 +5070,6 @@ trackedFiles: id: 5fc74e4f4bf8 last_write_checksum: sha1:6758d6a073b3bb61fd83b58c2355c8a0ee346fac pristine_git_object: 35b3358a450f4f55db41bc913ff77a49aacfaff2 - docs/models/deploymentdetailresponsetypeboolean.md: - id: 2e0d5e3c42d2 - last_write_checksum: sha1:1e17a7c159acf40ee5f37126e90900839717c515 - pristine_git_object: 46ac28ffe4941028a3a1e48a76a05a21fb938c3d docs/models/deploymentdetailresponsetypebyovnetazure.md: id: 6f11adc68a0b last_write_checksum: sha1:7cf79ba5475c183eb87d1315506aa6e401f6f64a @@ -5058,26 +5086,6 @@ trackedFiles: id: 2e1a559f7278 last_write_checksum: sha1:2d2cdacd8b3e45f62ea4bf44ac5ccee6897bd636 pristine_git_object: 0a85a08aaefd1d7a7d1251dcba1fe73b0497c9fc - docs/models/deploymentdetailresponsetypeenvenum.md: - id: f412c6b61edc - last_write_checksum: sha1:a7ad3c1085b158453fbc4a726004b91e6f6f63e6 - pristine_git_object: 53138fbd969d6065963d7f37cb1a0b3fae53c90d - docs/models/deploymentdetailresponsetypenumber.md: - id: 572ff40fbe2f - last_write_checksum: sha1:8ad799536dc703c60377648e5ed566fdb993e025 - pristine_git_object: 0d5ae771f1160cb1a30a1287abae7f6890565797 - docs/models/deploymentdetailresponsetypestring.md: - id: c79e7339d63d - last_write_checksum: sha1:c31c89e5bf715c31c246d4033a21aa0fee58b087 - pristine_git_object: 4524a579acba8c98312359986dac65ebf3f2c918 - docs/models/deploymentdetailresponsetypestringlist.md: - id: 29f200cd5798 - last_write_checksum: sha1:999924704d31816f9f6c1e1d23da2da9d07e365d - pristine_git_object: 76ddbc00f77ab7b999174be35e2e2fb03a146a56 - docs/models/deploymentdetailresponsetypeunion.md: - id: b0f6d137b329 - last_write_checksum: sha1:387772255a0821ed26763d81589a0312e89119a9 - pristine_git_object: c14562901e7075e8ef11af25f32b2f6aab35962a docs/models/deploymentdetailresponsetypeusedefault.md: id: b0467ca20a5a last_write_checksum: sha1:e748ed426894bb169ea320402d1e5378958fcc77 @@ -5086,14 +5094,6 @@ trackedFiles: id: 54a867c88294 last_write_checksum: sha1:7539ce7935405fddcbf68a32418bd1384e5e9d02 pristine_git_object: a84ec2040058e4e6b6d83b37bf670b41a04c0f9d - docs/models/deploymentdetailresponsevalidation.md: - id: e75c53ccea4f - last_write_checksum: sha1:a3923d64a36da5dc2cf7d8282db0bce89cfbc3b4 - pristine_git_object: 8c8c0dbb198866f575a71b6a8695fd5a49ea366d - docs/models/deploymentdetailresponsevalidationunion.md: - id: 3aac83a07b23 - last_write_checksum: sha1:8d6019d842ae0a9aaa6902533077db02e3a43895 - pristine_git_object: 2c875f9416bfe14733bee2252c59eb7b46847a82 docs/models/deploymentdomains.md: id: 63c2670028c7 last_write_checksum: sha1:f882e0eb77139ec38a7715f14ea852c268eea518 @@ -5114,10 +5114,6 @@ trackedFiles: id: 980d093742d6 last_write_checksum: sha1:07655d3e1803c4e40f6f9e08338329fdf8045f5c pristine_git_object: b438fdccbe1953f9e70b85beac44b73ea6f977e8 - docs/models/deploymentenv.md: - id: e0d7bf442b5a - last_write_checksum: sha1:562bb0f6e32cd2fc68d1a406b47801c371a0903d - pristine_git_object: f1c85e427185d8423f38fcecdb31ec9c201fef9d docs/models/deploymentenvironmentinfoaws.md: id: c4a19924beac last_write_checksum: sha1:4e828a535bb2b41f0a34352fcbc2db509224565c @@ -5170,102 +5166,18 @@ trackedFiles: id: 05b0600a7c0b last_write_checksum: sha1:e00e885f8cf252e379a9a5663479bb1892f42658 pristine_git_object: 3f68f258f3c1f866c5cb8c297173ab63d39e5287 - docs/models/deploymentextend.md: - id: 7c245adf2775 - last_write_checksum: sha1:7763c5ad1d49423796eb35995824728e8b047de0 - pristine_git_object: f9014b6d2baa1dcc25a758dbe38cf04355a616f2 - docs/models/deploymentextendaw.md: - id: 51b8f9961f1d - last_write_checksum: sha1:5e8aba8bf5c712b372ad58e4e1dc0f5d8e9d1442 - pristine_git_object: 7b9300f5e3fcaa35e3db6c8ef1fae8db9885e077 - docs/models/deploymentextendawbinding.md: - id: b97b9236c36e - last_write_checksum: sha1:249db585c81b9e591dfc6ed1a648e59107babebc - pristine_git_object: 38b60b6636d00e6eb0d704694c885a7737ffb242 - docs/models/deploymentextendawgrant.md: - id: 43e746d8098c - last_write_checksum: sha1:d4943e7a2d5fc66bc8a0aa048264af29e2702152 - pristine_git_object: 25175ec5ae9fba4b02a0823f543009b9a73ec236 - docs/models/deploymentextendawresource.md: - id: 6416d06a9b71 - last_write_checksum: sha1:33c497f4c309f14dac7920ac8cadda017be3f304 - pristine_git_object: 5648a927faf55dc8339c170ae9404fa09f80814d - docs/models/deploymentextendawstack.md: - id: 28da8109d9d6 - last_write_checksum: sha1:89613d2e88f25b0aa40193e79c451453bdfde379 - pristine_git_object: 7e368cbd7aac75d966301142cdcf0546d6bfcc6b - docs/models/deploymentextendazure.md: - id: 901cc35c350a - last_write_checksum: sha1:863758fdab67cc55751cf7e8a4215663bbff8183 - pristine_git_object: 876ffc5575e7309c9798daa1980e3348c7470fea - docs/models/deploymentextendazurebinding.md: - id: 73fa7cae9923 - last_write_checksum: sha1:38b5de6a72da326833a3f2de99e0213aedc767b6 - pristine_git_object: e28f5419c00327f232ea55004b9dd5ea4e6917f2 - docs/models/deploymentextendazuregrant.md: - id: 5463e5af1c75 - last_write_checksum: sha1:051e7575055fbce0464544775b666bdb9d1b2646 - pristine_git_object: db53152bc732e83e6f542baaea885841db52a89a - docs/models/deploymentextendazureresource.md: - id: 12e7a50dc241 - last_write_checksum: sha1:7d9916cc33f5a04e7a58c8e42ade52c597b5b264 - pristine_git_object: 15ea38b688eebf835f938f7f71e0bc7ebe1da424 - docs/models/deploymentextendazurestack.md: - id: 57b789896de8 - last_write_checksum: sha1:66e1d2dc350f3aa90097042d4cc873b433f80ef5 - pristine_git_object: 3e9f66f01d54dcbbef2ca71927c589d55d9954ab - docs/models/deploymentextendconditionresource.md: - id: "753689327360" - last_write_checksum: sha1:cc298320f61cb1b70d61a9e3c4b6409468a4062e - pristine_git_object: 9872c5706067663cadd3a3b39e25da762ebf61f4 - docs/models/deploymentextendconditionstack.md: - id: 006051df5d24 - last_write_checksum: sha1:f7a27dc4181856962a11cc4f7485ab96a81f9463 - pristine_git_object: 1c796cef728e3e5681f178ee0a022b6c092e1555 - docs/models/deploymentextendeffect.md: - id: 57e7d8e12cf9 - last_write_checksum: sha1:a576f44794d31e8dd1f89c48d7eaec32a26da400 - pristine_git_object: 8e1264c9d0e2fa12374292bdea41549febdbb988 - docs/models/deploymentextendgcp.md: - id: 222c98ffefc2 - last_write_checksum: sha1:a9f062353b42cf859cf4b8616b4a50b2e4b71737 - pristine_git_object: d00b92983653403351be59577b8b0edc35e7b10f - docs/models/deploymentextendgcpbinding.md: - id: 0f6a096d8dd6 - last_write_checksum: sha1:ba066aa355b7e6944298654fb5771b42b900c26d - pristine_git_object: f4d4bdc9296e35e8ebd27792ca8328b4045685ee - docs/models/deploymentextendgcpgrant.md: - id: 964e950633c2 - last_write_checksum: sha1:a57e24f0e18a63d122a1644438a6d3137cc17950 - pristine_git_object: 4db5da902f1b3894edc570e181821eb15e642782 - docs/models/deploymentextendgcpresource.md: - id: 5c70ba1f3865 - last_write_checksum: sha1:ea74b57b86a28002fda983ca5dac554b23db35b7 - pristine_git_object: 0fd3a8bf87fbdae893ae4383b74e14488df8e85b - docs/models/deploymentextendgcpstack.md: - id: e4315264bd63 - last_write_checksum: sha1:7097bb30b982be2072f1f79db154e288fc742ff0 - pristine_git_object: 00d11ec22f28eb5a7626fa0a5df6030eba3e1f38 - docs/models/deploymentextendplatforms.md: - id: abbf957b90cf - last_write_checksum: sha1:70f6b0235d4209c0e3cedccdd68ae0051cccdfa1 - pristine_git_object: 8aac8606bf570b782cd6a9d480fac72177a9df39 - docs/models/deploymentextendresourceconditionunion.md: - id: 2f582984ac2c - last_write_checksum: sha1:9e26716d0abb4aebf7f2da14194f8222d828117a - pristine_git_object: 61e6d0a0463529d03da5b6d6d7002d17ca6e35a7 - docs/models/deploymentextendstackconditionunion.md: - id: 89b77df73437 - last_write_checksum: sha1:b4edd2959137aa0a69b869d7ececf598113fc909 - pristine_git_object: 6d62bbceb3c7a2ea4e2e268179b600b6fec0b56d - docs/models/deploymentextendunion.md: - id: bb85ab8a0ccc - last_write_checksum: sha1:c750917d15e01ce52fc79ae07a8ec9d7287b0a80 - pristine_git_object: 6cfe6e132bb4d2a4803ff035da3b76f02982262d docs/models/deploymentexternalbindings.md: id: 1c9d6ad23641 last_write_checksum: sha1:172f3fd7bfe9c8117f875a502fe06cc6dd51fd80 pristine_git_object: 13a0a3eed55c6ac1697f627b0892d4ff385647ca + docs/models/deploymentfailuredomains1.md: + last_write_checksum: sha1:115f51a465ddf5523f28b6781affd065b44c86f6 + docs/models/deploymentfailuredomains2.md: + last_write_checksum: sha1:0077ac8a3ccad10858e158fee4a9f2d94bc32924 + docs/models/deploymentfailuredomainsunion1.md: + last_write_checksum: sha1:c5fa1def22f5c41ee617965952016dc591f4d137 + docs/models/deploymentfailuredomainsunion2.md: + last_write_checksum: sha1:6b250c8b21757453da7e7370be23d6b2a75b7175 docs/models/deploymentgcpstacksettings.md: id: 72b66396ab2c last_write_checksum: sha1:af725aec5971563a7db1bf2698616dbb3fc5c050 @@ -5276,7 +5188,7 @@ trackedFiles: pristine_git_object: 6c2b6303845ecac2f08a2882be32e4364456a0ef docs/models/deploymentgroup.md: id: c4f51b1b8497 - last_write_checksum: sha1:7e9a4c1edaf08a9336e9d15f3b9b03c0ebc277e6 + last_write_checksum: sha1:3645c49563e000b276948f6a7120f62a1e705412 pristine_git_object: 85953a802acadca3de15e6da59031e9e1dd22d76 docs/models/deploymentgroupinfo.md: id: 3ef9481f298d @@ -5384,7 +5296,7 @@ trackedFiles: pristine_git_object: 21f73a916e8e48e727ffffd0f946cf827b59a50f docs/models/deploymentinfosetupconfig.md: id: 370e54adcc80 - last_write_checksum: sha1:437d56966c5a65a30836e821fd9a72285adf5a0a + last_write_checksum: sha1:1224d4b06456b19f145e5ef7793d7246e4f44343 pristine_git_object: f871422032f1e8615d079128016b05319a3313a9 docs/models/deploymentinfosetupconfigdefaultboolean.md: id: 38e24f35f91c @@ -5474,10 +5386,8 @@ trackedFiles: id: 26f32ced3fb0 last_write_checksum: sha1:06385c85e232595f57eb5f9b5df6de676bbc9798 pristine_git_object: f07bea1452287201f77aee9961bab4aaee12db3d - docs/models/deploymentinput.md: - id: bb3a00f035d5 - last_write_checksum: sha1:f16dd7034e6ac35c2944afdfd0df01003677ec0a - pristine_git_object: f7bb6e136e78c89268285138ebfc86948b0d46a3 + docs/models/deploymentinitialsetupauthority.md: + last_write_checksum: sha1:fb89faca9bf8ff937966c12d9565754c6ae30168 docs/models/deploymentinputsresponse.md: id: 78b427121785 last_write_checksum: sha1:91e52094054a9c348d018474e07cdb444c575df6 @@ -5554,10 +5464,6 @@ trackedFiles: id: ec24470e1cc4 last_write_checksum: sha1:0982595396dcce66dba2cad85d68171636e5c4ed pristine_git_object: 599665b560a2786c5a2779849c82e43573ecf481 - docs/models/deploymentkind.md: - id: 27343b972b36 - last_write_checksum: sha1:4af7e6cd8bad282e27c85253ad0b4ef5ce5949eb - pristine_git_object: 8f015661a58d38eea92df1a6c83e1cedb22c68e2 docs/models/deploymentkubernetes.md: id: 60cf1a6ad569 last_write_checksum: sha1:a3f0b3ee70f45173b7f2e2e8f1b93b6a7e773f66 @@ -5578,9 +5484,11 @@ trackedFiles: id: 1421b4def84f last_write_checksum: sha1:ae67ae16baab8f2b121b5282942afdbb35860aeb pristine_git_object: 1beae0860466ff51345094ba9113c8836aa31214 + docs/models/deploymentlinksetupresponsestack.md: + last_write_checksum: sha1:58d888ff45fc0f9b2f9bc35a99c50fd9bf398faa docs/models/deploymentlistitemresponse.md: id: d8baf621fe6e - last_write_checksum: sha1:c3956d62aaeac1fa7bf05447674abafb6d99083f + last_write_checksum: sha1:b728054f4b25e3885e317c14463ab1553d1cdd8b pristine_git_object: 27b34315d5486530bfcbd3460776ffddf923d243 docs/models/deploymentlistitemresponseenvironmentinfoaws.md: id: 5916867664ec @@ -5646,22 +5554,6 @@ trackedFiles: id: 794e171667be last_write_checksum: sha1:811832bd6e64fa56014b085accafba59ba14d372 pristine_git_object: 5d72b72794c1c4a7b0df763600618a6d93016c7a - docs/models/deploymentmanagement1.md: - id: 3e2980f652e2 - last_write_checksum: sha1:f68ceae958715acf50b0a11ce498021922dc0faa - pristine_git_object: 4982ac804877fbcf6dfd0731cf0ffdddd70b9031 - docs/models/deploymentmanagement2.md: - id: 4cab8fd1ed91 - last_write_checksum: sha1:3f5dabaca4c05866c04dd453e407aba6d3e9267f - pristine_git_object: e576c40e5a6ce9bc34a95cb8a96a0b3795b93aa8 - docs/models/deploymentmanagementenum.md: - id: 409f44f8c0b8 - last_write_checksum: sha1:f1ba1df5a2cf22200e8b27fa29c70fb79a432ac5 - pristine_git_object: 66d8610aed45cd9cc136a0bdd49fce53f924c232 - docs/models/deploymentmanagementunion.md: - id: 78f7339f69a7 - last_write_checksum: sha1:035dcee5512b425bb5f7e957735dc312aa60e5b8 - pristine_git_object: 5d208e6c22d287e90a8f160d319a86fdb1ba2050 docs/models/deploymentmodecustom.md: id: 298985923d84 last_write_checksum: sha1:e996cd05d4e84a1f35c174deb252dc48062076eb @@ -5714,106 +5606,208 @@ trackedFiles: id: d4ae7af6e6df last_write_checksum: sha1:0db779fd495ef3c0dfc3b1b8dd379a0dd90a54a5 pristine_git_object: a9b2acae458271f209b3f884756ef4d413f695a3 - docs/models/deploymentoverride.md: - id: 9356ff497c9d - last_write_checksum: sha1:2fb83978665b4cdef0a0383c71c54c24af4fe5c9 - pristine_git_object: e6b372d44f870c22c31b81d49f08dad031a5c18e - docs/models/deploymentoverrideaw.md: - id: c73167ed9ea6 - last_write_checksum: sha1:c43ba67de804f7d5d00a6265f762230c62d0b74f - pristine_git_object: 4d2e2153ade099f973316195b0a1df49f9dc5c83 - docs/models/deploymentoverrideawbinding.md: - id: 9447aa240138 - last_write_checksum: sha1:5d435b9fc8e8dcb33c71f31366db515071cd4ce7 - pristine_git_object: 0d3e9d40662bc06a45cf0df3478172a6865de854 - docs/models/deploymentoverrideawgrant.md: - id: 05d2d07fe911 - last_write_checksum: sha1:8ad1357ae77932118fef8d843e354f8e19d8dc28 - pristine_git_object: 8246edd30b70467191a5ddaf8f73e90fa2b6c3a4 - docs/models/deploymentoverrideawresource.md: - id: 915da3c8692e - last_write_checksum: sha1:7eab926cde4a4b3e5170e442269dd095cf1635b3 - pristine_git_object: d55b19deda4b22676f28ea52daa22a91b6f2d19c - docs/models/deploymentoverrideawstack.md: - id: a9dde2f7cf54 - last_write_checksum: sha1:4ab57a79a0b66c38a67c74a6436704144c19bb19 - pristine_git_object: 0ced95dcd4ec44493330fce8b63eec9f567e7692 - docs/models/deploymentoverrideazure.md: - id: a27e70d38938 - last_write_checksum: sha1:91d792c2a3f5e5cae382f72ddd08de90d28cef12 - pristine_git_object: aa43ffedfa3c7949e6ae551fb57daf12cc6ec7f8 - docs/models/deploymentoverrideazurebinding.md: - id: 52910d952959 - last_write_checksum: sha1:f99fd1db8c5e53edcb92e5da305f8d129c5584e5 - pristine_git_object: 2be51019d4a80fbd01e358d635016abb4af9ff2c - docs/models/deploymentoverrideazuregrant.md: - id: 50744bfe6597 - last_write_checksum: sha1:719dedcc4b3ace12289c7ca2f1780b42ce6738da - pristine_git_object: 9935256825cd2109726fe4f4f8b08c95a9f9e275 - docs/models/deploymentoverrideazureresource.md: - id: a8ab252d99df - last_write_checksum: sha1:ad32f446718828a21e455dbd201c2b0a977490ec - pristine_git_object: 13355c19c0940680fe7f9231cee900f220be0711 - docs/models/deploymentoverrideazurestack.md: - id: 237c376b6421 - last_write_checksum: sha1:ebf7a20c1449e402b476bbe9703933027bee7622 - pristine_git_object: 229de554b2cc1eba7cfb0c0a846f58b891628bd2 - docs/models/deploymentoverrideconditionresource.md: - id: 7802e3f556ba - last_write_checksum: sha1:96fc2db553cbb9725cd1ddb5ba72ca02e81788fb - pristine_git_object: cc755e3385ba8c651877540df45a5f14e6b52419 - docs/models/deploymentoverrideconditionstack.md: - id: 966537e4d4ed - last_write_checksum: sha1:b766ca33f6f9073f962d484989fa31039f2f3173 - pristine_git_object: 0c15c4ee739a62c3e0a82b1885ea0bff967c012f - docs/models/deploymentoverrideeffect.md: - id: 2dd070c0e163 - last_write_checksum: sha1:96e36d62d3c51167a7a1d63294087a6205c84eaf - pristine_git_object: a73e20edd1443a6666963010151614ff110e866e - docs/models/deploymentoverridegcp.md: - id: 44f31f89ec60 - last_write_checksum: sha1:9da45b5c7d920dcc638a32558519c178659440a4 - pristine_git_object: 29b3d394920b864329f8df789045610c648f266b - docs/models/deploymentoverridegcpbinding.md: - id: 195ab8fe096d - last_write_checksum: sha1:16cad8e25037d45aef35d1e99778759b6d8d5275 - pristine_git_object: 1753dd590cbd25b3fa35354debba5c0aa7d44d3c - docs/models/deploymentoverridegcpgrant.md: - id: fb4b64b67fba - last_write_checksum: sha1:d81dd87459421f4c0a39e290f8555bcf902d36e2 - pristine_git_object: 24b44010110e3877c93f43c0e9ee008b90c70cd8 - docs/models/deploymentoverridegcpresource.md: - id: 4d0f3899ba9d - last_write_checksum: sha1:82c7791635c0ad2593a658c5cd805758e4e851c6 - pristine_git_object: 130490517293981a2894e2c741ad4600c602e706 - docs/models/deploymentoverridegcpstack.md: - id: 17f91dd499fe - last_write_checksum: sha1:7cf91fb7d8e8cb2d87b48109795946292d265a45 - pristine_git_object: 68e988182bb0e1eb92ab8432d34bb569aa80ab46 - docs/models/deploymentoverrideplatforms.md: - id: ab8fdf944626 - last_write_checksum: sha1:2f9f9cbb6219acd4f0cd61d556a77b6ec9d9f695 - pristine_git_object: 255b50186d83f0db7940c563f460b7fc185d3eed - docs/models/deploymentoverrideresourceconditionunion.md: - id: 6669c82fa2fd - last_write_checksum: sha1:634297301268c6a50f910227b45825ce1a617305 - pristine_git_object: 0b79f4d2651d243e9f5c218de516eebfdf3a5129 - docs/models/deploymentoverridestackconditionunion.md: - id: 9440985f38df - last_write_checksum: sha1:1d81804141aea91679ed0b8f637fa319d1eaf62b - pristine_git_object: ece774ad733f7c4cce94b2142cc3bf3dfb89b6af - docs/models/deploymentoverrideunion.md: - id: 983e4d674fa8 - last_write_checksum: sha1:ec90ae6fedc92374c7d642f4ec34a3d50786fb07 - pristine_git_object: b640d8a0af290383c6475ea8b155ee79e0c7603c docs/models/deploymentownership.md: id: 8b306a671106 last_write_checksum: sha1:075acefff25957d497a4bbe55572f2565d2b3f68 pristine_git_object: 62464392b14bedd8df522a2b3f60309adbec448f - docs/models/deploymentpermissions.md: - id: 97756d6e5e03 - last_write_checksum: sha1:99cdd53c445bd8cbee9bca2f99ca3bd9776151c6 - pristine_git_object: 1ac3bfd8841fdea0dac439d83adf451b8b5a6026 + docs/models/deploymentpendingpreparedstack.md: + last_write_checksum: sha1:031e1c5741c5483d34b6abb4a6efcf4133b97716 + docs/models/deploymentpendingpreparedstackconfig.md: + last_write_checksum: sha1:69779eec1bb8330c90b65177b5a5c929511dafca + docs/models/deploymentpendingpreparedstackdefaultboolean.md: + last_write_checksum: sha1:f7a4c42ebd7992bb2d074748871640536331508d + docs/models/deploymentpendingpreparedstackdefaultnumber.md: + last_write_checksum: sha1:eefe9f9d8a737c4d1e03165f7633c8a40cfdbbb5 + docs/models/deploymentpendingpreparedstackdefaultstring.md: + last_write_checksum: sha1:1eb1089a0e93b2c2523c10c96b6f04724afde18f + docs/models/deploymentpendingpreparedstackdefaultstringlist.md: + last_write_checksum: sha1:cef235bc68e1c2e5b44cb7b34604c9d51a20cdb8 + docs/models/deploymentpendingpreparedstackdefaultunion.md: + last_write_checksum: sha1:d159ffe5a799fecd7770c3bc9d9cf042bb9653c2 + docs/models/deploymentpendingpreparedstackdependency.md: + last_write_checksum: sha1:9be5bc2057f224353cd2c088a8dbcbb367587d8f + docs/models/deploymentpendingpreparedstackenv.md: + last_write_checksum: sha1:8703c84191f2fe8b3b217eb2508df53d009f0b4c + docs/models/deploymentpendingpreparedstackextend.md: + last_write_checksum: sha1:8f04ed2dfba87714c22eeef43b400275b8002511 + docs/models/deploymentpendingpreparedstackextendaw.md: + last_write_checksum: sha1:a3960e7144ddf192f5831c7e6afb1eeb4a6ec849 + docs/models/deploymentpendingpreparedstackextendawbinding.md: + last_write_checksum: sha1:7954e38f1de2d65bd3b077505094b04db44f818c + docs/models/deploymentpendingpreparedstackextendawgrant.md: + last_write_checksum: sha1:ab3d9dd654540650026fcf559641b2400dbfa5d8 + docs/models/deploymentpendingpreparedstackextendawresource.md: + last_write_checksum: sha1:b96c7bf9e631572e880e637f543c7476310fb48a + docs/models/deploymentpendingpreparedstackextendawstack.md: + last_write_checksum: sha1:64e078c8c1161abb9a3750f61737dfbd53b1ff00 + docs/models/deploymentpendingpreparedstackextendazure.md: + last_write_checksum: sha1:eb8e660fe5fdf7b1372f7e1ab821d0cd407c6f4b + docs/models/deploymentpendingpreparedstackextendazurebinding.md: + last_write_checksum: sha1:50df3f94e43a7f569f342eab037e446d8f27d10c + docs/models/deploymentpendingpreparedstackextendazuregrant.md: + last_write_checksum: sha1:288409d367b6880d0392e6691386bdea83975c00 + docs/models/deploymentpendingpreparedstackextendazureresource.md: + last_write_checksum: sha1:fc65ef445d9984ddcb4e90cc5ae090891293dd96 + docs/models/deploymentpendingpreparedstackextendazurestack.md: + last_write_checksum: sha1:c9f5af6bde7436241d47793a77b72e8b65b7e5c9 + docs/models/deploymentpendingpreparedstackextendconditionresource.md: + last_write_checksum: sha1:2af5ac39b0c5588b971ef436e3873333ac8469b2 + docs/models/deploymentpendingpreparedstackextendconditionstack.md: + last_write_checksum: sha1:894665ac10995d762ab1fcf21895f51b2e3d7121 + docs/models/deploymentpendingpreparedstackextendeffect.md: + last_write_checksum: sha1:5d7a14690f20bc96f5467e39202bf59322455b47 + docs/models/deploymentpendingpreparedstackextendgcp.md: + last_write_checksum: sha1:79a7b51328e549d094846aacf93da99718a5c815 + docs/models/deploymentpendingpreparedstackextendgcpbinding.md: + last_write_checksum: sha1:35140f019f953b9daf5e88fbee27ecca2e2e49db + docs/models/deploymentpendingpreparedstackextendgcpgrant.md: + last_write_checksum: sha1:efc2afdf48bd16b4556dde861c333dd833f4c86e + docs/models/deploymentpendingpreparedstackextendgcpresource.md: + last_write_checksum: sha1:adf6ccee1f5cc8c72e9fe45e4834754b35cdb837 + docs/models/deploymentpendingpreparedstackextendgcpstack.md: + last_write_checksum: sha1:ccda2bd034dc32d8fbb651c93daa7a04cd9c446f + docs/models/deploymentpendingpreparedstackextendplatforms.md: + last_write_checksum: sha1:8ac2406b05c29abd700be9e6b3ce28196a9a9341 + docs/models/deploymentpendingpreparedstackextendresourceconditionunion.md: + last_write_checksum: sha1:e6565cb5fd26ff8e4cc33e601296cc126a7246f8 + docs/models/deploymentpendingpreparedstackextendstackconditionunion.md: + last_write_checksum: sha1:14a29b6bfff13aa97dd9b2baeb8ccfa838e579ac + docs/models/deploymentpendingpreparedstackextendunion.md: + last_write_checksum: sha1:8003791f3acac2e39a8a4c39acf4266495ff6032 + docs/models/deploymentpendingpreparedstackinput.md: + last_write_checksum: sha1:52a978f23aa0b728401d78efd41b723f6a3daa55 + docs/models/deploymentpendingpreparedstackkind.md: + last_write_checksum: sha1:ab06677391212b9ac92853653e7afdbf7f65bf74 + docs/models/deploymentpendingpreparedstacklifecycle.md: + last_write_checksum: sha1:311d880c07c52ec6b86d1faaa1d4d601bee058a0 + docs/models/deploymentpendingpreparedstackmanagement1.md: + last_write_checksum: sha1:eb6a5b2d8e1a6bb02b50e0960230ac1b58eca3ee + docs/models/deploymentpendingpreparedstackmanagement2.md: + last_write_checksum: sha1:18881b8792b944ff8546dd1a418efe74a84127c1 + docs/models/deploymentpendingpreparedstackmanagementenum.md: + last_write_checksum: sha1:978f73aa08ee842dc4e607554b3a69812b52ecc7 + docs/models/deploymentpendingpreparedstackmanagementunion.md: + last_write_checksum: sha1:468e0a8389f73b8d01ad22e6cc23aad76e4f6413 + docs/models/deploymentpendingpreparedstackoverride.md: + last_write_checksum: sha1:880f9b3e778a1f8ba256bf9397cd3b3b3c04986d + docs/models/deploymentpendingpreparedstackoverrideaw.md: + last_write_checksum: sha1:b863e40b8d386362e199a557a3dd03067e11f145 + docs/models/deploymentpendingpreparedstackoverrideawbinding.md: + last_write_checksum: sha1:501ec1532170e8c5f6a061f1aca8e91d6cd2ee8e + docs/models/deploymentpendingpreparedstackoverrideawgrant.md: + last_write_checksum: sha1:5df21d35df34ac395d7c6fac657bc7661e39a3a9 + docs/models/deploymentpendingpreparedstackoverrideawresource.md: + last_write_checksum: sha1:e3ddffc391aaf79bf6c84b20898a96929b2dd15e + docs/models/deploymentpendingpreparedstackoverrideawstack.md: + last_write_checksum: sha1:6f4d50b83fa008726e1484cb4f96bab45a2f857b + docs/models/deploymentpendingpreparedstackoverrideazure.md: + last_write_checksum: sha1:e350068f06cceb424932b511b513ee1fd802820f + docs/models/deploymentpendingpreparedstackoverrideazurebinding.md: + last_write_checksum: sha1:fd187812bb121da268ee965ac8259f4d35641ec5 + docs/models/deploymentpendingpreparedstackoverrideazuregrant.md: + last_write_checksum: sha1:155c62924c26e73199b322de90531c78a21f34b2 + docs/models/deploymentpendingpreparedstackoverrideazureresource.md: + last_write_checksum: sha1:618882a9ce3b9c8449f0aac3d2ed065ed5916a18 + docs/models/deploymentpendingpreparedstackoverrideazurestack.md: + last_write_checksum: sha1:997070c8091916a32baab0ac78d551f0ec0ae366 + docs/models/deploymentpendingpreparedstackoverrideconditionresource.md: + last_write_checksum: sha1:79372e888250bc964ea77cec7670b38fdef23bb9 + docs/models/deploymentpendingpreparedstackoverrideconditionstack.md: + last_write_checksum: sha1:374265c927cb993f4742e48b851f65733c4c17b9 + docs/models/deploymentpendingpreparedstackoverrideeffect.md: + last_write_checksum: sha1:ffd1625b83914ae1ba53d4629b9c3609ac58b619 + docs/models/deploymentpendingpreparedstackoverridegcp.md: + last_write_checksum: sha1:0b5b1a5e03c56aad3e82e87aabeecd043a92b304 + docs/models/deploymentpendingpreparedstackoverridegcpbinding.md: + last_write_checksum: sha1:7d7524aca499b96bc3b469d214e8bfff039b3cdc + docs/models/deploymentpendingpreparedstackoverridegcpgrant.md: + last_write_checksum: sha1:90f0e7b4a610dbd105197c78d0076ec6fbed55e0 + docs/models/deploymentpendingpreparedstackoverridegcpresource.md: + last_write_checksum: sha1:8ea5b57ee9217f04ab7488bd7c8a470e3425266f + docs/models/deploymentpendingpreparedstackoverridegcpstack.md: + last_write_checksum: sha1:d9f2052cc3cabf65f7ecd46ad7b06b5137ef605b + docs/models/deploymentpendingpreparedstackoverrideplatforms.md: + last_write_checksum: sha1:c27de63a6b98ec8e9f2759aeac1813478fe04b82 + docs/models/deploymentpendingpreparedstackoverrideresourceconditionunion.md: + last_write_checksum: sha1:5295d8ab3218c517a2faaee399adf97afe167d89 + docs/models/deploymentpendingpreparedstackoverridestackconditionunion.md: + last_write_checksum: sha1:9f0c6f990ce0ce162a6028a3fb172afa1fae4ce8 + docs/models/deploymentpendingpreparedstackoverrideunion.md: + last_write_checksum: sha1:37233dbeaa9d67703f3d93538fe777cc9dfff1e3 + docs/models/deploymentpendingpreparedstackpermissions.md: + last_write_checksum: sha1:09d628291968252d4067b5e128d12f652e250f32 + docs/models/deploymentpendingpreparedstackplatform.md: + last_write_checksum: sha1:1efed42e562a93d5defc5253d81bb8a708db58b1 + docs/models/deploymentpendingpreparedstackprofile.md: + last_write_checksum: sha1:c9c33fb19adfdd1be89c4866b744b4596eec4411 + docs/models/deploymentpendingpreparedstackprofileaw.md: + last_write_checksum: sha1:ab10ff694b7cb8d53d2a6aff20fab7656e39befa + docs/models/deploymentpendingpreparedstackprofileawbinding.md: + last_write_checksum: sha1:32db27c3b4fe7b55605f107c4e02fd78124dce6c + docs/models/deploymentpendingpreparedstackprofileawgrant.md: + last_write_checksum: sha1:153385421f8776880b0c252affa1b41b7ee34767 + docs/models/deploymentpendingpreparedstackprofileawresource.md: + last_write_checksum: sha1:62f510b282df3269e39199bcfa19cb81a0341047 + docs/models/deploymentpendingpreparedstackprofileawstack.md: + last_write_checksum: sha1:17f782143eaa6c481dac3e203c310946a552f6dd + docs/models/deploymentpendingpreparedstackprofileazure.md: + last_write_checksum: sha1:515989f44983af7e1f403bfd224595afbb873f96 + docs/models/deploymentpendingpreparedstackprofileazurebinding.md: + last_write_checksum: sha1:3d533c72d64dd0ff1f9299f5f0bb72181240f5b0 + docs/models/deploymentpendingpreparedstackprofileazuregrant.md: + last_write_checksum: sha1:ad14d9e2d6c17820787b3549253610a7302e1abf + docs/models/deploymentpendingpreparedstackprofileazureresource.md: + last_write_checksum: sha1:8e99e8eaedabf487c67505a0885b560528eb0fa7 + docs/models/deploymentpendingpreparedstackprofileazurestack.md: + last_write_checksum: sha1:71745dc0d77f0ed57c31a98c7b67a0898fd9c6d7 + docs/models/deploymentpendingpreparedstackprofileconditionresource.md: + last_write_checksum: sha1:4164dbca121e77aa867c8f1bb3d6c17a1df19b89 + docs/models/deploymentpendingpreparedstackprofileconditionstack.md: + last_write_checksum: sha1:2d18cdce169a4c7226d18144c8c7f7869603302d + docs/models/deploymentpendingpreparedstackprofileeffect.md: + last_write_checksum: sha1:2bfff86a613856aacbf69abbcd20840c3b4d8a17 + docs/models/deploymentpendingpreparedstackprofilegcp.md: + last_write_checksum: sha1:4086348e526ed9bcc6d87b3f29ea5a6d09d4b88f + docs/models/deploymentpendingpreparedstackprofilegcpbinding.md: + last_write_checksum: sha1:362df3d85f9f672e3c45f50285e29822766075fb + docs/models/deploymentpendingpreparedstackprofilegcpgrant.md: + last_write_checksum: sha1:d8ffc772d7cc34c9c922fe8e59071e8c19061147 + docs/models/deploymentpendingpreparedstackprofilegcpresource.md: + last_write_checksum: sha1:4eac0b1b09d7be27dc21a610980eed1520f333d2 + docs/models/deploymentpendingpreparedstackprofilegcpstack.md: + last_write_checksum: sha1:e6e7997e7009e44aa705ecc97487f730b37e06a8 + docs/models/deploymentpendingpreparedstackprofileplatforms.md: + last_write_checksum: sha1:47d445c763f34ebfc667a3bca599ef45843fde43 + docs/models/deploymentpendingpreparedstackprofileresourceconditionunion.md: + last_write_checksum: sha1:8b7b015508be3c436f7f90039d446aeb61247320 + docs/models/deploymentpendingpreparedstackprofilestackconditionunion.md: + last_write_checksum: sha1:2526a0c6e98eae69b4260fc72e1f36e7b67ae785 + docs/models/deploymentpendingpreparedstackprofileunion.md: + last_write_checksum: sha1:9d8f1fdcf37fe388638593573e0d3578b1cd1349 + docs/models/deploymentpendingpreparedstackprovidedby.md: + last_write_checksum: sha1:ba588a8a70bd84f89ee419701d890b7ede2e1b91 + docs/models/deploymentpendingpreparedstackresources.md: + last_write_checksum: sha1:4d091b47c19e08b5582f494570b1d1281242ddae + docs/models/deploymentpendingpreparedstacksupportedplatform.md: + last_write_checksum: sha1:e90905d2f79e6a15c4928990068b8ecae7e936e8 + docs/models/deploymentpendingpreparedstacktypeboolean.md: + last_write_checksum: sha1:3988cddf820a4cbe701e5cc44e908c2580034a2b + docs/models/deploymentpendingpreparedstacktypeenvenum.md: + last_write_checksum: sha1:428b152711604a6490ee9e5f7d50c40dfaf5f403 + docs/models/deploymentpendingpreparedstacktypenumber.md: + last_write_checksum: sha1:3d05b8ab09a7ae4c3db548c25e461f052813da51 + docs/models/deploymentpendingpreparedstacktypestring.md: + last_write_checksum: sha1:c18de3b424349e326bd97d93745ee7ff2d857356 + docs/models/deploymentpendingpreparedstacktypestringlist.md: + last_write_checksum: sha1:8d1ba6c10cc01a225162da533d787a17cd39428e + docs/models/deploymentpendingpreparedstacktypeunion.md: + last_write_checksum: sha1:70809cfa2acadfd857b118e6ad130746f116e637 + docs/models/deploymentpendingpreparedstackunion.md: + last_write_checksum: sha1:6d2c999b5cc9a8eb1598bedce46fcaf6dda2be32 + docs/models/deploymentpendingpreparedstackvalidation.md: + last_write_checksum: sha1:bb4dbe9665d5ce0cae5950fb3dba396041b35b04 + docs/models/deploymentpendingpreparedstackvalidationunion.md: + last_write_checksum: sha1:1450286e6f32fff63c7833c9586566bd62158093 docs/models/deploymentplatform.md: id: 5242b74d1dce last_write_checksum: sha1:b4966ffe6412669c0d71239a160d5511af8eca9e @@ -5840,11 +5834,11 @@ trackedFiles: pristine_git_object: e3f8a1b94213f7c9f24eb11d256d0911aa3bcb75 docs/models/deploymentpoolsautoscale.md: id: 0d416acee1c0 - last_write_checksum: sha1:f7517713e1598ba6e0e66dd072b5036711b2a4a4 + last_write_checksum: sha1:eef6b93090b30680d9fef50e9c4d08d8bb6c6478 pristine_git_object: 409f808bf6db27d97b6eaf7eb1b190acb76bf7a9 docs/models/deploymentpoolsfixed.md: id: ce79ac4bfbfb - last_write_checksum: sha1:4a5ea051eb0bd4e0e46a799052692050c1b17690 + last_write_checksum: sha1:a87a6f3b1ec7cb9e2c1fba55e3ef48449035c0b6 pristine_git_object: fea8c3d58e0236a0af4d73a63c5af718be054fb7 docs/models/deploymentpoolsunion.md: id: 9ee235cfa730 @@ -5876,32 +5870,216 @@ trackedFiles: pristine_git_object: 73a19ea51d500c1901316099a386152614a99727 docs/models/deploymentpreparedstack.md: id: bd6ed6d020ff - last_write_checksum: sha1:b61b6e1b864c103c096b5179652d0a7ec7ee291e + last_write_checksum: sha1:513561f7aee5056e3367a32be8095f48e945c655 pristine_git_object: a9c286790b55ed80b805adcc515e18a6fc6522a9 docs/models/deploymentpreparedstackconfig.md: id: 587f5b9d7c5a last_write_checksum: sha1:7bdd3637202fe0d76db316c3926a011dd11915aa pristine_git_object: 3664317ebab22dac5408c16273ea651db0265775 + docs/models/deploymentpreparedstackdefaultboolean.md: + last_write_checksum: sha1:feaf6467cb81474666e2e2295418fad09ff25b71 + docs/models/deploymentpreparedstackdefaultnumber.md: + last_write_checksum: sha1:edb28dd4b567b395bdae047e4de5fac59d43a4c6 + docs/models/deploymentpreparedstackdefaultstring.md: + last_write_checksum: sha1:a447eb500d94916ba7e9379b57eb8acbed9ad4f3 + docs/models/deploymentpreparedstackdefaultstringlist.md: + last_write_checksum: sha1:7e36c1239f3e6dd71a5b2bf425ec55ee5f957cec + docs/models/deploymentpreparedstackdefaultunion.md: + last_write_checksum: sha1:7fca087fbea852b7c8053aee6c9a5acf03a057f9 docs/models/deploymentpreparedstackdependency.md: id: bfdde345332f last_write_checksum: sha1:79bafc0b1b442ba71f76f0fb9d9bb9fda0324775 pristine_git_object: 4dd159d8a799ce31d2f153880ed64368661bcd9e + docs/models/deploymentpreparedstackenv.md: + last_write_checksum: sha1:8f9aadc68bb223326f4f38ce15b05c394e300bde + docs/models/deploymentpreparedstackextend.md: + last_write_checksum: sha1:3f27fb536a0c6b3e9ce1b160624b76538c9af98c + docs/models/deploymentpreparedstackextendaw.md: + last_write_checksum: sha1:939449d6754c6331a5a7bc7d83d5417d6ed84691 + docs/models/deploymentpreparedstackextendawbinding.md: + last_write_checksum: sha1:1c470a9a47e539dd52e9211419828b36a46b1980 + docs/models/deploymentpreparedstackextendawgrant.md: + last_write_checksum: sha1:2fd97f6def7299d726a7b5a1e9420162c426d6b8 + docs/models/deploymentpreparedstackextendawresource.md: + last_write_checksum: sha1:c127a0cb99e165b51333be43c383920b288860a3 + docs/models/deploymentpreparedstackextendawstack.md: + last_write_checksum: sha1:ce57b052f6ed1d481d3b9091a84dbe912277255f + docs/models/deploymentpreparedstackextendazure.md: + last_write_checksum: sha1:07979c7ab367b87ecd8bed0669473bc2df622463 + docs/models/deploymentpreparedstackextendazurebinding.md: + last_write_checksum: sha1:90c01f65a9290c1d5fa9a96d5beeaf03cf0efc3a + docs/models/deploymentpreparedstackextendazuregrant.md: + last_write_checksum: sha1:5ef5c57d8176970fe84560e42055aa5358d37a96 + docs/models/deploymentpreparedstackextendazureresource.md: + last_write_checksum: sha1:eec5c61218704de251ed99b27ce04110cd1762d8 + docs/models/deploymentpreparedstackextendazurestack.md: + last_write_checksum: sha1:a23a4e0b6c514d93d89eab6c5ba12cb9d86534b7 + docs/models/deploymentpreparedstackextendconditionresource.md: + last_write_checksum: sha1:5978a257c210536682825641c6a56cd508bdd2bc + docs/models/deploymentpreparedstackextendconditionstack.md: + last_write_checksum: sha1:f1956cde460f62667383f8db72fecf8fc09f7f39 + docs/models/deploymentpreparedstackextendeffect.md: + last_write_checksum: sha1:2368e8bef7e8c6cf3d5f6db9a8e4286ed39efca4 + docs/models/deploymentpreparedstackextendgcp.md: + last_write_checksum: sha1:0269157cef635f7943a879c079ca420ed1ef8e44 + docs/models/deploymentpreparedstackextendgcpbinding.md: + last_write_checksum: sha1:236d071f1d2804ed865aeb238e25929ae1fdb455 + docs/models/deploymentpreparedstackextendgcpgrant.md: + last_write_checksum: sha1:17b4d6cfdb17c86ed185160f8231f556ebfce65c + docs/models/deploymentpreparedstackextendgcpresource.md: + last_write_checksum: sha1:5cd38e5e2a73b986f602622d2eea9e482bed335c + docs/models/deploymentpreparedstackextendgcpstack.md: + last_write_checksum: sha1:ba7931b0df0c6ce2ebd11a7d0593fd2491a46de7 + docs/models/deploymentpreparedstackextendplatforms.md: + last_write_checksum: sha1:5c5b12eba952bda92ffc79017b5b25622fe48a79 + docs/models/deploymentpreparedstackextendresourceconditionunion.md: + last_write_checksum: sha1:5f5c6a1adb19c51640a4a5de9bed2ac53811e049 + docs/models/deploymentpreparedstackextendstackconditionunion.md: + last_write_checksum: sha1:d3d416bf87984c909f5a82be257bcfe2128658c9 + docs/models/deploymentpreparedstackextendunion.md: + last_write_checksum: sha1:ad796d9cc87909e1c006aa6812b75b3e18073545 + docs/models/deploymentpreparedstackinput.md: + last_write_checksum: sha1:d1a0ec44571f3626c081e9b9a96b8bd55b7c1564 + docs/models/deploymentpreparedstackkind.md: + last_write_checksum: sha1:54a1d60bbc4d80765eb3d35be2ee40bb87be3f75 docs/models/deploymentpreparedstacklifecycle.md: id: ff0f724944aa last_write_checksum: sha1:42d17e2edb84269f36140be39eecb7475c3992fd pristine_git_object: 76c7e6c249245e88c35876aee4c67d3af2375f9d + docs/models/deploymentpreparedstackmanagement1.md: + last_write_checksum: sha1:ce2017ef7ee4415c014b322bb91f45b667a8dbe9 + docs/models/deploymentpreparedstackmanagement2.md: + last_write_checksum: sha1:80f946ea6b9ba4dbe16ab14a66eaca71ea89c91d + docs/models/deploymentpreparedstackmanagementenum.md: + last_write_checksum: sha1:8969f84b6e1f6ed508d23b4267c44b7d34acfdcb + docs/models/deploymentpreparedstackmanagementunion.md: + last_write_checksum: sha1:57b77d5ae8498981755dd44bdfa478a2d3c0e67c + docs/models/deploymentpreparedstackoverride.md: + last_write_checksum: sha1:46d979e0e9f98a77d9f84106b968c9ac16b3a3c3 + docs/models/deploymentpreparedstackoverrideaw.md: + last_write_checksum: sha1:8fda3c6b3e76ef42c503bd0d382c0c8a4b7db036 + docs/models/deploymentpreparedstackoverrideawbinding.md: + last_write_checksum: sha1:100386e555c0a5bcd4d399ce9b24286213ab9c38 + docs/models/deploymentpreparedstackoverrideawgrant.md: + last_write_checksum: sha1:19c7da1f8e0314e392f94d9606fef501d4a399d8 + docs/models/deploymentpreparedstackoverrideawresource.md: + last_write_checksum: sha1:f49949a2bda2484f8afc627583bb31d3beb29f24 + docs/models/deploymentpreparedstackoverrideawstack.md: + last_write_checksum: sha1:47e3ff43ea426047759474584532496789ec2365 + docs/models/deploymentpreparedstackoverrideazure.md: + last_write_checksum: sha1:246ec061ef52953958c12fa877e0439b890080d2 + docs/models/deploymentpreparedstackoverrideazurebinding.md: + last_write_checksum: sha1:b47d0c5563fcebe2988aaca17788239b540016c1 + docs/models/deploymentpreparedstackoverrideazuregrant.md: + last_write_checksum: sha1:bc6e1381214a7ea0185c93a93ca7e9fbbc8cd873 + docs/models/deploymentpreparedstackoverrideazureresource.md: + last_write_checksum: sha1:4be28f53a49c722d101045d48c67098eeb72d3be + docs/models/deploymentpreparedstackoverrideazurestack.md: + last_write_checksum: sha1:720bc2593fb17b3aaad506117a10bd2b33d2bc01 + docs/models/deploymentpreparedstackoverrideconditionresource.md: + last_write_checksum: sha1:289ba607789e2103250ee19def6d381f156a470d + docs/models/deploymentpreparedstackoverrideconditionstack.md: + last_write_checksum: sha1:658e7454d1ffd440551ff8c5c4ddb1a7e0bc68bd + docs/models/deploymentpreparedstackoverrideeffect.md: + last_write_checksum: sha1:2315dc48d3f2f0083bb115c14b543f7513dfc0b9 + docs/models/deploymentpreparedstackoverridegcp.md: + last_write_checksum: sha1:d807b21c1a6085163af7ec4eb94abffc5b030bf2 + docs/models/deploymentpreparedstackoverridegcpbinding.md: + last_write_checksum: sha1:67d3d38cc71194d90840ff3ea30d42ed9862d960 + docs/models/deploymentpreparedstackoverridegcpgrant.md: + last_write_checksum: sha1:ec38dbf4b9f115febc43ffceb768071e64ecbce2 + docs/models/deploymentpreparedstackoverridegcpresource.md: + last_write_checksum: sha1:7d84c561e74e2ad7a9b8a8db5434e0fc6b2a07b1 + docs/models/deploymentpreparedstackoverridegcpstack.md: + last_write_checksum: sha1:96c181160e2f051b6ce649d3d4bee03e88105d0a + docs/models/deploymentpreparedstackoverrideplatforms.md: + last_write_checksum: sha1:773826217d858ad47d08e5d3077e8d04e78fd2d9 + docs/models/deploymentpreparedstackoverrideresourceconditionunion.md: + last_write_checksum: sha1:76453b9a403db044919f4a9ec56a41125ccb69e2 + docs/models/deploymentpreparedstackoverridestackconditionunion.md: + last_write_checksum: sha1:edb47b68d5c9f800a7d89fdc2cc38dfda4b31f3f + docs/models/deploymentpreparedstackoverrideunion.md: + last_write_checksum: sha1:37296c3ed1d0fad186cc62c111879ef9d39fc859 + docs/models/deploymentpreparedstackpermissions.md: + last_write_checksum: sha1:7c9389c023ee4d3753a1fd595f3731ccbadcf982 docs/models/deploymentpreparedstackplatform.md: id: 7281e9eca758 last_write_checksum: sha1:81525fdd225b4b584a9824a7c6b3d062dc0e3810 pristine_git_object: 62f0db880cb4f8e722c20a91d7cd1b53f7843047 + docs/models/deploymentpreparedstackprofile.md: + last_write_checksum: sha1:833d08b39576786ae90032ba111903ea4cdd8d31 + docs/models/deploymentpreparedstackprofileaw.md: + last_write_checksum: sha1:c733cd799985424b36b90012e5dff250f28a892f + docs/models/deploymentpreparedstackprofileawbinding.md: + last_write_checksum: sha1:f39661f08692a64c875f5e752fa63f30fde2de16 + docs/models/deploymentpreparedstackprofileawgrant.md: + last_write_checksum: sha1:eef57148eb29e843006dd6f321d79f33d4e82293 + docs/models/deploymentpreparedstackprofileawresource.md: + last_write_checksum: sha1:ae4d2f0c15589581e90929888330eb8cc2bde771 + docs/models/deploymentpreparedstackprofileawstack.md: + last_write_checksum: sha1:cf76ebd37407dbbe07cc572b1542d005c51743e4 + docs/models/deploymentpreparedstackprofileazure.md: + last_write_checksum: sha1:fea152f3f2c6bb9928d0e4f993cc650a660f25c7 + docs/models/deploymentpreparedstackprofileazurebinding.md: + last_write_checksum: sha1:18d045af5270f6623a623b6526a0269c3110650b + docs/models/deploymentpreparedstackprofileazuregrant.md: + last_write_checksum: sha1:f2e388a48748e8b73c6f7789bf8a8ccded1031b1 + docs/models/deploymentpreparedstackprofileazureresource.md: + last_write_checksum: sha1:cc17f46c2f4abd4f14453432004a6ad222b3c312 + docs/models/deploymentpreparedstackprofileazurestack.md: + last_write_checksum: sha1:550272b29a605e2c15ec03448457b949d01525a1 + docs/models/deploymentpreparedstackprofileconditionresource.md: + last_write_checksum: sha1:e2eb7f171927030c1d6c6c2202436eec15a25640 + docs/models/deploymentpreparedstackprofileconditionstack.md: + last_write_checksum: sha1:995116e1be78adf9cb9c6add5ddfc2592bd0d1e4 + docs/models/deploymentpreparedstackprofileeffect.md: + last_write_checksum: sha1:6c2d5d7f8ee819464404cce67aab809b365a32d5 + docs/models/deploymentpreparedstackprofilegcp.md: + last_write_checksum: sha1:388ca92a439bd9d071fd74efed09bc4555171e88 + docs/models/deploymentpreparedstackprofilegcpbinding.md: + last_write_checksum: sha1:93653e44c32b3ce82ed501445653b5689f37c044 + docs/models/deploymentpreparedstackprofilegcpgrant.md: + last_write_checksum: sha1:bd248f41b281c279001b127c57b7531f3bd084e3 + docs/models/deploymentpreparedstackprofilegcpresource.md: + last_write_checksum: sha1:0ccf8206257451f83d7b642ad0d5ccfa46519b24 + docs/models/deploymentpreparedstackprofilegcpstack.md: + last_write_checksum: sha1:cb5f660846ed96d037bcc45ee1d39d86d41594ed + docs/models/deploymentpreparedstackprofileplatforms.md: + last_write_checksum: sha1:bbb635522789cb8f88d908096cff195196de9de4 + docs/models/deploymentpreparedstackprofileresourceconditionunion.md: + last_write_checksum: sha1:2d8bd478a49acba8843bd27738a7730e7d1f3e86 + docs/models/deploymentpreparedstackprofilestackconditionunion.md: + last_write_checksum: sha1:dab6e6a9a9acaacf298f052c411bc3505ba7217d + docs/models/deploymentpreparedstackprofileunion.md: + last_write_checksum: sha1:eb934b6f84beda9091c79cd8b15cf440bfede532 + docs/models/deploymentpreparedstackprovidedby.md: + last_write_checksum: sha1:2d34c5e2d1e059fb8002a820834b527ed5194b88 docs/models/deploymentpreparedstackresources.md: id: 3fd12e8af72d - last_write_checksum: sha1:7563638e099e29b1483feab0254c66a5529525e6 + last_write_checksum: sha1:5b22191ca01906272dd9aa7c8391823ad9ac98a2 pristine_git_object: 51c0abc722410b04f32db300d071a0a38bc49d92 + docs/models/deploymentpreparedstacksupportedplatform.md: + last_write_checksum: sha1:4d2e5dc6f9295643aa8bf508290cb8b459d071d3 + docs/models/deploymentpreparedstacktypeboolean.md: + last_write_checksum: sha1:4eb35ef917b059e9b82a9c911e4034b7e7edb2b0 + docs/models/deploymentpreparedstacktypeenvenum.md: + last_write_checksum: sha1:3351153279d83bdf2d57bdcd5b6c09fcca0a91d1 + docs/models/deploymentpreparedstacktypenumber.md: + last_write_checksum: sha1:3b28dbac73c1d3d98884ac42383bb07f368844d3 + docs/models/deploymentpreparedstacktypestring.md: + last_write_checksum: sha1:3bba8609e791c0564246427a123956f4b5680ee4 + docs/models/deploymentpreparedstacktypestringlist.md: + last_write_checksum: sha1:0516e0b7d0fad9af4b7b4b34de03a6c0647eb724 + docs/models/deploymentpreparedstacktypeunion.md: + last_write_checksum: sha1:27803a5db44313d998db695ad44fe08d48573b1e docs/models/deploymentpreparedstackunion.md: id: ee964e497218 last_write_checksum: sha1:8eeb0f210426b25372aba24d50f6be7640a69fe0 pristine_git_object: 85b3892b543f5de4ffa8fc77f7b9a47646dead35 + docs/models/deploymentpreparedstackvalidation.md: + last_write_checksum: sha1:971b288990b9cce5c93e688ea4325cd3c2f7c9ee + docs/models/deploymentpreparedstackvalidationunion.md: + last_write_checksum: sha1:a98de9f5a46a81fc05a9b9f55bc727345e97c464 docs/models/deploymentpreviousconfig.md: id: ff8387105270 last_write_checksum: sha1:d14e2d5e90d42b62d4ee523902a522a28dd3ffa8 @@ -5910,106 +6088,10 @@ trackedFiles: id: 0d65faf71ccb last_write_checksum: sha1:96898ee12344edc1eb5d721c2113378643729cc0 pristine_git_object: 8660d73fe5b837ead4a5bfae054d2985af2f5174 - docs/models/deploymentprofile.md: - id: 858e1ba29b3c - last_write_checksum: sha1:39336a45ba1ab332c4a2e599d68ec91fd687bc37 - pristine_git_object: c5e7249db174fc55eceb2eae30f627aad1a904e4 - docs/models/deploymentprofileaw.md: - id: 104038f20c50 - last_write_checksum: sha1:7cf55c6bff9b4c15f46118607ed7325a01277b40 - pristine_git_object: 297636daa9e05d20b5809d6bef8fb401cc2f7070 - docs/models/deploymentprofileawbinding.md: - id: 02d699b6a446 - last_write_checksum: sha1:f61816dc028d4d328f290b14114502cde4243984 - pristine_git_object: d1d6c7e72e7ca28d00965a68b11f17d544b735b5 - docs/models/deploymentprofileawgrant.md: - id: b491ce32db5b - last_write_checksum: sha1:555b9cd21964904847407c94589626cafb39b835 - pristine_git_object: 817d6abbaa87f0c0760f05d7c66e329fb456d6a1 - docs/models/deploymentprofileawresource.md: - id: 2b6d3ff320e0 - last_write_checksum: sha1:499bd9e70e1d600f2f393602474f2c9e98f7a703 - pristine_git_object: 3cb8ca1b49e9e72819828b933e09fda5d4154174 - docs/models/deploymentprofileawstack.md: - id: 8a0e3473951f - last_write_checksum: sha1:cdb3b868e5dd1f8db4172d91ea263c52902e2f25 - pristine_git_object: 20186ebade7d330af00bcb2d353e34354f59336b - docs/models/deploymentprofileazure.md: - id: 2bb2b2bd2fec - last_write_checksum: sha1:69e55c30619afcd231cfc57656a728943abcdb1d - pristine_git_object: f3b706a2e701a6f3874dbc3f47663f81667940f4 - docs/models/deploymentprofileazurebinding.md: - id: 3613a66f0171 - last_write_checksum: sha1:860c0c9a377759a43cb6144d96d2d605a0913339 - pristine_git_object: 2cf6bb8ac3a8dbbd380719e9228ea506f712b00c - docs/models/deploymentprofileazuregrant.md: - id: 3d439e36a7d0 - last_write_checksum: sha1:28c3f31fff61c10dd74d6c82b6f7c5263ccd6db2 - pristine_git_object: cdab8b12aba9fe59f0a268f869997477c6b3bc48 - docs/models/deploymentprofileazureresource.md: - id: 4821d0291fdd - last_write_checksum: sha1:65de798a2a50014828d33c2498ecd82af5ecc238 - pristine_git_object: 9bbea435ee0fbd884ba88fa08538a74cd10db982 - docs/models/deploymentprofileazurestack.md: - id: 54b50442883d - last_write_checksum: sha1:3a33fe7f6146024e5320a721cf2a241ea2117995 - pristine_git_object: 764297ef295adf8703b2d6d2ec8a486f07f96ffd - docs/models/deploymentprofileconditionresource.md: - id: 5c9fb8831f02 - last_write_checksum: sha1:0357f00915d5c05c85e114b9ebc09c1a10e381dc - pristine_git_object: d3c6cec62615b99cc10c2c1547b82fb96cb34854 - docs/models/deploymentprofileconditionstack.md: - id: ad8753b33b93 - last_write_checksum: sha1:664e99440ec5fc6cf56cb9cea86f113b877aa284 - pristine_git_object: 3a682d7476869cdae73771fc51292d498b2a82a9 - docs/models/deploymentprofileeffect.md: - id: 380c685841eb - last_write_checksum: sha1:34bde51b6a97683cf6212f749734ce68b20a03dd - pristine_git_object: a5d8f9645f676077396ab19c9c1ec079712c7ad4 - docs/models/deploymentprofilegcp.md: - id: 8a8f32fe1910 - last_write_checksum: sha1:c4fa82f83aaee0f068d1294b25211a9a9dbb7ae0 - pristine_git_object: 080c0b7a5132084506905a5399a62ea36880a3a5 - docs/models/deploymentprofilegcpbinding.md: - id: 643c7975a2eb - last_write_checksum: sha1:790c82fc92598527fb744a1665d5cd65b7de9e6c - pristine_git_object: a33c8944e696d98d844e0c41cd611f84bce6b549 - docs/models/deploymentprofilegcpgrant.md: - id: 971191f88fcb - last_write_checksum: sha1:6290bffe528571de1ae12031c36a91ff1aafdada - pristine_git_object: b7e351845e6c4c22df4c1812ac11784b918c7932 - docs/models/deploymentprofilegcpresource.md: - id: f9a3ce7d1fb9 - last_write_checksum: sha1:e3df0da65e0c4e4b39cb67098d778420e5025c85 - pristine_git_object: ac93f41fadf9a2ca8f48caadc59d54582022a0f7 - docs/models/deploymentprofilegcpstack.md: - id: 1d0068cdacba - last_write_checksum: sha1:fbf92172747a16c6b954a321f1b1e31cc130da04 - pristine_git_object: b161e0f69b7db953c88cd2e60b3be122fa658299 - docs/models/deploymentprofileplatforms.md: - id: 1e07f7107019 - last_write_checksum: sha1:51977fd34405732d7e5e2ed17bf9a63175a45fd9 - pristine_git_object: 30082868f8e7966a3bb11c64896a6126fb93d7b5 - docs/models/deploymentprofileresourceconditionunion.md: - id: 3804c7190544 - last_write_checksum: sha1:3d087dedb7c931a8f822c13b6aa5e6d1f8714db8 - pristine_git_object: 4cc57c5b4f8b8a48c0640c410b71e13b1ae8ea75 - docs/models/deploymentprofilestackconditionunion.md: - id: aae5ec7a0947 - last_write_checksum: sha1:d11a31cdf2af5ea1009d2c4e751cd3495d0e7c6d - pristine_git_object: a972b2b84fd27662058bbbc18d181c20c5f1e34b - docs/models/deploymentprofileunion.md: - id: 46dae6114556 - last_write_checksum: sha1:fdeec0e6d83f0e03c9e34a203f405e3aa097deef - pristine_git_object: 3145219a26006a20347ecb172fe65b4118b1c576 docs/models/deploymentprojectinfo.md: id: acfaebd38bb9 last_write_checksum: sha1:ead0a3af886e8d9547c04e0e388db98526f6d42a pristine_git_object: cccd32759618bfaa0da5ff26f47819384d04f3c7 - docs/models/deploymentprovidedby.md: - id: 6c6d0f94fdac - last_write_checksum: sha1:5f0c38ce39a3743fa3a517317f7dd5541e27b4b7 - pristine_git_object: 1daba96f3886c492a252f673a845fefa5b3f4abc docs/models/deploymentproviderawsalb1.md: id: c4264ed261a4 last_write_checksum: sha1:81b5d16acea1cadb02dfe9228317dd675a958c83 @@ -6168,7 +6250,7 @@ trackedFiles: pristine_git_object: 0bd70ae00587aae14d707b77759f40d645ba845c docs/models/deploymentruntimemetadata.md: id: fe994367ec66 - last_write_checksum: sha1:dcf02e40dc7c3e24d42cd1964be20a12c9be667e + last_write_checksum: sha1:3dec0dad0f11b723d62957353f6a1d3c39d7422d pristine_git_object: 8313fe7e61e35070d7eae3351d56566f8de2a802 docs/models/deploymentscope.md: id: 0fcde4ae9c17 @@ -6176,7 +6258,7 @@ trackedFiles: pristine_git_object: 4e20f3d152be7e16520480d37f2c6d3537cc0c85 docs/models/deploymentsetupconfig.md: id: eac9af2e4f7a - last_write_checksum: sha1:7ac47d209050a97f449eca7c87147ccd81061e32 + last_write_checksum: sha1:776ad454dc84e18a8cb17dc529cbecf442da83eb pristine_git_object: 660afbdc9fb4d1c20370ad02424548b9bc8244c1 docs/models/deploymentsetupmethod.md: id: 046d10120cce @@ -6330,6 +6412,14 @@ trackedFiles: id: e2e37126bd84 last_write_checksum: sha1:25e4b1f2483bcf5cf61ae062e3eb16827d95960e pristine_git_object: f143fb3e766241151d0e2cf447f7f28cdcc16f16 + docs/models/deploymentsetupstacksettingspolicyfailuredomains1.md: + last_write_checksum: sha1:a699670ce2368b60a651323b7a2d98919d240854 + docs/models/deploymentsetupstacksettingspolicyfailuredomains2.md: + last_write_checksum: sha1:c9b91e53cc885fb08cb14e96693826b9343a141b + docs/models/deploymentsetupstacksettingspolicyfailuredomainsunion1.md: + last_write_checksum: sha1:0bc1330f136193656d5deb442e0472cb3814d54a + docs/models/deploymentsetupstacksettingspolicyfailuredomainsunion2.md: + last_write_checksum: sha1:4fee4b924ca1fd5c62da504d54218974a905490c docs/models/deploymentsetupstacksettingspolicygcp.md: id: 466e99ebd9d7 last_write_checksum: sha1:8a2871ba2979e54f71b85f65a509921ac2399932 @@ -6400,11 +6490,11 @@ trackedFiles: pristine_git_object: a61a2e06b22b4a729b3cbe51844d079999a675e6 docs/models/deploymentsetupstacksettingspolicypoolsautoscale.md: id: eb35c5478db4 - last_write_checksum: sha1:522cb32da4ba2d49c89cc3a1d213e374ffaa74f5 + last_write_checksum: sha1:96961918b4a1a02fb97a327357b7738aefe17580 pristine_git_object: 92a0235a6e8796cff0c364498dc1a7ded944d1ab docs/models/deploymentsetupstacksettingspolicypoolsfixed.md: id: 4771dc71782c - last_write_checksum: sha1:713aa29160a1b2e391df66f23efd204386d1e97e + last_write_checksum: sha1:e7164c1d8371bff8755ff68d476175503fbb6bc4 pristine_git_object: b259684b47992403bcd4fc246fcf2c1ea59a99ef docs/models/deploymentsetupstacksettingspolicypoolsunion.md: id: 20182635222b @@ -6590,6 +6680,10 @@ trackedFiles: id: 6f3dd0748a45 last_write_checksum: sha1:31869828936572679c7025fbfd02ea4a60695466 pristine_git_object: 58e04aaf08f9af599ddbd329940cedddd5fbb126 + docs/models/deploymentsetupupdateauthorization.md: + last_write_checksum: sha1:bdbf5947923c7f2e3953d59fcb185d447405f0f3 + docs/models/deploymentsetupupdateauthorizationunion.md: + last_write_checksum: sha1:784a762382b8b12dacf949cdd56394a96dfe96d0 docs/models/deploymentstacksettings.md: id: 3adb06a59207 last_write_checksum: sha1:6071842f37c010c3d26af0f96c8f6bd2b87c0b82 @@ -6626,10 +6720,6 @@ trackedFiles: id: b039895c72a9 last_write_checksum: sha1:bbcd15cf34c085d78c55e70f2334395b073c977d pristine_git_object: 0df89008f32c7c4266a829f8df4d06e6cb7dba74 - docs/models/deploymentsupportedplatform.md: - id: ee0c8fd79005 - last_write_checksum: sha1:4bad683e75aea9bd5236b02e7e9fb262f4d419e2 - pristine_git_object: 543070b1e26420c3a15413e0ee8e882db067e17f docs/models/deploymenttargetenvironmentvariables.md: id: de09b362a5d0 last_write_checksum: sha1:9c045c6d06c6903b6df2628aa4400ca84c316ab1 @@ -6642,10 +6732,6 @@ trackedFiles: id: 0cadd0a8df1e last_write_checksum: sha1:476a64bb8351b162a9ecb62f3afd19c696408ac7 pristine_git_object: 94bc7ad046367af8bcaed97b04cf47af17c9d9bc - docs/models/deploymenttypeboolean.md: - id: 70c1cf6d42b8 - last_write_checksum: sha1:c8cfb0b557d67286d84ad9e93fe7d317b63c1eab - pristine_git_object: 6e6f5f621794edb21434cca9eab0e002ae863fbb docs/models/deploymenttypebyovnetazure.md: id: ea9a2c28dce3 last_write_checksum: sha1:867b3d0bfc3506ed06430e883ba0609c19eb8789 @@ -6662,26 +6748,6 @@ trackedFiles: id: 9b97614cc4f8 last_write_checksum: sha1:a97a2c733e00363230a10bc108110dd8ba76b3e3 pristine_git_object: 128acdc80f5ffcdd045148631908d6cd3c0f4d92 - docs/models/deploymenttypeenvenum.md: - id: 799628553dad - last_write_checksum: sha1:7a4631ee91c04df3e67d8376a5dae7c10ea29170 - pristine_git_object: 869a7e55995a510e88fea8857fed395c5c332cc2 - docs/models/deploymenttypenumber.md: - id: c2626a138026 - last_write_checksum: sha1:e2e2e09a51cf527fc335da9f87d8aff8d0b81bca - pristine_git_object: a8d7c7a21af9040ccbab0073eef1608d9bd1dc3b - docs/models/deploymenttypestring.md: - id: 960d0924e44d - last_write_checksum: sha1:284f14176fef53558270eeb9969fcccf883b3ce7 - pristine_git_object: e6b2e43610b5b07f68c4444c9b3227ada60f6abf - docs/models/deploymenttypestringlist.md: - id: 301c18a6e97e - last_write_checksum: sha1:2a3e8bd9d7d4f4489acbc9a538c0cddea07bb355 - pristine_git_object: e72dc90782b098e9638b53ba1dd61f1e49e1b344 - docs/models/deploymenttypeunion.md: - id: a76ea9eea032 - last_write_checksum: sha1:d9643e7842d55367fd998c41e022e5ce35b430cf - pristine_git_object: 0a42e1a12459d05bdc8ef888a0cc67d89ae5c156 docs/models/deploymenttypeusedefault.md: id: ea52cb0f4b72 last_write_checksum: sha1:00d9d2a6574a8a44675a971a1bb09deade944867 @@ -6694,14 +6760,6 @@ trackedFiles: id: e9c391a7a1e8 last_write_checksum: sha1:4692cd26cac03e786ddc06befd7785473ca7b6d0 pristine_git_object: 0a631c64bcd366170b8f3f7ca75bcafbb13d2d3d - docs/models/deploymentvalidation.md: - id: 78b63a46e09e - last_write_checksum: sha1:b07ccc2cddd1ce194bbfe75a425b9651ad443bff - pristine_git_object: 00e5951130d3a97ff8ad9f70c903bea04c0d0379 - docs/models/deploymentvalidationunion.md: - id: 88d83ec748e3 - last_write_checksum: sha1:ba8057139bace57f61d1b2ce82aa27e1cee3ba31 - pristine_git_object: 583bedc8fb525813d63de3aa16c89213955f3cf1 docs/models/dispatchcommandrequest.md: id: b7ff4aeafd55 last_write_checksum: sha1:8f64ca126a48b932876b14c76d6f6b3110da8578 @@ -6764,20 +6822,28 @@ trackedFiles: pristine_git_object: b670cea583ec2be90d0cfbb6936a2aabef66728b docs/models/drainprogress1.md: id: 3717dd412882 - last_write_checksum: sha1:dcd2babb727c94d8f4fe38789cdcab682ce2fae7 + last_write_checksum: sha1:9eb8f6f3083771a7f6cb5819b232916de11d27bb pristine_git_object: 79309d50180b419bfeda3ccb859a28256cb43f9a docs/models/drainprogress2.md: id: 5d7188102fca - last_write_checksum: sha1:e1c10c1635ba61bcee5ce2e91d0c355a0ac96a78 + last_write_checksum: sha1:5252d9e34f00c00f80554bfe70a90d46d31b1852 pristine_git_object: a2c4c17f2a8705577905196a89efd394fb81564e docs/models/drainprogress3.md: id: 18b1032fdfff - last_write_checksum: sha1:81c1e6c2bfb52dbf4760e3fe56de7700dac012ef + last_write_checksum: sha1:78863a10a6d858ac4caca1385c72ad82c60d377e pristine_git_object: 6576ec8afb1973c00e3a0aabd0653d89746784c6 docs/models/drainprogress4.md: id: ea550b0cbce6 - last_write_checksum: sha1:4222f712d4f4b7fa021cd8a674abd8da4d894a52 + last_write_checksum: sha1:30a2cac66d2a527fb37dd0bdb12bdd8b72d90979 pristine_git_object: d74a7914b750accb589b78efa221aee25098c2d7 + docs/models/drainprogressblocker1.md: + last_write_checksum: sha1:11ecbea8e09604a095e291537698a54ccbc7c537 + docs/models/drainprogressblocker2.md: + last_write_checksum: sha1:5f33277c322e881a7e74f4d9e991149b114fd88e + docs/models/drainprogressblocker3.md: + last_write_checksum: sha1:96b378e551ce1e45f7aacc6dd48d32f75e27f06e + docs/models/drainprogressblocker4.md: + last_write_checksum: sha1:0e724b4462fb2c866e09870f9cbe4a51602431de docs/models/drainprogressstatus1.md: id: ed9b9dcf079b last_write_checksum: sha1:105eb43451137b2c8b2e666e1ce7533ab9db4b2e @@ -6818,6 +6884,8 @@ trackedFiles: id: f10eb1f78554 last_write_checksum: sha1:1e710c753623b962464b157a1974e6108ac8abf0 pristine_git_object: a1e611a256b90fb73b195f2227cc5150b17841f0 + docs/models/ensuredeploymentgroupbyexternalidrequest.md: + last_write_checksum: sha1:6b811351983ff019d9f94cf3da5114982ed5f309 docs/models/ensuredeploymentgroupbynamerequest.md: id: ffc06a5e49e2 last_write_checksum: sha1:aaecca093caa21cb5a352e01ca65fd392abe1378 @@ -6830,22 +6898,30 @@ trackedFiles: id: f8f0907c6906 last_write_checksum: sha1:043bcede96337ffc27ee75bccd4b8b46241f87e0 pristine_git_object: 5d3a934d19f7f5d6676549477a8d149dc35473f0 - docs/models/errorfailed.md: - id: bca9dab46c94 - last_write_checksum: sha1:3a6ff5a27ee817f52c6e3809a0ab82272a2b8eff - pristine_git_object: 3975b4dccdf46d7afc10210cf02ecdf4d7fb63e0 - docs/models/errornextstate.md: - id: 3d9d89513e0f - last_write_checksum: sha1:35f1f8b31d201817a383e4c34a35006289afa74e - pristine_git_object: 27b4d6de190255f90534896822d20cec2fbeb8b3 docs/models/errors/apierror.md: id: df4a0e23247e last_write_checksum: sha1:b9241801fa5ddb3575921ba48dd27c3fd6b5f786 pristine_git_object: 9fa1f23a2a013d2d8bf4674df7703f6edb544f9d docs/models/event.md: id: 311c22a8574a - last_write_checksum: sha1:2d710b10d08524e5538c616ae8576a3611c07d4a + last_write_checksum: sha1:549b328a7ddd2cb36fae217fb48f067bf2310292 pristine_git_object: 4088af26db7a48fa6f0b18906384eb1643e1d297 + docs/models/eventactor1.md: + last_write_checksum: sha1:b0bffa277cc3cc5cddedd79433da3d159e9c54d4 + docs/models/eventactor2.md: + last_write_checksum: sha1:b4b5b79354b88f985fb67b7f7b78b58d18e468a4 + docs/models/eventactor3.md: + last_write_checksum: sha1:3cda8225e2fab418b612c65ae22e2e940f64b0ab + docs/models/eventactor4.md: + last_write_checksum: sha1:ae7acce9bb0a06249b3083f1dcde88f891350509 + docs/models/eventactorunion1.md: + last_write_checksum: sha1:2faa553a63fec228b405ac453e18ee11319621e6 + docs/models/eventactorunion2.md: + last_write_checksum: sha1:06839c612e2af6cddaf2229e0dc3bfff52b2abe3 + docs/models/eventactorunion3.md: + last_write_checksum: sha1:6e1b859327cc979d37ba18c840d730e16191b317 + docs/models/eventactorunion4.md: + last_write_checksum: sha1:19d1cb6477ecd6aa689ff0c89b6cb0c250a737e0 docs/models/eventconfig.md: id: a812f6f1c32b last_write_checksum: sha1:2cedd8d01fbed51336dc1f5878161263832eb1c0 @@ -6858,18 +6934,124 @@ trackedFiles: id: f9f13e960056 last_write_checksum: sha1:e38a6a836fe1487b57ab3925df9f203f5e20f6f3 pristine_git_object: 1013223491ee42ff9eaf960e15aa0a5c211b519c + docs/models/eventdataassumingrole.md: + last_write_checksum: sha1:4bc143febc853ba1a9b47412fbda74e1ac5499b1 + docs/models/eventdatabuildingimage.md: + last_write_checksum: sha1:b8ca75333ea970d93fd9cb209d5b1c614de26522 + docs/models/eventdatabuildingresource.md: + last_write_checksum: sha1:79f471531b3b29b26ac452a2117afdfc1b826e22 + docs/models/eventdatabuildingstack.md: + last_write_checksum: sha1:cd305687e58df1489bf3702f99784c9cf366e235 + docs/models/eventdatacleaningupenvironment.md: + last_write_checksum: sha1:92c1ee56ffd28c75652cbfe3f5f3bdda704427d2 + docs/models/eventdatacleaningupstack.md: + last_write_checksum: sha1:1f17258ba9ea153017c3032553c77a8005c89a29 + docs/models/eventdatacompilingcode.md: + last_write_checksum: sha1:7c0f6c1eb092faa6ab7af73a117a355f0df4ae38 + docs/models/eventdatacreatingrelease.md: + last_write_checksum: sha1:8abfcd4147ea9f64c9ccb57b8f8f3995bb421852 + docs/models/eventdatadebuggingagent.md: + last_write_checksum: sha1:6677e95f8d71f8850d0c8742f7034cf6ec683a07 + docs/models/eventdatadeletingagent.md: + last_write_checksum: sha1:94b4f26c6353023aa01788b7e4df035117dd13a8 + docs/models/eventdatadeletingcloudformationstack.md: + last_write_checksum: sha1:3405a24cc65d54c52696570b294520b06193c0bc + docs/models/eventdatadeployingcloudformationstack.md: + last_write_checksum: sha1:9390c4f0b7f7369e34ac5748e05917696e83aa01 + docs/models/eventdatadeployingstack.md: + last_write_checksum: sha1:a92cb6119aed821f7169f2bcf52b7d3f1cea9fed + docs/models/eventdatadeploymentcreated.md: + last_write_checksum: sha1:7c36de7a2ad4f39d5b0ac6e746b4ddda222002b3 + docs/models/eventdatadeploymentdegraded.md: + last_write_checksum: sha1:309155c26092d7656e2fa20ff563b0140647d585 + docs/models/eventdatadeploymentdeleted.md: + last_write_checksum: sha1:5db53cb6de34666814ee72dc1025a15ebe56a83d + docs/models/eventdatadeploymentdeletionrequested.md: + last_write_checksum: sha1:fa0e7020426356266a3e414bb755691bb83177b4 + docs/models/eventdatadeploymentenvironmentupdated.md: + last_write_checksum: sha1:1f78a64f2a4a640bc47f1c2a07da31559ecf99a8 + docs/models/eventdatadeploymentfailed.md: + last_write_checksum: sha1:f7e757b2d932c13663d4436496933079c703e15d + docs/models/eventdatadeploymentrecovered.md: + last_write_checksum: sha1:52d7a543610ad18d1e9c65a6d20a525b84648333 + docs/models/eventdatadeploymentredeployrequested.md: + last_write_checksum: sha1:9a7d45e0977f8b8088ad4ddfa9bc1c69042ef7c6 + docs/models/eventdatadeploymentreleasechannelchanged.md: + last_write_checksum: sha1:0124606778e776141a9ea0776c395aae0de1bed2 + docs/models/eventdatadeploymentreleased.md: + last_write_checksum: sha1:f07bb1dea2214570877e437a951ab9b613dddcf5 + docs/models/eventdatadeploymentreleasepinned.md: + last_write_checksum: sha1:73f40aa3faf4f5dd896f3a597a8001cd5b1ec249 + docs/models/eventdatadeploymentreleaseunpinned.md: + last_write_checksum: sha1:baddfa5d8de21449afd49cbfed0c9aa1dbf051b5 + docs/models/eventdatadeploymentretryrequested.md: + last_write_checksum: sha1:090282ece9d72681f12b9916e501181a160befed + docs/models/eventdatadownloadingalienruntime.md: + last_write_checksum: sha1:a3807f8f26603c29121e6ed0684371d3b42f5cdc + docs/models/eventdataemptyingbuckets.md: + last_write_checksum: sha1:100316023995fdf184f60a41dbeb997b3809bf07 + docs/models/eventdataensuringdockerrepository.md: + last_write_checksum: sha1:38a9deeb9d9d5e7dafe0b8b9be20aa2c992cd5e6 + docs/models/eventdataerror1.md: + last_write_checksum: sha1:a45e37db3d4d210ca4c7433659a0ee8567f3ed4c + docs/models/eventdataerror2.md: + last_write_checksum: sha1:f78fcde892ff72a3e0f4b2c693599585a244dda8 + docs/models/eventdatafinished.md: + last_write_checksum: sha1:8706939c9b6e4a2c1d1486d183830bc6cbe6e5b6 + docs/models/eventdatageneratingcloudformationtemplate.md: + last_write_checksum: sha1:9dff0f7ae6ee2faa3de7ae4a5e567ebebc0f675e + docs/models/eventdatageneratingtemplate.md: + last_write_checksum: sha1:77b772c605c7fdb48a2da2f883c2aedfe3da5aea + docs/models/eventdataimportingstackstatefromcloudformation.md: + last_write_checksum: sha1:42d323cfdfd84e29c6a34691ac9b43ee6ae285ed + docs/models/eventdataloadingconfiguration.md: + last_write_checksum: sha1:01f334d82f42ddb6b062e320271b078479e29c5f + docs/models/eventdatapreparingenvironment.md: + last_write_checksum: sha1:28e1f6591e18645560728fb6ab0b4b77283a4651 + docs/models/eventdataprovisioningagent.md: + last_write_checksum: sha1:4c1ab8bcdc7531ba5fc48d40b4350dc7b65db2a6 + docs/models/eventdatapushingimage.md: + last_write_checksum: sha1:fb251817aae52ca3124624b25e61fe2178912cc5 + docs/models/eventdatapushingresource.md: + last_write_checksum: sha1:8de2966a3a6d9a64b131b3511d2efe0c15b64108 + docs/models/eventdatapushingstack.md: + last_write_checksum: sha1:3c6874c24d05e57804d08de96094403dd7f2f236 + docs/models/eventdatareleasechannelupdated.md: + last_write_checksum: sha1:3c2250fe2196d89ee9daf4d3eb0abdd6b05688e2 + docs/models/eventdatarunningpreflights.md: + last_write_checksum: sha1:9b09ca6cb207ec77f55eae345fd56b140ba3b62f + docs/models/eventdatarunningtestworker.md: + last_write_checksum: sha1:e5bac38b98974e46dfa922d6c62193ac623d3c7a + docs/models/eventdatasettingupplatformcontext.md: + last_write_checksum: sha1:83429cdf6240fe0a5529f287481ea29155a11ac5 + docs/models/eventdatastackstep.md: + last_write_checksum: sha1:6d7a42c240cf7d45ed8af9cf1a0200c3990640f3 docs/models/eventdataunion.md: id: 5af073344910 - last_write_checksum: sha1:cba36fabfff539fc14600022191bac1609b992a9 + last_write_checksum: sha1:699c3b68d368c70e7096aab4b93db4b310d00343 pristine_git_object: fc796097eb5c99354b56af0166a7734799f10d2a + docs/models/eventdataupdatingagent.md: + last_write_checksum: sha1:1634075996f239e337a7fa502aae99f59746465e docs/models/eventdependency.md: id: 8b54666b2bdb last_write_checksum: sha1:99707895c4e521f7f47cce37ee6dc12394445bb5 pristine_git_object: 8284bcb45e2596dfea6a928356719bf612cd59bd + docs/models/eventerrorfailed.md: + last_write_checksum: sha1:7bf0d7ff7c89b47d58171f94e4292116bc53f3ed + docs/models/eventerrornextstate.md: + last_write_checksum: sha1:e4c18edf6915e9b633b0c27d0a3d6b17e12c0314 + docs/models/eventfailed.md: + last_write_checksum: sha1:4fe5c68a03cc14bf50a38b87bcc09295af8b6463 + docs/models/eventfailederrorunion.md: + last_write_checksum: sha1:a2cebe792ad7657c4b8fbabba44c7d56f7ae6937 docs/models/eventkind1.md: last_write_checksum: sha1:18fbb87844cf845b4d2204438bcd9b0672a2f670 docs/models/eventkind2.md: last_write_checksum: sha1:9f859c72c06d1e0a52d244d02bdb0ee0b509faf0 + docs/models/eventkind3.md: + last_write_checksum: sha1:9950801c4d31d7fbebab7e8241dc42a317a18abf + docs/models/eventkind4.md: + last_write_checksum: sha1:704c805945627a27ef72914f0807a6f19e2517f4 docs/models/eventlifecycleenum.md: id: 731d608bd042 last_write_checksum: sha1:b98f8f01488cce84c55365a26c722a064077e6ee @@ -6878,6 +7060,190 @@ trackedFiles: id: dbc4c6930fa8 last_write_checksum: sha1:75d3faf6d44d1438f84f546c7a26c375f100ce89 pristine_git_object: 7716c4e839cc25b3d223f207f11d80387f71acdf + docs/models/eventlistitemresponse.md: + last_write_checksum: sha1:cfb6a56d697732c3842007b3672e0d60676149fe + docs/models/eventlistitemresponseactor1.md: + last_write_checksum: sha1:01cf57ccd4016ef73f915ec783f8ac6f6fd7ecf0 + docs/models/eventlistitemresponseactor2.md: + last_write_checksum: sha1:7870aa5fa1d22607a585828d4078f0c899551c6a + docs/models/eventlistitemresponseactor3.md: + last_write_checksum: sha1:72fc58e72719bddfc0dc9c28188dfba962d6a841 + docs/models/eventlistitemresponseactor4.md: + last_write_checksum: sha1:fc97381358ec06a52bf8e14714683b7cf01b76f1 + docs/models/eventlistitemresponseactorunion1.md: + last_write_checksum: sha1:fd2388cb7d464b252eb075cd70bc7c890530d728 + docs/models/eventlistitemresponseactorunion2.md: + last_write_checksum: sha1:ca9d285921c8a82a77980331cf1070c0e554afa1 + docs/models/eventlistitemresponseactorunion3.md: + last_write_checksum: sha1:28fb078165cd9c1931c4531868737774d43a63c9 + docs/models/eventlistitemresponseactorunion4.md: + last_write_checksum: sha1:b01619399d51a3c89db326c23df543b5c335267c + docs/models/eventlistitemresponseconfig.md: + last_write_checksum: sha1:0602df8c4fb09267b6b79db5bc6e4dff50c4a418 + docs/models/eventlistitemresponsecontrollerplatformenum.md: + last_write_checksum: sha1:72679707af66acca226320eebbe9a940f73e9654 + docs/models/eventlistitemresponsecontrollerplatformunion.md: + last_write_checksum: sha1:0f3f5c22ab1564a53ce4cf35b482e46205a45607 + docs/models/eventlistitemresponsedataassumingrole.md: + last_write_checksum: sha1:bad514957fce4e8f529a26d4a11efb48ec4b5cae + docs/models/eventlistitemresponsedatabuildingimage.md: + last_write_checksum: sha1:850975c18d0edeeda93f92ec05dabf5d70eceb02 + docs/models/eventlistitemresponsedatabuildingresource.md: + last_write_checksum: sha1:aab88bfb688b91cbd9c505140320031f6e8d2396 + docs/models/eventlistitemresponsedatabuildingstack.md: + last_write_checksum: sha1:6a8963290f4e339a031c5560d0ffc12b9268ea5e + docs/models/eventlistitemresponsedatacleaningupenvironment.md: + last_write_checksum: sha1:135494165d78fc964a07408cb27cbbe3328b35f1 + docs/models/eventlistitemresponsedatacleaningupstack.md: + last_write_checksum: sha1:48635cd80ec9b7c27d8e7a603a36ec478cdcef35 + docs/models/eventlistitemresponsedatacompilingcode.md: + last_write_checksum: sha1:98d2ad47147a7e9e2bc36121c09c2fec33ced97f + docs/models/eventlistitemresponsedatacreatingrelease.md: + last_write_checksum: sha1:095a1cb239fa5adb574db0dbaf83462e621f7f1a + docs/models/eventlistitemresponsedatadebuggingagent.md: + last_write_checksum: sha1:57a1ee2876ab94e7fdf1f29c60f4d1c9a64b48f0 + docs/models/eventlistitemresponsedatadeletingagent.md: + last_write_checksum: sha1:f367f1f9a32c6ca400ea0d40536d263a1d11f1f6 + docs/models/eventlistitemresponsedatadeletingcloudformationstack.md: + last_write_checksum: sha1:766d785ed212de339b3eccfb1d6e2dd7ac0ecbac + docs/models/eventlistitemresponsedatadeployingcloudformationstack.md: + last_write_checksum: sha1:8927fc2e3d64f1cf05769116420806e15464ceec + docs/models/eventlistitemresponsedatadeployingstack.md: + last_write_checksum: sha1:1ba886f7b44e1a3972d3884fa7eb767cd6831494 + docs/models/eventlistitemresponsedatadeploymentcreated.md: + last_write_checksum: sha1:5e2f125e0bb379c0feada68cd77b37845485afa5 + docs/models/eventlistitemresponsedatadeploymentdegraded.md: + last_write_checksum: sha1:8126ce44b27aaba9ad6a37df0a3ff0d7631f2c56 + docs/models/eventlistitemresponsedatadeploymentdeleted.md: + last_write_checksum: sha1:77e72d0a5ca491b427f21e21d3476991c28fcff0 + docs/models/eventlistitemresponsedatadeploymentdeletionrequested.md: + last_write_checksum: sha1:ac66b376aec25d6da16bc4c6a6f729dd1ce92972 + docs/models/eventlistitemresponsedatadeploymentenvironmentupdated.md: + last_write_checksum: sha1:e6e08ae4c2cfd8c2cbd251074291400d5ecfdb07 + docs/models/eventlistitemresponsedatadeploymentfailed.md: + last_write_checksum: sha1:ca75c4203a4fb5d0a0fd1cdc10b8bc9034c84cb1 + docs/models/eventlistitemresponsedatadeploymentrecovered.md: + last_write_checksum: sha1:4ad45f6f4fb67d34c349332ea2de1aa3db2fa9b4 + docs/models/eventlistitemresponsedatadeploymentredeployrequested.md: + last_write_checksum: sha1:6218b79c8eabd09b0daf6c76c40dd57f29baa5d9 + docs/models/eventlistitemresponsedatadeploymentreleasechannelchanged.md: + last_write_checksum: sha1:ccbfce66c6f5e1cf9f3c102fa4fc108cc8bfc3fe + docs/models/eventlistitemresponsedatadeploymentreleased.md: + last_write_checksum: sha1:6a02a3895e786f0c7dfd6026384e79d1a2fc4602 + docs/models/eventlistitemresponsedatadeploymentreleasepinned.md: + last_write_checksum: sha1:8d9ef1f307710d65cc9fedec263d4cd701192f35 + docs/models/eventlistitemresponsedatadeploymentreleaseunpinned.md: + last_write_checksum: sha1:6ba41b8baf4400aa84ece4416caaae0bcf9c5998 + docs/models/eventlistitemresponsedatadeploymentretryrequested.md: + last_write_checksum: sha1:3d435f7e107fe5bb28c6ccce6811ca2370ec4e63 + docs/models/eventlistitemresponsedatadownloadingalienruntime.md: + last_write_checksum: sha1:5607287d7c0c679f63b26fe77c4e1db52d3bb56e + docs/models/eventlistitemresponsedataemptyingbuckets.md: + last_write_checksum: sha1:48a5897795a83a237883f575a63262e3a2898e4e + docs/models/eventlistitemresponsedataensuringdockerrepository.md: + last_write_checksum: sha1:8126fff4e1a44f100f6ac31f2fd9531aa2b96c44 + docs/models/eventlistitemresponsedataerror1.md: + last_write_checksum: sha1:b988506c92a35468f292250a1ef74654d359c735 + docs/models/eventlistitemresponsedataerror2.md: + last_write_checksum: sha1:7f5ffba8fdb491d1194c794f7e9c4dceaf4d57f7 + docs/models/eventlistitemresponsedatafinished.md: + last_write_checksum: sha1:39531880a72dbc1b8d87265acbaa78963ae3dadf + docs/models/eventlistitemresponsedatageneratingcloudformationtemplate.md: + last_write_checksum: sha1:a8ff0e4ef14796c14f841a865fcca0658277cfe1 + docs/models/eventlistitemresponsedatageneratingtemplate.md: + last_write_checksum: sha1:1e8f1f6171acae58fd3a6408b842df6b475f6ab0 + docs/models/eventlistitemresponsedataimportingstackstatefromcloudformation.md: + last_write_checksum: sha1:85b2ec4ff171fe7b3a65de66b97dbc56c1aaddf6 + docs/models/eventlistitemresponsedataloadingconfiguration.md: + last_write_checksum: sha1:1807e2c5153c8faa08bbb6931e1fb457bbc5c6db + docs/models/eventlistitemresponsedatapreparingenvironment.md: + last_write_checksum: sha1:26290cbcccdf5c96251c2c3877c5dbc81f58f465 + docs/models/eventlistitemresponsedataprovisioningagent.md: + last_write_checksum: sha1:16feba293c8d97e6b805c58b511aa9862e5140b6 + docs/models/eventlistitemresponsedatapushingimage.md: + last_write_checksum: sha1:75b649c1be629b52306e63bbeb51135ec0168c8d + docs/models/eventlistitemresponsedatapushingresource.md: + last_write_checksum: sha1:f6dfc74614f04b342a1369e9b21f82d263dc4495 + docs/models/eventlistitemresponsedatapushingstack.md: + last_write_checksum: sha1:8f285e992fce96066408ef5a718f0cffef4fb15f + docs/models/eventlistitemresponsedatareleasechannelupdated.md: + last_write_checksum: sha1:091508a8075e091e2caf1ca4faf3989def5f1087 + docs/models/eventlistitemresponsedatarunningpreflights.md: + last_write_checksum: sha1:898594e5e1b7b1202bcf7f7c647ea5d6f04f6041 + docs/models/eventlistitemresponsedatarunningtestworker.md: + last_write_checksum: sha1:0a8b31cb1d3372cacc549f09aebcf684cfea0d09 + docs/models/eventlistitemresponsedatasettingupplatformcontext.md: + last_write_checksum: sha1:325a2feb929c3f01470c3e7a89f8aa4aa43002e4 + docs/models/eventlistitemresponsedatastackstep.md: + last_write_checksum: sha1:6b25a63e446f383758d808c81ca35777a671ae03 + docs/models/eventlistitemresponsedataunion.md: + last_write_checksum: sha1:62a31ce7766eb913fe34fb4cb4927dd5213578a1 + docs/models/eventlistitemresponsedataupdatingagent.md: + last_write_checksum: sha1:0be6e7a524020a9b5d85a9dca30b6725cbec0883 + docs/models/eventlistitemresponsedependency.md: + last_write_checksum: sha1:db31807738557c6012f358d9dbca29759de7b520 + docs/models/eventlistitemresponseerrorfailed.md: + last_write_checksum: sha1:40116575045ed251ca00b391ea78b1780ac15599 + docs/models/eventlistitemresponseerrornextstate.md: + last_write_checksum: sha1:4eca9da3b89bc3b7f2cf053932d5a15db966551e + docs/models/eventlistitemresponsefailed.md: + last_write_checksum: sha1:0cf6c42e4c7a3b604dac53f50c6bff36cb388e04 + docs/models/eventlistitemresponsefailederrorunion.md: + last_write_checksum: sha1:53e7d2c00efcb47f7cfdf82e1d8df390720e014d + docs/models/eventlistitemresponsekind1.md: + last_write_checksum: sha1:b5d2b76bb24597e479095c2fef59f85fab14b21b + docs/models/eventlistitemresponsekind2.md: + last_write_checksum: sha1:94e667f38339448c7a2196e62bec68e3801f9207 + docs/models/eventlistitemresponsekind3.md: + last_write_checksum: sha1:ba2eef2308fb377582b4bf75c9a64d78944283b6 + docs/models/eventlistitemresponsekind4.md: + last_write_checksum: sha1:0a4832a999e6b573bb41d8f7702301a895fd62b8 + docs/models/eventlistitemresponselifecycleenum.md: + last_write_checksum: sha1:38046635579dc6dce8036d7c0478ab2ca991d89e + docs/models/eventlistitemresponselifecycleunion.md: + last_write_checksum: sha1:135a4c1395d93b6c027005e8ec7fdc75d885d713 + docs/models/eventlistitemresponsenextstate.md: + last_write_checksum: sha1:627b2a793f1c75bfaf20d93700f098b7e50623c2 + docs/models/eventlistitemresponsenextstateerrorunion.md: + last_write_checksum: sha1:5d7b9aa6a13695c0e9ff2ecaa8f9b7dc501c61bf + docs/models/eventlistitemresponseoutputs.md: + last_write_checksum: sha1:8d52ca5acc8b4fd93ec69741931dcfe9aac44df6 + docs/models/eventlistitemresponseoutputsunion.md: + last_write_checksum: sha1:3c59e86fc66f3d7240625801c324394caaa6bc7b + docs/models/eventlistitemresponsephase.md: + last_write_checksum: sha1:13b1a01848f8efbbfd6e84cce88b0ca88ad6afee + docs/models/eventlistitemresponseplatform.md: + last_write_checksum: sha1:1592a66337f9c87e598fb34585ca4a765f53f5ac + docs/models/eventlistitemresponsepreviousconfig.md: + last_write_checksum: sha1:8792353d8c640ecd1232aba55578527f97763f49 + docs/models/eventlistitemresponsepreviousconfigunion.md: + last_write_checksum: sha1:af6ba5be7c9373a8a207a01bebbd32d41f903d90 + docs/models/eventlistitemresponsepreviouserror.md: + last_write_checksum: sha1:6631a048530d1773b1206d26eb44b8b0c66c379e + docs/models/eventlistitemresponsepreviouserrorunion.md: + last_write_checksum: sha1:2fe66d3ac0e9bd2ae0c2ca769606ec9d1bd925fa + docs/models/eventlistitemresponseprogress.md: + last_write_checksum: sha1:b7069eed55ff23bb100ad3599d689815aabd9188 + docs/models/eventlistitemresponseprogressunion.md: + last_write_checksum: sha1:75470db5f19beb3b309a5386d3e35479b2894a7c + docs/models/eventlistitemresponseresources.md: + last_write_checksum: sha1:4b9e88449977bf5598ac12ae729e845f4d30a41e + docs/models/eventlistitemresponsestate.md: + last_write_checksum: sha1:c62036be79fb4cc9ab84713831c9ab7c291ddec5 + docs/models/eventlistitemresponsestatenone.md: + last_write_checksum: sha1:27a1d8ab8485dca444c1bd30b45c8dc5c74cd742 + docs/models/eventlistitemresponsestatestarted.md: + last_write_checksum: sha1:4be0545cc94391968f9fc5add12b6f36678efed5 + docs/models/eventlistitemresponsestatesuccess.md: + last_write_checksum: sha1:3feec479fed60d81664655887aeff37c8e455172 + docs/models/eventlistitemresponsestateunion.md: + last_write_checksum: sha1:57d610183a3ebc0bc545c1e461dff245fcc9ace0 + docs/models/eventlistitemresponsestatus.md: + last_write_checksum: sha1:77b94249508cd34735fc35e69d3e165826eabe82 + docs/models/eventnextstate.md: + last_write_checksum: sha1:04302dc4569f7d9c67b37f56d9bd21dd983cb0a7 + docs/models/eventnextstateerrorunion.md: + last_write_checksum: sha1:a6a46cf0ba9dd2153c02a6d87856eccdf271a2fd docs/models/eventoutputs.md: id: 144262e477cd last_write_checksum: sha1:c3b8caf3933fb98801c3b38db45b11b645041f60 @@ -6886,6 +7252,8 @@ trackedFiles: id: 83c923c6f7b9 last_write_checksum: sha1:4525841766e8530ea2c67c86da54a6a720105fc2 pristine_git_object: a50a659f5c95f0cf91bcb3a44758405f218d68f6 + docs/models/eventphase.md: + last_write_checksum: sha1:96a29aa16ee1f8016e15f92bfa29469319adc52f docs/models/eventplatform.md: id: d90a73aee944 last_write_checksum: sha1:a39efdb2cd84c3a0ba4ff4ae4804cd426ec95a34 @@ -6898,9 +7266,17 @@ trackedFiles: id: 2352a4457665 last_write_checksum: sha1:5e4e052a4eeec49a55d80c5b42b336a41628c6a9 pristine_git_object: d5a119649539a17d2dd1b2f52f2e55e76d04c666 + docs/models/eventpreviouserror.md: + last_write_checksum: sha1:5280e25ab1d52a1852779853a29c12d6bbe05f00 + docs/models/eventpreviouserrorunion.md: + last_write_checksum: sha1:9f3ea06de13fa7d5d174ce203885e08437666836 + docs/models/eventprogress.md: + last_write_checksum: sha1:5aee489d79e0ed270d6b8b00ad8bd63fa4963c21 + docs/models/eventprogressunion.md: + last_write_checksum: sha1:4d84ac9dce69fbb590a2ca977bd5e22fca34e1d4 docs/models/eventresources.md: id: 7050a908473f - last_write_checksum: sha1:f5aba6889882c23c01dc10e8af07575fa8d437f1 + last_write_checksum: sha1:2c3ff057a5625b47391a1ece56a6bda6fe9fa1d4 pristine_git_object: 3abda94018b40ac51333d0eda8f3e8da162dfb0d docs/models/eventseverity1.md: id: 6b13b8c3529b @@ -6916,8 +7292,16 @@ trackedFiles: pristine_git_object: 3385f3555f987d8c6ab284de8b1b23f6db239ebe docs/models/eventstate.md: id: 9750637b2abc - last_write_checksum: sha1:5904601f83550737a968d06cb1b39f3d7c9ce2c5 + last_write_checksum: sha1:cfe269ba4cd63c9424b411722d85e8025b69d361 pristine_git_object: 9bd2f980f6fbdb2e21276f99f49ed75e86121fb7 + docs/models/eventstatenone.md: + last_write_checksum: sha1:75d35c698cc00e73096aef7af0dec3ee3d7279ff + docs/models/eventstatestarted.md: + last_write_checksum: sha1:9ca5b83cc6812ca546598191c3208de5eaee65c7 + docs/models/eventstatesuccess.md: + last_write_checksum: sha1:a15b0fab22178601a714af955ad4f8c9e66bf73d + docs/models/eventstateunion.md: + last_write_checksum: sha1:77fb4587c55281677e5f3ab1c930716bc0752f58 docs/models/eventstatus.md: id: 0848b1e061a2 last_write_checksum: sha1:fc2c28aa4d6b070f9ad32bbc7dd2a74cff8a7837 @@ -7010,21 +7394,13 @@ trackedFiles: id: 29f8588f12fa last_write_checksum: sha1:a1cd3421d85c592c3c55c6b60f3aa94e3753cba0 pristine_git_object: 04c45ae6ee2081b9d4c6a3add4cde3d5cf73728e - docs/models/failed.md: - id: 1a81e7fa1ca5 - last_write_checksum: sha1:c6f11baec19bee51d910e31683ad88c85654549c - pristine_git_object: 44e94835829d4a9eb4782ad37991a905b599c49a - docs/models/failederrorunion.md: - id: f5252a79145b - last_write_checksum: sha1:ef88281c359917f031b1b85e445718170fd9450c - pristine_git_object: 92d60bd095f3eeb55c262f72533712b9b2f43514 docs/models/failure.md: id: 3f79c7d64eac last_write_checksum: sha1:e737dfe23a9232b67b4f1b202d7601b64a846fff pristine_git_object: 27f95ef9cd6741328345705811a2747981c6d80a docs/models/forwardimportrequest.md: id: "652670843092" - last_write_checksum: sha1:187b6fa79a4e7b4bc58bedf7c42bd06f7046ac40 + last_write_checksum: sha1:8e23c736957a89c41d3c064de7508873053aaf7b pristine_git_object: 7e5bd6b51b1e2f2d675e79fcfb5e70912df88de1 docs/models/forwardimportrequestmode.md: id: 2f86df92c3e5 @@ -7038,9 +7414,15 @@ trackedFiles: id: e6a62e536d1b last_write_checksum: sha1:f8da06e308b916defb96835cdc797b7825c5cec8 pristine_git_object: 202d2d1aff78648b8722b94902903be382929789 + docs/models/generatemanagerbindingtokenrequest.md: + last_write_checksum: sha1:eaa0a2fbbcd34e00745e0443630d01f62788c261 + docs/models/generatemanagerbindingtokenresponse.md: + last_write_checksum: sha1:4666be75360afba00f00a93b0b1d3af9ff93f5fb + docs/models/generatemanagerbindingtokenresponsetokentype.md: + last_write_checksum: sha1:0582c9d794f45c4db9e637f7d879a52def20d6fa docs/models/generatemanagertokenrequest.md: id: 8390570078a9 - last_write_checksum: sha1:465cf7721d9a092c9a96029b57143dfb770b5f6a + last_write_checksum: sha1:5d78df140ab34e9972161d2f0588b806aa86ce9f pristine_git_object: 95fd3c5f182ae9a47116fd3da279175b39d0fb74 docs/models/generatemanagertokenresponse.md: id: 4e2794042c0c @@ -7116,7 +7498,7 @@ trackedFiles: pristine_git_object: aa891e7058f90e6a511b235657a54fb66449a8fb docs/models/importdeploymentrequest.md: id: 6dd014230199 - last_write_checksum: sha1:1c0bbc21d8d324e59bee12a0578549f67663e5ec + last_write_checksum: sha1:5afcb20399e51edacd07d90d0b6a46287e61e4e0 pristine_git_object: a15c4351176918405c5afdf0a6caf525e1a66089 docs/models/importedresource.md: id: 03878e5a9d0e @@ -7124,7 +7506,7 @@ trackedFiles: pristine_git_object: c673c8ec6db5c2ce71448e5dbe8da4ac6623f162 docs/models/importsource.md: id: ba92656fe7f9 - last_write_checksum: sha1:8042363416165371aabfb031cd92166a8a422fb4 + last_write_checksum: sha1:16570d2fd462f34ac7cde9139c57860fb0c611f4 pristine_git_object: 83fddd6adbb2ddc243f204afc73b733682592eac docs/models/importsourceaws.md: id: 7da17ec3e88a @@ -7262,6 +7644,14 @@ trackedFiles: id: e9ac23929cca last_write_checksum: sha1:b800b7f1ecfe9cf94300b245230f7ed136336f30 pristine_git_object: e9f81700c83c75f0a26f3d2a4ba879b3971b8931 + docs/models/importsourcefailuredomains1.md: + last_write_checksum: sha1:493bb3b04d5d13d5eaf211a25722379f5fa2102b + docs/models/importsourcefailuredomains2.md: + last_write_checksum: sha1:18fd9d2934d2d6dfe13fb9e015936e0025dc65aa + docs/models/importsourcefailuredomainsunion1.md: + last_write_checksum: sha1:e613c69cd922e97fbd53a9554d3ec04b146ab97b + docs/models/importsourcefailuredomainsunion2.md: + last_write_checksum: sha1:1091e434a5695892f47a9d3b0a66d5e56c9fbf56 docs/models/importsourcegcp.md: id: 5cf2b91c12a2 last_write_checksum: sha1:fd434db85fd517107bf3e27a267af56afb9d48a2 @@ -7376,11 +7766,11 @@ trackedFiles: pristine_git_object: b7a6c664a91b2c281ace7537cf0d5222ecf68eef docs/models/importsourcepoolsautoscale.md: id: d23175c0acbe - last_write_checksum: sha1:59f11a93f33881b9ac17a501773cc8b691892cde + last_write_checksum: sha1:41d5fb24eaa3a8d12862d1a93f92e11461189c64 pristine_git_object: ee2cca309d34992641d8c4bb2e472135b91eb4e8 docs/models/importsourcepoolsfixed.md: id: 261100a7326c - last_write_checksum: sha1:a51eed069bca00573ac347ba51663f3bee4956bb + last_write_checksum: sha1:4d773bd62a1857033818edd567c452dd8079344b pristine_git_object: add5ba47823d0cbcbdbd79d02898310142b12901 docs/models/importsourcepoolsunion.md: id: 9bd7562cb44d @@ -7590,6 +7980,8 @@ trackedFiles: id: abc76bb1b172 last_write_checksum: sha1:20e0355859569bbb11e7a89efb0b4ef07c10b19f pristine_git_object: f4e1a92aad5be751dfa757425678a2eb4ae8f971 + docs/models/inviter.md: + last_write_checksum: sha1:beb150682b7f483ba0c8b35b33f474a48ac8feaa docs/models/involvedobject1.md: id: 6946ea66c33b last_write_checksum: sha1:49931b98fa3e1ad066fee5c5185804dac57d0cf3 @@ -7672,7 +8064,7 @@ trackedFiles: pristine_git_object: 9396c3183c975ef39f37a6ef55c05c492dc163d8 docs/models/keyinfo.md: id: 861bee65e06b - last_write_checksum: sha1:aef7310cd3e82d209a7453b2b94bcf4b219a8769 + last_write_checksum: sha1:efab48d045aa4208d60632a7c359cdee8a4f2b1a pristine_git_object: 764a6aa110ff857b65d527d1f5d8859f3387dcf3 docs/models/keyschema.md: id: dbf5c167e65b @@ -7842,7 +8234,7 @@ trackedFiles: pristine_git_object: b9a41730a57329e4c8d0e4d9fe4fa1706474e487 docs/models/managerretryresponse.md: id: 2ca53c0a95e2 - last_write_checksum: sha1:202cfac51abb3c0295e94e55e23d29755648a001 + last_write_checksum: sha1:24d315e349e044117303ee9b91fb301e82ff40d5 pristine_git_object: 49ba6256a45a015b219c00df252c5d714ebc0ce9 docs/models/managerretryresponseaws1.md: id: 9bfa57761df5 @@ -8260,6 +8652,30 @@ trackedFiles: id: 95569ea21b12 last_write_checksum: sha1:5b6aa39fba060ec129db6536578a8420bc7c6702 pristine_git_object: 7c6226da1b7e3f7d1f9cb554b93dbd5e507cfa08 + docs/models/managerretryresponsefailuredomains1.md: + last_write_checksum: sha1:95cb8c1a7b82f46c7d5f6b62cf48ca29e49130ff + docs/models/managerretryresponsefailuredomains2.md: + last_write_checksum: sha1:7debdf86122eca782452cd3ffc8abd001cd46c9e + docs/models/managerretryresponsefailuredomains3.md: + last_write_checksum: sha1:2f653a887950e37cc3de7b3df6a14cbace963173 + docs/models/managerretryresponsefailuredomains4.md: + last_write_checksum: sha1:0280dc71ff9c4ee0254112e7a7c69d17ae524da0 + docs/models/managerretryresponsefailuredomains5.md: + last_write_checksum: sha1:fce08dc429d98326f886c72ea1ffc588f4fe5c4c + docs/models/managerretryresponsefailuredomains6.md: + last_write_checksum: sha1:7297839e1338402fde089774104c0b4b0b47764d + docs/models/managerretryresponsefailuredomainsunion1.md: + last_write_checksum: sha1:5da1e69bdaa9250d181a399a473fb897d6955933 + docs/models/managerretryresponsefailuredomainsunion2.md: + last_write_checksum: sha1:67daaa672a04de62620ccc86c132b551baa4a09c + docs/models/managerretryresponsefailuredomainsunion3.md: + last_write_checksum: sha1:dbeeece48c8e941ece05e19c2ab3aa9709838645 + docs/models/managerretryresponsefailuredomainsunion4.md: + last_write_checksum: sha1:9d29aabc6ae1498dfcd3425cf319ad780a80bc8b + docs/models/managerretryresponsefailuredomainsunion5.md: + last_write_checksum: sha1:662a9207341fa197a3f9b62271a2ab35dcd2fb73 + docs/models/managerretryresponsefailuredomainsunion6.md: + last_write_checksum: sha1:2a113c134a2b7c4cc47cda20235597c587a53d4f docs/models/managerretryresponsegcp1.md: id: 50aa70abd7f9 last_write_checksum: sha1:5750a06e445f81cd4f0fcdc756d1f83c61f99497 @@ -8466,27 +8882,27 @@ trackedFiles: pristine_git_object: 7a509442fcc0c4ba828bfab3a69d03f6bef6cf66 docs/models/managerretryresponsepoolsautoscale1.md: id: 5188fad3b76f - last_write_checksum: sha1:d14c52fce90bbf25f54879693a1492d713b68524 + last_write_checksum: sha1:e8cc10417202887406e2bae9fe9be87ce99d2ca7 pristine_git_object: c432650a97b10a4156212b1c23deca3149bbb148 docs/models/managerretryresponsepoolsautoscale2.md: id: 8dec6888ed6a - last_write_checksum: sha1:50bb8ff3cbff479a88009c2ccb84726cbc2eff9d + last_write_checksum: sha1:4b7e0ed75196d80dc209abff91e98d429bee6ed4 pristine_git_object: bd9625b80bf37e8443c6ff61ef707f559fd2102d docs/models/managerretryresponsepoolsautoscale3.md: id: 1d4e3af52045 - last_write_checksum: sha1:ef742205d6ab7f1cd5bb0826b5d21bb68adc9542 + last_write_checksum: sha1:4b6ea3e7598645cb208e41940cf0643ff83ccaf5 pristine_git_object: 3d044fa2c0dc4ccdf813fe073f14f4686860b2d6 docs/models/managerretryresponsepoolsfixed1.md: id: fdd2e78517d5 - last_write_checksum: sha1:be241761dce4fdccff1eca2c44490a10f2ebd78f + last_write_checksum: sha1:ca4c0d797b0362f00db873aae2bbf9dc61e81bf2 pristine_git_object: c76493d07a01d206d589669d34770eae9b876235 docs/models/managerretryresponsepoolsfixed2.md: id: 44efff08ad92 - last_write_checksum: sha1:bfd47abaa476c0f9b12e6207f56146ae6063f9a9 + last_write_checksum: sha1:34d50e525345481b68568cc60953cfb62d7bb2d3 pristine_git_object: 747038f9011a76d46114f12c0cf15b9d29dfd72b docs/models/managerretryresponsepoolsfixed3.md: id: 46437af278ef - last_write_checksum: sha1:1de21eb6312756c5a1ee1cef2f7a46582723c2ee + last_write_checksum: sha1:4aac441957ed771812af65c3d0079ab45eee5253 pristine_git_object: b6f323ea63262a5d648507de6c11c8f87432f4cb docs/models/managerretryresponsepoolsunion1.md: id: 89128921fbbe @@ -8946,7 +9362,7 @@ trackedFiles: pristine_git_object: c68331bee603e86465fa9f8ded028174580abf6c docs/models/managerretryresponsesetup.md: id: 62030e7f1593 - last_write_checksum: sha1:a3bb7e6a15da61cd2d1a35ec6153a95585524080 + last_write_checksum: sha1:fc2e32270c9124eb9809308dc292850b945f6046 pristine_git_object: 3ce743642a23e810da056adeb8a1bc3e1f0b4747 docs/models/managerretryresponsesetupcloudformation.md: id: b0d16782154d @@ -8954,7 +9370,7 @@ trackedFiles: pristine_git_object: 0d0c47bead12553400c3574bcc3164d241e579a1 docs/models/managerretryresponsesetupconfig.md: id: d4566dbcec9a - last_write_checksum: sha1:cf6409ac16d8941a198d303361204832d6d6e017 + last_write_checksum: sha1:f656e23d9c53098db536d1bc1af2e74283aecea1 pristine_git_object: 839c2dcb9b2b91d4b231edf795d0f92ba6cf4583 docs/models/managerretryresponsesetupgoogleoauth.md: id: 7cbca3c893ab @@ -9316,6 +9732,14 @@ trackedFiles: id: 961bb591630c last_write_checksum: sha1:22b8a4b6ef4e1c9f6204c74f38a92d7d5db4794e pristine_git_object: 9bb07766abe4f5703ac5390897905df89cd37dc7 + docs/models/model1.md: + last_write_checksum: sha1:dbf9c77e9cae21a688580deed52979752baeda58 + docs/models/model2.md: + last_write_checksum: sha1:429d6fb2a0b7302716ea191add7f3c1ed910b835 + docs/models/model3.md: + last_write_checksum: sha1:e0265a09fae06808ada19c8e9cae13a5a614e4fa + docs/models/model4.md: + last_write_checksum: sha1:6e0a3de6d7a3eccf039ac0e6530e138d02ddac33 docs/models/modepersist.md: id: 1fbaa5145a0f last_write_checksum: sha1:63936e2f5ab0b96727f9d6f09313c5b1801c7af0 @@ -9330,7 +9754,7 @@ trackedFiles: pristine_git_object: 3ea2bfcf835d798054b3198ba6b6802a55897ed5 docs/models/newdeploymentrequest.md: id: 7f6b60c2f43a - last_write_checksum: sha1:dcd229066fb4b33d92cb040737f1a81e6c743f26 + last_write_checksum: sha1:2246c471f5bab9afa196abb6083ff89f6c27ffb8 pristine_git_object: d71e782a5608cc4221ef40896c10bf1b56c26003 docs/models/newdeploymentrequestaws.md: id: f8a2c70fbad4 @@ -9492,6 +9916,14 @@ trackedFiles: id: c21d21a1003b last_write_checksum: sha1:d026f9bccf478a222ca3e3fed173e346f9e6b307 pristine_git_object: 5b42e18b3062c270ad5bf3a115a5eb7649825b77 + docs/models/newdeploymentrequestfailuredomains1.md: + last_write_checksum: sha1:97daa7006f519fe9116feb0833fde92d2dab5763 + docs/models/newdeploymentrequestfailuredomains2.md: + last_write_checksum: sha1:a27bbeb960507cecd69a0b61f86dd7346953008e + docs/models/newdeploymentrequestfailuredomainsunion1.md: + last_write_checksum: sha1:3bf9d2e49422815dc61f90a58aeed5d18e03bc31 + docs/models/newdeploymentrequestfailuredomainsunion2.md: + last_write_checksum: sha1:cb874232bdb9b7b1d4616a18e7dd461d1af86248 docs/models/newdeploymentrequestgcp.md: id: f4d74bf2e61c last_write_checksum: sha1:7221cb11d1b400a9bfd1588ee44950819a37af6d @@ -9586,11 +10018,11 @@ trackedFiles: pristine_git_object: 475db364a049954ab8b117c56e0ff1633f0d9d51 docs/models/newdeploymentrequestpoolsautoscale.md: id: 2532be14903f - last_write_checksum: sha1:1095a12cec9b39ab96223c61038790a326c83041 + last_write_checksum: sha1:24663e8690f3e0c8fffed3934a6895859a18152c pristine_git_object: 36ca20e5e7761cb8c7eeecaf03a840cf386a90c0 docs/models/newdeploymentrequestpoolsfixed.md: id: c83f39bdb9b8 - last_write_checksum: sha1:ba9b4776b749afe1946303009b102bb08de9a00d + last_write_checksum: sha1:81c7a944ef946a764afb4a2996236417e6552a3b pristine_git_object: a6bc6a7e460f58d6678123d76962beaa53b127b8 docs/models/newdeploymentrequestpoolsunion.md: id: 9615aca40124 @@ -9784,14 +10216,6 @@ trackedFiles: id: 9eb0ea873e80 last_write_checksum: sha1:1fe40a47dca32273d7c397841c3882459d1519ef pristine_git_object: 25bdd3f1e03164d4148df1298ea138b984427a1e - docs/models/nextstate.md: - id: d4a4b873c6aa - last_write_checksum: sha1:c73618e125b53dd07c7961b2db7f55976cbd9ab3 - pristine_git_object: be86d9277c4deb5e245bb247563b1b6a7f3d97ef - docs/models/nextstateerrorunion.md: - id: daf2007e4486 - last_write_checksum: sha1:eaca175581f3bdcfb3d5d7820ba67f34a21f53fb - pristine_git_object: 08a254372b574c68f6b4bd7ec6fdd46b569b1d51 docs/models/nodecounts.md: id: 74a189e7c9ff last_write_checksum: sha1:17c2a6067a9d114a323a3b55fb48fbb79b856a6a @@ -9840,6 +10264,16 @@ trackedFiles: id: b2753c1128e7 last_write_checksum: sha1:472f05c11b6355a027fea586e79069f31a2f23dc pristine_git_object: f66ab26107ac7d6c39014ffc96f61a90f0fa0732 + docs/models/operations/acceptworkspaceinvitationrequest.md: + last_write_checksum: sha1:7302986e31038a820778303bc119aea6f31d9bd1 + docs/models/operations/accesstest1.md: + last_write_checksum: sha1:89dd99ab430344015eb1d761d81504c53e11f6d3 + docs/models/operations/accesstest2.md: + last_write_checksum: sha1:32ae03ca27c6b481bd8d6ff557d5206855920add + docs/models/operations/accesstest3.md: + last_write_checksum: sha1:392632b8f2a6a4eb4cef1c935d1172677becdc80 + docs/models/operations/accesstest4.md: + last_write_checksum: sha1:4b47526c9f4f1b5a37927e4ce57f453f588c5e12 docs/models/operations/addworkspacememberrequest.md: id: a35dc9e3f811 last_write_checksum: sha1:09bbfce0416534af4325c2ef080464493aea3c5b @@ -9848,6 +10282,8 @@ trackedFiles: id: 35b3bd6d442d last_write_checksum: sha1:c90d2f8f9bdf0f21c231c06c8e8e0f22720976ba pristine_git_object: 369e68be82a3218bbc9c6f603b77b1a8762efac0 + docs/models/operations/allchannels.md: + last_write_checksum: sha1:bd8dd946284d289a7df8131008371f149ef6388d docs/models/operations/allocatable.md: id: 357e913c04e9 last_write_checksum: sha1:4e20cd18f10574c93d06b69920ad619de3a1f611 @@ -9860,26 +10296,38 @@ trackedFiles: id: 19ad9c7ecd8f last_write_checksum: sha1:c09bc5c2caaae0c85e9165883a9d292c830e45ba pristine_git_object: 66b5b9f2ec1235b91465da6da1f9ab99aff46bc1 + docs/models/operations/approveagentsessionrequest.md: + last_write_checksum: sha1:5c90b5dea1a630e2045b2592c041c2c451236f0d + docs/models/operations/availability1.md: + last_write_checksum: sha1:b8001669e9fea78cd35bdb28f7891ab894779d1a + docs/models/operations/availability2.md: + last_write_checksum: sha1:120456d4d3069b9f2db8af94ee23c66d60da3c9c + docs/models/operations/availability3.md: + last_write_checksum: sha1:e090496b8c50a659eb663f3bfdc5c20d2a087955 + docs/models/operations/availability4.md: + last_write_checksum: sha1:4e88881a1bfb733f0585675487b3d9655ebcc567 + docs/models/operations/availabilityenum1.md: + last_write_checksum: sha1:b1e27aa810620d5161bd972cdc3de86a0928b404 + docs/models/operations/availabilityenum2.md: + last_write_checksum: sha1:518626065b4f9831799db12fc61d8631cc686736 + docs/models/operations/availabilityenum3.md: + last_write_checksum: sha1:cbba511fa38adbeef4138696965332b47dea5a5e + docs/models/operations/availabilityenum4.md: + last_write_checksum: sha1:babc647ddc8d53b05b26b93862a0aec9847f14d4 + docs/models/operations/availabilityunion.md: + last_write_checksum: sha1:a57701a2eabc9d0c072784cc117296b5294c4956 docs/models/operations/backendenum.md: id: 10b6d15a7784 last_write_checksum: sha1:db5d7a4ab59d5801d68f4cb54cce8bf175935ba9 pristine_git_object: 90709c9f7c2d7d81feb4cba244f1b9f85733721b - docs/models/operations/blocker1.md: - id: 6f611c9d5b53 - last_write_checksum: sha1:3f738712a0a0a99dd3390f331d44eb09441f4ac6 - pristine_git_object: df20e2c8c7e03853a847155c9e49df7898b810db - docs/models/operations/blocker2.md: - id: 526e305ab988 - last_write_checksum: sha1:65121f69c6018adcaf1036a358e9b5fbdc29ccb0 - pristine_git_object: 224a1528b5360569ced19c143ceb9c7c7aa10b2f - docs/models/operations/blocker3.md: - id: 368049a7cc02 - last_write_checksum: sha1:666334a9322c609939febece887592fe792aa94f - pristine_git_object: 1fd22687c9fc7dea35c544bd09ffd6862cc15a04 - docs/models/operations/blocker4.md: - id: 1de5fa5fdbe7 - last_write_checksum: sha1:40abf33e84ddca375341b28322bae66f307aa4d0 - pristine_git_object: 7cbc1209e6cc9f37eeef9d2859cea13219b10ab2 + docs/models/operations/blockerenum1.md: + last_write_checksum: sha1:fc45a83db12a3240fca57e4befc8701156068619 + docs/models/operations/blockerenum2.md: + last_write_checksum: sha1:af6cb1cb7c2b08b9e2006952e2eaee469f86be53 + docs/models/operations/blockerenum3.md: + last_write_checksum: sha1:ccef78d5e0e1a3e6672f44f1d51b757cf5c20445 + docs/models/operations/blockerenum4.md: + last_write_checksum: sha1:3cad596e74393b19b9a90c2d3a6fe0698e140cb0 docs/models/operations/cancelmachinesmachinedrainrequest.md: id: f3161c533632 last_write_checksum: sha1:209b17fbc97a549335c306672f474d9b3f18d201 @@ -9972,6 +10420,14 @@ trackedFiles: id: a53dc8399142 last_write_checksum: sha1:f7b0a5d363cedbf8a85508e358d56a45216070d4 pristine_git_object: e155f047dfb6d7e840a087e5c60a2f8b2860bea1 + docs/models/operations/clientapi1.md: + last_write_checksum: sha1:1cc8d4b9d0783e30e7ce3d03d7dba8e459924692 + docs/models/operations/clientapi2.md: + last_write_checksum: sha1:85528da40ec2302d91e5f563bc66f0370e09c8f8 + docs/models/operations/clientapi3.md: + last_write_checksum: sha1:4523b8c85be7d9bfe37c1e21ae218fe14062a016 + docs/models/operations/clientapi4.md: + last_write_checksum: sha1:d1f9be1ec6fc8a437bb62b6f751296bc522edec5 docs/models/operations/collectionissue1.md: id: 76f31e972b98 last_write_checksum: sha1:deefa8f8c404c6031e25d2b628ab78a43c5121a0 @@ -10220,6 +10676,14 @@ trackedFiles: id: 56fbdabcec05 last_write_checksum: sha1:cde266d9d9e0e038b62754995dd9a0c27401f9b7 pristine_git_object: ddfcc4c1c58e2da332ad449f98933b9513451c8d + docs/models/operations/collectionissue66.md: + last_write_checksum: sha1:a6cafb9ba6cad2248affb80ff53674f501c325a6 + docs/models/operations/collectionissue67.md: + last_write_checksum: sha1:f52d2f780e121bb76a28ed12da3314af6ed7e00c + docs/models/operations/collectionissue68.md: + last_write_checksum: sha1:b450b3d340ad43f6b4160da662bfd86b1d9625e9 + docs/models/operations/collectionissue69.md: + last_write_checksum: sha1:8cf081820ef00b94808641c734beff3d4a2933d8 docs/models/operations/collectionissue7.md: id: 17ccca51e52d last_write_checksum: sha1:e99e4f0fe395759209d90584ca160ce0265b67cf @@ -10480,6 +10944,14 @@ trackedFiles: id: 549673d04c32 last_write_checksum: sha1:7d7bdc1dfea3e0af8db1ddb5e973db69129ef240 pristine_git_object: b4b48ec9cb580bc8a71452bcda363a38f6676d2c + docs/models/operations/collectionissueseverity66.md: + last_write_checksum: sha1:90edfff8ded7d129388e7fa44b7810107253342f + docs/models/operations/collectionissueseverity67.md: + last_write_checksum: sha1:2ff3091e8cfb2cde0b490a18cb9c51a00d5bfd76 + docs/models/operations/collectionissueseverity68.md: + last_write_checksum: sha1:d48cb31fc9ed2560fbf025214a134474c8c79e8c + docs/models/operations/collectionissueseverity69.md: + last_write_checksum: sha1:2fce69a2e5fb1f95f44acec53a4284776fe609f9 docs/models/operations/collectionissueseverity7.md: id: 21941808cc10 last_write_checksum: sha1:e3c276b4cdcd1d7c6b273a8abaad77142aae07f4 @@ -10984,6 +11456,10 @@ trackedFiles: id: 7b75ae5be4ac last_write_checksum: sha1:cdc09ad05f5946a7c2abd33c8429bda3e119abdd pristine_git_object: 7084c026679b52f82353666ebe4a2315a4b544fa + docs/models/operations/createreleasechannelrequest.md: + last_write_checksum: sha1:4a1796e9735fb2d345836a84c83316afd1b016f8 + docs/models/operations/createreleasechannelrequestbody.md: + last_write_checksum: sha1:935ad62ae083315f98e9fb9f91e85ad4afc916c5 docs/models/operations/createreleaserequest.md: id: a2f28a830080 last_write_checksum: sha1:b04572aecac3730e61ec34e8437d73ab5e971d10 @@ -10992,6 +11468,14 @@ trackedFiles: id: ed4344ab19bb last_write_checksum: sha1:57fe259f2a17a5b056434a25dd9791386a174343 pristine_git_object: 0870d489310d2c11a743f8ca161128c270b4476f + docs/models/operations/createworkspaceinvitationrequest.md: + last_write_checksum: sha1:c7c3c9cbf8f728302f2742bfa247e86eaabb53f5 + docs/models/operations/createworkspaceinvitationrequestbody.md: + last_write_checksum: sha1:b21f141be389f8f6f8c755871acec9bfade33568 + docs/models/operations/createworkspaceinvitelinkrequest.md: + last_write_checksum: sha1:099a54af859e41da8adf790eee888188d2281207 + docs/models/operations/createworkspaceinvitelinkrequestbody.md: + last_write_checksum: sha1:3cada0bb438aeffe247dc2c92d3e181e2c81a28d docs/models/operations/createworkspacerequest.md: id: 6ca823e26416 last_write_checksum: sha1:809488e20e7ed61dde31f043f747375161ffc4f4 @@ -11100,6 +11584,14 @@ trackedFiles: id: 390765a77aa9 last_write_checksum: sha1:6320a5526a3e7c05379593d9f3568a87be98d4f1 pristine_git_object: f0dd4752cba3e2b8563ecf8f3a09bd68002887f9 + docs/models/operations/data6.md: + last_write_checksum: sha1:e885ad916ae8b028eaa7323f2eb642f266ff64b2 + docs/models/operations/data7.md: + last_write_checksum: sha1:fbde7b5467c70a04c72f10e3a16970329594afb1 + docs/models/operations/data8.md: + last_write_checksum: sha1:c6addfb45ef293a0c4760f2135133a48fdf51e17 + docs/models/operations/dataai.md: + last_write_checksum: sha1:51d72ec09505753e2452adf865d6d5627bd581c3 docs/models/operations/dataartifactregistry.md: id: 1873000c7745 last_write_checksum: sha1:2d215357e1c326586ee22298bb966de50acd3441 @@ -11110,12 +11602,14 @@ trackedFiles: pristine_git_object: 714a55fe0552012d5a03cdfbfc93c0f1ea4b8321 docs/models/operations/dataaws1.md: id: 665e28ed6bb4 - last_write_checksum: sha1:066d6466e933017856bab5ca25fa5f6587e28e0a + last_write_checksum: sha1:679157707fd48314d22376a3619e117b5b73b6e5 pristine_git_object: 79c1407f73ed7d080411d9862bc015fe0e7acb83 docs/models/operations/dataaws2.md: id: 36c55a31d434 last_write_checksum: sha1:8dc84e51c777d578b51c17641272a8e3cdd73954 pristine_git_object: 2220dcab554cfb2b92f19788571ad444ee9cb3f5 + docs/models/operations/dataawsbedrock.md: + last_write_checksum: sha1:857012841f5d9d17362b02d7660431f1fc0e980a docs/models/operations/dataawscodebuild.md: id: 4b9dbbd32780 last_write_checksum: sha1:154c3f6f739264d79c46c9b752cac11ede5109af @@ -11136,6 +11630,8 @@ trackedFiles: id: c887a2e11233 last_write_checksum: sha1:8c99edc5b4167b60c21eca17435976bf5a3711e9 pristine_git_object: 224f517925dc89ba33d51666d095f7270ef981a8 + docs/models/operations/dataawskms.md: + last_write_checksum: sha1:659748d0dcf099ae50b24613ddf69a6d39233677 docs/models/operations/dataawslambda.md: id: 25feda75539c last_write_checksum: sha1:68fa47732c75c838d1366ad644a5ced3bf7c46da @@ -11158,7 +11654,7 @@ trackedFiles: pristine_git_object: 03bb4a2fd277973f4ef91e3eb47bbc1876d77325 docs/models/operations/dataazure1.md: id: 4a945facdc1a - last_write_checksum: sha1:90939a167635d191c0779eff18c80c2ef8894b97 + last_write_checksum: sha1:dc89a702d241d5fc94a969995db8af6cceb46e30 pristine_git_object: 15708477e9aad7cb0db95df8a7431183e5c3fc98 docs/models/operations/dataazure2.md: id: b176f4c4164b @@ -11184,10 +11680,12 @@ trackedFiles: id: f3892e8bcfe4 last_write_checksum: sha1:a775382da8f4aa7bd75dde78e877523a7928ec3f pristine_git_object: 86743f3330415022e9d60abf029511ad35fe1bf6 - docs/models/operations/dataazurekeyvault.md: - id: 2df1f56c0a14 - last_write_checksum: sha1:1364295e9f387901a2314a28fb4fcfebd49a29b9 - pristine_git_object: 8fc82d9239346570620f14e6f4abf44b72a417bc + docs/models/operations/dataazurefoundry.md: + last_write_checksum: sha1:866333465aec5913ae51543643330791060d2778 + docs/models/operations/dataazurekeyvault1.md: + last_write_checksum: sha1:2cadbeb7ccb32e12c6a2f6e6cc2735d1c17492ed + docs/models/operations/dataazurekeyvault2.md: + last_write_checksum: sha1:8a8316da25651cf959497d8447f742b8889389b7 docs/models/operations/dataazuremanagedidentity1.md: id: 8ef200c80317 last_write_checksum: sha1:d718240cddaa7ba82fd6c04fa623a22b444fec97 @@ -11244,13 +11742,15 @@ trackedFiles: id: 47054dcc258a last_write_checksum: sha1:ff508cae968fe70b4285d8182fa30235e600fbfa pristine_git_object: 9a7f00f57506c883e7bf730fa60e8028e5cfc2c2 + docs/models/operations/dataexternal.md: + last_write_checksum: sha1:980cf388ee383f3ff850f776f25a68a5d3bf1764 docs/models/operations/dataflexibleserver.md: id: 0edc93a187a1 last_write_checksum: sha1:300accc8375d756907ee7839512b045070369685 pristine_git_object: c750a3ef93dc6b7f47b3ddc23dbeab6546cd6491 docs/models/operations/datagcp1.md: id: 28c75e77beb6 - last_write_checksum: sha1:52f1edf5b89eecf2cad4cf33e79ebc8846a98a91 + last_write_checksum: sha1:79e1d56d8560905a478c35ebfaa425a4f539162e pristine_git_object: 75ffc8836cccc29af60b85b158376de78d5ff931 docs/models/operations/datagcp2.md: id: ebb8d1e40d34 @@ -11264,6 +11764,8 @@ trackedFiles: id: 145e243827f9 last_write_checksum: sha1:d53b2b7df1b9d2e703c0b8ff993ea948011bac61 pristine_git_object: e4da3f9d57cfd944258a6d565a3428ab4c46ae2e + docs/models/operations/datagcpcloudkms.md: + last_write_checksum: sha1:61a6e2796e0679e54b4b0481a15775fb852aafe0 docs/models/operations/datagcpcloudrun.md: id: 39a655f27640 last_write_checksum: sha1:ba8c2152bdb53debb334845d258a64d09638d90f @@ -11296,14 +11798,18 @@ trackedFiles: id: ec41ece7cf78 last_write_checksum: sha1:34668e54f594081446eda07112cc13b337c9b223 pristine_git_object: 543cbb7d30e7e7c22987f733acb26ca9e8a0fabe + docs/models/operations/datagcpvertex.md: + last_write_checksum: sha1:3d2908a51de9f983b63dfca25b5e4deb12cd7def docs/models/operations/datagcpvpc.md: id: d1def63893a8 last_write_checksum: sha1:0c90bddb15f131b339f5b32fbd299fb47eccbe30 pristine_git_object: dd0590999cb48fcaf1e83260e7f9ed024231a850 docs/models/operations/datahorizonplatform.md: id: 73864a53e169 - last_write_checksum: sha1:63faf991b18a4e1b22ef5012a06c665c06a531ea + last_write_checksum: sha1:607c125ea164f9295c784255569fa9b357bcc529 pristine_git_object: 186b242f3fb2b7f2a2fff9630b15aa4850ea63e2 + docs/models/operations/datakey.md: + last_write_checksum: sha1:197196f9d0ab4b24e404170deaabac8fd3fc7ab1 docs/models/operations/datakubernetes1.md: id: 096f85d155a3 last_write_checksum: sha1:c75901e14dcc822e5b67866580ef22b044ad0300 @@ -11378,7 +11884,7 @@ trackedFiles: pristine_git_object: 7333c4bffc0f870ed82d0c86e67cfc3bacf69622 docs/models/operations/datamachines1.md: id: 2a8216e30ca0 - last_write_checksum: sha1:e41479fcf5391ca425501eda0f812ae884a90773 + last_write_checksum: sha1:18aae42d79822ef6bcccaa87e50382a4cfd969b1 pristine_git_object: 8763f73b01fe22290ad2af61bc0df5fd9752b2f1 docs/models/operations/datamachines2.md: id: 7db9cbfb7962 @@ -11656,10 +12162,24 @@ trackedFiles: id: 727599d2baa9 last_write_checksum: sha1:4726cf0ffd3a4a895993ee22e190613454c230b3 pristine_git_object: 7285c952992d7265a3e16d6cf1acd5d1424241d4 + docs/models/operations/datastatus66.md: + last_write_checksum: sha1:9bbfaea038ab6935f8cab7e2edb077496c8c96a6 + docs/models/operations/datastatus67.md: + last_write_checksum: sha1:481fee3a667026fd01dc6ca7e4acd5b380ad5635 + docs/models/operations/datastatus68.md: + last_write_checksum: sha1:be84ab409512e3fc73d360d40f1e43d58ba18993 + docs/models/operations/datastatus69.md: + last_write_checksum: sha1:bf5e15df7a9e8a167a5e615dd039c1e5740ea4be docs/models/operations/datastatus7.md: id: c4566f1e2031 last_write_checksum: sha1:4be91bb895c4efb838f446cd83a3191a0fb83c8f pristine_git_object: 3767e0939c6fe6ca01f996d6b17880f8d1139bdc + docs/models/operations/datastatus70.md: + last_write_checksum: sha1:b51944ca3ff7e6b83650b9dcf1ed64c0ec243f45 + docs/models/operations/datastatus71.md: + last_write_checksum: sha1:d0a0fc2faa0bddfedd78662d90d5b2de177b7a6f + docs/models/operations/datastatus72.md: + last_write_checksum: sha1:58b24931f4801dea41d9116ec5bde1ad12cc4693 docs/models/operations/datastatus8.md: id: ad9d6447b032 last_write_checksum: sha1:51d57421f6c6d1e0e5c4eb69793159a9dc8ab181 @@ -11702,8 +12222,12 @@ trackedFiles: pristine_git_object: 36b98dd06b528f3eb92f445231d11bb9ece8258a docs/models/operations/dataunion16.md: id: b11cc5375941 - last_write_checksum: sha1:87b80cdad4dc0aa2fe005f707daa5430056ed7b0 + last_write_checksum: sha1:8f11333e735d8dd0b9b6451cb3bf62a9f779916e pristine_git_object: 343e7b6a4ff3a1a5568b5fe74ab39c3abf8301bf + docs/models/operations/dataunion17.md: + last_write_checksum: sha1:b33fc7ddca2079c5e799fbb096fd96f6267cf978 + docs/models/operations/dataunion18.md: + last_write_checksum: sha1:5432260d52b3b47c123315d411a1cbdbc2cedc68 docs/models/operations/dataunion2.md: id: 9795ad6d437c last_write_checksum: sha1:aed2e36df978dd9fba82375eb1db3691d35e7df3 @@ -11734,7 +12258,7 @@ trackedFiles: pristine_git_object: 632d21e1ff9428a6a619e5f79883e9e72e69011c docs/models/operations/dataunion9.md: id: 0cd92d721653 - last_write_checksum: sha1:bc92fe34e013f2bc2a3210a83728b86059ed8d43 + last_write_checksum: sha1:713a4375f20a9517a03448de01b4872550b5463b pristine_git_object: caa675ae9d83abb33a0736489940cca044145a63 docs/models/operations/datavault.md: id: 54efedb5539b @@ -11780,6 +12304,8 @@ trackedFiles: id: 48b7d1a72221 last_write_checksum: sha1:b9635053635eb82578a0d70bcc53f85a14c0d14c pristine_git_object: 03dcda06b20f95a6c694efe2dee62be41dd42a76 + docs/models/operations/deletereleasechannelrequest.md: + last_write_checksum: sha1:84c9cb18270885f9d0214eddadbcb4a4645524f4 docs/models/operations/deleteworkspacerequest.md: id: c3a6fd8ac219 last_write_checksum: sha1:52cf255a6ab8ccc998e1659748a726aefc951d25 @@ -11802,20 +12328,28 @@ trackedFiles: pristine_git_object: 46c01fa78c8d76ff85d23134b4a7c5b03e531a60 docs/models/operations/drainprogress1.md: id: d880a86adc16 - last_write_checksum: sha1:7606b705de417dd5d7f72b6c4a32b94c980a2151 + last_write_checksum: sha1:e1c390877e92b958fca7c05b32b1d92edb60a1d8 pristine_git_object: 4bff4a3dd33067fbd756aa71ab945e4a37e91081 docs/models/operations/drainprogress2.md: id: 9b0cc06ad3c5 - last_write_checksum: sha1:6dd2925a75f92086f35750eea80dd186a8eed970 + last_write_checksum: sha1:6ac1a0833260143449dd4ea979217d7c713452be pristine_git_object: d60b7de0519a24450c84ffa27123e3a403081e0e docs/models/operations/drainprogress3.md: id: 6572e70c97ec - last_write_checksum: sha1:2652558be5974080d6f426fc71d7a814f9ab47cf + last_write_checksum: sha1:117fb960dd3576e01706c4d8d66f61a310794ffd pristine_git_object: 07c6890419401918175953a9923f144f78763cfb docs/models/operations/drainprogress4.md: id: aec05391dc0b - last_write_checksum: sha1:0975472da6992a20919d368397514ffbaefa9c16 + last_write_checksum: sha1:018a55e4db78ee0fea63a7f8b91439cede5100f7 pristine_git_object: fe93c5a953d11a1f00eea5d45c6b3dc7d80ade74 + docs/models/operations/drainprogressblocker1.md: + last_write_checksum: sha1:0a281295ccef1ae01743e658b6fa12745867e78b + docs/models/operations/drainprogressblocker2.md: + last_write_checksum: sha1:cbb6c0b4303e5a37bc2e1d8e3c8b74e9fa31a069 + docs/models/operations/drainprogressblocker3.md: + last_write_checksum: sha1:705a294ee402018d1d702efbe14d2ae8cb76e431 + docs/models/operations/drainprogressblocker4.md: + last_write_checksum: sha1:6aec0cc5ef86326cd8cf2946ce6a1b516fb089d8 docs/models/operations/drainprogressstatus1.md: id: 374de6fc4479 last_write_checksum: sha1:cac928635f452ea598be19b28096e0027bf0904d @@ -11848,6 +12382,8 @@ trackedFiles: id: 2fbbbf4fece7 last_write_checksum: sha1:bef81f55f07d0b016fd602994ce71edfb50849ed pristine_git_object: aef249a83c7cb7acff920dfd2840cb08d9644e00 + docs/models/operations/ensuredeploymentgroupbyexternalidrequest.md: + last_write_checksum: sha1:272a243fb721038c4726460790de0f0a50805b60 docs/models/operations/ensuredeploymentgroupbynamerequest.md: id: 181966a71bdb last_write_checksum: sha1:9a1281e9c3735fd17aa1d5d80970a98e21d440a0 @@ -11920,10 +12456,14 @@ trackedFiles: id: 4c6808d8bb23 last_write_checksum: sha1:4fe8bdfbec7f94270209a37d96214e4a4f640fbd pristine_git_object: b6c455f245ab6f9e89c2f2e196743eaf8824db80 + docs/models/operations/generatemanagerbindingtokenrequest.md: + last_write_checksum: sha1:ad9375fcfe688b7ea457cecf9145e786c2eec4c0 docs/models/operations/generatemanagertokenrequest.md: id: 27531272409f last_write_checksum: sha1:12980b45d4d2d1afe7146f3beb06d80dcb8f6a49 pristine_git_object: 9bed74c2196d6b03288a003f48bbe83788dd2758 + docs/models/operations/getagentsessionrequest.md: + last_write_checksum: sha1:d26fdaa306c6a5a562199d068bf30059e01ef019 docs/models/operations/getapikeyrequest.md: id: 2ee5609f22a3 last_write_checksum: sha1:20fc5c6da0dfa9260ee890c577d06266be55afab @@ -11944,6 +12484,8 @@ trackedFiles: id: b8db6ccd0e25 last_write_checksum: sha1:68a3b11eb42c0424c5f833e308e6cd5f1d01af3f pristine_git_object: f5fd3bb44e5f6992314350937105c768a93b935c + docs/models/operations/getdeploymentgroupbyexternalidrequest.md: + last_write_checksum: sha1:66e27dd7f3f6f1c4982c82ff3c3801bf1f141566 docs/models/operations/getdeploymentgroupinclude.md: id: 302e63771663 last_write_checksum: sha1:2ce718df4aac4a850be34e5d83aa7592d588813a @@ -11958,7 +12500,7 @@ trackedFiles: pristine_git_object: 79f398a1f205b75b62ed618e85931c7242fbaaa8 docs/models/operations/getdeploymentgroupresponse.md: id: 2d3a07c12446 - last_write_checksum: sha1:275db784dd5ab5ce19c517ac140928a9dbc4e933 + last_write_checksum: sha1:75a7fbcbce05a68a47c4643eb42afc7a7aa29d4a pristine_git_object: 494cfc64a61038e92d7a65af91d4d235d523d237 docs/models/operations/getdeploymentinclude.md: id: 1fdbf9f4f816 @@ -12078,11 +12620,11 @@ trackedFiles: pristine_git_object: 0bd3de9019d1257e4763f3b39207e23df1e3abfa docs/models/operations/getreleaseinclude.md: id: ee689a40e3b1 - last_write_checksum: sha1:eb87134702e620f511aa3366ea8ccd96171ee48f + last_write_checksum: sha1:fa11fb6da63e2cecea5072681d892f046b5fb4a7 pristine_git_object: e05e38f81d0720ab8d858dfe00e420bfd9d973b1 docs/models/operations/getreleaserequest.md: id: 4f0017cc5670 - last_write_checksum: sha1:3fe87f491706d9a1878ca7f3fa90309d92ffc531 + last_write_checksum: sha1:f596a96ebb6a743302d195c85acfed7d680b74ef pristine_git_object: c52e712492dc8df72376010422ab1206b94c5483 docs/models/operations/getresourcedeploymentdetailarea.md: id: d300ab6d6854 @@ -12100,46 +12642,6 @@ trackedFiles: id: e5b08a917f2b last_write_checksum: sha1:4f3ba727c6cf39e927989d81acc7d31188a4d1cd pristine_git_object: b2e25d5385275f12923f3e26318ea7f52c535145 - docs/models/operations/getresourcedeploymentdetailsource1.md: - id: b08fdc05513b - last_write_checksum: sha1:bce2deb72b47b3ec654c0189902d64d2a139afab - pristine_git_object: 39259b11f58063bba6677a3593b95728b0fadcce - docs/models/operations/getresourcedeploymentdetailsource10.md: - id: b57bb4fa6864 - last_write_checksum: sha1:00bfece82623470f28e43cf98402bb0f43869c97 - pristine_git_object: ec36d5195c20ab22a6cee164e077ab49e8bcfa3a - docs/models/operations/getresourcedeploymentdetailsource2.md: - id: cbb74d5fc090 - last_write_checksum: sha1:fce96948b83859ff5eff8b5037334a96e0abc1c8 - pristine_git_object: 5f197981a769bf6155c358331fd8726b8a051530 - docs/models/operations/getresourcedeploymentdetailsource3.md: - id: 71fc6c9405d7 - last_write_checksum: sha1:444a42c2b0bb9ba1cd4428f0f03dbe449db24dc9 - pristine_git_object: 0aa92223fb3f70fda8afcd2cfd593921a40a6ba9 - docs/models/operations/getresourcedeploymentdetailsource4.md: - id: 2015ab39bc75 - last_write_checksum: sha1:d2b8cfeab234f322628c8c70c42676b4db1c4d17 - pristine_git_object: cdcd0a350a9fc3ac8213366fdb9176b323b187d4 - docs/models/operations/getresourcedeploymentdetailsource5.md: - id: f42b58637461 - last_write_checksum: sha1:0fb67c3d04bc12b8dd3fc97be8be7ac11ed02bc3 - pristine_git_object: 8f9667184b2cecc6cef358ed0ee5fd968ee30464 - docs/models/operations/getresourcedeploymentdetailsource6.md: - id: ad128abf31d1 - last_write_checksum: sha1:3e34cb6e3534dfddc8c4dabd9d527fabdbb6c9c5 - pristine_git_object: e2696dd02adbe3c16a4326ee1852f28ac26dafac - docs/models/operations/getresourcedeploymentdetailsource7.md: - id: 73173ac97c1b - last_write_checksum: sha1:496d0aff570535e02d95f14153d4cf8dfc05b6b7 - pristine_git_object: 1a587281421fdf4729b986e85d4f9acfcfd66277 - docs/models/operations/getresourcedeploymentdetailsource8.md: - id: 8db7816e7e12 - last_write_checksum: sha1:36e754e6363f4abf82d2e98db964038f3f1dd6eb - pristine_git_object: 7cc7c771f2d4311360ccfc7d1d93ec13eab599d5 - docs/models/operations/getresourcedeploymentdetailsource9.md: - id: 60c518ab0299 - last_write_checksum: sha1:7475999560c30bad5b9956daa2bb6634689515fc - pristine_git_object: 6f0dfba9421dd47c566c93f6248489ece17c6095 docs/models/operations/getsetupregistrationoperationrequest.md: id: 3a69e2c89caa last_write_checksum: sha1:aa1e25eb58248ea644317539f52cb74c7d284223 @@ -12148,10 +12650,16 @@ trackedFiles: id: 8672ae2824a5 last_write_checksum: sha1:50521ee526720bd9bf86c51b9ceaa2926098498e pristine_git_object: 788f7fe91a849b7e995956be783fdeaf6e73fd75 + docs/models/operations/getworkspaceinvitationpreviewrequest.md: + last_write_checksum: sha1:5e80028d1fd67c69a5babf7b5bc92d5c74da1371 + docs/models/operations/getworkspaceinvitelinkrequest.md: + last_write_checksum: sha1:ab2b54d1d462878a3d34ae8b1f5d14021f75c88d docs/models/operations/getworkspacerequest.md: id: 2d440111adab last_write_checksum: sha1:9bd48eee245a346140a13d18da26586f755da90d pristine_git_object: d28b181ae80b64e1bfc5cf0be088f2fbc4ec4177 + docs/models/operations/getworkspacesettingsrequest.md: + last_write_checksum: sha1:f32c8adae9bd71364148e01014226e460714a75d docs/models/operations/gitrepositoryrequest.md: id: 8ae0958449e1 last_write_checksum: sha1:f0b82ba5289ebdc6107d5e2f223b8cd7624e5370 @@ -12404,10 +12912,24 @@ trackedFiles: id: b2ab08cef8b5 last_write_checksum: sha1:087691685827ed5355f4f14e9f1b7c7fbe5f4d45 pristine_git_object: 3520cb16dc1ec1b6399528c9816f5c2d073a3d0e + docs/models/operations/health66.md: + last_write_checksum: sha1:fae26d966c242e1cfbde45634aae5b0bd7fc8b0c + docs/models/operations/health67.md: + last_write_checksum: sha1:a14a09a9fec92e44fa20824754b17c6ad38b4b3c + docs/models/operations/health68.md: + last_write_checksum: sha1:78614f3bce62b33c55d1fce8d5f755b6388a22ce + docs/models/operations/health69.md: + last_write_checksum: sha1:27a1cf5169e9224651d3ab88122236b2f0847546 docs/models/operations/health7.md: id: ea61de6f5a6e last_write_checksum: sha1:f4c9134fbe83a17033c83704e92643e2067a835a pristine_git_object: f2b4c5baf495eb438a929d6504c2f9202f161817 + docs/models/operations/health70.md: + last_write_checksum: sha1:ee242447dd681d3dde66120ae4bf06f0581e487e + docs/models/operations/health71.md: + last_write_checksum: sha1:ac867adc82ca26ccf157732cda915813d71b21e7 + docs/models/operations/health72.md: + last_write_checksum: sha1:6650b21e9d1012f752396d8871d1b82bba3bdd95 docs/models/operations/health8.md: id: 49e3fe0fdce0 last_write_checksum: sha1:ff516451c79e9b61456a6805b4ec6036f653dd6d @@ -12418,11 +12940,11 @@ trackedFiles: pristine_git_object: 766e3881e786cac95e351a72b2938a41defb5848 docs/models/operations/heartbeat.md: id: dcf7dc007257 - last_write_checksum: sha1:0128853edbc441902c3595e8aa60a0e8e79d2c2f + last_write_checksum: sha1:ccf4dcc31e71bf13225fa029c3733e9b10786630 pristine_git_object: 270ae0bc90078c7d89f367daf5b204d5244105e7 docs/models/operations/heartbeatavailable.md: id: c8f1c9d95625 - last_write_checksum: sha1:3808b54ee1cc042820d70eb543a45d7cf4ed0e1e + last_write_checksum: sha1:25f5415b9c64a2bf56d17881d625d647f7685ad2 pristine_git_object: bf79ed35835ce8c380366cbe25105dbe04d920db docs/models/operations/heartbeatmissing.md: id: 12c17db62109 @@ -12430,7 +12952,7 @@ trackedFiles: pristine_git_object: 8ff6ab5028dd6e6a2f5fb3e1aeef2e510a9e2556 docs/models/operations/heartbeatunion.md: id: ebff43092c78 - last_write_checksum: sha1:62d3231fd51fc48dc657e9cfdba9f066e902e58c + last_write_checksum: sha1:8ee7f3dbe74ffedca087fdb7f5a1ed381c45c18c pristine_git_object: f0e151c01cbd2e89b00c274d885ce360c7efdea5 docs/models/operations/importdeploymentrequest.md: id: 4f0ad8d4b16f @@ -12524,6 +13046,8 @@ trackedFiles: id: dc344d5b87fe last_write_checksum: sha1:2bef189ed80e65ebec50e2c8b5847a99f126ec5d pristine_git_object: 8071c9470d37b11cb7db0212beb95832f3248ca2 + docs/models/operations/lease.md: + last_write_checksum: sha1:ae380f22f143464809dfd8607d756202c4203215 docs/models/operations/lifecycle1.md: id: 09170ab98c61 last_write_checksum: sha1:5c60d249952304d32fbd6cd21b2792e268696421 @@ -12772,10 +13296,24 @@ trackedFiles: id: 33ca654d5def last_write_checksum: sha1:60df6037003b83a6251f1324aa79af7ab88e2a43 pristine_git_object: e3168536608fd6125c07f24d65870173234e0729 + docs/models/operations/lifecycle66.md: + last_write_checksum: sha1:759efc31cdd788ed1f56da1171aed66a1cb08390 + docs/models/operations/lifecycle67.md: + last_write_checksum: sha1:5b4b735f17275f641c6b13b9b55bccb6b28e4b6a + docs/models/operations/lifecycle68.md: + last_write_checksum: sha1:03e0f408361a2bbd501875b0e51174a869815032 + docs/models/operations/lifecycle69.md: + last_write_checksum: sha1:432491ac7806f96ffe5a2156989b1c67a664d53a docs/models/operations/lifecycle7.md: id: be06552c5a95 last_write_checksum: sha1:203b62497b85499637aeafb7ff7333d2e401ea3a pristine_git_object: a4192d512af357bd6dcd36d644fcda53fa6f7649 + docs/models/operations/lifecycle70.md: + last_write_checksum: sha1:92e096b7594efbd7c045ab35700bfb5a7ea09548 + docs/models/operations/lifecycle71.md: + last_write_checksum: sha1:4e559341079fb700910883ab1a79f90f1003901c + docs/models/operations/lifecycle72.md: + last_write_checksum: sha1:f37fe114f2c8604081b37c2ecda7cd9fb043fde5 docs/models/operations/lifecycle8.md: id: 29d0d291b110 last_write_checksum: sha1:b4b159e18a7bbdfef6803798f96d083da503d542 @@ -12784,13 +13322,17 @@ trackedFiles: id: 1fe62361c2b2 last_write_checksum: sha1:3f19ec169301fed8ff1539cfea84dec952370d8a pristine_git_object: b9b0d6b23c2b2d173e89282c7915e249bf030e0f + docs/models/operations/listagentsessioneventsrequest.md: + last_write_checksum: sha1:4ad8d35d94aa1d0af30a18b8523e869c23a1d294 + docs/models/operations/listagentsessionsrequest.md: + last_write_checksum: sha1:cd1ae458491f3e22e1d8ed0d5482f6c34f272c7c docs/models/operations/listapikeysrequest.md: id: d184dc4cdcab last_write_checksum: sha1:a6be74f445f2498004114364628f31c9b5768480 pristine_git_object: 9cb5b7260776bdc0e09a42e8be6bb42e33b3e4a5 docs/models/operations/listapikeysresponse.md: id: feed1d8bc9c0 - last_write_checksum: sha1:c448c41b1d380583f8c6d9eea8dd2481969c0589 + last_write_checksum: sha1:a01ab00409e20fc19fd21b36bbd12564cf713b65 pristine_git_object: 7b707e1f2c4f66d98066c60c585a4c042e4fcd6a docs/models/operations/listbillingauditlogrequest.md: id: f07e072e247b @@ -12862,7 +13404,7 @@ trackedFiles: pristine_git_object: 6319ff953095be1694e9b824de9b1d562a5ad2b8 docs/models/operations/listdeploymentgroupsitem.md: id: 9a2261451678 - last_write_checksum: sha1:fe1e87339a3f68d4a78ddbe3119a4d6398742583 + last_write_checksum: sha1:97948b0d9ce907a4e7be4f92e6dfb8ecbed030d4 pristine_git_object: 5bf2ef90d681f7d76ab3f77cf5e26baa90c1a9a6 docs/models/operations/listdeploymentgroupsproject.md: id: fc39bb500163 @@ -12874,7 +13416,7 @@ trackedFiles: pristine_git_object: 905ecb6a2489345fa2800c3502085699cbb651dd docs/models/operations/listdeploymentgroupsresponse.md: id: 5e579afb744e - last_write_checksum: sha1:db9accccf1cee07e6b919ddade9dd9cb36a54a4a + last_write_checksum: sha1:c48510492586a77a6b2c3a8fc612dbe646c4f3dd pristine_git_object: e40dcec6f3607a96b16fb15d10de0be487c819ee docs/models/operations/listdeploymentsenvironment.md: id: 0a60c34934d3 @@ -12890,7 +13432,7 @@ trackedFiles: pristine_git_object: 44fe69b8a24ebeac6bc6c7e62ecfae357be40780 docs/models/operations/listdeploymentsresponse.md: id: b3b1e4f8a3b8 - last_write_checksum: sha1:7391b547d30c28179a52e820714f6cc130f3610f + last_write_checksum: sha1:f64e0d325f75bdafa7d2eb2c586745551baae0e5 pristine_git_object: f97f2cb4d91bf889f51e9889538e02317ece4722 docs/models/operations/listdeploymentsstatus.md: id: c99e64ef8b2f @@ -12904,13 +13446,15 @@ trackedFiles: id: c04f9fccf81e last_write_checksum: sha1:57d6b1c574992c157cab6717391909c37ac0aed9 pristine_git_object: 86d53e2967c889ab89b3722f63fc0bc1a906207c + docs/models/operations/listeventsinclude.md: + last_write_checksum: sha1:867c4163d882b5bdb47b342c16c14baf8004620b docs/models/operations/listeventsrequest.md: id: 4c63e4d672e2 - last_write_checksum: sha1:b22ccc8fe7beafa01c56c56b19975ba2ee384bb6 + last_write_checksum: sha1:940b898a2354eb1e1f20b695364b5852202014c5 pristine_git_object: 73dfec390e1140b6b3b5c5714bd98402fa2ce4ad docs/models/operations/listeventsresponse.md: id: 4ce22aaeca78 - last_write_checksum: sha1:6099b79c8d28f6a4aa0a4db3db921d8afedbd769 + last_write_checksum: sha1:255973c4cf04f61fe3660c265d2e558f2002d4de pristine_git_object: 5d6a640d1971fb079d0017e1e400fb00e7870dd1 docs/models/operations/listgitnamespacerepositoriesrequest.md: id: 4c50cbd5efd9 @@ -13008,13 +13552,19 @@ trackedFiles: id: f2ac65d89a63 last_write_checksum: sha1:cefe9d0dd13ac0f2e75e7207a377fa44199fb1fa pristine_git_object: 1d4f0f171642367ca9c6f1a75112ee62b3deb954 + docs/models/operations/listreleasechannelsrequest.md: + last_write_checksum: sha1:8f627adb7fa90ad837ad22d9f487d1369c32652d + docs/models/operations/listreleasechannelsresponse.md: + last_write_checksum: sha1:d88190ea1089bb308b29b9cb6b82e68823ad2c57 + docs/models/operations/listreleasedeploymentsrequest.md: + last_write_checksum: sha1:5d46d92079e6a9a3cd1faa88401e45bfd20f6800 docs/models/operations/listreleasesinclude.md: id: 475e33ee8488 - last_write_checksum: sha1:9837861fbbae2140f52efa5a39a7aaf8b99ed6ca + last_write_checksum: sha1:d8aa725508e81dcd52ce1e72435bc59b085a40a7 pristine_git_object: 1f958a0e30d63f146477ccccf8ee73727706ae89 docs/models/operations/listreleasesrequest.md: id: 5055faa42f8c - last_write_checksum: sha1:b2c6d9bc1c03f1cdc1a75d046b0b83d0f3996845 + last_write_checksum: sha1:2d27b6a3cd25891418b526a7379f55a81ffafcb4 pristine_git_object: 6e361a453e2aceb49431157936d13fe88cd552db docs/models/operations/listreleasesresponse.md: id: fe20d3e71b3f @@ -13052,6 +13602,10 @@ trackedFiles: id: d18e327878ea last_write_checksum: sha1:70cb520a5f4fda88aed9d51591bc31aa08a32fcd pristine_git_object: b2aee4fd68a57f2019a31ed229845ace43a75551 + docs/models/operations/listworkspaceinvitationsrequest.md: + last_write_checksum: sha1:474ac28b6c8bd0a9b04f19f74441eef6051d9aba + docs/models/operations/listworkspaceinvitationsresponse.md: + last_write_checksum: sha1:4a0470371029ec8ec212d5667e7d431b8b9cca88 docs/models/operations/listworkspacemembersrequest.md: id: 33e06e7b1cea last_write_checksum: sha1:c980628a414de1cc0ae5ca7ee2053beee840b7db @@ -13284,6 +13838,14 @@ trackedFiles: id: 006e125a0ce5 last_write_checksum: sha1:7b836fc5948558124880f3cb6b7dbd7843e1eb6b pristine_git_object: f3667c4d22a9bb8ab711a96f11b8e22887694052 + docs/models/operations/model1.md: + last_write_checksum: sha1:f602fb9e0d0b795c05fca70b8d60767b052ccf3e + docs/models/operations/model2.md: + last_write_checksum: sha1:16b1103dd0081716b653ce2e49f232c6f411f673 + docs/models/operations/model3.md: + last_write_checksum: sha1:b760e25232127d78fd6dc350e7b339c7e6f9cc9d + docs/models/operations/model4.md: + last_write_checksum: sha1:b68f4bafcb40ac89fb2553fb9784b1953ffbfa54 docs/models/operations/nodecounts.md: id: b404a2cd1621 last_write_checksum: sha1:4f1f8b14f8c648864c2c8413cbe1d5bc16848fa8 @@ -14240,6 +14802,10 @@ trackedFiles: id: a0b985b6836d last_write_checksum: sha1:9d8b70a5dc04a609a9a8cd79006cd39211a15579 pristine_git_object: 63db62876d03610c5f300745dd958cd2d10860ff + docs/models/operations/promotereleaserequest.md: + last_write_checksum: sha1:b3302d814f8a53ef825d032eb2878546ddae45d2 + docs/models/operations/promotereleaserequestbody.md: + last_write_checksum: sha1:5a7674d138532897241450af0f08f44863de6087 docs/models/operations/providerfleet1.md: id: 943c7de08320 last_write_checksum: sha1:d4ebd91c30ae2f0b7413dcd36d54d3bdbb9c48c1 @@ -14512,6 +15078,14 @@ trackedFiles: id: 4fbcca7c5b4d last_write_checksum: sha1:5aaaf106c06c3d838de16d6ae9af8ef1e80661d8 pristine_git_object: 5b19c62019b9dc24506b5887adda4029fcbb48cd + docs/models/operations/reason66.md: + last_write_checksum: sha1:28b9998fa665c1a4a4942c0342c4525e46b159b9 + docs/models/operations/reason67.md: + last_write_checksum: sha1:ace934bce3511277a29ecee9e20820c52af3852b + docs/models/operations/reason68.md: + last_write_checksum: sha1:88c1ab6cc8600aa1a80d853d388a97a1dd064b77 + docs/models/operations/reason69.md: + last_write_checksum: sha1:31eda7da816f14a5abe611213bf02f7497c53552 docs/models/operations/reason7.md: id: 34465177cd83 last_write_checksum: sha1:4cb68438c78e3bee2859ac0afcb530238e6f4923 @@ -14628,6 +15202,8 @@ trackedFiles: id: c280336b6706 last_write_checksum: sha1:abc2769164220bbe3232adaa68b0d8b1ba99be26 pristine_git_object: cde06c8ba0b2f94da89be8bfde00a2693935f1d9 + docs/models/operations/resendworkspaceinvitationrequest.md: + last_write_checksum: sha1:6dbde74ba86fd80d83ed3147442799efcaa6501d docs/models/operations/resolvecommandtargetrequest.md: id: b14da21efb26 last_write_checksum: sha1:f268ca3c0db0b5857a2e57710dd70d1f13fc850f @@ -14680,6 +15256,10 @@ trackedFiles: id: 6481a25bd281 last_write_checksum: sha1:b1a370bd5100affd314ba83d02a919edead445d8 pristine_git_object: 577ef680977e6c0bdf1e25e0489135e4d437153e + docs/models/operations/revokeworkspaceinvitationrequest.md: + last_write_checksum: sha1:c0795c9c7ebe47a58a0bb886eb333aaa8afe389a + docs/models/operations/revokeworkspaceinvitelinkrequest.md: + last_write_checksum: sha1:7bfcb214f49b439ebbbb54bfc228458a72e7bea9 docs/models/operations/rotatemachinesjointokenrequest.md: id: 495662a04757 last_write_checksum: sha1:c04e0434e9401ba26be9c0aa8ce7be735db7cfc7 @@ -14692,58 +15272,104 @@ trackedFiles: id: bcf983fbb314 last_write_checksum: sha1:a1b8e4ef93724071c1a4f8f85b743bc4fcf08a07 pristine_git_object: d82694736e314191315aa77f65dcbe5b42c954d7 + docs/models/operations/setdeploymentgroupexternalidrequest.md: + last_write_checksum: sha1:840f104983e63a783d6ebd4ecfd2e64f974b157a + docs/models/operations/setdeploymentreleasechannelrequest.md: + last_write_checksum: sha1:5d2c9b4feb3b128c119786d78aad46371e88c965 + docs/models/operations/setdeploymentreleasechannelrequestbody.md: + last_write_checksum: sha1:ffa6424785bacd2ddeaf69a3bfa4b32cbbbefd4a docs/models/operations/setup.md: id: f1a9d176014b last_write_checksum: sha1:7ad92e358e31ec51bbaa3c6cb757b915bd997e0a pristine_git_object: dfe63c2ba7bcb02cf6e83d24dab612cbbf6b85ff + docs/models/operations/slackintegrationchannelsrequest.md: + last_write_checksum: sha1:7d6bed7fd0424bd3d96cbc2ac4a58223200c888c + docs/models/operations/slackintegrationinstallurlrequest.md: + last_write_checksum: sha1:1fc24d5317fa54197b18781211f76bf1646fb5c9 + docs/models/operations/slackintegrationsetnotificationchannelrequest.md: + last_write_checksum: sha1:061c22b947cab472de415a8a4ee67adc546b2c68 + docs/models/operations/slackintegrationstatusrequest.md: + last_write_checksum: sha1:61ff6e556aaf8a704d4864f4dea880d68763c99e + docs/models/operations/slackintegrationuninstallrequest.md: + last_write_checksum: sha1:cd71e2f5ae50fc171b2b0b1e643c3e16d4380a7c + docs/models/operations/sourceenum1.md: + last_write_checksum: sha1:398e53004477041575627ccb6bee704d4eed882d + docs/models/operations/sourceenum2.md: + last_write_checksum: sha1:9d937e7683b7698bee1ba3ff168603d78cd9f564 + docs/models/operations/sourceenum3.md: + last_write_checksum: sha1:81d0e69932b8e472a85e896e5f9c25a49732b349 + docs/models/operations/sourceenum4.md: + last_write_checksum: sha1:f7a35d766a7082f79e826f549effa38a3b56ee3d + docs/models/operations/sourceevent1.md: + last_write_checksum: sha1:4e5f8b1c02165f940f2a5d53d980381c0cee11d8 + docs/models/operations/sourceevent10.md: + last_write_checksum: sha1:e06acf645a4cb79d5fa8277dbfd5b5e68f23ea73 + docs/models/operations/sourceevent2.md: + last_write_checksum: sha1:0f580f49e266683d675e12ab15f25735c15b2d03 + docs/models/operations/sourceevent3.md: + last_write_checksum: sha1:570a964e465b0039eeec0fe2c3414b2fabf168eb + docs/models/operations/sourceevent4.md: + last_write_checksum: sha1:fe3931737230b2910b4d756d51d0d4337cad478a + docs/models/operations/sourceevent5.md: + last_write_checksum: sha1:3fb15b6443e55b082bf207fe0fb43fb29de8d6e9 + docs/models/operations/sourceevent6.md: + last_write_checksum: sha1:76319b1163fdaf32e6d9294d2640767e05d610b9 + docs/models/operations/sourceevent7.md: + last_write_checksum: sha1:91ee5d961c3e5f846de37aa61ec7427f8b1f9d90 + docs/models/operations/sourceevent8.md: + last_write_checksum: sha1:85c7e34b3eb97597800b0fb521392c3f6a1f4c6e + docs/models/operations/sourceevent9.md: + last_write_checksum: sha1:65643aefa1a1a73c6cfa185b298be38cc447a810 docs/models/operations/sourcerepository.md: id: c73e63b96389 last_write_checksum: sha1:ea35fd540877eed44bf5dccd6c7fe1878324c3b1 pristine_git_object: 1133bbacb135ed5bb410a64e50f8270cd79c042f docs/models/operations/sourceunion1.md: id: b994d2520770 - last_write_checksum: sha1:926dfb5bcb47faff37c3accc4e0cfca4e651918c + last_write_checksum: sha1:a681825412e72eade5f208d34bf263d83deab121 pristine_git_object: 3b4bb911c6ccaecf769e4261a973741d59fa1029 docs/models/operations/sourceunion10.md: id: b1661cb1470c - last_write_checksum: sha1:e04bb45f6ace9de1fd0913418b5591112f4a8b8a + last_write_checksum: sha1:7c09614604aae32f8d50e84df3052683998dba6f pristine_git_object: 0a0733f8c04693c43d4eda2dbfdfb2a9a6fada70 docs/models/operations/sourceunion2.md: id: e509437e6050 - last_write_checksum: sha1:e3a83ab83668cdd0fe1e6c8876ce2979945984af + last_write_checksum: sha1:135e9d9d7e3c4560f3eeefdfc27a940a469da581 pristine_git_object: 41a67d8b9de9cad6268f27c038a9cf6ffd9451ad docs/models/operations/sourceunion3.md: id: 09349067ba3b - last_write_checksum: sha1:4a694b8f9065bd11f46e8b600b5a042bf4f9475f + last_write_checksum: sha1:bff664b25902a5f233f65058ba1e59219409f606 pristine_git_object: af83bae0739005c8cddded72233d85deebcf29ca docs/models/operations/sourceunion4.md: id: a3c6d9590707 - last_write_checksum: sha1:d0da231b413f3f40905099f64c58e7a2d56260b2 + last_write_checksum: sha1:5ad1a8a8b8cbf29f1735aaa44d1c05fd3c24ad61 pristine_git_object: 9ab73c065813ebfc5b205705f4306844b5c15593 docs/models/operations/sourceunion5.md: id: 5aac063dde79 - last_write_checksum: sha1:c1af60066b9cef5a26a9d69787d4442d3ec32f8e + last_write_checksum: sha1:c0341e475caa7f7257b2b96661acf5fcd34b7536 pristine_git_object: c67edd106d64c7b49746b4ef66e055ecf3105a21 docs/models/operations/sourceunion6.md: id: 3b0baad8613e - last_write_checksum: sha1:80b076fe284a26338292362f43f51c9452837455 + last_write_checksum: sha1:5ce2b8fa80f89c6cea08d8774a12a70e7aeea39b pristine_git_object: a1a94ebcddb0aeeedc5f09de64c848c06e1f2575 docs/models/operations/sourceunion7.md: id: 8702c93ad1db - last_write_checksum: sha1:6e9273a86f51b4be621b6f550b792b62547c9a02 + last_write_checksum: sha1:d7403a9336caec792a108b4bbfe9d6a4c0ba4650 pristine_git_object: 055d78a5372560d644d4bec95b804d8b2bb20515 docs/models/operations/sourceunion8.md: id: 1ba9449f901b - last_write_checksum: sha1:f2765ef8ec7e67399d7ef2607031ce065ed0a805 + last_write_checksum: sha1:8b4b0fffa30512863f2d02499084f4eeb4fd2381 pristine_git_object: 4e35a57c369f5a2be6233b993ae8c984865cd663 docs/models/operations/sourceunion9.md: id: d6bdf1ed638a - last_write_checksum: sha1:fa51344d2f718e1c790a35a3314bec0d61d7ef63 + last_write_checksum: sha1:f1836edb8568179922761bd8b62b7bb4eddc1112 pristine_git_object: 40daacc40fe5a83bfe02c36718b0ac9819da7a7c docs/models/operations/state.md: id: c0cd319b1611 last_write_checksum: sha1:90b5f0bac37cd520c0b8a72471da2d0439f9477b pristine_git_object: 32f441444d78c38f3b6ba2cfcc189668e684ec2c + docs/models/operations/stopagentsessionrequest.md: + last_write_checksum: sha1:88861ee38504a4824ffaa0dec83de445d4aa52fa docs/models/operations/subject1.md: id: 89eba340e4c4 last_write_checksum: sha1:8f3113f79c632d00d904d92dac7ac3622f4e75fe @@ -14804,6 +15430,10 @@ trackedFiles: id: edadcc4050dc last_write_checksum: sha1:3f82af0c8f3ed101fa707ec4ab4c2a134a6e9386 pristine_git_object: 0b1006b84447c5dac09d351ceb076722c52ba643 + docs/models/operations/syncrenewrequest.md: + last_write_checksum: sha1:bff8f09ce5b8597b6ed861037cd6b92912531369 + docs/models/operations/syncrenewresponse.md: + last_write_checksum: sha1:e43dd124364823e2f2f7cc3bd733574b622cbc01 docs/models/operations/template.md: id: acafda6dbc96 last_write_checksum: sha1:81d3c0b68d4ad9af7a41a8e83c9dab91a0009021 @@ -14884,6 +15514,8 @@ trackedFiles: id: 71110f76d84d last_write_checksum: sha1:dca3de5b9583e33468374c90bdd83f1c77d35b5c pristine_git_object: 1ee9a8397354f6a73a960e0ba2bb548e9ce40a58 + docs/models/operations/updateworkspacesettingsrequest.md: + last_write_checksum: sha1:4fa039dfe0f24fe1e29ec7768a5291bfbb4877ad docs/models/operations/usage.md: id: 735448cf5655 last_write_checksum: sha1:38c2282c3dcfd3e0e290400eec06cde9229c53ad @@ -15028,6 +15660,8 @@ trackedFiles: id: 99b5d3b1e39f last_write_checksum: sha1:18a57ed5a7087d8e323eb07f408c297424d10ebd pristine_git_object: cbfaa38fa310d1fef68907a8791a784a5f0587c3 + docs/models/outcome.md: + last_write_checksum: sha1:4bc523ebbb02d3ca2f765177adc72ee4f3a1610b docs/models/outputscli.md: id: 3a5790fb0c70 last_write_checksum: sha1:e67b37bb3e5b7f7ef5e71089e0e45a554edd13d7 @@ -15222,13 +15856,61 @@ trackedFiles: id: 42a02954e632 last_write_checksum: sha1:51e4c7011b9aac5c9379b7c2db16ba7c8ed4c268 pristine_git_object: 7a364fa28b6981d928fd272e920caa53dfded6b2 + docs/models/pendingapproval.md: + last_write_checksum: sha1:7c325bea999c38c22a2d6eae41a265deb7ecc74c + docs/models/pendingpreparedstackextendconditionstateresource.md: + last_write_checksum: sha1:313ac3aecfa02d60230759a120f2b234cc0f7474 + docs/models/pendingpreparedstackextendconditionstatestack.md: + last_write_checksum: sha1:c615ae462eb3c7810a3c66a42090e19e1ff0cc31 + docs/models/pendingpreparedstackextendstateawresource.md: + last_write_checksum: sha1:8daaaae5ab8986e73a5d0db080f00fba205ca5c8 + docs/models/pendingpreparedstackextendstateazureresource.md: + last_write_checksum: sha1:001aa577bf051ba9db69f18239c070f237eb69eb + docs/models/pendingpreparedstackextendstategcpresource.md: + last_write_checksum: sha1:9d51d3414ebe28a32ab6f28b953ac91945998ab5 + docs/models/pendingpreparedstackextendstateresourceconditionunion.md: + last_write_checksum: sha1:734cab2fc3562262f2b0cb5b781519a37e7f421f + docs/models/pendingpreparedstackextendstatestackconditionunion.md: + last_write_checksum: sha1:3cbe65eb16710f50b4f71ea975912e12a0814b56 + docs/models/pendingpreparedstackoverrideconditionstateresource.md: + last_write_checksum: sha1:7be8fd02d63b4887d1a4590915317540a74ed8d7 + docs/models/pendingpreparedstackoverrideconditionstatestack.md: + last_write_checksum: sha1:dbf41214b1f345e3ea3c404675e488c60c5ed6ba + docs/models/pendingpreparedstackoverridestateawresource.md: + last_write_checksum: sha1:63577656d48d7a833cda1ac07adb4457b3222b8d + docs/models/pendingpreparedstackoverridestateazureresource.md: + last_write_checksum: sha1:9fd9c1b4f99114eff228cc614a3d798f8fe205f4 + docs/models/pendingpreparedstackoverridestategcpresource.md: + last_write_checksum: sha1:359686e9ecfa5b32c8b8e2571ab4469ff847bea6 + docs/models/pendingpreparedstackoverridestateresourceconditionunion.md: + last_write_checksum: sha1:ee7b65d3926f46aa8b17e724f43ac757026c5fc9 + docs/models/pendingpreparedstackoverridestatestackconditionunion.md: + last_write_checksum: sha1:0df42378de89cb155948ed15fdf21b69f9b4a349 + docs/models/pendingpreparedstackprofileconditionstateresource.md: + last_write_checksum: sha1:c391b75e6c41f4e62992041d985ba4dc69942ac6 + docs/models/pendingpreparedstackprofileconditionstatestack.md: + last_write_checksum: sha1:876cb2251315cc7d08941c37140e4c648168e27d + docs/models/pendingpreparedstackprofilestateawresource.md: + last_write_checksum: sha1:734acc53f7e88f87bd5077079f8f43863d51e640 + docs/models/pendingpreparedstackprofilestateazureresource.md: + last_write_checksum: sha1:fe99693dc802226d766846614683de8c34d32b76 + docs/models/pendingpreparedstackprofilestategcpresource.md: + last_write_checksum: sha1:6f9316fd9e918af3c002018472edefd43749f33d + docs/models/pendingpreparedstackprofilestateresourceconditionunion.md: + last_write_checksum: sha1:f009ea358fcce9092ca45af5cbae76753bd98fcd + docs/models/pendingpreparedstackprofilestatestackconditionunion.md: + last_write_checksum: sha1:5a5882290107fbab4057228deea302442b4f5bc2 + docs/models/pendingpreparedstackstatekind.md: + last_write_checksum: sha1:2347da52c6c1d9db424b28c9becff558801a8b26 + docs/models/pendingpreparedstackstatelifecycle.md: + last_write_checksum: sha1:67affcec1d01aaca91ffb063357812b4c9bc94a1 docs/models/permission.md: id: 2e72d664ef50 last_write_checksum: sha1:8d33edaed95aef37cea86679d61b9d1efd8e5d88 pristine_git_object: a546c21cd91233953ff37669d97f19c490961ee4 docs/models/persistimporteddeploymentrequest.md: id: 71d4e97f3983 - last_write_checksum: sha1:c7b52f363c965446456cbc68315df2e986bdcc05 + last_write_checksum: sha1:6b55e557035099eb5bd53ccfe9ddad9eeb0f8745 pristine_git_object: 44116d127132c235e810c2251614d9501ca4274d docs/models/persistimporteddeploymentrequestaws.md: id: 71c80e790189 @@ -15318,38 +16000,10 @@ trackedFiles: id: cd06cef0209b last_write_checksum: sha1:368b7638fb1643c013c947962ec8514b18a2f6c1 pristine_git_object: ce8e1970212bc3a71c329a2c0b56aaf79aa05376 - docs/models/persistimporteddeploymentrequestconfig.md: - id: 0520c72c9a8d - last_write_checksum: sha1:b76565dfc5125c4b9a23a4da4597eb2d011152c4 - pristine_git_object: ad6d68fbad0cdf1955272359fc7c4e0884f3a137 docs/models/persistimporteddeploymentrequestcustomdomains.md: id: 13d3fb599bee last_write_checksum: sha1:ed469b64206fe9913dc40ad7dd996124272022e5 pristine_git_object: 0b1950e841369e76d3ab6ab608ca9ec8cb575a46 - docs/models/persistimporteddeploymentrequestdefaultboolean.md: - id: d71cd49ccb59 - last_write_checksum: sha1:0ba6650e8d587290bc7a961796652278fb2ce2ae - pristine_git_object: a911a6b611ce8d903d9c8ddbda607eb40106bcaf - docs/models/persistimporteddeploymentrequestdefaultnumber.md: - id: 79afb67714e0 - last_write_checksum: sha1:12568014e02153c3522c21b684aa4591894d146b - pristine_git_object: e6282255759f89721f7c0e98387e98fa29e46743 - docs/models/persistimporteddeploymentrequestdefaultstring.md: - id: 3e96b6ffe3e0 - last_write_checksum: sha1:f5ff4eb20f7b6e3dd3711edcc94f78176afab85e - pristine_git_object: 767a64737f342e8c3b6053c0a6b31466b51f8ddb - docs/models/persistimporteddeploymentrequestdefaultstringlist.md: - id: 1732f8375318 - last_write_checksum: sha1:206b36e16d13e320a96884231acb5ef3861e1725 - pristine_git_object: 423e67a11d9f972883addd15225e79b32da40206 - docs/models/persistimporteddeploymentrequestdefaultunion.md: - id: 04a6f4e20a1f - last_write_checksum: sha1:4e6ed2e94430172e013a15490dbde6b604dffd46 - pristine_git_object: f5662ffa3d37a0ad99f0dc1a6daf588e36fdaa5a - docs/models/persistimporteddeploymentrequestdependency.md: - id: 84e00b45fea3 - last_write_checksum: sha1:843fac1c4555415858e6de01cb237c9c91d77524 - pristine_git_object: b644227c268a5307fb90134d38bb535888f99998 docs/models/persistimporteddeploymentrequestdeploymentmodel.md: id: "506639470138" last_write_checksum: sha1:3692109e4b52d40dedf308e80c1f5b8af9524886 @@ -15374,10 +16028,6 @@ trackedFiles: id: e0453842ec22 last_write_checksum: sha1:194717353f87e3d20afa542a5af3ad6589ffd3b4 pristine_git_object: f5c46ce17fbcd15d3d4947e0da28da3ed1e59965 - docs/models/persistimporteddeploymentrequestenv.md: - id: d2f835add57d - last_write_checksum: sha1:0faea75ea69e1ca659021a25962532623345d814 - pristine_git_object: ac5a49202ab2ad2f0dd06d08d20964a080655d18 docs/models/persistimporteddeploymentrequestenvironmentinfoaws.md: id: 89df8c93ad43 last_write_checksum: sha1:26d54fce34bdd4485d8feb1aad5da6e91811ea1d @@ -15430,102 +16080,18 @@ trackedFiles: id: 186860638b50 last_write_checksum: sha1:603d70dc2aaa51335bdb0ca6ddc5c7b125e8bae2 pristine_git_object: bbff9e288b06cb17224ccf1baab4e207b0dbc857 - docs/models/persistimporteddeploymentrequestextend.md: - id: 85b39ba06dd9 - last_write_checksum: sha1:1f3cce99401ce5ad63dc066f320027e8b256b898 - pristine_git_object: 870ab796df40bbb62a469f453d99b3784c73fcc1 - docs/models/persistimporteddeploymentrequestextendaw.md: - id: 271e55a5f045 - last_write_checksum: sha1:eb7d5b12a6b83f7d4f4ffe948f499a123eb28676 - pristine_git_object: 7179310b6f24934592ae39befd7834674490159a - docs/models/persistimporteddeploymentrequestextendawbinding.md: - id: a18f04948930 - last_write_checksum: sha1:3ba1b98d0deac149da06899ad484bb0c8b146f15 - pristine_git_object: b67a528297e2d187f5290c150d36073d1b89b6fb - docs/models/persistimporteddeploymentrequestextendawgrant.md: - id: 7fc51119feec - last_write_checksum: sha1:1f7d41285080cbcb6b131123070c080875cb173e - pristine_git_object: bdabd105d648a12c1b1fb35123e74b5e3b0f1d7e - docs/models/persistimporteddeploymentrequestextendawresource.md: - id: 73456214f8fe - last_write_checksum: sha1:a1130927fa29f39c79dcf7d8d6a2fc8f1ef22f0d - pristine_git_object: c40021c9e6d445f45653035af2922d37c892864f - docs/models/persistimporteddeploymentrequestextendawstack.md: - id: 0f309771957b - last_write_checksum: sha1:9842b302fd5a0dbe976aeba166304c95c3b26b7b - pristine_git_object: 785a29ec037072adc33c2a02a3768fe220f7a419 - docs/models/persistimporteddeploymentrequestextendazure.md: - id: d6963429361d - last_write_checksum: sha1:98155f8750fb6979af405abdb464fd2d498b1670 - pristine_git_object: b5242d32ae2d20d2652622561c409c1a48042d01 - docs/models/persistimporteddeploymentrequestextendazurebinding.md: - id: b8c321d67dde - last_write_checksum: sha1:42fcbac97269db25b0d7372414ed411807237f4d - pristine_git_object: 72a5c791547462596a3256f2b2cfb676f71cbcda - docs/models/persistimporteddeploymentrequestextendazuregrant.md: - id: ca979db0aadf - last_write_checksum: sha1:506c1803337bf436a587ed78205b5d0c5ca236c5 - pristine_git_object: a7168ff4b3391195c6fd58f0fafa5b5fbc24fe72 - docs/models/persistimporteddeploymentrequestextendazureresource.md: - id: 41b8969ee5d9 - last_write_checksum: sha1:a0493e83f2d9097a550282ebd8920b1ac9ff237c - pristine_git_object: f5e15a8bf143f905dfb3d260787776e4711d709a - docs/models/persistimporteddeploymentrequestextendazurestack.md: - id: 9ee48160d542 - last_write_checksum: sha1:3deef2dea5aa5a4da5e54dc6c2272c76a5b12b5f - pristine_git_object: 01f13db62961d36e795991c975d8f8d1a8ec04a2 - docs/models/persistimporteddeploymentrequestextendconditionresource.md: - id: f8e2812167d0 - last_write_checksum: sha1:a76d07c177e0e5eef591b6f388bf4b46a753adbf - pristine_git_object: e032fa38868884e2758abe2633cb67fbaac7db70 - docs/models/persistimporteddeploymentrequestextendconditionstack.md: - id: f29a35212807 - last_write_checksum: sha1:d0f4459ddd0db2ffe51f738df5ebfc8b7a2f4126 - pristine_git_object: 4b46d24b90d221afef3717860064b718223b7960 - docs/models/persistimporteddeploymentrequestextendeffect.md: - id: c156fa433cbd - last_write_checksum: sha1:9165d79f7f7c3f7c7d534e4203eb66eb8c167755 - pristine_git_object: acdf5248fd689b84e9da83b18df5c1c40b89ab4f - docs/models/persistimporteddeploymentrequestextendgcp.md: - id: 8113716e13fc - last_write_checksum: sha1:c9d50c1c0c10a9690c70561f8d81b8bf479ff94a - pristine_git_object: b82b3e8e3037eb2a999800b1c36bbe91d2c4020a - docs/models/persistimporteddeploymentrequestextendgcpbinding.md: - id: 2e7b1040c4e6 - last_write_checksum: sha1:b33ba23b8873a894a97666d93586e6a39e140f54 - pristine_git_object: dcc67721863548f74bc8f6267491298e1ee3cc88 - docs/models/persistimporteddeploymentrequestextendgcpgrant.md: - id: 49972082d0e8 - last_write_checksum: sha1:18a5da61755d48d3a55c361700da753c529c12ea - pristine_git_object: 867fa606125c7ec3bd5cb822944b2f14da8b4b6a - docs/models/persistimporteddeploymentrequestextendgcpresource.md: - id: dba500cdc83a - last_write_checksum: sha1:2d3e4ea956a0e138d784c55bf5795ccc45fddb7e - pristine_git_object: 641941fe3af33920227be423c5225822654140b4 - docs/models/persistimporteddeploymentrequestextendgcpstack.md: - id: f7624ebc5346 - last_write_checksum: sha1:4216dd8d973071db7adb736b38278f27f4d69c32 - pristine_git_object: 2ba40cf333407c4479bb90f70842df83ba3c94c9 - docs/models/persistimporteddeploymentrequestextendplatforms.md: - id: 9f887def2431 - last_write_checksum: sha1:82f456b1d3d1ed9a11a59f844ae5a8b52a441cea - pristine_git_object: 62ac2d6521b9133ba47f95ad42ab0e84c6a8b5cb - docs/models/persistimporteddeploymentrequestextendresourceconditionunion.md: - id: aa0745ec313c - last_write_checksum: sha1:a0920cfd32b36c9ea66cdd02a5b15ab7787046d3 - pristine_git_object: ca29722205abc8282eced9629251517ed476129e - docs/models/persistimporteddeploymentrequestextendstackconditionunion.md: - id: 0b2045123583 - last_write_checksum: sha1:ea317371568b3c4459276f3d6872a079ff170c4b - pristine_git_object: 6afac15ea3605dac60f4f87f67912098d0d0552a - docs/models/persistimporteddeploymentrequestextendunion.md: - id: 93226f0852c0 - last_write_checksum: sha1:577724dced49176970a52e0e15cedd1f2a03239b - pristine_git_object: e958dade5a9717cc94e2d6a40c719f75e6e5ac40 docs/models/persistimporteddeploymentrequestexternalbindings.md: id: 2b49e9ddfb71 last_write_checksum: sha1:dba457e382e9f5f9c78305556feb75944b6896b3 pristine_git_object: 0feba2548224165d15388ad0b2c5dcf2a9143400 + docs/models/persistimporteddeploymentrequestfailuredomains1.md: + last_write_checksum: sha1:b3a30a74ecac6c3e3323c8b3076a30d7afba795d + docs/models/persistimporteddeploymentrequestfailuredomains2.md: + last_write_checksum: sha1:c274f5283c99000ee507c6ae7086e720e6904893 + docs/models/persistimporteddeploymentrequestfailuredomainsunion1.md: + last_write_checksum: sha1:6f1e69235bf348450d5b82d2abac83d3f88c3fea + docs/models/persistimporteddeploymentrequestfailuredomainsunion2.md: + last_write_checksum: sha1:a83dd3bdeba22b523705b6908e916053a1809c72 docs/models/persistimporteddeploymentrequestgcpstacksettings.md: id: 34a186561707 last_write_checksum: sha1:21647325fed401d162086e681ff78ba99d6b274e @@ -15538,14 +16104,8 @@ trackedFiles: id: c2c0b32243ab last_write_checksum: sha1:d8da47a15f9fa9d1be6fb7a9920e94f8eb839db2 pristine_git_object: fd9de276977a10f05f5f675269b5ca5884ef196d - docs/models/persistimporteddeploymentrequestinput.md: - id: 7fcc326e5f23 - last_write_checksum: sha1:cb5545ea04386d5de33f43b8372327d5eb17a88a - pristine_git_object: 8c9d385289defe0aaccb71d333d20cb31fb5ec77 - docs/models/persistimporteddeploymentrequestkind.md: - id: 7282fe9e004f - last_write_checksum: sha1:933efc140e770af5352bd9fbe94a8982e9356355 - pristine_git_object: d4e8d9aef8d81d706fd99dbf748073bf594311c1 + docs/models/persistimporteddeploymentrequestinitialsetupauthority.md: + last_write_checksum: sha1:4e4e118afe443ae8f0ea353fcc6ea47f637ec5f6 docs/models/persistimporteddeploymentrequestkubernetes.md: id: 496fe1441170 last_write_checksum: sha1:2a3951c0b426af06e473266d38db28309edb2f71 @@ -15554,18 +16114,6 @@ trackedFiles: id: 92b2149f48f2 last_write_checksum: sha1:a00c510a2e1ca2a44d016d8de9326eac57d7471b pristine_git_object: 8cf9d02a82a5a06985288eb6212490505540b7c3 - docs/models/persistimporteddeploymentrequestlifecycle.md: - id: c181450e112c - last_write_checksum: sha1:007ea9aec23c0178820da6580a1954e1f5028001 - pristine_git_object: 69b05588132164af2936aefb41b214b5dbddb137 - docs/models/persistimporteddeploymentrequestmanagement1.md: - id: cd94c8469ca3 - last_write_checksum: sha1:697ea1501659c71bf845f785562080a056e1b712 - pristine_git_object: a2c2316734d08a5169a39de6a9981bef6c7be5eb - docs/models/persistimporteddeploymentrequestmanagement2.md: - id: 8815bfa283e9 - last_write_checksum: sha1:3124ec90273d8094bc38771adb93c51daf2d8cae - pristine_git_object: fe1ef2b9d580a928695f1e8d008c386c3d511fda docs/models/persistimporteddeploymentrequestmanagementconfigaws.md: id: 2f6af38b391b last_write_checksum: sha1:a0ea6f83e56467f87c3a5bc5d9e5046e2e4fd9c1 @@ -15586,14 +16134,6 @@ trackedFiles: id: f6bcbd686dec last_write_checksum: sha1:11e2d0bdf52553bcda7b05ca1a212b61aee16e33 pristine_git_object: f52ecc0cf72c10c97abba43965dbaf41aa493b41 - docs/models/persistimporteddeploymentrequestmanagementenum.md: - id: f4c6e32fc7b0 - last_write_checksum: sha1:c1129020fa75574ddf0a12820fd070e016ab84b1 - pristine_git_object: 790734b2a47338a92f1d882de094e4b8b83f9b66 - docs/models/persistimporteddeploymentrequestmanagementunion.md: - id: 3514fea233be - last_write_checksum: sha1:b2461de1a4af8d934693b7f3992f9ca867699cee - pristine_git_object: a3e942d6d5d7d4b17e84299ebca1e4c9c98d9be1 docs/models/persistimporteddeploymentrequestmodecustom.md: id: ceec0ac9602d last_write_checksum: sha1:d7e4931fbb73fb57a91ef160b63f78997bde4068 @@ -15638,106 +16178,208 @@ trackedFiles: id: bfb991d00fe8 last_write_checksum: sha1:059a464a62db796d951c30dce7f1d7be674f8fcd pristine_git_object: 95d10f66981fc7fc451a48f065e5e4d4352db919 - docs/models/persistimporteddeploymentrequestoverride.md: - id: 801619e9a993 - last_write_checksum: sha1:699338edba3a6ba474826e80f81b0f6d4913d163 - pristine_git_object: bd8c9ae0c755b5ff2a33409b67bb329e4833abd8 - docs/models/persistimporteddeploymentrequestoverrideaw.md: - id: 7bf302b56512 - last_write_checksum: sha1:2cfc344d009e84cbb8a67bcf9983f42a97cf9f80 - pristine_git_object: 8933a5830e1d8b177929459ecda12be0d93842a6 - docs/models/persistimporteddeploymentrequestoverrideawbinding.md: - id: 403153c57b75 - last_write_checksum: sha1:30eb0adfbfb8fef53f300f0054f44ef720bb406e - pristine_git_object: 6f784ad5cedd56bd0ce4f4b1bffc75759962bec2 - docs/models/persistimporteddeploymentrequestoverrideawgrant.md: - id: 390b2d1211f9 - last_write_checksum: sha1:2e349eb962adffd97b23e45dee2bd93f09c60205 - pristine_git_object: 190763a27f94aabb1500d91cb6210998cd3f993d - docs/models/persistimporteddeploymentrequestoverrideawresource.md: - id: f5fda334b25c - last_write_checksum: sha1:ce831215f4cd2bf3940da1799117fb39bacf742a - pristine_git_object: 7125413eb4da984eb851d26bdbcde292f11701f7 - docs/models/persistimporteddeploymentrequestoverrideawstack.md: - id: ac132112a127 - last_write_checksum: sha1:4aa656411f9ab99d1c2633c07076fbf0e3e79ad2 - pristine_git_object: 5be49766d695ae9ffb013a552216c6114b076749 - docs/models/persistimporteddeploymentrequestoverrideazure.md: - id: 609e299f7ec9 - last_write_checksum: sha1:8c45c814fac9788a370de9bcc369a95c2ab0c2eb - pristine_git_object: db0b731e405ca52d7efecc453560906792fa8456 - docs/models/persistimporteddeploymentrequestoverrideazurebinding.md: - id: 879a7a5a229f - last_write_checksum: sha1:ae7448b7b4c71cfba1734a295cc8d9f4193f3bdd - pristine_git_object: 6e4b52f753bf862ee3ca98de15563aec8a0bdf61 - docs/models/persistimporteddeploymentrequestoverrideazuregrant.md: - id: 80c55fdce0ac - last_write_checksum: sha1:6489311564a2ad2e8c925f473f400b6606cb8e3f - pristine_git_object: 0b99662dde9ea2edf4cd152c2b75bc8d9877f4fd - docs/models/persistimporteddeploymentrequestoverrideazureresource.md: - id: bea58a5b9997 - last_write_checksum: sha1:519bbc1d684b5bd5c1a9e4b53597b89daf553857 - pristine_git_object: 80d38612dad9f1bd1f26b15e038922e6d9f0a99d - docs/models/persistimporteddeploymentrequestoverrideazurestack.md: - id: 69f0e9e83ac9 - last_write_checksum: sha1:b884c988e8e2e27a3f84752fe7e75f110eb79252 - pristine_git_object: e09031a6016679528c18e91483ba8ad371b963af - docs/models/persistimporteddeploymentrequestoverrideconditionresource.md: - id: 689041e87a5e - last_write_checksum: sha1:962f2742586c341b7d6606deca6574c319ecfabb - pristine_git_object: 691df761619483d918c080b99a1bbea881a55f26 - docs/models/persistimporteddeploymentrequestoverrideconditionstack.md: - id: 9cdb998e6d4e - last_write_checksum: sha1:cd39d709412896d3e6f3b2839d64a8138aa087be - pristine_git_object: 5faf319e0474343ca110e47fc29e1745f17d4080 - docs/models/persistimporteddeploymentrequestoverrideeffect.md: - id: b62c595cf147 - last_write_checksum: sha1:47474d7f6a4b85468a2ae6b45e05800df008a667 - pristine_git_object: 529c586f0ff67d7614e7206afeb53df3a6e2b2b6 - docs/models/persistimporteddeploymentrequestoverridegcp.md: - id: 43c302b576c7 - last_write_checksum: sha1:f7b4c8975a0a4181ba18d8d395fbfe11a814586e - pristine_git_object: af12cc00c1bab960c2c686dd32a1b87b8e7f4a9f - docs/models/persistimporteddeploymentrequestoverridegcpbinding.md: - id: a6064a8de451 - last_write_checksum: sha1:88818544551d40334e13fc7ec9a05d2e5277f862 - pristine_git_object: a2522180095bf943eef733ee682158581813764a - docs/models/persistimporteddeploymentrequestoverridegcpgrant.md: - id: d6535cef5dfa - last_write_checksum: sha1:fcfd62eadab70148e5c8ea1a61e34ea7d0115750 - pristine_git_object: ab85d1295ed9ef53ab84e92a7cbc90533f586d68 - docs/models/persistimporteddeploymentrequestoverridegcpresource.md: - id: bdc0a88f7b38 - last_write_checksum: sha1:b3d74fc0a0f9d8cdcd99f952f310f3e75ab4cc82 - pristine_git_object: 4e7a03ae7737bb6c497e5b5c1049200da7e1ba29 - docs/models/persistimporteddeploymentrequestoverridegcpstack.md: - id: 2b0ba8d1e020 - last_write_checksum: sha1:1f45ec36e8fadbc0e801494a36fd3704ab0de5df - pristine_git_object: 36c31a9d38bd0ca8ea0026235dd6448ec788d60e - docs/models/persistimporteddeploymentrequestoverrideplatforms.md: - id: 2d4e11b2e54a - last_write_checksum: sha1:04671f3788a2d8e81e2143193742484c35de3c01 - pristine_git_object: ec39dabd21b55e7f8bc63679a8e774d32f54efae - docs/models/persistimporteddeploymentrequestoverrideresourceconditionunion.md: - id: 7ddec4dd2de1 - last_write_checksum: sha1:fe8c8818a39d850c55fe2b8e73aa15c7d746cb35 - pristine_git_object: d0d7be87ffb195074319442e28cdbc089d5b2a9d - docs/models/persistimporteddeploymentrequestoverridestackconditionunion.md: - id: 631602ee62b5 - last_write_checksum: sha1:15800f353f26f3a25e28c0b32819db3bf8884a6a - pristine_git_object: 79c50048dea69a5faae385be51e403b31ca60c12 - docs/models/persistimporteddeploymentrequestoverrideunion.md: - id: 32fcdb85e31d - last_write_checksum: sha1:f5b4a2b90307257a38045841f0a42abf9d313851 - pristine_git_object: 39140970f4f8410aac12dcac59a9b5fe5ccb6d1a docs/models/persistimporteddeploymentrequestownership.md: id: fb60a9d2a7b0 last_write_checksum: sha1:c41fdda61ec64b843ef93fada0db60a99c897f6f pristine_git_object: c7b6c6c4fbc054b5df4891bdb8c8a1bb1bd3a480 - docs/models/persistimporteddeploymentrequestpermissions.md: - id: c28928c25df3 - last_write_checksum: sha1:f69e40d623a22d4d46f492ccf237d801957a1c84 - pristine_git_object: 070756002cad6dcb2aab2fae992375a73eac81ec + docs/models/persistimporteddeploymentrequestpendingpreparedstack.md: + last_write_checksum: sha1:357e380fde81eb0a75c7a73a498a85b602f92440 + docs/models/persistimporteddeploymentrequestpendingpreparedstackconfig.md: + last_write_checksum: sha1:55d6f23268eff372f15da4997d6f0991a92201f0 + docs/models/persistimporteddeploymentrequestpendingpreparedstackdefaultboolean.md: + last_write_checksum: sha1:fdec68b0e26cb05636b3ff82a3dab0ae6400498e + docs/models/persistimporteddeploymentrequestpendingpreparedstackdefaultnumber.md: + last_write_checksum: sha1:6cc529ef181484d7afa95427ffca54474f8f25a5 + docs/models/persistimporteddeploymentrequestpendingpreparedstackdefaultstring.md: + last_write_checksum: sha1:b13f1de51453fda9c0f272b740c660de7e9dc59e + docs/models/persistimporteddeploymentrequestpendingpreparedstackdefaultstringlist.md: + last_write_checksum: sha1:c606bbca7f2d05c0926654713df21ddbaacd0792 + docs/models/persistimporteddeploymentrequestpendingpreparedstackdefaultunion.md: + last_write_checksum: sha1:62138838ce47e5e9b4a89257c87560c448608cbb + docs/models/persistimporteddeploymentrequestpendingpreparedstackdependency.md: + last_write_checksum: sha1:1fc70c6c6012361069b85f7ea2a197782744f5f3 + docs/models/persistimporteddeploymentrequestpendingpreparedstackenv.md: + last_write_checksum: sha1:cb06b8a9aa6d6bdeaee656ab9cd888f7ff2ff036 + docs/models/persistimporteddeploymentrequestpendingpreparedstackextend.md: + last_write_checksum: sha1:40b8a8f41558662d58e626f0c601cca44f2a16e8 + docs/models/persistimporteddeploymentrequestpendingpreparedstackextendaw.md: + last_write_checksum: sha1:7d727438ccc51470231b1fa85a936569a5ca82d0 + docs/models/persistimporteddeploymentrequestpendingpreparedstackextendawbinding.md: + last_write_checksum: sha1:b8349bd2bfd6d9fbb35b4529dc795fd11eab9ba9 + docs/models/persistimporteddeploymentrequestpendingpreparedstackextendawgrant.md: + last_write_checksum: sha1:9e93d565539384f823d4ea10bcbc6dcb32db4aeb + docs/models/persistimporteddeploymentrequestpendingpreparedstackextendawresource.md: + last_write_checksum: sha1:1e62caefcbd6cbb798bdf91f8d34f154af3e9d8b + docs/models/persistimporteddeploymentrequestpendingpreparedstackextendawstack.md: + last_write_checksum: sha1:0dc8ddd324aad8c261fc7a76080950dee10c73a2 + docs/models/persistimporteddeploymentrequestpendingpreparedstackextendazure.md: + last_write_checksum: sha1:8ce7e691eed14358bd8e4c70cbe41a2c2a95ac23 + docs/models/persistimporteddeploymentrequestpendingpreparedstackextendazurebinding.md: + last_write_checksum: sha1:0e106e4acf3b03f2a89409e25e30675306fc04b9 + docs/models/persistimporteddeploymentrequestpendingpreparedstackextendazuregrant.md: + last_write_checksum: sha1:9d30b24bb6fc4e189e5facd1f661f57e738394a3 + docs/models/persistimporteddeploymentrequestpendingpreparedstackextendazureresource.md: + last_write_checksum: sha1:3de9e8787b30396e91b340581f09a5ba0c6ef908 + docs/models/persistimporteddeploymentrequestpendingpreparedstackextendazurestack.md: + last_write_checksum: sha1:1dde28d9a0859905ceaeb43eed221e18d5e63862 + docs/models/persistimporteddeploymentrequestpendingpreparedstackextendconditionresource.md: + last_write_checksum: sha1:59f153b6f8fa527c78e6b0b84aa4247911179b5b + docs/models/persistimporteddeploymentrequestpendingpreparedstackextendconditionstack.md: + last_write_checksum: sha1:75f937f135d26ea31a3a87308cf815d38e133526 + docs/models/persistimporteddeploymentrequestpendingpreparedstackextendeffect.md: + last_write_checksum: sha1:046abed463c9f7995240fd12731b466ebdcfef2e + docs/models/persistimporteddeploymentrequestpendingpreparedstackextendgcp.md: + last_write_checksum: sha1:30874abfc49a8c3fbe8e57e5677254c3e6917917 + docs/models/persistimporteddeploymentrequestpendingpreparedstackextendgcpbinding.md: + last_write_checksum: sha1:e7d5c009a7d55db45222ccd3d0df47b11c0920ca + docs/models/persistimporteddeploymentrequestpendingpreparedstackextendgcpgrant.md: + last_write_checksum: sha1:3b27015e49052166f5edde5c6ab15f28badad1cd + docs/models/persistimporteddeploymentrequestpendingpreparedstackextendgcpresource.md: + last_write_checksum: sha1:d532ed7cbfd0a15325eecc6ea7ea26929d8cbd52 + docs/models/persistimporteddeploymentrequestpendingpreparedstackextendgcpstack.md: + last_write_checksum: sha1:88e1ad1df9450757ff1fd847be7748c1b68884fe + docs/models/persistimporteddeploymentrequestpendingpreparedstackextendplatforms.md: + last_write_checksum: sha1:a1796f2ea2895dbd9ce0850996303fe4ef9671a7 + docs/models/persistimporteddeploymentrequestpendingpreparedstackextendresourceconditionunion.md: + last_write_checksum: sha1:1464e65b84cd1d67ce0792ccb29e12fd80702fa3 + docs/models/persistimporteddeploymentrequestpendingpreparedstackextendstackconditionunion.md: + last_write_checksum: sha1:06a2f9570768410bea4c55880d316dc12177bcc1 + docs/models/persistimporteddeploymentrequestpendingpreparedstackextendunion.md: + last_write_checksum: sha1:bdf6efa5b8d721674a423bff2c4059357aaf2ef5 + docs/models/persistimporteddeploymentrequestpendingpreparedstackinput.md: + last_write_checksum: sha1:619aedc7caf9b48e4578222ef982bb02878cd003 + docs/models/persistimporteddeploymentrequestpendingpreparedstackkind.md: + last_write_checksum: sha1:0bed6f0ddb95f96340de28ab8fa2e11d635cff71 + docs/models/persistimporteddeploymentrequestpendingpreparedstacklifecycle.md: + last_write_checksum: sha1:a7dbef874824bb6df34e719be5c26c08555efaae + docs/models/persistimporteddeploymentrequestpendingpreparedstackmanagement1.md: + last_write_checksum: sha1:7a61cdfe432b5c35fb76ec7692b3d0454aadae99 + docs/models/persistimporteddeploymentrequestpendingpreparedstackmanagement2.md: + last_write_checksum: sha1:54046a40fa807af0ddbb0af44f12a1964885fd3c + docs/models/persistimporteddeploymentrequestpendingpreparedstackmanagementenum.md: + last_write_checksum: sha1:d4ba052ef7518137918c0b34a9e988e9f8f725c6 + docs/models/persistimporteddeploymentrequestpendingpreparedstackmanagementunion.md: + last_write_checksum: sha1:21ce0863fa3ee61a5c3f6ffcde69ecc76b5800a1 + docs/models/persistimporteddeploymentrequestpendingpreparedstackoverride.md: + last_write_checksum: sha1:35e1a38ef4d6f2f841c0a914204810e4cbeee372 + docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideaw.md: + last_write_checksum: sha1:70d42369908a0b2a43dc759e96cd52a02498f3b4 + docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideawbinding.md: + last_write_checksum: sha1:4218ee2fd511891cd7d57c45f7aa0346608eb99b + docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideawgrant.md: + last_write_checksum: sha1:71b2f1ec9654d914b6f198d2b48cdfd3430f9960 + docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideawresource.md: + last_write_checksum: sha1:0d57609a2a87e8632f03b27e7a368748b6100149 + docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideawstack.md: + last_write_checksum: sha1:8c24aaba7fa4bd8bc03539c22166b6ecc8994875 + docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideazure.md: + last_write_checksum: sha1:ea2154de1cf1706764918c9935b33acb9dfd6449 + docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideazurebinding.md: + last_write_checksum: sha1:244c6b84682da919f8a4524639b866a29f53e556 + docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideazuregrant.md: + last_write_checksum: sha1:14a6b0217ad0e8e2c3389ca66337018da6e06992 + docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideazureresource.md: + last_write_checksum: sha1:d51adff6b38079e69bbeac2820f9c4c70f05cb56 + docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideazurestack.md: + last_write_checksum: sha1:54ad9643d071649704a80f1d37ecd1b2bc2ee8bf + docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideconditionresource.md: + last_write_checksum: sha1:0c93688770b7665f7a302b4229de0a48d5c3b25f + docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideconditionstack.md: + last_write_checksum: sha1:0e3daedd6620672659a8de9478322f0676aee3fc + docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideeffect.md: + last_write_checksum: sha1:1cc510828917bf6fd810d779239528e9b39d5ec0 + docs/models/persistimporteddeploymentrequestpendingpreparedstackoverridegcp.md: + last_write_checksum: sha1:1d7a19793bd8e1db0e5919b930a9ed3b3ab2c361 + docs/models/persistimporteddeploymentrequestpendingpreparedstackoverridegcpbinding.md: + last_write_checksum: sha1:cdadf09dd2bef54d967ed258e534df461006fac5 + docs/models/persistimporteddeploymentrequestpendingpreparedstackoverridegcpgrant.md: + last_write_checksum: sha1:c1259ed32f7cacfee720980efe789083969103dd + docs/models/persistimporteddeploymentrequestpendingpreparedstackoverridegcpresource.md: + last_write_checksum: sha1:cae706592e29c61317345c18ad5598b4aa2d2209 + docs/models/persistimporteddeploymentrequestpendingpreparedstackoverridegcpstack.md: + last_write_checksum: sha1:5eb874c548a9e85018f5457a6384e0c38346faa2 + docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideplatforms.md: + last_write_checksum: sha1:1922a2d1b67ecfc09ece1a02b155bc0bd79f240a + docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideresourceconditionunion.md: + last_write_checksum: sha1:4d551e308979260e86fcf4bc41f466d3f0613e45 + docs/models/persistimporteddeploymentrequestpendingpreparedstackoverridestackconditionunion.md: + last_write_checksum: sha1:9c104a96fca7aee42aa32e29b37f8a1362b3adff + docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideunion.md: + last_write_checksum: sha1:8779fc7a080c2d200ae0c738b06734b2330d1cee + docs/models/persistimporteddeploymentrequestpendingpreparedstackpermissions.md: + last_write_checksum: sha1:8fa7330812a10a5dadfe89da797c8f5c60c65c23 + docs/models/persistimporteddeploymentrequestpendingpreparedstackplatform.md: + last_write_checksum: sha1:623df1463bcc332e75e23e28ab9c82c498ffe684 + docs/models/persistimporteddeploymentrequestpendingpreparedstackprofile.md: + last_write_checksum: sha1:d5a4419fcd992e101fc0f88a94612ba5966eb768 + docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileaw.md: + last_write_checksum: sha1:23155d937e4836529c0bb29172faf9ea0d56215a + docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileawbinding.md: + last_write_checksum: sha1:659a0282bb908ed0e1118fa5fccd8f4539c1d056 + docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileawgrant.md: + last_write_checksum: sha1:89eba79faeed7cbf5815f5822919658230f17ede + docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileawresource.md: + last_write_checksum: sha1:04283ac2c60243af632692cb0363cec49283a200 + docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileawstack.md: + last_write_checksum: sha1:efc32ad0bfa7471851d1c938b6603fd5ec0cd926 + docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileazure.md: + last_write_checksum: sha1:9eb10fd24ba0542d1e0c1c8176d5d382dfcb859e + docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileazurebinding.md: + last_write_checksum: sha1:d3fc2f0603fff86ad0caf887fe2c730393ce03ff + docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileazuregrant.md: + last_write_checksum: sha1:f2ed19806c8bd46973e2ad498febccfd6ed3db76 + docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileazureresource.md: + last_write_checksum: sha1:e7668fb70e6e626fc037d3ef93a636f140dd18cf + docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileazurestack.md: + last_write_checksum: sha1:18141663694eb829667dd3a7fed5eadc7b84321e + docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileconditionresource.md: + last_write_checksum: sha1:723227898cd8c27a1836ba0752b7471926a27fb0 + docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileconditionstack.md: + last_write_checksum: sha1:48e0ae0fc94094e19983c564c863d8e2898b9f2c + docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileeffect.md: + last_write_checksum: sha1:519c84911e0db8bd93b0c4295b2e98bdad04ffb3 + docs/models/persistimporteddeploymentrequestpendingpreparedstackprofilegcp.md: + last_write_checksum: sha1:1d143618e8ea6568e60c0b88c04e76df086a4cec + docs/models/persistimporteddeploymentrequestpendingpreparedstackprofilegcpbinding.md: + last_write_checksum: sha1:d78e542b03a9362451d0ecf332e88fd116df21f7 + docs/models/persistimporteddeploymentrequestpendingpreparedstackprofilegcpgrant.md: + last_write_checksum: sha1:42af8821a2ea7788b96c9fc4c808d2709b7f764c + docs/models/persistimporteddeploymentrequestpendingpreparedstackprofilegcpresource.md: + last_write_checksum: sha1:563e3bca91541dcbd4bbffbd3c6de93258cb6200 + docs/models/persistimporteddeploymentrequestpendingpreparedstackprofilegcpstack.md: + last_write_checksum: sha1:611349c801af9332895ae54b6c87dd95f1b8c297 + docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileplatforms.md: + last_write_checksum: sha1:5881078b45daaae1565df199847c0cf5de68cbf2 + docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileresourceconditionunion.md: + last_write_checksum: sha1:7a8c66aec76a76310a91e780a4c91d217cec3838 + docs/models/persistimporteddeploymentrequestpendingpreparedstackprofilestackconditionunion.md: + last_write_checksum: sha1:4777a06bbb751af5021ebbb381df10e15a53b2c6 + docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileunion.md: + last_write_checksum: sha1:6eab999a6f51fc64c5496027c3e1952f6e3c7bdb + docs/models/persistimporteddeploymentrequestpendingpreparedstackprovidedby.md: + last_write_checksum: sha1:73eecb810d3f2e4ba86dc5411d6b040607f9948f + docs/models/persistimporteddeploymentrequestpendingpreparedstackresources.md: + last_write_checksum: sha1:b2cf749736fe1017a18fe7ff8dd8a08ca33e8b7c + docs/models/persistimporteddeploymentrequestpendingpreparedstacksupportedplatform.md: + last_write_checksum: sha1:9ec83476683080124287c1fecb32286c3eb84b85 + docs/models/persistimporteddeploymentrequestpendingpreparedstacktypeboolean.md: + last_write_checksum: sha1:8192998b400882deafe9434c24dbbd031147f39c + docs/models/persistimporteddeploymentrequestpendingpreparedstacktypeenvenum.md: + last_write_checksum: sha1:a3e2127e72d70629808d5661a6d3c53b5b5b66ec + docs/models/persistimporteddeploymentrequestpendingpreparedstacktypenumber.md: + last_write_checksum: sha1:ea90ea256f327c78b54bb8c0ed94a4818add6951 + docs/models/persistimporteddeploymentrequestpendingpreparedstacktypestring.md: + last_write_checksum: sha1:b41ba21cb3acc4cd2ff4efab8f9e72380b0603f2 + docs/models/persistimporteddeploymentrequestpendingpreparedstacktypestringlist.md: + last_write_checksum: sha1:a2acffedf6edd79fd7856f1d99cf99b8e47bed81 + docs/models/persistimporteddeploymentrequestpendingpreparedstacktypeunion.md: + last_write_checksum: sha1:899b02efa75c505424471a46f676574234e9fde6 + docs/models/persistimporteddeploymentrequestpendingpreparedstackunion.md: + last_write_checksum: sha1:af74e6054ff366be676af844d3c14c3d05dff90d + docs/models/persistimporteddeploymentrequestpendingpreparedstackvalidation.md: + last_write_checksum: sha1:caf41bdedeb8047d8d40f893204891428976124f + docs/models/persistimporteddeploymentrequestpendingpreparedstackvalidationunion.md: + last_write_checksum: sha1:04f39bb14a9515a65498ce275872cdb8defaed89 docs/models/persistimporteddeploymentrequestplatformenum.md: id: a70f044e63dd last_write_checksum: sha1:41a9716a2c1cbbdb732072589eb8a3480ece86fa @@ -15752,11 +16394,11 @@ trackedFiles: pristine_git_object: 9542eae0c6948b19385eb04a3366e3084f741609 docs/models/persistimporteddeploymentrequestpoolsautoscale.md: id: 8e3b6da030d5 - last_write_checksum: sha1:67fec27414e5bdc720bd381bd401a25007b17da4 + last_write_checksum: sha1:5722fbb0c2b36103966fef2e98ced664ebdce32e pristine_git_object: 661e9e98d8c993ba27067f0c5e6f9556b7977ec0 docs/models/persistimporteddeploymentrequestpoolsfixed.md: id: e6ca97c1cad7 - last_write_checksum: sha1:9f3ec1c66d30a8833ae7dada4634f16d98cb38f0 + last_write_checksum: sha1:8588e1f65755af1c951b6817e6b73887b3072705 pristine_git_object: 689af226dcc3eda21543e6034eb5ed284bbb187b docs/models/persistimporteddeploymentrequestpoolsunion.md: id: 1ea42666a9f4 @@ -15764,112 +16406,208 @@ trackedFiles: pristine_git_object: 4f7817ca8d016231da67c8dc200d3907ce6f399c docs/models/persistimporteddeploymentrequestpreparedstack.md: id: 5683f131a072 - last_write_checksum: sha1:6db0465062b652f3da3bb65e90ca30fc4e477b0c + last_write_checksum: sha1:9640b8af28e1b6fbe0c65cf59ff872d77adea27d pristine_git_object: c6800e43d3831bfc90a5a92e42012c7b182dc457 + docs/models/persistimporteddeploymentrequestpreparedstackconfig.md: + last_write_checksum: sha1:2532bb484fdb4a1719906fccbc8767328d73c63a + docs/models/persistimporteddeploymentrequestpreparedstackdefaultboolean.md: + last_write_checksum: sha1:23e3fbd76555648f601ddcb99e91509a90581a72 + docs/models/persistimporteddeploymentrequestpreparedstackdefaultnumber.md: + last_write_checksum: sha1:4e91b52e2d9cd12639374d3a9d1fe96e432ff9b7 + docs/models/persistimporteddeploymentrequestpreparedstackdefaultstring.md: + last_write_checksum: sha1:2f13c2a349a285bc5cd4fc90918fe84fd3a3d61b + docs/models/persistimporteddeploymentrequestpreparedstackdefaultstringlist.md: + last_write_checksum: sha1:5c914b70ffadd250de02770e0f81a4cb034a7c56 + docs/models/persistimporteddeploymentrequestpreparedstackdefaultunion.md: + last_write_checksum: sha1:aae0b596c2b632fa667593168b7ca8a36f97ee6a + docs/models/persistimporteddeploymentrequestpreparedstackdependency.md: + last_write_checksum: sha1:84b97d7db5f4d80e69f3d063362964ea45deac7a + docs/models/persistimporteddeploymentrequestpreparedstackenv.md: + last_write_checksum: sha1:c69d9aa87852b39f8d930e157d2fff940de4cce3 + docs/models/persistimporteddeploymentrequestpreparedstackextend.md: + last_write_checksum: sha1:daf3b4b4364f5058ce6ab209a6bfb40937d6ee50 + docs/models/persistimporteddeploymentrequestpreparedstackextendaw.md: + last_write_checksum: sha1:dcc871c7b1075909552fd35cc67cb99afe44ae8e + docs/models/persistimporteddeploymentrequestpreparedstackextendawbinding.md: + last_write_checksum: sha1:beb6bfe06781a21d76db1b65dad1a93b7adaf614 + docs/models/persistimporteddeploymentrequestpreparedstackextendawgrant.md: + last_write_checksum: sha1:ae3208e37ca2e2344ca02ae3b73bffbcfb3d8c16 + docs/models/persistimporteddeploymentrequestpreparedstackextendawresource.md: + last_write_checksum: sha1:0a91200180c18ffc3eb4115abccbca8990455f71 + docs/models/persistimporteddeploymentrequestpreparedstackextendawstack.md: + last_write_checksum: sha1:7d31eb8c2c0860de91f8b7cc021a08d3e2c3ae71 + docs/models/persistimporteddeploymentrequestpreparedstackextendazure.md: + last_write_checksum: sha1:7b0210fcf6a7b52642ac361a802301ea715db40e + docs/models/persistimporteddeploymentrequestpreparedstackextendazurebinding.md: + last_write_checksum: sha1:e1444afc9a52f82aed9502598a7743eb962f1c58 + docs/models/persistimporteddeploymentrequestpreparedstackextendazuregrant.md: + last_write_checksum: sha1:ba79ece269c40922e2f5451fbc46f72b64b9e0d6 + docs/models/persistimporteddeploymentrequestpreparedstackextendazureresource.md: + last_write_checksum: sha1:4cda5f00be16362f7ef5168f5a884011cbb85c3f + docs/models/persistimporteddeploymentrequestpreparedstackextendazurestack.md: + last_write_checksum: sha1:1f6b1e1c4b40e79b97bf316f30fb145c7a2df680 + docs/models/persistimporteddeploymentrequestpreparedstackextendconditionresource.md: + last_write_checksum: sha1:3ac39a22678fb7c09b58f77e08dfd5950b7257fc + docs/models/persistimporteddeploymentrequestpreparedstackextendconditionstack.md: + last_write_checksum: sha1:18758791613f4e76e04b6e8c86fcbb44a89fe45f + docs/models/persistimporteddeploymentrequestpreparedstackextendeffect.md: + last_write_checksum: sha1:c2c7d6df8cc2ef479ee6ff1830c15932d8607d6c + docs/models/persistimporteddeploymentrequestpreparedstackextendgcp.md: + last_write_checksum: sha1:61af59949d3a5475b67c4669b0b81b184054cbe2 + docs/models/persistimporteddeploymentrequestpreparedstackextendgcpbinding.md: + last_write_checksum: sha1:e52bcced9534ea40e7b8def20f0b8ad53fd26156 + docs/models/persistimporteddeploymentrequestpreparedstackextendgcpgrant.md: + last_write_checksum: sha1:8f28d43fe0acd323b7468c75e6a4ac5a03b51cae + docs/models/persistimporteddeploymentrequestpreparedstackextendgcpresource.md: + last_write_checksum: sha1:90543fe5b7fd13d4cff00d34527dd9fd0f6b2f6a + docs/models/persistimporteddeploymentrequestpreparedstackextendgcpstack.md: + last_write_checksum: sha1:d7d5351b7468c036a0147ca6b4b6046a85c9ed18 + docs/models/persistimporteddeploymentrequestpreparedstackextendplatforms.md: + last_write_checksum: sha1:faa1330098d5dcd95c9389a08c8823539c203c90 + docs/models/persistimporteddeploymentrequestpreparedstackextendresourceconditionunion.md: + last_write_checksum: sha1:44acfa06e01cd61ddbc72e032fd604043c8c8125 + docs/models/persistimporteddeploymentrequestpreparedstackextendstackconditionunion.md: + last_write_checksum: sha1:53dd16fa28904699dcc3eea19819117dd5eb5814 + docs/models/persistimporteddeploymentrequestpreparedstackextendunion.md: + last_write_checksum: sha1:43fcd25bf9be6c51ccd0dc9148932b82816557bf + docs/models/persistimporteddeploymentrequestpreparedstackinput.md: + last_write_checksum: sha1:bef27882772b2ad0cf6ae26505af6e84d1d278ca + docs/models/persistimporteddeploymentrequestpreparedstackkind.md: + last_write_checksum: sha1:0738822620ca2dc979b0e1acd093cb02b600c1e3 + docs/models/persistimporteddeploymentrequestpreparedstacklifecycle.md: + last_write_checksum: sha1:94b7ea4f79e270247f629fcb148f031e4880d67a + docs/models/persistimporteddeploymentrequestpreparedstackmanagement1.md: + last_write_checksum: sha1:25078d174f6f1293784f76181e9d9abb08c5174f + docs/models/persistimporteddeploymentrequestpreparedstackmanagement2.md: + last_write_checksum: sha1:a1c9050c60d689af7c5102ca54018935f9d40494 + docs/models/persistimporteddeploymentrequestpreparedstackmanagementenum.md: + last_write_checksum: sha1:fbb38c497855d95508bd80e3dc98c44e4639f1e6 + docs/models/persistimporteddeploymentrequestpreparedstackmanagementunion.md: + last_write_checksum: sha1:ff7c03bc5f2e6ab368ccf54f4a94813e7ae52e48 + docs/models/persistimporteddeploymentrequestpreparedstackoverride.md: + last_write_checksum: sha1:b40a5c53e2c8c144626acba8f3f08ac6436693e8 + docs/models/persistimporteddeploymentrequestpreparedstackoverrideaw.md: + last_write_checksum: sha1:d6427b64386a5a7288b88330595f5fe7592b3666 + docs/models/persistimporteddeploymentrequestpreparedstackoverrideawbinding.md: + last_write_checksum: sha1:059cf49389e09781fed35c8cc4dfc94cd6cf71c3 + docs/models/persistimporteddeploymentrequestpreparedstackoverrideawgrant.md: + last_write_checksum: sha1:41f6ab8b1e368fd2ba3593e6d972f17e24ba11ac + docs/models/persistimporteddeploymentrequestpreparedstackoverrideawresource.md: + last_write_checksum: sha1:507beacdf808ff5bd57d7adf2cdaa199e234d09b + docs/models/persistimporteddeploymentrequestpreparedstackoverrideawstack.md: + last_write_checksum: sha1:93d5b5c1f6f741f9c4a04cf7091e192ded40b7f7 + docs/models/persistimporteddeploymentrequestpreparedstackoverrideazure.md: + last_write_checksum: sha1:5635368a0926afd1191ad7e95a83c720930cc7fe + docs/models/persistimporteddeploymentrequestpreparedstackoverrideazurebinding.md: + last_write_checksum: sha1:27921453ba33255079c7d8a53379a2f854b71bcb + docs/models/persistimporteddeploymentrequestpreparedstackoverrideazuregrant.md: + last_write_checksum: sha1:438b14b2e9a68740fccc5ae04359c900c124266a + docs/models/persistimporteddeploymentrequestpreparedstackoverrideazureresource.md: + last_write_checksum: sha1:844f8d8b854fa658a27d4769e309be890b5de2e8 + docs/models/persistimporteddeploymentrequestpreparedstackoverrideazurestack.md: + last_write_checksum: sha1:9029baf02fcfcc780b8ad36559685d7608daf080 + docs/models/persistimporteddeploymentrequestpreparedstackoverrideconditionresource.md: + last_write_checksum: sha1:71c0e90faa3c0dab187e11569f8d3635546464fd + docs/models/persistimporteddeploymentrequestpreparedstackoverrideconditionstack.md: + last_write_checksum: sha1:6d3d7ad1cf322844dd1912ba5f602b1b8de5a275 + docs/models/persistimporteddeploymentrequestpreparedstackoverrideeffect.md: + last_write_checksum: sha1:634b530d9a67966694b1a35c25f81e48c3bc82c5 + docs/models/persistimporteddeploymentrequestpreparedstackoverridegcp.md: + last_write_checksum: sha1:7f2318f8bfe07c16d80617088065afea5522a2cb + docs/models/persistimporteddeploymentrequestpreparedstackoverridegcpbinding.md: + last_write_checksum: sha1:471ba3c9fa9f4a3e6b87166557546df1c8f6a1ed + docs/models/persistimporteddeploymentrequestpreparedstackoverridegcpgrant.md: + last_write_checksum: sha1:05fcf3be3c3bbe4dc7035d8ef21d189e74423f2f + docs/models/persistimporteddeploymentrequestpreparedstackoverridegcpresource.md: + last_write_checksum: sha1:d0cee408373f158c8659954a3dc53b28557e96d6 + docs/models/persistimporteddeploymentrequestpreparedstackoverridegcpstack.md: + last_write_checksum: sha1:37fbeb256d320492493b27f154404d170da05924 + docs/models/persistimporteddeploymentrequestpreparedstackoverrideplatforms.md: + last_write_checksum: sha1:9d36d7c3a060df10b4f52c289ba46d24f1679914 + docs/models/persistimporteddeploymentrequestpreparedstackoverrideresourceconditionunion.md: + last_write_checksum: sha1:60c08f223a807dc1fa900cf3c1d65674127235b4 + docs/models/persistimporteddeploymentrequestpreparedstackoverridestackconditionunion.md: + last_write_checksum: sha1:2bf26448a259fafd8ff340422d20e6b4cee3a13b + docs/models/persistimporteddeploymentrequestpreparedstackoverrideunion.md: + last_write_checksum: sha1:17363aee4e2cf61539518219c0f0a8840353a25b + docs/models/persistimporteddeploymentrequestpreparedstackpermissions.md: + last_write_checksum: sha1:fe859af4d3ce4d361cc44721cee53075759f4254 docs/models/persistimporteddeploymentrequestpreparedstackplatform.md: id: 182f277d4d69 last_write_checksum: sha1:bed04810f78023134ccef567f83adc6c83eeb541 pristine_git_object: f888a96bee0d23eea2378e1ae4c0f38d316a4e35 + docs/models/persistimporteddeploymentrequestpreparedstackprofile.md: + last_write_checksum: sha1:1e4492ecb38f876cf44e221cedcd40c1e685f6bc + docs/models/persistimporteddeploymentrequestpreparedstackprofileaw.md: + last_write_checksum: sha1:10052b87c5f949ea53ba1eac610645373caca92e + docs/models/persistimporteddeploymentrequestpreparedstackprofileawbinding.md: + last_write_checksum: sha1:c2767ca1c7d062565da3f98a5915be3c419523ba + docs/models/persistimporteddeploymentrequestpreparedstackprofileawgrant.md: + last_write_checksum: sha1:5e63be25db93b20e26029001b0c4af5f331b20bd + docs/models/persistimporteddeploymentrequestpreparedstackprofileawresource.md: + last_write_checksum: sha1:0821f6f86a32ac9479bf4277c25be3ccaf6ee996 + docs/models/persistimporteddeploymentrequestpreparedstackprofileawstack.md: + last_write_checksum: sha1:9e706a61e92a40792b37841f5adf85efceff2100 + docs/models/persistimporteddeploymentrequestpreparedstackprofileazure.md: + last_write_checksum: sha1:5a4ea8facc97e0cdf5867575bf6ef325c86bb055 + docs/models/persistimporteddeploymentrequestpreparedstackprofileazurebinding.md: + last_write_checksum: sha1:38c8eabff9fc2677e03e9c0f9d9b588c83ac8726 + docs/models/persistimporteddeploymentrequestpreparedstackprofileazuregrant.md: + last_write_checksum: sha1:f5e4cce7374b4355563e2cd22c001db2917fa96c + docs/models/persistimporteddeploymentrequestpreparedstackprofileazureresource.md: + last_write_checksum: sha1:971bb451bbc4a6c416d73ae4c81051ceb254c934 + docs/models/persistimporteddeploymentrequestpreparedstackprofileazurestack.md: + last_write_checksum: sha1:26496236b4a8d03965ceb9e8e329318e5b6af97d + docs/models/persistimporteddeploymentrequestpreparedstackprofileconditionresource.md: + last_write_checksum: sha1:55536b19d2d627d6a34dc551cd2be6fe73939028 + docs/models/persistimporteddeploymentrequestpreparedstackprofileconditionstack.md: + last_write_checksum: sha1:c085aa6ab6e0bbff2a48ff4839c9e6cdb18f647f + docs/models/persistimporteddeploymentrequestpreparedstackprofileeffect.md: + last_write_checksum: sha1:731632216d14005f93baa3a1ea9e1026d388fb49 + docs/models/persistimporteddeploymentrequestpreparedstackprofilegcp.md: + last_write_checksum: sha1:a13602b60c323a76557d85b3b164e8a881bf790c + docs/models/persistimporteddeploymentrequestpreparedstackprofilegcpbinding.md: + last_write_checksum: sha1:84f1c92b477864d6b624c2b5b316de30784e9ffc + docs/models/persistimporteddeploymentrequestpreparedstackprofilegcpgrant.md: + last_write_checksum: sha1:6bc4e7775c80702254ab18c95ceaf08fa6bdc821 + docs/models/persistimporteddeploymentrequestpreparedstackprofilegcpresource.md: + last_write_checksum: sha1:c987769832640d64b675bf7cd9c771217b2093ac + docs/models/persistimporteddeploymentrequestpreparedstackprofilegcpstack.md: + last_write_checksum: sha1:f9d44c1acd0118c44eb597f86835daf7e976d6b5 + docs/models/persistimporteddeploymentrequestpreparedstackprofileplatforms.md: + last_write_checksum: sha1:e4d1cb65c086d23b88220c4936880da484367a82 + docs/models/persistimporteddeploymentrequestpreparedstackprofileresourceconditionunion.md: + last_write_checksum: sha1:4323f0383abfe83ad1b7edc4349a6ff286036db5 + docs/models/persistimporteddeploymentrequestpreparedstackprofilestackconditionunion.md: + last_write_checksum: sha1:df9f399ab074c6ca3cfee4ef6818f3802a8f53de + docs/models/persistimporteddeploymentrequestpreparedstackprofileunion.md: + last_write_checksum: sha1:b0c2a0d7607df96075b706ea86e58156336968ca + docs/models/persistimporteddeploymentrequestpreparedstackprovidedby.md: + last_write_checksum: sha1:8bbf48824c5616a05d82479c57bf8fcdb44f274f + docs/models/persistimporteddeploymentrequestpreparedstackresources.md: + last_write_checksum: sha1:332bcd9082f8e2e893cfb2be8b96c92fef42030c + docs/models/persistimporteddeploymentrequestpreparedstacksupportedplatform.md: + last_write_checksum: sha1:c5b0de3c0d5214e2e4f5028232c32d8f3e324179 + docs/models/persistimporteddeploymentrequestpreparedstacktypeboolean.md: + last_write_checksum: sha1:7fa884befcb80ab6a86d7b76c53c6bbdf6e726d3 + docs/models/persistimporteddeploymentrequestpreparedstacktypeenvenum.md: + last_write_checksum: sha1:2d519b79a1d22246e6f4aa689ad859cebe7ac5fd + docs/models/persistimporteddeploymentrequestpreparedstacktypenumber.md: + last_write_checksum: sha1:16edf75a7ce838699ea0bedebcd59d62fe8fd860 + docs/models/persistimporteddeploymentrequestpreparedstacktypestring.md: + last_write_checksum: sha1:e78a4b2d630f55670c0b0c4d765b8f2d4781335f + docs/models/persistimporteddeploymentrequestpreparedstacktypestringlist.md: + last_write_checksum: sha1:35947ad80ee4aa03ba2976be8a330abba60df9d6 + docs/models/persistimporteddeploymentrequestpreparedstacktypeunion.md: + last_write_checksum: sha1:fd1109f31390d19d193d167411c3fa13fad845f3 docs/models/persistimporteddeploymentrequestpreparedstackunion.md: id: 319acd3de763 last_write_checksum: sha1:8fa3d73337908e943376aa9a11f0f98c9075f8c5 pristine_git_object: 06ad04b880cd88fa4a308b853400177221623552 - docs/models/persistimporteddeploymentrequestprofile.md: - id: 6d7c858c6697 - last_write_checksum: sha1:b153aaa052e5f3eb46c17af3c37096a14db3c968 - pristine_git_object: d92201c67c36f52167241d8e33e38655d87d659d - docs/models/persistimporteddeploymentrequestprofileaw.md: - id: 580d92ae4b44 - last_write_checksum: sha1:a99c1a3ee55bd6dd2a8e74fe91c7caed03f8e0e2 - pristine_git_object: e4249add5d0f0131cd35f9690943a6544d676341 - docs/models/persistimporteddeploymentrequestprofileawbinding.md: - id: d3b002b07398 - last_write_checksum: sha1:4d69a783423978a0845d5476ad3963683285f9e2 - pristine_git_object: a9cd6412dd7c4b8faeb8d8b619d6a67c8fc1c15f - docs/models/persistimporteddeploymentrequestprofileawgrant.md: - id: 7f63e86083ba - last_write_checksum: sha1:4b809efd3f9e3bf8fbe370e9a646f22742c06267 - pristine_git_object: 642a146e5719e0e5cca4e796050b4260fd995c93 - docs/models/persistimporteddeploymentrequestprofileawresource.md: - id: 70821d2c46f8 - last_write_checksum: sha1:c227ba6ca055c410039ae205cde86e36d6546e9f - pristine_git_object: 2ee6bbf416e9099a72ea856786c0ad401c331b2d - docs/models/persistimporteddeploymentrequestprofileawstack.md: - id: e1ba011141f4 - last_write_checksum: sha1:5d032209afdaef2bbd4b8d166a2988150e70a446 - pristine_git_object: c73801e67cb032e9ab16019f7ebecf3f43f695c8 - docs/models/persistimporteddeploymentrequestprofileazure.md: - id: 040303b7a380 - last_write_checksum: sha1:8c7fc3a3e028b57fdaa93ec26b6477680798304c - pristine_git_object: 417ba3aa825ec48736d5b060ee431b1171cea7f0 - docs/models/persistimporteddeploymentrequestprofileazurebinding.md: - id: 39b5972b2ec6 - last_write_checksum: sha1:b7538879b7345b2ed9c0f217ce6c98a812acf450 - pristine_git_object: 8cd58321e67feb8797c64269101d69617aec7abd - docs/models/persistimporteddeploymentrequestprofileazuregrant.md: - id: b46b2b69ac2c - last_write_checksum: sha1:1eb3e5c448da959575528a156a5e4f1299ad7898 - pristine_git_object: ab25de34e5d121943bf494227da0887be014b1c5 - docs/models/persistimporteddeploymentrequestprofileazureresource.md: - id: 13e6309501e8 - last_write_checksum: sha1:3ca56279e03eaa5bb0cdd10633ad69cdff9903f5 - pristine_git_object: 914a35b94b8713bebf7cc5121dc02fcd73253066 - docs/models/persistimporteddeploymentrequestprofileazurestack.md: - id: 07e1ff833e99 - last_write_checksum: sha1:21c8272e9abbde3f057400474e78c0307e37b542 - pristine_git_object: a9529269db1539f289665f6f4da9a1735500e9af - docs/models/persistimporteddeploymentrequestprofileconditionresource.md: - id: f9fc90d90b26 - last_write_checksum: sha1:ec4095bc5924e464e7beb3ceef56d1b0da51c65e - pristine_git_object: 44b8d62c0646ac11c7f4597295be9ec81e6d2455 - docs/models/persistimporteddeploymentrequestprofileconditionstack.md: - id: 894157db641e - last_write_checksum: sha1:db2bccb115514155280b49df5a73b28984b3062a - pristine_git_object: fa3672366d8cd85ff15f8f3ad852ba8c69981dd3 - docs/models/persistimporteddeploymentrequestprofileeffect.md: - id: 8c3f202db0c3 - last_write_checksum: sha1:bc8b62f48763da565e4ea65913d7e3ffdac146be - pristine_git_object: 1605c1b908150b5e4c61efe24ede4644321b0155 - docs/models/persistimporteddeploymentrequestprofilegcp.md: - id: e817948d1773 - last_write_checksum: sha1:4b7cd5c66f1bf7d6598d8447c352300b2b9a5076 - pristine_git_object: 5b7ac714503ecec7dcd82a73d0446d46617d64b1 - docs/models/persistimporteddeploymentrequestprofilegcpbinding.md: - id: 739abfd21d18 - last_write_checksum: sha1:7fc9c4be13ca71fa128773cf1f072cec33cee7e7 - pristine_git_object: b1634d5eb01589cd1c4978414479ea6427bc17cb - docs/models/persistimporteddeploymentrequestprofilegcpgrant.md: - id: a5238b2e40fe - last_write_checksum: sha1:512ba77f9c4f9250f61e7494c2ebf0d0397f1ad0 - pristine_git_object: 1d04fed318bd3354d1baf589c828471e91d2b5e6 - docs/models/persistimporteddeploymentrequestprofilegcpresource.md: - id: 548856989c91 - last_write_checksum: sha1:8dad7682659ebee60efd683c511a56e780d44402 - pristine_git_object: 6b611daef5ab87f71a0ec020c5776120c5ab2280 - docs/models/persistimporteddeploymentrequestprofilegcpstack.md: - id: 0c5f1dd32d73 - last_write_checksum: sha1:754f54898a65c34bdec6ab1a397b10970c8201df - pristine_git_object: c415a4ab0956e77bdbace8d4e8d52e280b013812 - docs/models/persistimporteddeploymentrequestprofileplatforms.md: - id: 005729a7ec34 - last_write_checksum: sha1:c7865486546471ea5d073d49f75e966f28c9f224 - pristine_git_object: df4bf146c489974d92287a55ff16d99e25fb3568 - docs/models/persistimporteddeploymentrequestprofileresourceconditionunion.md: - id: b12cacb6d52f - last_write_checksum: sha1:8bcec062f84086862ac96c7fcb8fcf173e2b3a65 - pristine_git_object: 313dd4d812ff8c9737b62ed86de925b042edee67 - docs/models/persistimporteddeploymentrequestprofilestackconditionunion.md: - id: 96fb7368d54e - last_write_checksum: sha1:6f5903390411c201a8d27a12b1f43217212f5615 - pristine_git_object: b81e87545b32a3ae1cb0f53178c9ec24b3ae86e3 - docs/models/persistimporteddeploymentrequestprofileunion.md: - id: f38cbfebbb29 - last_write_checksum: sha1:3f5a036f81af79d0347371a1abea8506d6ea467a - pristine_git_object: 7a556fb6436afa23ddb691fb3d9bc5de267bf860 - docs/models/persistimporteddeploymentrequestprovidedby.md: - id: 4c0e5a8d56e5 - last_write_checksum: sha1:7bbbc2e0acc35a0c3655af7e57838b582db34c8c - pristine_git_object: 7c2ad6a3b05fe0b03a5b83df3fce4cfb22df2964 + docs/models/persistimporteddeploymentrequestpreparedstackvalidation.md: + last_write_checksum: sha1:f931d6f3cbfabc13a88b8dd2334a27ab69cececd + docs/models/persistimporteddeploymentrequestpreparedstackvalidationunion.md: + last_write_checksum: sha1:9d6b6a67524dcf4c55703492263475f5c96156cc docs/models/persistimporteddeploymentrequestproviderawsalb1.md: id: ac2a1abf8ef9 last_write_checksum: sha1:864d06d80edf70c95a72bf47b9c65874e2a5b0af @@ -15994,10 +16732,6 @@ trackedFiles: id: 8f6963f2ce7d last_write_checksum: sha1:3974c2fe57a0585ba54ef48ca3cfcfd0cb75c0e2 pristine_git_object: 7d1da653145c68c7f8276b4d6176791f994ef84a - docs/models/persistimporteddeploymentrequestresources.md: - id: 1f4298d037de - last_write_checksum: sha1:39a9ba93e1a3f5465194850cc1e6ecdbb066c7ab - pristine_git_object: fc307719c9610ec26fc7fdc2610eb8de0585b730 docs/models/persistimporteddeploymentrequestroutegateway1.md: id: fa7011cb1fc0 last_write_checksum: sha1:0e008a40bd3aeff1453afd0e5fe16d4bfea58547 @@ -16024,8 +16758,12 @@ trackedFiles: pristine_git_object: 9685a1d6c51f1cf7e5db1462c46432daa2bc6337 docs/models/persistimporteddeploymentrequestruntimemetadata.md: id: b2a76c122682 - last_write_checksum: sha1:78ba962f544eb243075c3d4b0913d714203a5d1f + last_write_checksum: sha1:9895ac9897ee678a3387f264fc426883adadfab8 pristine_git_object: 4c6bb6a03f1304594aa760fc1d760e63e4256625 + docs/models/persistimporteddeploymentrequestsetupupdateauthorization.md: + last_write_checksum: sha1:5cf781714ebb8a721df7719ab9265ea2e94de520 + docs/models/persistimporteddeploymentrequestsetupupdateauthorizationunion.md: + last_write_checksum: sha1:f05436b2c3dfea01a5c255bf132cbd496464295e docs/models/persistimporteddeploymentrequeststacksettings.md: id: 740658d835cf last_write_checksum: sha1:4f548fda60bd7578509a0c3c9bcf3a1f67e5d676 @@ -16034,10 +16772,6 @@ trackedFiles: id: 2f0c7dab95fb last_write_checksum: sha1:ff2d35aadcd98a3dbc49b3e79da70f42553dc2fe pristine_git_object: 12a8920ef1f674d6a4b8fe414a3bb9c35b0a27bf - docs/models/persistimporteddeploymentrequestsupportedplatform.md: - id: 8641611c89d3 - last_write_checksum: sha1:5a34a83a353001d212862fe7bd863de3d06194b2 - pristine_git_object: 6238b2055046f249447e886fa3dd98ca51cedff9 docs/models/persistimporteddeploymentrequesttelemetry.md: id: 8765b0bc1f92 last_write_checksum: sha1:1ceb8b4fb4160a11ea77dc91e25828cff50a5f2d @@ -16046,10 +16780,6 @@ trackedFiles: id: 94b042838293 last_write_checksum: sha1:696f4cd252973859e27b7e1f989949b04b1a02c6 pristine_git_object: 5321d3cb4d2e6e5cd56dcee6f6904ed559c2c874 - docs/models/persistimporteddeploymentrequesttypeboolean.md: - id: 2deafcf884d9 - last_write_checksum: sha1:991cbc8dc0e195f6e0f0b8849558eb6483334975 - pristine_git_object: ef3e931afbe77fa99b5b549559742bed130a4ccc docs/models/persistimporteddeploymentrequesttypebyovnetazure.md: id: 97078ce0e281 last_write_checksum: sha1:ab902c9560b0c6c86a907af6c5843fd8045e3292 @@ -16066,26 +16796,6 @@ trackedFiles: id: 32ea9b3d9f39 last_write_checksum: sha1:7fe81ec664cba237117206b8e45e2423fb43fb3e pristine_git_object: e9c0e421a605e8f77e48272fe6eace70666e8d16 - docs/models/persistimporteddeploymentrequesttypeenvenum.md: - id: 410b0c0bf0cf - last_write_checksum: sha1:9f01b189dc92785aa58a3137c268fa27c5dc3573 - pristine_git_object: 70d455d2bd14a0b1120617b98584c56929a2fb8a - docs/models/persistimporteddeploymentrequesttypenumber.md: - id: 74a0187af026 - last_write_checksum: sha1:48fba64722f95001383bcc7b091674e342a254de - pristine_git_object: fde8c46c3a3f3c3bb45c4c4c60dd55aec213cc9a - docs/models/persistimporteddeploymentrequesttypestring.md: - id: c5cabf69b26f - last_write_checksum: sha1:a66142ffee3184197c4869447aa4b822fe161005 - pristine_git_object: a606b8512a16fd39ee3c5ee7f3cdbf3fe6d049d4 - docs/models/persistimporteddeploymentrequesttypestringlist.md: - id: f04522279d68 - last_write_checksum: sha1:45b12cca050ec458b19a0bcb523362ac657e3cf9 - pristine_git_object: 762b46a2c89c5d74ee8605c647a3aa53fb5abe3a - docs/models/persistimporteddeploymentrequesttypeunion.md: - id: 44eefdd43edd - last_write_checksum: sha1:39263879e8180fd6e0a20606ad09746f4e09c84e - pristine_git_object: a616336e6ad2f76929f927d6193ddd84fe8dbf38 docs/models/persistimporteddeploymentrequesttypeusedefault.md: id: 7daeacc64f7e last_write_checksum: sha1:5fecf3f2ba13887f19dd0737b9b0e4e1ca8e7351 @@ -16094,21 +16804,9 @@ trackedFiles: id: dbf5c7f3215f last_write_checksum: sha1:1471a5ae62860ccb6e947dcb1a64893070c29cf8 pristine_git_object: 7afefe31cb1809f3cb82ac2f60811115d5369d21 - docs/models/persistimporteddeploymentrequestvalidation.md: - id: f32d25d287a7 - last_write_checksum: sha1:3ec97a615fec38774bb474f6d8c4b9a0cc4faf52 - pristine_git_object: c2b37f2b0e62cd0ef8dd1b70e9c8b738c3e6e3e2 - docs/models/persistimporteddeploymentrequestvalidationunion.md: - id: 4dea19cc996b - last_write_checksum: sha1:915e7a1f137eb3195c6c52357fe672fbb6776ca5 - pristine_git_object: cfb9c1e062969ca5c63fc31472765e86afd1bf9f - docs/models/phase.md: - id: a2d01dc13e35 - last_write_checksum: sha1:4ec2b9eca39f33ae037a33dbdd8d17df33df52d9 - pristine_git_object: 99ecbaa49a43274e706cfa8b33deeaa4976ab38e docs/models/pinreleaserequest.md: id: 84944e6117dd - last_write_checksum: sha1:3599a75c86258fcb178ae16be077c1374e4582cd + last_write_checksum: sha1:003a8d0cf013873974734e551d36ccc3a0792d1c pristine_git_object: 4199ebaa10072d4c7cac2617d82f8c1bdccbe42c docs/models/planid.md: id: ae2c385a3619 @@ -16520,7 +17218,7 @@ trackedFiles: pristine_git_object: 2b091ee01a69fff226c6f14f8990d2489a3f09d3 docs/models/prepareddeploymentstackresources.md: id: 423b75e9cd22 - last_write_checksum: sha1:37cf8914fdb762a27f84ed70b1167cf5c6f31db2 + last_write_checksum: sha1:85b5222c4f7400d346640a4d184b803139ed1241 pristine_git_object: 71ecffac96b95188b08e85cbcc8ad495830ee139 docs/models/prepareddeploymentstackstack.md: id: 21bf9a3768e6 @@ -16666,14 +17364,6 @@ trackedFiles: id: 59c211527900 last_write_checksum: sha1:e349f00c476c4f6c2e90e60e618458187cbae3ee pristine_git_object: 41bec7d514947736292b3abfb2f218fe2c0d1c45 - docs/models/previouserror.md: - id: 1d09c227d4b7 - last_write_checksum: sha1:d06633e2ead0e111e07be42d84a5cc670da8faea - pristine_git_object: b1c7ad2e3e52c62fdafdd7338452d82d39d4830c - docs/models/previouserrorunion.md: - id: 221153d44ade - last_write_checksum: sha1:e09013ab062923e403ecf0b35aa5284401ee1b62 - pristine_git_object: b911c916f7fe86c552d5caceec76e16c9b14c503 docs/models/primaryendpoints.md: id: 926317c5ebb3 last_write_checksum: sha1:79f758bea6580fc5534b78d6c08e5e2a8b22ef07 @@ -16818,14 +17508,6 @@ trackedFiles: id: b08c53bad0f3 last_write_checksum: sha1:f8fba3e6939f16b0ea0b26709ae751bd99b24a13 pristine_git_object: 633fa2a5ea0ca3fdc014845bf90f83af27ed0307 - docs/models/progress.md: - id: ee7665226310 - last_write_checksum: sha1:c517c9b92bd45e3fa22794c66a88816d2f183b50 - pristine_git_object: 9bb04cac649b16265eda5e554f45b39acb6af69b - docs/models/progressunion.md: - id: 64b68c77b264 - last_write_checksum: sha1:7d896143a832e93b48b8246e14dbdec5777ab3e7 - pristine_git_object: 37877eca58f93403cc5e5266bc3c02d511c3c0de docs/models/project.md: id: 90bdd121a0a9 last_write_checksum: sha1:787151be1dca8cb6094b180c2c220d5352478bf4 @@ -16942,6 +17624,8 @@ trackedFiles: id: 35ac72587990 last_write_checksum: sha1:4ccea069dc0ca7314acc4ed0281af33505913628 pristine_git_object: efa13004e8cb471d054fdccb8d60146a8a1ff74e + docs/models/protocol.md: + last_write_checksum: sha1:b0eebd04140a599535d006d3fd80ae0336aca818 docs/models/providerfleet1.md: id: c908582edb12 last_write_checksum: sha1:bf7763b43cc794c7f84e2ef7ed82168bd3d1358a @@ -16960,7 +17644,7 @@ trackedFiles: pristine_git_object: 086659a382d234ab92a7666e0e37b7a24889edac docs/models/publicendpoints.md: id: 2c1bf38da05e - last_write_checksum: sha1:51d98a8ffa04dc330e1b5f3e1ae0c8ce6448863c + last_write_checksum: sha1:23b2ff9438188f73762c907713328d641d86f162 pristine_git_object: 083f54ec43b6704478a9a0c3086fdf7d61a340ea docs/models/readiness.md: id: 02e426d5c584 @@ -17016,12 +17700,48 @@ trackedFiles: pristine_git_object: f06bd084011b11425b7c87531152458d666eb657 docs/models/release.md: id: 704b04b89ff5 - last_write_checksum: sha1:aa547c58ede04c1603040cfd2eca779ed85e2aed + last_write_checksum: sha1:c96476647133d48c4afb04cfeb2eee1dc690bfa7 pristine_git_object: 25e44a67de240618f5112d30fc35c65432c7bd89 docs/models/releaseauthorfilteritem.md: id: dc3e1481b7c8 last_write_checksum: sha1:5f3dfd77544e2ac982fe4e7aefd7b1ec38da99bc pristine_git_object: ca95f4ee3d3ac80ad263ffac86762ec8e41ddc89 + docs/models/releasechannel.md: + last_write_checksum: sha1:5025805160d5c4e17dcab128abab97c68a3a215f + docs/models/releasedeploymentitem.md: + last_write_checksum: sha1:d310fea8e684feaba3824051dce017b3cfbd7a37 + docs/models/releasedeploymentitemdeploymentgroup.md: + last_write_checksum: sha1:a3b4d800b2f7e9f111392e382cdd89487c0d041e + docs/models/releasedeploymentitemenvironmentinfoaws.md: + last_write_checksum: sha1:6e9762b25502b367545833f5dd1bdc1e3ca28bd1 + docs/models/releasedeploymentitemenvironmentinfoazure.md: + last_write_checksum: sha1:9f36175cdfdd30f56f7d0776a22ff9a2011099fa + docs/models/releasedeploymentitemenvironmentinfogcp.md: + last_write_checksum: sha1:4bdcc4c3d47134c3847b75329874df2b4ec19763 + docs/models/releasedeploymentitemenvironmentinfolocal.md: + last_write_checksum: sha1:d3208508c1c166f7c3d72d754ae764f3c2214724 + docs/models/releasedeploymentitemenvironmentinfotest.md: + last_write_checksum: sha1:a253b125bc08c8c831e4bc53e36cfd2e3b66e8e7 + docs/models/releasedeploymentitemenvironmentinfounion.md: + last_write_checksum: sha1:e84ac73c5cd5d00540641d9556b6d6fd6c54e7a2 + docs/models/releasedeploymentitemerror.md: + last_write_checksum: sha1:2649bdfe82ca8d1d773e2035b71e1c370a3c6035 + docs/models/releasedeploymentitemplatform.md: + last_write_checksum: sha1:d195065a06bf0bcfc8567fc02028f6033c8b7bb6 + docs/models/releasedeploymentitemplatformaws.md: + last_write_checksum: sha1:b2a9031f795699f6efc88297047dc303951eae28 + docs/models/releasedeploymentitemplatformazure.md: + last_write_checksum: sha1:747a8de86fd774c5e64447b5f7de520ef31846ed + docs/models/releasedeploymentitemplatformgcp.md: + last_write_checksum: sha1:70fa7b1ab78cff62c935eee313d8c627b6cca13a + docs/models/releasedeploymentitemplatformlocal.md: + last_write_checksum: sha1:d6036d1fa20428a5a4fadbe8cd2a0da05514ad47 + docs/models/releasedeploymentitemplatformtest.md: + last_write_checksum: sha1:7795636d533971839a78231df10496da5dcb7f9c + docs/models/releasedeploymentitemstatus.md: + last_write_checksum: sha1:9904cd378f3550afda0aa9851a6033c0c57ebf2b + docs/models/releasedeploymentsresponse.md: + last_write_checksum: sha1:a9875315f62cececbdf4538a8b28c809a002fea7 docs/models/releaseinfo.md: id: 56ec346ea5c7 last_write_checksum: sha1:97d33c9668f4eed8c7e567b14c46a14da27f735b @@ -17084,7 +17804,7 @@ trackedFiles: pristine_git_object: 96fb02c2c12ee98a567bdd1bdfb1dc71d8da424f docs/models/releaseinforesources.md: id: 260bc06b35e5 - last_write_checksum: sha1:3b963350e84a9869a23f26145acc772ce2b46942 + last_write_checksum: sha1:4a62ba7fc8e6c908a0133e72fc910feca2b47a5d pristine_git_object: 1900a98eaeadbb4a5222e2d986b7e795d351386a docs/models/releaseinfostack.md: id: 10c40edb5f91 @@ -17120,12 +17840,20 @@ trackedFiles: pristine_git_object: 301b35550a2df1f54e7a53fc95bf37d7220c7f02 docs/models/releaselistitemresponse.md: id: 7f388514097d - last_write_checksum: sha1:38dfb68647526e40bc33f8529cd17f4ce7611a41 + last_write_checksum: sha1:a4002d4db795803c371875cc912f7edc2a170f54 pristine_git_object: 80358d755425f1132195d8978f5c9bce21858329 docs/models/releaselistitemresponseproject.md: id: 8dfa7e006fb6 last_write_checksum: sha1:598514d0fc0c16a26f3bd8d435edba0f3d0574f2 pristine_git_object: 4b8c16e6aa295babbd37bd93ce497e84d2906e8d + docs/models/releaselistitemresponsestack.md: + last_write_checksum: sha1:c5b0192de7159646681a61c6d303532d881b05df + docs/models/releaserolloutstate.md: + last_write_checksum: sha1:cece1fdecbcdb50635f568cb5b263780825fe1f8 + docs/models/releaserolloutstatecounts.md: + last_write_checksum: sha1:7e2eaeeb9276bd214c451db33956ff455b00a7a4 + docs/models/releasestack.md: + last_write_checksum: sha1:6a014792e7a13dd8003ba255af301afd9b3bcf61 docs/models/removemachinesmachineresponse.md: id: 6c95a99f8a16 last_write_checksum: sha1:c82b4d01b109c6c54007ef09094b10c53059e452 @@ -17264,7 +17992,7 @@ trackedFiles: pristine_git_object: af5bd5ca2499a56a2d89be6760cee1a18e8ac0d3 docs/models/resourcecounts.md: id: 8054530e25e6 - last_write_checksum: sha1:e2d2d529d325e6013d0eee35e3954752f21e7ab8 + last_write_checksum: sha1:7f56c78ef28bdffe0fdfd6aaaa25965a7d756be7 pristine_git_object: 5c9e08a2f2d23db71b47e1f8562a1fa4cbf912c4 docs/models/resourceformat.md: id: 1530f8971ddc @@ -17276,7 +18004,7 @@ trackedFiles: pristine_git_object: ca5cab1aa2ceb3a1013e2b5d3eb261d6729af184 docs/models/resourceheartbeat.md: id: a11ea71a67e4 - last_write_checksum: sha1:1a652cf20a09b72718ecd2f6ab1312cdec2b9f93 + last_write_checksum: sha1:16baad6761bab17b3dc8daacad1a26cfe6ad8b30 pristine_git_object: a5856bd43cb51114ebc22860260b820e04b019ba docs/models/resourceheartbeatbackendenum.md: id: 677bb0cd7965 @@ -17542,10 +18270,24 @@ trackedFiles: id: 4074a30b194e last_write_checksum: sha1:be894791be53d971a2a3191ee0d6f9cdf27fc3ad pristine_git_object: c933008444bbb596175710ae94ad31875f8b2ec4 + docs/models/resourceheartbeatstatus66.md: + last_write_checksum: sha1:227cca574c0bfd29e36edb7fae9fcdb9f646e507 + docs/models/resourceheartbeatstatus67.md: + last_write_checksum: sha1:97f62cdfa2eaff7a7c7b102b70d553bf6015d000 + docs/models/resourceheartbeatstatus68.md: + last_write_checksum: sha1:650fe2d6760a8c03e4fe3e41027a3b94cee5165d + docs/models/resourceheartbeatstatus69.md: + last_write_checksum: sha1:ec201da6c5de0a50032b812593e71498eba52523 docs/models/resourceheartbeatstatus7.md: id: 7d642b0e2196 last_write_checksum: sha1:4a819e6e7474ee6e6584b42c8adc4116053a74f7 pristine_git_object: 7ccf30c0879c0e6259a26b2b19f90da2a1610cc9 + docs/models/resourceheartbeatstatus70.md: + last_write_checksum: sha1:7daac9319789b0f6f41011b88cf80ab6bcc337e4 + docs/models/resourceheartbeatstatus71.md: + last_write_checksum: sha1:3a2cc06eaa40aca11b7d99e12bd9b701393ddf7c + docs/models/resourceheartbeatstatus72.md: + last_write_checksum: sha1:f5e689a625fa05af81f3a85ed53a0a46a59ff1b2 docs/models/resourceheartbeatstatus8.md: id: d43edbdfa578 last_write_checksum: sha1:30d7f354799fb746145d5d58ad632bc8f2b38a50 @@ -17582,6 +18324,8 @@ trackedFiles: id: b694540a5b1e last_write_checksum: sha1:4deeed125274abfa9367d7d61f57f29dfa74419b pristine_git_object: a76fd3bfe053e4ad29383da8c6c9367b7b4f39f4 + docs/models/rollout.md: + last_write_checksum: sha1:e2605a66cc3ec09a081016b0d0aa6bb3b0ac4f76 docs/models/rotatemachinesjointokenresponse.md: id: d800ce073c45 last_write_checksum: sha1:89dabb23ddc2b27af8f6ee2cd29cb6db5e389d7a @@ -17634,6 +18378,8 @@ trackedFiles: id: 24d45508cc12 last_write_checksum: sha1:dbbf4105c4a120cc4c8c168216916acc897b4be7 pristine_git_object: 637435568b6d7f906e1866ef6c19dabaacd3b6da + docs/models/setdeploymentgroupexternalidrequest.md: + last_write_checksum: sha1:5214853d344e09e3c6ce7b055a4dac52c1cf513f docs/models/setfirstpartydeploymentinputsrequest.md: id: 07649e146cee last_write_checksum: sha1:5a435c0b25bcee94b5f080bd95567224e70942e6 @@ -17674,45 +18420,77 @@ trackedFiles: id: 23333520d3a5 last_write_checksum: sha1:3853181f20ffed79c829deab9533f070aed897a5 pristine_git_object: a00f4edb4f20cc01d88d67d3a8492bad924a4303 + docs/models/slackchannel.md: + last_write_checksum: sha1:797e2b09fcf3c7ab977c3af065b43f25af40e26a + docs/models/slackchannelsresponse.md: + last_write_checksum: sha1:a389c04b0e797704bb9c8d3756cac158438de887 + docs/models/slackinstallurlresponse.md: + last_write_checksum: sha1:6963615df4d7485dfe6f6f219a88208d966f2a01 + docs/models/slackintegrationstatus.md: + last_write_checksum: sha1:3c257972430d847d56dd5574867ac16d1c25eb25 + docs/models/slacknotificationchannelrequest.md: + last_write_checksum: sha1:cd3bb3368c33246aa28768e241bcac7cf5056f38 + docs/models/slacknotificationchannelresponse.md: + last_write_checksum: sha1:86bfb21a7f473dc514dc990f68ff442c805306f9 + docs/models/sourceevent1.md: + last_write_checksum: sha1:3ea43901723b95bfd943fc6b2a0d3e4ac726021c + docs/models/sourceevent10.md: + last_write_checksum: sha1:c744374437e22d8ce233841eb699a013e4e15331 + docs/models/sourceevent2.md: + last_write_checksum: sha1:3bc6b5d39486dcfc2f7aea9d3a0f1d12d0f256a4 + docs/models/sourceevent3.md: + last_write_checksum: sha1:9349aa57c48f5bec4e80ca96dbc9d29890f8510d + docs/models/sourceevent4.md: + last_write_checksum: sha1:d11eaae673c45bbaf28e8a74b730f4a5b50ef3a7 + docs/models/sourceevent5.md: + last_write_checksum: sha1:4c870fbf64e0dbbafd9a74f0ce1991513531b0a2 + docs/models/sourceevent6.md: + last_write_checksum: sha1:ed81ea59cf57399087b582e045d51217706f074b + docs/models/sourceevent7.md: + last_write_checksum: sha1:42c59e89900186d6ae92eb7b41cbadb4fb66e67f + docs/models/sourceevent8.md: + last_write_checksum: sha1:de7e38c2444f5539c5411047528162d7f9239129 + docs/models/sourceevent9.md: + last_write_checksum: sha1:420b36e3722a5b816170b4d78c5d691ea426ffb7 docs/models/sourceunion1.md: id: 5289348df52e - last_write_checksum: sha1:d88a109dd97148c0cea14f64c22a1ec57ce6517e + last_write_checksum: sha1:01ccd3bd65d69366e604f046a12e96d9aab2a711 pristine_git_object: bfda2e9006d1d5ce534e83d3c23b44dc42f13e50 docs/models/sourceunion10.md: id: 85981772cccf - last_write_checksum: sha1:fa1e98996e13dcf1636a0463ee620093d75b277a + last_write_checksum: sha1:fd079a93c18553b380b3a20b6c7eca2828dbd137 pristine_git_object: 85a37e17cb87428a14f0f38da978293a9454aa7b docs/models/sourceunion2.md: id: 1ae3653947ae - last_write_checksum: sha1:92f261e2f8c383959f9edbaeebfb398f4e1672e9 + last_write_checksum: sha1:eb19592b5f4da22d8abd2033fd8b737ff6b414e1 pristine_git_object: 5c4dbad6f52af8747d15a6e16fba5c35137da437 docs/models/sourceunion3.md: id: 8fc62cf53bbd - last_write_checksum: sha1:87d1a3454456fbd12322bf02110cd9575e4ce925 + last_write_checksum: sha1:b786dc4cf8d694b7fec59ab727fc834bc5e6806b pristine_git_object: 09523abd6ef58f4f90108264b45766c4ae970c17 docs/models/sourceunion4.md: id: e7e1e457a147 - last_write_checksum: sha1:80738a40457aa33f6429bb2a301e7a44c1348560 + last_write_checksum: sha1:dc6f942875e369d26e8935377a85c85485825b0e pristine_git_object: 9a6d974a1fa1ac8db1d1df0a755d0371dd705e70 docs/models/sourceunion5.md: id: d1e4cff18030 - last_write_checksum: sha1:0556c273e27d1b961464dd74d17e2b1786b7fa54 + last_write_checksum: sha1:641b00ba3b731e2ed2c553c171e7292c3147eeac pristine_git_object: a904bd34acba38bcebbc28176739d35d8130087e docs/models/sourceunion6.md: id: 6918b44fa5a7 - last_write_checksum: sha1:cfb3bdb4cd00095ae133396292b1bdff41cae18b + last_write_checksum: sha1:68cfc572bd7f57714c66adb41e8cb2be86d94844 pristine_git_object: ac56106ac04292b64a1ccb91672133825216d635 docs/models/sourceunion7.md: id: facc9ee82ba6 - last_write_checksum: sha1:2c3e22e46b3320863e4b17dbd149b63d98127bc1 + last_write_checksum: sha1:2399f96ebac78a3112a1ea80d20d49345e43bbd1 pristine_git_object: b9acdce933939d02966c510e2f6fec6ab0ad52ee docs/models/sourceunion8.md: id: 964fc5be4c95 - last_write_checksum: sha1:1669d18459a73e6c7f5c2428eb3137baaf72fed0 + last_write_checksum: sha1:e3fb8ee9efae5e6510086dc04c30f9760d2b1db0 pristine_git_object: caca475363f8d8a19e7684a4027187f0473b8c05 docs/models/sourceunion9.md: id: 0947fb56f440 - last_write_checksum: sha1:c977c6d35e695ba76858c3504eacc7700d76f0cb + last_write_checksum: sha1:993973080254e7b484192ee2fce83a6fdff45769 pristine_git_object: 54e3762c9013c28b4353dd6660b6668f67f32ffd docs/models/stackbyplatform.md: id: e3bde2f10235 @@ -17738,10 +18516,6 @@ trackedFiles: id: a799bafc606a last_write_checksum: sha1:28e787cc4b2a647dfbcb13c6df52cd2d6d3f3bcf pristine_git_object: 88302ffb365f34342ae471eda0e6d959f1a8c6ea - docs/models/state.md: - id: e560b4e72643 - last_write_checksum: sha1:5500e126bf19ac9cf3990bab0a10854f74b5f330 - pristine_git_object: fcc9aa55ce9a0f630229442fed7a587e693d7c75 docs/models/statecontrollerplatformunion.md: id: 3eea951f9f9b last_write_checksum: sha1:1964295cccdaeae4e9772541ebf54174e8199b2c @@ -17750,22 +18524,10 @@ trackedFiles: id: 8bc95bf5b520 last_write_checksum: sha1:4e81c95c16216fbb8a1e315047f5538b1fe3fe83 pristine_git_object: 31f42c790502373c7c8f0ea10eccf006df0fa88a - docs/models/statenone.md: - id: 05e45f13d6e1 - last_write_checksum: sha1:3c8ac3f936e66424e6a5ec66e5c59f3f31c5883a - pristine_git_object: e7e45caf93bd4dd9afc36dce00482d5493eea7e3 - docs/models/statestarted.md: - id: fec1a2278f50 - last_write_checksum: sha1:d1ade0741064c77eec180dc2b46ac18a3ab7bbc1 - pristine_git_object: a6710e86010e829f4efae0e46acea149d471b8b5 docs/models/statestatus.md: id: 372c2a63a34c last_write_checksum: sha1:6429ce0d511b481e310685f6885411f6ca29eab9 pristine_git_object: 7f87bb467983f46232076ac62137317dba8fe7a2 - docs/models/statesuccess.md: - id: a822d40f6fc8 - last_write_checksum: sha1:76322911b9e5b5a15aa0a2e91e6c4661238d45f9 - pristine_git_object: 3e7d24302f73e88061d9ea95123ed82e438b907e docs/models/statuslifecycle1.md: id: 728712de33e0 last_write_checksum: sha1:0cf5c3815519f3757a798ff0bf3c68467f20249b @@ -18014,10 +18776,24 @@ trackedFiles: id: 4fe24976eca6 last_write_checksum: sha1:9b8216445a18202777ea268a23cbec9bcb67f997 pristine_git_object: 90d7aedc31786c5c40a23c0c8edafa1e413f06d1 + docs/models/statuslifecycle66.md: + last_write_checksum: sha1:e53803018a71f79668115eebd498eccb46d31e16 + docs/models/statuslifecycle67.md: + last_write_checksum: sha1:9009852c13b44477f4fa7fcb4adf2f2a90ba0c0d + docs/models/statuslifecycle68.md: + last_write_checksum: sha1:92747525257d983b93174295fbf67f2b0c64525b + docs/models/statuslifecycle69.md: + last_write_checksum: sha1:5093d256e9b48e644240b5b34666848fb5f18767 docs/models/statuslifecycle7.md: id: 385bd757cd40 last_write_checksum: sha1:8a169c70a74b202c97dea76a02ce4cd318780dbf pristine_git_object: d54f4f2b354ebedbd882bddddee51d46a1d65b43 + docs/models/statuslifecycle70.md: + last_write_checksum: sha1:a0ff5e548495c11f73bf8357c76cc790c160298c + docs/models/statuslifecycle71.md: + last_write_checksum: sha1:629ccb4fa15a6b5d22a792a3887257afd2b99fe8 + docs/models/statuslifecycle72.md: + last_write_checksum: sha1:40255ed89307fe8af4504b9e9a755b5440010cda docs/models/statuslifecycle8.md: id: 6eb751b588e0 last_write_checksum: sha1:db65b390206d66e4caa218318055a3ad86d86f90 @@ -18274,6 +19050,14 @@ trackedFiles: id: dc0d2d2f4fbb last_write_checksum: sha1:5c5f4bb83856fc9ef6d9eab473c88735e02e5257 pristine_git_object: f8ca70f60928d3958f9a4bd3b79b5b3e019ec2f6 + docs/models/statusseverity66.md: + last_write_checksum: sha1:77f1c23693624d50990abd6bb47b0f29b50e278c + docs/models/statusseverity67.md: + last_write_checksum: sha1:39e3d3b1ac426f3833f969afb39c968c7fc26f48 + docs/models/statusseverity68.md: + last_write_checksum: sha1:fc8d292c8bf15ec1410945d18cee1a9b2e30e7f7 + docs/models/statusseverity69.md: + last_write_checksum: sha1:d4c977f7d6e93b9b182cb455047e455d24c8dda3 docs/models/statusseverity7.md: id: dac3357d5015 last_write_checksum: sha1:f1c8881f540455e9e8d41f0134b048a5920a89fd @@ -18324,7 +19108,7 @@ trackedFiles: pristine_git_object: 7ac0453750ba476b7c2f4d55d1c5baa52f17f8be docs/models/syncacquirerequest.md: id: 690347406a0c - last_write_checksum: sha1:b76ccf1fdbfda8896b91c9e4e7d52864c5840626 + last_write_checksum: sha1:b0f07b39d2bb8d42c47cb20a197e775def8ccfce pristine_git_object: 5fb33b488b8aa5bb9671c50a81d65e3cc9adb1d8 docs/models/syncacquirerequestdeploymentmodel.md: id: 0f98ce200836 @@ -18340,7 +19124,7 @@ trackedFiles: pristine_git_object: e2c0d90cf5052b0b83af475088656c74a2f131a3 docs/models/syncacquireresponse.md: id: 33407194b9da - last_write_checksum: sha1:cf4ebeaa25e529d1c9102f2faaade46c93a9f642 + last_write_checksum: sha1:b2679f1e3b8dc286494d9afb5acfb3c91681b396 pristine_git_object: 08bb4853e67d5d366586a8e8d8a2bba961f4efc6 docs/models/syncacquireresponsedeployment.md: id: 1ac9e677bef8 @@ -18382,6 +19166,12 @@ trackedFiles: id: 2bcc70c0962c last_write_checksum: sha1:22d96339189bc15cfe825844fa697272557aa16d pristine_git_object: b67e6096079421b3d37ef763337224956864f6d1 + docs/models/syncacquireresponsedeploymentapikey.md: + last_write_checksum: sha1:f2151df2126535f27c27c3bd3cb242af0e046959 + docs/models/syncacquireresponsedeploymentapikeysecretref.md: + last_write_checksum: sha1:aa9807f232198efc77000b90c480e559a62b131e + docs/models/syncacquireresponsedeploymentapikeyunion.md: + last_write_checksum: sha1:14fa052a037c1ca8d7fa815a48e9b80328ead09c docs/models/syncacquireresponsedeploymentawsstacksettings.md: id: 7aa1e96e8328 last_write_checksum: sha1:713e987341c44acdc5bc289547510ad47796ee12 @@ -18548,7 +19338,7 @@ trackedFiles: pristine_git_object: fa6432708270918873f074b001fb1532d499e198 docs/models/syncacquireresponsedeploymentconfig.md: id: 5cbd7f841434 - last_write_checksum: sha1:626f9fd4f0f250053ff6ded8e2de51b1ce493734 + last_write_checksum: sha1:1090246c2bd69d33b08eb643ffeed410e353a427 pristine_git_object: d066f47b69d7c8fafc1a582c3aba483b591da20d docs/models/syncacquireresponsedeploymentconfigplatformaws.md: id: b2f3d73e22de @@ -18968,7 +19758,7 @@ trackedFiles: pristine_git_object: 23a18b5efdf933c48a4343cbcd82c92dbad6806d docs/models/syncacquireresponsedeploymentcurrentreleaseresources.md: id: 3124bfd3d9c7 - last_write_checksum: sha1:dd4962de51471f8005a03335a305993d3fb13a44 + last_write_checksum: sha1:fbda9240adfed4d8fcbcd27a0ff3a0ddc1be8000 pristine_git_object: c0617126bcf8f0a949b2f1a1db2b3d9c8c358f3d docs/models/syncacquireresponsedeploymentcurrentreleasestack.md: id: c4bf0e3c02b3 @@ -19274,6 +20064,8 @@ trackedFiles: id: 48e0fbe50436 last_write_checksum: sha1:afbd30776f58ffa7c22fdcdef8e7af8a9b6d948a pristine_git_object: d35607d7662a5a68c44a75567e8ad02757b64a4e + docs/models/syncacquireresponsedeploymentexternalbindingsai.md: + last_write_checksum: sha1:70e645552f3de4eeb3e2cd68397d72172c39891b docs/models/syncacquireresponsedeploymentexternalbindingsaurora.md: id: f244cc9b3db1 last_write_checksum: sha1:b685c60509a60e9296c9f66e884c0119c93598bd @@ -19284,7 +20076,7 @@ trackedFiles: pristine_git_object: 5fe91dd3d8f7dcccf3c38140601003ec956e532c docs/models/syncacquireresponsedeploymentexternalbindingscloudsql.md: id: 84b2171c22f5 - last_write_checksum: sha1:8c3e9fc98e7d7dfa19a39d47d9aae26d159680bb + last_write_checksum: sha1:1fd4064dcff35fcb4840ec15082ec5ea03e7349d pristine_git_object: 55eef0a202a687830169b5cecb8f75704ef8882b docs/models/syncacquireresponsedeploymentexternalbindingscontainerappsenvironment.md: id: 884f7bd5a82c @@ -19300,7 +20092,7 @@ trackedFiles: pristine_git_object: 5c0b0c83400b5b758840b1c66c5a6356d0fad8bd docs/models/syncacquireresponsedeploymentexternalbindingsexternal.md: id: 805661cf78fc - last_write_checksum: sha1:91be95a791e5ea3b884031bcbf43cb1aca0808e3 + last_write_checksum: sha1:c2eab7e40e0ba70eadb438417e5f69c6f0f91172 pristine_git_object: e8dc3bbeaf24b90e64a1676c4f563946d63ad647 docs/models/syncacquireresponsedeploymentexternalbindingsfirestore.md: id: 9f7adb7eeca8 @@ -19408,8 +20200,16 @@ trackedFiles: pristine_git_object: 8db5edbe2da89f9449fa3bfa76468d5e946550b9 docs/models/syncacquireresponsedeploymentexternalbindingsunion7.md: id: 96f11507979d - last_write_checksum: sha1:079907009dcb0dbb55e2d658483f323e3ce6c6bd + last_write_checksum: sha1:4749e6dafd7c5bbcb81ca5e5d63c2ccc2d11b5a9 pristine_git_object: 96cafb548b0f97c37cc09a343be6de0da7e1158a + docs/models/syncacquireresponsedeploymentfailuredomains1.md: + last_write_checksum: sha1:e7ef879cd0f0633a847ba09054807ba415bd9267 + docs/models/syncacquireresponsedeploymentfailuredomains2.md: + last_write_checksum: sha1:2ae86bff4c95024c372aa3799d51fcb71f5d66f5 + docs/models/syncacquireresponsedeploymentfailuredomainsunion1.md: + last_write_checksum: sha1:630b6702bdf25a03dc6568584a92c09fdfdade38 + docs/models/syncacquireresponsedeploymentfailuredomainsunion2.md: + last_write_checksum: sha1:ce686adcc77c5ba2655069e7e26e980f025c1767 docs/models/syncacquireresponsedeploymentgcpimages.md: id: 4fb941b8c65b last_write_checksum: sha1:95c6dda778fd9399fb4641de91181d3ff3030dc4 @@ -19506,6 +20306,8 @@ trackedFiles: id: b5fcc095baac last_write_checksum: sha1:f9fc2a772d8a7820895380f662e08ede04627f4a pristine_git_object: 154b2922ce3a58e88618ee6a9e85a8eb06af2430 + docs/models/syncacquireresponsedeploymentinitialsetupauthority.md: + last_write_checksum: sha1:d64ce1a86943a7f7b0c169d37bfda451c394204e docs/models/syncacquireresponsedeploymentkeyprefix1.md: id: 8e8deb1a7ad9 last_write_checksum: sha1:e5ca50d874ff03d3eaef4e3165fca523f492f607 @@ -19678,6 +20480,204 @@ trackedFiles: id: 03f44b43fa65 last_write_checksum: sha1:c7c7fce692db4672f21334e1c487f0e0aba931a0 pristine_git_object: 660b4be6886aef5ca04ef2cef64c3ef7989a99b7 + docs/models/syncacquireresponsedeploymentpendingpreparedstack.md: + last_write_checksum: sha1:62c4c4b896e7e06ae6f870e71a54194382082ef9 + docs/models/syncacquireresponsedeploymentpendingpreparedstackconfig.md: + last_write_checksum: sha1:7c13bf2e2faa3a2cb9ae0dcab9365e7ad1ba1065 + docs/models/syncacquireresponsedeploymentpendingpreparedstackdefaultboolean.md: + last_write_checksum: sha1:ab9e2ea2d2e16084de84609501fe99704dee3494 + docs/models/syncacquireresponsedeploymentpendingpreparedstackdefaultnumber.md: + last_write_checksum: sha1:5ab73dbcae86b29016a80ecdd8d23ef0b19472fd + docs/models/syncacquireresponsedeploymentpendingpreparedstackdefaultstring.md: + last_write_checksum: sha1:635d761b523faba0002eaeedd5c187254edeccf0 + docs/models/syncacquireresponsedeploymentpendingpreparedstackdefaultstringlist.md: + last_write_checksum: sha1:33d201bda4f18f6c93773b76e073249ac7e9fa2b + docs/models/syncacquireresponsedeploymentpendingpreparedstackdefaultunion.md: + last_write_checksum: sha1:1cfead6076c8674fcb2ac4b36338e3a4b4931619 + docs/models/syncacquireresponsedeploymentpendingpreparedstackdependency.md: + last_write_checksum: sha1:199589986e9d28e1a5c69d22742e90eb5850039c + docs/models/syncacquireresponsedeploymentpendingpreparedstackenv.md: + last_write_checksum: sha1:42f49c511295a76e3b1c1a1eb30b2c14299bc477 + docs/models/syncacquireresponsedeploymentpendingpreparedstackextend.md: + last_write_checksum: sha1:ea60ef3954f541a3b66cffbeb30645affde36780 + docs/models/syncacquireresponsedeploymentpendingpreparedstackextendaw.md: + last_write_checksum: sha1:0dc0b3a150eaa177c04db726ad40b64e8e27b9d3 + docs/models/syncacquireresponsedeploymentpendingpreparedstackextendawbinding.md: + last_write_checksum: sha1:ef0f209c7b3ad1a44caa2e00da044261d43b4b45 + docs/models/syncacquireresponsedeploymentpendingpreparedstackextendawgrant.md: + last_write_checksum: sha1:9113f91b3dcf93259ec1aad061a1d10a66b86d78 + docs/models/syncacquireresponsedeploymentpendingpreparedstackextendawresource.md: + last_write_checksum: sha1:103e696b4afcedd304ab1bd39a4f5d979d05d1b0 + docs/models/syncacquireresponsedeploymentpendingpreparedstackextendawstack.md: + last_write_checksum: sha1:6c5ec123cab163e28aca1c22dbeff050667bc780 + docs/models/syncacquireresponsedeploymentpendingpreparedstackextendazure.md: + last_write_checksum: sha1:0d762cca24fd458dad518f484cee9991525e3586 + docs/models/syncacquireresponsedeploymentpendingpreparedstackextendazurebinding.md: + last_write_checksum: sha1:54859304e40e987efc73a5785d5c8ea7feb98ad7 + docs/models/syncacquireresponsedeploymentpendingpreparedstackextendazuregrant.md: + last_write_checksum: sha1:334840ce5cbc5730ef1e881334ed03d2c9d0e016 + docs/models/syncacquireresponsedeploymentpendingpreparedstackextendazureresource.md: + last_write_checksum: sha1:00ca4d2139ceae90d10402e3bae9305f33946d73 + docs/models/syncacquireresponsedeploymentpendingpreparedstackextendazurestack.md: + last_write_checksum: sha1:c78ba9f9cdb1bca5c449a6dce9b94b07bf875397 + docs/models/syncacquireresponsedeploymentpendingpreparedstackextendconditionresource.md: + last_write_checksum: sha1:9b4977ac16fc5ad5d7d3ca485f47c53e5a430b95 + docs/models/syncacquireresponsedeploymentpendingpreparedstackextendconditionstack.md: + last_write_checksum: sha1:4f582c9395b7cb84fe2ab345c8b69cf7e303e0a1 + docs/models/syncacquireresponsedeploymentpendingpreparedstackextendeffect.md: + last_write_checksum: sha1:4dafbd6035c26285a7a4f11a4a8ede93424ebd70 + docs/models/syncacquireresponsedeploymentpendingpreparedstackextendgcp.md: + last_write_checksum: sha1:eccb9f2fbbdd8d57e867b1fc723ca4227863baa8 + docs/models/syncacquireresponsedeploymentpendingpreparedstackextendgcpbinding.md: + last_write_checksum: sha1:61612dc2b9798d91f0b748525e3d00ad819bf231 + docs/models/syncacquireresponsedeploymentpendingpreparedstackextendgcpgrant.md: + last_write_checksum: sha1:ef71af227217591459f9f85544d57d5d4d66ac72 + docs/models/syncacquireresponsedeploymentpendingpreparedstackextendgcpresource.md: + last_write_checksum: sha1:9166f97fd966a968389b17342687ef5644f10e6e + docs/models/syncacquireresponsedeploymentpendingpreparedstackextendgcpstack.md: + last_write_checksum: sha1:920d1eb91992cfb15fe720bf30c5a89b7e410753 + docs/models/syncacquireresponsedeploymentpendingpreparedstackextendplatforms.md: + last_write_checksum: sha1:c0f41e5dd650d6e08877b7f089344951bd4f1fca + docs/models/syncacquireresponsedeploymentpendingpreparedstackextendresourceconditionunion.md: + last_write_checksum: sha1:cdbc70b1eb55096cc075c4dbebd1b8b8f7ae7542 + docs/models/syncacquireresponsedeploymentpendingpreparedstackextendstackconditionunion.md: + last_write_checksum: sha1:febf0738a492267b5651f3798461b771118617a9 + docs/models/syncacquireresponsedeploymentpendingpreparedstackextendunion.md: + last_write_checksum: sha1:0e387c6967e7d506ce291bd7c4561c0f514c967d + docs/models/syncacquireresponsedeploymentpendingpreparedstackinput.md: + last_write_checksum: sha1:a53cb2a5c565c2852599b015c1c7dbb852417f62 + docs/models/syncacquireresponsedeploymentpendingpreparedstackkind.md: + last_write_checksum: sha1:b62b83916a884c7a2ad218d1be07168fb0dd2ec3 + docs/models/syncacquireresponsedeploymentpendingpreparedstacklifecycle.md: + last_write_checksum: sha1:4d38bd2c8d237e282cf498a29c2450e775525ba3 + docs/models/syncacquireresponsedeploymentpendingpreparedstackmanagement1.md: + last_write_checksum: sha1:cfd7d309f5e66c42114e06766abc80d709fb5e03 + docs/models/syncacquireresponsedeploymentpendingpreparedstackmanagement2.md: + last_write_checksum: sha1:fff2afc2d8bb2ff2d601cdb378a747ebd52ca6bc + docs/models/syncacquireresponsedeploymentpendingpreparedstackmanagementenum.md: + last_write_checksum: sha1:91bf255266d2672d127f6a0b5d4d69c24f200203 + docs/models/syncacquireresponsedeploymentpendingpreparedstackmanagementunion.md: + last_write_checksum: sha1:6b5221acd8c942649269692bd5ce11fa0297fdc6 + docs/models/syncacquireresponsedeploymentpendingpreparedstackoverride.md: + last_write_checksum: sha1:6b0c69dbd2ec182897a1820ae90d63eb9c18c928 + docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideaw.md: + last_write_checksum: sha1:286f1bba137b6e2500e12e8966968a29266acd25 + docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideawbinding.md: + last_write_checksum: sha1:9095e9bfe04a80f902bc4330c9ab976fc22c2177 + docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideawgrant.md: + last_write_checksum: sha1:51eac5b21db0d6eb4eb1a37fd646891b0781a697 + docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideawresource.md: + last_write_checksum: sha1:63115cf08fa2ea1e35466f2a8f0964ad617511df + docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideawstack.md: + last_write_checksum: sha1:554218c187392c1e8728cb12e058aea1c6016fd1 + docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideazure.md: + last_write_checksum: sha1:0f20d308a4e4a7f91612a71ea2599780109d2bef + docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideazurebinding.md: + last_write_checksum: sha1:770899c62adbc20b04f9c6421377ab969dc9a969 + docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideazuregrant.md: + last_write_checksum: sha1:73aafa8627cf2620f13060e1de3a655105d9fd6a + docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideazureresource.md: + last_write_checksum: sha1:c96485b874932cb618d9d3ac7e1351933110e385 + docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideazurestack.md: + last_write_checksum: sha1:6938f4e924727c0ae6a4b613d690735b1c2e7a22 + docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideconditionresource.md: + last_write_checksum: sha1:f0d4ba3a4f09a23396c7a215653b8509a8b43691 + docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideconditionstack.md: + last_write_checksum: sha1:02632c91220a94cc06bbea118257807880247503 + docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideeffect.md: + last_write_checksum: sha1:18221d46f06154a4e5aa2dac884087bd402c3b08 + docs/models/syncacquireresponsedeploymentpendingpreparedstackoverridegcp.md: + last_write_checksum: sha1:2ac992e17ed728146aba3f0736c72e54b547ae19 + docs/models/syncacquireresponsedeploymentpendingpreparedstackoverridegcpbinding.md: + last_write_checksum: sha1:a51802bcccba6d96fca742be576b9502989ea26f + docs/models/syncacquireresponsedeploymentpendingpreparedstackoverridegcpgrant.md: + last_write_checksum: sha1:4c9cff1ac6d47d62989f7699b3e63aebe50bf107 + docs/models/syncacquireresponsedeploymentpendingpreparedstackoverridegcpresource.md: + last_write_checksum: sha1:fe3561fc03b2736cc9e7e7192e571886deeb7e25 + docs/models/syncacquireresponsedeploymentpendingpreparedstackoverridegcpstack.md: + last_write_checksum: sha1:5dedbf65ed8e6361bdf39b0d17cf2ac09ab284c7 + docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideplatforms.md: + last_write_checksum: sha1:f03091a18e366d7a425b5a2fb7aa923d8430328c + docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideresourceconditionunion.md: + last_write_checksum: sha1:df29a490cdd3080067078e809ebb52ebf97f8065 + docs/models/syncacquireresponsedeploymentpendingpreparedstackoverridestackconditionunion.md: + last_write_checksum: sha1:042514bce24defe550374b961cf77bf3d46177c5 + docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideunion.md: + last_write_checksum: sha1:868a56c0fff52d4bb78dc36a86da4b3630369555 + docs/models/syncacquireresponsedeploymentpendingpreparedstackpermissions.md: + last_write_checksum: sha1:48fef78c3591a18dec7b70385176d332e5532bdf + docs/models/syncacquireresponsedeploymentpendingpreparedstackplatform.md: + last_write_checksum: sha1:206f3a73dc6c30e52e2be683f4b6bbe86ca5da79 + docs/models/syncacquireresponsedeploymentpendingpreparedstackprofile.md: + last_write_checksum: sha1:3a304d5fa0b5c76f2f35dad29beae106c189db39 + docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileaw.md: + last_write_checksum: sha1:de47b629c20a3294eb0b01f412e9ba834c498c9d + docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileawbinding.md: + last_write_checksum: sha1:88ba16da67bd462089f0ea5bdbea445e4d0cedcd + docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileawgrant.md: + last_write_checksum: sha1:66b5cc719d2c8ccd53bfc7851cc7ce9cffca7841 + docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileawresource.md: + last_write_checksum: sha1:d97711cf52d0b8884e148f2babfcd23c4ea3c471 + docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileawstack.md: + last_write_checksum: sha1:8f82efe38dfccc393b2a5086ae5d1e322d44682d + docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileazure.md: + last_write_checksum: sha1:cf863ac96cac55233386dcf51a6847b073ec7752 + docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileazurebinding.md: + last_write_checksum: sha1:32ff87cbf896a323b9bf9d6306a068e9051a5213 + docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileazuregrant.md: + last_write_checksum: sha1:842aa04bbf51adc026629a9dd04f0cbcbe2fbfe7 + docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileazureresource.md: + last_write_checksum: sha1:ee73be7bf817eb4c2cb3a197960e03f519e06be2 + docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileazurestack.md: + last_write_checksum: sha1:e1416f8c408a93126d382c8997afc61c2e1aa766 + docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileconditionresource.md: + last_write_checksum: sha1:4577c0f0ab65eb508641e0774771f37c9cf14e00 + docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileconditionstack.md: + last_write_checksum: sha1:b3e3938cb51a1c19629473a207ac63a992446458 + docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileeffect.md: + last_write_checksum: sha1:ba49a3ce6ccd45ab1e4079b5675f1ae73c705665 + docs/models/syncacquireresponsedeploymentpendingpreparedstackprofilegcp.md: + last_write_checksum: sha1:556131cdd24e78fe180a55252b0ee7493675133d + docs/models/syncacquireresponsedeploymentpendingpreparedstackprofilegcpbinding.md: + last_write_checksum: sha1:bb629ae92150556549ce28fb782e7a96ce3dc9b9 + docs/models/syncacquireresponsedeploymentpendingpreparedstackprofilegcpgrant.md: + last_write_checksum: sha1:07e51def84252f28267369fa3f947ef4fde1526d + docs/models/syncacquireresponsedeploymentpendingpreparedstackprofilegcpresource.md: + last_write_checksum: sha1:272a59d1dd84d951113df276439ce4221041a4ce + docs/models/syncacquireresponsedeploymentpendingpreparedstackprofilegcpstack.md: + last_write_checksum: sha1:647b5a5b282682756b2681f160ebbac0da0a812a + docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileplatforms.md: + last_write_checksum: sha1:e5195d5db2285dc81ad1349de96f38f493421b37 + docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileresourceconditionunion.md: + last_write_checksum: sha1:5ab17c767f8b3acab540afc0f4acaf0abfcd7787 + docs/models/syncacquireresponsedeploymentpendingpreparedstackprofilestackconditionunion.md: + last_write_checksum: sha1:4fb532e1da7f03d221de0cfd0f9afe24d400317e + docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileunion.md: + last_write_checksum: sha1:568ec8500ea00e4b2f20dbddbda467748807ff62 + docs/models/syncacquireresponsedeploymentpendingpreparedstackprovidedby.md: + last_write_checksum: sha1:88d6136cda292f4bd28834269f7f2956c35cfbb9 + docs/models/syncacquireresponsedeploymentpendingpreparedstackresources.md: + last_write_checksum: sha1:55a0b3ec38dca83a90548909e6e8b0a1dc511ca1 + docs/models/syncacquireresponsedeploymentpendingpreparedstacksupportedplatform.md: + last_write_checksum: sha1:f2abbcc83339a4f0c49c535acb0e4a7f313d5a28 + docs/models/syncacquireresponsedeploymentpendingpreparedstacktypeboolean.md: + last_write_checksum: sha1:04b89e45e02104b3ae9f94d7a68b196d51bfdb30 + docs/models/syncacquireresponsedeploymentpendingpreparedstacktypeenvenum.md: + last_write_checksum: sha1:edb90792fc3321388c85910ad95f97848af5451e + docs/models/syncacquireresponsedeploymentpendingpreparedstacktypenumber.md: + last_write_checksum: sha1:88ef3ad7e40aed77df7a9d848dbf16b89c244738 + docs/models/syncacquireresponsedeploymentpendingpreparedstacktypestring.md: + last_write_checksum: sha1:fa080013f6f689235d7d38f7dbe578dc159a0091 + docs/models/syncacquireresponsedeploymentpendingpreparedstacktypestringlist.md: + last_write_checksum: sha1:d689bb45ce2e06075f84f0359f12821bd2b1fc0e + docs/models/syncacquireresponsedeploymentpendingpreparedstacktypeunion.md: + last_write_checksum: sha1:b06bdbd93210c2c90b68ba1e46afe77c35e22917 + docs/models/syncacquireresponsedeploymentpendingpreparedstackunion.md: + last_write_checksum: sha1:3285fb29c444cf9467b3f02c66db3f59def291ee + docs/models/syncacquireresponsedeploymentpendingpreparedstackvalidation.md: + last_write_checksum: sha1:21639897aff95c513462d500112ecbbf3ce029ed + docs/models/syncacquireresponsedeploymentpendingpreparedstackvalidationunion.md: + last_write_checksum: sha1:357fad6c2d181515492800b4c6ad5c6b22fd97b7 docs/models/syncacquireresponsedeploymentplatformkubernetes.md: id: f0861dfe0f54 last_write_checksum: sha1:e26415c5007cbfeac61af9ed72aadd2ce3656faa @@ -19692,11 +20692,11 @@ trackedFiles: pristine_git_object: 22b64e6e41c6d3507cab6179ee6c7fd046bb920f docs/models/syncacquireresponsedeploymentpoolsautoscale.md: id: 98a651c04c5c - last_write_checksum: sha1:2fa00c99a5eb65c22396349f0e2bc0fe15a042cd + last_write_checksum: sha1:2e57b3b748531dbeb829dd28031c8ade9c80572e pristine_git_object: 7e2e5214d1c743be9cb549d7e9034be058bd72d6 docs/models/syncacquireresponsedeploymentpoolsfixed.md: id: b6d3e243ea78 - last_write_checksum: sha1:165c97a967d08d5bb53c6f09355fd33ac7afce00 + last_write_checksum: sha1:f19ddcf0b66b54db0093445e47214475b41de691 pristine_git_object: dcbf4ac1512493156f6bd56bbcbaa688876ea030 docs/models/syncacquireresponsedeploymentpoolsunion.md: id: a67ed1c4e997 @@ -20116,7 +21116,7 @@ trackedFiles: pristine_git_object: 2436d8c74b7c64aa297304ea1a67b4c6a5a1cc93 docs/models/syncacquireresponsedeploymentpreparedstackresources.md: id: d7c61cb46db5 - last_write_checksum: sha1:e01609219005d03977beadb5dfb76ecc3b4d4b77 + last_write_checksum: sha1:c1c5c684e7566d507dbce12bc743d002f2588cd6 pristine_git_object: 68a040394f248b2ca508b09eb9778c8c5ec0dc66 docs/models/syncacquireresponsedeploymentpreparedstacksupportedplatform.md: id: 1a6680852cb6 @@ -20512,12 +21512,24 @@ trackedFiles: pristine_git_object: 557d8d6e9d46e585a2a7d6d465b92e674f1dfa6a docs/models/syncacquireresponsedeploymentruntimemetadata.md: id: bc02f64dd801 - last_write_checksum: sha1:7dcf92b43a238894a6c35c686018b023c5a7d190 + last_write_checksum: sha1:5a6bcc5c1a34313810f37208f946347d530fe3c5 pristine_git_object: b010fd0d7111901a1d59741b54cf2fbfc7b46100 docs/models/syncacquireresponsedeploymentruntimemetadataunion.md: id: dc95f572d991 last_write_checksum: sha1:e79683ef7808ec0a76eca643681dfb3b8df21163 pristine_git_object: 72a5d1095ee8a126da0d67c82851cbb096d689ae + docs/models/syncacquireresponsedeploymentservercacertificates.md: + last_write_checksum: sha1:1ef4a3390c0d994b4781003ae88999c17dc401ce + docs/models/syncacquireresponsedeploymentservercacertificatessecretref.md: + last_write_checksum: sha1:2617432e0615e68da0a1402b2cf910ad08223ee9 + docs/models/syncacquireresponsedeploymentservercacertificatesunion.md: + last_write_checksum: sha1:632acaf1a6e3290f5dd99694031a3aa77363c494 + docs/models/syncacquireresponsedeploymentsetupupdateauthorization.md: + last_write_checksum: sha1:492ee4c2a78edc0d4e1f03c17dc3f1eafc315c72 + docs/models/syncacquireresponsedeploymentsetupupdateauthorizationunion.md: + last_write_checksum: sha1:fd059bd6d6633461ca1c53122b39cf33d7a0bc74 + docs/models/syncacquireresponsedeploymentsslmode.md: + last_write_checksum: sha1:c995b9dac23fbfea9d4f2f8a305f151d12112fda docs/models/syncacquireresponsedeploymentstacksettings.md: id: f9634456a469 last_write_checksum: sha1:3866fb12d5e5decaaf598478c15a7153c329c4f1 @@ -20992,7 +22004,7 @@ trackedFiles: pristine_git_object: 796cd544ac997f2356bd9823cb0a57afe2ca46dd docs/models/syncacquireresponsedeploymenttargetreleaseresources.md: id: a307c72910ed - last_write_checksum: sha1:51824ff80e66c60692b2d3507fb7a10b6af0496b + last_write_checksum: sha1:db2f1736f089d2dd210fe6b424a29437d41069f2 pristine_git_object: 81c49f55420685bfe31e85e1c8ecd8229387fc92 docs/models/syncacquireresponsedeploymenttargetreleasestack.md: id: f3451686d876 @@ -21058,6 +22070,8 @@ trackedFiles: id: c046e5f80504 last_write_checksum: sha1:a48dff0cb41e6388266764213cc9bd0f4f518c2e pristine_git_object: 2d1bbcb5f6d3afee82c73f571d1b168c6910296f + docs/models/syncacquireresponsedeploymenttypeai.md: + last_write_checksum: sha1:ef31691de70668d28077ef7011ea00e5781166dc docs/models/syncacquireresponsedeploymenttypeartifactregistry1.md: id: b6686ea92f05 last_write_checksum: sha1:868a722b4be45bfca762de2982dd4b369dd4e866 @@ -21324,7 +22338,7 @@ trackedFiles: pristine_git_object: e94dd51309bf6509fbe4d46b2eaabe7e27f096bd docs/models/synclistresponse.md: id: b32dae5c9df7 - last_write_checksum: sha1:57f1f843d14939cd40fdfc77b26ff6c3307a9558 + last_write_checksum: sha1:27289d1f74f30a5a24e213934a358b69359a92cd pristine_git_object: 9796c5bdd38e92b33a6366756bc83f880971e5b0 docs/models/synclistresponseaws.md: id: 0c4db6c5cf1e @@ -21430,29 +22444,9 @@ trackedFiles: id: 0e0153f2e9c1 last_write_checksum: sha1:90aca003dc9a88163cec6a9a58ad2f75e33ef725 pristine_git_object: 6e0f32ddc269a2b4807324214e6e96ef6ad10e29 - docs/models/synclistresponsedefaultboolean.md: - id: 822059219c75 - last_write_checksum: sha1:b3bdc87f3b7c5b42008a16a3165fe522902c1eea - pristine_git_object: b2a0889bd31f756f6727ea35212068023c42b996 - docs/models/synclistresponsedefaultnumber.md: - id: 037f1adf12a1 - last_write_checksum: sha1:9ab2d85c6ad3d69d41971c42f40b162f128b1787 - pristine_git_object: d6dd25184524c79b9fe97548bd8f7e42bc65df52 - docs/models/synclistresponsedefaultstring.md: - id: eb70840becff - last_write_checksum: sha1:20e70b175a012040869e9605787de5b80dc0ed7a - pristine_git_object: 25b1dc755cacf11e12704819a0bf38104b4e4d73 - docs/models/synclistresponsedefaultstringlist.md: - id: 9e871381b316 - last_write_checksum: sha1:b17b007ff44c20da89b188a61cfad9e9277cbdd0 - pristine_git_object: 951d4a07aa781956da3a268e528748b00481ad26 - docs/models/synclistresponsedefaultunion.md: - id: d86eb365ddd1 - last_write_checksum: sha1:dea922dc50803c81426ecf6c0fa489391f5e2f32 - pristine_git_object: 0047656f46cc24ded8e80e851d5cad76892f7eec docs/models/synclistresponsedeployment.md: id: d74bef4848ee - last_write_checksum: sha1:28a664acae50420baa5da4431cdda9ee9aca5cdd + last_write_checksum: sha1:54f0b480d166651835c616083f261828c041dbbb pristine_git_object: fff640a76779235249dac9a314d5d67a478ab2cc docs/models/synclistresponsedeploymentmodel.md: id: c3122380abb4 @@ -21478,10 +22472,6 @@ trackedFiles: id: 6ff9db0826e5 last_write_checksum: sha1:07331d25c8384c919e51326649b61628a895326d pristine_git_object: 2f2b79aa42a433fc031fe2b660d80b2992ebb7fa - docs/models/synclistresponseenv.md: - id: caf19ddd744a - last_write_checksum: sha1:9c8a4e180dbd4d484ff1b6e7330a0b2d9cd168b8 - pristine_git_object: f0e44e69e8f49742ee1071a081efd1704f7230fa docs/models/synclistresponseenvironmentinfoaws.md: id: 2499d212136d last_write_checksum: sha1:baac5b94b17fc77fbe1f7d7d76c11c2cc828dbde @@ -21546,102 +22536,18 @@ trackedFiles: id: 0e5d6992c8f5 last_write_checksum: sha1:26bfb4af1066c3d8798e38dd7d9ff13fddadc263 pristine_git_object: 1973534f30eac549c684531102cee2332210144a - docs/models/synclistresponseextend.md: - id: ec41d1721466 - last_write_checksum: sha1:04ccc58e3f516f0a1046850abf864c9a1f11d5b7 - pristine_git_object: 743a86a47b988d42d9b6c600272c19ba60905e72 - docs/models/synclistresponseextendaw.md: - id: 521b9831f963 - last_write_checksum: sha1:dcd5abc9aeee9c16e38e229b8b767a0b93faafde - pristine_git_object: 3f7936debb5adba2834409055dcff894e50e0cef - docs/models/synclistresponseextendawbinding.md: - id: ad99c8de1c12 - last_write_checksum: sha1:37d9a80a0ea6a8920ef4462aa88491e546b85ac0 - pristine_git_object: 51ea4792d7d02150fc6705ad5d092852b23ce5d9 - docs/models/synclistresponseextendawgrant.md: - id: 797c8aaefd73 - last_write_checksum: sha1:5782a220c63eec5a36d28c164a63eedd8c21ffe9 - pristine_git_object: 2bb849031c01f8775fa0ad59e5e336b73c98aeab - docs/models/synclistresponseextendawresource.md: - id: 467964c7e633 - last_write_checksum: sha1:274d4bf935f130b8c33757f5eeea8453a7554a1d - pristine_git_object: b2be0d1fbd22770578428981877546fc95abf331 - docs/models/synclistresponseextendawstack.md: - id: de34b0c7752a - last_write_checksum: sha1:c44f923829faa0767c9c53ee8ab70a916f58fabf - pristine_git_object: d3b13a9f287ca2d02115178f93027f225ce6cd38 - docs/models/synclistresponseextendazure.md: - id: 62c4511d269a - last_write_checksum: sha1:6a8d47f05cf955961d5ce14b147f774d5baff76f - pristine_git_object: af9ef502251948344f7febb58e84eaf29e26c13e - docs/models/synclistresponseextendazurebinding.md: - id: a981c5248a73 - last_write_checksum: sha1:c5aa851b058383779373740743c9035e1a6eb17e - pristine_git_object: d29956fb251181891470e43d5805fd090ab5ab37 - docs/models/synclistresponseextendazuregrant.md: - id: 672877fbb2d9 - last_write_checksum: sha1:4533786316d5a77fd6590bba16d5dd85611a76b0 - pristine_git_object: e1826ffb84284ab423ba662f3e279cc27bad46c0 - docs/models/synclistresponseextendazureresource.md: - id: 32788246d7e1 - last_write_checksum: sha1:b4ef4596d2356fbbb2d2b87d258615b9c8eae003 - pristine_git_object: 2a7d635e413a885950c21514be30279294f91331 - docs/models/synclistresponseextendazurestack.md: - id: c98ae1928b55 - last_write_checksum: sha1:d3a16c9996857b5a27a7d4c8a9e0d15b2ca02afa - pristine_git_object: 8e95ca2d215927369a983fd59a14154e3fa725a9 - docs/models/synclistresponseextendconditionresource.md: - id: 97fccb5c1473 - last_write_checksum: sha1:fedddeac8a4c5fcef64538bc8d7c91dde9237a9b - pristine_git_object: b2506c3f67e64a2d3e7f49abda6e093eb2f8666c - docs/models/synclistresponseextendconditionstack.md: - id: e17f26576ee5 - last_write_checksum: sha1:6b49017006eba873da3856744e9abe3c06aaf532 - pristine_git_object: bcec1de1714691af85ccf8bf1f60fa515ab09b99 - docs/models/synclistresponseextendeffect.md: - id: 07ce4262bed4 - last_write_checksum: sha1:d2d528ecfb860b427b18913e7f419ee66e4e683a - pristine_git_object: 8d02d1aaf0dcd70f922f61485612387119b62d41 - docs/models/synclistresponseextendgcp.md: - id: c8f2e8693b7c - last_write_checksum: sha1:b20cb492a1d9653ef6ee1885d18afd0d26b167a0 - pristine_git_object: 91b9a24edb5a265912fb09e879a982c1eefb9da5 - docs/models/synclistresponseextendgcpbinding.md: - id: b71658d749ef - last_write_checksum: sha1:81b70f96c3a2f28a40beee3f1000e303eefe72ff - pristine_git_object: 4cca2543014a8b3a823bfdfea09d67e8893fbf6f - docs/models/synclistresponseextendgcpgrant.md: - id: 5303e54aeb25 - last_write_checksum: sha1:0b6155a53398a6347be41a940a5aef067c5bc989 - pristine_git_object: 3cf7795c7cde1e5499972d561b789e6673ae46ab - docs/models/synclistresponseextendgcpresource.md: - id: 9e0a1826489a - last_write_checksum: sha1:ba967b3852c35e7e40fd863ed2927807f505af29 - pristine_git_object: 2145e1ee8db052aee0703de46c7499c774f9ffd5 - docs/models/synclistresponseextendgcpstack.md: - id: 3d9c6099b42f - last_write_checksum: sha1:ad924c29216870fa96ad0e00d9a37405cb7fbff1 - pristine_git_object: 30d72bc2bd82c4ba66b476194ad3fd58d6c5907f - docs/models/synclistresponseextendplatforms.md: - id: 4d9853ade46d - last_write_checksum: sha1:014eeebd0373fbd1e7e954da49892b2efffdad74 - pristine_git_object: 71b73ebe53b9c6efd4d35af85a71ab002768cc71 - docs/models/synclistresponseextendresourceconditionunion.md: - id: c56195160a53 - last_write_checksum: sha1:47a446706cddc4a79a7190d7b236206650286725 - pristine_git_object: 4ffbc3802a821841544b694845ff537375848294 - docs/models/synclistresponseextendstackconditionunion.md: - id: 9b0ff7221b0a - last_write_checksum: sha1:21950c676b91f5c554f2c041d0d52941ef747330 - pristine_git_object: ce110ef1b253b06f18070b2bfb3209a65de1c9ea - docs/models/synclistresponseextendunion.md: - id: d9eb15ff2550 - last_write_checksum: sha1:4f610cf860cb6d1fdde36c6f064ce5d402ad918d - pristine_git_object: 4cf0f217d6e7adee76bdc19bbceea75896c8fe33 docs/models/synclistresponseexternalbindings.md: id: a059a18e26ee last_write_checksum: sha1:2e0e8ab1a05c2f7e90f0e951aa168bc27d66165f pristine_git_object: 8884cd7b0b63c4b7fd537aee018202932ac1756a + docs/models/synclistresponsefailuredomains1.md: + last_write_checksum: sha1:ad74dbb82ec616e75994a18ae66cfd64cf84ce4d + docs/models/synclistresponsefailuredomains2.md: + last_write_checksum: sha1:78651d6bec111f9c6d4843283366e064f5765535 + docs/models/synclistresponsefailuredomainsunion1.md: + last_write_checksum: sha1:e1cdd1331bc2ab50ed5306d71b807df69dc073c7 + docs/models/synclistresponsefailuredomainsunion2.md: + last_write_checksum: sha1:d3203f908e4ae82fd2e4850615c10fdd1c918c08 docs/models/synclistresponsegcpstacksettings.md: id: 842fe13129b0 last_write_checksum: sha1:9785635122d85bc24368297f24fe8bc41b034072 @@ -21658,14 +22564,8 @@ trackedFiles: id: 7ee088b95bf2 last_write_checksum: sha1:a0feafa332b76bc4045ae607bf09f629939823c5 pristine_git_object: e2aec9a5a2e66731787ce10c8e385c357b8916aa - docs/models/synclistresponseinput.md: - id: 0a214055b56e - last_write_checksum: sha1:510317100844e1f91bcb368d3854a34a3bebbaa2 - pristine_git_object: 4eb827ea61377b87f65218e8afe5b06e2d54631b - docs/models/synclistresponsekind.md: - id: 657447ff68eb - last_write_checksum: sha1:e9760fcb1220f079d116feead798e9c96161624f - pristine_git_object: 69657de70a2dbf8d99aeac77007d5421d336f7b6 + docs/models/synclistresponseinitialsetupauthority.md: + last_write_checksum: sha1:7e11de3dd642de45024fc7d9e5d4ae6f6a03af0b docs/models/synclistresponsekubernetes.md: id: 4f8f2108f0d5 last_write_checksum: sha1:6e22784b63b587b70c516a45a60f300f3871c139 @@ -21682,14 +22582,6 @@ trackedFiles: id: d0048c09424e last_write_checksum: sha1:71efaed4c1a4c3bcc33f7618f07d5820d6f6f4e7 pristine_git_object: a5ecaf8307c91449cf32fded0a2f124ab4dd62ae - docs/models/synclistresponsemanagement1.md: - id: f7ee33449bcd - last_write_checksum: sha1:99124ec883350a38e9f996f772b7d304ca4638b5 - pristine_git_object: 0c9b0ed5f5a7d44b2e920ce44a51f854ed1f2cee - docs/models/synclistresponsemanagement2.md: - id: 7d06daee21be - last_write_checksum: sha1:734aa5d49751db3defc0e4ee6feff0de3c62dab8 - pristine_git_object: 4c1f3e19063d6b2860005411b129d255e140d861 docs/models/synclistresponsemanagementconfigaws.md: id: 448ce09dbbc5 last_write_checksum: sha1:009a044e9ec569f27f546695ab6cdef4752b7f68 @@ -21722,14 +22614,6 @@ trackedFiles: id: c4072bc5de70 last_write_checksum: sha1:98aac677805a5019a4a14bfc1052bcdc9f2e2471 pristine_git_object: 3bd8c52c8afde88c1f7ac64afaffd4979838769f - docs/models/synclistresponsemanagementenum.md: - id: 9d25c79bd2a5 - last_write_checksum: sha1:53970bf05297a69bfbc3ccaacaec02e9bb880d1c - pristine_git_object: 8f3de0fa0e38ff4875ebe5618e644d8500352222 - docs/models/synclistresponsemanagementunion.md: - id: 571fb54372e5 - last_write_checksum: sha1:c298871d2e689006c2934bfe6c4ff3f820c00c99 - pristine_git_object: 580b016ea76436d96a60e4c819c9c18a5dad195d docs/models/synclistresponsemodecustom.md: id: 9b66a267c7da last_write_checksum: sha1:b6caa21872b496d9f71d017afb43b4ac707c05b0 @@ -21782,106 +22666,208 @@ trackedFiles: id: f646aff7eb10 last_write_checksum: sha1:2bcced092c44e968901f12fad1abb6d0d313014e pristine_git_object: a2403ad0914d634b73f0e36e43520734f6ecfd7e - docs/models/synclistresponseoverride.md: - id: 3f0da1f08094 - last_write_checksum: sha1:98b26fe325f1f057d911a53efcbe027e5d818a08 - pristine_git_object: bdc4c6734af50e6d2ae3cf5d38f47b327a15b148 - docs/models/synclistresponseoverrideaw.md: - id: efb41d92a690 - last_write_checksum: sha1:aa682ad0dcba100cd0d5bf74352326b8a0e9fcc3 - pristine_git_object: 0f48bc470a618de66a4d500b980560f4728e64bb - docs/models/synclistresponseoverrideawbinding.md: - id: 49d5db55aacf - last_write_checksum: sha1:1b7cc70d6b7dcee86938b246caa4f9e7514b009b - pristine_git_object: 6211e89c59b6ab124029fa2dae86992a21cc1e86 - docs/models/synclistresponseoverrideawgrant.md: - id: c1b22bef4b45 - last_write_checksum: sha1:2c5f5d4360f34c27f9f1f4f16aaba80207d28d9a - pristine_git_object: ddffe3050a64a9bb82d8359fba16c9dacb7b13ae - docs/models/synclistresponseoverrideawresource.md: - id: d8cc7c3399ff - last_write_checksum: sha1:d34b0f19216f0e1e5c1c989254c06389f9ce5b2e - pristine_git_object: 006538549213820b939d630016faed334d0dee76 - docs/models/synclistresponseoverrideawstack.md: - id: ef97dd7c25a6 - last_write_checksum: sha1:3aca45ad3d94484d63d2c638e5cca73aec5e1f9b - pristine_git_object: 420e6009091252497022053639b2708efb969f6e - docs/models/synclistresponseoverrideazure.md: - id: ffc68c262483 - last_write_checksum: sha1:a7bae6fc30da70aa6f0f78f1112682e52b1abd1d - pristine_git_object: 2eff38ca8fa2adb40ff4151571393b21bfe626c9 - docs/models/synclistresponseoverrideazurebinding.md: - id: e0b764e982bf - last_write_checksum: sha1:68165667da9500a4f99b58bc24716e8844190282 - pristine_git_object: 3cb01c11bd25469375fac44c1524922a5f0c4411 - docs/models/synclistresponseoverrideazuregrant.md: - id: 0def5bb57ac9 - last_write_checksum: sha1:64e48e9974a0673896f7d4ba526873d7f671bb19 - pristine_git_object: c14ac3a8335cdc472985ca9e9cb3e04683ac2218 - docs/models/synclistresponseoverrideazureresource.md: - id: de744c5bf0fd - last_write_checksum: sha1:858e1fa590b18ce7cfdeafd82a6d0ecd85c4ed40 - pristine_git_object: 6d01fc344df7bc2f240c8c5eae73dd0de672dfe4 - docs/models/synclistresponseoverrideazurestack.md: - id: 1e56d4be85ed - last_write_checksum: sha1:3ca65891b617da5536a54820d9f84899c1c42e7e - pristine_git_object: 30fc35b6966cb93d02e02d41447c7fe09fcc9752 - docs/models/synclistresponseoverrideconditionresource.md: - id: 0fd50ad01822 - last_write_checksum: sha1:18d75000f784f91df96085d00e54020718b15269 - pristine_git_object: a511107caf3afa96d4708aa5b25215d9e85910f0 - docs/models/synclistresponseoverrideconditionstack.md: - id: 8c7c720d7e16 - last_write_checksum: sha1:6f61af5fddd5945dc6dbc74c63298f10ee1c59fd - pristine_git_object: aaa5905d1766882da26523f449aaab018ce83852 - docs/models/synclistresponseoverrideeffect.md: - id: 421ea92dac7c - last_write_checksum: sha1:dfb984887a567bea66949dd12ff858b763c2232b - pristine_git_object: 0dbcfb1e3097d1820d1d9331aec5b9d6ada13f5b - docs/models/synclistresponseoverridegcp.md: - id: 86acfc9b6447 - last_write_checksum: sha1:c07ba2af9e438a4e21d1a8ba618e7a104c6808eb - pristine_git_object: b7123593a8ed928108bb18f58998378107891e12 - docs/models/synclistresponseoverridegcpbinding.md: - id: b8a51c17b25e - last_write_checksum: sha1:0e336e6c77ede0f32d101555ccc136a18180a3d6 - pristine_git_object: 4da41718502202ece76c54251b3cd2a422b3ec86 - docs/models/synclistresponseoverridegcpgrant.md: - id: 93764d41dca0 - last_write_checksum: sha1:9dc155ee47b73580f980956eadb1efd6cde07081 - pristine_git_object: 35780b4979e5339c64eb9864d9a0f285a3cfa9e3 - docs/models/synclistresponseoverridegcpresource.md: - id: 0a40d6bf5bb8 - last_write_checksum: sha1:98b7b347eb93d4e2dbc2c1ca4e8f981e5e1b4ea2 - pristine_git_object: 41a7e7ab2cfa16acc6e1634c6c7ced073faf6175 - docs/models/synclistresponseoverridegcpstack.md: - id: fa2b988514ab - last_write_checksum: sha1:5f0a0346f1ff62d588eebfaae2aabec7a7358d03 - pristine_git_object: 2a4a5f5dbc1133dd2e83abe9fc984b343b42db3b - docs/models/synclistresponseoverrideplatforms.md: - id: 5dd711e2d6be - last_write_checksum: sha1:ee90a9f9b4a86df0fd26bf739e7b162b80440d99 - pristine_git_object: 4012fdb164358d13c9fd026d94b659382e2a03ff - docs/models/synclistresponseoverrideresourceconditionunion.md: - id: 1eec8b1e1023 - last_write_checksum: sha1:a0d4e22eab6431804460556edb69eec6e66615a5 - pristine_git_object: d639b1bd571004fa94512d472d5ead876004870d - docs/models/synclistresponseoverridestackconditionunion.md: - id: b19a44f11f60 - last_write_checksum: sha1:37e2ec45ea640f3094081154f422ff784ab0b1e1 - pristine_git_object: b79a2052bb3b0d31351f5f0b02764cc274090e69 - docs/models/synclistresponseoverrideunion.md: - id: 7ed6ddd0ea40 - last_write_checksum: sha1:672a1f44deb0d7f8000ccb163e5ce31adba6237d - pristine_git_object: 3073ddc9abebf6488296a130559d6f339f14620b docs/models/synclistresponseownership.md: id: f2dd135009b1 last_write_checksum: sha1:e0cfba2bf4606e201b758462e497483f1c024603 pristine_git_object: f6f8aa8ae4e648eab17facf3155b2872fba078c4 - docs/models/synclistresponsepermissions.md: - id: 03262a805298 - last_write_checksum: sha1:de201006f5f25e44161a889c7fc92657811f912c - pristine_git_object: bd5a950215a6f6392728ed5d296bbb7c591726da + docs/models/synclistresponsependingpreparedstack.md: + last_write_checksum: sha1:3d19fdac7430be19a5d9e3834dc9413b577b4753 + docs/models/synclistresponsependingpreparedstackconfig.md: + last_write_checksum: sha1:785996a262560c9f2d4fbdd43bc9c5564a7843e5 + docs/models/synclistresponsependingpreparedstackdefaultboolean.md: + last_write_checksum: sha1:43d2d27f050e18e5259ac54796c8db810b64e968 + docs/models/synclistresponsependingpreparedstackdefaultnumber.md: + last_write_checksum: sha1:b7c646e3953f52d731689695ba135fdbaff29b62 + docs/models/synclistresponsependingpreparedstackdefaultstring.md: + last_write_checksum: sha1:ef7c0f82b9911bbb40ef0d918ced5f7881e27801 + docs/models/synclistresponsependingpreparedstackdefaultstringlist.md: + last_write_checksum: sha1:563b96317ac17c265bdc2776f78680e054abf411 + docs/models/synclistresponsependingpreparedstackdefaultunion.md: + last_write_checksum: sha1:5a52d8a0268498534a8a2a77ab0effc07632e409 + docs/models/synclistresponsependingpreparedstackdependency.md: + last_write_checksum: sha1:3c372f783521f5b5c4774e1d69fbcd876bbb61d5 + docs/models/synclistresponsependingpreparedstackenv.md: + last_write_checksum: sha1:d9a54840c4d64eb0a2efb913f717484c83794282 + docs/models/synclistresponsependingpreparedstackextend.md: + last_write_checksum: sha1:3fc7591e3fcfe53f1358475e91420588d4f4d985 + docs/models/synclistresponsependingpreparedstackextendaw.md: + last_write_checksum: sha1:7fbc2675adc993d28a4002dee48c77b69815f843 + docs/models/synclistresponsependingpreparedstackextendawbinding.md: + last_write_checksum: sha1:ad7ca530cbebb2e3f93a4a268878589d1c0608e6 + docs/models/synclistresponsependingpreparedstackextendawgrant.md: + last_write_checksum: sha1:2c54d168e6fb3f52682846e41de9aacf3c7d1a45 + docs/models/synclistresponsependingpreparedstackextendawresource.md: + last_write_checksum: sha1:54a57a65b2761388fadba768c24ebd06f45afb1b + docs/models/synclistresponsependingpreparedstackextendawstack.md: + last_write_checksum: sha1:9e7f2be2321d4d2332f73cec4ce1edb5ebc5147e + docs/models/synclistresponsependingpreparedstackextendazure.md: + last_write_checksum: sha1:6020bb658aa79631f9583b39225eba6c48560f9d + docs/models/synclistresponsependingpreparedstackextendazurebinding.md: + last_write_checksum: sha1:6e6f5d971b0ed1d1c17095fca803380dd0272055 + docs/models/synclistresponsependingpreparedstackextendazuregrant.md: + last_write_checksum: sha1:f87ba1278b598002ee820bbd5291440be9671f9a + docs/models/synclistresponsependingpreparedstackextendazureresource.md: + last_write_checksum: sha1:bbdc53155dcd7545d73dc64277ab1adfbc866fa3 + docs/models/synclistresponsependingpreparedstackextendazurestack.md: + last_write_checksum: sha1:d884dbe1ed1a685e3d620b26124aa766cdc02bc9 + docs/models/synclistresponsependingpreparedstackextendconditionresource.md: + last_write_checksum: sha1:61e980799371959401f2e4862c8a6d5d6811f8c2 + docs/models/synclistresponsependingpreparedstackextendconditionstack.md: + last_write_checksum: sha1:ab2e75442835449551069dfe7707673c6b04bb6d + docs/models/synclistresponsependingpreparedstackextendeffect.md: + last_write_checksum: sha1:ccfaf2d2a489aaf31f58d2c01ea032935b758d82 + docs/models/synclistresponsependingpreparedstackextendgcp.md: + last_write_checksum: sha1:b2d21345dd3fbdb6ce02ecdcd529b9bfd101e0f7 + docs/models/synclistresponsependingpreparedstackextendgcpbinding.md: + last_write_checksum: sha1:75f192edbaace6ea263d9031cf0709472d602360 + docs/models/synclistresponsependingpreparedstackextendgcpgrant.md: + last_write_checksum: sha1:452a7fd5391c137b161ec63ab222aec309be34e7 + docs/models/synclistresponsependingpreparedstackextendgcpresource.md: + last_write_checksum: sha1:da5405bb0628e5de8c9ea6dfc5ddd826ddc92f4f + docs/models/synclistresponsependingpreparedstackextendgcpstack.md: + last_write_checksum: sha1:892369c0cbd8332b4b4c94a0857d3a44d5892edb + docs/models/synclistresponsependingpreparedstackextendplatforms.md: + last_write_checksum: sha1:88203e0aa5c2410238c6782f3d6dbcec9e7cc51a + docs/models/synclistresponsependingpreparedstackextendresourceconditionunion.md: + last_write_checksum: sha1:a1cc4c0ceb86c58ec19a682c633243e5fe42b968 + docs/models/synclistresponsependingpreparedstackextendstackconditionunion.md: + last_write_checksum: sha1:2e91349f2a19684a4e20dfe1515c9ef6b7b797ef + docs/models/synclistresponsependingpreparedstackextendunion.md: + last_write_checksum: sha1:d843e5397430d061d8080c79cb1418cd0738a353 + docs/models/synclistresponsependingpreparedstackinput.md: + last_write_checksum: sha1:e8a8ce50146a27ac0e152cf89ef241cb1e3cde75 + docs/models/synclistresponsependingpreparedstackkind.md: + last_write_checksum: sha1:87b3cf83a3785035c8b16f5f32457a02204c835d + docs/models/synclistresponsependingpreparedstacklifecycle.md: + last_write_checksum: sha1:167e90bd72c9c3840a8bb0abf0d306e89cf95db4 + docs/models/synclistresponsependingpreparedstackmanagement1.md: + last_write_checksum: sha1:9239d4de6d1b97d7896ec59c54362a701790db62 + docs/models/synclistresponsependingpreparedstackmanagement2.md: + last_write_checksum: sha1:0054a18c43e2ca123544afdbd1a23b2c4d315a91 + docs/models/synclistresponsependingpreparedstackmanagementenum.md: + last_write_checksum: sha1:959c3a85945f0bf228d7c207afcee977ea7b1a1d + docs/models/synclistresponsependingpreparedstackmanagementunion.md: + last_write_checksum: sha1:8cd2292345468708bdd4640cb89bc01148baca60 + docs/models/synclistresponsependingpreparedstackoverride.md: + last_write_checksum: sha1:1e2ce77c69cdeda44110c60d36c4bcc5277bf2fa + docs/models/synclistresponsependingpreparedstackoverrideaw.md: + last_write_checksum: sha1:c84e36cc2d6d27cde75a8d4ed0ec2cbcb0f133ef + docs/models/synclistresponsependingpreparedstackoverrideawbinding.md: + last_write_checksum: sha1:2f3aff98c914012c7f0a0d618e92b6ed7d13659f + docs/models/synclistresponsependingpreparedstackoverrideawgrant.md: + last_write_checksum: sha1:20c4a01ed42407d156a834e1022397b00363fc30 + docs/models/synclistresponsependingpreparedstackoverrideawresource.md: + last_write_checksum: sha1:c273a4877e3692d73fa589be6eb873df575ee008 + docs/models/synclistresponsependingpreparedstackoverrideawstack.md: + last_write_checksum: sha1:656fcdce5a85c36c77c3d0f45a2956c9f05cd52d + docs/models/synclistresponsependingpreparedstackoverrideazure.md: + last_write_checksum: sha1:121cc1a7aa0fed2b8f7762f6d6e6f52d9b670511 + docs/models/synclistresponsependingpreparedstackoverrideazurebinding.md: + last_write_checksum: sha1:d98113402b0d2c73b2709dc6b04a394572f39843 + docs/models/synclistresponsependingpreparedstackoverrideazuregrant.md: + last_write_checksum: sha1:cdde6c698989bf47d9424f556d89b590a80d80aa + docs/models/synclistresponsependingpreparedstackoverrideazureresource.md: + last_write_checksum: sha1:acb257594615ca0e6db5282330a0bd5002446906 + docs/models/synclistresponsependingpreparedstackoverrideazurestack.md: + last_write_checksum: sha1:b4e3ded8cf1ec0597a70b2b2b37b986410937c9b + docs/models/synclistresponsependingpreparedstackoverrideconditionresource.md: + last_write_checksum: sha1:453dbbbe992faa39edcc3c4c31d3d00cfee9804f + docs/models/synclistresponsependingpreparedstackoverrideconditionstack.md: + last_write_checksum: sha1:7349ea90b5f46b06c3cf6c5e7c36f0c8a7ddb3ae + docs/models/synclistresponsependingpreparedstackoverrideeffect.md: + last_write_checksum: sha1:47ea57057729bbd3d610ab2e69bc758bed616be1 + docs/models/synclistresponsependingpreparedstackoverridegcp.md: + last_write_checksum: sha1:d4b79251a7e8b87129052f6ee10813a68be53e99 + docs/models/synclistresponsependingpreparedstackoverridegcpbinding.md: + last_write_checksum: sha1:fc3c0e6997e36604b6081472a293009decd1adba + docs/models/synclistresponsependingpreparedstackoverridegcpgrant.md: + last_write_checksum: sha1:57855f6e60a17323445b2fe05323573644d54b2b + docs/models/synclistresponsependingpreparedstackoverridegcpresource.md: + last_write_checksum: sha1:d3281cf3dadb9dbed7895fe0aefae16594919c7a + docs/models/synclistresponsependingpreparedstackoverridegcpstack.md: + last_write_checksum: sha1:924b8767e81c008dcb1b81ff40314f7f45ba7d9a + docs/models/synclistresponsependingpreparedstackoverrideplatforms.md: + last_write_checksum: sha1:d963a9704c89f2b7c056c92cd92116a37517aa11 + docs/models/synclistresponsependingpreparedstackoverrideresourceconditionunion.md: + last_write_checksum: sha1:e8e109158a7640b164e03f68f132ebaad0305c55 + docs/models/synclistresponsependingpreparedstackoverridestackconditionunion.md: + last_write_checksum: sha1:1ff344abb67b2da1e95993d377f41f5e3967e57a + docs/models/synclistresponsependingpreparedstackoverrideunion.md: + last_write_checksum: sha1:d9d16d613da6cb9ac3043634f243e926054c8e19 + docs/models/synclistresponsependingpreparedstackpermissions.md: + last_write_checksum: sha1:e31bcd633584825eb0fe05f2c6b821beddadd8ce + docs/models/synclistresponsependingpreparedstackplatform.md: + last_write_checksum: sha1:c4a4a0bc1d112c7a6420bf811a486bd97a633711 + docs/models/synclistresponsependingpreparedstackprofile.md: + last_write_checksum: sha1:b7707bf0647549b3643cbf9be7405a5b62e6b62a + docs/models/synclistresponsependingpreparedstackprofileaw.md: + last_write_checksum: sha1:1a498bd4e06ade38c0419ed0b551d7f37fb6df6c + docs/models/synclistresponsependingpreparedstackprofileawbinding.md: + last_write_checksum: sha1:c454b131fdd9bb71493aa8e117a045b0a2ca2518 + docs/models/synclistresponsependingpreparedstackprofileawgrant.md: + last_write_checksum: sha1:ae0522fc521d46a36535af946d3f8cb5fcffaed2 + docs/models/synclistresponsependingpreparedstackprofileawresource.md: + last_write_checksum: sha1:64415a8709dc9f08ad0ee11dc8c807d9ec187d72 + docs/models/synclistresponsependingpreparedstackprofileawstack.md: + last_write_checksum: sha1:be4274fbf6b50257a3ced369418d2de75640e1bf + docs/models/synclistresponsependingpreparedstackprofileazure.md: + last_write_checksum: sha1:8b9a9de7918a29e3e557315b40e86b1a3f6bd5c9 + docs/models/synclistresponsependingpreparedstackprofileazurebinding.md: + last_write_checksum: sha1:d071e9829687d5be8d42183c76339681a768ae82 + docs/models/synclistresponsependingpreparedstackprofileazuregrant.md: + last_write_checksum: sha1:bafac7bf126f9015b25191a3fd67dc36e47633eb + docs/models/synclistresponsependingpreparedstackprofileazureresource.md: + last_write_checksum: sha1:f9a5648b6cf6a3ad67305d38e77e4c16545bad69 + docs/models/synclistresponsependingpreparedstackprofileazurestack.md: + last_write_checksum: sha1:4c7813c072d83a388e463352d86cf4f35d439d69 + docs/models/synclistresponsependingpreparedstackprofileconditionresource.md: + last_write_checksum: sha1:28ed9dafb042176c5ec26e325a99ea78d96d2640 + docs/models/synclistresponsependingpreparedstackprofileconditionstack.md: + last_write_checksum: sha1:cef54443da14705a226ae70e212964a9b018a444 + docs/models/synclistresponsependingpreparedstackprofileeffect.md: + last_write_checksum: sha1:8a961e1aa8cbef9731bcbc39be137daf17cd239d + docs/models/synclistresponsependingpreparedstackprofilegcp.md: + last_write_checksum: sha1:2f31d9061905f52dfaa8c9161b3ba18aef6d93c1 + docs/models/synclistresponsependingpreparedstackprofilegcpbinding.md: + last_write_checksum: sha1:c078a74a77a9993dd55478a331a4bfa1a6329ee5 + docs/models/synclistresponsependingpreparedstackprofilegcpgrant.md: + last_write_checksum: sha1:56b21410da7235d9f7e71ea0af98160ed22567fe + docs/models/synclistresponsependingpreparedstackprofilegcpresource.md: + last_write_checksum: sha1:6e40d3518f93167500cd20057109cdca6fecb9dd + docs/models/synclistresponsependingpreparedstackprofilegcpstack.md: + last_write_checksum: sha1:8246ba4972d1d8555c6e21c77de8fefebbb8cfcd + docs/models/synclistresponsependingpreparedstackprofileplatforms.md: + last_write_checksum: sha1:599c4159b6ccdade46ab7368627e98998d85b6eb + docs/models/synclistresponsependingpreparedstackprofileresourceconditionunion.md: + last_write_checksum: sha1:c3f439605a7990cdfdfa19876e12fa576bda39e6 + docs/models/synclistresponsependingpreparedstackprofilestackconditionunion.md: + last_write_checksum: sha1:dae0d0059bb757d884c8cc6b018bb3acbc41a19f + docs/models/synclistresponsependingpreparedstackprofileunion.md: + last_write_checksum: sha1:58c0fdd71ff6581df9a017d27c3e1f6891e539fb + docs/models/synclistresponsependingpreparedstackprovidedby.md: + last_write_checksum: sha1:d9b72ac2d4460e1211ccd219c9723f9bb9c9a248 + docs/models/synclistresponsependingpreparedstackresources.md: + last_write_checksum: sha1:bf437e7c46a1ec1df52803a3fa3972ac46c0ade9 + docs/models/synclistresponsependingpreparedstacksupportedplatform.md: + last_write_checksum: sha1:fff4d79f534a8ae306f9aa3922d6c519c41d237c + docs/models/synclistresponsependingpreparedstacktypeboolean.md: + last_write_checksum: sha1:3888bf4a361b491fd03b4c887611ba3c16520940 + docs/models/synclistresponsependingpreparedstacktypeenvenum.md: + last_write_checksum: sha1:df4c552504d2ee25d6328aad8d9ef22ac7c71863 + docs/models/synclistresponsependingpreparedstacktypenumber.md: + last_write_checksum: sha1:4dceaadc66c5a5cf98c16b09058485e456bfd1dc + docs/models/synclistresponsependingpreparedstacktypestring.md: + last_write_checksum: sha1:000eeb9f44c1f0dbb210ffeb98eb842535f231ae + docs/models/synclistresponsependingpreparedstacktypestringlist.md: + last_write_checksum: sha1:99d175e8c2be96e254a0ecb701c84a509a7fe7a3 + docs/models/synclistresponsependingpreparedstacktypeunion.md: + last_write_checksum: sha1:d9d4299ab3d5fb90b935f5334fe69a39ee13d744 + docs/models/synclistresponsependingpreparedstackunion.md: + last_write_checksum: sha1:baf3efda4e40bada644ab9a928a1e2be36f44c63 + docs/models/synclistresponsependingpreparedstackvalidation.md: + last_write_checksum: sha1:d1e983594865d6547a2407c2d17083d42fd2dc8c + docs/models/synclistresponsependingpreparedstackvalidationunion.md: + last_write_checksum: sha1:ed6b631999a7e0f83ddf416ff4137208250dc23d docs/models/synclistresponseplatform.md: id: 7e4093aecd0b last_write_checksum: sha1:c51090b6bd54f56568bd999bf3236317b1ba27d6 @@ -21900,11 +22886,11 @@ trackedFiles: pristine_git_object: 2920500559cab47f1a5f6f1fbd123693948ccf35 docs/models/synclistresponsepoolsautoscale.md: id: 43286c1fe84e - last_write_checksum: sha1:343f51d3cc40540017442d63a37fa1c37ac703ca + last_write_checksum: sha1:1a2c5a946b6f65bf25a7b59d7ea034d77e24c4e2 pristine_git_object: b4d2d4c0e2df98fd87015a7caef004f4ed6917e5 docs/models/synclistresponsepoolsfixed.md: id: 2d30cb397e60 - last_write_checksum: sha1:151db956effa6943e0f4c41c3e65afbec4d96617 + last_write_checksum: sha1:7f5bee92245f3895c2fb22590f040fb6ce430560 pristine_git_object: afeb652a3c16e8ddad5661ed334a032b6eface13 docs/models/synclistresponsepoolsunion.md: id: 37a5d91ccd03 @@ -21912,32 +22898,216 @@ trackedFiles: pristine_git_object: 33aa9ada0a38b88c0fa89fce3ea4cb8b4f79fb55 docs/models/synclistresponsepreparedstack.md: id: b538a8eee672 - last_write_checksum: sha1:04e76d79b2669e4bb3205a015b7547de051402f4 + last_write_checksum: sha1:e2730687a6b001adbb6c2f2b77e5c549a572aefd pristine_git_object: 4ac8d5cbe81b32503957fceb638c90b5d0f061a1 docs/models/synclistresponsepreparedstackconfig.md: id: 3c168a0115fd last_write_checksum: sha1:ba3b2fdd57e6bb8a52ca37642bb505d25d722a5a pristine_git_object: 259c58649a8da06ff186f64cc513d18f7a18d2d9 + docs/models/synclistresponsepreparedstackdefaultboolean.md: + last_write_checksum: sha1:425f15e65a5da2fa75cf0cda50537f6b1316b851 + docs/models/synclistresponsepreparedstackdefaultnumber.md: + last_write_checksum: sha1:bf7a95a388b433750b84d6cb0d6e179dcfb8782c + docs/models/synclistresponsepreparedstackdefaultstring.md: + last_write_checksum: sha1:1f43539250d9aeae1d204444333cec56a1d59fcf + docs/models/synclistresponsepreparedstackdefaultstringlist.md: + last_write_checksum: sha1:6f47e42969855f010f2c95bb4cba6ce34ec2b6f9 + docs/models/synclistresponsepreparedstackdefaultunion.md: + last_write_checksum: sha1:0847603cc4c70b7ba62ce1e6b458afb6b8c39655 docs/models/synclistresponsepreparedstackdependency.md: id: 29db22954306 last_write_checksum: sha1:7fc3f0a82607f884696d3b97824577b999fd1004 pristine_git_object: f41ce286a4e1341198ad8a43f1d3b19cb383ec22 + docs/models/synclistresponsepreparedstackenv.md: + last_write_checksum: sha1:64d6b910daf954f287ec8170cab34ba967c036a8 + docs/models/synclistresponsepreparedstackextend.md: + last_write_checksum: sha1:fba6c2a30b931aee89cd44049d7cb45227892de6 + docs/models/synclistresponsepreparedstackextendaw.md: + last_write_checksum: sha1:3b792e8f6a7af9d5c027da6f90e4e5d971b41266 + docs/models/synclistresponsepreparedstackextendawbinding.md: + last_write_checksum: sha1:856c58eab2ed85b427a96fae28e5d9bf7da31e5b + docs/models/synclistresponsepreparedstackextendawgrant.md: + last_write_checksum: sha1:ff035b4747bedd437d190df2adfc23b89451cd3a + docs/models/synclistresponsepreparedstackextendawresource.md: + last_write_checksum: sha1:fd1ea71352589b823cccdae3dc4a544a28ac8afb + docs/models/synclistresponsepreparedstackextendawstack.md: + last_write_checksum: sha1:7da584cdccdfc27e737fe062f11d6e39db9a9b89 + docs/models/synclistresponsepreparedstackextendazure.md: + last_write_checksum: sha1:0956954ffd49d71ad982b05ce7e12d98edf07a1a + docs/models/synclistresponsepreparedstackextendazurebinding.md: + last_write_checksum: sha1:963c06e2503ffb823545fc7572567edec0e66591 + docs/models/synclistresponsepreparedstackextendazuregrant.md: + last_write_checksum: sha1:54e3d2f8565f90ca61d09c9dda3d339c2f195de4 + docs/models/synclistresponsepreparedstackextendazureresource.md: + last_write_checksum: sha1:426be595a91e95c2d1f8f1c662b343bb6ff77d40 + docs/models/synclistresponsepreparedstackextendazurestack.md: + last_write_checksum: sha1:0a5616bf18fac155d031576d9efa230fe73bf108 + docs/models/synclistresponsepreparedstackextendconditionresource.md: + last_write_checksum: sha1:a47423dc29e13a470a2465db8403db4f22baf5a7 + docs/models/synclistresponsepreparedstackextendconditionstack.md: + last_write_checksum: sha1:5adb42127ec9585c1422f785e0830cdeead2b3b4 + docs/models/synclistresponsepreparedstackextendeffect.md: + last_write_checksum: sha1:0b4a9d0e126556805e115e068a41d02a9ab9bbb3 + docs/models/synclistresponsepreparedstackextendgcp.md: + last_write_checksum: sha1:ef39efcdef6ccd844eff21424d6b74398b715f5a + docs/models/synclistresponsepreparedstackextendgcpbinding.md: + last_write_checksum: sha1:8dad736bb709c68e5edfaae731fe273f86263b30 + docs/models/synclistresponsepreparedstackextendgcpgrant.md: + last_write_checksum: sha1:8330dae774dd77c3d40606fb2aeff271a03d5ae3 + docs/models/synclistresponsepreparedstackextendgcpresource.md: + last_write_checksum: sha1:4a70871dba5d215558a9d0a708570f9a86710232 + docs/models/synclistresponsepreparedstackextendgcpstack.md: + last_write_checksum: sha1:50a5b13bbc93834a59f3a0566a077284e9fcd017 + docs/models/synclistresponsepreparedstackextendplatforms.md: + last_write_checksum: sha1:bfbf9751d15061743d4c82c7fd690ac9b41a1967 + docs/models/synclistresponsepreparedstackextendresourceconditionunion.md: + last_write_checksum: sha1:a5b4b4315e1a77817dd4fa6a9dd14a380df10b6d + docs/models/synclistresponsepreparedstackextendstackconditionunion.md: + last_write_checksum: sha1:f2f71e27ef4ab9681e5fe348026cc59bff23a836 + docs/models/synclistresponsepreparedstackextendunion.md: + last_write_checksum: sha1:d9cffc9ab5a5fce99f68f182b64e04238ee81fee + docs/models/synclistresponsepreparedstackinput.md: + last_write_checksum: sha1:449cdbee760b6a6840ad8946b9ae9f7e2f4ddd5e + docs/models/synclistresponsepreparedstackkind.md: + last_write_checksum: sha1:9d8a6404e3ac204c71067bc9ab6e6e6a294bbe0a docs/models/synclistresponsepreparedstacklifecycle.md: id: 8c7aad51eb8e last_write_checksum: sha1:3883f4d255e2e057613c3bb2d6752a2cf2bf106e pristine_git_object: 896cd2c03b17489f71231f5d79923cab32234740 + docs/models/synclistresponsepreparedstackmanagement1.md: + last_write_checksum: sha1:4756a97bab6e1ff34de6eebd3106aad7e250c39f + docs/models/synclistresponsepreparedstackmanagement2.md: + last_write_checksum: sha1:56f9b7d50444a2b9ea9a5106fb63daab74bb2018 + docs/models/synclistresponsepreparedstackmanagementenum.md: + last_write_checksum: sha1:6f96d6dfc8e6abddae6b29a9732fe3c3b304b425 + docs/models/synclistresponsepreparedstackmanagementunion.md: + last_write_checksum: sha1:71402bcbd21ab76a75f178185813f58a43b15d4f + docs/models/synclistresponsepreparedstackoverride.md: + last_write_checksum: sha1:943fab03fd245e232680c458b354d5e4c1b5630a + docs/models/synclistresponsepreparedstackoverrideaw.md: + last_write_checksum: sha1:42ec50e8abc3e4478b56d8a95cb32571f5a06087 + docs/models/synclistresponsepreparedstackoverrideawbinding.md: + last_write_checksum: sha1:be6e9e088267ff2d4df5a8781037837d0353eeb4 + docs/models/synclistresponsepreparedstackoverrideawgrant.md: + last_write_checksum: sha1:47e0ca7d587c818bc582fad45bfd4a581853262b + docs/models/synclistresponsepreparedstackoverrideawresource.md: + last_write_checksum: sha1:0f46e8aeb829267d8ecec4fb3dca3b75308abe4a + docs/models/synclistresponsepreparedstackoverrideawstack.md: + last_write_checksum: sha1:33a4a1e388689d4d436f223374fb708941d26194 + docs/models/synclistresponsepreparedstackoverrideazure.md: + last_write_checksum: sha1:91edc8c765e18d59b32878abe08ad71cde390d14 + docs/models/synclistresponsepreparedstackoverrideazurebinding.md: + last_write_checksum: sha1:9253d20ea8bddb49e73395544f3a97d931ae4016 + docs/models/synclistresponsepreparedstackoverrideazuregrant.md: + last_write_checksum: sha1:12d74e02727d6702bb661a8fe1410564a4b14e90 + docs/models/synclistresponsepreparedstackoverrideazureresource.md: + last_write_checksum: sha1:4e34dab7dc22122c03df114195d5b0acbaba33d1 + docs/models/synclistresponsepreparedstackoverrideazurestack.md: + last_write_checksum: sha1:03c75775880b1f021f214d2845875ddbdd87ae28 + docs/models/synclistresponsepreparedstackoverrideconditionresource.md: + last_write_checksum: sha1:30a151b312ee867173d05458f825a62517233fd5 + docs/models/synclistresponsepreparedstackoverrideconditionstack.md: + last_write_checksum: sha1:4162a1ca41fc930ad121d88fc708a7293afc33eb + docs/models/synclistresponsepreparedstackoverrideeffect.md: + last_write_checksum: sha1:cf2ef26657d84f69e26182c7cca3743bfc8cbf92 + docs/models/synclistresponsepreparedstackoverridegcp.md: + last_write_checksum: sha1:1166c6e8b226460657f8dc6f7dfb2a7620ba919f + docs/models/synclistresponsepreparedstackoverridegcpbinding.md: + last_write_checksum: sha1:3dfe8202d5f4657e1bca3b9888987ccfc455f4ed + docs/models/synclistresponsepreparedstackoverridegcpgrant.md: + last_write_checksum: sha1:4addb8e4ddd3c6f8363237cede5e7bc8027c60a6 + docs/models/synclistresponsepreparedstackoverridegcpresource.md: + last_write_checksum: sha1:4464441643739458a5a45f444eaafdeb6b03765b + docs/models/synclistresponsepreparedstackoverridegcpstack.md: + last_write_checksum: sha1:20f7e945ead6535834e7977da4f127125b6dfd31 + docs/models/synclistresponsepreparedstackoverrideplatforms.md: + last_write_checksum: sha1:5affd375f6ad70206955c67813a08916cd430a18 + docs/models/synclistresponsepreparedstackoverrideresourceconditionunion.md: + last_write_checksum: sha1:a216c91675068de81c7937741ca8c51236ed3beb + docs/models/synclistresponsepreparedstackoverridestackconditionunion.md: + last_write_checksum: sha1:961ab95ed926ae6ab0fa8d83f6e5a026a7d130ae + docs/models/synclistresponsepreparedstackoverrideunion.md: + last_write_checksum: sha1:d1cd91251de85c143d7a9141c2b20093b25ad05e + docs/models/synclistresponsepreparedstackpermissions.md: + last_write_checksum: sha1:52127bc7e19b16d942ce4ca8f434264fb4ca7f12 docs/models/synclistresponsepreparedstackplatform.md: id: b882acd2e678 last_write_checksum: sha1:08ede8423e8eedc95b1c8c35aaafd5070e5f23ec pristine_git_object: 06e292ca235c6ba0efd5531150feb247836f71fa + docs/models/synclistresponsepreparedstackprofile.md: + last_write_checksum: sha1:dec2f026644e637ea73e07ef4613f74a47bba627 + docs/models/synclistresponsepreparedstackprofileaw.md: + last_write_checksum: sha1:94e3c517fbb421c8da7f71a0c961e29cb311f345 + docs/models/synclistresponsepreparedstackprofileawbinding.md: + last_write_checksum: sha1:7b63e6c0bbc51f8a896712e4fbb65b012fb4a7fc + docs/models/synclistresponsepreparedstackprofileawgrant.md: + last_write_checksum: sha1:d95367980a06ffc9823cf8769d98ff1b8cb6a78b + docs/models/synclistresponsepreparedstackprofileawresource.md: + last_write_checksum: sha1:ac7c1b1467b482e2c99ffa7456b8b63b09c9c824 + docs/models/synclistresponsepreparedstackprofileawstack.md: + last_write_checksum: sha1:7737aebe6af14fa6fea4a47c16ded4ffd4e8d322 + docs/models/synclistresponsepreparedstackprofileazure.md: + last_write_checksum: sha1:a0ffd793caad7e86a89f252925b8e09f22b546a3 + docs/models/synclistresponsepreparedstackprofileazurebinding.md: + last_write_checksum: sha1:40a00b86be17795b77b3f4d9b531c0ecac171211 + docs/models/synclistresponsepreparedstackprofileazuregrant.md: + last_write_checksum: sha1:7e5c6e48f62f47d51790bacc487002e872018084 + docs/models/synclistresponsepreparedstackprofileazureresource.md: + last_write_checksum: sha1:cce97ac70ab8521a0120f628f51923df3842488c + docs/models/synclistresponsepreparedstackprofileazurestack.md: + last_write_checksum: sha1:dee18e48af8159985d03644a85be20ac89572753 + docs/models/synclistresponsepreparedstackprofileconditionresource.md: + last_write_checksum: sha1:275681aab3b65b65a75302c111b0c6db44f134b2 + docs/models/synclistresponsepreparedstackprofileconditionstack.md: + last_write_checksum: sha1:7cbf19d164ce1c1eea88e03085e5981eedce2e68 + docs/models/synclistresponsepreparedstackprofileeffect.md: + last_write_checksum: sha1:93ac670f629ab70150abb95497d35b67a407c034 + docs/models/synclistresponsepreparedstackprofilegcp.md: + last_write_checksum: sha1:6a61ac3da5201223f22e2cc14f92f9ad17297a20 + docs/models/synclistresponsepreparedstackprofilegcpbinding.md: + last_write_checksum: sha1:2bb1d7d81689c394c97962254572fa33a4779c1c + docs/models/synclistresponsepreparedstackprofilegcpgrant.md: + last_write_checksum: sha1:6a2f5eb441000e78251e60e35d3f6c4f4ff41fb0 + docs/models/synclistresponsepreparedstackprofilegcpresource.md: + last_write_checksum: sha1:14a27e4eea23edbb3dbb8484954bf593c389873f + docs/models/synclistresponsepreparedstackprofilegcpstack.md: + last_write_checksum: sha1:6794b050b9a10289f96a51d81419d6781f9093b0 + docs/models/synclistresponsepreparedstackprofileplatforms.md: + last_write_checksum: sha1:dfe35c97dd25b5ed7859d94e3c55c0da555ca787 + docs/models/synclistresponsepreparedstackprofileresourceconditionunion.md: + last_write_checksum: sha1:a753c68702cbeb7bf955cdf6f78223b6cbfd7b71 + docs/models/synclistresponsepreparedstackprofilestackconditionunion.md: + last_write_checksum: sha1:2cd69f3e22b5d8998b99293af4802e79244eae92 + docs/models/synclistresponsepreparedstackprofileunion.md: + last_write_checksum: sha1:4cd86d590fac004713e8eed05f85dfc6c987bdc7 + docs/models/synclistresponsepreparedstackprovidedby.md: + last_write_checksum: sha1:3eb6a9c984227d241732a8cd6244d61fdd9b814f docs/models/synclistresponsepreparedstackresources.md: id: 7cf3b5cabc07 - last_write_checksum: sha1:f649c3f7ab21c0a763be392c6fed2f747bec6ca9 + last_write_checksum: sha1:eff5f730beb93296cdce0d1d0ee2c7ccc359eaf4 pristine_git_object: f041dd3ff5c4143e4fe41d33c02a05dca92325dd + docs/models/synclistresponsepreparedstacksupportedplatform.md: + last_write_checksum: sha1:d46d6a1328572668e7bcd1ca893147bc2bf7639e + docs/models/synclistresponsepreparedstacktypeboolean.md: + last_write_checksum: sha1:02a7a0775545b161da67d6e91ac55487d3962a55 + docs/models/synclistresponsepreparedstacktypeenvenum.md: + last_write_checksum: sha1:4b2ef7506b1bcb1718d18e2fbd11e0af4d22c4e9 + docs/models/synclistresponsepreparedstacktypenumber.md: + last_write_checksum: sha1:a81efe313ceb946d191369b02331457137a7fe72 + docs/models/synclistresponsepreparedstacktypestring.md: + last_write_checksum: sha1:e7b26eb8bdbc8b7dc5667da1ef5210a4c3791eeb + docs/models/synclistresponsepreparedstacktypestringlist.md: + last_write_checksum: sha1:555aafe3a3507aa656d0825c83e7b2909e07ca3d + docs/models/synclistresponsepreparedstacktypeunion.md: + last_write_checksum: sha1:827a07260d136b7731944f72adfa1ab954b930e4 docs/models/synclistresponsepreparedstackunion.md: id: 04756f08eb39 last_write_checksum: sha1:fdfbef5b6917f5ea9ba1a28597d6e4e07670f444 pristine_git_object: bb89df76c9f8b8b451206b787a1ddc7b0fe690da + docs/models/synclistresponsepreparedstackvalidation.md: + last_write_checksum: sha1:e9f24f87d85dc78a1ae60dada8363c1e820ca515 + docs/models/synclistresponsepreparedstackvalidationunion.md: + last_write_checksum: sha1:61eecd79f8e876ba3485a9bcf509f1edc720c9a1 docs/models/synclistresponsepreviousconfig.md: id: 71c139e8349e last_write_checksum: sha1:bf9a32538c636535592018af89d0fdcee79cefe4 @@ -21946,102 +23116,6 @@ trackedFiles: id: baa7a44f98d5 last_write_checksum: sha1:4c62b455ec3c72575c4b3410845b1d4a47e5e7a4 pristine_git_object: c30d0971e772b9ab25ea49229ce0d88ab7203d8e - docs/models/synclistresponseprofile.md: - id: 3df623648bb0 - last_write_checksum: sha1:9fcc4f50f21fa49b1115930ff48875490d14dbf9 - pristine_git_object: 238e1fe159d2fde27f220470cd3c8ecea357c589 - docs/models/synclistresponseprofileaw.md: - id: 7f6536b9336f - last_write_checksum: sha1:007c46e49d2c909b514f34197226a24e062565cb - pristine_git_object: 987c70614758e4219a39299759032eec62ad810b - docs/models/synclistresponseprofileawbinding.md: - id: 158ac5cbe366 - last_write_checksum: sha1:240d007f8245ae3b8700fbe229aefc10680c3824 - pristine_git_object: 2eb26a410dba93954c55aa6251e7a2c9d5c99c0b - docs/models/synclistresponseprofileawgrant.md: - id: 8e5196663f41 - last_write_checksum: sha1:676c0d7d24f5580d5e9f6e13341f3945697b3b8f - pristine_git_object: 1d170cb70cca3d2cf3b518cdf498cbdf4faddca1 - docs/models/synclistresponseprofileawresource.md: - id: eb4f19bd5158 - last_write_checksum: sha1:488cf3d40b1c55f7e1ff54ff8ba91843cec786e6 - pristine_git_object: 0dc0c16b204317a577a008cc0a23bf2621660597 - docs/models/synclistresponseprofileawstack.md: - id: 5e36e8177a12 - last_write_checksum: sha1:68c919d053b6e24bf99011f6f57d53d380c5cb69 - pristine_git_object: 676d6447cdc54e064bae4e9cf82306cc038c94a3 - docs/models/synclistresponseprofileazure.md: - id: d64c3b9bfa91 - last_write_checksum: sha1:b7c4a5ae2f35adde1ccea04b2df37a8bdaaf8341 - pristine_git_object: d1c45333a8b97ecadc8fe4f144ddbffd4ff493a8 - docs/models/synclistresponseprofileazurebinding.md: - id: 31505b80ec07 - last_write_checksum: sha1:c91c785281df2ca13b2bb4e630ebba10af4dca20 - pristine_git_object: a80f47c7831a01faadd1c0f55653bf5548ad485b - docs/models/synclistresponseprofileazuregrant.md: - id: 191f44812cae - last_write_checksum: sha1:da5408224e27e4f7165c00f1af1a52c032535567 - pristine_git_object: ad9e04d7cf5381f625af186801f8f4bc827ba035 - docs/models/synclistresponseprofileazureresource.md: - id: a0fa0f08f03d - last_write_checksum: sha1:95b4718ae5bd11ae6d246b3e2ab3a792986227be - pristine_git_object: de9da1fe8c397a069570e22afffdeea614e36604 - docs/models/synclistresponseprofileazurestack.md: - id: e55220153153 - last_write_checksum: sha1:48436c4b452e543480bee83b5f08a0bf255cebc7 - pristine_git_object: 2ef44dde5ea86b7cf62f57ee9f8f21a2268f2b14 - docs/models/synclistresponseprofileconditionresource.md: - id: b3b661a8a804 - last_write_checksum: sha1:897e70e90b4572a077bea2b45b0d7772d62e9049 - pristine_git_object: 520a6573d090a7c5f76d40564c510239e84d1bb7 - docs/models/synclistresponseprofileconditionstack.md: - id: 1634abee9f9b - last_write_checksum: sha1:c08e71cd96303fad5971213d0199f4f21325a7df - pristine_git_object: 2423373178f6758e921318c09290856f009bb724 - docs/models/synclistresponseprofileeffect.md: - id: 28c88ed84ba7 - last_write_checksum: sha1:1b2d64a96dd90e33ae5a2d909d2c2aa825b55aad - pristine_git_object: 210cdc774d49debc9ea587a92956a8dc0e3332e9 - docs/models/synclistresponseprofilegcp.md: - id: ac7f8c650820 - last_write_checksum: sha1:9c5e398f3c1b14ddabd67e6554078311ef5b5a54 - pristine_git_object: 8d5b756da58d49e25bdd3cf42d1217a5f6211848 - docs/models/synclistresponseprofilegcpbinding.md: - id: 561d36b1ebe7 - last_write_checksum: sha1:e8dccbf6eb7251ff08502b907b7cb3a22327b7a7 - pristine_git_object: 3480321503e1470f1e4ce826a7e9f6946ba3c239 - docs/models/synclistresponseprofilegcpgrant.md: - id: ba60e55ceaaa - last_write_checksum: sha1:e1b690d210e629d22dfdcd8c8f83e36cbb47bf6e - pristine_git_object: 87f225737f3830e5810f66869d38f46e00aa5e19 - docs/models/synclistresponseprofilegcpresource.md: - id: ae80486e1c41 - last_write_checksum: sha1:f7fd5bbad9fe9e4a5f8273ba73ff4cf307901ebb - pristine_git_object: 07a2ffd92903e74d8b0d0df251e3ae8aa335c932 - docs/models/synclistresponseprofilegcpstack.md: - id: 253020f95948 - last_write_checksum: sha1:f83a6b8f0c8f7f22b42971c69cdde7768ec6e336 - pristine_git_object: 8e87d36c3f9e08965d7ed7b0ca67769c8ff79e00 - docs/models/synclistresponseprofileplatforms.md: - id: 98683780ea61 - last_write_checksum: sha1:1c7dc484f7e022778d708aab77b7435eae7b6eb0 - pristine_git_object: faf193dcc29b611deddee69b03124f257f6082af - docs/models/synclistresponseprofileresourceconditionunion.md: - id: 60fd35d733da - last_write_checksum: sha1:45b4fc062ae932a51d78d2d8e4d8367df86c2d11 - pristine_git_object: 83c0c00362897fb9578145e650343868318894a7 - docs/models/synclistresponseprofilestackconditionunion.md: - id: 1ec70663e606 - last_write_checksum: sha1:c9ab6ea445ccf199b322842bce296a0038ca7fad - pristine_git_object: 84f803db0cdd44aaa995c89e9f9886679a715ac4 - docs/models/synclistresponseprofileunion.md: - id: 150abc9c79c7 - last_write_checksum: sha1:14accf9e7be1ed9b06ca0a90d7829894c1bd498b - pristine_git_object: 4a00f627699865c4153bf14bab5e09b45cc21e7c - docs/models/synclistresponseprovidedby.md: - id: 378b425f39a6 - last_write_checksum: sha1:8cf6e97edf5f3d30b31b54fb4dacd2b9212ff0e2 - pristine_git_object: f23e1fd4f1ec658126ed8760813120aa013fa8dd docs/models/synclistresponseproviderawsalb1.md: id: 8dbd6f64febe last_write_checksum: sha1:b305eabc8e60734f98198414fb35d5a16277da47 @@ -22192,12 +23266,16 @@ trackedFiles: pristine_git_object: 2e5df8411adfa05a2389c804bf312be11cf20d8a docs/models/synclistresponseruntimemetadata.md: id: ff44348f9c60 - last_write_checksum: sha1:f153736199eb3a8b65f634e2fdfe0b92f33f2c20 + last_write_checksum: sha1:c9a65bf3927ce25e8d5b6e8786ecd063e29a65a4 pristine_git_object: 53b393f71ef4fc1828cb211501f630196ee52942 docs/models/synclistresponsesetupmethod.md: id: 52ab65494278 last_write_checksum: sha1:68da17be92d29eb33f4fec4f47f8d3b5718d5a5f pristine_git_object: f13c4a8dc3ab9c29a7671e38e093d0da5b8bd5fa + docs/models/synclistresponsesetupupdateauthorization.md: + last_write_checksum: sha1:b116ce49bbbd0e53526f3645962b457bdc154935 + docs/models/synclistresponsesetupupdateauthorizationunion.md: + last_write_checksum: sha1:8434c37bb07e2823b1033092308c82599cc39643 docs/models/synclistresponsestacksettings.md: id: 357990a9b65a last_write_checksum: sha1:817d0a381b8cb6752043ebf31d774da2fcb8385a @@ -22230,10 +23308,6 @@ trackedFiles: id: f706866e8267 last_write_checksum: sha1:4fa2def6be3ef08068529ac918a01a563da606f9 pristine_git_object: be131cce306625e1a8a4b88d180424be08a18da5 - docs/models/synclistresponsesupportedplatform.md: - id: 8debdba4eb95 - last_write_checksum: sha1:db7512add0aee6ff99ac440739c2af83332bfa93 - pristine_git_object: 6681a2b5c6f8a54a54c4acd70b55a161eb017f25 docs/models/synclistresponsetelemetry.md: id: 0f8134dc77d0 last_write_checksum: sha1:82b71c97a3c85816def984b1ac17a1edd336be3e @@ -22242,10 +23316,6 @@ trackedFiles: id: 01b6967cdeb5 last_write_checksum: sha1:c595aa3c1f1c051274f48d359a68f617712993ed pristine_git_object: a314db55e738685e73df2ad4d12ca88cf924ca44 - docs/models/synclistresponsetypeboolean.md: - id: e1561e0566d9 - last_write_checksum: sha1:895d6b676079967841c00a548bdf5811a5594f74 - pristine_git_object: 8a87011cb3d20f89f867084d36714324ae217625 docs/models/synclistresponsetypebyovnetazure.md: id: bd55ee4f6e49 last_write_checksum: sha1:e47dcaf9b80e6f726823c0303fc71477a9cc01f0 @@ -22262,26 +23332,6 @@ trackedFiles: id: 4ac645dac94c last_write_checksum: sha1:fbe3bd4cb1cba8262540b07c6b84b7b8bc77704d pristine_git_object: 0aa7e71268db8e55b3f8af30386a41fb5e5397ec - docs/models/synclistresponsetypeenvenum.md: - id: 825cfc6ce2c1 - last_write_checksum: sha1:a144bd0b0da1f52ccf7af015e27782123f7ce36d - pristine_git_object: b6df8a0e1dd753df92eab05ac01f9054766727d3 - docs/models/synclistresponsetypenumber.md: - id: c58fbd3575f4 - last_write_checksum: sha1:bf208f03d199553f09858fea162d8779ee0dfdf2 - pristine_git_object: 2233d08007ad25348333697281f3538e0cb0bbe9 - docs/models/synclistresponsetypestring.md: - id: 3753a55e7775 - last_write_checksum: sha1:d8d7f3f2a0544ffb6c9158cf6cc1abf69dec0443 - pristine_git_object: 20e3c0e6ffc50164d2aed8fb3741b22cf05add5e - docs/models/synclistresponsetypestringlist.md: - id: 4d1826867f66 - last_write_checksum: sha1:b561d122844ebabd8cd9380390e344ed1a859815 - pristine_git_object: feae29106b6f9645be98edcd7c0778fb910a2537 - docs/models/synclistresponsetypeunion.md: - id: 8bfd36b31193 - last_write_checksum: sha1:bbf28ba25e7928c3726361bffcafb879957ddf0c - pristine_git_object: f94f2cf164efc92ae007ea3a6cf80cdcd4db8931 docs/models/synclistresponsetypeusedefault.md: id: 64912666a75f last_write_checksum: sha1:a3c09ba221981ac582f8510d7117619b6f3daecd @@ -22290,14 +23340,6 @@ trackedFiles: id: c2ef7061d2d6 last_write_checksum: sha1:542fe38038c3fd8347d45f7f9bc6580648139014 pristine_git_object: 64e4b2337f7328a51e8039c7af9e8e6cf49b54b1 - docs/models/synclistresponsevalidation.md: - id: 2bc064f1e5ed - last_write_checksum: sha1:95f4d7404ba16e25801492f7cf98df8f5f90c354 - pristine_git_object: 6acbb83f5d7802156bd2920dd3b1d945a472b711 - docs/models/synclistresponsevalidationunion.md: - id: 00bc2e66baae - last_write_checksum: sha1:ecc6a95f1d436aeca46bdc05f179532268823575 - pristine_git_object: a239f4dbfd683116e3f641dd8af9332f05732774 docs/models/syncreconcilerequest.md: id: 4855da36149e last_write_checksum: sha1:a75f1b50959b7d6b1fb9dbaa7fd8c5b06cf1de45 @@ -22564,7 +23606,7 @@ trackedFiles: pristine_git_object: c94b5b41d87b6122bd5700de00b57196b46e8c70 docs/models/syncreconcilerequestcurrentreleaseresources.md: id: d9383fa55ddd - last_write_checksum: sha1:2e00bc5ada87fed9d0fbc416661e7fd4bdc3b05b + last_write_checksum: sha1:5e7ef51960ab371d36342fb28ee2dde496ed531e pristine_git_object: 4f4b85dfaf865d25a5861671f378fbec742854d6 docs/models/syncreconcilerequestcurrentreleasestack.md: id: 16e3269cf061 @@ -22630,6 +23672,12 @@ trackedFiles: id: 9584f2594de2 last_write_checksum: sha1:1df692d11e5f3e59a511f98469d71ac679e54163 pristine_git_object: 7754b3f4447a0af473ce7feb473107b7df3e09b6 + docs/models/syncreconcilerequestdata6.md: + last_write_checksum: sha1:d6ef3599842f77c49134fddd503e31b299f872dc + docs/models/syncreconcilerequestdata7.md: + last_write_checksum: sha1:d9c5ed1ef50a54529164eaabe7e2b5c6ee646677 + docs/models/syncreconcilerequestdata8.md: + last_write_checksum: sha1:098e9ecfae9bd72f8927dc5daeeb6c926f7fef70 docs/models/syncreconcilerequestdataunion1.md: id: 87e469f2b107 last_write_checksum: sha1:4589873a0e83e766bd2f926743737dd302dfe22c @@ -22660,8 +23708,12 @@ trackedFiles: pristine_git_object: d216133e24204c84858e85aade0ac373746cd677 docs/models/syncreconcilerequestdataunion16.md: id: 4d761a464684 - last_write_checksum: sha1:d74d215853bc5d2a9ee2daede2a767109582f346 + last_write_checksum: sha1:20ebb2f8c79fce9846873ff903389cf584fe92f9 pristine_git_object: 81fc5e75275225e5e3d38bbbccc574c034d7eb9c + docs/models/syncreconcilerequestdataunion17.md: + last_write_checksum: sha1:a4bfc25ab97ffdbcb182d64ee16edacf5ced7145 + docs/models/syncreconcilerequestdataunion18.md: + last_write_checksum: sha1:1d3ba91e0f66a29f13a87c187d0d2780dd031eff docs/models/syncreconcilerequestdataunion2.md: id: ce58901d9ab9 last_write_checksum: sha1:b5ccd6a3812825fc4fb70256e7a73bc56ee57d13 @@ -22692,7 +23744,7 @@ trackedFiles: pristine_git_object: 33d237be19b0e5af8925ba3c45a0d2cd7becbc8b docs/models/syncreconcilerequestdataunion9.md: id: 8c3d26daba3d - last_write_checksum: sha1:f23f3e9a0170cc1cc1e3737d581da0ae35c628a6 + last_write_checksum: sha1:4fe195b8eb57c0772a5566d57f5684ec4d48d8c6 pristine_git_object: 3da519146425940794c9fa35a12f1cd5611eebaf docs/models/syncreconcilerequestenvironmentinfoaws.md: id: 95fbca76e7da @@ -22778,6 +23830,8 @@ trackedFiles: id: 0e82e4a35b89 last_write_checksum: sha1:d62ce2fbe846539a9cd4b95847042ea60438f13b pristine_git_object: c37b56ad692df4520bd7b512a9dbeb70de2d0788 + docs/models/syncreconcilerequestinitialsetupauthority.md: + last_write_checksum: sha1:c1440cdcb7b74c512f322674950d4b24e9c8cb51 docs/models/syncreconcilerequestmachine.md: id: e2c8ef0c6d2b last_write_checksum: sha1:6973be530c44831dcf65a476a1d0b4bfb1f864a8 @@ -22790,6 +23844,158 @@ trackedFiles: id: 3ce376f93c07 last_write_checksum: sha1:179d9c8063c512f6ae5f21fe64375aa0272e7df2 pristine_git_object: 41bdb2c984a8bf09720b2c726a0dde10380d830c + docs/models/syncreconcilerequestpendingpreparedstack.md: + last_write_checksum: sha1:3b96b74d2ccf4c9b92394a6e958f84f0d2242d7b + docs/models/syncreconcilerequestpendingpreparedstackconfig.md: + last_write_checksum: sha1:8e9434d2766fdb757d4984ca6f2f154fb96f3070 + docs/models/syncreconcilerequestpendingpreparedstackdefaultboolean.md: + last_write_checksum: sha1:0ca7a1bf852dc6292513eebb0fc4f87224fddc88 + docs/models/syncreconcilerequestpendingpreparedstackdefaultnumber.md: + last_write_checksum: sha1:6ded949e8d4272c730aa7f4a7dac8f264a802f5c + docs/models/syncreconcilerequestpendingpreparedstackdefaultstring.md: + last_write_checksum: sha1:9ace7ed9996609d99d6a3aeeb94270f898e4c57f + docs/models/syncreconcilerequestpendingpreparedstackdefaultstringlist.md: + last_write_checksum: sha1:08f3962aafa7f9917957bf73accc9ae22c0daae4 + docs/models/syncreconcilerequestpendingpreparedstackdefaultunion.md: + last_write_checksum: sha1:eeb65017d53a85afee0d9c029dacdb4adef339e5 + docs/models/syncreconcilerequestpendingpreparedstackdependency.md: + last_write_checksum: sha1:e96737241e700dfc22c0dab3b054c0d28418d5a5 + docs/models/syncreconcilerequestpendingpreparedstackenv.md: + last_write_checksum: sha1:8c1787b30b6b45c4a7acc2062c312d4fd15cf3f2 + docs/models/syncreconcilerequestpendingpreparedstackextend.md: + last_write_checksum: sha1:e230a8fad418f876d857eae874bf9e14b438167c + docs/models/syncreconcilerequestpendingpreparedstackextendaw.md: + last_write_checksum: sha1:1fe6a5314aeded526191126e1cc77ec8b7fac6f0 + docs/models/syncreconcilerequestpendingpreparedstackextendawbinding.md: + last_write_checksum: sha1:af03fc52c3e46389ed3b4a660c4224cbb27f5fad + docs/models/syncreconcilerequestpendingpreparedstackextendawgrant.md: + last_write_checksum: sha1:22f634227005536f7ce1095997385d68e22b4bac + docs/models/syncreconcilerequestpendingpreparedstackextendawstack.md: + last_write_checksum: sha1:b43dfac6920d0445c0be88b8962fa9dc364f8e12 + docs/models/syncreconcilerequestpendingpreparedstackextendazure.md: + last_write_checksum: sha1:102524c2d8afa6e5b10a74a8cf6afdb4fcd1a898 + docs/models/syncreconcilerequestpendingpreparedstackextendazurebinding.md: + last_write_checksum: sha1:c047e03b45df6b6f9601e09998769570873c11a6 + docs/models/syncreconcilerequestpendingpreparedstackextendazuregrant.md: + last_write_checksum: sha1:2c30d68c8457c1561b2f225bec4ab3baff7ef0cf + docs/models/syncreconcilerequestpendingpreparedstackextendazurestack.md: + last_write_checksum: sha1:b8c5cd7b7c75019774a61e1ae63372a7b6add7aa + docs/models/syncreconcilerequestpendingpreparedstackextendeffect.md: + last_write_checksum: sha1:e6ba41adecd0914e6836d7709cba24a1f9e94eec + docs/models/syncreconcilerequestpendingpreparedstackextendgcp.md: + last_write_checksum: sha1:8f319738c95ad16730dda87c6c658b6b8e0555f6 + docs/models/syncreconcilerequestpendingpreparedstackextendgcpbinding.md: + last_write_checksum: sha1:0e8339981c8c14bcfc845a4e2b5ad2961aa4417b + docs/models/syncreconcilerequestpendingpreparedstackextendgcpgrant.md: + last_write_checksum: sha1:dc558cb1a5c60a83e08b780be700e8f1e35bb024 + docs/models/syncreconcilerequestpendingpreparedstackextendgcpstack.md: + last_write_checksum: sha1:5a08ae8bfe22e1498601249375f3540b4d3eae38 + docs/models/syncreconcilerequestpendingpreparedstackextendplatforms.md: + last_write_checksum: sha1:624e9552e42b2c9c8c866e2e5f0e87081149f02d + docs/models/syncreconcilerequestpendingpreparedstackextendunion.md: + last_write_checksum: sha1:1eedb4f2a5f7b9bbe17bdaf272e31ba96d488489 + docs/models/syncreconcilerequestpendingpreparedstackinput.md: + last_write_checksum: sha1:3c402ca06588f51530b6a3db065f770bdccbed14 + docs/models/syncreconcilerequestpendingpreparedstackmanagement1.md: + last_write_checksum: sha1:babb18e35057ac97a1c0e9002f460250e947b195 + docs/models/syncreconcilerequestpendingpreparedstackmanagement2.md: + last_write_checksum: sha1:ee7c9672ff487e06fefbd0d2cf5c4697eb818c11 + docs/models/syncreconcilerequestpendingpreparedstackmanagementenum.md: + last_write_checksum: sha1:62e88bb437d8f1a9a64d70013f15c7fb2fc5889d + docs/models/syncreconcilerequestpendingpreparedstackmanagementunion.md: + last_write_checksum: sha1:a48e139252ce1d866187dad820f5659ab4f82fee + docs/models/syncreconcilerequestpendingpreparedstackoverride.md: + last_write_checksum: sha1:f6cf5363694f71d5e234a4b5a18d61fa5abee103 + docs/models/syncreconcilerequestpendingpreparedstackoverrideaw.md: + last_write_checksum: sha1:72f966820c046a48cb42725da88c908e48c60add + docs/models/syncreconcilerequestpendingpreparedstackoverrideawbinding.md: + last_write_checksum: sha1:f8230c1d1dafdeafc1d5ef14c82fb89fc816c59f + docs/models/syncreconcilerequestpendingpreparedstackoverrideawgrant.md: + last_write_checksum: sha1:ec026d598900bdfe8cf7fb0a4b26272d010c57f5 + docs/models/syncreconcilerequestpendingpreparedstackoverrideawstack.md: + last_write_checksum: sha1:db950fb9a950a137345b2e2cfafcc5918a4ba596 + docs/models/syncreconcilerequestpendingpreparedstackoverrideazure.md: + last_write_checksum: sha1:0ea96cc8f91e86c0f24c23773db64f5482f0adef + docs/models/syncreconcilerequestpendingpreparedstackoverrideazurebinding.md: + last_write_checksum: sha1:745420a6d79719f7a92ed44953fa68285f9ec089 + docs/models/syncreconcilerequestpendingpreparedstackoverrideazuregrant.md: + last_write_checksum: sha1:122f79adf99530a05d4f94b8b8353b42c6430055 + docs/models/syncreconcilerequestpendingpreparedstackoverrideazurestack.md: + last_write_checksum: sha1:231e5970e9e9ed169aa5606b5cbfa6936dac2f90 + docs/models/syncreconcilerequestpendingpreparedstackoverrideeffect.md: + last_write_checksum: sha1:02be1d73b5e74977e881bd587bcddcf797059c0a + docs/models/syncreconcilerequestpendingpreparedstackoverridegcp.md: + last_write_checksum: sha1:d751aba920c2d9296cf19609a0277d5dced78df9 + docs/models/syncreconcilerequestpendingpreparedstackoverridegcpbinding.md: + last_write_checksum: sha1:a690ba734395bfbc568ff9b81ff5e2b48f124213 + docs/models/syncreconcilerequestpendingpreparedstackoverridegcpgrant.md: + last_write_checksum: sha1:72a6a335fa4184f53984ba759a11aa541a4e792b + docs/models/syncreconcilerequestpendingpreparedstackoverridegcpstack.md: + last_write_checksum: sha1:88382d0db16bdc539e987c1de75662c8526aa618 + docs/models/syncreconcilerequestpendingpreparedstackoverrideplatforms.md: + last_write_checksum: sha1:9c3abb1f34ea041e0ec14993768471758cfee9af + docs/models/syncreconcilerequestpendingpreparedstackoverrideunion.md: + last_write_checksum: sha1:4aae8ee411c3c06e2f891719610c1c77f7e155e0 + docs/models/syncreconcilerequestpendingpreparedstackpermissions.md: + last_write_checksum: sha1:a1fe95b7d2b03cc2b4a9aa14a073fee77ed2f24f + docs/models/syncreconcilerequestpendingpreparedstackplatform.md: + last_write_checksum: sha1:07686b1d679fd729a68ae91b55a243857a36f6c5 + docs/models/syncreconcilerequestpendingpreparedstackprofile.md: + last_write_checksum: sha1:50884047e66c2d92255aa3b85200956d93e40709 + docs/models/syncreconcilerequestpendingpreparedstackprofileaw.md: + last_write_checksum: sha1:46851a9d8968cf41aa417cc96234c276fd10b65a + docs/models/syncreconcilerequestpendingpreparedstackprofileawbinding.md: + last_write_checksum: sha1:511e31d2fca0dc014457f78577179cf9d82dafe9 + docs/models/syncreconcilerequestpendingpreparedstackprofileawgrant.md: + last_write_checksum: sha1:83e207da73eed54f76a0e849798906bfc57f4488 + docs/models/syncreconcilerequestpendingpreparedstackprofileawstack.md: + last_write_checksum: sha1:61cdba276681b930ed487dd67ea2b61af7f5c8bf + docs/models/syncreconcilerequestpendingpreparedstackprofileazure.md: + last_write_checksum: sha1:9d16d512490ca43e5cb010b3aad93419d0f43647 + docs/models/syncreconcilerequestpendingpreparedstackprofileazurebinding.md: + last_write_checksum: sha1:bec5724b3d120e30ded43036b2e345189f013ada + docs/models/syncreconcilerequestpendingpreparedstackprofileazuregrant.md: + last_write_checksum: sha1:a0add426f861098cbde9649070355b4ff1a8c971 + docs/models/syncreconcilerequestpendingpreparedstackprofileazurestack.md: + last_write_checksum: sha1:722c6f8b60edf08c227331650a3c7cdaabd81e82 + docs/models/syncreconcilerequestpendingpreparedstackprofileeffect.md: + last_write_checksum: sha1:2c35d0db8ab8bc3ac77c2a692e8313f0ae7ae091 + docs/models/syncreconcilerequestpendingpreparedstackprofilegcp.md: + last_write_checksum: sha1:1b3945987d418db77c8d3e2473d2d4492c48d1e9 + docs/models/syncreconcilerequestpendingpreparedstackprofilegcpbinding.md: + last_write_checksum: sha1:f52459865e3761670a26fd89f02111c452f3a2fe + docs/models/syncreconcilerequestpendingpreparedstackprofilegcpgrant.md: + last_write_checksum: sha1:9c6f6b62da503d22dea9acafb6a2c2f40d1898a4 + docs/models/syncreconcilerequestpendingpreparedstackprofilegcpstack.md: + last_write_checksum: sha1:9de500bea020e7c04352dbc87c85e32492bef489 + docs/models/syncreconcilerequestpendingpreparedstackprofileplatforms.md: + last_write_checksum: sha1:cb68b29199e4db730368aa0b3250e9263edfb8a8 + docs/models/syncreconcilerequestpendingpreparedstackprofileunion.md: + last_write_checksum: sha1:8e959215ec720c0688297b86b71848be33a4ed2a + docs/models/syncreconcilerequestpendingpreparedstackprovidedby.md: + last_write_checksum: sha1:59084968bddcf26b3a69a126d3c520e8c953378c + docs/models/syncreconcilerequestpendingpreparedstackresources.md: + last_write_checksum: sha1:22bffbd3de534283ea38246202b92928dbe62040 + docs/models/syncreconcilerequestpendingpreparedstacksupportedplatform.md: + last_write_checksum: sha1:61c27fb0b805fb47879161e33693d1f4f2465ccb + docs/models/syncreconcilerequestpendingpreparedstacktypeboolean.md: + last_write_checksum: sha1:0182409a93f33fa3c36021b3692abcd2f3169437 + docs/models/syncreconcilerequestpendingpreparedstacktypeenvenum.md: + last_write_checksum: sha1:6f5e906c5448413ee9a62fef46ba07e98a6bdacf + docs/models/syncreconcilerequestpendingpreparedstacktypenumber.md: + last_write_checksum: sha1:363c28a957d0e980a4b604db0c2f6b7d3554542d + docs/models/syncreconcilerequestpendingpreparedstacktypestring.md: + last_write_checksum: sha1:9d68bd0d1b0924f96a7179bf7d1bd78c9ee887f0 + docs/models/syncreconcilerequestpendingpreparedstacktypestringlist.md: + last_write_checksum: sha1:ba22af2cc4a24cca96b398f3f6e2bbdf1da103e0 + docs/models/syncreconcilerequestpendingpreparedstacktypeunion.md: + last_write_checksum: sha1:f7151aa11ca0ed9475dae334f4f2bb3fdc26979c + docs/models/syncreconcilerequestpendingpreparedstackunion.md: + last_write_checksum: sha1:4633b4ff08d5e813c564b835da07a369a959880d + docs/models/syncreconcilerequestpendingpreparedstackvalidation.md: + last_write_checksum: sha1:31104034d7f2029974edbab0319ab131ae380e68 + docs/models/syncreconcilerequestpendingpreparedstackvalidationunion.md: + last_write_checksum: sha1:cdb5f3d0895d331f421775ad5ffa14a37df4716c docs/models/syncreconcilerequestplatform.md: id: 9a3bc70a4dbd last_write_checksum: sha1:4cc3c5a6acf5ea7910493e240c71470203e3c754 @@ -23076,7 +24282,7 @@ trackedFiles: pristine_git_object: a64fc45963549993123c1e3edadae4dadf033f91 docs/models/syncreconcilerequestpreparedstackresources.md: id: 3fa8360af38c - last_write_checksum: sha1:c73785c83223cd83d57c46e49b8837d4cefee632 + last_write_checksum: sha1:7a4a00164ef51af8c7682e223cca1ff1914c9330 pristine_git_object: 47457bd69d68e6ca4d15b5b65e15b087336dfa1c docs/models/syncreconcilerequestpreparedstacksupportedplatform.md: id: be009511cf11 @@ -23128,52 +24334,16 @@ trackedFiles: pristine_git_object: 8ccb2b167da8d10a429a46b8c5ca887bb05a5ae5 docs/models/syncreconcilerequestruntimemetadata.md: id: cd7ac50f8ae2 - last_write_checksum: sha1:97deb06c1dd40a394af7ad156533077bdba7dfde + last_write_checksum: sha1:eacd4a88b4366352307ce4acd5e38f9fe7cb511a pristine_git_object: 4e4fa25e3e838a28c7bad5cd53e313748adfe73a docs/models/syncreconcilerequestruntimemetadataunion.md: id: 7d76aaa81d55 last_write_checksum: sha1:49468b56c678f9e3abb66a65fe62115e01c82b76 pristine_git_object: 48f649d6c9f778c910e2bebecd0d64583511fe0c - docs/models/syncreconcilerequestsource1.md: - id: 336271f179d6 - last_write_checksum: sha1:250babb11f397fb231a86994549990e148b512f5 - pristine_git_object: e088c765db394533f6dada1b1f02fae2f5f8a16d - docs/models/syncreconcilerequestsource10.md: - id: 85264d24e2ce - last_write_checksum: sha1:25aa2cc80d83c067a5addfe0400eb17969c37bd2 - pristine_git_object: 06894983dea8114d8a82ea91c0ee4b759c5f9fae - docs/models/syncreconcilerequestsource2.md: - id: 3794274b66a7 - last_write_checksum: sha1:3f0df8d7ce40412e41eae2d5a1d069ab42ed8aa2 - pristine_git_object: dbfed25d3badeab84ac272b787d5cc136736df14 - docs/models/syncreconcilerequestsource3.md: - id: cde5971e348c - last_write_checksum: sha1:888bd0d8235b5a9f57bbf4bff1fd174e49fb79ce - pristine_git_object: 307c9c33052d95aa217c3912d70cccc52a936278 - docs/models/syncreconcilerequestsource4.md: - id: d64609e76895 - last_write_checksum: sha1:a2820b6cb9e09bc00c1c46016112166411d01666 - pristine_git_object: a7166492d4c8baaab3d98f65c0ba88f674ad5ed2 - docs/models/syncreconcilerequestsource5.md: - id: 7b0e9c5fcc5a - last_write_checksum: sha1:207234f4adfd51834659ba6f3574b26e0d66a95e - pristine_git_object: fc48955874929d5e6f90e9d1d7029d103bf411f8 - docs/models/syncreconcilerequestsource6.md: - id: 71003717fac2 - last_write_checksum: sha1:200203ac681dbc3245ad7ddcdb201db8c94002c1 - pristine_git_object: 16ea50e2cb94997360a626f2a758b593a637b3ba - docs/models/syncreconcilerequestsource7.md: - id: 1a219238598d - last_write_checksum: sha1:b564e2c5378db4813064da92c8ea6dc0901ca151 - pristine_git_object: 9101f77b6252115f203b0c52ddb511263693e1ad - docs/models/syncreconcilerequestsource8.md: - id: 1ad0568ca365 - last_write_checksum: sha1:d51ad290749c7bf17f12c637e1fc3a9dc7461ce1 - pristine_git_object: 87c3e1b014628b7918c89164ea8810d8dbc4117e - docs/models/syncreconcilerequestsource9.md: - id: 3f3f19f103b3 - last_write_checksum: sha1:1342cdbbd1e14b1f079b54b1798ab28cc1ec1540 - pristine_git_object: f4ec35288d4c73ab01d9ab19c940c1c66f27bbce + docs/models/syncreconcilerequestsetupupdateauthorization.md: + last_write_checksum: sha1:68f6259d66a48cb163cb642294e39208867a3159 + docs/models/syncreconcilerequestsetupupdateauthorizationunion.md: + last_write_checksum: sha1:a76b8cc6e11f5edcae3f23db4c6d7a25b884aa09 docs/models/syncreconcilerequeststackstate.md: id: 675b11ef23bc last_write_checksum: sha1:02e7c283e3dadc014dc248bbea4915463d396c11 @@ -23496,7 +24666,7 @@ trackedFiles: pristine_git_object: 46b103daa1ac28da86c5168689e3288950111b7b docs/models/syncreconcilerequesttargetreleaseresources.md: id: 03a2ccb588d7 - last_write_checksum: sha1:d653292e15306bff736038c69915a5a420f947aa + last_write_checksum: sha1:00cdff3e3ad48733d738e9611c326eceeb81aef6 pristine_git_object: 1e93239fc7a607273d55ea4d2931c7be0c82352f docs/models/syncreconcilerequesttargetreleasestack.md: id: 66cdb36a7a2a @@ -23586,6 +24756,12 @@ trackedFiles: id: c627797032cc last_write_checksum: sha1:32cae4ba6da60922c3004f3d8e85330bc9d19989 pristine_git_object: f7078afbb45bb0db18750930892df6688ed9a971 + docs/models/syncreconcileresponseapikey.md: + last_write_checksum: sha1:f08516b740b88d32420a9df617f8d88aec8b9d9c + docs/models/syncreconcileresponseapikeysecretref.md: + last_write_checksum: sha1:d6d2b14f422c2f696b7a2a11b856828bc4a892d2 + docs/models/syncreconcileresponseapikeyunion.md: + last_write_checksum: sha1:3a1516c45d701e2dd4e2075ef876c0b4c6ea8bb7 docs/models/syncreconcileresponseawsstacksettings.md: id: 0d67519dc0fc last_write_checksum: sha1:1b964de7da5b9e3ec23947a4e36ec9e72f5ac64f @@ -24148,7 +25324,7 @@ trackedFiles: pristine_git_object: 318429b6e13e831abe575de8da496062f1099eb2 docs/models/syncreconcileresponsecurrentreleaseresources.md: id: 47de7ae0bff8 - last_write_checksum: sha1:30e881e23c4be6cb481330440b634e3560e7fdc3 + last_write_checksum: sha1:9beda8b9463cbed2d74907fae9a02546b7623c71 pristine_git_object: cf00a8abed349e1a1cebd114ed1a957a01608048 docs/models/syncreconcileresponsecurrentreleasestack.md: id: 5d168ce1cf5b @@ -24446,6 +25622,8 @@ trackedFiles: id: bf17e44a5928 last_write_checksum: sha1:472515f94a6fcb555f86c1211232777235fd4843 pristine_git_object: e0f7b0db10b8d4c453dbcf9124646c2410adbfe5 + docs/models/syncreconcileresponseexternalbindingsai.md: + last_write_checksum: sha1:600fccd68fc745a38b4d637a1ac77ad5940fbcba docs/models/syncreconcileresponseexternalbindingsaurora.md: id: e584c0ec157b last_write_checksum: sha1:a80a937fc71421a3a08d2660e664f56acd5eac32 @@ -24456,7 +25634,7 @@ trackedFiles: pristine_git_object: e2d080bfec89f61158213e7453cb5ecd64a3cd5f docs/models/syncreconcileresponseexternalbindingscloudsql.md: id: f6f35ba820f8 - last_write_checksum: sha1:5800f89b572d961cf8bee0f6c1ab11dc44e8345c + last_write_checksum: sha1:b4b70d7d6d10f45b76c33c5d99526c1ce7241eb1 pristine_git_object: 5af93c2ce98361fdfe4a778369dbb2a4bedfa2cc docs/models/syncreconcileresponseexternalbindingscontainerappsenvironment.md: id: 95910e9e4208 @@ -24472,7 +25650,7 @@ trackedFiles: pristine_git_object: 245e7d446cfec99ef0e0ab2e64ebdadc29bc565b docs/models/syncreconcileresponseexternalbindingsexternal.md: id: e945610c3310 - last_write_checksum: sha1:a479785a9ccd0171fa8d6511aa89f8b8bc7d8fc7 + last_write_checksum: sha1:97cfff29cb3e7799d8316519c7feb5f01e52b165 pristine_git_object: d536b460f2aea44df3b302dc0c17cca2f1f69af1 docs/models/syncreconcileresponseexternalbindingsfirestore.md: id: bc9d1a33ea3c @@ -24580,8 +25758,16 @@ trackedFiles: pristine_git_object: f31e9098998e55fe19babd1a52a0ad17b4f6ea9f docs/models/syncreconcileresponseexternalbindingsunion7.md: id: d8e15d17515d - last_write_checksum: sha1:dd0f838981bbc175ab1c95e21de8979b31475949 + last_write_checksum: sha1:f5b3304d9a048c53147eee963c895eab7776aa3a pristine_git_object: 36d0ee555e119289ce45b4365f47eee3ce5f38bf + docs/models/syncreconcileresponsefailuredomains1.md: + last_write_checksum: sha1:ec6b7eb67a2786fc3fe123a8d381ccca5714d383 + docs/models/syncreconcileresponsefailuredomains2.md: + last_write_checksum: sha1:918d1600df3c1d6e53529c7fe4c9d9daee6c9268 + docs/models/syncreconcileresponsefailuredomainsunion1.md: + last_write_checksum: sha1:45d228744c3fbae12c0717e036d443713af11678 + docs/models/syncreconcileresponsefailuredomainsunion2.md: + last_write_checksum: sha1:5f01fa8cb0e4f30417ea50de13e1b8ee3df1ff7a docs/models/syncreconcileresponsegcpimages.md: id: b6259d91a421 last_write_checksum: sha1:ac6dd96047acd3f85d9afba6c2a7aa1c126e2cb4 @@ -24658,6 +25844,8 @@ trackedFiles: id: 38884700479c last_write_checksum: sha1:9fb922b97e8fcdfc1ba6f1b2e4f4d88ed4680624 pristine_git_object: 8b1964ada47b729131c4c96bec7029276b4e1576 + docs/models/syncreconcileresponseinitialsetupauthority.md: + last_write_checksum: sha1:ff83218e5de7854c8ab9ed67ddc10370ef4aaaf7 docs/models/syncreconcileresponsekeyprefix1.md: id: 37eef7d37c1f last_write_checksum: sha1:6c3ed38cb22212989408d4c83386d9ff14e9fc4f @@ -24830,6 +26018,204 @@ trackedFiles: id: 69a69d3edb59 last_write_checksum: sha1:3e53e1bcc2802edc9b6095cf0a40742d67deb56d pristine_git_object: 6cdc4b4af526773a18e4e20b69339d7badf1cc88 + docs/models/syncreconcileresponsependingpreparedstack.md: + last_write_checksum: sha1:cb2ebf704be8ee66da21f7360e9975bf29221e62 + docs/models/syncreconcileresponsependingpreparedstackconfig.md: + last_write_checksum: sha1:211e413341a741fcd172ae509c1186c2d6a0b65b + docs/models/syncreconcileresponsependingpreparedstackdefaultboolean.md: + last_write_checksum: sha1:3a92d2c2a796f75f750575d9bf32de99007410a8 + docs/models/syncreconcileresponsependingpreparedstackdefaultnumber.md: + last_write_checksum: sha1:156a38b210fea1cc0a93d3f63d2a86fe85b7f5cc + docs/models/syncreconcileresponsependingpreparedstackdefaultstring.md: + last_write_checksum: sha1:991214ba89fe239cf993fe6f7720eb88637ce7cb + docs/models/syncreconcileresponsependingpreparedstackdefaultstringlist.md: + last_write_checksum: sha1:866bba7599e39a5023b95ce66c54f520bdea5700 + docs/models/syncreconcileresponsependingpreparedstackdefaultunion.md: + last_write_checksum: sha1:62d750f0de085a4d82b111d6c0669ab7c547a792 + docs/models/syncreconcileresponsependingpreparedstackdependency.md: + last_write_checksum: sha1:491b81bd712f9c07fae6ca2c9b1f5c2b4e4dc310 + docs/models/syncreconcileresponsependingpreparedstackenv.md: + last_write_checksum: sha1:c04aff9d9bddb486fcc85de3150992562b1ecb71 + docs/models/syncreconcileresponsependingpreparedstackextend.md: + last_write_checksum: sha1:5ffc0d60a82beb78d9ad1c8d3d6fb0b2e5b1dc24 + docs/models/syncreconcileresponsependingpreparedstackextendaw.md: + last_write_checksum: sha1:27f4ce31bed516e3cdfe632bf69dc09d8782d9a8 + docs/models/syncreconcileresponsependingpreparedstackextendawbinding.md: + last_write_checksum: sha1:288e4808831f683b348194ded6f78611fe3608a7 + docs/models/syncreconcileresponsependingpreparedstackextendawgrant.md: + last_write_checksum: sha1:62821e026eea84804fe108fbb7e6eb94c11ef829 + docs/models/syncreconcileresponsependingpreparedstackextendawresource.md: + last_write_checksum: sha1:aa487bd843d40f1b2b27ec5eab2e01490ee07e69 + docs/models/syncreconcileresponsependingpreparedstackextendawstack.md: + last_write_checksum: sha1:288bf1b04bc455f9c5fa8cb8ca5adfcb948446be + docs/models/syncreconcileresponsependingpreparedstackextendazure.md: + last_write_checksum: sha1:73cff17e21210ba0b95a83feda529170d303c62e + docs/models/syncreconcileresponsependingpreparedstackextendazurebinding.md: + last_write_checksum: sha1:5eb18fe9253a341cc8fab2294cd3ea8625585daa + docs/models/syncreconcileresponsependingpreparedstackextendazuregrant.md: + last_write_checksum: sha1:8b5ef7239b8eeebb9ec3de34ca5e00641f05deff + docs/models/syncreconcileresponsependingpreparedstackextendazureresource.md: + last_write_checksum: sha1:659b0114667ae601f88f756b1f503f219f0ba2aa + docs/models/syncreconcileresponsependingpreparedstackextendazurestack.md: + last_write_checksum: sha1:13b787900204cb6638ef834bec921da777251175 + docs/models/syncreconcileresponsependingpreparedstackextendconditionresource.md: + last_write_checksum: sha1:7d19739358912ca9dfe237432677aeab97070c8b + docs/models/syncreconcileresponsependingpreparedstackextendconditionstack.md: + last_write_checksum: sha1:5ec6e5436b664aa6e29f6fd17116464e47b856e2 + docs/models/syncreconcileresponsependingpreparedstackextendeffect.md: + last_write_checksum: sha1:14a2359ac2d29611cffa245c88b98002d5074680 + docs/models/syncreconcileresponsependingpreparedstackextendgcp.md: + last_write_checksum: sha1:5f12f363cf7845dfd1a9e343d401c983769351a7 + docs/models/syncreconcileresponsependingpreparedstackextendgcpbinding.md: + last_write_checksum: sha1:1a4dd438b09112c7dae907e8edb0110f1e31a5db + docs/models/syncreconcileresponsependingpreparedstackextendgcpgrant.md: + last_write_checksum: sha1:644bbb4d56692398fdd0a4b8b8a78aaea8cbaef7 + docs/models/syncreconcileresponsependingpreparedstackextendgcpresource.md: + last_write_checksum: sha1:8f3e9e045bc93fbec601a726c1df2ea407999b84 + docs/models/syncreconcileresponsependingpreparedstackextendgcpstack.md: + last_write_checksum: sha1:4d565547123182d2392eede1ce58c72245e244f9 + docs/models/syncreconcileresponsependingpreparedstackextendplatforms.md: + last_write_checksum: sha1:34a420ab87f8da715cc3c855ec291d0f086e4ba4 + docs/models/syncreconcileresponsependingpreparedstackextendresourceconditionunion.md: + last_write_checksum: sha1:49c724d616aa36255b9d5a9c2d7b5d5b4b4815ab + docs/models/syncreconcileresponsependingpreparedstackextendstackconditionunion.md: + last_write_checksum: sha1:8a4160bb62ecd01a44774d4797229bf3bdb2fa7d + docs/models/syncreconcileresponsependingpreparedstackextendunion.md: + last_write_checksum: sha1:4097d9bd4f10da56cb121e8a5b20225f413f9f79 + docs/models/syncreconcileresponsependingpreparedstackinput.md: + last_write_checksum: sha1:655d3ca365628e573b673bede58c198b0d20f4b0 + docs/models/syncreconcileresponsependingpreparedstackkind.md: + last_write_checksum: sha1:d43fed9475667a9fbb68dd5da7fbc82b55797b9a + docs/models/syncreconcileresponsependingpreparedstacklifecycle.md: + last_write_checksum: sha1:60822d0a43cf6fc4bc07fdc676919684657eda6b + docs/models/syncreconcileresponsependingpreparedstackmanagement1.md: + last_write_checksum: sha1:285b3e18d77c222bd7883bb4d11ff2849745bfd4 + docs/models/syncreconcileresponsependingpreparedstackmanagement2.md: + last_write_checksum: sha1:b861c14fefbbf6a72fd6a2c548743beb24629da0 + docs/models/syncreconcileresponsependingpreparedstackmanagementenum.md: + last_write_checksum: sha1:cb38cf14ff2487a999969de2c3730463cd8f3a06 + docs/models/syncreconcileresponsependingpreparedstackmanagementunion.md: + last_write_checksum: sha1:78c8a88491c16ecc7cfaa1142099ddf2701e0132 + docs/models/syncreconcileresponsependingpreparedstackoverride.md: + last_write_checksum: sha1:93bf445b26cef957df31344cae1f949a931361e1 + docs/models/syncreconcileresponsependingpreparedstackoverrideaw.md: + last_write_checksum: sha1:682e56c5916ac3fbec8b563a9b253a97b8aaf50a + docs/models/syncreconcileresponsependingpreparedstackoverrideawbinding.md: + last_write_checksum: sha1:dabc4b9ef4bbf5d238887a2aea27fe6adee83c07 + docs/models/syncreconcileresponsependingpreparedstackoverrideawgrant.md: + last_write_checksum: sha1:7958ded2a18df816d3a2d2953db3afe4e6af98af + docs/models/syncreconcileresponsependingpreparedstackoverrideawresource.md: + last_write_checksum: sha1:77d118935e49ddeb00bc3a3504f4916a5735d3b3 + docs/models/syncreconcileresponsependingpreparedstackoverrideawstack.md: + last_write_checksum: sha1:90759fc847b1a7b05107ff14725524f019eb6d01 + docs/models/syncreconcileresponsependingpreparedstackoverrideazure.md: + last_write_checksum: sha1:651bc2c266f095f8858d51b546b5ad5cc20a56b7 + docs/models/syncreconcileresponsependingpreparedstackoverrideazurebinding.md: + last_write_checksum: sha1:27a44a17efc22fa7e23d9732d3305370c155f4b4 + docs/models/syncreconcileresponsependingpreparedstackoverrideazuregrant.md: + last_write_checksum: sha1:59886073bf6ad5c004a36669a34b820310ec67f5 + docs/models/syncreconcileresponsependingpreparedstackoverrideazureresource.md: + last_write_checksum: sha1:09ac770f53efccdaf96c67017ddc5fd216bdf1fe + docs/models/syncreconcileresponsependingpreparedstackoverrideazurestack.md: + last_write_checksum: sha1:b935c7a2a3ccc71c73ecdbe3231c1e0aa1433f1f + docs/models/syncreconcileresponsependingpreparedstackoverrideconditionresource.md: + last_write_checksum: sha1:5126815593b5ec0a17647a5caa6c54a2505f0903 + docs/models/syncreconcileresponsependingpreparedstackoverrideconditionstack.md: + last_write_checksum: sha1:0a13e55755e8016f1efe54edecd769cb56fc743f + docs/models/syncreconcileresponsependingpreparedstackoverrideeffect.md: + last_write_checksum: sha1:15aa847b9d0169049b8584547eaad94f5119b693 + docs/models/syncreconcileresponsependingpreparedstackoverridegcp.md: + last_write_checksum: sha1:d52466db402620599242da0747c7a89e247ba958 + docs/models/syncreconcileresponsependingpreparedstackoverridegcpbinding.md: + last_write_checksum: sha1:71edfb2007be458fac82af7bce39d247a3be7125 + docs/models/syncreconcileresponsependingpreparedstackoverridegcpgrant.md: + last_write_checksum: sha1:08bd5ba685c783c6b5dcac24e2436194b310cf63 + docs/models/syncreconcileresponsependingpreparedstackoverridegcpresource.md: + last_write_checksum: sha1:f93b8b0c8f03b5231584336234aae26bc15923e2 + docs/models/syncreconcileresponsependingpreparedstackoverridegcpstack.md: + last_write_checksum: sha1:d2f6e298d30a667706707f7ab21c4fe06655b910 + docs/models/syncreconcileresponsependingpreparedstackoverrideplatforms.md: + last_write_checksum: sha1:51a35bd8b44428d2ace88ea6869d01d42c3a61d3 + docs/models/syncreconcileresponsependingpreparedstackoverrideresourceconditionunion.md: + last_write_checksum: sha1:1c75d0f61472c457cf04a8854a61b31947f0fe6e + docs/models/syncreconcileresponsependingpreparedstackoverridestackconditionunion.md: + last_write_checksum: sha1:758f0804c09104dc7dde72a787d764eec131caac + docs/models/syncreconcileresponsependingpreparedstackoverrideunion.md: + last_write_checksum: sha1:3ad7ea6c97ce8fe41223b86161b0f4e727d2f6df + docs/models/syncreconcileresponsependingpreparedstackpermissions.md: + last_write_checksum: sha1:cf47a4a34547091115b0d9da4a9ff91d8fc2d00f + docs/models/syncreconcileresponsependingpreparedstackplatform.md: + last_write_checksum: sha1:e6e3fec30c7fcdee56b5d5793cf0f3f500b804d6 + docs/models/syncreconcileresponsependingpreparedstackprofile.md: + last_write_checksum: sha1:f620576cf6f8c1335d35eff894178fb023fe64ba + docs/models/syncreconcileresponsependingpreparedstackprofileaw.md: + last_write_checksum: sha1:eb3d70d18b1247bdc4a00b8a5e73f919c3fb3cbf + docs/models/syncreconcileresponsependingpreparedstackprofileawbinding.md: + last_write_checksum: sha1:86f249b4ee55eaf6432ed2dc4a2c37fe3800ee74 + docs/models/syncreconcileresponsependingpreparedstackprofileawgrant.md: + last_write_checksum: sha1:fac61d271a57747773bbc225e1458236c345d9cd + docs/models/syncreconcileresponsependingpreparedstackprofileawresource.md: + last_write_checksum: sha1:fbb92c435811aa1501db94a23124d821805e20bb + docs/models/syncreconcileresponsependingpreparedstackprofileawstack.md: + last_write_checksum: sha1:f6d6a68b9602115df4ef9cc28ba337f4acbd2432 + docs/models/syncreconcileresponsependingpreparedstackprofileazure.md: + last_write_checksum: sha1:113f9248dc1e3f01fd4b7707d3cc10daa556cd6d + docs/models/syncreconcileresponsependingpreparedstackprofileazurebinding.md: + last_write_checksum: sha1:f7b48c8426d0f9d85c6d5581753ecad19a527b47 + docs/models/syncreconcileresponsependingpreparedstackprofileazuregrant.md: + last_write_checksum: sha1:9de4f7ac7aaf3f457485134a655e9a4cf4251686 + docs/models/syncreconcileresponsependingpreparedstackprofileazureresource.md: + last_write_checksum: sha1:7458035bbe810d0982a5834b1af5e9e15523d973 + docs/models/syncreconcileresponsependingpreparedstackprofileazurestack.md: + last_write_checksum: sha1:0dcd7c7f3443370cb488643cc52261f1c1b56fa3 + docs/models/syncreconcileresponsependingpreparedstackprofileconditionresource.md: + last_write_checksum: sha1:c701d5376a8e7140648bc89ba83fae1f794ea004 + docs/models/syncreconcileresponsependingpreparedstackprofileconditionstack.md: + last_write_checksum: sha1:694f9ea843d273515e48c26d0469af781720dc4a + docs/models/syncreconcileresponsependingpreparedstackprofileeffect.md: + last_write_checksum: sha1:6ffd39ecae456d4a8e1cb2ca396b1410dfdbdbb0 + docs/models/syncreconcileresponsependingpreparedstackprofilegcp.md: + last_write_checksum: sha1:d1aee71198b82ed49a0440bbd019f0585d4edb57 + docs/models/syncreconcileresponsependingpreparedstackprofilegcpbinding.md: + last_write_checksum: sha1:4971b8117a11d9282e1d24944f38b1c3c855b2f3 + docs/models/syncreconcileresponsependingpreparedstackprofilegcpgrant.md: + last_write_checksum: sha1:275a4d6538234586e21c72a582555297f2f8fe1d + docs/models/syncreconcileresponsependingpreparedstackprofilegcpresource.md: + last_write_checksum: sha1:d28df227e77aa181e2807efee4ef416632e45593 + docs/models/syncreconcileresponsependingpreparedstackprofilegcpstack.md: + last_write_checksum: sha1:af4e59e66e6a04660ce6389698709a30ee47de3e + docs/models/syncreconcileresponsependingpreparedstackprofileplatforms.md: + last_write_checksum: sha1:f6ef9c824d2b9ea646888f1afa171cd95064052e + docs/models/syncreconcileresponsependingpreparedstackprofileresourceconditionunion.md: + last_write_checksum: sha1:b8d26163a377ec56559d0f1d66e12889c5a2b48b + docs/models/syncreconcileresponsependingpreparedstackprofilestackconditionunion.md: + last_write_checksum: sha1:82b45decf4764883da2afea6b37cdad79fdd6de6 + docs/models/syncreconcileresponsependingpreparedstackprofileunion.md: + last_write_checksum: sha1:05abad9bd43eac0a8cd237032c2f5f8a653e1c3f + docs/models/syncreconcileresponsependingpreparedstackprovidedby.md: + last_write_checksum: sha1:d0763c7a008b66fd8611aa556b92901d7c97d00e + docs/models/syncreconcileresponsependingpreparedstackresources.md: + last_write_checksum: sha1:e86a0dc6f4aff7e9f5faf71e9f469edfdaf1022a + docs/models/syncreconcileresponsependingpreparedstacksupportedplatform.md: + last_write_checksum: sha1:e88945eea10d14d8836bef2ff5a29eff348aa542 + docs/models/syncreconcileresponsependingpreparedstacktypeboolean.md: + last_write_checksum: sha1:81a773ed6294a6aa1cd01f3f9fbf5c56f97045b1 + docs/models/syncreconcileresponsependingpreparedstacktypeenvenum.md: + last_write_checksum: sha1:f0ed968eaf29fc7041cbee6037917d66f7eac9b6 + docs/models/syncreconcileresponsependingpreparedstacktypenumber.md: + last_write_checksum: sha1:86d21b8beabd789bf0e97e09f06b9550c4798257 + docs/models/syncreconcileresponsependingpreparedstacktypestring.md: + last_write_checksum: sha1:5beaffac019b736bb0d7bb8766f626bda856de2b + docs/models/syncreconcileresponsependingpreparedstacktypestringlist.md: + last_write_checksum: sha1:e42ddb2144265dff6035e4e05dd573a50245a834 + docs/models/syncreconcileresponsependingpreparedstacktypeunion.md: + last_write_checksum: sha1:3d30bd83e8d9963511164a08713bdbe715b96521 + docs/models/syncreconcileresponsependingpreparedstackunion.md: + last_write_checksum: sha1:ed3e76c71c080a3150c6fbe0dd07fecdf075da97 + docs/models/syncreconcileresponsependingpreparedstackvalidation.md: + last_write_checksum: sha1:e701d6b17d171dc3a31ab918beedfdc13979a211 + docs/models/syncreconcileresponsependingpreparedstackvalidationunion.md: + last_write_checksum: sha1:bcb5f32e9fbd3cd6038c0c8e75204dc79c353f0a docs/models/syncreconcileresponseplatformlocal.md: id: 315da2271cd8 last_write_checksum: sha1:aae032248722bd29dbb5381fccd94797e8d0ec68 @@ -24840,11 +26226,11 @@ trackedFiles: pristine_git_object: 64c9a0d5ae4936176f32955a6e8c2ae1bad143e6 docs/models/syncreconcileresponsepoolsautoscale.md: id: 2093ba0fbfa8 - last_write_checksum: sha1:29bc1d2da83d0763cba17df1da14609df52983f8 + last_write_checksum: sha1:b9dc1f6f2b2aa27f807ca78b38ec24ca6e69fc45 pristine_git_object: 5c8dbdcfc0414114498a4f110ba97502093e85d7 docs/models/syncreconcileresponsepoolsfixed.md: id: 8207de7bec7e - last_write_checksum: sha1:d2700d78a766af498739964cae4463d1cc82728e + last_write_checksum: sha1:939b7c7c9200b44f9bfd53bf0affc11ee86ca574 pristine_git_object: c81e70fbfab13dfa25843b469fdc610cb6ce05e3 docs/models/syncreconcileresponsepoolsunion.md: id: 7edf40084c8f @@ -25264,7 +26650,7 @@ trackedFiles: pristine_git_object: b4a33e7fb6df8b679256fdd92e2781841364984b docs/models/syncreconcileresponsepreparedstackresources.md: id: 191daf8d65e0 - last_write_checksum: sha1:13e7e0c3c80682a8ca0f67244a3a1c0161fcae09 + last_write_checksum: sha1:889063b708dc3494e69075e34902894fbdb4317c pristine_git_object: 996b8ad225706d73396b38b3be54baabf5333df4 docs/models/syncreconcileresponsepreparedstacksupportedplatform.md: id: 20501447a9f9 @@ -25660,12 +27046,24 @@ trackedFiles: pristine_git_object: 29cad4d24be0adb69ba28117a43b13062e2ceda8 docs/models/syncreconcileresponseruntimemetadata.md: id: 373f475926b7 - last_write_checksum: sha1:621f46c3f8a37c799056278dbbdd7da81880332a + last_write_checksum: sha1:c1498e8d5cd536f69992225e8d9d2122620c5ccf pristine_git_object: 0ced73a05cee24e7e65dd63c5a41e23494fa321b docs/models/syncreconcileresponseruntimemetadataunion.md: id: 1c4a89a1cf4a last_write_checksum: sha1:c54310897f285b59d4b8b9b5f5f97298528815d3 pristine_git_object: 4028a6dd2a008d7387fc43333f93b7d7ace3506c + docs/models/syncreconcileresponseservercacertificates.md: + last_write_checksum: sha1:9d9eed3ec52c11ccfa29a4d2842a62bd8ab5900f + docs/models/syncreconcileresponseservercacertificatessecretref.md: + last_write_checksum: sha1:ff9c59756f52405cb947ba0b8e7312696d42985f + docs/models/syncreconcileresponseservercacertificatesunion.md: + last_write_checksum: sha1:42066cb9fe74c71d0b8bbe9ae53ddc5a234f0491 + docs/models/syncreconcileresponsesetupupdateauthorization.md: + last_write_checksum: sha1:d4572480d2b3f5c79bc329244b882c23d431e517 + docs/models/syncreconcileresponsesetupupdateauthorizationunion.md: + last_write_checksum: sha1:94a5b15ff70c61a2e32c4b85632905eed74d16da + docs/models/syncreconcileresponsesslmode.md: + last_write_checksum: sha1:20f1de6fe2d638322d0bd0c43c08158fdeef11df docs/models/syncreconcileresponsestacksettings.md: id: f4ef30daf645 last_write_checksum: sha1:4c24395a4a0d2413e1a34afc572530f6309b69f5 @@ -26136,7 +27534,7 @@ trackedFiles: pristine_git_object: fb65bb4a84fbf9d3b8380c92692b4989b7f8361a docs/models/syncreconcileresponsetargetreleaseresources.md: id: 375a2d058630 - last_write_checksum: sha1:95ad190c9559b1407b2b7a3989facd826ae12b7a + last_write_checksum: sha1:47ce5cd862c2c68c2190b60c950fed02e67219a8 pristine_git_object: 06c7b898ec31403c633209da6c49463f1fd1c9b8 docs/models/syncreconcileresponsetargetreleasestack.md: id: b0909844ceb6 @@ -26322,9 +27720,11 @@ trackedFiles: id: fc1e83661528 last_write_checksum: sha1:86cbd192dfbc6c51e9ee1dac90780e7e18fd4732 pristine_git_object: cfc5e5e426740f00eaf62a142182ab9ca4e99693 + docs/models/syncrenewrequest.md: + last_write_checksum: sha1:0d15a0f428c5ec5cd6ad603f8210c50c325745df docs/models/targetconfig.md: id: 3394f3ed91fe - last_write_checksum: sha1:d54d17a7db46d2103c45d8f1e6fab67de5b2b06e + last_write_checksum: sha1:30933208b4e3f121d96d3f13036878e4c38ca3ae pristine_git_object: f5d85637d0b6f3b681716d78765bb3d1592d849c docs/models/targetenum.md: id: b6f36bd46968 @@ -26470,6 +27870,8 @@ trackedFiles: id: bfc0afcccd16 last_write_checksum: sha1:09b4f6b41130c14f01f28e76a75f4ec3103127f5 pristine_git_object: cb9b64c1ac09e206a25c1bdc211ea59a40c6f6a5 + docs/models/targettypeai.md: + last_write_checksum: sha1:fd3389adc99b0b7368c37d35332fdc1a90bbfa22 docs/models/targettypeartifactregistry1.md: id: af21b83229c2 last_write_checksum: sha1:80777d765137f86805df46ebfcf151b3e08cda0b @@ -26728,7 +28130,7 @@ trackedFiles: pristine_git_object: 8994005f016603fa4936cad7528549aae854918f docs/models/updatedeploymentsetuppolicy.md: id: 548dfca7c0fe - last_write_checksum: sha1:01021bbf3c5a0d8e5eec27f06c5e5807935574af + last_write_checksum: sha1:156dfd7db32096c3bd123d829d0e4e83650176bb pristine_git_object: 3cbd81fea582bf19bbd879eb281571bd17aeb127 docs/models/updatemanagerdomainbinding.md: id: 8b1e48d60d8f @@ -26796,6 +28198,10 @@ trackedFiles: id: 1fa0bf2ef78e last_write_checksum: sha1:ee71eca6e79c993755e90a416472af6a8d953785 pristine_git_object: 7a10d04401a45bfa926775caef8c02e478efd653 + docs/models/updateworkspacesettingsrequest.md: + last_write_checksum: sha1:0d613da438ca04d53f760d8756afce66182dc169 + docs/models/updateworkspacesettingsrequestdebugpermissionmode.md: + last_write_checksum: sha1:04dcfc14a142f405df1138baf1aeadb97cb2c302 docs/models/usage.md: id: ba79ec873169 last_write_checksum: sha1:29b4a1c903869ec05e7a2875016df51d9c7ae6b3 @@ -26960,6 +28366,20 @@ trackedFiles: id: 1439296c684d last_write_checksum: sha1:bdedb192edc080989d7f585037cd583de3901ee9 pristine_git_object: 7e417df9210e5de8587092d675e82dc30503bab8 + docs/models/workspaceinvitation.md: + last_write_checksum: sha1:270b808cd03c264ad96697db088e9d2819e6e486 + docs/models/workspaceinvitationpreview.md: + last_write_checksum: sha1:4b739b914377ba99a992e6918ccb4438ac56b64d + docs/models/workspaceinvitationpreviewkind.md: + last_write_checksum: sha1:5e5fef7315e34b470266fa90dc446c9ccec852f1 + docs/models/workspaceinvitationpreviewstate.md: + last_write_checksum: sha1:6d9202681ad838271386b892dacb99389f16224b + docs/models/workspaceinvitationpreviewworkspace.md: + last_write_checksum: sha1:1199a344a4cd686ddb38bbb10160f9f190d3a355 + docs/models/workspaceinvitationstatus.md: + last_write_checksum: sha1:7c59641a03ed904289a2a86a77efce153e1baf12 + docs/models/workspaceinvitelink.md: + last_write_checksum: sha1:049f39340099b29171fd9510a35a6d32a1b7cab9 docs/models/workspacemember.md: id: 74015b802170 last_write_checksum: sha1:01326c9a7e16fe074cac722815895e9e86b14db7 @@ -26972,6 +28392,10 @@ trackedFiles: id: 8f04510d8038 last_write_checksum: sha1:7876005e444c97cf3c212d0ff9b4a38e416a0dfe pristine_git_object: 22164c18980137da563d65b2be38af872ab9ba78 + docs/sdks/agentsessions/README.md: + last_write_checksum: sha1:8406f8c606717ef44e323f9f61808dfb88472063 + docs/sdks/alien/README.md: + last_write_checksum: sha1:d56a8eb5d919a0d2e69c1e727a37a315b4a9b65d docs/sdks/apikeys/README.md: id: e2bd25998427 last_write_checksum: sha1:e9209e6b7dd3328c10dcc9b055ceeb1c65243115 @@ -27002,11 +28426,11 @@ trackedFiles: pristine_git_object: 3e791cad7f6102a7a2aaffeddcb40990d20ff890 docs/sdks/deploymentgroups/README.md: id: 5df9f1e7770b - last_write_checksum: sha1:95f7089e21ae06d2c272fc22c663a59fa83ceff0 + last_write_checksum: sha1:494ae5c278f5b7a9ce1378dc05b19baace01e21c pristine_git_object: 3ab72dac669daa20a387032aeff49aecfdbf7c91 docs/sdks/deployments/README.md: id: e7c5559ab768 - last_write_checksum: sha1:04086e8826d7cc980e3cebebc6608fb3bdb29b43 + last_write_checksum: sha1:3686703dcae8f475fba68be4a82fe2fe52966912 pristine_git_object: 268c082c13e5df90c861fbc9a7ad8a12f4d4d23b docs/sdks/domains/README.md: id: 06e9beb4063b @@ -27022,7 +28446,7 @@ trackedFiles: pristine_git_object: 91ba63257de1e5cfe068cb6e5a71b87317301288 docs/sdks/managers/README.md: id: bd852d1f1428 - last_write_checksum: sha1:5223d48ed5b8720a8bb3a3eb2fd68e0552ae5809 + last_write_checksum: sha1:fe4b5c8c8a4a417cae14beb999163cbd1c6b1614 pristine_git_object: 8bfe2a424a7d98d235de9f1038cefa0a23b92c35 docs/sdks/operatormanifests/README.md: id: 5797b1d533e4 @@ -27034,11 +28458,13 @@ trackedFiles: pristine_git_object: 8d4e7433cafb9ebc326a02a52886fc5049e664bf docs/sdks/projects/README.md: id: 1c5f71754e17 - last_write_checksum: sha1:7355f82338cbe25a4a02b6c9e89996f7d088306a + last_write_checksum: sha1:d39d647d74be179f43381bb4394d3668faded14f pristine_git_object: 3d554d47e2892987cf35e9d387a75e9916e35f7a + docs/sdks/releasechannels/README.md: + last_write_checksum: sha1:41c70d343690eda85e8efad32de4aadc822beb1e docs/sdks/releases/README.md: id: 63d3c821dfd3 - last_write_checksum: sha1:02657bfed7392784381a79f99cbc4a86fc5f4822 + last_write_checksum: sha1:e344a63718e2a034d826a66b05dd8bdb2550abfc pristine_git_object: c9dde0507139b6e9dced7325c55964ae8cbca917 docs/sdks/resolve/README.md: id: 2c39d5344e6f @@ -27048,9 +28474,11 @@ trackedFiles: id: ddaa9ea920d9 last_write_checksum: sha1:1df2415358b523ce545ade7e278f5d2113e4293d pristine_git_object: 761dd8ccdba4d112b4c73858d8b82c0f3cab8675 + docs/sdks/slackintegration/README.md: + last_write_checksum: sha1:1cf5a5433a69614e524d33e11d30d11e8b3da93e docs/sdks/sync/README.md: id: a2e09f86bd16 - last_write_checksum: sha1:69eda3afad9b999c252aa7c58850fed88dada1e1 + last_write_checksum: sha1:a1cb8268566ac2600c14ca6576c9915b44efd077 pristine_git_object: c0377133c0e652c5c0a9c6093fd5f02339000292 docs/sdks/user/README.md: id: 437dd7dc6e30 @@ -27058,7 +28486,7 @@ trackedFiles: pristine_git_object: 8f39a20a53fa575fcde3b3ce407fa79609d58ad7 docs/sdks/workspaces/README.md: id: 1f5b051a6380 - last_write_checksum: sha1:ba59db40082648126bf7ca09dfef433afb087cd7 + last_write_checksum: sha1:408c9a2b59a13282e50dc185981139f1d48ed7c3 pristine_git_object: ea607887b5585d511b732faf8676225f51ec743b eslint.config.mjs: id: 461c8d07f6da @@ -27072,26 +28500,36 @@ trackedFiles: id: 9d0f69d6e677 last_write_checksum: sha1:06ead694257a1826a413c9267347ddf7ce6e7a5d pristine_git_object: 881bdabe3a2b7d1004f4d5e63addda8152e4a9a7 + examples/getWorkspaceInvitationPreview.example.ts: + last_write_checksum: sha1:7e9e2bb553501989995c2d593a9a56837827c5dd examples/package.json: id: c1d7b0ec8e7e last_write_checksum: sha1:79c2647b05a6b6d627c5ab80d9dd24c7fe63ab42 pristine_git_object: 91b9336926d9e04ff3216ceb7f6e1d29f96c3a19 - examples/userListMemberships.example.ts: - id: 79d007295618 - last_write_checksum: sha1:e256918ecc8c65a097ef9f3beca92f00b6657aea - pristine_git_object: dc513216f32a6341abe21c560c28d4d70a769203 jsr.json: id: 7f6ab7767282 - last_write_checksum: sha1:da5cf0e8db2758cc9f81638076a4ec2e5e709b04 + last_write_checksum: sha1:648465bccbe474b14088b57a8822eee8536244a5 pristine_git_object: b27d1739aa21f6dfb0a2772ceda2defdbe7bc6c9 package.json: id: 7030d0b2f71b - last_write_checksum: sha1:4b3e6d584e7ca1fd6e60d4a852f672478e0ed53b + last_write_checksum: sha1:d5b5c3cc5645976928a84177db5b8702c2fad50d pristine_git_object: 65db061a4e545903e4d3aa5cb5630a83fd28ce36 src/core.ts: id: f431fdbcd144 last_write_checksum: sha1:c634ddf4882f77c6dba4422d8b4ba7cb5a3a23d4 pristine_git_object: e636ed43350b38029ea85faff425f7d4aca39fb1 + src/funcs/acceptWorkspaceInvitation.ts: + last_write_checksum: sha1:282017066545d7b3f852a8fde2982f8fdb58eca6 + src/funcs/agentSessionsApprove.ts: + last_write_checksum: sha1:33e7d107e04bdaf316e24765cfcb3b73f0ec599c + src/funcs/agentSessionsEvents.ts: + last_write_checksum: sha1:10af4c37c937e78ff20c32cea0e7e64ddef44155 + src/funcs/agentSessionsGet.ts: + last_write_checksum: sha1:206735df32904e95a5e3659596354cb45cabd3e4 + src/funcs/agentSessionsList.ts: + last_write_checksum: sha1:41652374cfc886e2cdab0db83e25e00dff69255e + src/funcs/agentSessionsStop.ts: + last_write_checksum: sha1:6e3472fe4b0bbc1b415edc43d5801fe3c610ae42 src/funcs/apiKeysCreate.ts: id: 133e2c5f487c last_write_checksum: sha1:be3255691199eb6a1d9b21ec93e871907b0d1345 @@ -27172,6 +28610,10 @@ trackedFiles: id: 08c09d84d2c6 last_write_checksum: sha1:cc982bf548af5d9201881340d950baf03509ee0c pristine_git_object: 77b845097d249ff83c45ba4f87f7413741e3f42d + src/funcs/createWorkspaceInvitation.ts: + last_write_checksum: sha1:3fc3e5417b2099eae75acb16b544c644c00c4808 + src/funcs/createWorkspaceInviteLink.ts: + last_write_checksum: sha1:1ea3fb3171e13fbeed50df6508bacc66e4320b11 src/funcs/debugSessionsCreate.ts: id: 0ab661b4b653 last_write_checksum: sha1:b8057dfbd96ee390f53d88605e32be4dd39e277d @@ -27198,7 +28640,7 @@ trackedFiles: pristine_git_object: 39850e87ab75f48324d59166d59a77f64d27131b src/funcs/deploymentGroupsCreateDeploymentGroupToken.ts: id: a343994dab62 - last_write_checksum: sha1:87fd10fba6a6c5d56db7299ca381a4d90b14902a + last_write_checksum: sha1:1b62a6cfd34743f4b433e619c21fddc9471a6945 pristine_git_object: c7967960a65d8fa28750e466b4efd2d1fa73e16b src/funcs/deploymentGroupsCreateFirstPartyDeploymentSession.ts: id: 2d05efac25c9 @@ -27208,6 +28650,8 @@ trackedFiles: id: 9009b9be171a last_write_checksum: sha1:928c67c2de496ef83b3f830d574f5e05d193fc1d pristine_git_object: 614c92f68b9cb2d2ffaa0bb9c097f9296d6cdc0d + src/funcs/deploymentGroupsEnsureDeploymentGroupByExternalId.ts: + last_write_checksum: sha1:1ee23448113a532a1789140df6f77b7dbdb0580c src/funcs/deploymentGroupsEnsureDeploymentGroupByName.ts: id: 775e2842ea72 last_write_checksum: sha1:a7df5067a679c7215de382439626a126803ab1f6 @@ -27216,10 +28660,14 @@ trackedFiles: id: 3b48dcfcac4f last_write_checksum: sha1:5e4f51491120eaaed8bb6b2fe12ebb792119903f pristine_git_object: 7e0b8d81645f8aee8c52d37d88298dc4c5838efb + src/funcs/deploymentGroupsGetDeploymentGroupByExternalId.ts: + last_write_checksum: sha1:719df8b9409c6be1842d5018ffd16be962dd7975 src/funcs/deploymentGroupsListDeploymentGroups.ts: id: 34292c2a1420 last_write_checksum: sha1:7bd00ee1deebd77cdfbc47dcb4d143c04554fbf5 pristine_git_object: 4b1e1514967cbdfc55b68380cdae431dbbb0e9c0 + src/funcs/deploymentGroupsSetDeploymentGroupExternalId.ts: + last_write_checksum: sha1:bb18f3ecc4c88f5b48b267d1fd250ba2c0183909 src/funcs/deploymentGroupsUpdateDeploymentGroup.ts: id: aeb915f29e37 last_write_checksum: sha1:64b5067670abfb43a86f10748293f8153370e585 @@ -27300,6 +28748,8 @@ trackedFiles: id: 050fb72e75c7 last_write_checksum: sha1:df93346c471741da5f47ba033f2bbad0dd768114 pristine_git_object: c7973bdea3bd295bad725cd552df85d542ea6579 + src/funcs/deploymentsSetReleaseChannel.ts: + last_write_checksum: sha1:cdc6e22415b3c1446857834ea15173305b53c46b src/funcs/deploymentsUpdateEnvironmentVariables.ts: id: aa49c47ca700 last_write_checksum: sha1:1d9e54acbf429182be5e8571b7ac711fd00368a9 @@ -27338,8 +28788,14 @@ trackedFiles: pristine_git_object: 977fbe409cb702af90d4bf08039368caaa67a552 src/funcs/eventsList.ts: id: 4522a8542985 - last_write_checksum: sha1:de66a377d92d0d51827cf9d98f6e82492dcb9065 + last_write_checksum: sha1:ebd7e9ca483b9daf63d9e4d010d22682e46187a2 pristine_git_object: 9eb6232914eab09dc4edfff3ac5b1543d5b49a66 + src/funcs/getWorkspaceInvitationPreview.ts: + last_write_checksum: sha1:0332d9b584d0e47f3d7ba2e6b8bf8a67ebd3016c + src/funcs/getWorkspaceInviteLink.ts: + last_write_checksum: sha1:dc456ba4116206daf9fd320ecc3548e86bd591a3 + src/funcs/listWorkspaceInvitations.ts: + last_write_checksum: sha1:e615f9dc8c09c18276fa470dd7eb0dd36f2093ce src/funcs/machinesCancelMachineDrain.ts: id: 43a26468d0ef last_write_checksum: sha1:16164472b36c0c3f323c2f1f4aaef62d38d54d1f @@ -27384,6 +28840,8 @@ trackedFiles: id: ce3e434b894f last_write_checksum: sha1:2c55972597b24fa4835c19e3f247e5d5648cb5f0 pristine_git_object: 7eb37a567a8ea9aedee0ba8b85498cd8b91dbbef + src/funcs/managersGenerateManagerBindingToken.ts: + last_write_checksum: sha1:160bb028f65d8649e558f83a722f135609e21e5a src/funcs/managersGenerateManagerToken.ts: id: e1ce023349b5 last_write_checksum: sha1:05ef2f7710dabd2a8f8f166cf241ac42743547b4 @@ -27482,7 +28940,7 @@ trackedFiles: pristine_git_object: ce1689521cf79a953bc7ef106dc5483b8db055a8 src/funcs/projectsGetActiveRelease.ts: id: 082c0d7043d1 - last_write_checksum: sha1:6941fd9a99b90e45e12cd44972ee21e0634172d1 + last_write_checksum: sha1:ead598e42e2fc80a233321f785523fc499e67fd3 pristine_git_object: ead8e6b0146629d9cb759fcd626db96aff008333 src/funcs/projectsGetDeploymentLinkSetup.ts: id: 63c6ec9dafd1 @@ -27512,6 +28970,12 @@ trackedFiles: id: 0c5b6de9c70d last_write_checksum: sha1:652b825afcff5e9732ab7c3fc91509a74b3a85c1 pristine_git_object: fd46ae522f4a31cc04e2249e616889d65b57c2da + src/funcs/releaseChannelsCreate.ts: + last_write_checksum: sha1:c4194d3fe63211928a687efb50d17f4da3676af3 + src/funcs/releaseChannelsDelete.ts: + last_write_checksum: sha1:3ff27d1451749fb64fdc7a42d222c7ee9a02914d + src/funcs/releaseChannelsList.ts: + last_write_checksum: sha1:d86ffa333ddb6faae0ee44867b027094d365a4ac src/funcs/releasesCreate.ts: id: fc712b319633 last_write_checksum: sha1:394b04980aab08bc78ff18b9e708c771cbb677fe @@ -27522,7 +28986,7 @@ trackedFiles: pristine_git_object: 93b01e23c50cc5704eb3e3ff67279ea62599c0ea src/funcs/releasesList.ts: id: 54dff85f9621 - last_write_checksum: sha1:8f0f103414af0e27cde339264afc73a04f06f10e + last_write_checksum: sha1:f6a8fb1b0cb6db241115736c05c235649b222667 pristine_git_object: 945fb175ca42a69465da1560b3f4807e09622e5f src/funcs/releasesListAuthors.ts: id: 15914882569b @@ -27532,6 +28996,12 @@ trackedFiles: id: ac44b53308d8 last_write_checksum: sha1:4b00e93db3afac0d2f76f2793a912615ad602aad pristine_git_object: 1b94e03cf4d96af30496f0c918c85f0cf95280fc + src/funcs/releasesListDeployments.ts: + last_write_checksum: sha1:7b7f6dfd0da9680ee650e02ed3c7c62267b33924 + src/funcs/releasesPromote.ts: + last_write_checksum: sha1:ae28c8042e3837647f33efd87a1494997dfcfb86 + src/funcs/resendWorkspaceInvitation.ts: + last_write_checksum: sha1:f13b193f0e2829db1b5586e55beed6a0166b81b8 src/funcs/resolveResolve.ts: id: 7590d79420ee last_write_checksum: sha1:a122859e1eba97e0ef6a2bc16a7445df32367f06 @@ -27552,6 +29022,20 @@ trackedFiles: id: 0e88bb16488e last_write_checksum: sha1:001a7c182daa37aaa7754710f6d67612b0130521 pristine_git_object: bd0af0059383eedd1cb4101cc237a1aa0a975cbc + src/funcs/revokeWorkspaceInvitation.ts: + last_write_checksum: sha1:c78022a0c191b4fb1ce3397ba70a25824fc37cdd + src/funcs/revokeWorkspaceInviteLink.ts: + last_write_checksum: sha1:02b35536a7a98a8a23b5d2e1d2e7bac707fb8ea5 + src/funcs/slackIntegrationInstallUrl.ts: + last_write_checksum: sha1:45c9210e5f0eb7e3c843f99a8d61f2767cd83868 + src/funcs/slackIntegrationListChannels.ts: + last_write_checksum: sha1:9b1943053bdf10410ae529e135463722414febfe + src/funcs/slackIntegrationSetNotificationChannel.ts: + last_write_checksum: sha1:754e236af9e67f4942ca7fdc6b9d1db32e73b77d + src/funcs/slackIntegrationStatus.ts: + last_write_checksum: sha1:fa6fb07e77e92a74febba603db02de425653beb7 + src/funcs/slackIntegrationUninstall.ts: + last_write_checksum: sha1:db8bac5b9e33e350795cc66ead9eebb6a473a574 src/funcs/syncAcquire.ts: id: e30e2745d113 last_write_checksum: sha1:9084d31a8e315a29e784ca55e392b5ac05653839 @@ -27572,6 +29056,8 @@ trackedFiles: id: 85c91cd44f53 last_write_checksum: sha1:7320937ccf73ced8856a4cf768f729d89be6e025 pristine_git_object: c4c595b98539f7213b5ec45902ac98d669df0a6d + src/funcs/syncRenew.ts: + last_write_checksum: sha1:56c47e676393eed8e47c638d5b979d27635004a2 src/funcs/userCompleteProfileSetup.ts: id: d563ba12ae03 last_write_checksum: sha1:da78c09b267c75e36afe9e58c417227d63007194 @@ -27620,6 +29106,8 @@ trackedFiles: id: f361d34e5bff last_write_checksum: sha1:6a122f1e6762088452c408331f7d259bc2f1a48f pristine_git_object: a1dd5004d0447ceeb078029d690e649435576cbc + src/funcs/workspacesGetSettings.ts: + last_write_checksum: sha1:b96c9b75a831eab46f9566e6c42c97eefd593433 src/funcs/workspacesList.ts: id: 6ff9df556ff5 last_write_checksum: sha1:9035299e434cbd75433c3a37cd7d3e95abeb947e @@ -27640,6 +29128,8 @@ trackedFiles: id: 76f106c4bb9f last_write_checksum: sha1:2f070d8c85f02be9cacf363b6d770a3ba49f4765 pristine_git_object: 5e980b70744a757bbcdb8e6255970dbee74fef2e + src/funcs/workspacesUpdateSettings.ts: + last_write_checksum: sha1:94d02bcbcc5802305af59ef2538f5ddecbfb4bc5 src/hooks/hooks.ts: id: a2463fc6f69b last_write_checksum: sha1:3a90d88b4c6c07247db8e5f6441a79538232394e @@ -27662,7 +29152,7 @@ trackedFiles: pristine_git_object: 962ea486e17eabe13bcf068493a556110c944df8 src/lib/config.ts: id: 320761608fb3 - last_write_checksum: sha1:2406fab3092aaa1fdae6a1dd2aaa5e866da48011 + last_write_checksum: sha1:044b9b0bdac605b052ca063d286cd7079112c99e pristine_git_object: ea094ae0489afa7a35285ade4b0a06cabb5ca361 src/lib/dlv.ts: id: b1988214835a @@ -27720,6 +29210,44 @@ trackedFiles: id: b0057e24ed76 last_write_checksum: sha1:d124050c7e755c0cce233b9e029afb584ff65201 pristine_git_object: f3a8de6c021de59c991707946cd294596cae954d + src/models/acceptworkspaceinvitationresponse.ts: + last_write_checksum: sha1:0ccb3dd52d4fe621cdab9059d78caac5a94993c4 + src/models/agentsessionapprovalgrantedevent.ts: + last_write_checksum: sha1:2ae40f1bfb704428338be1075758298e55e56fc7 + src/models/agentsessionapprovalrequestedevent.ts: + last_write_checksum: sha1:2d158c8040f3c5f2c524b12352a4872eeb7d6fb4 + src/models/agentsessionapproveresponse.ts: + last_write_checksum: sha1:bb12f8ce1a06384a2a12b164ff7fe72f0958e40d + src/models/agentsessiondetail.ts: + last_write_checksum: sha1:36f011da0a504a698e2274b4ebbfbfba91c52ede + src/models/agentsessionevent.ts: + last_write_checksum: sha1:a17494b629140114d57ec57a9231d276e839c664 + src/models/agentsessioneventsresponse.ts: + last_write_checksum: sha1:d5c9444f421b04e0d61a9a71f891b7bb687409fb + src/models/agentsessioneventstruncatedevent.ts: + last_write_checksum: sha1:8967387a589d559d804930b3705bfc537caa6e3e + src/models/agentsessionlistitem.ts: + last_write_checksum: sha1:9270e89b1be0a49bd066a2297b055b8e843ea2c3 + src/models/agentsessionlistresponse.ts: + last_write_checksum: sha1:1e883c87d769b511c601fcd221ed0772261d36f3 + src/models/agentsessionmarkdownevent.ts: + last_write_checksum: sha1:327cd30ab1c9b6ae7f44fe3d9aa5c6d66cc33090 + src/models/agentsessionrestartedevent.ts: + last_write_checksum: sha1:c8980f01e86caa9501aa95985a544120acf1da33 + src/models/agentsessionstatusevent.ts: + last_write_checksum: sha1:9d529cff59615f79383de3557a24ab0286dbee3d + src/models/agentsessionstepevent.ts: + last_write_checksum: sha1:343f820b161b608bfd93db270445665dd2fc1370 + src/models/agentsessionstopresponse.ts: + last_write_checksum: sha1:54fb5fc9145514fc1fe20de4eded4842ce967a78 + src/models/agentsessionsubject.ts: + last_write_checksum: sha1:0b2869aece9d3a8f225b7ca0359cbd59c9361348 + src/models/agentsessiontoolcallevent.ts: + last_write_checksum: sha1:afe21967f18ec4d4e6a6dc0fb0d0a538a5daa404 + src/models/agentsessiontoolresultevent.ts: + last_write_checksum: sha1:140f09c636fd6c880caf517c904b77e60eb25898 + src/models/agentsettings.ts: + last_write_checksum: sha1:cfae4d39eef20f9aed0572dbc3174a2a2883d35e src/models/apierror.ts: id: ba8cfc219d76 last_write_checksum: sha1:7ae65e50066e8a3f06ba7391c15aae98141e7d97 @@ -27810,7 +29338,7 @@ trackedFiles: pristine_git_object: 0524e4d862970efce5f9980f020f1baaf379c7d4 src/models/createdeploymentgrouprequest.ts: id: 64ab1ce49c4b - last_write_checksum: sha1:e5af8ae7574dcebf49a1d58d230bd6e4022bf7f5 + last_write_checksum: sha1:e3db9897fa4198bcb036e321fbad10a6058f34a4 pristine_git_object: 7c6b893585ff2613dbddfe9d649b879ccd3ce347 src/models/createdeploymentgrouptokenrequest.ts: id: cbe25715af7f @@ -27826,7 +29354,7 @@ trackedFiles: pristine_git_object: c873efed66e9420ebd220fa2baa8bbcb9da418bd src/models/createdeploymenttokenrequest.ts: id: d40914533760 - last_write_checksum: sha1:ea4dab63e812efb283e6830f730893d4c57ebec8 + last_write_checksum: sha1:9fd7faec7a96a2c187fb1af07a88f33aec1870bb pristine_git_object: a515f8369045b51c06090159aab68345d71b73fd src/models/createdeploymenttokenresponse.ts: id: 888de25aa4b8 @@ -27842,15 +29370,15 @@ trackedFiles: pristine_git_object: 8ed7efcb53c9b3ed52719b32a1ceba679a5d239f src/models/createmanagerresponse.ts: id: c51c5ebd08da - last_write_checksum: sha1:8f75ee22d212f74f3c4bc9be95725427f5578430 + last_write_checksum: sha1:bfc050ac3c2b999b824f207b42da83cf8b13f40b pristine_git_object: 1dd947f6619387ca6ec382b5f3f920973863e645 src/models/createreleaserequest.ts: id: 4ad3666dac5c - last_write_checksum: sha1:d872edb9e3a0307126390ce363283a065da11a21 + last_write_checksum: sha1:af4b39f4cd550ca655f2c6bc98db54ddf7e18c60 pristine_git_object: 6ea40be7e62b0f8f9757e052e85ebd77c212b70b src/models/createsetupregistrationoperationrequest.ts: id: 72fc21b3c242 - last_write_checksum: sha1:283391dbcc447c38cca3cb8749e7203a9a9f73cc + last_write_checksum: sha1:2556b5ebfb3b4eb4e333af696c33b74186e48e65 pristine_git_object: 619dd87793caa87e6c8ca259530536e88850d932 src/models/debugpackagepresignedurls.ts: id: 58fc121473e2 @@ -27882,7 +29410,7 @@ trackedFiles: pristine_git_object: 9ebaaa9820ac80a522625b15c811dc7988f85952 src/models/deployment.ts: id: 26e71f87af0c - last_write_checksum: sha1:f1e0894bc4b8ef3576abfad0e160868357d0d887 + last_write_checksum: sha1:c397f8a893e1649960e6c1908a4ab40c50bb8c92 pristine_git_object: 8710819fe0c4b8978abc34f6da7ad8732e893f8b src/models/deploymentcomputeplan.ts: id: 4f61336f1204 @@ -27890,15 +29418,15 @@ trackedFiles: pristine_git_object: a45ace8cdaff8f9ace51c20656f234ca3ba120ff src/models/deploymentconnectioninfo.ts: id: 507904850f15 - last_write_checksum: sha1:26642c097e3dd1d4ba46ba930c13f172d17ac277 + last_write_checksum: sha1:f6dcc9c93a88be3eedb57430aec306bf63d0e1b6 pristine_git_object: ac3c0dd3ee7a3ae8f66bf1839ef396ec87be4d51 src/models/deploymentdetailresponse.ts: id: f3d0b380668f - last_write_checksum: sha1:1db6e71990665a4b9fe7a7acad055b84e8ccce1a + last_write_checksum: sha1:0f85ddb420e3fd38bebb3a7e5c4690fbde8cf82a pristine_git_object: 3b6ae1e99a22b8d28f7a842e1dc7098933d813f6 src/models/deploymentgroup.ts: id: ddf1c24537b3 - last_write_checksum: sha1:b7cbce1d496465e2ebe5accc99d7f3fcd2e7c964 + last_write_checksum: sha1:a576f21703e12b29b1f27e0e8de9dc51fdc4b213 pristine_git_object: 5672bfbf9cf8ce2a1823bb20e5d0896ccac82010 src/models/deploymentgroupinfo.ts: id: 7ba06c2fb99b @@ -27914,7 +29442,7 @@ trackedFiles: pristine_git_object: 5e3c3ff8c159d0bc3075e46e36f04642a78654f4 src/models/deploymentinfo.ts: id: ba81aa7a2c74 - last_write_checksum: sha1:cadf643ef5f04c8d752c74e78e0e924d052fcfc9 + last_write_checksum: sha1:5b5344888f2dad64f029e53e04a7fb18671fb8ab pristine_git_object: 62fc79b195429eea0c0e277f1a9cb2ca5f2a5426 src/models/deploymentinfosetupconfig.ts: id: b483a5294fd5 @@ -27926,11 +29454,11 @@ trackedFiles: pristine_git_object: 04f6f250a3332509f5f612fa513f571648556991 src/models/deploymentlinksetupresponse.ts: id: 05372e9ec7ae - last_write_checksum: sha1:1cd065ea6c7168ae2a0f0614e4ec60ea7dd89949 + last_write_checksum: sha1:23e41d43f201f8f3a86e5731843361f10c249ad0 pristine_git_object: 9a9b1cf5d92ec68ca489f9508829dca7354f41c8 src/models/deploymentlistitemresponse.ts: id: 5ef7a740eac6 - last_write_checksum: sha1:354f674032efd8646e4d9b8c60f032fc219ed504 + last_write_checksum: sha1:d98542ca0e3fd342b36a5bf64dce681e7c85fbb0 pristine_git_object: a741f79838eb8fa7c7909528a317bde7984195f4 src/models/deploymentportalaccentcolor.ts: id: b9150a2ead17 @@ -27986,7 +29514,7 @@ trackedFiles: pristine_git_object: 537f0fa458049d90eadb7a49c9e76f4b07e2fe82 src/models/deploymentsetupstacksettingspolicy.ts: id: e4196d4152d7 - last_write_checksum: sha1:30c2e7e401a0e384e67aa31c0402049e8f12fc4f + last_write_checksum: sha1:630b02d55cecd33e7670f52771cbc799cfc9b8ec pristine_git_object: 8eca47b0e65a6989f7162dc044ef1402a5913d07 src/models/deploymentstats.ts: id: c559f6224b42 @@ -28036,6 +29564,8 @@ trackedFiles: id: 044c75956be7 last_write_checksum: sha1:9c6ba2c1cde9d91a131fb1479d3a737d168af246 pristine_git_object: 5dce7ccca282d5515da62686caa383a827c9acb2 + src/models/ensuredeploymentgroupbyexternalidrequest.ts: + last_write_checksum: sha1:44a8269d0af0881bc8e45ba641ad782500cac746 src/models/ensuredeploymentgroupbynamerequest.ts: id: 5fef33cfc239 last_write_checksum: sha1:722c98cee7e4b8a78dbcc0e511e3393e8ad0b89f @@ -28078,15 +29608,21 @@ trackedFiles: pristine_git_object: db00022e05d55600252f401eb0e6ab46278e0b07 src/models/event.ts: id: 7d1800694a8b - last_write_checksum: sha1:85528e848f955f576d9432c5830330987d48c0db + last_write_checksum: sha1:6f89d1d83a71df33877bf37116270b10d2c21a88 pristine_git_object: 26560b4527531f8e0a873c0e043fcd91058b2ffc + src/models/eventlistitemresponse.ts: + last_write_checksum: sha1:96cdf9b98f00dcd0557851c0a70852fb2a182af3 src/models/forwardimportrequest.ts: id: 2f3eeed18289 last_write_checksum: sha1:da0a8dc4f9abbafa698bbe990d943f6c754b7321 pristine_git_object: 9782cf0f1a9ca6314dd657480ef4726612572e93 + src/models/generatemanagerbindingtokenrequest.ts: + last_write_checksum: sha1:e260ff53e437f8ef7889d9004e0bee8d74ac0f6f + src/models/generatemanagerbindingtokenresponse.ts: + last_write_checksum: sha1:bfa34b010fd2dfdcf2c0e8c3900b3dc69db07629 src/models/generatemanagertokenrequest.ts: id: 37d07c31900f - last_write_checksum: sha1:ba5f9e1c87cceae1f3b26e0cdff19f5c37c9f689 + last_write_checksum: sha1:12d3664ffefbf06e850eb21ee988a8369276f4d7 pristine_git_object: 3dd29fe08066fe2ffc4c6581cc002be3436e2cef src/models/generatemanagertokenresponse.ts: id: 2d5c48de9e4f @@ -28126,7 +29662,7 @@ trackedFiles: pristine_git_object: 88d66f229a3b0cbab8b71377b9d3a974d96cbad5 src/models/importsource.ts: id: 7a42610e98ec - last_write_checksum: sha1:0334032e1045ce96c9f4dbb874f6ad29eda94abc + last_write_checksum: sha1:0b32a0a02398be102fcf83e139d44586b8678985 pristine_git_object: 296afaf1c158672fb6c6d73936c8675d8eab9543 src/models/importsourcekind.ts: id: b2bf2bd7a310 @@ -28138,7 +29674,7 @@ trackedFiles: pristine_git_object: e3b1530ed0aec91afb64292a12d54ab58d11f60f src/models/index.ts: id: f93644b0f37e - last_write_checksum: sha1:9ebd22a2a5cb46510e6549aeefba6f0181515fb3 + last_write_checksum: sha1:1e4ba216bd85032e660804d6cff723fccee0f070 pristine_git_object: c42df46fbef3238e23ba569f708bf4a7ca27bbc2 src/models/kubernetesbaseplatform.ts: id: 772a228cf68d @@ -28212,7 +29748,7 @@ trackedFiles: pristine_git_object: 31826f6990ff56898ba2c28f0cbba91f7fdff563 src/models/managerretryresponse.ts: id: c97f5890b391 - last_write_checksum: sha1:d394e95bd460b36464764dccc69f36c4934a0fd1 + last_write_checksum: sha1:1f7065543ad2b51859c74ae3cbc9c93e0333a800 pristine_git_object: 843f325f690ecb3eecf0310c3e2739d86618b3f6 src/models/managerrole.ts: id: 3cb93e346cd6 @@ -28232,16 +29768,20 @@ trackedFiles: pristine_git_object: 36c61ac6fad40e1e2e90f7c1bfd834827725b6e6 src/models/newdeploymentrequest.ts: id: e89206c57a99 - last_write_checksum: sha1:509792e2c9dbe6cb5546a2bce72a7f75a1fc6755 + last_write_checksum: sha1:7dcf46fd1678f6c39ce3555b5b3566904c8c1cb2 pristine_git_object: e3ac6e076143da69911d902dd6ff3d9627ef44ef src/models/newmanagerrequest.ts: id: 2e5a9b904ad3 last_write_checksum: sha1:fb408c72e5bb048b9aedba109ba2bf7204acf7a3 pristine_git_object: d417ac9eda4b6a70d091f794b63d8c160eaef3d3 + src/models/operations/acceptworkspaceinvitation.ts: + last_write_checksum: sha1:7340d5e9f38debe11fba54345bffb7556f738cef src/models/operations/addworkspacemember.ts: id: 73ea4e8eead0 last_write_checksum: sha1:ce1f540621054e103829b31c98d13a992c77e1c4 pristine_git_object: fd1c26e37f48aeb82914e5ea11b8e6eee6dcc73a + src/models/operations/approveagentsession.ts: + last_write_checksum: sha1:7f5cba2d618649b37e0e5c90ec94b01def79dda2 src/models/operations/cancelmachinesmachinedrain.ts: id: ff1c2fb8abf9 last_write_checksum: sha1:e93ca56f01d505a3dd9f0b976ce9868b096fba0c @@ -28318,6 +29858,8 @@ trackedFiles: id: dd0994083c1b last_write_checksum: sha1:342510d04396a04b0efb11d680b251701f1ab9fe pristine_git_object: a2c44f59dc820556dcd21af7a63bbffe560d5861 + src/models/operations/createreleasechannel.ts: + last_write_checksum: sha1:8c37b8618451eba3aa5ad67e49e4841c193c2bc6 src/models/operations/createsetupregistrationoperation.ts: id: cafb1f32d3ca last_write_checksum: sha1:1651089c2ad967f9f981be3d8a6717a1d3175d74 @@ -28326,6 +29868,10 @@ trackedFiles: id: 27fe97979faa last_write_checksum: sha1:27c41129bac7a19f66e89926a96e658ff6c73f95 pristine_git_object: 325334e31397022d5a3932d17483e893929ba4cf + src/models/operations/createworkspaceinvitation.ts: + last_write_checksum: sha1:59fc9b2992ac73352ad2673a2b75794ab4857952 + src/models/operations/createworkspaceinvitelink.ts: + last_write_checksum: sha1:d1318bc49e330d7d16f8fabd28dae9304f552c5e src/models/operations/deleteapikeys.ts: id: b8c63a8e167c last_write_checksum: sha1:d8aec3d368e773693c3622198aa661a6c4aa2ca8 @@ -28350,6 +29896,8 @@ trackedFiles: id: 4bd997334fe0 last_write_checksum: sha1:8b5c834a429c63cf577b1ceb2ce1f6bf79a57744 pristine_git_object: 2c78c6a73968a209b6e6e9e367fe5a91bc5aeb7b + src/models/operations/deletereleasechannel.ts: + last_write_checksum: sha1:26d996ab6236b88935aff3b84394a12b0f3cb953 src/models/operations/deleteworkspace.ts: id: 38325c1278ba last_write_checksum: sha1:4d46ad510c2e0cff35df26c8f145edf529c1f5ae @@ -28366,14 +29914,20 @@ trackedFiles: id: da637206b84b last_write_checksum: sha1:6927ff76055e8e3c7ae2f53018ca965c60c09c03 pristine_git_object: 283cad955079d294ed62568f4951b608b1481dc5 + src/models/operations/ensuredeploymentgroupbyexternalid.ts: + last_write_checksum: sha1:71f6dbef4b79b84585a475f348b459f6f735ab2c src/models/operations/ensuredeploymentgroupbyname.ts: id: edf4d8455e14 last_write_checksum: sha1:b1eafbcfe36854a6f65e67d21f3509a557e1521e pristine_git_object: 3534ec931c855ad305e51267d26cdfa657f8f6be + src/models/operations/generatemanagerbindingtoken.ts: + last_write_checksum: sha1:d4c188678bbc80d35724c227ffd77a5fc71dbec9 src/models/operations/generatemanagertoken.ts: id: bbd005d13fc9 last_write_checksum: sha1:b04d07e2ec21bb858294e4eeee9afebb05572a33 pristine_git_object: e2f3499734c501ff7e9d7406aed5b3e2c8e317dc + src/models/operations/getagentsession.ts: + last_write_checksum: sha1:91707066bab4fece07a0214a4796cf077cc5ea72 src/models/operations/getapikey.ts: id: d94f7ec275cc last_write_checksum: sha1:35a95306004affedb589602e3b5d6ada9ade4853 @@ -28400,8 +29954,10 @@ trackedFiles: pristine_git_object: bf8f34e3b6093b2e29d8a2dcb09b03943f40f50c src/models/operations/getdeploymentgroup.ts: id: 2171909a8f59 - last_write_checksum: sha1:ebb1f9b5ee8f0bb0ce231e17782ecfb99c376207 + last_write_checksum: sha1:5784a452cdb137d9589022eeed1ce5ffc782c2f3 pristine_git_object: 76d9620f52e5c066ba508d62c9b7471c51ec5c7e + src/models/operations/getdeploymentgroupbyexternalid.ts: + last_write_checksum: sha1:d59a0bf4560bdbc647e5daeeccf73fa0c0f827ed src/models/operations/getdeploymentinfo.ts: id: ed232fae49fe last_write_checksum: sha1:6d0e61455db7a5d6653857b944be39fc275f1962 @@ -28468,11 +30024,11 @@ trackedFiles: pristine_git_object: 2ffc7d70da305a39f13098eb15bdb350da4dc937 src/models/operations/getrelease.ts: id: 14cdd32ee38f - last_write_checksum: sha1:4cf3d8d3cca949285ceafa4187272c3c42cf9a9d + last_write_checksum: sha1:7932a8caa34ac4165dfa241f24d0ee3188ec71f5 pristine_git_object: 4f2edd99c25ed8cb5cfe69eaffe32727b18da120 src/models/operations/getresourcedeploymentdetail.ts: id: 61664b1aea1b - last_write_checksum: sha1:e11460c1755aa85d3f0d2d30e70fbb8960588974 + last_write_checksum: sha1:93d0059072356b99a15ec173ea08025c199fb440 pristine_git_object: 9ff4d9a3a4b7b1baccd21f110cb71e65bf8f136e src/models/operations/getsetupregistrationoperation.ts: id: c1cf70012dca @@ -28486,6 +30042,12 @@ trackedFiles: id: b5e687d1b4ad last_write_checksum: sha1:f4f4f5b711311165bfc0a33d1431b5da54a2fc38 pristine_git_object: df7207c640224f8a0dde3626e97350f9c69559b3 + src/models/operations/getworkspaceinvitationpreview.ts: + last_write_checksum: sha1:c50efef6c730b569f040d48a2b786480708e1625 + src/models/operations/getworkspaceinvitelink.ts: + last_write_checksum: sha1:933c9972655368bcd91d1859b9fa92d2237d4306 + src/models/operations/getworkspacesettings.ts: + last_write_checksum: sha1:a247255cde1d3eb3644dccb980121776325eaed1 src/models/operations/importdeployment.ts: id: fa8d08957b7b last_write_checksum: sha1:a363fba2541fa3c95200b05fabffc8f0f88e9b0f @@ -28496,8 +30058,12 @@ trackedFiles: pristine_git_object: 126e8c5c8e0b8d15c4daefcd3e2aab500207b77e src/models/operations/index.ts: id: 0d9ffaf774d2 - last_write_checksum: sha1:371eb238eea8cd289e54ee916b37be29c8a044b0 + last_write_checksum: sha1:b4a27d12382b50d423893cbd82ddccf25a6efea7 pristine_git_object: 4c642023437b4b27fc66f4e248cbf0fbde736860 + src/models/operations/listagentsessionevents.ts: + last_write_checksum: sha1:e58f325055d03a0d05275512bb5d4c6b63adb81f + src/models/operations/listagentsessions.ts: + last_write_checksum: sha1:40d21a6743206e1770b1c096c0081a085b982b49 src/models/operations/listapikeys.ts: id: f6a5b994cd87 last_write_checksum: sha1:c880049a7a615a11ac10318062e5758af2bee946 @@ -28532,7 +30098,7 @@ trackedFiles: pristine_git_object: d0b2f45d5cfb3122578af535d3d584f5bd93428e src/models/operations/listdeploymentgroups.ts: id: ed1760ee3398 - last_write_checksum: sha1:4162ddba2319592c30caa4e4fd20f5bbac1438cf + last_write_checksum: sha1:59d1df6b5f67c290b6c58c05f969041f509412ef pristine_git_object: b5c68052c8f006f5e72d8527a29d3e3f8849c24c src/models/operations/listdeployments.ts: id: 3c413d710db1 @@ -28544,7 +30110,7 @@ trackedFiles: pristine_git_object: 95fa741f2acf94ea6bba79c2c5dce709c523d6af src/models/operations/listevents.ts: id: 4324ebbf246a - last_write_checksum: sha1:a3e6077003e06742af6361f924d85fd7bf2a5af8 + last_write_checksum: sha1:219762f74269fdff091840205ab3c3dc064375ce pristine_git_object: 7b5a0a39c2c1344742be94b7fd384f97fdbdc312 src/models/operations/listgitnamespacerepositories.ts: id: cd2187509893 @@ -28594,9 +30160,13 @@ trackedFiles: id: 4ea991dadef0 last_write_checksum: sha1:e99768a7b0da75ec81514b2549033385c5c6308c pristine_git_object: 76bdcbe69dce65c890f0bbd747b688f72de6c530 + src/models/operations/listreleasechannels.ts: + last_write_checksum: sha1:689f5e5fb8cd53f9e1d04639d584e8b22fddc4fb + src/models/operations/listreleasedeployments.ts: + last_write_checksum: sha1:bdf3ec6b20471c924c7b923f1d8d268aa3581c78 src/models/operations/listreleases.ts: id: 4e7f3343a0fd - last_write_checksum: sha1:48e0b04cbbe915d1f26ef88c16216c8a1e8cc898 + last_write_checksum: sha1:6d106ed8f952c748447b041ff6c9b167e49b0407 pristine_git_object: e2040f83f25a1cc96a77ca509a590b16b59d18a4 src/models/operations/listresourcedeployments.ts: id: 3ec2db39e463 @@ -28606,6 +30176,8 @@ trackedFiles: id: eedd30655fb2 last_write_checksum: sha1:935f9bbf6c2eaff86d05177da5524ec144d7a9c7 pristine_git_object: 99fc4030a9c66aef83abe5f276577e0fcc90bf48 + src/models/operations/listworkspaceinvitations.ts: + last_write_checksum: sha1:d4de82c584132091db7e8833a90e5221d064f5ea src/models/operations/listworkspacemembers.ts: id: 009ed1f62eb4 last_write_checksum: sha1:bc71971c11cb6c4d4885c8594ff2c15070fde7c7 @@ -28630,6 +30202,8 @@ trackedFiles: id: 502615f4c368 last_write_checksum: sha1:6df49c0822d189feff9475a5e27569204ee43123 pristine_git_object: 2108d433340b20c54c96667b1675bcbaf0b6e51f + src/models/operations/promoterelease.ts: + last_write_checksum: sha1:0a0d5297e2f38a0dc7eea82a2fb76f933eed2c21 src/models/operations/provisionmanager.ts: id: 53a9b50965bb last_write_checksum: sha1:e42ebb7cc81273ad4f7b26737c2ce26ee57e2089 @@ -28662,6 +30236,8 @@ trackedFiles: id: aac8d56123ee last_write_checksum: sha1:bbbe2ccd2a0a507ae6a647246125b0a4f8741e9b pristine_git_object: 317913f3e8af881c88923cca7d8d673a65429cfc + src/models/operations/resendworkspaceinvitation.ts: + last_write_checksum: sha1:2ddb06f3888c70efc00b70540374120a1269baf6 src/models/operations/resolve.ts: id: d1783b563449 last_write_checksum: sha1:bf013584eb387e914ed3429d099a48f14fe86c29 @@ -28694,10 +30270,30 @@ trackedFiles: id: 63f1cd657aa3 last_write_checksum: sha1:3663aa4d7b93da64430a9a1460910d097cd55d60 pristine_git_object: 04ff089ed88b798584e3d94f5d3e6be7101c0bf0 + src/models/operations/revokeworkspaceinvitation.ts: + last_write_checksum: sha1:ccd348302d5f64f2a786e89b1648ddf60efdab64 + src/models/operations/revokeworkspaceinvitelink.ts: + last_write_checksum: sha1:b49c8a7c997131493dd02f4f73bfd3b1efd6ad64 src/models/operations/rotatemachinesjointoken.ts: id: 7f88d810e3c7 last_write_checksum: sha1:4df64776184c9bb569a0db60ef21d35ff0774010 pristine_git_object: 1cc98b339a41f1daf1a788d2875655b04436ac61 + src/models/operations/setdeploymentgroupexternalid.ts: + last_write_checksum: sha1:6ff13b0941c8a3908ee88f2035479a7cd0a86e06 + src/models/operations/setdeploymentreleasechannel.ts: + last_write_checksum: sha1:8e70ee625082b610793e071bb779d72c208406da + src/models/operations/slackintegrationchannels.ts: + last_write_checksum: sha1:12d4d761831ac446847735de918959c941b07fe4 + src/models/operations/slackintegrationinstallurl.ts: + last_write_checksum: sha1:2700865b6a6f5ff8660e5b66b3ddbf3bdf8c821a + src/models/operations/slackintegrationsetnotificationchannel.ts: + last_write_checksum: sha1:50cabc071776c66ec592a41998575ce3f9447c11 + src/models/operations/slackintegrationstatus.ts: + last_write_checksum: sha1:fc48598a03936e8e4fa7049b20ca7f141176d7cc + src/models/operations/slackintegrationuninstall.ts: + last_write_checksum: sha1:ff769643987caf037b3b6940bd69e216d204827b + src/models/operations/stopagentsession.ts: + last_write_checksum: sha1:1ac6c9edff406b72221cf2fef7898abeea686c90 src/models/operations/syncacquire.ts: id: 4280d0a7aa28 last_write_checksum: sha1:adfe6afc59d43c1dfcee3aea4eb235e0a30d6fd5 @@ -28722,6 +30318,8 @@ trackedFiles: id: 6b8b523d1dc5 last_write_checksum: sha1:acf9a114bacde9d8bc60cad65be1089d9c69fefc pristine_git_object: e5e7a7166755e403245e028e4f92b0f8bb0547ca + src/models/operations/syncrenew.ts: + last_write_checksum: sha1:7d2a35f1156663f5b64d927e95d4c683f2be32b0 src/models/operations/updateapikey.ts: id: a4e3a053ca54 last_write_checksum: sha1:0f09ad61e2f283e91e7cf9dd78b58f9485958f56 @@ -28774,6 +30372,8 @@ trackedFiles: id: 69faee810ed6 last_write_checksum: sha1:0fac2b9224b3ca0b7005e7c779786104187e0b96 pristine_git_object: 0901a7b6e356cf699f01a0d498657a7cc6fb1aa3 + src/models/operations/updateworkspacesettings.ts: + last_write_checksum: sha1:472daf0968e06dc4d8d3235d4c5d2b9b0ec6c818 src/models/operations/whoami.ts: id: 28fd2925cc89 last_write_checksum: sha1:d4c56e2530843f3c6308ed4dc537e029b4735f5c @@ -28792,11 +30392,11 @@ trackedFiles: pristine_git_object: e6346220d5224f79a89603c8176bf14f3c7f56e4 src/models/persistimporteddeploymentrequest.ts: id: c11c3fd39cc0 - last_write_checksum: sha1:9013b8179b1dd113e83166ea71763b21c9adca45 + last_write_checksum: sha1:06325df05b038922694fd39c96787078b167c67d pristine_git_object: 62bb91cac1e35fd1b7eebb9e8d8e38b0bd570ef7 src/models/pinreleaserequest.ts: id: 4a22091eb2be - last_write_checksum: sha1:f053be70eb0d7b043501590f6adc8fa700c4253c + last_write_checksum: sha1:07778109e89e82e7a579268cd573201c5b705ed5 pristine_git_object: c73d70e7e9fc3f90adea863fdf7e9c7c88e87138 src/models/planid.ts: id: d3467480d560 @@ -28804,7 +30404,7 @@ trackedFiles: pristine_git_object: 7659c51ec64005ee30fa3c3e312f3438c978b596 src/models/prepareddeploymentstack.ts: id: b17514615ef4 - last_write_checksum: sha1:33fceb79c02510246ad5989993d8f6ea74d5ed49 + last_write_checksum: sha1:e191a49a916412bd24cb09fec9fb3d0b54160622 pristine_git_object: 450415b4601a228aeec91bb347a62d4e0700c398 src/models/prepareoperatormanifestpackagerequest.ts: id: bef77d7a5cb6 @@ -28848,16 +30448,26 @@ trackedFiles: pristine_git_object: 577726343ff8d938ab4bee62d8670c2296e9c3a7 src/models/release.ts: id: 4cd61360fa2e - last_write_checksum: sha1:e3ba2c5d1beda8e6024ca0af9bc2c6d3e22b2020 + last_write_checksum: sha1:e842a1c5839791e75539657965a4a535d3ea9904 pristine_git_object: 77932caaf2dd922c5750c50842743800b2a51338 src/models/releaseauthorfilteritem.ts: id: cd9c303547e9 last_write_checksum: sha1:518c14b2bede8bb541204eea1eaf76b3456282f1 pristine_git_object: 403f3d9c56c6e40fc91b738f2306b11742897334 + src/models/releasechannel.ts: + last_write_checksum: sha1:fc2aa0e5c331aea08ff1d707caa6065459b6836f + src/models/releasedeploymentitem.ts: + last_write_checksum: sha1:331389eac23a0c1d98aefdc5802d755b3b7bfe4c + src/models/releasedeploymentsresponse.ts: + last_write_checksum: sha1:13cab00c6b84f915232a019a22bf40d297be8745 src/models/releaselistitemresponse.ts: id: f747ff5a66e6 - last_write_checksum: sha1:90695e315544f7cfae02e581b67ee6c6756a8b05 + last_write_checksum: sha1:62eb729e35285638941b7f111cbea0d6f0e12dff pristine_git_object: 5b66cd9c13132e2a26d4cefb288f9c3fd6211362 + src/models/releaserolloutstate.ts: + last_write_checksum: sha1:70bf6843dc356576004b5723aa2a5f762c7dd05b + src/models/releaserolloutstatecounts.ts: + last_write_checksum: sha1:88f88125c3aaeb6df368d9c9775d8c40bda89578 src/models/removemachinesmachineresponse.ts: id: b6102d0f2baa last_write_checksum: sha1:dc3d22659a3c21e909687fe4d11638a83928a878 @@ -28914,6 +30524,8 @@ trackedFiles: id: 0c77cee2b1da last_write_checksum: sha1:27e6afdc835d18b9d67bfc75a39ada1886476e5b pristine_git_object: 0c765a72bef5b1ce1f8f450a23e554b8bfe655fb + src/models/setdeploymentgroupexternalidrequest.ts: + last_write_checksum: sha1:61681be0f7df3482f4dae14c8a7fc592cd04bc16 src/models/setfirstpartydeploymentinputsrequest.ts: id: 3aade69fc633 last_write_checksum: sha1:c040f97b8adc9b6222485a8f30a9f47e17fe2bb6 @@ -28946,9 +30558,21 @@ trackedFiles: id: 5bbe4a224dcb last_write_checksum: sha1:59ebd8732a4a67c45d25322bec9155d63879b3e0 pristine_git_object: ea4ed2bac38dc49318ee6be1a4a320f70cf2a7e6 + src/models/slackchannel.ts: + last_write_checksum: sha1:a8e3da3933112455d4d53e850f47206c1f7d6ee7 + src/models/slackchannelsresponse.ts: + last_write_checksum: sha1:1bcb73123d6768f43947aa9f169be9b1338fa7e0 + src/models/slackinstallurlresponse.ts: + last_write_checksum: sha1:468cf8f3e65b637aa5340ce1a6db756af1bf2723 + src/models/slackintegrationstatus.ts: + last_write_checksum: sha1:5eea1ca5607ab2bafd0a9daaea6479d4ecd45a07 + src/models/slacknotificationchannelrequest.ts: + last_write_checksum: sha1:39c9aaf587c9a0db62260e0a62e5e0978c8cbe7b + src/models/slacknotificationchannelresponse.ts: + last_write_checksum: sha1:2817923781fd01045882e4e9f9febd778e718edf src/models/stackbyplatform.ts: id: cbff1149ce79 - last_write_checksum: sha1:ad90b129e2f963df168a5c033c5f591523f955d1 + last_write_checksum: sha1:d835b85ff1f43f4664c46bd2acffc9d185af4b7a pristine_git_object: 23ade349b9c08aa0c8fbacf481405709affd5090 src/models/stackinputvaluerequest.ts: id: 6a7717d075b6 @@ -28968,15 +30592,15 @@ trackedFiles: pristine_git_object: 042e31f12a4c56be5ca62fa6d07d4e180ed7e183 src/models/syncacquirerequest.ts: id: c1fa970f065e - last_write_checksum: sha1:4eefb33d98ab3b7d4749de7173d8a4167f4d295d + last_write_checksum: sha1:e05516ff20a0506b06cf5e8d66f0eaaa62a245fc pristine_git_object: 708504653c2bff21d7cc4ab6ece2cb93598c6d92 src/models/syncacquireresponse.ts: id: ab1ff9f97674 - last_write_checksum: sha1:ebfbed4e8e089960286b6d0421d974707a7caf28 + last_write_checksum: sha1:70ec284a5db5b4c742292c5eed7575799efea904 pristine_git_object: 9bcb2ad3f7e293932cb429b8cf89ee269a569d8c src/models/syncacquireresponsedeployment.ts: id: 0d9578b62da2 - last_write_checksum: sha1:1b4d69d97ffa8663ce253591b2f90b5a02cb7ac0 + last_write_checksum: sha1:4e883ee6deedc488ec03abc23982eaeb713fc020 pristine_git_object: f7d4bd94d6281f51c9482366373d74569b697097 src/models/synccontextrequest.ts: id: 8ea5cbd6c390 @@ -28988,20 +30612,22 @@ trackedFiles: pristine_git_object: 6ddafba33ac1493e17f3877263a563faf0a072bf src/models/synclistresponse.ts: id: 9c42028a90f9 - last_write_checksum: sha1:5ae3199a8ee203763e4a8be5e3c4b720254fb440 + last_write_checksum: sha1:f16cea8d67339f20c37cfdcc22a83abb0d0cfae7 pristine_git_object: 1a7dd3c151f12a849584fc2f280f43b994e70fc5 src/models/syncreconcilerequest.ts: id: 8881baf7e7c9 - last_write_checksum: sha1:af0511d450a62aa2b9c7bb196f48e014ceade70f + last_write_checksum: sha1:6b378944512f20d0ffba11a0435b61aff982f606 pristine_git_object: 88ed4ce91361a3ed7ad04ae406090f5e29e70e6c src/models/syncreconcileresponse.ts: id: 8fc1acf0281a - last_write_checksum: sha1:413dace5512be354df81f81de8467fae7a16f19d + last_write_checksum: sha1:4633526a79c47f15327d596467952bd02939024d pristine_git_object: 695cca7cfd0b608cb8c10bf230e1b37da7db8ba9 src/models/syncreleaserequest.ts: id: 2543a00820b6 last_write_checksum: sha1:83dee1c83e3864e639578cf54c3818c2352fd277 pristine_git_object: 6d592ddb4d45ea7665884970743efd17f0d175d3 + src/models/syncrenewrequest.ts: + last_write_checksum: sha1:c16006e365fb9341baa1827f91fd42edd1918322 src/models/updateapikeyrequest.ts: id: b02c6096498a last_write_checksum: sha1:cb43c105ddea4f21588a3e9e463121ee37bf3c2b @@ -29050,6 +30676,8 @@ trackedFiles: id: dd2bff436723 last_write_checksum: sha1:d7073444334b7549e22ce864f21a1bcfd8c24afe pristine_git_object: aecda2833b0d1306d95ce0118ee14d5cb2c3a9c6 + src/models/updateworkspacesettingsrequest.ts: + last_write_checksum: sha1:679f617a355529a4431d0d21225934b218344a83 src/models/userprofile.ts: id: 0b404ce49479 last_write_checksum: sha1:d7f81a3ec67902b023b2181a1415febb32e47ea5 @@ -29074,6 +30702,12 @@ trackedFiles: id: 454f77e6e44c last_write_checksum: sha1:1ef221e5491e924fb9b1f4b8968b407ff77a0e92 pristine_git_object: 482a601c538ae69084744672ca5c291a09ad084c + src/models/workspaceinvitation.ts: + last_write_checksum: sha1:83e7baf7683c285550f7c55ad7939bc0a8797592 + src/models/workspaceinvitationpreview.ts: + last_write_checksum: sha1:447e2433fe9b7b2ce524498737fb183aaa6a49db + src/models/workspaceinvitelink.ts: + last_write_checksum: sha1:5dddb5c44cc7c96f356f55c8bde698edeab713bd src/models/workspacemember.ts: id: 42cb4568aa7e last_write_checksum: sha1:2c0617ff9755253904e6294bbb15d6bdbc3e7a7f @@ -29086,6 +30720,8 @@ trackedFiles: id: 8915ec67dab5 last_write_checksum: sha1:17cc88966da125b089bc461015c1549aad21cdb5 pristine_git_object: bd468f94c06ab4a932d6f76950605fe22a8d4eb6 + src/sdk/agentsessions.ts: + last_write_checksum: sha1:82095832872be40a4fc31395bdc9d6d83cc1dbe1 src/sdk/apikeys.ts: id: 5dda931501e1 last_write_checksum: sha1:cbcb15319256712fd1b49b8a27b84c17dae3851c @@ -29116,11 +30752,11 @@ trackedFiles: pristine_git_object: 65c560e796087c8b49528a38a952aaab78f8de9d src/sdk/deploymentgroups.ts: id: fee2f374fda2 - last_write_checksum: sha1:0f6acfcffe4d6bee7a8b6b3547908058c3057651 + last_write_checksum: sha1:6c56fab9d1c58ed5d0d6d80406f40d1cfdb72381 pristine_git_object: b2c398b7a128be6b3796824d57748fcdc8f28b17 src/sdk/deployments.ts: id: 80d6fb28a717 - last_write_checksum: sha1:97d4621742f2b79b33bf0b8c58a75658d19d0d8c + last_write_checksum: sha1:2a54a13b9d198269366f7e6883ac951081cf12d6 pristine_git_object: fcf205177be53bb58961e3cb36c0044faa90b087 src/sdk/domains.ts: id: 70955e5c763b @@ -29140,7 +30776,7 @@ trackedFiles: pristine_git_object: 2aede3b701b6ce0734f343a89f5b6ad791657d12 src/sdk/managers.ts: id: f8108bd423d0 - last_write_checksum: sha1:99141fbcc0df8507cf31d9523af17f670bdf537c + last_write_checksum: sha1:954cc67d81aec951906503a1462537b1b4bc4008 pristine_git_object: e590e4d280df175a26d76b9757972f9d2aef4534 src/sdk/operatormanifests.ts: id: daefdc3025fd @@ -29152,11 +30788,13 @@ trackedFiles: pristine_git_object: 29b4adde951522a39053a9afdf0a8d4d4834e814 src/sdk/projects.ts: id: 28088373a118 - last_write_checksum: sha1:55274ed815ead59bb89df269224f5d14e5f66725 + last_write_checksum: sha1:385be8f9d4dd6845a3a12aa76e7ba804c414e075 pristine_git_object: 83cbdca96c0c28e99fe168c029bb34191db6c1ff + src/sdk/releasechannels.ts: + last_write_checksum: sha1:3f8f0e3a8b1b6b1d8022b87363e5e7476e1dda8d src/sdk/releases.ts: id: 1edfaa181e13 - last_write_checksum: sha1:aa51c9e683362bbaf2733c83eb7fa117cb0cb1d3 + last_write_checksum: sha1:f08698165f15a291d671fe95553fd6e8c8c558b3 pristine_git_object: bae3f773731882998adc7142a80e85ab3fc3eabc src/sdk/resolve.ts: id: e303d9b94992 @@ -29168,11 +30806,13 @@ trackedFiles: pristine_git_object: 17427a982186e05d22ab583691eb937006f1b028 src/sdk/sdk.ts: id: 784571af2f69 - last_write_checksum: sha1:87e29c04ca8a57c9e5195104ebaae631910c81ab + last_write_checksum: sha1:2df88dedcbc233854ba473441c3e1b3733808756 pristine_git_object: 248c65603a466f7a3c3d4441a3075f8287b5b1f5 + src/sdk/slackintegration.ts: + last_write_checksum: sha1:4010989820fbc93e866828dfdaa939cfbdfa47ac src/sdk/sync.ts: id: 2e323d0b48d5 - last_write_checksum: sha1:33e15e5c17daaa95c1dbcb25648287766d20d538 + last_write_checksum: sha1:6ea2e3c15e835ac8ca0bc69282cbc1365f7b02ca pristine_git_object: 8def35f66a7b4275b7a2e331a76a240601251717 src/sdk/user.ts: id: 363e2a871b31 @@ -29180,7 +30820,7 @@ trackedFiles: pristine_git_object: 23e0f1cd9c59146e7276fcfd864cd87f8c156108 src/sdk/workspaces.ts: id: 72b45379c8d9 - last_write_checksum: sha1:f0c6c849f15ad520b5181e7123ca442bc3651840 + last_write_checksum: sha1:cf998dd8c92b8d1857706cecc5829d542fb129e1 pristine_git_object: 70087d48457356adaa2a0e443f870eabc8ff8865 src/types/async.ts: id: fac8da972f86 @@ -29673,7 +31313,7 @@ examples: limit: 20 responses: "200": - application/json: {"items": [{"id": "dg_r27ict8c7vcgsumpj90ackf7b", "name": "prod-us-east-1", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "workspaceId": "ws_It13CUaGEhLLAB87simX0", "maxDeployments": 100, "createdAt": "2026-01-21T08:26:22.710Z"}], "nextCursor": ""} + application/json: {"items": [{"id": "dg_r27ict8c7vcgsumpj90ackf7b", "name": "prod-us-east-1", "externalId": "ext_example_01", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "workspaceId": "ws_It13CUaGEhLLAB87simX0", "maxDeployments": 100, "createdAt": "2026-01-21T08:26:22.710Z"}], "nextCursor": ""} "500": application/json: {"code": "", "message": "", "retryable": false, "internal": true} projectId: @@ -29684,7 +31324,7 @@ examples: limit: 20 responses: "200": - application/json: {"items": [{"id": "dg_r27ict8c7vcgsumpj90ackf7b", "name": "prod-us-east-1", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "workspaceId": "ws_It13CUaGEhLLAB87simX0", "maxDeployments": 100, "createdAt": "2026-01-21T08:26:22.710Z"}], "nextCursor": ""} + application/json: {"items": [{"id": "dg_r27ict8c7vcgsumpj90ackf7b", "name": "prod-us-east-1", "externalId": "ext_example_01", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "workspaceId": "ws_It13CUaGEhLLAB87simX0", "maxDeployments": 100, "createdAt": "2026-01-21T08:26:22.710Z"}], "nextCursor": ""} "500": application/json: {"code": "", "message": "", "retryable": false, "internal": true} createDeploymentGroup: @@ -29693,10 +31333,10 @@ examples: query: workspace: "my-workspace" requestBody: - application/json: {"name": "prod-us-east-1", "project": "", "maxDeployments": 100} + application/json: {"name": "prod-us-east-1", "externalId": "ext_example_01", "project": "", "maxDeployments": 100} responses: "200": - application/json: {"id": "dg_r27ict8c7vcgsumpj90ackf7b", "name": "prod-us-east-1", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "workspaceId": "ws_It13CUaGEhLLAB87simX0", "maxDeployments": 100, "createdAt": "2024-10-18T18:26:50.956Z"} + application/json: {"id": "dg_r27ict8c7vcgsumpj90ackf7b", "name": "prod-us-east-1", "externalId": "ext_example_01", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "workspaceId": "ws_It13CUaGEhLLAB87simX0", "maxDeployments": 100, "createdAt": "2024-10-18T18:26:50.956Z"} "404": application/json: {"code": "", "message": "", "retryable": false, "internal": false} "500": @@ -29710,7 +31350,7 @@ examples: workspace: "my-workspace" responses: "200": - application/json: {"id": "dg_r27ict8c7vcgsumpj90ackf7b", "name": "prod-us-east-1", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "workspaceId": "ws_It13CUaGEhLLAB87simX0", "maxDeployments": 100, "createdAt": "2024-12-04T13:58:40.560Z", "deploymentCount": 620349} + application/json: {"id": "dg_r27ict8c7vcgsumpj90ackf7b", "name": "prod-us-east-1", "externalId": "ext_example_01", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "workspaceId": "ws_It13CUaGEhLLAB87simX0", "maxDeployments": 100, "createdAt": "2024-12-04T13:58:40.560Z", "deploymentCount": 620349} "404": application/json: {"code": "", "message": "", "retryable": false, "internal": false} "500": @@ -29738,7 +31378,7 @@ examples: application/json: {"name": "prod-us-east-1"} responses: "200": - application/json: {"id": "dg_r27ict8c7vcgsumpj90ackf7b", "name": "prod-us-east-1", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "workspaceId": "ws_It13CUaGEhLLAB87simX0", "maxDeployments": 100, "createdAt": "2024-02-02T16:43:07.976Z"} + application/json: {"id": "dg_r27ict8c7vcgsumpj90ackf7b", "name": "prod-us-east-1", "externalId": "ext_example_01", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "workspaceId": "ws_It13CUaGEhLLAB87simX0", "maxDeployments": 100, "createdAt": "2024-02-02T16:43:07.976Z"} "404": application/json: {"code": "", "message": "", "retryable": false, "internal": true} "500": @@ -29759,6 +31399,8 @@ examples: application/json: {"code": "", "message": "", "retryable": false, "internal": false} "500": application/json: {"code": "", "message": "", "retryable": false, "internal": false} + "400": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} listPackages: speakeasy-default-list-packages: parameters: @@ -29857,6 +31499,7 @@ examples: project: "my-project" workspace: "my-workspace" limit: 20 + allChannels: "false" responses: "200": application/json: {"items": [], "nextCursor": ""} @@ -29868,6 +31511,7 @@ examples: project: "prj_mcytp6z3j91f7tn5ryqsfwtr" workspace: "my-workspace" limit: 20 + allChannels: "false" responses: "200": application/json: {"items": [], "nextCursor": ""} @@ -29964,7 +31608,7 @@ examples: workspace: "my-workspace" responses: "200": - application/json: {"id": "rel_WbhQgksrawSKIpEN0NAssHX9", "projectId": "", "version": "", "gitMetadata": {"commitSha": "dc36199b2234c6586ebe05ec94078a895c707e29", "commitMessage": "add method to measure Interaction to Next Paint (INP) (#36490)", "commitRef": "main", "commitDate": "2026-03-16T12:00:00Z", "dirty": true, "remoteUrl": "https://github.com/alienplatform/alien", "commitAuthorName": "John Doe", "commitAuthorEmail": "john@example.com", "commitAuthorLogin": "johndoe", "commitAuthorAvatarUrl": "https://github.com/johndoe.png"}, "createdAt": "2026-11-19T11:26:44.636Z", "setupFingerprints": {"key": {"target": "", "fingerprint": "", "version": 961202}}, "workspaceId": ""} + application/json: {"id": "rel_WbhQgksrawSKIpEN0NAssHX9", "projectId": "", "version": "", "gitMetadata": {"commitSha": "dc36199b2234c6586ebe05ec94078a895c707e29", "commitMessage": "add method to measure Interaction to Next Paint (INP) (#36490)", "commitRef": "main", "commitDate": "2026-03-16T12:00:00Z", "dirty": true, "remoteUrl": "https://github.com/alienplatform/alien", "commitAuthorName": "John Doe", "commitAuthorEmail": "john@example.com", "commitAuthorLogin": "johndoe", "commitAuthorAvatarUrl": "https://github.com/johndoe.png"}, "createdAt": "2026-11-19T11:26:44.636Z", "setupFingerprints": {"key": {"target": "", "fingerprint": "", "version": 961202}}, "workspaceId": "", "currentChannels": ["", "", ""], "commitUrl": "https://front-jet.org/"} "404": application/json: {"code": "", "message": "", "retryable": false, "internal": true} "500": @@ -29991,7 +31635,7 @@ examples: limit: 20 responses: "200": - application/json: {"items": [{"id": "dep_0c29fq4a2yjb7kx3smwdgxlc", "name": "", "status": "update-failed", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "platform": "aws", "deploymentProtocolVersion": 539991, "deploymentGroupId": "dg_r27ict8c7vcgsumpj90ackf7b", "currentReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "desiredReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "pinnedReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "retryRequested": false, "createdAt": "2025-06-08T07:12:39.784Z", "updatedAt": "2026-09-03T12:53:35.429Z", "managerId": "mgr_enxscjrqiiu2lrc672hwwuc5", "workspaceId": "ws_It13CUaGEhLLAB87simX0", "release": {"id": "rel_WbhQgksrawSKIpEN0NAssHX9", "version": "", "gitMetadata": {"commitSha": "dc36199b2234c6586ebe05ec94078a895c707e29", "commitMessage": "add method to measure Interaction to Next Paint (INP) (#36490)", "commitRef": "main", "commitDate": "2026-03-16T12:00:00Z", "dirty": true, "remoteUrl": "https://github.com/alienplatform/alien", "commitAuthorName": "John Doe", "commitAuthorEmail": "john@example.com", "commitAuthorLogin": "johndoe", "commitAuthorAvatarUrl": "https://github.com/johndoe.png"}, "createdAt": "2025-09-26T19:28:26.059Z"}, "deploymentGroup": {"id": "dg_r27ict8c7vcgsumpj90ackf7b", "name": "prod-us-east-1"}, "project": {"id": "prj_mcytp6z3j91f7tn5ryqsfwtr", "name": "my-app"}}], "nextCursor": ""} + application/json: {"items": [{"id": "dep_0c29fq4a2yjb7kx3smwdgxlc", "name": "", "status": "update-failed", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "platform": "aws", "deploymentProtocolVersion": 539991, "deploymentGroupId": "dg_r27ict8c7vcgsumpj90ackf7b", "currentReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "desiredReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "pinnedReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "releaseChannel": "", "retryRequested": false, "createdAt": "2025-06-08T07:12:39.784Z", "updatedAt": "2026-09-03T12:53:35.429Z", "managerId": "mgr_enxscjrqiiu2lrc672hwwuc5", "workspaceId": "ws_It13CUaGEhLLAB87simX0", "release": {"id": "rel_WbhQgksrawSKIpEN0NAssHX9", "version": "", "gitMetadata": {"commitSha": "dc36199b2234c6586ebe05ec94078a895c707e29", "commitMessage": "add method to measure Interaction to Next Paint (INP) (#36490)", "commitRef": "main", "commitDate": "2026-03-16T12:00:00Z", "dirty": true, "remoteUrl": "https://github.com/alienplatform/alien", "commitAuthorName": "John Doe", "commitAuthorEmail": "john@example.com", "commitAuthorLogin": "johndoe", "commitAuthorAvatarUrl": "https://github.com/johndoe.png"}, "createdAt": "2025-09-26T19:28:26.059Z"}, "deploymentGroup": {"id": "dg_r27ict8c7vcgsumpj90ackf7b", "name": "prod-us-east-1"}, "project": {"id": "prj_mcytp6z3j91f7tn5ryqsfwtr", "name": "my-app"}}], "nextCursor": ""} "400": application/json: {"code": "", "message": "", "retryable": false, "internal": false} "500": @@ -30004,7 +31648,7 @@ examples: limit: 20 responses: "200": - application/json: {"items": [{"id": "dep_0c29fq4a2yjb7kx3smwdgxlc", "name": "", "status": "update-failed", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "platform": "aws", "deploymentProtocolVersion": 539991, "deploymentGroupId": "dg_r27ict8c7vcgsumpj90ackf7b", "currentReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "desiredReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "pinnedReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "retryRequested": false, "createdAt": "2025-06-08T07:12:39.784Z", "updatedAt": "2026-09-03T12:53:35.429Z", "managerId": "mgr_enxscjrqiiu2lrc672hwwuc5", "workspaceId": "ws_It13CUaGEhLLAB87simX0", "release": {"id": "rel_WbhQgksrawSKIpEN0NAssHX9", "version": "", "gitMetadata": {"commitSha": "dc36199b2234c6586ebe05ec94078a895c707e29", "commitMessage": "add method to measure Interaction to Next Paint (INP) (#36490)", "commitRef": "main", "commitDate": "2026-03-16T12:00:00Z", "dirty": true, "remoteUrl": "https://github.com/alienplatform/alien", "commitAuthorName": "John Doe", "commitAuthorEmail": "john@example.com", "commitAuthorLogin": "johndoe", "commitAuthorAvatarUrl": "https://github.com/johndoe.png"}, "createdAt": "2025-09-26T19:28:26.059Z"}, "deploymentGroup": {"id": "dg_r27ict8c7vcgsumpj90ackf7b", "name": "prod-us-east-1"}, "project": {"id": "prj_mcytp6z3j91f7tn5ryqsfwtr", "name": "my-app"}}], "nextCursor": ""} + application/json: {"items": [{"id": "dep_0c29fq4a2yjb7kx3smwdgxlc", "name": "", "status": "update-failed", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "platform": "aws", "deploymentProtocolVersion": 539991, "deploymentGroupId": "dg_r27ict8c7vcgsumpj90ackf7b", "currentReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "desiredReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "pinnedReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "releaseChannel": "", "retryRequested": false, "createdAt": "2025-06-08T07:12:39.784Z", "updatedAt": "2026-09-03T12:53:35.429Z", "managerId": "mgr_enxscjrqiiu2lrc672hwwuc5", "workspaceId": "ws_It13CUaGEhLLAB87simX0", "release": {"id": "rel_WbhQgksrawSKIpEN0NAssHX9", "version": "", "gitMetadata": {"commitSha": "dc36199b2234c6586ebe05ec94078a895c707e29", "commitMessage": "add method to measure Interaction to Next Paint (INP) (#36490)", "commitRef": "main", "commitDate": "2026-03-16T12:00:00Z", "dirty": true, "remoteUrl": "https://github.com/alienplatform/alien", "commitAuthorName": "John Doe", "commitAuthorEmail": "john@example.com", "commitAuthorLogin": "johndoe", "commitAuthorAvatarUrl": "https://github.com/johndoe.png"}, "createdAt": "2025-09-26T19:28:26.059Z"}, "deploymentGroup": {"id": "dg_r27ict8c7vcgsumpj90ackf7b", "name": "prod-us-east-1"}, "project": {"id": "prj_mcytp6z3j91f7tn5ryqsfwtr", "name": "my-app"}}], "nextCursor": ""} "400": application/json: {"code": "", "message": "", "retryable": false, "internal": false} "500": @@ -30015,7 +31659,7 @@ examples: query: workspace: "my-workspace" requestBody: - application/json: {"name": "acme-prod", "platform": "aws", "managerId": "mgr_enxscjrqiiu2lrc672hwwuc5", "pinnedReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "project": "", "initialDesiredRelease": "active"} + application/json: {"name": "acme-prod", "platform": "aws", "managerId": "mgr_enxscjrqiiu2lrc672hwwuc5", "pinnedReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "project": "", "initialDesiredRelease": "active", "releaseChannel": "production"} responses: "201": application/json: {"deployment": {"id": "dep_0c29fq4a2yjb7kx3smwdgxlc", "name": "acme-prod", "status": "pending", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "platform": "kubernetes", "deploymentProtocolVersion": 235261, "deploymentGroupId": "dg_r27ict8c7vcgsumpj90ackf7b", "stackSettings": {}, "currentReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "desiredReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "pinnedReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "retryRequested": false, "createdAt": "2024-08-10T01:57:59.011Z", "updatedAt": "2024-02-22T19:07:13.924Z", "managerId": "mgr_enxscjrqiiu2lrc672hwwuc5", "workspaceId": "ws_It13CUaGEhLLAB87simX0"}} @@ -30024,7 +31668,7 @@ examples: "500": application/json: {"code": "", "message": "", "retryable": false, "internal": false} "200": - application/json: {"deployment": {"id": "dep_0c29fq4a2yjb7kx3smwdgxlc", "name": "acme-prod", "status": "pending", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "platform": "kubernetes", "deploymentProtocolVersion": 235261, "deploymentGroupId": "dg_r27ict8c7vcgsumpj90ackf7b", "stackSettings": {}, "currentReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "desiredReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "pinnedReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "retryRequested": false, "createdAt": "2024-08-10T01:57:59.011Z", "updatedAt": "2024-02-22T19:07:13.924Z", "managerId": "mgr_enxscjrqiiu2lrc672hwwuc5", "workspaceId": "ws_It13CUaGEhLLAB87simX0"}, "deploymentModel": "push"} + application/json: {"deployment": {"id": "dep_0c29fq4a2yjb7kx3smwdgxlc", "name": "acme-prod", "status": "pending", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "platform": "kubernetes", "deploymentProtocolVersion": 235261, "deploymentGroupId": "dg_r27ict8c7vcgsumpj90ackf7b", "stackSettings": {}, "currentReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "desiredReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "pinnedReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "releaseChannel": "", "retryRequested": false, "createdAt": "2024-08-10T01:57:59.011Z", "updatedAt": "2024-02-22T19:07:13.924Z", "managerId": "mgr_enxscjrqiiu2lrc672hwwuc5", "workspaceId": "ws_It13CUaGEhLLAB87simX0"}, "deploymentModel": "push"} getDeploymentStats: speakeasy-default-get-deployment-stats: parameters: @@ -30110,7 +31754,7 @@ examples: workspace: "my-workspace" responses: "200": - application/json: {"id": "dep_0c29fq4a2yjb7kx3smwdgxlc", "name": "acme-prod", "status": "delete-failed", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "platform": "azure", "deploymentProtocolVersion": 891772, "deploymentGroupId": "dg_r27ict8c7vcgsumpj90ackf7b", "stackSettings": {}, "currentReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "desiredReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "pinnedReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "retryRequested": true, "createdAt": "2026-03-24T01:01:53.494Z", "updatedAt": "2025-12-03T19:50:18.984Z", "managerId": "mgr_enxscjrqiiu2lrc672hwwuc5", "workspaceId": "ws_It13CUaGEhLLAB87simX0", "release": {"id": "rel_WbhQgksrawSKIpEN0NAssHX9", "version": "", "gitMetadata": {"commitSha": "dc36199b2234c6586ebe05ec94078a895c707e29", "commitMessage": "add method to measure Interaction to Next Paint (INP) (#36490)", "commitRef": "main", "commitDate": "2026-03-16T12:00:00Z", "dirty": true, "remoteUrl": "https://github.com/alienplatform/alien", "commitAuthorName": "John Doe", "commitAuthorEmail": "john@example.com", "commitAuthorLogin": "johndoe", "commitAuthorAvatarUrl": "https://github.com/johndoe.png"}, "createdAt": "2024-03-01T02:31:17.524Z"}, "deploymentGroup": {"id": "dg_r27ict8c7vcgsumpj90ackf7b", "name": "prod-us-east-1"}, "project": {"id": "prj_mcytp6z3j91f7tn5ryqsfwtr", "name": "my-app"}} + application/json: {"id": "dep_0c29fq4a2yjb7kx3smwdgxlc", "name": "acme-prod", "status": "delete-failed", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "platform": "azure", "deploymentProtocolVersion": 891772, "deploymentGroupId": "dg_r27ict8c7vcgsumpj90ackf7b", "stackSettings": {}, "currentReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "desiredReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "pinnedReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "releaseChannel": "", "retryRequested": true, "createdAt": "2026-03-24T01:01:53.494Z", "updatedAt": "2025-12-03T19:50:18.984Z", "managerId": "mgr_enxscjrqiiu2lrc672hwwuc5", "workspaceId": "ws_It13CUaGEhLLAB87simX0", "release": {"id": "rel_WbhQgksrawSKIpEN0NAssHX9", "version": "", "gitMetadata": {"commitSha": "dc36199b2234c6586ebe05ec94078a895c707e29", "commitMessage": "add method to measure Interaction to Next Paint (INP) (#36490)", "commitRef": "main", "commitDate": "2026-03-16T12:00:00Z", "dirty": true, "remoteUrl": "https://github.com/alienplatform/alien", "commitAuthorName": "John Doe", "commitAuthorEmail": "john@example.com", "commitAuthorLogin": "johndoe", "commitAuthorAvatarUrl": "https://github.com/johndoe.png"}, "createdAt": "2024-03-01T02:31:17.524Z"}, "deploymentGroup": {"id": "dg_r27ict8c7vcgsumpj90ackf7b", "name": "prod-us-east-1"}, "project": {"id": "prj_mcytp6z3j91f7tn5ryqsfwtr", "name": "my-app"}} "404": application/json: {"code": "", "message": "", "retryable": false, "internal": true} "500": @@ -30159,7 +31803,7 @@ examples: "500": application/json: {"code": "", "message": "", "retryable": false, "internal": false} "200": - application/json: {"id": "dep_0c29fq4a2yjb7kx3smwdgxlc", "name": "acme-prod", "status": "update-pending", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "platform": "aws", "deploymentProtocolVersion": 176346, "deploymentGroupId": "dg_r27ict8c7vcgsumpj90ackf7b", "stackSettings": {}, "currentReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "desiredReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "pinnedReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "retryRequested": true, "createdAt": "2025-05-24T21:00:37.967Z", "updatedAt": "2024-05-07T04:51:05.203Z", "managerId": "mgr_enxscjrqiiu2lrc672hwwuc5", "workspaceId": "ws_It13CUaGEhLLAB87simX0"} + application/json: {"id": "dep_0c29fq4a2yjb7kx3smwdgxlc", "name": "acme-prod", "status": "update-pending", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "platform": "aws", "deploymentProtocolVersion": 176346, "deploymentGroupId": "dg_r27ict8c7vcgsumpj90ackf7b", "stackSettings": {}, "currentReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "desiredReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "pinnedReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "releaseChannel": "", "retryRequested": true, "createdAt": "2025-05-24T21:00:37.967Z", "updatedAt": "2024-05-07T04:51:05.203Z", "managerId": "mgr_enxscjrqiiu2lrc672hwwuc5", "workspaceId": "ws_It13CUaGEhLLAB87simX0"} redeployDeployment: speakeasy-default-redeploy-deployment: parameters: @@ -30766,10 +32410,10 @@ examples: query: workspace: "my-workspace" requestBody: - application/json: {"managerId": "mgr_enxscjrqiiu2lrc672hwwuc5", "session": "", "deploymentIds": ["dep_0c29fq4a2yjb7kx3smwdgxlc"], "deploymentModel": "pull"} + application/json: {"managerId": "mgr_enxscjrqiiu2lrc672hwwuc5", "session": "", "requestId": "", "deploymentIds": ["dep_0c29fq4a2yjb7kx3smwdgxlc"], "deploymentModel": "pull"} responses: "200": - application/json: {"deployments": [{"deploymentId": "dep_0c29fq4a2yjb7kx3smwdgxlc", "projectId": "", "deploymentGroupId": "dg_r27ict8c7vcgsumpj90ackf7b", "current": {"platform": "kubernetes", "protocolVersion": 670986, "status": "provisioning-failed"}, "config": {"environmentVariables": {"createdAt": "1731491596603", "hash": "", "variables": [{"name": "", "type": "plain", "value": ""}]}}}], "failures": [{"deploymentId": "dep_0c29fq4a2yjb7kx3smwdgxlc", "projectId": "", "error": {"code": "", "message": "", "retryable": false, "internal": true}}]} + application/json: {"deployments": [{"deploymentId": "dep_0c29fq4a2yjb7kx3smwdgxlc", "projectId": "", "deploymentGroupId": "dg_r27ict8c7vcgsumpj90ackf7b", "current": {"platform": "kubernetes", "protocolVersion": 670986, "status": "provisioning-failed"}, "config": {"environmentVariables": {"createdAt": "1731491596603", "hash": "", "variables": [{"name": "", "type": "plain", "value": ""}]}}}], "failures": [{"deploymentId": "dep_0c29fq4a2yjb7kx3smwdgxlc", "projectId": "", "error": {"code": "", "message": "", "retryable": false, "internal": true}}], "leaseExpiresAt": "2025-11-08T22:16:49.142Z"} "400": application/json: {"code": "", "message": "", "retryable": false, "internal": true} "500": @@ -31892,7 +33536,7 @@ examples: application/json: {"name": "prod-us-east-1", "project": "", "maxDeployments": 100} responses: "200": - application/json: {"id": "dg_r27ict8c7vcgsumpj90ackf7b", "name": "prod-us-east-1", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "workspaceId": "ws_It13CUaGEhLLAB87simX0", "maxDeployments": 100, "createdAt": "2024-04-18T19:27:42.020Z"} + application/json: {"id": "dg_r27ict8c7vcgsumpj90ackf7b", "name": "prod-us-east-1", "externalId": "ext_example_01", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "workspaceId": "ws_It13CUaGEhLLAB87simX0", "maxDeployments": 100, "createdAt": "2024-04-18T19:27:42.020Z"} "404": application/json: {"code": "", "message": "", "retryable": false, "internal": true} "500": @@ -32008,4 +33652,453 @@ examples: application/json: {"code": "", "message": "", "retryable": false, "internal": true} "500": application/json: {"code": "", "message": "", "retryable": false, "internal": true} + getWorkspaceInvitationPreview: + speakeasy-default-get-workspace-invitation-preview: + parameters: + path: + token: "" + responses: + "200": + application/json: {"kind": "email", "workspace": {"id": "ws_It13CUaGEhLLAB87simX0", "name": "", "logoUrl": "https://noteworthy-mantua.biz"}, "inviter": {"name": "", "image": "https://pale-saloon.name/"}, "role": "workspace.member", "expiresAt": "2024-12-23T03:07:01.575Z", "state": "expired", "emailHint": null} + "404": + application/json: {"code": "", "message": "", "retryable": false, "internal": true} + "500": + application/json: {"code": "", "message": "", "retryable": false, "internal": true} + acceptWorkspaceInvitation: + speakeasy-default-accept-workspace-invitation: + parameters: + path: + token: "" + responses: + "200": + application/json: {"outcome": "joined", "workspaceId": "ws_It13CUaGEhLLAB87simX0", "workspaceName": "", "role": "workspace.member"} + "404": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + "500": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + listWorkspaceInvitations: + speakeasy-default-list-workspace-invitations: + parameters: + path: + id: "ws_It13CUaGEhLLAB87simX0" + query: + workspace: "my-workspace" + responses: + "200": + application/json: {"items": [{"id": "winv_DsgltMIFV0GmqtxV5NYTtrknrna", "email": "Emmie_Muller@gmail.com", "role": "workspace.member", "status": "pending", "deliveryStatus": "failed", "expiresAt": "2024-03-09T16:33:10.868Z", "lastSentAt": "2024-03-29T16:06:21.554Z", "createdAt": "2026-07-21T15:51:18.955Z", "inviteUrl": "https://helpless-anticodon.biz/"}]} + "404": + application/json: {"code": "", "message": "", "retryable": false, "internal": true} + "500": + application/json: {"code": "", "message": "", "retryable": false, "internal": true} + createWorkspaceInvitation: + speakeasy-default-create-workspace-invitation: + parameters: + path: + id: "ws_It13CUaGEhLLAB87simX0" + query: + workspace: "my-workspace" + requestBody: + application/json: {"email": "Moriah.Rolfson@hotmail.com", "role": "workspace.member"} + responses: + "201": + application/json: {"id": "winv_DsgltMIFV0GmqtxV5NYTtrknrna", "email": "Abraham42@hotmail.com", "role": "workspace.member", "status": "accepted", "deliveryStatus": "pending", "expiresAt": "2026-05-21T08:40:21.188Z", "lastSentAt": "2025-07-08T02:20:00.972Z", "createdAt": "2024-05-15T04:20:10.174Z", "inviteUrl": "https://abandoned-eyebrow.biz/"} + "403": + application/json: {"code": "", "message": "", "retryable": false, "internal": true} + "500": + application/json: {"code": "", "message": "", "retryable": false, "internal": true} + resendWorkspaceInvitation: + speakeasy-default-resend-workspace-invitation: + parameters: + path: + id: "ws_It13CUaGEhLLAB87simX0" + invitationId: "" + query: + workspace: "my-workspace" + responses: + "200": + application/json: {"id": "winv_DsgltMIFV0GmqtxV5NYTtrknrna", "email": "Heaven.Cole69@gmail.com", "role": "workspace.member", "status": "expired", "deliveryStatus": "failed", "expiresAt": "2024-06-06T23:10:53.839Z", "lastSentAt": "2026-10-26T00:10:20.068Z", "createdAt": "2025-05-20T00:44:42.174Z", "inviteUrl": "https://dreary-petticoat.com"} + "404": + application/json: {"code": "", "message": "", "retryable": false, "internal": true} + "500": + application/json: {"code": "", "message": "", "retryable": false, "internal": true} + revokeWorkspaceInvitation: + speakeasy-default-revoke-workspace-invitation: + parameters: + path: + id: "ws_It13CUaGEhLLAB87simX0" + invitationId: "" + query: + workspace: "my-workspace" + responses: + "404": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + "500": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + getWorkspaceInviteLink: + speakeasy-default-get-workspace-invite-link: + parameters: + path: + id: "ws_It13CUaGEhLLAB87simX0" + query: + workspace: "my-workspace" + responses: + "200": + application/json: {"id": "wil_RgcthDSZ37rmFLekuItpFS7btjXoYwou1gE4", "role": "workspace.member", "expiresAt": "2025-06-07T04:37:56.496Z", "createdAt": "2024-04-17T09:41:30.726Z", "useCount": 953936, "lastUsedAt": "2024-03-08T14:24:52.766Z", "inviteUrl": "https://ultimate-elver.biz"} + "404": + application/json: {"code": "", "message": "", "retryable": false, "internal": true} + "500": + application/json: {"code": "", "message": "", "retryable": false, "internal": true} + createWorkspaceInviteLink: + speakeasy-default-create-workspace-invite-link: + parameters: + path: + id: "ws_It13CUaGEhLLAB87simX0" + query: + workspace: "my-workspace" + requestBody: + application/json: {"role": "workspace.member"} + responses: + "200": + application/json: {"id": "wil_RgcthDSZ37rmFLekuItpFS7btjXoYwou1gE4", "role": "workspace.member", "expiresAt": "2025-09-13T03:21:37.500Z", "createdAt": "2024-08-05T23:43:57.116Z", "useCount": 73602, "lastUsedAt": "2025-08-07T11:27:49.590Z", "inviteUrl": "https://dull-consistency.org/"} + "404": + application/json: {"code": "", "message": "", "retryable": false, "internal": true} + "500": + application/json: {"code": "", "message": "", "retryable": false, "internal": true} + revokeWorkspaceInviteLink: + speakeasy-default-revoke-workspace-invite-link: + parameters: + path: + id: "ws_It13CUaGEhLLAB87simX0" + query: + workspace: "my-workspace" + responses: + "404": + application/json: {"code": "", "message": "", "retryable": false, "internal": true} + "500": + application/json: {"code": "", "message": "", "retryable": false, "internal": true} + getWorkspaceSettings: + speakeasy-default-get-workspace-settings: + parameters: + path: + id: "ws_It13CUaGEhLLAB87simX0" + query: + workspace: "my-workspace" + responses: + "200": + application/json: {"workspaceId": "ws_It13CUaGEhLLAB87simX0", "enabled": false, "debugPermissionMode": "ask", "createdAt": "2024-11-13T08:37:23.238Z", "updatedAt": "2024-08-03T09:23:28.780Z"} + "404": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + updateWorkspaceSettings: + speakeasy-default-update-workspace-settings: + parameters: + path: + id: "ws_It13CUaGEhLLAB87simX0" + query: + workspace: "my-workspace" + responses: + "200": + application/json: {"workspaceId": "ws_It13CUaGEhLLAB87simX0", "enabled": false, "debugPermissionMode": "ask", "createdAt": "2026-03-16T04:44:35.115Z", "updatedAt": "2026-12-06T08:55:25.293Z"} + "404": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + ensureDeploymentGroupByExternalId: + speakeasy-default-ensure-deployment-group-by-external-id: + parameters: + query: + workspace: "my-workspace" + requestBody: + application/json: {"externalId": "ext_example_01", "name": "prod-us-east-1", "project": "", "maxDeployments": 100} + responses: + "200": + application/json: {"id": "dg_r27ict8c7vcgsumpj90ackf7b", "name": "prod-us-east-1", "externalId": "ext_example_01", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "workspaceId": "ws_It13CUaGEhLLAB87simX0", "maxDeployments": 100, "createdAt": "2026-05-23T08:10:33.260Z"} + "404": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + "500": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + getDeploymentGroupByExternalId: + speakeasy-default-get-deployment-group-by-external-id: + parameters: + query: + workspace: "my-workspace" + externalId: "ext_example_01" + responses: + "200": + application/json: {"id": "dg_r27ict8c7vcgsumpj90ackf7b", "name": "prod-us-east-1", "externalId": "ext_example_01", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "workspaceId": "ws_It13CUaGEhLLAB87simX0", "maxDeployments": 100, "createdAt": "2026-08-15T05:24:07.077Z"} + "404": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + "500": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + setDeploymentGroupExternalId: + speakeasy-default-set-deployment-group-external-id: + parameters: + path: + id: "dg_r27ict8c7vcgsumpj90ackf7b" + query: + workspace: "my-workspace" + requestBody: + application/json: {"externalId": "ext_example_01"} + responses: + "200": + application/json: {"id": "dg_r27ict8c7vcgsumpj90ackf7b", "name": "prod-us-east-1", "externalId": "ext_example_01", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "workspaceId": "ws_It13CUaGEhLLAB87simX0", "maxDeployments": 100, "createdAt": "2026-04-28T03:25:20.546Z"} + "404": + application/json: {"code": "", "message": "", "retryable": false, "internal": true} + "500": + application/json: {"code": "", "message": "", "retryable": false, "internal": true} + listReleaseDeployments: + speakeasy-default-list-release-deployments: + parameters: + path: + id: "rel_WbhQgksrawSKIpEN0NAssHX9" + query: + workspace: "my-workspace" + limit: 20 + responses: + "200": + application/json: {"items": [{"id": "dep_0c29fq4a2yjb7kx3smwdgxlc", "name": "", "status": "running", "platform": "aws", "deploymentGroup": {"id": "dg_r27ict8c7vcgsumpj90ackf7b", "name": "prod-us-east-1"}, "currentReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "desiredReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "pinnedReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "rolloutState": "pending", "releasedAt": "2024-09-20T04:52:47.699Z", "durationMs": null}], "nextCursor": "", "stateCounts": {"updated": 986319, "updating": 535681, "failed": 193833, "pending": 473305, "pinned-other": 382088, "superseded": 748796, "on-other": 952996}} + "404": + application/json: {"code": "", "message": "", "retryable": false, "internal": true} + "500": + application/json: {"code": "", "message": "", "retryable": false, "internal": true} + promoteRelease: + projectName: + parameters: + path: + name: "" + query: + workspace: "my-workspace" + project: "my-project" + requestBody: + application/json: {"releaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "expectedReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9"} + responses: + "200": + application/json: {"workspaceId": "ws_It13CUaGEhLLAB87simX0", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "name": "", "currentReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "createdAt": "2026-01-03T00:04:50.877Z", "updatedAt": "2025-05-25T16:55:40.026Z"} + "404": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + projectId: + parameters: + path: + name: "" + query: + workspace: "my-workspace" + project: "prj_mcytp6z3j91f7tn5ryqsfwtr" + requestBody: + application/json: {"releaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "expectedReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9"} + responses: + "200": + application/json: {"workspaceId": "ws_It13CUaGEhLLAB87simX0", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "name": "", "currentReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "createdAt": "2026-01-03T00:04:50.877Z", "updatedAt": "2025-05-25T16:55:40.026Z"} + "404": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + listReleaseChannels: + projectName: + parameters: + query: + workspace: "my-workspace" + project: "my-project" + responses: + "200": + application/json: {"items": [{"workspaceId": "ws_It13CUaGEhLLAB87simX0", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "name": "", "currentReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "createdAt": "2026-10-12T11:56:16.159Z", "updatedAt": "2025-01-17T06:51:43.117Z"}]} + "404": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + projectId: + parameters: + query: + workspace: "my-workspace" + project: "prj_mcytp6z3j91f7tn5ryqsfwtr" + responses: + "200": + application/json: {"items": [{"workspaceId": "ws_It13CUaGEhLLAB87simX0", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "name": "", "currentReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "createdAt": "2026-10-12T11:56:16.159Z", "updatedAt": "2025-01-17T06:51:43.117Z"}]} + "404": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + createReleaseChannel: + projectName: + parameters: + query: + workspace: "my-workspace" + project: "my-project" + requestBody: + application/json: {"name": "", "releaseId": "rel_WbhQgksrawSKIpEN0NAssHX9"} + responses: + "201": + application/json: {"workspaceId": "ws_It13CUaGEhLLAB87simX0", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "name": "", "currentReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "createdAt": "2024-05-16T20:19:29.970Z", "updatedAt": "2026-03-20T03:54:04.557Z"} + "400": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + projectId: + parameters: + query: + workspace: "my-workspace" + project: "prj_mcytp6z3j91f7tn5ryqsfwtr" + requestBody: + application/json: {"name": "", "releaseId": "rel_WbhQgksrawSKIpEN0NAssHX9"} + responses: + "201": + application/json: {"workspaceId": "ws_It13CUaGEhLLAB87simX0", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "name": "", "currentReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "createdAt": "2024-05-16T20:19:29.970Z", "updatedAt": "2026-03-20T03:54:04.557Z"} + "400": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + deleteReleaseChannel: + projectName: + parameters: + path: + name: "" + query: + workspace: "my-workspace" + project: "my-project" + responses: + "400": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + projectId: + parameters: + path: + name: "" + query: + workspace: "my-workspace" + project: "prj_mcytp6z3j91f7tn5ryqsfwtr" + responses: + "400": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + setDeploymentReleaseChannel: + speakeasy-default-set-deployment-release-channel: + parameters: + path: + id: "dep_0c29fq4a2yjb7kx3smwdgxlc" + query: + workspace: "my-workspace" + responses: + "200": + application/json: {"id": "dep_0c29fq4a2yjb7kx3smwdgxlc", "name": "acme-prod", "status": "teardown-required", "projectId": "prj_mcytp6z3j91f7tn5ryqsfwtr", "platform": "local", "deploymentProtocolVersion": 207746, "deploymentGroupId": "dg_r27ict8c7vcgsumpj90ackf7b", "stackSettings": {}, "currentReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "desiredReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "pinnedReleaseId": "rel_WbhQgksrawSKIpEN0NAssHX9", "releaseChannel": "", "retryRequested": true, "createdAt": "2025-11-07T14:35:39.301Z", "updatedAt": "2026-05-28T15:15:54.598Z", "managerId": "mgr_enxscjrqiiu2lrc672hwwuc5", "workspaceId": "ws_It13CUaGEhLLAB87simX0"} + "400": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + generateManagerBindingToken: + speakeasy-default-generate-manager-binding-token: + parameters: + path: + id: "mgr_enxscjrqiiu2lrc672hwwuc5" + query: + workspace: "my-workspace" + requestBody: + application/json: {"deploymentId": "dep_0c29fq4a2yjb7kx3smwdgxlc"} + responses: + "200": + application/json: {"accessToken": "", "expiresIn": 5218.79, "tokenType": "Bearer", "managerUrl": "https://admired-maintainer.com"} + "403": + application/json: {"code": "", "message": "", "retryable": false, "internal": true} + "503": + application/json: {"code": "", "message": "", "retryable": false, "internal": true} + slackIntegrationInstallUrl: + speakeasy-default-slack-integration-install-url: + parameters: + query: + workspace: "my-workspace" + responses: + "200": + application/json: {"url": "https://apt-flood.com"} + "500": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + slackIntegrationStatus: + speakeasy-default-slack-integration-status: + parameters: + query: + workspace: "my-workspace" + responses: + "200": + application/json: {"connected": true, "slackTeamId": "", "slackTeamName": "", "installedByUserId": null, "installedAt": "", "notificationChannelId": ""} + slackIntegrationChannels: + speakeasy-default-slack-integration-channels: + parameters: + query: + workspace: "my-workspace" + responses: + "200": + application/json: {"channels": [{"id": "", "name": "", "isMember": false}]} + "400": + application/json: {"code": "", "message": "", "retryable": false, "internal": true} + slackIntegrationSetNotificationChannel: + speakeasy-default-slack-integration-set-notification-channel: + parameters: + query: + workspace: "my-workspace" + responses: + "200": + application/json: {"notificationChannelId": "", "warning": ""} + "400": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + slackIntegrationUninstall: + speakeasy-default-slack-integration-uninstall: + parameters: + query: + workspace: "my-workspace" + listAgentSessions: + speakeasy-default-list-agent-sessions: + parameters: + query: + workspace: "my-workspace" + responses: + "200": + application/json: {"sessions": [{"id": "", "triggerType": "", "subjectId": "", "subject": {"deploymentName": "", "deploymentGroupId": "", "deploymentGroupName": "", "releaseId": "", "releaseCommitMessage": "", "releaseCommitRef": "", "projectId": "", "projectName": ""}, "status": "", "createdAt": "1722382100466", "updatedAt": "1735649629368"}]} + getAgentSession: + speakeasy-default-get-agent-session: + parameters: + path: + id: "" + query: + workspace: "my-workspace" + responses: + "200": + application/json: {"id": "", "triggerType": "", "subjectId": "", "subject": {"deploymentName": "", "deploymentGroupId": "", "deploymentGroupName": "", "releaseId": "", "releaseCommitMessage": "", "releaseCommitRef": "", "projectId": "", "projectName": ""}, "status": "", "createdAt": "1707662224078", "updatedAt": "1735653190474", "resultText": "", "toolNames": [""], "error": null, "pendingApproval": {"approvalId": "", "toolCallId": "", "toolName": ""}} + "404": + application/json: {"code": "", "message": "", "retryable": false, "internal": true} + listAgentSessionEvents: + speakeasy-default-list-agent-session-events: + parameters: + path: + id: "" + query: + workspace: "my-workspace" + after: 0 + limit: 200 + responses: + "200": + application/json: {"events": [{"seq": 5222.98, "createdAt": "1713435916334", "type": "markdown", "payload": {"text": ""}}], "latestSeq": 9204.96, "hasMore": false} + "404": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + approveAgentSession: + speakeasy-default-approve-agent-session: + parameters: + path: + id: "" + query: + workspace: "my-workspace" + responses: + "200": + application/json: {"jobId": "", "status": "", "resumed": false} + "404": + application/json: {"code": "", "message": "", "retryable": false, "internal": true} + "503": + application/json: {"code": "", "message": "", "retryable": false, "internal": true} + stopAgentSession: + speakeasy-default-stop-agent-session: + parameters: + path: + id: "" + query: + workspace: "my-workspace" + responses: + "200": + application/json: {"jobId": "", "status": "", "canceled": true} + "404": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + "503": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + syncRenew: + speakeasy-default-sync-renew: + parameters: + query: + workspace: "my-workspace" + requestBody: + application/json: {"deploymentId": "dep_0c29fq4a2yjb7kx3smwdgxlc", "deploymentIds": ["dep_0c29fq4a2yjb7kx3smwdgxlc"], "session": ""} + responses: + "200": + application/json: {"success": false, "leases": []} + "404": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} + "500": + application/json: {"code": "", "message": "", "retryable": false, "internal": false} examplesVersion: 1.0.2 diff --git a/client-sdks/platform/typescript/FUNCTIONS.md b/client-sdks/platform/typescript/FUNCTIONS.md index 79de03ebf..2f99e3f74 100644 --- a/client-sdks/platform/typescript/FUNCTIONS.md +++ b/client-sdks/platform/typescript/FUNCTIONS.md @@ -20,7 +20,7 @@ specific category of applications. ```typescript import { AlienCore } from "@alienplatform/platform-api/core.js"; -import { userListMemberships } from "@alienplatform/platform-api/funcs/userListMemberships.js"; +import { getWorkspaceInvitationPreview } from "@alienplatform/platform-api/funcs/getWorkspaceInvitationPreview.js"; // Use `AlienCore` for best tree-shaking performance. // You can create one instance of it to use across an application. @@ -29,12 +29,14 @@ const alien = new AlienCore({ }); async function run() { - const res = await userListMemberships(alien); + const res = await getWorkspaceInvitationPreview(alien, { + token: "", + }); if (res.ok) { const { value: result } = res; console.log(result); } else { - console.log("userListMemberships failed:", res.error); + console.log("getWorkspaceInvitationPreview failed:", res.error); } } diff --git a/client-sdks/platform/typescript/README.md b/client-sdks/platform/typescript/README.md index d86bfb9c9..531d04d2a 100644 --- a/client-sdks/platform/typescript/README.md +++ b/client-sdks/platform/typescript/README.md @@ -98,7 +98,9 @@ const alien = new Alien({ }); async function run() { - const result = await alien.user.listMemberships(); + const result = await alien.getWorkspaceInvitationPreview({ + token: "", + }); console.log(result); } @@ -128,7 +130,9 @@ const alien = new Alien({ }); async function run() { - const result = await alien.user.listMemberships(); + const result = await alien.getWorkspaceInvitationPreview({ + token: "", + }); console.log(result); } @@ -144,6 +148,26 @@ run();
Available methods +### [Alien SDK](docs/sdks/alien/README.md) + +* [getWorkspaceInvitationPreview](docs/sdks/alien/README.md#getworkspaceinvitationpreview) +* [acceptWorkspaceInvitation](docs/sdks/alien/README.md#acceptworkspaceinvitation) +* [listWorkspaceInvitations](docs/sdks/alien/README.md#listworkspaceinvitations) +* [createWorkspaceInvitation](docs/sdks/alien/README.md#createworkspaceinvitation) +* [resendWorkspaceInvitation](docs/sdks/alien/README.md#resendworkspaceinvitation) +* [revokeWorkspaceInvitation](docs/sdks/alien/README.md#revokeworkspaceinvitation) +* [getWorkspaceInviteLink](docs/sdks/alien/README.md#getworkspaceinvitelink) +* [createWorkspaceInviteLink](docs/sdks/alien/README.md#createworkspaceinvitelink) +* [revokeWorkspaceInviteLink](docs/sdks/alien/README.md#revokeworkspaceinvitelink) + +### [AgentSessions](docs/sdks/agentsessions/README.md) + +* [list](docs/sdks/agentsessions/README.md#list) - List ai-agent monitor sessions for this workspace. Newest first, capped at 50. +* [get](docs/sdks/agentsessions/README.md#get) - Retrieve one ai-agent monitor session by id. +* [events](docs/sdks/agentsessions/README.md#events) - Incrementally read a session's event log (steps, tool calls, report deltas, approvals, status transitions). Pass the previous response's `latestSeq` as `after` to fetch only new events. +* [approve](docs/sdks/agentsessions/README.md#approve) - Approve a halted ai-agent monitor session. Proxies to the ai-agent service, minting a fresh CLI session for the caller so the ai-agent's own auth applies. +* [stop](docs/sdks/agentsessions/README.md#stop) - Stop (cancel) a running, queued, or halted ai-agent monitor session. Proxies to the ai-agent service, minting a fresh CLI session for the caller so the ai-agent's own auth applies. Idempotent — stopping an already-terminal session is a 200 no-op. + ### [ApiKeys](docs/sdks/apikeys/README.md) * [list](docs/sdks/apikeys/README.md#list) - Retrieve all API keys for the current workspace. @@ -197,9 +221,12 @@ run(); * [createDeploymentGroup](docs/sdks/deploymentgroups/README.md#createdeploymentgroup) - Create a new deployment group * [listDeploymentGroups](docs/sdks/deploymentgroups/README.md#listdeploymentgroups) - List deployment groups * [ensureDeploymentGroupByName](docs/sdks/deploymentgroups/README.md#ensuredeploymentgroupbyname) - Get or create a deployment group by project and name +* [ensureDeploymentGroupByExternalId](docs/sdks/deploymentgroups/README.md#ensuredeploymentgroupbyexternalid) - Get or create a deployment group by project and external ID +* [getDeploymentGroupByExternalId](docs/sdks/deploymentgroups/README.md#getdeploymentgroupbyexternalid) - Get a deployment group by project and external ID * [getDeploymentGroup](docs/sdks/deploymentgroups/README.md#getdeploymentgroup) - Get deployment group details * [updateDeploymentGroup](docs/sdks/deploymentgroups/README.md#updatedeploymentgroup) - Update deployment group * [deleteDeploymentGroup](docs/sdks/deploymentgroups/README.md#deletedeploymentgroup) - Delete deployment group +* [setDeploymentGroupExternalId](docs/sdks/deploymentgroups/README.md#setdeploymentgroupexternalid) - Set or clear a deployment group's external ID * [createDeploymentGroupToken](docs/sdks/deploymentgroups/README.md#createdeploymentgrouptoken) - Create deployment group token * [createFirstPartyDeploymentSession](docs/sdks/deploymentgroups/README.md#createfirstpartydeploymentsession) - Create first-party deployment session @@ -219,6 +246,7 @@ run(); * [delete](docs/sdks/deployments/README.md#delete) - Delete, detach, or forget a deployment by ID. * [redeploy](docs/sdks/deployments/README.md#redeploy) - Redeploy a running deployment with the same release and fresh environment variables. Sets status to update-pending. * [pinRelease](docs/sdks/deployments/README.md#pinrelease) - Pin or unpin a running or runtime-failed deployment. Running deployments start an update; failed deployments retry toward the selected release. +* [setReleaseChannel](docs/sdks/deployments/README.md#setreleasechannel) * [retry](docs/sdks/deployments/README.md#retry) - Retry a failed deployment operation. Uses alien-infra's retry mechanisms to resume from exact failure point. * [getInputs](docs/sdks/deployments/README.md#getinputs) - Get the active input definitions and current non-secret values for a deployment. * [updateInputs](docs/sdks/deployments/README.md#updateinputs) - Update runtime stack inputs, rebuild their environment-variable mappings, and request a deployment update when runtime configuration changes. @@ -266,6 +294,7 @@ run(); * [update](docs/sdks/managers/README.md#update) - Update a manager to a specific release ID or active release. * [listEvents](docs/sdks/managers/README.md#listevents) - Retrieve all events of a manager. * [generateManagerToken](docs/sdks/managers/README.md#generatemanagertoken) - Generate a short-lived JWT for direct browser → manager communication. Used for fetching command payloads and querying logs without routing sensitive data through the platform API. +* [generateManagerBindingToken](docs/sdks/managers/README.md#generatemanagerbindingtoken) - Generate a short-lived deployment-scoped token for resolving opted-in remote bindings through the currently assigned manager. * [resolveGcpOAuthProvider](docs/sdks/managers/README.md#resolvegcpoauthprovider) - Resolve decrypted project-level Google Cloud OAuth provider settings for a manager-side deployment bootstrap. * [reportHeartbeat](docs/sdks/managers/README.md#reportheartbeat) - Report Manager health status and metrics. * [getDeployment](docs/sdks/managers/README.md#getdeployment) - Get deployment details for a private manager (internal deployment platform, status, resources). @@ -295,7 +324,13 @@ run(); * [createFromTemplate](docs/sdks/projects/README.md#createfromtemplate) - Create a project by forking alienplatform/alien into your namespace, then configuring GitHub Actions. * [getTemplateUrls](docs/sdks/projects/README.md#gettemplateurls) - Get template URLs for deploying setup stacks in this project. * [getDeploymentLinkSetup](docs/sdks/projects/README.md#getdeploymentlinksetup) - Get the active release stack and portal-visible setup availability for deployment-link configuration. -* [getActiveRelease](docs/sdks/projects/README.md#getactiverelease) - Get the active release for this project. Returns the latest release, or the pinned release if deploymentId is provided and that deployment has a pinned release. +* [getActiveRelease](docs/sdks/projects/README.md#getactiverelease) - Get the production channel's current release. When deploymentId is provided, returns that deployment's effective release: its pin, or its followed channel's current release. + +### [ReleaseChannels](docs/sdks/releasechannels/README.md) + +* [list](docs/sdks/releasechannels/README.md#list) +* [create](docs/sdks/releasechannels/README.md#create) +* [delete](docs/sdks/releasechannels/README.md#delete) ### [Releases](docs/sdks/releases/README.md) @@ -304,6 +339,8 @@ run(); * [listBranches](docs/sdks/releases/README.md#listbranches) - List distinct git branches across releases. Used for filter dropdowns. * [listAuthors](docs/sdks/releases/README.md#listauthors) - List distinct commit authors across releases. Used for filter dropdowns. * [get](docs/sdks/releases/README.md#get) - Retrieve a release by ID. +* [listDeployments](docs/sdks/releases/README.md#listdeployments) - List the project's deployments with their rollout state relative to this release. +* [promote](docs/sdks/releases/README.md#promote) ### [Resolve](docs/sdks/resolve/README.md) @@ -316,12 +353,21 @@ run(); * [listDeployments](docs/sdks/resources/README.md#listdeployments) * [getDeploymentDetail](docs/sdks/resources/README.md#getdeploymentdetail) +### [SlackIntegration](docs/sdks/slackintegration/README.md) + +* [installUrl](docs/sdks/slackintegration/README.md#installurl) - Generate the Slack OAuth consent URL for this workspace. +* [status](docs/sdks/slackintegration/README.md#status) - Return the Slack install for this workspace (if any). +* [listChannels](docs/sdks/slackintegration/README.md#listchannels) - List public Slack channels for this workspace's install. Used by the dashboard's notification-channel picker. +* [setNotificationChannel](docs/sdks/slackintegration/README.md#setnotificationchannel) - Configure which Slack channel receives ai-agent monitor reports. +* [uninstall](docs/sdks/slackintegration/README.md#uninstall) - Uninstall the Slack integration for this workspace. Revokes the bot token at Slack and deletes the row. + ### [Sync](docs/sdks/sync/README.md) * [list](docs/sdks/sync/README.md#list) - List full deployment records for manager operational loops. This endpoint is intentionally separate from the public deployments list, which returns lightweight UI rows. * [context](docs/sdks/sync/README.md#context) - Get computed deployment state and configuration for a manager-side operation without acquiring the deployment reconciliation lock. * [acquire](docs/sdks/sync/README.md#acquire) - Acquire a batch of deployments for processing. Used by Manager to atomically lock deployments matching filters. Each deployment in the batch must be released after processing. * [reconcile](docs/sdks/sync/README.md#reconcile) - Reconcile deployment state. Push model requests that include a session verify lock ownership. Pull model state reports are accepted as authz-gated agent progress even when they carry an agent-sync session. Accepts full DeploymentState after step() execution. +* [renew](docs/sdks/sync/README.md#renew) * [release](docs/sdks/sync/README.md#release) - Release a deployment lock. Must be called after processing an acquired deployment, even if processing failed. This is critical to avoid deadlocks. ### [User](docs/sdks/user/README.md) @@ -346,6 +392,8 @@ run(); * [updateMember](docs/sdks/workspaces/README.md#updatemember) - Update a workspace member's role. * [removeMember](docs/sdks/workspaces/README.md#removemember) - Remove a member from a workspace. * [dismissOnboarding](docs/sdks/workspaces/README.md#dismissonboarding) - Mark the Getting Started walkthrough as dismissed for a workspace. The dashboard stops auto-promoting onboarding once this is set; users can still re-enter the walkthrough via the help menu. +* [getSettings](docs/sdks/workspaces/README.md#getsettings) - Read the ai-agent settings for a workspace. Returns defaults (`enabled: true`, `debugPermissionMode: auto`) when the workspace has never customized them. +* [updateSettings](docs/sdks/workspaces/README.md#updatesettings) - Update the ai-agent settings for a workspace. Supports `debugPermissionMode` (`ask` requires human approval on every ai-agent debug command, `auto` runs them without asking) and `enabled` (`false` turns the ai-agent off so incoming triggers are rejected before any session runs).
@@ -365,6 +413,12 @@ To read more about standalone functions, check [FUNCTIONS.md](./FUNCTIONS.md). Available standalone functions +- [`acceptWorkspaceInvitation`](docs/sdks/alien/README.md#acceptworkspaceinvitation) +- [`agentSessionsApprove`](docs/sdks/agentsessions/README.md#approve) - Approve a halted ai-agent monitor session. Proxies to the ai-agent service, minting a fresh CLI session for the caller so the ai-agent's own auth applies. +- [`agentSessionsEvents`](docs/sdks/agentsessions/README.md#events) - Incrementally read a session's event log (steps, tool calls, report deltas, approvals, status transitions). Pass the previous response's `latestSeq` as `after` to fetch only new events. +- [`agentSessionsGet`](docs/sdks/agentsessions/README.md#get) - Retrieve one ai-agent monitor session by id. +- [`agentSessionsList`](docs/sdks/agentsessions/README.md#list) - List ai-agent monitor sessions for this workspace. Newest first, capped at 50. +- [`agentSessionsStop`](docs/sdks/agentsessions/README.md#stop) - Stop (cancel) a running, queued, or halted ai-agent monitor session. Proxies to the ai-agent service, minting a fresh CLI session for the caller so the ai-agent's own auth applies. Idempotent — stopping an already-terminal session is a 200 no-op. - [`apiKeysCreate`](docs/sdks/apikeys/README.md#create) - Create a new API key. - [`apiKeysDeleteMultiple`](docs/sdks/apikeys/README.md#deletemultiple) - Permanently delete multiple API keys. - [`apiKeysGet`](docs/sdks/apikeys/README.md#get) - Retrieve a specific API key. @@ -385,6 +439,8 @@ To read more about standalone functions, check [FUNCTIONS.md](./FUNCTIONS.md). - [`commandsListNames`](docs/sdks/commands/README.md#listnames) - List distinct command names. Use for filter dropdowns in the dashboard. - [`commandsResolveTarget`](docs/sdks/commands/README.md#resolvetarget) - Resolve which resource a command for this deployment would be addressed to, and how it would be delivered. Fails when the deployment has no command-capable resources, or more than one and no explicit target was named. - [`commandsUpdate`](docs/sdks/commands/README.md#update) - Update command state. Called by manager when command is dispatched or completes. +- [`createWorkspaceInvitation`](docs/sdks/alien/README.md#createworkspaceinvitation) +- [`createWorkspaceInviteLink`](docs/sdks/alien/README.md#createworkspaceinvitelink) - [`debugSessionsCreate`](docs/sdks/debugsessions/README.md#create) - Create a debug-session audit row. Called by the manager when a pull or push debug tunnel is opened. Workspace + project derived from deployment. - [`debugSessionsGet`](docs/sdks/debugsessions/README.md#get) - Retrieve a debug session by ID. - [`debugSessionsList`](docs/sdks/debugsessions/README.md#list) - Retrieve debug sessions for dashboard audit. Filters: project, deployment, state, mode. @@ -394,9 +450,12 @@ To read more about standalone functions, check [FUNCTIONS.md](./FUNCTIONS.md). - [`deploymentGroupsCreateDeploymentGroupToken`](docs/sdks/deploymentgroups/README.md#createdeploymentgrouptoken) - Create deployment group token - [`deploymentGroupsCreateFirstPartyDeploymentSession`](docs/sdks/deploymentgroups/README.md#createfirstpartydeploymentsession) - Create first-party deployment session - [`deploymentGroupsDeleteDeploymentGroup`](docs/sdks/deploymentgroups/README.md#deletedeploymentgroup) - Delete deployment group +- [`deploymentGroupsEnsureDeploymentGroupByExternalId`](docs/sdks/deploymentgroups/README.md#ensuredeploymentgroupbyexternalid) - Get or create a deployment group by project and external ID - [`deploymentGroupsEnsureDeploymentGroupByName`](docs/sdks/deploymentgroups/README.md#ensuredeploymentgroupbyname) - Get or create a deployment group by project and name - [`deploymentGroupsGetDeploymentGroup`](docs/sdks/deploymentgroups/README.md#getdeploymentgroup) - Get deployment group details +- [`deploymentGroupsGetDeploymentGroupByExternalId`](docs/sdks/deploymentgroups/README.md#getdeploymentgroupbyexternalid) - Get a deployment group by project and external ID - [`deploymentGroupsListDeploymentGroups`](docs/sdks/deploymentgroups/README.md#listdeploymentgroups) - List deployment groups +- [`deploymentGroupsSetDeploymentGroupExternalId`](docs/sdks/deploymentgroups/README.md#setdeploymentgroupexternalid) - Set or clear a deployment group's external ID - [`deploymentGroupsUpdateDeploymentGroup`](docs/sdks/deploymentgroups/README.md#updatedeploymentgroup) - Update deployment group - [`deploymentPlanCompute`](docs/sdks/deployment/README.md#plancompute) - Plan deployment compute for the active release before stack preparation. The response contains recommended machine and scale choices for cloud compute pools. - [`deploymentPrepareStack`](docs/sdks/deployment/README.md#preparestack) - Prepare the active release stack for a deployment portal setup session. The response contains the generated stack shape plus setup compatibility metadata. @@ -417,6 +476,7 @@ To read more about standalone functions, check [FUNCTIONS.md](./FUNCTIONS.md). - [`deploymentsRedeploy`](docs/sdks/deployments/README.md#redeploy) - Redeploy a running deployment with the same release and fresh environment variables. Sets status to update-pending. - [`deploymentsRetry`](docs/sdks/deployments/README.md#retry) - Retry a failed deployment operation. Uses alien-infra's retry mechanisms to resume from exact failure point. - [`deploymentsSetFirstPartyDeploymentInputs`](docs/sdks/deployments/README.md#setfirstpartydeploymentinputs) - Store operator-provided input values on a first-party deployment session token so CLI/local deploys apply them. +- [`deploymentsSetReleaseChannel`](docs/sdks/deployments/README.md#setreleasechannel) - [`deploymentsUpdateEnvironmentVariables`](docs/sdks/deployments/README.md#updateenvironmentvariables) - Update a deployment's environment variables. If the deployment is running and not locked, the status will be changed to update-pending to trigger a deployment. - [`deploymentsUpdateInputs`](docs/sdks/deployments/README.md#updateinputs) - Update runtime stack inputs, rebuild their environment-variable mappings, and request a deployment update when runtime configuration changes. - [`domainsCreate`](docs/sdks/domains/README.md#create) - Create a workspace domain and optional initial endpoints. @@ -427,6 +487,9 @@ To read more about standalone functions, check [FUNCTIONS.md](./FUNCTIONS.md). - [`domainsRefresh`](docs/sdks/domains/README.md#refresh) - Refresh workspace domain verification. - [`eventsGet`](docs/sdks/events/README.md#get) - Retrieve an event by ID. - [`eventsList`](docs/sdks/events/README.md#list) - Retrieve all events. +- [`getWorkspaceInvitationPreview`](docs/sdks/alien/README.md#getworkspaceinvitationpreview) +- [`getWorkspaceInviteLink`](docs/sdks/alien/README.md#getworkspaceinvitelink) +- [`listWorkspaceInvitations`](docs/sdks/alien/README.md#listworkspaceinvitations) - [`machinesCancelMachineDrain`](docs/sdks/machines/README.md#cancelmachinedrain) - [`machinesCreateJoinToken`](docs/sdks/machines/README.md#createjointoken) - [`machinesDrainMachine`](docs/sdks/machines/README.md#drainmachine) @@ -438,6 +501,7 @@ To read more about standalone functions, check [FUNCTIONS.md](./FUNCTIONS.md). - [`managersCancelSetup`](docs/sdks/managers/README.md#cancelsetup) - Cancel pending private-manager setup, revoke setup/runtime tokens, and remove the undeployed manager record. - [`managersCreate`](docs/sdks/managers/README.md#create) - Create a new manager. - [`managersDelete`](docs/sdks/managers/README.md#delete) - Delete a manager by ID. +- [`managersGenerateManagerBindingToken`](docs/sdks/managers/README.md#generatemanagerbindingtoken) - Generate a short-lived deployment-scoped token for resolving opted-in remote bindings through the currently assigned manager. - [`managersGenerateManagerToken`](docs/sdks/managers/README.md#generatemanagertoken) - Generate a short-lived JWT for direct browser → manager communication. Used for fetching command payloads and querying logs without routing sensitive data through the platform API. - [`managersGet`](docs/sdks/managers/README.md#get) - Retrieve a manager by ID. - [`managersGetDeployment`](docs/sdks/managers/README.md#getdeployment) - Get deployment details for a private manager (internal deployment platform, status, resources). @@ -462,7 +526,7 @@ To read more about standalone functions, check [FUNCTIONS.md](./FUNCTIONS.md). - [`projectsCreateFromTemplate`](docs/sdks/projects/README.md#createfromtemplate) - Create a project by forking alienplatform/alien into your namespace, then configuring GitHub Actions. - [`projectsDelete`](docs/sdks/projects/README.md#delete) - Delete a project. The project must have no deployments. - [`projectsGet`](docs/sdks/projects/README.md#get) - Retrieve a project by ID or name. -- [`projectsGetActiveRelease`](docs/sdks/projects/README.md#getactiverelease) - Get the active release for this project. Returns the latest release, or the pinned release if deploymentId is provided and that deployment has a pinned release. +- [`projectsGetActiveRelease`](docs/sdks/projects/README.md#getactiverelease) - Get the production channel's current release. When deploymentId is provided, returns that deployment's effective release: its pin, or its followed channel's current release. - [`projectsGetDeploymentLinkSetup`](docs/sdks/projects/README.md#getdeploymentlinksetup) - Get the active release stack and portal-visible setup availability for deployment-link configuration. - [`projectsGetDeploymentPortalDomain`](docs/sdks/projects/README.md#getdeploymentportaldomain) - Get the deployment portal domain binding for a project. - [`projectsGetGcpOAuthProvider`](docs/sdks/projects/README.md#getgcpoauthprovider) - Retrieve redacted project-level Google Cloud OAuth provider settings. @@ -470,21 +534,35 @@ To read more about standalone functions, check [FUNCTIONS.md](./FUNCTIONS.md). - [`projectsList`](docs/sdks/projects/README.md#list) - Retrieve all projects. - [`projectsUpdate`](docs/sdks/projects/README.md#update) - Update a project. - [`projectsUpdateGcpOAuthProvider`](docs/sdks/projects/README.md#updategcpoauthprovider) - Update project-level Google Cloud OAuth provider settings. +- [`releaseChannelsCreate`](docs/sdks/releasechannels/README.md#create) +- [`releaseChannelsDelete`](docs/sdks/releasechannels/README.md#delete) +- [`releaseChannelsList`](docs/sdks/releasechannels/README.md#list) - [`releasesCreate`](docs/sdks/releases/README.md#create) - Create a new release. - [`releasesGet`](docs/sdks/releases/README.md#get) - Retrieve a release by ID. - [`releasesList`](docs/sdks/releases/README.md#list) - Retrieve all releases. - [`releasesListAuthors`](docs/sdks/releases/README.md#listauthors) - List distinct commit authors across releases. Used for filter dropdowns. - [`releasesListBranches`](docs/sdks/releases/README.md#listbranches) - List distinct git branches across releases. Used for filter dropdowns. +- [`releasesListDeployments`](docs/sdks/releases/README.md#listdeployments) - List the project's deployments with their rollout state relative to this release. +- [`releasesPromote`](docs/sdks/releases/README.md#promote) +- [`resendWorkspaceInvitation`](docs/sdks/alien/README.md#resendworkspaceinvitation) - [`resolveResolve`](docs/sdks/resolve/README.md#resolve) - Resolve manager for a project and platform - [`resourcesGetDeploymentDetail`](docs/sdks/resources/README.md#getdeploymentdetail) - [`resourcesListDeployments`](docs/sdks/resources/README.md#listdeployments) - [`resourcesListInventory`](docs/sdks/resources/README.md#listinventory) - [`resourcesListOverview`](docs/sdks/resources/README.md#listoverview) +- [`revokeWorkspaceInvitation`](docs/sdks/alien/README.md#revokeworkspaceinvitation) +- [`revokeWorkspaceInviteLink`](docs/sdks/alien/README.md#revokeworkspaceinvitelink) +- [`slackIntegrationInstallUrl`](docs/sdks/slackintegration/README.md#installurl) - Generate the Slack OAuth consent URL for this workspace. +- [`slackIntegrationListChannels`](docs/sdks/slackintegration/README.md#listchannels) - List public Slack channels for this workspace's install. Used by the dashboard's notification-channel picker. +- [`slackIntegrationSetNotificationChannel`](docs/sdks/slackintegration/README.md#setnotificationchannel) - Configure which Slack channel receives ai-agent monitor reports. +- [`slackIntegrationStatus`](docs/sdks/slackintegration/README.md#status) - Return the Slack install for this workspace (if any). +- [`slackIntegrationUninstall`](docs/sdks/slackintegration/README.md#uninstall) - Uninstall the Slack integration for this workspace. Revokes the bot token at Slack and deletes the row. - [`syncAcquire`](docs/sdks/sync/README.md#acquire) - Acquire a batch of deployments for processing. Used by Manager to atomically lock deployments matching filters. Each deployment in the batch must be released after processing. - [`syncContext`](docs/sdks/sync/README.md#context) - Get computed deployment state and configuration for a manager-side operation without acquiring the deployment reconciliation lock. - [`syncList`](docs/sdks/sync/README.md#list) - List full deployment records for manager operational loops. This endpoint is intentionally separate from the public deployments list, which returns lightweight UI rows. - [`syncReconcile`](docs/sdks/sync/README.md#reconcile) - Reconcile deployment state. Push model requests that include a session verify lock ownership. Pull model state reports are accepted as authz-gated agent progress even when they carry an agent-sync session. Accepts full DeploymentState after step() execution. - [`syncRelease`](docs/sdks/sync/README.md#release) - Release a deployment lock. Must be called after processing an acquired deployment, even if processing failed. This is critical to avoid deadlocks. +- [`syncRenew`](docs/sdks/sync/README.md#renew) - [`userCompleteProfileSetup`](docs/sdks/user/README.md#completeprofilesetup) - Complete the required beta intake and profile setup dialog. - [`userCreateWorkspace`](docs/sdks/user/README.md#createworkspace) - Create a new workspace. The current user will be automatically added as an admin. - [`userGetProfile`](docs/sdks/user/README.md#getprofile) - Get the current user's profile and user-scoped onboarding state. @@ -497,11 +575,13 @@ To read more about standalone functions, check [FUNCTIONS.md](./FUNCTIONS.md). - [`workspacesDelete`](docs/sdks/workspaces/README.md#delete) - Delete a workspace. The workspace must have no projects. - [`workspacesDismissOnboarding`](docs/sdks/workspaces/README.md#dismissonboarding) - Mark the Getting Started walkthrough as dismissed for a workspace. The dashboard stops auto-promoting onboarding once this is set; users can still re-enter the walkthrough via the help menu. - [`workspacesGet`](docs/sdks/workspaces/README.md#get) - Retrieve a workspace by ID. +- [`workspacesGetSettings`](docs/sdks/workspaces/README.md#getsettings) - Read the ai-agent settings for a workspace. Returns defaults (`enabled: true`, `debugPermissionMode: auto`) when the workspace has never customized them. - [`workspacesList`](docs/sdks/workspaces/README.md#list) - Retrieve all workspaces. - [`workspacesListMembers`](docs/sdks/workspaces/README.md#listmembers) - List all members of a workspace. - [`workspacesRemoveMember`](docs/sdks/workspaces/README.md#removemember) - Remove a member from a workspace. - [`workspacesUpdate`](docs/sdks/workspaces/README.md#update) - Update a workspace. - [`workspacesUpdateMember`](docs/sdks/workspaces/README.md#updatemember) - Update a workspace member's role. +- [`workspacesUpdateSettings`](docs/sdks/workspaces/README.md#updatesettings) - Update the ai-agent settings for a workspace. Supports `debugPermissionMode` (`ask` requires human approval on every ai-agent debug command, `auto` runs them without asking) and `enabled` (`false` turns the ai-agent off so incoming triggers are rejected before any session runs). @@ -520,7 +600,9 @@ const alien = new Alien({ }); async function run() { - const result = await alien.user.listMemberships({ + const result = await alien.getWorkspaceInvitationPreview({ + token: "", + }, { retries: { strategy: "backoff", backoff: { @@ -559,7 +641,9 @@ const alien = new Alien({ }); async function run() { - const result = await alien.user.listMemberships(); + const result = await alien.getWorkspaceInvitationPreview({ + token: "", + }); console.log(result); } @@ -594,7 +678,9 @@ const alien = new Alien({ async function run() { try { - const result = await alien.user.listMemberships(); + const result = await alien.getWorkspaceInvitationPreview({ + token: "", + }); console.log(result); } catch (error) { @@ -661,7 +747,9 @@ const alien = new Alien({ }); async function run() { - const result = await alien.user.listMemberships(); + const result = await alien.getWorkspaceInvitationPreview({ + token: "", + }); console.log(result); } diff --git a/client-sdks/platform/typescript/USAGE.md b/client-sdks/platform/typescript/USAGE.md index 662dae6d1..1ca445383 100644 --- a/client-sdks/platform/typescript/USAGE.md +++ b/client-sdks/platform/typescript/USAGE.md @@ -7,7 +7,9 @@ const alien = new Alien({ }); async function run() { - const result = await alien.user.listMemberships(); + const result = await alien.getWorkspaceInvitationPreview({ + token: "", + }); console.log(result); } diff --git a/client-sdks/platform/typescript/docs/models/acceptworkspaceinvitationresponse.md b/client-sdks/platform/typescript/docs/models/acceptworkspaceinvitationresponse.md new file mode 100644 index 000000000..bb8313c24 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/acceptworkspaceinvitationresponse.md @@ -0,0 +1,23 @@ +# AcceptWorkspaceInvitationResponse + +## Example Usage + +```typescript +import { AcceptWorkspaceInvitationResponse } from "@alienplatform/platform-api/models"; + +let value: AcceptWorkspaceInvitationResponse = { + outcome: "joined", + workspaceId: "ws_It13CUaGEhLLAB87simX0", + workspaceName: "", + role: "workspace.member", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `outcome` | [models.Outcome](../models/outcome.md) | :heavy_check_mark: | N/A | | +| `workspaceId` | *string* | :heavy_check_mark: | Unique identifier for the workspace. | ws_It13CUaGEhLLAB87simX0 | +| `workspaceName` | *string* | :heavy_check_mark: | N/A | | +| `role` | [models.WorkspaceRole](../models/workspacerole.md) | :heavy_check_mark: | Role for workspace-scoped service accounts | workspace.member | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/accesstest1.md b/client-sdks/platform/typescript/docs/models/accesstest1.md new file mode 100644 index 000000000..70620aff9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/accesstest1.md @@ -0,0 +1,15 @@ +# AccessTest1 + +## Example Usage + +```typescript +import { AccessTest1 } from "@alienplatform/platform-api/models"; + +let value: AccessTest1 = "failed"; +``` + +## Values + +```typescript +"verified" | "failed" | "not-checked" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/accesstest2.md b/client-sdks/platform/typescript/docs/models/accesstest2.md new file mode 100644 index 000000000..e6a691278 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/accesstest2.md @@ -0,0 +1,15 @@ +# AccessTest2 + +## Example Usage + +```typescript +import { AccessTest2 } from "@alienplatform/platform-api/models"; + +let value: AccessTest2 = "not-checked"; +``` + +## Values + +```typescript +"verified" | "failed" | "not-checked" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/accesstest3.md b/client-sdks/platform/typescript/docs/models/accesstest3.md new file mode 100644 index 000000000..50b264112 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/accesstest3.md @@ -0,0 +1,15 @@ +# AccessTest3 + +## Example Usage + +```typescript +import { AccessTest3 } from "@alienplatform/platform-api/models"; + +let value: AccessTest3 = "verified"; +``` + +## Values + +```typescript +"verified" | "failed" | "not-checked" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/accesstest4.md b/client-sdks/platform/typescript/docs/models/accesstest4.md new file mode 100644 index 000000000..2b170016a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/accesstest4.md @@ -0,0 +1,15 @@ +# AccessTest4 + +## Example Usage + +```typescript +import { AccessTest4 } from "@alienplatform/platform-api/models"; + +let value: AccessTest4 = "failed"; +``` + +## Values + +```typescript +"verified" | "failed" | "not-checked" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/activerelease.md b/client-sdks/platform/typescript/docs/models/activerelease.md index 0c79a99c4..4fb3c8170 100644 --- a/client-sdks/platform/typescript/docs/models/activerelease.md +++ b/client-sdks/platform/typescript/docs/models/activerelease.md @@ -14,8 +14,8 @@ let value: ActiveRelease = { ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | -| `id` | *string* | :heavy_check_mark: | Unique identifier for the release. | rel_WbhQgksrawSKIpEN0NAssHX9 | -| `version` | *string* | :heavy_check_mark: | N/A | | -| `stack` | [models.StackByPlatform](../models/stackbyplatform.md) | :heavy_check_mark: | N/A | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the release. | rel_WbhQgksrawSKIpEN0NAssHX9 | +| `version` | *string* | :heavy_check_mark: | N/A | | +| `stack` | [models.DeploymentLinkSetupResponseStack](../models/deploymentlinksetupresponsestack.md) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/actor1.md b/client-sdks/platform/typescript/docs/models/actor1.md deleted file mode 100644 index 0e9771380..000000000 --- a/client-sdks/platform/typescript/docs/models/actor1.md +++ /dev/null @@ -1,22 +0,0 @@ -# Actor1 - -Authenticated principal that requested a deployment intent event. - -## Example Usage - -```typescript -import { Actor1 } from "@alienplatform/platform-api/models"; - -let value: Actor1 = { - id: "", - kind: "user", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -| `email` | *string* | :heavy_minus_sign: | User email when the principal is a user. | -| `id` | *string* | :heavy_check_mark: | Stable user or service-account identifier. | -| `kind` | [models.EventKind1](../models/eventkind1.md) | :heavy_check_mark: | Type of authenticated principal that requested an event. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/actor2.md b/client-sdks/platform/typescript/docs/models/actor2.md deleted file mode 100644 index f91675ae8..000000000 --- a/client-sdks/platform/typescript/docs/models/actor2.md +++ /dev/null @@ -1,22 +0,0 @@ -# Actor2 - -Authenticated principal that requested a deployment intent event. - -## Example Usage - -```typescript -import { Actor2 } from "@alienplatform/platform-api/models"; - -let value: Actor2 = { - id: "", - kind: "serviceAccount", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -| `email` | *string* | :heavy_minus_sign: | User email when the principal is a user. | -| `id` | *string* | :heavy_check_mark: | Stable user or service-account identifier. | -| `kind` | [models.EventKind2](../models/eventkind2.md) | :heavy_check_mark: | Type of authenticated principal that requested an event. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/actorunion1.md b/client-sdks/platform/typescript/docs/models/actorunion1.md deleted file mode 100644 index 829f8a3b0..000000000 --- a/client-sdks/platform/typescript/docs/models/actorunion1.md +++ /dev/null @@ -1,19 +0,0 @@ -# ActorUnion1 - - -## Supported Types - -### `models.Actor1` - -```typescript -const value: models.Actor1 = { - id: "", - kind: "user", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` diff --git a/client-sdks/platform/typescript/docs/models/actorunion2.md b/client-sdks/platform/typescript/docs/models/actorunion2.md deleted file mode 100644 index 99f7f3e89..000000000 --- a/client-sdks/platform/typescript/docs/models/actorunion2.md +++ /dev/null @@ -1,19 +0,0 @@ -# ActorUnion2 - - -## Supported Types - -### `models.Actor2` - -```typescript -const value: models.Actor2 = { - id: "", - kind: "serviceAccount", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` diff --git a/client-sdks/platform/typescript/docs/models/agentsessionapprovalgrantedevent.md b/client-sdks/platform/typescript/docs/models/agentsessionapprovalgrantedevent.md new file mode 100644 index 000000000..6d70e005a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessionapprovalgrantedevent.md @@ -0,0 +1,28 @@ +# AgentSessionApprovalGrantedEvent + +## Example Usage + +```typescript +import { AgentSessionApprovalGrantedEvent } from "@alienplatform/platform-api/models"; + +let value: AgentSessionApprovalGrantedEvent = { + seq: 2155.04, + createdAt: "1722031798553", + type: "approval_granted", + payload: { + approvalId: "", + approvedByUserId: "", + approvedByName: "", + source: "dashboard", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | +| `seq` | *number* | :heavy_check_mark: | N/A | +| `createdAt` | *string* | :heavy_check_mark: | N/A | +| `type` | *"approval_granted"* | :heavy_check_mark: | N/A | +| `payload` | [models.AgentSessionApprovalGrantedEventPayload](../models/agentsessionapprovalgrantedeventpayload.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessionapprovalgrantedeventpayload.md b/client-sdks/platform/typescript/docs/models/agentsessionapprovalgrantedeventpayload.md new file mode 100644 index 000000000..c41485f05 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessionapprovalgrantedeventpayload.md @@ -0,0 +1,23 @@ +# AgentSessionApprovalGrantedEventPayload + +## Example Usage + +```typescript +import { AgentSessionApprovalGrantedEventPayload } from "@alienplatform/platform-api/models"; + +let value: AgentSessionApprovalGrantedEventPayload = { + approvalId: "", + approvedByUserId: "", + approvedByName: "", + source: "dashboard", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| `approvalId` | *string* | :heavy_check_mark: | N/A | +| `approvedByUserId` | *string* | :heavy_check_mark: | N/A | +| `approvedByName` | *string* | :heavy_check_mark: | N/A | +| `source` | [models.AgentSessionApprovalGrantedEventSource](../models/agentsessionapprovalgrantedeventsource.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessionapprovalgrantedeventsource.md b/client-sdks/platform/typescript/docs/models/agentsessionapprovalgrantedeventsource.md new file mode 100644 index 000000000..e0193e2ec --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessionapprovalgrantedeventsource.md @@ -0,0 +1,15 @@ +# AgentSessionApprovalGrantedEventSource + +## Example Usage + +```typescript +import { AgentSessionApprovalGrantedEventSource } from "@alienplatform/platform-api/models"; + +let value: AgentSessionApprovalGrantedEventSource = "slack"; +``` + +## Values + +```typescript +"dashboard" | "slack" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessionapprovalrequestedevent.md b/client-sdks/platform/typescript/docs/models/agentsessionapprovalrequestedevent.md new file mode 100644 index 000000000..dd49cd7c4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessionapprovalrequestedevent.md @@ -0,0 +1,27 @@ +# AgentSessionApprovalRequestedEvent + +## Example Usage + +```typescript +import { AgentSessionApprovalRequestedEvent } from "@alienplatform/platform-api/models"; + +let value: AgentSessionApprovalRequestedEvent = { + seq: 8489.57, + createdAt: "1727488365811", + type: "approval_requested", + payload: { + approvalId: "", + toolCallId: "", + toolName: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | +| `seq` | *number* | :heavy_check_mark: | N/A | +| `createdAt` | *string* | :heavy_check_mark: | N/A | +| `type` | *"approval_requested"* | :heavy_check_mark: | N/A | +| `payload` | [models.AgentSessionApprovalRequestedEventPayload](../models/agentsessionapprovalrequestedeventpayload.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessionapprovalrequestedeventpayload.md b/client-sdks/platform/typescript/docs/models/agentsessionapprovalrequestedeventpayload.md new file mode 100644 index 000000000..aba8134df --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessionapprovalrequestedeventpayload.md @@ -0,0 +1,22 @@ +# AgentSessionApprovalRequestedEventPayload + +## Example Usage + +```typescript +import { AgentSessionApprovalRequestedEventPayload } from "@alienplatform/platform-api/models"; + +let value: AgentSessionApprovalRequestedEventPayload = { + approvalId: "", + toolCallId: "", + toolName: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `approvalId` | *string* | :heavy_check_mark: | N/A | +| `toolCallId` | *string* | :heavy_check_mark: | N/A | +| `toolName` | *string* | :heavy_check_mark: | N/A | +| `input` | *any* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessionapproveresponse.md b/client-sdks/platform/typescript/docs/models/agentsessionapproveresponse.md new file mode 100644 index 000000000..0ceb3fe6f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessionapproveresponse.md @@ -0,0 +1,21 @@ +# AgentSessionApproveResponse + +## Example Usage + +```typescript +import { AgentSessionApproveResponse } from "@alienplatform/platform-api/models"; + +let value: AgentSessionApproveResponse = { + jobId: "", + status: "", + resumed: true, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `jobId` | *string* | :heavy_check_mark: | N/A | +| `status` | *string* | :heavy_check_mark: | N/A | +| `resumed` | *boolean* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessiondetail.md b/client-sdks/platform/typescript/docs/models/agentsessiondetail.md new file mode 100644 index 000000000..1ab130c56 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessiondetail.md @@ -0,0 +1,54 @@ +# AgentSessionDetail + +## Example Usage + +```typescript +import { AgentSessionDetail } from "@alienplatform/platform-api/models"; + +let value: AgentSessionDetail = { + id: "", + triggerType: "", + subjectId: "", + subject: { + deploymentName: "", + deploymentGroupId: null, + deploymentGroupName: "", + releaseId: "", + releaseCommitMessage: "", + releaseCommitRef: "", + projectId: "", + projectName: "", + }, + status: "", + createdAt: "1708547203760", + updatedAt: "1735665644852", + resultText: "", + toolNames: [ + "", + "", + "", + ], + error: null, + pendingApproval: { + approvalId: "", + toolCallId: "", + toolName: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | N/A | +| `triggerType` | *string* | :heavy_check_mark: | N/A | +| `subjectId` | *string* | :heavy_check_mark: | N/A | +| `subject` | [models.AgentSessionSubject](../models/agentsessionsubject.md) | :heavy_check_mark: | N/A | +| `status` | *string* | :heavy_check_mark: | N/A | +| `createdAt` | *string* | :heavy_check_mark: | N/A | +| `updatedAt` | *string* | :heavy_check_mark: | N/A | +| `resultText` | *string* | :heavy_check_mark: | N/A | +| `toolNames` | *string*[] | :heavy_check_mark: | N/A | +| `error` | *string* | :heavy_check_mark: | N/A | +| `pendingApproval` | [models.PendingApproval](../models/pendingapproval.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessionevent.md b/client-sdks/platform/typescript/docs/models/agentsessionevent.md new file mode 100644 index 000000000..1adbc5ba6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessionevent.md @@ -0,0 +1,131 @@ +# AgentSessionEvent + + +## Supported Types + +### `models.AgentSessionStatusEvent` + +```typescript +const value: models.AgentSessionStatusEvent = { + seq: 4210.33, + createdAt: "1710340330705", + type: "status", + payload: { + status: "", + }, +}; +``` + +### `models.AgentSessionStepEvent` + +```typescript +const value: models.AgentSessionStepEvent = { + seq: 1186.78, + createdAt: "1731419010075", + type: "step", + payload: { + stepId: "", + title: "", + status: "in_progress", + }, +}; +``` + +### `models.AgentSessionToolCallEvent` + +```typescript +const value: models.AgentSessionToolCallEvent = { + seq: 400.77, + createdAt: "1718464824179", + type: "tool_call", + payload: { + toolCallId: "", + toolName: "", + }, +}; +``` + +### `models.AgentSessionToolResultEvent` + +```typescript +const value: models.AgentSessionToolResultEvent = { + seq: 4758.06, + createdAt: "1735429468512", + type: "tool_result", + payload: { + toolCallId: "", + toolName: "", + ok: true, + }, +}; +``` + +### `models.AgentSessionMarkdownEvent` + +```typescript +const value: models.AgentSessionMarkdownEvent = { + seq: 4742.82, + createdAt: "1714119157487", + type: "markdown", + payload: { + text: "", + }, +}; +``` + +### `models.AgentSessionApprovalRequestedEvent` + +```typescript +const value: models.AgentSessionApprovalRequestedEvent = { + seq: 8489.57, + createdAt: "1727488365811", + type: "approval_requested", + payload: { + approvalId: "", + toolCallId: "", + toolName: "", + }, +}; +``` + +### `models.AgentSessionApprovalGrantedEvent` + +```typescript +const value: models.AgentSessionApprovalGrantedEvent = { + seq: 2155.04, + createdAt: "1722031798553", + type: "approval_granted", + payload: { + approvalId: "", + approvedByUserId: "", + approvedByName: "", + source: "dashboard", + }, +}; +``` + +### `models.AgentSessionRestartedEvent` + +```typescript +const value: models.AgentSessionRestartedEvent = { + seq: 9503.12, + createdAt: "1734099609945", + type: "session_restarted", + payload: { + reason: "", + }, +}; +``` + +### `models.AgentSessionEventsTruncatedEvent` + +```typescript +const value: models.AgentSessionEventsTruncatedEvent = { + seq: 1033.37, + createdAt: "1730528196150", + type: "events_truncated", + payload: { + limit: 5615.57, + }, +}; +``` diff --git a/client-sdks/platform/typescript/docs/models/agentsessioneventsresponse.md b/client-sdks/platform/typescript/docs/models/agentsessioneventsresponse.md new file mode 100644 index 000000000..8caafcfbc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessioneventsresponse.md @@ -0,0 +1,21 @@ +# AgentSessionEventsResponse + +## Example Usage + +```typescript +import { AgentSessionEventsResponse } from "@alienplatform/platform-api/models"; + +let value: AgentSessionEventsResponse = { + events: [], + latestSeq: 8653.24, + hasMore: false, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------- | ---------------------------- | ---------------------------- | ---------------------------- | +| `events` | *models.AgentSessionEvent*[] | :heavy_check_mark: | N/A | +| `latestSeq` | *number* | :heavy_check_mark: | N/A | +| `hasMore` | *boolean* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessioneventstruncatedevent.md b/client-sdks/platform/typescript/docs/models/agentsessioneventstruncatedevent.md new file mode 100644 index 000000000..94ed9cb7f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessioneventstruncatedevent.md @@ -0,0 +1,25 @@ +# AgentSessionEventsTruncatedEvent + +## Example Usage + +```typescript +import { AgentSessionEventsTruncatedEvent } from "@alienplatform/platform-api/models"; + +let value: AgentSessionEventsTruncatedEvent = { + seq: 1033.37, + createdAt: "1730528196150", + type: "events_truncated", + payload: { + limit: 5615.57, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | +| `seq` | *number* | :heavy_check_mark: | N/A | +| `createdAt` | *string* | :heavy_check_mark: | N/A | +| `type` | *"events_truncated"* | :heavy_check_mark: | N/A | +| `payload` | [models.AgentSessionEventsTruncatedEventPayload](../models/agentsessioneventstruncatedeventpayload.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessioneventstruncatedeventpayload.md b/client-sdks/platform/typescript/docs/models/agentsessioneventstruncatedeventpayload.md new file mode 100644 index 000000000..be3f07ef5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessioneventstruncatedeventpayload.md @@ -0,0 +1,17 @@ +# AgentSessionEventsTruncatedEventPayload + +## Example Usage + +```typescript +import { AgentSessionEventsTruncatedEventPayload } from "@alienplatform/platform-api/models"; + +let value: AgentSessionEventsTruncatedEventPayload = { + limit: 4890.46, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `limit` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessionlistitem.md b/client-sdks/platform/typescript/docs/models/agentsessionlistitem.md new file mode 100644 index 000000000..ff3feee8e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessionlistitem.md @@ -0,0 +1,38 @@ +# AgentSessionListItem + +## Example Usage + +```typescript +import { AgentSessionListItem } from "@alienplatform/platform-api/models"; + +let value: AgentSessionListItem = { + id: "", + triggerType: "", + subjectId: "", + subject: { + deploymentName: "", + deploymentGroupId: null, + deploymentGroupName: "", + releaseId: "", + releaseCommitMessage: "", + releaseCommitRef: "", + projectId: "", + projectName: "", + }, + status: "", + createdAt: "1709761239116", + updatedAt: "1735623031963", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | N/A | +| `triggerType` | *string* | :heavy_check_mark: | N/A | +| `subjectId` | *string* | :heavy_check_mark: | N/A | +| `subject` | [models.AgentSessionSubject](../models/agentsessionsubject.md) | :heavy_check_mark: | N/A | +| `status` | *string* | :heavy_check_mark: | N/A | +| `createdAt` | *string* | :heavy_check_mark: | N/A | +| `updatedAt` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessionlistresponse.md b/client-sdks/platform/typescript/docs/models/agentsessionlistresponse.md new file mode 100644 index 000000000..ea98e76c3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessionlistresponse.md @@ -0,0 +1,36 @@ +# AgentSessionListResponse + +## Example Usage + +```typescript +import { AgentSessionListResponse } from "@alienplatform/platform-api/models"; + +let value: AgentSessionListResponse = { + sessions: [ + { + id: "", + triggerType: "", + subjectId: "", + subject: { + deploymentName: "", + deploymentGroupId: null, + deploymentGroupName: "", + releaseId: "", + releaseCommitMessage: "", + releaseCommitRef: "", + projectId: "", + projectName: "", + }, + status: "", + createdAt: "1711341083645", + updatedAt: "1735641395451", + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `sessions` | [models.AgentSessionListItem](../models/agentsessionlistitem.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessionmarkdownevent.md b/client-sdks/platform/typescript/docs/models/agentsessionmarkdownevent.md new file mode 100644 index 000000000..2d7ce604c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessionmarkdownevent.md @@ -0,0 +1,25 @@ +# AgentSessionMarkdownEvent + +## Example Usage + +```typescript +import { AgentSessionMarkdownEvent } from "@alienplatform/platform-api/models"; + +let value: AgentSessionMarkdownEvent = { + seq: 4742.82, + createdAt: "1714119157487", + type: "markdown", + payload: { + text: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `seq` | *number* | :heavy_check_mark: | N/A | +| `createdAt` | *string* | :heavy_check_mark: | N/A | +| `type` | *"markdown"* | :heavy_check_mark: | N/A | +| `payload` | [models.AgentSessionMarkdownEventPayload](../models/agentsessionmarkdowneventpayload.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessionmarkdowneventpayload.md b/client-sdks/platform/typescript/docs/models/agentsessionmarkdowneventpayload.md new file mode 100644 index 000000000..a4207a7f6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessionmarkdowneventpayload.md @@ -0,0 +1,17 @@ +# AgentSessionMarkdownEventPayload + +## Example Usage + +```typescript +import { AgentSessionMarkdownEventPayload } from "@alienplatform/platform-api/models"; + +let value: AgentSessionMarkdownEventPayload = { + text: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `text` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessionrestartedevent.md b/client-sdks/platform/typescript/docs/models/agentsessionrestartedevent.md new file mode 100644 index 000000000..387820f48 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessionrestartedevent.md @@ -0,0 +1,25 @@ +# AgentSessionRestartedEvent + +## Example Usage + +```typescript +import { AgentSessionRestartedEvent } from "@alienplatform/platform-api/models"; + +let value: AgentSessionRestartedEvent = { + seq: 9503.12, + createdAt: "1734099609945", + type: "session_restarted", + payload: { + reason: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | +| `seq` | *number* | :heavy_check_mark: | N/A | +| `createdAt` | *string* | :heavy_check_mark: | N/A | +| `type` | *"session_restarted"* | :heavy_check_mark: | N/A | +| `payload` | [models.AgentSessionRestartedEventPayload](../models/agentsessionrestartedeventpayload.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessionrestartedeventpayload.md b/client-sdks/platform/typescript/docs/models/agentsessionrestartedeventpayload.md new file mode 100644 index 000000000..f7a257a4d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessionrestartedeventpayload.md @@ -0,0 +1,17 @@ +# AgentSessionRestartedEventPayload + +## Example Usage + +```typescript +import { AgentSessionRestartedEventPayload } from "@alienplatform/platform-api/models"; + +let value: AgentSessionRestartedEventPayload = { + reason: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `reason` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessionstatusevent.md b/client-sdks/platform/typescript/docs/models/agentsessionstatusevent.md new file mode 100644 index 000000000..b05fe9454 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessionstatusevent.md @@ -0,0 +1,25 @@ +# AgentSessionStatusEvent + +## Example Usage + +```typescript +import { AgentSessionStatusEvent } from "@alienplatform/platform-api/models"; + +let value: AgentSessionStatusEvent = { + seq: 4210.33, + createdAt: "1710340330705", + type: "status", + payload: { + status: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `seq` | *number* | :heavy_check_mark: | N/A | +| `createdAt` | *string* | :heavy_check_mark: | N/A | +| `type` | *"status"* | :heavy_check_mark: | N/A | +| `payload` | [models.AgentSessionStatusEventPayload](../models/agentsessionstatuseventpayload.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessionstatuseventpayload.md b/client-sdks/platform/typescript/docs/models/agentsessionstatuseventpayload.md new file mode 100644 index 000000000..70f8e5b7e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessionstatuseventpayload.md @@ -0,0 +1,18 @@ +# AgentSessionStatusEventPayload + +## Example Usage + +```typescript +import { AgentSessionStatusEventPayload } from "@alienplatform/platform-api/models"; + +let value: AgentSessionStatusEventPayload = { + status: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `status` | *string* | :heavy_check_mark: | N/A | +| `error` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessionstepevent.md b/client-sdks/platform/typescript/docs/models/agentsessionstepevent.md new file mode 100644 index 000000000..cae0becaa --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessionstepevent.md @@ -0,0 +1,27 @@ +# AgentSessionStepEvent + +## Example Usage + +```typescript +import { AgentSessionStepEvent } from "@alienplatform/platform-api/models"; + +let value: AgentSessionStepEvent = { + seq: 1186.78, + createdAt: "1731419010075", + type: "step", + payload: { + stepId: "", + title: "", + status: "in_progress", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| `seq` | *number* | :heavy_check_mark: | N/A | +| `createdAt` | *string* | :heavy_check_mark: | N/A | +| `type` | *"step"* | :heavy_check_mark: | N/A | +| `payload` | [models.AgentSessionStepEventPayload](../models/agentsessionstepeventpayload.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessionstepeventpayload.md b/client-sdks/platform/typescript/docs/models/agentsessionstepeventpayload.md new file mode 100644 index 000000000..f7896a579 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessionstepeventpayload.md @@ -0,0 +1,21 @@ +# AgentSessionStepEventPayload + +## Example Usage + +```typescript +import { AgentSessionStepEventPayload } from "@alienplatform/platform-api/models"; + +let value: AgentSessionStepEventPayload = { + stepId: "", + title: "", + status: "in_progress", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `stepId` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | +| `status` | [models.AgentSessionStepEventStatus](../models/agentsessionstepeventstatus.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessionstepeventstatus.md b/client-sdks/platform/typescript/docs/models/agentsessionstepeventstatus.md new file mode 100644 index 000000000..c21dc6ae3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessionstepeventstatus.md @@ -0,0 +1,15 @@ +# AgentSessionStepEventStatus + +## Example Usage + +```typescript +import { AgentSessionStepEventStatus } from "@alienplatform/platform-api/models"; + +let value: AgentSessionStepEventStatus = "in_progress"; +``` + +## Values + +```typescript +"in_progress" | "complete" | "error" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessionstopresponse.md b/client-sdks/platform/typescript/docs/models/agentsessionstopresponse.md new file mode 100644 index 000000000..4608ea91a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessionstopresponse.md @@ -0,0 +1,21 @@ +# AgentSessionStopResponse + +## Example Usage + +```typescript +import { AgentSessionStopResponse } from "@alienplatform/platform-api/models"; + +let value: AgentSessionStopResponse = { + jobId: "", + status: "", + canceled: false, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `jobId` | *string* | :heavy_check_mark: | N/A | +| `status` | *string* | :heavy_check_mark: | N/A | +| `canceled` | *boolean* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessionsubject.md b/client-sdks/platform/typescript/docs/models/agentsessionsubject.md new file mode 100644 index 000000000..8f2b81dbc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessionsubject.md @@ -0,0 +1,31 @@ +# AgentSessionSubject + +## Example Usage + +```typescript +import { AgentSessionSubject } from "@alienplatform/platform-api/models"; + +let value: AgentSessionSubject = { + deploymentName: "", + deploymentGroupId: "", + deploymentGroupName: "", + releaseId: "", + releaseCommitMessage: "", + releaseCommitRef: "", + projectId: "", + projectName: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------- | ---------------------- | ---------------------- | ---------------------- | +| `deploymentName` | *string* | :heavy_check_mark: | N/A | +| `deploymentGroupId` | *string* | :heavy_check_mark: | N/A | +| `deploymentGroupName` | *string* | :heavy_check_mark: | N/A | +| `releaseId` | *string* | :heavy_check_mark: | N/A | +| `releaseCommitMessage` | *string* | :heavy_check_mark: | N/A | +| `releaseCommitRef` | *string* | :heavy_check_mark: | N/A | +| `projectId` | *string* | :heavy_check_mark: | N/A | +| `projectName` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessiontoolcallevent.md b/client-sdks/platform/typescript/docs/models/agentsessiontoolcallevent.md new file mode 100644 index 000000000..a3a8e42dd --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessiontoolcallevent.md @@ -0,0 +1,26 @@ +# AgentSessionToolCallEvent + +## Example Usage + +```typescript +import { AgentSessionToolCallEvent } from "@alienplatform/platform-api/models"; + +let value: AgentSessionToolCallEvent = { + seq: 400.77, + createdAt: "1718464824179", + type: "tool_call", + payload: { + toolCallId: "", + toolName: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `seq` | *number* | :heavy_check_mark: | N/A | +| `createdAt` | *string* | :heavy_check_mark: | N/A | +| `type` | *"tool_call"* | :heavy_check_mark: | N/A | +| `payload` | [models.AgentSessionToolCallEventPayload](../models/agentsessiontoolcalleventpayload.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessiontoolcalleventpayload.md b/client-sdks/platform/typescript/docs/models/agentsessiontoolcalleventpayload.md new file mode 100644 index 000000000..8b705a476 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessiontoolcalleventpayload.md @@ -0,0 +1,20 @@ +# AgentSessionToolCallEventPayload + +## Example Usage + +```typescript +import { AgentSessionToolCallEventPayload } from "@alienplatform/platform-api/models"; + +let value: AgentSessionToolCallEventPayload = { + toolCallId: "", + toolName: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `toolCallId` | *string* | :heavy_check_mark: | N/A | +| `toolName` | *string* | :heavy_check_mark: | N/A | +| `input` | *any* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessiontoolresultevent.md b/client-sdks/platform/typescript/docs/models/agentsessiontoolresultevent.md new file mode 100644 index 000000000..998b07933 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessiontoolresultevent.md @@ -0,0 +1,27 @@ +# AgentSessionToolResultEvent + +## Example Usage + +```typescript +import { AgentSessionToolResultEvent } from "@alienplatform/platform-api/models"; + +let value: AgentSessionToolResultEvent = { + seq: 4758.06, + createdAt: "1735429468512", + type: "tool_result", + payload: { + toolCallId: "", + toolName: "", + ok: true, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | +| `seq` | *number* | :heavy_check_mark: | N/A | +| `createdAt` | *string* | :heavy_check_mark: | N/A | +| `type` | *"tool_result"* | :heavy_check_mark: | N/A | +| `payload` | [models.AgentSessionToolResultEventPayload](../models/agentsessiontoolresulteventpayload.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsessiontoolresulteventpayload.md b/client-sdks/platform/typescript/docs/models/agentsessiontoolresulteventpayload.md new file mode 100644 index 000000000..868b95737 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsessiontoolresulteventpayload.md @@ -0,0 +1,22 @@ +# AgentSessionToolResultEventPayload + +## Example Usage + +```typescript +import { AgentSessionToolResultEventPayload } from "@alienplatform/platform-api/models"; + +let value: AgentSessionToolResultEventPayload = { + toolCallId: "", + toolName: "", + ok: true, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `toolCallId` | *string* | :heavy_check_mark: | N/A | +| `toolName` | *string* | :heavy_check_mark: | N/A | +| `ok` | *boolean* | :heavy_check_mark: | N/A | +| `output` | *any* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsettings.md b/client-sdks/platform/typescript/docs/models/agentsettings.md new file mode 100644 index 000000000..2394f0bd1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsettings.md @@ -0,0 +1,25 @@ +# AgentSettings + +## Example Usage + +```typescript +import { AgentSettings } from "@alienplatform/platform-api/models"; + +let value: AgentSettings = { + workspaceId: "ws_It13CUaGEhLLAB87simX0", + enabled: true, + debugPermissionMode: "ask", + createdAt: new Date("2024-07-15T04:21:22.473Z"), + updatedAt: new Date("2026-10-03T19:00:11.287Z"), +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `workspaceId` | *string* | :heavy_check_mark: | Unique identifier for the workspace. | ws_It13CUaGEhLLAB87simX0 | +| `enabled` | *boolean* | :heavy_check_mark: | Workspace on/off switch for the ai-agent. When `false`, incoming triggers (release/deployment monitoring and Slack-invoked sessions) are rejected before any session runs. Defaults to `true`. | | +| `debugPermissionMode` | [models.AgentSettingsDebugPermissionMode](../models/agentsettingsdebugpermissionmode.md) | :heavy_check_mark: | Workspace-level policy for ai-agent debug commands. `auto` runs `alien_debug` tool calls without asking; `ask` halts each session before every debug command and waits for a human approval from dashboard or Slack. | | +| `createdAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | N/A | | +| `updatedAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/agentsettingsdebugpermissionmode.md b/client-sdks/platform/typescript/docs/models/agentsettingsdebugpermissionmode.md new file mode 100644 index 000000000..8837d7766 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/agentsettingsdebugpermissionmode.md @@ -0,0 +1,17 @@ +# AgentSettingsDebugPermissionMode + +Workspace-level policy for ai-agent debug commands. `auto` runs `alien_debug` tool calls without asking; `ask` halts each session before every debug command and waits for a human approval from dashboard or Slack. + +## Example Usage + +```typescript +import { AgentSettingsDebugPermissionMode } from "@alienplatform/platform-api/models"; + +let value: AgentSettingsDebugPermissionMode = "auto"; +``` + +## Values + +```typescript +"auto" | "ask" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/allocatablecpuunion.md b/client-sdks/platform/typescript/docs/models/allocatablecpuunion.md index 81d43b26f..18b809e76 100644 --- a/client-sdks/platform/typescript/docs/models/allocatablecpuunion.md +++ b/client-sdks/platform/typescript/docs/models/allocatablecpuunion.md @@ -17,4 +17,3 @@ const value: models.CpuAllocatable = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/allocatablememoryunion.md b/client-sdks/platform/typescript/docs/models/allocatablememoryunion.md index 75ae15cf9..c90fe53ec 100644 --- a/client-sdks/platform/typescript/docs/models/allocatablememoryunion.md +++ b/client-sdks/platform/typescript/docs/models/allocatablememoryunion.md @@ -17,4 +17,3 @@ const value: models.MemoryAllocatable = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/apikey.md b/client-sdks/platform/typescript/docs/models/apikey.md index e81bb271b..74f07bc60 100644 --- a/client-sdks/platform/typescript/docs/models/apikey.md +++ b/client-sdks/platform/typescript/docs/models/apikey.md @@ -26,19 +26,19 @@ let value: APIKey = { deploymentSetupConfig: { metadata: { "key": "", - "key1": "", - "key2": "", }, policy: { allowedPlatforms: [], - allowedSetupMethods: [], + allowedSetupMethods: [ + "google-oauth", + ], }, environmentVariables: [], }, createdByUser: { id: "", - email: "Rhett78@hotmail.com", - image: "https://picsum.photos/seed/PS5fO/2447/1335", + email: "Rhianna90@hotmail.com", + image: "https://picsum.photos/seed/UEmR2Mt/3119/3794", }, }; ``` diff --git a/client-sdks/platform/typescript/docs/models/apikeydeploymentsetupconfig.md b/client-sdks/platform/typescript/docs/models/apikeydeploymentsetupconfig.md index 225b98c31..0e8c086f6 100644 --- a/client-sdks/platform/typescript/docs/models/apikeydeploymentsetupconfig.md +++ b/client-sdks/platform/typescript/docs/models/apikeydeploymentsetupconfig.md @@ -11,7 +11,9 @@ let value: APIKeyDeploymentSetupConfig = { }, policy: { allowedPlatforms: [], - allowedSetupMethods: [], + allowedSetupMethods: [ + "google-oauth", + ], }, environmentVariables: [ { diff --git a/client-sdks/platform/typescript/docs/models/availability1.md b/client-sdks/platform/typescript/docs/models/availability1.md new file mode 100644 index 000000000..6c5bf2808 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/availability1.md @@ -0,0 +1,22 @@ +# Availability1 + +## Example Usage + +```typescript +import { Availability1 } from "@alienplatform/platform-api/models"; + +let value: Availability1 = { + catalogRevision: "", + models: [], + source: "azure-foundry", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `catalogRevision` | *string* | :heavy_check_mark: | N/A | +| `location` | *string* | :heavy_minus_sign: | N/A | +| `models` | [models.Model1](../models/model1.md)[] | :heavy_check_mark: | N/A | +| `source` | [models.AvailabilitySource1](../models/availabilitysource1.md) | :heavy_check_mark: | Provider control plane used to observe model availability without invoking
a model, spending customer quota, or accepting provider terms. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/availability2.md b/client-sdks/platform/typescript/docs/models/availability2.md new file mode 100644 index 000000000..22b75ebd3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/availability2.md @@ -0,0 +1,30 @@ +# Availability2 + +## Example Usage + +```typescript +import { Availability2 } from "@alienplatform/platform-api/models"; + +let value: Availability2 = { + catalogRevision: "", + models: [ + { + accessTest: "not-checked", + availability: "unknown", + blockers: [], + clientApis: [], + publicModelId: "", + }, + ], + source: "gcp-vertex", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `catalogRevision` | *string* | :heavy_check_mark: | N/A | +| `location` | *string* | :heavy_minus_sign: | N/A | +| `models` | [models.Model2](../models/model2.md)[] | :heavy_check_mark: | N/A | +| `source` | [models.AvailabilitySource2](../models/availabilitysource2.md) | :heavy_check_mark: | Provider control plane used to observe model availability without invoking
a model, spending customer quota, or accepting provider terms. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/availability3.md b/client-sdks/platform/typescript/docs/models/availability3.md new file mode 100644 index 000000000..c93923d1b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/availability3.md @@ -0,0 +1,22 @@ +# Availability3 + +## Example Usage + +```typescript +import { Availability3 } from "@alienplatform/platform-api/models"; + +let value: Availability3 = { + catalogRevision: "", + models: [], + source: "azure-foundry", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `catalogRevision` | *string* | :heavy_check_mark: | N/A | +| `location` | *string* | :heavy_minus_sign: | N/A | +| `models` | [models.Model3](../models/model3.md)[] | :heavy_check_mark: | N/A | +| `source` | [models.AvailabilitySource3](../models/availabilitysource3.md) | :heavy_check_mark: | Provider control plane used to observe model availability without invoking
a model, spending customer quota, or accepting provider terms. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/availability4.md b/client-sdks/platform/typescript/docs/models/availability4.md new file mode 100644 index 000000000..9bba3c68e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/availability4.md @@ -0,0 +1,30 @@ +# Availability4 + +## Example Usage + +```typescript +import { Availability4 } from "@alienplatform/platform-api/models"; + +let value: Availability4 = { + catalogRevision: "", + models: [ + { + accessTest: "verified", + availability: "unknown", + blockers: [], + clientApis: [], + publicModelId: "", + }, + ], + source: "azure-foundry", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `catalogRevision` | *string* | :heavy_check_mark: | N/A | +| `location` | *string* | :heavy_minus_sign: | N/A | +| `models` | [models.Model4](../models/model4.md)[] | :heavy_check_mark: | N/A | +| `source` | [models.AvailabilitySource4](../models/availabilitysource4.md) | :heavy_check_mark: | Provider control plane used to observe model availability without invoking
a model, spending customer quota, or accepting provider terms. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/availabilityenum1.md b/client-sdks/platform/typescript/docs/models/availabilityenum1.md new file mode 100644 index 000000000..013a01631 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/availabilityenum1.md @@ -0,0 +1,15 @@ +# AvailabilityEnum1 + +## Example Usage + +```typescript +import { AvailabilityEnum1 } from "@alienplatform/platform-api/models"; + +let value: AvailabilityEnum1 = "blocked"; +``` + +## Values + +```typescript +"available" | "blocked" | "unknown" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/availabilityenum2.md b/client-sdks/platform/typescript/docs/models/availabilityenum2.md new file mode 100644 index 000000000..9f6b449ff --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/availabilityenum2.md @@ -0,0 +1,15 @@ +# AvailabilityEnum2 + +## Example Usage + +```typescript +import { AvailabilityEnum2 } from "@alienplatform/platform-api/models"; + +let value: AvailabilityEnum2 = "available"; +``` + +## Values + +```typescript +"available" | "blocked" | "unknown" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/availabilityenum3.md b/client-sdks/platform/typescript/docs/models/availabilityenum3.md new file mode 100644 index 000000000..54f3f4c18 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/availabilityenum3.md @@ -0,0 +1,15 @@ +# AvailabilityEnum3 + +## Example Usage + +```typescript +import { AvailabilityEnum3 } from "@alienplatform/platform-api/models"; + +let value: AvailabilityEnum3 = "blocked"; +``` + +## Values + +```typescript +"available" | "blocked" | "unknown" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/availabilityenum4.md b/client-sdks/platform/typescript/docs/models/availabilityenum4.md new file mode 100644 index 000000000..9c21d2e2b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/availabilityenum4.md @@ -0,0 +1,15 @@ +# AvailabilityEnum4 + +## Example Usage + +```typescript +import { AvailabilityEnum4 } from "@alienplatform/platform-api/models"; + +let value: AvailabilityEnum4 = "blocked"; +``` + +## Values + +```typescript +"available" | "blocked" | "unknown" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/availabilitysource1.md b/client-sdks/platform/typescript/docs/models/availabilitysource1.md new file mode 100644 index 000000000..02fba5a03 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/availabilitysource1.md @@ -0,0 +1,18 @@ +# AvailabilitySource1 + +Provider control plane used to observe model availability without invoking +a model, spending customer quota, or accepting provider terms. + +## Example Usage + +```typescript +import { AvailabilitySource1 } from "@alienplatform/platform-api/models"; + +let value: AvailabilitySource1 = "gcp-vertex"; +``` + +## Values + +```typescript +"aws-bedrock" | "gcp-vertex" | "azure-foundry" | "anthropic" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/availabilitysource2.md b/client-sdks/platform/typescript/docs/models/availabilitysource2.md new file mode 100644 index 000000000..144cba0db --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/availabilitysource2.md @@ -0,0 +1,18 @@ +# AvailabilitySource2 + +Provider control plane used to observe model availability without invoking +a model, spending customer quota, or accepting provider terms. + +## Example Usage + +```typescript +import { AvailabilitySource2 } from "@alienplatform/platform-api/models"; + +let value: AvailabilitySource2 = "azure-foundry"; +``` + +## Values + +```typescript +"aws-bedrock" | "gcp-vertex" | "azure-foundry" | "anthropic" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/availabilitysource3.md b/client-sdks/platform/typescript/docs/models/availabilitysource3.md new file mode 100644 index 000000000..5881946ca --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/availabilitysource3.md @@ -0,0 +1,18 @@ +# AvailabilitySource3 + +Provider control plane used to observe model availability without invoking +a model, spending customer quota, or accepting provider terms. + +## Example Usage + +```typescript +import { AvailabilitySource3 } from "@alienplatform/platform-api/models"; + +let value: AvailabilitySource3 = "anthropic"; +``` + +## Values + +```typescript +"aws-bedrock" | "gcp-vertex" | "azure-foundry" | "anthropic" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/availabilitysource4.md b/client-sdks/platform/typescript/docs/models/availabilitysource4.md new file mode 100644 index 000000000..6d61ba493 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/availabilitysource4.md @@ -0,0 +1,18 @@ +# AvailabilitySource4 + +Provider control plane used to observe model availability without invoking +a model, spending customer quota, or accepting provider terms. + +## Example Usage + +```typescript +import { AvailabilitySource4 } from "@alienplatform/platform-api/models"; + +let value: AvailabilitySource4 = "gcp-vertex"; +``` + +## Values + +```typescript +"aws-bedrock" | "gcp-vertex" | "azure-foundry" | "anthropic" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/availabilityunion.md b/client-sdks/platform/typescript/docs/models/availabilityunion.md new file mode 100644 index 000000000..6445a7e30 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/availabilityunion.md @@ -0,0 +1,28 @@ +# AvailabilityUnion + + +## Supported Types + +### `models.Availability4` + +```typescript +const value: models.Availability4 = { + catalogRevision: "", + models: [ + { + accessTest: "verified", + availability: "unknown", + blockers: [], + clientApis: [], + publicModelId: "", + }, + ], + source: "azure-foundry", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/blocker1.md b/client-sdks/platform/typescript/docs/models/blocker1.md deleted file mode 100644 index 2fe0fc84f..000000000 --- a/client-sdks/platform/typescript/docs/models/blocker1.md +++ /dev/null @@ -1,25 +0,0 @@ -# Blocker1 - -## Example Usage - -```typescript -import { Blocker1 } from "@alienplatform/platform-api/models"; - -let value: Blocker1 = { - reason: "", - replicaId: "", - schedulingMode: "", - state: "Washington", - workloadName: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `reason` | *string* | :heavy_check_mark: | N/A | -| `replicaId` | *string* | :heavy_check_mark: | N/A | -| `schedulingMode` | *string* | :heavy_check_mark: | N/A | -| `state` | *string* | :heavy_check_mark: | N/A | -| `workloadName` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/blocker2.md b/client-sdks/platform/typescript/docs/models/blocker2.md deleted file mode 100644 index ff965e3a1..000000000 --- a/client-sdks/platform/typescript/docs/models/blocker2.md +++ /dev/null @@ -1,25 +0,0 @@ -# Blocker2 - -## Example Usage - -```typescript -import { Blocker2 } from "@alienplatform/platform-api/models"; - -let value: Blocker2 = { - reason: "", - replicaId: "", - schedulingMode: "", - state: "Delaware", - workloadName: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `reason` | *string* | :heavy_check_mark: | N/A | -| `replicaId` | *string* | :heavy_check_mark: | N/A | -| `schedulingMode` | *string* | :heavy_check_mark: | N/A | -| `state` | *string* | :heavy_check_mark: | N/A | -| `workloadName` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/blocker3.md b/client-sdks/platform/typescript/docs/models/blocker3.md deleted file mode 100644 index 484343a2d..000000000 --- a/client-sdks/platform/typescript/docs/models/blocker3.md +++ /dev/null @@ -1,25 +0,0 @@ -# Blocker3 - -## Example Usage - -```typescript -import { Blocker3 } from "@alienplatform/platform-api/models"; - -let value: Blocker3 = { - reason: "", - replicaId: "", - schedulingMode: "", - state: "Wisconsin", - workloadName: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `reason` | *string* | :heavy_check_mark: | N/A | -| `replicaId` | *string* | :heavy_check_mark: | N/A | -| `schedulingMode` | *string* | :heavy_check_mark: | N/A | -| `state` | *string* | :heavy_check_mark: | N/A | -| `workloadName` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/blocker4.md b/client-sdks/platform/typescript/docs/models/blocker4.md deleted file mode 100644 index 63003c959..000000000 --- a/client-sdks/platform/typescript/docs/models/blocker4.md +++ /dev/null @@ -1,25 +0,0 @@ -# Blocker4 - -## Example Usage - -```typescript -import { Blocker4 } from "@alienplatform/platform-api/models"; - -let value: Blocker4 = { - reason: "", - replicaId: "", - schedulingMode: "", - state: "South Carolina", - workloadName: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `reason` | *string* | :heavy_check_mark: | N/A | -| `replicaId` | *string* | :heavy_check_mark: | N/A | -| `schedulingMode` | *string* | :heavy_check_mark: | N/A | -| `state` | *string* | :heavy_check_mark: | N/A | -| `workloadName` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/blockerenum1.md b/client-sdks/platform/typescript/docs/models/blockerenum1.md new file mode 100644 index 000000000..6f5f49930 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/blockerenum1.md @@ -0,0 +1,15 @@ +# BlockerEnum1 + +## Example Usage + +```typescript +import { BlockerEnum1 } from "@alienplatform/platform-api/models"; + +let value: BlockerEnum1 = "region-unavailable"; +``` + +## Values + +```typescript +"agreement-required" | "entitlement-required" | "model-activation-required" | "deployment-required" | "quota-configuration-required" | "region-unavailable" | "access-denied" | "observation-failed" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/blockerenum2.md b/client-sdks/platform/typescript/docs/models/blockerenum2.md new file mode 100644 index 000000000..0224bd047 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/blockerenum2.md @@ -0,0 +1,15 @@ +# BlockerEnum2 + +## Example Usage + +```typescript +import { BlockerEnum2 } from "@alienplatform/platform-api/models"; + +let value: BlockerEnum2 = "access-denied"; +``` + +## Values + +```typescript +"agreement-required" | "entitlement-required" | "model-activation-required" | "deployment-required" | "quota-configuration-required" | "region-unavailable" | "access-denied" | "observation-failed" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/blockerenum3.md b/client-sdks/platform/typescript/docs/models/blockerenum3.md new file mode 100644 index 000000000..34116f0c6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/blockerenum3.md @@ -0,0 +1,15 @@ +# BlockerEnum3 + +## Example Usage + +```typescript +import { BlockerEnum3 } from "@alienplatform/platform-api/models"; + +let value: BlockerEnum3 = "quota-configuration-required"; +``` + +## Values + +```typescript +"agreement-required" | "entitlement-required" | "model-activation-required" | "deployment-required" | "quota-configuration-required" | "region-unavailable" | "access-denied" | "observation-failed" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/blockerenum4.md b/client-sdks/platform/typescript/docs/models/blockerenum4.md new file mode 100644 index 000000000..f1789d8c8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/blockerenum4.md @@ -0,0 +1,15 @@ +# BlockerEnum4 + +## Example Usage + +```typescript +import { BlockerEnum4 } from "@alienplatform/platform-api/models"; + +let value: BlockerEnum4 = "deployment-required"; +``` + +## Values + +```typescript +"agreement-required" | "entitlement-required" | "model-activation-required" | "deployment-required" | "quota-configuration-required" | "region-unavailable" | "access-denied" | "observation-failed" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/capacityblockerunion1.md b/client-sdks/platform/typescript/docs/models/capacityblockerunion1.md index 8f79a1a92..0743b7408 100644 --- a/client-sdks/platform/typescript/docs/models/capacityblockerunion1.md +++ b/client-sdks/platform/typescript/docs/models/capacityblockerunion1.md @@ -18,4 +18,3 @@ const value: models.CapacityBlocker1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/capacityblockerunion2.md b/client-sdks/platform/typescript/docs/models/capacityblockerunion2.md index bdc5437a2..abae6c4e0 100644 --- a/client-sdks/platform/typescript/docs/models/capacityblockerunion2.md +++ b/client-sdks/platform/typescript/docs/models/capacityblockerunion2.md @@ -18,4 +18,3 @@ const value: models.CapacityBlocker2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/capacityblockerunion3.md b/client-sdks/platform/typescript/docs/models/capacityblockerunion3.md index ff8abc1e1..7ee9fb66a 100644 --- a/client-sdks/platform/typescript/docs/models/capacityblockerunion3.md +++ b/client-sdks/platform/typescript/docs/models/capacityblockerunion3.md @@ -18,4 +18,3 @@ const value: models.CapacityBlocker3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/capacityblockerunion4.md b/client-sdks/platform/typescript/docs/models/capacityblockerunion4.md index 146f26579..6e5cd0116 100644 --- a/client-sdks/platform/typescript/docs/models/capacityblockerunion4.md +++ b/client-sdks/platform/typescript/docs/models/capacityblockerunion4.md @@ -18,4 +18,3 @@ const value: models.CapacityBlocker4 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/capacitycpuunion.md b/client-sdks/platform/typescript/docs/models/capacitycpuunion.md index 7c3c8ed0e..9ac60a795 100644 --- a/client-sdks/platform/typescript/docs/models/capacitycpuunion.md +++ b/client-sdks/platform/typescript/docs/models/capacitycpuunion.md @@ -17,4 +17,3 @@ const value: models.CpuCapacity = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/capacitymemoryunion.md b/client-sdks/platform/typescript/docs/models/capacitymemoryunion.md index a68d93446..cd7e491b4 100644 --- a/client-sdks/platform/typescript/docs/models/capacitymemoryunion.md +++ b/client-sdks/platform/typescript/docs/models/capacitymemoryunion.md @@ -17,4 +17,3 @@ const value: models.MemoryCapacity = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/clientapi1.md b/client-sdks/platform/typescript/docs/models/clientapi1.md new file mode 100644 index 000000000..4a0f11ae8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/clientapi1.md @@ -0,0 +1,17 @@ +# ClientApi1 + +A public API accepted from an application client. + +## Example Usage + +```typescript +import { ClientApi1 } from "@alienplatform/platform-api/models"; + +let value: ClientApi1 = "open-ai-chat-completions"; +``` + +## Values + +```typescript +"open-ai-chat-completions" | "open-ai-responses" | "anthropic-messages" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/clientapi2.md b/client-sdks/platform/typescript/docs/models/clientapi2.md new file mode 100644 index 000000000..9c7fc3336 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/clientapi2.md @@ -0,0 +1,17 @@ +# ClientApi2 + +A public API accepted from an application client. + +## Example Usage + +```typescript +import { ClientApi2 } from "@alienplatform/platform-api/models"; + +let value: ClientApi2 = "open-ai-chat-completions"; +``` + +## Values + +```typescript +"open-ai-chat-completions" | "open-ai-responses" | "anthropic-messages" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/clientapi3.md b/client-sdks/platform/typescript/docs/models/clientapi3.md new file mode 100644 index 000000000..ffc5f37e5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/clientapi3.md @@ -0,0 +1,17 @@ +# ClientApi3 + +A public API accepted from an application client. + +## Example Usage + +```typescript +import { ClientApi3 } from "@alienplatform/platform-api/models"; + +let value: ClientApi3 = "open-ai-responses"; +``` + +## Values + +```typescript +"open-ai-chat-completions" | "open-ai-responses" | "anthropic-messages" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/clientapi4.md b/client-sdks/platform/typescript/docs/models/clientapi4.md new file mode 100644 index 000000000..822454750 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/clientapi4.md @@ -0,0 +1,17 @@ +# ClientApi4 + +A public API accepted from an application client. + +## Example Usage + +```typescript +import { ClientApi4 } from "@alienplatform/platform-api/models"; + +let value: ClientApi4 = "open-ai-responses"; +``` + +## Values + +```typescript +"open-ai-chat-completions" | "open-ai-responses" | "anthropic-messages" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/commanddeploymentinfoenvironmentinfounion.md b/client-sdks/platform/typescript/docs/models/commanddeploymentinfoenvironmentinfounion.md index 6373681ea..edfebe44e 100644 --- a/client-sdks/platform/typescript/docs/models/commanddeploymentinfoenvironmentinfounion.md +++ b/client-sdks/platform/typescript/docs/models/commanddeploymentinfoenvironmentinfounion.md @@ -62,4 +62,3 @@ const value: models.CommandDeploymentInfoEnvironmentInfoTest = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/config.md b/client-sdks/platform/typescript/docs/models/config.md index 358b460d9..4d789a718 100644 --- a/client-sdks/platform/typescript/docs/models/config.md +++ b/client-sdks/platform/typescript/docs/models/config.md @@ -50,4 +50,3 @@ const value: models.ConfigTerraform = { type: "terraform", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/containerunitcpuunion.md b/client-sdks/platform/typescript/docs/models/containerunitcpuunion.md index 35491c3d4..4a32dbe06 100644 --- a/client-sdks/platform/typescript/docs/models/containerunitcpuunion.md +++ b/client-sdks/platform/typescript/docs/models/containerunitcpuunion.md @@ -17,4 +17,3 @@ const value: models.ContainerUnitCpu = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/containerunitmemoryunion.md b/client-sdks/platform/typescript/docs/models/containerunitmemoryunion.md index 4b5760f05..9f90d9774 100644 --- a/client-sdks/platform/typescript/docs/models/containerunitmemoryunion.md +++ b/client-sdks/platform/typescript/docs/models/containerunitmemoryunion.md @@ -17,4 +17,3 @@ const value: models.ContainerUnitMemory = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/containerunitunion.md b/client-sdks/platform/typescript/docs/models/containerunitunion.md index 72cdb7463..c5bc02869 100644 --- a/client-sdks/platform/typescript/docs/models/containerunitunion.md +++ b/client-sdks/platform/typescript/docs/models/containerunitunion.md @@ -19,4 +19,3 @@ const value: models.ContainerUnit = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/countsunion.md b/client-sdks/platform/typescript/docs/models/countsunion.md index 9abebbdee..574a17735 100644 --- a/client-sdks/platform/typescript/docs/models/countsunion.md +++ b/client-sdks/platform/typescript/docs/models/countsunion.md @@ -14,4 +14,3 @@ const value: models.Counts = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/cpuunion1.md b/client-sdks/platform/typescript/docs/models/cpuunion1.md index ed7527f6f..da55226da 100644 --- a/client-sdks/platform/typescript/docs/models/cpuunion1.md +++ b/client-sdks/platform/typescript/docs/models/cpuunion1.md @@ -17,4 +17,3 @@ const value: models.Cpu1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/cpuunion10.md b/client-sdks/platform/typescript/docs/models/cpuunion10.md index bb3021eab..85489ca82 100644 --- a/client-sdks/platform/typescript/docs/models/cpuunion10.md +++ b/client-sdks/platform/typescript/docs/models/cpuunion10.md @@ -17,4 +17,3 @@ const value: models.Cpu10 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/cpuunion11.md b/client-sdks/platform/typescript/docs/models/cpuunion11.md index 056a238de..e3d3046c3 100644 --- a/client-sdks/platform/typescript/docs/models/cpuunion11.md +++ b/client-sdks/platform/typescript/docs/models/cpuunion11.md @@ -17,4 +17,3 @@ const value: models.Cpu11 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/cpuunion2.md b/client-sdks/platform/typescript/docs/models/cpuunion2.md index 59cb53054..bece56265 100644 --- a/client-sdks/platform/typescript/docs/models/cpuunion2.md +++ b/client-sdks/platform/typescript/docs/models/cpuunion2.md @@ -17,4 +17,3 @@ const value: models.Cpu2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/cpuunion3.md b/client-sdks/platform/typescript/docs/models/cpuunion3.md index e21a40a65..9b2cc6f4c 100644 --- a/client-sdks/platform/typescript/docs/models/cpuunion3.md +++ b/client-sdks/platform/typescript/docs/models/cpuunion3.md @@ -17,4 +17,3 @@ const value: models.Cpu3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/cpuunion4.md b/client-sdks/platform/typescript/docs/models/cpuunion4.md index 4a8df199a..fe42b403d 100644 --- a/client-sdks/platform/typescript/docs/models/cpuunion4.md +++ b/client-sdks/platform/typescript/docs/models/cpuunion4.md @@ -17,4 +17,3 @@ const value: models.Cpu4 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/cpuunion5.md b/client-sdks/platform/typescript/docs/models/cpuunion5.md index 9aea6adee..170d72894 100644 --- a/client-sdks/platform/typescript/docs/models/cpuunion5.md +++ b/client-sdks/platform/typescript/docs/models/cpuunion5.md @@ -17,4 +17,3 @@ const value: models.Cpu5 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/cpuunion6.md b/client-sdks/platform/typescript/docs/models/cpuunion6.md index 50d23163b..e17dd4daf 100644 --- a/client-sdks/platform/typescript/docs/models/cpuunion6.md +++ b/client-sdks/platform/typescript/docs/models/cpuunion6.md @@ -17,4 +17,3 @@ const value: models.Cpu6 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/cpuunion7.md b/client-sdks/platform/typescript/docs/models/cpuunion7.md index 02af057f8..5f81ad69e 100644 --- a/client-sdks/platform/typescript/docs/models/cpuunion7.md +++ b/client-sdks/platform/typescript/docs/models/cpuunion7.md @@ -17,4 +17,3 @@ const value: models.Cpu7 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/cpuunion8.md b/client-sdks/platform/typescript/docs/models/cpuunion8.md index 44c0ccc9d..a61a2599e 100644 --- a/client-sdks/platform/typescript/docs/models/cpuunion8.md +++ b/client-sdks/platform/typescript/docs/models/cpuunion8.md @@ -17,4 +17,3 @@ const value: models.Cpu8 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/cpuunion9.md b/client-sdks/platform/typescript/docs/models/cpuunion9.md index e1e037265..d6d0db859 100644 --- a/client-sdks/platform/typescript/docs/models/cpuunion9.md +++ b/client-sdks/platform/typescript/docs/models/cpuunion9.md @@ -17,4 +17,3 @@ const value: models.Cpu9 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createapikeyresponse.md b/client-sdks/platform/typescript/docs/models/createapikeyresponse.md index 33a675c3e..7050f4c86 100644 --- a/client-sdks/platform/typescript/docs/models/createapikeyresponse.md +++ b/client-sdks/platform/typescript/docs/models/createapikeyresponse.md @@ -28,12 +28,12 @@ let value: CreateAPIKeyResponse = { deploymentSetupConfig: { metadata: { "key": "", - "key1": "", - "key2": "", }, policy: { allowedPlatforms: [], - allowedSetupMethods: [], + allowedSetupMethods: [ + "google-oauth", + ], }, environmentVariables: [], }, diff --git a/client-sdks/platform/typescript/docs/models/createdby.md b/client-sdks/platform/typescript/docs/models/createdby.md new file mode 100644 index 000000000..a83307bef --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/createdby.md @@ -0,0 +1,25 @@ +# CreatedBy + +Platform user who created the release, included when ?include=createdBy is used + +## Example Usage + +```typescript +import { CreatedBy } from "@alienplatform/platform-api/models"; + +let value: CreatedBy = { + id: "", + name: "", + email: "Jacky.Marvin@yahoo.com", + image: "https://loremflickr.com/3225/676?lock=2601971394296232", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------- | ----------------------- | ----------------------- | ----------------------- | +| `id` | *string* | :heavy_check_mark: | User ID | +| `name` | *string* | :heavy_check_mark: | User's display name | +| `email` | *string* | :heavy_check_mark: | User's email address | +| `image` | *string* | :heavy_check_mark: | User's avatar image URL | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/createdeploymentgrouprequest.md b/client-sdks/platform/typescript/docs/models/createdeploymentgrouprequest.md index d8c4c8a1a..bb194c4fd 100644 --- a/client-sdks/platform/typescript/docs/models/createdeploymentgrouprequest.md +++ b/client-sdks/platform/typescript/docs/models/createdeploymentgrouprequest.md @@ -7,14 +7,16 @@ import { CreateDeploymentGroupRequest } from "@alienplatform/platform-api/models let value: CreateDeploymentGroupRequest = { name: "prod-us-east-1", + externalId: "ext_example_01", project: "", }; ``` ## Fields -| Field | Type | Required | Description | Example | -| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | -| `name` | *string* | :heavy_check_mark: | Deployment group name. | prod-us-east-1 | -| `project` | *string* | :heavy_check_mark: | Project ID or name this deployment group belongs to | | -| `maxDeployments` | *number* | :heavy_minus_sign: | Maximum number of deployments in this deployment group | | \ No newline at end of file +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| `name` | *string* | :heavy_check_mark: | Deployment group name. | prod-us-east-1 | +| `externalId` | *string* | :heavy_minus_sign: | Case-sensitive, URL- and header-safe identifier from the integrating application. | ext_example_01 | +| `project` | *string* | :heavy_check_mark: | Project ID or name this deployment group belongs to | | +| `maxDeployments` | *number* | :heavy_minus_sign: | Maximum number of deployments in this deployment group | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/createdeploymentgrouptokenrequest.md b/client-sdks/platform/typescript/docs/models/createdeploymentgrouptokenrequest.md index 0a0b12f14..d3a8ae89a 100644 --- a/client-sdks/platform/typescript/docs/models/createdeploymentgrouptokenrequest.md +++ b/client-sdks/platform/typescript/docs/models/createdeploymentgrouptokenrequest.md @@ -10,9 +10,21 @@ let value: CreateDeploymentGroupTokenRequest = { metadata: {}, policy: { allowedPlatforms: [], - allowedSetupMethods: [], + allowedSetupMethods: [ + "google-oauth", + ], }, - environmentVariables: [], + environmentVariables: [ + { + name: "", + value: "", + type: "plain", + targetResources: [ + "", + "", + ], + }, + ], }, }; ``` diff --git a/client-sdks/platform/typescript/docs/models/createdeploymentresponse.md b/client-sdks/platform/typescript/docs/models/createdeploymentresponse.md index f4a8e527b..4c6bd46da 100644 --- a/client-sdks/platform/typescript/docs/models/createdeploymentresponse.md +++ b/client-sdks/platform/typescript/docs/models/createdeploymentresponse.md @@ -18,6 +18,7 @@ let value: CreateDeploymentResponse = { currentReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", desiredReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", pinnedReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", + releaseChannel: "", retryRequested: true, createdAt: new Date("2025-11-27T13:33:53.835Z"), updatedAt: new Date("2024-08-29T09:22:49.431Z"), diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponse.md b/client-sdks/platform/typescript/docs/models/createmanagerresponse.md index f87e7633a..1248f1067 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponse.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponse.md @@ -18,7 +18,9 @@ let value: CreateManagerResponse = { }, policy: { allowedPlatforms: [], - allowedSetupMethods: [], + allowedSetupMethods: [ + "google-oauth", + ], }, environmentVariables: [], }, diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponseawsunion1.md b/client-sdks/platform/typescript/docs/models/createmanagerresponseawsunion1.md index 33409d46c..b8d3795b8 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponseawsunion1.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponseawsunion1.md @@ -16,4 +16,3 @@ const value: models.CreateManagerResponseAws1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponseawsunion2.md b/client-sdks/platform/typescript/docs/models/createmanagerresponseawsunion2.md index d94f8dcc6..d7f143a33 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponseawsunion2.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponseawsunion2.md @@ -16,4 +16,3 @@ const value: models.CreateManagerResponseAws2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponseawsunion3.md b/client-sdks/platform/typescript/docs/models/createmanagerresponseawsunion3.md index 347cd0082..25c860c4b 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponseawsunion3.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponseawsunion3.md @@ -16,4 +16,3 @@ const value: models.CreateManagerResponseAws3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponseazureunion1.md b/client-sdks/platform/typescript/docs/models/createmanagerresponseazureunion1.md index 7663430b5..afebb7237 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponseazureunion1.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponseazureunion1.md @@ -16,4 +16,3 @@ const value: models.CreateManagerResponseAzure1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponseazureunion2.md b/client-sdks/platform/typescript/docs/models/createmanagerresponseazureunion2.md index 7cb9c3ff3..65387bf00 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponseazureunion2.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponseazureunion2.md @@ -16,4 +16,3 @@ const value: models.CreateManagerResponseAzure2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponseazureunion3.md b/client-sdks/platform/typescript/docs/models/createmanagerresponseazureunion3.md index adb4783ab..b053f8381 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponseazureunion3.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponseazureunion3.md @@ -16,4 +16,3 @@ const value: models.CreateManagerResponseAzure3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsecertificateunion1.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsecertificateunion1.md index 7e76394fd..53630daeb 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsecertificateunion1.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsecertificateunion1.md @@ -47,4 +47,3 @@ const value: models.CreateManagerResponseCertificateNone1 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsecertificateunion2.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsecertificateunion2.md index 8264f627e..2afa5a2ed 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsecertificateunion2.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsecertificateunion2.md @@ -47,4 +47,3 @@ const value: models.CreateManagerResponseCertificateNone2 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsecertificateunion3.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsecertificateunion3.md index 136b5d80a..0ecfd2344 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsecertificateunion3.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsecertificateunion3.md @@ -47,4 +47,3 @@ const value: models.CreateManagerResponseCertificateNone3 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsecertificateunion4.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsecertificateunion4.md index 515e15e1f..caa18be90 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsecertificateunion4.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsecertificateunion4.md @@ -47,4 +47,3 @@ const value: models.CreateManagerResponseCertificateNone4 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsecertificateunion5.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsecertificateunion5.md index 2a1efa8b1..c4be7efda 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsecertificateunion5.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsecertificateunion5.md @@ -47,4 +47,3 @@ const value: models.CreateManagerResponseCertificateNone5 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsecertificateunion6.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsecertificateunion6.md index 4321d6135..7a614a1b8 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsecertificateunion6.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsecertificateunion6.md @@ -47,4 +47,3 @@ const value: models.CreateManagerResponseCertificateNone6 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsecloudunion1.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsecloudunion1.md index 9c3b1c70e..ba8b5c65b 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsecloudunion1.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsecloudunion1.md @@ -14,4 +14,3 @@ const value: models.CreateManagerResponseCloud1 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsecloudunion2.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsecloudunion2.md index e9fb167b3..572db3735 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsecloudunion2.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsecloudunion2.md @@ -14,4 +14,3 @@ const value: models.CreateManagerResponseCloud2 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsecloudunion3.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsecloudunion3.md index 914cd50b4..b9c7ad755 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsecloudunion3.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsecloudunion3.md @@ -14,4 +14,3 @@ const value: models.CreateManagerResponseCloud3 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponseclusterunion1.md b/client-sdks/platform/typescript/docs/models/createmanagerresponseclusterunion1.md index f9c36bc92..6bd51ab44 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponseclusterunion1.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponseclusterunion1.md @@ -16,4 +16,3 @@ const value: models.CreateManagerResponseCluster1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponseclusterunion2.md b/client-sdks/platform/typescript/docs/models/createmanagerresponseclusterunion2.md index 1aadc923c..e19b75214 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponseclusterunion2.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponseclusterunion2.md @@ -16,4 +16,3 @@ const value: models.CreateManagerResponseCluster2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponseclusterunion3.md b/client-sdks/platform/typescript/docs/models/createmanagerresponseclusterunion3.md index 3bd811307..4ff48df3a 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponseclusterunion3.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponseclusterunion3.md @@ -16,4 +16,3 @@ const value: models.CreateManagerResponseCluster3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsecomputeunion1.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsecomputeunion1.md index dcf4c857e..f1c3f7855 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsecomputeunion1.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsecomputeunion1.md @@ -14,4 +14,3 @@ const value: models.CreateManagerResponseCompute1 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsecomputeunion2.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsecomputeunion2.md index 41112b7af..e955b1a4a 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsecomputeunion2.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsecomputeunion2.md @@ -14,4 +14,3 @@ const value: models.CreateManagerResponseCompute2 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsecomputeunion3.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsecomputeunion3.md index 3c74d03f8..b184be132 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsecomputeunion3.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsecomputeunion3.md @@ -14,4 +14,3 @@ const value: models.CreateManagerResponseCompute3 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsedomainskubernetesunion1.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsedomainskubernetesunion1.md index f90e80df1..ab30adf0f 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsedomainskubernetesunion1.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsedomainskubernetesunion1.md @@ -18,4 +18,3 @@ const value: models.CreateManagerResponseDomainsKubernetes1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsedomainskubernetesunion2.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsedomainskubernetesunion2.md index 0ba1c6ef3..8e511a5c2 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsedomainskubernetesunion2.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsedomainskubernetesunion2.md @@ -18,4 +18,3 @@ const value: models.CreateManagerResponseDomainsKubernetes2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsedomainskubernetesunion3.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsedomainskubernetesunion3.md index 499fc8bfd..a7eed5a68 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsedomainskubernetesunion3.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsedomainskubernetesunion3.md @@ -18,4 +18,3 @@ const value: models.CreateManagerResponseDomainsKubernetes3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsedomainsunion1.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsedomainsunion1.md index 141cb43be..3ae3585db 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsedomainsunion1.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsedomainsunion1.md @@ -14,4 +14,3 @@ const value: models.CreateManagerResponseDomains1 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsedomainsunion2.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsedomainsunion2.md index 509548d31..6c6ce4175 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsedomainsunion2.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsedomainsunion2.md @@ -14,4 +14,3 @@ const value: models.CreateManagerResponseDomains2 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsedomainsunion3.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsedomainsunion3.md index c5d5054ed..af7783590 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsedomainsunion3.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsedomainsunion3.md @@ -14,4 +14,3 @@ const value: models.CreateManagerResponseDomains3 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponseexposureunion1.md b/client-sdks/platform/typescript/docs/models/createmanagerresponseexposureunion1.md index 6f9491d24..75393e35d 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponseexposureunion1.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponseexposureunion1.md @@ -48,4 +48,3 @@ const value: models.CreateManagerResponseExposureCustom1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponseexposureunion2.md b/client-sdks/platform/typescript/docs/models/createmanagerresponseexposureunion2.md index 9aad550c3..b9b62a54e 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponseexposureunion2.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponseexposureunion2.md @@ -50,4 +50,3 @@ const value: models.CreateManagerResponseExposureCustom2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponseexposureunion3.md b/client-sdks/platform/typescript/docs/models/createmanagerresponseexposureunion3.md index 1df5c79ac..8ab50ee83 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponseexposureunion3.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponseexposureunion3.md @@ -49,4 +49,3 @@ const value: models.CreateManagerResponseExposureCustom3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomains1.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomains1.md new file mode 100644 index 000000000..b1ff658d8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomains1.md @@ -0,0 +1,20 @@ +# CreateManagerResponseFailureDomains1 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { CreateManagerResponseFailureDomains1 } from "@alienplatform/platform-api/models"; + +let value: CreateManagerResponseFailureDomains1 = { + spread: 897218, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomains2.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomains2.md new file mode 100644 index 000000000..4e8064e5c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomains2.md @@ -0,0 +1,20 @@ +# CreateManagerResponseFailureDomains2 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { CreateManagerResponseFailureDomains2 } from "@alienplatform/platform-api/models"; + +let value: CreateManagerResponseFailureDomains2 = { + spread: 450195, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomains3.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomains3.md new file mode 100644 index 000000000..c0814d182 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomains3.md @@ -0,0 +1,20 @@ +# CreateManagerResponseFailureDomains3 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { CreateManagerResponseFailureDomains3 } from "@alienplatform/platform-api/models"; + +let value: CreateManagerResponseFailureDomains3 = { + spread: 297029, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomains4.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomains4.md new file mode 100644 index 000000000..3e7210033 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomains4.md @@ -0,0 +1,20 @@ +# CreateManagerResponseFailureDomains4 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { CreateManagerResponseFailureDomains4 } from "@alienplatform/platform-api/models"; + +let value: CreateManagerResponseFailureDomains4 = { + spread: 596209, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomains5.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomains5.md new file mode 100644 index 000000000..8d70aa541 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomains5.md @@ -0,0 +1,20 @@ +# CreateManagerResponseFailureDomains5 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { CreateManagerResponseFailureDomains5 } from "@alienplatform/platform-api/models"; + +let value: CreateManagerResponseFailureDomains5 = { + spread: 178175, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomains6.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomains6.md new file mode 100644 index 000000000..8ac901493 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomains6.md @@ -0,0 +1,20 @@ +# CreateManagerResponseFailureDomains6 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { CreateManagerResponseFailureDomains6 } from "@alienplatform/platform-api/models"; + +let value: CreateManagerResponseFailureDomains6 = { + spread: 219970, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomainsunion1.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomainsunion1.md new file mode 100644 index 000000000..1ba6c8ffe --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomainsunion1.md @@ -0,0 +1,18 @@ +# CreateManagerResponseFailureDomainsUnion1 + + +## Supported Types + +### `models.CreateManagerResponseFailureDomains1` + +```typescript +const value: models.CreateManagerResponseFailureDomains1 = { + spread: 897218, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomainsunion2.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomainsunion2.md new file mode 100644 index 000000000..b6d1637cd --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomainsunion2.md @@ -0,0 +1,18 @@ +# CreateManagerResponseFailureDomainsUnion2 + + +## Supported Types + +### `models.CreateManagerResponseFailureDomains2` + +```typescript +const value: models.CreateManagerResponseFailureDomains2 = { + spread: 450195, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomainsunion3.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomainsunion3.md new file mode 100644 index 000000000..b22fcbb61 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomainsunion3.md @@ -0,0 +1,18 @@ +# CreateManagerResponseFailureDomainsUnion3 + + +## Supported Types + +### `models.CreateManagerResponseFailureDomains3` + +```typescript +const value: models.CreateManagerResponseFailureDomains3 = { + spread: 297029, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomainsunion4.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomainsunion4.md new file mode 100644 index 000000000..90ec0b3a9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomainsunion4.md @@ -0,0 +1,18 @@ +# CreateManagerResponseFailureDomainsUnion4 + + +## Supported Types + +### `models.CreateManagerResponseFailureDomains4` + +```typescript +const value: models.CreateManagerResponseFailureDomains4 = { + spread: 596209, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomainsunion5.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomainsunion5.md new file mode 100644 index 000000000..82b79acdc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomainsunion5.md @@ -0,0 +1,18 @@ +# CreateManagerResponseFailureDomainsUnion5 + + +## Supported Types + +### `models.CreateManagerResponseFailureDomains5` + +```typescript +const value: models.CreateManagerResponseFailureDomains5 = { + spread: 178175, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomainsunion6.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomainsunion6.md new file mode 100644 index 000000000..7267dcd7d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsefailuredomainsunion6.md @@ -0,0 +1,18 @@ +# CreateManagerResponseFailureDomainsUnion6 + + +## Supported Types + +### `models.CreateManagerResponseFailureDomains6` + +```typescript +const value: models.CreateManagerResponseFailureDomains6 = { + spread: 219970, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsegcpunion1.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsegcpunion1.md index 05e7040b0..785dbb58b 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsegcpunion1.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsegcpunion1.md @@ -16,4 +16,3 @@ const value: models.CreateManagerResponseGcp1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsegcpunion2.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsegcpunion2.md index 68a1835b1..16909e38d 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsegcpunion2.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsegcpunion2.md @@ -16,4 +16,3 @@ const value: models.CreateManagerResponseGcp2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsegcpunion3.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsegcpunion3.md index 8131079b5..0117c7760 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsegcpunion3.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsegcpunion3.md @@ -16,4 +16,3 @@ const value: models.CreateManagerResponseGcp3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsekubernetesunion1.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsekubernetesunion1.md index 53fb359b5..3d1a6c0d8 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsekubernetesunion1.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsekubernetesunion1.md @@ -14,4 +14,3 @@ const value: models.CreateManagerResponseKubernetes1 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsekubernetesunion2.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsekubernetesunion2.md index e944063c3..ff3626aaa 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsekubernetesunion2.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsekubernetesunion2.md @@ -14,4 +14,3 @@ const value: models.CreateManagerResponseKubernetes2 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsekubernetesunion3.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsekubernetesunion3.md index 92540c703..4d4fc5df3 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsekubernetesunion3.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsekubernetesunion3.md @@ -14,4 +14,3 @@ const value: models.CreateManagerResponseKubernetes3 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsenetworkunion1.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsenetworkunion1.md index a9bfe1b5a..f5cfb73f1 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsenetworkunion1.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsenetworkunion1.md @@ -61,4 +61,3 @@ const value: models.CreateManagerResponseNetworkByoVnetAzure1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsenetworkunion2.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsenetworkunion2.md index 385aa4b9e..b1527af47 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsenetworkunion2.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsenetworkunion2.md @@ -57,4 +57,3 @@ const value: models.CreateManagerResponseNetworkByoVnetAzure2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsenetworkunion3.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsenetworkunion3.md index 9099377a8..dca91c3be 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsenetworkunion3.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsenetworkunion3.md @@ -63,4 +63,3 @@ const value: models.CreateManagerResponseNetworkByoVnetAzure3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsautoscale1.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsautoscale1.md index cb1ecb7c3..6734d0708 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsautoscale1.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsautoscale1.md @@ -16,6 +16,7 @@ let value: CreateManagerResponsePoolsAutoscale1 = { | Field | Type | Required | Description | | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `failureDomains` | *models.CreateManagerResponseFailureDomainsUnion2* | :heavy_minus_sign: | N/A | | `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | | `max` | *number* | :heavy_check_mark: | Maximum machine count. | | `min` | *number* | :heavy_check_mark: | Minimum machine count. | diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsautoscale2.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsautoscale2.md index f7f0d2031..747524924 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsautoscale2.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsautoscale2.md @@ -16,6 +16,7 @@ let value: CreateManagerResponsePoolsAutoscale2 = { | Field | Type | Required | Description | | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `failureDomains` | *models.CreateManagerResponseFailureDomainsUnion4* | :heavy_minus_sign: | N/A | | `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | | `max` | *number* | :heavy_check_mark: | Maximum machine count. | | `min` | *number* | :heavy_check_mark: | Minimum machine count. | diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsautoscale3.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsautoscale3.md index 9d13dc814..dac6bfc8e 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsautoscale3.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsautoscale3.md @@ -16,6 +16,7 @@ let value: CreateManagerResponsePoolsAutoscale3 = { | Field | Type | Required | Description | | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `failureDomains` | *models.CreateManagerResponseFailureDomainsUnion6* | :heavy_minus_sign: | N/A | | `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | | `max` | *number* | :heavy_check_mark: | Maximum machine count. | | `min` | *number* | :heavy_check_mark: | Minimum machine count. | diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsfixed1.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsfixed1.md index 7dee6b606..ca1c88a49 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsfixed1.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsfixed1.md @@ -15,6 +15,7 @@ let value: CreateManagerResponsePoolsFixed1 = { | Field | Type | Required | Description | | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `failureDomains` | *models.CreateManagerResponseFailureDomainsUnion1* | :heavy_minus_sign: | N/A | | `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | | `machines` | *number* | :heavy_check_mark: | Number of machines to run. | | `mode` | *"fixed"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsfixed2.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsfixed2.md index 1cc3557ea..bfd72a53b 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsfixed2.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsfixed2.md @@ -15,6 +15,7 @@ let value: CreateManagerResponsePoolsFixed2 = { | Field | Type | Required | Description | | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `failureDomains` | *models.CreateManagerResponseFailureDomainsUnion3* | :heavy_minus_sign: | N/A | | `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | | `machines` | *number* | :heavy_check_mark: | Number of machines to run. | | `mode` | *"fixed"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsfixed3.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsfixed3.md index 5bf975c7b..58df17d47 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsfixed3.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsfixed3.md @@ -15,6 +15,7 @@ let value: CreateManagerResponsePoolsFixed3 = { | Field | Type | Required | Description | | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `failureDomains` | *models.CreateManagerResponseFailureDomainsUnion5* | :heavy_minus_sign: | N/A | | `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | | `machines` | *number* | :heavy_check_mark: | Number of machines to run. | | `mode` | *"fixed"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsunion1.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsunion1.md index d7f48dc49..e5a925d9e 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsunion1.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsunion1.md @@ -23,4 +23,3 @@ const value: models.CreateManagerResponsePoolsAutoscale1 = { mode: "autoscale", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsunion2.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsunion2.md index d44443208..0b726213d 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsunion2.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsunion2.md @@ -23,4 +23,3 @@ const value: models.CreateManagerResponsePoolsAutoscale2 = { mode: "autoscale", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsunion3.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsunion3.md index d6ae65f36..c66e5a2eb 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsunion3.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsepoolsunion3.md @@ -23,4 +23,3 @@ const value: models.CreateManagerResponsePoolsAutoscale3 = { mode: "autoscale", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion1.md b/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion1.md index 7f8f5aaa1..46809303a 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion1.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion1.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion10.md b/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion10.md index 2ed399ad0..e8cc5d5a2 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion10.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion10.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion11.md b/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion11.md index 5bc1783ae..c002e3696 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion11.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion11.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion12.md b/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion12.md index 9c6494299..7e348f329 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion12.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion12.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion2.md b/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion2.md index d4bc18a44..e37df152b 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion2.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion2.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion3.md b/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion3.md index c1b5df19f..97c1a08e3 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion3.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion3.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion4.md b/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion4.md index 5ed50ead6..8883ebf7d 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion4.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion4.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion5.md b/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion5.md index 7d25150a4..a61e03c36 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion5.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion5.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion6.md b/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion6.md index 6e9abdb0c..bdece7b36 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion6.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion6.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion7.md b/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion7.md index 178da1974..ecdaf7918 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion7.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion7.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion8.md b/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion8.md index 923089768..3446b7fbe 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion8.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion8.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion9.md b/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion9.md index 546705b8e..7a19627c3 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion9.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponseproviderunion9.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsepublicendpointtargetunion1.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsepublicendpointtargetunion1.md index 1c244f9be..4aed08fab 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsepublicendpointtargetunion1.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsepublicendpointtargetunion1.md @@ -26,4 +26,3 @@ const value: models.CreateManagerResponsePublicEndpointTargetLoadBalancer1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsepublicendpointtargetunion2.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsepublicendpointtargetunion2.md index 34a5db2d0..401512183 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsepublicendpointtargetunion2.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsepublicendpointtargetunion2.md @@ -26,4 +26,3 @@ const value: models.CreateManagerResponsePublicEndpointTargetLoadBalancer2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsepublicendpointtargetunion3.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsepublicendpointtargetunion3.md index 0348c77ae..e0f4ae82e 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsepublicendpointtargetunion3.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsepublicendpointtargetunion3.md @@ -26,4 +26,3 @@ const value: models.CreateManagerResponsePublicEndpointTargetLoadBalancer3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponserouteunion1.md b/client-sdks/platform/typescript/docs/models/createmanagerresponserouteunion1.md index 6c98fb972..04516bc11 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponserouteunion1.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponserouteunion1.md @@ -23,4 +23,3 @@ const value: models.CreateManagerResponseRouteGateway1 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponserouteunion2.md b/client-sdks/platform/typescript/docs/models/createmanagerresponserouteunion2.md index c1c7155e0..fd4f63090 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponserouteunion2.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponserouteunion2.md @@ -23,4 +23,3 @@ const value: models.CreateManagerResponseRouteGateway2 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponserouteunion3.md b/client-sdks/platform/typescript/docs/models/createmanagerresponserouteunion3.md index f59c8448f..9db96e60a 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponserouteunion3.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponserouteunion3.md @@ -23,4 +23,3 @@ const value: models.CreateManagerResponseRouteGateway3 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponserouteunion4.md b/client-sdks/platform/typescript/docs/models/createmanagerresponserouteunion4.md index 71f0289ab..7c7e93a19 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponserouteunion4.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponserouteunion4.md @@ -23,4 +23,3 @@ const value: models.CreateManagerResponseRouteGateway4 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponserouteunion5.md b/client-sdks/platform/typescript/docs/models/createmanagerresponserouteunion5.md index b418645ce..c34e09143 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponserouteunion5.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponserouteunion5.md @@ -23,4 +23,3 @@ const value: models.CreateManagerResponseRouteGateway5 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponserouteunion6.md b/client-sdks/platform/typescript/docs/models/createmanagerresponserouteunion6.md index 9056fb9b0..23a19cf17 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponserouteunion6.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponserouteunion6.md @@ -23,4 +23,3 @@ const value: models.CreateManagerResponseRouteGateway6 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsesetupconfig.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsesetupconfig.md index 0f3a67f07..786fbbaf8 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsesetupconfig.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsesetupconfig.md @@ -12,7 +12,9 @@ let value: CreateManagerResponseSetupConfig = { }, policy: { allowedPlatforms: [], - allowedSetupMethods: [], + allowedSetupMethods: [ + "google-oauth", + ], }, environmentVariables: [], }; diff --git a/client-sdks/platform/typescript/docs/models/createmanagerresponsesetupunion.md b/client-sdks/platform/typescript/docs/models/createmanagerresponsesetupunion.md index 817d9b8f2..d508d411a 100644 --- a/client-sdks/platform/typescript/docs/models/createmanagerresponsesetupunion.md +++ b/client-sdks/platform/typescript/docs/models/createmanagerresponsesetupunion.md @@ -50,4 +50,3 @@ const value: models.CreateManagerResponseSetupTerraform = { stackSettings: {}, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createreleaserequest.md b/client-sdks/platform/typescript/docs/models/createreleaserequest.md index b26f05c75..cc6ee1509 100644 --- a/client-sdks/platform/typescript/docs/models/createreleaserequest.md +++ b/client-sdks/platform/typescript/docs/models/createreleaserequest.md @@ -31,4 +31,5 @@ let value: CreateReleaseRequest = { | `version` | *string* | :heavy_minus_sign: | N/A | | `gitMetadata` | [models.GitMetadata](../models/gitmetadata.md) | :heavy_minus_sign: | N/A | | `stack` | [models.StackByPlatform](../models/stackbyplatform.md) | :heavy_minus_sign: | N/A | -| `rootDirectory` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file +| `rootDirectory` | *string* | :heavy_minus_sign: | N/A | +| `channel` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequest.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequest.md index 5ef370100..3a5028e70 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequest.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequest.md @@ -23,7 +23,11 @@ let value: CreateSetupRegistrationOperationRequest = { { id: "", type: "", - importData: {}, + importData: { + "key": "", + "key1": "", + "key2": "", + }, }, ], }, diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestawsunion.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestawsunion.md index 657dd05bd..460aaaea3 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestawsunion.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestawsunion.md @@ -16,4 +16,3 @@ const value: models.CreateSetupRegistrationOperationRequestAws = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestazureunion.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestazureunion.md index 2fca0c301..4eb712d36 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestazureunion.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestazureunion.md @@ -16,4 +16,3 @@ const value: models.CreateSetupRegistrationOperationRequestAzure = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestcertificateunion1.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestcertificateunion1.md index 7ad63709d..8a4b2c3dd 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestcertificateunion1.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestcertificateunion1.md @@ -51,4 +51,3 @@ const value: models.CreateSetupRegistrationOperationRequestCertificateNone1 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestcertificateunion2.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestcertificateunion2.md index 5ccd4808b..d42c326c6 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestcertificateunion2.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestcertificateunion2.md @@ -51,4 +51,3 @@ const value: models.CreateSetupRegistrationOperationRequestCertificateNone2 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestcloudunion.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestcloudunion.md index ed4ceaeb6..38906a808 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestcloudunion.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestcloudunion.md @@ -14,4 +14,3 @@ const value: models.CreateSetupRegistrationOperationRequestCloud = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestclusterunion.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestclusterunion.md index 5736eef04..b67ac4761 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestclusterunion.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestclusterunion.md @@ -16,4 +16,3 @@ const value: models.CreateSetupRegistrationOperationRequestCluster = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestcomputeunion.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestcomputeunion.md index 9cbed759e..d0d549f39 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestcomputeunion.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestcomputeunion.md @@ -14,4 +14,3 @@ const value: models.CreateSetupRegistrationOperationRequestCompute = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestdomainskubernetesunion.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestdomainskubernetesunion.md index 108cdc8b5..b9f95b343 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestdomainskubernetesunion.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestdomainskubernetesunion.md @@ -18,4 +18,3 @@ const value: models.CreateSetupRegistrationOperationRequestDomainsKubernetes = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestdomainsunion.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestdomainsunion.md index 9f8229738..ea5c6d26e 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestdomainsunion.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestdomainsunion.md @@ -14,4 +14,3 @@ const value: models.CreateSetupRegistrationOperationRequestDomains = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestexposureunion.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestexposureunion.md index 82f86b7d4..7e29f7a0f 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestexposureunion.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestexposureunion.md @@ -49,4 +49,3 @@ const value: models.CreateSetupRegistrationOperationRequestExposureCustom = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestfailuredomains1.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestfailuredomains1.md new file mode 100644 index 000000000..0199ae1f3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestfailuredomains1.md @@ -0,0 +1,20 @@ +# CreateSetupRegistrationOperationRequestFailureDomains1 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { CreateSetupRegistrationOperationRequestFailureDomains1 } from "@alienplatform/platform-api/models"; + +let value: CreateSetupRegistrationOperationRequestFailureDomains1 = { + spread: 750494, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestfailuredomains2.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestfailuredomains2.md new file mode 100644 index 000000000..fdeaf7e85 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestfailuredomains2.md @@ -0,0 +1,20 @@ +# CreateSetupRegistrationOperationRequestFailureDomains2 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { CreateSetupRegistrationOperationRequestFailureDomains2 } from "@alienplatform/platform-api/models"; + +let value: CreateSetupRegistrationOperationRequestFailureDomains2 = { + spread: 990650, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestfailuredomainsunion1.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestfailuredomainsunion1.md new file mode 100644 index 000000000..836b89f0e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestfailuredomainsunion1.md @@ -0,0 +1,18 @@ +# CreateSetupRegistrationOperationRequestFailureDomainsUnion1 + + +## Supported Types + +### `models.CreateSetupRegistrationOperationRequestFailureDomains1` + +```typescript +const value: models.CreateSetupRegistrationOperationRequestFailureDomains1 = { + spread: 750494, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestfailuredomainsunion2.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestfailuredomainsunion2.md new file mode 100644 index 000000000..61b45f9f1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestfailuredomainsunion2.md @@ -0,0 +1,18 @@ +# CreateSetupRegistrationOperationRequestFailureDomainsUnion2 + + +## Supported Types + +### `models.CreateSetupRegistrationOperationRequestFailureDomains2` + +```typescript +const value: models.CreateSetupRegistrationOperationRequestFailureDomains2 = { + spread: 990650, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestgcpunion.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestgcpunion.md index c41a2383b..b64813152 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestgcpunion.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestgcpunion.md @@ -16,4 +16,3 @@ const value: models.CreateSetupRegistrationOperationRequestGcp = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestkubernetesunion.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestkubernetesunion.md index 925cd0375..0730a88df 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestkubernetesunion.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestkubernetesunion.md @@ -14,4 +14,3 @@ const value: models.CreateSetupRegistrationOperationRequestKubernetes = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestmanagementconfigunion.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestmanagementconfigunion.md index c98dc1721..ced9b7de5 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestmanagementconfigunion.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestmanagementconfigunion.md @@ -54,4 +54,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestnetworkunion.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestnetworkunion.md index 32c9782a2..9ac2ad664 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestnetworkunion.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestnetworkunion.md @@ -65,4 +65,3 @@ const value: models.CreateSetupRegistrationOperationRequestNetworkByoVnetAzure = ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestpoolsautoscale.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestpoolsautoscale.md index a3088980f..373309308 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestpoolsautoscale.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestpoolsautoscale.md @@ -14,9 +14,10 @@ let value: CreateSetupRegistrationOperationRequestPoolsAutoscale = { ## Fields -| Field | Type | Required | Description | -| --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | -| `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | -| `max` | *number* | :heavy_check_mark: | Maximum machine count. | -| `min` | *number* | :heavy_check_mark: | Minimum machine count. | -| `mode` | *"autoscale"* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `failureDomains` | *models.CreateSetupRegistrationOperationRequestFailureDomainsUnion2* | :heavy_minus_sign: | N/A | +| `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | +| `max` | *number* | :heavy_check_mark: | Maximum machine count. | +| `min` | *number* | :heavy_check_mark: | Minimum machine count. | +| `mode` | *"autoscale"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestpoolsfixed.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestpoolsfixed.md index e76d3e7c1..d496ad7ae 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestpoolsfixed.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestpoolsfixed.md @@ -13,8 +13,9 @@ let value: CreateSetupRegistrationOperationRequestPoolsFixed = { ## Fields -| Field | Type | Required | Description | -| --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | -| `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | -| `machines` | *number* | :heavy_check_mark: | Number of machines to run. | -| `mode` | *"fixed"* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `failureDomains` | *models.CreateSetupRegistrationOperationRequestFailureDomainsUnion1* | :heavy_minus_sign: | N/A | +| `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | +| `machines` | *number* | :heavy_check_mark: | Number of machines to run. | +| `mode` | *"fixed"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestpoolsunion.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestpoolsunion.md index 872f640c7..215bb4d78 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestpoolsunion.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestpoolsunion.md @@ -23,4 +23,3 @@ const value: models.CreateSetupRegistrationOperationRequestPoolsAutoscale = { mode: "autoscale", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestproviderunion1.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestproviderunion1.md index 87681fdf9..bdda511bf 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestproviderunion1.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestproviderunion1.md @@ -38,4 +38,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestproviderunion2.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestproviderunion2.md index 7e5aa0568..946b944ac 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestproviderunion2.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestproviderunion2.md @@ -38,4 +38,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestproviderunion3.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestproviderunion3.md index c97218dc3..8edd47739 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestproviderunion3.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestproviderunion3.md @@ -38,4 +38,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestproviderunion4.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestproviderunion4.md index 7f98df439..dd234317d 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestproviderunion4.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestproviderunion4.md @@ -38,4 +38,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestpublicendpointtargetunion.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestpublicendpointtargetunion.md index eaaa968be..f9eef14db 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestpublicendpointtargetunion.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestpublicendpointtargetunion.md @@ -29,4 +29,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestrouteunion1.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestrouteunion1.md index c9a489a6e..082f9398a 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestrouteunion1.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestrouteunion1.md @@ -23,4 +23,3 @@ const value: models.CreateSetupRegistrationOperationRequestRouteGateway1 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestrouteunion2.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestrouteunion2.md index fb4db8794..a850abc6d 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestrouteunion2.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestrouteunion2.md @@ -23,4 +23,3 @@ const value: models.CreateSetupRegistrationOperationRequestRouteGateway2 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestsource.md b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestsource.md index 65b4a4a44..aaf3c5a0c 100644 --- a/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestsource.md +++ b/client-sdks/platform/typescript/docs/models/createsetupregistrationoperationrequestsource.md @@ -22,7 +22,11 @@ let value: CreateSetupRegistrationOperationRequestSource = { { id: "", type: "", - importData: {}, + importData: { + "key": "", + "key1": "", + "key2": "", + }, }, ], }; diff --git a/client-sdks/platform/typescript/docs/models/currentreleaseextendstateconditionunion.md b/client-sdks/platform/typescript/docs/models/currentreleaseextendstateconditionunion.md index 1fa662112..e86e91375 100644 --- a/client-sdks/platform/typescript/docs/models/currentreleaseextendstateconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/currentreleaseextendstateconditionunion.md @@ -17,4 +17,3 @@ const value: models.CurrentReleaseExtendConditionState = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/currentreleaseextendstateresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/currentreleaseextendstateresourceconditionunion.md index 89418b72e..863b6307b 100644 --- a/client-sdks/platform/typescript/docs/models/currentreleaseextendstateresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/currentreleaseextendstateresourceconditionunion.md @@ -17,4 +17,3 @@ const value: models.CurrentReleaseExtendConditionStateResource = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/currentreleaseoverridestateconditionunion.md b/client-sdks/platform/typescript/docs/models/currentreleaseoverridestateconditionunion.md index 1634fc9de..2ba7e0530 100644 --- a/client-sdks/platform/typescript/docs/models/currentreleaseoverridestateconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/currentreleaseoverridestateconditionunion.md @@ -17,4 +17,3 @@ const value: models.CurrentReleaseOverrideConditionState = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/currentreleaseoverridestateresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/currentreleaseoverridestateresourceconditionunion.md index 00505084b..aa5b2f1b6 100644 --- a/client-sdks/platform/typescript/docs/models/currentreleaseoverridestateresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/currentreleaseoverridestateresourceconditionunion.md @@ -17,4 +17,3 @@ const value: models.CurrentReleaseOverrideConditionStateResource = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/currentreleaseprofilestateconditionunion.md b/client-sdks/platform/typescript/docs/models/currentreleaseprofilestateconditionunion.md index 75da37f4c..4271eb4a5 100644 --- a/client-sdks/platform/typescript/docs/models/currentreleaseprofilestateconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/currentreleaseprofilestateconditionunion.md @@ -17,4 +17,3 @@ const value: models.CurrentReleaseProfileConditionState = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/currentreleaseprofilestateresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/currentreleaseprofilestateresourceconditionunion.md index 119e2cab1..334d6bac8 100644 --- a/client-sdks/platform/typescript/docs/models/currentreleaseprofilestateresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/currentreleaseprofilestateresourceconditionunion.md @@ -17,4 +17,3 @@ const value: models.CurrentReleaseProfileConditionStateResource = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/daemoninstancecpuunion1.md b/client-sdks/platform/typescript/docs/models/daemoninstancecpuunion1.md index 8a7421702..14f92ba81 100644 --- a/client-sdks/platform/typescript/docs/models/daemoninstancecpuunion1.md +++ b/client-sdks/platform/typescript/docs/models/daemoninstancecpuunion1.md @@ -17,4 +17,3 @@ const value: models.CpuDaemonInstance1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/daemoninstancecpuunion2.md b/client-sdks/platform/typescript/docs/models/daemoninstancecpuunion2.md index 8e187706a..4668c86aa 100644 --- a/client-sdks/platform/typescript/docs/models/daemoninstancecpuunion2.md +++ b/client-sdks/platform/typescript/docs/models/daemoninstancecpuunion2.md @@ -17,4 +17,3 @@ const value: models.CpuDaemonInstance2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/daemoninstancecpuunion3.md b/client-sdks/platform/typescript/docs/models/daemoninstancecpuunion3.md index 2aac966ae..24a314deb 100644 --- a/client-sdks/platform/typescript/docs/models/daemoninstancecpuunion3.md +++ b/client-sdks/platform/typescript/docs/models/daemoninstancecpuunion3.md @@ -17,4 +17,3 @@ const value: models.CpuDaemonInstance3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/daemoninstancecpuunion4.md b/client-sdks/platform/typescript/docs/models/daemoninstancecpuunion4.md index 82ca6a2a4..d031de4d1 100644 --- a/client-sdks/platform/typescript/docs/models/daemoninstancecpuunion4.md +++ b/client-sdks/platform/typescript/docs/models/daemoninstancecpuunion4.md @@ -17,4 +17,3 @@ const value: models.CpuDaemonInstance4 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/daemoninstancecpuunion5.md b/client-sdks/platform/typescript/docs/models/daemoninstancecpuunion5.md index 3a2a09be2..48b66327a 100644 --- a/client-sdks/platform/typescript/docs/models/daemoninstancecpuunion5.md +++ b/client-sdks/platform/typescript/docs/models/daemoninstancecpuunion5.md @@ -17,4 +17,3 @@ const value: models.DaemonInstanceCpu = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/daemoninstancememoryunion1.md b/client-sdks/platform/typescript/docs/models/daemoninstancememoryunion1.md index 122145c3a..29fe8d372 100644 --- a/client-sdks/platform/typescript/docs/models/daemoninstancememoryunion1.md +++ b/client-sdks/platform/typescript/docs/models/daemoninstancememoryunion1.md @@ -17,4 +17,3 @@ const value: models.MemoryDaemonInstance1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/daemoninstancememoryunion2.md b/client-sdks/platform/typescript/docs/models/daemoninstancememoryunion2.md index 8aa17262b..8f7867062 100644 --- a/client-sdks/platform/typescript/docs/models/daemoninstancememoryunion2.md +++ b/client-sdks/platform/typescript/docs/models/daemoninstancememoryunion2.md @@ -17,4 +17,3 @@ const value: models.MemoryDaemonInstance2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/daemoninstancememoryunion3.md b/client-sdks/platform/typescript/docs/models/daemoninstancememoryunion3.md index fef1de15c..b24395247 100644 --- a/client-sdks/platform/typescript/docs/models/daemoninstancememoryunion3.md +++ b/client-sdks/platform/typescript/docs/models/daemoninstancememoryunion3.md @@ -17,4 +17,3 @@ const value: models.MemoryDaemonInstance3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/daemoninstancememoryunion4.md b/client-sdks/platform/typescript/docs/models/daemoninstancememoryunion4.md index 395e5cacf..24b1929ea 100644 --- a/client-sdks/platform/typescript/docs/models/daemoninstancememoryunion4.md +++ b/client-sdks/platform/typescript/docs/models/daemoninstancememoryunion4.md @@ -17,4 +17,3 @@ const value: models.MemoryDaemonInstance4 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/daemoninstancememoryunion5.md b/client-sdks/platform/typescript/docs/models/daemoninstancememoryunion5.md index 1103a62c4..ff76a3697 100644 --- a/client-sdks/platform/typescript/docs/models/daemoninstancememoryunion5.md +++ b/client-sdks/platform/typescript/docs/models/daemoninstancememoryunion5.md @@ -17,4 +17,3 @@ const value: models.DaemonInstanceMemory = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/daemoninstanceunion.md b/client-sdks/platform/typescript/docs/models/daemoninstanceunion.md index b2454da5a..3972c3800 100644 --- a/client-sdks/platform/typescript/docs/models/daemoninstanceunion.md +++ b/client-sdks/platform/typescript/docs/models/daemoninstanceunion.md @@ -19,4 +19,3 @@ const value: models.DaemonInstance5 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/dataai.md b/client-sdks/platform/typescript/docs/models/dataai.md new file mode 100644 index 000000000..1691fb8ec --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/dataai.md @@ -0,0 +1,43 @@ +# DataAi + +## Example Usage + +```typescript +import { DataAi } from "@alienplatform/platform-api/models"; + +let value: DataAi = { + data: { + availability: { + catalogRevision: "", + models: [ + { + accessTest: "not-checked", + availability: "unknown", + blockers: [], + clientApis: [], + publicModelId: "", + }, + ], + source: "anthropic", + }, + location: "", + project: "", + status: { + collectionIssues: [], + health: "degraded", + lifecycle: "unknown", + partial: false, + stale: false, + }, + backend: "gcpVertex", + }, + resourceType: "ai", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | +| `data` | *models.SyncReconcileRequestDataUnion16* | :heavy_check_mark: | N/A | +| `resourceType` | *"ai"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/dataassumingrole.md b/client-sdks/platform/typescript/docs/models/dataassumingrole.md deleted file mode 100644 index 3b44fd793..000000000 --- a/client-sdks/platform/typescript/docs/models/dataassumingrole.md +++ /dev/null @@ -1,19 +0,0 @@ -# DataAssumingRole - -## Example Usage - -```typescript -import { DataAssumingRole } from "@alienplatform/platform-api/models"; - -let value: DataAssumingRole = { - roleArn: "", - type: "AssumingRole", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------- | ------------------------- | ------------------------- | ------------------------- | -| `roleArn` | *string* | :heavy_check_mark: | ARN of the role to assume | -| `type` | *"AssumingRole"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/dataaws1.md b/client-sdks/platform/typescript/docs/models/dataaws1.md index e5001eef3..5a5d60f34 100644 --- a/client-sdks/platform/typescript/docs/models/dataaws1.md +++ b/client-sdks/platform/typescript/docs/models/dataaws1.md @@ -63,6 +63,7 @@ let value: DataAws1 = { | `horizonStatusMessage` | *string* | :heavy_minus_sign: | N/A | | `horizonStatusReason` | *string* | :heavy_minus_sign: | N/A | | `latestUpdateTimestamp` | *string* | :heavy_check_mark: | N/A | +| `observedImage` | *string* | :heavy_minus_sign: | N/A | | `status` | [models.ResourceHeartbeatStatus13](../models/resourceheartbeatstatus13.md) | :heavy_check_mark: | N/A | | `unavailableInstances` | *number* | :heavy_check_mark: | N/A | | `backend` | *"aws"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/dataawsbedrock.md b/client-sdks/platform/typescript/docs/models/dataawsbedrock.md new file mode 100644 index 000000000..522285679 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/dataawsbedrock.md @@ -0,0 +1,40 @@ +# DataAwsBedrock + +## Example Usage + +```typescript +import { DataAwsBedrock } from "@alienplatform/platform-api/models"; + +let value: DataAwsBedrock = { + availability: { + catalogRevision: "", + models: [], + source: "aws-bedrock", + }, + region: "", + status: { + collectionIssues: [ + { + message: "", + reason: "timed-out", + severity: "warning", + source: "", + }, + ], + health: "unhealthy", + lifecycle: "deleting", + partial: false, + stale: false, + }, + backend: "awsBedrock", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `availability` | [models.Availability1](../models/availability1.md) | :heavy_check_mark: | N/A | +| `region` | *string* | :heavy_check_mark: | N/A | +| `status` | [models.ResourceHeartbeatStatus66](../models/resourceheartbeatstatus66.md) | :heavy_check_mark: | N/A | +| `backend` | *"awsBedrock"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/dataawskms.md b/client-sdks/platform/typescript/docs/models/dataawskms.md new file mode 100644 index 000000000..2a67f90d1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/dataawskms.md @@ -0,0 +1,29 @@ +# DataAwsKms + +## Example Usage + +```typescript +import { DataAwsKms } from "@alienplatform/platform-api/models"; + +let value: DataAwsKms = { + data: { + enabled: true, + keyArn: "", + keySpec: "", + keyState: "", + keyUsage: "", + status: { + health: "unhealthy", + lifecycle: "stopped", + }, + }, + provider: "aws-kms", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `data` | [models.SyncReconcileRequestData6](../models/syncreconcilerequestdata6.md) | :heavy_check_mark: | N/A | +| `provider` | *"aws-kms"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/dataazure1.md b/client-sdks/platform/typescript/docs/models/dataazure1.md index 379971c48..e33a746de 100644 --- a/client-sdks/platform/typescript/docs/models/dataazure1.md +++ b/client-sdks/platform/typescript/docs/models/dataazure1.md @@ -58,6 +58,7 @@ let value: DataAzure1 = { | `horizonStatusMessage` | *string* | :heavy_minus_sign: | N/A | | `horizonStatusReason` | *string* | :heavy_minus_sign: | N/A | | `latestUpdateTimestamp` | *string* | :heavy_check_mark: | N/A | +| `observedImage` | *string* | :heavy_minus_sign: | N/A | | `status` | [models.ResourceHeartbeatStatus15](../models/resourceheartbeatstatus15.md) | :heavy_check_mark: | N/A | | `unavailableInstances` | *number* | :heavy_check_mark: | N/A | | `backend` | *"azure"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/dataazurefoundry.md b/client-sdks/platform/typescript/docs/models/dataazurefoundry.md new file mode 100644 index 000000000..231017448 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/dataazurefoundry.md @@ -0,0 +1,53 @@ +# DataAzureFoundry + +## Example Usage + +```typescript +import { DataAzureFoundry } from "@alienplatform/platform-api/models"; + +let value: DataAzureFoundry = { + accountName: "", + availability: { + catalogRevision: "", + models: [ + { + accessTest: "verified", + availability: "available", + blockers: [], + clientApis: [ + "anthropic-messages", + ], + publicModelId: "", + }, + ], + source: "azure-foundry", + }, + status: { + collectionIssues: [ + { + message: "", + reason: "collection-failed", + severity: "warning", + source: "", + }, + ], + health: "unknown", + lifecycle: "stopping", + partial: false, + stale: false, + }, + backend: "azureFoundry", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `accountName` | *string* | :heavy_check_mark: | N/A | +| `availability` | [models.Availability3](../models/availability3.md) | :heavy_check_mark: | N/A | +| `endpoint` | *string* | :heavy_minus_sign: | N/A | +| `location` | *string* | :heavy_minus_sign: | N/A | +| `resourceGroup` | *string* | :heavy_minus_sign: | N/A | +| `status` | [models.ResourceHeartbeatStatus68](../models/resourceheartbeatstatus68.md) | :heavy_check_mark: | N/A | +| `backend` | *"azureFoundry"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/dataazurekeyvault.md b/client-sdks/platform/typescript/docs/models/dataazurekeyvault.md deleted file mode 100644 index fa903de85..000000000 --- a/client-sdks/platform/typescript/docs/models/dataazurekeyvault.md +++ /dev/null @@ -1,49 +0,0 @@ -# DataAzureKeyVault - -## Example Usage - -```typescript -import { DataAzureKeyVault } from "@alienplatform/platform-api/models"; - -let value: DataAzureKeyVault = { - accessPolicyCount: 923246, - name: "", - privateEndpointConnectionCount: 319306, - publicNetworkAccess: "", - rbacAuthorizationEnabled: true, - secretMetadataListed: false, - softDeleteEnabled: false, - softDeleteRetentionDays: 497787, - status: { - collectionIssues: [], - health: "degraded", - lifecycle: "creating", - partial: true, - stale: false, - }, - backend: "azureKeyVault", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -| `accessPolicyCount` | *number* | :heavy_check_mark: | N/A | -| `location` | *string* | :heavy_minus_sign: | N/A | -| `name` | *string* | :heavy_check_mark: | N/A | -| `privateEndpointConnectionCount` | *number* | :heavy_check_mark: | N/A | -| `provisioningState` | *string* | :heavy_minus_sign: | N/A | -| `publicNetworkAccess` | *string* | :heavy_check_mark: | N/A | -| `purgeProtectionEnabled` | *boolean* | :heavy_minus_sign: | N/A | -| `rbacAuthorizationEnabled` | *boolean* | :heavy_check_mark: | N/A | -| `resourceGroup` | *string* | :heavy_minus_sign: | N/A | -| `resourceId` | *string* | :heavy_minus_sign: | N/A | -| `secretMetadataListed` | *boolean* | :heavy_check_mark: | N/A | -| `skuFamily` | *string* | :heavy_minus_sign: | N/A | -| `skuName` | *string* | :heavy_minus_sign: | N/A | -| `softDeleteEnabled` | *boolean* | :heavy_check_mark: | N/A | -| `softDeleteRetentionDays` | *number* | :heavy_check_mark: | N/A | -| `status` | [models.ResourceHeartbeatStatus39](../models/resourceheartbeatstatus39.md) | :heavy_check_mark: | N/A | -| `vaultUri` | *string* | :heavy_minus_sign: | N/A | -| `backend` | *"azureKeyVault"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/dataazurekeyvault1.md b/client-sdks/platform/typescript/docs/models/dataazurekeyvault1.md new file mode 100644 index 000000000..8f24d7562 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/dataazurekeyvault1.md @@ -0,0 +1,56 @@ +# DataAzureKeyVault1 + +## Example Usage + +```typescript +import { DataAzureKeyVault1 } from "@alienplatform/platform-api/models"; + +let value: DataAzureKeyVault1 = { + accessPolicyCount: 582917, + name: "", + privateEndpointConnectionCount: 112234, + publicNetworkAccess: "", + rbacAuthorizationEnabled: true, + secretMetadataListed: false, + softDeleteEnabled: true, + softDeleteRetentionDays: 457442, + status: { + collectionIssues: [ + { + message: "", + reason: "timed-out", + severity: "error", + source: "", + }, + ], + health: "unknown", + lifecycle: "updating", + partial: false, + stale: false, + }, + backend: "azureKeyVault", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `accessPolicyCount` | *number* | :heavy_check_mark: | N/A | +| `location` | *string* | :heavy_minus_sign: | N/A | +| `name` | *string* | :heavy_check_mark: | N/A | +| `privateEndpointConnectionCount` | *number* | :heavy_check_mark: | N/A | +| `provisioningState` | *string* | :heavy_minus_sign: | N/A | +| `publicNetworkAccess` | *string* | :heavy_check_mark: | N/A | +| `purgeProtectionEnabled` | *boolean* | :heavy_minus_sign: | N/A | +| `rbacAuthorizationEnabled` | *boolean* | :heavy_check_mark: | N/A | +| `resourceGroup` | *string* | :heavy_minus_sign: | N/A | +| `resourceId` | *string* | :heavy_minus_sign: | N/A | +| `secretMetadataListed` | *boolean* | :heavy_check_mark: | N/A | +| `skuFamily` | *string* | :heavy_minus_sign: | N/A | +| `skuName` | *string* | :heavy_minus_sign: | N/A | +| `softDeleteEnabled` | *boolean* | :heavy_check_mark: | N/A | +| `softDeleteRetentionDays` | *number* | :heavy_check_mark: | N/A | +| `status` | [models.ResourceHeartbeatStatus39](../models/resourceheartbeatstatus39.md) | :heavy_check_mark: | N/A | +| `vaultUri` | *string* | :heavy_minus_sign: | N/A | +| `backend` | *"azureKeyVault"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/dataazurekeyvault2.md b/client-sdks/platform/typescript/docs/models/dataazurekeyvault2.md new file mode 100644 index 000000000..1bfdac8c8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/dataazurekeyvault2.md @@ -0,0 +1,27 @@ +# DataAzureKeyVault2 + +## Example Usage + +```typescript +import { DataAzureKeyVault2 } from "@alienplatform/platform-api/models"; + +let value: DataAzureKeyVault2 = { + data: { + keyId: "", + keyOperations: [], + keyType: "", + status: { + health: "unknown", + lifecycle: "deleting", + }, + }, + provider: "azure-key-vault", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `data` | [models.SyncReconcileRequestData8](../models/syncreconcilerequestdata8.md) | :heavy_check_mark: | N/A | +| `provider` | *"azure-key-vault"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/databuildingimage.md b/client-sdks/platform/typescript/docs/models/databuildingimage.md deleted file mode 100644 index 8451bcb47..000000000 --- a/client-sdks/platform/typescript/docs/models/databuildingimage.md +++ /dev/null @@ -1,19 +0,0 @@ -# DataBuildingImage - -## Example Usage - -```typescript -import { DataBuildingImage } from "@alienplatform/platform-api/models"; - -let value: DataBuildingImage = { - image: "https://loremflickr.com/965/1538?lock=536245262441792", - type: "BuildingImage", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | -| `image` | *string* | :heavy_check_mark: | Name of the image being built | -| `type` | *"BuildingImage"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/databuildingresource.md b/client-sdks/platform/typescript/docs/models/databuildingresource.md deleted file mode 100644 index 697efce49..000000000 --- a/client-sdks/platform/typescript/docs/models/databuildingresource.md +++ /dev/null @@ -1,22 +0,0 @@ -# DataBuildingResource - -## Example Usage - -```typescript -import { DataBuildingResource } from "@alienplatform/platform-api/models"; - -let value: DataBuildingResource = { - resourceName: "", - resourceType: "", - type: "BuildingResource", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -| `relatedResources` | *string*[] | :heavy_minus_sign: | All resource names sharing this build (for deduped container groups) | -| `resourceName` | *string* | :heavy_check_mark: | Name of the resource being built | -| `resourceType` | *string* | :heavy_check_mark: | Type of the resource: "worker", "container" | -| `type` | *"BuildingResource"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/databuildingstack.md b/client-sdks/platform/typescript/docs/models/databuildingstack.md deleted file mode 100644 index ebc60fb55..000000000 --- a/client-sdks/platform/typescript/docs/models/databuildingstack.md +++ /dev/null @@ -1,19 +0,0 @@ -# DataBuildingStack - -## Example Usage - -```typescript -import { DataBuildingStack } from "@alienplatform/platform-api/models"; - -let value: DataBuildingStack = { - stack: "", - type: "BuildingStack", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | -| `stack` | *string* | :heavy_check_mark: | Name of the stack being built | -| `type` | *"BuildingStack"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datacleaningupenvironment.md b/client-sdks/platform/typescript/docs/models/datacleaningupenvironment.md deleted file mode 100644 index 5ee56c658..000000000 --- a/client-sdks/platform/typescript/docs/models/datacleaningupenvironment.md +++ /dev/null @@ -1,21 +0,0 @@ -# DataCleaningUpEnvironment - -## Example Usage - -```typescript -import { DataCleaningUpEnvironment } from "@alienplatform/platform-api/models"; - -let value: DataCleaningUpEnvironment = { - stackName: "", - strategyName: "", - type: "CleaningUpEnvironment", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | -| `stackName` | *string* | :heavy_check_mark: | Name of the stack being cleaned up | -| `strategyName` | *string* | :heavy_check_mark: | Name of the deployment strategy being used for cleanup | -| `type` | *"CleaningUpEnvironment"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datacleaningupstack.md b/client-sdks/platform/typescript/docs/models/datacleaningupstack.md deleted file mode 100644 index 8496daa1d..000000000 --- a/client-sdks/platform/typescript/docs/models/datacleaningupstack.md +++ /dev/null @@ -1,21 +0,0 @@ -# DataCleaningUpStack - -## Example Usage - -```typescript -import { DataCleaningUpStack } from "@alienplatform/platform-api/models"; - -let value: DataCleaningUpStack = { - stackName: "", - strategyName: "", - type: "CleaningUpStack", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | -| `stackName` | *string* | :heavy_check_mark: | Name of the stack being cleaned up | -| `strategyName` | *string* | :heavy_check_mark: | Name of the deployment strategy being used for cleanup | -| `type` | *"CleaningUpStack"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datacollectionissue66.md b/client-sdks/platform/typescript/docs/models/datacollectionissue66.md new file mode 100644 index 000000000..0aa0ee0ba --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/datacollectionissue66.md @@ -0,0 +1,23 @@ +# DataCollectionIssue66 + +## Example Usage + +```typescript +import { DataCollectionIssue66 } from "@alienplatform/platform-api/models"; + +let value: DataCollectionIssue66 = { + message: "", + reason: "not-installed", + severity: "info", + source: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | +| `message` | *string* | :heavy_check_mark: | N/A | +| `reason` | [models.DataReason66](../models/datareason66.md) | :heavy_check_mark: | N/A | +| `severity` | [models.StatusSeverity66](../models/statusseverity66.md) | :heavy_check_mark: | N/A | +| `source` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datacollectionissue67.md b/client-sdks/platform/typescript/docs/models/datacollectionissue67.md new file mode 100644 index 000000000..2383f9165 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/datacollectionissue67.md @@ -0,0 +1,23 @@ +# DataCollectionIssue67 + +## Example Usage + +```typescript +import { DataCollectionIssue67 } from "@alienplatform/platform-api/models"; + +let value: DataCollectionIssue67 = { + message: "", + reason: "api-unavailable", + severity: "error", + source: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | +| `message` | *string* | :heavy_check_mark: | N/A | +| `reason` | [models.DataReason67](../models/datareason67.md) | :heavy_check_mark: | N/A | +| `severity` | [models.StatusSeverity67](../models/statusseverity67.md) | :heavy_check_mark: | N/A | +| `source` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datacollectionissue68.md b/client-sdks/platform/typescript/docs/models/datacollectionissue68.md new file mode 100644 index 000000000..58f6eb160 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/datacollectionissue68.md @@ -0,0 +1,23 @@ +# DataCollectionIssue68 + +## Example Usage + +```typescript +import { DataCollectionIssue68 } from "@alienplatform/platform-api/models"; + +let value: DataCollectionIssue68 = { + message: "", + reason: "collection-failed", + severity: "info", + source: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | +| `message` | *string* | :heavy_check_mark: | N/A | +| `reason` | [models.DataReason68](../models/datareason68.md) | :heavy_check_mark: | N/A | +| `severity` | [models.StatusSeverity68](../models/statusseverity68.md) | :heavy_check_mark: | N/A | +| `source` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datacollectionissue69.md b/client-sdks/platform/typescript/docs/models/datacollectionissue69.md new file mode 100644 index 000000000..8da985cab --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/datacollectionissue69.md @@ -0,0 +1,23 @@ +# DataCollectionIssue69 + +## Example Usage + +```typescript +import { DataCollectionIssue69 } from "@alienplatform/platform-api/models"; + +let value: DataCollectionIssue69 = { + message: "", + reason: "forbidden", + severity: "error", + source: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | +| `message` | *string* | :heavy_check_mark: | N/A | +| `reason` | [models.DataReason69](../models/datareason69.md) | :heavy_check_mark: | N/A | +| `severity` | [models.StatusSeverity69](../models/statusseverity69.md) | :heavy_check_mark: | N/A | +| `source` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datacompilingcode.md b/client-sdks/platform/typescript/docs/models/datacompilingcode.md deleted file mode 100644 index 1a14afdd2..000000000 --- a/client-sdks/platform/typescript/docs/models/datacompilingcode.md +++ /dev/null @@ -1,20 +0,0 @@ -# DataCompilingCode - -## Example Usage - -```typescript -import { DataCompilingCode } from "@alienplatform/platform-api/models"; - -let value: DataCompilingCode = { - language: "", - type: "CompilingCode", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `language` | *string* | :heavy_check_mark: | Language being compiled (rust, typescript, etc.) | -| `progress` | *string* | :heavy_minus_sign: | Current progress/status line from the build output | -| `type` | *"CompilingCode"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datacreatingrelease.md b/client-sdks/platform/typescript/docs/models/datacreatingrelease.md deleted file mode 100644 index af2526d5a..000000000 --- a/client-sdks/platform/typescript/docs/models/datacreatingrelease.md +++ /dev/null @@ -1,19 +0,0 @@ -# DataCreatingRelease - -## Example Usage - -```typescript -import { DataCreatingRelease } from "@alienplatform/platform-api/models"; - -let value: DataCreatingRelease = { - project: "", - type: "CreatingRelease", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------- | ------------------- | ------------------- | ------------------- | -| `project` | *string* | :heavy_check_mark: | Project name | -| `type` | *"CreatingRelease"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datadebuggingagent.md b/client-sdks/platform/typescript/docs/models/datadebuggingagent.md deleted file mode 100644 index 595ffc79c..000000000 --- a/client-sdks/platform/typescript/docs/models/datadebuggingagent.md +++ /dev/null @@ -1,21 +0,0 @@ -# DataDebuggingAgent - -## Example Usage - -```typescript -import { DataDebuggingAgent } from "@alienplatform/platform-api/models"; - -let value: DataDebuggingAgent = { - agentId: "", - debugSessionId: "", - type: "DebuggingAgent", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | -| `agentId` | *string* | :heavy_check_mark: | ID of the agent being debugged | -| `debugSessionId` | *string* | :heavy_check_mark: | ID of the debug session | -| `type` | *"DebuggingAgent"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datadeletingagent.md b/client-sdks/platform/typescript/docs/models/datadeletingagent.md deleted file mode 100644 index ea7feeb31..000000000 --- a/client-sdks/platform/typescript/docs/models/datadeletingagent.md +++ /dev/null @@ -1,21 +0,0 @@ -# DataDeletingAgent - -## Example Usage - -```typescript -import { DataDeletingAgent } from "@alienplatform/platform-api/models"; - -let value: DataDeletingAgent = { - agentId: "", - releaseId: "", - type: "DeletingAgent", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | -| `agentId` | *string* | :heavy_check_mark: | ID of the agent being deleted | -| `releaseId` | *string* | :heavy_check_mark: | ID of the release that was running on the agent | -| `type` | *"DeletingAgent"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datadeletingcloudformationstack.md b/client-sdks/platform/typescript/docs/models/datadeletingcloudformationstack.md deleted file mode 100644 index 93b4be6aa..000000000 --- a/client-sdks/platform/typescript/docs/models/datadeletingcloudformationstack.md +++ /dev/null @@ -1,21 +0,0 @@ -# DataDeletingCloudFormationStack - -## Example Usage - -```typescript -import { DataDeletingCloudFormationStack } from "@alienplatform/platform-api/models"; - -let value: DataDeletingCloudFormationStack = { - cfnStackName: "", - currentStatus: "", - type: "DeletingCloudFormationStack", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | -| `cfnStackName` | *string* | :heavy_check_mark: | Name of the CloudFormation stack | -| `currentStatus` | *string* | :heavy_check_mark: | Current stack status | -| `type` | *"DeletingCloudFormationStack"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datadeployingcloudformationstack.md b/client-sdks/platform/typescript/docs/models/datadeployingcloudformationstack.md deleted file mode 100644 index 1079d6332..000000000 --- a/client-sdks/platform/typescript/docs/models/datadeployingcloudformationstack.md +++ /dev/null @@ -1,21 +0,0 @@ -# DataDeployingCloudFormationStack - -## Example Usage - -```typescript -import { DataDeployingCloudFormationStack } from "@alienplatform/platform-api/models"; - -let value: DataDeployingCloudFormationStack = { - cfnStackName: "", - currentStatus: "", - type: "DeployingCloudFormationStack", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | -| `cfnStackName` | *string* | :heavy_check_mark: | Name of the CloudFormation stack | -| `currentStatus` | *string* | :heavy_check_mark: | Current stack status | -| `type` | *"DeployingCloudFormationStack"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datadeployingstack.md b/client-sdks/platform/typescript/docs/models/datadeployingstack.md deleted file mode 100644 index 49c811e65..000000000 --- a/client-sdks/platform/typescript/docs/models/datadeployingstack.md +++ /dev/null @@ -1,19 +0,0 @@ -# DataDeployingStack - -## Example Usage - -```typescript -import { DataDeployingStack } from "@alienplatform/platform-api/models"; - -let value: DataDeployingStack = { - stackName: "", - type: "DeployingStack", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | -| `stackName` | *string* | :heavy_check_mark: | Name of the stack being deployed | -| `type` | *"DeployingStack"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datadeploymentcreated.md b/client-sdks/platform/typescript/docs/models/datadeploymentcreated.md deleted file mode 100644 index c13c03230..000000000 --- a/client-sdks/platform/typescript/docs/models/datadeploymentcreated.md +++ /dev/null @@ -1,22 +0,0 @@ -# DataDeploymentCreated - -## Example Usage - -```typescript -import { DataDeploymentCreated } from "@alienplatform/platform-api/models"; - -let value: DataDeploymentCreated = { - deploymentGroupId: "", - deploymentId: "", - type: "DeploymentCreated", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------- | -| `deploymentGroupId` | *string* | :heavy_check_mark: | ID of the deployment group this slot belongs to | -| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment that was created | -| `releaseId` | *string* | :heavy_minus_sign: | Initial release the slot was created with, if any | -| `type` | *"DeploymentCreated"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datadeploymentdegraded.md b/client-sdks/platform/typescript/docs/models/datadeploymentdegraded.md deleted file mode 100644 index bc8004719..000000000 --- a/client-sdks/platform/typescript/docs/models/datadeploymentdegraded.md +++ /dev/null @@ -1,25 +0,0 @@ -# DataDeploymentDegraded - -## Example Usage - -```typescript -import { DataDeploymentDegraded } from "@alienplatform/platform-api/models"; - -let value: DataDeploymentDegraded = { - deploymentId: "", - error: { - code: "", - internal: false, - message: "", - }, - type: "DeploymentDegraded", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | -| `error` | [models.DataError2](../models/dataerror2.md) | :heavy_check_mark: | Canonical error container that provides a structured way to represent errors
with rich metadata including error codes, human-readable messages, context,
and chaining capabilities for error propagation.

This struct is designed to be both machine-readable and user-friendly,
supporting serialization for API responses and detailed error reporting
in distributed systems. | -| `type` | *"DeploymentDegraded"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datadeploymentdeleted.md b/client-sdks/platform/typescript/docs/models/datadeploymentdeleted.md deleted file mode 100644 index 572373e0f..000000000 --- a/client-sdks/platform/typescript/docs/models/datadeploymentdeleted.md +++ /dev/null @@ -1,19 +0,0 @@ -# DataDeploymentDeleted - -## Example Usage - -```typescript -import { DataDeploymentDeleted } from "@alienplatform/platform-api/models"; - -let value: DataDeploymentDeleted = { - deploymentId: "", - type: "DeploymentDeleted", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------- | ------------------------------------- | ------------------------------------- | ------------------------------------- | -| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment that was deleted | -| `type` | *"DeploymentDeleted"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datadeploymentdeletionrequested.md b/client-sdks/platform/typescript/docs/models/datadeploymentdeletionrequested.md deleted file mode 100644 index 138214404..000000000 --- a/client-sdks/platform/typescript/docs/models/datadeploymentdeletionrequested.md +++ /dev/null @@ -1,19 +0,0 @@ -# DataDeploymentDeletionRequested - -## Example Usage - -```typescript -import { DataDeploymentDeletionRequested } from "@alienplatform/platform-api/models"; - -let value: DataDeploymentDeletionRequested = { - deploymentId: "", - type: "DeploymentDeletionRequested", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | -| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | -| `type` | *"DeploymentDeletionRequested"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datadeploymentenvironmentupdated.md b/client-sdks/platform/typescript/docs/models/datadeploymentenvironmentupdated.md deleted file mode 100644 index 2bab8a9c8..000000000 --- a/client-sdks/platform/typescript/docs/models/datadeploymentenvironmentupdated.md +++ /dev/null @@ -1,22 +0,0 @@ -# DataDeploymentEnvironmentUpdated - -## Example Usage - -```typescript -import { DataDeploymentEnvironmentUpdated } from "@alienplatform/platform-api/models"; - -let value: DataDeploymentEnvironmentUpdated = { - changedKeys: [], - deploymentId: "", - type: "DeploymentEnvironmentUpdated", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | -| `actor` | *models.ActorUnion2* | :heavy_minus_sign: | N/A | -| `changedKeys` | *string*[] | :heavy_check_mark: | Names of the environment variables that changed (added, removed, or modified) | -| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | -| `type` | *"DeploymentEnvironmentUpdated"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datadeploymentfailed.md b/client-sdks/platform/typescript/docs/models/datadeploymentfailed.md deleted file mode 100644 index c21788f88..000000000 --- a/client-sdks/platform/typescript/docs/models/datadeploymentfailed.md +++ /dev/null @@ -1,28 +0,0 @@ -# DataDeploymentFailed - -## Example Usage - -```typescript -import { DataDeploymentFailed } from "@alienplatform/platform-api/models"; - -let value: DataDeploymentFailed = { - deploymentId: "", - error: { - code: "", - internal: true, - message: "", - }, - phase: "preflights", - type: "DeploymentFailed", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `attemptedReleaseId` | *string* | :heavy_minus_sign: | ID of the release the platform was trying to deploy, if known | -| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | -| `error` | [models.DataError1](../models/dataerror1.md) | :heavy_check_mark: | Canonical error container that provides a structured way to represent errors
with rich metadata including error codes, human-readable messages, context,
and chaining capabilities for error propagation.

This struct is designed to be both machine-readable and user-friendly,
supporting serialization for API responses and detailed error reporting
in distributed systems. | -| `phase` | [models.Phase](../models/phase.md) | :heavy_check_mark: | Phase of a deployment at which a failure occurred.

Derived from the source deployment status: `preflights-failed` →
`Preflights`, `provisioning-failed` → `Provisioning`, `update-failed` →
`Updating`, `delete-failed` → `Deleting`.
`refresh-failed` is modelled separately via `DeploymentDegraded`. | -| `type` | *"DeploymentFailed"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datadeploymentrecovered.md b/client-sdks/platform/typescript/docs/models/datadeploymentrecovered.md deleted file mode 100644 index 6833109bc..000000000 --- a/client-sdks/platform/typescript/docs/models/datadeploymentrecovered.md +++ /dev/null @@ -1,21 +0,0 @@ -# DataDeploymentRecovered - -## Example Usage - -```typescript -import { DataDeploymentRecovered } from "@alienplatform/platform-api/models"; - -let value: DataDeploymentRecovered = { - deploymentId: "", - releaseId: "", - type: "DeploymentRecovered", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | -| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | -| `releaseId` | *string* | :heavy_check_mark: | ID of the release that is now live | -| `type` | *"DeploymentRecovered"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datadeploymentredeployrequested.md b/client-sdks/platform/typescript/docs/models/datadeploymentredeployrequested.md deleted file mode 100644 index d3b46276d..000000000 --- a/client-sdks/platform/typescript/docs/models/datadeploymentredeployrequested.md +++ /dev/null @@ -1,21 +0,0 @@ -# DataDeploymentRedeployRequested - -## Example Usage - -```typescript -import { DataDeploymentRedeployRequested } from "@alienplatform/platform-api/models"; - -let value: DataDeploymentRedeployRequested = { - deploymentId: "", - releaseId: "", - type: "DeploymentRedeployRequested", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | -| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | -| `releaseId` | *string* | :heavy_check_mark: | ID of the release being redeployed | -| `type` | *"DeploymentRedeployRequested"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datadeploymentreleased.md b/client-sdks/platform/typescript/docs/models/datadeploymentreleased.md deleted file mode 100644 index cf9ffeb9f..000000000 --- a/client-sdks/platform/typescript/docs/models/datadeploymentreleased.md +++ /dev/null @@ -1,22 +0,0 @@ -# DataDeploymentReleased - -## Example Usage - -```typescript -import { DataDeploymentReleased } from "@alienplatform/platform-api/models"; - -let value: DataDeploymentReleased = { - deploymentId: "", - releaseId: "", - type: "DeploymentReleased", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | -| `previousReleaseId` | *string* | :heavy_minus_sign: | ID of the release that was previously live, if any | -| `releaseId` | *string* | :heavy_check_mark: | ID of the release that is now live | -| `type` | *"DeploymentReleased"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datadeploymentreleasepinned.md b/client-sdks/platform/typescript/docs/models/datadeploymentreleasepinned.md deleted file mode 100644 index 26abd58c4..000000000 --- a/client-sdks/platform/typescript/docs/models/datadeploymentreleasepinned.md +++ /dev/null @@ -1,22 +0,0 @@ -# DataDeploymentReleasePinned - -## Example Usage - -```typescript -import { DataDeploymentReleasePinned } from "@alienplatform/platform-api/models"; - -let value: DataDeploymentReleasePinned = { - deploymentId: "", - pinnedReleaseId: "", - type: "DeploymentReleasePinned", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | -| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | -| `pinnedReleaseId` | *string* | :heavy_check_mark: | ID of the release that is now pinned | -| `previousPinnedReleaseId` | *string* | :heavy_minus_sign: | ID of the previously pinned release, if any | -| `type` | *"DeploymentReleasePinned"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datadeploymentreleaseunpinned.md b/client-sdks/platform/typescript/docs/models/datadeploymentreleaseunpinned.md deleted file mode 100644 index 5f9000bef..000000000 --- a/client-sdks/platform/typescript/docs/models/datadeploymentreleaseunpinned.md +++ /dev/null @@ -1,21 +0,0 @@ -# DataDeploymentReleaseUnpinned - -## Example Usage - -```typescript -import { DataDeploymentReleaseUnpinned } from "@alienplatform/platform-api/models"; - -let value: DataDeploymentReleaseUnpinned = { - deploymentId: "", - previousPinnedReleaseId: "", - type: "DeploymentReleaseUnpinned", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | -| `previousPinnedReleaseId` | *string* | :heavy_check_mark: | ID of the release that was previously pinned | -| `type` | *"DeploymentReleaseUnpinned"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datadeploymentretryrequested.md b/client-sdks/platform/typescript/docs/models/datadeploymentretryrequested.md deleted file mode 100644 index 35c49e3d2..000000000 --- a/client-sdks/platform/typescript/docs/models/datadeploymentretryrequested.md +++ /dev/null @@ -1,22 +0,0 @@ -# DataDeploymentRetryRequested - -## Example Usage - -```typescript -import { DataDeploymentRetryRequested } from "@alienplatform/platform-api/models"; - -let value: DataDeploymentRetryRequested = { - deploymentId: "", - type: "DeploymentRetryRequested", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | -| `actor` | *models.ActorUnion1* | :heavy_minus_sign: | N/A | -| `attemptedReleaseId` | *string* | :heavy_minus_sign: | ID of the release that the failed attempt was targeting, if known | -| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | -| `previousError` | *models.PreviousErrorUnion* | :heavy_minus_sign: | N/A | -| `type` | *"DeploymentRetryRequested"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datadownloadingalienruntime.md b/client-sdks/platform/typescript/docs/models/datadownloadingalienruntime.md deleted file mode 100644 index 5bad9710f..000000000 --- a/client-sdks/platform/typescript/docs/models/datadownloadingalienruntime.md +++ /dev/null @@ -1,21 +0,0 @@ -# DataDownloadingAlienRuntime - -## Example Usage - -```typescript -import { DataDownloadingAlienRuntime } from "@alienplatform/platform-api/models"; - -let value: DataDownloadingAlienRuntime = { - targetTriple: "", - type: "DownloadingAlienRuntime", - url: "https://dim-jellyfish.com/", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | -| `targetTriple` | *string* | :heavy_check_mark: | Target triple for the runtime | -| `type` | *"DownloadingAlienRuntime"* | :heavy_check_mark: | N/A | -| `url` | *string* | :heavy_check_mark: | URL being downloaded from | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/dataemptyingbuckets.md b/client-sdks/platform/typescript/docs/models/dataemptyingbuckets.md deleted file mode 100644 index 0c5dba194..000000000 --- a/client-sdks/platform/typescript/docs/models/dataemptyingbuckets.md +++ /dev/null @@ -1,21 +0,0 @@ -# DataEmptyingBuckets - -## Example Usage - -```typescript -import { DataEmptyingBuckets } from "@alienplatform/platform-api/models"; - -let value: DataEmptyingBuckets = { - bucketNames: [ - "", - ], - type: "EmptyingBuckets", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------- | ------------------------------------- | ------------------------------------- | ------------------------------------- | -| `bucketNames` | *string*[] | :heavy_check_mark: | Names of the S3 buckets being emptied | -| `type` | *"EmptyingBuckets"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/dataensuringdockerrepository.md b/client-sdks/platform/typescript/docs/models/dataensuringdockerrepository.md deleted file mode 100644 index d73067ba0..000000000 --- a/client-sdks/platform/typescript/docs/models/dataensuringdockerrepository.md +++ /dev/null @@ -1,19 +0,0 @@ -# DataEnsuringDockerRepository - -## Example Usage - -```typescript -import { DataEnsuringDockerRepository } from "@alienplatform/platform-api/models"; - -let value: DataEnsuringDockerRepository = { - repositoryName: "", - type: "EnsuringDockerRepository", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | -| `repositoryName` | *string* | :heavy_check_mark: | Name of the docker repository | -| `type` | *"EnsuringDockerRepository"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/dataerror1.md b/client-sdks/platform/typescript/docs/models/dataerror1.md deleted file mode 100644 index 7a697b901..000000000 --- a/client-sdks/platform/typescript/docs/models/dataerror1.md +++ /dev/null @@ -1,34 +0,0 @@ -# DataError1 - -Canonical error container that provides a structured way to represent errors -with rich metadata including error codes, human-readable messages, context, -and chaining capabilities for error propagation. - -This struct is designed to be both machine-readable and user-friendly, -supporting serialization for API responses and detailed error reporting -in distributed systems. - -## Example Usage - -```typescript -import { DataError1 } from "@alienplatform/platform-api/models"; - -let value: DataError1 = { - code: "", - internal: false, - message: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `code` | *string* | :heavy_check_mark: | A unique identifier for the type of error.

This should be a short, machine-readable string that can be used
by clients to programmatically handle different error types.
Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" | -| `context` | *any* | :heavy_minus_sign: | Additional diagnostic information about the error context.

This optional field can contain structured data providing more details
about the error, such as validation errors, request parameters that
caused the issue, or other relevant context information. | -| `hint` | *string* | :heavy_minus_sign: | Optional human-facing remediation hint. | -| `httpStatusCode` | *number* | :heavy_minus_sign: | HTTP status code for this error.

Used when converting the error to an HTTP response. If None, falls back to
the error type's default status code or 500. | -| `internal` | *boolean* | :heavy_check_mark: | Indicates if this is an internal error that should not be exposed to users.

When `true`, this error contains sensitive information or implementation
details that should not be shown to end-users. Such errors should be
logged for debugging but replaced with generic error messages in responses. | -| `message` | *string* | :heavy_check_mark: | Human-readable error message.

This message should be clear and actionable for developers or end-users,
providing context about what went wrong and potentially how to fix it. | -| `retryable` | *boolean* | :heavy_minus_sign: | Indicates whether the operation that caused the error should be retried.

When `true`, the error is transient and the operation might succeed
if attempted again. When `false`, retrying the same operation is
unlikely to succeed without changes. | -| `source` | *any* | :heavy_minus_sign: | The underlying error that caused this error, creating an error chain.

This allows for proper error propagation and debugging by maintaining
the full context of how an error occurred through multiple layers
of an application. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/dataerror2.md b/client-sdks/platform/typescript/docs/models/dataerror2.md deleted file mode 100644 index cd2c5cb5a..000000000 --- a/client-sdks/platform/typescript/docs/models/dataerror2.md +++ /dev/null @@ -1,34 +0,0 @@ -# DataError2 - -Canonical error container that provides a structured way to represent errors -with rich metadata including error codes, human-readable messages, context, -and chaining capabilities for error propagation. - -This struct is designed to be both machine-readable and user-friendly, -supporting serialization for API responses and detailed error reporting -in distributed systems. - -## Example Usage - -```typescript -import { DataError2 } from "@alienplatform/platform-api/models"; - -let value: DataError2 = { - code: "", - internal: false, - message: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `code` | *string* | :heavy_check_mark: | A unique identifier for the type of error.

This should be a short, machine-readable string that can be used
by clients to programmatically handle different error types.
Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" | -| `context` | *any* | :heavy_minus_sign: | Additional diagnostic information about the error context.

This optional field can contain structured data providing more details
about the error, such as validation errors, request parameters that
caused the issue, or other relevant context information. | -| `hint` | *string* | :heavy_minus_sign: | Optional human-facing remediation hint. | -| `httpStatusCode` | *number* | :heavy_minus_sign: | HTTP status code for this error.

Used when converting the error to an HTTP response. If None, falls back to
the error type's default status code or 500. | -| `internal` | *boolean* | :heavy_check_mark: | Indicates if this is an internal error that should not be exposed to users.

When `true`, this error contains sensitive information or implementation
details that should not be shown to end-users. Such errors should be
logged for debugging but replaced with generic error messages in responses. | -| `message` | *string* | :heavy_check_mark: | Human-readable error message.

This message should be clear and actionable for developers or end-users,
providing context about what went wrong and potentially how to fix it. | -| `retryable` | *boolean* | :heavy_minus_sign: | Indicates whether the operation that caused the error should be retried.

When `true`, the error is transient and the operation might succeed
if attempted again. When `false`, retrying the same operation is
unlikely to succeed without changes. | -| `source` | *any* | :heavy_minus_sign: | The underlying error that caused this error, creating an error chain.

This allows for proper error propagation and debugging by maintaining
the full context of how an error occurred through multiple layers
of an application. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/dataexternal.md b/client-sdks/platform/typescript/docs/models/dataexternal.md new file mode 100644 index 000000000..8e7547fab --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/dataexternal.md @@ -0,0 +1,28 @@ +# DataExternal + +## Example Usage + +```typescript +import { DataExternal } from "@alienplatform/platform-api/models"; + +let value: DataExternal = { + provider: "", + status: { + collectionIssues: [], + health: "unknown", + lifecycle: "running", + partial: true, + stale: false, + }, + backend: "external", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `availability` | *models.AvailabilityUnion* | :heavy_minus_sign: | N/A | +| `provider` | *string* | :heavy_check_mark: | The BYO-key provider serving this binding (e.g. "openai"). Used on the Local
platform, where the app brings its own provider key instead of an ambient cloud. | +| `status` | [models.ResourceHeartbeatStatus69](../models/resourceheartbeatstatus69.md) | :heavy_check_mark: | N/A | +| `backend` | *"external"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datafinished.md b/client-sdks/platform/typescript/docs/models/datafinished.md deleted file mode 100644 index 0669e0ef8..000000000 --- a/client-sdks/platform/typescript/docs/models/datafinished.md +++ /dev/null @@ -1,17 +0,0 @@ -# DataFinished - -## Example Usage - -```typescript -import { DataFinished } from "@alienplatform/platform-api/models"; - -let value: DataFinished = { - type: "Finished", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `type` | *"Finished"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datagcp1.md b/client-sdks/platform/typescript/docs/models/datagcp1.md index ba5d59e1c..1527ff9c7 100644 --- a/client-sdks/platform/typescript/docs/models/datagcp1.md +++ b/client-sdks/platform/typescript/docs/models/datagcp1.md @@ -57,6 +57,7 @@ let value: DataGcp1 = { | `horizonStatusMessage` | *string* | :heavy_minus_sign: | N/A | | `horizonStatusReason` | *string* | :heavy_minus_sign: | N/A | | `latestUpdateTimestamp` | *string* | :heavy_check_mark: | N/A | +| `observedImage` | *string* | :heavy_minus_sign: | N/A | | `status` | [models.ResourceHeartbeatStatus14](../models/resourceheartbeatstatus14.md) | :heavy_check_mark: | N/A | | `unavailableInstances` | *number* | :heavy_check_mark: | N/A | | `backend` | *"gcp"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datagcpcloudkms.md b/client-sdks/platform/typescript/docs/models/datagcpcloudkms.md new file mode 100644 index 000000000..f360b22ad --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/datagcpcloudkms.md @@ -0,0 +1,26 @@ +# DataGcpCloudKms + +## Example Usage + +```typescript +import { DataGcpCloudKms } from "@alienplatform/platform-api/models"; + +let value: DataGcpCloudKms = { + data: { + cryptoKeyName: "", + purpose: "", + status: { + health: "degraded", + lifecycle: "running", + }, + }, + provider: "gcp-cloud-kms", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `data` | [models.SyncReconcileRequestData7](../models/syncreconcilerequestdata7.md) | :heavy_check_mark: | N/A | +| `provider` | *"gcp-cloud-kms"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datagcpvertex.md b/client-sdks/platform/typescript/docs/models/datagcpvertex.md new file mode 100644 index 000000000..ac0d0db94 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/datagcpvertex.md @@ -0,0 +1,43 @@ +# DataGcpVertex + +## Example Usage + +```typescript +import { DataGcpVertex } from "@alienplatform/platform-api/models"; + +let value: DataGcpVertex = { + availability: { + catalogRevision: "", + models: [ + { + accessTest: "not-checked", + availability: "unknown", + blockers: [], + clientApis: [], + publicModelId: "", + }, + ], + source: "anthropic", + }, + location: "", + project: "", + status: { + collectionIssues: [], + health: "degraded", + lifecycle: "unknown", + partial: false, + stale: false, + }, + backend: "gcpVertex", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `availability` | [models.Availability2](../models/availability2.md) | :heavy_check_mark: | N/A | +| `location` | *string* | :heavy_check_mark: | N/A | +| `project` | *string* | :heavy_check_mark: | N/A | +| `status` | [models.ResourceHeartbeatStatus67](../models/resourceheartbeatstatus67.md) | :heavy_check_mark: | N/A | +| `backend` | *"gcpVertex"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datageneratingcloudformationtemplate.md b/client-sdks/platform/typescript/docs/models/datageneratingcloudformationtemplate.md deleted file mode 100644 index 13e9bd0e6..000000000 --- a/client-sdks/platform/typescript/docs/models/datageneratingcloudformationtemplate.md +++ /dev/null @@ -1,17 +0,0 @@ -# DataGeneratingCloudFormationTemplate - -## Example Usage - -```typescript -import { DataGeneratingCloudFormationTemplate } from "@alienplatform/platform-api/models"; - -let value: DataGeneratingCloudFormationTemplate = { - type: "GeneratingCloudFormationTemplate", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | -| `type` | *"GeneratingCloudFormationTemplate"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datageneratingtemplate.md b/client-sdks/platform/typescript/docs/models/datageneratingtemplate.md deleted file mode 100644 index e83d11e19..000000000 --- a/client-sdks/platform/typescript/docs/models/datageneratingtemplate.md +++ /dev/null @@ -1,19 +0,0 @@ -# DataGeneratingTemplate - -## Example Usage - -```typescript -import { DataGeneratingTemplate } from "@alienplatform/platform-api/models"; - -let value: DataGeneratingTemplate = { - platform: "", - type: "GeneratingTemplate", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `platform` | *string* | :heavy_check_mark: | Platform for which the template is being generated | -| `type` | *"GeneratingTemplate"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datahealth66.md b/client-sdks/platform/typescript/docs/models/datahealth66.md new file mode 100644 index 000000000..388180dfa --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/datahealth66.md @@ -0,0 +1,15 @@ +# DataHealth66 + +## Example Usage + +```typescript +import { DataHealth66 } from "@alienplatform/platform-api/models"; + +let value: DataHealth66 = "degraded"; +``` + +## Values + +```typescript +"unknown" | "healthy" | "degraded" | "unhealthy" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datahealth67.md b/client-sdks/platform/typescript/docs/models/datahealth67.md new file mode 100644 index 000000000..2d2b3cab3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/datahealth67.md @@ -0,0 +1,15 @@ +# DataHealth67 + +## Example Usage + +```typescript +import { DataHealth67 } from "@alienplatform/platform-api/models"; + +let value: DataHealth67 = "degraded"; +``` + +## Values + +```typescript +"unknown" | "healthy" | "degraded" | "unhealthy" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datahealth68.md b/client-sdks/platform/typescript/docs/models/datahealth68.md new file mode 100644 index 000000000..e3bd71e6c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/datahealth68.md @@ -0,0 +1,15 @@ +# DataHealth68 + +## Example Usage + +```typescript +import { DataHealth68 } from "@alienplatform/platform-api/models"; + +let value: DataHealth68 = "degraded"; +``` + +## Values + +```typescript +"unknown" | "healthy" | "degraded" | "unhealthy" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datahealth69.md b/client-sdks/platform/typescript/docs/models/datahealth69.md new file mode 100644 index 000000000..25c2cb86c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/datahealth69.md @@ -0,0 +1,15 @@ +# DataHealth69 + +## Example Usage + +```typescript +import { DataHealth69 } from "@alienplatform/platform-api/models"; + +let value: DataHealth69 = "healthy"; +``` + +## Values + +```typescript +"unknown" | "healthy" | "degraded" | "unhealthy" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datahealth70.md b/client-sdks/platform/typescript/docs/models/datahealth70.md new file mode 100644 index 000000000..31082ba00 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/datahealth70.md @@ -0,0 +1,15 @@ +# DataHealth70 + +## Example Usage + +```typescript +import { DataHealth70 } from "@alienplatform/platform-api/models"; + +let value: DataHealth70 = "unknown"; +``` + +## Values + +```typescript +"unknown" | "healthy" | "degraded" | "unhealthy" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datahealth71.md b/client-sdks/platform/typescript/docs/models/datahealth71.md new file mode 100644 index 000000000..0a7b56e8b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/datahealth71.md @@ -0,0 +1,15 @@ +# DataHealth71 + +## Example Usage + +```typescript +import { DataHealth71 } from "@alienplatform/platform-api/models"; + +let value: DataHealth71 = "degraded"; +``` + +## Values + +```typescript +"unknown" | "healthy" | "degraded" | "unhealthy" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datahealth72.md b/client-sdks/platform/typescript/docs/models/datahealth72.md new file mode 100644 index 000000000..b7b755b92 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/datahealth72.md @@ -0,0 +1,15 @@ +# DataHealth72 + +## Example Usage + +```typescript +import { DataHealth72 } from "@alienplatform/platform-api/models"; + +let value: DataHealth72 = "unknown"; +``` + +## Values + +```typescript +"unknown" | "healthy" | "degraded" | "unhealthy" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datahorizonplatform.md b/client-sdks/platform/typescript/docs/models/datahorizonplatform.md index ea5b52c30..5bcb38d7e 100644 --- a/client-sdks/platform/typescript/docs/models/datahorizonplatform.md +++ b/client-sdks/platform/typescript/docs/models/datahorizonplatform.md @@ -39,7 +39,9 @@ let value: DataHorizonPlatform = { | `cpu` | *models.CpuUnion3* | :heavy_minus_sign: | N/A | | `events` | [models.SyncReconcileRequestEvent3](../models/syncreconcilerequestevent3.md)[] | :heavy_check_mark: | N/A | | `image` | *string* | :heavy_minus_sign: | N/A | +| `latestUpdateTimestamp` | *string* | :heavy_minus_sign: | N/A | | `memory` | *models.MemoryUnion3* | :heavy_minus_sign: | N/A | +| `observedImage` | *string* | :heavy_minus_sign: | N/A | | `replicaUnits` | [models.ReplicaUnit](../models/replicaunit.md)[] | :heavy_check_mark: | N/A | | `replicas` | [models.Replicas2](../models/replicas2.md) | :heavy_check_mark: | N/A | | `schedulingMode` | [models.SchedulingMode](../models/schedulingmode.md) | :heavy_check_mark: | N/A | diff --git a/client-sdks/platform/typescript/docs/models/dataimportingstackstatefromcloudformation.md b/client-sdks/platform/typescript/docs/models/dataimportingstackstatefromcloudformation.md deleted file mode 100644 index 8320b3128..000000000 --- a/client-sdks/platform/typescript/docs/models/dataimportingstackstatefromcloudformation.md +++ /dev/null @@ -1,19 +0,0 @@ -# DataImportingStackStateFromCloudFormation - -## Example Usage - -```typescript -import { DataImportingStackStateFromCloudFormation } from "@alienplatform/platform-api/models"; - -let value: DataImportingStackStateFromCloudFormation = { - cfnStackName: "", - type: "ImportingStackStateFromCloudFormation", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | -| `cfnStackName` | *string* | :heavy_check_mark: | Name of the CloudFormation stack | -| `type` | *"ImportingStackStateFromCloudFormation"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datakey.md b/client-sdks/platform/typescript/docs/models/datakey.md new file mode 100644 index 000000000..67be9a00b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/datakey.md @@ -0,0 +1,30 @@ +# DataKey + +## Example Usage + +```typescript +import { DataKey } from "@alienplatform/platform-api/models"; + +let value: DataKey = { + data: { + data: { + keyId: "", + keyOperations: [], + keyType: "", + status: { + health: "unknown", + lifecycle: "deleting", + }, + }, + provider: "azure-key-vault", + }, + resourceType: "key", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | +| `data` | *models.SyncReconcileRequestDataUnion17* | :heavy_check_mark: | N/A | +| `resourceType` | *"key"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/dataloadingconfiguration.md b/client-sdks/platform/typescript/docs/models/dataloadingconfiguration.md deleted file mode 100644 index 5cb5148ee..000000000 --- a/client-sdks/platform/typescript/docs/models/dataloadingconfiguration.md +++ /dev/null @@ -1,17 +0,0 @@ -# DataLoadingConfiguration - -## Example Usage - -```typescript -import { DataLoadingConfiguration } from "@alienplatform/platform-api/models"; - -let value: DataLoadingConfiguration = { - type: "LoadingConfiguration", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------ | ------------------------ | ------------------------ | ------------------------ | -| `type` | *"LoadingConfiguration"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datamachines1.md b/client-sdks/platform/typescript/docs/models/datamachines1.md index b049d4b97..b419f874a 100644 --- a/client-sdks/platform/typescript/docs/models/datamachines1.md +++ b/client-sdks/platform/typescript/docs/models/datamachines1.md @@ -56,6 +56,7 @@ let value: DataMachines1 = { | `horizonStatusMessage` | *string* | :heavy_minus_sign: | N/A | | `horizonStatusReason` | *string* | :heavy_minus_sign: | N/A | | `latestUpdateTimestamp` | *string* | :heavy_check_mark: | N/A | +| `observedImage` | *string* | :heavy_minus_sign: | N/A | | `status` | [models.ResourceHeartbeatStatus16](../models/resourceheartbeatstatus16.md) | :heavy_check_mark: | N/A | | `unavailableInstances` | *number* | :heavy_check_mark: | N/A | | `backend` | *"machines"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datapreparingenvironment.md b/client-sdks/platform/typescript/docs/models/datapreparingenvironment.md deleted file mode 100644 index 52f8c8f3f..000000000 --- a/client-sdks/platform/typescript/docs/models/datapreparingenvironment.md +++ /dev/null @@ -1,19 +0,0 @@ -# DataPreparingEnvironment - -## Example Usage - -```typescript -import { DataPreparingEnvironment } from "@alienplatform/platform-api/models"; - -let value: DataPreparingEnvironment = { - strategyName: "", - type: "PreparingEnvironment", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | -| `strategyName` | *string* | :heavy_check_mark: | Name of the deployment strategy being used | -| `type` | *"PreparingEnvironment"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/dataprovisioningagent.md b/client-sdks/platform/typescript/docs/models/dataprovisioningagent.md deleted file mode 100644 index bc8856ca5..000000000 --- a/client-sdks/platform/typescript/docs/models/dataprovisioningagent.md +++ /dev/null @@ -1,21 +0,0 @@ -# DataProvisioningAgent - -## Example Usage - -```typescript -import { DataProvisioningAgent } from "@alienplatform/platform-api/models"; - -let value: DataProvisioningAgent = { - agentId: "", - releaseId: "", - type: "ProvisioningAgent", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | -| `agentId` | *string* | :heavy_check_mark: | ID of the agent being provisioned | -| `releaseId` | *string* | :heavy_check_mark: | ID of the release being deployed to the agent | -| `type` | *"ProvisioningAgent"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datapushingimage.md b/client-sdks/platform/typescript/docs/models/datapushingimage.md deleted file mode 100644 index 4fc451a2f..000000000 --- a/client-sdks/platform/typescript/docs/models/datapushingimage.md +++ /dev/null @@ -1,20 +0,0 @@ -# DataPushingImage - -## Example Usage - -```typescript -import { DataPushingImage } from "@alienplatform/platform-api/models"; - -let value: DataPushingImage = { - image: "https://picsum.photos/seed/bgd6b4HoNE/948/3236", - type: "PushingImage", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | -| `image` | *string* | :heavy_check_mark: | Name of the image being pushed | -| `progress` | *models.ProgressUnion* | :heavy_minus_sign: | N/A | -| `type` | *"PushingImage"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datapushingresource.md b/client-sdks/platform/typescript/docs/models/datapushingresource.md deleted file mode 100644 index 4e4a20783..000000000 --- a/client-sdks/platform/typescript/docs/models/datapushingresource.md +++ /dev/null @@ -1,21 +0,0 @@ -# DataPushingResource - -## Example Usage - -```typescript -import { DataPushingResource } from "@alienplatform/platform-api/models"; - -let value: DataPushingResource = { - resourceName: "", - resourceType: "", - type: "PushingResource", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | -| `resourceName` | *string* | :heavy_check_mark: | Name of the resource being pushed | -| `resourceType` | *string* | :heavy_check_mark: | Type of the resource: "worker", "container" | -| `type` | *"PushingResource"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datapushingstack.md b/client-sdks/platform/typescript/docs/models/datapushingstack.md deleted file mode 100644 index b5da8bdc4..000000000 --- a/client-sdks/platform/typescript/docs/models/datapushingstack.md +++ /dev/null @@ -1,22 +0,0 @@ -# DataPushingStack - -## Example Usage - -```typescript -import { DataPushingStack } from "@alienplatform/platform-api/models"; - -let value: DataPushingStack = { - platform: "", - stack: "", - type: "PushingStack", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -| `destination` | *string* | :heavy_minus_sign: | Human-readable destination for pushed images | -| `platform` | *string* | :heavy_check_mark: | Target platform | -| `stack` | *string* | :heavy_check_mark: | Name of the stack being pushed | -| `type` | *"PushingStack"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datareason66.md b/client-sdks/platform/typescript/docs/models/datareason66.md new file mode 100644 index 000000000..2ab42a85f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/datareason66.md @@ -0,0 +1,15 @@ +# DataReason66 + +## Example Usage + +```typescript +import { DataReason66 } from "@alienplatform/platform-api/models"; + +let value: DataReason66 = "timed-out"; +``` + +## Values + +```typescript +"forbidden" | "not-installed" | "api-unavailable" | "collection-failed" | "timed-out" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datareason67.md b/client-sdks/platform/typescript/docs/models/datareason67.md new file mode 100644 index 000000000..ae95b4d27 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/datareason67.md @@ -0,0 +1,15 @@ +# DataReason67 + +## Example Usage + +```typescript +import { DataReason67 } from "@alienplatform/platform-api/models"; + +let value: DataReason67 = "forbidden"; +``` + +## Values + +```typescript +"forbidden" | "not-installed" | "api-unavailable" | "collection-failed" | "timed-out" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datareason68.md b/client-sdks/platform/typescript/docs/models/datareason68.md new file mode 100644 index 000000000..44fe885c6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/datareason68.md @@ -0,0 +1,15 @@ +# DataReason68 + +## Example Usage + +```typescript +import { DataReason68 } from "@alienplatform/platform-api/models"; + +let value: DataReason68 = "api-unavailable"; +``` + +## Values + +```typescript +"forbidden" | "not-installed" | "api-unavailable" | "collection-failed" | "timed-out" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datareason69.md b/client-sdks/platform/typescript/docs/models/datareason69.md new file mode 100644 index 000000000..eb721fdb5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/datareason69.md @@ -0,0 +1,15 @@ +# DataReason69 + +## Example Usage + +```typescript +import { DataReason69 } from "@alienplatform/platform-api/models"; + +let value: DataReason69 = "forbidden"; +``` + +## Values + +```typescript +"forbidden" | "not-installed" | "api-unavailable" | "collection-failed" | "timed-out" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datarunningpreflights.md b/client-sdks/platform/typescript/docs/models/datarunningpreflights.md deleted file mode 100644 index aa2c9ddb4..000000000 --- a/client-sdks/platform/typescript/docs/models/datarunningpreflights.md +++ /dev/null @@ -1,21 +0,0 @@ -# DataRunningPreflights - -## Example Usage - -```typescript -import { DataRunningPreflights } from "@alienplatform/platform-api/models"; - -let value: DataRunningPreflights = { - platform: "", - stack: "", - type: "RunningPreflights", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | -| `platform` | *string* | :heavy_check_mark: | Platform being targeted | -| `stack` | *string* | :heavy_check_mark: | Name of the stack being checked | -| `type` | *"RunningPreflights"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datarunningtestworker.md b/client-sdks/platform/typescript/docs/models/datarunningtestworker.md deleted file mode 100644 index 475f34733..000000000 --- a/client-sdks/platform/typescript/docs/models/datarunningtestworker.md +++ /dev/null @@ -1,19 +0,0 @@ -# DataRunningTestWorker - -## Example Usage - -```typescript -import { DataRunningTestWorker } from "@alienplatform/platform-api/models"; - -let value: DataRunningTestWorker = { - stackName: "", - type: "RunningTestWorker", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | -| `stackName` | *string* | :heavy_check_mark: | Name of the stack being tested | -| `type` | *"RunningTestWorker"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datasettingupplatformcontext.md b/client-sdks/platform/typescript/docs/models/datasettingupplatformcontext.md deleted file mode 100644 index 2caff3986..000000000 --- a/client-sdks/platform/typescript/docs/models/datasettingupplatformcontext.md +++ /dev/null @@ -1,19 +0,0 @@ -# DataSettingUpPlatformContext - -## Example Usage - -```typescript -import { DataSettingUpPlatformContext } from "@alienplatform/platform-api/models"; - -let value: DataSettingUpPlatformContext = { - platformName: "", - type: "SettingUpPlatformContext", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | -| `platformName` | *string* | :heavy_check_mark: | Name of the platform (e.g., "AWS", "GCP") | -| `type` | *"SettingUpPlatformContext"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/datastackstep.md b/client-sdks/platform/typescript/docs/models/datastackstep.md deleted file mode 100644 index 30d528696..000000000 --- a/client-sdks/platform/typescript/docs/models/datastackstep.md +++ /dev/null @@ -1,33 +0,0 @@ -# DataStackStep - -## Example Usage - -```typescript -import { DataStackStep } from "@alienplatform/platform-api/models"; - -let value: DataStackStep = { - nextState: { - platform: "test", - resourcePrefix: "", - resources: { - "key": { - config: { - id: "", - type: "", - }, - status: "running", - type: "", - }, - }, - }, - type: "StackStep", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | -| `nextState` | [models.NextState](../models/nextstate.md) | :heavy_check_mark: | Represents the collective state of all resources in a stack, including platform and pending actions. | -| `suggestedDelayMs` | *number* | :heavy_minus_sign: | An suggested duration to wait before executing the next step. | -| `type` | *"StackStep"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/dataupdatingagent.md b/client-sdks/platform/typescript/docs/models/dataupdatingagent.md deleted file mode 100644 index 79e63e3fb..000000000 --- a/client-sdks/platform/typescript/docs/models/dataupdatingagent.md +++ /dev/null @@ -1,21 +0,0 @@ -# DataUpdatingAgent - -## Example Usage - -```typescript -import { DataUpdatingAgent } from "@alienplatform/platform-api/models"; - -let value: DataUpdatingAgent = { - agentId: "", - releaseId: "", - type: "UpdatingAgent", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------- | -| `agentId` | *string* | :heavy_check_mark: | ID of the agent being updated | -| `releaseId` | *string* | :heavy_check_mark: | ID of the new release being deployed to the agent | -| `type` | *"UpdatingAgent"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deliverystatus.md b/client-sdks/platform/typescript/docs/models/deliverystatus.md new file mode 100644 index 000000000..043e72d42 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deliverystatus.md @@ -0,0 +1,15 @@ +# DeliveryStatus + +## Example Usage + +```typescript +import { DeliveryStatus } from "@alienplatform/platform-api/models"; + +let value: DeliveryStatus = "pending"; +``` + +## Values + +```typescript +"pending" | "sent" | "failed" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deployment.md b/client-sdks/platform/typescript/docs/models/deployment.md index bc502aba0..923f5943b 100644 --- a/client-sdks/platform/typescript/docs/models/deployment.md +++ b/client-sdks/platform/typescript/docs/models/deployment.md @@ -17,6 +17,7 @@ let value: Deployment = { currentReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", desiredReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", pinnedReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", + releaseChannel: "", retryRequested: true, createdAt: new Date("2024-07-02T17:29:04.075Z"), updatedAt: new Date("2026-07-09T12:57:49.283Z"), @@ -46,6 +47,7 @@ let value: Deployment = { | `currentReleaseId` | *string* | :heavy_minus_sign: | ID of the currently deployed release (actual state) | rel_WbhQgksrawSKIpEN0NAssHX9 | | `desiredReleaseId` | *string* | :heavy_minus_sign: | ID of the desired release for deployment/update (desired state) | rel_WbhQgksrawSKIpEN0NAssHX9 | | `pinnedReleaseId` | *string* | :heavy_minus_sign: | ID of the pinned release | rel_WbhQgksrawSKIpEN0NAssHX9 | +| `releaseChannel` | *string* | :heavy_check_mark: | N/A | | | `importSource` | [models.DeploymentImportSource](../models/deploymentimportsource.md) | :heavy_minus_sign: | Setup source that imported this deployment | | | `setupMethod` | [models.DeploymentSetupMethod1](../models/deploymentsetupmethod1.md) | :heavy_minus_sign: | Setup method that created the deployment record and owns setup-time resources. | | | `setupMetadata` | Record | :heavy_minus_sign: | Setup method metadata needed to guide privileged teardown. | | diff --git a/client-sdks/platform/typescript/docs/models/deploymentawsunion.md b/client-sdks/platform/typescript/docs/models/deploymentawsunion.md index ee54eb051..997ba6f31 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentawsunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentawsunion.md @@ -16,4 +16,3 @@ const value: models.DeploymentAws = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentazureunion.md b/client-sdks/platform/typescript/docs/models/deploymentazureunion.md index 348fd9c6a..bc3d945b6 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentazureunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentazureunion.md @@ -16,4 +16,3 @@ const value: models.DeploymentAzureStackSettings = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentcertificateunion1.md b/client-sdks/platform/typescript/docs/models/deploymentcertificateunion1.md index 55e87ef15..677b1519f 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentcertificateunion1.md +++ b/client-sdks/platform/typescript/docs/models/deploymentcertificateunion1.md @@ -47,4 +47,3 @@ const value: models.DeploymentCertificateNone1 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentcertificateunion2.md b/client-sdks/platform/typescript/docs/models/deploymentcertificateunion2.md index 7c2298ba2..9fc5c5797 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentcertificateunion2.md +++ b/client-sdks/platform/typescript/docs/models/deploymentcertificateunion2.md @@ -47,4 +47,3 @@ const value: models.DeploymentCertificateNone2 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentcloudunion.md b/client-sdks/platform/typescript/docs/models/deploymentcloudunion.md index f3e5e6bee..3eab25a6d 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentcloudunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentcloudunion.md @@ -14,4 +14,3 @@ const value: models.DeploymentCloud = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentclusterunion.md b/client-sdks/platform/typescript/docs/models/deploymentclusterunion.md index 66da1bf6b..fb8bb35b6 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentclusterunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentclusterunion.md @@ -16,4 +16,3 @@ const value: models.DeploymentCluster = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentcomputeunion.md b/client-sdks/platform/typescript/docs/models/deploymentcomputeunion.md index eddb90726..a48165112 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentcomputeunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentcomputeunion.md @@ -14,4 +14,3 @@ const value: models.DeploymentCompute = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentcontrollerplatformunion.md b/client-sdks/platform/typescript/docs/models/deploymentcontrollerplatformunion.md index e76a707e3..97a49d2b0 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentcontrollerplatformunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentcontrollerplatformunion.md @@ -14,4 +14,3 @@ const value: models.DeploymentControllerPlatformEnum = "aws"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdefaultboolean.md b/client-sdks/platform/typescript/docs/models/deploymentdefaultboolean.md deleted file mode 100644 index a3b912e0a..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdefaultboolean.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentDefaultBoolean - -## Example Usage - -```typescript -import { DeploymentDefaultBoolean } from "@alienplatform/platform-api/models"; - -let value: DeploymentDefaultBoolean = { - type: "boolean", - value: true, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | -| `type` | [models.DeploymentTypeBoolean](../models/deploymenttypeboolean.md) | :heavy_check_mark: | N/A | -| `value` | *boolean* | :heavy_check_mark: | Boolean default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdefaultnumber.md b/client-sdks/platform/typescript/docs/models/deploymentdefaultnumber.md deleted file mode 100644 index 558b97aa8..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdefaultnumber.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentDefaultNumber - -## Example Usage - -```typescript -import { DeploymentDefaultNumber } from "@alienplatform/platform-api/models"; - -let value: DeploymentDefaultNumber = { - type: "number", - value: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | -| `type` | [models.DeploymentTypeNumber](../models/deploymenttypenumber.md) | :heavy_check_mark: | N/A | -| `value` | *string* | :heavy_check_mark: | Number default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdefaultstring.md b/client-sdks/platform/typescript/docs/models/deploymentdefaultstring.md deleted file mode 100644 index 517a60fde..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdefaultstring.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentDefaultString - -## Example Usage - -```typescript -import { DeploymentDefaultString } from "@alienplatform/platform-api/models"; - -let value: DeploymentDefaultString = { - type: "string", - value: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | -| `type` | [models.DeploymentTypeString](../models/deploymenttypestring.md) | :heavy_check_mark: | N/A | -| `value` | *string* | :heavy_check_mark: | String default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdefaultstringlist.md b/client-sdks/platform/typescript/docs/models/deploymentdefaultstringlist.md deleted file mode 100644 index 54075985b..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdefaultstringlist.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentDefaultStringList - -## Example Usage - -```typescript -import { DeploymentDefaultStringList } from "@alienplatform/platform-api/models"; - -let value: DeploymentDefaultStringList = { - type: "stringList", - value: [], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | -| `type` | [models.DeploymentTypeStringList](../models/deploymenttypestringlist.md) | :heavy_check_mark: | N/A | -| `value` | *string*[] | :heavy_check_mark: | String list default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdefaultunion.md b/client-sdks/platform/typescript/docs/models/deploymentdefaultunion.md deleted file mode 100644 index d98673fad..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdefaultunion.md +++ /dev/null @@ -1,47 +0,0 @@ -# DeploymentDefaultUnion - - -## Supported Types - -### `models.DeploymentDefaultString` - -```typescript -const value: models.DeploymentDefaultString = { - type: "string", - value: "", -}; -``` - -### `models.DeploymentDefaultNumber` - -```typescript -const value: models.DeploymentDefaultNumber = { - type: "number", - value: "", -}; -``` - -### `models.DeploymentDefaultBoolean` - -```typescript -const value: models.DeploymentDefaultBoolean = { - type: "boolean", - value: true, -}; -``` - -### `models.DeploymentDefaultStringList` - -```typescript -const value: models.DeploymentDefaultStringList = { - type: "stringList", - value: [], -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponse.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponse.md index 3edeebf1f..eae7b3096 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponse.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponse.md @@ -17,6 +17,7 @@ let value: DeploymentDetailResponse = { currentReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", desiredReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", pinnedReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", + releaseChannel: "", retryRequested: true, createdAt: new Date("2025-06-14T13:55:15.241Z"), updatedAt: new Date("2025-07-19T07:45:42.706Z"), @@ -38,7 +39,7 @@ let value: DeploymentDetailResponse = { commitAuthorLogin: "johndoe", commitAuthorAvatarUrl: "https://github.com/johndoe.png", }, - createdAt: new Date("2024-06-27T06:57:01.451Z"), + createdAt: new Date("2024-04-17T05:47:54.417Z"), }, deploymentGroup: { id: "dg_r27ict8c7vcgsumpj90ackf7b", @@ -72,6 +73,7 @@ let value: DeploymentDetailResponse = { | `currentReleaseId` | *string* | :heavy_minus_sign: | ID of the currently deployed release (actual state) | rel_WbhQgksrawSKIpEN0NAssHX9 | | `desiredReleaseId` | *string* | :heavy_minus_sign: | ID of the desired release for deployment/update (desired state) | rel_WbhQgksrawSKIpEN0NAssHX9 | | `pinnedReleaseId` | *string* | :heavy_minus_sign: | ID of the pinned release | rel_WbhQgksrawSKIpEN0NAssHX9 | +| `releaseChannel` | *string* | :heavy_check_mark: | N/A | | | `importSource` | [models.DeploymentDetailResponseImportSource](../models/deploymentdetailresponseimportsource.md) | :heavy_minus_sign: | Setup source that imported this deployment | | | `setupMethod` | [models.DeploymentDetailResponseSetupMethod](../models/deploymentdetailresponsesetupmethod.md) | :heavy_minus_sign: | Setup method that created the deployment record and owns setup-time resources. | | | `setupMetadata` | Record | :heavy_minus_sign: | Setup method metadata needed to guide privileged teardown. | | diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseawsunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseawsunion.md index a56957f44..a5245ba7a 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseawsunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseawsunion.md @@ -16,4 +16,3 @@ const value: models.DeploymentDetailResponseAws = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseazureunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseazureunion.md index 45a367f48..b11826d8f 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseazureunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseazureunion.md @@ -16,4 +16,3 @@ const value: models.DeploymentDetailResponseAzureStackSettings = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsecertificateunion1.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsecertificateunion1.md index 00d0d72c3..7a7d31636 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsecertificateunion1.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsecertificateunion1.md @@ -47,4 +47,3 @@ const value: models.DeploymentDetailResponseCertificateNone1 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsecertificateunion2.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsecertificateunion2.md index 692c55517..b931c9f9b 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsecertificateunion2.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsecertificateunion2.md @@ -47,4 +47,3 @@ const value: models.DeploymentDetailResponseCertificateNone2 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsecloudunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsecloudunion.md index 452941059..33b3addcb 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsecloudunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsecloudunion.md @@ -14,4 +14,3 @@ const value: models.DeploymentDetailResponseCloud = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseclusterunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseclusterunion.md index 05ef1e33f..53bb9d223 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseclusterunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseclusterunion.md @@ -16,4 +16,3 @@ const value: models.DeploymentDetailResponseCluster = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsecomputeunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsecomputeunion.md index 3a217a625..ca16b6ee4 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsecomputeunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsecomputeunion.md @@ -14,4 +14,3 @@ const value: models.DeploymentDetailResponseCompute = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsecontrollerplatformunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsecontrollerplatformunion.md index 870ed2f0a..4cc22107f 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsecontrollerplatformunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsecontrollerplatformunion.md @@ -14,4 +14,3 @@ const value: models.DeploymentDetailResponseControllerPlatformEnum = "test"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsedefaultboolean.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsedefaultboolean.md deleted file mode 100644 index a0c8820c9..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsedefaultboolean.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentDetailResponseDefaultBoolean - -## Example Usage - -```typescript -import { DeploymentDetailResponseDefaultBoolean } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseDefaultBoolean = { - type: "boolean", - value: false, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| `type` | [models.DeploymentDetailResponseTypeBoolean](../models/deploymentdetailresponsetypeboolean.md) | :heavy_check_mark: | N/A | -| `value` | *boolean* | :heavy_check_mark: | Boolean default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsedefaultnumber.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsedefaultnumber.md deleted file mode 100644 index 331a30ace..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsedefaultnumber.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentDetailResponseDefaultNumber - -## Example Usage - -```typescript -import { DeploymentDetailResponseDefaultNumber } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseDefaultNumber = { - type: "number", - value: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -| `type` | [models.DeploymentDetailResponseTypeNumber](../models/deploymentdetailresponsetypenumber.md) | :heavy_check_mark: | N/A | -| `value` | *string* | :heavy_check_mark: | Number default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsedefaultstring.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsedefaultstring.md deleted file mode 100644 index 8f4e09e3c..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsedefaultstring.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentDetailResponseDefaultString - -## Example Usage - -```typescript -import { DeploymentDetailResponseDefaultString } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseDefaultString = { - type: "string", - value: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -| `type` | [models.DeploymentDetailResponseTypeString](../models/deploymentdetailresponsetypestring.md) | :heavy_check_mark: | N/A | -| `value` | *string* | :heavy_check_mark: | String default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsedefaultstringlist.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsedefaultstringlist.md deleted file mode 100644 index d3192be77..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsedefaultstringlist.md +++ /dev/null @@ -1,22 +0,0 @@ -# DeploymentDetailResponseDefaultStringList - -## Example Usage - -```typescript -import { DeploymentDetailResponseDefaultStringList } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseDefaultStringList = { - type: "stringList", - value: [ - "", - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | -| `type` | [models.DeploymentDetailResponseTypeStringList](../models/deploymentdetailresponsetypestringlist.md) | :heavy_check_mark: | N/A | -| `value` | *string*[] | :heavy_check_mark: | String list default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsedefaultunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsedefaultunion.md deleted file mode 100644 index 0f8867ec8..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsedefaultunion.md +++ /dev/null @@ -1,50 +0,0 @@ -# DeploymentDetailResponseDefaultUnion - - -## Supported Types - -### `models.DeploymentDetailResponseDefaultString` - -```typescript -const value: models.DeploymentDetailResponseDefaultString = { - type: "string", - value: "", -}; -``` - -### `models.DeploymentDetailResponseDefaultNumber` - -```typescript -const value: models.DeploymentDetailResponseDefaultNumber = { - type: "number", - value: "", -}; -``` - -### `models.DeploymentDetailResponseDefaultBoolean` - -```typescript -const value: models.DeploymentDetailResponseDefaultBoolean = { - type: "boolean", - value: false, -}; -``` - -### `models.DeploymentDetailResponseDefaultStringList` - -```typescript -const value: models.DeploymentDetailResponseDefaultStringList = { - type: "stringList", - value: [ - "", - "", - ], -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsedomainskubernetesunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsedomainskubernetesunion.md index 5f44cb785..4469acef6 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsedomainskubernetesunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsedomainskubernetesunion.md @@ -18,4 +18,3 @@ const value: models.DeploymentDetailResponseDomainsKubernetes = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsedomainsunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsedomainsunion.md index 71f1bcb6a..bae90ec29 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsedomainsunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsedomainsunion.md @@ -14,4 +14,3 @@ const value: models.DeploymentDetailResponseDomains = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseenv.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseenv.md deleted file mode 100644 index a4630e177..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseenv.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentDetailResponseEnv - -How a resolved stack input is injected into runtime environment variables. - -## Example Usage - -```typescript -import { DeploymentDetailResponseEnv } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseEnv = { - name: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | -| `name` | *string* | :heavy_check_mark: | Environment variable name. | -| `targetResources` | *string*[] | :heavy_minus_sign: | Target resource IDs or patterns. None means every env-capable resource. | -| `type` | *models.DeploymentDetailResponseTypeUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseenvironmentinfounion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseenvironmentinfounion.md index 236382dc8..4f400d3b3 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseenvironmentinfounion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseenvironmentinfounion.md @@ -62,4 +62,3 @@ const value: models.DeploymentDetailResponseEnvironmentInfoTest = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseerrorunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseerrorunion.md index b03e847d1..9925f9433 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseerrorunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseerrorunion.md @@ -18,4 +18,3 @@ const value: models.DeploymentDetailResponseErrorStackState = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseexposureunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseexposureunion.md index 8b8f7280f..e67059c99 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseexposureunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseexposureunion.md @@ -48,4 +48,3 @@ const value: models.DeploymentDetailResponseExposureCustom = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextend.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextend.md deleted file mode 100644 index c20cbbb03..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextend.md +++ /dev/null @@ -1,23 +0,0 @@ -# DeploymentDetailResponseExtend - -A permission set that can be applied across different cloud platforms - -## Example Usage - -```typescript -import { DeploymentDetailResponseExtend } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseExtend = { - description: "how meanwhile amid permafrost obnoxiously geez stake", - id: "", - platforms: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | -| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | -| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | -| `platforms` | [models.DeploymentDetailResponseExtendPlatforms](../models/deploymentdetailresponseextendplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendaw.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendaw.md deleted file mode 100644 index 695f927a7..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendaw.md +++ /dev/null @@ -1,24 +0,0 @@ -# DeploymentDetailResponseExtendAw - -AWS-specific platform permission configuration - -## Example Usage - -```typescript -import { DeploymentDetailResponseExtendAw } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseExtendAw = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | -| `binding` | [models.DeploymentDetailResponseExtendAwBinding](../models/deploymentdetailresponseextendawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `effect` | [models.DeploymentDetailResponseExtendEffect](../models/deploymentdetailresponseextendeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | -| `grant` | [models.DeploymentDetailResponseExtendAwGrant](../models/deploymentdetailresponseextendawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendawbinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendawbinding.md deleted file mode 100644 index fb65dafa1..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendawbinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# DeploymentDetailResponseExtendAwBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { DeploymentDetailResponseExtendAwBinding } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseExtendAwBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -| `resource` | [models.DeploymentDetailResponseExtendAwResource](../models/deploymentdetailresponseextendawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | -| `stack` | [models.DeploymentDetailResponseExtendAwStack](../models/deploymentdetailresponseextendawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendawgrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendawgrant.md deleted file mode 100644 index c321c4296..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendawgrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentDetailResponseExtendAwGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { DeploymentDetailResponseExtendAwGrant } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseExtendAwGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendawresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendawresource.md deleted file mode 100644 index ac2278fe3..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendawresource.md +++ /dev/null @@ -1,22 +0,0 @@ -# DeploymentDetailResponseExtendAwResource - -AWS-specific binding specification - -## Example Usage - -```typescript -import { DeploymentDetailResponseExtendAwResource } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseExtendAwResource = { - resources: [ - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | -| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendawstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendawstack.md deleted file mode 100644 index d707ad918..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendawstack.md +++ /dev/null @@ -1,24 +0,0 @@ -# DeploymentDetailResponseExtendAwStack - -AWS-specific binding specification - -## Example Usage - -```typescript -import { DeploymentDetailResponseExtendAwStack } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseExtendAwStack = { - resources: [ - "", - "", - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | -| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendazure.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendazure.md deleted file mode 100644 index c9e06f22d..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendazure.md +++ /dev/null @@ -1,23 +0,0 @@ -# DeploymentDetailResponseExtendAzure - -Azure-specific platform permission configuration - -## Example Usage - -```typescript -import { DeploymentDetailResponseExtendAzure } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseExtendAzure = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | -| `binding` | [models.DeploymentDetailResponseExtendAzureBinding](../models/deploymentdetailresponseextendazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `grant` | [models.DeploymentDetailResponseExtendAzureGrant](../models/deploymentdetailresponseextendazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendazurebinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendazurebinding.md deleted file mode 100644 index 9d78cc1ce..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendazurebinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# DeploymentDetailResponseExtendAzureBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { DeploymentDetailResponseExtendAzureBinding } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseExtendAzureBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -| `resource` | [models.DeploymentDetailResponseExtendAzureResource](../models/deploymentdetailresponseextendazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | -| `stack` | [models.DeploymentDetailResponseExtendAzureStack](../models/deploymentdetailresponseextendazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendazuregrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendazuregrant.md deleted file mode 100644 index 9c7b01cab..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendazuregrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentDetailResponseExtendAzureGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { DeploymentDetailResponseExtendAzureGrant } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseExtendAzureGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendazureresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendazureresource.md deleted file mode 100644 index 8c7f98216..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendazureresource.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentDetailResponseExtendAzureResource - -Azure-specific binding specification - -## Example Usage - -```typescript -import { DeploymentDetailResponseExtendAzureResource } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseExtendAzureResource = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendazurestack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendazurestack.md deleted file mode 100644 index 99cb94a37..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendazurestack.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentDetailResponseExtendAzureStack - -Azure-specific binding specification - -## Example Usage - -```typescript -import { DeploymentDetailResponseExtendAzureStack } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseExtendAzureStack = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendconditionresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendconditionresource.md deleted file mode 100644 index 97c875268..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendconditionresource.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentDetailResponseExtendConditionResource - -GCP IAM condition - -## Example Usage - -```typescript -import { DeploymentDetailResponseExtendConditionResource } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseExtendConditionResource = { - expression: "", - title: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `expression` | *string* | :heavy_check_mark: | N/A | -| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendconditionstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendconditionstack.md deleted file mode 100644 index 2a688ff7c..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendconditionstack.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentDetailResponseExtendConditionStack - -GCP IAM condition - -## Example Usage - -```typescript -import { DeploymentDetailResponseExtendConditionStack } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseExtendConditionStack = { - expression: "", - title: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `expression` | *string* | :heavy_check_mark: | N/A | -| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendeffect.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendeffect.md deleted file mode 100644 index e146007c3..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendeffect.md +++ /dev/null @@ -1,17 +0,0 @@ -# DeploymentDetailResponseExtendEffect - -IAM effect. Defaults to Allow. - -## Example Usage - -```typescript -import { DeploymentDetailResponseExtendEffect } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseExtendEffect = "Allow"; -``` - -## Values - -```typescript -"Allow" | "Deny" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendgcp.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendgcp.md deleted file mode 100644 index 50fd114d1..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendgcp.md +++ /dev/null @@ -1,23 +0,0 @@ -# DeploymentDetailResponseExtendGcp - -GCP-specific platform permission configuration - -## Example Usage - -```typescript -import { DeploymentDetailResponseExtendGcp } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseExtendGcp = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -| `binding` | [models.DeploymentDetailResponseExtendGcpBinding](../models/deploymentdetailresponseextendgcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `grant` | [models.DeploymentDetailResponseExtendGcpGrant](../models/deploymentdetailresponseextendgcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendgcpbinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendgcpbinding.md deleted file mode 100644 index 565702231..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendgcpbinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# DeploymentDetailResponseExtendGcpBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { DeploymentDetailResponseExtendGcpBinding } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseExtendGcpBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | -| `resource` | [models.DeploymentDetailResponseExtendGcpResource](../models/deploymentdetailresponseextendgcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | -| `stack` | [models.DeploymentDetailResponseExtendGcpStack](../models/deploymentdetailresponseextendgcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendgcpgrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendgcpgrant.md deleted file mode 100644 index 289010cbb..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendgcpgrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentDetailResponseExtendGcpGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { DeploymentDetailResponseExtendGcpGrant } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseExtendGcpGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendgcpresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendgcpresource.md deleted file mode 100644 index 8cad3f412..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendgcpresource.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentDetailResponseExtendGcpResource - -GCP-specific binding specification - -## Example Usage - -```typescript -import { DeploymentDetailResponseExtendGcpResource } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseExtendGcpResource = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | -| `condition` | *models.DeploymentDetailResponseExtendResourceConditionUnion* | :heavy_minus_sign: | N/A | -| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendgcpstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendgcpstack.md deleted file mode 100644 index 6c15305bf..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendgcpstack.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentDetailResponseExtendGcpStack - -GCP-specific binding specification - -## Example Usage - -```typescript -import { DeploymentDetailResponseExtendGcpStack } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseExtendGcpStack = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | -| `condition` | *models.DeploymentDetailResponseExtendStackConditionUnion* | :heavy_minus_sign: | N/A | -| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendplatforms.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendplatforms.md deleted file mode 100644 index a0473f156..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendplatforms.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentDetailResponseExtendPlatforms - -Platform-specific permission configurations - -## Example Usage - -```typescript -import { DeploymentDetailResponseExtendPlatforms } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseExtendPlatforms = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | -| `aws` | [models.DeploymentDetailResponseExtendAw](../models/deploymentdetailresponseextendaw.md)[] | :heavy_minus_sign: | AWS permission configurations | -| `azure` | [models.DeploymentDetailResponseExtendAzure](../models/deploymentdetailresponseextendazure.md)[] | :heavy_minus_sign: | Azure permission configurations | -| `gcp` | [models.DeploymentDetailResponseExtendGcp](../models/deploymentdetailresponseextendgcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendresourceconditionunion.md deleted file mode 100644 index 0b5e52163..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendresourceconditionunion.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentDetailResponseExtendResourceConditionUnion - - -## Supported Types - -### `models.DeploymentDetailResponseExtendConditionResource` - -```typescript -const value: models.DeploymentDetailResponseExtendConditionResource = { - expression: "", - title: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendstackconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendstackconditionunion.md deleted file mode 100644 index 58883f707..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendstackconditionunion.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentDetailResponseExtendStackConditionUnion - - -## Supported Types - -### `models.DeploymentDetailResponseExtendConditionStack` - -```typescript -const value: models.DeploymentDetailResponseExtendConditionStack = { - expression: "", - title: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendunion.md deleted file mode 100644 index fff71bf17..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseextendunion.md +++ /dev/null @@ -1,23 +0,0 @@ -# DeploymentDetailResponseExtendUnion - -Reference to a permission set - either by name or inline definition - - -## Supported Types - -### `models.DeploymentDetailResponseExtend` - -```typescript -const value: models.DeploymentDetailResponseExtend = { - description: "how meanwhile amid permafrost obnoxiously geez stake", - id: "", - platforms: {}, -}; -``` - -### `string` - -```typescript -const value: string = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsefailuredomains1.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsefailuredomains1.md new file mode 100644 index 000000000..0238742e4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsefailuredomains1.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponseFailureDomains1 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { DeploymentDetailResponseFailureDomains1 } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponseFailureDomains1 = { + spread: 545321, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsefailuredomains2.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsefailuredomains2.md new file mode 100644 index 000000000..ae7931048 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsefailuredomains2.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponseFailureDomains2 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { DeploymentDetailResponseFailureDomains2 } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponseFailureDomains2 = { + spread: 159411, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsefailuredomainsunion1.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsefailuredomainsunion1.md new file mode 100644 index 000000000..1ac203136 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsefailuredomainsunion1.md @@ -0,0 +1,18 @@ +# DeploymentDetailResponseFailureDomainsUnion1 + + +## Supported Types + +### `models.DeploymentDetailResponseFailureDomains1` + +```typescript +const value: models.DeploymentDetailResponseFailureDomains1 = { + spread: 545321, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsefailuredomainsunion2.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsefailuredomainsunion2.md new file mode 100644 index 000000000..f37d66fd4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsefailuredomainsunion2.md @@ -0,0 +1,18 @@ +# DeploymentDetailResponseFailureDomainsUnion2 + + +## Supported Types + +### `models.DeploymentDetailResponseFailureDomains2` + +```typescript +const value: models.DeploymentDetailResponseFailureDomains2 = { + spread: 159411, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsegcpunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsegcpunion.md index d63e0594d..96c29559a 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsegcpunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsegcpunion.md @@ -16,4 +16,3 @@ const value: models.DeploymentDetailResponseGcpStackSettings = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseinitialsetupauthority.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseinitialsetupauthority.md new file mode 100644 index 000000000..f35729b74 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseinitialsetupauthority.md @@ -0,0 +1,17 @@ +# DeploymentDetailResponseInitialSetupAuthority + +Actor that owns structural work during the initial setup phase. + +## Example Usage + +```typescript +import { DeploymentDetailResponseInitialSetupAuthority } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponseInitialSetupAuthority = "importedHandoff"; +``` + +## Values + +```typescript +"importedHandoff" | "directSetup" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseinput.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseinput.md deleted file mode 100644 index 014b0801e..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseinput.md +++ /dev/null @@ -1,34 +0,0 @@ -# DeploymentDetailResponseInput - -Stack input definition serialized into a release stack. - -## Example Usage - -```typescript -import { DeploymentDetailResponseInput } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseInput = { - description: "psst throughout remorseful hm like ah alongside", - id: "", - kind: "secret", - label: "", - providedBy: [], - required: true, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| `default` | *models.DeploymentDetailResponseDefaultUnion* | :heavy_minus_sign: | N/A | -| `description` | *string* | :heavy_check_mark: | Human-facing helper text. | -| `env` | [models.DeploymentDetailResponseEnv](../models/deploymentdetailresponseenv.md)[] | :heavy_minus_sign: | Runtime env-var mappings for v1 input resolution. | -| `id` | *string* | :heavy_check_mark: | Stable input ID used by CLI/API calls. | -| `kind` | [models.DeploymentDetailResponseKind](../models/deploymentdetailresponsekind.md) | :heavy_check_mark: | Primitive stack input kind. | -| `label` | *string* | :heavy_check_mark: | Human-facing field label. | -| `placeholder` | *string* | :heavy_minus_sign: | Example placeholder shown in UI. | -| `platforms` | [models.DeploymentDetailResponsePreparedStackPlatform](../models/deploymentdetailresponsepreparedstackplatform.md)[] | :heavy_minus_sign: | Platforms where this input applies. | -| `providedBy` | [models.DeploymentDetailResponseProvidedBy](../models/deploymentdetailresponseprovidedby.md)[] | :heavy_check_mark: | Who can provide this value. | -| `required` | *boolean* | :heavy_check_mark: | Whether a resolved value is required before deployment can proceed. | -| `validation` | *models.DeploymentDetailResponseValidationUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsekind.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsekind.md deleted file mode 100644 index e183d12aa..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsekind.md +++ /dev/null @@ -1,17 +0,0 @@ -# DeploymentDetailResponseKind - -Primitive stack input kind. - -## Example Usage - -```typescript -import { DeploymentDetailResponseKind } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseKind = "enum"; -``` - -## Values - -```typescript -"string" | "secret" | "number" | "integer" | "boolean" | "enum" | "stringList" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsekubernetesunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsekubernetesunion.md index f2ab5ef07..39acbebc3 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsekubernetesunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsekubernetesunion.md @@ -14,4 +14,3 @@ const value: models.DeploymentDetailResponseKubernetes = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponselifecycleunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponselifecycleunion.md index 5af2a020d..3fe34a581 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponselifecycleunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponselifecycleunion.md @@ -14,4 +14,3 @@ const value: models.DeploymentDetailResponseLifecycleStackStateEnum = "live"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsemanagement1.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsemanagement1.md deleted file mode 100644 index 7c2345b1b..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsemanagement1.md +++ /dev/null @@ -1,17 +0,0 @@ -# DeploymentDetailResponseManagement1 - -## Example Usage - -```typescript -import { DeploymentDetailResponseManagement1 } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseManagement1 = { - extend: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -| `extend` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsemanagement2.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsemanagement2.md deleted file mode 100644 index ea22791df..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsemanagement2.md +++ /dev/null @@ -1,32 +0,0 @@ -# DeploymentDetailResponseManagement2 - -## Example Usage - -```typescript -import { DeploymentDetailResponseManagement2 } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseManagement2 = { - override: { - "key": [ - { - description: "besides meaningfully genuine", - id: "", - platforms: {}, - }, - ], - "key1": [ - { - description: "besides meaningfully genuine", - id: "", - platforms: {}, - }, - ], - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -| `override` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsemanagementenum.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsemanagementenum.md deleted file mode 100644 index a9c932982..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsemanagementenum.md +++ /dev/null @@ -1,15 +0,0 @@ -# DeploymentDetailResponseManagementEnum - -## Example Usage - -```typescript -import { DeploymentDetailResponseManagementEnum } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseManagementEnum = "auto"; -``` - -## Values - -```typescript -"auto" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsemanagementunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsemanagementunion.md deleted file mode 100644 index 0bcce7187..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsemanagementunion.md +++ /dev/null @@ -1,44 +0,0 @@ -# DeploymentDetailResponseManagementUnion - -Management permissions configuration for stack management access - - -## Supported Types - -### `models.DeploymentDetailResponseManagement1` - -```typescript -const value: models.DeploymentDetailResponseManagement1 = { - extend: {}, -}; -``` - -### `models.DeploymentDetailResponseManagement2` - -```typescript -const value: models.DeploymentDetailResponseManagement2 = { - override: { - "key": [ - { - description: "besides meaningfully genuine", - id: "", - platforms: {}, - }, - ], - "key1": [ - { - description: "besides meaningfully genuine", - id: "", - platforms: {}, - }, - ], - }, -}; -``` - -### `models.DeploymentDetailResponseManagementEnum` - -```typescript -const value: models.DeploymentDetailResponseManagementEnum = "auto"; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsenetworkunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsenetworkunion.md index 478c1f7ba..c300b8793 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsenetworkunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsenetworkunion.md @@ -63,4 +63,3 @@ const value: models.DeploymentDetailResponseNetworkByoVnetAzure = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoutputsunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoutputsunion.md index 288ba854f..2102526b9 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoutputsunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoutputsunion.md @@ -16,4 +16,3 @@ const value: models.DeploymentDetailResponseOutputs = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverride.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverride.md deleted file mode 100644 index 071f7765e..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverride.md +++ /dev/null @@ -1,23 +0,0 @@ -# DeploymentDetailResponseOverride - -A permission set that can be applied across different cloud platforms - -## Example Usage - -```typescript -import { DeploymentDetailResponseOverride } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseOverride = { - description: "skeletal swear indelible than french boo tune-up yahoo yum", - id: "", - platforms: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | -| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | -| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | -| `platforms` | [models.DeploymentDetailResponseOverridePlatforms](../models/deploymentdetailresponseoverrideplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideaw.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideaw.md deleted file mode 100644 index 700073994..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideaw.md +++ /dev/null @@ -1,24 +0,0 @@ -# DeploymentDetailResponseOverrideAw - -AWS-specific platform permission configuration - -## Example Usage - -```typescript -import { DeploymentDetailResponseOverrideAw } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseOverrideAw = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | -| `binding` | [models.DeploymentDetailResponseOverrideAwBinding](../models/deploymentdetailresponseoverrideawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `effect` | [models.DeploymentDetailResponseOverrideEffect](../models/deploymentdetailresponseoverrideeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | -| `grant` | [models.DeploymentDetailResponseOverrideAwGrant](../models/deploymentdetailresponseoverrideawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideawbinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideawbinding.md deleted file mode 100644 index 04e0f75dc..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideawbinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# DeploymentDetailResponseOverrideAwBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { DeploymentDetailResponseOverrideAwBinding } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseOverrideAwBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | -| `resource` | [models.DeploymentDetailResponseOverrideAwResource](../models/deploymentdetailresponseoverrideawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | -| `stack` | [models.DeploymentDetailResponseOverrideAwStack](../models/deploymentdetailresponseoverrideawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideawgrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideawgrant.md deleted file mode 100644 index d6bfdf585..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideawgrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentDetailResponseOverrideAwGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { DeploymentDetailResponseOverrideAwGrant } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseOverrideAwGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideawresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideawresource.md deleted file mode 100644 index 819c0afc7..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideawresource.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentDetailResponseOverrideAwResource - -AWS-specific binding specification - -## Example Usage - -```typescript -import { DeploymentDetailResponseOverrideAwResource } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseOverrideAwResource = { - resources: [], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | -| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideawstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideawstack.md deleted file mode 100644 index 2afbef6a8..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideawstack.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentDetailResponseOverrideAwStack - -AWS-specific binding specification - -## Example Usage - -```typescript -import { DeploymentDetailResponseOverrideAwStack } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseOverrideAwStack = { - resources: [], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | -| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideazure.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideazure.md deleted file mode 100644 index d754d5097..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideazure.md +++ /dev/null @@ -1,23 +0,0 @@ -# DeploymentDetailResponseOverrideAzure - -Azure-specific platform permission configuration - -## Example Usage - -```typescript -import { DeploymentDetailResponseOverrideAzure } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseOverrideAzure = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -| `binding` | [models.DeploymentDetailResponseOverrideAzureBinding](../models/deploymentdetailresponseoverrideazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `grant` | [models.DeploymentDetailResponseOverrideAzureGrant](../models/deploymentdetailresponseoverrideazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideazurebinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideazurebinding.md deleted file mode 100644 index 9563fad45..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideazurebinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# DeploymentDetailResponseOverrideAzureBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { DeploymentDetailResponseOverrideAzureBinding } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseOverrideAzureBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | -| `resource` | [models.DeploymentDetailResponseOverrideAzureResource](../models/deploymentdetailresponseoverrideazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | -| `stack` | [models.DeploymentDetailResponseOverrideAzureStack](../models/deploymentdetailresponseoverrideazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideazuregrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideazuregrant.md deleted file mode 100644 index 83846b0aa..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideazuregrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentDetailResponseOverrideAzureGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { DeploymentDetailResponseOverrideAzureGrant } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseOverrideAzureGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideazureresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideazureresource.md deleted file mode 100644 index 0c30c43b0..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideazureresource.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentDetailResponseOverrideAzureResource - -Azure-specific binding specification - -## Example Usage - -```typescript -import { DeploymentDetailResponseOverrideAzureResource } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseOverrideAzureResource = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideazurestack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideazurestack.md deleted file mode 100644 index 7be375f03..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideazurestack.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentDetailResponseOverrideAzureStack - -Azure-specific binding specification - -## Example Usage - -```typescript -import { DeploymentDetailResponseOverrideAzureStack } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseOverrideAzureStack = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideconditionresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideconditionresource.md deleted file mode 100644 index 7685ba33d..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideconditionresource.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentDetailResponseOverrideConditionResource - -GCP IAM condition - -## Example Usage - -```typescript -import { DeploymentDetailResponseOverrideConditionResource } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseOverrideConditionResource = { - expression: "", - title: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `expression` | *string* | :heavy_check_mark: | N/A | -| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideconditionstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideconditionstack.md deleted file mode 100644 index d44f96a54..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideconditionstack.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentDetailResponseOverrideConditionStack - -GCP IAM condition - -## Example Usage - -```typescript -import { DeploymentDetailResponseOverrideConditionStack } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseOverrideConditionStack = { - expression: "", - title: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `expression` | *string* | :heavy_check_mark: | N/A | -| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideeffect.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideeffect.md deleted file mode 100644 index bedb8d3a8..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideeffect.md +++ /dev/null @@ -1,17 +0,0 @@ -# DeploymentDetailResponseOverrideEffect - -IAM effect. Defaults to Allow. - -## Example Usage - -```typescript -import { DeploymentDetailResponseOverrideEffect } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseOverrideEffect = "Deny"; -``` - -## Values - -```typescript -"Allow" | "Deny" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverridegcp.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverridegcp.md deleted file mode 100644 index 7e7e20fc3..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverridegcp.md +++ /dev/null @@ -1,23 +0,0 @@ -# DeploymentDetailResponseOverrideGcp - -GCP-specific platform permission configuration - -## Example Usage - -```typescript -import { DeploymentDetailResponseOverrideGcp } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseOverrideGcp = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | -| `binding` | [models.DeploymentDetailResponseOverrideGcpBinding](../models/deploymentdetailresponseoverridegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `grant` | [models.DeploymentDetailResponseOverrideGcpGrant](../models/deploymentdetailresponseoverridegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverridegcpbinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverridegcpbinding.md deleted file mode 100644 index f96ea2254..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverridegcpbinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# DeploymentDetailResponseOverrideGcpBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { DeploymentDetailResponseOverrideGcpBinding } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseOverrideGcpBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -| `resource` | [models.DeploymentDetailResponseOverrideGcpResource](../models/deploymentdetailresponseoverridegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | -| `stack` | [models.DeploymentDetailResponseOverrideGcpStack](../models/deploymentdetailresponseoverridegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverridegcpgrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverridegcpgrant.md deleted file mode 100644 index ef844b188..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverridegcpgrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentDetailResponseOverrideGcpGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { DeploymentDetailResponseOverrideGcpGrant } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseOverrideGcpGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverridegcpresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverridegcpresource.md deleted file mode 100644 index 741e62b03..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverridegcpresource.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentDetailResponseOverrideGcpResource - -GCP-specific binding specification - -## Example Usage - -```typescript -import { DeploymentDetailResponseOverrideGcpResource } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseOverrideGcpResource = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | -| `condition` | *models.DeploymentDetailResponseOverrideResourceConditionUnion* | :heavy_minus_sign: | N/A | -| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverridegcpstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverridegcpstack.md deleted file mode 100644 index fb8511e55..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverridegcpstack.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentDetailResponseOverrideGcpStack - -GCP-specific binding specification - -## Example Usage - -```typescript -import { DeploymentDetailResponseOverrideGcpStack } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseOverrideGcpStack = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | -| `condition` | *models.DeploymentDetailResponseOverrideStackConditionUnion* | :heavy_minus_sign: | N/A | -| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideplatforms.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideplatforms.md deleted file mode 100644 index ccae40393..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideplatforms.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentDetailResponseOverridePlatforms - -Platform-specific permission configurations - -## Example Usage - -```typescript -import { DeploymentDetailResponseOverridePlatforms } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseOverridePlatforms = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | -| `aws` | [models.DeploymentDetailResponseOverrideAw](../models/deploymentdetailresponseoverrideaw.md)[] | :heavy_minus_sign: | AWS permission configurations | -| `azure` | [models.DeploymentDetailResponseOverrideAzure](../models/deploymentdetailresponseoverrideazure.md)[] | :heavy_minus_sign: | Azure permission configurations | -| `gcp` | [models.DeploymentDetailResponseOverrideGcp](../models/deploymentdetailresponseoverridegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideresourceconditionunion.md deleted file mode 100644 index dc23b0b3f..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideresourceconditionunion.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentDetailResponseOverrideResourceConditionUnion - - -## Supported Types - -### `models.DeploymentDetailResponseOverrideConditionResource` - -```typescript -const value: models.DeploymentDetailResponseOverrideConditionResource = { - expression: "", - title: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverridestackconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverridestackconditionunion.md deleted file mode 100644 index 0b39721ed..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverridestackconditionunion.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentDetailResponseOverrideStackConditionUnion - - -## Supported Types - -### `models.DeploymentDetailResponseOverrideConditionStack` - -```typescript -const value: models.DeploymentDetailResponseOverrideConditionStack = { - expression: "", - title: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideunion.md deleted file mode 100644 index 9f2a38d0e..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseoverrideunion.md +++ /dev/null @@ -1,23 +0,0 @@ -# DeploymentDetailResponseOverrideUnion - -Reference to a permission set - either by name or inline definition - - -## Supported Types - -### `models.DeploymentDetailResponseOverride` - -```typescript -const value: models.DeploymentDetailResponseOverride = { - description: "skeletal swear indelible than french boo tune-up yahoo yum", - id: "", - platforms: {}, -}; -``` - -### `string` - -```typescript -const value: string = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstack.md new file mode 100644 index 000000000..80c8e4216 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstack.md @@ -0,0 +1,33 @@ +# DeploymentDetailResponsePendingPreparedStack + +A bag of resources, unaware of any cloud. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStack = { + id: "", + resources: { + "key": { + config: { + id: "", + type: "", + }, + dependencies: [], + lifecycle: "live", + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the stack | +| `inputs` | [models.DeploymentDetailResponsePendingPreparedStackInput](../models/deploymentdetailresponsependingpreparedstackinput.md)[] | :heavy_minus_sign: | Input definitions required before setup or deployment can proceed. | +| `permissions` | [models.DeploymentDetailResponsePendingPreparedStackPermissions](../models/deploymentdetailresponsependingpreparedstackpermissions.md) | :heavy_minus_sign: | Combined permissions configuration that contains both profiles and management | +| `resources` | Record | :heavy_check_mark: | Map of resource IDs to their configurations and lifecycle settings | +| `supportedPlatforms` | [models.DeploymentDetailResponsePendingPreparedStackSupportedPlatform](../models/deploymentdetailresponsependingpreparedstacksupportedplatform.md)[] | :heavy_minus_sign: | Which platforms this stack supports. When None, all platforms are supported. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackconfig.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackconfig.md new file mode 100644 index 000000000..03fbfefe4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackconfig.md @@ -0,0 +1,22 @@ +# DeploymentDetailResponsePendingPreparedStackConfig + +Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackConfig } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackConfig = { + id: "", + type: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. | +| `type` | *string* | :heavy_check_mark: | Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. | +| `additionalProperties` | Record | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackdefaultboolean.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackdefaultboolean.md new file mode 100644 index 000000000..990d94984 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackdefaultboolean.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePendingPreparedStackDefaultBoolean + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackDefaultBoolean } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackDefaultBoolean = { + type: "boolean", + value: true, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | [models.DeploymentDetailResponsePendingPreparedStackTypeBoolean](../models/deploymentdetailresponsependingpreparedstacktypeboolean.md) | :heavy_check_mark: | N/A | +| `value` | *boolean* | :heavy_check_mark: | Boolean default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackdefaultnumber.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackdefaultnumber.md new file mode 100644 index 000000000..5b1f80a04 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackdefaultnumber.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePendingPreparedStackDefaultNumber + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackDefaultNumber } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackDefaultNumber = { + type: "number", + value: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | +| `type` | [models.DeploymentDetailResponsePendingPreparedStackTypeNumber](../models/deploymentdetailresponsependingpreparedstacktypenumber.md) | :heavy_check_mark: | N/A | +| `value` | *string* | :heavy_check_mark: | Number default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackdefaultstring.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackdefaultstring.md new file mode 100644 index 000000000..f26ec2ce0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackdefaultstring.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePendingPreparedStackDefaultString + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackDefaultString } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackDefaultString = { + type: "string", + value: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | +| `type` | [models.DeploymentDetailResponsePendingPreparedStackTypeString](../models/deploymentdetailresponsependingpreparedstacktypestring.md) | :heavy_check_mark: | N/A | +| `value` | *string* | :heavy_check_mark: | String default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackdefaultstringlist.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackdefaultstringlist.md new file mode 100644 index 000000000..4b9065406 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackdefaultstringlist.md @@ -0,0 +1,22 @@ +# DeploymentDetailResponsePendingPreparedStackDefaultStringList + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackDefaultStringList } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackDefaultStringList = { + type: "stringList", + value: [ + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | [models.DeploymentDetailResponsePendingPreparedStackTypeStringList](../models/deploymentdetailresponsependingpreparedstacktypestringlist.md) | :heavy_check_mark: | N/A | +| `value` | *string*[] | :heavy_check_mark: | String list default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackdefaultunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackdefaultunion.md new file mode 100644 index 000000000..7ba429e42 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackdefaultunion.md @@ -0,0 +1,53 @@ +# DeploymentDetailResponsePendingPreparedStackDefaultUnion + + +## Supported Types + +### `models.DeploymentDetailResponsePendingPreparedStackDefaultString` + +```typescript +const value: models.DeploymentDetailResponsePendingPreparedStackDefaultString = + { + type: "string", + value: "", + }; +``` + +### `models.DeploymentDetailResponsePendingPreparedStackDefaultNumber` + +```typescript +const value: models.DeploymentDetailResponsePendingPreparedStackDefaultNumber = + { + type: "number", + value: "", + }; +``` + +### `models.DeploymentDetailResponsePendingPreparedStackDefaultBoolean` + +```typescript +const value: models.DeploymentDetailResponsePendingPreparedStackDefaultBoolean = + { + type: "boolean", + value: true, + }; +``` + +### `models.DeploymentDetailResponsePendingPreparedStackDefaultStringList` + +```typescript +const value: + models.DeploymentDetailResponsePendingPreparedStackDefaultStringList = { + type: "stringList", + value: [ + "", + "", + ], + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackdependency.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackdependency.md new file mode 100644 index 000000000..894698c79 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackdependency.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePendingPreparedStackDependency + +Reference to a resource by its stable id and resource type. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackDependency } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackDependency = { + id: "", + type: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | N/A | +| `type` | *string* | :heavy_check_mark: | Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackenv.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackenv.md new file mode 100644 index 000000000..5f0c9847e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackenv.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePendingPreparedStackEnv + +How a resolved stack input is injected into runtime environment variables. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackEnv } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackEnv = { + name: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| `name` | *string* | :heavy_check_mark: | Environment variable name. | +| `targetResources` | *string*[] | :heavy_minus_sign: | Target resource IDs or patterns. None means every env-capable resource. | +| `type` | *models.DeploymentDetailResponsePendingPreparedStackTypeUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextend.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextend.md new file mode 100644 index 000000000..0ab2b0f55 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextend.md @@ -0,0 +1,23 @@ +# DeploymentDetailResponsePendingPreparedStackExtend + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackExtend } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackExtend = { + description: "mortally because spectacles per a from of mothball", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.DeploymentDetailResponsePendingPreparedStackExtendPlatforms](../models/deploymentdetailresponsependingpreparedstackextendplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendaw.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendaw.md new file mode 100644 index 000000000..e439a2dbe --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendaw.md @@ -0,0 +1,24 @@ +# DeploymentDetailResponsePendingPreparedStackExtendAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackExtendAw } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackExtendAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.DeploymentDetailResponsePendingPreparedStackExtendAwBinding](../models/deploymentdetailresponsependingpreparedstackextendawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.DeploymentDetailResponsePendingPreparedStackExtendEffect](../models/deploymentdetailresponsependingpreparedstackextendeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.DeploymentDetailResponsePendingPreparedStackExtendAwGrant](../models/deploymentdetailresponsependingpreparedstackextendawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendawbinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendawbinding.md new file mode 100644 index 000000000..6db00a020 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendawbinding.md @@ -0,0 +1,18 @@ +# DeploymentDetailResponsePendingPreparedStackExtendAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackExtendAwBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackExtendAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.DeploymentDetailResponsePendingPreparedStackExtendAwResource](../models/deploymentdetailresponsependingpreparedstackextendawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.DeploymentDetailResponsePendingPreparedStackExtendAwStack](../models/deploymentdetailresponsependingpreparedstackextendawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendawgrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendawgrant.md new file mode 100644 index 000000000..1917eb9c0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendawgrant.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePendingPreparedStackExtendAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackExtendAwGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackExtendAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendawresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendawresource.md new file mode 100644 index 000000000..e01d75207 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendawresource.md @@ -0,0 +1,23 @@ +# DeploymentDetailResponsePendingPreparedStackExtendAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackExtendAwResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackExtendAwResource = { + resources: [ + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendawstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendawstack.md new file mode 100644 index 000000000..ad0e6dbf9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendawstack.md @@ -0,0 +1,22 @@ +# DeploymentDetailResponsePendingPreparedStackExtendAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackExtendAwStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackExtendAwStack = { + resources: [ + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendazure.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendazure.md new file mode 100644 index 000000000..7565351b4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendazure.md @@ -0,0 +1,23 @@ +# DeploymentDetailResponsePendingPreparedStackExtendAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackExtendAzure } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackExtendAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.DeploymentDetailResponsePendingPreparedStackExtendAzureBinding](../models/deploymentdetailresponsependingpreparedstackextendazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.DeploymentDetailResponsePendingPreparedStackExtendAzureGrant](../models/deploymentdetailresponsependingpreparedstackextendazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendazurebinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendazurebinding.md new file mode 100644 index 000000000..d3b04821c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendazurebinding.md @@ -0,0 +1,18 @@ +# DeploymentDetailResponsePendingPreparedStackExtendAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackExtendAzureBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackExtendAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.DeploymentDetailResponsePendingPreparedStackExtendAzureResource](../models/deploymentdetailresponsependingpreparedstackextendazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.DeploymentDetailResponsePendingPreparedStackExtendAzureStack](../models/deploymentdetailresponsependingpreparedstackextendazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendazuregrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendazuregrant.md new file mode 100644 index 000000000..0dd79be07 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendazuregrant.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePendingPreparedStackExtendAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackExtendAzureGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackExtendAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendazureresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendazureresource.md new file mode 100644 index 000000000..69ec940d2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendazureresource.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePendingPreparedStackExtendAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackExtendAzureResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackExtendAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendazurestack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendazurestack.md new file mode 100644 index 000000000..e3f74188f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendazurestack.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePendingPreparedStackExtendAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackExtendAzureStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackExtendAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendconditionresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendconditionresource.md new file mode 100644 index 000000000..52584177d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendconditionresource.md @@ -0,0 +1,22 @@ +# DeploymentDetailResponsePendingPreparedStackExtendConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackExtendConditionResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackExtendConditionResource = + { + expression: "", + title: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendconditionstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendconditionstack.md new file mode 100644 index 000000000..52034d60c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendconditionstack.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePendingPreparedStackExtendConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackExtendConditionStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackExtendConditionStack = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendeffect.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendeffect.md new file mode 100644 index 000000000..1fe8e6f28 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendeffect.md @@ -0,0 +1,17 @@ +# DeploymentDetailResponsePendingPreparedStackExtendEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackExtendEffect } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackExtendEffect = "Allow"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendgcp.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendgcp.md new file mode 100644 index 000000000..58267fb1a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendgcp.md @@ -0,0 +1,23 @@ +# DeploymentDetailResponsePendingPreparedStackExtendGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackExtendGcp } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackExtendGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.DeploymentDetailResponsePendingPreparedStackExtendGcpBinding](../models/deploymentdetailresponsependingpreparedstackextendgcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.DeploymentDetailResponsePendingPreparedStackExtendGcpGrant](../models/deploymentdetailresponsependingpreparedstackextendgcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendgcpbinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendgcpbinding.md new file mode 100644 index 000000000..deddf95e4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendgcpbinding.md @@ -0,0 +1,18 @@ +# DeploymentDetailResponsePendingPreparedStackExtendGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackExtendGcpBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackExtendGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.DeploymentDetailResponsePendingPreparedStackExtendGcpResource](../models/deploymentdetailresponsependingpreparedstackextendgcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.DeploymentDetailResponsePendingPreparedStackExtendGcpStack](../models/deploymentdetailresponsependingpreparedstackextendgcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendgcpgrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendgcpgrant.md new file mode 100644 index 000000000..12e859713 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendgcpgrant.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePendingPreparedStackExtendGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackExtendGcpGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackExtendGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendgcpresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendgcpresource.md new file mode 100644 index 000000000..d15347582 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendgcpresource.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponsePendingPreparedStackExtendGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackExtendGcpResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackExtendGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| `condition` | *models.DeploymentDetailResponsePendingPreparedStackExtendResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendgcpstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendgcpstack.md new file mode 100644 index 000000000..b26a9d517 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendgcpstack.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponsePendingPreparedStackExtendGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackExtendGcpStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackExtendGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `condition` | *models.DeploymentDetailResponsePendingPreparedStackExtendStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendplatforms.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendplatforms.md new file mode 100644 index 000000000..739eaf444 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendplatforms.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePendingPreparedStackExtendPlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackExtendPlatforms } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackExtendPlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `aws` | [models.DeploymentDetailResponsePendingPreparedStackExtendAw](../models/deploymentdetailresponsependingpreparedstackextendaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.DeploymentDetailResponsePendingPreparedStackExtendAzure](../models/deploymentdetailresponsependingpreparedstackextendazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.DeploymentDetailResponsePendingPreparedStackExtendGcp](../models/deploymentdetailresponsependingpreparedstackextendgcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendresourceconditionunion.md new file mode 100644 index 000000000..d15ce0e4b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendresourceconditionunion.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponsePendingPreparedStackExtendResourceConditionUnion + + +## Supported Types + +### `models.DeploymentDetailResponsePendingPreparedStackExtendConditionResource` + +```typescript +const value: + models.DeploymentDetailResponsePendingPreparedStackExtendConditionResource = { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendstackconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendstackconditionunion.md new file mode 100644 index 000000000..20348dcdd --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendstackconditionunion.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponsePendingPreparedStackExtendStackConditionUnion + + +## Supported Types + +### `models.DeploymentDetailResponsePendingPreparedStackExtendConditionStack` + +```typescript +const value: + models.DeploymentDetailResponsePendingPreparedStackExtendConditionStack = { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendunion.md new file mode 100644 index 000000000..94343de0d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackextendunion.md @@ -0,0 +1,22 @@ +# DeploymentDetailResponsePendingPreparedStackExtendUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.DeploymentDetailResponsePendingPreparedStackExtend` + +```typescript +const value: models.DeploymentDetailResponsePendingPreparedStackExtend = { + description: "mortally because spectacles per a from of mothball", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackinput.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackinput.md new file mode 100644 index 000000000..84294b8d3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackinput.md @@ -0,0 +1,34 @@ +# DeploymentDetailResponsePendingPreparedStackInput + +Stack input definition serialized into a release stack. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackInput } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackInput = { + description: "behold when lest but compete long saturate subtract", + id: "", + kind: "enum", + label: "", + providedBy: [], + required: true, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `default` | *models.DeploymentDetailResponsePendingPreparedStackDefaultUnion* | :heavy_minus_sign: | N/A | +| `description` | *string* | :heavy_check_mark: | Human-facing helper text. | +| `env` | [models.DeploymentDetailResponsePendingPreparedStackEnv](../models/deploymentdetailresponsependingpreparedstackenv.md)[] | :heavy_minus_sign: | Runtime env-var mappings for v1 input resolution. | +| `id` | *string* | :heavy_check_mark: | Stable input ID used by CLI/API calls. | +| `kind` | [models.DeploymentDetailResponsePendingPreparedStackKind](../models/deploymentdetailresponsependingpreparedstackkind.md) | :heavy_check_mark: | Primitive stack input kind. | +| `label` | *string* | :heavy_check_mark: | Human-facing field label. | +| `placeholder` | *string* | :heavy_minus_sign: | Example placeholder shown in UI. | +| `platforms` | [models.DeploymentDetailResponsePendingPreparedStackPlatform](../models/deploymentdetailresponsependingpreparedstackplatform.md)[] | :heavy_minus_sign: | Platforms where this input applies. | +| `providedBy` | [models.DeploymentDetailResponsePendingPreparedStackProvidedBy](../models/deploymentdetailresponsependingpreparedstackprovidedby.md)[] | :heavy_check_mark: | Who can provide this value. | +| `required` | *boolean* | :heavy_check_mark: | Whether a resolved value is required before deployment can proceed. | +| `validation` | *models.DeploymentDetailResponsePendingPreparedStackValidationUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackkind.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackkind.md new file mode 100644 index 000000000..c3e519079 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackkind.md @@ -0,0 +1,17 @@ +# DeploymentDetailResponsePendingPreparedStackKind + +Primitive stack input kind. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackKind } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackKind = "integer"; +``` + +## Values + +```typescript +"string" | "secret" | "number" | "integer" | "boolean" | "enum" | "stringList" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstacklifecycle.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstacklifecycle.md new file mode 100644 index 000000000..d1979ae56 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstacklifecycle.md @@ -0,0 +1,17 @@ +# DeploymentDetailResponsePendingPreparedStackLifecycle + +Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackLifecycle } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackLifecycle = "live"; +``` + +## Values + +```typescript +"frozen" | "live" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackmanagement1.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackmanagement1.md new file mode 100644 index 000000000..ef71fb064 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackmanagement1.md @@ -0,0 +1,17 @@ +# DeploymentDetailResponsePendingPreparedStackManagement1 + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackManagement1 } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackManagement1 = { + extend: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `extend` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackmanagement2.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackmanagement2.md new file mode 100644 index 000000000..d92d2231e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackmanagement2.md @@ -0,0 +1,31 @@ +# DeploymentDetailResponsePendingPreparedStackManagement2 + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackManagement2 } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackManagement2 = { + override: { + "key": [ + { + description: "hippodrome around after pfft primary afore creamy", + id: "", + platforms: {}, + }, + ], + "key1": [ + "", + ], + "key2": [ + "", + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `override` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackmanagementenum.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackmanagementenum.md new file mode 100644 index 000000000..f123238cc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackmanagementenum.md @@ -0,0 +1,15 @@ +# DeploymentDetailResponsePendingPreparedStackManagementEnum + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackManagementEnum } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackManagementEnum = "auto"; +``` + +## Values + +```typescript +"auto" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackmanagementunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackmanagementunion.md new file mode 100644 index 000000000..1a9cce4e4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackmanagementunion.md @@ -0,0 +1,43 @@ +# DeploymentDetailResponsePendingPreparedStackManagementUnion + +Management permissions configuration for stack management access + + +## Supported Types + +### `models.DeploymentDetailResponsePendingPreparedStackManagement1` + +```typescript +const value: models.DeploymentDetailResponsePendingPreparedStackManagement1 = { + extend: {}, +}; +``` + +### `models.DeploymentDetailResponsePendingPreparedStackManagement2` + +```typescript +const value: models.DeploymentDetailResponsePendingPreparedStackManagement2 = { + override: { + "key": [ + { + description: "hippodrome around after pfft primary afore creamy", + id: "", + platforms: {}, + }, + ], + "key1": [ + "", + ], + "key2": [ + "", + ], + }, +}; +``` + +### `models.DeploymentDetailResponsePendingPreparedStackManagementEnum` + +```typescript +const value: models.DeploymentDetailResponsePendingPreparedStackManagementEnum = + "auto"; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverride.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverride.md new file mode 100644 index 000000000..e68296489 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverride.md @@ -0,0 +1,23 @@ +# DeploymentDetailResponsePendingPreparedStackOverride + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackOverride } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackOverride = { + description: "under joyously unaccountably stunning", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.DeploymentDetailResponsePendingPreparedStackOverridePlatforms](../models/deploymentdetailresponsependingpreparedstackoverrideplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideaw.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideaw.md new file mode 100644 index 000000000..28cf469b7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideaw.md @@ -0,0 +1,24 @@ +# DeploymentDetailResponsePendingPreparedStackOverrideAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackOverrideAw } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackOverrideAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.DeploymentDetailResponsePendingPreparedStackOverrideAwBinding](../models/deploymentdetailresponsependingpreparedstackoverrideawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.DeploymentDetailResponsePendingPreparedStackOverrideEffect](../models/deploymentdetailresponsependingpreparedstackoverrideeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.DeploymentDetailResponsePendingPreparedStackOverrideAwGrant](../models/deploymentdetailresponsependingpreparedstackoverrideawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideawbinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideawbinding.md new file mode 100644 index 000000000..dd235271c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideawbinding.md @@ -0,0 +1,18 @@ +# DeploymentDetailResponsePendingPreparedStackOverrideAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackOverrideAwBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackOverrideAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.DeploymentDetailResponsePendingPreparedStackOverrideAwResource](../models/deploymentdetailresponsependingpreparedstackoverrideawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.DeploymentDetailResponsePendingPreparedStackOverrideAwStack](../models/deploymentdetailresponsependingpreparedstackoverrideawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideawgrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideawgrant.md new file mode 100644 index 000000000..b4ed3dfcb --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideawgrant.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePendingPreparedStackOverrideAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackOverrideAwGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackOverrideAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideawresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideawresource.md new file mode 100644 index 000000000..3fc01b86d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideawresource.md @@ -0,0 +1,24 @@ +# DeploymentDetailResponsePendingPreparedStackOverrideAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackOverrideAwResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackOverrideAwResource = { + resources: [ + "", + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideawstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideawstack.md new file mode 100644 index 000000000..2e37b8c6e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideawstack.md @@ -0,0 +1,24 @@ +# DeploymentDetailResponsePendingPreparedStackOverrideAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackOverrideAwStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackOverrideAwStack = { + resources: [ + "", + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideazure.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideazure.md new file mode 100644 index 000000000..130447ebe --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideazure.md @@ -0,0 +1,23 @@ +# DeploymentDetailResponsePendingPreparedStackOverrideAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackOverrideAzure } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackOverrideAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.DeploymentDetailResponsePendingPreparedStackOverrideAzureBinding](../models/deploymentdetailresponsependingpreparedstackoverrideazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.DeploymentDetailResponsePendingPreparedStackOverrideAzureGrant](../models/deploymentdetailresponsependingpreparedstackoverrideazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideazurebinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideazurebinding.md new file mode 100644 index 000000000..ea9f62a04 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideazurebinding.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePendingPreparedStackOverrideAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackOverrideAzureBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackOverrideAzureBinding = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.DeploymentDetailResponsePendingPreparedStackOverrideAzureResource](../models/deploymentdetailresponsependingpreparedstackoverrideazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.DeploymentDetailResponsePendingPreparedStackOverrideAzureStack](../models/deploymentdetailresponsependingpreparedstackoverrideazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideazuregrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideazuregrant.md new file mode 100644 index 000000000..c7e8e7f21 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideazuregrant.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePendingPreparedStackOverrideAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackOverrideAzureGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackOverrideAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideazureresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideazureresource.md new file mode 100644 index 000000000..f1475b93b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideazureresource.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePendingPreparedStackOverrideAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackOverrideAzureResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackOverrideAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideazurestack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideazurestack.md new file mode 100644 index 000000000..df474623f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideazurestack.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePendingPreparedStackOverrideAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackOverrideAzureStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackOverrideAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideconditionresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideconditionresource.md new file mode 100644 index 000000000..26b500207 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideconditionresource.md @@ -0,0 +1,22 @@ +# DeploymentDetailResponsePendingPreparedStackOverrideConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackOverrideConditionResource } from "@alienplatform/platform-api/models"; + +let value: + DeploymentDetailResponsePendingPreparedStackOverrideConditionResource = { + expression: "", + title: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideconditionstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideconditionstack.md new file mode 100644 index 000000000..53a6f4d9c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideconditionstack.md @@ -0,0 +1,22 @@ +# DeploymentDetailResponsePendingPreparedStackOverrideConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackOverrideConditionStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackOverrideConditionStack = + { + expression: "", + title: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideeffect.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideeffect.md new file mode 100644 index 000000000..fc009bcf0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideeffect.md @@ -0,0 +1,17 @@ +# DeploymentDetailResponsePendingPreparedStackOverrideEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackOverrideEffect } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackOverrideEffect = "Deny"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverridegcp.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverridegcp.md new file mode 100644 index 000000000..78c17b9a0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverridegcp.md @@ -0,0 +1,23 @@ +# DeploymentDetailResponsePendingPreparedStackOverrideGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackOverrideGcp } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackOverrideGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.DeploymentDetailResponsePendingPreparedStackOverrideGcpBinding](../models/deploymentdetailresponsependingpreparedstackoverridegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.DeploymentDetailResponsePendingPreparedStackOverrideGcpGrant](../models/deploymentdetailresponsependingpreparedstackoverridegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverridegcpbinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverridegcpbinding.md new file mode 100644 index 000000000..3cc70cd58 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverridegcpbinding.md @@ -0,0 +1,18 @@ +# DeploymentDetailResponsePendingPreparedStackOverrideGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackOverrideGcpBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackOverrideGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.DeploymentDetailResponsePendingPreparedStackOverrideGcpResource](../models/deploymentdetailresponsependingpreparedstackoverridegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.DeploymentDetailResponsePendingPreparedStackOverrideGcpStack](../models/deploymentdetailresponsependingpreparedstackoverridegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverridegcpgrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverridegcpgrant.md new file mode 100644 index 000000000..7849d83b2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverridegcpgrant.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePendingPreparedStackOverrideGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackOverrideGcpGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackOverrideGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverridegcpresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverridegcpresource.md new file mode 100644 index 000000000..e8c44c95f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverridegcpresource.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponsePendingPreparedStackOverrideGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackOverrideGcpResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackOverrideGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | +| `condition` | *models.DeploymentDetailResponsePendingPreparedStackOverrideResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverridegcpstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverridegcpstack.md new file mode 100644 index 000000000..504c6dfcc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverridegcpstack.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponsePendingPreparedStackOverrideGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackOverrideGcpStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackOverrideGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| `condition` | *models.DeploymentDetailResponsePendingPreparedStackOverrideStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideplatforms.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideplatforms.md new file mode 100644 index 000000000..4ed80a275 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideplatforms.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePendingPreparedStackOverridePlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackOverridePlatforms } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackOverridePlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| `aws` | [models.DeploymentDetailResponsePendingPreparedStackOverrideAw](../models/deploymentdetailresponsependingpreparedstackoverrideaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.DeploymentDetailResponsePendingPreparedStackOverrideAzure](../models/deploymentdetailresponsependingpreparedstackoverrideazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.DeploymentDetailResponsePendingPreparedStackOverrideGcp](../models/deploymentdetailresponsependingpreparedstackoverridegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideresourceconditionunion.md new file mode 100644 index 000000000..0340aead1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideresourceconditionunion.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePendingPreparedStackOverrideResourceConditionUnion + + +## Supported Types + +### `models.DeploymentDetailResponsePendingPreparedStackOverrideConditionResource` + +```typescript +const value: + models.DeploymentDetailResponsePendingPreparedStackOverrideConditionResource = + { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverridestackconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverridestackconditionunion.md new file mode 100644 index 000000000..a5b41b741 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverridestackconditionunion.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponsePendingPreparedStackOverrideStackConditionUnion + + +## Supported Types + +### `models.DeploymentDetailResponsePendingPreparedStackOverrideConditionStack` + +```typescript +const value: + models.DeploymentDetailResponsePendingPreparedStackOverrideConditionStack = { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideunion.md new file mode 100644 index 000000000..77f9f2253 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackoverrideunion.md @@ -0,0 +1,22 @@ +# DeploymentDetailResponsePendingPreparedStackOverrideUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.DeploymentDetailResponsePendingPreparedStackOverride` + +```typescript +const value: models.DeploymentDetailResponsePendingPreparedStackOverride = { + description: "under joyously unaccountably stunning", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackpermissions.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackpermissions.md new file mode 100644 index 000000000..f5099da51 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackpermissions.md @@ -0,0 +1,27 @@ +# DeploymentDetailResponsePendingPreparedStackPermissions + +Combined permissions configuration that contains both profiles and management + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackPermissions } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackPermissions = { + profiles: { + "key": {}, + "key1": { + "key": [ + "", + ], + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `management` | *models.DeploymentDetailResponsePendingPreparedStackManagementUnion* | :heavy_minus_sign: | Management permissions configuration for stack management access | +| `profiles` | Record> | :heavy_check_mark: | Permission profiles that define access control for compute services
Key is the profile name, value is the permission configuration | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackplatform.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackplatform.md new file mode 100644 index 000000000..1f688a961 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackplatform.md @@ -0,0 +1,17 @@ +# DeploymentDetailResponsePendingPreparedStackPlatform + +Represents the target cloud platform. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackPlatform } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackPlatform = "local"; +``` + +## Values + +```typescript +"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofile.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofile.md new file mode 100644 index 000000000..32fcf38c2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofile.md @@ -0,0 +1,23 @@ +# DeploymentDetailResponsePendingPreparedStackProfile + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackProfile } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackProfile = { + description: "suckle heartfelt barring stall partially brr", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.DeploymentDetailResponsePendingPreparedStackProfilePlatforms](../models/deploymentdetailresponsependingpreparedstackprofileplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileaw.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileaw.md new file mode 100644 index 000000000..0f3bd2df4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileaw.md @@ -0,0 +1,24 @@ +# DeploymentDetailResponsePendingPreparedStackProfileAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackProfileAw } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackProfileAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.DeploymentDetailResponsePendingPreparedStackProfileAwBinding](../models/deploymentdetailresponsependingpreparedstackprofileawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.DeploymentDetailResponsePendingPreparedStackProfileEffect](../models/deploymentdetailresponsependingpreparedstackprofileeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.DeploymentDetailResponsePendingPreparedStackProfileAwGrant](../models/deploymentdetailresponsependingpreparedstackprofileawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileawbinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileawbinding.md new file mode 100644 index 000000000..438e251b5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileawbinding.md @@ -0,0 +1,18 @@ +# DeploymentDetailResponsePendingPreparedStackProfileAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackProfileAwBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackProfileAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.DeploymentDetailResponsePendingPreparedStackProfileAwResource](../models/deploymentdetailresponsependingpreparedstackprofileawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.DeploymentDetailResponsePendingPreparedStackProfileAwStack](../models/deploymentdetailresponsependingpreparedstackprofileawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileawgrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileawgrant.md new file mode 100644 index 000000000..ef9acd5b6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileawgrant.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePendingPreparedStackProfileAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackProfileAwGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackProfileAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileawresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileawresource.md new file mode 100644 index 000000000..1ce717364 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileawresource.md @@ -0,0 +1,23 @@ +# DeploymentDetailResponsePendingPreparedStackProfileAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackProfileAwResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackProfileAwResource = { + resources: [ + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileawstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileawstack.md new file mode 100644 index 000000000..4599753a0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileawstack.md @@ -0,0 +1,22 @@ +# DeploymentDetailResponsePendingPreparedStackProfileAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackProfileAwStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackProfileAwStack = { + resources: [ + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileazure.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileazure.md new file mode 100644 index 000000000..506cc5890 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileazure.md @@ -0,0 +1,23 @@ +# DeploymentDetailResponsePendingPreparedStackProfileAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackProfileAzure } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackProfileAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.DeploymentDetailResponsePendingPreparedStackProfileAzureBinding](../models/deploymentdetailresponsependingpreparedstackprofileazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.DeploymentDetailResponsePendingPreparedStackProfileAzureGrant](../models/deploymentdetailresponsependingpreparedstackprofileazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileazurebinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileazurebinding.md new file mode 100644 index 000000000..a12a0e0b2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileazurebinding.md @@ -0,0 +1,18 @@ +# DeploymentDetailResponsePendingPreparedStackProfileAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackProfileAzureBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackProfileAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.DeploymentDetailResponsePendingPreparedStackProfileAzureResource](../models/deploymentdetailresponsependingpreparedstackprofileazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.DeploymentDetailResponsePendingPreparedStackProfileAzureStack](../models/deploymentdetailresponsependingpreparedstackprofileazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileazuregrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileazuregrant.md new file mode 100644 index 000000000..87b4a051b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileazuregrant.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePendingPreparedStackProfileAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackProfileAzureGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackProfileAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileazureresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileazureresource.md new file mode 100644 index 000000000..7aacb4dc1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileazureresource.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePendingPreparedStackProfileAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackProfileAzureResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackProfileAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileazurestack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileazurestack.md new file mode 100644 index 000000000..84b659809 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileazurestack.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePendingPreparedStackProfileAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackProfileAzureStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackProfileAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileconditionresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileconditionresource.md new file mode 100644 index 000000000..cc7292ef8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileconditionresource.md @@ -0,0 +1,22 @@ +# DeploymentDetailResponsePendingPreparedStackProfileConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackProfileConditionResource } from "@alienplatform/platform-api/models"; + +let value: + DeploymentDetailResponsePendingPreparedStackProfileConditionResource = { + expression: "", + title: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileconditionstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileconditionstack.md new file mode 100644 index 000000000..5352c1999 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileconditionstack.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePendingPreparedStackProfileConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackProfileConditionStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackProfileConditionStack = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileeffect.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileeffect.md new file mode 100644 index 000000000..0c2686111 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileeffect.md @@ -0,0 +1,17 @@ +# DeploymentDetailResponsePendingPreparedStackProfileEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackProfileEffect } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackProfileEffect = "Deny"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofilegcp.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofilegcp.md new file mode 100644 index 000000000..2c944cd90 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofilegcp.md @@ -0,0 +1,23 @@ +# DeploymentDetailResponsePendingPreparedStackProfileGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackProfileGcp } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackProfileGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.DeploymentDetailResponsePendingPreparedStackProfileGcpBinding](../models/deploymentdetailresponsependingpreparedstackprofilegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.DeploymentDetailResponsePendingPreparedStackProfileGcpGrant](../models/deploymentdetailresponsependingpreparedstackprofilegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofilegcpbinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofilegcpbinding.md new file mode 100644 index 000000000..7cf76cdea --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofilegcpbinding.md @@ -0,0 +1,18 @@ +# DeploymentDetailResponsePendingPreparedStackProfileGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackProfileGcpBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackProfileGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.DeploymentDetailResponsePendingPreparedStackProfileGcpResource](../models/deploymentdetailresponsependingpreparedstackprofilegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.DeploymentDetailResponsePendingPreparedStackProfileGcpStack](../models/deploymentdetailresponsependingpreparedstackprofilegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofilegcpgrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofilegcpgrant.md new file mode 100644 index 000000000..924ded4c7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofilegcpgrant.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePendingPreparedStackProfileGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackProfileGcpGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackProfileGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofilegcpresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofilegcpresource.md new file mode 100644 index 000000000..5d2e9123a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofilegcpresource.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponsePendingPreparedStackProfileGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackProfileGcpResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackProfileGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | +| `condition` | *models.DeploymentDetailResponsePendingPreparedStackProfileResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofilegcpstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofilegcpstack.md new file mode 100644 index 000000000..56bb8e0b9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofilegcpstack.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponsePendingPreparedStackProfileGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackProfileGcpStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackProfileGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | +| `condition` | *models.DeploymentDetailResponsePendingPreparedStackProfileStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileplatforms.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileplatforms.md new file mode 100644 index 000000000..36d9984c2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileplatforms.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePendingPreparedStackProfilePlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackProfilePlatforms } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackProfilePlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | +| `aws` | [models.DeploymentDetailResponsePendingPreparedStackProfileAw](../models/deploymentdetailresponsependingpreparedstackprofileaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.DeploymentDetailResponsePendingPreparedStackProfileAzure](../models/deploymentdetailresponsependingpreparedstackprofileazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.DeploymentDetailResponsePendingPreparedStackProfileGcp](../models/deploymentdetailresponsependingpreparedstackprofilegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileresourceconditionunion.md new file mode 100644 index 000000000..9db310d5c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileresourceconditionunion.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePendingPreparedStackProfileResourceConditionUnion + + +## Supported Types + +### `models.DeploymentDetailResponsePendingPreparedStackProfileConditionResource` + +```typescript +const value: + models.DeploymentDetailResponsePendingPreparedStackProfileConditionResource = + { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofilestackconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofilestackconditionunion.md new file mode 100644 index 000000000..e32d3dd05 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofilestackconditionunion.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponsePendingPreparedStackProfileStackConditionUnion + + +## Supported Types + +### `models.DeploymentDetailResponsePendingPreparedStackProfileConditionStack` + +```typescript +const value: + models.DeploymentDetailResponsePendingPreparedStackProfileConditionStack = { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileunion.md new file mode 100644 index 000000000..f3f744cbe --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprofileunion.md @@ -0,0 +1,22 @@ +# DeploymentDetailResponsePendingPreparedStackProfileUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.DeploymentDetailResponsePendingPreparedStackProfile` + +```typescript +const value: models.DeploymentDetailResponsePendingPreparedStackProfile = { + description: "suckle heartfelt barring stall partially brr", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprovidedby.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprovidedby.md new file mode 100644 index 000000000..c3f1a6b0e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackprovidedby.md @@ -0,0 +1,17 @@ +# DeploymentDetailResponsePendingPreparedStackProvidedBy + +Who can provide a stack input value. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackProvidedBy } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackProvidedBy = "developer"; +``` + +## Values + +```typescript +"developer" | "deployer" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackresources.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackresources.md new file mode 100644 index 000000000..8c265c517 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackresources.md @@ -0,0 +1,26 @@ +# DeploymentDetailResponsePendingPreparedStackResources + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackResources } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackResources = { + config: { + id: "", + type: "", + }, + dependencies: [], + lifecycle: "live", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `config` | [models.DeploymentDetailResponsePendingPreparedStackConfig](../models/deploymentdetailresponsependingpreparedstackconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | +| `dependencies` | [models.DeploymentDetailResponsePendingPreparedStackDependency](../models/deploymentdetailresponsependingpreparedstackdependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | +| `enabledWhen` | *string* | :heavy_minus_sign: | Id of the boolean stack input that decides whether this resource is
created at all. `None` means always create it.

Set by `.enabled(input)` in the SDK. Setup emitters render the resource
conditionally on the matching template variable, so a deployer who says no
never gets the resource, its outputs, or anything derived from it. | +| `lifecycle` | [models.DeploymentDetailResponsePendingPreparedStackLifecycle](../models/deploymentdetailresponsependingpreparedstacklifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | +| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstacksupportedplatform.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstacksupportedplatform.md new file mode 100644 index 000000000..afcb3ce76 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstacksupportedplatform.md @@ -0,0 +1,18 @@ +# DeploymentDetailResponsePendingPreparedStackSupportedPlatform + +Represents the target cloud platform. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackSupportedPlatform } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackSupportedPlatform = + "kubernetes"; +``` + +## Values + +```typescript +"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstacktypeboolean.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstacktypeboolean.md new file mode 100644 index 000000000..280a9152a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstacktypeboolean.md @@ -0,0 +1,15 @@ +# DeploymentDetailResponsePendingPreparedStackTypeBoolean + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackTypeBoolean } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackTypeBoolean = "boolean"; +``` + +## Values + +```typescript +"boolean" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstacktypeenvenum.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstacktypeenvenum.md new file mode 100644 index 000000000..3817fb2b7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstacktypeenvenum.md @@ -0,0 +1,17 @@ +# DeploymentDetailResponsePendingPreparedStackTypeEnvEnum + +Environment variable handling for a stack input mapping. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackTypeEnvEnum } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackTypeEnvEnum = "secret"; +``` + +## Values + +```typescript +"plain" | "secret" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstacktypenumber.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstacktypenumber.md new file mode 100644 index 000000000..8c1081a4a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstacktypenumber.md @@ -0,0 +1,15 @@ +# DeploymentDetailResponsePendingPreparedStackTypeNumber + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackTypeNumber } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackTypeNumber = "number"; +``` + +## Values + +```typescript +"number" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstacktypestring.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstacktypestring.md new file mode 100644 index 000000000..4a7d682ef --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstacktypestring.md @@ -0,0 +1,15 @@ +# DeploymentDetailResponsePendingPreparedStackTypeString + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackTypeString } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackTypeString = "string"; +``` + +## Values + +```typescript +"string" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstacktypestringlist.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstacktypestringlist.md new file mode 100644 index 000000000..b7ca831f5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstacktypestringlist.md @@ -0,0 +1,16 @@ +# DeploymentDetailResponsePendingPreparedStackTypeStringList + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackTypeStringList } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackTypeStringList = + "stringList"; +``` + +## Values + +```typescript +"stringList" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstacktypeunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstacktypeunion.md new file mode 100644 index 000000000..887334570 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstacktypeunion.md @@ -0,0 +1,17 @@ +# DeploymentDetailResponsePendingPreparedStackTypeUnion + + +## Supported Types + +### `models.DeploymentDetailResponsePendingPreparedStackTypeEnvEnum` + +```typescript +const value: models.DeploymentDetailResponsePendingPreparedStackTypeEnvEnum = + "plain"; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackunion.md new file mode 100644 index 000000000..48e15dd80 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackunion.md @@ -0,0 +1,28 @@ +# DeploymentDetailResponsePendingPreparedStackUnion + + +## Supported Types + +### `models.DeploymentDetailResponsePendingPreparedStack` + +```typescript +const value: models.DeploymentDetailResponsePendingPreparedStack = { + id: "", + resources: { + "key": { + config: { + id: "", + type: "", + }, + dependencies: [], + lifecycle: "live", + }, + }, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackvalidation.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackvalidation.md new file mode 100644 index 000000000..c324fb315 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackvalidation.md @@ -0,0 +1,25 @@ +# DeploymentDetailResponsePendingPreparedStackValidation + +Portable stack input validation constraints. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePendingPreparedStackValidation } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePendingPreparedStackValidation = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `format` | *string* | :heavy_minus_sign: | Semantic format hint such as url. | +| `max` | *string* | :heavy_minus_sign: | Maximum number. | +| `maxItems` | *number* | :heavy_minus_sign: | Maximum string-list items. | +| `maxLength` | *number* | :heavy_minus_sign: | Maximum string length. | +| `min` | *string* | :heavy_minus_sign: | Minimum number. | +| `minItems` | *number* | :heavy_minus_sign: | Minimum string-list items. | +| `minLength` | *number* | :heavy_minus_sign: | Minimum string length. | +| `pattern` | *string* | :heavy_minus_sign: | Portable whole-value regex pattern. | +| `values` | *string*[] | :heavy_minus_sign: | Allowed string enum values. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackvalidationunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackvalidationunion.md new file mode 100644 index 000000000..b4b267fba --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsependingpreparedstackvalidationunion.md @@ -0,0 +1,16 @@ +# DeploymentDetailResponsePendingPreparedStackValidationUnion + + +## Supported Types + +### `models.DeploymentDetailResponsePendingPreparedStackValidation` + +```typescript +const value: models.DeploymentDetailResponsePendingPreparedStackValidation = {}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepermissions.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepermissions.md deleted file mode 100644 index 095bee0cf..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepermissions.md +++ /dev/null @@ -1,29 +0,0 @@ -# DeploymentDetailResponsePermissions - -Combined permissions configuration that contains both profiles and management - -## Example Usage - -```typescript -import { DeploymentDetailResponsePermissions } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponsePermissions = { - profiles: { - "key": { - "key": [ - "", - ], - "key1": [], - "key2": [], - }, - "key1": {}, - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | -| `management` | *models.DeploymentDetailResponseManagementUnion* | :heavy_minus_sign: | Management permissions configuration for stack management access | -| `profiles` | Record> | :heavy_check_mark: | Permission profiles that define access control for compute services
Key is the profile name, value is the permission configuration | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepoolsautoscale.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepoolsautoscale.md index c4488832f..510efd331 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepoolsautoscale.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepoolsautoscale.md @@ -14,9 +14,10 @@ let value: DeploymentDetailResponsePoolsAutoscale = { ## Fields -| Field | Type | Required | Description | -| --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | -| `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | -| `max` | *number* | :heavy_check_mark: | Maximum machine count. | -| `min` | *number* | :heavy_check_mark: | Minimum machine count. | -| `mode` | *"autoscale"* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | +| `failureDomains` | *models.DeploymentDetailResponseFailureDomainsUnion2* | :heavy_minus_sign: | N/A | +| `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | +| `max` | *number* | :heavy_check_mark: | Maximum machine count. | +| `min` | *number* | :heavy_check_mark: | Minimum machine count. | +| `mode` | *"autoscale"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepoolsfixed.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepoolsfixed.md index f978ffc1a..bb98ee5e4 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepoolsfixed.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepoolsfixed.md @@ -13,8 +13,9 @@ let value: DeploymentDetailResponsePoolsFixed = { ## Fields -| Field | Type | Required | Description | -| --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | -| `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | -| `machines` | *number* | :heavy_check_mark: | Number of machines to run. | -| `mode` | *"fixed"* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | +| `failureDomains` | *models.DeploymentDetailResponseFailureDomainsUnion1* | :heavy_minus_sign: | N/A | +| `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | +| `machines` | *number* | :heavy_check_mark: | Number of machines to run. | +| `mode` | *"fixed"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepoolsunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepoolsunion.md index ff4b57534..eeed05292 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepoolsunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepoolsunion.md @@ -23,4 +23,3 @@ const value: models.DeploymentDetailResponsePoolsAutoscale = { mode: "autoscale", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstack.md index 7dddc9ca8..33a196138 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstack.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstack.md @@ -24,10 +24,10 @@ let value: DeploymentDetailResponsePreparedStack = { ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | -| `id` | *string* | :heavy_check_mark: | Unique identifier for the stack | -| `inputs` | [models.DeploymentDetailResponseInput](../models/deploymentdetailresponseinput.md)[] | :heavy_minus_sign: | Input definitions required before setup or deployment can proceed. | -| `permissions` | [models.DeploymentDetailResponsePermissions](../models/deploymentdetailresponsepermissions.md) | :heavy_minus_sign: | Combined permissions configuration that contains both profiles and management | -| `resources` | Record | :heavy_check_mark: | Map of resource IDs to their configurations and lifecycle settings | -| `supportedPlatforms` | [models.DeploymentDetailResponseSupportedPlatform](../models/deploymentdetailresponsesupportedplatform.md)[] | :heavy_minus_sign: | Which platforms this stack supports. When None, all platforms are supported. | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the stack | +| `inputs` | [models.DeploymentDetailResponsePreparedStackInput](../models/deploymentdetailresponsepreparedstackinput.md)[] | :heavy_minus_sign: | Input definitions required before setup or deployment can proceed. | +| `permissions` | [models.DeploymentDetailResponsePreparedStackPermissions](../models/deploymentdetailresponsepreparedstackpermissions.md) | :heavy_minus_sign: | Combined permissions configuration that contains both profiles and management | +| `resources` | Record | :heavy_check_mark: | Map of resource IDs to their configurations and lifecycle settings | +| `supportedPlatforms` | [models.DeploymentDetailResponsePreparedStackSupportedPlatform](../models/deploymentdetailresponsepreparedstacksupportedplatform.md)[] | :heavy_minus_sign: | Which platforms this stack supports. When None, all platforms are supported. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackdefaultboolean.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackdefaultboolean.md new file mode 100644 index 000000000..d90bffe0a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackdefaultboolean.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePreparedStackDefaultBoolean + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackDefaultBoolean } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackDefaultBoolean = { + type: "boolean", + value: true, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| `type` | [models.DeploymentDetailResponsePreparedStackTypeBoolean](../models/deploymentdetailresponsepreparedstacktypeboolean.md) | :heavy_check_mark: | N/A | +| `value` | *boolean* | :heavy_check_mark: | Boolean default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackdefaultnumber.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackdefaultnumber.md new file mode 100644 index 000000000..9413fea49 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackdefaultnumber.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePreparedStackDefaultNumber + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackDefaultNumber } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackDefaultNumber = { + type: "number", + value: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| `type` | [models.DeploymentDetailResponsePreparedStackTypeNumber](../models/deploymentdetailresponsepreparedstacktypenumber.md) | :heavy_check_mark: | N/A | +| `value` | *string* | :heavy_check_mark: | Number default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackdefaultstring.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackdefaultstring.md new file mode 100644 index 000000000..71be20bf0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackdefaultstring.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePreparedStackDefaultString + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackDefaultString } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackDefaultString = { + type: "string", + value: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| `type` | [models.DeploymentDetailResponsePreparedStackTypeString](../models/deploymentdetailresponsepreparedstacktypestring.md) | :heavy_check_mark: | N/A | +| `value` | *string* | :heavy_check_mark: | String default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackdefaultstringlist.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackdefaultstringlist.md new file mode 100644 index 000000000..2b0f6ea19 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackdefaultstringlist.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePreparedStackDefaultStringList + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackDefaultStringList } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackDefaultStringList = { + type: "stringList", + value: [], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `type` | [models.DeploymentDetailResponsePreparedStackTypeStringList](../models/deploymentdetailresponsepreparedstacktypestringlist.md) | :heavy_check_mark: | N/A | +| `value` | *string*[] | :heavy_check_mark: | String list default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackdefaultunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackdefaultunion.md new file mode 100644 index 000000000..61e6f6cea --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackdefaultunion.md @@ -0,0 +1,46 @@ +# DeploymentDetailResponsePreparedStackDefaultUnion + + +## Supported Types + +### `models.DeploymentDetailResponsePreparedStackDefaultString` + +```typescript +const value: models.DeploymentDetailResponsePreparedStackDefaultString = { + type: "string", + value: "", +}; +``` + +### `models.DeploymentDetailResponsePreparedStackDefaultNumber` + +```typescript +const value: models.DeploymentDetailResponsePreparedStackDefaultNumber = { + type: "number", + value: "", +}; +``` + +### `models.DeploymentDetailResponsePreparedStackDefaultBoolean` + +```typescript +const value: models.DeploymentDetailResponsePreparedStackDefaultBoolean = { + type: "boolean", + value: true, +}; +``` + +### `models.DeploymentDetailResponsePreparedStackDefaultStringList` + +```typescript +const value: models.DeploymentDetailResponsePreparedStackDefaultStringList = { + type: "stringList", + value: [], +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackenv.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackenv.md new file mode 100644 index 000000000..34ac4f500 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackenv.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePreparedStackEnv + +How a resolved stack input is injected into runtime environment variables. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackEnv } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackEnv = { + name: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| `name` | *string* | :heavy_check_mark: | Environment variable name. | +| `targetResources` | *string*[] | :heavy_minus_sign: | Target resource IDs or patterns. None means every env-capable resource. | +| `type` | *models.DeploymentDetailResponsePreparedStackTypeUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextend.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextend.md new file mode 100644 index 000000000..1dce427a0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextend.md @@ -0,0 +1,23 @@ +# DeploymentDetailResponsePreparedStackExtend + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackExtend } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackExtend = { + description: "aside freight sideboard that gosh quizzically", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.DeploymentDetailResponsePreparedStackExtendPlatforms](../models/deploymentdetailresponsepreparedstackextendplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendaw.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendaw.md new file mode 100644 index 000000000..3aec505f9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendaw.md @@ -0,0 +1,24 @@ +# DeploymentDetailResponsePreparedStackExtendAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackExtendAw } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackExtendAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.DeploymentDetailResponsePreparedStackExtendAwBinding](../models/deploymentdetailresponsepreparedstackextendawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.DeploymentDetailResponsePreparedStackExtendEffect](../models/deploymentdetailresponsepreparedstackextendeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.DeploymentDetailResponsePreparedStackExtendAwGrant](../models/deploymentdetailresponsepreparedstackextendawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendawbinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendawbinding.md new file mode 100644 index 000000000..c2e46873b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendawbinding.md @@ -0,0 +1,18 @@ +# DeploymentDetailResponsePreparedStackExtendAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackExtendAwBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackExtendAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.DeploymentDetailResponsePreparedStackExtendAwResource](../models/deploymentdetailresponsepreparedstackextendawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.DeploymentDetailResponsePreparedStackExtendAwStack](../models/deploymentdetailresponsepreparedstackextendawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendawgrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendawgrant.md new file mode 100644 index 000000000..cdbe2ba85 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendawgrant.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePreparedStackExtendAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackExtendAwGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackExtendAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendawresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendawresource.md new file mode 100644 index 000000000..88b667660 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendawresource.md @@ -0,0 +1,22 @@ +# DeploymentDetailResponsePreparedStackExtendAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackExtendAwResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackExtendAwResource = { + resources: [ + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendawstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendawstack.md new file mode 100644 index 000000000..6ff2c04fa --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendawstack.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponsePreparedStackExtendAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackExtendAwStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackExtendAwStack = { + resources: [], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendazure.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendazure.md new file mode 100644 index 000000000..89e4e8b76 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendazure.md @@ -0,0 +1,23 @@ +# DeploymentDetailResponsePreparedStackExtendAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackExtendAzure } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackExtendAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.DeploymentDetailResponsePreparedStackExtendAzureBinding](../models/deploymentdetailresponsepreparedstackextendazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.DeploymentDetailResponsePreparedStackExtendAzureGrant](../models/deploymentdetailresponsepreparedstackextendazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendazurebinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendazurebinding.md new file mode 100644 index 000000000..46f5c46d6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendazurebinding.md @@ -0,0 +1,18 @@ +# DeploymentDetailResponsePreparedStackExtendAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackExtendAzureBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackExtendAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.DeploymentDetailResponsePreparedStackExtendAzureResource](../models/deploymentdetailresponsepreparedstackextendazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.DeploymentDetailResponsePreparedStackExtendAzureStack](../models/deploymentdetailresponsepreparedstackextendazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendazuregrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendazuregrant.md new file mode 100644 index 000000000..ed27f4640 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendazuregrant.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePreparedStackExtendAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackExtendAzureGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackExtendAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendazureresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendazureresource.md new file mode 100644 index 000000000..5949ed8c4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendazureresource.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePreparedStackExtendAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackExtendAzureResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackExtendAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendazurestack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendazurestack.md new file mode 100644 index 000000000..d0c18d2a7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendazurestack.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePreparedStackExtendAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackExtendAzureStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackExtendAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendconditionresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendconditionresource.md new file mode 100644 index 000000000..d852fd9fc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendconditionresource.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePreparedStackExtendConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackExtendConditionResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackExtendConditionResource = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendconditionstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendconditionstack.md new file mode 100644 index 000000000..82d44907e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendconditionstack.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePreparedStackExtendConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackExtendConditionStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackExtendConditionStack = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendeffect.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendeffect.md new file mode 100644 index 000000000..aa205c2f2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendeffect.md @@ -0,0 +1,17 @@ +# DeploymentDetailResponsePreparedStackExtendEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackExtendEffect } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackExtendEffect = "Deny"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendgcp.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendgcp.md new file mode 100644 index 000000000..bb5ccd9ae --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendgcp.md @@ -0,0 +1,23 @@ +# DeploymentDetailResponsePreparedStackExtendGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackExtendGcp } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackExtendGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.DeploymentDetailResponsePreparedStackExtendGcpBinding](../models/deploymentdetailresponsepreparedstackextendgcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.DeploymentDetailResponsePreparedStackExtendGcpGrant](../models/deploymentdetailresponsepreparedstackextendgcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendgcpbinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendgcpbinding.md new file mode 100644 index 000000000..ca2d7bd1e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendgcpbinding.md @@ -0,0 +1,18 @@ +# DeploymentDetailResponsePreparedStackExtendGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackExtendGcpBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackExtendGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.DeploymentDetailResponsePreparedStackExtendGcpResource](../models/deploymentdetailresponsepreparedstackextendgcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.DeploymentDetailResponsePreparedStackExtendGcpStack](../models/deploymentdetailresponsepreparedstackextendgcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendgcpgrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendgcpgrant.md new file mode 100644 index 000000000..68fa05bee --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendgcpgrant.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePreparedStackExtendGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackExtendGcpGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackExtendGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendgcpresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendgcpresource.md new file mode 100644 index 000000000..c82dfcf0f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendgcpresource.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponsePreparedStackExtendGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackExtendGcpResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackExtendGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `condition` | *models.DeploymentDetailResponsePreparedStackExtendResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendgcpstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendgcpstack.md new file mode 100644 index 000000000..b99edf0b0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendgcpstack.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponsePreparedStackExtendGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackExtendGcpStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackExtendGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| `condition` | *models.DeploymentDetailResponsePreparedStackExtendStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendplatforms.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendplatforms.md new file mode 100644 index 000000000..b96ee68f6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendplatforms.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePreparedStackExtendPlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackExtendPlatforms } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackExtendPlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| `aws` | [models.DeploymentDetailResponsePreparedStackExtendAw](../models/deploymentdetailresponsepreparedstackextendaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.DeploymentDetailResponsePreparedStackExtendAzure](../models/deploymentdetailresponsepreparedstackextendazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.DeploymentDetailResponsePreparedStackExtendGcp](../models/deploymentdetailresponsepreparedstackextendgcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendresourceconditionunion.md new file mode 100644 index 000000000..c36a13173 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendresourceconditionunion.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponsePreparedStackExtendResourceConditionUnion + + +## Supported Types + +### `models.DeploymentDetailResponsePreparedStackExtendConditionResource` + +```typescript +const value: + models.DeploymentDetailResponsePreparedStackExtendConditionResource = { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendstackconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendstackconditionunion.md new file mode 100644 index 000000000..36975913f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendstackconditionunion.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponsePreparedStackExtendStackConditionUnion + + +## Supported Types + +### `models.DeploymentDetailResponsePreparedStackExtendConditionStack` + +```typescript +const value: models.DeploymentDetailResponsePreparedStackExtendConditionStack = + { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendunion.md new file mode 100644 index 000000000..ce8e21374 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackextendunion.md @@ -0,0 +1,22 @@ +# DeploymentDetailResponsePreparedStackExtendUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.DeploymentDetailResponsePreparedStackExtend` + +```typescript +const value: models.DeploymentDetailResponsePreparedStackExtend = { + description: "aside freight sideboard that gosh quizzically", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackinput.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackinput.md new file mode 100644 index 000000000..27aaeac2e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackinput.md @@ -0,0 +1,37 @@ +# DeploymentDetailResponsePreparedStackInput + +Stack input definition serialized into a release stack. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackInput } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackInput = { + description: + "excepting anti when except pfft um knowledgeably vice saloon times", + id: "", + kind: "string", + label: "", + providedBy: [ + "deployer", + ], + required: true, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| `default` | *models.DeploymentDetailResponsePreparedStackDefaultUnion* | :heavy_minus_sign: | N/A | +| `description` | *string* | :heavy_check_mark: | Human-facing helper text. | +| `env` | [models.DeploymentDetailResponsePreparedStackEnv](../models/deploymentdetailresponsepreparedstackenv.md)[] | :heavy_minus_sign: | Runtime env-var mappings for v1 input resolution. | +| `id` | *string* | :heavy_check_mark: | Stable input ID used by CLI/API calls. | +| `kind` | [models.DeploymentDetailResponsePreparedStackKind](../models/deploymentdetailresponsepreparedstackkind.md) | :heavy_check_mark: | Primitive stack input kind. | +| `label` | *string* | :heavy_check_mark: | Human-facing field label. | +| `placeholder` | *string* | :heavy_minus_sign: | Example placeholder shown in UI. | +| `platforms` | [models.DeploymentDetailResponsePreparedStackPlatform](../models/deploymentdetailresponsepreparedstackplatform.md)[] | :heavy_minus_sign: | Platforms where this input applies. | +| `providedBy` | [models.DeploymentDetailResponsePreparedStackProvidedBy](../models/deploymentdetailresponsepreparedstackprovidedby.md)[] | :heavy_check_mark: | Who can provide this value. | +| `required` | *boolean* | :heavy_check_mark: | Whether a resolved value is required before deployment can proceed. | +| `validation` | *models.DeploymentDetailResponsePreparedStackValidationUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackkind.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackkind.md new file mode 100644 index 000000000..8b4741448 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackkind.md @@ -0,0 +1,17 @@ +# DeploymentDetailResponsePreparedStackKind + +Primitive stack input kind. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackKind } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackKind = "string"; +``` + +## Values + +```typescript +"string" | "secret" | "number" | "integer" | "boolean" | "enum" | "stringList" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackmanagement1.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackmanagement1.md new file mode 100644 index 000000000..90fa6e480 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackmanagement1.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePreparedStackManagement1 + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackManagement1 } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackManagement1 = { + extend: { + "key": [], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `extend` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackmanagement2.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackmanagement2.md new file mode 100644 index 000000000..0c44ed078 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackmanagement2.md @@ -0,0 +1,29 @@ +# DeploymentDetailResponsePreparedStackManagement2 + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackManagement2 } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackManagement2 = { + override: { + "key": [ + "", + ], + "key1": [], + "key2": [ + { + description: "beneath self-confidence abaft gah whether", + id: "", + platforms: {}, + }, + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `override` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackmanagementenum.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackmanagementenum.md new file mode 100644 index 000000000..045ff57a0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackmanagementenum.md @@ -0,0 +1,15 @@ +# DeploymentDetailResponsePreparedStackManagementEnum + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackManagementEnum } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackManagementEnum = "auto"; +``` + +## Values + +```typescript +"auto" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackmanagementunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackmanagementunion.md new file mode 100644 index 000000000..cc9241afc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackmanagementunion.md @@ -0,0 +1,43 @@ +# DeploymentDetailResponsePreparedStackManagementUnion + +Management permissions configuration for stack management access + + +## Supported Types + +### `models.DeploymentDetailResponsePreparedStackManagement1` + +```typescript +const value: models.DeploymentDetailResponsePreparedStackManagement1 = { + extend: { + "key": [], + }, +}; +``` + +### `models.DeploymentDetailResponsePreparedStackManagement2` + +```typescript +const value: models.DeploymentDetailResponsePreparedStackManagement2 = { + override: { + "key": [ + "", + ], + "key1": [], + "key2": [ + { + description: "beneath self-confidence abaft gah whether", + id: "", + platforms: {}, + }, + ], + }, +}; +``` + +### `models.DeploymentDetailResponsePreparedStackManagementEnum` + +```typescript +const value: models.DeploymentDetailResponsePreparedStackManagementEnum = + "auto"; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverride.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverride.md new file mode 100644 index 000000000..5cb305a7b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverride.md @@ -0,0 +1,23 @@ +# DeploymentDetailResponsePreparedStackOverride + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackOverride } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackOverride = { + description: "yearningly swanling that ghost but barring", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.DeploymentDetailResponsePreparedStackOverridePlatforms](../models/deploymentdetailresponsepreparedstackoverrideplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideaw.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideaw.md new file mode 100644 index 000000000..f5455792a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideaw.md @@ -0,0 +1,24 @@ +# DeploymentDetailResponsePreparedStackOverrideAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackOverrideAw } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackOverrideAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.DeploymentDetailResponsePreparedStackOverrideAwBinding](../models/deploymentdetailresponsepreparedstackoverrideawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.DeploymentDetailResponsePreparedStackOverrideEffect](../models/deploymentdetailresponsepreparedstackoverrideeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.DeploymentDetailResponsePreparedStackOverrideAwGrant](../models/deploymentdetailresponsepreparedstackoverrideawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideawbinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideawbinding.md new file mode 100644 index 000000000..5731db8c2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideawbinding.md @@ -0,0 +1,18 @@ +# DeploymentDetailResponsePreparedStackOverrideAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackOverrideAwBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackOverrideAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.DeploymentDetailResponsePreparedStackOverrideAwResource](../models/deploymentdetailresponsepreparedstackoverrideawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.DeploymentDetailResponsePreparedStackOverrideAwStack](../models/deploymentdetailresponsepreparedstackoverrideawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideawgrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideawgrant.md new file mode 100644 index 000000000..e3957414c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideawgrant.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePreparedStackOverrideAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackOverrideAwGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackOverrideAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideawresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideawresource.md new file mode 100644 index 000000000..7f024ef21 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideawresource.md @@ -0,0 +1,23 @@ +# DeploymentDetailResponsePreparedStackOverrideAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackOverrideAwResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackOverrideAwResource = { + resources: [ + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideawstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideawstack.md new file mode 100644 index 000000000..0c377e4ac --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideawstack.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponsePreparedStackOverrideAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackOverrideAwStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackOverrideAwStack = { + resources: [], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideazure.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideazure.md new file mode 100644 index 000000000..4b0009b60 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideazure.md @@ -0,0 +1,23 @@ +# DeploymentDetailResponsePreparedStackOverrideAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackOverrideAzure } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackOverrideAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.DeploymentDetailResponsePreparedStackOverrideAzureBinding](../models/deploymentdetailresponsepreparedstackoverrideazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.DeploymentDetailResponsePreparedStackOverrideAzureGrant](../models/deploymentdetailresponsepreparedstackoverrideazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideazurebinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideazurebinding.md new file mode 100644 index 000000000..44b8a3edf --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideazurebinding.md @@ -0,0 +1,18 @@ +# DeploymentDetailResponsePreparedStackOverrideAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackOverrideAzureBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackOverrideAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.DeploymentDetailResponsePreparedStackOverrideAzureResource](../models/deploymentdetailresponsepreparedstackoverrideazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.DeploymentDetailResponsePreparedStackOverrideAzureStack](../models/deploymentdetailresponsepreparedstackoverrideazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideazuregrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideazuregrant.md new file mode 100644 index 000000000..b33d02a2f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideazuregrant.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePreparedStackOverrideAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackOverrideAzureGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackOverrideAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideazureresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideazureresource.md new file mode 100644 index 000000000..d14f60d00 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideazureresource.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePreparedStackOverrideAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackOverrideAzureResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackOverrideAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideazurestack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideazurestack.md new file mode 100644 index 000000000..67acb1d10 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideazurestack.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePreparedStackOverrideAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackOverrideAzureStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackOverrideAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideconditionresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideconditionresource.md new file mode 100644 index 000000000..2b3bd41b6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideconditionresource.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePreparedStackOverrideConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackOverrideConditionResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackOverrideConditionResource = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideconditionstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideconditionstack.md new file mode 100644 index 000000000..115be1ff4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideconditionstack.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePreparedStackOverrideConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackOverrideConditionStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackOverrideConditionStack = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideeffect.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideeffect.md new file mode 100644 index 000000000..8ed1a3dce --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideeffect.md @@ -0,0 +1,17 @@ +# DeploymentDetailResponsePreparedStackOverrideEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackOverrideEffect } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackOverrideEffect = "Deny"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverridegcp.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverridegcp.md new file mode 100644 index 000000000..68f573809 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverridegcp.md @@ -0,0 +1,23 @@ +# DeploymentDetailResponsePreparedStackOverrideGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackOverrideGcp } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackOverrideGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.DeploymentDetailResponsePreparedStackOverrideGcpBinding](../models/deploymentdetailresponsepreparedstackoverridegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.DeploymentDetailResponsePreparedStackOverrideGcpGrant](../models/deploymentdetailresponsepreparedstackoverridegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverridegcpbinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverridegcpbinding.md new file mode 100644 index 000000000..31e35ad4b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverridegcpbinding.md @@ -0,0 +1,18 @@ +# DeploymentDetailResponsePreparedStackOverrideGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackOverrideGcpBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackOverrideGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.DeploymentDetailResponsePreparedStackOverrideGcpResource](../models/deploymentdetailresponsepreparedstackoverridegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.DeploymentDetailResponsePreparedStackOverrideGcpStack](../models/deploymentdetailresponsepreparedstackoverridegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverridegcpgrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverridegcpgrant.md new file mode 100644 index 000000000..bb78f5077 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverridegcpgrant.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePreparedStackOverrideGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackOverrideGcpGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackOverrideGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverridegcpresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverridegcpresource.md new file mode 100644 index 000000000..bfba90745 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverridegcpresource.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponsePreparedStackOverrideGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackOverrideGcpResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackOverrideGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| `condition` | *models.DeploymentDetailResponsePreparedStackOverrideResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverridegcpstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverridegcpstack.md new file mode 100644 index 000000000..82ef8182d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverridegcpstack.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponsePreparedStackOverrideGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackOverrideGcpStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackOverrideGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `condition` | *models.DeploymentDetailResponsePreparedStackOverrideStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideplatforms.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideplatforms.md new file mode 100644 index 000000000..07d701644 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideplatforms.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePreparedStackOverridePlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackOverridePlatforms } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackOverridePlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `aws` | [models.DeploymentDetailResponsePreparedStackOverrideAw](../models/deploymentdetailresponsepreparedstackoverrideaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.DeploymentDetailResponsePreparedStackOverrideAzure](../models/deploymentdetailresponsepreparedstackoverrideazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.DeploymentDetailResponsePreparedStackOverrideGcp](../models/deploymentdetailresponsepreparedstackoverridegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideresourceconditionunion.md new file mode 100644 index 000000000..a12ce4879 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideresourceconditionunion.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponsePreparedStackOverrideResourceConditionUnion + + +## Supported Types + +### `models.DeploymentDetailResponsePreparedStackOverrideConditionResource` + +```typescript +const value: + models.DeploymentDetailResponsePreparedStackOverrideConditionResource = { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverridestackconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverridestackconditionunion.md new file mode 100644 index 000000000..cdf03278b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverridestackconditionunion.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponsePreparedStackOverrideStackConditionUnion + + +## Supported Types + +### `models.DeploymentDetailResponsePreparedStackOverrideConditionStack` + +```typescript +const value: + models.DeploymentDetailResponsePreparedStackOverrideConditionStack = { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideunion.md new file mode 100644 index 000000000..7a6048828 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackoverrideunion.md @@ -0,0 +1,22 @@ +# DeploymentDetailResponsePreparedStackOverrideUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.DeploymentDetailResponsePreparedStackOverride` + +```typescript +const value: models.DeploymentDetailResponsePreparedStackOverride = { + description: "yearningly swanling that ghost but barring", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackpermissions.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackpermissions.md new file mode 100644 index 000000000..09cf2461a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackpermissions.md @@ -0,0 +1,40 @@ +# DeploymentDetailResponsePreparedStackPermissions + +Combined permissions configuration that contains both profiles and management + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackPermissions } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackPermissions = { + profiles: { + "key": { + "key": [], + "key1": [ + "", + ], + "key2": [], + }, + "key1": { + "key": [ + { + description: "ignorant pecan indeed orderly", + id: "", + platforms: {}, + }, + ], + "key1": [ + "", + ], + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `management` | *models.DeploymentDetailResponsePreparedStackManagementUnion* | :heavy_minus_sign: | Management permissions configuration for stack management access | +| `profiles` | Record> | :heavy_check_mark: | Permission profiles that define access control for compute services
Key is the profile name, value is the permission configuration | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofile.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofile.md new file mode 100644 index 000000000..6eaff449c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofile.md @@ -0,0 +1,23 @@ +# DeploymentDetailResponsePreparedStackProfile + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackProfile } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackProfile = { + description: "mmm carefully slump outlaw", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.DeploymentDetailResponsePreparedStackProfilePlatforms](../models/deploymentdetailresponsepreparedstackprofileplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileaw.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileaw.md new file mode 100644 index 000000000..b57c493e7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileaw.md @@ -0,0 +1,24 @@ +# DeploymentDetailResponsePreparedStackProfileAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackProfileAw } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackProfileAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.DeploymentDetailResponsePreparedStackProfileAwBinding](../models/deploymentdetailresponsepreparedstackprofileawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.DeploymentDetailResponsePreparedStackProfileEffect](../models/deploymentdetailresponsepreparedstackprofileeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.DeploymentDetailResponsePreparedStackProfileAwGrant](../models/deploymentdetailresponsepreparedstackprofileawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileawbinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileawbinding.md new file mode 100644 index 000000000..7978c9e06 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileawbinding.md @@ -0,0 +1,18 @@ +# DeploymentDetailResponsePreparedStackProfileAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackProfileAwBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackProfileAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.DeploymentDetailResponsePreparedStackProfileAwResource](../models/deploymentdetailresponsepreparedstackprofileawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.DeploymentDetailResponsePreparedStackProfileAwStack](../models/deploymentdetailresponsepreparedstackprofileawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileawgrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileawgrant.md new file mode 100644 index 000000000..883789c34 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileawgrant.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePreparedStackProfileAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackProfileAwGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackProfileAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileawresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileawresource.md new file mode 100644 index 000000000..6f2bbdeb8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileawresource.md @@ -0,0 +1,24 @@ +# DeploymentDetailResponsePreparedStackProfileAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackProfileAwResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackProfileAwResource = { + resources: [ + "", + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileawstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileawstack.md new file mode 100644 index 000000000..1a230eefd --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileawstack.md @@ -0,0 +1,22 @@ +# DeploymentDetailResponsePreparedStackProfileAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackProfileAwStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackProfileAwStack = { + resources: [ + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileazure.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileazure.md new file mode 100644 index 000000000..3b07cf874 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileazure.md @@ -0,0 +1,23 @@ +# DeploymentDetailResponsePreparedStackProfileAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackProfileAzure } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackProfileAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.DeploymentDetailResponsePreparedStackProfileAzureBinding](../models/deploymentdetailresponsepreparedstackprofileazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.DeploymentDetailResponsePreparedStackProfileAzureGrant](../models/deploymentdetailresponsepreparedstackprofileazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileazurebinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileazurebinding.md new file mode 100644 index 000000000..f023f98e2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileazurebinding.md @@ -0,0 +1,18 @@ +# DeploymentDetailResponsePreparedStackProfileAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackProfileAzureBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackProfileAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.DeploymentDetailResponsePreparedStackProfileAzureResource](../models/deploymentdetailresponsepreparedstackprofileazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.DeploymentDetailResponsePreparedStackProfileAzureStack](../models/deploymentdetailresponsepreparedstackprofileazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileazuregrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileazuregrant.md new file mode 100644 index 000000000..16774ed3a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileazuregrant.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePreparedStackProfileAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackProfileAzureGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackProfileAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileazureresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileazureresource.md new file mode 100644 index 000000000..827775088 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileazureresource.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePreparedStackProfileAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackProfileAzureResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackProfileAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileazurestack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileazurestack.md new file mode 100644 index 000000000..539a4e56f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileazurestack.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePreparedStackProfileAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackProfileAzureStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackProfileAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileconditionresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileconditionresource.md new file mode 100644 index 000000000..f3e27b3ec --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileconditionresource.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePreparedStackProfileConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackProfileConditionResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackProfileConditionResource = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileconditionstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileconditionstack.md new file mode 100644 index 000000000..ac73de781 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileconditionstack.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePreparedStackProfileConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackProfileConditionStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackProfileConditionStack = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileeffect.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileeffect.md new file mode 100644 index 000000000..2c534b175 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileeffect.md @@ -0,0 +1,17 @@ +# DeploymentDetailResponsePreparedStackProfileEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackProfileEffect } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackProfileEffect = "Deny"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofilegcp.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofilegcp.md new file mode 100644 index 000000000..148709068 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofilegcp.md @@ -0,0 +1,23 @@ +# DeploymentDetailResponsePreparedStackProfileGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackProfileGcp } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackProfileGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.DeploymentDetailResponsePreparedStackProfileGcpBinding](../models/deploymentdetailresponsepreparedstackprofilegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.DeploymentDetailResponsePreparedStackProfileGcpGrant](../models/deploymentdetailresponsepreparedstackprofilegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofilegcpbinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofilegcpbinding.md new file mode 100644 index 000000000..0e29873a9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofilegcpbinding.md @@ -0,0 +1,18 @@ +# DeploymentDetailResponsePreparedStackProfileGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackProfileGcpBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackProfileGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.DeploymentDetailResponsePreparedStackProfileGcpResource](../models/deploymentdetailresponsepreparedstackprofilegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.DeploymentDetailResponsePreparedStackProfileGcpStack](../models/deploymentdetailresponsepreparedstackprofilegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofilegcpgrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofilegcpgrant.md new file mode 100644 index 000000000..2109f9699 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofilegcpgrant.md @@ -0,0 +1,21 @@ +# DeploymentDetailResponsePreparedStackProfileGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackProfileGcpGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackProfileGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofilegcpresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofilegcpresource.md new file mode 100644 index 000000000..b1864599d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofilegcpresource.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponsePreparedStackProfileGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackProfileGcpResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackProfileGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | +| `condition` | *models.DeploymentDetailResponsePreparedStackProfileResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofilegcpstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofilegcpstack.md new file mode 100644 index 000000000..b840f71f8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofilegcpstack.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponsePreparedStackProfileGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackProfileGcpStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackProfileGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | +| `condition` | *models.DeploymentDetailResponsePreparedStackProfileStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileplatforms.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileplatforms.md new file mode 100644 index 000000000..30cab8f58 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileplatforms.md @@ -0,0 +1,19 @@ +# DeploymentDetailResponsePreparedStackProfilePlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackProfilePlatforms } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackProfilePlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | +| `aws` | [models.DeploymentDetailResponsePreparedStackProfileAw](../models/deploymentdetailresponsepreparedstackprofileaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.DeploymentDetailResponsePreparedStackProfileAzure](../models/deploymentdetailresponsepreparedstackprofileazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.DeploymentDetailResponsePreparedStackProfileGcp](../models/deploymentdetailresponsepreparedstackprofilegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileresourceconditionunion.md new file mode 100644 index 000000000..7a15d114d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileresourceconditionunion.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponsePreparedStackProfileResourceConditionUnion + + +## Supported Types + +### `models.DeploymentDetailResponsePreparedStackProfileConditionResource` + +```typescript +const value: + models.DeploymentDetailResponsePreparedStackProfileConditionResource = { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofilestackconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofilestackconditionunion.md new file mode 100644 index 000000000..fb21b7e7e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofilestackconditionunion.md @@ -0,0 +1,20 @@ +# DeploymentDetailResponsePreparedStackProfileStackConditionUnion + + +## Supported Types + +### `models.DeploymentDetailResponsePreparedStackProfileConditionStack` + +```typescript +const value: models.DeploymentDetailResponsePreparedStackProfileConditionStack = + { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileunion.md new file mode 100644 index 000000000..75175ae18 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprofileunion.md @@ -0,0 +1,22 @@ +# DeploymentDetailResponsePreparedStackProfileUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.DeploymentDetailResponsePreparedStackProfile` + +```typescript +const value: models.DeploymentDetailResponsePreparedStackProfile = { + description: "mmm carefully slump outlaw", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprovidedby.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprovidedby.md new file mode 100644 index 000000000..77f81d407 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackprovidedby.md @@ -0,0 +1,17 @@ +# DeploymentDetailResponsePreparedStackProvidedBy + +Who can provide a stack input value. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackProvidedBy } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackProvidedBy = "deployer"; +``` + +## Values + +```typescript +"developer" | "deployer" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackresources.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackresources.md index d935c4eb3..6bf4ba75e 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackresources.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackresources.md @@ -22,9 +22,10 @@ let value: DeploymentDetailResponsePreparedStackResources = { ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `config` | [models.DeploymentDetailResponsePreparedStackConfig](../models/deploymentdetailresponsepreparedstackconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | -| `dependencies` | [models.DeploymentDetailResponsePreparedStackDependency](../models/deploymentdetailresponsepreparedstackdependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | -| `lifecycle` | [models.DeploymentDetailResponsePreparedStackLifecycle](../models/deploymentdetailresponsepreparedstacklifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | -| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `config` | [models.DeploymentDetailResponsePreparedStackConfig](../models/deploymentdetailresponsepreparedstackconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | +| `dependencies` | [models.DeploymentDetailResponsePreparedStackDependency](../models/deploymentdetailresponsepreparedstackdependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | +| `enabledWhen` | *string* | :heavy_minus_sign: | Id of the boolean stack input that decides whether this resource is
created at all. `None` means always create it.

Set by `.enabled(input)` in the SDK. Setup emitters render the resource
conditionally on the matching template variable, so a deployer who says no
never gets the resource, its outputs, or anything derived from it. | +| `lifecycle` | [models.DeploymentDetailResponsePreparedStackLifecycle](../models/deploymentdetailresponsepreparedstacklifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | +| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstacksupportedplatform.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstacksupportedplatform.md new file mode 100644 index 000000000..059bc1fa4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstacksupportedplatform.md @@ -0,0 +1,17 @@ +# DeploymentDetailResponsePreparedStackSupportedPlatform + +Represents the target cloud platform. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackSupportedPlatform } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackSupportedPlatform = "azure"; +``` + +## Values + +```typescript +"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstacktypeboolean.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstacktypeboolean.md new file mode 100644 index 000000000..4c572f55d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstacktypeboolean.md @@ -0,0 +1,15 @@ +# DeploymentDetailResponsePreparedStackTypeBoolean + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackTypeBoolean } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackTypeBoolean = "boolean"; +``` + +## Values + +```typescript +"boolean" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstacktypeenvenum.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstacktypeenvenum.md new file mode 100644 index 000000000..325d9182c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstacktypeenvenum.md @@ -0,0 +1,17 @@ +# DeploymentDetailResponsePreparedStackTypeEnvEnum + +Environment variable handling for a stack input mapping. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackTypeEnvEnum } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackTypeEnvEnum = "secret"; +``` + +## Values + +```typescript +"plain" | "secret" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstacktypenumber.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstacktypenumber.md new file mode 100644 index 000000000..3306e7f27 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstacktypenumber.md @@ -0,0 +1,15 @@ +# DeploymentDetailResponsePreparedStackTypeNumber + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackTypeNumber } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackTypeNumber = "number"; +``` + +## Values + +```typescript +"number" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstacktypestring.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstacktypestring.md new file mode 100644 index 000000000..bfe97bf0f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstacktypestring.md @@ -0,0 +1,15 @@ +# DeploymentDetailResponsePreparedStackTypeString + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackTypeString } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackTypeString = "string"; +``` + +## Values + +```typescript +"string" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstacktypestringlist.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstacktypestringlist.md new file mode 100644 index 000000000..932f5d3c4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstacktypestringlist.md @@ -0,0 +1,15 @@ +# DeploymentDetailResponsePreparedStackTypeStringList + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackTypeStringList } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackTypeStringList = "stringList"; +``` + +## Values + +```typescript +"stringList" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstacktypeunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstacktypeunion.md new file mode 100644 index 000000000..990e74d5f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstacktypeunion.md @@ -0,0 +1,16 @@ +# DeploymentDetailResponsePreparedStackTypeUnion + + +## Supported Types + +### `models.DeploymentDetailResponsePreparedStackTypeEnvEnum` + +```typescript +const value: models.DeploymentDetailResponsePreparedStackTypeEnvEnum = "secret"; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackunion.md index fc16b8cb1..6e04c569a 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackunion.md @@ -26,4 +26,3 @@ const value: models.DeploymentDetailResponsePreparedStack = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackvalidation.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackvalidation.md new file mode 100644 index 000000000..6cf60af5c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackvalidation.md @@ -0,0 +1,25 @@ +# DeploymentDetailResponsePreparedStackValidation + +Portable stack input validation constraints. + +## Example Usage + +```typescript +import { DeploymentDetailResponsePreparedStackValidation } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponsePreparedStackValidation = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `format` | *string* | :heavy_minus_sign: | Semantic format hint such as url. | +| `max` | *string* | :heavy_minus_sign: | Maximum number. | +| `maxItems` | *number* | :heavy_minus_sign: | Maximum string-list items. | +| `maxLength` | *number* | :heavy_minus_sign: | Maximum string length. | +| `min` | *string* | :heavy_minus_sign: | Minimum number. | +| `minItems` | *number* | :heavy_minus_sign: | Minimum string-list items. | +| `minLength` | *number* | :heavy_minus_sign: | Minimum string length. | +| `pattern` | *string* | :heavy_minus_sign: | Portable whole-value regex pattern. | +| `values` | *string*[] | :heavy_minus_sign: | Allowed string enum values. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackvalidationunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackvalidationunion.md new file mode 100644 index 000000000..143531ec0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreparedstackvalidationunion.md @@ -0,0 +1,16 @@ +# DeploymentDetailResponsePreparedStackValidationUnion + + +## Supported Types + +### `models.DeploymentDetailResponsePreparedStackValidation` + +```typescript +const value: models.DeploymentDetailResponsePreparedStackValidation = {}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreviousconfigunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreviousconfigunion.md index 3de62c920..0e4cb3748 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreviousconfigunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepreviousconfigunion.md @@ -17,4 +17,3 @@ const value: models.DeploymentDetailResponsePreviousConfig = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofile.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofile.md deleted file mode 100644 index 8c37cb01e..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofile.md +++ /dev/null @@ -1,23 +0,0 @@ -# DeploymentDetailResponseProfile - -A permission set that can be applied across different cloud platforms - -## Example Usage - -```typescript -import { DeploymentDetailResponseProfile } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseProfile = { - description: "extroverted awesome incidentally clueless alongside", - id: "", - platforms: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | -| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | -| `platforms` | [models.DeploymentDetailResponseProfilePlatforms](../models/deploymentdetailresponseprofileplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileaw.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileaw.md deleted file mode 100644 index 066acad94..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileaw.md +++ /dev/null @@ -1,24 +0,0 @@ -# DeploymentDetailResponseProfileAw - -AWS-specific platform permission configuration - -## Example Usage - -```typescript -import { DeploymentDetailResponseProfileAw } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseProfileAw = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -| `binding` | [models.DeploymentDetailResponseProfileAwBinding](../models/deploymentdetailresponseprofileawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `effect` | [models.DeploymentDetailResponseProfileEffect](../models/deploymentdetailresponseprofileeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | -| `grant` | [models.DeploymentDetailResponseProfileAwGrant](../models/deploymentdetailresponseprofileawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileawbinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileawbinding.md deleted file mode 100644 index c51fbe38e..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileawbinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# DeploymentDetailResponseProfileAwBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { DeploymentDetailResponseProfileAwBinding } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseProfileAwBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | -| `resource` | [models.DeploymentDetailResponseProfileAwResource](../models/deploymentdetailresponseprofileawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | -| `stack` | [models.DeploymentDetailResponseProfileAwStack](../models/deploymentdetailresponseprofileawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileawgrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileawgrant.md deleted file mode 100644 index 3e45a26dd..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileawgrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentDetailResponseProfileAwGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { DeploymentDetailResponseProfileAwGrant } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseProfileAwGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileawresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileawresource.md deleted file mode 100644 index cf04e1ff8..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileawresource.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentDetailResponseProfileAwResource - -AWS-specific binding specification - -## Example Usage - -```typescript -import { DeploymentDetailResponseProfileAwResource } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseProfileAwResource = { - resources: [], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | -| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileawstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileawstack.md deleted file mode 100644 index ccaaa7b84..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileawstack.md +++ /dev/null @@ -1,24 +0,0 @@ -# DeploymentDetailResponseProfileAwStack - -AWS-specific binding specification - -## Example Usage - -```typescript -import { DeploymentDetailResponseProfileAwStack } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseProfileAwStack = { - resources: [ - "", - "", - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | -| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileazure.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileazure.md deleted file mode 100644 index 35c0493b6..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileazure.md +++ /dev/null @@ -1,23 +0,0 @@ -# DeploymentDetailResponseProfileAzure - -Azure-specific platform permission configuration - -## Example Usage - -```typescript -import { DeploymentDetailResponseProfileAzure } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseProfileAzure = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -| `binding` | [models.DeploymentDetailResponseProfileAzureBinding](../models/deploymentdetailresponseprofileazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `grant` | [models.DeploymentDetailResponseProfileAzureGrant](../models/deploymentdetailresponseprofileazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileazurebinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileazurebinding.md deleted file mode 100644 index 1b0b2d979..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileazurebinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# DeploymentDetailResponseProfileAzureBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { DeploymentDetailResponseProfileAzureBinding } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseProfileAzureBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -| `resource` | [models.DeploymentDetailResponseProfileAzureResource](../models/deploymentdetailresponseprofileazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | -| `stack` | [models.DeploymentDetailResponseProfileAzureStack](../models/deploymentdetailresponseprofileazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileazuregrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileazuregrant.md deleted file mode 100644 index 6352c4086..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileazuregrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentDetailResponseProfileAzureGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { DeploymentDetailResponseProfileAzureGrant } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseProfileAzureGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileazureresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileazureresource.md deleted file mode 100644 index b11e6f90a..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileazureresource.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentDetailResponseProfileAzureResource - -Azure-specific binding specification - -## Example Usage - -```typescript -import { DeploymentDetailResponseProfileAzureResource } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseProfileAzureResource = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileazurestack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileazurestack.md deleted file mode 100644 index e472bfc12..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileazurestack.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentDetailResponseProfileAzureStack - -Azure-specific binding specification - -## Example Usage - -```typescript -import { DeploymentDetailResponseProfileAzureStack } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseProfileAzureStack = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileconditionresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileconditionresource.md deleted file mode 100644 index eb2c19d96..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileconditionresource.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentDetailResponseProfileConditionResource - -GCP IAM condition - -## Example Usage - -```typescript -import { DeploymentDetailResponseProfileConditionResource } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseProfileConditionResource = { - expression: "", - title: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `expression` | *string* | :heavy_check_mark: | N/A | -| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileconditionstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileconditionstack.md deleted file mode 100644 index c73efb071..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileconditionstack.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentDetailResponseProfileConditionStack - -GCP IAM condition - -## Example Usage - -```typescript -import { DeploymentDetailResponseProfileConditionStack } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseProfileConditionStack = { - expression: "", - title: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `expression` | *string* | :heavy_check_mark: | N/A | -| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileeffect.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileeffect.md deleted file mode 100644 index d62e20544..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileeffect.md +++ /dev/null @@ -1,17 +0,0 @@ -# DeploymentDetailResponseProfileEffect - -IAM effect. Defaults to Allow. - -## Example Usage - -```typescript -import { DeploymentDetailResponseProfileEffect } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseProfileEffect = "Deny"; -``` - -## Values - -```typescript -"Allow" | "Deny" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofilegcp.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofilegcp.md deleted file mode 100644 index d3266af62..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofilegcp.md +++ /dev/null @@ -1,23 +0,0 @@ -# DeploymentDetailResponseProfileGcp - -GCP-specific platform permission configuration - -## Example Usage - -```typescript -import { DeploymentDetailResponseProfileGcp } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseProfileGcp = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | -| `binding` | [models.DeploymentDetailResponseProfileGcpBinding](../models/deploymentdetailresponseprofilegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `grant` | [models.DeploymentDetailResponseProfileGcpGrant](../models/deploymentdetailresponseprofilegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofilegcpbinding.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofilegcpbinding.md deleted file mode 100644 index 654cad612..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofilegcpbinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# DeploymentDetailResponseProfileGcpBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { DeploymentDetailResponseProfileGcpBinding } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseProfileGcpBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | -| `resource` | [models.DeploymentDetailResponseProfileGcpResource](../models/deploymentdetailresponseprofilegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | -| `stack` | [models.DeploymentDetailResponseProfileGcpStack](../models/deploymentdetailresponseprofilegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofilegcpgrant.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofilegcpgrant.md deleted file mode 100644 index 038fa473a..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofilegcpgrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentDetailResponseProfileGcpGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { DeploymentDetailResponseProfileGcpGrant } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseProfileGcpGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofilegcpresource.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofilegcpresource.md deleted file mode 100644 index c2a1a9828..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofilegcpresource.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentDetailResponseProfileGcpResource - -GCP-specific binding specification - -## Example Usage - -```typescript -import { DeploymentDetailResponseProfileGcpResource } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseProfileGcpResource = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `condition` | *models.DeploymentDetailResponseProfileResourceConditionUnion* | :heavy_minus_sign: | N/A | -| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofilegcpstack.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofilegcpstack.md deleted file mode 100644 index 94f57e2f9..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofilegcpstack.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentDetailResponseProfileGcpStack - -GCP-specific binding specification - -## Example Usage - -```typescript -import { DeploymentDetailResponseProfileGcpStack } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseProfileGcpStack = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | -| `condition` | *models.DeploymentDetailResponseProfileStackConditionUnion* | :heavy_minus_sign: | N/A | -| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileplatforms.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileplatforms.md deleted file mode 100644 index 770e06314..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileplatforms.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentDetailResponseProfilePlatforms - -Platform-specific permission configurations - -## Example Usage - -```typescript -import { DeploymentDetailResponseProfilePlatforms } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseProfilePlatforms = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -| `aws` | [models.DeploymentDetailResponseProfileAw](../models/deploymentdetailresponseprofileaw.md)[] | :heavy_minus_sign: | AWS permission configurations | -| `azure` | [models.DeploymentDetailResponseProfileAzure](../models/deploymentdetailresponseprofileazure.md)[] | :heavy_minus_sign: | Azure permission configurations | -| `gcp` | [models.DeploymentDetailResponseProfileGcp](../models/deploymentdetailresponseprofilegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileresourceconditionunion.md deleted file mode 100644 index 1bf66e67c..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileresourceconditionunion.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentDetailResponseProfileResourceConditionUnion - - -## Supported Types - -### `models.DeploymentDetailResponseProfileConditionResource` - -```typescript -const value: models.DeploymentDetailResponseProfileConditionResource = { - expression: "", - title: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofilestackconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofilestackconditionunion.md deleted file mode 100644 index 2c37ebe62..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofilestackconditionunion.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentDetailResponseProfileStackConditionUnion - - -## Supported Types - -### `models.DeploymentDetailResponseProfileConditionStack` - -```typescript -const value: models.DeploymentDetailResponseProfileConditionStack = { - expression: "", - title: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileunion.md deleted file mode 100644 index ca58c6f76..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprofileunion.md +++ /dev/null @@ -1,23 +0,0 @@ -# DeploymentDetailResponseProfileUnion - -Reference to a permission set - either by name or inline definition - - -## Supported Types - -### `models.DeploymentDetailResponseProfile` - -```typescript -const value: models.DeploymentDetailResponseProfile = { - description: "extroverted awesome incidentally clueless alongside", - id: "", - platforms: {}, -}; -``` - -### `string` - -```typescript -const value: string = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprovidedby.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprovidedby.md deleted file mode 100644 index 7c64aad2e..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseprovidedby.md +++ /dev/null @@ -1,17 +0,0 @@ -# DeploymentDetailResponseProvidedBy - -Who can provide a stack input value. - -## Example Usage - -```typescript -import { DeploymentDetailResponseProvidedBy } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseProvidedBy = "developer"; -``` - -## Values - -```typescript -"developer" | "deployer" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseproviderunion1.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseproviderunion1.md index b8b697d95..4fc4dc5fb 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseproviderunion1.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseproviderunion1.md @@ -37,4 +37,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseproviderunion2.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseproviderunion2.md index dfb5eab9e..132f6d96e 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseproviderunion2.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseproviderunion2.md @@ -37,4 +37,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseproviderunion3.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseproviderunion3.md index 2171501ae..5734831bd 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseproviderunion3.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseproviderunion3.md @@ -37,4 +37,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseproviderunion4.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseproviderunion4.md index 11c2f9a7a..855867e8b 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseproviderunion4.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseproviderunion4.md @@ -37,4 +37,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepublicendpointtargetunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepublicendpointtargetunion.md index bb0aba194..67ae9a360 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepublicendpointtargetunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsepublicendpointtargetunion.md @@ -26,4 +26,3 @@ const value: models.DeploymentDetailResponsePublicEndpointTargetLoadBalancer = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponserouteunion1.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponserouteunion1.md index 28aebbd87..0a1c81361 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponserouteunion1.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponserouteunion1.md @@ -23,4 +23,3 @@ const value: models.DeploymentDetailResponseRouteGateway1 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponserouteunion2.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponserouteunion2.md index a55f7d0a4..8e3b0203c 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponserouteunion2.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponserouteunion2.md @@ -23,4 +23,3 @@ const value: models.DeploymentDetailResponseRouteGateway2 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseruntimemetadata.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseruntimemetadata.md index 347272d4b..89008aa9a 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponseruntimemetadata.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponseruntimemetadata.md @@ -12,9 +12,13 @@ let value: DeploymentDetailResponseRuntimeMetadata = {}; ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `lastSyncedEnvVarsHash` | *string* | :heavy_minus_sign: | Hash of the environment variables snapshot that was last synced to the vault
Used to avoid redundant sync operations during incremental deployment | -| `lastSyncedSecretNames` | *string*[] | :heavy_minus_sign: | Exact vault keys owned by the deployment secret synchronizer. This
inventory lets a later snapshot delete removed keys without listing or
touching unrelated values in the same vault. | -| `preparedStack` | *models.DeploymentDetailResponsePreparedStackUnion* | :heavy_minus_sign: | N/A | -| `registryAccessGranted` | *boolean* | :heavy_minus_sign: | Whether cross-account registry access has been successfully granted.
Set to true after the manager successfully sets the ECR/GAR repo policy
for this deployment's target account. Prevents redundant API calls on
every reconcile tick. | \ No newline at end of file +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `initialSetupAuthority` | [models.DeploymentDetailResponseInitialSetupAuthority](../models/deploymentdetailresponseinitialsetupauthority.md) | :heavy_minus_sign: | Actor that owns structural work during the initial setup phase. | +| `lastSyncedEnvVarsHash` | *string* | :heavy_minus_sign: | Hash of the environment variables snapshot that was last synced to the vault
Used to avoid redundant sync operations during incremental deployment | +| `lastSyncedSecretNames` | *string*[] | :heavy_minus_sign: | Exact vault keys owned by the deployment secret synchronizer. This
inventory lets a later snapshot delete removed keys without listing or
touching unrelated values in the same vault. | +| `pendingPreparedStack` | *models.DeploymentDetailResponsePendingPreparedStackUnion* | :heavy_minus_sign: | N/A | +| `persistedGateAnswers` | Record | :heavy_minus_sign: | Canonical resolved answers for inputs that gate Frozen resources,
keyed by input id, recorded when the deployment is created or its
setup import registers.

A frozen gate's answer is fixed for the deployment's lifetime: the
update path refuses input values that conflict with these, and a Live
resource sharing such an input resolves the persisted answer forever. | +| `preparedStack` | *models.DeploymentDetailResponsePreparedStackUnion* | :heavy_minus_sign: | N/A | +| `registryAccessGranted` | *boolean* | :heavy_minus_sign: | Whether cross-account registry access has been successfully granted.
Set to true after the manager successfully sets the ECR/GAR repo policy
for this deployment's target account. Prevents redundant API calls on
every reconcile tick. | +| `setupUpdateAuthorization` | *models.DeploymentDetailResponseSetupUpdateAuthorizationUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsesetupupdateauthorization.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsesetupupdateauthorization.md new file mode 100644 index 000000000..7c177d255 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsesetupupdateauthorization.md @@ -0,0 +1,31 @@ +# DeploymentDetailResponseSetupUpdateAuthorization + +One-shot authority for a setup re-import to replace setup-owned resources. + +## Example Usage + +```typescript +import { DeploymentDetailResponseSetupUpdateAuthorization } from "@alienplatform/platform-api/models"; + +let value: DeploymentDetailResponseSetupUpdateAuthorization = { + baselineFrozenDigest: "", + nonce: "", + releaseId: "", + setupFingerprint: "", + setupFingerprintVersion: 846995, + setupTarget: "", + targetFrozenDigest: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | +| `baselineFrozenDigest` | *string* | :heavy_check_mark: | Frozen resource projection from the last successful deployment. | +| `nonce` | *string* | :heavy_check_mark: | Unique revision used by persistence layers for compare-and-swap updates. | +| `releaseId` | *string* | :heavy_check_mark: | Release whose stack was prepared by setup. | +| `setupFingerprint` | *string* | :heavy_check_mark: | Exact setup artifact revision that authored this authority. | +| `setupFingerprintVersion` | *number* | :heavy_check_mark: | Setup fingerprint contract version. | +| `setupTarget` | *string* | :heavy_check_mark: | Stable setup target recorded on the imported deployment. | +| `targetFrozenDigest` | *string* | :heavy_check_mark: | Frozen resource projection prepared by the setup re-import. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsesetupupdateauthorizationunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsesetupupdateauthorizationunion.md new file mode 100644 index 000000000..e6917a151 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsesetupupdateauthorizationunion.md @@ -0,0 +1,24 @@ +# DeploymentDetailResponseSetupUpdateAuthorizationUnion + + +## Supported Types + +### `models.DeploymentDetailResponseSetupUpdateAuthorization` + +```typescript +const value: models.DeploymentDetailResponseSetupUpdateAuthorization = { + baselineFrozenDigest: "", + nonce: "", + releaseId: "", + setupFingerprint: "", + setupFingerprintVersion: 846995, + setupTarget: "", + targetFrozenDigest: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsesupportedplatform.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsesupportedplatform.md deleted file mode 100644 index 2fe773d2d..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsesupportedplatform.md +++ /dev/null @@ -1,17 +0,0 @@ -# DeploymentDetailResponseSupportedPlatform - -Represents the target cloud platform. - -## Example Usage - -```typescript -import { DeploymentDetailResponseSupportedPlatform } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseSupportedPlatform = "machines"; -``` - -## Values - -```typescript -"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsetypeboolean.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsetypeboolean.md deleted file mode 100644 index 46ac28ffe..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsetypeboolean.md +++ /dev/null @@ -1,15 +0,0 @@ -# DeploymentDetailResponseTypeBoolean - -## Example Usage - -```typescript -import { DeploymentDetailResponseTypeBoolean } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseTypeBoolean = "boolean"; -``` - -## Values - -```typescript -"boolean" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsetypeenvenum.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsetypeenvenum.md deleted file mode 100644 index 53138fbd9..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsetypeenvenum.md +++ /dev/null @@ -1,17 +0,0 @@ -# DeploymentDetailResponseTypeEnvEnum - -Environment variable handling for a stack input mapping. - -## Example Usage - -```typescript -import { DeploymentDetailResponseTypeEnvEnum } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseTypeEnvEnum = "secret"; -``` - -## Values - -```typescript -"plain" | "secret" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsetypenumber.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsetypenumber.md deleted file mode 100644 index 0d5ae771f..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsetypenumber.md +++ /dev/null @@ -1,15 +0,0 @@ -# DeploymentDetailResponseTypeNumber - -## Example Usage - -```typescript -import { DeploymentDetailResponseTypeNumber } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseTypeNumber = "number"; -``` - -## Values - -```typescript -"number" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsetypestring.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsetypestring.md deleted file mode 100644 index 4524a579a..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsetypestring.md +++ /dev/null @@ -1,15 +0,0 @@ -# DeploymentDetailResponseTypeString - -## Example Usage - -```typescript -import { DeploymentDetailResponseTypeString } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseTypeString = "string"; -``` - -## Values - -```typescript -"string" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsetypestringlist.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsetypestringlist.md deleted file mode 100644 index 76ddbc00f..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsetypestringlist.md +++ /dev/null @@ -1,15 +0,0 @@ -# DeploymentDetailResponseTypeStringList - -## Example Usage - -```typescript -import { DeploymentDetailResponseTypeStringList } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseTypeStringList = "stringList"; -``` - -## Values - -```typescript -"stringList" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsetypeunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsetypeunion.md deleted file mode 100644 index c14562901..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsetypeunion.md +++ /dev/null @@ -1,17 +0,0 @@ -# DeploymentDetailResponseTypeUnion - - -## Supported Types - -### `models.DeploymentDetailResponseTypeEnvEnum` - -```typescript -const value: models.DeploymentDetailResponseTypeEnvEnum = "plain"; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsevalidation.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsevalidation.md deleted file mode 100644 index 8c8c0dbb1..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsevalidation.md +++ /dev/null @@ -1,25 +0,0 @@ -# DeploymentDetailResponseValidation - -Portable stack input validation constraints. - -## Example Usage - -```typescript -import { DeploymentDetailResponseValidation } from "@alienplatform/platform-api/models"; - -let value: DeploymentDetailResponseValidation = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| `format` | *string* | :heavy_minus_sign: | Semantic format hint such as url. | -| `max` | *string* | :heavy_minus_sign: | Maximum number. | -| `maxItems` | *number* | :heavy_minus_sign: | Maximum string-list items. | -| `maxLength` | *number* | :heavy_minus_sign: | Maximum string length. | -| `min` | *string* | :heavy_minus_sign: | Minimum number. | -| `minItems` | *number* | :heavy_minus_sign: | Minimum string-list items. | -| `minLength` | *number* | :heavy_minus_sign: | Minimum string length. | -| `pattern` | *string* | :heavy_minus_sign: | Portable whole-value regex pattern. | -| `values` | *string*[] | :heavy_minus_sign: | Allowed string enum values. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsevalidationunion.md b/client-sdks/platform/typescript/docs/models/deploymentdetailresponsevalidationunion.md deleted file mode 100644 index 2c875f941..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentdetailresponsevalidationunion.md +++ /dev/null @@ -1,17 +0,0 @@ -# DeploymentDetailResponseValidationUnion - - -## Supported Types - -### `models.DeploymentDetailResponseValidation` - -```typescript -const value: models.DeploymentDetailResponseValidation = {}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdomainskubernetesunion.md b/client-sdks/platform/typescript/docs/models/deploymentdomainskubernetesunion.md index a015aedf4..d16636746 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdomainskubernetesunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdomainskubernetesunion.md @@ -18,4 +18,3 @@ const value: models.DeploymentDomainsKubernetes = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentdomainsunion.md b/client-sdks/platform/typescript/docs/models/deploymentdomainsunion.md index b438fdccb..89e5a7884 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentdomainsunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentdomainsunion.md @@ -14,4 +14,3 @@ const value: models.DeploymentDomains = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentenv.md b/client-sdks/platform/typescript/docs/models/deploymentenv.md deleted file mode 100644 index f1c85e427..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentenv.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentEnv - -How a resolved stack input is injected into runtime environment variables. - -## Example Usage - -```typescript -import { DeploymentEnv } from "@alienplatform/platform-api/models"; - -let value: DeploymentEnv = { - name: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | -| `name` | *string* | :heavy_check_mark: | Environment variable name. | -| `targetResources` | *string*[] | :heavy_minus_sign: | Target resource IDs or patterns. None means every env-capable resource. | -| `type` | *models.DeploymentTypeUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentenvironmentinfounion.md b/client-sdks/platform/typescript/docs/models/deploymentenvironmentinfounion.md index 88df4a9ac..519e06490 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentenvironmentinfounion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentenvironmentinfounion.md @@ -62,4 +62,3 @@ const value: models.DeploymentEnvironmentInfoTest = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymenterrorunion.md b/client-sdks/platform/typescript/docs/models/deploymenterrorunion.md index 6b7c3f577..17e0b8562 100644 --- a/client-sdks/platform/typescript/docs/models/deploymenterrorunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymenterrorunion.md @@ -18,4 +18,3 @@ const value: models.DeploymentErrorStackState = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentexposureunion.md b/client-sdks/platform/typescript/docs/models/deploymentexposureunion.md index 3f68f258f..5e0c90abc 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentexposureunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentexposureunion.md @@ -48,4 +48,3 @@ const value: models.DeploymentExposureCustom = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentextend.md b/client-sdks/platform/typescript/docs/models/deploymentextend.md deleted file mode 100644 index f9014b6d2..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentextend.md +++ /dev/null @@ -1,23 +0,0 @@ -# DeploymentExtend - -A permission set that can be applied across different cloud platforms - -## Example Usage - -```typescript -import { DeploymentExtend } from "@alienplatform/platform-api/models"; - -let value: DeploymentExtend = { - description: "burdensome smog miserably lamp whitewash carouse irk", - id: "", - platforms: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | -| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | -| `platforms` | [models.DeploymentExtendPlatforms](../models/deploymentextendplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentextendaw.md b/client-sdks/platform/typescript/docs/models/deploymentextendaw.md deleted file mode 100644 index 7b9300f5e..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentextendaw.md +++ /dev/null @@ -1,24 +0,0 @@ -# DeploymentExtendAw - -AWS-specific platform permission configuration - -## Example Usage - -```typescript -import { DeploymentExtendAw } from "@alienplatform/platform-api/models"; - -let value: DeploymentExtendAw = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -| `binding` | [models.DeploymentExtendAwBinding](../models/deploymentextendawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `effect` | [models.DeploymentExtendEffect](../models/deploymentextendeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | -| `grant` | [models.DeploymentExtendAwGrant](../models/deploymentextendawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentextendawbinding.md b/client-sdks/platform/typescript/docs/models/deploymentextendawbinding.md deleted file mode 100644 index 38b60b663..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentextendawbinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# DeploymentExtendAwBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { DeploymentExtendAwBinding } from "@alienplatform/platform-api/models"; - -let value: DeploymentExtendAwBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | -| `resource` | [models.DeploymentExtendAwResource](../models/deploymentextendawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | -| `stack` | [models.DeploymentExtendAwStack](../models/deploymentextendawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentextendawgrant.md b/client-sdks/platform/typescript/docs/models/deploymentextendawgrant.md deleted file mode 100644 index 25175ec5a..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentextendawgrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentExtendAwGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { DeploymentExtendAwGrant } from "@alienplatform/platform-api/models"; - -let value: DeploymentExtendAwGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentextendawresource.md b/client-sdks/platform/typescript/docs/models/deploymentextendawresource.md deleted file mode 100644 index 5648a927f..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentextendawresource.md +++ /dev/null @@ -1,24 +0,0 @@ -# DeploymentExtendAwResource - -AWS-specific binding specification - -## Example Usage - -```typescript -import { DeploymentExtendAwResource } from "@alienplatform/platform-api/models"; - -let value: DeploymentExtendAwResource = { - resources: [ - "", - "", - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | -| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentextendawstack.md b/client-sdks/platform/typescript/docs/models/deploymentextendawstack.md deleted file mode 100644 index 7e368cbd7..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentextendawstack.md +++ /dev/null @@ -1,24 +0,0 @@ -# DeploymentExtendAwStack - -AWS-specific binding specification - -## Example Usage - -```typescript -import { DeploymentExtendAwStack } from "@alienplatform/platform-api/models"; - -let value: DeploymentExtendAwStack = { - resources: [ - "", - "", - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | -| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentextendazure.md b/client-sdks/platform/typescript/docs/models/deploymentextendazure.md deleted file mode 100644 index 876ffc557..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentextendazure.md +++ /dev/null @@ -1,23 +0,0 @@ -# DeploymentExtendAzure - -Azure-specific platform permission configuration - -## Example Usage - -```typescript -import { DeploymentExtendAzure } from "@alienplatform/platform-api/models"; - -let value: DeploymentExtendAzure = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -| `binding` | [models.DeploymentExtendAzureBinding](../models/deploymentextendazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `grant` | [models.DeploymentExtendAzureGrant](../models/deploymentextendazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentextendazurebinding.md b/client-sdks/platform/typescript/docs/models/deploymentextendazurebinding.md deleted file mode 100644 index e28f5419c..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentextendazurebinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# DeploymentExtendAzureBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { DeploymentExtendAzureBinding } from "@alienplatform/platform-api/models"; - -let value: DeploymentExtendAzureBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | -| `resource` | [models.DeploymentExtendAzureResource](../models/deploymentextendazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | -| `stack` | [models.DeploymentExtendAzureStack](../models/deploymentextendazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentextendazuregrant.md b/client-sdks/platform/typescript/docs/models/deploymentextendazuregrant.md deleted file mode 100644 index db53152bc..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentextendazuregrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentExtendAzureGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { DeploymentExtendAzureGrant } from "@alienplatform/platform-api/models"; - -let value: DeploymentExtendAzureGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentextendazureresource.md b/client-sdks/platform/typescript/docs/models/deploymentextendazureresource.md deleted file mode 100644 index 15ea38b68..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentextendazureresource.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentExtendAzureResource - -Azure-specific binding specification - -## Example Usage - -```typescript -import { DeploymentExtendAzureResource } from "@alienplatform/platform-api/models"; - -let value: DeploymentExtendAzureResource = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentextendazurestack.md b/client-sdks/platform/typescript/docs/models/deploymentextendazurestack.md deleted file mode 100644 index 3e9f66f01..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentextendazurestack.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentExtendAzureStack - -Azure-specific binding specification - -## Example Usage - -```typescript -import { DeploymentExtendAzureStack } from "@alienplatform/platform-api/models"; - -let value: DeploymentExtendAzureStack = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentextendconditionresource.md b/client-sdks/platform/typescript/docs/models/deploymentextendconditionresource.md deleted file mode 100644 index 9872c5706..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentextendconditionresource.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentExtendConditionResource - -GCP IAM condition - -## Example Usage - -```typescript -import { DeploymentExtendConditionResource } from "@alienplatform/platform-api/models"; - -let value: DeploymentExtendConditionResource = { - expression: "", - title: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `expression` | *string* | :heavy_check_mark: | N/A | -| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentextendconditionstack.md b/client-sdks/platform/typescript/docs/models/deploymentextendconditionstack.md deleted file mode 100644 index 1c796cef7..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentextendconditionstack.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentExtendConditionStack - -GCP IAM condition - -## Example Usage - -```typescript -import { DeploymentExtendConditionStack } from "@alienplatform/platform-api/models"; - -let value: DeploymentExtendConditionStack = { - expression: "", - title: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `expression` | *string* | :heavy_check_mark: | N/A | -| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentextendeffect.md b/client-sdks/platform/typescript/docs/models/deploymentextendeffect.md deleted file mode 100644 index 8e1264c9d..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentextendeffect.md +++ /dev/null @@ -1,17 +0,0 @@ -# DeploymentExtendEffect - -IAM effect. Defaults to Allow. - -## Example Usage - -```typescript -import { DeploymentExtendEffect } from "@alienplatform/platform-api/models"; - -let value: DeploymentExtendEffect = "Allow"; -``` - -## Values - -```typescript -"Allow" | "Deny" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentextendgcp.md b/client-sdks/platform/typescript/docs/models/deploymentextendgcp.md deleted file mode 100644 index d00b92983..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentextendgcp.md +++ /dev/null @@ -1,23 +0,0 @@ -# DeploymentExtendGcp - -GCP-specific platform permission configuration - -## Example Usage - -```typescript -import { DeploymentExtendGcp } from "@alienplatform/platform-api/models"; - -let value: DeploymentExtendGcp = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | -| `binding` | [models.DeploymentExtendGcpBinding](../models/deploymentextendgcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `grant` | [models.DeploymentExtendGcpGrant](../models/deploymentextendgcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentextendgcpbinding.md b/client-sdks/platform/typescript/docs/models/deploymentextendgcpbinding.md deleted file mode 100644 index f4d4bdc92..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentextendgcpbinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# DeploymentExtendGcpBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { DeploymentExtendGcpBinding } from "@alienplatform/platform-api/models"; - -let value: DeploymentExtendGcpBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | -| `resource` | [models.DeploymentExtendGcpResource](../models/deploymentextendgcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | -| `stack` | [models.DeploymentExtendGcpStack](../models/deploymentextendgcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentextendgcpgrant.md b/client-sdks/platform/typescript/docs/models/deploymentextendgcpgrant.md deleted file mode 100644 index 4db5da902..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentextendgcpgrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentExtendGcpGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { DeploymentExtendGcpGrant } from "@alienplatform/platform-api/models"; - -let value: DeploymentExtendGcpGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentextendgcpresource.md b/client-sdks/platform/typescript/docs/models/deploymentextendgcpresource.md deleted file mode 100644 index 0fd3a8bf8..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentextendgcpresource.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentExtendGcpResource - -GCP-specific binding specification - -## Example Usage - -```typescript -import { DeploymentExtendGcpResource } from "@alienplatform/platform-api/models"; - -let value: DeploymentExtendGcpResource = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | -| `condition` | *models.DeploymentExtendResourceConditionUnion* | :heavy_minus_sign: | N/A | -| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentextendgcpstack.md b/client-sdks/platform/typescript/docs/models/deploymentextendgcpstack.md deleted file mode 100644 index 00d11ec22..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentextendgcpstack.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentExtendGcpStack - -GCP-specific binding specification - -## Example Usage - -```typescript -import { DeploymentExtendGcpStack } from "@alienplatform/platform-api/models"; - -let value: DeploymentExtendGcpStack = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -| `condition` | *models.DeploymentExtendStackConditionUnion* | :heavy_minus_sign: | N/A | -| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentextendplatforms.md b/client-sdks/platform/typescript/docs/models/deploymentextendplatforms.md deleted file mode 100644 index 8aac8606b..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentextendplatforms.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentExtendPlatforms - -Platform-specific permission configurations - -## Example Usage - -```typescript -import { DeploymentExtendPlatforms } from "@alienplatform/platform-api/models"; - -let value: DeploymentExtendPlatforms = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -| `aws` | [models.DeploymentExtendAw](../models/deploymentextendaw.md)[] | :heavy_minus_sign: | AWS permission configurations | -| `azure` | [models.DeploymentExtendAzure](../models/deploymentextendazure.md)[] | :heavy_minus_sign: | Azure permission configurations | -| `gcp` | [models.DeploymentExtendGcp](../models/deploymentextendgcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentextendresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentextendresourceconditionunion.md deleted file mode 100644 index 61e6d0a04..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentextendresourceconditionunion.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentExtendResourceConditionUnion - - -## Supported Types - -### `models.DeploymentExtendConditionResource` - -```typescript -const value: models.DeploymentExtendConditionResource = { - expression: "", - title: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentextendstackconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentextendstackconditionunion.md deleted file mode 100644 index 6d62bbceb..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentextendstackconditionunion.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentExtendStackConditionUnion - - -## Supported Types - -### `models.DeploymentExtendConditionStack` - -```typescript -const value: models.DeploymentExtendConditionStack = { - expression: "", - title: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentextendunion.md b/client-sdks/platform/typescript/docs/models/deploymentextendunion.md deleted file mode 100644 index 6cfe6e132..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentextendunion.md +++ /dev/null @@ -1,23 +0,0 @@ -# DeploymentExtendUnion - -Reference to a permission set - either by name or inline definition - - -## Supported Types - -### `models.DeploymentExtend` - -```typescript -const value: models.DeploymentExtend = { - description: "burdensome smog miserably lamp whitewash carouse irk", - id: "", - platforms: {}, -}; -``` - -### `string` - -```typescript -const value: string = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentfailuredomains1.md b/client-sdks/platform/typescript/docs/models/deploymentfailuredomains1.md new file mode 100644 index 000000000..3ce3b1bbb --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentfailuredomains1.md @@ -0,0 +1,20 @@ +# DeploymentFailureDomains1 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { DeploymentFailureDomains1 } from "@alienplatform/platform-api/models"; + +let value: DeploymentFailureDomains1 = { + spread: 551861, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentfailuredomains2.md b/client-sdks/platform/typescript/docs/models/deploymentfailuredomains2.md new file mode 100644 index 000000000..694f8fb55 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentfailuredomains2.md @@ -0,0 +1,20 @@ +# DeploymentFailureDomains2 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { DeploymentFailureDomains2 } from "@alienplatform/platform-api/models"; + +let value: DeploymentFailureDomains2 = { + spread: 203107, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentfailuredomainsunion1.md b/client-sdks/platform/typescript/docs/models/deploymentfailuredomainsunion1.md new file mode 100644 index 000000000..e311e9dfa --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentfailuredomainsunion1.md @@ -0,0 +1,18 @@ +# DeploymentFailureDomainsUnion1 + + +## Supported Types + +### `models.DeploymentFailureDomains1` + +```typescript +const value: models.DeploymentFailureDomains1 = { + spread: 551861, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentfailuredomainsunion2.md b/client-sdks/platform/typescript/docs/models/deploymentfailuredomainsunion2.md new file mode 100644 index 000000000..075476779 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentfailuredomainsunion2.md @@ -0,0 +1,18 @@ +# DeploymentFailureDomainsUnion2 + + +## Supported Types + +### `models.DeploymentFailureDomains2` + +```typescript +const value: models.DeploymentFailureDomains2 = { + spread: 203107, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentgcpunion.md b/client-sdks/platform/typescript/docs/models/deploymentgcpunion.md index 6c2b63038..b1649a28c 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentgcpunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentgcpunion.md @@ -16,4 +16,3 @@ const value: models.DeploymentGcpStackSettings = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentgroup.md b/client-sdks/platform/typescript/docs/models/deploymentgroup.md index 85953a802..142be86f5 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentgroup.md +++ b/client-sdks/platform/typescript/docs/models/deploymentgroup.md @@ -8,6 +8,7 @@ import { DeploymentGroup } from "@alienplatform/platform-api/models"; let value: DeploymentGroup = { id: "dg_r27ict8c7vcgsumpj90ackf7b", name: "prod-us-east-1", + externalId: "ext_example_01", projectId: "prj_mcytp6z3j91f7tn5ryqsfwtr", workspaceId: "ws_It13CUaGEhLLAB87simX0", createdAt: new Date("2025-09-26T07:50:12.593Z"), @@ -20,6 +21,7 @@ let value: DeploymentGroup = { | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | | `id` | *string* | :heavy_check_mark: | Unique identifier for the deployment group. | dg_r27ict8c7vcgsumpj90ackf7b | | `name` | *string* | :heavy_check_mark: | Deployment group name. | prod-us-east-1 | +| `externalId` | *string* | :heavy_check_mark: | Case-sensitive, URL- and header-safe identifier from the integrating application. | ext_example_01 | | `projectId` | *string* | :heavy_check_mark: | Unique identifier for the project. | prj_mcytp6z3j91f7tn5ryqsfwtr | | `workspaceId` | *string* | :heavy_check_mark: | Unique identifier for the workspace. | ws_It13CUaGEhLLAB87simX0 | | `maxDeployments` | *number* | :heavy_minus_sign: | Maximum number of deployments allowed in this deployment group | | diff --git a/client-sdks/platform/typescript/docs/models/deploymentinfomanagementconfigunion.md b/client-sdks/platform/typescript/docs/models/deploymentinfomanagementconfigunion.md index 99d85f73d..352ed46c0 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentinfomanagementconfigunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentinfomanagementconfigunion.md @@ -50,4 +50,3 @@ const value: models.DeploymentInfoManagementConfigKubernetes = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentinfosetupconfig.md b/client-sdks/platform/typescript/docs/models/deploymentinfosetupconfig.md index f87142203..1554f867f 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentinfosetupconfig.md +++ b/client-sdks/platform/typescript/docs/models/deploymentinfosetupconfig.md @@ -12,7 +12,9 @@ let value: DeploymentInfoSetupConfig = { }, policy: { allowedPlatforms: [], - allowedSetupMethods: [], + allowedSetupMethods: [ + "google-oauth", + ], }, environmentVariables: [], }; diff --git a/client-sdks/platform/typescript/docs/models/deploymentinfosetupconfigdefaultunion.md b/client-sdks/platform/typescript/docs/models/deploymentinfosetupconfigdefaultunion.md index 7cae4404f..b8532b5f6 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentinfosetupconfigdefaultunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentinfosetupconfigdefaultunion.md @@ -46,4 +46,3 @@ const value: models.DeploymentInfoSetupConfigDefaultStringList = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentinfosetupconfigtypeunion.md b/client-sdks/platform/typescript/docs/models/deploymentinfosetupconfigtypeunion.md index 351118b61..cf4695ecc 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentinfosetupconfigtypeunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentinfosetupconfigtypeunion.md @@ -14,4 +14,3 @@ const value: models.DeploymentInfoSetupConfigTypeEnvEnum = "plain"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentinfosetupconfigvalidationunion.md b/client-sdks/platform/typescript/docs/models/deploymentinfosetupconfigvalidationunion.md index 42c6f6309..2b7a996c9 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentinfosetupconfigvalidationunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentinfosetupconfigvalidationunion.md @@ -14,4 +14,3 @@ const value: models.DeploymentInfoSetupConfigValidation = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentinitialsetupauthority.md b/client-sdks/platform/typescript/docs/models/deploymentinitialsetupauthority.md new file mode 100644 index 000000000..4c3b9137a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentinitialsetupauthority.md @@ -0,0 +1,17 @@ +# DeploymentInitialSetupAuthority + +Actor that owns structural work during the initial setup phase. + +## Example Usage + +```typescript +import { DeploymentInitialSetupAuthority } from "@alienplatform/platform-api/models"; + +let value: DeploymentInitialSetupAuthority = "directSetup"; +``` + +## Values + +```typescript +"importedHandoff" | "directSetup" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentinput.md b/client-sdks/platform/typescript/docs/models/deploymentinput.md deleted file mode 100644 index f7bb6e136..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentinput.md +++ /dev/null @@ -1,34 +0,0 @@ -# DeploymentInput - -Stack input definition serialized into a release stack. - -## Example Usage - -```typescript -import { DeploymentInput } from "@alienplatform/platform-api/models"; - -let value: DeploymentInput = { - description: "reasoning nice once left sit round aw", - id: "", - kind: "string", - label: "", - providedBy: [], - required: true, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | -| `default` | *models.DeploymentDefaultUnion* | :heavy_minus_sign: | N/A | -| `description` | *string* | :heavy_check_mark: | Human-facing helper text. | -| `env` | [models.DeploymentEnv](../models/deploymentenv.md)[] | :heavy_minus_sign: | Runtime env-var mappings for v1 input resolution. | -| `id` | *string* | :heavy_check_mark: | Stable input ID used by CLI/API calls. | -| `kind` | [models.DeploymentKind](../models/deploymentkind.md) | :heavy_check_mark: | Primitive stack input kind. | -| `label` | *string* | :heavy_check_mark: | Human-facing field label. | -| `placeholder` | *string* | :heavy_minus_sign: | Example placeholder shown in UI. | -| `platforms` | [models.DeploymentPreparedStackPlatform](../models/deploymentpreparedstackplatform.md)[] | :heavy_minus_sign: | Platforms where this input applies. | -| `providedBy` | [models.DeploymentProvidedBy](../models/deploymentprovidedby.md)[] | :heavy_check_mark: | Who can provide this value. | -| `required` | *boolean* | :heavy_check_mark: | Whether a resolved value is required before deployment can proceed. | -| `validation` | *models.DeploymentValidationUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentinputsresponsedefaultunion.md b/client-sdks/platform/typescript/docs/models/deploymentinputsresponsedefaultunion.md index 54a7792b9..e23d7505c 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentinputsresponsedefaultunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentinputsresponsedefaultunion.md @@ -48,4 +48,3 @@ const value: models.DeploymentInputsResponseDefaultStringList = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentinputsresponsetypeunion.md b/client-sdks/platform/typescript/docs/models/deploymentinputsresponsetypeunion.md index 4178d651e..21fff6656 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentinputsresponsetypeunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentinputsresponsetypeunion.md @@ -14,4 +14,3 @@ const value: models.DeploymentInputsResponseTypeEnvEnum = "plain"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentinputsresponsevalidationunion.md b/client-sdks/platform/typescript/docs/models/deploymentinputsresponsevalidationunion.md index 599665b56..4d42d4bf2 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentinputsresponsevalidationunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentinputsresponsevalidationunion.md @@ -14,4 +14,3 @@ const value: models.DeploymentInputsResponseValidation = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentkind.md b/client-sdks/platform/typescript/docs/models/deploymentkind.md deleted file mode 100644 index 8f015661a..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentkind.md +++ /dev/null @@ -1,17 +0,0 @@ -# DeploymentKind - -Primitive stack input kind. - -## Example Usage - -```typescript -import { DeploymentKind } from "@alienplatform/platform-api/models"; - -let value: DeploymentKind = "string"; -``` - -## Values - -```typescript -"string" | "secret" | "number" | "integer" | "boolean" | "enum" | "stringList" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentkubernetesunion.md b/client-sdks/platform/typescript/docs/models/deploymentkubernetesunion.md index 6d78d14e9..6d099536c 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentkubernetesunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentkubernetesunion.md @@ -14,4 +14,3 @@ const value: models.DeploymentKubernetes = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentlifecycleunion.md b/client-sdks/platform/typescript/docs/models/deploymentlifecycleunion.md index 71e03ffad..b4dc76d78 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentlifecycleunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentlifecycleunion.md @@ -14,4 +14,3 @@ const value: models.DeploymentLifecycleStackStateEnum = "live"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentlinksetupresponsestack.md b/client-sdks/platform/typescript/docs/models/deploymentlinksetupresponsestack.md new file mode 100644 index 000000000..b0395893a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentlinksetupresponsestack.md @@ -0,0 +1,21 @@ +# DeploymentLinkSetupResponseStack + +## Example Usage + +```typescript +import { DeploymentLinkSetupResponseStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentLinkSetupResponseStack = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `aws` | *any* | :heavy_minus_sign: | N/A | +| `gcp` | *any* | :heavy_minus_sign: | N/A | +| `azure` | *any* | :heavy_minus_sign: | N/A | +| `kubernetes` | *any* | :heavy_minus_sign: | N/A | +| `machines` | *any* | :heavy_minus_sign: | N/A | +| `local` | *any* | :heavy_minus_sign: | N/A | +| `test` | *any* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentlistitemresponse.md b/client-sdks/platform/typescript/docs/models/deploymentlistitemresponse.md index 27b34315d..de422674c 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentlistitemresponse.md +++ b/client-sdks/platform/typescript/docs/models/deploymentlistitemresponse.md @@ -16,6 +16,7 @@ let value: DeploymentListItemResponse = { currentReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", desiredReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", pinnedReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", + releaseChannel: "", retryRequested: true, createdAt: new Date("2026-01-02T04:46:33.633Z"), updatedAt: new Date("2026-09-13T22:49:00.377Z"), @@ -37,7 +38,7 @@ let value: DeploymentListItemResponse = { commitAuthorLogin: "johndoe", commitAuthorAvatarUrl: "https://github.com/johndoe.png", }, - createdAt: new Date("2024-06-27T06:57:01.451Z"), + createdAt: new Date("2024-04-17T05:47:54.417Z"), }, deploymentGroup: { id: "dg_r27ict8c7vcgsumpj90ackf7b", @@ -65,6 +66,7 @@ let value: DeploymentListItemResponse = { | `currentReleaseId` | *string* | :heavy_minus_sign: | ID of the currently deployed release | rel_WbhQgksrawSKIpEN0NAssHX9 | | `desiredReleaseId` | *string* | :heavy_minus_sign: | ID of the desired release | rel_WbhQgksrawSKIpEN0NAssHX9 | | `pinnedReleaseId` | *string* | :heavy_minus_sign: | ID of the pinned release | rel_WbhQgksrawSKIpEN0NAssHX9 | +| `releaseChannel` | *string* | :heavy_check_mark: | N/A | | | `importSource` | [models.DeploymentListItemResponseImportSource](../models/deploymentlistitemresponseimportsource.md) | :heavy_minus_sign: | Setup source that imported this deployment | | | `setupMethod` | [models.DeploymentListItemResponseSetupMethod](../models/deploymentlistitemresponsesetupmethod.md) | :heavy_minus_sign: | Setup method that created the deployment record. | | | `setupMetadata` | Record | :heavy_minus_sign: | Setup method metadata needed to guide privileged teardown. | | diff --git a/client-sdks/platform/typescript/docs/models/deploymentlistitemresponseenvironmentinfounion.md b/client-sdks/platform/typescript/docs/models/deploymentlistitemresponseenvironmentinfounion.md index 1ae24be04..6c32c268c 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentlistitemresponseenvironmentinfounion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentlistitemresponseenvironmentinfounion.md @@ -62,4 +62,3 @@ const value: models.DeploymentListItemResponseEnvironmentInfoTest = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentmanagement1.md b/client-sdks/platform/typescript/docs/models/deploymentmanagement1.md deleted file mode 100644 index 4982ac804..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentmanagement1.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentManagement1 - -## Example Usage - -```typescript -import { DeploymentManagement1 } from "@alienplatform/platform-api/models"; - -let value: DeploymentManagement1 = { - extend: { - "key": [], - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -| `extend` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentmanagement2.md b/client-sdks/platform/typescript/docs/models/deploymentmanagement2.md deleted file mode 100644 index e576c40e5..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentmanagement2.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentManagement2 - -## Example Usage - -```typescript -import { DeploymentManagement2 } from "@alienplatform/platform-api/models"; - -let value: DeploymentManagement2 = { - override: { - "key": [ - "", - ], - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -| `override` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentmanagementenum.md b/client-sdks/platform/typescript/docs/models/deploymentmanagementenum.md deleted file mode 100644 index 66d8610ae..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentmanagementenum.md +++ /dev/null @@ -1,15 +0,0 @@ -# DeploymentManagementEnum - -## Example Usage - -```typescript -import { DeploymentManagementEnum } from "@alienplatform/platform-api/models"; - -let value: DeploymentManagementEnum = "auto"; -``` - -## Values - -```typescript -"auto" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentmanagementunion.md b/client-sdks/platform/typescript/docs/models/deploymentmanagementunion.md deleted file mode 100644 index 5d208e6c2..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentmanagementunion.md +++ /dev/null @@ -1,35 +0,0 @@ -# DeploymentManagementUnion - -Management permissions configuration for stack management access - - -## Supported Types - -### `models.DeploymentManagement1` - -```typescript -const value: models.DeploymentManagement1 = { - extend: { - "key": [], - }, -}; -``` - -### `models.DeploymentManagement2` - -```typescript -const value: models.DeploymentManagement2 = { - override: { - "key": [ - "", - ], - }, -}; -``` - -### `models.DeploymentManagementEnum` - -```typescript -const value: models.DeploymentManagementEnum = "auto"; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentnetworkunion.md b/client-sdks/platform/typescript/docs/models/deploymentnetworkunion.md index aba419c33..cdb2f2de4 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentnetworkunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentnetworkunion.md @@ -64,4 +64,3 @@ const value: models.DeploymentNetworkByoVnetAzure = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentoutputsunion.md b/client-sdks/platform/typescript/docs/models/deploymentoutputsunion.md index a9b2acae4..008b214f7 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentoutputsunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentoutputsunion.md @@ -16,4 +16,3 @@ const value: models.DeploymentOutputs = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentoverride.md b/client-sdks/platform/typescript/docs/models/deploymentoverride.md deleted file mode 100644 index e6b372d44..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentoverride.md +++ /dev/null @@ -1,23 +0,0 @@ -# DeploymentOverride - -A permission set that can be applied across different cloud platforms - -## Example Usage - -```typescript -import { DeploymentOverride } from "@alienplatform/platform-api/models"; - -let value: DeploymentOverride = { - description: "technician um however academics", - id: "", - platforms: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | -| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | -| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | -| `platforms` | [models.DeploymentOverridePlatforms](../models/deploymentoverrideplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentoverrideaw.md b/client-sdks/platform/typescript/docs/models/deploymentoverrideaw.md deleted file mode 100644 index 4d2e2153a..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentoverrideaw.md +++ /dev/null @@ -1,24 +0,0 @@ -# DeploymentOverrideAw - -AWS-specific platform permission configuration - -## Example Usage - -```typescript -import { DeploymentOverrideAw } from "@alienplatform/platform-api/models"; - -let value: DeploymentOverrideAw = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | -| `binding` | [models.DeploymentOverrideAwBinding](../models/deploymentoverrideawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `effect` | [models.DeploymentOverrideEffect](../models/deploymentoverrideeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | -| `grant` | [models.DeploymentOverrideAwGrant](../models/deploymentoverrideawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentoverrideawbinding.md b/client-sdks/platform/typescript/docs/models/deploymentoverrideawbinding.md deleted file mode 100644 index 0d3e9d406..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentoverrideawbinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# DeploymentOverrideAwBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { DeploymentOverrideAwBinding } from "@alienplatform/platform-api/models"; - -let value: DeploymentOverrideAwBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -| `resource` | [models.DeploymentOverrideAwResource](../models/deploymentoverrideawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | -| `stack` | [models.DeploymentOverrideAwStack](../models/deploymentoverrideawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentoverrideawgrant.md b/client-sdks/platform/typescript/docs/models/deploymentoverrideawgrant.md deleted file mode 100644 index 8246edd30..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentoverrideawgrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentOverrideAwGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { DeploymentOverrideAwGrant } from "@alienplatform/platform-api/models"; - -let value: DeploymentOverrideAwGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentoverrideawresource.md b/client-sdks/platform/typescript/docs/models/deploymentoverrideawresource.md deleted file mode 100644 index d55b19ded..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentoverrideawresource.md +++ /dev/null @@ -1,23 +0,0 @@ -# DeploymentOverrideAwResource - -AWS-specific binding specification - -## Example Usage - -```typescript -import { DeploymentOverrideAwResource } from "@alienplatform/platform-api/models"; - -let value: DeploymentOverrideAwResource = { - resources: [ - "", - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | -| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentoverrideawstack.md b/client-sdks/platform/typescript/docs/models/deploymentoverrideawstack.md deleted file mode 100644 index 0ced95dcd..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentoverrideawstack.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentOverrideAwStack - -AWS-specific binding specification - -## Example Usage - -```typescript -import { DeploymentOverrideAwStack } from "@alienplatform/platform-api/models"; - -let value: DeploymentOverrideAwStack = { - resources: [], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | -| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentoverrideazure.md b/client-sdks/platform/typescript/docs/models/deploymentoverrideazure.md deleted file mode 100644 index aa43ffedf..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentoverrideazure.md +++ /dev/null @@ -1,23 +0,0 @@ -# DeploymentOverrideAzure - -Azure-specific platform permission configuration - -## Example Usage - -```typescript -import { DeploymentOverrideAzure } from "@alienplatform/platform-api/models"; - -let value: DeploymentOverrideAzure = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | -| `binding` | [models.DeploymentOverrideAzureBinding](../models/deploymentoverrideazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `grant` | [models.DeploymentOverrideAzureGrant](../models/deploymentoverrideazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentoverrideazurebinding.md b/client-sdks/platform/typescript/docs/models/deploymentoverrideazurebinding.md deleted file mode 100644 index 2be51019d..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentoverrideazurebinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# DeploymentOverrideAzureBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { DeploymentOverrideAzureBinding } from "@alienplatform/platform-api/models"; - -let value: DeploymentOverrideAzureBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| `resource` | [models.DeploymentOverrideAzureResource](../models/deploymentoverrideazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | -| `stack` | [models.DeploymentOverrideAzureStack](../models/deploymentoverrideazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentoverrideazuregrant.md b/client-sdks/platform/typescript/docs/models/deploymentoverrideazuregrant.md deleted file mode 100644 index 993525682..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentoverrideazuregrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentOverrideAzureGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { DeploymentOverrideAzureGrant } from "@alienplatform/platform-api/models"; - -let value: DeploymentOverrideAzureGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentoverrideazureresource.md b/client-sdks/platform/typescript/docs/models/deploymentoverrideazureresource.md deleted file mode 100644 index 13355c19c..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentoverrideazureresource.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentOverrideAzureResource - -Azure-specific binding specification - -## Example Usage - -```typescript -import { DeploymentOverrideAzureResource } from "@alienplatform/platform-api/models"; - -let value: DeploymentOverrideAzureResource = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentoverrideazurestack.md b/client-sdks/platform/typescript/docs/models/deploymentoverrideazurestack.md deleted file mode 100644 index 229de554b..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentoverrideazurestack.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentOverrideAzureStack - -Azure-specific binding specification - -## Example Usage - -```typescript -import { DeploymentOverrideAzureStack } from "@alienplatform/platform-api/models"; - -let value: DeploymentOverrideAzureStack = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentoverrideconditionresource.md b/client-sdks/platform/typescript/docs/models/deploymentoverrideconditionresource.md deleted file mode 100644 index cc755e338..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentoverrideconditionresource.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentOverrideConditionResource - -GCP IAM condition - -## Example Usage - -```typescript -import { DeploymentOverrideConditionResource } from "@alienplatform/platform-api/models"; - -let value: DeploymentOverrideConditionResource = { - expression: "", - title: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `expression` | *string* | :heavy_check_mark: | N/A | -| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentoverrideconditionstack.md b/client-sdks/platform/typescript/docs/models/deploymentoverrideconditionstack.md deleted file mode 100644 index 0c15c4ee7..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentoverrideconditionstack.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentOverrideConditionStack - -GCP IAM condition - -## Example Usage - -```typescript -import { DeploymentOverrideConditionStack } from "@alienplatform/platform-api/models"; - -let value: DeploymentOverrideConditionStack = { - expression: "", - title: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `expression` | *string* | :heavy_check_mark: | N/A | -| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentoverrideeffect.md b/client-sdks/platform/typescript/docs/models/deploymentoverrideeffect.md deleted file mode 100644 index a73e20edd..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentoverrideeffect.md +++ /dev/null @@ -1,17 +0,0 @@ -# DeploymentOverrideEffect - -IAM effect. Defaults to Allow. - -## Example Usage - -```typescript -import { DeploymentOverrideEffect } from "@alienplatform/platform-api/models"; - -let value: DeploymentOverrideEffect = "Allow"; -``` - -## Values - -```typescript -"Allow" | "Deny" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentoverridegcp.md b/client-sdks/platform/typescript/docs/models/deploymentoverridegcp.md deleted file mode 100644 index 29b3d3949..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentoverridegcp.md +++ /dev/null @@ -1,23 +0,0 @@ -# DeploymentOverrideGcp - -GCP-specific platform permission configuration - -## Example Usage - -```typescript -import { DeploymentOverrideGcp } from "@alienplatform/platform-api/models"; - -let value: DeploymentOverrideGcp = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -| `binding` | [models.DeploymentOverrideGcpBinding](../models/deploymentoverridegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `grant` | [models.DeploymentOverrideGcpGrant](../models/deploymentoverridegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentoverridegcpbinding.md b/client-sdks/platform/typescript/docs/models/deploymentoverridegcpbinding.md deleted file mode 100644 index 1753dd590..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentoverridegcpbinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# DeploymentOverrideGcpBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { DeploymentOverrideGcpBinding } from "@alienplatform/platform-api/models"; - -let value: DeploymentOverrideGcpBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | -| `resource` | [models.DeploymentOverrideGcpResource](../models/deploymentoverridegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | -| `stack` | [models.DeploymentOverrideGcpStack](../models/deploymentoverridegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentoverridegcpgrant.md b/client-sdks/platform/typescript/docs/models/deploymentoverridegcpgrant.md deleted file mode 100644 index 24b440101..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentoverridegcpgrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentOverrideGcpGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { DeploymentOverrideGcpGrant } from "@alienplatform/platform-api/models"; - -let value: DeploymentOverrideGcpGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentoverridegcpresource.md b/client-sdks/platform/typescript/docs/models/deploymentoverridegcpresource.md deleted file mode 100644 index 130490517..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentoverridegcpresource.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentOverrideGcpResource - -GCP-specific binding specification - -## Example Usage - -```typescript -import { DeploymentOverrideGcpResource } from "@alienplatform/platform-api/models"; - -let value: DeploymentOverrideGcpResource = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------- | -| `condition` | *models.DeploymentOverrideResourceConditionUnion* | :heavy_minus_sign: | N/A | -| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentoverridegcpstack.md b/client-sdks/platform/typescript/docs/models/deploymentoverridegcpstack.md deleted file mode 100644 index 68e988182..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentoverridegcpstack.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentOverrideGcpStack - -GCP-specific binding specification - -## Example Usage - -```typescript -import { DeploymentOverrideGcpStack } from "@alienplatform/platform-api/models"; - -let value: DeploymentOverrideGcpStack = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | -| `condition` | *models.DeploymentOverrideStackConditionUnion* | :heavy_minus_sign: | N/A | -| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentoverrideplatforms.md b/client-sdks/platform/typescript/docs/models/deploymentoverrideplatforms.md deleted file mode 100644 index 255b50186..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentoverrideplatforms.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentOverridePlatforms - -Platform-specific permission configurations - -## Example Usage - -```typescript -import { DeploymentOverridePlatforms } from "@alienplatform/platform-api/models"; - -let value: DeploymentOverridePlatforms = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | -| `aws` | [models.DeploymentOverrideAw](../models/deploymentoverrideaw.md)[] | :heavy_minus_sign: | AWS permission configurations | -| `azure` | [models.DeploymentOverrideAzure](../models/deploymentoverrideazure.md)[] | :heavy_minus_sign: | Azure permission configurations | -| `gcp` | [models.DeploymentOverrideGcp](../models/deploymentoverridegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentoverrideresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentoverrideresourceconditionunion.md deleted file mode 100644 index 0b79f4d26..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentoverrideresourceconditionunion.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentOverrideResourceConditionUnion - - -## Supported Types - -### `models.DeploymentOverrideConditionResource` - -```typescript -const value: models.DeploymentOverrideConditionResource = { - expression: "", - title: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentoverridestackconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentoverridestackconditionunion.md deleted file mode 100644 index ece774ad7..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentoverridestackconditionunion.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentOverrideStackConditionUnion - - -## Supported Types - -### `models.DeploymentOverrideConditionStack` - -```typescript -const value: models.DeploymentOverrideConditionStack = { - expression: "", - title: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentoverrideunion.md b/client-sdks/platform/typescript/docs/models/deploymentoverrideunion.md deleted file mode 100644 index b640d8a0a..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentoverrideunion.md +++ /dev/null @@ -1,23 +0,0 @@ -# DeploymentOverrideUnion - -Reference to a permission set - either by name or inline definition - - -## Supported Types - -### `models.DeploymentOverride` - -```typescript -const value: models.DeploymentOverride = { - description: "technician um however academics", - id: "", - platforms: {}, -}; -``` - -### `string` - -```typescript -const value: string = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstack.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstack.md new file mode 100644 index 000000000..8dff1a719 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstack.md @@ -0,0 +1,24 @@ +# DeploymentPendingPreparedStack + +A bag of resources, unaware of any cloud. + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStack = { + id: "", + resources: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the stack | +| `inputs` | [models.DeploymentPendingPreparedStackInput](../models/deploymentpendingpreparedstackinput.md)[] | :heavy_minus_sign: | Input definitions required before setup or deployment can proceed. | +| `permissions` | [models.DeploymentPendingPreparedStackPermissions](../models/deploymentpendingpreparedstackpermissions.md) | :heavy_minus_sign: | Combined permissions configuration that contains both profiles and management | +| `resources` | Record | :heavy_check_mark: | Map of resource IDs to their configurations and lifecycle settings | +| `supportedPlatforms` | [models.DeploymentPendingPreparedStackSupportedPlatform](../models/deploymentpendingpreparedstacksupportedplatform.md)[] | :heavy_minus_sign: | Which platforms this stack supports. When None, all platforms are supported. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackconfig.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackconfig.md new file mode 100644 index 000000000..8b6773e1c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackconfig.md @@ -0,0 +1,22 @@ +# DeploymentPendingPreparedStackConfig + +Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackConfig } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackConfig = { + id: "", + type: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. | +| `type` | *string* | :heavy_check_mark: | Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. | +| `additionalProperties` | Record | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackdefaultboolean.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackdefaultboolean.md new file mode 100644 index 000000000..9c6756146 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackdefaultboolean.md @@ -0,0 +1,19 @@ +# DeploymentPendingPreparedStackDefaultBoolean + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackDefaultBoolean } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackDefaultBoolean = { + type: "boolean", + value: false, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | +| `type` | [models.DeploymentPendingPreparedStackTypeBoolean](../models/deploymentpendingpreparedstacktypeboolean.md) | :heavy_check_mark: | N/A | +| `value` | *boolean* | :heavy_check_mark: | Boolean default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackdefaultnumber.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackdefaultnumber.md new file mode 100644 index 000000000..1636c2926 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackdefaultnumber.md @@ -0,0 +1,19 @@ +# DeploymentPendingPreparedStackDefaultNumber + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackDefaultNumber } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackDefaultNumber = { + type: "number", + value: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | +| `type` | [models.DeploymentPendingPreparedStackTypeNumber](../models/deploymentpendingpreparedstacktypenumber.md) | :heavy_check_mark: | N/A | +| `value` | *string* | :heavy_check_mark: | Number default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackdefaultstring.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackdefaultstring.md new file mode 100644 index 000000000..dd7ed8738 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackdefaultstring.md @@ -0,0 +1,19 @@ +# DeploymentPendingPreparedStackDefaultString + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackDefaultString } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackDefaultString = { + type: "string", + value: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | +| `type` | [models.DeploymentPendingPreparedStackTypeString](../models/deploymentpendingpreparedstacktypestring.md) | :heavy_check_mark: | N/A | +| `value` | *string* | :heavy_check_mark: | String default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackdefaultstringlist.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackdefaultstringlist.md new file mode 100644 index 000000000..1e45a414a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackdefaultstringlist.md @@ -0,0 +1,22 @@ +# DeploymentPendingPreparedStackDefaultStringList + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackDefaultStringList } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackDefaultStringList = { + type: "stringList", + value: [ + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| `type` | [models.DeploymentPendingPreparedStackTypeStringList](../models/deploymentpendingpreparedstacktypestringlist.md) | :heavy_check_mark: | N/A | +| `value` | *string*[] | :heavy_check_mark: | String list default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackdefaultunion.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackdefaultunion.md new file mode 100644 index 000000000..bb7288524 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackdefaultunion.md @@ -0,0 +1,49 @@ +# DeploymentPendingPreparedStackDefaultUnion + + +## Supported Types + +### `models.DeploymentPendingPreparedStackDefaultString` + +```typescript +const value: models.DeploymentPendingPreparedStackDefaultString = { + type: "string", + value: "", +}; +``` + +### `models.DeploymentPendingPreparedStackDefaultNumber` + +```typescript +const value: models.DeploymentPendingPreparedStackDefaultNumber = { + type: "number", + value: "", +}; +``` + +### `models.DeploymentPendingPreparedStackDefaultBoolean` + +```typescript +const value: models.DeploymentPendingPreparedStackDefaultBoolean = { + type: "boolean", + value: false, +}; +``` + +### `models.DeploymentPendingPreparedStackDefaultStringList` + +```typescript +const value: models.DeploymentPendingPreparedStackDefaultStringList = { + type: "stringList", + value: [ + "", + "", + ], +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackdependency.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackdependency.md new file mode 100644 index 000000000..ba4c23998 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackdependency.md @@ -0,0 +1,21 @@ +# DeploymentPendingPreparedStackDependency + +Reference to a resource by its stable id and resource type. + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackDependency } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackDependency = { + id: "", + type: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | N/A | +| `type` | *string* | :heavy_check_mark: | Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackenv.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackenv.md new file mode 100644 index 000000000..acc388fc3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackenv.md @@ -0,0 +1,21 @@ +# DeploymentPendingPreparedStackEnv + +How a resolved stack input is injected into runtime environment variables. + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackEnv } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackEnv = { + name: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| `name` | *string* | :heavy_check_mark: | Environment variable name. | +| `targetResources` | *string*[] | :heavy_minus_sign: | Target resource IDs or patterns. None means every env-capable resource. | +| `type` | *models.DeploymentPendingPreparedStackTypeUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextend.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextend.md new file mode 100644 index 000000000..d682faf69 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextend.md @@ -0,0 +1,23 @@ +# DeploymentPendingPreparedStackExtend + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackExtend } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackExtend = { + description: "knowingly cleverly institute even lest", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.DeploymentPendingPreparedStackExtendPlatforms](../models/deploymentpendingpreparedstackextendplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendaw.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendaw.md new file mode 100644 index 000000000..eff567df8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendaw.md @@ -0,0 +1,24 @@ +# DeploymentPendingPreparedStackExtendAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackExtendAw } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackExtendAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.DeploymentPendingPreparedStackExtendAwBinding](../models/deploymentpendingpreparedstackextendawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.DeploymentPendingPreparedStackExtendEffect](../models/deploymentpendingpreparedstackextendeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.DeploymentPendingPreparedStackExtendAwGrant](../models/deploymentpendingpreparedstackextendawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendawbinding.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendawbinding.md new file mode 100644 index 000000000..c942f466d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendawbinding.md @@ -0,0 +1,18 @@ +# DeploymentPendingPreparedStackExtendAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackExtendAwBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackExtendAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.DeploymentPendingPreparedStackExtendAwResource](../models/deploymentpendingpreparedstackextendawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.DeploymentPendingPreparedStackExtendAwStack](../models/deploymentpendingpreparedstackextendawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendawgrant.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendawgrant.md new file mode 100644 index 000000000..9d6e4fc8f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendawgrant.md @@ -0,0 +1,21 @@ +# DeploymentPendingPreparedStackExtendAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackExtendAwGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackExtendAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendawresource.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendawresource.md new file mode 100644 index 000000000..f054cdd28 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendawresource.md @@ -0,0 +1,22 @@ +# DeploymentPendingPreparedStackExtendAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackExtendAwResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackExtendAwResource = { + resources: [ + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendawstack.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendawstack.md new file mode 100644 index 000000000..bf4236f56 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendawstack.md @@ -0,0 +1,23 @@ +# DeploymentPendingPreparedStackExtendAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackExtendAwStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackExtendAwStack = { + resources: [ + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendazure.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendazure.md new file mode 100644 index 000000000..305419d66 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendazure.md @@ -0,0 +1,23 @@ +# DeploymentPendingPreparedStackExtendAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackExtendAzure } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackExtendAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.DeploymentPendingPreparedStackExtendAzureBinding](../models/deploymentpendingpreparedstackextendazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.DeploymentPendingPreparedStackExtendAzureGrant](../models/deploymentpendingpreparedstackextendazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendazurebinding.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendazurebinding.md new file mode 100644 index 000000000..779ec9412 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendazurebinding.md @@ -0,0 +1,18 @@ +# DeploymentPendingPreparedStackExtendAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackExtendAzureBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackExtendAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.DeploymentPendingPreparedStackExtendAzureResource](../models/deploymentpendingpreparedstackextendazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.DeploymentPendingPreparedStackExtendAzureStack](../models/deploymentpendingpreparedstackextendazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendazuregrant.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendazuregrant.md new file mode 100644 index 000000000..3ae3a5b55 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendazuregrant.md @@ -0,0 +1,21 @@ +# DeploymentPendingPreparedStackExtendAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackExtendAzureGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackExtendAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendazureresource.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendazureresource.md new file mode 100644 index 000000000..d012c4ae8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendazureresource.md @@ -0,0 +1,19 @@ +# DeploymentPendingPreparedStackExtendAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackExtendAzureResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackExtendAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendazurestack.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendazurestack.md new file mode 100644 index 000000000..851ea1027 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendazurestack.md @@ -0,0 +1,19 @@ +# DeploymentPendingPreparedStackExtendAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackExtendAzureStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackExtendAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendconditionresource.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendconditionresource.md new file mode 100644 index 000000000..b7a0ae69c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendconditionresource.md @@ -0,0 +1,21 @@ +# DeploymentPendingPreparedStackExtendConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackExtendConditionResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackExtendConditionResource = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendconditionstack.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendconditionstack.md new file mode 100644 index 000000000..26609b8bf --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendconditionstack.md @@ -0,0 +1,21 @@ +# DeploymentPendingPreparedStackExtendConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackExtendConditionStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackExtendConditionStack = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendeffect.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendeffect.md new file mode 100644 index 000000000..147cbc5fc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendeffect.md @@ -0,0 +1,17 @@ +# DeploymentPendingPreparedStackExtendEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackExtendEffect } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackExtendEffect = "Allow"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendgcp.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendgcp.md new file mode 100644 index 000000000..767c09680 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendgcp.md @@ -0,0 +1,23 @@ +# DeploymentPendingPreparedStackExtendGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackExtendGcp } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackExtendGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.DeploymentPendingPreparedStackExtendGcpBinding](../models/deploymentpendingpreparedstackextendgcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.DeploymentPendingPreparedStackExtendGcpGrant](../models/deploymentpendingpreparedstackextendgcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendgcpbinding.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendgcpbinding.md new file mode 100644 index 000000000..4fb57d7d7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendgcpbinding.md @@ -0,0 +1,18 @@ +# DeploymentPendingPreparedStackExtendGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackExtendGcpBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackExtendGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.DeploymentPendingPreparedStackExtendGcpResource](../models/deploymentpendingpreparedstackextendgcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.DeploymentPendingPreparedStackExtendGcpStack](../models/deploymentpendingpreparedstackextendgcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendgcpgrant.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendgcpgrant.md new file mode 100644 index 000000000..32dd9e6ab --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendgcpgrant.md @@ -0,0 +1,21 @@ +# DeploymentPendingPreparedStackExtendGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackExtendGcpGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackExtendGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendgcpresource.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendgcpresource.md new file mode 100644 index 000000000..1094933f3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendgcpresource.md @@ -0,0 +1,20 @@ +# DeploymentPendingPreparedStackExtendGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackExtendGcpResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackExtendGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `condition` | *models.DeploymentPendingPreparedStackExtendResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendgcpstack.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendgcpstack.md new file mode 100644 index 000000000..7a8ef00e3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendgcpstack.md @@ -0,0 +1,20 @@ +# DeploymentPendingPreparedStackExtendGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackExtendGcpStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackExtendGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | +| `condition` | *models.DeploymentPendingPreparedStackExtendStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendplatforms.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendplatforms.md new file mode 100644 index 000000000..f5959ad51 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendplatforms.md @@ -0,0 +1,19 @@ +# DeploymentPendingPreparedStackExtendPlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackExtendPlatforms } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackExtendPlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | +| `aws` | [models.DeploymentPendingPreparedStackExtendAw](../models/deploymentpendingpreparedstackextendaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.DeploymentPendingPreparedStackExtendAzure](../models/deploymentpendingpreparedstackextendazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.DeploymentPendingPreparedStackExtendGcp](../models/deploymentpendingpreparedstackextendgcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendresourceconditionunion.md new file mode 100644 index 000000000..f38bf46d7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendresourceconditionunion.md @@ -0,0 +1,19 @@ +# DeploymentPendingPreparedStackExtendResourceConditionUnion + + +## Supported Types + +### `models.DeploymentPendingPreparedStackExtendConditionResource` + +```typescript +const value: models.DeploymentPendingPreparedStackExtendConditionResource = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendstackconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendstackconditionunion.md new file mode 100644 index 000000000..d56f7b3a1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendstackconditionunion.md @@ -0,0 +1,19 @@ +# DeploymentPendingPreparedStackExtendStackConditionUnion + + +## Supported Types + +### `models.DeploymentPendingPreparedStackExtendConditionStack` + +```typescript +const value: models.DeploymentPendingPreparedStackExtendConditionStack = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendunion.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendunion.md new file mode 100644 index 000000000..d45571f8e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackextendunion.md @@ -0,0 +1,22 @@ +# DeploymentPendingPreparedStackExtendUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.DeploymentPendingPreparedStackExtend` + +```typescript +const value: models.DeploymentPendingPreparedStackExtend = { + description: "knowingly cleverly institute even lest", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackinput.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackinput.md new file mode 100644 index 000000000..7e12265ed --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackinput.md @@ -0,0 +1,34 @@ +# DeploymentPendingPreparedStackInput + +Stack input definition serialized into a release stack. + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackInput } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackInput = { + description: "smog concerning quash qua phooey wherever", + id: "", + kind: "boolean", + label: "", + providedBy: [], + required: false, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | +| `default` | *models.DeploymentPendingPreparedStackDefaultUnion* | :heavy_minus_sign: | N/A | +| `description` | *string* | :heavy_check_mark: | Human-facing helper text. | +| `env` | [models.DeploymentPendingPreparedStackEnv](../models/deploymentpendingpreparedstackenv.md)[] | :heavy_minus_sign: | Runtime env-var mappings for v1 input resolution. | +| `id` | *string* | :heavy_check_mark: | Stable input ID used by CLI/API calls. | +| `kind` | [models.DeploymentPendingPreparedStackKind](../models/deploymentpendingpreparedstackkind.md) | :heavy_check_mark: | Primitive stack input kind. | +| `label` | *string* | :heavy_check_mark: | Human-facing field label. | +| `placeholder` | *string* | :heavy_minus_sign: | Example placeholder shown in UI. | +| `platforms` | [models.DeploymentPendingPreparedStackPlatform](../models/deploymentpendingpreparedstackplatform.md)[] | :heavy_minus_sign: | Platforms where this input applies. | +| `providedBy` | [models.DeploymentPendingPreparedStackProvidedBy](../models/deploymentpendingpreparedstackprovidedby.md)[] | :heavy_check_mark: | Who can provide this value. | +| `required` | *boolean* | :heavy_check_mark: | Whether a resolved value is required before deployment can proceed. | +| `validation` | *models.DeploymentPendingPreparedStackValidationUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackkind.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackkind.md new file mode 100644 index 000000000..7e5879b6e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackkind.md @@ -0,0 +1,17 @@ +# DeploymentPendingPreparedStackKind + +Primitive stack input kind. + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackKind } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackKind = "number"; +``` + +## Values + +```typescript +"string" | "secret" | "number" | "integer" | "boolean" | "enum" | "stringList" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstacklifecycle.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstacklifecycle.md new file mode 100644 index 000000000..29692b430 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstacklifecycle.md @@ -0,0 +1,17 @@ +# DeploymentPendingPreparedStackLifecycle + +Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackLifecycle } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackLifecycle = "frozen"; +``` + +## Values + +```typescript +"frozen" | "live" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackmanagement1.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackmanagement1.md new file mode 100644 index 000000000..11b89856a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackmanagement1.md @@ -0,0 +1,23 @@ +# DeploymentPendingPreparedStackManagement1 + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackManagement1 } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackManagement1 = { + extend: { + "key": [], + "key1": [ + "", + ], + "key2": [], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `extend` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackmanagement2.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackmanagement2.md new file mode 100644 index 000000000..442d3e6fe --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackmanagement2.md @@ -0,0 +1,35 @@ +# DeploymentPendingPreparedStackManagement2 + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackManagement2 } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackManagement2 = { + override: { + "key": [ + { + description: + "midst clamor untrue request onset eek above gosh likewise milky", + id: "", + platforms: {}, + }, + ], + "key1": [], + "key2": [ + { + description: + "midst clamor untrue request onset eek above gosh likewise milky", + id: "", + platforms: {}, + }, + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `override` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackmanagementenum.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackmanagementenum.md new file mode 100644 index 000000000..63fedb2ed --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackmanagementenum.md @@ -0,0 +1,15 @@ +# DeploymentPendingPreparedStackManagementEnum + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackManagementEnum } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackManagementEnum = "auto"; +``` + +## Values + +```typescript +"auto" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackmanagementunion.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackmanagementunion.md new file mode 100644 index 000000000..cfdb50a4a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackmanagementunion.md @@ -0,0 +1,52 @@ +# DeploymentPendingPreparedStackManagementUnion + +Management permissions configuration for stack management access + + +## Supported Types + +### `models.DeploymentPendingPreparedStackManagement1` + +```typescript +const value: models.DeploymentPendingPreparedStackManagement1 = { + extend: { + "key": [], + "key1": [ + "", + ], + "key2": [], + }, +}; +``` + +### `models.DeploymentPendingPreparedStackManagement2` + +```typescript +const value: models.DeploymentPendingPreparedStackManagement2 = { + override: { + "key": [ + { + description: + "midst clamor untrue request onset eek above gosh likewise milky", + id: "", + platforms: {}, + }, + ], + "key1": [], + "key2": [ + { + description: + "midst clamor untrue request onset eek above gosh likewise milky", + id: "", + platforms: {}, + }, + ], + }, +}; +``` + +### `models.DeploymentPendingPreparedStackManagementEnum` + +```typescript +const value: models.DeploymentPendingPreparedStackManagementEnum = "auto"; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverride.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverride.md new file mode 100644 index 000000000..74c8c40c1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverride.md @@ -0,0 +1,24 @@ +# DeploymentPendingPreparedStackOverride + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackOverride } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackOverride = { + description: + "almighty convection pip throughout hm consign impact alb blah slipper", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.DeploymentPendingPreparedStackOverridePlatforms](../models/deploymentpendingpreparedstackoverrideplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideaw.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideaw.md new file mode 100644 index 000000000..f6b1f8d93 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideaw.md @@ -0,0 +1,24 @@ +# DeploymentPendingPreparedStackOverrideAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackOverrideAw } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackOverrideAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.DeploymentPendingPreparedStackOverrideAwBinding](../models/deploymentpendingpreparedstackoverrideawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.DeploymentPendingPreparedStackOverrideEffect](../models/deploymentpendingpreparedstackoverrideeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.DeploymentPendingPreparedStackOverrideAwGrant](../models/deploymentpendingpreparedstackoverrideawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideawbinding.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideawbinding.md new file mode 100644 index 000000000..1b3c442a4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideawbinding.md @@ -0,0 +1,18 @@ +# DeploymentPendingPreparedStackOverrideAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackOverrideAwBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackOverrideAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.DeploymentPendingPreparedStackOverrideAwResource](../models/deploymentpendingpreparedstackoverrideawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.DeploymentPendingPreparedStackOverrideAwStack](../models/deploymentpendingpreparedstackoverrideawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideawgrant.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideawgrant.md new file mode 100644 index 000000000..019b9665c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideawgrant.md @@ -0,0 +1,21 @@ +# DeploymentPendingPreparedStackOverrideAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackOverrideAwGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackOverrideAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideawresource.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideawresource.md new file mode 100644 index 000000000..e7344aa07 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideawresource.md @@ -0,0 +1,20 @@ +# DeploymentPendingPreparedStackOverrideAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackOverrideAwResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackOverrideAwResource = { + resources: [], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideawstack.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideawstack.md new file mode 100644 index 000000000..1db2d362f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideawstack.md @@ -0,0 +1,20 @@ +# DeploymentPendingPreparedStackOverrideAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackOverrideAwStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackOverrideAwStack = { + resources: [], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideazure.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideazure.md new file mode 100644 index 000000000..dfd57c600 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideazure.md @@ -0,0 +1,23 @@ +# DeploymentPendingPreparedStackOverrideAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackOverrideAzure } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackOverrideAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.DeploymentPendingPreparedStackOverrideAzureBinding](../models/deploymentpendingpreparedstackoverrideazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.DeploymentPendingPreparedStackOverrideAzureGrant](../models/deploymentpendingpreparedstackoverrideazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideazurebinding.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideazurebinding.md new file mode 100644 index 000000000..ccf686d01 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideazurebinding.md @@ -0,0 +1,18 @@ +# DeploymentPendingPreparedStackOverrideAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackOverrideAzureBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackOverrideAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.DeploymentPendingPreparedStackOverrideAzureResource](../models/deploymentpendingpreparedstackoverrideazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.DeploymentPendingPreparedStackOverrideAzureStack](../models/deploymentpendingpreparedstackoverrideazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideazuregrant.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideazuregrant.md new file mode 100644 index 000000000..3860a1261 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideazuregrant.md @@ -0,0 +1,21 @@ +# DeploymentPendingPreparedStackOverrideAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackOverrideAzureGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackOverrideAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideazureresource.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideazureresource.md new file mode 100644 index 000000000..258ea0e2e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideazureresource.md @@ -0,0 +1,19 @@ +# DeploymentPendingPreparedStackOverrideAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackOverrideAzureResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackOverrideAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideazurestack.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideazurestack.md new file mode 100644 index 000000000..0e6825a24 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideazurestack.md @@ -0,0 +1,19 @@ +# DeploymentPendingPreparedStackOverrideAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackOverrideAzureStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackOverrideAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideconditionresource.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideconditionresource.md new file mode 100644 index 000000000..0032fd993 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideconditionresource.md @@ -0,0 +1,21 @@ +# DeploymentPendingPreparedStackOverrideConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackOverrideConditionResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackOverrideConditionResource = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideconditionstack.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideconditionstack.md new file mode 100644 index 000000000..0b2475ff4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideconditionstack.md @@ -0,0 +1,21 @@ +# DeploymentPendingPreparedStackOverrideConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackOverrideConditionStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackOverrideConditionStack = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideeffect.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideeffect.md new file mode 100644 index 000000000..7cf4103d1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideeffect.md @@ -0,0 +1,17 @@ +# DeploymentPendingPreparedStackOverrideEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackOverrideEffect } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackOverrideEffect = "Deny"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverridegcp.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverridegcp.md new file mode 100644 index 000000000..bbac3d114 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverridegcp.md @@ -0,0 +1,23 @@ +# DeploymentPendingPreparedStackOverrideGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackOverrideGcp } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackOverrideGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.DeploymentPendingPreparedStackOverrideGcpBinding](../models/deploymentpendingpreparedstackoverridegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.DeploymentPendingPreparedStackOverrideGcpGrant](../models/deploymentpendingpreparedstackoverridegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverridegcpbinding.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverridegcpbinding.md new file mode 100644 index 000000000..0a5425e1f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverridegcpbinding.md @@ -0,0 +1,18 @@ +# DeploymentPendingPreparedStackOverrideGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackOverrideGcpBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackOverrideGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.DeploymentPendingPreparedStackOverrideGcpResource](../models/deploymentpendingpreparedstackoverridegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.DeploymentPendingPreparedStackOverrideGcpStack](../models/deploymentpendingpreparedstackoverridegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverridegcpgrant.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverridegcpgrant.md new file mode 100644 index 000000000..e6a5ae762 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverridegcpgrant.md @@ -0,0 +1,21 @@ +# DeploymentPendingPreparedStackOverrideGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackOverrideGcpGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackOverrideGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverridegcpresource.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverridegcpresource.md new file mode 100644 index 000000000..0e8312950 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverridegcpresource.md @@ -0,0 +1,20 @@ +# DeploymentPendingPreparedStackOverrideGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackOverrideGcpResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackOverrideGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | +| `condition` | *models.DeploymentPendingPreparedStackOverrideResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverridegcpstack.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverridegcpstack.md new file mode 100644 index 000000000..38e4aaa0a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverridegcpstack.md @@ -0,0 +1,20 @@ +# DeploymentPendingPreparedStackOverrideGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackOverrideGcpStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackOverrideGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `condition` | *models.DeploymentPendingPreparedStackOverrideStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideplatforms.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideplatforms.md new file mode 100644 index 000000000..a5f36f343 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideplatforms.md @@ -0,0 +1,19 @@ +# DeploymentPendingPreparedStackOverridePlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackOverridePlatforms } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackOverridePlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| `aws` | [models.DeploymentPendingPreparedStackOverrideAw](../models/deploymentpendingpreparedstackoverrideaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.DeploymentPendingPreparedStackOverrideAzure](../models/deploymentpendingpreparedstackoverrideazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.DeploymentPendingPreparedStackOverrideGcp](../models/deploymentpendingpreparedstackoverridegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideresourceconditionunion.md new file mode 100644 index 000000000..61aa7d3d9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideresourceconditionunion.md @@ -0,0 +1,19 @@ +# DeploymentPendingPreparedStackOverrideResourceConditionUnion + + +## Supported Types + +### `models.DeploymentPendingPreparedStackOverrideConditionResource` + +```typescript +const value: models.DeploymentPendingPreparedStackOverrideConditionResource = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverridestackconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverridestackconditionunion.md new file mode 100644 index 000000000..b2294e76b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverridestackconditionunion.md @@ -0,0 +1,19 @@ +# DeploymentPendingPreparedStackOverrideStackConditionUnion + + +## Supported Types + +### `models.DeploymentPendingPreparedStackOverrideConditionStack` + +```typescript +const value: models.DeploymentPendingPreparedStackOverrideConditionStack = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideunion.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideunion.md new file mode 100644 index 000000000..2ceb825ef --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackoverrideunion.md @@ -0,0 +1,23 @@ +# DeploymentPendingPreparedStackOverrideUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.DeploymentPendingPreparedStackOverride` + +```typescript +const value: models.DeploymentPendingPreparedStackOverride = { + description: + "almighty convection pip throughout hm consign impact alb blah slipper", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackpermissions.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackpermissions.md new file mode 100644 index 000000000..3bcc790b6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackpermissions.md @@ -0,0 +1,38 @@ +# DeploymentPendingPreparedStackPermissions + +Combined permissions configuration that contains both profiles and management + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackPermissions } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackPermissions = { + profiles: { + "key": { + "key": [], + "key1": [ + "", + ], + }, + "key1": { + "key": [ + "", + ], + "key1": [], + }, + "key2": { + "key": [], + "key1": [], + "key2": [], + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `management` | *models.DeploymentPendingPreparedStackManagementUnion* | :heavy_minus_sign: | Management permissions configuration for stack management access | +| `profiles` | Record> | :heavy_check_mark: | Permission profiles that define access control for compute services
Key is the profile name, value is the permission configuration | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackplatform.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackplatform.md new file mode 100644 index 000000000..dceff1fc2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackplatform.md @@ -0,0 +1,17 @@ +# DeploymentPendingPreparedStackPlatform + +Represents the target cloud platform. + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackPlatform } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackPlatform = "kubernetes"; +``` + +## Values + +```typescript +"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofile.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofile.md new file mode 100644 index 000000000..7a34245e9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofile.md @@ -0,0 +1,23 @@ +# DeploymentPendingPreparedStackProfile + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackProfile } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackProfile = { + description: "what why clearly blah that filthy meanwhile for", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.DeploymentPendingPreparedStackProfilePlatforms](../models/deploymentpendingpreparedstackprofileplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileaw.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileaw.md new file mode 100644 index 000000000..94e6695d5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileaw.md @@ -0,0 +1,24 @@ +# DeploymentPendingPreparedStackProfileAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackProfileAw } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackProfileAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.DeploymentPendingPreparedStackProfileAwBinding](../models/deploymentpendingpreparedstackprofileawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.DeploymentPendingPreparedStackProfileEffect](../models/deploymentpendingpreparedstackprofileeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.DeploymentPendingPreparedStackProfileAwGrant](../models/deploymentpendingpreparedstackprofileawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileawbinding.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileawbinding.md new file mode 100644 index 000000000..ff0663c63 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileawbinding.md @@ -0,0 +1,18 @@ +# DeploymentPendingPreparedStackProfileAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackProfileAwBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackProfileAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.DeploymentPendingPreparedStackProfileAwResource](../models/deploymentpendingpreparedstackprofileawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.DeploymentPendingPreparedStackProfileAwStack](../models/deploymentpendingpreparedstackprofileawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileawgrant.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileawgrant.md new file mode 100644 index 000000000..51d10adba --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileawgrant.md @@ -0,0 +1,21 @@ +# DeploymentPendingPreparedStackProfileAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackProfileAwGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackProfileAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileawresource.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileawresource.md new file mode 100644 index 000000000..62fb866d6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileawresource.md @@ -0,0 +1,22 @@ +# DeploymentPendingPreparedStackProfileAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackProfileAwResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackProfileAwResource = { + resources: [ + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileawstack.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileawstack.md new file mode 100644 index 000000000..888d1c4d0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileawstack.md @@ -0,0 +1,22 @@ +# DeploymentPendingPreparedStackProfileAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackProfileAwStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackProfileAwStack = { + resources: [ + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileazure.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileazure.md new file mode 100644 index 000000000..f1d36fc1c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileazure.md @@ -0,0 +1,23 @@ +# DeploymentPendingPreparedStackProfileAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackProfileAzure } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackProfileAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.DeploymentPendingPreparedStackProfileAzureBinding](../models/deploymentpendingpreparedstackprofileazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.DeploymentPendingPreparedStackProfileAzureGrant](../models/deploymentpendingpreparedstackprofileazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileazurebinding.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileazurebinding.md new file mode 100644 index 000000000..944eacf0e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileazurebinding.md @@ -0,0 +1,18 @@ +# DeploymentPendingPreparedStackProfileAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackProfileAzureBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackProfileAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.DeploymentPendingPreparedStackProfileAzureResource](../models/deploymentpendingpreparedstackprofileazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.DeploymentPendingPreparedStackProfileAzureStack](../models/deploymentpendingpreparedstackprofileazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileazuregrant.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileazuregrant.md new file mode 100644 index 000000000..85c3bc1dd --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileazuregrant.md @@ -0,0 +1,21 @@ +# DeploymentPendingPreparedStackProfileAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackProfileAzureGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackProfileAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileazureresource.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileazureresource.md new file mode 100644 index 000000000..025f5781b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileazureresource.md @@ -0,0 +1,19 @@ +# DeploymentPendingPreparedStackProfileAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackProfileAzureResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackProfileAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileazurestack.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileazurestack.md new file mode 100644 index 000000000..231b63a9a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileazurestack.md @@ -0,0 +1,19 @@ +# DeploymentPendingPreparedStackProfileAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackProfileAzureStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackProfileAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileconditionresource.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileconditionresource.md new file mode 100644 index 000000000..fb5ce52f0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileconditionresource.md @@ -0,0 +1,21 @@ +# DeploymentPendingPreparedStackProfileConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackProfileConditionResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackProfileConditionResource = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileconditionstack.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileconditionstack.md new file mode 100644 index 000000000..38f7ad928 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileconditionstack.md @@ -0,0 +1,21 @@ +# DeploymentPendingPreparedStackProfileConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackProfileConditionStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackProfileConditionStack = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileeffect.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileeffect.md new file mode 100644 index 000000000..76b878016 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileeffect.md @@ -0,0 +1,17 @@ +# DeploymentPendingPreparedStackProfileEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackProfileEffect } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackProfileEffect = "Deny"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofilegcp.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofilegcp.md new file mode 100644 index 000000000..3ddbf97c7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofilegcp.md @@ -0,0 +1,23 @@ +# DeploymentPendingPreparedStackProfileGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackProfileGcp } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackProfileGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.DeploymentPendingPreparedStackProfileGcpBinding](../models/deploymentpendingpreparedstackprofilegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.DeploymentPendingPreparedStackProfileGcpGrant](../models/deploymentpendingpreparedstackprofilegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofilegcpbinding.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofilegcpbinding.md new file mode 100644 index 000000000..6b7354d2f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofilegcpbinding.md @@ -0,0 +1,18 @@ +# DeploymentPendingPreparedStackProfileGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackProfileGcpBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackProfileGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.DeploymentPendingPreparedStackProfileGcpResource](../models/deploymentpendingpreparedstackprofilegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.DeploymentPendingPreparedStackProfileGcpStack](../models/deploymentpendingpreparedstackprofilegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofilegcpgrant.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofilegcpgrant.md new file mode 100644 index 000000000..65b3a3d74 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofilegcpgrant.md @@ -0,0 +1,21 @@ +# DeploymentPendingPreparedStackProfileGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackProfileGcpGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackProfileGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofilegcpresource.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofilegcpresource.md new file mode 100644 index 000000000..76854bdb3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofilegcpresource.md @@ -0,0 +1,20 @@ +# DeploymentPendingPreparedStackProfileGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackProfileGcpResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackProfileGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `condition` | *models.DeploymentPendingPreparedStackProfileResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofilegcpstack.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofilegcpstack.md new file mode 100644 index 000000000..f57adc334 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofilegcpstack.md @@ -0,0 +1,20 @@ +# DeploymentPendingPreparedStackProfileGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackProfileGcpStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackProfileGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | +| `condition` | *models.DeploymentPendingPreparedStackProfileStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileplatforms.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileplatforms.md new file mode 100644 index 000000000..2fbb8828d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileplatforms.md @@ -0,0 +1,19 @@ +# DeploymentPendingPreparedStackProfilePlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackProfilePlatforms } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackProfilePlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | +| `aws` | [models.DeploymentPendingPreparedStackProfileAw](../models/deploymentpendingpreparedstackprofileaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.DeploymentPendingPreparedStackProfileAzure](../models/deploymentpendingpreparedstackprofileazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.DeploymentPendingPreparedStackProfileGcp](../models/deploymentpendingpreparedstackprofilegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileresourceconditionunion.md new file mode 100644 index 000000000..eabdabf3f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileresourceconditionunion.md @@ -0,0 +1,19 @@ +# DeploymentPendingPreparedStackProfileResourceConditionUnion + + +## Supported Types + +### `models.DeploymentPendingPreparedStackProfileConditionResource` + +```typescript +const value: models.DeploymentPendingPreparedStackProfileConditionResource = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofilestackconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofilestackconditionunion.md new file mode 100644 index 000000000..b70ac0439 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofilestackconditionunion.md @@ -0,0 +1,19 @@ +# DeploymentPendingPreparedStackProfileStackConditionUnion + + +## Supported Types + +### `models.DeploymentPendingPreparedStackProfileConditionStack` + +```typescript +const value: models.DeploymentPendingPreparedStackProfileConditionStack = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileunion.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileunion.md new file mode 100644 index 000000000..545aaa509 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprofileunion.md @@ -0,0 +1,22 @@ +# DeploymentPendingPreparedStackProfileUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.DeploymentPendingPreparedStackProfile` + +```typescript +const value: models.DeploymentPendingPreparedStackProfile = { + description: "what why clearly blah that filthy meanwhile for", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprovidedby.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprovidedby.md new file mode 100644 index 000000000..c5c6a05e4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackprovidedby.md @@ -0,0 +1,17 @@ +# DeploymentPendingPreparedStackProvidedBy + +Who can provide a stack input value. + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackProvidedBy } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackProvidedBy = "developer"; +``` + +## Values + +```typescript +"developer" | "deployer" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackresources.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackresources.md new file mode 100644 index 000000000..4328fc13d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackresources.md @@ -0,0 +1,31 @@ +# DeploymentPendingPreparedStackResources + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackResources } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackResources = { + config: { + id: "", + type: "", + }, + dependencies: [ + { + id: "", + type: "", + }, + ], + lifecycle: "live", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `config` | [models.DeploymentPendingPreparedStackConfig](../models/deploymentpendingpreparedstackconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | +| `dependencies` | [models.DeploymentPendingPreparedStackDependency](../models/deploymentpendingpreparedstackdependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | +| `enabledWhen` | *string* | :heavy_minus_sign: | Id of the boolean stack input that decides whether this resource is
created at all. `None` means always create it.

Set by `.enabled(input)` in the SDK. Setup emitters render the resource
conditionally on the matching template variable, so a deployer who says no
never gets the resource, its outputs, or anything derived from it. | +| `lifecycle` | [models.DeploymentPendingPreparedStackLifecycle](../models/deploymentpendingpreparedstacklifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | +| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstacksupportedplatform.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstacksupportedplatform.md new file mode 100644 index 000000000..04e8ed422 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstacksupportedplatform.md @@ -0,0 +1,17 @@ +# DeploymentPendingPreparedStackSupportedPlatform + +Represents the target cloud platform. + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackSupportedPlatform } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackSupportedPlatform = "aws"; +``` + +## Values + +```typescript +"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstacktypeboolean.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstacktypeboolean.md new file mode 100644 index 000000000..3c673c933 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstacktypeboolean.md @@ -0,0 +1,15 @@ +# DeploymentPendingPreparedStackTypeBoolean + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackTypeBoolean } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackTypeBoolean = "boolean"; +``` + +## Values + +```typescript +"boolean" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstacktypeenvenum.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstacktypeenvenum.md new file mode 100644 index 000000000..6ea939e46 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstacktypeenvenum.md @@ -0,0 +1,17 @@ +# DeploymentPendingPreparedStackTypeEnvEnum + +Environment variable handling for a stack input mapping. + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackTypeEnvEnum } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackTypeEnvEnum = "plain"; +``` + +## Values + +```typescript +"plain" | "secret" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstacktypenumber.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstacktypenumber.md new file mode 100644 index 000000000..5292c9e98 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstacktypenumber.md @@ -0,0 +1,15 @@ +# DeploymentPendingPreparedStackTypeNumber + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackTypeNumber } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackTypeNumber = "number"; +``` + +## Values + +```typescript +"number" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstacktypestring.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstacktypestring.md new file mode 100644 index 000000000..0dd1618e4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstacktypestring.md @@ -0,0 +1,15 @@ +# DeploymentPendingPreparedStackTypeString + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackTypeString } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackTypeString = "string"; +``` + +## Values + +```typescript +"string" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstacktypestringlist.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstacktypestringlist.md new file mode 100644 index 000000000..12b25763b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstacktypestringlist.md @@ -0,0 +1,15 @@ +# DeploymentPendingPreparedStackTypeStringList + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackTypeStringList } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackTypeStringList = "stringList"; +``` + +## Values + +```typescript +"stringList" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstacktypeunion.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstacktypeunion.md new file mode 100644 index 000000000..1afd1dbf3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstacktypeunion.md @@ -0,0 +1,16 @@ +# DeploymentPendingPreparedStackTypeUnion + + +## Supported Types + +### `models.DeploymentPendingPreparedStackTypeEnvEnum` + +```typescript +const value: models.DeploymentPendingPreparedStackTypeEnvEnum = "plain"; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackunion.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackunion.md new file mode 100644 index 000000000..969782f68 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackunion.md @@ -0,0 +1,19 @@ +# DeploymentPendingPreparedStackUnion + + +## Supported Types + +### `models.DeploymentPendingPreparedStack` + +```typescript +const value: models.DeploymentPendingPreparedStack = { + id: "", + resources: {}, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackvalidation.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackvalidation.md new file mode 100644 index 000000000..cd220e7ea --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackvalidation.md @@ -0,0 +1,25 @@ +# DeploymentPendingPreparedStackValidation + +Portable stack input validation constraints. + +## Example Usage + +```typescript +import { DeploymentPendingPreparedStackValidation } from "@alienplatform/platform-api/models"; + +let value: DeploymentPendingPreparedStackValidation = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `format` | *string* | :heavy_minus_sign: | Semantic format hint such as url. | +| `max` | *string* | :heavy_minus_sign: | Maximum number. | +| `maxItems` | *number* | :heavy_minus_sign: | Maximum string-list items. | +| `maxLength` | *number* | :heavy_minus_sign: | Maximum string length. | +| `min` | *string* | :heavy_minus_sign: | Minimum number. | +| `minItems` | *number* | :heavy_minus_sign: | Minimum string-list items. | +| `minLength` | *number* | :heavy_minus_sign: | Minimum string length. | +| `pattern` | *string* | :heavy_minus_sign: | Portable whole-value regex pattern. | +| `values` | *string*[] | :heavy_minus_sign: | Allowed string enum values. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackvalidationunion.md b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackvalidationunion.md new file mode 100644 index 000000000..d92b28d1c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpendingpreparedstackvalidationunion.md @@ -0,0 +1,16 @@ +# DeploymentPendingPreparedStackValidationUnion + + +## Supported Types + +### `models.DeploymentPendingPreparedStackValidation` + +```typescript +const value: models.DeploymentPendingPreparedStackValidation = {}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpermissions.md b/client-sdks/platform/typescript/docs/models/deploymentpermissions.md deleted file mode 100644 index 1ac3bfd88..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentpermissions.md +++ /dev/null @@ -1,42 +0,0 @@ -# DeploymentPermissions - -Combined permissions configuration that contains both profiles and management - -## Example Usage - -```typescript -import { DeploymentPermissions } from "@alienplatform/platform-api/models"; - -let value: DeploymentPermissions = { - profiles: { - "key": { - "key": [], - }, - "key1": {}, - "key2": { - "key": [], - "key1": [ - { - description: "aw strong everlasting", - id: "", - platforms: {}, - }, - ], - "key2": [ - { - description: "aw strong everlasting", - id: "", - platforms: {}, - }, - ], - }, - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | -| `management` | *models.DeploymentManagementUnion* | :heavy_minus_sign: | Management permissions configuration for stack management access | -| `profiles` | Record> | :heavy_check_mark: | Permission profiles that define access control for compute services
Key is the profile name, value is the permission configuration | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpoolsautoscale.md b/client-sdks/platform/typescript/docs/models/deploymentpoolsautoscale.md index 409f808bf..5f318bd4f 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentpoolsautoscale.md +++ b/client-sdks/platform/typescript/docs/models/deploymentpoolsautoscale.md @@ -16,6 +16,7 @@ let value: DeploymentPoolsAutoscale = { | Field | Type | Required | Description | | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `failureDomains` | *models.DeploymentFailureDomainsUnion2* | :heavy_minus_sign: | N/A | | `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | | `max` | *number* | :heavy_check_mark: | Maximum machine count. | | `min` | *number* | :heavy_check_mark: | Minimum machine count. | diff --git a/client-sdks/platform/typescript/docs/models/deploymentpoolsfixed.md b/client-sdks/platform/typescript/docs/models/deploymentpoolsfixed.md index fea8c3d58..943e677cf 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentpoolsfixed.md +++ b/client-sdks/platform/typescript/docs/models/deploymentpoolsfixed.md @@ -15,6 +15,7 @@ let value: DeploymentPoolsFixed = { | Field | Type | Required | Description | | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `failureDomains` | *models.DeploymentFailureDomainsUnion1* | :heavy_minus_sign: | N/A | | `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | | `machines` | *number* | :heavy_check_mark: | Number of machines to run. | | `mode` | *"fixed"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpoolsunion.md b/client-sdks/platform/typescript/docs/models/deploymentpoolsunion.md index 042329f84..08b27b5f5 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentpoolsunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentpoolsunion.md @@ -23,4 +23,3 @@ const value: models.DeploymentPoolsAutoscale = { mode: "autoscale", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstack.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstack.md index a9c286790..0bead43bf 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentpreparedstack.md +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstack.md @@ -29,10 +29,10 @@ let value: DeploymentPreparedStack = { ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -| `id` | *string* | :heavy_check_mark: | Unique identifier for the stack | -| `inputs` | [models.DeploymentInput](../models/deploymentinput.md)[] | :heavy_minus_sign: | Input definitions required before setup or deployment can proceed. | -| `permissions` | [models.DeploymentPermissions](../models/deploymentpermissions.md) | :heavy_minus_sign: | Combined permissions configuration that contains both profiles and management | -| `resources` | Record | :heavy_check_mark: | Map of resource IDs to their configurations and lifecycle settings | -| `supportedPlatforms` | [models.DeploymentSupportedPlatform](../models/deploymentsupportedplatform.md)[] | :heavy_minus_sign: | Which platforms this stack supports. When None, all platforms are supported. | \ No newline at end of file +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the stack | +| `inputs` | [models.DeploymentPreparedStackInput](../models/deploymentpreparedstackinput.md)[] | :heavy_minus_sign: | Input definitions required before setup or deployment can proceed. | +| `permissions` | [models.DeploymentPreparedStackPermissions](../models/deploymentpreparedstackpermissions.md) | :heavy_minus_sign: | Combined permissions configuration that contains both profiles and management | +| `resources` | Record | :heavy_check_mark: | Map of resource IDs to their configurations and lifecycle settings | +| `supportedPlatforms` | [models.DeploymentPreparedStackSupportedPlatform](../models/deploymentpreparedstacksupportedplatform.md)[] | :heavy_minus_sign: | Which platforms this stack supports. When None, all platforms are supported. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackdefaultboolean.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackdefaultboolean.md new file mode 100644 index 000000000..58c03e58a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackdefaultboolean.md @@ -0,0 +1,19 @@ +# DeploymentPreparedStackDefaultBoolean + +## Example Usage + +```typescript +import { DeploymentPreparedStackDefaultBoolean } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackDefaultBoolean = { + type: "boolean", + value: true, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | +| `type` | [models.DeploymentPreparedStackTypeBoolean](../models/deploymentpreparedstacktypeboolean.md) | :heavy_check_mark: | N/A | +| `value` | *boolean* | :heavy_check_mark: | Boolean default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackdefaultnumber.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackdefaultnumber.md new file mode 100644 index 000000000..33fa89600 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackdefaultnumber.md @@ -0,0 +1,19 @@ +# DeploymentPreparedStackDefaultNumber + +## Example Usage + +```typescript +import { DeploymentPreparedStackDefaultNumber } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackDefaultNumber = { + type: "number", + value: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | +| `type` | [models.DeploymentPreparedStackTypeNumber](../models/deploymentpreparedstacktypenumber.md) | :heavy_check_mark: | N/A | +| `value` | *string* | :heavy_check_mark: | Number default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackdefaultstring.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackdefaultstring.md new file mode 100644 index 000000000..f89d7416f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackdefaultstring.md @@ -0,0 +1,19 @@ +# DeploymentPreparedStackDefaultString + +## Example Usage + +```typescript +import { DeploymentPreparedStackDefaultString } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackDefaultString = { + type: "string", + value: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | +| `type` | [models.DeploymentPreparedStackTypeString](../models/deploymentpreparedstacktypestring.md) | :heavy_check_mark: | N/A | +| `value` | *string* | :heavy_check_mark: | String default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackdefaultstringlist.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackdefaultstringlist.md new file mode 100644 index 000000000..5f047e180 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackdefaultstringlist.md @@ -0,0 +1,22 @@ +# DeploymentPreparedStackDefaultStringList + +## Example Usage + +```typescript +import { DeploymentPreparedStackDefaultStringList } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackDefaultStringList = { + type: "stringList", + value: [ + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| `type` | [models.DeploymentPreparedStackTypeStringList](../models/deploymentpreparedstacktypestringlist.md) | :heavy_check_mark: | N/A | +| `value` | *string*[] | :heavy_check_mark: | String list default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackdefaultunion.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackdefaultunion.md new file mode 100644 index 000000000..84eb37f8c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackdefaultunion.md @@ -0,0 +1,49 @@ +# DeploymentPreparedStackDefaultUnion + + +## Supported Types + +### `models.DeploymentPreparedStackDefaultString` + +```typescript +const value: models.DeploymentPreparedStackDefaultString = { + type: "string", + value: "", +}; +``` + +### `models.DeploymentPreparedStackDefaultNumber` + +```typescript +const value: models.DeploymentPreparedStackDefaultNumber = { + type: "number", + value: "", +}; +``` + +### `models.DeploymentPreparedStackDefaultBoolean` + +```typescript +const value: models.DeploymentPreparedStackDefaultBoolean = { + type: "boolean", + value: true, +}; +``` + +### `models.DeploymentPreparedStackDefaultStringList` + +```typescript +const value: models.DeploymentPreparedStackDefaultStringList = { + type: "stringList", + value: [ + "", + "", + ], +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackenv.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackenv.md new file mode 100644 index 000000000..19adc9b89 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackenv.md @@ -0,0 +1,21 @@ +# DeploymentPreparedStackEnv + +How a resolved stack input is injected into runtime environment variables. + +## Example Usage + +```typescript +import { DeploymentPreparedStackEnv } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackEnv = { + name: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| `name` | *string* | :heavy_check_mark: | Environment variable name. | +| `targetResources` | *string*[] | :heavy_minus_sign: | Target resource IDs or patterns. None means every env-capable resource. | +| `type` | *models.DeploymentPreparedStackTypeUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextend.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextend.md new file mode 100644 index 000000000..24d8f6bf1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextend.md @@ -0,0 +1,23 @@ +# DeploymentPreparedStackExtend + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { DeploymentPreparedStackExtend } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackExtend = { + description: "forswear behind ew reiterate rubric putrefy", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.DeploymentPreparedStackExtendPlatforms](../models/deploymentpreparedstackextendplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendaw.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendaw.md new file mode 100644 index 000000000..5c2059989 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendaw.md @@ -0,0 +1,24 @@ +# DeploymentPreparedStackExtendAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentPreparedStackExtendAw } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackExtendAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| `binding` | [models.DeploymentPreparedStackExtendAwBinding](../models/deploymentpreparedstackextendawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.DeploymentPreparedStackExtendEffect](../models/deploymentpreparedstackextendeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.DeploymentPreparedStackExtendAwGrant](../models/deploymentpreparedstackextendawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendawbinding.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendawbinding.md new file mode 100644 index 000000000..8507c4d96 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendawbinding.md @@ -0,0 +1,18 @@ +# DeploymentPreparedStackExtendAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentPreparedStackExtendAwBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackExtendAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | +| `resource` | [models.DeploymentPreparedStackExtendAwResource](../models/deploymentpreparedstackextendawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.DeploymentPreparedStackExtendAwStack](../models/deploymentpreparedstackextendawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendawgrant.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendawgrant.md new file mode 100644 index 000000000..f3aa6d7e8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendawgrant.md @@ -0,0 +1,21 @@ +# DeploymentPreparedStackExtendAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentPreparedStackExtendAwGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackExtendAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendawresource.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendawresource.md new file mode 100644 index 000000000..c5935437f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendawresource.md @@ -0,0 +1,23 @@ +# DeploymentPreparedStackExtendAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPreparedStackExtendAwResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackExtendAwResource = { + resources: [ + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendawstack.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendawstack.md new file mode 100644 index 000000000..bef6875dc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendawstack.md @@ -0,0 +1,23 @@ +# DeploymentPreparedStackExtendAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPreparedStackExtendAwStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackExtendAwStack = { + resources: [ + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendazure.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendazure.md new file mode 100644 index 000000000..dde155071 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendazure.md @@ -0,0 +1,23 @@ +# DeploymentPreparedStackExtendAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentPreparedStackExtendAzure } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackExtendAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | +| `binding` | [models.DeploymentPreparedStackExtendAzureBinding](../models/deploymentpreparedstackextendazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.DeploymentPreparedStackExtendAzureGrant](../models/deploymentpreparedstackextendazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendazurebinding.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendazurebinding.md new file mode 100644 index 000000000..2ef4cefe6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendazurebinding.md @@ -0,0 +1,18 @@ +# DeploymentPreparedStackExtendAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentPreparedStackExtendAzureBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackExtendAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.DeploymentPreparedStackExtendAzureResource](../models/deploymentpreparedstackextendazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.DeploymentPreparedStackExtendAzureStack](../models/deploymentpreparedstackextendazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendazuregrant.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendazuregrant.md new file mode 100644 index 000000000..8d2503955 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendazuregrant.md @@ -0,0 +1,21 @@ +# DeploymentPreparedStackExtendAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentPreparedStackExtendAzureGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackExtendAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendazureresource.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendazureresource.md new file mode 100644 index 000000000..17834cabf --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendazureresource.md @@ -0,0 +1,19 @@ +# DeploymentPreparedStackExtendAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPreparedStackExtendAzureResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackExtendAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendazurestack.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendazurestack.md new file mode 100644 index 000000000..f9fe64024 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendazurestack.md @@ -0,0 +1,19 @@ +# DeploymentPreparedStackExtendAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPreparedStackExtendAzureStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackExtendAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendconditionresource.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendconditionresource.md new file mode 100644 index 000000000..ca4fb97cd --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendconditionresource.md @@ -0,0 +1,21 @@ +# DeploymentPreparedStackExtendConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { DeploymentPreparedStackExtendConditionResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackExtendConditionResource = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendconditionstack.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendconditionstack.md new file mode 100644 index 000000000..e6e9a685f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendconditionstack.md @@ -0,0 +1,21 @@ +# DeploymentPreparedStackExtendConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { DeploymentPreparedStackExtendConditionStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackExtendConditionStack = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendeffect.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendeffect.md new file mode 100644 index 000000000..bda4e8319 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendeffect.md @@ -0,0 +1,17 @@ +# DeploymentPreparedStackExtendEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { DeploymentPreparedStackExtendEffect } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackExtendEffect = "Deny"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendgcp.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendgcp.md new file mode 100644 index 000000000..938828db3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendgcp.md @@ -0,0 +1,23 @@ +# DeploymentPreparedStackExtendGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentPreparedStackExtendGcp } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackExtendGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | +| `binding` | [models.DeploymentPreparedStackExtendGcpBinding](../models/deploymentpreparedstackextendgcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.DeploymentPreparedStackExtendGcpGrant](../models/deploymentpreparedstackextendgcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendgcpbinding.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendgcpbinding.md new file mode 100644 index 000000000..f403896b7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendgcpbinding.md @@ -0,0 +1,18 @@ +# DeploymentPreparedStackExtendGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentPreparedStackExtendGcpBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackExtendGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | +| `resource` | [models.DeploymentPreparedStackExtendGcpResource](../models/deploymentpreparedstackextendgcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.DeploymentPreparedStackExtendGcpStack](../models/deploymentpreparedstackextendgcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendgcpgrant.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendgcpgrant.md new file mode 100644 index 000000000..0e0545a4c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendgcpgrant.md @@ -0,0 +1,21 @@ +# DeploymentPreparedStackExtendGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentPreparedStackExtendGcpGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackExtendGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendgcpresource.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendgcpresource.md new file mode 100644 index 000000000..cee74aa6c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendgcpresource.md @@ -0,0 +1,20 @@ +# DeploymentPreparedStackExtendGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPreparedStackExtendGcpResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackExtendGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | +| `condition` | *models.DeploymentPreparedStackExtendResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendgcpstack.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendgcpstack.md new file mode 100644 index 000000000..b59c07eb2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendgcpstack.md @@ -0,0 +1,20 @@ +# DeploymentPreparedStackExtendGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPreparedStackExtendGcpStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackExtendGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | +| `condition` | *models.DeploymentPreparedStackExtendStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendplatforms.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendplatforms.md new file mode 100644 index 000000000..21dc25c05 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendplatforms.md @@ -0,0 +1,19 @@ +# DeploymentPreparedStackExtendPlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { DeploymentPreparedStackExtendPlatforms } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackExtendPlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | +| `aws` | [models.DeploymentPreparedStackExtendAw](../models/deploymentpreparedstackextendaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.DeploymentPreparedStackExtendAzure](../models/deploymentpreparedstackextendazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.DeploymentPreparedStackExtendGcp](../models/deploymentpreparedstackextendgcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendresourceconditionunion.md new file mode 100644 index 000000000..051ad873f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendresourceconditionunion.md @@ -0,0 +1,19 @@ +# DeploymentPreparedStackExtendResourceConditionUnion + + +## Supported Types + +### `models.DeploymentPreparedStackExtendConditionResource` + +```typescript +const value: models.DeploymentPreparedStackExtendConditionResource = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendstackconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendstackconditionunion.md new file mode 100644 index 000000000..ca5139a21 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendstackconditionunion.md @@ -0,0 +1,19 @@ +# DeploymentPreparedStackExtendStackConditionUnion + + +## Supported Types + +### `models.DeploymentPreparedStackExtendConditionStack` + +```typescript +const value: models.DeploymentPreparedStackExtendConditionStack = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendunion.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendunion.md new file mode 100644 index 000000000..45a01e29e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackextendunion.md @@ -0,0 +1,22 @@ +# DeploymentPreparedStackExtendUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.DeploymentPreparedStackExtend` + +```typescript +const value: models.DeploymentPreparedStackExtend = { + description: "forswear behind ew reiterate rubric putrefy", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackinput.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackinput.md new file mode 100644 index 000000000..b7f4ccd1f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackinput.md @@ -0,0 +1,34 @@ +# DeploymentPreparedStackInput + +Stack input definition serialized into a release stack. + +## Example Usage + +```typescript +import { DeploymentPreparedStackInput } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackInput = { + description: "formation um oh", + id: "", + kind: "number", + label: "", + providedBy: [], + required: true, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | +| `default` | *models.DeploymentPreparedStackDefaultUnion* | :heavy_minus_sign: | N/A | +| `description` | *string* | :heavy_check_mark: | Human-facing helper text. | +| `env` | [models.DeploymentPreparedStackEnv](../models/deploymentpreparedstackenv.md)[] | :heavy_minus_sign: | Runtime env-var mappings for v1 input resolution. | +| `id` | *string* | :heavy_check_mark: | Stable input ID used by CLI/API calls. | +| `kind` | [models.DeploymentPreparedStackKind](../models/deploymentpreparedstackkind.md) | :heavy_check_mark: | Primitive stack input kind. | +| `label` | *string* | :heavy_check_mark: | Human-facing field label. | +| `placeholder` | *string* | :heavy_minus_sign: | Example placeholder shown in UI. | +| `platforms` | [models.DeploymentPreparedStackPlatform](../models/deploymentpreparedstackplatform.md)[] | :heavy_minus_sign: | Platforms where this input applies. | +| `providedBy` | [models.DeploymentPreparedStackProvidedBy](../models/deploymentpreparedstackprovidedby.md)[] | :heavy_check_mark: | Who can provide this value. | +| `required` | *boolean* | :heavy_check_mark: | Whether a resolved value is required before deployment can proceed. | +| `validation` | *models.DeploymentPreparedStackValidationUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackkind.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackkind.md new file mode 100644 index 000000000..9fcd2454b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackkind.md @@ -0,0 +1,17 @@ +# DeploymentPreparedStackKind + +Primitive stack input kind. + +## Example Usage + +```typescript +import { DeploymentPreparedStackKind } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackKind = "number"; +``` + +## Values + +```typescript +"string" | "secret" | "number" | "integer" | "boolean" | "enum" | "stringList" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackmanagement1.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackmanagement1.md new file mode 100644 index 000000000..2c857a278 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackmanagement1.md @@ -0,0 +1,31 @@ +# DeploymentPreparedStackManagement1 + +## Example Usage + +```typescript +import { DeploymentPreparedStackManagement1 } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackManagement1 = { + extend: { + "key": [ + "", + ], + "key1": [ + { + description: "netsuke delectable recklessly dramatic brr for", + id: "", + platforms: {}, + }, + ], + "key2": [ + "", + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `extend` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackmanagement2.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackmanagement2.md new file mode 100644 index 000000000..a14e6ffce --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackmanagement2.md @@ -0,0 +1,17 @@ +# DeploymentPreparedStackManagement2 + +## Example Usage + +```typescript +import { DeploymentPreparedStackManagement2 } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackManagement2 = { + override: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `override` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackmanagementenum.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackmanagementenum.md new file mode 100644 index 000000000..cf690861f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackmanagementenum.md @@ -0,0 +1,15 @@ +# DeploymentPreparedStackManagementEnum + +## Example Usage + +```typescript +import { DeploymentPreparedStackManagementEnum } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackManagementEnum = "auto"; +``` + +## Values + +```typescript +"auto" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackmanagementunion.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackmanagementunion.md new file mode 100644 index 000000000..68861c6e2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackmanagementunion.md @@ -0,0 +1,42 @@ +# DeploymentPreparedStackManagementUnion + +Management permissions configuration for stack management access + + +## Supported Types + +### `models.DeploymentPreparedStackManagement1` + +```typescript +const value: models.DeploymentPreparedStackManagement1 = { + extend: { + "key": [ + "", + ], + "key1": [ + { + description: "netsuke delectable recklessly dramatic brr for", + id: "", + platforms: {}, + }, + ], + "key2": [ + "", + ], + }, +}; +``` + +### `models.DeploymentPreparedStackManagement2` + +```typescript +const value: models.DeploymentPreparedStackManagement2 = { + override: {}, +}; +``` + +### `models.DeploymentPreparedStackManagementEnum` + +```typescript +const value: models.DeploymentPreparedStackManagementEnum = "auto"; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverride.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverride.md new file mode 100644 index 000000000..e00570869 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverride.md @@ -0,0 +1,23 @@ +# DeploymentPreparedStackOverride + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { DeploymentPreparedStackOverride } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackOverride = { + description: "white redraw rectangular warm", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.DeploymentPreparedStackOverridePlatforms](../models/deploymentpreparedstackoverrideplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideaw.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideaw.md new file mode 100644 index 000000000..041f4958c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideaw.md @@ -0,0 +1,24 @@ +# DeploymentPreparedStackOverrideAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentPreparedStackOverrideAw } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackOverrideAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | +| `binding` | [models.DeploymentPreparedStackOverrideAwBinding](../models/deploymentpreparedstackoverrideawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.DeploymentPreparedStackOverrideEffect](../models/deploymentpreparedstackoverrideeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.DeploymentPreparedStackOverrideAwGrant](../models/deploymentpreparedstackoverrideawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideawbinding.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideawbinding.md new file mode 100644 index 000000000..6d80bc381 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideawbinding.md @@ -0,0 +1,18 @@ +# DeploymentPreparedStackOverrideAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentPreparedStackOverrideAwBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackOverrideAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | +| `resource` | [models.DeploymentPreparedStackOverrideAwResource](../models/deploymentpreparedstackoverrideawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.DeploymentPreparedStackOverrideAwStack](../models/deploymentpreparedstackoverrideawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideawgrant.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideawgrant.md new file mode 100644 index 000000000..3654279ac --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideawgrant.md @@ -0,0 +1,21 @@ +# DeploymentPreparedStackOverrideAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentPreparedStackOverrideAwGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackOverrideAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideawresource.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideawresource.md new file mode 100644 index 000000000..ac3159750 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideawresource.md @@ -0,0 +1,24 @@ +# DeploymentPreparedStackOverrideAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPreparedStackOverrideAwResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackOverrideAwResource = { + resources: [ + "", + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideawstack.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideawstack.md new file mode 100644 index 000000000..fda89b605 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideawstack.md @@ -0,0 +1,20 @@ +# DeploymentPreparedStackOverrideAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPreparedStackOverrideAwStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackOverrideAwStack = { + resources: [], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideazure.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideazure.md new file mode 100644 index 000000000..fcff87173 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideazure.md @@ -0,0 +1,23 @@ +# DeploymentPreparedStackOverrideAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentPreparedStackOverrideAzure } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackOverrideAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.DeploymentPreparedStackOverrideAzureBinding](../models/deploymentpreparedstackoverrideazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.DeploymentPreparedStackOverrideAzureGrant](../models/deploymentpreparedstackoverrideazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideazurebinding.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideazurebinding.md new file mode 100644 index 000000000..388a05914 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideazurebinding.md @@ -0,0 +1,18 @@ +# DeploymentPreparedStackOverrideAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentPreparedStackOverrideAzureBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackOverrideAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.DeploymentPreparedStackOverrideAzureResource](../models/deploymentpreparedstackoverrideazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.DeploymentPreparedStackOverrideAzureStack](../models/deploymentpreparedstackoverrideazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideazuregrant.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideazuregrant.md new file mode 100644 index 000000000..870503e41 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideazuregrant.md @@ -0,0 +1,21 @@ +# DeploymentPreparedStackOverrideAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentPreparedStackOverrideAzureGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackOverrideAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideazureresource.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideazureresource.md new file mode 100644 index 000000000..59701380b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideazureresource.md @@ -0,0 +1,19 @@ +# DeploymentPreparedStackOverrideAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPreparedStackOverrideAzureResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackOverrideAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideazurestack.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideazurestack.md new file mode 100644 index 000000000..7d0c7a44f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideazurestack.md @@ -0,0 +1,19 @@ +# DeploymentPreparedStackOverrideAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPreparedStackOverrideAzureStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackOverrideAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideconditionresource.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideconditionresource.md new file mode 100644 index 000000000..1623a0101 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideconditionresource.md @@ -0,0 +1,21 @@ +# DeploymentPreparedStackOverrideConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { DeploymentPreparedStackOverrideConditionResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackOverrideConditionResource = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideconditionstack.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideconditionstack.md new file mode 100644 index 000000000..1c27c7987 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideconditionstack.md @@ -0,0 +1,21 @@ +# DeploymentPreparedStackOverrideConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { DeploymentPreparedStackOverrideConditionStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackOverrideConditionStack = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideeffect.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideeffect.md new file mode 100644 index 000000000..b1b078d25 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideeffect.md @@ -0,0 +1,17 @@ +# DeploymentPreparedStackOverrideEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { DeploymentPreparedStackOverrideEffect } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackOverrideEffect = "Deny"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverridegcp.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverridegcp.md new file mode 100644 index 000000000..743704c24 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverridegcp.md @@ -0,0 +1,23 @@ +# DeploymentPreparedStackOverrideGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentPreparedStackOverrideGcp } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackOverrideGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | +| `binding` | [models.DeploymentPreparedStackOverrideGcpBinding](../models/deploymentpreparedstackoverridegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.DeploymentPreparedStackOverrideGcpGrant](../models/deploymentpreparedstackoverridegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverridegcpbinding.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverridegcpbinding.md new file mode 100644 index 000000000..e0ca9b2cd --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverridegcpbinding.md @@ -0,0 +1,18 @@ +# DeploymentPreparedStackOverrideGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentPreparedStackOverrideGcpBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackOverrideGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.DeploymentPreparedStackOverrideGcpResource](../models/deploymentpreparedstackoverridegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.DeploymentPreparedStackOverrideGcpStack](../models/deploymentpreparedstackoverridegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverridegcpgrant.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverridegcpgrant.md new file mode 100644 index 000000000..92a6051c8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverridegcpgrant.md @@ -0,0 +1,21 @@ +# DeploymentPreparedStackOverrideGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentPreparedStackOverrideGcpGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackOverrideGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverridegcpresource.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverridegcpresource.md new file mode 100644 index 000000000..2964ee8f3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverridegcpresource.md @@ -0,0 +1,20 @@ +# DeploymentPreparedStackOverrideGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPreparedStackOverrideGcpResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackOverrideGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `condition` | *models.DeploymentPreparedStackOverrideResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverridegcpstack.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverridegcpstack.md new file mode 100644 index 000000000..5cf8c9a85 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverridegcpstack.md @@ -0,0 +1,20 @@ +# DeploymentPreparedStackOverrideGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPreparedStackOverrideGcpStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackOverrideGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | +| `condition` | *models.DeploymentPreparedStackOverrideStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideplatforms.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideplatforms.md new file mode 100644 index 000000000..bea70484d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideplatforms.md @@ -0,0 +1,19 @@ +# DeploymentPreparedStackOverridePlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { DeploymentPreparedStackOverridePlatforms } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackOverridePlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | +| `aws` | [models.DeploymentPreparedStackOverrideAw](../models/deploymentpreparedstackoverrideaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.DeploymentPreparedStackOverrideAzure](../models/deploymentpreparedstackoverrideazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.DeploymentPreparedStackOverrideGcp](../models/deploymentpreparedstackoverridegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideresourceconditionunion.md new file mode 100644 index 000000000..17a7c4c97 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideresourceconditionunion.md @@ -0,0 +1,19 @@ +# DeploymentPreparedStackOverrideResourceConditionUnion + + +## Supported Types + +### `models.DeploymentPreparedStackOverrideConditionResource` + +```typescript +const value: models.DeploymentPreparedStackOverrideConditionResource = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverridestackconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverridestackconditionunion.md new file mode 100644 index 000000000..a67fc9e02 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverridestackconditionunion.md @@ -0,0 +1,19 @@ +# DeploymentPreparedStackOverrideStackConditionUnion + + +## Supported Types + +### `models.DeploymentPreparedStackOverrideConditionStack` + +```typescript +const value: models.DeploymentPreparedStackOverrideConditionStack = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideunion.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideunion.md new file mode 100644 index 000000000..2dee89463 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackoverrideunion.md @@ -0,0 +1,22 @@ +# DeploymentPreparedStackOverrideUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.DeploymentPreparedStackOverride` + +```typescript +const value: models.DeploymentPreparedStackOverride = { + description: "white redraw rectangular warm", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackpermissions.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackpermissions.md new file mode 100644 index 000000000..e99b08086 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackpermissions.md @@ -0,0 +1,41 @@ +# DeploymentPreparedStackPermissions + +Combined permissions configuration that contains both profiles and management + +## Example Usage + +```typescript +import { DeploymentPreparedStackPermissions } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackPermissions = { + profiles: { + "key": { + "key": [ + "", + ], + "key1": [ + "", + ], + "key2": [], + }, + "key1": { + "key": [ + { + description: + "impartial pigpen whenever whose arid sailor bleak spirited elastic though", + id: "", + platforms: {}, + }, + ], + "key1": [], + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `management` | *models.DeploymentPreparedStackManagementUnion* | :heavy_minus_sign: | Management permissions configuration for stack management access | +| `profiles` | Record> | :heavy_check_mark: | Permission profiles that define access control for compute services
Key is the profile name, value is the permission configuration | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofile.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofile.md new file mode 100644 index 000000000..0d4f6af26 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofile.md @@ -0,0 +1,23 @@ +# DeploymentPreparedStackProfile + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { DeploymentPreparedStackProfile } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackProfile = { + description: "below but coop square too", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.DeploymentPreparedStackProfilePlatforms](../models/deploymentpreparedstackprofileplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileaw.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileaw.md new file mode 100644 index 000000000..3acf63df8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileaw.md @@ -0,0 +1,24 @@ +# DeploymentPreparedStackProfileAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentPreparedStackProfileAw } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackProfileAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | +| `binding` | [models.DeploymentPreparedStackProfileAwBinding](../models/deploymentpreparedstackprofileawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.DeploymentPreparedStackProfileEffect](../models/deploymentpreparedstackprofileeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.DeploymentPreparedStackProfileAwGrant](../models/deploymentpreparedstackprofileawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileawbinding.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileawbinding.md new file mode 100644 index 000000000..7e2d2694c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileawbinding.md @@ -0,0 +1,18 @@ +# DeploymentPreparedStackProfileAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentPreparedStackProfileAwBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackProfileAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | +| `resource` | [models.DeploymentPreparedStackProfileAwResource](../models/deploymentpreparedstackprofileawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.DeploymentPreparedStackProfileAwStack](../models/deploymentpreparedstackprofileawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileawgrant.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileawgrant.md new file mode 100644 index 000000000..28a115144 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileawgrant.md @@ -0,0 +1,21 @@ +# DeploymentPreparedStackProfileAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentPreparedStackProfileAwGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackProfileAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileawresource.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileawresource.md new file mode 100644 index 000000000..463bfa6e4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileawresource.md @@ -0,0 +1,22 @@ +# DeploymentPreparedStackProfileAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPreparedStackProfileAwResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackProfileAwResource = { + resources: [ + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileawstack.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileawstack.md new file mode 100644 index 000000000..be3e8a9e8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileawstack.md @@ -0,0 +1,23 @@ +# DeploymentPreparedStackProfileAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPreparedStackProfileAwStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackProfileAwStack = { + resources: [ + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileazure.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileazure.md new file mode 100644 index 000000000..4df7f8abc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileazure.md @@ -0,0 +1,23 @@ +# DeploymentPreparedStackProfileAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentPreparedStackProfileAzure } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackProfileAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.DeploymentPreparedStackProfileAzureBinding](../models/deploymentpreparedstackprofileazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.DeploymentPreparedStackProfileAzureGrant](../models/deploymentpreparedstackprofileazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileazurebinding.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileazurebinding.md new file mode 100644 index 000000000..b42e7f914 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileazurebinding.md @@ -0,0 +1,18 @@ +# DeploymentPreparedStackProfileAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentPreparedStackProfileAzureBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackProfileAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.DeploymentPreparedStackProfileAzureResource](../models/deploymentpreparedstackprofileazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.DeploymentPreparedStackProfileAzureStack](../models/deploymentpreparedstackprofileazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileazuregrant.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileazuregrant.md new file mode 100644 index 000000000..ed38aa97d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileazuregrant.md @@ -0,0 +1,21 @@ +# DeploymentPreparedStackProfileAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentPreparedStackProfileAzureGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackProfileAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileazureresource.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileazureresource.md new file mode 100644 index 000000000..5d9d7ca16 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileazureresource.md @@ -0,0 +1,19 @@ +# DeploymentPreparedStackProfileAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPreparedStackProfileAzureResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackProfileAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileazurestack.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileazurestack.md new file mode 100644 index 000000000..6a47e683b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileazurestack.md @@ -0,0 +1,19 @@ +# DeploymentPreparedStackProfileAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPreparedStackProfileAzureStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackProfileAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileconditionresource.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileconditionresource.md new file mode 100644 index 000000000..23dec5a1a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileconditionresource.md @@ -0,0 +1,21 @@ +# DeploymentPreparedStackProfileConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { DeploymentPreparedStackProfileConditionResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackProfileConditionResource = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileconditionstack.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileconditionstack.md new file mode 100644 index 000000000..1d1821b4d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileconditionstack.md @@ -0,0 +1,21 @@ +# DeploymentPreparedStackProfileConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { DeploymentPreparedStackProfileConditionStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackProfileConditionStack = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileeffect.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileeffect.md new file mode 100644 index 000000000..ab1e42c0e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileeffect.md @@ -0,0 +1,17 @@ +# DeploymentPreparedStackProfileEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { DeploymentPreparedStackProfileEffect } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackProfileEffect = "Allow"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofilegcp.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofilegcp.md new file mode 100644 index 000000000..b23ec4028 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofilegcp.md @@ -0,0 +1,23 @@ +# DeploymentPreparedStackProfileGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { DeploymentPreparedStackProfileGcp } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackProfileGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | +| `binding` | [models.DeploymentPreparedStackProfileGcpBinding](../models/deploymentpreparedstackprofilegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.DeploymentPreparedStackProfileGcpGrant](../models/deploymentpreparedstackprofilegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofilegcpbinding.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofilegcpbinding.md new file mode 100644 index 000000000..dcc7c6e24 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofilegcpbinding.md @@ -0,0 +1,18 @@ +# DeploymentPreparedStackProfileGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { DeploymentPreparedStackProfileGcpBinding } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackProfileGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | +| `resource` | [models.DeploymentPreparedStackProfileGcpResource](../models/deploymentpreparedstackprofilegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.DeploymentPreparedStackProfileGcpStack](../models/deploymentpreparedstackprofilegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofilegcpgrant.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofilegcpgrant.md new file mode 100644 index 000000000..3a92f77f2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofilegcpgrant.md @@ -0,0 +1,21 @@ +# DeploymentPreparedStackProfileGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { DeploymentPreparedStackProfileGcpGrant } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackProfileGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofilegcpresource.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofilegcpresource.md new file mode 100644 index 000000000..eba519313 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofilegcpresource.md @@ -0,0 +1,20 @@ +# DeploymentPreparedStackProfileGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPreparedStackProfileGcpResource } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackProfileGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | +| `condition` | *models.DeploymentPreparedStackProfileResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofilegcpstack.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofilegcpstack.md new file mode 100644 index 000000000..f69439415 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofilegcpstack.md @@ -0,0 +1,20 @@ +# DeploymentPreparedStackProfileGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { DeploymentPreparedStackProfileGcpStack } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackProfileGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | +| `condition` | *models.DeploymentPreparedStackProfileStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileplatforms.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileplatforms.md new file mode 100644 index 000000000..00992d1f6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileplatforms.md @@ -0,0 +1,19 @@ +# DeploymentPreparedStackProfilePlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { DeploymentPreparedStackProfilePlatforms } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackProfilePlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `aws` | [models.DeploymentPreparedStackProfileAw](../models/deploymentpreparedstackprofileaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.DeploymentPreparedStackProfileAzure](../models/deploymentpreparedstackprofileazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.DeploymentPreparedStackProfileGcp](../models/deploymentpreparedstackprofilegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileresourceconditionunion.md new file mode 100644 index 000000000..9272d100e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileresourceconditionunion.md @@ -0,0 +1,19 @@ +# DeploymentPreparedStackProfileResourceConditionUnion + + +## Supported Types + +### `models.DeploymentPreparedStackProfileConditionResource` + +```typescript +const value: models.DeploymentPreparedStackProfileConditionResource = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofilestackconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofilestackconditionunion.md new file mode 100644 index 000000000..06781a96b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofilestackconditionunion.md @@ -0,0 +1,19 @@ +# DeploymentPreparedStackProfileStackConditionUnion + + +## Supported Types + +### `models.DeploymentPreparedStackProfileConditionStack` + +```typescript +const value: models.DeploymentPreparedStackProfileConditionStack = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileunion.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileunion.md new file mode 100644 index 000000000..a492ecfa0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprofileunion.md @@ -0,0 +1,22 @@ +# DeploymentPreparedStackProfileUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.DeploymentPreparedStackProfile` + +```typescript +const value: models.DeploymentPreparedStackProfile = { + description: "below but coop square too", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprovidedby.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprovidedby.md new file mode 100644 index 000000000..1fba716a2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackprovidedby.md @@ -0,0 +1,17 @@ +# DeploymentPreparedStackProvidedBy + +Who can provide a stack input value. + +## Example Usage + +```typescript +import { DeploymentPreparedStackProvidedBy } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackProvidedBy = "developer"; +``` + +## Values + +```typescript +"developer" | "deployer" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackresources.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackresources.md index 51c0abc72..38a42b82c 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackresources.md +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackresources.md @@ -17,9 +17,10 @@ let value: DeploymentPreparedStackResources = { ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `config` | [models.DeploymentPreparedStackConfig](../models/deploymentpreparedstackconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | -| `dependencies` | [models.DeploymentPreparedStackDependency](../models/deploymentpreparedstackdependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | -| `lifecycle` | [models.DeploymentPreparedStackLifecycle](../models/deploymentpreparedstacklifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | -| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `config` | [models.DeploymentPreparedStackConfig](../models/deploymentpreparedstackconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | +| `dependencies` | [models.DeploymentPreparedStackDependency](../models/deploymentpreparedstackdependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | +| `enabledWhen` | *string* | :heavy_minus_sign: | Id of the boolean stack input that decides whether this resource is
created at all. `None` means always create it.

Set by `.enabled(input)` in the SDK. Setup emitters render the resource
conditionally on the matching template variable, so a deployer who says no
never gets the resource, its outputs, or anything derived from it. | +| `lifecycle` | [models.DeploymentPreparedStackLifecycle](../models/deploymentpreparedstacklifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | +| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstacksupportedplatform.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstacksupportedplatform.md new file mode 100644 index 000000000..5f1b54743 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstacksupportedplatform.md @@ -0,0 +1,17 @@ +# DeploymentPreparedStackSupportedPlatform + +Represents the target cloud platform. + +## Example Usage + +```typescript +import { DeploymentPreparedStackSupportedPlatform } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackSupportedPlatform = "kubernetes"; +``` + +## Values + +```typescript +"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstacktypeboolean.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstacktypeboolean.md new file mode 100644 index 000000000..69fa7cff0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstacktypeboolean.md @@ -0,0 +1,15 @@ +# DeploymentPreparedStackTypeBoolean + +## Example Usage + +```typescript +import { DeploymentPreparedStackTypeBoolean } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackTypeBoolean = "boolean"; +``` + +## Values + +```typescript +"boolean" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstacktypeenvenum.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstacktypeenvenum.md new file mode 100644 index 000000000..639ac47d3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstacktypeenvenum.md @@ -0,0 +1,17 @@ +# DeploymentPreparedStackTypeEnvEnum + +Environment variable handling for a stack input mapping. + +## Example Usage + +```typescript +import { DeploymentPreparedStackTypeEnvEnum } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackTypeEnvEnum = "secret"; +``` + +## Values + +```typescript +"plain" | "secret" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstacktypenumber.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstacktypenumber.md new file mode 100644 index 000000000..1b7af4b80 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstacktypenumber.md @@ -0,0 +1,15 @@ +# DeploymentPreparedStackTypeNumber + +## Example Usage + +```typescript +import { DeploymentPreparedStackTypeNumber } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackTypeNumber = "number"; +``` + +## Values + +```typescript +"number" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstacktypestring.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstacktypestring.md new file mode 100644 index 000000000..7d328260a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstacktypestring.md @@ -0,0 +1,15 @@ +# DeploymentPreparedStackTypeString + +## Example Usage + +```typescript +import { DeploymentPreparedStackTypeString } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackTypeString = "string"; +``` + +## Values + +```typescript +"string" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstacktypestringlist.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstacktypestringlist.md new file mode 100644 index 000000000..d84c02123 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstacktypestringlist.md @@ -0,0 +1,15 @@ +# DeploymentPreparedStackTypeStringList + +## Example Usage + +```typescript +import { DeploymentPreparedStackTypeStringList } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackTypeStringList = "stringList"; +``` + +## Values + +```typescript +"stringList" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstacktypeunion.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstacktypeunion.md new file mode 100644 index 000000000..b8b150c0f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstacktypeunion.md @@ -0,0 +1,16 @@ +# DeploymentPreparedStackTypeUnion + + +## Supported Types + +### `models.DeploymentPreparedStackTypeEnvEnum` + +```typescript +const value: models.DeploymentPreparedStackTypeEnvEnum = "plain"; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackunion.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackunion.md index 85b3892b5..cf8414060 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackunion.md @@ -31,4 +31,3 @@ const value: models.DeploymentPreparedStack = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackvalidation.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackvalidation.md new file mode 100644 index 000000000..20e4aa908 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackvalidation.md @@ -0,0 +1,25 @@ +# DeploymentPreparedStackValidation + +Portable stack input validation constraints. + +## Example Usage + +```typescript +import { DeploymentPreparedStackValidation } from "@alienplatform/platform-api/models"; + +let value: DeploymentPreparedStackValidation = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `format` | *string* | :heavy_minus_sign: | Semantic format hint such as url. | +| `max` | *string* | :heavy_minus_sign: | Maximum number. | +| `maxItems` | *number* | :heavy_minus_sign: | Maximum string-list items. | +| `maxLength` | *number* | :heavy_minus_sign: | Maximum string length. | +| `min` | *string* | :heavy_minus_sign: | Minimum number. | +| `minItems` | *number* | :heavy_minus_sign: | Minimum string-list items. | +| `minLength` | *number* | :heavy_minus_sign: | Minimum string length. | +| `pattern` | *string* | :heavy_minus_sign: | Portable whole-value regex pattern. | +| `values` | *string*[] | :heavy_minus_sign: | Allowed string enum values. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreparedstackvalidationunion.md b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackvalidationunion.md new file mode 100644 index 000000000..f6452f97f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentpreparedstackvalidationunion.md @@ -0,0 +1,16 @@ +# DeploymentPreparedStackValidationUnion + + +## Supported Types + +### `models.DeploymentPreparedStackValidation` + +```typescript +const value: models.DeploymentPreparedStackValidation = {}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentpreviousconfigunion.md b/client-sdks/platform/typescript/docs/models/deploymentpreviousconfigunion.md index 8660d73fe..48d7df781 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentpreviousconfigunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentpreviousconfigunion.md @@ -17,4 +17,3 @@ const value: models.DeploymentPreviousConfig = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentprofile.md b/client-sdks/platform/typescript/docs/models/deploymentprofile.md deleted file mode 100644 index c5e7249db..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentprofile.md +++ /dev/null @@ -1,24 +0,0 @@ -# DeploymentProfile - -A permission set that can be applied across different cloud platforms - -## Example Usage - -```typescript -import { DeploymentProfile } from "@alienplatform/platform-api/models"; - -let value: DeploymentProfile = { - description: - "across unto comfortable meh kookily paltry hover while intensely", - id: "", - platforms: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | -| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | -| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | -| `platforms` | [models.DeploymentProfilePlatforms](../models/deploymentprofileplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentprofileaw.md b/client-sdks/platform/typescript/docs/models/deploymentprofileaw.md deleted file mode 100644 index 297636daa..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentprofileaw.md +++ /dev/null @@ -1,24 +0,0 @@ -# DeploymentProfileAw - -AWS-specific platform permission configuration - -## Example Usage - -```typescript -import { DeploymentProfileAw } from "@alienplatform/platform-api/models"; - -let value: DeploymentProfileAw = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | -| `binding` | [models.DeploymentProfileAwBinding](../models/deploymentprofileawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `effect` | [models.DeploymentProfileEffect](../models/deploymentprofileeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | -| `grant` | [models.DeploymentProfileAwGrant](../models/deploymentprofileawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentprofileawbinding.md b/client-sdks/platform/typescript/docs/models/deploymentprofileawbinding.md deleted file mode 100644 index d1d6c7e72..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentprofileawbinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# DeploymentProfileAwBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { DeploymentProfileAwBinding } from "@alienplatform/platform-api/models"; - -let value: DeploymentProfileAwBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | -| `resource` | [models.DeploymentProfileAwResource](../models/deploymentprofileawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | -| `stack` | [models.DeploymentProfileAwStack](../models/deploymentprofileawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentprofileawgrant.md b/client-sdks/platform/typescript/docs/models/deploymentprofileawgrant.md deleted file mode 100644 index 817d6abba..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentprofileawgrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentProfileAwGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { DeploymentProfileAwGrant } from "@alienplatform/platform-api/models"; - -let value: DeploymentProfileAwGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentprofileawresource.md b/client-sdks/platform/typescript/docs/models/deploymentprofileawresource.md deleted file mode 100644 index 3cb8ca1b4..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentprofileawresource.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentProfileAwResource - -AWS-specific binding specification - -## Example Usage - -```typescript -import { DeploymentProfileAwResource } from "@alienplatform/platform-api/models"; - -let value: DeploymentProfileAwResource = { - resources: [], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | -| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentprofileawstack.md b/client-sdks/platform/typescript/docs/models/deploymentprofileawstack.md deleted file mode 100644 index 20186ebad..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentprofileawstack.md +++ /dev/null @@ -1,23 +0,0 @@ -# DeploymentProfileAwStack - -AWS-specific binding specification - -## Example Usage - -```typescript -import { DeploymentProfileAwStack } from "@alienplatform/platform-api/models"; - -let value: DeploymentProfileAwStack = { - resources: [ - "", - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | -| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentprofileazure.md b/client-sdks/platform/typescript/docs/models/deploymentprofileazure.md deleted file mode 100644 index f3b706a2e..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentprofileazure.md +++ /dev/null @@ -1,23 +0,0 @@ -# DeploymentProfileAzure - -Azure-specific platform permission configuration - -## Example Usage - -```typescript -import { DeploymentProfileAzure } from "@alienplatform/platform-api/models"; - -let value: DeploymentProfileAzure = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | -| `binding` | [models.DeploymentProfileAzureBinding](../models/deploymentprofileazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `grant` | [models.DeploymentProfileAzureGrant](../models/deploymentprofileazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentprofileazurebinding.md b/client-sdks/platform/typescript/docs/models/deploymentprofileazurebinding.md deleted file mode 100644 index 2cf6bb8ac..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentprofileazurebinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# DeploymentProfileAzureBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { DeploymentProfileAzureBinding } from "@alienplatform/platform-api/models"; - -let value: DeploymentProfileAzureBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | -| `resource` | [models.DeploymentProfileAzureResource](../models/deploymentprofileazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | -| `stack` | [models.DeploymentProfileAzureStack](../models/deploymentprofileazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentprofileazuregrant.md b/client-sdks/platform/typescript/docs/models/deploymentprofileazuregrant.md deleted file mode 100644 index cdab8b12a..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentprofileazuregrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentProfileAzureGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { DeploymentProfileAzureGrant } from "@alienplatform/platform-api/models"; - -let value: DeploymentProfileAzureGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentprofileazureresource.md b/client-sdks/platform/typescript/docs/models/deploymentprofileazureresource.md deleted file mode 100644 index 9bbea435e..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentprofileazureresource.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentProfileAzureResource - -Azure-specific binding specification - -## Example Usage - -```typescript -import { DeploymentProfileAzureResource } from "@alienplatform/platform-api/models"; - -let value: DeploymentProfileAzureResource = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentprofileazurestack.md b/client-sdks/platform/typescript/docs/models/deploymentprofileazurestack.md deleted file mode 100644 index 764297ef2..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentprofileazurestack.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentProfileAzureStack - -Azure-specific binding specification - -## Example Usage - -```typescript -import { DeploymentProfileAzureStack } from "@alienplatform/platform-api/models"; - -let value: DeploymentProfileAzureStack = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentprofileconditionresource.md b/client-sdks/platform/typescript/docs/models/deploymentprofileconditionresource.md deleted file mode 100644 index d3c6cec62..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentprofileconditionresource.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentProfileConditionResource - -GCP IAM condition - -## Example Usage - -```typescript -import { DeploymentProfileConditionResource } from "@alienplatform/platform-api/models"; - -let value: DeploymentProfileConditionResource = { - expression: "", - title: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `expression` | *string* | :heavy_check_mark: | N/A | -| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentprofileconditionstack.md b/client-sdks/platform/typescript/docs/models/deploymentprofileconditionstack.md deleted file mode 100644 index 3a682d747..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentprofileconditionstack.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentProfileConditionStack - -GCP IAM condition - -## Example Usage - -```typescript -import { DeploymentProfileConditionStack } from "@alienplatform/platform-api/models"; - -let value: DeploymentProfileConditionStack = { - expression: "", - title: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `expression` | *string* | :heavy_check_mark: | N/A | -| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentprofileeffect.md b/client-sdks/platform/typescript/docs/models/deploymentprofileeffect.md deleted file mode 100644 index a5d8f9645..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentprofileeffect.md +++ /dev/null @@ -1,17 +0,0 @@ -# DeploymentProfileEffect - -IAM effect. Defaults to Allow. - -## Example Usage - -```typescript -import { DeploymentProfileEffect } from "@alienplatform/platform-api/models"; - -let value: DeploymentProfileEffect = "Deny"; -``` - -## Values - -```typescript -"Allow" | "Deny" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentprofilegcp.md b/client-sdks/platform/typescript/docs/models/deploymentprofilegcp.md deleted file mode 100644 index 080c0b7a5..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentprofilegcp.md +++ /dev/null @@ -1,23 +0,0 @@ -# DeploymentProfileGcp - -GCP-specific platform permission configuration - -## Example Usage - -```typescript -import { DeploymentProfileGcp } from "@alienplatform/platform-api/models"; - -let value: DeploymentProfileGcp = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | -| `binding` | [models.DeploymentProfileGcpBinding](../models/deploymentprofilegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `grant` | [models.DeploymentProfileGcpGrant](../models/deploymentprofilegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentprofilegcpbinding.md b/client-sdks/platform/typescript/docs/models/deploymentprofilegcpbinding.md deleted file mode 100644 index a33c8944e..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentprofilegcpbinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# DeploymentProfileGcpBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { DeploymentProfileGcpBinding } from "@alienplatform/platform-api/models"; - -let value: DeploymentProfileGcpBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -| `resource` | [models.DeploymentProfileGcpResource](../models/deploymentprofilegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | -| `stack` | [models.DeploymentProfileGcpStack](../models/deploymentprofilegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentprofilegcpgrant.md b/client-sdks/platform/typescript/docs/models/deploymentprofilegcpgrant.md deleted file mode 100644 index b7e351845..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentprofilegcpgrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# DeploymentProfileGcpGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { DeploymentProfileGcpGrant } from "@alienplatform/platform-api/models"; - -let value: DeploymentProfileGcpGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentprofilegcpresource.md b/client-sdks/platform/typescript/docs/models/deploymentprofilegcpresource.md deleted file mode 100644 index ac93f41fa..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentprofilegcpresource.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentProfileGcpResource - -GCP-specific binding specification - -## Example Usage - -```typescript -import { DeploymentProfileGcpResource } from "@alienplatform/platform-api/models"; - -let value: DeploymentProfileGcpResource = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | ------------------------------------------------ | -| `condition` | *models.DeploymentProfileResourceConditionUnion* | :heavy_minus_sign: | N/A | -| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentprofilegcpstack.md b/client-sdks/platform/typescript/docs/models/deploymentprofilegcpstack.md deleted file mode 100644 index b161e0f69..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentprofilegcpstack.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentProfileGcpStack - -GCP-specific binding specification - -## Example Usage - -```typescript -import { DeploymentProfileGcpStack } from "@alienplatform/platform-api/models"; - -let value: DeploymentProfileGcpStack = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | -| `condition` | *models.DeploymentProfileStackConditionUnion* | :heavy_minus_sign: | N/A | -| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentprofileplatforms.md b/client-sdks/platform/typescript/docs/models/deploymentprofileplatforms.md deleted file mode 100644 index 30082868f..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentprofileplatforms.md +++ /dev/null @@ -1,19 +0,0 @@ -# DeploymentProfilePlatforms - -Platform-specific permission configurations - -## Example Usage - -```typescript -import { DeploymentProfilePlatforms } from "@alienplatform/platform-api/models"; - -let value: DeploymentProfilePlatforms = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | -| `aws` | [models.DeploymentProfileAw](../models/deploymentprofileaw.md)[] | :heavy_minus_sign: | AWS permission configurations | -| `azure` | [models.DeploymentProfileAzure](../models/deploymentprofileazure.md)[] | :heavy_minus_sign: | Azure permission configurations | -| `gcp` | [models.DeploymentProfileGcp](../models/deploymentprofilegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentprofileresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentprofileresourceconditionunion.md deleted file mode 100644 index 4cc57c5b4..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentprofileresourceconditionunion.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentProfileResourceConditionUnion - - -## Supported Types - -### `models.DeploymentProfileConditionResource` - -```typescript -const value: models.DeploymentProfileConditionResource = { - expression: "", - title: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentprofilestackconditionunion.md b/client-sdks/platform/typescript/docs/models/deploymentprofilestackconditionunion.md deleted file mode 100644 index a972b2b84..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentprofilestackconditionunion.md +++ /dev/null @@ -1,20 +0,0 @@ -# DeploymentProfileStackConditionUnion - - -## Supported Types - -### `models.DeploymentProfileConditionStack` - -```typescript -const value: models.DeploymentProfileConditionStack = { - expression: "", - title: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentprofileunion.md b/client-sdks/platform/typescript/docs/models/deploymentprofileunion.md deleted file mode 100644 index 3145219a2..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentprofileunion.md +++ /dev/null @@ -1,24 +0,0 @@ -# DeploymentProfileUnion - -Reference to a permission set - either by name or inline definition - - -## Supported Types - -### `models.DeploymentProfile` - -```typescript -const value: models.DeploymentProfile = { - description: - "across unto comfortable meh kookily paltry hover while intensely", - id: "", - platforms: {}, -}; -``` - -### `string` - -```typescript -const value: string = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentprovidedby.md b/client-sdks/platform/typescript/docs/models/deploymentprovidedby.md deleted file mode 100644 index 1daba96f3..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentprovidedby.md +++ /dev/null @@ -1,17 +0,0 @@ -# DeploymentProvidedBy - -Who can provide a stack input value. - -## Example Usage - -```typescript -import { DeploymentProvidedBy } from "@alienplatform/platform-api/models"; - -let value: DeploymentProvidedBy = "developer"; -``` - -## Values - -```typescript -"developer" | "deployer" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentproviderunion1.md b/client-sdks/platform/typescript/docs/models/deploymentproviderunion1.md index d7bbf342e..9536e520e 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentproviderunion1.md +++ b/client-sdks/platform/typescript/docs/models/deploymentproviderunion1.md @@ -35,4 +35,3 @@ const value: models.DeploymentProviderAzureApplicationGatewayForContainers1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentproviderunion2.md b/client-sdks/platform/typescript/docs/models/deploymentproviderunion2.md index 013aebaef..22ac985bf 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentproviderunion2.md +++ b/client-sdks/platform/typescript/docs/models/deploymentproviderunion2.md @@ -35,4 +35,3 @@ const value: models.DeploymentProviderAzureApplicationGatewayForContainers2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentproviderunion3.md b/client-sdks/platform/typescript/docs/models/deploymentproviderunion3.md index db56c29fc..0647157c3 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentproviderunion3.md +++ b/client-sdks/platform/typescript/docs/models/deploymentproviderunion3.md @@ -35,4 +35,3 @@ const value: models.DeploymentProviderAzureApplicationGatewayForContainers3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentproviderunion4.md b/client-sdks/platform/typescript/docs/models/deploymentproviderunion4.md index 1ca0d55ae..75f3ae0c6 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentproviderunion4.md +++ b/client-sdks/platform/typescript/docs/models/deploymentproviderunion4.md @@ -35,4 +35,3 @@ const value: models.DeploymentProviderAzureApplicationGatewayForContainers4 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentpublicendpointtargetunion.md b/client-sdks/platform/typescript/docs/models/deploymentpublicendpointtargetunion.md index f441480f2..bbca5bde5 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentpublicendpointtargetunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentpublicendpointtargetunion.md @@ -25,4 +25,3 @@ const value: models.DeploymentPublicEndpointTargetLoadBalancer = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentrouteunion1.md b/client-sdks/platform/typescript/docs/models/deploymentrouteunion1.md index 93fde02b8..eaacf23f5 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentrouteunion1.md +++ b/client-sdks/platform/typescript/docs/models/deploymentrouteunion1.md @@ -23,4 +23,3 @@ const value: models.DeploymentRouteGateway1 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentrouteunion2.md b/client-sdks/platform/typescript/docs/models/deploymentrouteunion2.md index 0bd70ae00..9d53eda23 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentrouteunion2.md +++ b/client-sdks/platform/typescript/docs/models/deploymentrouteunion2.md @@ -23,4 +23,3 @@ const value: models.DeploymentRouteGateway2 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentruntimemetadata.md b/client-sdks/platform/typescript/docs/models/deploymentruntimemetadata.md index 8313fe7e6..2d62ba3af 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentruntimemetadata.md +++ b/client-sdks/platform/typescript/docs/models/deploymentruntimemetadata.md @@ -12,9 +12,13 @@ let value: DeploymentRuntimeMetadata = {}; ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `lastSyncedEnvVarsHash` | *string* | :heavy_minus_sign: | Hash of the environment variables snapshot that was last synced to the vault
Used to avoid redundant sync operations during incremental deployment | -| `lastSyncedSecretNames` | *string*[] | :heavy_minus_sign: | Exact vault keys owned by the deployment secret synchronizer. This
inventory lets a later snapshot delete removed keys without listing or
touching unrelated values in the same vault. | -| `preparedStack` | *models.DeploymentPreparedStackUnion* | :heavy_minus_sign: | N/A | -| `registryAccessGranted` | *boolean* | :heavy_minus_sign: | Whether cross-account registry access has been successfully granted.
Set to true after the manager successfully sets the ECR/GAR repo policy
for this deployment's target account. Prevents redundant API calls on
every reconcile tick. | \ No newline at end of file +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `initialSetupAuthority` | [models.DeploymentInitialSetupAuthority](../models/deploymentinitialsetupauthority.md) | :heavy_minus_sign: | Actor that owns structural work during the initial setup phase. | +| `lastSyncedEnvVarsHash` | *string* | :heavy_minus_sign: | Hash of the environment variables snapshot that was last synced to the vault
Used to avoid redundant sync operations during incremental deployment | +| `lastSyncedSecretNames` | *string*[] | :heavy_minus_sign: | Exact vault keys owned by the deployment secret synchronizer. This
inventory lets a later snapshot delete removed keys without listing or
touching unrelated values in the same vault. | +| `pendingPreparedStack` | *models.DeploymentPendingPreparedStackUnion* | :heavy_minus_sign: | N/A | +| `persistedGateAnswers` | Record | :heavy_minus_sign: | Canonical resolved answers for inputs that gate Frozen resources,
keyed by input id, recorded when the deployment is created or its
setup import registers.

A frozen gate's answer is fixed for the deployment's lifetime: the
update path refuses input values that conflict with these, and a Live
resource sharing such an input resolves the persisted answer forever. | +| `preparedStack` | *models.DeploymentPreparedStackUnion* | :heavy_minus_sign: | N/A | +| `registryAccessGranted` | *boolean* | :heavy_minus_sign: | Whether cross-account registry access has been successfully granted.
Set to true after the manager successfully sets the ECR/GAR repo policy
for this deployment's target account. Prevents redundant API calls on
every reconcile tick. | +| `setupUpdateAuthorization` | *models.DeploymentSetupUpdateAuthorizationUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupconfig.md b/client-sdks/platform/typescript/docs/models/deploymentsetupconfig.md index 660afbdc9..54246750b 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentsetupconfig.md +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupconfig.md @@ -13,7 +13,9 @@ let value: DeploymentSetupConfig = { }, policy: { allowedPlatforms: [], - allowedSetupMethods: [], + allowedSetupMethods: [ + "google-oauth", + ], }, environmentVariables: [], }; diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyawsunion.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyawsunion.md index 094afc6f1..294b80707 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyawsunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyawsunion.md @@ -16,4 +16,3 @@ const value: models.DeploymentSetupStackSettingsPolicyAws = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyazureunion.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyazureunion.md index 0d814ca2c..6beb99171 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyazureunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyazureunion.md @@ -16,4 +16,3 @@ const value: models.DeploymentSetupStackSettingsPolicyAzure = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicycertificateunion1.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicycertificateunion1.md index dde0940b5..e20dff054 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicycertificateunion1.md +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicycertificateunion1.md @@ -50,4 +50,3 @@ const value: models.DeploymentSetupStackSettingsPolicyCertificateNone1 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicycertificateunion2.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicycertificateunion2.md index cbd8174f3..a8d0a0957 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicycertificateunion2.md +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicycertificateunion2.md @@ -50,4 +50,3 @@ const value: models.DeploymentSetupStackSettingsPolicyCertificateNone2 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicycloudunion.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicycloudunion.md index d9abe144f..82262b90b 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicycloudunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicycloudunion.md @@ -14,4 +14,3 @@ const value: models.DeploymentSetupStackSettingsPolicyCloud = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyclusterunion.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyclusterunion.md index e3c66337b..e49231a9d 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyclusterunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyclusterunion.md @@ -16,4 +16,3 @@ const value: models.DeploymentSetupStackSettingsPolicyCluster = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicycomputeunion.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicycomputeunion.md index c12441fc4..899a80d2f 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicycomputeunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicycomputeunion.md @@ -14,4 +14,3 @@ const value: models.DeploymentSetupStackSettingsPolicyCompute = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicydomainskubernetesunion.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicydomainskubernetesunion.md index b986f489d..56f14e2ed 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicydomainskubernetesunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicydomainskubernetesunion.md @@ -18,4 +18,3 @@ const value: models.DeploymentSetupStackSettingsPolicyDomainsKubernetes = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicydomainsunion.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicydomainsunion.md index feb0903b2..cec23d2c5 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicydomainsunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicydomainsunion.md @@ -14,4 +14,3 @@ const value: models.DeploymentSetupStackSettingsPolicyDomains = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyexposureunion.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyexposureunion.md index c5d3e4745..1d0c76426 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyexposureunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyexposureunion.md @@ -50,4 +50,3 @@ const value: models.DeploymentSetupStackSettingsPolicyExposureCustom = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyfailuredomains1.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyfailuredomains1.md new file mode 100644 index 000000000..0e830678e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyfailuredomains1.md @@ -0,0 +1,20 @@ +# DeploymentSetupStackSettingsPolicyFailureDomains1 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { DeploymentSetupStackSettingsPolicyFailureDomains1 } from "@alienplatform/platform-api/models"; + +let value: DeploymentSetupStackSettingsPolicyFailureDomains1 = { + spread: 834872, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyfailuredomains2.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyfailuredomains2.md new file mode 100644 index 000000000..bc9e6a1ce --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyfailuredomains2.md @@ -0,0 +1,20 @@ +# DeploymentSetupStackSettingsPolicyFailureDomains2 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { DeploymentSetupStackSettingsPolicyFailureDomains2 } from "@alienplatform/platform-api/models"; + +let value: DeploymentSetupStackSettingsPolicyFailureDomains2 = { + spread: 479279, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyfailuredomainsunion1.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyfailuredomainsunion1.md new file mode 100644 index 000000000..c4afe9c54 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyfailuredomainsunion1.md @@ -0,0 +1,18 @@ +# DeploymentSetupStackSettingsPolicyFailureDomainsUnion1 + + +## Supported Types + +### `models.DeploymentSetupStackSettingsPolicyFailureDomains1` + +```typescript +const value: models.DeploymentSetupStackSettingsPolicyFailureDomains1 = { + spread: 834872, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyfailuredomainsunion2.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyfailuredomainsunion2.md new file mode 100644 index 000000000..4499f2866 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyfailuredomainsunion2.md @@ -0,0 +1,18 @@ +# DeploymentSetupStackSettingsPolicyFailureDomainsUnion2 + + +## Supported Types + +### `models.DeploymentSetupStackSettingsPolicyFailureDomains2` + +```typescript +const value: models.DeploymentSetupStackSettingsPolicyFailureDomains2 = { + spread: 479279, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicygcpunion.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicygcpunion.md index 4ce504929..3bce1e0f5 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicygcpunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicygcpunion.md @@ -16,4 +16,3 @@ const value: models.DeploymentSetupStackSettingsPolicyGcp = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicykubernetesunion.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicykubernetesunion.md index b5cf651ef..ba0d9da38 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicykubernetesunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicykubernetesunion.md @@ -14,4 +14,3 @@ const value: models.DeploymentSetupStackSettingsPolicyKubernetes = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicynetworkunion.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicynetworkunion.md index 5a412b5a7..f4833a12c 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicynetworkunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicynetworkunion.md @@ -59,4 +59,3 @@ const value: models.DeploymentSetupStackSettingsPolicyNetworkByoVnetAzure = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicypoolsautoscale.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicypoolsautoscale.md index 92a0235a6..4757e01e4 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicypoolsautoscale.md +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicypoolsautoscale.md @@ -14,9 +14,10 @@ let value: DeploymentSetupStackSettingsPolicyPoolsAutoscale = { ## Fields -| Field | Type | Required | Description | -| --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | -| `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | -| `max` | *number* | :heavy_check_mark: | Maximum machine count. | -| `min` | *number* | :heavy_check_mark: | Minimum machine count. | -| `mode` | *"autoscale"* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | +| `failureDomains` | *models.DeploymentSetupStackSettingsPolicyFailureDomainsUnion2* | :heavy_minus_sign: | N/A | +| `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | +| `max` | *number* | :heavy_check_mark: | Maximum machine count. | +| `min` | *number* | :heavy_check_mark: | Minimum machine count. | +| `mode` | *"autoscale"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicypoolsfixed.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicypoolsfixed.md index b259684b4..503782d92 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicypoolsfixed.md +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicypoolsfixed.md @@ -13,8 +13,9 @@ let value: DeploymentSetupStackSettingsPolicyPoolsFixed = { ## Fields -| Field | Type | Required | Description | -| --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | -| `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | -| `machines` | *number* | :heavy_check_mark: | Number of machines to run. | -| `mode` | *"fixed"* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | +| `failureDomains` | *models.DeploymentSetupStackSettingsPolicyFailureDomainsUnion1* | :heavy_minus_sign: | N/A | +| `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | +| `machines` | *number* | :heavy_check_mark: | Number of machines to run. | +| `mode` | *"fixed"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicypoolsunion.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicypoolsunion.md index c3eaeaa84..d6bf1949f 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicypoolsunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicypoolsunion.md @@ -23,4 +23,3 @@ const value: models.DeploymentSetupStackSettingsPolicyPoolsAutoscale = { mode: "autoscale", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyproviderunion1.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyproviderunion1.md index e194d149c..07da702c5 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyproviderunion1.md +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyproviderunion1.md @@ -37,4 +37,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyproviderunion2.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyproviderunion2.md index 7b4326255..17dd5b347 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyproviderunion2.md +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyproviderunion2.md @@ -37,4 +37,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyproviderunion3.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyproviderunion3.md index 1e5b3ebb2..75a9d9090 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyproviderunion3.md +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyproviderunion3.md @@ -37,4 +37,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyproviderunion4.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyproviderunion4.md index 821092ed5..d42380ca0 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyproviderunion4.md +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyproviderunion4.md @@ -37,4 +37,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicypublicendpointtargetunion.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicypublicendpointtargetunion.md index 94fcc23e6..7662a9b5a 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicypublicendpointtargetunion.md +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicypublicendpointtargetunion.md @@ -28,4 +28,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyrouteunion1.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyrouteunion1.md index d8536b9e9..5d69f2b47 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyrouteunion1.md +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyrouteunion1.md @@ -23,4 +23,3 @@ const value: models.DeploymentSetupStackSettingsPolicyRouteGateway1 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyrouteunion2.md b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyrouteunion2.md index e754f3a32..0d130eab6 100644 --- a/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyrouteunion2.md +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupstacksettingspolicyrouteunion2.md @@ -23,4 +23,3 @@ const value: models.DeploymentSetupStackSettingsPolicyRouteGateway2 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupupdateauthorization.md b/client-sdks/platform/typescript/docs/models/deploymentsetupupdateauthorization.md new file mode 100644 index 000000000..0dcd578a0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupupdateauthorization.md @@ -0,0 +1,31 @@ +# DeploymentSetupUpdateAuthorization + +One-shot authority for a setup re-import to replace setup-owned resources. + +## Example Usage + +```typescript +import { DeploymentSetupUpdateAuthorization } from "@alienplatform/platform-api/models"; + +let value: DeploymentSetupUpdateAuthorization = { + baselineFrozenDigest: "", + nonce: "", + releaseId: "", + setupFingerprint: "", + setupFingerprintVersion: 933795, + setupTarget: "", + targetFrozenDigest: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | +| `baselineFrozenDigest` | *string* | :heavy_check_mark: | Frozen resource projection from the last successful deployment. | +| `nonce` | *string* | :heavy_check_mark: | Unique revision used by persistence layers for compare-and-swap updates. | +| `releaseId` | *string* | :heavy_check_mark: | Release whose stack was prepared by setup. | +| `setupFingerprint` | *string* | :heavy_check_mark: | Exact setup artifact revision that authored this authority. | +| `setupFingerprintVersion` | *number* | :heavy_check_mark: | Setup fingerprint contract version. | +| `setupTarget` | *string* | :heavy_check_mark: | Stable setup target recorded on the imported deployment. | +| `targetFrozenDigest` | *string* | :heavy_check_mark: | Frozen resource projection prepared by the setup re-import. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentsetupupdateauthorizationunion.md b/client-sdks/platform/typescript/docs/models/deploymentsetupupdateauthorizationunion.md new file mode 100644 index 000000000..e4513063d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/deploymentsetupupdateauthorizationunion.md @@ -0,0 +1,24 @@ +# DeploymentSetupUpdateAuthorizationUnion + + +## Supported Types + +### `models.DeploymentSetupUpdateAuthorization` + +```typescript +const value: models.DeploymentSetupUpdateAuthorization = { + baselineFrozenDigest: "", + nonce: "", + releaseId: "", + setupFingerprint: "", + setupFingerprintVersion: 933795, + setupTarget: "", + targetFrozenDigest: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/deploymentsupportedplatform.md b/client-sdks/platform/typescript/docs/models/deploymentsupportedplatform.md deleted file mode 100644 index 543070b1e..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentsupportedplatform.md +++ /dev/null @@ -1,17 +0,0 @@ -# DeploymentSupportedPlatform - -Represents the target cloud platform. - -## Example Usage - -```typescript -import { DeploymentSupportedPlatform } from "@alienplatform/platform-api/models"; - -let value: DeploymentSupportedPlatform = "test"; -``` - -## Values - -```typescript -"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymenttypeboolean.md b/client-sdks/platform/typescript/docs/models/deploymenttypeboolean.md deleted file mode 100644 index 6e6f5f621..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymenttypeboolean.md +++ /dev/null @@ -1,15 +0,0 @@ -# DeploymentTypeBoolean - -## Example Usage - -```typescript -import { DeploymentTypeBoolean } from "@alienplatform/platform-api/models"; - -let value: DeploymentTypeBoolean = "boolean"; -``` - -## Values - -```typescript -"boolean" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymenttypeenvenum.md b/client-sdks/platform/typescript/docs/models/deploymenttypeenvenum.md deleted file mode 100644 index 869a7e559..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymenttypeenvenum.md +++ /dev/null @@ -1,17 +0,0 @@ -# DeploymentTypeEnvEnum - -Environment variable handling for a stack input mapping. - -## Example Usage - -```typescript -import { DeploymentTypeEnvEnum } from "@alienplatform/platform-api/models"; - -let value: DeploymentTypeEnvEnum = "plain"; -``` - -## Values - -```typescript -"plain" | "secret" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymenttypenumber.md b/client-sdks/platform/typescript/docs/models/deploymenttypenumber.md deleted file mode 100644 index a8d7c7a21..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymenttypenumber.md +++ /dev/null @@ -1,15 +0,0 @@ -# DeploymentTypeNumber - -## Example Usage - -```typescript -import { DeploymentTypeNumber } from "@alienplatform/platform-api/models"; - -let value: DeploymentTypeNumber = "number"; -``` - -## Values - -```typescript -"number" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymenttypestring.md b/client-sdks/platform/typescript/docs/models/deploymenttypestring.md deleted file mode 100644 index e6b2e4361..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymenttypestring.md +++ /dev/null @@ -1,15 +0,0 @@ -# DeploymentTypeString - -## Example Usage - -```typescript -import { DeploymentTypeString } from "@alienplatform/platform-api/models"; - -let value: DeploymentTypeString = "string"; -``` - -## Values - -```typescript -"string" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymenttypestringlist.md b/client-sdks/platform/typescript/docs/models/deploymenttypestringlist.md deleted file mode 100644 index e72dc9078..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymenttypestringlist.md +++ /dev/null @@ -1,15 +0,0 @@ -# DeploymentTypeStringList - -## Example Usage - -```typescript -import { DeploymentTypeStringList } from "@alienplatform/platform-api/models"; - -let value: DeploymentTypeStringList = "stringList"; -``` - -## Values - -```typescript -"stringList" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymenttypeunion.md b/client-sdks/platform/typescript/docs/models/deploymenttypeunion.md deleted file mode 100644 index 0a42e1a12..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymenttypeunion.md +++ /dev/null @@ -1,17 +0,0 @@ -# DeploymentTypeUnion - - -## Supported Types - -### `models.DeploymentTypeEnvEnum` - -```typescript -const value: models.DeploymentTypeEnvEnum = "secret"; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/deploymentvalidation.md b/client-sdks/platform/typescript/docs/models/deploymentvalidation.md deleted file mode 100644 index 00e595113..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentvalidation.md +++ /dev/null @@ -1,25 +0,0 @@ -# DeploymentValidation - -Portable stack input validation constraints. - -## Example Usage - -```typescript -import { DeploymentValidation } from "@alienplatform/platform-api/models"; - -let value: DeploymentValidation = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| `format` | *string* | :heavy_minus_sign: | Semantic format hint such as url. | -| `max` | *string* | :heavy_minus_sign: | Maximum number. | -| `maxItems` | *number* | :heavy_minus_sign: | Maximum string-list items. | -| `maxLength` | *number* | :heavy_minus_sign: | Maximum string length. | -| `min` | *string* | :heavy_minus_sign: | Minimum number. | -| `minItems` | *number* | :heavy_minus_sign: | Minimum string-list items. | -| `minLength` | *number* | :heavy_minus_sign: | Minimum string length. | -| `pattern` | *string* | :heavy_minus_sign: | Portable whole-value regex pattern. | -| `values` | *string*[] | :heavy_minus_sign: | Allowed string enum values. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/deploymentvalidationunion.md b/client-sdks/platform/typescript/docs/models/deploymentvalidationunion.md deleted file mode 100644 index 583bedc8f..000000000 --- a/client-sdks/platform/typescript/docs/models/deploymentvalidationunion.md +++ /dev/null @@ -1,17 +0,0 @@ -# DeploymentValidationUnion - - -## Supported Types - -### `models.DeploymentValidation` - -```typescript -const value: models.DeploymentValidation = {}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/drainprogress1.md b/client-sdks/platform/typescript/docs/models/drainprogress1.md index 79309d501..6b7bbe144 100644 --- a/client-sdks/platform/typescript/docs/models/drainprogress1.md +++ b/client-sdks/platform/typescript/docs/models/drainprogress1.md @@ -16,14 +16,14 @@ let value: DrainProgress1 = { ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | -| `blockers` | [models.Blocker1](../models/blocker1.md)[] | :heavy_minus_sign: | N/A | -| `drainDeadlineAt` | *string* | :heavy_minus_sign: | N/A | -| `drainRequestedAt` | *string* | :heavy_minus_sign: | N/A | -| `drainedAt` | *string* | :heavy_minus_sign: | N/A | -| `force` | *boolean* | :heavy_check_mark: | N/A | -| `machineId` | *string* | :heavy_check_mark: | N/A | -| `replicaCount` | *number* | :heavy_check_mark: | N/A | -| `stalled` | *boolean* | :heavy_check_mark: | N/A | -| `status` | [models.DrainProgressStatus1](../models/drainprogressstatus1.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `blockers` | [models.DrainProgressBlocker1](../models/drainprogressblocker1.md)[] | :heavy_minus_sign: | N/A | +| `drainDeadlineAt` | *string* | :heavy_minus_sign: | N/A | +| `drainRequestedAt` | *string* | :heavy_minus_sign: | N/A | +| `drainedAt` | *string* | :heavy_minus_sign: | N/A | +| `force` | *boolean* | :heavy_check_mark: | N/A | +| `machineId` | *string* | :heavy_check_mark: | N/A | +| `replicaCount` | *number* | :heavy_check_mark: | N/A | +| `stalled` | *boolean* | :heavy_check_mark: | N/A | +| `status` | [models.DrainProgressStatus1](../models/drainprogressstatus1.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/drainprogress2.md b/client-sdks/platform/typescript/docs/models/drainprogress2.md index a2c4c17f2..7a1c5e881 100644 --- a/client-sdks/platform/typescript/docs/models/drainprogress2.md +++ b/client-sdks/platform/typescript/docs/models/drainprogress2.md @@ -16,14 +16,14 @@ let value: DrainProgress2 = { ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | -| `blockers` | [models.Blocker2](../models/blocker2.md)[] | :heavy_minus_sign: | N/A | -| `drainDeadlineAt` | *string* | :heavy_minus_sign: | N/A | -| `drainRequestedAt` | *string* | :heavy_minus_sign: | N/A | -| `drainedAt` | *string* | :heavy_minus_sign: | N/A | -| `force` | *boolean* | :heavy_check_mark: | N/A | -| `machineId` | *string* | :heavy_check_mark: | N/A | -| `replicaCount` | *number* | :heavy_check_mark: | N/A | -| `stalled` | *boolean* | :heavy_check_mark: | N/A | -| `status` | [models.DrainProgressStatus2](../models/drainprogressstatus2.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `blockers` | [models.DrainProgressBlocker2](../models/drainprogressblocker2.md)[] | :heavy_minus_sign: | N/A | +| `drainDeadlineAt` | *string* | :heavy_minus_sign: | N/A | +| `drainRequestedAt` | *string* | :heavy_minus_sign: | N/A | +| `drainedAt` | *string* | :heavy_minus_sign: | N/A | +| `force` | *boolean* | :heavy_check_mark: | N/A | +| `machineId` | *string* | :heavy_check_mark: | N/A | +| `replicaCount` | *number* | :heavy_check_mark: | N/A | +| `stalled` | *boolean* | :heavy_check_mark: | N/A | +| `status` | [models.DrainProgressStatus2](../models/drainprogressstatus2.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/drainprogress3.md b/client-sdks/platform/typescript/docs/models/drainprogress3.md index 6576ec8af..296f69cc2 100644 --- a/client-sdks/platform/typescript/docs/models/drainprogress3.md +++ b/client-sdks/platform/typescript/docs/models/drainprogress3.md @@ -16,14 +16,14 @@ let value: DrainProgress3 = { ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | -| `blockers` | [models.Blocker3](../models/blocker3.md)[] | :heavy_minus_sign: | N/A | -| `drainDeadlineAt` | *string* | :heavy_minus_sign: | N/A | -| `drainRequestedAt` | *string* | :heavy_minus_sign: | N/A | -| `drainedAt` | *string* | :heavy_minus_sign: | N/A | -| `force` | *boolean* | :heavy_check_mark: | N/A | -| `machineId` | *string* | :heavy_check_mark: | N/A | -| `replicaCount` | *number* | :heavy_check_mark: | N/A | -| `stalled` | *boolean* | :heavy_check_mark: | N/A | -| `status` | [models.DrainProgressStatus3](../models/drainprogressstatus3.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `blockers` | [models.DrainProgressBlocker3](../models/drainprogressblocker3.md)[] | :heavy_minus_sign: | N/A | +| `drainDeadlineAt` | *string* | :heavy_minus_sign: | N/A | +| `drainRequestedAt` | *string* | :heavy_minus_sign: | N/A | +| `drainedAt` | *string* | :heavy_minus_sign: | N/A | +| `force` | *boolean* | :heavy_check_mark: | N/A | +| `machineId` | *string* | :heavy_check_mark: | N/A | +| `replicaCount` | *number* | :heavy_check_mark: | N/A | +| `stalled` | *boolean* | :heavy_check_mark: | N/A | +| `status` | [models.DrainProgressStatus3](../models/drainprogressstatus3.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/drainprogress4.md b/client-sdks/platform/typescript/docs/models/drainprogress4.md index d74a7914b..373847a4f 100644 --- a/client-sdks/platform/typescript/docs/models/drainprogress4.md +++ b/client-sdks/platform/typescript/docs/models/drainprogress4.md @@ -16,14 +16,14 @@ let value: DrainProgress4 = { ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | -| `blockers` | [models.Blocker4](../models/blocker4.md)[] | :heavy_minus_sign: | N/A | -| `drainDeadlineAt` | *string* | :heavy_minus_sign: | N/A | -| `drainRequestedAt` | *string* | :heavy_minus_sign: | N/A | -| `drainedAt` | *string* | :heavy_minus_sign: | N/A | -| `force` | *boolean* | :heavy_check_mark: | N/A | -| `machineId` | *string* | :heavy_check_mark: | N/A | -| `replicaCount` | *number* | :heavy_check_mark: | N/A | -| `stalled` | *boolean* | :heavy_check_mark: | N/A | -| `status` | [models.DrainProgressStatus4](../models/drainprogressstatus4.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `blockers` | [models.DrainProgressBlocker4](../models/drainprogressblocker4.md)[] | :heavy_minus_sign: | N/A | +| `drainDeadlineAt` | *string* | :heavy_minus_sign: | N/A | +| `drainRequestedAt` | *string* | :heavy_minus_sign: | N/A | +| `drainedAt` | *string* | :heavy_minus_sign: | N/A | +| `force` | *boolean* | :heavy_check_mark: | N/A | +| `machineId` | *string* | :heavy_check_mark: | N/A | +| `replicaCount` | *number* | :heavy_check_mark: | N/A | +| `stalled` | *boolean* | :heavy_check_mark: | N/A | +| `status` | [models.DrainProgressStatus4](../models/drainprogressstatus4.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/drainprogressblocker1.md b/client-sdks/platform/typescript/docs/models/drainprogressblocker1.md new file mode 100644 index 000000000..7da4f394b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/drainprogressblocker1.md @@ -0,0 +1,25 @@ +# DrainProgressBlocker1 + +## Example Usage + +```typescript +import { DrainProgressBlocker1 } from "@alienplatform/platform-api/models"; + +let value: DrainProgressBlocker1 = { + reason: "", + replicaId: "", + schedulingMode: "", + state: "Ohio", + workloadName: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `reason` | *string* | :heavy_check_mark: | N/A | +| `replicaId` | *string* | :heavy_check_mark: | N/A | +| `schedulingMode` | *string* | :heavy_check_mark: | N/A | +| `state` | *string* | :heavy_check_mark: | N/A | +| `workloadName` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/drainprogressblocker2.md b/client-sdks/platform/typescript/docs/models/drainprogressblocker2.md new file mode 100644 index 000000000..6845f37c9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/drainprogressblocker2.md @@ -0,0 +1,25 @@ +# DrainProgressBlocker2 + +## Example Usage + +```typescript +import { DrainProgressBlocker2 } from "@alienplatform/platform-api/models"; + +let value: DrainProgressBlocker2 = { + reason: "", + replicaId: "", + schedulingMode: "", + state: "Tennessee", + workloadName: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `reason` | *string* | :heavy_check_mark: | N/A | +| `replicaId` | *string* | :heavy_check_mark: | N/A | +| `schedulingMode` | *string* | :heavy_check_mark: | N/A | +| `state` | *string* | :heavy_check_mark: | N/A | +| `workloadName` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/drainprogressblocker3.md b/client-sdks/platform/typescript/docs/models/drainprogressblocker3.md new file mode 100644 index 000000000..7d5223192 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/drainprogressblocker3.md @@ -0,0 +1,25 @@ +# DrainProgressBlocker3 + +## Example Usage + +```typescript +import { DrainProgressBlocker3 } from "@alienplatform/platform-api/models"; + +let value: DrainProgressBlocker3 = { + reason: "", + replicaId: "", + schedulingMode: "", + state: "South Carolina", + workloadName: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `reason` | *string* | :heavy_check_mark: | N/A | +| `replicaId` | *string* | :heavy_check_mark: | N/A | +| `schedulingMode` | *string* | :heavy_check_mark: | N/A | +| `state` | *string* | :heavy_check_mark: | N/A | +| `workloadName` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/drainprogressblocker4.md b/client-sdks/platform/typescript/docs/models/drainprogressblocker4.md new file mode 100644 index 000000000..4e6ffe796 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/drainprogressblocker4.md @@ -0,0 +1,25 @@ +# DrainProgressBlocker4 + +## Example Usage + +```typescript +import { DrainProgressBlocker4 } from "@alienplatform/platform-api/models"; + +let value: DrainProgressBlocker4 = { + reason: "", + replicaId: "", + schedulingMode: "", + state: "Virginia", + workloadName: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `reason` | *string* | :heavy_check_mark: | N/A | +| `replicaId` | *string* | :heavy_check_mark: | N/A | +| `schedulingMode` | *string* | :heavy_check_mark: | N/A | +| `state` | *string* | :heavy_check_mark: | N/A | +| `workloadName` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/drainprogressunion1.md b/client-sdks/platform/typescript/docs/models/drainprogressunion1.md index 9256255d6..21500fabf 100644 --- a/client-sdks/platform/typescript/docs/models/drainprogressunion1.md +++ b/client-sdks/platform/typescript/docs/models/drainprogressunion1.md @@ -20,4 +20,3 @@ const value: models.DrainProgress1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/drainprogressunion2.md b/client-sdks/platform/typescript/docs/models/drainprogressunion2.md index b648720eb..3a2c9d1fe 100644 --- a/client-sdks/platform/typescript/docs/models/drainprogressunion2.md +++ b/client-sdks/platform/typescript/docs/models/drainprogressunion2.md @@ -20,4 +20,3 @@ const value: models.DrainProgress2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/drainprogressunion3.md b/client-sdks/platform/typescript/docs/models/drainprogressunion3.md index 482801e78..dc6507ff0 100644 --- a/client-sdks/platform/typescript/docs/models/drainprogressunion3.md +++ b/client-sdks/platform/typescript/docs/models/drainprogressunion3.md @@ -20,4 +20,3 @@ const value: models.DrainProgress3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/drainprogressunion4.md b/client-sdks/platform/typescript/docs/models/drainprogressunion4.md index 4d3a22174..1a0b91de1 100644 --- a/client-sdks/platform/typescript/docs/models/drainprogressunion4.md +++ b/client-sdks/platform/typescript/docs/models/drainprogressunion4.md @@ -20,4 +20,3 @@ const value: models.DrainProgress4 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/ensuredeploymentgroupbyexternalidrequest.md b/client-sdks/platform/typescript/docs/models/ensuredeploymentgroupbyexternalidrequest.md new file mode 100644 index 000000000..f05c58145 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/ensuredeploymentgroupbyexternalidrequest.md @@ -0,0 +1,22 @@ +# EnsureDeploymentGroupByExternalIdRequest + +## Example Usage + +```typescript +import { EnsureDeploymentGroupByExternalIdRequest } from "@alienplatform/platform-api/models"; + +let value: EnsureDeploymentGroupByExternalIdRequest = { + externalId: "ext_example_01", + name: "prod-us-east-1", + project: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| `externalId` | *string* | :heavy_check_mark: | Case-sensitive, URL- and header-safe identifier from the integrating application. | ext_example_01 | +| `name` | *string* | :heavy_check_mark: | Deployment group name. | prod-us-east-1 | +| `project` | *string* | :heavy_check_mark: | Project ID or name this deployment group belongs to | | +| `maxDeployments` | *number* | :heavy_minus_sign: | Maximum number of deployments for newly created groups | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/errorfailed.md b/client-sdks/platform/typescript/docs/models/errorfailed.md deleted file mode 100644 index 3975b4dcc..000000000 --- a/client-sdks/platform/typescript/docs/models/errorfailed.md +++ /dev/null @@ -1,34 +0,0 @@ -# ErrorFailed - -Canonical error container that provides a structured way to represent errors -with rich metadata including error codes, human-readable messages, context, -and chaining capabilities for error propagation. - -This struct is designed to be both machine-readable and user-friendly, -supporting serialization for API responses and detailed error reporting -in distributed systems. - -## Example Usage - -```typescript -import { ErrorFailed } from "@alienplatform/platform-api/models"; - -let value: ErrorFailed = { - code: "", - internal: true, - message: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `code` | *string* | :heavy_check_mark: | A unique identifier for the type of error.

This should be a short, machine-readable string that can be used
by clients to programmatically handle different error types.
Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" | -| `context` | *any* | :heavy_minus_sign: | Additional diagnostic information about the error context.

This optional field can contain structured data providing more details
about the error, such as validation errors, request parameters that
caused the issue, or other relevant context information. | -| `hint` | *string* | :heavy_minus_sign: | Optional human-facing remediation hint. | -| `httpStatusCode` | *number* | :heavy_minus_sign: | HTTP status code for this error.

Used when converting the error to an HTTP response. If None, falls back to
the error type's default status code or 500. | -| `internal` | *boolean* | :heavy_check_mark: | Indicates if this is an internal error that should not be exposed to users.

When `true`, this error contains sensitive information or implementation
details that should not be shown to end-users. Such errors should be
logged for debugging but replaced with generic error messages in responses. | -| `message` | *string* | :heavy_check_mark: | Human-readable error message.

This message should be clear and actionable for developers or end-users,
providing context about what went wrong and potentially how to fix it. | -| `retryable` | *boolean* | :heavy_minus_sign: | Indicates whether the operation that caused the error should be retried.

When `true`, the error is transient and the operation might succeed
if attempted again. When `false`, retrying the same operation is
unlikely to succeed without changes. | -| `source` | *any* | :heavy_minus_sign: | The underlying error that caused this error, creating an error chain.

This allows for proper error propagation and debugging by maintaining
the full context of how an error occurred through multiple layers
of an application. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/errornextstate.md b/client-sdks/platform/typescript/docs/models/errornextstate.md deleted file mode 100644 index 27b4d6de1..000000000 --- a/client-sdks/platform/typescript/docs/models/errornextstate.md +++ /dev/null @@ -1,34 +0,0 @@ -# ErrorNextState - -Canonical error container that provides a structured way to represent errors -with rich metadata including error codes, human-readable messages, context, -and chaining capabilities for error propagation. - -This struct is designed to be both machine-readable and user-friendly, -supporting serialization for API responses and detailed error reporting -in distributed systems. - -## Example Usage - -```typescript -import { ErrorNextState } from "@alienplatform/platform-api/models"; - -let value: ErrorNextState = { - code: "", - internal: false, - message: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `code` | *string* | :heavy_check_mark: | A unique identifier for the type of error.

This should be a short, machine-readable string that can be used
by clients to programmatically handle different error types.
Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" | -| `context` | *any* | :heavy_minus_sign: | Additional diagnostic information about the error context.

This optional field can contain structured data providing more details
about the error, such as validation errors, request parameters that
caused the issue, or other relevant context information. | -| `hint` | *string* | :heavy_minus_sign: | Optional human-facing remediation hint. | -| `httpStatusCode` | *number* | :heavy_minus_sign: | HTTP status code for this error.

Used when converting the error to an HTTP response. If None, falls back to
the error type's default status code or 500. | -| `internal` | *boolean* | :heavy_check_mark: | Indicates if this is an internal error that should not be exposed to users.

When `true`, this error contains sensitive information or implementation
details that should not be shown to end-users. Such errors should be
logged for debugging but replaced with generic error messages in responses. | -| `message` | *string* | :heavy_check_mark: | Human-readable error message.

This message should be clear and actionable for developers or end-users,
providing context about what went wrong and potentially how to fix it. | -| `retryable` | *boolean* | :heavy_minus_sign: | Indicates whether the operation that caused the error should be retried.

When `true`, the error is transient and the operation might succeed
if attempted again. When `false`, retrying the same operation is
unlikely to succeed without changes. | -| `source` | *any* | :heavy_minus_sign: | The underlying error that caused this error, creating an error chain.

This allows for proper error propagation and debugging by maintaining
the full context of how an error occurred through multiple layers
of an application. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/event.md b/client-sdks/platform/typescript/docs/models/event.md index 4088af26d..89ae37c6c 100644 --- a/client-sdks/platform/typescript/docs/models/event.md +++ b/client-sdks/platform/typescript/docs/models/event.md @@ -31,7 +31,7 @@ let value: Event = { | `releaseId` | *string* | :heavy_minus_sign: | Unique identifier for the release. | rel_WbhQgksrawSKIpEN0NAssHX9 | | `debugSessionId` | *string* | :heavy_minus_sign: | Unique identifier for the debug session. | dbg_HOXmkmT9UPYlsnxqSNlEGoXL | | `data` | *models.EventDataUnion* | :heavy_check_mark: | N/A | | -| `state` | *models.State* | :heavy_check_mark: | Represents the state of an event | | +| `state` | *models.EventStateUnion* | :heavy_check_mark: | Represents the state of an event | | | `projectId` | *string* | :heavy_check_mark: | Unique identifier for the project. | prj_mcytp6z3j91f7tn5ryqsfwtr | | `createdAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | N/A | | | `workspaceId` | *string* | :heavy_check_mark: | Unique identifier for the workspace. | ws_It13CUaGEhLLAB87simX0 | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventactor1.md b/client-sdks/platform/typescript/docs/models/eventactor1.md new file mode 100644 index 000000000..4d21e224a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventactor1.md @@ -0,0 +1,22 @@ +# EventActor1 + +Authenticated principal that requested a deployment intent event. + +## Example Usage + +```typescript +import { EventActor1 } from "@alienplatform/platform-api/models"; + +let value: EventActor1 = { + id: "", + kind: "serviceAccount", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | +| `email` | *string* | :heavy_minus_sign: | User email when the principal is a user. | +| `id` | *string* | :heavy_check_mark: | Stable user or service-account identifier. | +| `kind` | [models.EventKind1](../models/eventkind1.md) | :heavy_check_mark: | Type of authenticated principal that requested an event. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventactor2.md b/client-sdks/platform/typescript/docs/models/eventactor2.md new file mode 100644 index 000000000..356fb43e3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventactor2.md @@ -0,0 +1,22 @@ +# EventActor2 + +Authenticated principal that requested a deployment intent event. + +## Example Usage + +```typescript +import { EventActor2 } from "@alienplatform/platform-api/models"; + +let value: EventActor2 = { + id: "", + kind: "user", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | +| `email` | *string* | :heavy_minus_sign: | User email when the principal is a user. | +| `id` | *string* | :heavy_check_mark: | Stable user or service-account identifier. | +| `kind` | [models.EventKind2](../models/eventkind2.md) | :heavy_check_mark: | Type of authenticated principal that requested an event. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventactor3.md b/client-sdks/platform/typescript/docs/models/eventactor3.md new file mode 100644 index 000000000..21b4b181c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventactor3.md @@ -0,0 +1,22 @@ +# EventActor3 + +Authenticated principal that requested a deployment intent event. + +## Example Usage + +```typescript +import { EventActor3 } from "@alienplatform/platform-api/models"; + +let value: EventActor3 = { + id: "", + kind: "serviceAccount", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | +| `email` | *string* | :heavy_minus_sign: | User email when the principal is a user. | +| `id` | *string* | :heavy_check_mark: | Stable user or service-account identifier. | +| `kind` | [models.EventKind3](../models/eventkind3.md) | :heavy_check_mark: | Type of authenticated principal that requested an event. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventactor4.md b/client-sdks/platform/typescript/docs/models/eventactor4.md new file mode 100644 index 000000000..850322f4f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventactor4.md @@ -0,0 +1,22 @@ +# EventActor4 + +Authenticated principal that requested a deployment intent event. + +## Example Usage + +```typescript +import { EventActor4 } from "@alienplatform/platform-api/models"; + +let value: EventActor4 = { + id: "", + kind: "serviceAccount", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | -------------------------------------------------------- | +| `email` | *string* | :heavy_minus_sign: | User email when the principal is a user. | +| `id` | *string* | :heavy_check_mark: | Stable user or service-account identifier. | +| `kind` | [models.EventKind4](../models/eventkind4.md) | :heavy_check_mark: | Type of authenticated principal that requested an event. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventactorunion1.md b/client-sdks/platform/typescript/docs/models/eventactorunion1.md new file mode 100644 index 000000000..b1e7b07c6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventactorunion1.md @@ -0,0 +1,19 @@ +# EventActorUnion1 + + +## Supported Types + +### `models.EventActor1` + +```typescript +const value: models.EventActor1 = { + id: "", + kind: "serviceAccount", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/eventactorunion2.md b/client-sdks/platform/typescript/docs/models/eventactorunion2.md new file mode 100644 index 000000000..761ba427f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventactorunion2.md @@ -0,0 +1,19 @@ +# EventActorUnion2 + + +## Supported Types + +### `models.EventActor2` + +```typescript +const value: models.EventActor2 = { + id: "", + kind: "user", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/eventactorunion3.md b/client-sdks/platform/typescript/docs/models/eventactorunion3.md new file mode 100644 index 000000000..b3278af38 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventactorunion3.md @@ -0,0 +1,19 @@ +# EventActorUnion3 + + +## Supported Types + +### `models.EventActor3` + +```typescript +const value: models.EventActor3 = { + id: "", + kind: "serviceAccount", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/eventactorunion4.md b/client-sdks/platform/typescript/docs/models/eventactorunion4.md new file mode 100644 index 000000000..2487ad80b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventactorunion4.md @@ -0,0 +1,19 @@ +# EventActorUnion4 + + +## Supported Types + +### `models.EventActor4` + +```typescript +const value: models.EventActor4 = { + id: "", + kind: "serviceAccount", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/eventcontrollerplatformunion.md b/client-sdks/platform/typescript/docs/models/eventcontrollerplatformunion.md index 101322349..4aef2c505 100644 --- a/client-sdks/platform/typescript/docs/models/eventcontrollerplatformunion.md +++ b/client-sdks/platform/typescript/docs/models/eventcontrollerplatformunion.md @@ -14,4 +14,3 @@ const value: models.EventControllerPlatformEnum = "gcp"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/eventdataassumingrole.md b/client-sdks/platform/typescript/docs/models/eventdataassumingrole.md new file mode 100644 index 000000000..16a7aa1f4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdataassumingrole.md @@ -0,0 +1,19 @@ +# EventDataAssumingRole + +## Example Usage + +```typescript +import { EventDataAssumingRole } from "@alienplatform/platform-api/models"; + +let value: EventDataAssumingRole = { + roleArn: "", + type: "AssumingRole", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------- | ------------------------- | ------------------------- | ------------------------- | +| `roleArn` | *string* | :heavy_check_mark: | ARN of the role to assume | +| `type` | *"AssumingRole"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatabuildingimage.md b/client-sdks/platform/typescript/docs/models/eventdatabuildingimage.md new file mode 100644 index 000000000..03a4f104d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatabuildingimage.md @@ -0,0 +1,19 @@ +# EventDataBuildingImage + +## Example Usage + +```typescript +import { EventDataBuildingImage } from "@alienplatform/platform-api/models"; + +let value: EventDataBuildingImage = { + image: "https://loremflickr.com/1460/1419?lock=7755903317896576", + type: "BuildingImage", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | +| `image` | *string* | :heavy_check_mark: | Name of the image being built | +| `type` | *"BuildingImage"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatabuildingresource.md b/client-sdks/platform/typescript/docs/models/eventdatabuildingresource.md new file mode 100644 index 000000000..b0ee2c9b1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatabuildingresource.md @@ -0,0 +1,22 @@ +# EventDataBuildingResource + +## Example Usage + +```typescript +import { EventDataBuildingResource } from "@alienplatform/platform-api/models"; + +let value: EventDataBuildingResource = { + resourceName: "", + resourceType: "", + type: "BuildingResource", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `relatedResources` | *string*[] | :heavy_minus_sign: | All resource names sharing this build (for deduped container groups) | +| `resourceName` | *string* | :heavy_check_mark: | Name of the resource being built | +| `resourceType` | *string* | :heavy_check_mark: | Type of the resource: "worker", "container" | +| `type` | *"BuildingResource"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatabuildingstack.md b/client-sdks/platform/typescript/docs/models/eventdatabuildingstack.md new file mode 100644 index 000000000..8074deb65 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatabuildingstack.md @@ -0,0 +1,19 @@ +# EventDataBuildingStack + +## Example Usage + +```typescript +import { EventDataBuildingStack } from "@alienplatform/platform-api/models"; + +let value: EventDataBuildingStack = { + stack: "", + type: "BuildingStack", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | +| `stack` | *string* | :heavy_check_mark: | Name of the stack being built | +| `type` | *"BuildingStack"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatacleaningupenvironment.md b/client-sdks/platform/typescript/docs/models/eventdatacleaningupenvironment.md new file mode 100644 index 000000000..96b404774 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatacleaningupenvironment.md @@ -0,0 +1,21 @@ +# EventDataCleaningUpEnvironment + +## Example Usage + +```typescript +import { EventDataCleaningUpEnvironment } from "@alienplatform/platform-api/models"; + +let value: EventDataCleaningUpEnvironment = { + stackName: "", + strategyName: "", + type: "CleaningUpEnvironment", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | +| `stackName` | *string* | :heavy_check_mark: | Name of the stack being cleaned up | +| `strategyName` | *string* | :heavy_check_mark: | Name of the deployment strategy being used for cleanup | +| `type` | *"CleaningUpEnvironment"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatacleaningupstack.md b/client-sdks/platform/typescript/docs/models/eventdatacleaningupstack.md new file mode 100644 index 000000000..c4d8ed587 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatacleaningupstack.md @@ -0,0 +1,21 @@ +# EventDataCleaningUpStack + +## Example Usage + +```typescript +import { EventDataCleaningUpStack } from "@alienplatform/platform-api/models"; + +let value: EventDataCleaningUpStack = { + stackName: "", + strategyName: "", + type: "CleaningUpStack", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | +| `stackName` | *string* | :heavy_check_mark: | Name of the stack being cleaned up | +| `strategyName` | *string* | :heavy_check_mark: | Name of the deployment strategy being used for cleanup | +| `type` | *"CleaningUpStack"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatacompilingcode.md b/client-sdks/platform/typescript/docs/models/eventdatacompilingcode.md new file mode 100644 index 000000000..425357d66 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatacompilingcode.md @@ -0,0 +1,20 @@ +# EventDataCompilingCode + +## Example Usage + +```typescript +import { EventDataCompilingCode } from "@alienplatform/platform-api/models"; + +let value: EventDataCompilingCode = { + language: "", + type: "CompilingCode", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `language` | *string* | :heavy_check_mark: | Language being compiled (rust, typescript, etc.) | +| `progress` | *string* | :heavy_minus_sign: | Current progress/status line from the build output | +| `type` | *"CompilingCode"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatacreatingrelease.md b/client-sdks/platform/typescript/docs/models/eventdatacreatingrelease.md new file mode 100644 index 000000000..40e18444d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatacreatingrelease.md @@ -0,0 +1,19 @@ +# EventDataCreatingRelease + +## Example Usage + +```typescript +import { EventDataCreatingRelease } from "@alienplatform/platform-api/models"; + +let value: EventDataCreatingRelease = { + project: "", + type: "CreatingRelease", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------- | ------------------- | ------------------- | ------------------- | +| `project` | *string* | :heavy_check_mark: | Project name | +| `type` | *"CreatingRelease"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatadebuggingagent.md b/client-sdks/platform/typescript/docs/models/eventdatadebuggingagent.md new file mode 100644 index 000000000..78f5a64de --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatadebuggingagent.md @@ -0,0 +1,21 @@ +# EventDataDebuggingAgent + +## Example Usage + +```typescript +import { EventDataDebuggingAgent } from "@alienplatform/platform-api/models"; + +let value: EventDataDebuggingAgent = { + agentId: "", + debugSessionId: "", + type: "DebuggingAgent", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | +| `agentId` | *string* | :heavy_check_mark: | ID of the agent being debugged | +| `debugSessionId` | *string* | :heavy_check_mark: | ID of the debug session | +| `type` | *"DebuggingAgent"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatadeletingagent.md b/client-sdks/platform/typescript/docs/models/eventdatadeletingagent.md new file mode 100644 index 000000000..d569607ee --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatadeletingagent.md @@ -0,0 +1,21 @@ +# EventDataDeletingAgent + +## Example Usage + +```typescript +import { EventDataDeletingAgent } from "@alienplatform/platform-api/models"; + +let value: EventDataDeletingAgent = { + agentId: "", + releaseId: "", + type: "DeletingAgent", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | +| `agentId` | *string* | :heavy_check_mark: | ID of the agent being deleted | +| `releaseId` | *string* | :heavy_check_mark: | ID of the release that was running on the agent | +| `type` | *"DeletingAgent"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatadeletingcloudformationstack.md b/client-sdks/platform/typescript/docs/models/eventdatadeletingcloudformationstack.md new file mode 100644 index 000000000..084a1c660 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatadeletingcloudformationstack.md @@ -0,0 +1,21 @@ +# EventDataDeletingCloudFormationStack + +## Example Usage + +```typescript +import { EventDataDeletingCloudFormationStack } from "@alienplatform/platform-api/models"; + +let value: EventDataDeletingCloudFormationStack = { + cfnStackName: "", + currentStatus: "", + type: "DeletingCloudFormationStack", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | +| `cfnStackName` | *string* | :heavy_check_mark: | Name of the CloudFormation stack | +| `currentStatus` | *string* | :heavy_check_mark: | Current stack status | +| `type` | *"DeletingCloudFormationStack"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatadeployingcloudformationstack.md b/client-sdks/platform/typescript/docs/models/eventdatadeployingcloudformationstack.md new file mode 100644 index 000000000..79300896e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatadeployingcloudformationstack.md @@ -0,0 +1,21 @@ +# EventDataDeployingCloudFormationStack + +## Example Usage + +```typescript +import { EventDataDeployingCloudFormationStack } from "@alienplatform/platform-api/models"; + +let value: EventDataDeployingCloudFormationStack = { + cfnStackName: "", + currentStatus: "", + type: "DeployingCloudFormationStack", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | +| `cfnStackName` | *string* | :heavy_check_mark: | Name of the CloudFormation stack | +| `currentStatus` | *string* | :heavy_check_mark: | Current stack status | +| `type` | *"DeployingCloudFormationStack"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatadeployingstack.md b/client-sdks/platform/typescript/docs/models/eventdatadeployingstack.md new file mode 100644 index 000000000..d099adce1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatadeployingstack.md @@ -0,0 +1,19 @@ +# EventDataDeployingStack + +## Example Usage + +```typescript +import { EventDataDeployingStack } from "@alienplatform/platform-api/models"; + +let value: EventDataDeployingStack = { + stackName: "", + type: "DeployingStack", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | +| `stackName` | *string* | :heavy_check_mark: | Name of the stack being deployed | +| `type` | *"DeployingStack"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatadeploymentcreated.md b/client-sdks/platform/typescript/docs/models/eventdatadeploymentcreated.md new file mode 100644 index 000000000..9ee8f080c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatadeploymentcreated.md @@ -0,0 +1,22 @@ +# EventDataDeploymentCreated + +## Example Usage + +```typescript +import { EventDataDeploymentCreated } from "@alienplatform/platform-api/models"; + +let value: EventDataDeploymentCreated = { + deploymentGroupId: "", + deploymentId: "", + type: "DeploymentCreated", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------- | +| `deploymentGroupId` | *string* | :heavy_check_mark: | ID of the deployment group this slot belongs to | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment that was created | +| `releaseId` | *string* | :heavy_minus_sign: | Initial release the slot was created with, if any | +| `type` | *"DeploymentCreated"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatadeploymentdegraded.md b/client-sdks/platform/typescript/docs/models/eventdatadeploymentdegraded.md new file mode 100644 index 000000000..c38b5efe4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatadeploymentdegraded.md @@ -0,0 +1,25 @@ +# EventDataDeploymentDegraded + +## Example Usage + +```typescript +import { EventDataDeploymentDegraded } from "@alienplatform/platform-api/models"; + +let value: EventDataDeploymentDegraded = { + deploymentId: "", + error: { + code: "", + internal: true, + message: "", + }, + type: "DeploymentDegraded", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | +| `error` | [models.EventDataError2](../models/eventdataerror2.md) | :heavy_check_mark: | Canonical error container that provides a structured way to represent errors
with rich metadata including error codes, human-readable messages, context,
and chaining capabilities for error propagation.

This struct is designed to be both machine-readable and user-friendly,
supporting serialization for API responses and detailed error reporting
in distributed systems. | +| `type` | *"DeploymentDegraded"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatadeploymentdeleted.md b/client-sdks/platform/typescript/docs/models/eventdatadeploymentdeleted.md new file mode 100644 index 000000000..7951b513c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatadeploymentdeleted.md @@ -0,0 +1,19 @@ +# EventDataDeploymentDeleted + +## Example Usage + +```typescript +import { EventDataDeploymentDeleted } from "@alienplatform/platform-api/models"; + +let value: EventDataDeploymentDeleted = { + deploymentId: "", + type: "DeploymentDeleted", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------- | ------------------------------------- | ------------------------------------- | ------------------------------------- | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment that was deleted | +| `type` | *"DeploymentDeleted"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatadeploymentdeletionrequested.md b/client-sdks/platform/typescript/docs/models/eventdatadeploymentdeletionrequested.md new file mode 100644 index 000000000..6011b67f8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatadeploymentdeletionrequested.md @@ -0,0 +1,19 @@ +# EventDataDeploymentDeletionRequested + +## Example Usage + +```typescript +import { EventDataDeploymentDeletionRequested } from "@alienplatform/platform-api/models"; + +let value: EventDataDeploymentDeletionRequested = { + deploymentId: "", + type: "DeploymentDeletionRequested", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | +| `type` | *"DeploymentDeletionRequested"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatadeploymentenvironmentupdated.md b/client-sdks/platform/typescript/docs/models/eventdatadeploymentenvironmentupdated.md new file mode 100644 index 000000000..31ea9b027 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatadeploymentenvironmentupdated.md @@ -0,0 +1,26 @@ +# EventDataDeploymentEnvironmentUpdated + +## Example Usage + +```typescript +import { EventDataDeploymentEnvironmentUpdated } from "@alienplatform/platform-api/models"; + +let value: EventDataDeploymentEnvironmentUpdated = { + changedKeys: [ + "", + "", + "", + ], + deploymentId: "", + type: "DeploymentEnvironmentUpdated", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `actor` | *models.EventActorUnion4* | :heavy_minus_sign: | N/A | +| `changedKeys` | *string*[] | :heavy_check_mark: | Names of the environment variables that changed (added, removed, or modified) | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | +| `type` | *"DeploymentEnvironmentUpdated"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatadeploymentfailed.md b/client-sdks/platform/typescript/docs/models/eventdatadeploymentfailed.md new file mode 100644 index 000000000..223c0a33f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatadeploymentfailed.md @@ -0,0 +1,28 @@ +# EventDataDeploymentFailed + +## Example Usage + +```typescript +import { EventDataDeploymentFailed } from "@alienplatform/platform-api/models"; + +let value: EventDataDeploymentFailed = { + deploymentId: "", + error: { + code: "", + internal: true, + message: "", + }, + phase: "deleting", + type: "DeploymentFailed", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `attemptedReleaseId` | *string* | :heavy_minus_sign: | ID of the release the platform was trying to deploy, if known | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | +| `error` | [models.EventDataError1](../models/eventdataerror1.md) | :heavy_check_mark: | Canonical error container that provides a structured way to represent errors
with rich metadata including error codes, human-readable messages, context,
and chaining capabilities for error propagation.

This struct is designed to be both machine-readable and user-friendly,
supporting serialization for API responses and detailed error reporting
in distributed systems. | +| `phase` | [models.EventPhase](../models/eventphase.md) | :heavy_check_mark: | Phase of a deployment at which a failure occurred.

Derived from the source deployment status: `preflights-failed` →
`Preflights`, `provisioning-failed` → `Provisioning`, `update-failed` →
`Updating`, `delete-failed` → `Deleting`.
`refresh-failed` is modelled separately via `DeploymentDegraded`. | +| `type` | *"DeploymentFailed"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatadeploymentrecovered.md b/client-sdks/platform/typescript/docs/models/eventdatadeploymentrecovered.md new file mode 100644 index 000000000..8c201ca96 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatadeploymentrecovered.md @@ -0,0 +1,21 @@ +# EventDataDeploymentRecovered + +## Example Usage + +```typescript +import { EventDataDeploymentRecovered } from "@alienplatform/platform-api/models"; + +let value: EventDataDeploymentRecovered = { + deploymentId: "", + releaseId: "", + type: "DeploymentRecovered", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | +| `releaseId` | *string* | :heavy_check_mark: | ID of the release that is now live | +| `type` | *"DeploymentRecovered"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatadeploymentredeployrequested.md b/client-sdks/platform/typescript/docs/models/eventdatadeploymentredeployrequested.md new file mode 100644 index 000000000..a1dcb6c71 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatadeploymentredeployrequested.md @@ -0,0 +1,21 @@ +# EventDataDeploymentRedeployRequested + +## Example Usage + +```typescript +import { EventDataDeploymentRedeployRequested } from "@alienplatform/platform-api/models"; + +let value: EventDataDeploymentRedeployRequested = { + deploymentId: "", + releaseId: "", + type: "DeploymentRedeployRequested", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | +| `releaseId` | *string* | :heavy_check_mark: | ID of the release being redeployed | +| `type` | *"DeploymentRedeployRequested"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatadeploymentreleasechannelchanged.md b/client-sdks/platform/typescript/docs/models/eventdatadeploymentreleasechannelchanged.md new file mode 100644 index 000000000..9074b115b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatadeploymentreleasechannelchanged.md @@ -0,0 +1,24 @@ +# EventDataDeploymentReleaseChannelChanged + +## Example Usage + +```typescript +import { EventDataDeploymentReleaseChannelChanged } from "@alienplatform/platform-api/models"; + +let value: EventDataDeploymentReleaseChannelChanged = { + channel: "", + deploymentId: "", + previousChannel: "", + type: "DeploymentReleaseChannelChanged", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `actor` | *models.EventActorUnion2* | :heavy_minus_sign: | N/A | +| `channel` | *string* | :heavy_check_mark: | Newly followed channel | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | +| `previousChannel` | *string* | :heavy_check_mark: | Previously followed channel | +| `type` | *"DeploymentReleaseChannelChanged"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatadeploymentreleased.md b/client-sdks/platform/typescript/docs/models/eventdatadeploymentreleased.md new file mode 100644 index 000000000..20ad19364 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatadeploymentreleased.md @@ -0,0 +1,22 @@ +# EventDataDeploymentReleased + +## Example Usage + +```typescript +import { EventDataDeploymentReleased } from "@alienplatform/platform-api/models"; + +let value: EventDataDeploymentReleased = { + deploymentId: "", + releaseId: "", + type: "DeploymentReleased", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | +| `previousReleaseId` | *string* | :heavy_minus_sign: | ID of the release that was previously live, if any | +| `releaseId` | *string* | :heavy_check_mark: | ID of the release that is now live | +| `type` | *"DeploymentReleased"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatadeploymentreleasepinned.md b/client-sdks/platform/typescript/docs/models/eventdatadeploymentreleasepinned.md new file mode 100644 index 000000000..c0c2a8344 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatadeploymentreleasepinned.md @@ -0,0 +1,22 @@ +# EventDataDeploymentReleasePinned + +## Example Usage + +```typescript +import { EventDataDeploymentReleasePinned } from "@alienplatform/platform-api/models"; + +let value: EventDataDeploymentReleasePinned = { + deploymentId: "", + pinnedReleaseId: "", + type: "DeploymentReleasePinned", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | +| `pinnedReleaseId` | *string* | :heavy_check_mark: | ID of the release that is now pinned | +| `previousPinnedReleaseId` | *string* | :heavy_minus_sign: | ID of the previously pinned release, if any | +| `type` | *"DeploymentReleasePinned"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatadeploymentreleaseunpinned.md b/client-sdks/platform/typescript/docs/models/eventdatadeploymentreleaseunpinned.md new file mode 100644 index 000000000..25e6eaaad --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatadeploymentreleaseunpinned.md @@ -0,0 +1,21 @@ +# EventDataDeploymentReleaseUnpinned + +## Example Usage + +```typescript +import { EventDataDeploymentReleaseUnpinned } from "@alienplatform/platform-api/models"; + +let value: EventDataDeploymentReleaseUnpinned = { + deploymentId: "", + previousPinnedReleaseId: "", + type: "DeploymentReleaseUnpinned", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | +| `previousPinnedReleaseId` | *string* | :heavy_check_mark: | ID of the release that was previously pinned | +| `type` | *"DeploymentReleaseUnpinned"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatadeploymentretryrequested.md b/client-sdks/platform/typescript/docs/models/eventdatadeploymentretryrequested.md new file mode 100644 index 000000000..0eec2d158 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatadeploymentretryrequested.md @@ -0,0 +1,22 @@ +# EventDataDeploymentRetryRequested + +## Example Usage + +```typescript +import { EventDataDeploymentRetryRequested } from "@alienplatform/platform-api/models"; + +let value: EventDataDeploymentRetryRequested = { + deploymentId: "", + type: "DeploymentRetryRequested", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | +| `actor` | *models.EventActorUnion3* | :heavy_minus_sign: | N/A | +| `attemptedReleaseId` | *string* | :heavy_minus_sign: | ID of the release that the failed attempt was targeting, if known | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | +| `previousError` | *models.EventPreviousErrorUnion* | :heavy_minus_sign: | N/A | +| `type` | *"DeploymentRetryRequested"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatadownloadingalienruntime.md b/client-sdks/platform/typescript/docs/models/eventdatadownloadingalienruntime.md new file mode 100644 index 000000000..46987095c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatadownloadingalienruntime.md @@ -0,0 +1,21 @@ +# EventDataDownloadingAlienRuntime + +## Example Usage + +```typescript +import { EventDataDownloadingAlienRuntime } from "@alienplatform/platform-api/models"; + +let value: EventDataDownloadingAlienRuntime = { + targetTriple: "", + type: "DownloadingAlienRuntime", + url: "https://unlawful-skyline.com", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | +| `targetTriple` | *string* | :heavy_check_mark: | Target triple for the runtime | +| `type` | *"DownloadingAlienRuntime"* | :heavy_check_mark: | N/A | +| `url` | *string* | :heavy_check_mark: | URL being downloaded from | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdataemptyingbuckets.md b/client-sdks/platform/typescript/docs/models/eventdataemptyingbuckets.md new file mode 100644 index 000000000..962bdfebc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdataemptyingbuckets.md @@ -0,0 +1,19 @@ +# EventDataEmptyingBuckets + +## Example Usage + +```typescript +import { EventDataEmptyingBuckets } from "@alienplatform/platform-api/models"; + +let value: EventDataEmptyingBuckets = { + bucketNames: [], + type: "EmptyingBuckets", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------- | ------------------------------------- | ------------------------------------- | ------------------------------------- | +| `bucketNames` | *string*[] | :heavy_check_mark: | Names of the S3 buckets being emptied | +| `type` | *"EmptyingBuckets"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdataensuringdockerrepository.md b/client-sdks/platform/typescript/docs/models/eventdataensuringdockerrepository.md new file mode 100644 index 000000000..275727f8c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdataensuringdockerrepository.md @@ -0,0 +1,19 @@ +# EventDataEnsuringDockerRepository + +## Example Usage + +```typescript +import { EventDataEnsuringDockerRepository } from "@alienplatform/platform-api/models"; + +let value: EventDataEnsuringDockerRepository = { + repositoryName: "", + type: "EnsuringDockerRepository", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | +| `repositoryName` | *string* | :heavy_check_mark: | Name of the docker repository | +| `type` | *"EnsuringDockerRepository"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdataerror1.md b/client-sdks/platform/typescript/docs/models/eventdataerror1.md new file mode 100644 index 000000000..6bd953eb3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdataerror1.md @@ -0,0 +1,34 @@ +# EventDataError1 + +Canonical error container that provides a structured way to represent errors +with rich metadata including error codes, human-readable messages, context, +and chaining capabilities for error propagation. + +This struct is designed to be both machine-readable and user-friendly, +supporting serialization for API responses and detailed error reporting +in distributed systems. + +## Example Usage + +```typescript +import { EventDataError1 } from "@alienplatform/platform-api/models"; + +let value: EventDataError1 = { + code: "", + internal: true, + message: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `code` | *string* | :heavy_check_mark: | A unique identifier for the type of error.

This should be a short, machine-readable string that can be used
by clients to programmatically handle different error types.
Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" | +| `context` | *any* | :heavy_minus_sign: | Additional diagnostic information about the error context.

This optional field can contain structured data providing more details
about the error, such as validation errors, request parameters that
caused the issue, or other relevant context information. | +| `hint` | *string* | :heavy_minus_sign: | Optional human-facing remediation hint. | +| `httpStatusCode` | *number* | :heavy_minus_sign: | HTTP status code for this error.

Used when converting the error to an HTTP response. If None, falls back to
the error type's default status code or 500. | +| `internal` | *boolean* | :heavy_check_mark: | Indicates if this is an internal error that should not be exposed to users.

When `true`, this error contains sensitive information or implementation
details that should not be shown to end-users. Such errors should be
logged for debugging but replaced with generic error messages in responses. | +| `message` | *string* | :heavy_check_mark: | Human-readable error message.

This message should be clear and actionable for developers or end-users,
providing context about what went wrong and potentially how to fix it. | +| `retryable` | *boolean* | :heavy_minus_sign: | Indicates whether the operation that caused the error should be retried.

When `true`, the error is transient and the operation might succeed
if attempted again. When `false`, retrying the same operation is
unlikely to succeed without changes. | +| `source` | *any* | :heavy_minus_sign: | The underlying error that caused this error, creating an error chain.

This allows for proper error propagation and debugging by maintaining
the full context of how an error occurred through multiple layers
of an application. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdataerror2.md b/client-sdks/platform/typescript/docs/models/eventdataerror2.md new file mode 100644 index 000000000..f4a9b28f3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdataerror2.md @@ -0,0 +1,34 @@ +# EventDataError2 + +Canonical error container that provides a structured way to represent errors +with rich metadata including error codes, human-readable messages, context, +and chaining capabilities for error propagation. + +This struct is designed to be both machine-readable and user-friendly, +supporting serialization for API responses and detailed error reporting +in distributed systems. + +## Example Usage + +```typescript +import { EventDataError2 } from "@alienplatform/platform-api/models"; + +let value: EventDataError2 = { + code: "", + internal: false, + message: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `code` | *string* | :heavy_check_mark: | A unique identifier for the type of error.

This should be a short, machine-readable string that can be used
by clients to programmatically handle different error types.
Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" | +| `context` | *any* | :heavy_minus_sign: | Additional diagnostic information about the error context.

This optional field can contain structured data providing more details
about the error, such as validation errors, request parameters that
caused the issue, or other relevant context information. | +| `hint` | *string* | :heavy_minus_sign: | Optional human-facing remediation hint. | +| `httpStatusCode` | *number* | :heavy_minus_sign: | HTTP status code for this error.

Used when converting the error to an HTTP response. If None, falls back to
the error type's default status code or 500. | +| `internal` | *boolean* | :heavy_check_mark: | Indicates if this is an internal error that should not be exposed to users.

When `true`, this error contains sensitive information or implementation
details that should not be shown to end-users. Such errors should be
logged for debugging but replaced with generic error messages in responses. | +| `message` | *string* | :heavy_check_mark: | Human-readable error message.

This message should be clear and actionable for developers or end-users,
providing context about what went wrong and potentially how to fix it. | +| `retryable` | *boolean* | :heavy_minus_sign: | Indicates whether the operation that caused the error should be retried.

When `true`, the error is transient and the operation might succeed
if attempted again. When `false`, retrying the same operation is
unlikely to succeed without changes. | +| `source` | *any* | :heavy_minus_sign: | The underlying error that caused this error, creating an error chain.

This allows for proper error propagation and debugging by maintaining
the full context of how an error occurred through multiple layers
of an application. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatafinished.md b/client-sdks/platform/typescript/docs/models/eventdatafinished.md new file mode 100644 index 000000000..d174c5257 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatafinished.md @@ -0,0 +1,17 @@ +# EventDataFinished + +## Example Usage + +```typescript +import { EventDataFinished } from "@alienplatform/platform-api/models"; + +let value: EventDataFinished = { + type: "Finished", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `type` | *"Finished"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatageneratingcloudformationtemplate.md b/client-sdks/platform/typescript/docs/models/eventdatageneratingcloudformationtemplate.md new file mode 100644 index 000000000..cd6fd644d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatageneratingcloudformationtemplate.md @@ -0,0 +1,17 @@ +# EventDataGeneratingCloudFormationTemplate + +## Example Usage + +```typescript +import { EventDataGeneratingCloudFormationTemplate } from "@alienplatform/platform-api/models"; + +let value: EventDataGeneratingCloudFormationTemplate = { + type: "GeneratingCloudFormationTemplate", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | +| `type` | *"GeneratingCloudFormationTemplate"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatageneratingtemplate.md b/client-sdks/platform/typescript/docs/models/eventdatageneratingtemplate.md new file mode 100644 index 000000000..e194242c1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatageneratingtemplate.md @@ -0,0 +1,19 @@ +# EventDataGeneratingTemplate + +## Example Usage + +```typescript +import { EventDataGeneratingTemplate } from "@alienplatform/platform-api/models"; + +let value: EventDataGeneratingTemplate = { + platform: "", + type: "GeneratingTemplate", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `platform` | *string* | :heavy_check_mark: | Platform for which the template is being generated | +| `type` | *"GeneratingTemplate"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdataimportingstackstatefromcloudformation.md b/client-sdks/platform/typescript/docs/models/eventdataimportingstackstatefromcloudformation.md new file mode 100644 index 000000000..2b1e3b4c5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdataimportingstackstatefromcloudformation.md @@ -0,0 +1,19 @@ +# EventDataImportingStackStateFromCloudFormation + +## Example Usage + +```typescript +import { EventDataImportingStackStateFromCloudFormation } from "@alienplatform/platform-api/models"; + +let value: EventDataImportingStackStateFromCloudFormation = { + cfnStackName: "", + type: "ImportingStackStateFromCloudFormation", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | +| `cfnStackName` | *string* | :heavy_check_mark: | Name of the CloudFormation stack | +| `type` | *"ImportingStackStateFromCloudFormation"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdataloadingconfiguration.md b/client-sdks/platform/typescript/docs/models/eventdataloadingconfiguration.md new file mode 100644 index 000000000..289d88c65 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdataloadingconfiguration.md @@ -0,0 +1,17 @@ +# EventDataLoadingConfiguration + +## Example Usage + +```typescript +import { EventDataLoadingConfiguration } from "@alienplatform/platform-api/models"; + +let value: EventDataLoadingConfiguration = { + type: "LoadingConfiguration", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------ | ------------------------ | ------------------------ | ------------------------ | +| `type` | *"LoadingConfiguration"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatapreparingenvironment.md b/client-sdks/platform/typescript/docs/models/eventdatapreparingenvironment.md new file mode 100644 index 000000000..b7b521c61 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatapreparingenvironment.md @@ -0,0 +1,19 @@ +# EventDataPreparingEnvironment + +## Example Usage + +```typescript +import { EventDataPreparingEnvironment } from "@alienplatform/platform-api/models"; + +let value: EventDataPreparingEnvironment = { + strategyName: "", + type: "PreparingEnvironment", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | +| `strategyName` | *string* | :heavy_check_mark: | Name of the deployment strategy being used | +| `type` | *"PreparingEnvironment"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdataprovisioningagent.md b/client-sdks/platform/typescript/docs/models/eventdataprovisioningagent.md new file mode 100644 index 000000000..6cd71da18 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdataprovisioningagent.md @@ -0,0 +1,21 @@ +# EventDataProvisioningAgent + +## Example Usage + +```typescript +import { EventDataProvisioningAgent } from "@alienplatform/platform-api/models"; + +let value: EventDataProvisioningAgent = { + agentId: "", + releaseId: "", + type: "ProvisioningAgent", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | +| `agentId` | *string* | :heavy_check_mark: | ID of the agent being provisioned | +| `releaseId` | *string* | :heavy_check_mark: | ID of the release being deployed to the agent | +| `type` | *"ProvisioningAgent"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatapushingimage.md b/client-sdks/platform/typescript/docs/models/eventdatapushingimage.md new file mode 100644 index 000000000..2e99f97d3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatapushingimage.md @@ -0,0 +1,20 @@ +# EventDataPushingImage + +## Example Usage + +```typescript +import { EventDataPushingImage } from "@alienplatform/platform-api/models"; + +let value: EventDataPushingImage = { + image: "https://picsum.photos/seed/3ETRvL33XQ/3838/1575", + type: "PushingImage", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | +| `image` | *string* | :heavy_check_mark: | Name of the image being pushed | +| `progress` | *models.EventProgressUnion* | :heavy_minus_sign: | N/A | +| `type` | *"PushingImage"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatapushingresource.md b/client-sdks/platform/typescript/docs/models/eventdatapushingresource.md new file mode 100644 index 000000000..f35abfaa1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatapushingresource.md @@ -0,0 +1,21 @@ +# EventDataPushingResource + +## Example Usage + +```typescript +import { EventDataPushingResource } from "@alienplatform/platform-api/models"; + +let value: EventDataPushingResource = { + resourceName: "", + resourceType: "", + type: "PushingResource", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | +| `resourceName` | *string* | :heavy_check_mark: | Name of the resource being pushed | +| `resourceType` | *string* | :heavy_check_mark: | Type of the resource: "worker", "container" | +| `type` | *"PushingResource"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatapushingstack.md b/client-sdks/platform/typescript/docs/models/eventdatapushingstack.md new file mode 100644 index 000000000..fbdb1e124 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatapushingstack.md @@ -0,0 +1,22 @@ +# EventDataPushingStack + +## Example Usage + +```typescript +import { EventDataPushingStack } from "@alienplatform/platform-api/models"; + +let value: EventDataPushingStack = { + platform: "", + stack: "", + type: "PushingStack", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | +| `destination` | *string* | :heavy_minus_sign: | Human-readable destination for pushed images | +| `platform` | *string* | :heavy_check_mark: | Target platform | +| `stack` | *string* | :heavy_check_mark: | Name of the stack being pushed | +| `type` | *"PushingStack"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatareleasechannelupdated.md b/client-sdks/platform/typescript/docs/models/eventdatareleasechannelupdated.md new file mode 100644 index 000000000..c2e42cb29 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatareleasechannelupdated.md @@ -0,0 +1,23 @@ +# EventDataReleaseChannelUpdated + +## Example Usage + +```typescript +import { EventDataReleaseChannelUpdated } from "@alienplatform/platform-api/models"; + +let value: EventDataReleaseChannelUpdated = { + channel: "", + releaseId: "", + type: "ReleaseChannelUpdated", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | +| `actor` | *models.EventActorUnion1* | :heavy_minus_sign: | N/A | +| `channel` | *string* | :heavy_check_mark: | Name of the channel that moved | +| `previousReleaseId` | *string* | :heavy_minus_sign: | ID of the release that was previously current, if any | +| `releaseId` | *string* | :heavy_check_mark: | ID of the release that is now current | +| `type` | *"ReleaseChannelUpdated"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatarunningpreflights.md b/client-sdks/platform/typescript/docs/models/eventdatarunningpreflights.md new file mode 100644 index 000000000..db703239c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatarunningpreflights.md @@ -0,0 +1,21 @@ +# EventDataRunningPreflights + +## Example Usage + +```typescript +import { EventDataRunningPreflights } from "@alienplatform/platform-api/models"; + +let value: EventDataRunningPreflights = { + platform: "", + stack: "", + type: "RunningPreflights", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `platform` | *string* | :heavy_check_mark: | Platform being targeted | +| `stack` | *string* | :heavy_check_mark: | Name of the stack being checked | +| `type` | *"RunningPreflights"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatarunningtestworker.md b/client-sdks/platform/typescript/docs/models/eventdatarunningtestworker.md new file mode 100644 index 000000000..61524d430 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatarunningtestworker.md @@ -0,0 +1,19 @@ +# EventDataRunningTestWorker + +## Example Usage + +```typescript +import { EventDataRunningTestWorker } from "@alienplatform/platform-api/models"; + +let value: EventDataRunningTestWorker = { + stackName: "", + type: "RunningTestWorker", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | +| `stackName` | *string* | :heavy_check_mark: | Name of the stack being tested | +| `type` | *"RunningTestWorker"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatasettingupplatformcontext.md b/client-sdks/platform/typescript/docs/models/eventdatasettingupplatformcontext.md new file mode 100644 index 000000000..0ddfb3275 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatasettingupplatformcontext.md @@ -0,0 +1,19 @@ +# EventDataSettingUpPlatformContext + +## Example Usage + +```typescript +import { EventDataSettingUpPlatformContext } from "@alienplatform/platform-api/models"; + +let value: EventDataSettingUpPlatformContext = { + platformName: "", + type: "SettingUpPlatformContext", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | +| `platformName` | *string* | :heavy_check_mark: | Name of the platform (e.g., "AWS", "GCP") | +| `type` | *"SettingUpPlatformContext"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdatastackstep.md b/client-sdks/platform/typescript/docs/models/eventdatastackstep.md new file mode 100644 index 000000000..079d643a1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdatastackstep.md @@ -0,0 +1,33 @@ +# EventDataStackStep + +## Example Usage + +```typescript +import { EventDataStackStep } from "@alienplatform/platform-api/models"; + +let value: EventDataStackStep = { + nextState: { + platform: "kubernetes", + resourcePrefix: "", + resources: { + "key": { + config: { + id: "", + type: "", + }, + status: "pending", + type: "", + }, + }, + }, + type: "StackStep", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| `nextState` | [models.EventNextState](../models/eventnextstate.md) | :heavy_check_mark: | Represents the collective state of all resources in a stack, including platform and pending actions. | +| `suggestedDelayMs` | *number* | :heavy_minus_sign: | An suggested duration to wait before executing the next step. | +| `type` | *"StackStep"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventdataunion.md b/client-sdks/platform/typescript/docs/models/eventdataunion.md index 8b1db163f..24fb81ba7 100644 --- a/client-sdks/platform/typescript/docs/models/eventdataunion.md +++ b/client-sdks/platform/typescript/docs/models/eventdataunion.md @@ -3,123 +3,123 @@ ## Supported Types -### `models.DataLoadingConfiguration` +### `models.EventDataLoadingConfiguration` ```typescript -const value: models.DataLoadingConfiguration = { +const value: models.EventDataLoadingConfiguration = { type: "LoadingConfiguration", }; ``` -### `models.DataFinished` +### `models.EventDataFinished` ```typescript -const value: models.DataFinished = { +const value: models.EventDataFinished = { type: "Finished", }; ``` -### `models.DataBuildingStack` +### `models.EventDataBuildingStack` ```typescript -const value: models.DataBuildingStack = { +const value: models.EventDataBuildingStack = { stack: "", type: "BuildingStack", }; ``` -### `models.DataRunningPreflights` +### `models.EventDataRunningPreflights` ```typescript -const value: models.DataRunningPreflights = { +const value: models.EventDataRunningPreflights = { platform: "", stack: "", type: "RunningPreflights", }; ``` -### `models.DataDownloadingAlienRuntime` +### `models.EventDataDownloadingAlienRuntime` ```typescript -const value: models.DataDownloadingAlienRuntime = { +const value: models.EventDataDownloadingAlienRuntime = { targetTriple: "", type: "DownloadingAlienRuntime", - url: "https://dim-jellyfish.com/", + url: "https://unlawful-skyline.com", }; ``` -### `models.DataBuildingResource` +### `models.EventDataBuildingResource` ```typescript -const value: models.DataBuildingResource = { +const value: models.EventDataBuildingResource = { resourceName: "", resourceType: "", type: "BuildingResource", }; ``` -### `models.DataBuildingImage` +### `models.EventDataBuildingImage` ```typescript -const value: models.DataBuildingImage = { - image: "https://loremflickr.com/965/1538?lock=536245262441792", +const value: models.EventDataBuildingImage = { + image: "https://loremflickr.com/1460/1419?lock=7755903317896576", type: "BuildingImage", }; ``` -### `models.DataPushingImage` +### `models.EventDataPushingImage` ```typescript -const value: models.DataPushingImage = { - image: "https://picsum.photos/seed/bgd6b4HoNE/948/3236", +const value: models.EventDataPushingImage = { + image: "https://picsum.photos/seed/3ETRvL33XQ/3838/1575", type: "PushingImage", }; ``` -### `models.DataPushingStack` +### `models.EventDataPushingStack` ```typescript -const value: models.DataPushingStack = { +const value: models.EventDataPushingStack = { platform: "", stack: "", type: "PushingStack", }; ``` -### `models.DataPushingResource` +### `models.EventDataPushingResource` ```typescript -const value: models.DataPushingResource = { +const value: models.EventDataPushingResource = { resourceName: "", resourceType: "", type: "PushingResource", }; ``` -### `models.DataCreatingRelease` +### `models.EventDataCreatingRelease` ```typescript -const value: models.DataCreatingRelease = { +const value: models.EventDataCreatingRelease = { project: "", type: "CreatingRelease", }; ``` -### `models.DataCompilingCode` +### `models.EventDataCompilingCode` ```typescript -const value: models.DataCompilingCode = { +const value: models.EventDataCompilingCode = { language: "", type: "CompilingCode", }; ``` -### `models.DataStackStep` +### `models.EventDataStackStep` ```typescript -const value: models.DataStackStep = { +const value: models.EventDataStackStep = { nextState: { - platform: "test", + platform: "kubernetes", resourcePrefix: "", resources: { "key": { @@ -127,7 +127,7 @@ const value: models.DataStackStep = { id: "", type: "", }, - status: "running", + status: "pending", type: "", }, }, @@ -136,300 +136,322 @@ const value: models.DataStackStep = { }; ``` -### `models.DataGeneratingCloudFormationTemplate` +### `models.EventDataGeneratingCloudFormationTemplate` ```typescript -const value: models.DataGeneratingCloudFormationTemplate = { +const value: models.EventDataGeneratingCloudFormationTemplate = { type: "GeneratingCloudFormationTemplate", }; ``` -### `models.DataGeneratingTemplate` +### `models.EventDataGeneratingTemplate` ```typescript -const value: models.DataGeneratingTemplate = { +const value: models.EventDataGeneratingTemplate = { platform: "", type: "GeneratingTemplate", }; ``` -### `models.DataProvisioningAgent` +### `models.EventDataProvisioningAgent` ```typescript -const value: models.DataProvisioningAgent = { +const value: models.EventDataProvisioningAgent = { agentId: "", releaseId: "", type: "ProvisioningAgent", }; ``` -### `models.DataUpdatingAgent` +### `models.EventDataUpdatingAgent` ```typescript -const value: models.DataUpdatingAgent = { +const value: models.EventDataUpdatingAgent = { agentId: "", releaseId: "", type: "UpdatingAgent", }; ``` -### `models.DataDeletingAgent` +### `models.EventDataDeletingAgent` ```typescript -const value: models.DataDeletingAgent = { +const value: models.EventDataDeletingAgent = { agentId: "", releaseId: "", type: "DeletingAgent", }; ``` -### `models.DataDebuggingAgent` +### `models.EventDataDebuggingAgent` ```typescript -const value: models.DataDebuggingAgent = { +const value: models.EventDataDebuggingAgent = { agentId: "", debugSessionId: "", type: "DebuggingAgent", }; ``` -### `models.DataPreparingEnvironment` +### `models.EventDataPreparingEnvironment` ```typescript -const value: models.DataPreparingEnvironment = { +const value: models.EventDataPreparingEnvironment = { strategyName: "", type: "PreparingEnvironment", }; ``` -### `models.DataDeployingStack` +### `models.EventDataDeployingStack` ```typescript -const value: models.DataDeployingStack = { +const value: models.EventDataDeployingStack = { stackName: "", type: "DeployingStack", }; ``` -### `models.DataRunningTestWorker` +### `models.EventDataRunningTestWorker` ```typescript -const value: models.DataRunningTestWorker = { +const value: models.EventDataRunningTestWorker = { stackName: "", type: "RunningTestWorker", }; ``` -### `models.DataCleaningUpStack` +### `models.EventDataCleaningUpStack` ```typescript -const value: models.DataCleaningUpStack = { +const value: models.EventDataCleaningUpStack = { stackName: "", strategyName: "", type: "CleaningUpStack", }; ``` -### `models.DataCleaningUpEnvironment` +### `models.EventDataCleaningUpEnvironment` ```typescript -const value: models.DataCleaningUpEnvironment = { +const value: models.EventDataCleaningUpEnvironment = { stackName: "", strategyName: "", type: "CleaningUpEnvironment", }; ``` -### `models.DataSettingUpPlatformContext` +### `models.EventDataSettingUpPlatformContext` ```typescript -const value: models.DataSettingUpPlatformContext = { +const value: models.EventDataSettingUpPlatformContext = { platformName: "", type: "SettingUpPlatformContext", }; ``` -### `models.DataEnsuringDockerRepository` +### `models.EventDataEnsuringDockerRepository` ```typescript -const value: models.DataEnsuringDockerRepository = { +const value: models.EventDataEnsuringDockerRepository = { repositoryName: "", type: "EnsuringDockerRepository", }; ``` -### `models.DataDeployingCloudFormationStack` +### `models.EventDataDeployingCloudFormationStack` ```typescript -const value: models.DataDeployingCloudFormationStack = { +const value: models.EventDataDeployingCloudFormationStack = { cfnStackName: "", currentStatus: "", type: "DeployingCloudFormationStack", }; ``` -### `models.DataAssumingRole` +### `models.EventDataAssumingRole` ```typescript -const value: models.DataAssumingRole = { +const value: models.EventDataAssumingRole = { roleArn: "", type: "AssumingRole", }; ``` -### `models.DataImportingStackStateFromCloudFormation` +### `models.EventDataImportingStackStateFromCloudFormation` ```typescript -const value: models.DataImportingStackStateFromCloudFormation = { +const value: models.EventDataImportingStackStateFromCloudFormation = { cfnStackName: "", type: "ImportingStackStateFromCloudFormation", }; ``` -### `models.DataDeletingCloudFormationStack` +### `models.EventDataDeletingCloudFormationStack` ```typescript -const value: models.DataDeletingCloudFormationStack = { +const value: models.EventDataDeletingCloudFormationStack = { cfnStackName: "", currentStatus: "", type: "DeletingCloudFormationStack", }; ``` -### `models.DataEmptyingBuckets` +### `models.EventDataEmptyingBuckets` ```typescript -const value: models.DataEmptyingBuckets = { - bucketNames: [ - "", - ], +const value: models.EventDataEmptyingBuckets = { + bucketNames: [], type: "EmptyingBuckets", }; ``` -### `models.DataDeploymentCreated` +### `models.EventDataDeploymentCreated` ```typescript -const value: models.DataDeploymentCreated = { +const value: models.EventDataDeploymentCreated = { deploymentGroupId: "", deploymentId: "", type: "DeploymentCreated", }; ``` -### `models.DataDeploymentReleased` +### `models.EventDataDeploymentReleased` ```typescript -const value: models.DataDeploymentReleased = { +const value: models.EventDataDeploymentReleased = { deploymentId: "", releaseId: "", type: "DeploymentReleased", }; ``` -### `models.DataDeploymentFailed` +### `models.EventDataDeploymentFailed` ```typescript -const value: models.DataDeploymentFailed = { +const value: models.EventDataDeploymentFailed = { deploymentId: "", error: { code: "", internal: true, message: "", }, - phase: "preflights", + phase: "deleting", type: "DeploymentFailed", }; ``` -### `models.DataDeploymentDegraded` +### `models.EventDataDeploymentDegraded` ```typescript -const value: models.DataDeploymentDegraded = { +const value: models.EventDataDeploymentDegraded = { deploymentId: "", error: { code: "", - internal: false, + internal: true, message: "", }, type: "DeploymentDegraded", }; ``` -### `models.DataDeploymentRecovered` +### `models.EventDataDeploymentRecovered` ```typescript -const value: models.DataDeploymentRecovered = { +const value: models.EventDataDeploymentRecovered = { deploymentId: "", releaseId: "", type: "DeploymentRecovered", }; ``` -### `models.DataDeploymentDeleted` +### `models.EventDataDeploymentDeleted` ```typescript -const value: models.DataDeploymentDeleted = { +const value: models.EventDataDeploymentDeleted = { deploymentId: "", type: "DeploymentDeleted", }; ``` -### `models.DataDeploymentRetryRequested` +### `models.EventDataReleaseChannelUpdated` + +```typescript +const value: models.EventDataReleaseChannelUpdated = { + channel: "", + releaseId: "", + type: "ReleaseChannelUpdated", +}; +``` + +### `models.EventDataDeploymentReleaseChannelChanged` ```typescript -const value: models.DataDeploymentRetryRequested = { +const value: models.EventDataDeploymentReleaseChannelChanged = { + channel: "", + deploymentId: "", + previousChannel: "", + type: "DeploymentReleaseChannelChanged", +}; +``` + +### `models.EventDataDeploymentRetryRequested` + +```typescript +const value: models.EventDataDeploymentRetryRequested = { deploymentId: "", type: "DeploymentRetryRequested", }; ``` -### `models.DataDeploymentRedeployRequested` +### `models.EventDataDeploymentRedeployRequested` ```typescript -const value: models.DataDeploymentRedeployRequested = { +const value: models.EventDataDeploymentRedeployRequested = { deploymentId: "", releaseId: "", type: "DeploymentRedeployRequested", }; ``` -### `models.DataDeploymentReleasePinned` +### `models.EventDataDeploymentReleasePinned` ```typescript -const value: models.DataDeploymentReleasePinned = { +const value: models.EventDataDeploymentReleasePinned = { deploymentId: "", pinnedReleaseId: "", type: "DeploymentReleasePinned", }; ``` -### `models.DataDeploymentReleaseUnpinned` +### `models.EventDataDeploymentReleaseUnpinned` ```typescript -const value: models.DataDeploymentReleaseUnpinned = { +const value: models.EventDataDeploymentReleaseUnpinned = { deploymentId: "", previousPinnedReleaseId: "", type: "DeploymentReleaseUnpinned", }; ``` -### `models.DataDeploymentEnvironmentUpdated` +### `models.EventDataDeploymentEnvironmentUpdated` ```typescript -const value: models.DataDeploymentEnvironmentUpdated = { - changedKeys: [], +const value: models.EventDataDeploymentEnvironmentUpdated = { + changedKeys: [ + "", + "", + "", + ], deploymentId: "", type: "DeploymentEnvironmentUpdated", }; ``` -### `models.DataDeploymentDeletionRequested` +### `models.EventDataDeploymentDeletionRequested` ```typescript -const value: models.DataDeploymentDeletionRequested = { +const value: models.EventDataDeploymentDeletionRequested = { deploymentId: "", type: "DeploymentDeletionRequested", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/eventdataupdatingagent.md b/client-sdks/platform/typescript/docs/models/eventdataupdatingagent.md new file mode 100644 index 000000000..bf216a78a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventdataupdatingagent.md @@ -0,0 +1,21 @@ +# EventDataUpdatingAgent + +## Example Usage + +```typescript +import { EventDataUpdatingAgent } from "@alienplatform/platform-api/models"; + +let value: EventDataUpdatingAgent = { + agentId: "", + releaseId: "", + type: "UpdatingAgent", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------- | +| `agentId` | *string* | :heavy_check_mark: | ID of the agent being updated | +| `releaseId` | *string* | :heavy_check_mark: | ID of the new release being deployed to the agent | +| `type` | *"UpdatingAgent"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventerrorfailed.md b/client-sdks/platform/typescript/docs/models/eventerrorfailed.md new file mode 100644 index 000000000..f76ad1c2e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventerrorfailed.md @@ -0,0 +1,34 @@ +# EventErrorFailed + +Canonical error container that provides a structured way to represent errors +with rich metadata including error codes, human-readable messages, context, +and chaining capabilities for error propagation. + +This struct is designed to be both machine-readable and user-friendly, +supporting serialization for API responses and detailed error reporting +in distributed systems. + +## Example Usage + +```typescript +import { EventErrorFailed } from "@alienplatform/platform-api/models"; + +let value: EventErrorFailed = { + code: "", + internal: false, + message: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `code` | *string* | :heavy_check_mark: | A unique identifier for the type of error.

This should be a short, machine-readable string that can be used
by clients to programmatically handle different error types.
Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" | +| `context` | *any* | :heavy_minus_sign: | Additional diagnostic information about the error context.

This optional field can contain structured data providing more details
about the error, such as validation errors, request parameters that
caused the issue, or other relevant context information. | +| `hint` | *string* | :heavy_minus_sign: | Optional human-facing remediation hint. | +| `httpStatusCode` | *number* | :heavy_minus_sign: | HTTP status code for this error.

Used when converting the error to an HTTP response. If None, falls back to
the error type's default status code or 500. | +| `internal` | *boolean* | :heavy_check_mark: | Indicates if this is an internal error that should not be exposed to users.

When `true`, this error contains sensitive information or implementation
details that should not be shown to end-users. Such errors should be
logged for debugging but replaced with generic error messages in responses. | +| `message` | *string* | :heavy_check_mark: | Human-readable error message.

This message should be clear and actionable for developers or end-users,
providing context about what went wrong and potentially how to fix it. | +| `retryable` | *boolean* | :heavy_minus_sign: | Indicates whether the operation that caused the error should be retried.

When `true`, the error is transient and the operation might succeed
if attempted again. When `false`, retrying the same operation is
unlikely to succeed without changes. | +| `source` | *any* | :heavy_minus_sign: | The underlying error that caused this error, creating an error chain.

This allows for proper error propagation and debugging by maintaining
the full context of how an error occurred through multiple layers
of an application. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventerrornextstate.md b/client-sdks/platform/typescript/docs/models/eventerrornextstate.md new file mode 100644 index 000000000..97c6adc09 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventerrornextstate.md @@ -0,0 +1,34 @@ +# EventErrorNextState + +Canonical error container that provides a structured way to represent errors +with rich metadata including error codes, human-readable messages, context, +and chaining capabilities for error propagation. + +This struct is designed to be both machine-readable and user-friendly, +supporting serialization for API responses and detailed error reporting +in distributed systems. + +## Example Usage + +```typescript +import { EventErrorNextState } from "@alienplatform/platform-api/models"; + +let value: EventErrorNextState = { + code: "", + internal: true, + message: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `code` | *string* | :heavy_check_mark: | A unique identifier for the type of error.

This should be a short, machine-readable string that can be used
by clients to programmatically handle different error types.
Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" | +| `context` | *any* | :heavy_minus_sign: | Additional diagnostic information about the error context.

This optional field can contain structured data providing more details
about the error, such as validation errors, request parameters that
caused the issue, or other relevant context information. | +| `hint` | *string* | :heavy_minus_sign: | Optional human-facing remediation hint. | +| `httpStatusCode` | *number* | :heavy_minus_sign: | HTTP status code for this error.

Used when converting the error to an HTTP response. If None, falls back to
the error type's default status code or 500. | +| `internal` | *boolean* | :heavy_check_mark: | Indicates if this is an internal error that should not be exposed to users.

When `true`, this error contains sensitive information or implementation
details that should not be shown to end-users. Such errors should be
logged for debugging but replaced with generic error messages in responses. | +| `message` | *string* | :heavy_check_mark: | Human-readable error message.

This message should be clear and actionable for developers or end-users,
providing context about what went wrong and potentially how to fix it. | +| `retryable` | *boolean* | :heavy_minus_sign: | Indicates whether the operation that caused the error should be retried.

When `true`, the error is transient and the operation might succeed
if attempted again. When `false`, retrying the same operation is
unlikely to succeed without changes. | +| `source` | *any* | :heavy_minus_sign: | The underlying error that caused this error, creating an error chain.

This allows for proper error propagation and debugging by maintaining
the full context of how an error occurred through multiple layers
of an application. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventfailed.md b/client-sdks/platform/typescript/docs/models/eventfailed.md new file mode 100644 index 000000000..12c70fa04 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventfailed.md @@ -0,0 +1,17 @@ +# EventFailed + +Event failed with an error + +## Example Usage + +```typescript +import { EventFailed } from "@alienplatform/platform-api/models"; + +let value: EventFailed = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | +| `error` | *models.EventFailedErrorUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventfailederrorunion.md b/client-sdks/platform/typescript/docs/models/eventfailederrorunion.md new file mode 100644 index 000000000..23d898ae2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventfailederrorunion.md @@ -0,0 +1,20 @@ +# EventFailedErrorUnion + + +## Supported Types + +### `models.EventErrorFailed` + +```typescript +const value: models.EventErrorFailed = { + code: "", + internal: false, + message: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/eventkind3.md b/client-sdks/platform/typescript/docs/models/eventkind3.md new file mode 100644 index 000000000..a065ad8b4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventkind3.md @@ -0,0 +1,17 @@ +# EventKind3 + +Type of authenticated principal that requested an event. + +## Example Usage + +```typescript +import { EventKind3 } from "@alienplatform/platform-api/models"; + +let value: EventKind3 = "user"; +``` + +## Values + +```typescript +"user" | "serviceAccount" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventkind4.md b/client-sdks/platform/typescript/docs/models/eventkind4.md new file mode 100644 index 000000000..5144a1d46 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventkind4.md @@ -0,0 +1,17 @@ +# EventKind4 + +Type of authenticated principal that requested an event. + +## Example Usage + +```typescript +import { EventKind4 } from "@alienplatform/platform-api/models"; + +let value: EventKind4 = "serviceAccount"; +``` + +## Values + +```typescript +"user" | "serviceAccount" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlifecycleunion.md b/client-sdks/platform/typescript/docs/models/eventlifecycleunion.md index 7716c4e83..597731cf8 100644 --- a/client-sdks/platform/typescript/docs/models/eventlifecycleunion.md +++ b/client-sdks/platform/typescript/docs/models/eventlifecycleunion.md @@ -14,4 +14,3 @@ const value: models.EventLifecycleEnum = "live"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponse.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponse.md new file mode 100644 index 000000000..214244845 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponse.md @@ -0,0 +1,36 @@ +# EventListItemResponse + +## Example Usage + +```typescript +import { EventListItemResponse } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponse = { + id: "event_MtSA24M3pWuAkQYxgZxuRI", + deploymentId: "dep_0c29fq4a2yjb7kx3smwdgxlc", + releaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", + debugSessionId: "dbg_HOXmkmT9UPYlsnxqSNlEGoXL", + data: { + type: "GeneratingCloudFormationTemplate", + }, + state: "success", + projectId: "prj_mcytp6z3j91f7tn5ryqsfwtr", + createdAt: new Date("2024-08-03T01:48:11.595Z"), + workspaceId: "ws_It13CUaGEhLLAB87simX0", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the event. | event_MtSA24M3pWuAkQYxgZxuRI | +| `deploymentId` | *string* | :heavy_minus_sign: | Unique identifier for the deployment. | dep_0c29fq4a2yjb7kx3smwdgxlc | +| `releaseId` | *string* | :heavy_minus_sign: | Unique identifier for the release. | rel_WbhQgksrawSKIpEN0NAssHX9 | +| `debugSessionId` | *string* | :heavy_minus_sign: | Unique identifier for the debug session. | dbg_HOXmkmT9UPYlsnxqSNlEGoXL | +| `data` | *models.EventListItemResponseDataUnion* | :heavy_check_mark: | N/A | | +| `state` | *models.EventListItemResponseStateUnion* | :heavy_check_mark: | Represents the state of an event | | +| `projectId` | *string* | :heavy_check_mark: | Unique identifier for the project. | prj_mcytp6z3j91f7tn5ryqsfwtr | +| `createdAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | N/A | | +| `workspaceId` | *string* | :heavy_check_mark: | Unique identifier for the workspace. | ws_It13CUaGEhLLAB87simX0 | +| `releaseCreatedAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_minus_sign: | createdAt of the event's referenced release, included when ?include=releaseCreatedAt is used | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponseactor1.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponseactor1.md new file mode 100644 index 000000000..a7cc50c8f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponseactor1.md @@ -0,0 +1,22 @@ +# EventListItemResponseActor1 + +Authenticated principal that requested a deployment intent event. + +## Example Usage + +```typescript +import { EventListItemResponseActor1 } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseActor1 = { + id: "", + kind: "serviceAccount", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| `email` | *string* | :heavy_minus_sign: | User email when the principal is a user. | +| `id` | *string* | :heavy_check_mark: | Stable user or service-account identifier. | +| `kind` | [models.EventListItemResponseKind1](../models/eventlistitemresponsekind1.md) | :heavy_check_mark: | Type of authenticated principal that requested an event. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponseactor2.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponseactor2.md new file mode 100644 index 000000000..463a82867 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponseactor2.md @@ -0,0 +1,22 @@ +# EventListItemResponseActor2 + +Authenticated principal that requested a deployment intent event. + +## Example Usage + +```typescript +import { EventListItemResponseActor2 } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseActor2 = { + id: "", + kind: "user", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| `email` | *string* | :heavy_minus_sign: | User email when the principal is a user. | +| `id` | *string* | :heavy_check_mark: | Stable user or service-account identifier. | +| `kind` | [models.EventListItemResponseKind2](../models/eventlistitemresponsekind2.md) | :heavy_check_mark: | Type of authenticated principal that requested an event. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponseactor3.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponseactor3.md new file mode 100644 index 000000000..a40247bf5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponseactor3.md @@ -0,0 +1,22 @@ +# EventListItemResponseActor3 + +Authenticated principal that requested a deployment intent event. + +## Example Usage + +```typescript +import { EventListItemResponseActor3 } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseActor3 = { + id: "", + kind: "serviceAccount", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| `email` | *string* | :heavy_minus_sign: | User email when the principal is a user. | +| `id` | *string* | :heavy_check_mark: | Stable user or service-account identifier. | +| `kind` | [models.EventListItemResponseKind3](../models/eventlistitemresponsekind3.md) | :heavy_check_mark: | Type of authenticated principal that requested an event. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponseactor4.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponseactor4.md new file mode 100644 index 000000000..361b5d5b9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponseactor4.md @@ -0,0 +1,22 @@ +# EventListItemResponseActor4 + +Authenticated principal that requested a deployment intent event. + +## Example Usage + +```typescript +import { EventListItemResponseActor4 } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseActor4 = { + id: "", + kind: "user", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| `email` | *string* | :heavy_minus_sign: | User email when the principal is a user. | +| `id` | *string* | :heavy_check_mark: | Stable user or service-account identifier. | +| `kind` | [models.EventListItemResponseKind4](../models/eventlistitemresponsekind4.md) | :heavy_check_mark: | Type of authenticated principal that requested an event. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponseactorunion1.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponseactorunion1.md new file mode 100644 index 000000000..6d81ea498 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponseactorunion1.md @@ -0,0 +1,19 @@ +# EventListItemResponseActorUnion1 + + +## Supported Types + +### `models.EventListItemResponseActor1` + +```typescript +const value: models.EventListItemResponseActor1 = { + id: "", + kind: "serviceAccount", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponseactorunion2.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponseactorunion2.md new file mode 100644 index 000000000..eb80e6ee1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponseactorunion2.md @@ -0,0 +1,19 @@ +# EventListItemResponseActorUnion2 + + +## Supported Types + +### `models.EventListItemResponseActor2` + +```typescript +const value: models.EventListItemResponseActor2 = { + id: "", + kind: "user", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponseactorunion3.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponseactorunion3.md new file mode 100644 index 000000000..f7522819e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponseactorunion3.md @@ -0,0 +1,19 @@ +# EventListItemResponseActorUnion3 + + +## Supported Types + +### `models.EventListItemResponseActor3` + +```typescript +const value: models.EventListItemResponseActor3 = { + id: "", + kind: "serviceAccount", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponseactorunion4.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponseactorunion4.md new file mode 100644 index 000000000..cd0d586d9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponseactorunion4.md @@ -0,0 +1,19 @@ +# EventListItemResponseActorUnion4 + + +## Supported Types + +### `models.EventListItemResponseActor4` + +```typescript +const value: models.EventListItemResponseActor4 = { + id: "", + kind: "user", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponseconfig.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponseconfig.md new file mode 100644 index 000000000..9aa450b5e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponseconfig.md @@ -0,0 +1,22 @@ +# EventListItemResponseConfig + +Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + +## Example Usage + +```typescript +import { EventListItemResponseConfig } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseConfig = { + id: "", + type: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. | +| `type` | *string* | :heavy_check_mark: | Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. | +| `additionalProperties` | Record | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsecontrollerplatformenum.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsecontrollerplatformenum.md new file mode 100644 index 000000000..ce99cfac0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsecontrollerplatformenum.md @@ -0,0 +1,17 @@ +# EventListItemResponseControllerPlatformEnum + +Represents the target cloud platform. + +## Example Usage + +```typescript +import { EventListItemResponseControllerPlatformEnum } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseControllerPlatformEnum = "machines"; +``` + +## Values + +```typescript +"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsecontrollerplatformunion.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsecontrollerplatformunion.md new file mode 100644 index 000000000..9eaf4d1d7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsecontrollerplatformunion.md @@ -0,0 +1,16 @@ +# EventListItemResponseControllerPlatformUnion + + +## Supported Types + +### `models.EventListItemResponseControllerPlatformEnum` + +```typescript +const value: models.EventListItemResponseControllerPlatformEnum = "aws"; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataassumingrole.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataassumingrole.md new file mode 100644 index 000000000..40affb572 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataassumingrole.md @@ -0,0 +1,19 @@ +# EventListItemResponseDataAssumingRole + +## Example Usage + +```typescript +import { EventListItemResponseDataAssumingRole } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataAssumingRole = { + roleArn: "", + type: "AssumingRole", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------- | ------------------------- | ------------------------- | ------------------------- | +| `roleArn` | *string* | :heavy_check_mark: | ARN of the role to assume | +| `type` | *"AssumingRole"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatabuildingimage.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatabuildingimage.md new file mode 100644 index 000000000..c8c750894 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatabuildingimage.md @@ -0,0 +1,19 @@ +# EventListItemResponseDataBuildingImage + +## Example Usage + +```typescript +import { EventListItemResponseDataBuildingImage } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataBuildingImage = { + image: "https://loremflickr.com/3474/373?lock=4089420585640817", + type: "BuildingImage", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | +| `image` | *string* | :heavy_check_mark: | Name of the image being built | +| `type` | *"BuildingImage"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatabuildingresource.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatabuildingresource.md new file mode 100644 index 000000000..30d81f6b0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatabuildingresource.md @@ -0,0 +1,22 @@ +# EventListItemResponseDataBuildingResource + +## Example Usage + +```typescript +import { EventListItemResponseDataBuildingResource } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataBuildingResource = { + resourceName: "", + resourceType: "", + type: "BuildingResource", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `relatedResources` | *string*[] | :heavy_minus_sign: | All resource names sharing this build (for deduped container groups) | +| `resourceName` | *string* | :heavy_check_mark: | Name of the resource being built | +| `resourceType` | *string* | :heavy_check_mark: | Type of the resource: "worker", "container" | +| `type` | *"BuildingResource"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatabuildingstack.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatabuildingstack.md new file mode 100644 index 000000000..804429e3a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatabuildingstack.md @@ -0,0 +1,19 @@ +# EventListItemResponseDataBuildingStack + +## Example Usage + +```typescript +import { EventListItemResponseDataBuildingStack } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataBuildingStack = { + stack: "", + type: "BuildingStack", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | +| `stack` | *string* | :heavy_check_mark: | Name of the stack being built | +| `type` | *"BuildingStack"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatacleaningupenvironment.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatacleaningupenvironment.md new file mode 100644 index 000000000..ab6d16b2b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatacleaningupenvironment.md @@ -0,0 +1,21 @@ +# EventListItemResponseDataCleaningUpEnvironment + +## Example Usage + +```typescript +import { EventListItemResponseDataCleaningUpEnvironment } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataCleaningUpEnvironment = { + stackName: "", + strategyName: "", + type: "CleaningUpEnvironment", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | +| `stackName` | *string* | :heavy_check_mark: | Name of the stack being cleaned up | +| `strategyName` | *string* | :heavy_check_mark: | Name of the deployment strategy being used for cleanup | +| `type` | *"CleaningUpEnvironment"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatacleaningupstack.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatacleaningupstack.md new file mode 100644 index 000000000..1ed8457ab --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatacleaningupstack.md @@ -0,0 +1,21 @@ +# EventListItemResponseDataCleaningUpStack + +## Example Usage + +```typescript +import { EventListItemResponseDataCleaningUpStack } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataCleaningUpStack = { + stackName: "", + strategyName: "", + type: "CleaningUpStack", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | +| `stackName` | *string* | :heavy_check_mark: | Name of the stack being cleaned up | +| `strategyName` | *string* | :heavy_check_mark: | Name of the deployment strategy being used for cleanup | +| `type` | *"CleaningUpStack"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatacompilingcode.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatacompilingcode.md new file mode 100644 index 000000000..c859b5d3b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatacompilingcode.md @@ -0,0 +1,20 @@ +# EventListItemResponseDataCompilingCode + +## Example Usage + +```typescript +import { EventListItemResponseDataCompilingCode } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataCompilingCode = { + language: "", + type: "CompilingCode", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `language` | *string* | :heavy_check_mark: | Language being compiled (rust, typescript, etc.) | +| `progress` | *string* | :heavy_minus_sign: | Current progress/status line from the build output | +| `type` | *"CompilingCode"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatacreatingrelease.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatacreatingrelease.md new file mode 100644 index 000000000..94c55327b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatacreatingrelease.md @@ -0,0 +1,19 @@ +# EventListItemResponseDataCreatingRelease + +## Example Usage + +```typescript +import { EventListItemResponseDataCreatingRelease } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataCreatingRelease = { + project: "", + type: "CreatingRelease", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------- | ------------------- | ------------------- | ------------------- | +| `project` | *string* | :heavy_check_mark: | Project name | +| `type` | *"CreatingRelease"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadebuggingagent.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadebuggingagent.md new file mode 100644 index 000000000..c6979eb72 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadebuggingagent.md @@ -0,0 +1,21 @@ +# EventListItemResponseDataDebuggingAgent + +## Example Usage + +```typescript +import { EventListItemResponseDataDebuggingAgent } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataDebuggingAgent = { + agentId: "", + debugSessionId: "", + type: "DebuggingAgent", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | +| `agentId` | *string* | :heavy_check_mark: | ID of the agent being debugged | +| `debugSessionId` | *string* | :heavy_check_mark: | ID of the debug session | +| `type` | *"DebuggingAgent"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeletingagent.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeletingagent.md new file mode 100644 index 000000000..80a0cd099 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeletingagent.md @@ -0,0 +1,21 @@ +# EventListItemResponseDataDeletingAgent + +## Example Usage + +```typescript +import { EventListItemResponseDataDeletingAgent } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataDeletingAgent = { + agentId: "", + releaseId: "", + type: "DeletingAgent", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | ----------------------------------------------- | +| `agentId` | *string* | :heavy_check_mark: | ID of the agent being deleted | +| `releaseId` | *string* | :heavy_check_mark: | ID of the release that was running on the agent | +| `type` | *"DeletingAgent"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeletingcloudformationstack.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeletingcloudformationstack.md new file mode 100644 index 000000000..8c567e4cf --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeletingcloudformationstack.md @@ -0,0 +1,21 @@ +# EventListItemResponseDataDeletingCloudFormationStack + +## Example Usage + +```typescript +import { EventListItemResponseDataDeletingCloudFormationStack } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataDeletingCloudFormationStack = { + cfnStackName: "", + currentStatus: "", + type: "DeletingCloudFormationStack", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | +| `cfnStackName` | *string* | :heavy_check_mark: | Name of the CloudFormation stack | +| `currentStatus` | *string* | :heavy_check_mark: | Current stack status | +| `type` | *"DeletingCloudFormationStack"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeployingcloudformationstack.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeployingcloudformationstack.md new file mode 100644 index 000000000..7f08c8f66 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeployingcloudformationstack.md @@ -0,0 +1,21 @@ +# EventListItemResponseDataDeployingCloudFormationStack + +## Example Usage + +```typescript +import { EventListItemResponseDataDeployingCloudFormationStack } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataDeployingCloudFormationStack = { + cfnStackName: "", + currentStatus: "", + type: "DeployingCloudFormationStack", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | +| `cfnStackName` | *string* | :heavy_check_mark: | Name of the CloudFormation stack | +| `currentStatus` | *string* | :heavy_check_mark: | Current stack status | +| `type` | *"DeployingCloudFormationStack"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeployingstack.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeployingstack.md new file mode 100644 index 000000000..a2f5efa34 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeployingstack.md @@ -0,0 +1,19 @@ +# EventListItemResponseDataDeployingStack + +## Example Usage + +```typescript +import { EventListItemResponseDataDeployingStack } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataDeployingStack = { + stackName: "", + type: "DeployingStack", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------- | -------------------------------- | -------------------------------- | -------------------------------- | +| `stackName` | *string* | :heavy_check_mark: | Name of the stack being deployed | +| `type` | *"DeployingStack"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentcreated.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentcreated.md new file mode 100644 index 000000000..f09a60e6e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentcreated.md @@ -0,0 +1,22 @@ +# EventListItemResponseDataDeploymentCreated + +## Example Usage + +```typescript +import { EventListItemResponseDataDeploymentCreated } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataDeploymentCreated = { + deploymentGroupId: "", + deploymentId: "", + type: "DeploymentCreated", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------- | +| `deploymentGroupId` | *string* | :heavy_check_mark: | ID of the deployment group this slot belongs to | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment that was created | +| `releaseId` | *string* | :heavy_minus_sign: | Initial release the slot was created with, if any | +| `type` | *"DeploymentCreated"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentdegraded.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentdegraded.md new file mode 100644 index 000000000..0246308ea --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentdegraded.md @@ -0,0 +1,25 @@ +# EventListItemResponseDataDeploymentDegraded + +## Example Usage + +```typescript +import { EventListItemResponseDataDeploymentDegraded } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataDeploymentDegraded = { + deploymentId: "", + error: { + code: "", + internal: false, + message: "", + }, + type: "DeploymentDegraded", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | +| `error` | [models.EventListItemResponseDataError2](../models/eventlistitemresponsedataerror2.md) | :heavy_check_mark: | Canonical error container that provides a structured way to represent errors
with rich metadata including error codes, human-readable messages, context,
and chaining capabilities for error propagation.

This struct is designed to be both machine-readable and user-friendly,
supporting serialization for API responses and detailed error reporting
in distributed systems. | +| `type` | *"DeploymentDegraded"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentdeleted.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentdeleted.md new file mode 100644 index 000000000..1b7c74a69 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentdeleted.md @@ -0,0 +1,19 @@ +# EventListItemResponseDataDeploymentDeleted + +## Example Usage + +```typescript +import { EventListItemResponseDataDeploymentDeleted } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataDeploymentDeleted = { + deploymentId: "", + type: "DeploymentDeleted", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------- | ------------------------------------- | ------------------------------------- | ------------------------------------- | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment that was deleted | +| `type` | *"DeploymentDeleted"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentdeletionrequested.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentdeletionrequested.md new file mode 100644 index 000000000..a2ff0a5ca --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentdeletionrequested.md @@ -0,0 +1,19 @@ +# EventListItemResponseDataDeploymentDeletionRequested + +## Example Usage + +```typescript +import { EventListItemResponseDataDeploymentDeletionRequested } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataDeploymentDeletionRequested = { + deploymentId: "", + type: "DeploymentDeletionRequested", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | +| `type` | *"DeploymentDeletionRequested"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentenvironmentupdated.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentenvironmentupdated.md new file mode 100644 index 000000000..0a251c848 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentenvironmentupdated.md @@ -0,0 +1,24 @@ +# EventListItemResponseDataDeploymentEnvironmentUpdated + +## Example Usage + +```typescript +import { EventListItemResponseDataDeploymentEnvironmentUpdated } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataDeploymentEnvironmentUpdated = { + changedKeys: [ + "", + ], + deploymentId: "", + type: "DeploymentEnvironmentUpdated", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `actor` | *models.EventListItemResponseActorUnion4* | :heavy_minus_sign: | N/A | +| `changedKeys` | *string*[] | :heavy_check_mark: | Names of the environment variables that changed (added, removed, or modified) | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | +| `type` | *"DeploymentEnvironmentUpdated"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentfailed.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentfailed.md new file mode 100644 index 000000000..5b6b1ce88 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentfailed.md @@ -0,0 +1,28 @@ +# EventListItemResponseDataDeploymentFailed + +## Example Usage + +```typescript +import { EventListItemResponseDataDeploymentFailed } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataDeploymentFailed = { + deploymentId: "", + error: { + code: "", + internal: false, + message: "", + }, + phase: "provisioning", + type: "DeploymentFailed", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `attemptedReleaseId` | *string* | :heavy_minus_sign: | ID of the release the platform was trying to deploy, if known | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | +| `error` | [models.EventListItemResponseDataError1](../models/eventlistitemresponsedataerror1.md) | :heavy_check_mark: | Canonical error container that provides a structured way to represent errors
with rich metadata including error codes, human-readable messages, context,
and chaining capabilities for error propagation.

This struct is designed to be both machine-readable and user-friendly,
supporting serialization for API responses and detailed error reporting
in distributed systems. | +| `phase` | [models.EventListItemResponsePhase](../models/eventlistitemresponsephase.md) | :heavy_check_mark: | Phase of a deployment at which a failure occurred.

Derived from the source deployment status: `preflights-failed` →
`Preflights`, `provisioning-failed` → `Provisioning`, `update-failed` →
`Updating`, `delete-failed` → `Deleting`.
`refresh-failed` is modelled separately via `DeploymentDegraded`. | +| `type` | *"DeploymentFailed"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentrecovered.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentrecovered.md new file mode 100644 index 000000000..c3e2a3788 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentrecovered.md @@ -0,0 +1,21 @@ +# EventListItemResponseDataDeploymentRecovered + +## Example Usage + +```typescript +import { EventListItemResponseDataDeploymentRecovered } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataDeploymentRecovered = { + deploymentId: "", + releaseId: "", + type: "DeploymentRecovered", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | +| `releaseId` | *string* | :heavy_check_mark: | ID of the release that is now live | +| `type` | *"DeploymentRecovered"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentredeployrequested.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentredeployrequested.md new file mode 100644 index 000000000..b8dc0062f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentredeployrequested.md @@ -0,0 +1,21 @@ +# EventListItemResponseDataDeploymentRedeployRequested + +## Example Usage + +```typescript +import { EventListItemResponseDataDeploymentRedeployRequested } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataDeploymentRedeployRequested = { + deploymentId: "", + releaseId: "", + type: "DeploymentRedeployRequested", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | +| `releaseId` | *string* | :heavy_check_mark: | ID of the release being redeployed | +| `type` | *"DeploymentRedeployRequested"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentreleasechannelchanged.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentreleasechannelchanged.md new file mode 100644 index 000000000..94e5bcb44 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentreleasechannelchanged.md @@ -0,0 +1,24 @@ +# EventListItemResponseDataDeploymentReleaseChannelChanged + +## Example Usage + +```typescript +import { EventListItemResponseDataDeploymentReleaseChannelChanged } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataDeploymentReleaseChannelChanged = { + channel: "", + deploymentId: "", + previousChannel: "", + type: "DeploymentReleaseChannelChanged", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | +| `actor` | *models.EventListItemResponseActorUnion2* | :heavy_minus_sign: | N/A | +| `channel` | *string* | :heavy_check_mark: | Newly followed channel | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | +| `previousChannel` | *string* | :heavy_check_mark: | Previously followed channel | +| `type` | *"DeploymentReleaseChannelChanged"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentreleased.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentreleased.md new file mode 100644 index 000000000..8901ab392 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentreleased.md @@ -0,0 +1,22 @@ +# EventListItemResponseDataDeploymentReleased + +## Example Usage + +```typescript +import { EventListItemResponseDataDeploymentReleased } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataDeploymentReleased = { + deploymentId: "", + releaseId: "", + type: "DeploymentReleased", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | +| `previousReleaseId` | *string* | :heavy_minus_sign: | ID of the release that was previously live, if any | +| `releaseId` | *string* | :heavy_check_mark: | ID of the release that is now live | +| `type` | *"DeploymentReleased"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentreleasepinned.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentreleasepinned.md new file mode 100644 index 000000000..5e3b839eb --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentreleasepinned.md @@ -0,0 +1,22 @@ +# EventListItemResponseDataDeploymentReleasePinned + +## Example Usage + +```typescript +import { EventListItemResponseDataDeploymentReleasePinned } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataDeploymentReleasePinned = { + deploymentId: "", + pinnedReleaseId: "", + type: "DeploymentReleasePinned", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | +| `pinnedReleaseId` | *string* | :heavy_check_mark: | ID of the release that is now pinned | +| `previousPinnedReleaseId` | *string* | :heavy_minus_sign: | ID of the previously pinned release, if any | +| `type` | *"DeploymentReleasePinned"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentreleaseunpinned.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentreleaseunpinned.md new file mode 100644 index 000000000..a0733c6f2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentreleaseunpinned.md @@ -0,0 +1,21 @@ +# EventListItemResponseDataDeploymentReleaseUnpinned + +## Example Usage + +```typescript +import { EventListItemResponseDataDeploymentReleaseUnpinned } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataDeploymentReleaseUnpinned = { + deploymentId: "", + previousPinnedReleaseId: "", + type: "DeploymentReleaseUnpinned", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | +| `previousPinnedReleaseId` | *string* | :heavy_check_mark: | ID of the release that was previously pinned | +| `type` | *"DeploymentReleaseUnpinned"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentretryrequested.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentretryrequested.md new file mode 100644 index 000000000..ae0850e2f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadeploymentretryrequested.md @@ -0,0 +1,22 @@ +# EventListItemResponseDataDeploymentRetryRequested + +## Example Usage + +```typescript +import { EventListItemResponseDataDeploymentRetryRequested } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataDeploymentRetryRequested = { + deploymentId: "", + type: "DeploymentRetryRequested", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | +| `actor` | *models.EventListItemResponseActorUnion3* | :heavy_minus_sign: | N/A | +| `attemptedReleaseId` | *string* | :heavy_minus_sign: | ID of the release that the failed attempt was targeting, if known | +| `deploymentId` | *string* | :heavy_check_mark: | ID of the deployment | +| `previousError` | *models.EventListItemResponsePreviousErrorUnion* | :heavy_minus_sign: | N/A | +| `type` | *"DeploymentRetryRequested"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadownloadingalienruntime.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadownloadingalienruntime.md new file mode 100644 index 000000000..eeefaf395 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatadownloadingalienruntime.md @@ -0,0 +1,21 @@ +# EventListItemResponseDataDownloadingAlienRuntime + +## Example Usage + +```typescript +import { EventListItemResponseDataDownloadingAlienRuntime } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataDownloadingAlienRuntime = { + targetTriple: "", + type: "DownloadingAlienRuntime", + url: "https://hefty-eggplant.net", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | +| `targetTriple` | *string* | :heavy_check_mark: | Target triple for the runtime | +| `type` | *"DownloadingAlienRuntime"* | :heavy_check_mark: | N/A | +| `url` | *string* | :heavy_check_mark: | URL being downloaded from | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataemptyingbuckets.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataemptyingbuckets.md new file mode 100644 index 000000000..2b2abc855 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataemptyingbuckets.md @@ -0,0 +1,19 @@ +# EventListItemResponseDataEmptyingBuckets + +## Example Usage + +```typescript +import { EventListItemResponseDataEmptyingBuckets } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataEmptyingBuckets = { + bucketNames: [], + type: "EmptyingBuckets", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------- | ------------------------------------- | ------------------------------------- | ------------------------------------- | +| `bucketNames` | *string*[] | :heavy_check_mark: | Names of the S3 buckets being emptied | +| `type` | *"EmptyingBuckets"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataensuringdockerrepository.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataensuringdockerrepository.md new file mode 100644 index 000000000..18793368c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataensuringdockerrepository.md @@ -0,0 +1,19 @@ +# EventListItemResponseDataEnsuringDockerRepository + +## Example Usage + +```typescript +import { EventListItemResponseDataEnsuringDockerRepository } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataEnsuringDockerRepository = { + repositoryName: "", + type: "EnsuringDockerRepository", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------- | ----------------------------- | ----------------------------- | ----------------------------- | +| `repositoryName` | *string* | :heavy_check_mark: | Name of the docker repository | +| `type` | *"EnsuringDockerRepository"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataerror1.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataerror1.md new file mode 100644 index 000000000..44efefcb8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataerror1.md @@ -0,0 +1,34 @@ +# EventListItemResponseDataError1 + +Canonical error container that provides a structured way to represent errors +with rich metadata including error codes, human-readable messages, context, +and chaining capabilities for error propagation. + +This struct is designed to be both machine-readable and user-friendly, +supporting serialization for API responses and detailed error reporting +in distributed systems. + +## Example Usage + +```typescript +import { EventListItemResponseDataError1 } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataError1 = { + code: "", + internal: false, + message: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `code` | *string* | :heavy_check_mark: | A unique identifier for the type of error.

This should be a short, machine-readable string that can be used
by clients to programmatically handle different error types.
Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" | +| `context` | *any* | :heavy_minus_sign: | Additional diagnostic information about the error context.

This optional field can contain structured data providing more details
about the error, such as validation errors, request parameters that
caused the issue, or other relevant context information. | +| `hint` | *string* | :heavy_minus_sign: | Optional human-facing remediation hint. | +| `httpStatusCode` | *number* | :heavy_minus_sign: | HTTP status code for this error.

Used when converting the error to an HTTP response. If None, falls back to
the error type's default status code or 500. | +| `internal` | *boolean* | :heavy_check_mark: | Indicates if this is an internal error that should not be exposed to users.

When `true`, this error contains sensitive information or implementation
details that should not be shown to end-users. Such errors should be
logged for debugging but replaced with generic error messages in responses. | +| `message` | *string* | :heavy_check_mark: | Human-readable error message.

This message should be clear and actionable for developers or end-users,
providing context about what went wrong and potentially how to fix it. | +| `retryable` | *boolean* | :heavy_minus_sign: | Indicates whether the operation that caused the error should be retried.

When `true`, the error is transient and the operation might succeed
if attempted again. When `false`, retrying the same operation is
unlikely to succeed without changes. | +| `source` | *any* | :heavy_minus_sign: | The underlying error that caused this error, creating an error chain.

This allows for proper error propagation and debugging by maintaining
the full context of how an error occurred through multiple layers
of an application. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataerror2.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataerror2.md new file mode 100644 index 000000000..7596b6afc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataerror2.md @@ -0,0 +1,34 @@ +# EventListItemResponseDataError2 + +Canonical error container that provides a structured way to represent errors +with rich metadata including error codes, human-readable messages, context, +and chaining capabilities for error propagation. + +This struct is designed to be both machine-readable and user-friendly, +supporting serialization for API responses and detailed error reporting +in distributed systems. + +## Example Usage + +```typescript +import { EventListItemResponseDataError2 } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataError2 = { + code: "", + internal: true, + message: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `code` | *string* | :heavy_check_mark: | A unique identifier for the type of error.

This should be a short, machine-readable string that can be used
by clients to programmatically handle different error types.
Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" | +| `context` | *any* | :heavy_minus_sign: | Additional diagnostic information about the error context.

This optional field can contain structured data providing more details
about the error, such as validation errors, request parameters that
caused the issue, or other relevant context information. | +| `hint` | *string* | :heavy_minus_sign: | Optional human-facing remediation hint. | +| `httpStatusCode` | *number* | :heavy_minus_sign: | HTTP status code for this error.

Used when converting the error to an HTTP response. If None, falls back to
the error type's default status code or 500. | +| `internal` | *boolean* | :heavy_check_mark: | Indicates if this is an internal error that should not be exposed to users.

When `true`, this error contains sensitive information or implementation
details that should not be shown to end-users. Such errors should be
logged for debugging but replaced with generic error messages in responses. | +| `message` | *string* | :heavy_check_mark: | Human-readable error message.

This message should be clear and actionable for developers or end-users,
providing context about what went wrong and potentially how to fix it. | +| `retryable` | *boolean* | :heavy_minus_sign: | Indicates whether the operation that caused the error should be retried.

When `true`, the error is transient and the operation might succeed
if attempted again. When `false`, retrying the same operation is
unlikely to succeed without changes. | +| `source` | *any* | :heavy_minus_sign: | The underlying error that caused this error, creating an error chain.

This allows for proper error propagation and debugging by maintaining
the full context of how an error occurred through multiple layers
of an application. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatafinished.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatafinished.md new file mode 100644 index 000000000..7d4b191e4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatafinished.md @@ -0,0 +1,17 @@ +# EventListItemResponseDataFinished + +## Example Usage + +```typescript +import { EventListItemResponseDataFinished } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataFinished = { + type: "Finished", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `type` | *"Finished"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatageneratingcloudformationtemplate.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatageneratingcloudformationtemplate.md new file mode 100644 index 000000000..93ebce993 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatageneratingcloudformationtemplate.md @@ -0,0 +1,17 @@ +# EventListItemResponseDataGeneratingCloudFormationTemplate + +## Example Usage + +```typescript +import { EventListItemResponseDataGeneratingCloudFormationTemplate } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataGeneratingCloudFormationTemplate = { + type: "GeneratingCloudFormationTemplate", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | +| `type` | *"GeneratingCloudFormationTemplate"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatageneratingtemplate.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatageneratingtemplate.md new file mode 100644 index 000000000..055cd3586 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatageneratingtemplate.md @@ -0,0 +1,19 @@ +# EventListItemResponseDataGeneratingTemplate + +## Example Usage + +```typescript +import { EventListItemResponseDataGeneratingTemplate } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataGeneratingTemplate = { + platform: "", + type: "GeneratingTemplate", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `platform` | *string* | :heavy_check_mark: | Platform for which the template is being generated | +| `type` | *"GeneratingTemplate"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataimportingstackstatefromcloudformation.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataimportingstackstatefromcloudformation.md new file mode 100644 index 000000000..7c3b9d494 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataimportingstackstatefromcloudformation.md @@ -0,0 +1,19 @@ +# EventListItemResponseDataImportingStackStateFromCloudFormation + +## Example Usage + +```typescript +import { EventListItemResponseDataImportingStackStateFromCloudFormation } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataImportingStackStateFromCloudFormation = { + cfnStackName: "", + type: "ImportingStackStateFromCloudFormation", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | +| `cfnStackName` | *string* | :heavy_check_mark: | Name of the CloudFormation stack | +| `type` | *"ImportingStackStateFromCloudFormation"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataloadingconfiguration.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataloadingconfiguration.md new file mode 100644 index 000000000..d5954dce6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataloadingconfiguration.md @@ -0,0 +1,17 @@ +# EventListItemResponseDataLoadingConfiguration + +## Example Usage + +```typescript +import { EventListItemResponseDataLoadingConfiguration } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataLoadingConfiguration = { + type: "LoadingConfiguration", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------ | ------------------------ | ------------------------ | ------------------------ | +| `type` | *"LoadingConfiguration"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatapreparingenvironment.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatapreparingenvironment.md new file mode 100644 index 000000000..43a1ae617 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatapreparingenvironment.md @@ -0,0 +1,19 @@ +# EventListItemResponseDataPreparingEnvironment + +## Example Usage + +```typescript +import { EventListItemResponseDataPreparingEnvironment } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataPreparingEnvironment = { + strategyName: "", + type: "PreparingEnvironment", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | ------------------------------------------ | +| `strategyName` | *string* | :heavy_check_mark: | Name of the deployment strategy being used | +| `type` | *"PreparingEnvironment"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataprovisioningagent.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataprovisioningagent.md new file mode 100644 index 000000000..7af45e414 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataprovisioningagent.md @@ -0,0 +1,21 @@ +# EventListItemResponseDataProvisioningAgent + +## Example Usage + +```typescript +import { EventListItemResponseDataProvisioningAgent } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataProvisioningAgent = { + agentId: "", + releaseId: "", + type: "ProvisioningAgent", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | --------------------------------------------- | +| `agentId` | *string* | :heavy_check_mark: | ID of the agent being provisioned | +| `releaseId` | *string* | :heavy_check_mark: | ID of the release being deployed to the agent | +| `type` | *"ProvisioningAgent"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatapushingimage.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatapushingimage.md new file mode 100644 index 000000000..e9512e609 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatapushingimage.md @@ -0,0 +1,20 @@ +# EventListItemResponseDataPushingImage + +## Example Usage + +```typescript +import { EventListItemResponseDataPushingImage } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataPushingImage = { + image: "https://picsum.photos/seed/3kNN0/505/3308", + type: "PushingImage", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | +| `image` | *string* | :heavy_check_mark: | Name of the image being pushed | +| `progress` | *models.EventListItemResponseProgressUnion* | :heavy_minus_sign: | N/A | +| `type` | *"PushingImage"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatapushingresource.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatapushingresource.md new file mode 100644 index 000000000..6104d924e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatapushingresource.md @@ -0,0 +1,21 @@ +# EventListItemResponseDataPushingResource + +## Example Usage + +```typescript +import { EventListItemResponseDataPushingResource } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataPushingResource = { + resourceName: "", + resourceType: "", + type: "PushingResource", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | +| `resourceName` | *string* | :heavy_check_mark: | Name of the resource being pushed | +| `resourceType` | *string* | :heavy_check_mark: | Type of the resource: "worker", "container" | +| `type` | *"PushingResource"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatapushingstack.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatapushingstack.md new file mode 100644 index 000000000..c09faa21f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatapushingstack.md @@ -0,0 +1,22 @@ +# EventListItemResponseDataPushingStack + +## Example Usage + +```typescript +import { EventListItemResponseDataPushingStack } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataPushingStack = { + platform: "", + stack: "", + type: "PushingStack", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | -------------------------------------------- | +| `destination` | *string* | :heavy_minus_sign: | Human-readable destination for pushed images | +| `platform` | *string* | :heavy_check_mark: | Target platform | +| `stack` | *string* | :heavy_check_mark: | Name of the stack being pushed | +| `type` | *"PushingStack"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatareleasechannelupdated.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatareleasechannelupdated.md new file mode 100644 index 000000000..c06833686 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatareleasechannelupdated.md @@ -0,0 +1,23 @@ +# EventListItemResponseDataReleaseChannelUpdated + +## Example Usage + +```typescript +import { EventListItemResponseDataReleaseChannelUpdated } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataReleaseChannelUpdated = { + channel: "", + releaseId: "", + type: "ReleaseChannelUpdated", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | +| `actor` | *models.EventListItemResponseActorUnion1* | :heavy_minus_sign: | N/A | +| `channel` | *string* | :heavy_check_mark: | Name of the channel that moved | +| `previousReleaseId` | *string* | :heavy_minus_sign: | ID of the release that was previously current, if any | +| `releaseId` | *string* | :heavy_check_mark: | ID of the release that is now current | +| `type` | *"ReleaseChannelUpdated"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatarunningpreflights.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatarunningpreflights.md new file mode 100644 index 000000000..3d7679461 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatarunningpreflights.md @@ -0,0 +1,21 @@ +# EventListItemResponseDataRunningPreflights + +## Example Usage + +```typescript +import { EventListItemResponseDataRunningPreflights } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataRunningPreflights = { + platform: "", + stack: "", + type: "RunningPreflights", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------- | ------------------------------- | ------------------------------- | ------------------------------- | +| `platform` | *string* | :heavy_check_mark: | Platform being targeted | +| `stack` | *string* | :heavy_check_mark: | Name of the stack being checked | +| `type` | *"RunningPreflights"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatarunningtestworker.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatarunningtestworker.md new file mode 100644 index 000000000..a0f839b76 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatarunningtestworker.md @@ -0,0 +1,19 @@ +# EventListItemResponseDataRunningTestWorker + +## Example Usage + +```typescript +import { EventListItemResponseDataRunningTestWorker } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataRunningTestWorker = { + stackName: "", + type: "RunningTestWorker", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------ | ------------------------------ | ------------------------------ | ------------------------------ | +| `stackName` | *string* | :heavy_check_mark: | Name of the stack being tested | +| `type` | *"RunningTestWorker"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatasettingupplatformcontext.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatasettingupplatformcontext.md new file mode 100644 index 000000000..4836daec1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatasettingupplatformcontext.md @@ -0,0 +1,19 @@ +# EventListItemResponseDataSettingUpPlatformContext + +## Example Usage + +```typescript +import { EventListItemResponseDataSettingUpPlatformContext } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataSettingUpPlatformContext = { + platformName: "", + type: "SettingUpPlatformContext", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | ----------------------------------------- | +| `platformName` | *string* | :heavy_check_mark: | Name of the platform (e.g., "AWS", "GCP") | +| `type` | *"SettingUpPlatformContext"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatastackstep.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatastackstep.md new file mode 100644 index 000000000..9691979c3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedatastackstep.md @@ -0,0 +1,33 @@ +# EventListItemResponseDataStackStep + +## Example Usage + +```typescript +import { EventListItemResponseDataStackStep } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataStackStep = { + nextState: { + platform: "test", + resourcePrefix: "", + resources: { + "key": { + config: { + id: "", + type: "", + }, + status: "delete-failed", + type: "", + }, + }, + }, + type: "StackStep", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| `nextState` | [models.EventListItemResponseNextState](../models/eventlistitemresponsenextstate.md) | :heavy_check_mark: | Represents the collective state of all resources in a stack, including platform and pending actions. | +| `suggestedDelayMs` | *number* | :heavy_minus_sign: | An suggested duration to wait before executing the next step. | +| `type` | *"StackStep"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataunion.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataunion.md new file mode 100644 index 000000000..895172c26 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataunion.md @@ -0,0 +1,457 @@ +# EventListItemResponseDataUnion + + +## Supported Types + +### `models.EventListItemResponseDataLoadingConfiguration` + +```typescript +const value: models.EventListItemResponseDataLoadingConfiguration = { + type: "LoadingConfiguration", +}; +``` + +### `models.EventListItemResponseDataFinished` + +```typescript +const value: models.EventListItemResponseDataFinished = { + type: "Finished", +}; +``` + +### `models.EventListItemResponseDataBuildingStack` + +```typescript +const value: models.EventListItemResponseDataBuildingStack = { + stack: "", + type: "BuildingStack", +}; +``` + +### `models.EventListItemResponseDataRunningPreflights` + +```typescript +const value: models.EventListItemResponseDataRunningPreflights = { + platform: "", + stack: "", + type: "RunningPreflights", +}; +``` + +### `models.EventListItemResponseDataDownloadingAlienRuntime` + +```typescript +const value: models.EventListItemResponseDataDownloadingAlienRuntime = { + targetTriple: "", + type: "DownloadingAlienRuntime", + url: "https://hefty-eggplant.net", +}; +``` + +### `models.EventListItemResponseDataBuildingResource` + +```typescript +const value: models.EventListItemResponseDataBuildingResource = { + resourceName: "", + resourceType: "", + type: "BuildingResource", +}; +``` + +### `models.EventListItemResponseDataBuildingImage` + +```typescript +const value: models.EventListItemResponseDataBuildingImage = { + image: "https://loremflickr.com/3474/373?lock=4089420585640817", + type: "BuildingImage", +}; +``` + +### `models.EventListItemResponseDataPushingImage` + +```typescript +const value: models.EventListItemResponseDataPushingImage = { + image: "https://picsum.photos/seed/3kNN0/505/3308", + type: "PushingImage", +}; +``` + +### `models.EventListItemResponseDataPushingStack` + +```typescript +const value: models.EventListItemResponseDataPushingStack = { + platform: "", + stack: "", + type: "PushingStack", +}; +``` + +### `models.EventListItemResponseDataPushingResource` + +```typescript +const value: models.EventListItemResponseDataPushingResource = { + resourceName: "", + resourceType: "", + type: "PushingResource", +}; +``` + +### `models.EventListItemResponseDataCreatingRelease` + +```typescript +const value: models.EventListItemResponseDataCreatingRelease = { + project: "", + type: "CreatingRelease", +}; +``` + +### `models.EventListItemResponseDataCompilingCode` + +```typescript +const value: models.EventListItemResponseDataCompilingCode = { + language: "", + type: "CompilingCode", +}; +``` + +### `models.EventListItemResponseDataStackStep` + +```typescript +const value: models.EventListItemResponseDataStackStep = { + nextState: { + platform: "test", + resourcePrefix: "", + resources: { + "key": { + config: { + id: "", + type: "", + }, + status: "delete-failed", + type: "", + }, + }, + }, + type: "StackStep", +}; +``` + +### `models.EventListItemResponseDataGeneratingCloudFormationTemplate` + +```typescript +const value: models.EventListItemResponseDataGeneratingCloudFormationTemplate = + { + type: "GeneratingCloudFormationTemplate", + }; +``` + +### `models.EventListItemResponseDataGeneratingTemplate` + +```typescript +const value: models.EventListItemResponseDataGeneratingTemplate = { + platform: "", + type: "GeneratingTemplate", +}; +``` + +### `models.EventListItemResponseDataProvisioningAgent` + +```typescript +const value: models.EventListItemResponseDataProvisioningAgent = { + agentId: "", + releaseId: "", + type: "ProvisioningAgent", +}; +``` + +### `models.EventListItemResponseDataUpdatingAgent` + +```typescript +const value: models.EventListItemResponseDataUpdatingAgent = { + agentId: "", + releaseId: "", + type: "UpdatingAgent", +}; +``` + +### `models.EventListItemResponseDataDeletingAgent` + +```typescript +const value: models.EventListItemResponseDataDeletingAgent = { + agentId: "", + releaseId: "", + type: "DeletingAgent", +}; +``` + +### `models.EventListItemResponseDataDebuggingAgent` + +```typescript +const value: models.EventListItemResponseDataDebuggingAgent = { + agentId: "", + debugSessionId: "", + type: "DebuggingAgent", +}; +``` + +### `models.EventListItemResponseDataPreparingEnvironment` + +```typescript +const value: models.EventListItemResponseDataPreparingEnvironment = { + strategyName: "", + type: "PreparingEnvironment", +}; +``` + +### `models.EventListItemResponseDataDeployingStack` + +```typescript +const value: models.EventListItemResponseDataDeployingStack = { + stackName: "", + type: "DeployingStack", +}; +``` + +### `models.EventListItemResponseDataRunningTestWorker` + +```typescript +const value: models.EventListItemResponseDataRunningTestWorker = { + stackName: "", + type: "RunningTestWorker", +}; +``` + +### `models.EventListItemResponseDataCleaningUpStack` + +```typescript +const value: models.EventListItemResponseDataCleaningUpStack = { + stackName: "", + strategyName: "", + type: "CleaningUpStack", +}; +``` + +### `models.EventListItemResponseDataCleaningUpEnvironment` + +```typescript +const value: models.EventListItemResponseDataCleaningUpEnvironment = { + stackName: "", + strategyName: "", + type: "CleaningUpEnvironment", +}; +``` + +### `models.EventListItemResponseDataSettingUpPlatformContext` + +```typescript +const value: models.EventListItemResponseDataSettingUpPlatformContext = { + platformName: "", + type: "SettingUpPlatformContext", +}; +``` + +### `models.EventListItemResponseDataEnsuringDockerRepository` + +```typescript +const value: models.EventListItemResponseDataEnsuringDockerRepository = { + repositoryName: "", + type: "EnsuringDockerRepository", +}; +``` + +### `models.EventListItemResponseDataDeployingCloudFormationStack` + +```typescript +const value: models.EventListItemResponseDataDeployingCloudFormationStack = { + cfnStackName: "", + currentStatus: "", + type: "DeployingCloudFormationStack", +}; +``` + +### `models.EventListItemResponseDataAssumingRole` + +```typescript +const value: models.EventListItemResponseDataAssumingRole = { + roleArn: "", + type: "AssumingRole", +}; +``` + +### `models.EventListItemResponseDataImportingStackStateFromCloudFormation` + +```typescript +const value: + models.EventListItemResponseDataImportingStackStateFromCloudFormation = { + cfnStackName: "", + type: "ImportingStackStateFromCloudFormation", + }; +``` + +### `models.EventListItemResponseDataDeletingCloudFormationStack` + +```typescript +const value: models.EventListItemResponseDataDeletingCloudFormationStack = { + cfnStackName: "", + currentStatus: "", + type: "DeletingCloudFormationStack", +}; +``` + +### `models.EventListItemResponseDataEmptyingBuckets` + +```typescript +const value: models.EventListItemResponseDataEmptyingBuckets = { + bucketNames: [], + type: "EmptyingBuckets", +}; +``` + +### `models.EventListItemResponseDataDeploymentCreated` + +```typescript +const value: models.EventListItemResponseDataDeploymentCreated = { + deploymentGroupId: "", + deploymentId: "", + type: "DeploymentCreated", +}; +``` + +### `models.EventListItemResponseDataDeploymentReleased` + +```typescript +const value: models.EventListItemResponseDataDeploymentReleased = { + deploymentId: "", + releaseId: "", + type: "DeploymentReleased", +}; +``` + +### `models.EventListItemResponseDataDeploymentFailed` + +```typescript +const value: models.EventListItemResponseDataDeploymentFailed = { + deploymentId: "", + error: { + code: "", + internal: false, + message: "", + }, + phase: "provisioning", + type: "DeploymentFailed", +}; +``` + +### `models.EventListItemResponseDataDeploymentDegraded` + +```typescript +const value: models.EventListItemResponseDataDeploymentDegraded = { + deploymentId: "", + error: { + code: "", + internal: false, + message: "", + }, + type: "DeploymentDegraded", +}; +``` + +### `models.EventListItemResponseDataDeploymentRecovered` + +```typescript +const value: models.EventListItemResponseDataDeploymentRecovered = { + deploymentId: "", + releaseId: "", + type: "DeploymentRecovered", +}; +``` + +### `models.EventListItemResponseDataDeploymentDeleted` + +```typescript +const value: models.EventListItemResponseDataDeploymentDeleted = { + deploymentId: "", + type: "DeploymentDeleted", +}; +``` + +### `models.EventListItemResponseDataReleaseChannelUpdated` + +```typescript +const value: models.EventListItemResponseDataReleaseChannelUpdated = { + channel: "", + releaseId: "", + type: "ReleaseChannelUpdated", +}; +``` + +### `models.EventListItemResponseDataDeploymentReleaseChannelChanged` + +```typescript +const value: models.EventListItemResponseDataDeploymentReleaseChannelChanged = { + channel: "", + deploymentId: "", + previousChannel: "", + type: "DeploymentReleaseChannelChanged", +}; +``` + +### `models.EventListItemResponseDataDeploymentRetryRequested` + +```typescript +const value: models.EventListItemResponseDataDeploymentRetryRequested = { + deploymentId: "", + type: "DeploymentRetryRequested", +}; +``` + +### `models.EventListItemResponseDataDeploymentRedeployRequested` + +```typescript +const value: models.EventListItemResponseDataDeploymentRedeployRequested = { + deploymentId: "", + releaseId: "", + type: "DeploymentRedeployRequested", +}; +``` + +### `models.EventListItemResponseDataDeploymentReleasePinned` + +```typescript +const value: models.EventListItemResponseDataDeploymentReleasePinned = { + deploymentId: "", + pinnedReleaseId: "", + type: "DeploymentReleasePinned", +}; +``` + +### `models.EventListItemResponseDataDeploymentReleaseUnpinned` + +```typescript +const value: models.EventListItemResponseDataDeploymentReleaseUnpinned = { + deploymentId: "", + previousPinnedReleaseId: "", + type: "DeploymentReleaseUnpinned", +}; +``` + +### `models.EventListItemResponseDataDeploymentEnvironmentUpdated` + +```typescript +const value: models.EventListItemResponseDataDeploymentEnvironmentUpdated = { + changedKeys: [ + "", + ], + deploymentId: "", + type: "DeploymentEnvironmentUpdated", +}; +``` + +### `models.EventListItemResponseDataDeploymentDeletionRequested` + +```typescript +const value: models.EventListItemResponseDataDeploymentDeletionRequested = { + deploymentId: "", + type: "DeploymentDeletionRequested", +}; +``` diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataupdatingagent.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataupdatingagent.md new file mode 100644 index 000000000..a5dc75ab6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedataupdatingagent.md @@ -0,0 +1,21 @@ +# EventListItemResponseDataUpdatingAgent + +## Example Usage + +```typescript +import { EventListItemResponseDataUpdatingAgent } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDataUpdatingAgent = { + agentId: "", + releaseId: "", + type: "UpdatingAgent", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------- | ------------------------------------------------- | +| `agentId` | *string* | :heavy_check_mark: | ID of the agent being updated | +| `releaseId` | *string* | :heavy_check_mark: | ID of the new release being deployed to the agent | +| `type` | *"UpdatingAgent"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsedependency.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedependency.md new file mode 100644 index 000000000..bdd814943 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsedependency.md @@ -0,0 +1,21 @@ +# EventListItemResponseDependency + +Reference to a resource by its stable id and resource type. + +## Example Usage + +```typescript +import { EventListItemResponseDependency } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseDependency = { + id: "", + type: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | N/A | +| `type` | *string* | :heavy_check_mark: | Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponseerrorfailed.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponseerrorfailed.md new file mode 100644 index 000000000..dc415d817 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponseerrorfailed.md @@ -0,0 +1,34 @@ +# EventListItemResponseErrorFailed + +Canonical error container that provides a structured way to represent errors +with rich metadata including error codes, human-readable messages, context, +and chaining capabilities for error propagation. + +This struct is designed to be both machine-readable and user-friendly, +supporting serialization for API responses and detailed error reporting +in distributed systems. + +## Example Usage + +```typescript +import { EventListItemResponseErrorFailed } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseErrorFailed = { + code: "", + internal: false, + message: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `code` | *string* | :heavy_check_mark: | A unique identifier for the type of error.

This should be a short, machine-readable string that can be used
by clients to programmatically handle different error types.
Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" | +| `context` | *any* | :heavy_minus_sign: | Additional diagnostic information about the error context.

This optional field can contain structured data providing more details
about the error, such as validation errors, request parameters that
caused the issue, or other relevant context information. | +| `hint` | *string* | :heavy_minus_sign: | Optional human-facing remediation hint. | +| `httpStatusCode` | *number* | :heavy_minus_sign: | HTTP status code for this error.

Used when converting the error to an HTTP response. If None, falls back to
the error type's default status code or 500. | +| `internal` | *boolean* | :heavy_check_mark: | Indicates if this is an internal error that should not be exposed to users.

When `true`, this error contains sensitive information or implementation
details that should not be shown to end-users. Such errors should be
logged for debugging but replaced with generic error messages in responses. | +| `message` | *string* | :heavy_check_mark: | Human-readable error message.

This message should be clear and actionable for developers or end-users,
providing context about what went wrong and potentially how to fix it. | +| `retryable` | *boolean* | :heavy_minus_sign: | Indicates whether the operation that caused the error should be retried.

When `true`, the error is transient and the operation might succeed
if attempted again. When `false`, retrying the same operation is
unlikely to succeed without changes. | +| `source` | *any* | :heavy_minus_sign: | The underlying error that caused this error, creating an error chain.

This allows for proper error propagation and debugging by maintaining
the full context of how an error occurred through multiple layers
of an application. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponseerrornextstate.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponseerrornextstate.md new file mode 100644 index 000000000..7c4011533 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponseerrornextstate.md @@ -0,0 +1,34 @@ +# EventListItemResponseErrorNextState + +Canonical error container that provides a structured way to represent errors +with rich metadata including error codes, human-readable messages, context, +and chaining capabilities for error propagation. + +This struct is designed to be both machine-readable and user-friendly, +supporting serialization for API responses and detailed error reporting +in distributed systems. + +## Example Usage + +```typescript +import { EventListItemResponseErrorNextState } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseErrorNextState = { + code: "", + internal: true, + message: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `code` | *string* | :heavy_check_mark: | A unique identifier for the type of error.

This should be a short, machine-readable string that can be used
by clients to programmatically handle different error types.
Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" | +| `context` | *any* | :heavy_minus_sign: | Additional diagnostic information about the error context.

This optional field can contain structured data providing more details
about the error, such as validation errors, request parameters that
caused the issue, or other relevant context information. | +| `hint` | *string* | :heavy_minus_sign: | Optional human-facing remediation hint. | +| `httpStatusCode` | *number* | :heavy_minus_sign: | HTTP status code for this error.

Used when converting the error to an HTTP response. If None, falls back to
the error type's default status code or 500. | +| `internal` | *boolean* | :heavy_check_mark: | Indicates if this is an internal error that should not be exposed to users.

When `true`, this error contains sensitive information or implementation
details that should not be shown to end-users. Such errors should be
logged for debugging but replaced with generic error messages in responses. | +| `message` | *string* | :heavy_check_mark: | Human-readable error message.

This message should be clear and actionable for developers or end-users,
providing context about what went wrong and potentially how to fix it. | +| `retryable` | *boolean* | :heavy_minus_sign: | Indicates whether the operation that caused the error should be retried.

When `true`, the error is transient and the operation might succeed
if attempted again. When `false`, retrying the same operation is
unlikely to succeed without changes. | +| `source` | *any* | :heavy_minus_sign: | The underlying error that caused this error, creating an error chain.

This allows for proper error propagation and debugging by maintaining
the full context of how an error occurred through multiple layers
of an application. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsefailed.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsefailed.md new file mode 100644 index 000000000..17e2c4839 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsefailed.md @@ -0,0 +1,17 @@ +# EventListItemResponseFailed + +Event failed with an error + +## Example Usage + +```typescript +import { EventListItemResponseFailed } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseFailed = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | +| `error` | *models.EventListItemResponseFailedErrorUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsefailederrorunion.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsefailederrorunion.md new file mode 100644 index 000000000..7152cb315 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsefailederrorunion.md @@ -0,0 +1,20 @@ +# EventListItemResponseFailedErrorUnion + + +## Supported Types + +### `models.EventListItemResponseErrorFailed` + +```typescript +const value: models.EventListItemResponseErrorFailed = { + code: "", + internal: false, + message: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsekind1.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsekind1.md new file mode 100644 index 000000000..3803468d8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsekind1.md @@ -0,0 +1,17 @@ +# EventListItemResponseKind1 + +Type of authenticated principal that requested an event. + +## Example Usage + +```typescript +import { EventListItemResponseKind1 } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseKind1 = "serviceAccount"; +``` + +## Values + +```typescript +"user" | "serviceAccount" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsekind2.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsekind2.md new file mode 100644 index 000000000..baf3a55b3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsekind2.md @@ -0,0 +1,17 @@ +# EventListItemResponseKind2 + +Type of authenticated principal that requested an event. + +## Example Usage + +```typescript +import { EventListItemResponseKind2 } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseKind2 = "user"; +``` + +## Values + +```typescript +"user" | "serviceAccount" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsekind3.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsekind3.md new file mode 100644 index 000000000..c3ab9b59e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsekind3.md @@ -0,0 +1,17 @@ +# EventListItemResponseKind3 + +Type of authenticated principal that requested an event. + +## Example Usage + +```typescript +import { EventListItemResponseKind3 } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseKind3 = "serviceAccount"; +``` + +## Values + +```typescript +"user" | "serviceAccount" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsekind4.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsekind4.md new file mode 100644 index 000000000..25cc9b1e7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsekind4.md @@ -0,0 +1,17 @@ +# EventListItemResponseKind4 + +Type of authenticated principal that requested an event. + +## Example Usage + +```typescript +import { EventListItemResponseKind4 } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseKind4 = "user"; +``` + +## Values + +```typescript +"user" | "serviceAccount" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponselifecycleenum.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponselifecycleenum.md new file mode 100644 index 000000000..b3d19969d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponselifecycleenum.md @@ -0,0 +1,17 @@ +# EventListItemResponseLifecycleEnum + +Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + +## Example Usage + +```typescript +import { EventListItemResponseLifecycleEnum } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseLifecycleEnum = "live"; +``` + +## Values + +```typescript +"frozen" | "live" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponselifecycleunion.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponselifecycleunion.md new file mode 100644 index 000000000..3027b6453 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponselifecycleunion.md @@ -0,0 +1,16 @@ +# EventListItemResponseLifecycleUnion + + +## Supported Types + +### `models.EventListItemResponseLifecycleEnum` + +```typescript +const value: models.EventListItemResponseLifecycleEnum = "live"; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsenextstate.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsenextstate.md new file mode 100644 index 000000000..f75b08b88 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsenextstate.md @@ -0,0 +1,32 @@ +# EventListItemResponseNextState + +Represents the collective state of all resources in a stack, including platform and pending actions. + +## Example Usage + +```typescript +import { EventListItemResponseNextState } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseNextState = { + platform: "local", + resourcePrefix: "", + resources: { + "key": { + config: { + id: "", + type: "", + }, + status: "delete-failed", + type: "", + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | +| `platform` | [models.EventListItemResponsePlatform](../models/eventlistitemresponseplatform.md) | :heavy_check_mark: | Represents the target cloud platform. | +| `resourcePrefix` | *string* | :heavy_check_mark: | A prefix used for resource naming to ensure uniqueness across deployments. | +| `resources` | Record | :heavy_check_mark: | The state of individual resources, keyed by resource ID. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsenextstateerrorunion.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsenextstateerrorunion.md new file mode 100644 index 000000000..b3a714e6c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsenextstateerrorunion.md @@ -0,0 +1,20 @@ +# EventListItemResponseNextStateErrorUnion + + +## Supported Types + +### `models.EventListItemResponseErrorNextState` + +```typescript +const value: models.EventListItemResponseErrorNextState = { + code: "", + internal: true, + message: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponseoutputs.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponseoutputs.md new file mode 100644 index 000000000..103a36ad9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponseoutputs.md @@ -0,0 +1,20 @@ +# EventListItemResponseOutputs + +Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties. + +## Example Usage + +```typescript +import { EventListItemResponseOutputs } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseOutputs = { + type: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | *string* | :heavy_check_mark: | Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. | +| `additionalProperties` | Record | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponseoutputsunion.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponseoutputsunion.md new file mode 100644 index 000000000..5680c512a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponseoutputsunion.md @@ -0,0 +1,18 @@ +# EventListItemResponseOutputsUnion + + +## Supported Types + +### `models.EventListItemResponseOutputs` + +```typescript +const value: models.EventListItemResponseOutputs = { + type: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsephase.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsephase.md new file mode 100644 index 000000000..36f415dea --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsephase.md @@ -0,0 +1,22 @@ +# EventListItemResponsePhase + +Phase of a deployment at which a failure occurred. + +Derived from the source deployment status: `preflights-failed` → +`Preflights`, `provisioning-failed` → `Provisioning`, `update-failed` → +`Updating`, `delete-failed` → `Deleting`. +`refresh-failed` is modelled separately via `DeploymentDegraded`. + +## Example Usage + +```typescript +import { EventListItemResponsePhase } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponsePhase = "deleting"; +``` + +## Values + +```typescript +"preflights" | "provisioning" | "updating" | "deleting" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponseplatform.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponseplatform.md new file mode 100644 index 000000000..854e000fe --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponseplatform.md @@ -0,0 +1,17 @@ +# EventListItemResponsePlatform + +Represents the target cloud platform. + +## Example Usage + +```typescript +import { EventListItemResponsePlatform } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponsePlatform = "gcp"; +``` + +## Values + +```typescript +"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsepreviousconfig.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsepreviousconfig.md new file mode 100644 index 000000000..14ca5d421 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsepreviousconfig.md @@ -0,0 +1,22 @@ +# EventListItemResponsePreviousConfig + +Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + +## Example Usage + +```typescript +import { EventListItemResponsePreviousConfig } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponsePreviousConfig = { + id: "", + type: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. | +| `type` | *string* | :heavy_check_mark: | Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. | +| `additionalProperties` | Record | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsepreviousconfigunion.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsepreviousconfigunion.md new file mode 100644 index 000000000..d33efe6ab --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsepreviousconfigunion.md @@ -0,0 +1,19 @@ +# EventListItemResponsePreviousConfigUnion + + +## Supported Types + +### `models.EventListItemResponsePreviousConfig` + +```typescript +const value: models.EventListItemResponsePreviousConfig = { + id: "", + type: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsepreviouserror.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsepreviouserror.md new file mode 100644 index 000000000..138d9a1bf --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsepreviouserror.md @@ -0,0 +1,34 @@ +# EventListItemResponsePreviousError + +Canonical error container that provides a structured way to represent errors +with rich metadata including error codes, human-readable messages, context, +and chaining capabilities for error propagation. + +This struct is designed to be both machine-readable and user-friendly, +supporting serialization for API responses and detailed error reporting +in distributed systems. + +## Example Usage + +```typescript +import { EventListItemResponsePreviousError } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponsePreviousError = { + code: "", + internal: false, + message: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `code` | *string* | :heavy_check_mark: | A unique identifier for the type of error.

This should be a short, machine-readable string that can be used
by clients to programmatically handle different error types.
Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" | +| `context` | *any* | :heavy_minus_sign: | Additional diagnostic information about the error context.

This optional field can contain structured data providing more details
about the error, such as validation errors, request parameters that
caused the issue, or other relevant context information. | +| `hint` | *string* | :heavy_minus_sign: | Optional human-facing remediation hint. | +| `httpStatusCode` | *number* | :heavy_minus_sign: | HTTP status code for this error.

Used when converting the error to an HTTP response. If None, falls back to
the error type's default status code or 500. | +| `internal` | *boolean* | :heavy_check_mark: | Indicates if this is an internal error that should not be exposed to users.

When `true`, this error contains sensitive information or implementation
details that should not be shown to end-users. Such errors should be
logged for debugging but replaced with generic error messages in responses. | +| `message` | *string* | :heavy_check_mark: | Human-readable error message.

This message should be clear and actionable for developers or end-users,
providing context about what went wrong and potentially how to fix it. | +| `retryable` | *boolean* | :heavy_minus_sign: | Indicates whether the operation that caused the error should be retried.

When `true`, the error is transient and the operation might succeed
if attempted again. When `false`, retrying the same operation is
unlikely to succeed without changes. | +| `source` | *any* | :heavy_minus_sign: | The underlying error that caused this error, creating an error chain.

This allows for proper error propagation and debugging by maintaining
the full context of how an error occurred through multiple layers
of an application. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsepreviouserrorunion.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsepreviouserrorunion.md new file mode 100644 index 000000000..baff5dec3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsepreviouserrorunion.md @@ -0,0 +1,20 @@ +# EventListItemResponsePreviousErrorUnion + + +## Supported Types + +### `models.EventListItemResponsePreviousError` + +```typescript +const value: models.EventListItemResponsePreviousError = { + code: "", + internal: false, + message: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponseprogress.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponseprogress.md new file mode 100644 index 000000000..c9fa81e92 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponseprogress.md @@ -0,0 +1,27 @@ +# EventListItemResponseProgress + +Progress information for image push operations + +## Example Usage + +```typescript +import { EventListItemResponseProgress } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseProgress = { + bytesUploaded: 810913, + layersUploaded: 441338, + operation: "", + totalBytes: 43935, + totalLayers: 949681, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------- | --------------------------------- | --------------------------------- | --------------------------------- | +| `bytesUploaded` | *number* | :heavy_check_mark: | Bytes uploaded so far | +| `layersUploaded` | *number* | :heavy_check_mark: | Number of layers uploaded so far | +| `operation` | *string* | :heavy_check_mark: | Current operation being performed | +| `totalBytes` | *number* | :heavy_check_mark: | Total bytes to upload | +| `totalLayers` | *number* | :heavy_check_mark: | Total number of layers to upload | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponseprogressunion.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponseprogressunion.md new file mode 100644 index 000000000..6c6302875 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponseprogressunion.md @@ -0,0 +1,22 @@ +# EventListItemResponseProgressUnion + + +## Supported Types + +### `models.EventListItemResponseProgress` + +```typescript +const value: models.EventListItemResponseProgress = { + bytesUploaded: 810913, + layersUploaded: 441338, + operation: "", + totalBytes: 43935, + totalLayers: 949681, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponseresources.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponseresources.md new file mode 100644 index 000000000..197207d32 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponseresources.md @@ -0,0 +1,36 @@ +# EventListItemResponseResources + +Represents the state of a single resource within the stack for a specific platform. + +## Example Usage + +```typescript +import { EventListItemResponseResources } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseResources = { + config: { + id: "", + type: "", + }, + status: "pending", + type: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `internal` | *any* | :heavy_minus_sign: | The platform-specific resource controller that manages this resource's lifecycle.
This is None when the resource status is Pending.
Stored as JSON to make the struct serializable and movable to alien-core. | +| `config` | [models.EventListItemResponseConfig](../models/eventlistitemresponseconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | +| `controllerPlatform` | *models.EventListItemResponseControllerPlatformUnion* | :heavy_minus_sign: | N/A | +| `dependencies` | [models.EventListItemResponseDependency](../models/eventlistitemresponsedependency.md)[] | :heavy_minus_sign: | Complete list of dependencies for this resource, including infrastructure dependencies.
This preserves the full dependency information from the stack definition. | +| `error` | *models.EventListItemResponseNextStateErrorUnion* | :heavy_minus_sign: | N/A | +| `lastFailedState` | *any* | :heavy_minus_sign: | Stores the controller state that failed, used for manual retry operations.
This allows resuming from the exact point where the failure occurred.
Stored as JSON to make the struct serializable and movable to alien-core. | +| `lifecycle` | *models.EventListItemResponseLifecycleUnion* | :heavy_minus_sign: | N/A | +| `outputs` | *models.EventListItemResponseOutputsUnion* | :heavy_minus_sign: | N/A | +| `previousConfig` | *models.EventListItemResponsePreviousConfigUnion* | :heavy_minus_sign: | N/A | +| `remoteBindingParams` | *any* | :heavy_minus_sign: | Binding parameters for remote access.
Only populated when the resource has `remote_access: true` in its ResourceEntry.
This is the JSON serialization of the binding configuration (e.g., StorageBinding, VaultBinding).
Populated by controllers during provisioning using get_binding_params(). | +| `retryAttempt` | *number* | :heavy_minus_sign: | Tracks consecutive retry attempts for the current state transition. | +| `status` | [models.EventListItemResponseStatus](../models/eventlistitemresponsestatus.md) | :heavy_check_mark: | Represents the high-level status of a resource during its lifecycle. | +| `type` | *string* | :heavy_check_mark: | The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE). | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsestate.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsestate.md new file mode 100644 index 000000000..8516abc05 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsestate.md @@ -0,0 +1,17 @@ +# EventListItemResponseState + +## Example Usage + +```typescript +import { EventListItemResponseState } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseState = { + failed: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `failed` | [models.EventListItemResponseFailed](../models/eventlistitemresponsefailed.md) | :heavy_check_mark: | Event failed with an error | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsestatenone.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsestatenone.md new file mode 100644 index 000000000..6a3dd455e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsestatenone.md @@ -0,0 +1,15 @@ +# EventListItemResponseStateNone + +## Example Usage + +```typescript +import { EventListItemResponseStateNone } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseStateNone = "none"; +``` + +## Values + +```typescript +"none" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsestatestarted.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsestatestarted.md new file mode 100644 index 000000000..8bdb77b11 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsestatestarted.md @@ -0,0 +1,15 @@ +# EventListItemResponseStateStarted + +## Example Usage + +```typescript +import { EventListItemResponseStateStarted } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseStateStarted = "started"; +``` + +## Values + +```typescript +"started" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsestatesuccess.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsestatesuccess.md new file mode 100644 index 000000000..4080d2048 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsestatesuccess.md @@ -0,0 +1,15 @@ +# EventListItemResponseStateSuccess + +## Example Usage + +```typescript +import { EventListItemResponseStateSuccess } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseStateSuccess = "success"; +``` + +## Values + +```typescript +"success" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsestateunion.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsestateunion.md new file mode 100644 index 000000000..fa3ae5291 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsestateunion.md @@ -0,0 +1,32 @@ +# EventListItemResponseStateUnion + +Represents the state of an event + + +## Supported Types + +### `models.EventListItemResponseState` + +```typescript +const value: models.EventListItemResponseState = { + failed: {}, +}; +``` + +### `models.EventListItemResponseStateNone` + +```typescript +const value: models.EventListItemResponseStateNone = "none"; +``` + +### `models.EventListItemResponseStateStarted` + +```typescript +const value: models.EventListItemResponseStateStarted = "started"; +``` + +### `models.EventListItemResponseStateSuccess` + +```typescript +const value: models.EventListItemResponseStateSuccess = "success"; +``` diff --git a/client-sdks/platform/typescript/docs/models/eventlistitemresponsestatus.md b/client-sdks/platform/typescript/docs/models/eventlistitemresponsestatus.md new file mode 100644 index 000000000..94c4a605a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventlistitemresponsestatus.md @@ -0,0 +1,17 @@ +# EventListItemResponseStatus + +Represents the high-level status of a resource during its lifecycle. + +## Example Usage + +```typescript +import { EventListItemResponseStatus } from "@alienplatform/platform-api/models"; + +let value: EventListItemResponseStatus = "delete-failed"; +``` + +## Values + +```typescript +"pending" | "provisioning" | "provision-failed" | "running" | "updating" | "update-failed" | "deleting" | "delete-failed" | "teardown-required" | "deleted" | "refresh-failed" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventnextstate.md b/client-sdks/platform/typescript/docs/models/eventnextstate.md new file mode 100644 index 000000000..0f2d6d045 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventnextstate.md @@ -0,0 +1,23 @@ +# EventNextState + +Represents the collective state of all resources in a stack, including platform and pending actions. + +## Example Usage + +```typescript +import { EventNextState } from "@alienplatform/platform-api/models"; + +let value: EventNextState = { + platform: "machines", + resourcePrefix: "", + resources: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `platform` | [models.EventPlatform](../models/eventplatform.md) | :heavy_check_mark: | Represents the target cloud platform. | +| `resourcePrefix` | *string* | :heavy_check_mark: | A prefix used for resource naming to ensure uniqueness across deployments. | +| `resources` | Record | :heavy_check_mark: | The state of individual resources, keyed by resource ID. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventnextstateerrorunion.md b/client-sdks/platform/typescript/docs/models/eventnextstateerrorunion.md new file mode 100644 index 000000000..8c6fa0450 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventnextstateerrorunion.md @@ -0,0 +1,20 @@ +# EventNextStateErrorUnion + + +## Supported Types + +### `models.EventErrorNextState` + +```typescript +const value: models.EventErrorNextState = { + code: "", + internal: true, + message: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/eventoutputsunion.md b/client-sdks/platform/typescript/docs/models/eventoutputsunion.md index a50a659f5..a0414229f 100644 --- a/client-sdks/platform/typescript/docs/models/eventoutputsunion.md +++ b/client-sdks/platform/typescript/docs/models/eventoutputsunion.md @@ -16,4 +16,3 @@ const value: models.EventOutputs = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/eventphase.md b/client-sdks/platform/typescript/docs/models/eventphase.md new file mode 100644 index 000000000..6f3ad6b22 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventphase.md @@ -0,0 +1,22 @@ +# EventPhase + +Phase of a deployment at which a failure occurred. + +Derived from the source deployment status: `preflights-failed` → +`Preflights`, `provisioning-failed` → `Provisioning`, `update-failed` → +`Updating`, `delete-failed` → `Deleting`. +`refresh-failed` is modelled separately via `DeploymentDegraded`. + +## Example Usage + +```typescript +import { EventPhase } from "@alienplatform/platform-api/models"; + +let value: EventPhase = "deleting"; +``` + +## Values + +```typescript +"preflights" | "provisioning" | "updating" | "deleting" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventpreviousconfigunion.md b/client-sdks/platform/typescript/docs/models/eventpreviousconfigunion.md index d5a119649..87b88f20d 100644 --- a/client-sdks/platform/typescript/docs/models/eventpreviousconfigunion.md +++ b/client-sdks/platform/typescript/docs/models/eventpreviousconfigunion.md @@ -17,4 +17,3 @@ const value: models.EventPreviousConfig = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/eventpreviouserror.md b/client-sdks/platform/typescript/docs/models/eventpreviouserror.md new file mode 100644 index 000000000..1876179e6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventpreviouserror.md @@ -0,0 +1,34 @@ +# EventPreviousError + +Canonical error container that provides a structured way to represent errors +with rich metadata including error codes, human-readable messages, context, +and chaining capabilities for error propagation. + +This struct is designed to be both machine-readable and user-friendly, +supporting serialization for API responses and detailed error reporting +in distributed systems. + +## Example Usage + +```typescript +import { EventPreviousError } from "@alienplatform/platform-api/models"; + +let value: EventPreviousError = { + code: "", + internal: true, + message: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `code` | *string* | :heavy_check_mark: | A unique identifier for the type of error.

This should be a short, machine-readable string that can be used
by clients to programmatically handle different error types.
Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" | +| `context` | *any* | :heavy_minus_sign: | Additional diagnostic information about the error context.

This optional field can contain structured data providing more details
about the error, such as validation errors, request parameters that
caused the issue, or other relevant context information. | +| `hint` | *string* | :heavy_minus_sign: | Optional human-facing remediation hint. | +| `httpStatusCode` | *number* | :heavy_minus_sign: | HTTP status code for this error.

Used when converting the error to an HTTP response. If None, falls back to
the error type's default status code or 500. | +| `internal` | *boolean* | :heavy_check_mark: | Indicates if this is an internal error that should not be exposed to users.

When `true`, this error contains sensitive information or implementation
details that should not be shown to end-users. Such errors should be
logged for debugging but replaced with generic error messages in responses. | +| `message` | *string* | :heavy_check_mark: | Human-readable error message.

This message should be clear and actionable for developers or end-users,
providing context about what went wrong and potentially how to fix it. | +| `retryable` | *boolean* | :heavy_minus_sign: | Indicates whether the operation that caused the error should be retried.

When `true`, the error is transient and the operation might succeed
if attempted again. When `false`, retrying the same operation is
unlikely to succeed without changes. | +| `source` | *any* | :heavy_minus_sign: | The underlying error that caused this error, creating an error chain.

This allows for proper error propagation and debugging by maintaining
the full context of how an error occurred through multiple layers
of an application. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventpreviouserrorunion.md b/client-sdks/platform/typescript/docs/models/eventpreviouserrorunion.md new file mode 100644 index 000000000..9f0fe2101 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventpreviouserrorunion.md @@ -0,0 +1,20 @@ +# EventPreviousErrorUnion + + +## Supported Types + +### `models.EventPreviousError` + +```typescript +const value: models.EventPreviousError = { + code: "", + internal: true, + message: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/eventprogress.md b/client-sdks/platform/typescript/docs/models/eventprogress.md new file mode 100644 index 000000000..c0ac3064a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventprogress.md @@ -0,0 +1,27 @@ +# EventProgress + +Progress information for image push operations + +## Example Usage + +```typescript +import { EventProgress } from "@alienplatform/platform-api/models"; + +let value: EventProgress = { + bytesUploaded: 376832, + layersUploaded: 873781, + operation: "", + totalBytes: 861993, + totalLayers: 202100, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------- | --------------------------------- | --------------------------------- | --------------------------------- | +| `bytesUploaded` | *number* | :heavy_check_mark: | Bytes uploaded so far | +| `layersUploaded` | *number* | :heavy_check_mark: | Number of layers uploaded so far | +| `operation` | *string* | :heavy_check_mark: | Current operation being performed | +| `totalBytes` | *number* | :heavy_check_mark: | Total bytes to upload | +| `totalLayers` | *number* | :heavy_check_mark: | Total number of layers to upload | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventprogressunion.md b/client-sdks/platform/typescript/docs/models/eventprogressunion.md new file mode 100644 index 000000000..80c5ab297 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventprogressunion.md @@ -0,0 +1,22 @@ +# EventProgressUnion + + +## Supported Types + +### `models.EventProgress` + +```typescript +const value: models.EventProgress = { + bytesUploaded: 376832, + layersUploaded: 873781, + operation: "", + totalBytes: 861993, + totalLayers: 202100, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/eventresources.md b/client-sdks/platform/typescript/docs/models/eventresources.md index 3abda9401..5c604f1a0 100644 --- a/client-sdks/platform/typescript/docs/models/eventresources.md +++ b/client-sdks/platform/typescript/docs/models/eventresources.md @@ -25,7 +25,7 @@ let value: EventResources = { | `config` | [models.EventConfig](../models/eventconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | | `controllerPlatform` | *models.EventControllerPlatformUnion* | :heavy_minus_sign: | N/A | | `dependencies` | [models.EventDependency](../models/eventdependency.md)[] | :heavy_minus_sign: | Complete list of dependencies for this resource, including infrastructure dependencies.
This preserves the full dependency information from the stack definition. | -| `error` | *models.NextStateErrorUnion* | :heavy_minus_sign: | N/A | +| `error` | *models.EventNextStateErrorUnion* | :heavy_minus_sign: | N/A | | `lastFailedState` | *any* | :heavy_minus_sign: | Stores the controller state that failed, used for manual retry operations.
This allows resuming from the exact point where the failure occurred.
Stored as JSON to make the struct serializable and movable to alien-core. | | `lifecycle` | *models.EventLifecycleUnion* | :heavy_minus_sign: | N/A | | `outputs` | *models.EventOutputsUnion* | :heavy_minus_sign: | N/A | diff --git a/client-sdks/platform/typescript/docs/models/eventstate.md b/client-sdks/platform/typescript/docs/models/eventstate.md index 9bd2f980f..2cb58aa37 100644 --- a/client-sdks/platform/typescript/docs/models/eventstate.md +++ b/client-sdks/platform/typescript/docs/models/eventstate.md @@ -12,6 +12,6 @@ let value: EventState = { ## Fields -| Field | Type | Required | Description | -| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | -| `failed` | [models.Failed](../models/failed.md) | :heavy_check_mark: | Event failed with an error | \ No newline at end of file +| Field | Type | Required | Description | +| ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | ---------------------------------------------- | +| `failed` | [models.EventFailed](../models/eventfailed.md) | :heavy_check_mark: | Event failed with an error | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventstatenone.md b/client-sdks/platform/typescript/docs/models/eventstatenone.md new file mode 100644 index 000000000..07983eefc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventstatenone.md @@ -0,0 +1,15 @@ +# EventStateNone + +## Example Usage + +```typescript +import { EventStateNone } from "@alienplatform/platform-api/models"; + +let value: EventStateNone = "none"; +``` + +## Values + +```typescript +"none" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventstatestarted.md b/client-sdks/platform/typescript/docs/models/eventstatestarted.md new file mode 100644 index 000000000..42994ff52 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventstatestarted.md @@ -0,0 +1,15 @@ +# EventStateStarted + +## Example Usage + +```typescript +import { EventStateStarted } from "@alienplatform/platform-api/models"; + +let value: EventStateStarted = "started"; +``` + +## Values + +```typescript +"started" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventstatesuccess.md b/client-sdks/platform/typescript/docs/models/eventstatesuccess.md new file mode 100644 index 000000000..0b297296a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventstatesuccess.md @@ -0,0 +1,15 @@ +# EventStateSuccess + +## Example Usage + +```typescript +import { EventStateSuccess } from "@alienplatform/platform-api/models"; + +let value: EventStateSuccess = "success"; +``` + +## Values + +```typescript +"success" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/eventstateunion.md b/client-sdks/platform/typescript/docs/models/eventstateunion.md new file mode 100644 index 000000000..b881a2a22 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/eventstateunion.md @@ -0,0 +1,32 @@ +# EventStateUnion + +Represents the state of an event + + +## Supported Types + +### `models.EventState` + +```typescript +const value: models.EventState = { + failed: {}, +}; +``` + +### `models.EventStateNone` + +```typescript +const value: models.EventStateNone = "none"; +``` + +### `models.EventStateStarted` + +```typescript +const value: models.EventStateStarted = "started"; +``` + +### `models.EventStateSuccess` + +```typescript +const value: models.EventStateSuccess = "success"; +``` diff --git a/client-sdks/platform/typescript/docs/models/extendreleaseinfoconditionunion.md b/client-sdks/platform/typescript/docs/models/extendreleaseinfoconditionunion.md index 1e05ea001..11589e35c 100644 --- a/client-sdks/platform/typescript/docs/models/extendreleaseinfoconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/extendreleaseinfoconditionunion.md @@ -17,4 +17,3 @@ const value: models.ExtendConditionReleaseInfo = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/extendreleaseinforesourceconditionunion.md b/client-sdks/platform/typescript/docs/models/extendreleaseinforesourceconditionunion.md index 04c45ae6e..cff8eb94e 100644 --- a/client-sdks/platform/typescript/docs/models/extendreleaseinforesourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/extendreleaseinforesourceconditionunion.md @@ -17,4 +17,3 @@ const value: models.ExtendConditionReleaseInfoResource = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/failed.md b/client-sdks/platform/typescript/docs/models/failed.md deleted file mode 100644 index 44e948358..000000000 --- a/client-sdks/platform/typescript/docs/models/failed.md +++ /dev/null @@ -1,17 +0,0 @@ -# Failed - -Event failed with an error - -## Example Usage - -```typescript -import { Failed } from "@alienplatform/platform-api/models"; - -let value: Failed = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------- | ------------------------- | ------------------------- | ------------------------- | -| `error` | *models.FailedErrorUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/failederrorunion.md b/client-sdks/platform/typescript/docs/models/failederrorunion.md deleted file mode 100644 index 92d60bd09..000000000 --- a/client-sdks/platform/typescript/docs/models/failederrorunion.md +++ /dev/null @@ -1,21 +0,0 @@ -# FailedErrorUnion - - -## Supported Types - -### `models.ErrorFailed` - -```typescript -const value: models.ErrorFailed = { - code: "", - internal: true, - message: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/forwardimportrequest.md b/client-sdks/platform/typescript/docs/models/forwardimportrequest.md index 7e5bd6b51..a70452286 100644 --- a/client-sdks/platform/typescript/docs/models/forwardimportrequest.md +++ b/client-sdks/platform/typescript/docs/models/forwardimportrequest.md @@ -23,7 +23,11 @@ let value: ForwardImportRequest = { { id: "", type: "", - importData: {}, + importData: { + "key": "", + "key1": "", + "key2": "", + }, }, ], }, diff --git a/client-sdks/platform/typescript/docs/models/generatemanagerbindingtokenrequest.md b/client-sdks/platform/typescript/docs/models/generatemanagerbindingtokenrequest.md new file mode 100644 index 000000000..7955ef1f8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/generatemanagerbindingtokenrequest.md @@ -0,0 +1,17 @@ +# GenerateManagerBindingTokenRequest + +## Example Usage + +```typescript +import { GenerateManagerBindingTokenRequest } from "@alienplatform/platform-api/models"; + +let value: GenerateManagerBindingTokenRequest = { + deploymentId: "dep_0c29fq4a2yjb7kx3smwdgxlc", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------- | ------------------------------------- | ------------------------------------- | ------------------------------------- | ------------------------------------- | +| `deploymentId` | *string* | :heavy_check_mark: | Unique identifier for the deployment. | dep_0c29fq4a2yjb7kx3smwdgxlc | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/generatemanagerbindingtokenresponse.md b/client-sdks/platform/typescript/docs/models/generatemanagerbindingtokenresponse.md new file mode 100644 index 000000000..c40ac8d17 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/generatemanagerbindingtokenresponse.md @@ -0,0 +1,23 @@ +# GenerateManagerBindingTokenResponse + +## Example Usage + +```typescript +import { GenerateManagerBindingTokenResponse } from "@alienplatform/platform-api/models"; + +let value: GenerateManagerBindingTokenResponse = { + accessToken: "", + expiresIn: null, + tokenType: "Bearer", + managerUrl: "https://spiteful-pearl.org", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| `accessToken` | *string* | :heavy_check_mark: | N/A | +| `expiresIn` | *number* | :heavy_check_mark: | N/A | +| `tokenType` | [models.GenerateManagerBindingTokenResponseTokenType](../models/generatemanagerbindingtokenresponsetokentype.md) | :heavy_check_mark: | N/A | +| `managerUrl` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/generatemanagerbindingtokenresponsetokentype.md b/client-sdks/platform/typescript/docs/models/generatemanagerbindingtokenresponsetokentype.md new file mode 100644 index 000000000..ed60f3bc6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/generatemanagerbindingtokenresponsetokentype.md @@ -0,0 +1,15 @@ +# GenerateManagerBindingTokenResponseTokenType + +## Example Usage + +```typescript +import { GenerateManagerBindingTokenResponseTokenType } from "@alienplatform/platform-api/models"; + +let value: GenerateManagerBindingTokenResponseTokenType = "Bearer"; +``` + +## Values + +```typescript +"Bearer" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/gitprovider.md b/client-sdks/platform/typescript/docs/models/gitprovider.md index 7b53f735a..eddf4db4e 100644 --- a/client-sdks/platform/typescript/docs/models/gitprovider.md +++ b/client-sdks/platform/typescript/docs/models/gitprovider.md @@ -30,4 +30,3 @@ const value: models.GitLabProvider = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/horizonmachineimagetargetazureunion.md b/client-sdks/platform/typescript/docs/models/horizonmachineimagetargetazureunion.md index 09e2d4c6c..640784522 100644 --- a/client-sdks/platform/typescript/docs/models/horizonmachineimagetargetazureunion.md +++ b/client-sdks/platform/typescript/docs/models/horizonmachineimagetargetazureunion.md @@ -20,4 +20,3 @@ const value: models.HorizonMachineImageAzureTarget = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/horizonmachineimagetargetgcpunion.md b/client-sdks/platform/typescript/docs/models/horizonmachineimagetargetgcpunion.md index aa891e705..6e3bb1e8a 100644 --- a/client-sdks/platform/typescript/docs/models/horizonmachineimagetargetgcpunion.md +++ b/client-sdks/platform/typescript/docs/models/horizonmachineimagetargetgcpunion.md @@ -16,4 +16,3 @@ const value: models.HorizonMachineImageGcpTarget = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/importdeploymentrequest.md b/client-sdks/platform/typescript/docs/models/importdeploymentrequest.md index a15c43511..e6d6eaf60 100644 --- a/client-sdks/platform/typescript/docs/models/importdeploymentrequest.md +++ b/client-sdks/platform/typescript/docs/models/importdeploymentrequest.md @@ -26,7 +26,11 @@ const value: models.ForwardImportRequest = { { id: "", type: "", - importData: {}, + importData: { + "key": "", + "key1": "", + "key2": "", + }, }, ], }, @@ -52,4 +56,3 @@ const value: models.PersistImportedDeploymentRequest = { setupFingerprintVersion: 119877, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/importsource.md b/client-sdks/platform/typescript/docs/models/importsource.md index 83fddd6ad..392277c86 100644 --- a/client-sdks/platform/typescript/docs/models/importsource.md +++ b/client-sdks/platform/typescript/docs/models/importsource.md @@ -22,7 +22,11 @@ let value: ImportSource = { { id: "", type: "", - importData: {}, + importData: { + "key": "", + "key1": "", + "key2": "", + }, }, ], }; diff --git a/client-sdks/platform/typescript/docs/models/importsourceawsunion.md b/client-sdks/platform/typescript/docs/models/importsourceawsunion.md index cca00dfa4..e9424b775 100644 --- a/client-sdks/platform/typescript/docs/models/importsourceawsunion.md +++ b/client-sdks/platform/typescript/docs/models/importsourceawsunion.md @@ -16,4 +16,3 @@ const value: models.ImportSourceAws = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/importsourceazureunion.md b/client-sdks/platform/typescript/docs/models/importsourceazureunion.md index 862ac96f5..69cb828f0 100644 --- a/client-sdks/platform/typescript/docs/models/importsourceazureunion.md +++ b/client-sdks/platform/typescript/docs/models/importsourceazureunion.md @@ -16,4 +16,3 @@ const value: models.ImportSourceAzure = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/importsourcecertificateunion1.md b/client-sdks/platform/typescript/docs/models/importsourcecertificateunion1.md index 11246e832..9b8284455 100644 --- a/client-sdks/platform/typescript/docs/models/importsourcecertificateunion1.md +++ b/client-sdks/platform/typescript/docs/models/importsourcecertificateunion1.md @@ -47,4 +47,3 @@ const value: models.ImportSourceCertificateNone1 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/importsourcecertificateunion2.md b/client-sdks/platform/typescript/docs/models/importsourcecertificateunion2.md index 98066d7c5..cd5b62c0c 100644 --- a/client-sdks/platform/typescript/docs/models/importsourcecertificateunion2.md +++ b/client-sdks/platform/typescript/docs/models/importsourcecertificateunion2.md @@ -47,4 +47,3 @@ const value: models.ImportSourceCertificateNone2 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/importsourcecloudunion.md b/client-sdks/platform/typescript/docs/models/importsourcecloudunion.md index 98b64dc1f..1891a67bc 100644 --- a/client-sdks/platform/typescript/docs/models/importsourcecloudunion.md +++ b/client-sdks/platform/typescript/docs/models/importsourcecloudunion.md @@ -14,4 +14,3 @@ const value: models.ImportSourceCloud = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/importsourceclusterunion.md b/client-sdks/platform/typescript/docs/models/importsourceclusterunion.md index c98cf5d4c..e40bdbf8b 100644 --- a/client-sdks/platform/typescript/docs/models/importsourceclusterunion.md +++ b/client-sdks/platform/typescript/docs/models/importsourceclusterunion.md @@ -16,4 +16,3 @@ const value: models.ImportSourceCluster = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/importsourcecomputeunion.md b/client-sdks/platform/typescript/docs/models/importsourcecomputeunion.md index df5ce1c8e..a092f0737 100644 --- a/client-sdks/platform/typescript/docs/models/importsourcecomputeunion.md +++ b/client-sdks/platform/typescript/docs/models/importsourcecomputeunion.md @@ -14,4 +14,3 @@ const value: models.ImportSourceCompute = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/importsourcedomainskubernetesunion.md b/client-sdks/platform/typescript/docs/models/importsourcedomainskubernetesunion.md index f1ce6a26c..4164778ab 100644 --- a/client-sdks/platform/typescript/docs/models/importsourcedomainskubernetesunion.md +++ b/client-sdks/platform/typescript/docs/models/importsourcedomainskubernetesunion.md @@ -18,4 +18,3 @@ const value: models.ImportSourceDomainsKubernetes = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/importsourcedomainsunion.md b/client-sdks/platform/typescript/docs/models/importsourcedomainsunion.md index f67994e8f..eca3e1e13 100644 --- a/client-sdks/platform/typescript/docs/models/importsourcedomainsunion.md +++ b/client-sdks/platform/typescript/docs/models/importsourcedomainsunion.md @@ -14,4 +14,3 @@ const value: models.ImportSourceDomains = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/importsourceexposureunion.md b/client-sdks/platform/typescript/docs/models/importsourceexposureunion.md index 8e38a0a7a..b5cc60baa 100644 --- a/client-sdks/platform/typescript/docs/models/importsourceexposureunion.md +++ b/client-sdks/platform/typescript/docs/models/importsourceexposureunion.md @@ -49,4 +49,3 @@ const value: models.ImportSourceExposureCustom = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/importsourcefailuredomains1.md b/client-sdks/platform/typescript/docs/models/importsourcefailuredomains1.md new file mode 100644 index 000000000..b41f76498 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/importsourcefailuredomains1.md @@ -0,0 +1,20 @@ +# ImportSourceFailureDomains1 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { ImportSourceFailureDomains1 } from "@alienplatform/platform-api/models"; + +let value: ImportSourceFailureDomains1 = { + spread: 679399, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/importsourcefailuredomains2.md b/client-sdks/platform/typescript/docs/models/importsourcefailuredomains2.md new file mode 100644 index 000000000..069518bdf --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/importsourcefailuredomains2.md @@ -0,0 +1,20 @@ +# ImportSourceFailureDomains2 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { ImportSourceFailureDomains2 } from "@alienplatform/platform-api/models"; + +let value: ImportSourceFailureDomains2 = { + spread: 888200, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/importsourcefailuredomainsunion1.md b/client-sdks/platform/typescript/docs/models/importsourcefailuredomainsunion1.md new file mode 100644 index 000000000..65171f455 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/importsourcefailuredomainsunion1.md @@ -0,0 +1,18 @@ +# ImportSourceFailureDomainsUnion1 + + +## Supported Types + +### `models.ImportSourceFailureDomains1` + +```typescript +const value: models.ImportSourceFailureDomains1 = { + spread: 679399, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/importsourcefailuredomainsunion2.md b/client-sdks/platform/typescript/docs/models/importsourcefailuredomainsunion2.md new file mode 100644 index 000000000..ea40dd6a9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/importsourcefailuredomainsunion2.md @@ -0,0 +1,18 @@ +# ImportSourceFailureDomainsUnion2 + + +## Supported Types + +### `models.ImportSourceFailureDomains2` + +```typescript +const value: models.ImportSourceFailureDomains2 = { + spread: 888200, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/importsourcegcpunion.md b/client-sdks/platform/typescript/docs/models/importsourcegcpunion.md index 7e89b19b2..c5148e783 100644 --- a/client-sdks/platform/typescript/docs/models/importsourcegcpunion.md +++ b/client-sdks/platform/typescript/docs/models/importsourcegcpunion.md @@ -16,4 +16,3 @@ const value: models.ImportSourceGcp = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/importsourcekubernetesunion.md b/client-sdks/platform/typescript/docs/models/importsourcekubernetesunion.md index b36a360f0..08bcfcb63 100644 --- a/client-sdks/platform/typescript/docs/models/importsourcekubernetesunion.md +++ b/client-sdks/platform/typescript/docs/models/importsourcekubernetesunion.md @@ -14,4 +14,3 @@ const value: models.ImportSourceKubernetes = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/importsourcemanagementconfigunion.md b/client-sdks/platform/typescript/docs/models/importsourcemanagementconfigunion.md index 6fd04db2f..52a2af72d 100644 --- a/client-sdks/platform/typescript/docs/models/importsourcemanagementconfigunion.md +++ b/client-sdks/platform/typescript/docs/models/importsourcemanagementconfigunion.md @@ -50,4 +50,3 @@ const value: models.ImportSourceManagementConfigKubernetes = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/importsourcenetworkunion.md b/client-sdks/platform/typescript/docs/models/importsourcenetworkunion.md index 083c9ddcd..c9da2604e 100644 --- a/client-sdks/platform/typescript/docs/models/importsourcenetworkunion.md +++ b/client-sdks/platform/typescript/docs/models/importsourcenetworkunion.md @@ -65,4 +65,3 @@ const value: models.ImportSourceNetworkByoVnetAzure = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/importsourcepoolsautoscale.md b/client-sdks/platform/typescript/docs/models/importsourcepoolsautoscale.md index ee2cca309..8d6d8ce57 100644 --- a/client-sdks/platform/typescript/docs/models/importsourcepoolsautoscale.md +++ b/client-sdks/platform/typescript/docs/models/importsourcepoolsautoscale.md @@ -16,6 +16,7 @@ let value: ImportSourcePoolsAutoscale = { | Field | Type | Required | Description | | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `failureDomains` | *models.ImportSourceFailureDomainsUnion2* | :heavy_minus_sign: | N/A | | `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | | `max` | *number* | :heavy_check_mark: | Maximum machine count. | | `min` | *number* | :heavy_check_mark: | Minimum machine count. | diff --git a/client-sdks/platform/typescript/docs/models/importsourcepoolsfixed.md b/client-sdks/platform/typescript/docs/models/importsourcepoolsfixed.md index add5ba478..e2764f745 100644 --- a/client-sdks/platform/typescript/docs/models/importsourcepoolsfixed.md +++ b/client-sdks/platform/typescript/docs/models/importsourcepoolsfixed.md @@ -15,6 +15,7 @@ let value: ImportSourcePoolsFixed = { | Field | Type | Required | Description | | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `failureDomains` | *models.ImportSourceFailureDomainsUnion1* | :heavy_minus_sign: | N/A | | `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | | `machines` | *number* | :heavy_check_mark: | Number of machines to run. | | `mode` | *"fixed"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/importsourcepoolsunion.md b/client-sdks/platform/typescript/docs/models/importsourcepoolsunion.md index 9e1c3ccff..8a326ace2 100644 --- a/client-sdks/platform/typescript/docs/models/importsourcepoolsunion.md +++ b/client-sdks/platform/typescript/docs/models/importsourcepoolsunion.md @@ -23,4 +23,3 @@ const value: models.ImportSourcePoolsAutoscale = { mode: "autoscale", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/importsourceproviderunion1.md b/client-sdks/platform/typescript/docs/models/importsourceproviderunion1.md index 3ebee1561..dfdecdbe0 100644 --- a/client-sdks/platform/typescript/docs/models/importsourceproviderunion1.md +++ b/client-sdks/platform/typescript/docs/models/importsourceproviderunion1.md @@ -36,4 +36,3 @@ const value: models.ImportSourceProviderAzureApplicationGatewayForContainers1 = ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/importsourceproviderunion2.md b/client-sdks/platform/typescript/docs/models/importsourceproviderunion2.md index 3ef4cfe4e..cf066558d 100644 --- a/client-sdks/platform/typescript/docs/models/importsourceproviderunion2.md +++ b/client-sdks/platform/typescript/docs/models/importsourceproviderunion2.md @@ -36,4 +36,3 @@ const value: models.ImportSourceProviderAzureApplicationGatewayForContainers2 = ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/importsourceproviderunion3.md b/client-sdks/platform/typescript/docs/models/importsourceproviderunion3.md index 468bb6df6..e41ba8341 100644 --- a/client-sdks/platform/typescript/docs/models/importsourceproviderunion3.md +++ b/client-sdks/platform/typescript/docs/models/importsourceproviderunion3.md @@ -36,4 +36,3 @@ const value: models.ImportSourceProviderAzureApplicationGatewayForContainers3 = ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/importsourceproviderunion4.md b/client-sdks/platform/typescript/docs/models/importsourceproviderunion4.md index 001f26303..74d09c849 100644 --- a/client-sdks/platform/typescript/docs/models/importsourceproviderunion4.md +++ b/client-sdks/platform/typescript/docs/models/importsourceproviderunion4.md @@ -36,4 +36,3 @@ const value: models.ImportSourceProviderAzureApplicationGatewayForContainers4 = ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/importsourcepublicendpointtargetunion.md b/client-sdks/platform/typescript/docs/models/importsourcepublicendpointtargetunion.md index 18f0636b3..2ac79ffaf 100644 --- a/client-sdks/platform/typescript/docs/models/importsourcepublicendpointtargetunion.md +++ b/client-sdks/platform/typescript/docs/models/importsourcepublicendpointtargetunion.md @@ -25,4 +25,3 @@ const value: models.ImportSourcePublicEndpointTargetLoadBalancer = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/importsourcerouteunion1.md b/client-sdks/platform/typescript/docs/models/importsourcerouteunion1.md index 6bc26c435..1b7a9b0bb 100644 --- a/client-sdks/platform/typescript/docs/models/importsourcerouteunion1.md +++ b/client-sdks/platform/typescript/docs/models/importsourcerouteunion1.md @@ -23,4 +23,3 @@ const value: models.ImportSourceRouteGateway1 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/importsourcerouteunion2.md b/client-sdks/platform/typescript/docs/models/importsourcerouteunion2.md index c4ea5f3ce..510d162db 100644 --- a/client-sdks/platform/typescript/docs/models/importsourcerouteunion2.md +++ b/client-sdks/platform/typescript/docs/models/importsourcerouteunion2.md @@ -23,4 +23,3 @@ const value: models.ImportSourceRouteGateway2 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/inviter.md b/client-sdks/platform/typescript/docs/models/inviter.md new file mode 100644 index 000000000..30ca4fb4f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/inviter.md @@ -0,0 +1,19 @@ +# Inviter + +## Example Usage + +```typescript +import { Inviter } from "@alienplatform/platform-api/models"; + +let value: Inviter = { + name: "", + image: "https://prime-reorganisation.info/", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `name` | *string* | :heavy_check_mark: | N/A | +| `image` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/involvedobjectunion1.md b/client-sdks/platform/typescript/docs/models/involvedobjectunion1.md index 97554a033..a548e801b 100644 --- a/client-sdks/platform/typescript/docs/models/involvedobjectunion1.md +++ b/client-sdks/platform/typescript/docs/models/involvedobjectunion1.md @@ -14,4 +14,3 @@ const value: models.InvolvedObject1 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/involvedobjectunion10.md b/client-sdks/platform/typescript/docs/models/involvedobjectunion10.md index 879f289b1..51f6c51c2 100644 --- a/client-sdks/platform/typescript/docs/models/involvedobjectunion10.md +++ b/client-sdks/platform/typescript/docs/models/involvedobjectunion10.md @@ -14,4 +14,3 @@ const value: models.InvolvedObject10 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/involvedobjectunion2.md b/client-sdks/platform/typescript/docs/models/involvedobjectunion2.md index 31703bcd1..59a9abcd0 100644 --- a/client-sdks/platform/typescript/docs/models/involvedobjectunion2.md +++ b/client-sdks/platform/typescript/docs/models/involvedobjectunion2.md @@ -14,4 +14,3 @@ const value: models.InvolvedObject2 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/involvedobjectunion3.md b/client-sdks/platform/typescript/docs/models/involvedobjectunion3.md index 703a7c6bb..4c5012326 100644 --- a/client-sdks/platform/typescript/docs/models/involvedobjectunion3.md +++ b/client-sdks/platform/typescript/docs/models/involvedobjectunion3.md @@ -14,4 +14,3 @@ const value: models.InvolvedObject3 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/involvedobjectunion4.md b/client-sdks/platform/typescript/docs/models/involvedobjectunion4.md index 2560d0579..10de6f00e 100644 --- a/client-sdks/platform/typescript/docs/models/involvedobjectunion4.md +++ b/client-sdks/platform/typescript/docs/models/involvedobjectunion4.md @@ -14,4 +14,3 @@ const value: models.InvolvedObject4 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/involvedobjectunion5.md b/client-sdks/platform/typescript/docs/models/involvedobjectunion5.md index 31135bd3a..435d573fb 100644 --- a/client-sdks/platform/typescript/docs/models/involvedobjectunion5.md +++ b/client-sdks/platform/typescript/docs/models/involvedobjectunion5.md @@ -14,4 +14,3 @@ const value: models.InvolvedObject5 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/involvedobjectunion6.md b/client-sdks/platform/typescript/docs/models/involvedobjectunion6.md index 5a8dd4b87..a1dc4df24 100644 --- a/client-sdks/platform/typescript/docs/models/involvedobjectunion6.md +++ b/client-sdks/platform/typescript/docs/models/involvedobjectunion6.md @@ -14,4 +14,3 @@ const value: models.InvolvedObject6 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/involvedobjectunion7.md b/client-sdks/platform/typescript/docs/models/involvedobjectunion7.md index 853aec4cf..5b78d3175 100644 --- a/client-sdks/platform/typescript/docs/models/involvedobjectunion7.md +++ b/client-sdks/platform/typescript/docs/models/involvedobjectunion7.md @@ -14,4 +14,3 @@ const value: models.InvolvedObject7 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/involvedobjectunion8.md b/client-sdks/platform/typescript/docs/models/involvedobjectunion8.md index be7ea7c32..70a3f0db7 100644 --- a/client-sdks/platform/typescript/docs/models/involvedobjectunion8.md +++ b/client-sdks/platform/typescript/docs/models/involvedobjectunion8.md @@ -14,4 +14,3 @@ const value: models.InvolvedObject8 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/involvedobjectunion9.md b/client-sdks/platform/typescript/docs/models/involvedobjectunion9.md index 9396c3183..37c4f83da 100644 --- a/client-sdks/platform/typescript/docs/models/involvedobjectunion9.md +++ b/client-sdks/platform/typescript/docs/models/involvedobjectunion9.md @@ -14,4 +14,3 @@ const value: models.InvolvedObject9 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/keyinfo.md b/client-sdks/platform/typescript/docs/models/keyinfo.md index 764a6aa11..1618766c0 100644 --- a/client-sdks/platform/typescript/docs/models/keyinfo.md +++ b/client-sdks/platform/typescript/docs/models/keyinfo.md @@ -24,12 +24,12 @@ let value: KeyInfo = { deploymentSetupConfig: { metadata: { "key": "", - "key1": "", - "key2": "", }, policy: { allowedPlatforms: [], - allowedSetupMethods: [], + allowedSetupMethods: [ + "google-oauth", + ], }, environmentVariables: [], }, diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponse.md b/client-sdks/platform/typescript/docs/models/managerretryresponse.md index 49ba6256a..8635ddbf8 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponse.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponse.md @@ -20,7 +20,9 @@ const value: models.ManagerRetryResponseSetup = { }, policy: { allowedPlatforms: [], - allowedSetupMethods: [], + allowedSetupMethods: [ + "google-oauth", + ], }, environmentVariables: [ { @@ -57,4 +59,3 @@ const value: models.ManagerRetryDeploymentResponse = { message: "", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponseawsunion1.md b/client-sdks/platform/typescript/docs/models/managerretryresponseawsunion1.md index 2e8c83854..939372e6f 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponseawsunion1.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponseawsunion1.md @@ -16,4 +16,3 @@ const value: models.ManagerRetryResponseAws1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponseawsunion2.md b/client-sdks/platform/typescript/docs/models/managerretryresponseawsunion2.md index 1bfbe7cce..59eee00b9 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponseawsunion2.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponseawsunion2.md @@ -16,4 +16,3 @@ const value: models.ManagerRetryResponseAws2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponseawsunion3.md b/client-sdks/platform/typescript/docs/models/managerretryresponseawsunion3.md index 730c0f4c1..6bd48cd57 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponseawsunion3.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponseawsunion3.md @@ -16,4 +16,3 @@ const value: models.ManagerRetryResponseAws3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponseazureunion1.md b/client-sdks/platform/typescript/docs/models/managerretryresponseazureunion1.md index 239ec4ffb..3ad805633 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponseazureunion1.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponseazureunion1.md @@ -16,4 +16,3 @@ const value: models.ManagerRetryResponseAzure1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponseazureunion2.md b/client-sdks/platform/typescript/docs/models/managerretryresponseazureunion2.md index ebe59992f..f8ee08ccd 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponseazureunion2.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponseazureunion2.md @@ -16,4 +16,3 @@ const value: models.ManagerRetryResponseAzure2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponseazureunion3.md b/client-sdks/platform/typescript/docs/models/managerretryresponseazureunion3.md index e40b8cfab..0a9482d34 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponseazureunion3.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponseazureunion3.md @@ -16,4 +16,3 @@ const value: models.ManagerRetryResponseAzure3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsecertificateunion1.md b/client-sdks/platform/typescript/docs/models/managerretryresponsecertificateunion1.md index 4b57cce0e..3483c1877 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsecertificateunion1.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsecertificateunion1.md @@ -47,4 +47,3 @@ const value: models.ManagerRetryResponseCertificateNone1 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsecertificateunion2.md b/client-sdks/platform/typescript/docs/models/managerretryresponsecertificateunion2.md index 2eadf836f..ed467ef1f 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsecertificateunion2.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsecertificateunion2.md @@ -47,4 +47,3 @@ const value: models.ManagerRetryResponseCertificateNone2 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsecertificateunion3.md b/client-sdks/platform/typescript/docs/models/managerretryresponsecertificateunion3.md index d8626e83d..4b6d638b2 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsecertificateunion3.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsecertificateunion3.md @@ -47,4 +47,3 @@ const value: models.ManagerRetryResponseCertificateNone3 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsecertificateunion4.md b/client-sdks/platform/typescript/docs/models/managerretryresponsecertificateunion4.md index 2e14f011c..eb0a0eede 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsecertificateunion4.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsecertificateunion4.md @@ -47,4 +47,3 @@ const value: models.ManagerRetryResponseCertificateNone4 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsecertificateunion5.md b/client-sdks/platform/typescript/docs/models/managerretryresponsecertificateunion5.md index f4cd7d743..e75fb0000 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsecertificateunion5.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsecertificateunion5.md @@ -47,4 +47,3 @@ const value: models.ManagerRetryResponseCertificateNone5 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsecertificateunion6.md b/client-sdks/platform/typescript/docs/models/managerretryresponsecertificateunion6.md index 3c071bfa3..d66e6cac5 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsecertificateunion6.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsecertificateunion6.md @@ -47,4 +47,3 @@ const value: models.ManagerRetryResponseCertificateNone6 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsecloudunion1.md b/client-sdks/platform/typescript/docs/models/managerretryresponsecloudunion1.md index 588cbee80..fd5e29136 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsecloudunion1.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsecloudunion1.md @@ -14,4 +14,3 @@ const value: models.ManagerRetryResponseCloud1 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsecloudunion2.md b/client-sdks/platform/typescript/docs/models/managerretryresponsecloudunion2.md index 06c2cdf8f..602cf5cfb 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsecloudunion2.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsecloudunion2.md @@ -14,4 +14,3 @@ const value: models.ManagerRetryResponseCloud2 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsecloudunion3.md b/client-sdks/platform/typescript/docs/models/managerretryresponsecloudunion3.md index 85a1d8cf1..7e926f0d3 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsecloudunion3.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsecloudunion3.md @@ -14,4 +14,3 @@ const value: models.ManagerRetryResponseCloud3 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponseclusterunion1.md b/client-sdks/platform/typescript/docs/models/managerretryresponseclusterunion1.md index 30616c3fd..288f24cd7 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponseclusterunion1.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponseclusterunion1.md @@ -16,4 +16,3 @@ const value: models.ManagerRetryResponseCluster1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponseclusterunion2.md b/client-sdks/platform/typescript/docs/models/managerretryresponseclusterunion2.md index b64e5235e..7dc1684f6 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponseclusterunion2.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponseclusterunion2.md @@ -16,4 +16,3 @@ const value: models.ManagerRetryResponseCluster2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponseclusterunion3.md b/client-sdks/platform/typescript/docs/models/managerretryresponseclusterunion3.md index e608a2379..c00090cb7 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponseclusterunion3.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponseclusterunion3.md @@ -16,4 +16,3 @@ const value: models.ManagerRetryResponseCluster3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsecomputeunion1.md b/client-sdks/platform/typescript/docs/models/managerretryresponsecomputeunion1.md index 22de5d25d..20f4be148 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsecomputeunion1.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsecomputeunion1.md @@ -14,4 +14,3 @@ const value: models.ManagerRetryResponseCompute1 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsecomputeunion2.md b/client-sdks/platform/typescript/docs/models/managerretryresponsecomputeunion2.md index ac6fcd133..e4a9e66c6 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsecomputeunion2.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsecomputeunion2.md @@ -14,4 +14,3 @@ const value: models.ManagerRetryResponseCompute2 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsecomputeunion3.md b/client-sdks/platform/typescript/docs/models/managerretryresponsecomputeunion3.md index 154b3ac93..c24dacebc 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsecomputeunion3.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsecomputeunion3.md @@ -14,4 +14,3 @@ const value: models.ManagerRetryResponseCompute3 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsedomainskubernetesunion1.md b/client-sdks/platform/typescript/docs/models/managerretryresponsedomainskubernetesunion1.md index 9aa6a96df..97e2b8315 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsedomainskubernetesunion1.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsedomainskubernetesunion1.md @@ -18,4 +18,3 @@ const value: models.ManagerRetryResponseDomainsKubernetes1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsedomainskubernetesunion2.md b/client-sdks/platform/typescript/docs/models/managerretryresponsedomainskubernetesunion2.md index c77aa7272..49dde44ea 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsedomainskubernetesunion2.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsedomainskubernetesunion2.md @@ -18,4 +18,3 @@ const value: models.ManagerRetryResponseDomainsKubernetes2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsedomainskubernetesunion3.md b/client-sdks/platform/typescript/docs/models/managerretryresponsedomainskubernetesunion3.md index 357f66e3c..18b806fb3 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsedomainskubernetesunion3.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsedomainskubernetesunion3.md @@ -18,4 +18,3 @@ const value: models.ManagerRetryResponseDomainsKubernetes3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsedomainsunion1.md b/client-sdks/platform/typescript/docs/models/managerretryresponsedomainsunion1.md index ced358708..f8d0f836b 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsedomainsunion1.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsedomainsunion1.md @@ -14,4 +14,3 @@ const value: models.ManagerRetryResponseDomains1 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsedomainsunion2.md b/client-sdks/platform/typescript/docs/models/managerretryresponsedomainsunion2.md index 231ccde6d..479139673 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsedomainsunion2.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsedomainsunion2.md @@ -14,4 +14,3 @@ const value: models.ManagerRetryResponseDomains2 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsedomainsunion3.md b/client-sdks/platform/typescript/docs/models/managerretryresponsedomainsunion3.md index e3b35cdd7..63fe2bf9b 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsedomainsunion3.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsedomainsunion3.md @@ -14,4 +14,3 @@ const value: models.ManagerRetryResponseDomains3 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponseexposureunion1.md b/client-sdks/platform/typescript/docs/models/managerretryresponseexposureunion1.md index edbd43c14..579bbf11e 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponseexposureunion1.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponseexposureunion1.md @@ -49,4 +49,3 @@ const value: models.ManagerRetryResponseExposureCustom1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponseexposureunion2.md b/client-sdks/platform/typescript/docs/models/managerretryresponseexposureunion2.md index 5970fac38..4c49e9185 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponseexposureunion2.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponseexposureunion2.md @@ -48,4 +48,3 @@ const value: models.ManagerRetryResponseExposureCustom2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponseexposureunion3.md b/client-sdks/platform/typescript/docs/models/managerretryresponseexposureunion3.md index 9a64c519d..b69dae4f1 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponseexposureunion3.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponseexposureunion3.md @@ -49,4 +49,3 @@ const value: models.ManagerRetryResponseExposureCustom3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomains1.md b/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomains1.md new file mode 100644 index 000000000..d4fa8204a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomains1.md @@ -0,0 +1,20 @@ +# ManagerRetryResponseFailureDomains1 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { ManagerRetryResponseFailureDomains1 } from "@alienplatform/platform-api/models"; + +let value: ManagerRetryResponseFailureDomains1 = { + spread: 95775, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomains2.md b/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomains2.md new file mode 100644 index 000000000..779ff4d67 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomains2.md @@ -0,0 +1,20 @@ +# ManagerRetryResponseFailureDomains2 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { ManagerRetryResponseFailureDomains2 } from "@alienplatform/platform-api/models"; + +let value: ManagerRetryResponseFailureDomains2 = { + spread: 982587, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomains3.md b/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomains3.md new file mode 100644 index 000000000..beb5e9262 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomains3.md @@ -0,0 +1,20 @@ +# ManagerRetryResponseFailureDomains3 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { ManagerRetryResponseFailureDomains3 } from "@alienplatform/platform-api/models"; + +let value: ManagerRetryResponseFailureDomains3 = { + spread: 62272, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomains4.md b/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomains4.md new file mode 100644 index 000000000..ba10d5799 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomains4.md @@ -0,0 +1,20 @@ +# ManagerRetryResponseFailureDomains4 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { ManagerRetryResponseFailureDomains4 } from "@alienplatform/platform-api/models"; + +let value: ManagerRetryResponseFailureDomains4 = { + spread: 794975, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomains5.md b/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomains5.md new file mode 100644 index 000000000..13f1e2784 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomains5.md @@ -0,0 +1,20 @@ +# ManagerRetryResponseFailureDomains5 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { ManagerRetryResponseFailureDomains5 } from "@alienplatform/platform-api/models"; + +let value: ManagerRetryResponseFailureDomains5 = { + spread: 179689, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomains6.md b/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomains6.md new file mode 100644 index 000000000..f69ea324b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomains6.md @@ -0,0 +1,20 @@ +# ManagerRetryResponseFailureDomains6 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { ManagerRetryResponseFailureDomains6 } from "@alienplatform/platform-api/models"; + +let value: ManagerRetryResponseFailureDomains6 = { + spread: 821053, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomainsunion1.md b/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomainsunion1.md new file mode 100644 index 000000000..a834c93c4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomainsunion1.md @@ -0,0 +1,18 @@ +# ManagerRetryResponseFailureDomainsUnion1 + + +## Supported Types + +### `models.ManagerRetryResponseFailureDomains1` + +```typescript +const value: models.ManagerRetryResponseFailureDomains1 = { + spread: 95775, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomainsunion2.md b/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomainsunion2.md new file mode 100644 index 000000000..48c1c921e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomainsunion2.md @@ -0,0 +1,18 @@ +# ManagerRetryResponseFailureDomainsUnion2 + + +## Supported Types + +### `models.ManagerRetryResponseFailureDomains2` + +```typescript +const value: models.ManagerRetryResponseFailureDomains2 = { + spread: 982587, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomainsunion3.md b/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomainsunion3.md new file mode 100644 index 000000000..f0f2f4a1d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomainsunion3.md @@ -0,0 +1,18 @@ +# ManagerRetryResponseFailureDomainsUnion3 + + +## Supported Types + +### `models.ManagerRetryResponseFailureDomains3` + +```typescript +const value: models.ManagerRetryResponseFailureDomains3 = { + spread: 62272, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomainsunion4.md b/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomainsunion4.md new file mode 100644 index 000000000..62502cff1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomainsunion4.md @@ -0,0 +1,18 @@ +# ManagerRetryResponseFailureDomainsUnion4 + + +## Supported Types + +### `models.ManagerRetryResponseFailureDomains4` + +```typescript +const value: models.ManagerRetryResponseFailureDomains4 = { + spread: 794975, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomainsunion5.md b/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomainsunion5.md new file mode 100644 index 000000000..89459093d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomainsunion5.md @@ -0,0 +1,18 @@ +# ManagerRetryResponseFailureDomainsUnion5 + + +## Supported Types + +### `models.ManagerRetryResponseFailureDomains5` + +```typescript +const value: models.ManagerRetryResponseFailureDomains5 = { + spread: 179689, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomainsunion6.md b/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomainsunion6.md new file mode 100644 index 000000000..9a43b6e6a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsefailuredomainsunion6.md @@ -0,0 +1,18 @@ +# ManagerRetryResponseFailureDomainsUnion6 + + +## Supported Types + +### `models.ManagerRetryResponseFailureDomains6` + +```typescript +const value: models.ManagerRetryResponseFailureDomains6 = { + spread: 821053, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsegcpunion1.md b/client-sdks/platform/typescript/docs/models/managerretryresponsegcpunion1.md index 436d13c15..46c840b24 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsegcpunion1.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsegcpunion1.md @@ -16,4 +16,3 @@ const value: models.ManagerRetryResponseGcp1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsegcpunion2.md b/client-sdks/platform/typescript/docs/models/managerretryresponsegcpunion2.md index 700d3cfef..9ae4fef9d 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsegcpunion2.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsegcpunion2.md @@ -16,4 +16,3 @@ const value: models.ManagerRetryResponseGcp2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsegcpunion3.md b/client-sdks/platform/typescript/docs/models/managerretryresponsegcpunion3.md index e3be1715b..0b5b7ea22 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsegcpunion3.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsegcpunion3.md @@ -16,4 +16,3 @@ const value: models.ManagerRetryResponseGcp3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsekubernetesunion1.md b/client-sdks/platform/typescript/docs/models/managerretryresponsekubernetesunion1.md index e0000f821..d53a96ae6 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsekubernetesunion1.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsekubernetesunion1.md @@ -14,4 +14,3 @@ const value: models.ManagerRetryResponseKubernetes1 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsekubernetesunion2.md b/client-sdks/platform/typescript/docs/models/managerretryresponsekubernetesunion2.md index 80ce19bca..c130fbfb1 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsekubernetesunion2.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsekubernetesunion2.md @@ -14,4 +14,3 @@ const value: models.ManagerRetryResponseKubernetes2 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsekubernetesunion3.md b/client-sdks/platform/typescript/docs/models/managerretryresponsekubernetesunion3.md index 5780dc8ce..1df8fcf8e 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsekubernetesunion3.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsekubernetesunion3.md @@ -14,4 +14,3 @@ const value: models.ManagerRetryResponseKubernetes3 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsenetworkunion1.md b/client-sdks/platform/typescript/docs/models/managerretryresponsenetworkunion1.md index 5135536ec..ddd3167b8 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsenetworkunion1.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsenetworkunion1.md @@ -64,4 +64,3 @@ const value: models.ManagerRetryResponseNetworkByoVnetAzure1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsenetworkunion2.md b/client-sdks/platform/typescript/docs/models/managerretryresponsenetworkunion2.md index 95e816cec..bff8f9de9 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsenetworkunion2.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsenetworkunion2.md @@ -62,4 +62,3 @@ const value: models.ManagerRetryResponseNetworkByoVnetAzure2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsenetworkunion3.md b/client-sdks/platform/typescript/docs/models/managerretryresponsenetworkunion3.md index 334f877c4..4156324b0 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsenetworkunion3.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsenetworkunion3.md @@ -61,4 +61,3 @@ const value: models.ManagerRetryResponseNetworkByoVnetAzure3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsautoscale1.md b/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsautoscale1.md index c432650a9..07c80b4e6 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsautoscale1.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsautoscale1.md @@ -16,6 +16,7 @@ let value: ManagerRetryResponsePoolsAutoscale1 = { | Field | Type | Required | Description | | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `failureDomains` | *models.ManagerRetryResponseFailureDomainsUnion2* | :heavy_minus_sign: | N/A | | `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | | `max` | *number* | :heavy_check_mark: | Maximum machine count. | | `min` | *number* | :heavy_check_mark: | Minimum machine count. | diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsautoscale2.md b/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsautoscale2.md index bd9625b80..ff57d5c4b 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsautoscale2.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsautoscale2.md @@ -16,6 +16,7 @@ let value: ManagerRetryResponsePoolsAutoscale2 = { | Field | Type | Required | Description | | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `failureDomains` | *models.ManagerRetryResponseFailureDomainsUnion4* | :heavy_minus_sign: | N/A | | `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | | `max` | *number* | :heavy_check_mark: | Maximum machine count. | | `min` | *number* | :heavy_check_mark: | Minimum machine count. | diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsautoscale3.md b/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsautoscale3.md index 3d044fa2c..7744c72ca 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsautoscale3.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsautoscale3.md @@ -16,6 +16,7 @@ let value: ManagerRetryResponsePoolsAutoscale3 = { | Field | Type | Required | Description | | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `failureDomains` | *models.ManagerRetryResponseFailureDomainsUnion6* | :heavy_minus_sign: | N/A | | `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | | `max` | *number* | :heavy_check_mark: | Maximum machine count. | | `min` | *number* | :heavy_check_mark: | Minimum machine count. | diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsfixed1.md b/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsfixed1.md index c76493d07..757191d58 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsfixed1.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsfixed1.md @@ -15,6 +15,7 @@ let value: ManagerRetryResponsePoolsFixed1 = { | Field | Type | Required | Description | | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `failureDomains` | *models.ManagerRetryResponseFailureDomainsUnion1* | :heavy_minus_sign: | N/A | | `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | | `machines` | *number* | :heavy_check_mark: | Number of machines to run. | | `mode` | *"fixed"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsfixed2.md b/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsfixed2.md index 747038f90..ba265fcad 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsfixed2.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsfixed2.md @@ -15,6 +15,7 @@ let value: ManagerRetryResponsePoolsFixed2 = { | Field | Type | Required | Description | | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `failureDomains` | *models.ManagerRetryResponseFailureDomainsUnion3* | :heavy_minus_sign: | N/A | | `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | | `machines` | *number* | :heavy_check_mark: | Number of machines to run. | | `mode` | *"fixed"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsfixed3.md b/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsfixed3.md index b6f323ea6..80dd41683 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsfixed3.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsfixed3.md @@ -15,6 +15,7 @@ let value: ManagerRetryResponsePoolsFixed3 = { | Field | Type | Required | Description | | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `failureDomains` | *models.ManagerRetryResponseFailureDomainsUnion5* | :heavy_minus_sign: | N/A | | `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | | `machines` | *number* | :heavy_check_mark: | Number of machines to run. | | `mode` | *"fixed"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsunion1.md b/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsunion1.md index 047fa951d..c7015b717 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsunion1.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsunion1.md @@ -23,4 +23,3 @@ const value: models.ManagerRetryResponsePoolsAutoscale1 = { mode: "autoscale", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsunion2.md b/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsunion2.md index 30d52b436..2a67dc82b 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsunion2.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsunion2.md @@ -23,4 +23,3 @@ const value: models.ManagerRetryResponsePoolsAutoscale2 = { mode: "autoscale", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsunion3.md b/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsunion3.md index 70ab0caf0..0c80a09d9 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsunion3.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsepoolsunion3.md @@ -23,4 +23,3 @@ const value: models.ManagerRetryResponsePoolsAutoscale3 = { mode: "autoscale", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion1.md b/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion1.md index 8297589eb..2c92e8994 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion1.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion1.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion10.md b/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion10.md index 2a02a8650..ee0569acd 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion10.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion10.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion11.md b/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion11.md index e45c6a6bb..3908f9264 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion11.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion11.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion12.md b/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion12.md index b44af55f5..aedfa429b 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion12.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion12.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion2.md b/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion2.md index 9c959af61..f59c040b2 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion2.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion2.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion3.md b/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion3.md index 27b4c4529..1cedb79db 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion3.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion3.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion4.md b/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion4.md index a6c09bc80..1adfa1d2e 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion4.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion4.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion5.md b/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion5.md index 2bcb74e41..17b99cd73 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion5.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion5.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion6.md b/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion6.md index c00f71635..f76363e29 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion6.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion6.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion7.md b/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion7.md index ecfd7bb45..ad750ae1f 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion7.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion7.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion8.md b/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion8.md index 8f90799f6..3e4bfcdb6 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion8.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion8.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion9.md b/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion9.md index 638a6eb3c..34afd0776 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion9.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponseproviderunion9.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsepublicendpointtargetunion1.md b/client-sdks/platform/typescript/docs/models/managerretryresponsepublicendpointtargetunion1.md index 4bc77db08..507611fdf 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsepublicendpointtargetunion1.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsepublicendpointtargetunion1.md @@ -26,4 +26,3 @@ const value: models.ManagerRetryResponsePublicEndpointTargetLoadBalancer1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsepublicendpointtargetunion2.md b/client-sdks/platform/typescript/docs/models/managerretryresponsepublicendpointtargetunion2.md index 7e9943711..06c8b070b 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsepublicendpointtargetunion2.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsepublicendpointtargetunion2.md @@ -26,4 +26,3 @@ const value: models.ManagerRetryResponsePublicEndpointTargetLoadBalancer2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsepublicendpointtargetunion3.md b/client-sdks/platform/typescript/docs/models/managerretryresponsepublicendpointtargetunion3.md index cf9efdcae..ad79cd71f 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsepublicendpointtargetunion3.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsepublicendpointtargetunion3.md @@ -26,4 +26,3 @@ const value: models.ManagerRetryResponsePublicEndpointTargetLoadBalancer3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponserouteunion1.md b/client-sdks/platform/typescript/docs/models/managerretryresponserouteunion1.md index 7ef087563..9429aee56 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponserouteunion1.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponserouteunion1.md @@ -23,4 +23,3 @@ const value: models.ManagerRetryResponseRouteGateway1 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponserouteunion2.md b/client-sdks/platform/typescript/docs/models/managerretryresponserouteunion2.md index 9e779282f..11650db1a 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponserouteunion2.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponserouteunion2.md @@ -23,4 +23,3 @@ const value: models.ManagerRetryResponseRouteGateway2 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponserouteunion3.md b/client-sdks/platform/typescript/docs/models/managerretryresponserouteunion3.md index 81f5f5d86..9529b1b08 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponserouteunion3.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponserouteunion3.md @@ -23,4 +23,3 @@ const value: models.ManagerRetryResponseRouteGateway3 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponserouteunion4.md b/client-sdks/platform/typescript/docs/models/managerretryresponserouteunion4.md index 271d277a0..d23508c3c 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponserouteunion4.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponserouteunion4.md @@ -23,4 +23,3 @@ const value: models.ManagerRetryResponseRouteGateway4 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponserouteunion5.md b/client-sdks/platform/typescript/docs/models/managerretryresponserouteunion5.md index dff148085..10ae7f918 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponserouteunion5.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponserouteunion5.md @@ -23,4 +23,3 @@ const value: models.ManagerRetryResponseRouteGateway5 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponserouteunion6.md b/client-sdks/platform/typescript/docs/models/managerretryresponserouteunion6.md index c68331bee..3a73b32e6 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponserouteunion6.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponserouteunion6.md @@ -23,4 +23,3 @@ const value: models.ManagerRetryResponseRouteGateway6 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsesetup.md b/client-sdks/platform/typescript/docs/models/managerretryresponsesetup.md index 3ce743642..7ac15d711 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsesetup.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsesetup.md @@ -19,7 +19,9 @@ let value: ManagerRetryResponseSetup = { }, policy: { allowedPlatforms: [], - allowedSetupMethods: [], + allowedSetupMethods: [ + "google-oauth", + ], }, environmentVariables: [ { diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsesetupconfig.md b/client-sdks/platform/typescript/docs/models/managerretryresponsesetupconfig.md index 839c2dcb9..b7cfffe52 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsesetupconfig.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsesetupconfig.md @@ -12,7 +12,9 @@ let value: ManagerRetryResponseSetupConfig = { }, policy: { allowedPlatforms: [], - allowedSetupMethods: [], + allowedSetupMethods: [ + "google-oauth", + ], }, environmentVariables: [], }; diff --git a/client-sdks/platform/typescript/docs/models/managerretryresponsesetupunion.md b/client-sdks/platform/typescript/docs/models/managerretryresponsesetupunion.md index 94761168e..039b0b661 100644 --- a/client-sdks/platform/typescript/docs/models/managerretryresponsesetupunion.md +++ b/client-sdks/platform/typescript/docs/models/managerretryresponsesetupunion.md @@ -46,4 +46,3 @@ const value: models.ManagerRetryResponseSetupTerraform = { stackSettings: {}, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/memoryunion1.md b/client-sdks/platform/typescript/docs/models/memoryunion1.md index 15497af56..28d1ae38c 100644 --- a/client-sdks/platform/typescript/docs/models/memoryunion1.md +++ b/client-sdks/platform/typescript/docs/models/memoryunion1.md @@ -17,4 +17,3 @@ const value: models.Memory1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/memoryunion10.md b/client-sdks/platform/typescript/docs/models/memoryunion10.md index f1f168553..7ae84b3ae 100644 --- a/client-sdks/platform/typescript/docs/models/memoryunion10.md +++ b/client-sdks/platform/typescript/docs/models/memoryunion10.md @@ -17,4 +17,3 @@ const value: models.Memory10 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/memoryunion11.md b/client-sdks/platform/typescript/docs/models/memoryunion11.md index d1a359fce..e5018f5db 100644 --- a/client-sdks/platform/typescript/docs/models/memoryunion11.md +++ b/client-sdks/platform/typescript/docs/models/memoryunion11.md @@ -17,4 +17,3 @@ const value: models.Memory11 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/memoryunion2.md b/client-sdks/platform/typescript/docs/models/memoryunion2.md index 4043f57a2..3a0132b8e 100644 --- a/client-sdks/platform/typescript/docs/models/memoryunion2.md +++ b/client-sdks/platform/typescript/docs/models/memoryunion2.md @@ -17,4 +17,3 @@ const value: models.Memory2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/memoryunion3.md b/client-sdks/platform/typescript/docs/models/memoryunion3.md index aea4c942e..a4f11d8bf 100644 --- a/client-sdks/platform/typescript/docs/models/memoryunion3.md +++ b/client-sdks/platform/typescript/docs/models/memoryunion3.md @@ -17,4 +17,3 @@ const value: models.Memory3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/memoryunion4.md b/client-sdks/platform/typescript/docs/models/memoryunion4.md index d47ff6a99..6683910c6 100644 --- a/client-sdks/platform/typescript/docs/models/memoryunion4.md +++ b/client-sdks/platform/typescript/docs/models/memoryunion4.md @@ -17,4 +17,3 @@ const value: models.Memory4 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/memoryunion5.md b/client-sdks/platform/typescript/docs/models/memoryunion5.md index 9b82b2109..e6858f4d3 100644 --- a/client-sdks/platform/typescript/docs/models/memoryunion5.md +++ b/client-sdks/platform/typescript/docs/models/memoryunion5.md @@ -17,4 +17,3 @@ const value: models.Memory5 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/memoryunion6.md b/client-sdks/platform/typescript/docs/models/memoryunion6.md index 949b854e6..168e7c84d 100644 --- a/client-sdks/platform/typescript/docs/models/memoryunion6.md +++ b/client-sdks/platform/typescript/docs/models/memoryunion6.md @@ -17,4 +17,3 @@ const value: models.Memory6 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/memoryunion7.md b/client-sdks/platform/typescript/docs/models/memoryunion7.md index 23451d7d9..c553bb925 100644 --- a/client-sdks/platform/typescript/docs/models/memoryunion7.md +++ b/client-sdks/platform/typescript/docs/models/memoryunion7.md @@ -17,4 +17,3 @@ const value: models.Memory7 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/memoryunion8.md b/client-sdks/platform/typescript/docs/models/memoryunion8.md index 3675ba832..debfaa78c 100644 --- a/client-sdks/platform/typescript/docs/models/memoryunion8.md +++ b/client-sdks/platform/typescript/docs/models/memoryunion8.md @@ -17,4 +17,3 @@ const value: models.Memory8 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/memoryunion9.md b/client-sdks/platform/typescript/docs/models/memoryunion9.md index 7822616a2..1c8ab496d 100644 --- a/client-sdks/platform/typescript/docs/models/memoryunion9.md +++ b/client-sdks/platform/typescript/docs/models/memoryunion9.md @@ -17,4 +17,3 @@ const value: models.Memory9 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/model1.md b/client-sdks/platform/typescript/docs/models/model1.md new file mode 100644 index 000000000..4dddf01c7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/model1.md @@ -0,0 +1,27 @@ +# Model1 + +## Example Usage + +```typescript +import { Model1 } from "@alienplatform/platform-api/models"; + +let value: Model1 = { + accessTest: "failed", + availability: "unknown", + blockers: [], + clientApis: [], + publicModelId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| `accessTest` | [models.AccessTest1](../models/accesstest1.md) | :heavy_check_mark: | N/A | +| `availability` | [models.AvailabilityEnum1](../models/availabilityenum1.md) | :heavy_check_mark: | N/A | +| `blockers` | [models.BlockerEnum1](../models/blockerenum1.md)[] | :heavy_check_mark: | N/A | +| `clientApis` | [models.ClientApi1](../models/clientapi1.md)[] | :heavy_check_mark: | N/A | +| `errorCode` | *string* | :heavy_minus_sign: | N/A | +| `publicModelId` | *string* | :heavy_check_mark: | N/A | +| `testedAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/model2.md b/client-sdks/platform/typescript/docs/models/model2.md new file mode 100644 index 000000000..bd7b1e5e7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/model2.md @@ -0,0 +1,29 @@ +# Model2 + +## Example Usage + +```typescript +import { Model2 } from "@alienplatform/platform-api/models"; + +let value: Model2 = { + accessTest: "failed", + availability: "available", + blockers: [], + clientApis: [ + "anthropic-messages", + ], + publicModelId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| `accessTest` | [models.AccessTest2](../models/accesstest2.md) | :heavy_check_mark: | N/A | +| `availability` | [models.AvailabilityEnum2](../models/availabilityenum2.md) | :heavy_check_mark: | N/A | +| `blockers` | [models.BlockerEnum2](../models/blockerenum2.md)[] | :heavy_check_mark: | N/A | +| `clientApis` | [models.ClientApi2](../models/clientapi2.md)[] | :heavy_check_mark: | N/A | +| `errorCode` | *string* | :heavy_minus_sign: | N/A | +| `publicModelId` | *string* | :heavy_check_mark: | N/A | +| `testedAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/model3.md b/client-sdks/platform/typescript/docs/models/model3.md new file mode 100644 index 000000000..bfabcb3b5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/model3.md @@ -0,0 +1,29 @@ +# Model3 + +## Example Usage + +```typescript +import { Model3 } from "@alienplatform/platform-api/models"; + +let value: Model3 = { + accessTest: "verified", + availability: "blocked", + blockers: [ + "model-activation-required", + ], + clientApis: [], + publicModelId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| `accessTest` | [models.AccessTest3](../models/accesstest3.md) | :heavy_check_mark: | N/A | +| `availability` | [models.AvailabilityEnum3](../models/availabilityenum3.md) | :heavy_check_mark: | N/A | +| `blockers` | [models.BlockerEnum3](../models/blockerenum3.md)[] | :heavy_check_mark: | N/A | +| `clientApis` | [models.ClientApi3](../models/clientapi3.md)[] | :heavy_check_mark: | N/A | +| `errorCode` | *string* | :heavy_minus_sign: | N/A | +| `publicModelId` | *string* | :heavy_check_mark: | N/A | +| `testedAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/model4.md b/client-sdks/platform/typescript/docs/models/model4.md new file mode 100644 index 000000000..8aa97bce2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/model4.md @@ -0,0 +1,27 @@ +# Model4 + +## Example Usage + +```typescript +import { Model4 } from "@alienplatform/platform-api/models"; + +let value: Model4 = { + accessTest: "failed", + availability: "available", + blockers: [], + clientApis: [], + publicModelId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| `accessTest` | [models.AccessTest4](../models/accesstest4.md) | :heavy_check_mark: | N/A | +| `availability` | [models.AvailabilityEnum4](../models/availabilityenum4.md) | :heavy_check_mark: | N/A | +| `blockers` | [models.BlockerEnum4](../models/blockerenum4.md)[] | :heavy_check_mark: | N/A | +| `clientApis` | [models.ClientApi4](../models/clientapi4.md)[] | :heavy_check_mark: | N/A | +| `errorCode` | *string* | :heavy_minus_sign: | N/A | +| `publicModelId` | *string* | :heavy_check_mark: | N/A | +| `testedAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequest.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequest.md index d71e782a5..a5c8eaf1c 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequest.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequest.md @@ -36,4 +36,5 @@ let value: NewDeploymentRequest = { | `inputValues` | Record | :heavy_minus_sign: | Stack input values provided by the deployment creator. | | | `operatorScope` | *string* | :heavy_minus_sign: | Display-only scope reported by the Operator manifest. | | | `operatorPermission` | *string* | :heavy_minus_sign: | Display-only permission tier reported by the Operator manifest. | | -| `initialDesiredRelease` | [models.InitialDesiredRelease](../models/initialdesiredrelease.md) | :heavy_minus_sign: | Desired-release selection for a new deployment. Use none to register an environment without initially requesting a release; later updates can assign one. | | \ No newline at end of file +| `initialDesiredRelease` | [models.InitialDesiredRelease](../models/initialdesiredrelease.md) | :heavy_minus_sign: | Desired-release selection for a new deployment. Use none to register an environment without initially requesting a release; later updates can assign one. | | +| `releaseChannel` | *string* | :heavy_minus_sign: | Release channel followed while this deployment is not pinned. | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestawsunion.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestawsunion.md index 60a75d862..f26421cb3 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequestawsunion.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestawsunion.md @@ -16,4 +16,3 @@ const value: models.NewDeploymentRequestAws = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestazureunion.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestazureunion.md index 9e4de5da7..dd6cb66e9 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequestazureunion.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestazureunion.md @@ -16,4 +16,3 @@ const value: models.NewDeploymentRequestAzure = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestcertificateunion1.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestcertificateunion1.md index 2d07dcaf9..95b9c4367 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequestcertificateunion1.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestcertificateunion1.md @@ -47,4 +47,3 @@ const value: models.NewDeploymentRequestCertificateNone1 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestcertificateunion2.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestcertificateunion2.md index d43bb8371..caef4fbd7 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequestcertificateunion2.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestcertificateunion2.md @@ -47,4 +47,3 @@ const value: models.NewDeploymentRequestCertificateNone2 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestcloudunion.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestcloudunion.md index cc5441361..117370e1a 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequestcloudunion.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestcloudunion.md @@ -14,4 +14,3 @@ const value: models.NewDeploymentRequestCloud = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestclusterunion.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestclusterunion.md index a05267cbb..060b54cb4 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequestclusterunion.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestclusterunion.md @@ -16,4 +16,3 @@ const value: models.NewDeploymentRequestCluster = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestcomputeunion.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestcomputeunion.md index 7a768a940..df591b650 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequestcomputeunion.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestcomputeunion.md @@ -14,4 +14,3 @@ const value: models.NewDeploymentRequestCompute = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestdomainskubernetesunion.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestdomainskubernetesunion.md index 50f9ed0ac..0454900bd 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequestdomainskubernetesunion.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestdomainskubernetesunion.md @@ -18,4 +18,3 @@ const value: models.NewDeploymentRequestDomainsKubernetes = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestdomainsunion.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestdomainsunion.md index 9fe47d2b0..5f208befd 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequestdomainsunion.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestdomainsunion.md @@ -14,4 +14,3 @@ const value: models.NewDeploymentRequestDomains = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestenvironmentinfounion.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestenvironmentinfounion.md index e98fc3444..6af2275c5 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequestenvironmentinfounion.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestenvironmentinfounion.md @@ -62,4 +62,3 @@ const value: models.NewDeploymentRequestEnvironmentInfoTest = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestexposureunion.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestexposureunion.md index f1db15c11..a90a87334 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequestexposureunion.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestexposureunion.md @@ -49,4 +49,3 @@ const value: models.NewDeploymentRequestExposureCustom = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestfailuredomains1.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestfailuredomains1.md new file mode 100644 index 000000000..943e4d5a9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestfailuredomains1.md @@ -0,0 +1,20 @@ +# NewDeploymentRequestFailureDomains1 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { NewDeploymentRequestFailureDomains1 } from "@alienplatform/platform-api/models"; + +let value: NewDeploymentRequestFailureDomains1 = { + spread: 596174, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestfailuredomains2.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestfailuredomains2.md new file mode 100644 index 000000000..83cac103d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestfailuredomains2.md @@ -0,0 +1,20 @@ +# NewDeploymentRequestFailureDomains2 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { NewDeploymentRequestFailureDomains2 } from "@alienplatform/platform-api/models"; + +let value: NewDeploymentRequestFailureDomains2 = { + spread: 665508, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestfailuredomainsunion1.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestfailuredomainsunion1.md new file mode 100644 index 000000000..bbd27e77c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestfailuredomainsunion1.md @@ -0,0 +1,18 @@ +# NewDeploymentRequestFailureDomainsUnion1 + + +## Supported Types + +### `models.NewDeploymentRequestFailureDomains1` + +```typescript +const value: models.NewDeploymentRequestFailureDomains1 = { + spread: 596174, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestfailuredomainsunion2.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestfailuredomainsunion2.md new file mode 100644 index 000000000..75f915d46 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestfailuredomainsunion2.md @@ -0,0 +1,18 @@ +# NewDeploymentRequestFailureDomainsUnion2 + + +## Supported Types + +### `models.NewDeploymentRequestFailureDomains2` + +```typescript +const value: models.NewDeploymentRequestFailureDomains2 = { + spread: 665508, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestgcpunion.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestgcpunion.md index 768187531..73eb574e7 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequestgcpunion.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestgcpunion.md @@ -16,4 +16,3 @@ const value: models.NewDeploymentRequestGcp = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestkubernetesunion.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestkubernetesunion.md index a6bc6cbe2..50d75f3ea 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequestkubernetesunion.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestkubernetesunion.md @@ -14,4 +14,3 @@ const value: models.NewDeploymentRequestKubernetes = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestnetworkunion.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestnetworkunion.md index 04d99171a..a0030e83a 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequestnetworkunion.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestnetworkunion.md @@ -62,4 +62,3 @@ const value: models.NewDeploymentRequestNetworkByoVnetAzure = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestpoolsautoscale.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestpoolsautoscale.md index 36ca20e5e..be9824d53 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequestpoolsautoscale.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestpoolsautoscale.md @@ -16,6 +16,7 @@ let value: NewDeploymentRequestPoolsAutoscale = { | Field | Type | Required | Description | | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `failureDomains` | *models.NewDeploymentRequestFailureDomainsUnion2* | :heavy_minus_sign: | N/A | | `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | | `max` | *number* | :heavy_check_mark: | Maximum machine count. | | `min` | *number* | :heavy_check_mark: | Minimum machine count. | diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestpoolsfixed.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestpoolsfixed.md index a6bc6a7e4..4e58fa11a 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequestpoolsfixed.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestpoolsfixed.md @@ -15,6 +15,7 @@ let value: NewDeploymentRequestPoolsFixed = { | Field | Type | Required | Description | | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `failureDomains` | *models.NewDeploymentRequestFailureDomainsUnion1* | :heavy_minus_sign: | N/A | | `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | | `machines` | *number* | :heavy_check_mark: | Number of machines to run. | | `mode` | *"fixed"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestpoolsunion.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestpoolsunion.md index 83958f832..ffef60aa5 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequestpoolsunion.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestpoolsunion.md @@ -23,4 +23,3 @@ const value: models.NewDeploymentRequestPoolsAutoscale = { mode: "autoscale", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestproviderunion1.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestproviderunion1.md index 6df82c79b..19ddda4a5 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequestproviderunion1.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestproviderunion1.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestproviderunion2.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestproviderunion2.md index 915a3be2b..a16c1b845 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequestproviderunion2.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestproviderunion2.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestproviderunion3.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestproviderunion3.md index f48f6aade..2295b6df7 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequestproviderunion3.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestproviderunion3.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestproviderunion4.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestproviderunion4.md index cda7c0a30..57db1cca5 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequestproviderunion4.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestproviderunion4.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestpublicendpointtargetunion.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestpublicendpointtargetunion.md index 0ae8ff811..1dda99f3e 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequestpublicendpointtargetunion.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestpublicendpointtargetunion.md @@ -25,4 +25,3 @@ const value: models.NewDeploymentRequestPublicEndpointTargetLoadBalancer = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestrouteunion1.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestrouteunion1.md index 156ba215b..6ce9ee26c 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequestrouteunion1.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestrouteunion1.md @@ -23,4 +23,3 @@ const value: models.NewDeploymentRequestRouteGateway1 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/newdeploymentrequestrouteunion2.md b/client-sdks/platform/typescript/docs/models/newdeploymentrequestrouteunion2.md index f8088f3d1..71cecc338 100644 --- a/client-sdks/platform/typescript/docs/models/newdeploymentrequestrouteunion2.md +++ b/client-sdks/platform/typescript/docs/models/newdeploymentrequestrouteunion2.md @@ -23,4 +23,3 @@ const value: models.NewDeploymentRequestRouteGateway2 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/nextstate.md b/client-sdks/platform/typescript/docs/models/nextstate.md deleted file mode 100644 index be86d9277..000000000 --- a/client-sdks/platform/typescript/docs/models/nextstate.md +++ /dev/null @@ -1,23 +0,0 @@ -# NextState - -Represents the collective state of all resources in a stack, including platform and pending actions. - -## Example Usage - -```typescript -import { NextState } from "@alienplatform/platform-api/models"; - -let value: NextState = { - platform: "kubernetes", - resourcePrefix: "", - resources: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -| `platform` | [models.EventPlatform](../models/eventplatform.md) | :heavy_check_mark: | Represents the target cloud platform. | -| `resourcePrefix` | *string* | :heavy_check_mark: | A prefix used for resource naming to ensure uniqueness across deployments. | -| `resources` | Record | :heavy_check_mark: | The state of individual resources, keyed by resource ID. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/nextstateerrorunion.md b/client-sdks/platform/typescript/docs/models/nextstateerrorunion.md deleted file mode 100644 index 08a254372..000000000 --- a/client-sdks/platform/typescript/docs/models/nextstateerrorunion.md +++ /dev/null @@ -1,21 +0,0 @@ -# NextStateErrorUnion - - -## Supported Types - -### `models.ErrorNextState` - -```typescript -const value: models.ErrorNextState = { - code: "", - internal: false, - message: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/acceptworkspaceinvitationrequest.md b/client-sdks/platform/typescript/docs/models/operations/acceptworkspaceinvitationrequest.md new file mode 100644 index 000000000..10c4e00b0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/acceptworkspaceinvitationrequest.md @@ -0,0 +1,17 @@ +# AcceptWorkspaceInvitationRequest + +## Example Usage + +```typescript +import { AcceptWorkspaceInvitationRequest } from "@alienplatform/platform-api/models/operations"; + +let value: AcceptWorkspaceInvitationRequest = { + token: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `token` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/accesstest1.md b/client-sdks/platform/typescript/docs/models/operations/accesstest1.md new file mode 100644 index 000000000..27d1e5619 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/accesstest1.md @@ -0,0 +1,15 @@ +# AccessTest1 + +## Example Usage + +```typescript +import { AccessTest1 } from "@alienplatform/platform-api/models/operations"; + +let value: AccessTest1 = "failed"; +``` + +## Values + +```typescript +"verified" | "failed" | "not-checked" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/accesstest2.md b/client-sdks/platform/typescript/docs/models/operations/accesstest2.md new file mode 100644 index 000000000..860c45327 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/accesstest2.md @@ -0,0 +1,15 @@ +# AccessTest2 + +## Example Usage + +```typescript +import { AccessTest2 } from "@alienplatform/platform-api/models/operations"; + +let value: AccessTest2 = "not-checked"; +``` + +## Values + +```typescript +"verified" | "failed" | "not-checked" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/accesstest3.md b/client-sdks/platform/typescript/docs/models/operations/accesstest3.md new file mode 100644 index 000000000..f7c677020 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/accesstest3.md @@ -0,0 +1,15 @@ +# AccessTest3 + +## Example Usage + +```typescript +import { AccessTest3 } from "@alienplatform/platform-api/models/operations"; + +let value: AccessTest3 = "verified"; +``` + +## Values + +```typescript +"verified" | "failed" | "not-checked" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/accesstest4.md b/client-sdks/platform/typescript/docs/models/operations/accesstest4.md new file mode 100644 index 000000000..7f7a4c6a4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/accesstest4.md @@ -0,0 +1,15 @@ +# AccessTest4 + +## Example Usage + +```typescript +import { AccessTest4 } from "@alienplatform/platform-api/models/operations"; + +let value: AccessTest4 = "failed"; +``` + +## Values + +```typescript +"verified" | "failed" | "not-checked" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/allchannels.md b/client-sdks/platform/typescript/docs/models/operations/allchannels.md new file mode 100644 index 000000000..2e73f33a2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/allchannels.md @@ -0,0 +1,15 @@ +# AllChannels + +## Example Usage + +```typescript +import { AllChannels } from "@alienplatform/platform-api/models/operations"; + +let value: AllChannels = "true"; +``` + +## Values + +```typescript +"true" | "false" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/allocatablecpuunion.md b/client-sdks/platform/typescript/docs/models/operations/allocatablecpuunion.md index c4356797d..b43ab6ac6 100644 --- a/client-sdks/platform/typescript/docs/models/operations/allocatablecpuunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/allocatablecpuunion.md @@ -17,4 +17,3 @@ const value: operations.CpuAllocatable = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/allocatablememoryunion.md b/client-sdks/platform/typescript/docs/models/operations/allocatablememoryunion.md index 66b5b9f2e..71d274758 100644 --- a/client-sdks/platform/typescript/docs/models/operations/allocatablememoryunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/allocatablememoryunion.md @@ -17,4 +17,3 @@ const value: operations.MemoryAllocatable = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/approveagentsessionrequest.md b/client-sdks/platform/typescript/docs/models/operations/approveagentsessionrequest.md new file mode 100644 index 000000000..a6626c680 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/approveagentsessionrequest.md @@ -0,0 +1,19 @@ +# ApproveAgentSessionRequest + +## Example Usage + +```typescript +import { ApproveAgentSessionRequest } from "@alienplatform/platform-api/models/operations"; + +let value: ApproveAgentSessionRequest = { + id: "", + workspace: "my-workspace", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | N/A | | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/availability1.md b/client-sdks/platform/typescript/docs/models/operations/availability1.md new file mode 100644 index 000000000..fd893390f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/availability1.md @@ -0,0 +1,22 @@ +# Availability1 + +## Example Usage + +```typescript +import { Availability1 } from "@alienplatform/platform-api/models/operations"; + +let value: Availability1 = { + catalogRevision: "", + models: [], + source: "azure-foundry", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `catalogRevision` | *string* | :heavy_check_mark: | N/A | +| `location` | *string* | :heavy_minus_sign: | N/A | +| `models` | [operations.Model1](../../models/operations/model1.md)[] | :heavy_check_mark: | N/A | +| `source` | [operations.SourceEnum1](../../models/operations/sourceenum1.md) | :heavy_check_mark: | Provider control plane used to observe model availability without invoking
a model, spending customer quota, or accepting provider terms. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/availability2.md b/client-sdks/platform/typescript/docs/models/operations/availability2.md new file mode 100644 index 000000000..0d2a54025 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/availability2.md @@ -0,0 +1,30 @@ +# Availability2 + +## Example Usage + +```typescript +import { Availability2 } from "@alienplatform/platform-api/models/operations"; + +let value: Availability2 = { + catalogRevision: "", + models: [ + { + accessTest: "not-checked", + availability: "unknown", + blockers: [], + clientApis: [], + publicModelId: "", + }, + ], + source: "gcp-vertex", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `catalogRevision` | *string* | :heavy_check_mark: | N/A | +| `location` | *string* | :heavy_minus_sign: | N/A | +| `models` | [operations.Model2](../../models/operations/model2.md)[] | :heavy_check_mark: | N/A | +| `source` | [operations.SourceEnum2](../../models/operations/sourceenum2.md) | :heavy_check_mark: | Provider control plane used to observe model availability without invoking
a model, spending customer quota, or accepting provider terms. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/availability3.md b/client-sdks/platform/typescript/docs/models/operations/availability3.md new file mode 100644 index 000000000..98fc93fe8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/availability3.md @@ -0,0 +1,22 @@ +# Availability3 + +## Example Usage + +```typescript +import { Availability3 } from "@alienplatform/platform-api/models/operations"; + +let value: Availability3 = { + catalogRevision: "", + models: [], + source: "azure-foundry", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `catalogRevision` | *string* | :heavy_check_mark: | N/A | +| `location` | *string* | :heavy_minus_sign: | N/A | +| `models` | [operations.Model3](../../models/operations/model3.md)[] | :heavy_check_mark: | N/A | +| `source` | [operations.SourceEnum3](../../models/operations/sourceenum3.md) | :heavy_check_mark: | Provider control plane used to observe model availability without invoking
a model, spending customer quota, or accepting provider terms. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/availability4.md b/client-sdks/platform/typescript/docs/models/operations/availability4.md new file mode 100644 index 000000000..f20687a9b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/availability4.md @@ -0,0 +1,30 @@ +# Availability4 + +## Example Usage + +```typescript +import { Availability4 } from "@alienplatform/platform-api/models/operations"; + +let value: Availability4 = { + catalogRevision: "", + models: [ + { + accessTest: "verified", + availability: "unknown", + blockers: [], + clientApis: [], + publicModelId: "", + }, + ], + source: "azure-foundry", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------- | +| `catalogRevision` | *string* | :heavy_check_mark: | N/A | +| `location` | *string* | :heavy_minus_sign: | N/A | +| `models` | [operations.Model4](../../models/operations/model4.md)[] | :heavy_check_mark: | N/A | +| `source` | [operations.SourceEnum4](../../models/operations/sourceenum4.md) | :heavy_check_mark: | Provider control plane used to observe model availability without invoking
a model, spending customer quota, or accepting provider terms. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/availabilityenum1.md b/client-sdks/platform/typescript/docs/models/operations/availabilityenum1.md new file mode 100644 index 000000000..28f8317c0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/availabilityenum1.md @@ -0,0 +1,15 @@ +# AvailabilityEnum1 + +## Example Usage + +```typescript +import { AvailabilityEnum1 } from "@alienplatform/platform-api/models/operations"; + +let value: AvailabilityEnum1 = "blocked"; +``` + +## Values + +```typescript +"available" | "blocked" | "unknown" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/availabilityenum2.md b/client-sdks/platform/typescript/docs/models/operations/availabilityenum2.md new file mode 100644 index 000000000..1c2e33431 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/availabilityenum2.md @@ -0,0 +1,15 @@ +# AvailabilityEnum2 + +## Example Usage + +```typescript +import { AvailabilityEnum2 } from "@alienplatform/platform-api/models/operations"; + +let value: AvailabilityEnum2 = "available"; +``` + +## Values + +```typescript +"available" | "blocked" | "unknown" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/availabilityenum3.md b/client-sdks/platform/typescript/docs/models/operations/availabilityenum3.md new file mode 100644 index 000000000..b5f70666f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/availabilityenum3.md @@ -0,0 +1,15 @@ +# AvailabilityEnum3 + +## Example Usage + +```typescript +import { AvailabilityEnum3 } from "@alienplatform/platform-api/models/operations"; + +let value: AvailabilityEnum3 = "blocked"; +``` + +## Values + +```typescript +"available" | "blocked" | "unknown" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/availabilityenum4.md b/client-sdks/platform/typescript/docs/models/operations/availabilityenum4.md new file mode 100644 index 000000000..b7599d00e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/availabilityenum4.md @@ -0,0 +1,15 @@ +# AvailabilityEnum4 + +## Example Usage + +```typescript +import { AvailabilityEnum4 } from "@alienplatform/platform-api/models/operations"; + +let value: AvailabilityEnum4 = "blocked"; +``` + +## Values + +```typescript +"available" | "blocked" | "unknown" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/availabilityunion.md b/client-sdks/platform/typescript/docs/models/operations/availabilityunion.md new file mode 100644 index 000000000..b5b9b9bcb --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/availabilityunion.md @@ -0,0 +1,28 @@ +# AvailabilityUnion + + +## Supported Types + +### `operations.Availability4` + +```typescript +const value: operations.Availability4 = { + catalogRevision: "", + models: [ + { + accessTest: "verified", + availability: "unknown", + blockers: [], + clientApis: [], + publicModelId: "", + }, + ], + source: "azure-foundry", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/operations/blocker1.md b/client-sdks/platform/typescript/docs/models/operations/blocker1.md deleted file mode 100644 index df20e2c8c..000000000 --- a/client-sdks/platform/typescript/docs/models/operations/blocker1.md +++ /dev/null @@ -1,25 +0,0 @@ -# Blocker1 - -## Example Usage - -```typescript -import { Blocker1 } from "@alienplatform/platform-api/models/operations"; - -let value: Blocker1 = { - reason: "", - replicaId: "", - schedulingMode: "", - state: "Washington", - workloadName: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `reason` | *string* | :heavy_check_mark: | N/A | -| `replicaId` | *string* | :heavy_check_mark: | N/A | -| `schedulingMode` | *string* | :heavy_check_mark: | N/A | -| `state` | *string* | :heavy_check_mark: | N/A | -| `workloadName` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/blocker2.md b/client-sdks/platform/typescript/docs/models/operations/blocker2.md deleted file mode 100644 index 224a1528b..000000000 --- a/client-sdks/platform/typescript/docs/models/operations/blocker2.md +++ /dev/null @@ -1,25 +0,0 @@ -# Blocker2 - -## Example Usage - -```typescript -import { Blocker2 } from "@alienplatform/platform-api/models/operations"; - -let value: Blocker2 = { - reason: "", - replicaId: "", - schedulingMode: "", - state: "Delaware", - workloadName: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `reason` | *string* | :heavy_check_mark: | N/A | -| `replicaId` | *string* | :heavy_check_mark: | N/A | -| `schedulingMode` | *string* | :heavy_check_mark: | N/A | -| `state` | *string* | :heavy_check_mark: | N/A | -| `workloadName` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/blocker3.md b/client-sdks/platform/typescript/docs/models/operations/blocker3.md deleted file mode 100644 index 1fd22687c..000000000 --- a/client-sdks/platform/typescript/docs/models/operations/blocker3.md +++ /dev/null @@ -1,25 +0,0 @@ -# Blocker3 - -## Example Usage - -```typescript -import { Blocker3 } from "@alienplatform/platform-api/models/operations"; - -let value: Blocker3 = { - reason: "", - replicaId: "", - schedulingMode: "", - state: "Wisconsin", - workloadName: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `reason` | *string* | :heavy_check_mark: | N/A | -| `replicaId` | *string* | :heavy_check_mark: | N/A | -| `schedulingMode` | *string* | :heavy_check_mark: | N/A | -| `state` | *string* | :heavy_check_mark: | N/A | -| `workloadName` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/blocker4.md b/client-sdks/platform/typescript/docs/models/operations/blocker4.md deleted file mode 100644 index 7cbc1209e..000000000 --- a/client-sdks/platform/typescript/docs/models/operations/blocker4.md +++ /dev/null @@ -1,25 +0,0 @@ -# Blocker4 - -## Example Usage - -```typescript -import { Blocker4 } from "@alienplatform/platform-api/models/operations"; - -let value: Blocker4 = { - reason: "", - replicaId: "", - schedulingMode: "", - state: "South Carolina", - workloadName: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `reason` | *string* | :heavy_check_mark: | N/A | -| `replicaId` | *string* | :heavy_check_mark: | N/A | -| `schedulingMode` | *string* | :heavy_check_mark: | N/A | -| `state` | *string* | :heavy_check_mark: | N/A | -| `workloadName` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/blockerenum1.md b/client-sdks/platform/typescript/docs/models/operations/blockerenum1.md new file mode 100644 index 000000000..5a3ca00b7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/blockerenum1.md @@ -0,0 +1,15 @@ +# BlockerEnum1 + +## Example Usage + +```typescript +import { BlockerEnum1 } from "@alienplatform/platform-api/models/operations"; + +let value: BlockerEnum1 = "region-unavailable"; +``` + +## Values + +```typescript +"agreement-required" | "entitlement-required" | "model-activation-required" | "deployment-required" | "quota-configuration-required" | "region-unavailable" | "access-denied" | "observation-failed" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/blockerenum2.md b/client-sdks/platform/typescript/docs/models/operations/blockerenum2.md new file mode 100644 index 000000000..5670c9413 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/blockerenum2.md @@ -0,0 +1,15 @@ +# BlockerEnum2 + +## Example Usage + +```typescript +import { BlockerEnum2 } from "@alienplatform/platform-api/models/operations"; + +let value: BlockerEnum2 = "access-denied"; +``` + +## Values + +```typescript +"agreement-required" | "entitlement-required" | "model-activation-required" | "deployment-required" | "quota-configuration-required" | "region-unavailable" | "access-denied" | "observation-failed" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/blockerenum3.md b/client-sdks/platform/typescript/docs/models/operations/blockerenum3.md new file mode 100644 index 000000000..e11ee2e68 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/blockerenum3.md @@ -0,0 +1,15 @@ +# BlockerEnum3 + +## Example Usage + +```typescript +import { BlockerEnum3 } from "@alienplatform/platform-api/models/operations"; + +let value: BlockerEnum3 = "quota-configuration-required"; +``` + +## Values + +```typescript +"agreement-required" | "entitlement-required" | "model-activation-required" | "deployment-required" | "quota-configuration-required" | "region-unavailable" | "access-denied" | "observation-failed" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/blockerenum4.md b/client-sdks/platform/typescript/docs/models/operations/blockerenum4.md new file mode 100644 index 000000000..f99b0e536 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/blockerenum4.md @@ -0,0 +1,15 @@ +# BlockerEnum4 + +## Example Usage + +```typescript +import { BlockerEnum4 } from "@alienplatform/platform-api/models/operations"; + +let value: BlockerEnum4 = "deployment-required"; +``` + +## Values + +```typescript +"agreement-required" | "entitlement-required" | "model-activation-required" | "deployment-required" | "quota-configuration-required" | "region-unavailable" | "access-denied" | "observation-failed" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/capacityblockerunion1.md b/client-sdks/platform/typescript/docs/models/operations/capacityblockerunion1.md index 01c9cb128..6e94dae81 100644 --- a/client-sdks/platform/typescript/docs/models/operations/capacityblockerunion1.md +++ b/client-sdks/platform/typescript/docs/models/operations/capacityblockerunion1.md @@ -18,4 +18,3 @@ const value: operations.CapacityBlocker1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/capacityblockerunion2.md b/client-sdks/platform/typescript/docs/models/operations/capacityblockerunion2.md index 7a70bc3d1..5b1a902b4 100644 --- a/client-sdks/platform/typescript/docs/models/operations/capacityblockerunion2.md +++ b/client-sdks/platform/typescript/docs/models/operations/capacityblockerunion2.md @@ -18,4 +18,3 @@ const value: operations.CapacityBlocker2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/capacityblockerunion3.md b/client-sdks/platform/typescript/docs/models/operations/capacityblockerunion3.md index d4ba0b485..330dfde72 100644 --- a/client-sdks/platform/typescript/docs/models/operations/capacityblockerunion3.md +++ b/client-sdks/platform/typescript/docs/models/operations/capacityblockerunion3.md @@ -18,4 +18,3 @@ const value: operations.CapacityBlocker3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/capacityblockerunion4.md b/client-sdks/platform/typescript/docs/models/operations/capacityblockerunion4.md index 988957b00..a04baf1f7 100644 --- a/client-sdks/platform/typescript/docs/models/operations/capacityblockerunion4.md +++ b/client-sdks/platform/typescript/docs/models/operations/capacityblockerunion4.md @@ -18,4 +18,3 @@ const value: operations.CapacityBlocker4 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/capacitycpuunion.md b/client-sdks/platform/typescript/docs/models/operations/capacitycpuunion.md index 6b02e304b..ca59ed4c6 100644 --- a/client-sdks/platform/typescript/docs/models/operations/capacitycpuunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/capacitycpuunion.md @@ -17,4 +17,3 @@ const value: operations.CpuCapacity = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/capacitymemoryunion.md b/client-sdks/platform/typescript/docs/models/operations/capacitymemoryunion.md index d7c533a92..61cbe306c 100644 --- a/client-sdks/platform/typescript/docs/models/operations/capacitymemoryunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/capacitymemoryunion.md @@ -17,4 +17,3 @@ const value: operations.MemoryCapacity = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/clientapi1.md b/client-sdks/platform/typescript/docs/models/operations/clientapi1.md new file mode 100644 index 000000000..a738d060e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/clientapi1.md @@ -0,0 +1,17 @@ +# ClientApi1 + +A public API accepted from an application client. + +## Example Usage + +```typescript +import { ClientApi1 } from "@alienplatform/platform-api/models/operations"; + +let value: ClientApi1 = "open-ai-chat-completions"; +``` + +## Values + +```typescript +"open-ai-chat-completions" | "open-ai-responses" | "anthropic-messages" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/clientapi2.md b/client-sdks/platform/typescript/docs/models/operations/clientapi2.md new file mode 100644 index 000000000..595b6ddfc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/clientapi2.md @@ -0,0 +1,17 @@ +# ClientApi2 + +A public API accepted from an application client. + +## Example Usage + +```typescript +import { ClientApi2 } from "@alienplatform/platform-api/models/operations"; + +let value: ClientApi2 = "open-ai-chat-completions"; +``` + +## Values + +```typescript +"open-ai-chat-completions" | "open-ai-responses" | "anthropic-messages" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/clientapi3.md b/client-sdks/platform/typescript/docs/models/operations/clientapi3.md new file mode 100644 index 000000000..d4b143222 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/clientapi3.md @@ -0,0 +1,17 @@ +# ClientApi3 + +A public API accepted from an application client. + +## Example Usage + +```typescript +import { ClientApi3 } from "@alienplatform/platform-api/models/operations"; + +let value: ClientApi3 = "open-ai-responses"; +``` + +## Values + +```typescript +"open-ai-chat-completions" | "open-ai-responses" | "anthropic-messages" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/clientapi4.md b/client-sdks/platform/typescript/docs/models/operations/clientapi4.md new file mode 100644 index 000000000..ecbf12e1f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/clientapi4.md @@ -0,0 +1,17 @@ +# ClientApi4 + +A public API accepted from an application client. + +## Example Usage + +```typescript +import { ClientApi4 } from "@alienplatform/platform-api/models/operations"; + +let value: ClientApi4 = "open-ai-responses"; +``` + +## Values + +```typescript +"open-ai-chat-completions" | "open-ai-responses" | "anthropic-messages" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/collectionissue66.md b/client-sdks/platform/typescript/docs/models/operations/collectionissue66.md new file mode 100644 index 000000000..96e9bbc2f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/collectionissue66.md @@ -0,0 +1,23 @@ +# CollectionIssue66 + +## Example Usage + +```typescript +import { CollectionIssue66 } from "@alienplatform/platform-api/models/operations"; + +let value: CollectionIssue66 = { + message: "", + reason: "api-unavailable", + severity: "warning", + source: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | +| `message` | *string* | :heavy_check_mark: | N/A | +| `reason` | [operations.Reason66](../../models/operations/reason66.md) | :heavy_check_mark: | N/A | +| `severity` | [operations.CollectionIssueSeverity66](../../models/operations/collectionissueseverity66.md) | :heavy_check_mark: | N/A | +| `source` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/collectionissue67.md b/client-sdks/platform/typescript/docs/models/operations/collectionissue67.md new file mode 100644 index 000000000..b0a979d5d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/collectionissue67.md @@ -0,0 +1,23 @@ +# CollectionIssue67 + +## Example Usage + +```typescript +import { CollectionIssue67 } from "@alienplatform/platform-api/models/operations"; + +let value: CollectionIssue67 = { + message: "", + reason: "forbidden", + severity: "warning", + source: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | +| `message` | *string* | :heavy_check_mark: | N/A | +| `reason` | [operations.Reason67](../../models/operations/reason67.md) | :heavy_check_mark: | N/A | +| `severity` | [operations.CollectionIssueSeverity67](../../models/operations/collectionissueseverity67.md) | :heavy_check_mark: | N/A | +| `source` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/collectionissue68.md b/client-sdks/platform/typescript/docs/models/operations/collectionissue68.md new file mode 100644 index 000000000..64b26a343 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/collectionissue68.md @@ -0,0 +1,23 @@ +# CollectionIssue68 + +## Example Usage + +```typescript +import { CollectionIssue68 } from "@alienplatform/platform-api/models/operations"; + +let value: CollectionIssue68 = { + message: "", + reason: "collection-failed", + severity: "info", + source: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | +| `message` | *string* | :heavy_check_mark: | N/A | +| `reason` | [operations.Reason68](../../models/operations/reason68.md) | :heavy_check_mark: | N/A | +| `severity` | [operations.CollectionIssueSeverity68](../../models/operations/collectionissueseverity68.md) | :heavy_check_mark: | N/A | +| `source` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/collectionissue69.md b/client-sdks/platform/typescript/docs/models/operations/collectionissue69.md new file mode 100644 index 000000000..eb79ffbe6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/collectionissue69.md @@ -0,0 +1,23 @@ +# CollectionIssue69 + +## Example Usage + +```typescript +import { CollectionIssue69 } from "@alienplatform/platform-api/models/operations"; + +let value: CollectionIssue69 = { + message: "", + reason: "timed-out", + severity: "info", + source: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | +| `message` | *string* | :heavy_check_mark: | N/A | +| `reason` | [operations.Reason69](../../models/operations/reason69.md) | :heavy_check_mark: | N/A | +| `severity` | [operations.CollectionIssueSeverity69](../../models/operations/collectionissueseverity69.md) | :heavy_check_mark: | N/A | +| `source` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/collectionissueseverity66.md b/client-sdks/platform/typescript/docs/models/operations/collectionissueseverity66.md new file mode 100644 index 000000000..f29e8c2b4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/collectionissueseverity66.md @@ -0,0 +1,15 @@ +# CollectionIssueSeverity66 + +## Example Usage + +```typescript +import { CollectionIssueSeverity66 } from "@alienplatform/platform-api/models/operations"; + +let value: CollectionIssueSeverity66 = "error"; +``` + +## Values + +```typescript +"info" | "warning" | "error" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/collectionissueseverity67.md b/client-sdks/platform/typescript/docs/models/operations/collectionissueseverity67.md new file mode 100644 index 000000000..e1d2ceb0e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/collectionissueseverity67.md @@ -0,0 +1,15 @@ +# CollectionIssueSeverity67 + +## Example Usage + +```typescript +import { CollectionIssueSeverity67 } from "@alienplatform/platform-api/models/operations"; + +let value: CollectionIssueSeverity67 = "warning"; +``` + +## Values + +```typescript +"info" | "warning" | "error" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/collectionissueseverity68.md b/client-sdks/platform/typescript/docs/models/operations/collectionissueseverity68.md new file mode 100644 index 000000000..e02b7b3c0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/collectionissueseverity68.md @@ -0,0 +1,15 @@ +# CollectionIssueSeverity68 + +## Example Usage + +```typescript +import { CollectionIssueSeverity68 } from "@alienplatform/platform-api/models/operations"; + +let value: CollectionIssueSeverity68 = "error"; +``` + +## Values + +```typescript +"info" | "warning" | "error" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/collectionissueseverity69.md b/client-sdks/platform/typescript/docs/models/operations/collectionissueseverity69.md new file mode 100644 index 000000000..7e4501587 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/collectionissueseverity69.md @@ -0,0 +1,15 @@ +# CollectionIssueSeverity69 + +## Example Usage + +```typescript +import { CollectionIssueSeverity69 } from "@alienplatform/platform-api/models/operations"; + +let value: CollectionIssueSeverity69 = "error"; +``` + +## Values + +```typescript +"info" | "warning" | "error" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/containerunitcpuunion.md b/client-sdks/platform/typescript/docs/models/operations/containerunitcpuunion.md index 46dc169a3..4b4026a34 100644 --- a/client-sdks/platform/typescript/docs/models/operations/containerunitcpuunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/containerunitcpuunion.md @@ -17,4 +17,3 @@ const value: operations.ContainerUnitCpu = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/containerunitmemoryunion.md b/client-sdks/platform/typescript/docs/models/operations/containerunitmemoryunion.md index ae28f79e5..f751c710c 100644 --- a/client-sdks/platform/typescript/docs/models/operations/containerunitmemoryunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/containerunitmemoryunion.md @@ -17,4 +17,3 @@ const value: operations.ContainerUnitMemory = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/containerunitunion.md b/client-sdks/platform/typescript/docs/models/operations/containerunitunion.md index ba7facb6b..010eef311 100644 --- a/client-sdks/platform/typescript/docs/models/operations/containerunitunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/containerunitunion.md @@ -19,4 +19,3 @@ const value: operations.ContainerUnit = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/cpuunion1.md b/client-sdks/platform/typescript/docs/models/operations/cpuunion1.md index 65ffe02fb..8043795b7 100644 --- a/client-sdks/platform/typescript/docs/models/operations/cpuunion1.md +++ b/client-sdks/platform/typescript/docs/models/operations/cpuunion1.md @@ -17,4 +17,3 @@ const value: operations.Cpu1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/cpuunion10.md b/client-sdks/platform/typescript/docs/models/operations/cpuunion10.md index dba9b194e..8384f26c1 100644 --- a/client-sdks/platform/typescript/docs/models/operations/cpuunion10.md +++ b/client-sdks/platform/typescript/docs/models/operations/cpuunion10.md @@ -17,4 +17,3 @@ const value: operations.Cpu10 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/cpuunion11.md b/client-sdks/platform/typescript/docs/models/operations/cpuunion11.md index adc5990ff..369f6d48c 100644 --- a/client-sdks/platform/typescript/docs/models/operations/cpuunion11.md +++ b/client-sdks/platform/typescript/docs/models/operations/cpuunion11.md @@ -17,4 +17,3 @@ const value: operations.Cpu11 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/cpuunion2.md b/client-sdks/platform/typescript/docs/models/operations/cpuunion2.md index bbdb29a0a..fb4fd5c8c 100644 --- a/client-sdks/platform/typescript/docs/models/operations/cpuunion2.md +++ b/client-sdks/platform/typescript/docs/models/operations/cpuunion2.md @@ -17,4 +17,3 @@ const value: operations.Cpu2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/cpuunion3.md b/client-sdks/platform/typescript/docs/models/operations/cpuunion3.md index e5d9f6996..56f3c7def 100644 --- a/client-sdks/platform/typescript/docs/models/operations/cpuunion3.md +++ b/client-sdks/platform/typescript/docs/models/operations/cpuunion3.md @@ -17,4 +17,3 @@ const value: operations.Cpu3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/cpuunion4.md b/client-sdks/platform/typescript/docs/models/operations/cpuunion4.md index e395382bc..a444c8cd3 100644 --- a/client-sdks/platform/typescript/docs/models/operations/cpuunion4.md +++ b/client-sdks/platform/typescript/docs/models/operations/cpuunion4.md @@ -17,4 +17,3 @@ const value: operations.Cpu4 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/cpuunion5.md b/client-sdks/platform/typescript/docs/models/operations/cpuunion5.md index 8ca4f861a..7f3e4fb74 100644 --- a/client-sdks/platform/typescript/docs/models/operations/cpuunion5.md +++ b/client-sdks/platform/typescript/docs/models/operations/cpuunion5.md @@ -17,4 +17,3 @@ const value: operations.Cpu5 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/cpuunion6.md b/client-sdks/platform/typescript/docs/models/operations/cpuunion6.md index 6e3b4be1f..9428bb892 100644 --- a/client-sdks/platform/typescript/docs/models/operations/cpuunion6.md +++ b/client-sdks/platform/typescript/docs/models/operations/cpuunion6.md @@ -17,4 +17,3 @@ const value: operations.Cpu6 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/cpuunion7.md b/client-sdks/platform/typescript/docs/models/operations/cpuunion7.md index afec469aa..ee1b9b97b 100644 --- a/client-sdks/platform/typescript/docs/models/operations/cpuunion7.md +++ b/client-sdks/platform/typescript/docs/models/operations/cpuunion7.md @@ -17,4 +17,3 @@ const value: operations.Cpu7 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/cpuunion8.md b/client-sdks/platform/typescript/docs/models/operations/cpuunion8.md index 8cd33b193..92cd5c679 100644 --- a/client-sdks/platform/typescript/docs/models/operations/cpuunion8.md +++ b/client-sdks/platform/typescript/docs/models/operations/cpuunion8.md @@ -17,4 +17,3 @@ const value: operations.Cpu8 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/cpuunion9.md b/client-sdks/platform/typescript/docs/models/operations/cpuunion9.md index 6bc5a3bdd..4d6cd2517 100644 --- a/client-sdks/platform/typescript/docs/models/operations/cpuunion9.md +++ b/client-sdks/platform/typescript/docs/models/operations/cpuunion9.md @@ -17,4 +17,3 @@ const value: operations.Cpu9 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/createreleasechannelrequest.md b/client-sdks/platform/typescript/docs/models/operations/createreleasechannelrequest.md new file mode 100644 index 000000000..a89462657 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/createreleasechannelrequest.md @@ -0,0 +1,20 @@ +# CreateReleaseChannelRequest + +## Example Usage + +```typescript +import { CreateReleaseChannelRequest } from "@alienplatform/platform-api/models/operations"; + +let value: CreateReleaseChannelRequest = { + workspace: "my-workspace", + project: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | +| `project` | *string* | :heavy_check_mark: | Filter by project ID or name. | | +| `requestBody` | [operations.CreateReleaseChannelRequestBody](../../models/operations/createreleasechannelrequestbody.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/createreleasechannelrequestbody.md b/client-sdks/platform/typescript/docs/models/operations/createreleasechannelrequestbody.md new file mode 100644 index 000000000..42891cc04 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/createreleasechannelrequestbody.md @@ -0,0 +1,19 @@ +# CreateReleaseChannelRequestBody + +## Example Usage + +```typescript +import { CreateReleaseChannelRequestBody } from "@alienplatform/platform-api/models/operations"; + +let value: CreateReleaseChannelRequestBody = { + name: "", + releaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | +| `name` | *string* | :heavy_check_mark: | N/A | | +| `releaseId` | *string* | :heavy_minus_sign: | Unique identifier for the release. | rel_WbhQgksrawSKIpEN0NAssHX9 | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/createworkspaceinvitationrequest.md b/client-sdks/platform/typescript/docs/models/operations/createworkspaceinvitationrequest.md new file mode 100644 index 000000000..ebe50a0a3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/createworkspaceinvitationrequest.md @@ -0,0 +1,20 @@ +# CreateWorkspaceInvitationRequest + +## Example Usage + +```typescript +import { CreateWorkspaceInvitationRequest } from "@alienplatform/platform-api/models/operations"; + +let value: CreateWorkspaceInvitationRequest = { + id: "ws_It13CUaGEhLLAB87simX0", + workspace: "my-workspace", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the workspace. | ws_It13CUaGEhLLAB87simX0 | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | +| `requestBody` | [operations.CreateWorkspaceInvitationRequestBody](../../models/operations/createworkspaceinvitationrequestbody.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/createworkspaceinvitationrequestbody.md b/client-sdks/platform/typescript/docs/models/operations/createworkspaceinvitationrequestbody.md new file mode 100644 index 000000000..f72dc59f5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/createworkspaceinvitationrequestbody.md @@ -0,0 +1,19 @@ +# CreateWorkspaceInvitationRequestBody + +## Example Usage + +```typescript +import { CreateWorkspaceInvitationRequestBody } from "@alienplatform/platform-api/models/operations"; + +let value: CreateWorkspaceInvitationRequestBody = { + email: "Tyrell_Kris74@hotmail.com", + role: "workspace.member", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | +| `email` | *string* | :heavy_check_mark: | N/A | | +| `role` | [models.WorkspaceRole](../../models/workspacerole.md) | :heavy_check_mark: | Role for workspace-scoped service accounts | workspace.member | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/createworkspaceinvitelinkrequest.md b/client-sdks/platform/typescript/docs/models/operations/createworkspaceinvitelinkrequest.md new file mode 100644 index 000000000..9a9449626 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/createworkspaceinvitelinkrequest.md @@ -0,0 +1,20 @@ +# CreateWorkspaceInviteLinkRequest + +## Example Usage + +```typescript +import { CreateWorkspaceInviteLinkRequest } from "@alienplatform/platform-api/models/operations"; + +let value: CreateWorkspaceInviteLinkRequest = { + id: "ws_It13CUaGEhLLAB87simX0", + workspace: "my-workspace", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the workspace. | ws_It13CUaGEhLLAB87simX0 | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | +| `requestBody` | [operations.CreateWorkspaceInviteLinkRequestBody](../../models/operations/createworkspaceinvitelinkrequestbody.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/createworkspaceinvitelinkrequestbody.md b/client-sdks/platform/typescript/docs/models/operations/createworkspaceinvitelinkrequestbody.md new file mode 100644 index 000000000..6bccdb3d8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/createworkspaceinvitelinkrequestbody.md @@ -0,0 +1,17 @@ +# CreateWorkspaceInviteLinkRequestBody + +## Example Usage + +```typescript +import { CreateWorkspaceInviteLinkRequestBody } from "@alienplatform/platform-api/models/operations"; + +let value: CreateWorkspaceInviteLinkRequestBody = { + role: "workspace.member", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | +| `role` | [models.WorkspaceRole](../../models/workspacerole.md) | :heavy_check_mark: | Role for workspace-scoped service accounts | workspace.member | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/daemoninstancecpuunion1.md b/client-sdks/platform/typescript/docs/models/operations/daemoninstancecpuunion1.md index 7ede07011..99746aae8 100644 --- a/client-sdks/platform/typescript/docs/models/operations/daemoninstancecpuunion1.md +++ b/client-sdks/platform/typescript/docs/models/operations/daemoninstancecpuunion1.md @@ -17,4 +17,3 @@ const value: operations.CpuDaemonInstance1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/daemoninstancecpuunion2.md b/client-sdks/platform/typescript/docs/models/operations/daemoninstancecpuunion2.md index 46e38b35c..3423091f7 100644 --- a/client-sdks/platform/typescript/docs/models/operations/daemoninstancecpuunion2.md +++ b/client-sdks/platform/typescript/docs/models/operations/daemoninstancecpuunion2.md @@ -17,4 +17,3 @@ const value: operations.CpuDaemonInstance2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/daemoninstancecpuunion3.md b/client-sdks/platform/typescript/docs/models/operations/daemoninstancecpuunion3.md index 282e46d11..023b31e41 100644 --- a/client-sdks/platform/typescript/docs/models/operations/daemoninstancecpuunion3.md +++ b/client-sdks/platform/typescript/docs/models/operations/daemoninstancecpuunion3.md @@ -17,4 +17,3 @@ const value: operations.CpuDaemonInstance3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/daemoninstancecpuunion4.md b/client-sdks/platform/typescript/docs/models/operations/daemoninstancecpuunion4.md index 9ed71582b..40f6c7fad 100644 --- a/client-sdks/platform/typescript/docs/models/operations/daemoninstancecpuunion4.md +++ b/client-sdks/platform/typescript/docs/models/operations/daemoninstancecpuunion4.md @@ -17,4 +17,3 @@ const value: operations.CpuDaemonInstance4 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/daemoninstancecpuunion5.md b/client-sdks/platform/typescript/docs/models/operations/daemoninstancecpuunion5.md index ecc982d92..73c4dc7d2 100644 --- a/client-sdks/platform/typescript/docs/models/operations/daemoninstancecpuunion5.md +++ b/client-sdks/platform/typescript/docs/models/operations/daemoninstancecpuunion5.md @@ -17,4 +17,3 @@ const value: operations.DaemonInstanceCpu = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/daemoninstancememoryunion1.md b/client-sdks/platform/typescript/docs/models/operations/daemoninstancememoryunion1.md index 869966a10..65808a634 100644 --- a/client-sdks/platform/typescript/docs/models/operations/daemoninstancememoryunion1.md +++ b/client-sdks/platform/typescript/docs/models/operations/daemoninstancememoryunion1.md @@ -17,4 +17,3 @@ const value: operations.MemoryDaemonInstance1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/daemoninstancememoryunion2.md b/client-sdks/platform/typescript/docs/models/operations/daemoninstancememoryunion2.md index 1893552ed..5469520bd 100644 --- a/client-sdks/platform/typescript/docs/models/operations/daemoninstancememoryunion2.md +++ b/client-sdks/platform/typescript/docs/models/operations/daemoninstancememoryunion2.md @@ -17,4 +17,3 @@ const value: operations.MemoryDaemonInstance2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/daemoninstancememoryunion3.md b/client-sdks/platform/typescript/docs/models/operations/daemoninstancememoryunion3.md index a73220349..c3af768f0 100644 --- a/client-sdks/platform/typescript/docs/models/operations/daemoninstancememoryunion3.md +++ b/client-sdks/platform/typescript/docs/models/operations/daemoninstancememoryunion3.md @@ -17,4 +17,3 @@ const value: operations.MemoryDaemonInstance3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/daemoninstancememoryunion4.md b/client-sdks/platform/typescript/docs/models/operations/daemoninstancememoryunion4.md index d23f8c896..4dbaea474 100644 --- a/client-sdks/platform/typescript/docs/models/operations/daemoninstancememoryunion4.md +++ b/client-sdks/platform/typescript/docs/models/operations/daemoninstancememoryunion4.md @@ -17,4 +17,3 @@ const value: operations.MemoryDaemonInstance4 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/daemoninstancememoryunion5.md b/client-sdks/platform/typescript/docs/models/operations/daemoninstancememoryunion5.md index 34ba9579e..1d13a4abf 100644 --- a/client-sdks/platform/typescript/docs/models/operations/daemoninstancememoryunion5.md +++ b/client-sdks/platform/typescript/docs/models/operations/daemoninstancememoryunion5.md @@ -17,4 +17,3 @@ const value: operations.DaemonInstanceMemory = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/daemoninstanceunion.md b/client-sdks/platform/typescript/docs/models/operations/daemoninstanceunion.md index 690d906e9..b40babc37 100644 --- a/client-sdks/platform/typescript/docs/models/operations/daemoninstanceunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/daemoninstanceunion.md @@ -19,4 +19,3 @@ const value: operations.DaemonInstance5 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/data6.md b/client-sdks/platform/typescript/docs/models/operations/data6.md new file mode 100644 index 000000000..8af6885ea --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/data6.md @@ -0,0 +1,30 @@ +# Data6 + +## Example Usage + +```typescript +import { Data6 } from "@alienplatform/platform-api/models/operations"; + +let value: Data6 = { + enabled: false, + keyArn: "", + keySpec: "", + keyState: "", + keyUsage: "", + status: { + health: "healthy", + lifecycle: "failed", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `enabled` | *boolean* | :heavy_check_mark: | N/A | +| `keyArn` | *string* | :heavy_check_mark: | N/A | +| `keySpec` | *string* | :heavy_check_mark: | N/A | +| `keyState` | *string* | :heavy_check_mark: | N/A | +| `keyUsage` | *string* | :heavy_check_mark: | N/A | +| `status` | [operations.DataStatus70](../../models/operations/datastatus70.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/data7.md b/client-sdks/platform/typescript/docs/models/operations/data7.md new file mode 100644 index 000000000..b00810ef1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/data7.md @@ -0,0 +1,27 @@ +# Data7 + +## Example Usage + +```typescript +import { Data7 } from "@alienplatform/platform-api/models/operations"; + +let value: Data7 = { + cryptoKeyName: "", + purpose: "", + status: { + health: "healthy", + lifecycle: "deleted", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `algorithm` | *string* | :heavy_minus_sign: | N/A | +| `cryptoKeyName` | *string* | :heavy_check_mark: | N/A | +| `primaryState` | *string* | :heavy_minus_sign: | N/A | +| `primaryVersion` | *string* | :heavy_minus_sign: | N/A | +| `purpose` | *string* | :heavy_check_mark: | N/A | +| `status` | [operations.DataStatus71](../../models/operations/datastatus71.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/data8.md b/client-sdks/platform/typescript/docs/models/operations/data8.md new file mode 100644 index 000000000..a05227ac8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/data8.md @@ -0,0 +1,31 @@ +# Data8 + +## Example Usage + +```typescript +import { Data8 } from "@alienplatform/platform-api/models/operations"; + +let value: Data8 = { + keyId: "", + keyOperations: [ + "", + "", + ], + keyType: "", + status: { + health: "unhealthy", + lifecycle: "deleting", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `enabled` | *boolean* | :heavy_minus_sign: | N/A | +| `keyId` | *string* | :heavy_check_mark: | N/A | +| `keyOperations` | *string*[] | :heavy_check_mark: | N/A | +| `keyType` | *string* | :heavy_check_mark: | N/A | +| `recoveryLevel` | *string* | :heavy_minus_sign: | N/A | +| `status` | [operations.DataStatus72](../../models/operations/datastatus72.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/dataai.md b/client-sdks/platform/typescript/docs/models/operations/dataai.md new file mode 100644 index 000000000..02df1a076 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/dataai.md @@ -0,0 +1,43 @@ +# DataAi + +## Example Usage + +```typescript +import { DataAi } from "@alienplatform/platform-api/models/operations"; + +let value: DataAi = { + data: { + availability: { + catalogRevision: "", + models: [ + { + accessTest: "not-checked", + availability: "unknown", + blockers: [], + clientApis: [], + publicModelId: "", + }, + ], + source: "anthropic", + }, + location: "", + project: "", + status: { + collectionIssues: [], + health: "degraded", + lifecycle: "unknown", + partial: false, + stale: false, + }, + backend: "gcpVertex", + }, + resourceType: "ai", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------ | ------------------------ | ------------------------ | ------------------------ | +| `data` | *operations.DataUnion16* | :heavy_check_mark: | N/A | +| `resourceType` | *"ai"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/dataaws1.md b/client-sdks/platform/typescript/docs/models/operations/dataaws1.md index 79c1407f7..26ac3ca36 100644 --- a/client-sdks/platform/typescript/docs/models/operations/dataaws1.md +++ b/client-sdks/platform/typescript/docs/models/operations/dataaws1.md @@ -63,6 +63,7 @@ let value: DataAws1 = { | `horizonStatusMessage` | *string* | :heavy_minus_sign: | N/A | | `horizonStatusReason` | *string* | :heavy_minus_sign: | N/A | | `latestUpdateTimestamp` | *string* | :heavy_check_mark: | N/A | +| `observedImage` | *string* | :heavy_minus_sign: | N/A | | `status` | [operations.DataStatus13](../../models/operations/datastatus13.md) | :heavy_check_mark: | N/A | | `unavailableInstances` | *number* | :heavy_check_mark: | N/A | | `backend` | *"aws"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/dataawsbedrock.md b/client-sdks/platform/typescript/docs/models/operations/dataawsbedrock.md new file mode 100644 index 000000000..557528bae --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/dataawsbedrock.md @@ -0,0 +1,40 @@ +# DataAwsBedrock + +## Example Usage + +```typescript +import { DataAwsBedrock } from "@alienplatform/platform-api/models/operations"; + +let value: DataAwsBedrock = { + availability: { + catalogRevision: "", + models: [], + source: "aws-bedrock", + }, + region: "", + status: { + collectionIssues: [ + { + message: "", + reason: "timed-out", + severity: "warning", + source: "", + }, + ], + health: "unhealthy", + lifecycle: "deleting", + partial: false, + stale: false, + }, + backend: "awsBedrock", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `availability` | [operations.Availability1](../../models/operations/availability1.md) | :heavy_check_mark: | N/A | +| `region` | *string* | :heavy_check_mark: | N/A | +| `status` | [operations.DataStatus66](../../models/operations/datastatus66.md) | :heavy_check_mark: | N/A | +| `backend` | *"awsBedrock"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/dataawskms.md b/client-sdks/platform/typescript/docs/models/operations/dataawskms.md new file mode 100644 index 000000000..f82a8251f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/dataawskms.md @@ -0,0 +1,29 @@ +# DataAwsKms + +## Example Usage + +```typescript +import { DataAwsKms } from "@alienplatform/platform-api/models/operations"; + +let value: DataAwsKms = { + data: { + enabled: true, + keyArn: "", + keySpec: "", + keyState: "", + keyUsage: "", + status: { + health: "healthy", + lifecycle: "failed", + }, + }, + provider: "aws-kms", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | +| `data` | [operations.Data6](../../models/operations/data6.md) | :heavy_check_mark: | N/A | +| `provider` | *"aws-kms"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/dataazure1.md b/client-sdks/platform/typescript/docs/models/operations/dataazure1.md index 15708477e..73f949fef 100644 --- a/client-sdks/platform/typescript/docs/models/operations/dataazure1.md +++ b/client-sdks/platform/typescript/docs/models/operations/dataazure1.md @@ -58,6 +58,7 @@ let value: DataAzure1 = { | `horizonStatusMessage` | *string* | :heavy_minus_sign: | N/A | | `horizonStatusReason` | *string* | :heavy_minus_sign: | N/A | | `latestUpdateTimestamp` | *string* | :heavy_check_mark: | N/A | +| `observedImage` | *string* | :heavy_minus_sign: | N/A | | `status` | [operations.DataStatus15](../../models/operations/datastatus15.md) | :heavy_check_mark: | N/A | | `unavailableInstances` | *number* | :heavy_check_mark: | N/A | | `backend` | *"azure"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/dataazurefoundry.md b/client-sdks/platform/typescript/docs/models/operations/dataazurefoundry.md new file mode 100644 index 000000000..62506ebce --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/dataazurefoundry.md @@ -0,0 +1,53 @@ +# DataAzureFoundry + +## Example Usage + +```typescript +import { DataAzureFoundry } from "@alienplatform/platform-api/models/operations"; + +let value: DataAzureFoundry = { + accountName: "", + availability: { + catalogRevision: "", + models: [ + { + accessTest: "verified", + availability: "available", + blockers: [], + clientApis: [ + "anthropic-messages", + ], + publicModelId: "", + }, + ], + source: "azure-foundry", + }, + status: { + collectionIssues: [ + { + message: "", + reason: "collection-failed", + severity: "warning", + source: "", + }, + ], + health: "unknown", + lifecycle: "stopping", + partial: false, + stale: false, + }, + backend: "azureFoundry", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `accountName` | *string* | :heavy_check_mark: | N/A | +| `availability` | [operations.Availability3](../../models/operations/availability3.md) | :heavy_check_mark: | N/A | +| `endpoint` | *string* | :heavy_minus_sign: | N/A | +| `location` | *string* | :heavy_minus_sign: | N/A | +| `resourceGroup` | *string* | :heavy_minus_sign: | N/A | +| `status` | [operations.DataStatus68](../../models/operations/datastatus68.md) | :heavy_check_mark: | N/A | +| `backend` | *"azureFoundry"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/dataazurekeyvault.md b/client-sdks/platform/typescript/docs/models/operations/dataazurekeyvault.md deleted file mode 100644 index 8fc82d923..000000000 --- a/client-sdks/platform/typescript/docs/models/operations/dataazurekeyvault.md +++ /dev/null @@ -1,49 +0,0 @@ -# DataAzureKeyVault - -## Example Usage - -```typescript -import { DataAzureKeyVault } from "@alienplatform/platform-api/models/operations"; - -let value: DataAzureKeyVault = { - accessPolicyCount: 923246, - name: "", - privateEndpointConnectionCount: 319306, - publicNetworkAccess: "", - rbacAuthorizationEnabled: true, - secretMetadataListed: false, - softDeleteEnabled: false, - softDeleteRetentionDays: 497787, - status: { - collectionIssues: [], - health: "degraded", - lifecycle: "creating", - partial: true, - stale: false, - }, - backend: "azureKeyVault", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | -| `accessPolicyCount` | *number* | :heavy_check_mark: | N/A | -| `location` | *string* | :heavy_minus_sign: | N/A | -| `name` | *string* | :heavy_check_mark: | N/A | -| `privateEndpointConnectionCount` | *number* | :heavy_check_mark: | N/A | -| `provisioningState` | *string* | :heavy_minus_sign: | N/A | -| `publicNetworkAccess` | *string* | :heavy_check_mark: | N/A | -| `purgeProtectionEnabled` | *boolean* | :heavy_minus_sign: | N/A | -| `rbacAuthorizationEnabled` | *boolean* | :heavy_check_mark: | N/A | -| `resourceGroup` | *string* | :heavy_minus_sign: | N/A | -| `resourceId` | *string* | :heavy_minus_sign: | N/A | -| `secretMetadataListed` | *boolean* | :heavy_check_mark: | N/A | -| `skuFamily` | *string* | :heavy_minus_sign: | N/A | -| `skuName` | *string* | :heavy_minus_sign: | N/A | -| `softDeleteEnabled` | *boolean* | :heavy_check_mark: | N/A | -| `softDeleteRetentionDays` | *number* | :heavy_check_mark: | N/A | -| `status` | [operations.DataStatus39](../../models/operations/datastatus39.md) | :heavy_check_mark: | N/A | -| `vaultUri` | *string* | :heavy_minus_sign: | N/A | -| `backend` | *"azureKeyVault"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/dataazurekeyvault1.md b/client-sdks/platform/typescript/docs/models/operations/dataazurekeyvault1.md new file mode 100644 index 000000000..c8e09fbf3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/dataazurekeyvault1.md @@ -0,0 +1,56 @@ +# DataAzureKeyVault1 + +## Example Usage + +```typescript +import { DataAzureKeyVault1 } from "@alienplatform/platform-api/models/operations"; + +let value: DataAzureKeyVault1 = { + accessPolicyCount: 582917, + name: "", + privateEndpointConnectionCount: 112234, + publicNetworkAccess: "", + rbacAuthorizationEnabled: true, + secretMetadataListed: false, + softDeleteEnabled: true, + softDeleteRetentionDays: 457442, + status: { + collectionIssues: [ + { + message: "", + reason: "timed-out", + severity: "error", + source: "", + }, + ], + health: "unknown", + lifecycle: "updating", + partial: false, + stale: false, + }, + backend: "azureKeyVault", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `accessPolicyCount` | *number* | :heavy_check_mark: | N/A | +| `location` | *string* | :heavy_minus_sign: | N/A | +| `name` | *string* | :heavy_check_mark: | N/A | +| `privateEndpointConnectionCount` | *number* | :heavy_check_mark: | N/A | +| `provisioningState` | *string* | :heavy_minus_sign: | N/A | +| `publicNetworkAccess` | *string* | :heavy_check_mark: | N/A | +| `purgeProtectionEnabled` | *boolean* | :heavy_minus_sign: | N/A | +| `rbacAuthorizationEnabled` | *boolean* | :heavy_check_mark: | N/A | +| `resourceGroup` | *string* | :heavy_minus_sign: | N/A | +| `resourceId` | *string* | :heavy_minus_sign: | N/A | +| `secretMetadataListed` | *boolean* | :heavy_check_mark: | N/A | +| `skuFamily` | *string* | :heavy_minus_sign: | N/A | +| `skuName` | *string* | :heavy_minus_sign: | N/A | +| `softDeleteEnabled` | *boolean* | :heavy_check_mark: | N/A | +| `softDeleteRetentionDays` | *number* | :heavy_check_mark: | N/A | +| `status` | [operations.DataStatus39](../../models/operations/datastatus39.md) | :heavy_check_mark: | N/A | +| `vaultUri` | *string* | :heavy_minus_sign: | N/A | +| `backend` | *"azureKeyVault"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/dataazurekeyvault2.md b/client-sdks/platform/typescript/docs/models/operations/dataazurekeyvault2.md new file mode 100644 index 000000000..94bccf465 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/dataazurekeyvault2.md @@ -0,0 +1,27 @@ +# DataAzureKeyVault2 + +## Example Usage + +```typescript +import { DataAzureKeyVault2 } from "@alienplatform/platform-api/models/operations"; + +let value: DataAzureKeyVault2 = { + data: { + keyId: "", + keyOperations: [], + keyType: "", + status: { + health: "unhealthy", + lifecycle: "deleting", + }, + }, + provider: "azure-key-vault", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | +| `data` | [operations.Data8](../../models/operations/data8.md) | :heavy_check_mark: | N/A | +| `provider` | *"azure-key-vault"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/dataexternal.md b/client-sdks/platform/typescript/docs/models/operations/dataexternal.md new file mode 100644 index 000000000..043faeb06 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/dataexternal.md @@ -0,0 +1,28 @@ +# DataExternal + +## Example Usage + +```typescript +import { DataExternal } from "@alienplatform/platform-api/models/operations"; + +let value: DataExternal = { + provider: "", + status: { + collectionIssues: [], + health: "unknown", + lifecycle: "running", + partial: true, + stale: false, + }, + backend: "external", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `availability` | *operations.AvailabilityUnion* | :heavy_minus_sign: | N/A | +| `provider` | *string* | :heavy_check_mark: | The BYO-key provider serving this binding (e.g. "openai"). Used on the Local
platform, where the app brings its own provider key instead of an ambient cloud. | +| `status` | [operations.DataStatus69](../../models/operations/datastatus69.md) | :heavy_check_mark: | N/A | +| `backend` | *"external"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/datagcp1.md b/client-sdks/platform/typescript/docs/models/operations/datagcp1.md index 75ffc8836..79c694ac8 100644 --- a/client-sdks/platform/typescript/docs/models/operations/datagcp1.md +++ b/client-sdks/platform/typescript/docs/models/operations/datagcp1.md @@ -57,6 +57,7 @@ let value: DataGcp1 = { | `horizonStatusMessage` | *string* | :heavy_minus_sign: | N/A | | `horizonStatusReason` | *string* | :heavy_minus_sign: | N/A | | `latestUpdateTimestamp` | *string* | :heavy_check_mark: | N/A | +| `observedImage` | *string* | :heavy_minus_sign: | N/A | | `status` | [operations.DataStatus14](../../models/operations/datastatus14.md) | :heavy_check_mark: | N/A | | `unavailableInstances` | *number* | :heavy_check_mark: | N/A | | `backend` | *"gcp"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/datagcpcloudkms.md b/client-sdks/platform/typescript/docs/models/operations/datagcpcloudkms.md new file mode 100644 index 000000000..fa57d7018 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/datagcpcloudkms.md @@ -0,0 +1,26 @@ +# DataGcpCloudKms + +## Example Usage + +```typescript +import { DataGcpCloudKms } from "@alienplatform/platform-api/models/operations"; + +let value: DataGcpCloudKms = { + data: { + cryptoKeyName: "", + purpose: "", + status: { + health: "healthy", + lifecycle: "deleted", + }, + }, + provider: "gcp-cloud-kms", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | +| `data` | [operations.Data7](../../models/operations/data7.md) | :heavy_check_mark: | N/A | +| `provider` | *"gcp-cloud-kms"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/datagcpvertex.md b/client-sdks/platform/typescript/docs/models/operations/datagcpvertex.md new file mode 100644 index 000000000..f30c67a26 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/datagcpvertex.md @@ -0,0 +1,43 @@ +# DataGcpVertex + +## Example Usage + +```typescript +import { DataGcpVertex } from "@alienplatform/platform-api/models/operations"; + +let value: DataGcpVertex = { + availability: { + catalogRevision: "", + models: [ + { + accessTest: "not-checked", + availability: "unknown", + blockers: [], + clientApis: [], + publicModelId: "", + }, + ], + source: "anthropic", + }, + location: "", + project: "", + status: { + collectionIssues: [], + health: "degraded", + lifecycle: "unknown", + partial: false, + stale: false, + }, + backend: "gcpVertex", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `availability` | [operations.Availability2](../../models/operations/availability2.md) | :heavy_check_mark: | N/A | +| `location` | *string* | :heavy_check_mark: | N/A | +| `project` | *string* | :heavy_check_mark: | N/A | +| `status` | [operations.DataStatus67](../../models/operations/datastatus67.md) | :heavy_check_mark: | N/A | +| `backend` | *"gcpVertex"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/datahorizonplatform.md b/client-sdks/platform/typescript/docs/models/operations/datahorizonplatform.md index 186b242f3..2bfd82206 100644 --- a/client-sdks/platform/typescript/docs/models/operations/datahorizonplatform.md +++ b/client-sdks/platform/typescript/docs/models/operations/datahorizonplatform.md @@ -39,7 +39,9 @@ let value: DataHorizonPlatform = { | `cpu` | *operations.CpuUnion3* | :heavy_minus_sign: | N/A | | `events` | [operations.Event3](../../models/operations/event3.md)[] | :heavy_check_mark: | N/A | | `image` | *string* | :heavy_minus_sign: | N/A | +| `latestUpdateTimestamp` | *string* | :heavy_minus_sign: | N/A | | `memory` | *operations.MemoryUnion3* | :heavy_minus_sign: | N/A | +| `observedImage` | *string* | :heavy_minus_sign: | N/A | | `replicaUnits` | [operations.ReplicaUnit](../../models/operations/replicaunit.md)[] | :heavy_check_mark: | N/A | | `replicas` | [operations.Replicas2](../../models/operations/replicas2.md) | :heavy_check_mark: | N/A | | `schedulingMode` | [operations.SchedulingMode](../../models/operations/schedulingmode.md) | :heavy_check_mark: | N/A | diff --git a/client-sdks/platform/typescript/docs/models/operations/datakey.md b/client-sdks/platform/typescript/docs/models/operations/datakey.md new file mode 100644 index 000000000..78e232ed9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/datakey.md @@ -0,0 +1,30 @@ +# DataKey + +## Example Usage + +```typescript +import { DataKey } from "@alienplatform/platform-api/models/operations"; + +let value: DataKey = { + data: { + data: { + keyId: "", + keyOperations: [], + keyType: "", + status: { + health: "unhealthy", + lifecycle: "deleting", + }, + }, + provider: "azure-key-vault", + }, + resourceType: "key", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------ | ------------------------ | ------------------------ | ------------------------ | +| `data` | *operations.DataUnion17* | :heavy_check_mark: | N/A | +| `resourceType` | *"key"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/datamachines1.md b/client-sdks/platform/typescript/docs/models/operations/datamachines1.md index 8763f73b0..ab57952bd 100644 --- a/client-sdks/platform/typescript/docs/models/operations/datamachines1.md +++ b/client-sdks/platform/typescript/docs/models/operations/datamachines1.md @@ -56,6 +56,7 @@ let value: DataMachines1 = { | `horizonStatusMessage` | *string* | :heavy_minus_sign: | N/A | | `horizonStatusReason` | *string* | :heavy_minus_sign: | N/A | | `latestUpdateTimestamp` | *string* | :heavy_check_mark: | N/A | +| `observedImage` | *string* | :heavy_minus_sign: | N/A | | `status` | [operations.DataStatus16](../../models/operations/datastatus16.md) | :heavy_check_mark: | N/A | | `unavailableInstances` | *number* | :heavy_check_mark: | N/A | | `backend` | *"machines"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/datastatus66.md b/client-sdks/platform/typescript/docs/models/operations/datastatus66.md new file mode 100644 index 000000000..8f66b7125 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/datastatus66.md @@ -0,0 +1,26 @@ +# DataStatus66 + +## Example Usage + +```typescript +import { DataStatus66 } from "@alienplatform/platform-api/models/operations"; + +let value: DataStatus66 = { + collectionIssues: [], + health: "unknown", + lifecycle: "stopping", + partial: true, + stale: true, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `collectionIssues` | [operations.CollectionIssue66](../../models/operations/collectionissue66.md)[] | :heavy_check_mark: | N/A | +| `health` | [operations.Health66](../../models/operations/health66.md) | :heavy_check_mark: | N/A | +| `lifecycle` | [operations.Lifecycle66](../../models/operations/lifecycle66.md) | :heavy_check_mark: | N/A | +| `message` | *string* | :heavy_minus_sign: | N/A | +| `partial` | *boolean* | :heavy_check_mark: | N/A | +| `stale` | *boolean* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/datastatus67.md b/client-sdks/platform/typescript/docs/models/operations/datastatus67.md new file mode 100644 index 000000000..ac1e2062b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/datastatus67.md @@ -0,0 +1,33 @@ +# DataStatus67 + +## Example Usage + +```typescript +import { DataStatus67 } from "@alienplatform/platform-api/models/operations"; + +let value: DataStatus67 = { + collectionIssues: [ + { + message: "", + reason: "forbidden", + severity: "info", + source: "", + }, + ], + health: "degraded", + lifecycle: "failed", + partial: false, + stale: false, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `collectionIssues` | [operations.CollectionIssue67](../../models/operations/collectionissue67.md)[] | :heavy_check_mark: | N/A | +| `health` | [operations.Health67](../../models/operations/health67.md) | :heavy_check_mark: | N/A | +| `lifecycle` | [operations.Lifecycle67](../../models/operations/lifecycle67.md) | :heavy_check_mark: | N/A | +| `message` | *string* | :heavy_minus_sign: | N/A | +| `partial` | *boolean* | :heavy_check_mark: | N/A | +| `stale` | *boolean* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/datastatus68.md b/client-sdks/platform/typescript/docs/models/operations/datastatus68.md new file mode 100644 index 000000000..26e1143f4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/datastatus68.md @@ -0,0 +1,26 @@ +# DataStatus68 + +## Example Usage + +```typescript +import { DataStatus68 } from "@alienplatform/platform-api/models/operations"; + +let value: DataStatus68 = { + collectionIssues: [], + health: "healthy", + lifecycle: "unknown", + partial: true, + stale: true, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `collectionIssues` | [operations.CollectionIssue68](../../models/operations/collectionissue68.md)[] | :heavy_check_mark: | N/A | +| `health` | [operations.Health68](../../models/operations/health68.md) | :heavy_check_mark: | N/A | +| `lifecycle` | [operations.Lifecycle68](../../models/operations/lifecycle68.md) | :heavy_check_mark: | N/A | +| `message` | *string* | :heavy_minus_sign: | N/A | +| `partial` | *boolean* | :heavy_check_mark: | N/A | +| `stale` | *boolean* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/datastatus69.md b/client-sdks/platform/typescript/docs/models/operations/datastatus69.md new file mode 100644 index 000000000..0dc92c299 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/datastatus69.md @@ -0,0 +1,33 @@ +# DataStatus69 + +## Example Usage + +```typescript +import { DataStatus69 } from "@alienplatform/platform-api/models/operations"; + +let value: DataStatus69 = { + collectionIssues: [ + { + message: "", + reason: "forbidden", + severity: "info", + source: "", + }, + ], + health: "degraded", + lifecycle: "stopped", + partial: true, + stale: true, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `collectionIssues` | [operations.CollectionIssue69](../../models/operations/collectionissue69.md)[] | :heavy_check_mark: | N/A | +| `health` | [operations.Health69](../../models/operations/health69.md) | :heavy_check_mark: | N/A | +| `lifecycle` | [operations.Lifecycle69](../../models/operations/lifecycle69.md) | :heavy_check_mark: | N/A | +| `message` | *string* | :heavy_minus_sign: | N/A | +| `partial` | *boolean* | :heavy_check_mark: | N/A | +| `stale` | *boolean* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/datastatus70.md b/client-sdks/platform/typescript/docs/models/operations/datastatus70.md new file mode 100644 index 000000000..3e3fa8472 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/datastatus70.md @@ -0,0 +1,20 @@ +# DataStatus70 + +## Example Usage + +```typescript +import { DataStatus70 } from "@alienplatform/platform-api/models/operations"; + +let value: DataStatus70 = { + health: "healthy", + lifecycle: "unknown", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | +| `health` | [operations.Health70](../../models/operations/health70.md) | :heavy_check_mark: | N/A | +| `lifecycle` | [operations.Lifecycle70](../../models/operations/lifecycle70.md) | :heavy_check_mark: | N/A | +| `message` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/datastatus71.md b/client-sdks/platform/typescript/docs/models/operations/datastatus71.md new file mode 100644 index 000000000..d8c33e95c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/datastatus71.md @@ -0,0 +1,20 @@ +# DataStatus71 + +## Example Usage + +```typescript +import { DataStatus71 } from "@alienplatform/platform-api/models/operations"; + +let value: DataStatus71 = { + health: "unknown", + lifecycle: "scaling", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | +| `health` | [operations.Health71](../../models/operations/health71.md) | :heavy_check_mark: | N/A | +| `lifecycle` | [operations.Lifecycle71](../../models/operations/lifecycle71.md) | :heavy_check_mark: | N/A | +| `message` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/datastatus72.md b/client-sdks/platform/typescript/docs/models/operations/datastatus72.md new file mode 100644 index 000000000..980cff9bc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/datastatus72.md @@ -0,0 +1,20 @@ +# DataStatus72 + +## Example Usage + +```typescript +import { DataStatus72 } from "@alienplatform/platform-api/models/operations"; + +let value: DataStatus72 = { + health: "unknown", + lifecycle: "scaling", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | +| `health` | [operations.Health72](../../models/operations/health72.md) | :heavy_check_mark: | N/A | +| `lifecycle` | [operations.Lifecycle72](../../models/operations/lifecycle72.md) | :heavy_check_mark: | N/A | +| `message` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/dataunion1.md b/client-sdks/platform/typescript/docs/models/operations/dataunion1.md index a353fa453..be13eec8c 100644 --- a/client-sdks/platform/typescript/docs/models/operations/dataunion1.md +++ b/client-sdks/platform/typescript/docs/models/operations/dataunion1.md @@ -93,4 +93,3 @@ const value: operations.DataLocal1 = { backend: "local", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/dataunion10.md b/client-sdks/platform/typescript/docs/models/operations/dataunion10.md index 7b13fa971..b78e116fd 100644 --- a/client-sdks/platform/typescript/docs/models/operations/dataunion10.md +++ b/client-sdks/platform/typescript/docs/models/operations/dataunion10.md @@ -121,4 +121,3 @@ const value: operations.DataLocal10 = { backend: "local", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/dataunion11.md b/client-sdks/platform/typescript/docs/models/operations/dataunion11.md index 0d084017d..e0ae37ccf 100644 --- a/client-sdks/platform/typescript/docs/models/operations/dataunion11.md +++ b/client-sdks/platform/typescript/docs/models/operations/dataunion11.md @@ -64,4 +64,3 @@ const value: operations.DataAzureVnet = { backend: "azureVnet", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/dataunion12.md b/client-sdks/platform/typescript/docs/models/operations/dataunion12.md index 8b91c7e30..1d79df370 100644 --- a/client-sdks/platform/typescript/docs/models/operations/dataunion12.md +++ b/client-sdks/platform/typescript/docs/models/operations/dataunion12.md @@ -69,4 +69,3 @@ const value: operations.DataAzureManagedIdentity2 = { backend: "azureManagedIdentity", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/dataunion13.md b/client-sdks/platform/typescript/docs/models/operations/dataunion13.md index f994c6f2d..42817da8c 100644 --- a/client-sdks/platform/typescript/docs/models/operations/dataunion13.md +++ b/client-sdks/platform/typescript/docs/models/operations/dataunion13.md @@ -109,4 +109,3 @@ const value: operations.DataLocal11 = { backend: "local", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/dataunion14.md b/client-sdks/platform/typescript/docs/models/operations/dataunion14.md index e485d0baf..e2292159f 100644 --- a/client-sdks/platform/typescript/docs/models/operations/dataunion14.md +++ b/client-sdks/platform/typescript/docs/models/operations/dataunion14.md @@ -105,4 +105,3 @@ const value: operations.DataKubernetesJob = { backend: "kubernetesJob", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/dataunion15.md b/client-sdks/platform/typescript/docs/models/operations/dataunion15.md index 36b98dd06..e3cccffa0 100644 --- a/client-sdks/platform/typescript/docs/models/operations/dataunion15.md +++ b/client-sdks/platform/typescript/docs/models/operations/dataunion15.md @@ -45,4 +45,3 @@ const value: operations.DataAzureResourceProvider = { backend: "azureResourceProvider", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/dataunion16.md b/client-sdks/platform/typescript/docs/models/operations/dataunion16.md index 343e7b6a4..e3bcbf0b3 100644 --- a/client-sdks/platform/typescript/docs/models/operations/dataunion16.md +++ b/client-sdks/platform/typescript/docs/models/operations/dataunion16.md @@ -3,549 +3,114 @@ ## Supported Types -### `operations.DataStorage` +### `operations.DataAwsBedrock` ```typescript -const value: operations.DataStorage = { - data: { - path: "/home", - pathExists: false, - status: { - collectionIssues: [ - { - message: "", - reason: "timed-out", - severity: "warning", - source: "", - }, - ], - health: "unhealthy", - lifecycle: "scaling", - partial: false, - stale: false, - }, - backend: "local", +const value: operations.DataAwsBedrock = { + availability: { + catalogRevision: "", + models: [], + source: "aws-bedrock", }, - resourceType: "storage", -}; -``` - -### `operations.DataWorker` - -```typescript -const value: operations.DataWorker = { - data: { - commandSupported: false, - events: [ + region: "", + status: { + collectionIssues: [ { - kind: "", message: "", - severity: "info", - timestamp: new Date("2024-07-21T11:12:11.792Z"), + reason: "timed-out", + severity: "warning", + source: "", }, ], - imagePathPresent: true, - status: { - collectionIssues: [ - { - message: "", - reason: "forbidden", - severity: "warning", - source: "", - }, - ], - health: "degraded", - lifecycle: "updating", - partial: true, - stale: false, - }, - triggerCount: 71218, - backend: "local", + health: "unhealthy", + lifecycle: "deleting", + partial: false, + stale: false, }, - resourceType: "worker", + backend: "awsBedrock", }; ``` -### `operations.DataContainer` +### `operations.DataGcpVertex` ```typescript -const value: operations.DataContainer = { - data: { - attentionCount: 486054, - containerId: "", - events: [], - replicaUnits: [], - replicas: {}, - schedulingMode: "stateful", - status: { - collectionIssues: [ - { - message: "", - reason: "forbidden", - severity: "warning", - source: "", - }, - ], - health: "healthy", - lifecycle: "creating", - partial: false, - stale: false, - }, - backend: "horizonPlatform", - }, - resourceType: "container", -}; -``` - -### `operations.DataDaemon` - -```typescript -const value: operations.DataDaemon = { - data: { - assignedMachines: 489905, - capacityGroup: "", - commandSupported: true, - daemonInstances: [], - desiredMachines: 665477, - events: [ +const value: operations.DataGcpVertex = { + availability: { + catalogRevision: "", + models: [ { - message: "", - reason: "", + accessTest: "not-checked", + availability: "unknown", + blockers: [], + clientApis: [], + publicModelId: "", }, ], - healthyInstances: 921353, - horizonClusterId: "", - horizonStatus: "", - latestUpdateTimestamp: "", - status: { - collectionIssues: [ - { - message: "", - reason: "not-installed", - severity: "warning", - source: "", - }, - ], - health: "unknown", - lifecycle: "running", - partial: false, - stale: false, - }, - unavailableInstances: 431179, - backend: "azure", + source: "anthropic", }, - resourceType: "daemon", -}; -``` - -### `operations.DataComputeCluster` - -```typescript -const value: operations.DataComputeCluster = { - data: { - dockerAvailable: true, - name: "", - networkAvailable: true, - nodes: {}, - status: { - collectionIssues: [ - { - message: "", - reason: "forbidden", - severity: "error", - source: "", - }, - ], - health: "unknown", - lifecycle: "running", - partial: false, - stale: true, - }, - backend: "local", + location: "", + project: "", + status: { + collectionIssues: [], + health: "degraded", + lifecycle: "unknown", + partial: false, + stale: false, }, - resourceType: "compute-cluster", + backend: "gcpVertex", }; ``` -### `operations.DataKubernetesCluster` +### `operations.DataAzureFoundry` ```typescript -const value: operations.DataKubernetesCluster = { - data: { - events: [ +const value: operations.DataAzureFoundry = { + accountName: "", + availability: { + catalogRevision: "", + models: [ { - message: "", - reason: "", + accessTest: "verified", + availability: "available", + blockers: [], + clientApis: [ + "anthropic-messages", + ], + publicModelId: "", }, ], - name: "", - nodeCounts: {}, - podCounts: {}, - status: { - collectionIssues: [], - health: "unhealthy", - lifecycle: "failed", - partial: false, - stale: false, - }, + source: "azure-foundry", }, - resourceType: "kubernetes-cluster", -}; -``` - -### `operations.DataQueue` - -```typescript -const value: operations.DataQueue = { - data: { - messageStorageAllowedPersistenceRegions: [ - "", - "", - ], - status: { - collectionIssues: [], - health: "healthy", - lifecycle: "failed", - partial: true, - stale: true, - }, - subscriptionLabels: { - "key": "", - }, - subscriptionPushAttributes: { - "key": "", - "key1": "", - "key2": "", - }, - topicLabels: {}, - topicName: "", - backend: "gcpPubSub", - }, - resourceType: "queue", -}; -``` - -### `operations.DataKv` - -```typescript -const value: operations.DataKv = { - data: { - status: { - collectionIssues: [ - { - message: "", - reason: "forbidden", - severity: "info", - source: "", - }, - ], - health: "healthy", - lifecycle: "scaling", - partial: false, - stale: true, - }, - storageAccountName: "", - tableExists: false, - tableName: "", - backend: "azureTable", - }, - resourceType: "kv", -}; -``` - -### `operations.DataPostgres` - -```typescript -const value: operations.DataPostgres = { - data: { - serverName: "", - status: { - collectionIssues: [], - health: "unknown", - lifecycle: "stopped", - partial: true, - stale: false, - }, - backend: "flexibleServer", - }, - resourceType: "postgres", -}; -``` - -### `operations.DataVault` - -```typescript -const value: operations.DataVault = { - data: { - accountId: "", - parameterMetadataSampled: true, - prefix: "", - region: "", - status: { - collectionIssues: [], - health: "unknown", - lifecycle: "unknown", - partial: true, - stale: false, - }, - backend: "awsParameterStore", - }, - resourceType: "vault", -}; -``` - -### `operations.DataServiceAccount` - -```typescript -const value: operations.DataServiceAccount = { - data: { - customRoleDefinitionCount: 991371, - customRoleDefinitionIds: [ - "", - "", - "", - ], - location: "", - managedTagCount: 438151, - name: "", - resourceGroup: "", - resourceId: "", - roleAssignmentCount: 703891, - roleAssignmentIds: [ - "", + status: { + collectionIssues: [ + { + message: "", + reason: "collection-failed", + severity: "warning", + source: "", + }, ], - stackPermissionsApplied: true, - status: { - collectionIssues: [ - { - message: "", - reason: "not-installed", - severity: "error", - source: "", - }, - ], - health: "unknown", - lifecycle: "deleting", - partial: true, - stale: false, - }, - backend: "azureManagedIdentity", - }, - resourceType: "service-account", -}; -``` - -### `operations.DataNetwork` - -```typescript -const value: operations.DataNetwork = { - data: { - isByoVnet: true, - status: { - collectionIssues: [], - health: "unhealthy", - lifecycle: "unknown", - partial: true, - stale: true, - }, - backend: "azureVnet", - }, - resourceType: "network", -}; -``` - -### `operations.DataRemoteStackManagement` - -```typescript -const value: operations.DataRemoteStackManagement = { - data: { - managementPermissionsApplied: true, - status: { - collectionIssues: [ - { - message: "", - reason: "api-unavailable", - severity: "warning", - source: "", - }, - ], - health: "degraded", - lifecycle: "stopping", - partial: true, - stale: false, - }, - backend: "awsIamRole", - }, - resourceType: "remote-stack-management", -}; -``` - -### `operations.DataArtifactRegistry` - -```typescript -const value: operations.DataArtifactRegistry = { - data: { - reachable: false, - registryUrl: "https://tedious-reach.com", - status: { - collectionIssues: [], - health: "unknown", - lifecycle: "creating", - partial: true, - stale: false, - }, - backend: "local", - }, - resourceType: "artifact-registry", -}; -``` - -### `operations.DataBuild` - -```typescript -const value: operations.DataBuild = { - data: { - encryptionKeyPresent: false, - environmentVariableCount: 19119, - projectName: "", - serviceRolePresent: true, - status: { - collectionIssues: [ - { - message: "", - reason: "not-installed", - severity: "info", - source: "", - }, - ], - health: "healthy", - lifecycle: "failed", - partial: false, - stale: true, - }, - backend: "awsCodeBuild", + health: "unknown", + lifecycle: "stopping", + partial: false, + stale: false, }, - resourceType: "build", + backend: "azureFoundry", }; ``` -### `operations.DataServiceActivation` +### `operations.DataExternal` ```typescript -const value: operations.DataServiceActivation = { - data: { - enabled: true, - projectId: "", - serviceName: "", - status: { - collectionIssues: [ - { - message: "", - reason: "api-unavailable", - severity: "error", - source: "", - }, - ], - health: "unhealthy", - lifecycle: "stopped", - partial: true, - stale: true, - }, - backend: "gcpServiceUsage", +const value: operations.DataExternal = { + provider: "", + status: { + collectionIssues: [], + health: "unknown", + lifecycle: "running", + partial: true, + stale: false, }, - resourceType: "service_activation", + backend: "external", }; ``` - -### `operations.DataAzureResourceGroup` - -```typescript -const value: operations.DataAzureResourceGroup = { - data: { - managedTags: {}, - name: "", - status: { - collectionIssues: [ - { - message: "", - reason: "api-unavailable", - severity: "error", - source: "", - }, - ], - health: "unknown", - lifecycle: "running", - partial: true, - stale: false, - }, - }, - resourceType: "azure_resource_group", -}; -``` - -### `operations.DataAzureStorageAccount` - -```typescript -const value: operations.DataAzureStorageAccount = { - data: { - name: "", - primaryEndpoints: {}, - secondaryEndpoints: {}, - status: { - collectionIssues: [], - health: "unhealthy", - lifecycle: "stopped", - partial: false, - stale: false, - }, - }, - resourceType: "azure_storage_account", -}; -``` - -### `operations.DataAzureContainerAppsEnvironment` - -```typescript -const value: operations.DataAzureContainerAppsEnvironment = { - data: { - name: "", - status: { - collectionIssues: [], - health: "unknown", - lifecycle: "stopped", - partial: true, - stale: true, - }, - workloadProfileCount: 415280, - workloadProfiles: [], - }, - resourceType: "azure_container_apps_environment", -}; -``` - -### `operations.DataAzureServiceBusNamespace` - -```typescript -const value: operations.DataAzureServiceBusNamespace = { - data: { - name: "", - privateEndpointConnectionCount: 152029, - status: { - collectionIssues: [ - { - message: "", - reason: "not-installed", - severity: "info", - source: "", - }, - ], - health: "unknown", - lifecycle: "running", - partial: false, - stale: true, - }, - }, - resourceType: "azure_service_bus_namespace", -}; -``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/dataunion17.md b/client-sdks/platform/typescript/docs/models/operations/dataunion17.md new file mode 100644 index 000000000..49e06258f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/dataunion17.md @@ -0,0 +1,56 @@ +# DataUnion17 + + +## Supported Types + +### `operations.DataAwsKms` + +```typescript +const value: operations.DataAwsKms = { + data: { + enabled: true, + keyArn: "", + keySpec: "", + keyState: "", + keyUsage: "", + status: { + health: "healthy", + lifecycle: "failed", + }, + }, + provider: "aws-kms", +}; +``` + +### `operations.DataGcpCloudKms` + +```typescript +const value: operations.DataGcpCloudKms = { + data: { + cryptoKeyName: "", + purpose: "", + status: { + health: "healthy", + lifecycle: "deleted", + }, + }, + provider: "gcp-cloud-kms", +}; +``` + +### `operations.DataAzureKeyVault2` + +```typescript +const value: operations.DataAzureKeyVault2 = { + data: { + keyId: "", + keyOperations: [], + keyType: "", + status: { + health: "unhealthy", + lifecycle: "deleting", + }, + }, + provider: "azure-key-vault", +}; +``` diff --git a/client-sdks/platform/typescript/docs/models/operations/dataunion18.md b/client-sdks/platform/typescript/docs/models/operations/dataunion18.md new file mode 100644 index 000000000..cea4e736d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/dataunion18.md @@ -0,0 +1,603 @@ +# DataUnion18 + + +## Supported Types + +### `operations.DataStorage` + +```typescript +const value: operations.DataStorage = { + data: { + path: "/home", + pathExists: false, + status: { + collectionIssues: [ + { + message: "", + reason: "timed-out", + severity: "warning", + source: "", + }, + ], + health: "unhealthy", + lifecycle: "scaling", + partial: false, + stale: false, + }, + backend: "local", + }, + resourceType: "storage", +}; +``` + +### `operations.DataWorker` + +```typescript +const value: operations.DataWorker = { + data: { + commandSupported: false, + events: [ + { + kind: "", + message: "", + severity: "info", + timestamp: new Date("2024-07-21T11:12:11.792Z"), + }, + ], + imagePathPresent: true, + status: { + collectionIssues: [ + { + message: "", + reason: "forbidden", + severity: "warning", + source: "", + }, + ], + health: "degraded", + lifecycle: "updating", + partial: true, + stale: false, + }, + triggerCount: 71218, + backend: "local", + }, + resourceType: "worker", +}; +``` + +### `operations.DataContainer` + +```typescript +const value: operations.DataContainer = { + data: { + attentionCount: 486054, + containerId: "", + events: [], + replicaUnits: [], + replicas: {}, + schedulingMode: "stateful", + status: { + collectionIssues: [ + { + message: "", + reason: "forbidden", + severity: "warning", + source: "", + }, + ], + health: "healthy", + lifecycle: "creating", + partial: false, + stale: false, + }, + backend: "horizonPlatform", + }, + resourceType: "container", +}; +``` + +### `operations.DataDaemon` + +```typescript +const value: operations.DataDaemon = { + data: { + assignedMachines: 489905, + capacityGroup: "", + commandSupported: true, + daemonInstances: [], + desiredMachines: 665477, + events: [ + { + message: "", + reason: "", + }, + ], + healthyInstances: 921353, + horizonClusterId: "", + horizonStatus: "", + latestUpdateTimestamp: "", + status: { + collectionIssues: [ + { + message: "", + reason: "not-installed", + severity: "warning", + source: "", + }, + ], + health: "unknown", + lifecycle: "running", + partial: false, + stale: false, + }, + unavailableInstances: 431179, + backend: "azure", + }, + resourceType: "daemon", +}; +``` + +### `operations.DataComputeCluster` + +```typescript +const value: operations.DataComputeCluster = { + data: { + dockerAvailable: true, + name: "", + networkAvailable: true, + nodes: {}, + status: { + collectionIssues: [ + { + message: "", + reason: "forbidden", + severity: "error", + source: "", + }, + ], + health: "unknown", + lifecycle: "running", + partial: false, + stale: true, + }, + backend: "local", + }, + resourceType: "compute-cluster", +}; +``` + +### `operations.DataKubernetesCluster` + +```typescript +const value: operations.DataKubernetesCluster = { + data: { + events: [ + { + message: "", + reason: "", + }, + ], + name: "", + nodeCounts: {}, + podCounts: {}, + status: { + collectionIssues: [], + health: "unhealthy", + lifecycle: "failed", + partial: false, + stale: false, + }, + }, + resourceType: "kubernetes-cluster", +}; +``` + +### `operations.DataQueue` + +```typescript +const value: operations.DataQueue = { + data: { + messageStorageAllowedPersistenceRegions: [ + "", + "", + ], + status: { + collectionIssues: [], + health: "healthy", + lifecycle: "failed", + partial: true, + stale: true, + }, + subscriptionLabels: { + "key": "", + }, + subscriptionPushAttributes: { + "key": "", + "key1": "", + "key2": "", + }, + topicLabels: {}, + topicName: "", + backend: "gcpPubSub", + }, + resourceType: "queue", +}; +``` + +### `operations.DataKv` + +```typescript +const value: operations.DataKv = { + data: { + status: { + collectionIssues: [ + { + message: "", + reason: "forbidden", + severity: "info", + source: "", + }, + ], + health: "healthy", + lifecycle: "scaling", + partial: false, + stale: true, + }, + storageAccountName: "", + tableExists: false, + tableName: "", + backend: "azureTable", + }, + resourceType: "kv", +}; +``` + +### `operations.DataPostgres` + +```typescript +const value: operations.DataPostgres = { + data: { + serverName: "", + status: { + collectionIssues: [], + health: "unknown", + lifecycle: "stopped", + partial: true, + stale: false, + }, + backend: "flexibleServer", + }, + resourceType: "postgres", +}; +``` + +### `operations.DataVault` + +```typescript +const value: operations.DataVault = { + data: { + accountId: "", + parameterMetadataSampled: true, + prefix: "", + region: "", + status: { + collectionIssues: [], + health: "unknown", + lifecycle: "unknown", + partial: true, + stale: false, + }, + backend: "awsParameterStore", + }, + resourceType: "vault", +}; +``` + +### `operations.DataServiceAccount` + +```typescript +const value: operations.DataServiceAccount = { + data: { + customRoleDefinitionCount: 991371, + customRoleDefinitionIds: [ + "", + "", + "", + ], + location: "", + managedTagCount: 438151, + name: "", + resourceGroup: "", + resourceId: "", + roleAssignmentCount: 703891, + roleAssignmentIds: [ + "", + ], + stackPermissionsApplied: true, + status: { + collectionIssues: [ + { + message: "", + reason: "not-installed", + severity: "error", + source: "", + }, + ], + health: "unknown", + lifecycle: "deleting", + partial: true, + stale: false, + }, + backend: "azureManagedIdentity", + }, + resourceType: "service-account", +}; +``` + +### `operations.DataNetwork` + +```typescript +const value: operations.DataNetwork = { + data: { + isByoVnet: true, + status: { + collectionIssues: [], + health: "unhealthy", + lifecycle: "unknown", + partial: true, + stale: true, + }, + backend: "azureVnet", + }, + resourceType: "network", +}; +``` + +### `operations.DataRemoteStackManagement` + +```typescript +const value: operations.DataRemoteStackManagement = { + data: { + managementPermissionsApplied: true, + status: { + collectionIssues: [ + { + message: "", + reason: "api-unavailable", + severity: "warning", + source: "", + }, + ], + health: "degraded", + lifecycle: "stopping", + partial: true, + stale: false, + }, + backend: "awsIamRole", + }, + resourceType: "remote-stack-management", +}; +``` + +### `operations.DataArtifactRegistry` + +```typescript +const value: operations.DataArtifactRegistry = { + data: { + reachable: false, + registryUrl: "https://tedious-reach.com", + status: { + collectionIssues: [], + health: "unknown", + lifecycle: "creating", + partial: true, + stale: false, + }, + backend: "local", + }, + resourceType: "artifact-registry", +}; +``` + +### `operations.DataBuild` + +```typescript +const value: operations.DataBuild = { + data: { + encryptionKeyPresent: false, + environmentVariableCount: 19119, + projectName: "", + serviceRolePresent: true, + status: { + collectionIssues: [ + { + message: "", + reason: "not-installed", + severity: "info", + source: "", + }, + ], + health: "healthy", + lifecycle: "failed", + partial: false, + stale: true, + }, + backend: "awsCodeBuild", + }, + resourceType: "build", +}; +``` + +### `operations.DataServiceActivation` + +```typescript +const value: operations.DataServiceActivation = { + data: { + enabled: true, + projectId: "", + serviceName: "", + status: { + collectionIssues: [ + { + message: "", + reason: "api-unavailable", + severity: "error", + source: "", + }, + ], + health: "unhealthy", + lifecycle: "stopped", + partial: true, + stale: true, + }, + backend: "gcpServiceUsage", + }, + resourceType: "service_activation", +}; +``` + +### `operations.DataAzureResourceGroup` + +```typescript +const value: operations.DataAzureResourceGroup = { + data: { + managedTags: {}, + name: "", + status: { + collectionIssues: [ + { + message: "", + reason: "api-unavailable", + severity: "error", + source: "", + }, + ], + health: "unknown", + lifecycle: "running", + partial: true, + stale: false, + }, + }, + resourceType: "azure_resource_group", +}; +``` + +### `operations.DataAzureStorageAccount` + +```typescript +const value: operations.DataAzureStorageAccount = { + data: { + name: "", + primaryEndpoints: {}, + secondaryEndpoints: {}, + status: { + collectionIssues: [], + health: "unhealthy", + lifecycle: "stopped", + partial: false, + stale: false, + }, + }, + resourceType: "azure_storage_account", +}; +``` + +### `operations.DataAzureContainerAppsEnvironment` + +```typescript +const value: operations.DataAzureContainerAppsEnvironment = { + data: { + name: "", + status: { + collectionIssues: [], + health: "unknown", + lifecycle: "stopped", + partial: true, + stale: true, + }, + workloadProfileCount: 415280, + workloadProfiles: [], + }, + resourceType: "azure_container_apps_environment", +}; +``` + +### `operations.DataAzureServiceBusNamespace` + +```typescript +const value: operations.DataAzureServiceBusNamespace = { + data: { + name: "", + privateEndpointConnectionCount: 152029, + status: { + collectionIssues: [ + { + message: "", + reason: "not-installed", + severity: "info", + source: "", + }, + ], + health: "unknown", + lifecycle: "running", + partial: false, + stale: true, + }, + }, + resourceType: "azure_service_bus_namespace", +}; +``` + +### `operations.DataAi` + +```typescript +const value: operations.DataAi = { + data: { + availability: { + catalogRevision: "", + models: [ + { + accessTest: "not-checked", + availability: "unknown", + blockers: [], + clientApis: [], + publicModelId: "", + }, + ], + source: "anthropic", + }, + location: "", + project: "", + status: { + collectionIssues: [], + health: "degraded", + lifecycle: "unknown", + partial: false, + stale: false, + }, + backend: "gcpVertex", + }, + resourceType: "ai", +}; +``` + +### `operations.DataKey` + +```typescript +const value: operations.DataKey = { + data: { + data: { + keyId: "", + keyOperations: [], + keyType: "", + status: { + health: "unhealthy", + lifecycle: "deleting", + }, + }, + provider: "azure-key-vault", + }, + resourceType: "key", +}; +``` diff --git a/client-sdks/platform/typescript/docs/models/operations/dataunion2.md b/client-sdks/platform/typescript/docs/models/operations/dataunion2.md index 6073ab670..bf41368b8 100644 --- a/client-sdks/platform/typescript/docs/models/operations/dataunion2.md +++ b/client-sdks/platform/typescript/docs/models/operations/dataunion2.md @@ -132,4 +132,3 @@ const value: operations.DataLocal2 = { backend: "local", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/dataunion3.md b/client-sdks/platform/typescript/docs/models/operations/dataunion3.md index 0f1f88248..6eb5b85d4 100644 --- a/client-sdks/platform/typescript/docs/models/operations/dataunion3.md +++ b/client-sdks/platform/typescript/docs/models/operations/dataunion3.md @@ -77,4 +77,3 @@ const value: operations.DataLocal3 = { backend: "local", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/dataunion4.md b/client-sdks/platform/typescript/docs/models/operations/dataunion4.md index 9f84cc6bd..ada963b38 100644 --- a/client-sdks/platform/typescript/docs/models/operations/dataunion4.md +++ b/client-sdks/platform/typescript/docs/models/operations/dataunion4.md @@ -212,4 +212,3 @@ const value: operations.DataLocal4 = { backend: "local", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/dataunion5.md b/client-sdks/platform/typescript/docs/models/operations/dataunion5.md index e7123b6e6..001a94281 100644 --- a/client-sdks/platform/typescript/docs/models/operations/dataunion5.md +++ b/client-sdks/platform/typescript/docs/models/operations/dataunion5.md @@ -143,4 +143,3 @@ const value: operations.DataLocal5 = { backend: "local", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/dataunion6.md b/client-sdks/platform/typescript/docs/models/operations/dataunion6.md index 5158098b9..a0ac1a994 100644 --- a/client-sdks/platform/typescript/docs/models/operations/dataunion6.md +++ b/client-sdks/platform/typescript/docs/models/operations/dataunion6.md @@ -88,4 +88,3 @@ const value: operations.DataLocal6 = { backend: "local", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/dataunion7.md b/client-sdks/platform/typescript/docs/models/operations/dataunion7.md index 37b779897..5dc47944c 100644 --- a/client-sdks/platform/typescript/docs/models/operations/dataunion7.md +++ b/client-sdks/platform/typescript/docs/models/operations/dataunion7.md @@ -93,4 +93,3 @@ const value: operations.DataLocal7 = { backend: "local", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/dataunion8.md b/client-sdks/platform/typescript/docs/models/operations/dataunion8.md index 632d21e1f..774a85038 100644 --- a/client-sdks/platform/typescript/docs/models/operations/dataunion8.md +++ b/client-sdks/platform/typescript/docs/models/operations/dataunion8.md @@ -76,4 +76,3 @@ const value: operations.DataLocal8 = { backend: "local", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/dataunion9.md b/client-sdks/platform/typescript/docs/models/operations/dataunion9.md index caa675ae9..a8d2f4dbb 100644 --- a/client-sdks/platform/typescript/docs/models/operations/dataunion9.md +++ b/client-sdks/platform/typescript/docs/models/operations/dataunion9.md @@ -41,23 +41,30 @@ const value: operations.DataGcpSecretManager = { }; ``` -### `operations.DataAzureKeyVault` +### `operations.DataAzureKeyVault1` ```typescript -const value: operations.DataAzureKeyVault = { - accessPolicyCount: 923246, +const value: operations.DataAzureKeyVault1 = { + accessPolicyCount: 582917, name: "", - privateEndpointConnectionCount: 319306, + privateEndpointConnectionCount: 112234, publicNetworkAccess: "", rbacAuthorizationEnabled: true, secretMetadataListed: false, - softDeleteEnabled: false, - softDeleteRetentionDays: 497787, + softDeleteEnabled: true, + softDeleteRetentionDays: 457442, status: { - collectionIssues: [], - health: "degraded", - lifecycle: "creating", - partial: true, + collectionIssues: [ + { + message: "", + reason: "timed-out", + severity: "error", + source: "", + }, + ], + health: "unknown", + lifecycle: "updating", + partial: false, stale: false, }, backend: "azureKeyVault", @@ -113,4 +120,3 @@ const value: operations.DataLocal9 = { backend: "local", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/deletereleasechannelrequest.md b/client-sdks/platform/typescript/docs/models/operations/deletereleasechannelrequest.md new file mode 100644 index 000000000..0281be0e9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/deletereleasechannelrequest.md @@ -0,0 +1,21 @@ +# DeleteReleaseChannelRequest + +## Example Usage + +```typescript +import { DeleteReleaseChannelRequest } from "@alienplatform/platform-api/models/operations"; + +let value: DeleteReleaseChannelRequest = { + name: "", + workspace: "my-workspace", + project: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `name` | *string* | :heavy_check_mark: | N/A | | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | +| `project` | *string* | :heavy_check_mark: | Filter by project ID or name. | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/drainprogress1.md b/client-sdks/platform/typescript/docs/models/operations/drainprogress1.md index 4bff4a3dd..a72b5c893 100644 --- a/client-sdks/platform/typescript/docs/models/operations/drainprogress1.md +++ b/client-sdks/platform/typescript/docs/models/operations/drainprogress1.md @@ -16,14 +16,14 @@ let value: DrainProgress1 = { ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | -| `blockers` | [operations.Blocker1](../../models/operations/blocker1.md)[] | :heavy_minus_sign: | N/A | -| `drainDeadlineAt` | *string* | :heavy_minus_sign: | N/A | -| `drainRequestedAt` | *string* | :heavy_minus_sign: | N/A | -| `drainedAt` | *string* | :heavy_minus_sign: | N/A | -| `force` | *boolean* | :heavy_check_mark: | N/A | -| `machineId` | *string* | :heavy_check_mark: | N/A | -| `replicaCount` | *number* | :heavy_check_mark: | N/A | -| `stalled` | *boolean* | :heavy_check_mark: | N/A | -| `status` | [operations.DrainProgressStatus1](../../models/operations/drainprogressstatus1.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `blockers` | [operations.DrainProgressBlocker1](../../models/operations/drainprogressblocker1.md)[] | :heavy_minus_sign: | N/A | +| `drainDeadlineAt` | *string* | :heavy_minus_sign: | N/A | +| `drainRequestedAt` | *string* | :heavy_minus_sign: | N/A | +| `drainedAt` | *string* | :heavy_minus_sign: | N/A | +| `force` | *boolean* | :heavy_check_mark: | N/A | +| `machineId` | *string* | :heavy_check_mark: | N/A | +| `replicaCount` | *number* | :heavy_check_mark: | N/A | +| `stalled` | *boolean* | :heavy_check_mark: | N/A | +| `status` | [operations.DrainProgressStatus1](../../models/operations/drainprogressstatus1.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/drainprogress2.md b/client-sdks/platform/typescript/docs/models/operations/drainprogress2.md index d60b7de05..5c5afb15b 100644 --- a/client-sdks/platform/typescript/docs/models/operations/drainprogress2.md +++ b/client-sdks/platform/typescript/docs/models/operations/drainprogress2.md @@ -16,14 +16,14 @@ let value: DrainProgress2 = { ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | -| `blockers` | [operations.Blocker2](../../models/operations/blocker2.md)[] | :heavy_minus_sign: | N/A | -| `drainDeadlineAt` | *string* | :heavy_minus_sign: | N/A | -| `drainRequestedAt` | *string* | :heavy_minus_sign: | N/A | -| `drainedAt` | *string* | :heavy_minus_sign: | N/A | -| `force` | *boolean* | :heavy_check_mark: | N/A | -| `machineId` | *string* | :heavy_check_mark: | N/A | -| `replicaCount` | *number* | :heavy_check_mark: | N/A | -| `stalled` | *boolean* | :heavy_check_mark: | N/A | -| `status` | [operations.DrainProgressStatus2](../../models/operations/drainprogressstatus2.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `blockers` | [operations.DrainProgressBlocker2](../../models/operations/drainprogressblocker2.md)[] | :heavy_minus_sign: | N/A | +| `drainDeadlineAt` | *string* | :heavy_minus_sign: | N/A | +| `drainRequestedAt` | *string* | :heavy_minus_sign: | N/A | +| `drainedAt` | *string* | :heavy_minus_sign: | N/A | +| `force` | *boolean* | :heavy_check_mark: | N/A | +| `machineId` | *string* | :heavy_check_mark: | N/A | +| `replicaCount` | *number* | :heavy_check_mark: | N/A | +| `stalled` | *boolean* | :heavy_check_mark: | N/A | +| `status` | [operations.DrainProgressStatus2](../../models/operations/drainprogressstatus2.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/drainprogress3.md b/client-sdks/platform/typescript/docs/models/operations/drainprogress3.md index 07c689041..1fb618911 100644 --- a/client-sdks/platform/typescript/docs/models/operations/drainprogress3.md +++ b/client-sdks/platform/typescript/docs/models/operations/drainprogress3.md @@ -16,14 +16,14 @@ let value: DrainProgress3 = { ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | -| `blockers` | [operations.Blocker3](../../models/operations/blocker3.md)[] | :heavy_minus_sign: | N/A | -| `drainDeadlineAt` | *string* | :heavy_minus_sign: | N/A | -| `drainRequestedAt` | *string* | :heavy_minus_sign: | N/A | -| `drainedAt` | *string* | :heavy_minus_sign: | N/A | -| `force` | *boolean* | :heavy_check_mark: | N/A | -| `machineId` | *string* | :heavy_check_mark: | N/A | -| `replicaCount` | *number* | :heavy_check_mark: | N/A | -| `stalled` | *boolean* | :heavy_check_mark: | N/A | -| `status` | [operations.DrainProgressStatus3](../../models/operations/drainprogressstatus3.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `blockers` | [operations.DrainProgressBlocker3](../../models/operations/drainprogressblocker3.md)[] | :heavy_minus_sign: | N/A | +| `drainDeadlineAt` | *string* | :heavy_minus_sign: | N/A | +| `drainRequestedAt` | *string* | :heavy_minus_sign: | N/A | +| `drainedAt` | *string* | :heavy_minus_sign: | N/A | +| `force` | *boolean* | :heavy_check_mark: | N/A | +| `machineId` | *string* | :heavy_check_mark: | N/A | +| `replicaCount` | *number* | :heavy_check_mark: | N/A | +| `stalled` | *boolean* | :heavy_check_mark: | N/A | +| `status` | [operations.DrainProgressStatus3](../../models/operations/drainprogressstatus3.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/drainprogress4.md b/client-sdks/platform/typescript/docs/models/operations/drainprogress4.md index fe93c5a95..b1cde9b35 100644 --- a/client-sdks/platform/typescript/docs/models/operations/drainprogress4.md +++ b/client-sdks/platform/typescript/docs/models/operations/drainprogress4.md @@ -16,14 +16,14 @@ let value: DrainProgress4 = { ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | -| `blockers` | [operations.Blocker4](../../models/operations/blocker4.md)[] | :heavy_minus_sign: | N/A | -| `drainDeadlineAt` | *string* | :heavy_minus_sign: | N/A | -| `drainRequestedAt` | *string* | :heavy_minus_sign: | N/A | -| `drainedAt` | *string* | :heavy_minus_sign: | N/A | -| `force` | *boolean* | :heavy_check_mark: | N/A | -| `machineId` | *string* | :heavy_check_mark: | N/A | -| `replicaCount` | *number* | :heavy_check_mark: | N/A | -| `stalled` | *boolean* | :heavy_check_mark: | N/A | -| `status` | [operations.DrainProgressStatus4](../../models/operations/drainprogressstatus4.md) | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `blockers` | [operations.DrainProgressBlocker4](../../models/operations/drainprogressblocker4.md)[] | :heavy_minus_sign: | N/A | +| `drainDeadlineAt` | *string* | :heavy_minus_sign: | N/A | +| `drainRequestedAt` | *string* | :heavy_minus_sign: | N/A | +| `drainedAt` | *string* | :heavy_minus_sign: | N/A | +| `force` | *boolean* | :heavy_check_mark: | N/A | +| `machineId` | *string* | :heavy_check_mark: | N/A | +| `replicaCount` | *number* | :heavy_check_mark: | N/A | +| `stalled` | *boolean* | :heavy_check_mark: | N/A | +| `status` | [operations.DrainProgressStatus4](../../models/operations/drainprogressstatus4.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/drainprogressblocker1.md b/client-sdks/platform/typescript/docs/models/operations/drainprogressblocker1.md new file mode 100644 index 000000000..7d4540e67 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/drainprogressblocker1.md @@ -0,0 +1,25 @@ +# DrainProgressBlocker1 + +## Example Usage + +```typescript +import { DrainProgressBlocker1 } from "@alienplatform/platform-api/models/operations"; + +let value: DrainProgressBlocker1 = { + reason: "", + replicaId: "", + schedulingMode: "", + state: "Ohio", + workloadName: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `reason` | *string* | :heavy_check_mark: | N/A | +| `replicaId` | *string* | :heavy_check_mark: | N/A | +| `schedulingMode` | *string* | :heavy_check_mark: | N/A | +| `state` | *string* | :heavy_check_mark: | N/A | +| `workloadName` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/drainprogressblocker2.md b/client-sdks/platform/typescript/docs/models/operations/drainprogressblocker2.md new file mode 100644 index 000000000..c7be091c7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/drainprogressblocker2.md @@ -0,0 +1,25 @@ +# DrainProgressBlocker2 + +## Example Usage + +```typescript +import { DrainProgressBlocker2 } from "@alienplatform/platform-api/models/operations"; + +let value: DrainProgressBlocker2 = { + reason: "", + replicaId: "", + schedulingMode: "", + state: "Tennessee", + workloadName: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `reason` | *string* | :heavy_check_mark: | N/A | +| `replicaId` | *string* | :heavy_check_mark: | N/A | +| `schedulingMode` | *string* | :heavy_check_mark: | N/A | +| `state` | *string* | :heavy_check_mark: | N/A | +| `workloadName` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/drainprogressblocker3.md b/client-sdks/platform/typescript/docs/models/operations/drainprogressblocker3.md new file mode 100644 index 000000000..a14d3bdbc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/drainprogressblocker3.md @@ -0,0 +1,25 @@ +# DrainProgressBlocker3 + +## Example Usage + +```typescript +import { DrainProgressBlocker3 } from "@alienplatform/platform-api/models/operations"; + +let value: DrainProgressBlocker3 = { + reason: "", + replicaId: "", + schedulingMode: "", + state: "South Carolina", + workloadName: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `reason` | *string* | :heavy_check_mark: | N/A | +| `replicaId` | *string* | :heavy_check_mark: | N/A | +| `schedulingMode` | *string* | :heavy_check_mark: | N/A | +| `state` | *string* | :heavy_check_mark: | N/A | +| `workloadName` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/drainprogressblocker4.md b/client-sdks/platform/typescript/docs/models/operations/drainprogressblocker4.md new file mode 100644 index 000000000..dd01a4eb5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/drainprogressblocker4.md @@ -0,0 +1,25 @@ +# DrainProgressBlocker4 + +## Example Usage + +```typescript +import { DrainProgressBlocker4 } from "@alienplatform/platform-api/models/operations"; + +let value: DrainProgressBlocker4 = { + reason: "", + replicaId: "", + schedulingMode: "", + state: "Virginia", + workloadName: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `reason` | *string* | :heavy_check_mark: | N/A | +| `replicaId` | *string* | :heavy_check_mark: | N/A | +| `schedulingMode` | *string* | :heavy_check_mark: | N/A | +| `state` | *string* | :heavy_check_mark: | N/A | +| `workloadName` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/drainprogressunion1.md b/client-sdks/platform/typescript/docs/models/operations/drainprogressunion1.md index 362fd6d1b..3c0c3af9a 100644 --- a/client-sdks/platform/typescript/docs/models/operations/drainprogressunion1.md +++ b/client-sdks/platform/typescript/docs/models/operations/drainprogressunion1.md @@ -20,4 +20,3 @@ const value: operations.DrainProgress1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/drainprogressunion2.md b/client-sdks/platform/typescript/docs/models/operations/drainprogressunion2.md index b20175869..c091225d0 100644 --- a/client-sdks/platform/typescript/docs/models/operations/drainprogressunion2.md +++ b/client-sdks/platform/typescript/docs/models/operations/drainprogressunion2.md @@ -20,4 +20,3 @@ const value: operations.DrainProgress2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/drainprogressunion3.md b/client-sdks/platform/typescript/docs/models/operations/drainprogressunion3.md index 4ab6fb56e..90364c24c 100644 --- a/client-sdks/platform/typescript/docs/models/operations/drainprogressunion3.md +++ b/client-sdks/platform/typescript/docs/models/operations/drainprogressunion3.md @@ -20,4 +20,3 @@ const value: operations.DrainProgress3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/drainprogressunion4.md b/client-sdks/platform/typescript/docs/models/operations/drainprogressunion4.md index aef249a83..448390d28 100644 --- a/client-sdks/platform/typescript/docs/models/operations/drainprogressunion4.md +++ b/client-sdks/platform/typescript/docs/models/operations/drainprogressunion4.md @@ -20,4 +20,3 @@ const value: operations.DrainProgress4 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/ensuredeploymentgroupbyexternalidrequest.md b/client-sdks/platform/typescript/docs/models/operations/ensuredeploymentgroupbyexternalidrequest.md new file mode 100644 index 000000000..37448b228 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/ensuredeploymentgroupbyexternalidrequest.md @@ -0,0 +1,23 @@ +# EnsureDeploymentGroupByExternalIdRequest + +## Example Usage + +```typescript +import { EnsureDeploymentGroupByExternalIdRequest } from "@alienplatform/platform-api/models/operations"; + +let value: EnsureDeploymentGroupByExternalIdRequest = { + workspace: "my-workspace", + ensureDeploymentGroupByExternalIdRequest: { + externalId: "ext_example_01", + name: "prod-us-east-1", + project: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | +| `ensureDeploymentGroupByExternalIdRequest` | [models.EnsureDeploymentGroupByExternalIdRequest](../../models/ensuredeploymentgroupbyexternalidrequest.md) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/generatemanagerbindingtokenrequest.md b/client-sdks/platform/typescript/docs/models/operations/generatemanagerbindingtokenrequest.md new file mode 100644 index 000000000..ca07e2876 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/generatemanagerbindingtokenrequest.md @@ -0,0 +1,23 @@ +# GenerateManagerBindingTokenRequest + +## Example Usage + +```typescript +import { GenerateManagerBindingTokenRequest } from "@alienplatform/platform-api/models/operations"; + +let value: GenerateManagerBindingTokenRequest = { + id: "mgr_enxscjrqiiu2lrc672hwwuc5", + workspace: "my-workspace", + generateManagerBindingTokenRequest: { + deploymentId: "dep_0c29fq4a2yjb7kx3smwdgxlc", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for a manager. | mgr_enxscjrqiiu2lrc672hwwuc5 | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | +| `generateManagerBindingTokenRequest` | [models.GenerateManagerBindingTokenRequest](../../models/generatemanagerbindingtokenrequest.md) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/getagentsessionrequest.md b/client-sdks/platform/typescript/docs/models/operations/getagentsessionrequest.md new file mode 100644 index 000000000..b36bab2b8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/getagentsessionrequest.md @@ -0,0 +1,19 @@ +# GetAgentSessionRequest + +## Example Usage + +```typescript +import { GetAgentSessionRequest } from "@alienplatform/platform-api/models/operations"; + +let value: GetAgentSessionRequest = { + id: "", + workspace: "my-workspace", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | N/A | | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/getdeploymentgroupbyexternalidrequest.md b/client-sdks/platform/typescript/docs/models/operations/getdeploymentgroupbyexternalidrequest.md new file mode 100644 index 000000000..384dff53e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/getdeploymentgroupbyexternalidrequest.md @@ -0,0 +1,20 @@ +# GetDeploymentGroupByExternalIdRequest + +## Example Usage + +```typescript +import { GetDeploymentGroupByExternalIdRequest } from "@alienplatform/platform-api/models/operations"; + +let value: GetDeploymentGroupByExternalIdRequest = { + workspace: "my-workspace", + externalId: "ext_example_01", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | +| `project` | *string* | :heavy_minus_sign: | Project ID or name. Optional for project-scoped API keys. | | +| `externalId` | *string* | :heavy_check_mark: | Case-sensitive, URL- and header-safe identifier from the integrating application. | ext_example_01 | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/getdeploymentgroupresponse.md b/client-sdks/platform/typescript/docs/models/operations/getdeploymentgroupresponse.md index 494cfc64a..c35764d41 100644 --- a/client-sdks/platform/typescript/docs/models/operations/getdeploymentgroupresponse.md +++ b/client-sdks/platform/typescript/docs/models/operations/getdeploymentgroupresponse.md @@ -10,6 +10,7 @@ import { GetDeploymentGroupResponse } from "@alienplatform/platform-api/models/o let value: GetDeploymentGroupResponse = { id: "dg_r27ict8c7vcgsumpj90ackf7b", name: "prod-us-east-1", + externalId: "ext_example_01", projectId: "prj_mcytp6z3j91f7tn5ryqsfwtr", workspaceId: "ws_It13CUaGEhLLAB87simX0", createdAt: new Date("2025-04-16T10:10:24.661Z"), @@ -23,6 +24,7 @@ let value: GetDeploymentGroupResponse = { | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | | `id` | *string* | :heavy_check_mark: | Unique identifier for the deployment group. | dg_r27ict8c7vcgsumpj90ackf7b | | `name` | *string* | :heavy_check_mark: | Deployment group name. | prod-us-east-1 | +| `externalId` | *string* | :heavy_check_mark: | Case-sensitive, URL- and header-safe identifier from the integrating application. | ext_example_01 | | `projectId` | *string* | :heavy_check_mark: | Unique identifier for the project. | prj_mcytp6z3j91f7tn5ryqsfwtr | | `workspaceId` | *string* | :heavy_check_mark: | Unique identifier for the workspace. | ws_It13CUaGEhLLAB87simX0 | | `maxDeployments` | *number* | :heavy_minus_sign: | Maximum number of deployments allowed in this deployment group | | diff --git a/client-sdks/platform/typescript/docs/models/operations/getmanagermanagementconfigresponse.md b/client-sdks/platform/typescript/docs/models/operations/getmanagermanagementconfigresponse.md index f5ac00249..17d4e588e 100644 --- a/client-sdks/platform/typescript/docs/models/operations/getmanagermanagementconfigresponse.md +++ b/client-sdks/platform/typescript/docs/models/operations/getmanagermanagementconfigresponse.md @@ -44,4 +44,3 @@ const value: operations.GetManagerManagementConfigKubernetes = { platform: "kubernetes", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/getreleaseinclude.md b/client-sdks/platform/typescript/docs/models/operations/getreleaseinclude.md index e05e38f81..a7688730f 100644 --- a/client-sdks/platform/typescript/docs/models/operations/getreleaseinclude.md +++ b/client-sdks/platform/typescript/docs/models/operations/getreleaseinclude.md @@ -5,11 +5,11 @@ ```typescript import { GetReleaseInclude } from "@alienplatform/platform-api/models/operations"; -let value: GetReleaseInclude = "project"; +let value: GetReleaseInclude = "createdBy"; ``` ## Values ```typescript -"project" +"project" | "rollout" | "createdBy" ``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/getreleaserequest.md b/client-sdks/platform/typescript/docs/models/operations/getreleaserequest.md index c52e71249..826f3b6b8 100644 --- a/client-sdks/platform/typescript/docs/models/operations/getreleaserequest.md +++ b/client-sdks/platform/typescript/docs/models/operations/getreleaserequest.md @@ -17,4 +17,4 @@ let value: GetReleaseRequest = { | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `id` | *string* | :heavy_check_mark: | Unique identifier for the release. | rel_WbhQgksrawSKIpEN0NAssHX9 | | `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | -| `include` | [operations.GetReleaseInclude](../../models/operations/getreleaseinclude.md)[] | :heavy_minus_sign: | Optional fields to include: project | | \ No newline at end of file +| `include` | [operations.GetReleaseInclude](../../models/operations/getreleaseinclude.md)[] | :heavy_minus_sign: | Optional fields to include: project, rollout | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource1.md b/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource1.md deleted file mode 100644 index 39259b11f..000000000 --- a/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource1.md +++ /dev/null @@ -1,16 +0,0 @@ -# GetResourceDeploymentDetailSource1 - -## Example Usage - -```typescript -import { GetResourceDeploymentDetailSource1 } from "@alienplatform/platform-api/models/operations"; - -let value: GetResourceDeploymentDetailSource1 = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `component` | *string* | :heavy_minus_sign: | N/A | -| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource10.md b/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource10.md deleted file mode 100644 index ec36d5195..000000000 --- a/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource10.md +++ /dev/null @@ -1,16 +0,0 @@ -# GetResourceDeploymentDetailSource10 - -## Example Usage - -```typescript -import { GetResourceDeploymentDetailSource10 } from "@alienplatform/platform-api/models/operations"; - -let value: GetResourceDeploymentDetailSource10 = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `component` | *string* | :heavy_minus_sign: | N/A | -| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource2.md b/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource2.md deleted file mode 100644 index 5f197981a..000000000 --- a/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource2.md +++ /dev/null @@ -1,16 +0,0 @@ -# GetResourceDeploymentDetailSource2 - -## Example Usage - -```typescript -import { GetResourceDeploymentDetailSource2 } from "@alienplatform/platform-api/models/operations"; - -let value: GetResourceDeploymentDetailSource2 = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `component` | *string* | :heavy_minus_sign: | N/A | -| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource3.md b/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource3.md deleted file mode 100644 index 0aa92223f..000000000 --- a/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource3.md +++ /dev/null @@ -1,16 +0,0 @@ -# GetResourceDeploymentDetailSource3 - -## Example Usage - -```typescript -import { GetResourceDeploymentDetailSource3 } from "@alienplatform/platform-api/models/operations"; - -let value: GetResourceDeploymentDetailSource3 = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `component` | *string* | :heavy_minus_sign: | N/A | -| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource4.md b/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource4.md deleted file mode 100644 index cdcd0a350..000000000 --- a/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource4.md +++ /dev/null @@ -1,16 +0,0 @@ -# GetResourceDeploymentDetailSource4 - -## Example Usage - -```typescript -import { GetResourceDeploymentDetailSource4 } from "@alienplatform/platform-api/models/operations"; - -let value: GetResourceDeploymentDetailSource4 = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `component` | *string* | :heavy_minus_sign: | N/A | -| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource5.md b/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource5.md deleted file mode 100644 index 8f9667184..000000000 --- a/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource5.md +++ /dev/null @@ -1,16 +0,0 @@ -# GetResourceDeploymentDetailSource5 - -## Example Usage - -```typescript -import { GetResourceDeploymentDetailSource5 } from "@alienplatform/platform-api/models/operations"; - -let value: GetResourceDeploymentDetailSource5 = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `component` | *string* | :heavy_minus_sign: | N/A | -| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource6.md b/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource6.md deleted file mode 100644 index e2696dd02..000000000 --- a/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource6.md +++ /dev/null @@ -1,16 +0,0 @@ -# GetResourceDeploymentDetailSource6 - -## Example Usage - -```typescript -import { GetResourceDeploymentDetailSource6 } from "@alienplatform/platform-api/models/operations"; - -let value: GetResourceDeploymentDetailSource6 = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `component` | *string* | :heavy_minus_sign: | N/A | -| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource7.md b/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource7.md deleted file mode 100644 index 1a5872814..000000000 --- a/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource7.md +++ /dev/null @@ -1,16 +0,0 @@ -# GetResourceDeploymentDetailSource7 - -## Example Usage - -```typescript -import { GetResourceDeploymentDetailSource7 } from "@alienplatform/platform-api/models/operations"; - -let value: GetResourceDeploymentDetailSource7 = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `component` | *string* | :heavy_minus_sign: | N/A | -| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource8.md b/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource8.md deleted file mode 100644 index 7cc7c771f..000000000 --- a/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource8.md +++ /dev/null @@ -1,16 +0,0 @@ -# GetResourceDeploymentDetailSource8 - -## Example Usage - -```typescript -import { GetResourceDeploymentDetailSource8 } from "@alienplatform/platform-api/models/operations"; - -let value: GetResourceDeploymentDetailSource8 = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `component` | *string* | :heavy_minus_sign: | N/A | -| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource9.md b/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource9.md deleted file mode 100644 index 6f0dfba94..000000000 --- a/client-sdks/platform/typescript/docs/models/operations/getresourcedeploymentdetailsource9.md +++ /dev/null @@ -1,16 +0,0 @@ -# GetResourceDeploymentDetailSource9 - -## Example Usage - -```typescript -import { GetResourceDeploymentDetailSource9 } from "@alienplatform/platform-api/models/operations"; - -let value: GetResourceDeploymentDetailSource9 = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `component` | *string* | :heavy_minus_sign: | N/A | -| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/getworkspaceinvitationpreviewrequest.md b/client-sdks/platform/typescript/docs/models/operations/getworkspaceinvitationpreviewrequest.md new file mode 100644 index 000000000..d12cac9b1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/getworkspaceinvitationpreviewrequest.md @@ -0,0 +1,17 @@ +# GetWorkspaceInvitationPreviewRequest + +## Example Usage + +```typescript +import { GetWorkspaceInvitationPreviewRequest } from "@alienplatform/platform-api/models/operations"; + +let value: GetWorkspaceInvitationPreviewRequest = { + token: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `token` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/getworkspaceinvitelinkrequest.md b/client-sdks/platform/typescript/docs/models/operations/getworkspaceinvitelinkrequest.md new file mode 100644 index 000000000..542af6410 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/getworkspaceinvitelinkrequest.md @@ -0,0 +1,19 @@ +# GetWorkspaceInviteLinkRequest + +## Example Usage + +```typescript +import { GetWorkspaceInviteLinkRequest } from "@alienplatform/platform-api/models/operations"; + +let value: GetWorkspaceInviteLinkRequest = { + id: "ws_It13CUaGEhLLAB87simX0", + workspace: "my-workspace", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the workspace. | ws_It13CUaGEhLLAB87simX0 | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/getworkspacesettingsrequest.md b/client-sdks/platform/typescript/docs/models/operations/getworkspacesettingsrequest.md new file mode 100644 index 000000000..b9c19ac64 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/getworkspacesettingsrequest.md @@ -0,0 +1,19 @@ +# GetWorkspaceSettingsRequest + +## Example Usage + +```typescript +import { GetWorkspaceSettingsRequest } from "@alienplatform/platform-api/models/operations"; + +let value: GetWorkspaceSettingsRequest = { + id: "ws_It13CUaGEhLLAB87simX0", + workspace: "my-workspace", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the workspace. | ws_It13CUaGEhLLAB87simX0 | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/health66.md b/client-sdks/platform/typescript/docs/models/operations/health66.md new file mode 100644 index 000000000..cbc410218 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/health66.md @@ -0,0 +1,15 @@ +# Health66 + +## Example Usage + +```typescript +import { Health66 } from "@alienplatform/platform-api/models/operations"; + +let value: Health66 = "degraded"; +``` + +## Values + +```typescript +"unknown" | "healthy" | "degraded" | "unhealthy" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/health67.md b/client-sdks/platform/typescript/docs/models/operations/health67.md new file mode 100644 index 000000000..ed8e8ef78 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/health67.md @@ -0,0 +1,15 @@ +# Health67 + +## Example Usage + +```typescript +import { Health67 } from "@alienplatform/platform-api/models/operations"; + +let value: Health67 = "unhealthy"; +``` + +## Values + +```typescript +"unknown" | "healthy" | "degraded" | "unhealthy" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/health68.md b/client-sdks/platform/typescript/docs/models/operations/health68.md new file mode 100644 index 000000000..d949b47f8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/health68.md @@ -0,0 +1,15 @@ +# Health68 + +## Example Usage + +```typescript +import { Health68 } from "@alienplatform/platform-api/models/operations"; + +let value: Health68 = "unhealthy"; +``` + +## Values + +```typescript +"unknown" | "healthy" | "degraded" | "unhealthy" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/health69.md b/client-sdks/platform/typescript/docs/models/operations/health69.md new file mode 100644 index 000000000..6c0f87b76 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/health69.md @@ -0,0 +1,15 @@ +# Health69 + +## Example Usage + +```typescript +import { Health69 } from "@alienplatform/platform-api/models/operations"; + +let value: Health69 = "healthy"; +``` + +## Values + +```typescript +"unknown" | "healthy" | "degraded" | "unhealthy" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/health70.md b/client-sdks/platform/typescript/docs/models/operations/health70.md new file mode 100644 index 000000000..3c9218114 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/health70.md @@ -0,0 +1,15 @@ +# Health70 + +## Example Usage + +```typescript +import { Health70 } from "@alienplatform/platform-api/models/operations"; + +let value: Health70 = "degraded"; +``` + +## Values + +```typescript +"unknown" | "healthy" | "degraded" | "unhealthy" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/health71.md b/client-sdks/platform/typescript/docs/models/operations/health71.md new file mode 100644 index 000000000..8d3ff75d1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/health71.md @@ -0,0 +1,15 @@ +# Health71 + +## Example Usage + +```typescript +import { Health71 } from "@alienplatform/platform-api/models/operations"; + +let value: Health71 = "unknown"; +``` + +## Values + +```typescript +"unknown" | "healthy" | "degraded" | "unhealthy" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/health72.md b/client-sdks/platform/typescript/docs/models/operations/health72.md new file mode 100644 index 000000000..5e26c21e7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/health72.md @@ -0,0 +1,15 @@ +# Health72 + +## Example Usage + +```typescript +import { Health72 } from "@alienplatform/platform-api/models/operations"; + +let value: Health72 = "degraded"; +``` + +## Values + +```typescript +"unknown" | "healthy" | "degraded" | "unhealthy" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/heartbeat.md b/client-sdks/platform/typescript/docs/models/operations/heartbeat.md index 270ae0bc9..4e49915e9 100644 --- a/client-sdks/platform/typescript/docs/models/operations/heartbeat.md +++ b/client-sdks/platform/typescript/docs/models/operations/heartbeat.md @@ -59,7 +59,7 @@ let value: Heartbeat = { | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | | `backend` | [operations.BackendEnum](../../models/operations/backendenum.md) | :heavy_check_mark: | N/A | | `controllerPlatform` | [operations.ControllerPlatform](../../models/operations/controllerplatform.md) | :heavy_check_mark: | Represents the target cloud platform. | -| `data` | *operations.DataUnion16* | :heavy_check_mark: | N/A | +| `data` | *operations.DataUnion18* | :heavy_check_mark: | N/A | | `deploymentId` | *string* | :heavy_minus_sign: | N/A | | `observedAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | N/A | | `raw` | [operations.Raw](../../models/operations/raw.md)[] | :heavy_check_mark: | N/A | diff --git a/client-sdks/platform/typescript/docs/models/operations/heartbeatavailable.md b/client-sdks/platform/typescript/docs/models/operations/heartbeatavailable.md index bf79ed358..b077b8728 100644 --- a/client-sdks/platform/typescript/docs/models/operations/heartbeatavailable.md +++ b/client-sdks/platform/typescript/docs/models/operations/heartbeatavailable.md @@ -20,27 +20,31 @@ let value: HeartbeatAvailable = { controllerPlatform: "gcp", data: { data: { - name: "", - privateEndpointConnectionCount: 152029, - status: { - collectionIssues: [ - { - message: "", - reason: "not-installed", - severity: "info", - source: "", - }, - ], - health: "unknown", - lifecycle: "running", - partial: false, - stale: true, + data: { + enabled: true, + keyArn: "", + keySpec: "", + keyState: "", + keyUsage: "", + status: { + health: "healthy", + lifecycle: "failed", + }, }, + provider: "aws-kms", }, - resourceType: "azure_service_bus_namespace", + resourceType: "key", }, - observedAt: new Date("2024-03-08T08:46:36.237Z"), - raw: [], + observedAt: new Date("2024-04-26T23:19:48.455Z"), + raw: [ + { + body: "", + collectedAt: new Date("2025-01-29T23:35:36.058Z"), + format: "json", + source: "", + truncated: true, + }, + ], resourceId: "", resourceType: "", }, diff --git a/client-sdks/platform/typescript/docs/models/operations/heartbeatunion.md b/client-sdks/platform/typescript/docs/models/operations/heartbeatunion.md index f0e151c01..6ccc923ab 100644 --- a/client-sdks/platform/typescript/docs/models/operations/heartbeatunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/heartbeatunion.md @@ -21,27 +21,31 @@ const value: operations.HeartbeatAvailable = { controllerPlatform: "gcp", data: { data: { - name: "", - privateEndpointConnectionCount: 152029, - status: { - collectionIssues: [ - { - message: "", - reason: "not-installed", - severity: "info", - source: "", - }, - ], - health: "unknown", - lifecycle: "running", - partial: false, - stale: true, + data: { + enabled: true, + keyArn: "", + keySpec: "", + keyState: "", + keyUsage: "", + status: { + health: "healthy", + lifecycle: "failed", + }, }, + provider: "aws-kms", }, - resourceType: "azure_service_bus_namespace", + resourceType: "key", }, - observedAt: new Date("2024-03-08T08:46:36.237Z"), - raw: [], + observedAt: new Date("2024-04-26T23:19:48.455Z"), + raw: [ + { + body: "", + collectedAt: new Date("2025-01-29T23:35:36.058Z"), + format: "json", + source: "", + truncated: true, + }, + ], resourceId: "", resourceType: "", }, @@ -63,4 +67,3 @@ const value: operations.HeartbeatMissing = { resourceType: "", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion1.md b/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion1.md index 83432dcdb..57c3c14ca 100644 --- a/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion1.md +++ b/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion1.md @@ -14,4 +14,3 @@ const value: operations.InvolvedObject1 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion10.md b/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion10.md index 1858a4bae..1f8b27c55 100644 --- a/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion10.md +++ b/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion10.md @@ -14,4 +14,3 @@ const value: operations.InvolvedObject10 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion2.md b/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion2.md index 73fd423d8..e2c3778d1 100644 --- a/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion2.md +++ b/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion2.md @@ -14,4 +14,3 @@ const value: operations.InvolvedObject2 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion3.md b/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion3.md index 50a98b3e2..31cdafebd 100644 --- a/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion3.md +++ b/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion3.md @@ -14,4 +14,3 @@ const value: operations.InvolvedObject3 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion4.md b/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion4.md index ec17516bb..655a3b602 100644 --- a/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion4.md +++ b/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion4.md @@ -14,4 +14,3 @@ const value: operations.InvolvedObject4 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion5.md b/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion5.md index f440dd23a..d2e7b11c4 100644 --- a/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion5.md +++ b/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion5.md @@ -14,4 +14,3 @@ const value: operations.InvolvedObject5 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion6.md b/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion6.md index b403409e9..37e3e7f9e 100644 --- a/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion6.md +++ b/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion6.md @@ -14,4 +14,3 @@ const value: operations.InvolvedObject6 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion7.md b/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion7.md index c541cfb7d..c05c3513f 100644 --- a/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion7.md +++ b/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion7.md @@ -14,4 +14,3 @@ const value: operations.InvolvedObject7 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion8.md b/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion8.md index 03eab7cbd..be0eac4a8 100644 --- a/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion8.md +++ b/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion8.md @@ -14,4 +14,3 @@ const value: operations.InvolvedObject8 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion9.md b/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion9.md index 932d515c7..92bd0cdd4 100644 --- a/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion9.md +++ b/client-sdks/platform/typescript/docs/models/operations/involvedobjectunion9.md @@ -14,4 +14,3 @@ const value: operations.InvolvedObject9 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/lease.md b/client-sdks/platform/typescript/docs/models/operations/lease.md new file mode 100644 index 000000000..b96878ed5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/lease.md @@ -0,0 +1,21 @@ +# Lease + +## Example Usage + +```typescript +import { Lease } from "@alienplatform/platform-api/models/operations"; + +let value: Lease = { + deploymentId: "dep_0c29fq4a2yjb7kx3smwdgxlc", + renewed: false, + leaseExpiresAt: new Date("2025-02-04T06:29:01.550Z"), +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| `deploymentId` | *string* | :heavy_check_mark: | Unique identifier for the deployment. | dep_0c29fq4a2yjb7kx3smwdgxlc | +| `renewed` | *boolean* | :heavy_check_mark: | False when this session no longer holds a live lease. | | +| `leaseExpiresAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/lifecycle66.md b/client-sdks/platform/typescript/docs/models/operations/lifecycle66.md new file mode 100644 index 000000000..2e2e8d0e0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/lifecycle66.md @@ -0,0 +1,15 @@ +# Lifecycle66 + +## Example Usage + +```typescript +import { Lifecycle66 } from "@alienplatform/platform-api/models/operations"; + +let value: Lifecycle66 = "scaling"; +``` + +## Values + +```typescript +"unknown" | "creating" | "updating" | "running" | "scaling" | "stopping" | "stopped" | "deleting" | "deleted" | "failed" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/lifecycle67.md b/client-sdks/platform/typescript/docs/models/operations/lifecycle67.md new file mode 100644 index 000000000..182a26d1c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/lifecycle67.md @@ -0,0 +1,15 @@ +# Lifecycle67 + +## Example Usage + +```typescript +import { Lifecycle67 } from "@alienplatform/platform-api/models/operations"; + +let value: Lifecycle67 = "unknown"; +``` + +## Values + +```typescript +"unknown" | "creating" | "updating" | "running" | "scaling" | "stopping" | "stopped" | "deleting" | "deleted" | "failed" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/lifecycle68.md b/client-sdks/platform/typescript/docs/models/operations/lifecycle68.md new file mode 100644 index 000000000..f7dccf230 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/lifecycle68.md @@ -0,0 +1,15 @@ +# Lifecycle68 + +## Example Usage + +```typescript +import { Lifecycle68 } from "@alienplatform/platform-api/models/operations"; + +let value: Lifecycle68 = "creating"; +``` + +## Values + +```typescript +"unknown" | "creating" | "updating" | "running" | "scaling" | "stopping" | "stopped" | "deleting" | "deleted" | "failed" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/lifecycle69.md b/client-sdks/platform/typescript/docs/models/operations/lifecycle69.md new file mode 100644 index 000000000..e31b9fb45 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/lifecycle69.md @@ -0,0 +1,15 @@ +# Lifecycle69 + +## Example Usage + +```typescript +import { Lifecycle69 } from "@alienplatform/platform-api/models/operations"; + +let value: Lifecycle69 = "updating"; +``` + +## Values + +```typescript +"unknown" | "creating" | "updating" | "running" | "scaling" | "stopping" | "stopped" | "deleting" | "deleted" | "failed" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/lifecycle70.md b/client-sdks/platform/typescript/docs/models/operations/lifecycle70.md new file mode 100644 index 000000000..be6d84cc5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/lifecycle70.md @@ -0,0 +1,15 @@ +# Lifecycle70 + +## Example Usage + +```typescript +import { Lifecycle70 } from "@alienplatform/platform-api/models/operations"; + +let value: Lifecycle70 = "deleting"; +``` + +## Values + +```typescript +"unknown" | "creating" | "updating" | "running" | "scaling" | "stopping" | "stopped" | "deleting" | "deleted" | "failed" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/lifecycle71.md b/client-sdks/platform/typescript/docs/models/operations/lifecycle71.md new file mode 100644 index 000000000..cb356d91a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/lifecycle71.md @@ -0,0 +1,15 @@ +# Lifecycle71 + +## Example Usage + +```typescript +import { Lifecycle71 } from "@alienplatform/platform-api/models/operations"; + +let value: Lifecycle71 = "unknown"; +``` + +## Values + +```typescript +"unknown" | "creating" | "updating" | "running" | "scaling" | "stopping" | "stopped" | "deleting" | "deleted" | "failed" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/lifecycle72.md b/client-sdks/platform/typescript/docs/models/operations/lifecycle72.md new file mode 100644 index 000000000..dc8734219 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/lifecycle72.md @@ -0,0 +1,15 @@ +# Lifecycle72 + +## Example Usage + +```typescript +import { Lifecycle72 } from "@alienplatform/platform-api/models/operations"; + +let value: Lifecycle72 = "running"; +``` + +## Values + +```typescript +"unknown" | "creating" | "updating" | "running" | "scaling" | "stopping" | "stopped" | "deleting" | "deleted" | "failed" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/listagentsessioneventsrequest.md b/client-sdks/platform/typescript/docs/models/operations/listagentsessioneventsrequest.md new file mode 100644 index 000000000..59f028d45 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/listagentsessioneventsrequest.md @@ -0,0 +1,21 @@ +# ListAgentSessionEventsRequest + +## Example Usage + +```typescript +import { ListAgentSessionEventsRequest } from "@alienplatform/platform-api/models/operations"; + +let value: ListAgentSessionEventsRequest = { + id: "", + workspace: "my-workspace", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | N/A | | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | +| `after` | *number* | :heavy_minus_sign: | N/A | | +| `limit` | *number* | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/listagentsessionsrequest.md b/client-sdks/platform/typescript/docs/models/operations/listagentsessionsrequest.md new file mode 100644 index 000000000..817bdf79d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/listagentsessionsrequest.md @@ -0,0 +1,17 @@ +# ListAgentSessionsRequest + +## Example Usage + +```typescript +import { ListAgentSessionsRequest } from "@alienplatform/platform-api/models/operations"; + +let value: ListAgentSessionsRequest = { + workspace: "my-workspace", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/listapikeysresponse.md b/client-sdks/platform/typescript/docs/models/operations/listapikeysresponse.md index 7b707e1f2..c0343efc9 100644 --- a/client-sdks/platform/typescript/docs/models/operations/listapikeysresponse.md +++ b/client-sdks/platform/typescript/docs/models/operations/listapikeysresponse.md @@ -28,19 +28,19 @@ let value: ListAPIKeysResponse = { deploymentSetupConfig: { metadata: { "key": "", - "key1": "", - "key2": "", }, policy: { allowedPlatforms: [], - allowedSetupMethods: [], + allowedSetupMethods: [ + "google-oauth", + ], }, environmentVariables: [], }, createdByUser: { id: "", - email: "Rhett78@hotmail.com", - image: "https://picsum.photos/seed/PS5fO/2447/1335", + email: "Rhianna90@hotmail.com", + image: "https://picsum.photos/seed/UEmR2Mt/3119/3794", }, }, ], diff --git a/client-sdks/platform/typescript/docs/models/operations/listdeploymentgroupsitem.md b/client-sdks/platform/typescript/docs/models/operations/listdeploymentgroupsitem.md index 5bf2ef90d..f843e7f17 100644 --- a/client-sdks/platform/typescript/docs/models/operations/listdeploymentgroupsitem.md +++ b/client-sdks/platform/typescript/docs/models/operations/listdeploymentgroupsitem.md @@ -8,6 +8,7 @@ import { ListDeploymentGroupsItem } from "@alienplatform/platform-api/models/ope let value: ListDeploymentGroupsItem = { id: "dg_r27ict8c7vcgsumpj90ackf7b", name: "prod-us-east-1", + externalId: "ext_example_01", projectId: "prj_mcytp6z3j91f7tn5ryqsfwtr", workspaceId: "ws_It13CUaGEhLLAB87simX0", createdAt: new Date("2024-07-18T22:43:38.262Z"), @@ -20,6 +21,7 @@ let value: ListDeploymentGroupsItem = { | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | | `id` | *string* | :heavy_check_mark: | Unique identifier for the deployment group. | dg_r27ict8c7vcgsumpj90ackf7b | | `name` | *string* | :heavy_check_mark: | Deployment group name. | prod-us-east-1 | +| `externalId` | *string* | :heavy_check_mark: | Case-sensitive, URL- and header-safe identifier from the integrating application. | ext_example_01 | | `projectId` | *string* | :heavy_check_mark: | Unique identifier for the project. | prj_mcytp6z3j91f7tn5ryqsfwtr | | `workspaceId` | *string* | :heavy_check_mark: | Unique identifier for the workspace. | ws_It13CUaGEhLLAB87simX0 | | `maxDeployments` | *number* | :heavy_minus_sign: | Maximum number of deployments allowed in this deployment group | | diff --git a/client-sdks/platform/typescript/docs/models/operations/listdeploymentgroupsresponse.md b/client-sdks/platform/typescript/docs/models/operations/listdeploymentgroupsresponse.md index e40dcec6f..647205097 100644 --- a/client-sdks/platform/typescript/docs/models/operations/listdeploymentgroupsresponse.md +++ b/client-sdks/platform/typescript/docs/models/operations/listdeploymentgroupsresponse.md @@ -12,6 +12,7 @@ let value: ListDeploymentGroupsResponse = { { id: "dg_r27ict8c7vcgsumpj90ackf7b", name: "prod-us-east-1", + externalId: "ext_example_01", projectId: "prj_mcytp6z3j91f7tn5ryqsfwtr", workspaceId: "ws_It13CUaGEhLLAB87simX0", createdAt: new Date("2025-06-07T13:26:09.959Z"), diff --git a/client-sdks/platform/typescript/docs/models/operations/listdeploymentsresponse.md b/client-sdks/platform/typescript/docs/models/operations/listdeploymentsresponse.md index f97f2cb4d..bc3901b49 100644 --- a/client-sdks/platform/typescript/docs/models/operations/listdeploymentsresponse.md +++ b/client-sdks/platform/typescript/docs/models/operations/listdeploymentsresponse.md @@ -20,6 +20,7 @@ let value: ListDeploymentsResponse = { currentReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", desiredReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", pinnedReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", + releaseChannel: "", retryRequested: false, createdAt: new Date("2026-06-07T15:57:36.372Z"), updatedAt: new Date("2026-07-20T07:45:05.184Z"), @@ -41,7 +42,7 @@ let value: ListDeploymentsResponse = { commitAuthorLogin: "johndoe", commitAuthorAvatarUrl: "https://github.com/johndoe.png", }, - createdAt: new Date("2024-06-27T06:57:01.451Z"), + createdAt: new Date("2024-04-17T05:47:54.417Z"), }, deploymentGroup: { id: "dg_r27ict8c7vcgsumpj90ackf7b", diff --git a/client-sdks/platform/typescript/docs/models/operations/listeventsinclude.md b/client-sdks/platform/typescript/docs/models/operations/listeventsinclude.md new file mode 100644 index 000000000..e11f6c41f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/listeventsinclude.md @@ -0,0 +1,15 @@ +# ListEventsInclude + +## Example Usage + +```typescript +import { ListEventsInclude } from "@alienplatform/platform-api/models/operations"; + +let value: ListEventsInclude = "releaseCreatedAt"; +``` + +## Values + +```typescript +"releaseCreatedAt" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/listeventsrequest.md b/client-sdks/platform/typescript/docs/models/operations/listeventsrequest.md index 7086469a1..87fd02118 100644 --- a/client-sdks/platform/typescript/docs/models/operations/listeventsrequest.md +++ b/client-sdks/platform/typescript/docs/models/operations/listeventsrequest.md @@ -17,5 +17,7 @@ let value: ListEventsRequest = { | `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | | `project` | *string* | :heavy_minus_sign: | Filter by project ID or name. | | | `deploymentId` | *string* | :heavy_minus_sign: | Filter events to a single deployment. | | +| `releaseId` | *string* | :heavy_minus_sign: | Filter events to a single release. | | +| `include` | [operations.ListEventsInclude](../../models/operations/listeventsinclude.md)[] | :heavy_minus_sign: | Optional fields to include: releaseCreatedAt | | | `limit` | *number* | :heavy_minus_sign: | Maximum number of items to return per page | | | `cursor` | *string* | :heavy_minus_sign: | Cursor for pagination - omit for first page | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/listeventsresponse.md b/client-sdks/platform/typescript/docs/models/operations/listeventsresponse.md index 5d6a640d1..d88cc0ff7 100644 --- a/client-sdks/platform/typescript/docs/models/operations/listeventsresponse.md +++ b/client-sdks/platform/typescript/docs/models/operations/listeventsresponse.md @@ -15,13 +15,13 @@ let value: ListEventsResponse = { releaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", debugSessionId: "dbg_HOXmkmT9UPYlsnxqSNlEGoXL", data: { - platform: "", - stack: "", - type: "RunningPreflights", + agentId: "", + debugSessionId: "", + type: "DebuggingAgent", }, - state: "started", + state: "none", projectId: "prj_mcytp6z3j91f7tn5ryqsfwtr", - createdAt: new Date("2026-01-05T03:00:56.315Z"), + createdAt: new Date("2026-05-23T10:59:53.935Z"), workspaceId: "ws_It13CUaGEhLLAB87simX0", }, ], @@ -31,7 +31,7 @@ let value: ListEventsResponse = { ## Fields -| Field | Type | Required | Description | -| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | -| `items` | [models.Event](../../models/event.md)[] | :heavy_check_mark: | Items in this page | -| `nextCursor` | *string* | :heavy_check_mark: | Cursor for the next page, null if last page | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| `items` | [models.EventListItemResponse](../../models/eventlistitemresponse.md)[] | :heavy_check_mark: | Items in this page | +| `nextCursor` | *string* | :heavy_check_mark: | Cursor for the next page, null if last page | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/listreleasechannelsrequest.md b/client-sdks/platform/typescript/docs/models/operations/listreleasechannelsrequest.md new file mode 100644 index 000000000..4587b9b6d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/listreleasechannelsrequest.md @@ -0,0 +1,19 @@ +# ListReleaseChannelsRequest + +## Example Usage + +```typescript +import { ListReleaseChannelsRequest } from "@alienplatform/platform-api/models/operations"; + +let value: ListReleaseChannelsRequest = { + workspace: "my-workspace", + project: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | +| `project` | *string* | :heavy_check_mark: | Filter by project ID or name. | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/listreleasechannelsresponse.md b/client-sdks/platform/typescript/docs/models/operations/listreleasechannelsresponse.md new file mode 100644 index 000000000..047babb6e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/listreleasechannelsresponse.md @@ -0,0 +1,19 @@ +# ListReleaseChannelsResponse + +Project release channels. + +## Example Usage + +```typescript +import { ListReleaseChannelsResponse } from "@alienplatform/platform-api/models/operations"; + +let value: ListReleaseChannelsResponse = { + items: [], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | --------------------------------------------------------- | +| `items` | [models.ReleaseChannel](../../models/releasechannel.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/listreleasedeploymentsrequest.md b/client-sdks/platform/typescript/docs/models/operations/listreleasedeploymentsrequest.md new file mode 100644 index 000000000..bcf6a547b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/listreleasedeploymentsrequest.md @@ -0,0 +1,23 @@ +# ListReleaseDeploymentsRequest + +## Example Usage + +```typescript +import { ListReleaseDeploymentsRequest } from "@alienplatform/platform-api/models/operations"; + +let value: ListReleaseDeploymentsRequest = { + id: "rel_WbhQgksrawSKIpEN0NAssHX9", + workspace: "my-workspace", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the release. | rel_WbhQgksrawSKIpEN0NAssHX9 | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | +| `state` | [models.ReleaseRolloutState](../../models/releaserolloutstate.md)[] | :heavy_minus_sign: | Filter deployments by rollout state | | +| `deploymentGroup` | *string* | :heavy_minus_sign: | Filter by deployment group ID or name | | +| `limit` | *number* | :heavy_minus_sign: | Maximum number of items to return per page | | +| `cursor` | *string* | :heavy_minus_sign: | Cursor for pagination - omit for first page | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/listreleasesinclude.md b/client-sdks/platform/typescript/docs/models/operations/listreleasesinclude.md index 1f958a0e3..45849d68b 100644 --- a/client-sdks/platform/typescript/docs/models/operations/listreleasesinclude.md +++ b/client-sdks/platform/typescript/docs/models/operations/listreleasesinclude.md @@ -11,5 +11,5 @@ let value: ListReleasesInclude = "project"; ## Values ```typescript -"project" +"project" | "rollout" | "createdBy" ``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/listreleasesrequest.md b/client-sdks/platform/typescript/docs/models/operations/listreleasesrequest.md index e5efe14e0..8e0a9d902 100644 --- a/client-sdks/platform/typescript/docs/models/operations/listreleasesrequest.md +++ b/client-sdks/platform/typescript/docs/models/operations/listreleasesrequest.md @@ -15,8 +15,10 @@ let value: ListReleasesRequest = { | Field | Type | Required | Description | Example | | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | `project` | *string* | :heavy_minus_sign: | Filter by project ID or name. | | +| `channel` | *string* | :heavy_minus_sign: | Filter to releases promoted to this channel. Defaults to production. | | +| `allChannels` | [operations.AllChannels](../../models/operations/allchannels.md) | :heavy_minus_sign: | N/A | | | `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | -| `include` | [operations.ListReleasesInclude](../../models/operations/listreleasesinclude.md)[] | :heavy_minus_sign: | Optional fields to include: project | | +| `include` | [operations.ListReleasesInclude](../../models/operations/listreleasesinclude.md)[] | :heavy_minus_sign: | Optional fields to include: project, rollout | | | `search` | *string* | :heavy_minus_sign: | Search releases by commit message, branch, SHA, or release ID | | | `branch` | *string* | :heavy_minus_sign: | Filter by git branch (commitRef) | | | `author` | *string* | :heavy_minus_sign: | Filter by commit author login or name | | diff --git a/client-sdks/platform/typescript/docs/models/operations/listworkspaceinvitationsrequest.md b/client-sdks/platform/typescript/docs/models/operations/listworkspaceinvitationsrequest.md new file mode 100644 index 000000000..bd9e452c6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/listworkspaceinvitationsrequest.md @@ -0,0 +1,19 @@ +# ListWorkspaceInvitationsRequest + +## Example Usage + +```typescript +import { ListWorkspaceInvitationsRequest } from "@alienplatform/platform-api/models/operations"; + +let value: ListWorkspaceInvitationsRequest = { + id: "ws_It13CUaGEhLLAB87simX0", + workspace: "my-workspace", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the workspace. | ws_It13CUaGEhLLAB87simX0 | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/listworkspaceinvitationsresponse.md b/client-sdks/platform/typescript/docs/models/operations/listworkspaceinvitationsresponse.md new file mode 100644 index 000000000..dbe65a46a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/listworkspaceinvitationsresponse.md @@ -0,0 +1,19 @@ +# ListWorkspaceInvitationsResponse + +Pending invitations. + +## Example Usage + +```typescript +import { ListWorkspaceInvitationsResponse } from "@alienplatform/platform-api/models/operations"; + +let value: ListWorkspaceInvitationsResponse = { + items: [], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `items` | [models.WorkspaceInvitation](../../models/workspaceinvitation.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/memoryunion1.md b/client-sdks/platform/typescript/docs/models/operations/memoryunion1.md index f0de298c3..f64d60ea6 100644 --- a/client-sdks/platform/typescript/docs/models/operations/memoryunion1.md +++ b/client-sdks/platform/typescript/docs/models/operations/memoryunion1.md @@ -17,4 +17,3 @@ const value: operations.Memory1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/memoryunion10.md b/client-sdks/platform/typescript/docs/models/operations/memoryunion10.md index ddc08b350..90a63ef40 100644 --- a/client-sdks/platform/typescript/docs/models/operations/memoryunion10.md +++ b/client-sdks/platform/typescript/docs/models/operations/memoryunion10.md @@ -17,4 +17,3 @@ const value: operations.Memory10 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/memoryunion11.md b/client-sdks/platform/typescript/docs/models/operations/memoryunion11.md index 670d45f15..3e3b4bcfe 100644 --- a/client-sdks/platform/typescript/docs/models/operations/memoryunion11.md +++ b/client-sdks/platform/typescript/docs/models/operations/memoryunion11.md @@ -17,4 +17,3 @@ const value: operations.Memory11 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/memoryunion2.md b/client-sdks/platform/typescript/docs/models/operations/memoryunion2.md index e1c12a547..38491b24f 100644 --- a/client-sdks/platform/typescript/docs/models/operations/memoryunion2.md +++ b/client-sdks/platform/typescript/docs/models/operations/memoryunion2.md @@ -17,4 +17,3 @@ const value: operations.Memory2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/memoryunion3.md b/client-sdks/platform/typescript/docs/models/operations/memoryunion3.md index ab40faa68..e0f7b1ca5 100644 --- a/client-sdks/platform/typescript/docs/models/operations/memoryunion3.md +++ b/client-sdks/platform/typescript/docs/models/operations/memoryunion3.md @@ -17,4 +17,3 @@ const value: operations.Memory3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/memoryunion4.md b/client-sdks/platform/typescript/docs/models/operations/memoryunion4.md index 7eee83266..24251ff5a 100644 --- a/client-sdks/platform/typescript/docs/models/operations/memoryunion4.md +++ b/client-sdks/platform/typescript/docs/models/operations/memoryunion4.md @@ -17,4 +17,3 @@ const value: operations.Memory4 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/memoryunion5.md b/client-sdks/platform/typescript/docs/models/operations/memoryunion5.md index bc6babbb4..1f62ea23b 100644 --- a/client-sdks/platform/typescript/docs/models/operations/memoryunion5.md +++ b/client-sdks/platform/typescript/docs/models/operations/memoryunion5.md @@ -17,4 +17,3 @@ const value: operations.Memory5 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/memoryunion6.md b/client-sdks/platform/typescript/docs/models/operations/memoryunion6.md index 472994822..5fc0d3995 100644 --- a/client-sdks/platform/typescript/docs/models/operations/memoryunion6.md +++ b/client-sdks/platform/typescript/docs/models/operations/memoryunion6.md @@ -17,4 +17,3 @@ const value: operations.Memory6 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/memoryunion7.md b/client-sdks/platform/typescript/docs/models/operations/memoryunion7.md index 7d85632e2..556bbeb15 100644 --- a/client-sdks/platform/typescript/docs/models/operations/memoryunion7.md +++ b/client-sdks/platform/typescript/docs/models/operations/memoryunion7.md @@ -17,4 +17,3 @@ const value: operations.Memory7 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/memoryunion8.md b/client-sdks/platform/typescript/docs/models/operations/memoryunion8.md index a53ad509f..18663fbc3 100644 --- a/client-sdks/platform/typescript/docs/models/operations/memoryunion8.md +++ b/client-sdks/platform/typescript/docs/models/operations/memoryunion8.md @@ -17,4 +17,3 @@ const value: operations.Memory8 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/memoryunion9.md b/client-sdks/platform/typescript/docs/models/operations/memoryunion9.md index 7ce476e51..f4c41dd7d 100644 --- a/client-sdks/platform/typescript/docs/models/operations/memoryunion9.md +++ b/client-sdks/platform/typescript/docs/models/operations/memoryunion9.md @@ -17,4 +17,3 @@ const value: operations.Memory9 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/model1.md b/client-sdks/platform/typescript/docs/models/operations/model1.md new file mode 100644 index 000000000..1ed961f7e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/model1.md @@ -0,0 +1,27 @@ +# Model1 + +## Example Usage + +```typescript +import { Model1 } from "@alienplatform/platform-api/models/operations"; + +let value: Model1 = { + accessTest: "failed", + availability: "unknown", + blockers: [], + clientApis: [], + publicModelId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| `accessTest` | [operations.AccessTest1](../../models/operations/accesstest1.md) | :heavy_check_mark: | N/A | +| `availability` | [operations.AvailabilityEnum1](../../models/operations/availabilityenum1.md) | :heavy_check_mark: | N/A | +| `blockers` | [operations.BlockerEnum1](../../models/operations/blockerenum1.md)[] | :heavy_check_mark: | N/A | +| `clientApis` | [operations.ClientApi1](../../models/operations/clientapi1.md)[] | :heavy_check_mark: | N/A | +| `errorCode` | *string* | :heavy_minus_sign: | N/A | +| `publicModelId` | *string* | :heavy_check_mark: | N/A | +| `testedAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/model2.md b/client-sdks/platform/typescript/docs/models/operations/model2.md new file mode 100644 index 000000000..d5446640a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/model2.md @@ -0,0 +1,29 @@ +# Model2 + +## Example Usage + +```typescript +import { Model2 } from "@alienplatform/platform-api/models/operations"; + +let value: Model2 = { + accessTest: "failed", + availability: "available", + blockers: [], + clientApis: [ + "anthropic-messages", + ], + publicModelId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| `accessTest` | [operations.AccessTest2](../../models/operations/accesstest2.md) | :heavy_check_mark: | N/A | +| `availability` | [operations.AvailabilityEnum2](../../models/operations/availabilityenum2.md) | :heavy_check_mark: | N/A | +| `blockers` | [operations.BlockerEnum2](../../models/operations/blockerenum2.md)[] | :heavy_check_mark: | N/A | +| `clientApis` | [operations.ClientApi2](../../models/operations/clientapi2.md)[] | :heavy_check_mark: | N/A | +| `errorCode` | *string* | :heavy_minus_sign: | N/A | +| `publicModelId` | *string* | :heavy_check_mark: | N/A | +| `testedAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/model3.md b/client-sdks/platform/typescript/docs/models/operations/model3.md new file mode 100644 index 000000000..2f5c2fc61 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/model3.md @@ -0,0 +1,29 @@ +# Model3 + +## Example Usage + +```typescript +import { Model3 } from "@alienplatform/platform-api/models/operations"; + +let value: Model3 = { + accessTest: "verified", + availability: "blocked", + blockers: [ + "model-activation-required", + ], + clientApis: [], + publicModelId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| `accessTest` | [operations.AccessTest3](../../models/operations/accesstest3.md) | :heavy_check_mark: | N/A | +| `availability` | [operations.AvailabilityEnum3](../../models/operations/availabilityenum3.md) | :heavy_check_mark: | N/A | +| `blockers` | [operations.BlockerEnum3](../../models/operations/blockerenum3.md)[] | :heavy_check_mark: | N/A | +| `clientApis` | [operations.ClientApi3](../../models/operations/clientapi3.md)[] | :heavy_check_mark: | N/A | +| `errorCode` | *string* | :heavy_minus_sign: | N/A | +| `publicModelId` | *string* | :heavy_check_mark: | N/A | +| `testedAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/model4.md b/client-sdks/platform/typescript/docs/models/operations/model4.md new file mode 100644 index 000000000..3b1f943fe --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/model4.md @@ -0,0 +1,27 @@ +# Model4 + +## Example Usage + +```typescript +import { Model4 } from "@alienplatform/platform-api/models/operations"; + +let value: Model4 = { + accessTest: "failed", + availability: "available", + blockers: [], + clientApis: [], + publicModelId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| `accessTest` | [operations.AccessTest4](../../models/operations/accesstest4.md) | :heavy_check_mark: | N/A | +| `availability` | [operations.AvailabilityEnum4](../../models/operations/availabilityenum4.md) | :heavy_check_mark: | N/A | +| `blockers` | [operations.BlockerEnum4](../../models/operations/blockerenum4.md)[] | :heavy_check_mark: | N/A | +| `clientApis` | [operations.ClientApi4](../../models/operations/clientapi4.md)[] | :heavy_check_mark: | N/A | +| `errorCode` | *string* | :heavy_minus_sign: | N/A | +| `publicModelId` | *string* | :heavy_check_mark: | N/A | +| `testedAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeawsunion.md b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeawsunion.md index 12168320c..f2d61f682 100644 --- a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeawsunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeawsunion.md @@ -16,4 +16,3 @@ const value: operations.PlanDeploymentComputeAws = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeazureunion.md b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeazureunion.md index 16f902615..8947d76e0 100644 --- a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeazureunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeazureunion.md @@ -16,4 +16,3 @@ const value: operations.PlanDeploymentComputeAzure = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputecertificateunion1.md b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputecertificateunion1.md index 868ddc3f7..507d8e446 100644 --- a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputecertificateunion1.md +++ b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputecertificateunion1.md @@ -47,4 +47,3 @@ const value: operations.PlanDeploymentComputeCertificateNone1 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputecertificateunion2.md b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputecertificateunion2.md index 39d9aeefa..ef01e2d6b 100644 --- a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputecertificateunion2.md +++ b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputecertificateunion2.md @@ -47,4 +47,3 @@ const value: operations.PlanDeploymentComputeCertificateNone2 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputecloudunion.md b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputecloudunion.md index bf48dce99..14bb98c7a 100644 --- a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputecloudunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputecloudunion.md @@ -14,4 +14,3 @@ const value: operations.PlanDeploymentComputeCloud = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeclusterunion.md b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeclusterunion.md index 10e5b6ec0..65dd78baf 100644 --- a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeclusterunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeclusterunion.md @@ -16,4 +16,3 @@ const value: operations.PlanDeploymentComputeCluster = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputedomainskubernetesunion.md b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputedomainskubernetesunion.md index 1a80e0d9d..abc34c773 100644 --- a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputedomainskubernetesunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputedomainskubernetesunion.md @@ -18,4 +18,3 @@ const value: operations.PlanDeploymentComputeDomainsKubernetes = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputedomainsunion.md b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputedomainsunion.md index 6cf9e4558..e06ae96e3 100644 --- a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputedomainsunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputedomainsunion.md @@ -14,4 +14,3 @@ const value: operations.PlanDeploymentComputeDomains = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeexposureunion.md b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeexposureunion.md index 76b0332e2..0b0b21334 100644 --- a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeexposureunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeexposureunion.md @@ -50,4 +50,3 @@ const value: operations.PlanDeploymentComputeExposureCustom = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputegcpunion.md b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputegcpunion.md index 232d68a96..c0dfbc3c4 100644 --- a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputegcpunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputegcpunion.md @@ -16,4 +16,3 @@ const value: operations.PlanDeploymentComputeGcp = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputekubernetesunion.md b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputekubernetesunion.md index 30808f9aa..1c2b10e78 100644 --- a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputekubernetesunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputekubernetesunion.md @@ -14,4 +14,3 @@ const value: operations.PlanDeploymentComputeKubernetes = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputenetworkunion.md b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputenetworkunion.md index 8dd7f81cc..fe243013e 100644 --- a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputenetworkunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputenetworkunion.md @@ -64,4 +64,3 @@ const value: operations.PlanDeploymentComputeNetworkByoVnetAzure = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputepoolsunion.md b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputepoolsunion.md index 1b63cd1b0..27ba85ed4 100644 --- a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputepoolsunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputepoolsunion.md @@ -21,4 +21,3 @@ const value: operations.PlanDeploymentComputePoolsAutoscale = { max: 23862, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeproviderunion1.md b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeproviderunion1.md index 9503df593..f985c41eb 100644 --- a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeproviderunion1.md +++ b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeproviderunion1.md @@ -37,4 +37,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeproviderunion2.md b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeproviderunion2.md index 52ba51ad9..02e20490a 100644 --- a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeproviderunion2.md +++ b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeproviderunion2.md @@ -37,4 +37,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeproviderunion3.md b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeproviderunion3.md index f166c8182..ed8c44bac 100644 --- a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeproviderunion3.md +++ b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeproviderunion3.md @@ -37,4 +37,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeproviderunion4.md b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeproviderunion4.md index 7aa68fd61..8f9d3de2c 100644 --- a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeproviderunion4.md +++ b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputeproviderunion4.md @@ -37,4 +37,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputepublicendpointtargetunion.md b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputepublicendpointtargetunion.md index 4811d6e7d..130dc62ff 100644 --- a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputepublicendpointtargetunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputepublicendpointtargetunion.md @@ -27,4 +27,3 @@ const value: operations.PlanDeploymentComputePublicEndpointTargetLoadBalancer = ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputerouteunion1.md b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputerouteunion1.md index 18fe1435b..6d75728ff 100644 --- a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputerouteunion1.md +++ b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputerouteunion1.md @@ -23,4 +23,3 @@ const value: operations.PlanDeploymentComputeRouteGateway1 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputerouteunion2.md b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputerouteunion2.md index 774a7be90..8805babed 100644 --- a/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputerouteunion2.md +++ b/client-sdks/platform/typescript/docs/models/operations/plandeploymentcomputerouteunion2.md @@ -23,4 +23,3 @@ const value: operations.PlanDeploymentComputeRouteGateway2 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/podcpuunion1.md b/client-sdks/platform/typescript/docs/models/operations/podcpuunion1.md index a6601f09a..1cc869e7e 100644 --- a/client-sdks/platform/typescript/docs/models/operations/podcpuunion1.md +++ b/client-sdks/platform/typescript/docs/models/operations/podcpuunion1.md @@ -17,4 +17,3 @@ const value: operations.CpuPod1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/podcpuunion2.md b/client-sdks/platform/typescript/docs/models/operations/podcpuunion2.md index 7a85a6a27..f85d2cb88 100644 --- a/client-sdks/platform/typescript/docs/models/operations/podcpuunion2.md +++ b/client-sdks/platform/typescript/docs/models/operations/podcpuunion2.md @@ -17,4 +17,3 @@ const value: operations.CpuPod2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/podcpuunion3.md b/client-sdks/platform/typescript/docs/models/operations/podcpuunion3.md index 3509a95c2..c42225f12 100644 --- a/client-sdks/platform/typescript/docs/models/operations/podcpuunion3.md +++ b/client-sdks/platform/typescript/docs/models/operations/podcpuunion3.md @@ -17,4 +17,3 @@ const value: operations.CpuPod3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/podmemoryunion1.md b/client-sdks/platform/typescript/docs/models/operations/podmemoryunion1.md index 4691cb843..4848305e7 100644 --- a/client-sdks/platform/typescript/docs/models/operations/podmemoryunion1.md +++ b/client-sdks/platform/typescript/docs/models/operations/podmemoryunion1.md @@ -17,4 +17,3 @@ const value: operations.MemoryPod1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/podmemoryunion2.md b/client-sdks/platform/typescript/docs/models/operations/podmemoryunion2.md index c36d619eb..550a735aa 100644 --- a/client-sdks/platform/typescript/docs/models/operations/podmemoryunion2.md +++ b/client-sdks/platform/typescript/docs/models/operations/podmemoryunion2.md @@ -17,4 +17,3 @@ const value: operations.MemoryPod2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/podmemoryunion3.md b/client-sdks/platform/typescript/docs/models/operations/podmemoryunion3.md index 3f058fca4..278ab3f2b 100644 --- a/client-sdks/platform/typescript/docs/models/operations/podmemoryunion3.md +++ b/client-sdks/platform/typescript/docs/models/operations/podmemoryunion3.md @@ -17,4 +17,3 @@ const value: operations.MemoryPod3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackawsunion.md b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackawsunion.md index 63958b124..1b36353a9 100644 --- a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackawsunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackawsunion.md @@ -16,4 +16,3 @@ const value: operations.PrepareDeploymentStackAws = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackazureunion.md b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackazureunion.md index d6d75b6bd..21eb63f56 100644 --- a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackazureunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackazureunion.md @@ -16,4 +16,3 @@ const value: operations.PrepareDeploymentStackAzure = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackcertificateunion1.md b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackcertificateunion1.md index 091443ccd..e6f93bca3 100644 --- a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackcertificateunion1.md +++ b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackcertificateunion1.md @@ -47,4 +47,3 @@ const value: operations.PrepareDeploymentStackCertificateNone1 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackcertificateunion2.md b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackcertificateunion2.md index cbb278c0a..c6de3eb69 100644 --- a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackcertificateunion2.md +++ b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackcertificateunion2.md @@ -47,4 +47,3 @@ const value: operations.PrepareDeploymentStackCertificateNone2 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackcloudunion.md b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackcloudunion.md index b47e39aed..f9aeacf51 100644 --- a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackcloudunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackcloudunion.md @@ -14,4 +14,3 @@ const value: operations.PrepareDeploymentStackCloud = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackclusterunion.md b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackclusterunion.md index f67181839..0347af9cf 100644 --- a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackclusterunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackclusterunion.md @@ -16,4 +16,3 @@ const value: operations.PrepareDeploymentStackCluster = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackdomainskubernetesunion.md b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackdomainskubernetesunion.md index 19f342b32..5d4db596d 100644 --- a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackdomainskubernetesunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackdomainskubernetesunion.md @@ -18,4 +18,3 @@ const value: operations.PrepareDeploymentStackDomainsKubernetes = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackdomainsunion.md b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackdomainsunion.md index 87d21d429..9ac1a54c8 100644 --- a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackdomainsunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackdomainsunion.md @@ -14,4 +14,3 @@ const value: operations.PrepareDeploymentStackDomains = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackexposureunion.md b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackexposureunion.md index fc9c7423c..c5a55212f 100644 --- a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackexposureunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackexposureunion.md @@ -50,4 +50,3 @@ const value: operations.PrepareDeploymentStackExposureCustom = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackgcpunion.md b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackgcpunion.md index 8594bcffc..fba223af7 100644 --- a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackgcpunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackgcpunion.md @@ -16,4 +16,3 @@ const value: operations.PrepareDeploymentStackGcp = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackkubernetesunion.md b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackkubernetesunion.md index 6f3570b73..ce92451b7 100644 --- a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackkubernetesunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackkubernetesunion.md @@ -14,4 +14,3 @@ const value: operations.PrepareDeploymentStackKubernetes = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstacknetworkunion.md b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstacknetworkunion.md index c0e45ad77..da9d501ae 100644 --- a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstacknetworkunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstacknetworkunion.md @@ -65,4 +65,3 @@ const value: operations.PrepareDeploymentStackNetworkByoVnetAzure = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackpoolsunion.md b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackpoolsunion.md index 4273d6aaa..08b2f59ae 100644 --- a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackpoolsunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackpoolsunion.md @@ -21,4 +21,3 @@ const value: operations.PrepareDeploymentStackPoolsAutoscale = { max: 830349, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackproviderunion1.md b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackproviderunion1.md index ad20da9e8..10bb4d7eb 100644 --- a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackproviderunion1.md +++ b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackproviderunion1.md @@ -37,4 +37,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackproviderunion2.md b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackproviderunion2.md index 2e06820e6..086bd0f60 100644 --- a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackproviderunion2.md +++ b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackproviderunion2.md @@ -37,4 +37,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackproviderunion3.md b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackproviderunion3.md index d1d4bba4b..7aabd9500 100644 --- a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackproviderunion3.md +++ b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackproviderunion3.md @@ -37,4 +37,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackproviderunion4.md b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackproviderunion4.md index 1d524ddfc..4baf58190 100644 --- a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackproviderunion4.md +++ b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackproviderunion4.md @@ -37,4 +37,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackpublicendpointtargetunion.md b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackpublicendpointtargetunion.md index 3e2bd84f4..4fc524f25 100644 --- a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackpublicendpointtargetunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackpublicendpointtargetunion.md @@ -27,4 +27,3 @@ const value: operations.PrepareDeploymentStackPublicEndpointTargetLoadBalancer = ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackrouteunion1.md b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackrouteunion1.md index 1f6da35b9..868794a21 100644 --- a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackrouteunion1.md +++ b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackrouteunion1.md @@ -23,4 +23,3 @@ const value: operations.PrepareDeploymentStackRouteGateway1 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackrouteunion2.md b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackrouteunion2.md index 9d369dbf5..8100ab621 100644 --- a/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackrouteunion2.md +++ b/client-sdks/platform/typescript/docs/models/operations/preparedeploymentstackrouteunion2.md @@ -23,4 +23,3 @@ const value: operations.PrepareDeploymentStackRouteGateway2 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/processcpuunion.md b/client-sdks/platform/typescript/docs/models/operations/processcpuunion.md index 32392f9d4..725241193 100644 --- a/client-sdks/platform/typescript/docs/models/operations/processcpuunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/processcpuunion.md @@ -17,4 +17,3 @@ const value: operations.ProcessCpu = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/processmemoryunion.md b/client-sdks/platform/typescript/docs/models/operations/processmemoryunion.md index 6d470dfaf..547143700 100644 --- a/client-sdks/platform/typescript/docs/models/operations/processmemoryunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/processmemoryunion.md @@ -17,4 +17,3 @@ const value: operations.ProcessMemory = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/processunion.md b/client-sdks/platform/typescript/docs/models/operations/processunion.md index 63db62876..24f3af13a 100644 --- a/client-sdks/platform/typescript/docs/models/operations/processunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/processunion.md @@ -19,4 +19,3 @@ const value: operations.Process = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/promotereleaserequest.md b/client-sdks/platform/typescript/docs/models/operations/promotereleaserequest.md new file mode 100644 index 000000000..04459f366 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/promotereleaserequest.md @@ -0,0 +1,22 @@ +# PromoteReleaseRequest + +## Example Usage + +```typescript +import { PromoteReleaseRequest } from "@alienplatform/platform-api/models/operations"; + +let value: PromoteReleaseRequest = { + name: "", + workspace: "my-workspace", + project: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `name` | *string* | :heavy_check_mark: | N/A | | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | +| `project` | *string* | :heavy_check_mark: | Filter by project ID or name. | | +| `requestBody` | [operations.PromoteReleaseRequestBody](../../models/operations/promotereleaserequestbody.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/promotereleaserequestbody.md b/client-sdks/platform/typescript/docs/models/operations/promotereleaserequestbody.md new file mode 100644 index 000000000..dbbcfd988 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/promotereleaserequestbody.md @@ -0,0 +1,19 @@ +# PromoteReleaseRequestBody + +## Example Usage + +```typescript +import { PromoteReleaseRequestBody } from "@alienplatform/platform-api/models/operations"; + +let value: PromoteReleaseRequestBody = { + releaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", + expectedReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | ---------------------------------- | +| `releaseId` | *string* | :heavy_check_mark: | Unique identifier for the release. | rel_WbhQgksrawSKIpEN0NAssHX9 | +| `expectedReleaseId` | *string* | :heavy_minus_sign: | Unique identifier for the release. | rel_WbhQgksrawSKIpEN0NAssHX9 | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/reason66.md b/client-sdks/platform/typescript/docs/models/operations/reason66.md new file mode 100644 index 000000000..90f54128a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/reason66.md @@ -0,0 +1,15 @@ +# Reason66 + +## Example Usage + +```typescript +import { Reason66 } from "@alienplatform/platform-api/models/operations"; + +let value: Reason66 = "timed-out"; +``` + +## Values + +```typescript +"forbidden" | "not-installed" | "api-unavailable" | "collection-failed" | "timed-out" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/reason67.md b/client-sdks/platform/typescript/docs/models/operations/reason67.md new file mode 100644 index 000000000..41f49242d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/reason67.md @@ -0,0 +1,15 @@ +# Reason67 + +## Example Usage + +```typescript +import { Reason67 } from "@alienplatform/platform-api/models/operations"; + +let value: Reason67 = "collection-failed"; +``` + +## Values + +```typescript +"forbidden" | "not-installed" | "api-unavailable" | "collection-failed" | "timed-out" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/reason68.md b/client-sdks/platform/typescript/docs/models/operations/reason68.md new file mode 100644 index 000000000..7314f6f03 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/reason68.md @@ -0,0 +1,15 @@ +# Reason68 + +## Example Usage + +```typescript +import { Reason68 } from "@alienplatform/platform-api/models/operations"; + +let value: Reason68 = "timed-out"; +``` + +## Values + +```typescript +"forbidden" | "not-installed" | "api-unavailable" | "collection-failed" | "timed-out" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/reason69.md b/client-sdks/platform/typescript/docs/models/operations/reason69.md new file mode 100644 index 000000000..358c4602c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/reason69.md @@ -0,0 +1,15 @@ +# Reason69 + +## Example Usage + +```typescript +import { Reason69 } from "@alienplatform/platform-api/models/operations"; + +let value: Reason69 = "collection-failed"; +``` + +## Values + +```typescript +"forbidden" | "not-installed" | "api-unavailable" | "collection-failed" | "timed-out" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/recommendationunion1.md b/client-sdks/platform/typescript/docs/models/operations/recommendationunion1.md index 72892543f..52a343b8e 100644 --- a/client-sdks/platform/typescript/docs/models/operations/recommendationunion1.md +++ b/client-sdks/platform/typescript/docs/models/operations/recommendationunion1.md @@ -16,4 +16,3 @@ const value: operations.Recommendation1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/recommendationunion2.md b/client-sdks/platform/typescript/docs/models/operations/recommendationunion2.md index 80650fc83..8de035272 100644 --- a/client-sdks/platform/typescript/docs/models/operations/recommendationunion2.md +++ b/client-sdks/platform/typescript/docs/models/operations/recommendationunion2.md @@ -16,4 +16,3 @@ const value: operations.Recommendation2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/recommendationunion3.md b/client-sdks/platform/typescript/docs/models/operations/recommendationunion3.md index 342d0f84c..ea5bc283d 100644 --- a/client-sdks/platform/typescript/docs/models/operations/recommendationunion3.md +++ b/client-sdks/platform/typescript/docs/models/operations/recommendationunion3.md @@ -16,4 +16,3 @@ const value: operations.Recommendation3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/recommendationunion4.md b/client-sdks/platform/typescript/docs/models/operations/recommendationunion4.md index e9e51d6f7..0ba29f142 100644 --- a/client-sdks/platform/typescript/docs/models/operations/recommendationunion4.md +++ b/client-sdks/platform/typescript/docs/models/operations/recommendationunion4.md @@ -16,4 +16,3 @@ const value: operations.Recommendation4 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/replicaunitcpuunion.md b/client-sdks/platform/typescript/docs/models/operations/replicaunitcpuunion.md index d684cec84..506477deb 100644 --- a/client-sdks/platform/typescript/docs/models/operations/replicaunitcpuunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/replicaunitcpuunion.md @@ -17,4 +17,3 @@ const value: operations.CpuReplicaUnit = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/replicaunitmemoryunion.md b/client-sdks/platform/typescript/docs/models/operations/replicaunitmemoryunion.md index 889bfb3a2..f07dce01a 100644 --- a/client-sdks/platform/typescript/docs/models/operations/replicaunitmemoryunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/replicaunitmemoryunion.md @@ -17,4 +17,3 @@ const value: operations.MemoryReplicaUnit = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/resendworkspaceinvitationrequest.md b/client-sdks/platform/typescript/docs/models/operations/resendworkspaceinvitationrequest.md new file mode 100644 index 000000000..51b06f6a7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/resendworkspaceinvitationrequest.md @@ -0,0 +1,21 @@ +# ResendWorkspaceInvitationRequest + +## Example Usage + +```typescript +import { ResendWorkspaceInvitationRequest } from "@alienplatform/platform-api/models/operations"; + +let value: ResendWorkspaceInvitationRequest = { + id: "ws_It13CUaGEhLLAB87simX0", + invitationId: "", + workspace: "my-workspace", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the workspace. | ws_It13CUaGEhLLAB87simX0 | +| `invitationId` | *string* | :heavy_check_mark: | N/A | | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/resource.md b/client-sdks/platform/typescript/docs/models/operations/resource.md index 547337f0d..c20ee807c 100644 --- a/client-sdks/platform/typescript/docs/models/operations/resource.md +++ b/client-sdks/platform/typescript/docs/models/operations/resource.md @@ -60,4 +60,3 @@ const value: operations.ResourceObserved = { lastObservedAt: new Date("2025-12-16T15:58:04.032Z"), }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/revokeworkspaceinvitationrequest.md b/client-sdks/platform/typescript/docs/models/operations/revokeworkspaceinvitationrequest.md new file mode 100644 index 000000000..e37def30b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/revokeworkspaceinvitationrequest.md @@ -0,0 +1,21 @@ +# RevokeWorkspaceInvitationRequest + +## Example Usage + +```typescript +import { RevokeWorkspaceInvitationRequest } from "@alienplatform/platform-api/models/operations"; + +let value: RevokeWorkspaceInvitationRequest = { + id: "ws_It13CUaGEhLLAB87simX0", + invitationId: "", + workspace: "my-workspace", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the workspace. | ws_It13CUaGEhLLAB87simX0 | +| `invitationId` | *string* | :heavy_check_mark: | N/A | | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/revokeworkspaceinvitelinkrequest.md b/client-sdks/platform/typescript/docs/models/operations/revokeworkspaceinvitelinkrequest.md new file mode 100644 index 000000000..43e333f7c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/revokeworkspaceinvitelinkrequest.md @@ -0,0 +1,19 @@ +# RevokeWorkspaceInviteLinkRequest + +## Example Usage + +```typescript +import { RevokeWorkspaceInviteLinkRequest } from "@alienplatform/platform-api/models/operations"; + +let value: RevokeWorkspaceInviteLinkRequest = { + id: "ws_It13CUaGEhLLAB87simX0", + workspace: "my-workspace", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the workspace. | ws_It13CUaGEhLLAB87simX0 | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/setdeploymentgroupexternalidrequest.md b/client-sdks/platform/typescript/docs/models/operations/setdeploymentgroupexternalidrequest.md new file mode 100644 index 000000000..84629f4bc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/setdeploymentgroupexternalidrequest.md @@ -0,0 +1,23 @@ +# SetDeploymentGroupExternalIdRequest + +## Example Usage + +```typescript +import { SetDeploymentGroupExternalIdRequest } from "@alienplatform/platform-api/models/operations"; + +let value: SetDeploymentGroupExternalIdRequest = { + id: "dg_r27ict8c7vcgsumpj90ackf7b", + workspace: "my-workspace", + setDeploymentGroupExternalIdRequest: { + externalId: "ext_example_01", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the deployment group. | dg_r27ict8c7vcgsumpj90ackf7b | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | +| `setDeploymentGroupExternalIdRequest` | [models.SetDeploymentGroupExternalIdRequest](../../models/setdeploymentgroupexternalidrequest.md) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/setdeploymentreleasechannelrequest.md b/client-sdks/platform/typescript/docs/models/operations/setdeploymentreleasechannelrequest.md new file mode 100644 index 000000000..85fc78713 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/setdeploymentreleasechannelrequest.md @@ -0,0 +1,20 @@ +# SetDeploymentReleaseChannelRequest + +## Example Usage + +```typescript +import { SetDeploymentReleaseChannelRequest } from "@alienplatform/platform-api/models/operations"; + +let value: SetDeploymentReleaseChannelRequest = { + id: "dep_0c29fq4a2yjb7kx3smwdgxlc", + workspace: "my-workspace", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the deployment. | dep_0c29fq4a2yjb7kx3smwdgxlc | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | +| `requestBody` | [operations.SetDeploymentReleaseChannelRequestBody](../../models/operations/setdeploymentreleasechannelrequestbody.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/setdeploymentreleasechannelrequestbody.md b/client-sdks/platform/typescript/docs/models/operations/setdeploymentreleasechannelrequestbody.md new file mode 100644 index 000000000..bcb932c3f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/setdeploymentreleasechannelrequestbody.md @@ -0,0 +1,17 @@ +# SetDeploymentReleaseChannelRequestBody + +## Example Usage + +```typescript +import { SetDeploymentReleaseChannelRequestBody } from "@alienplatform/platform-api/models/operations"; + +let value: SetDeploymentReleaseChannelRequestBody = { + channel: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `channel` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/slackintegrationchannelsrequest.md b/client-sdks/platform/typescript/docs/models/operations/slackintegrationchannelsrequest.md new file mode 100644 index 000000000..cbd325da0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/slackintegrationchannelsrequest.md @@ -0,0 +1,17 @@ +# SlackIntegrationChannelsRequest + +## Example Usage + +```typescript +import { SlackIntegrationChannelsRequest } from "@alienplatform/platform-api/models/operations"; + +let value: SlackIntegrationChannelsRequest = { + workspace: "my-workspace", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/slackintegrationinstallurlrequest.md b/client-sdks/platform/typescript/docs/models/operations/slackintegrationinstallurlrequest.md new file mode 100644 index 000000000..7d7b85128 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/slackintegrationinstallurlrequest.md @@ -0,0 +1,17 @@ +# SlackIntegrationInstallUrlRequest + +## Example Usage + +```typescript +import { SlackIntegrationInstallUrlRequest } from "@alienplatform/platform-api/models/operations"; + +let value: SlackIntegrationInstallUrlRequest = { + workspace: "my-workspace", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/slackintegrationsetnotificationchannelrequest.md b/client-sdks/platform/typescript/docs/models/operations/slackintegrationsetnotificationchannelrequest.md new file mode 100644 index 000000000..2d2750fa4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/slackintegrationsetnotificationchannelrequest.md @@ -0,0 +1,18 @@ +# SlackIntegrationSetNotificationChannelRequest + +## Example Usage + +```typescript +import { SlackIntegrationSetNotificationChannelRequest } from "@alienplatform/platform-api/models/operations"; + +let value: SlackIntegrationSetNotificationChannelRequest = { + workspace: "my-workspace", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | +| `slackNotificationChannelRequest` | [models.SlackNotificationChannelRequest](../../models/slacknotificationchannelrequest.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/slackintegrationstatusrequest.md b/client-sdks/platform/typescript/docs/models/operations/slackintegrationstatusrequest.md new file mode 100644 index 000000000..e58c7a7aa --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/slackintegrationstatusrequest.md @@ -0,0 +1,17 @@ +# SlackIntegrationStatusRequest + +## Example Usage + +```typescript +import { SlackIntegrationStatusRequest } from "@alienplatform/platform-api/models/operations"; + +let value: SlackIntegrationStatusRequest = { + workspace: "my-workspace", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/slackintegrationuninstallrequest.md b/client-sdks/platform/typescript/docs/models/operations/slackintegrationuninstallrequest.md new file mode 100644 index 000000000..9937d4313 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/slackintegrationuninstallrequest.md @@ -0,0 +1,17 @@ +# SlackIntegrationUninstallRequest + +## Example Usage + +```typescript +import { SlackIntegrationUninstallRequest } from "@alienplatform/platform-api/models/operations"; + +let value: SlackIntegrationUninstallRequest = { + workspace: "my-workspace", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/sourceenum1.md b/client-sdks/platform/typescript/docs/models/operations/sourceenum1.md new file mode 100644 index 000000000..c86dd830c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/sourceenum1.md @@ -0,0 +1,18 @@ +# SourceEnum1 + +Provider control plane used to observe model availability without invoking +a model, spending customer quota, or accepting provider terms. + +## Example Usage + +```typescript +import { SourceEnum1 } from "@alienplatform/platform-api/models/operations"; + +let value: SourceEnum1 = "anthropic"; +``` + +## Values + +```typescript +"aws-bedrock" | "gcp-vertex" | "azure-foundry" | "anthropic" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/sourceenum2.md b/client-sdks/platform/typescript/docs/models/operations/sourceenum2.md new file mode 100644 index 000000000..6a635f4e7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/sourceenum2.md @@ -0,0 +1,18 @@ +# SourceEnum2 + +Provider control plane used to observe model availability without invoking +a model, spending customer quota, or accepting provider terms. + +## Example Usage + +```typescript +import { SourceEnum2 } from "@alienplatform/platform-api/models/operations"; + +let value: SourceEnum2 = "azure-foundry"; +``` + +## Values + +```typescript +"aws-bedrock" | "gcp-vertex" | "azure-foundry" | "anthropic" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/sourceenum3.md b/client-sdks/platform/typescript/docs/models/operations/sourceenum3.md new file mode 100644 index 000000000..9083e918e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/sourceenum3.md @@ -0,0 +1,18 @@ +# SourceEnum3 + +Provider control plane used to observe model availability without invoking +a model, spending customer quota, or accepting provider terms. + +## Example Usage + +```typescript +import { SourceEnum3 } from "@alienplatform/platform-api/models/operations"; + +let value: SourceEnum3 = "azure-foundry"; +``` + +## Values + +```typescript +"aws-bedrock" | "gcp-vertex" | "azure-foundry" | "anthropic" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/sourceenum4.md b/client-sdks/platform/typescript/docs/models/operations/sourceenum4.md new file mode 100644 index 000000000..77e5d1a17 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/sourceenum4.md @@ -0,0 +1,18 @@ +# SourceEnum4 + +Provider control plane used to observe model availability without invoking +a model, spending customer quota, or accepting provider terms. + +## Example Usage + +```typescript +import { SourceEnum4 } from "@alienplatform/platform-api/models/operations"; + +let value: SourceEnum4 = "aws-bedrock"; +``` + +## Values + +```typescript +"aws-bedrock" | "gcp-vertex" | "azure-foundry" | "anthropic" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/sourceevent1.md b/client-sdks/platform/typescript/docs/models/operations/sourceevent1.md new file mode 100644 index 000000000..26f621d29 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/sourceevent1.md @@ -0,0 +1,16 @@ +# SourceEvent1 + +## Example Usage + +```typescript +import { SourceEvent1 } from "@alienplatform/platform-api/models/operations"; + +let value: SourceEvent1 = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `component` | *string* | :heavy_minus_sign: | N/A | +| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/sourceevent10.md b/client-sdks/platform/typescript/docs/models/operations/sourceevent10.md new file mode 100644 index 000000000..6e8e7e762 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/sourceevent10.md @@ -0,0 +1,16 @@ +# SourceEvent10 + +## Example Usage + +```typescript +import { SourceEvent10 } from "@alienplatform/platform-api/models/operations"; + +let value: SourceEvent10 = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `component` | *string* | :heavy_minus_sign: | N/A | +| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/sourceevent2.md b/client-sdks/platform/typescript/docs/models/operations/sourceevent2.md new file mode 100644 index 000000000..60d255d9f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/sourceevent2.md @@ -0,0 +1,16 @@ +# SourceEvent2 + +## Example Usage + +```typescript +import { SourceEvent2 } from "@alienplatform/platform-api/models/operations"; + +let value: SourceEvent2 = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `component` | *string* | :heavy_minus_sign: | N/A | +| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/sourceevent3.md b/client-sdks/platform/typescript/docs/models/operations/sourceevent3.md new file mode 100644 index 000000000..32c1cb98e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/sourceevent3.md @@ -0,0 +1,16 @@ +# SourceEvent3 + +## Example Usage + +```typescript +import { SourceEvent3 } from "@alienplatform/platform-api/models/operations"; + +let value: SourceEvent3 = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `component` | *string* | :heavy_minus_sign: | N/A | +| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/sourceevent4.md b/client-sdks/platform/typescript/docs/models/operations/sourceevent4.md new file mode 100644 index 000000000..174e3e92e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/sourceevent4.md @@ -0,0 +1,16 @@ +# SourceEvent4 + +## Example Usage + +```typescript +import { SourceEvent4 } from "@alienplatform/platform-api/models/operations"; + +let value: SourceEvent4 = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `component` | *string* | :heavy_minus_sign: | N/A | +| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/sourceevent5.md b/client-sdks/platform/typescript/docs/models/operations/sourceevent5.md new file mode 100644 index 000000000..16ae707f7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/sourceevent5.md @@ -0,0 +1,16 @@ +# SourceEvent5 + +## Example Usage + +```typescript +import { SourceEvent5 } from "@alienplatform/platform-api/models/operations"; + +let value: SourceEvent5 = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `component` | *string* | :heavy_minus_sign: | N/A | +| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/sourceevent6.md b/client-sdks/platform/typescript/docs/models/operations/sourceevent6.md new file mode 100644 index 000000000..35d4b167d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/sourceevent6.md @@ -0,0 +1,16 @@ +# SourceEvent6 + +## Example Usage + +```typescript +import { SourceEvent6 } from "@alienplatform/platform-api/models/operations"; + +let value: SourceEvent6 = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `component` | *string* | :heavy_minus_sign: | N/A | +| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/sourceevent7.md b/client-sdks/platform/typescript/docs/models/operations/sourceevent7.md new file mode 100644 index 000000000..2059abd22 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/sourceevent7.md @@ -0,0 +1,16 @@ +# SourceEvent7 + +## Example Usage + +```typescript +import { SourceEvent7 } from "@alienplatform/platform-api/models/operations"; + +let value: SourceEvent7 = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `component` | *string* | :heavy_minus_sign: | N/A | +| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/sourceevent8.md b/client-sdks/platform/typescript/docs/models/operations/sourceevent8.md new file mode 100644 index 000000000..637722149 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/sourceevent8.md @@ -0,0 +1,16 @@ +# SourceEvent8 + +## Example Usage + +```typescript +import { SourceEvent8 } from "@alienplatform/platform-api/models/operations"; + +let value: SourceEvent8 = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `component` | *string* | :heavy_minus_sign: | N/A | +| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/sourceevent9.md b/client-sdks/platform/typescript/docs/models/operations/sourceevent9.md new file mode 100644 index 000000000..bafb01d84 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/sourceevent9.md @@ -0,0 +1,16 @@ +# SourceEvent9 + +## Example Usage + +```typescript +import { SourceEvent9 } from "@alienplatform/platform-api/models/operations"; + +let value: SourceEvent9 = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `component` | *string* | :heavy_minus_sign: | N/A | +| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/sourceunion1.md b/client-sdks/platform/typescript/docs/models/operations/sourceunion1.md index 3b4bb911c..2344c2540 100644 --- a/client-sdks/platform/typescript/docs/models/operations/sourceunion1.md +++ b/client-sdks/platform/typescript/docs/models/operations/sourceunion1.md @@ -3,10 +3,10 @@ ## Supported Types -### `operations.GetResourceDeploymentDetailSource1` +### `operations.SourceEvent1` ```typescript -const value: operations.GetResourceDeploymentDetailSource1 = {}; +const value: operations.SourceEvent1 = {}; ``` ### `any` @@ -14,4 +14,3 @@ const value: operations.GetResourceDeploymentDetailSource1 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/sourceunion10.md b/client-sdks/platform/typescript/docs/models/operations/sourceunion10.md index 0a0733f8c..e50e23784 100644 --- a/client-sdks/platform/typescript/docs/models/operations/sourceunion10.md +++ b/client-sdks/platform/typescript/docs/models/operations/sourceunion10.md @@ -3,10 +3,10 @@ ## Supported Types -### `operations.GetResourceDeploymentDetailSource10` +### `operations.SourceEvent10` ```typescript -const value: operations.GetResourceDeploymentDetailSource10 = {}; +const value: operations.SourceEvent10 = {}; ``` ### `any` @@ -14,4 +14,3 @@ const value: operations.GetResourceDeploymentDetailSource10 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/sourceunion2.md b/client-sdks/platform/typescript/docs/models/operations/sourceunion2.md index 41a67d8b9..81ade3eb5 100644 --- a/client-sdks/platform/typescript/docs/models/operations/sourceunion2.md +++ b/client-sdks/platform/typescript/docs/models/operations/sourceunion2.md @@ -3,10 +3,10 @@ ## Supported Types -### `operations.GetResourceDeploymentDetailSource2` +### `operations.SourceEvent2` ```typescript -const value: operations.GetResourceDeploymentDetailSource2 = {}; +const value: operations.SourceEvent2 = {}; ``` ### `any` @@ -14,4 +14,3 @@ const value: operations.GetResourceDeploymentDetailSource2 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/sourceunion3.md b/client-sdks/platform/typescript/docs/models/operations/sourceunion3.md index af83bae07..a7e8cbbda 100644 --- a/client-sdks/platform/typescript/docs/models/operations/sourceunion3.md +++ b/client-sdks/platform/typescript/docs/models/operations/sourceunion3.md @@ -3,10 +3,10 @@ ## Supported Types -### `operations.GetResourceDeploymentDetailSource3` +### `operations.SourceEvent3` ```typescript -const value: operations.GetResourceDeploymentDetailSource3 = {}; +const value: operations.SourceEvent3 = {}; ``` ### `any` @@ -14,4 +14,3 @@ const value: operations.GetResourceDeploymentDetailSource3 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/sourceunion4.md b/client-sdks/platform/typescript/docs/models/operations/sourceunion4.md index 9ab73c065..74c843d7c 100644 --- a/client-sdks/platform/typescript/docs/models/operations/sourceunion4.md +++ b/client-sdks/platform/typescript/docs/models/operations/sourceunion4.md @@ -3,10 +3,10 @@ ## Supported Types -### `operations.GetResourceDeploymentDetailSource4` +### `operations.SourceEvent4` ```typescript -const value: operations.GetResourceDeploymentDetailSource4 = {}; +const value: operations.SourceEvent4 = {}; ``` ### `any` @@ -14,4 +14,3 @@ const value: operations.GetResourceDeploymentDetailSource4 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/sourceunion5.md b/client-sdks/platform/typescript/docs/models/operations/sourceunion5.md index c67edd106..6f1c72786 100644 --- a/client-sdks/platform/typescript/docs/models/operations/sourceunion5.md +++ b/client-sdks/platform/typescript/docs/models/operations/sourceunion5.md @@ -3,10 +3,10 @@ ## Supported Types -### `operations.GetResourceDeploymentDetailSource5` +### `operations.SourceEvent5` ```typescript -const value: operations.GetResourceDeploymentDetailSource5 = {}; +const value: operations.SourceEvent5 = {}; ``` ### `any` @@ -14,4 +14,3 @@ const value: operations.GetResourceDeploymentDetailSource5 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/sourceunion6.md b/client-sdks/platform/typescript/docs/models/operations/sourceunion6.md index a1a94ebcd..78c2b196a 100644 --- a/client-sdks/platform/typescript/docs/models/operations/sourceunion6.md +++ b/client-sdks/platform/typescript/docs/models/operations/sourceunion6.md @@ -3,10 +3,10 @@ ## Supported Types -### `operations.GetResourceDeploymentDetailSource6` +### `operations.SourceEvent6` ```typescript -const value: operations.GetResourceDeploymentDetailSource6 = {}; +const value: operations.SourceEvent6 = {}; ``` ### `any` @@ -14,4 +14,3 @@ const value: operations.GetResourceDeploymentDetailSource6 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/sourceunion7.md b/client-sdks/platform/typescript/docs/models/operations/sourceunion7.md index 055d78a53..815b4c6b7 100644 --- a/client-sdks/platform/typescript/docs/models/operations/sourceunion7.md +++ b/client-sdks/platform/typescript/docs/models/operations/sourceunion7.md @@ -3,10 +3,10 @@ ## Supported Types -### `operations.GetResourceDeploymentDetailSource7` +### `operations.SourceEvent7` ```typescript -const value: operations.GetResourceDeploymentDetailSource7 = {}; +const value: operations.SourceEvent7 = {}; ``` ### `any` @@ -14,4 +14,3 @@ const value: operations.GetResourceDeploymentDetailSource7 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/sourceunion8.md b/client-sdks/platform/typescript/docs/models/operations/sourceunion8.md index 4e35a57c3..cb12b6e89 100644 --- a/client-sdks/platform/typescript/docs/models/operations/sourceunion8.md +++ b/client-sdks/platform/typescript/docs/models/operations/sourceunion8.md @@ -3,10 +3,10 @@ ## Supported Types -### `operations.GetResourceDeploymentDetailSource8` +### `operations.SourceEvent8` ```typescript -const value: operations.GetResourceDeploymentDetailSource8 = {}; +const value: operations.SourceEvent8 = {}; ``` ### `any` @@ -14,4 +14,3 @@ const value: operations.GetResourceDeploymentDetailSource8 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/sourceunion9.md b/client-sdks/platform/typescript/docs/models/operations/sourceunion9.md index 40daacc40..b95467be6 100644 --- a/client-sdks/platform/typescript/docs/models/operations/sourceunion9.md +++ b/client-sdks/platform/typescript/docs/models/operations/sourceunion9.md @@ -3,10 +3,10 @@ ## Supported Types -### `operations.GetResourceDeploymentDetailSource9` +### `operations.SourceEvent9` ```typescript -const value: operations.GetResourceDeploymentDetailSource9 = {}; +const value: operations.SourceEvent9 = {}; ``` ### `any` @@ -14,4 +14,3 @@ const value: operations.GetResourceDeploymentDetailSource9 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/stopagentsessionrequest.md b/client-sdks/platform/typescript/docs/models/operations/stopagentsessionrequest.md new file mode 100644 index 000000000..6aad1ca54 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/stopagentsessionrequest.md @@ -0,0 +1,19 @@ +# StopAgentSessionRequest + +## Example Usage + +```typescript +import { StopAgentSessionRequest } from "@alienplatform/platform-api/models/operations"; + +let value: StopAgentSessionRequest = { + id: "", + workspace: "my-workspace", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | N/A | | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/subjectunion1.md b/client-sdks/platform/typescript/docs/models/operations/subjectunion1.md index 119466bd4..faa8e1672 100644 --- a/client-sdks/platform/typescript/docs/models/operations/subjectunion1.md +++ b/client-sdks/platform/typescript/docs/models/operations/subjectunion1.md @@ -16,4 +16,3 @@ const value: operations.Subject1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/subjectunion2.md b/client-sdks/platform/typescript/docs/models/operations/subjectunion2.md index a4cd10483..0754d9e24 100644 --- a/client-sdks/platform/typescript/docs/models/operations/subjectunion2.md +++ b/client-sdks/platform/typescript/docs/models/operations/subjectunion2.md @@ -16,4 +16,3 @@ const value: operations.Subject2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/subjectunion3.md b/client-sdks/platform/typescript/docs/models/operations/subjectunion3.md index 1e045a123..9ac26d110 100644 --- a/client-sdks/platform/typescript/docs/models/operations/subjectunion3.md +++ b/client-sdks/platform/typescript/docs/models/operations/subjectunion3.md @@ -16,4 +16,3 @@ const value: operations.Subject3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/syncrenewrequest.md b/client-sdks/platform/typescript/docs/models/operations/syncrenewrequest.md new file mode 100644 index 000000000..ca1a3139b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/syncrenewrequest.md @@ -0,0 +1,25 @@ +# SyncRenewRequest + +## Example Usage + +```typescript +import { SyncRenewRequest } from "@alienplatform/platform-api/models/operations"; + +let value: SyncRenewRequest = { + workspace: "my-workspace", + syncRenewRequest: { + deploymentId: "dep_0c29fq4a2yjb7kx3smwdgxlc", + deploymentIds: [ + "dep_0c29fq4a2yjb7kx3smwdgxlc", + ], + session: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | +| `syncRenewRequest` | [models.SyncRenewRequest](../../models/syncrenewrequest.md) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/syncrenewresponse.md b/client-sdks/platform/typescript/docs/models/operations/syncrenewresponse.md new file mode 100644 index 000000000..eb07c05e0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/syncrenewresponse.md @@ -0,0 +1,27 @@ +# SyncRenewResponse + +Renewal processed. Inspect `leases` for per-deployment outcomes; a lost lease is reported there rather than failing the whole batch. + +## Example Usage + +```typescript +import { SyncRenewResponse } from "@alienplatform/platform-api/models/operations"; + +let value: SyncRenewResponse = { + success: false, + leases: [ + { + deploymentId: "dep_0c29fq4a2yjb7kx3smwdgxlc", + renewed: false, + leaseExpiresAt: new Date("2025-11-17T01:11:25.058Z"), + }, + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | +| `success` | *boolean* | :heavy_check_mark: | True when every requested deployment was renewed. | +| `leases` | [operations.Lease](../../models/operations/lease.md)[] | :heavy_check_mark: | Per-deployment renewal outcome. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/updateworkspacesettingsrequest.md b/client-sdks/platform/typescript/docs/models/operations/updateworkspacesettingsrequest.md new file mode 100644 index 000000000..c47a9394d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/operations/updateworkspacesettingsrequest.md @@ -0,0 +1,20 @@ +# UpdateWorkspaceSettingsRequest + +## Example Usage + +```typescript +import { UpdateWorkspaceSettingsRequest } from "@alienplatform/platform-api/models/operations"; + +let value: UpdateWorkspaceSettingsRequest = { + id: "ws_It13CUaGEhLLAB87simX0", + workspace: "my-workspace", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the workspace. | ws_It13CUaGEhLLAB87simX0 | +| `workspace` | *string* | :heavy_minus_sign: | Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. | my-workspace | +| `updateWorkspaceSettingsRequest` | [models.UpdateWorkspaceSettingsRequest](../../models/updateworkspacesettingsrequest.md) | :heavy_minus_sign: | N/A | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/operations/usagecpuunion.md b/client-sdks/platform/typescript/docs/models/operations/usagecpuunion.md index 56bb9390b..cded99148 100644 --- a/client-sdks/platform/typescript/docs/models/operations/usagecpuunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/usagecpuunion.md @@ -17,4 +17,3 @@ const value: operations.UsageCpu = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/usagememoryunion.md b/client-sdks/platform/typescript/docs/models/operations/usagememoryunion.md index 26e9a1c80..cff620a2e 100644 --- a/client-sdks/platform/typescript/docs/models/operations/usagememoryunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/usagememoryunion.md @@ -17,4 +17,3 @@ const value: operations.UsageMemory = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/usageunion.md b/client-sdks/platform/typescript/docs/models/operations/usageunion.md index fda10b738..f3f1de028 100644 --- a/client-sdks/platform/typescript/docs/models/operations/usageunion.md +++ b/client-sdks/platform/typescript/docs/models/operations/usageunion.md @@ -14,4 +14,3 @@ const value: operations.Usage = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/utilizationunion1.md b/client-sdks/platform/typescript/docs/models/operations/utilizationunion1.md index d2f8a54c1..d57f35085 100644 --- a/client-sdks/platform/typescript/docs/models/operations/utilizationunion1.md +++ b/client-sdks/platform/typescript/docs/models/operations/utilizationunion1.md @@ -17,4 +17,3 @@ const value: operations.Utilization1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/utilizationunion2.md b/client-sdks/platform/typescript/docs/models/operations/utilizationunion2.md index 78a86c4c1..1af033f71 100644 --- a/client-sdks/platform/typescript/docs/models/operations/utilizationunion2.md +++ b/client-sdks/platform/typescript/docs/models/operations/utilizationunion2.md @@ -17,4 +17,3 @@ const value: operations.Utilization2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/utilizationunion3.md b/client-sdks/platform/typescript/docs/models/operations/utilizationunion3.md index c0189a8f7..7ac4c04ec 100644 --- a/client-sdks/platform/typescript/docs/models/operations/utilizationunion3.md +++ b/client-sdks/platform/typescript/docs/models/operations/utilizationunion3.md @@ -17,4 +17,3 @@ const value: operations.Utilization3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/utilizationunion4.md b/client-sdks/platform/typescript/docs/models/operations/utilizationunion4.md index dafa5f34a..2d75354d6 100644 --- a/client-sdks/platform/typescript/docs/models/operations/utilizationunion4.md +++ b/client-sdks/platform/typescript/docs/models/operations/utilizationunion4.md @@ -17,4 +17,3 @@ const value: operations.Utilization4 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/workloadunion1.md b/client-sdks/platform/typescript/docs/models/operations/workloadunion1.md index af28c7f69..381a0f377 100644 --- a/client-sdks/platform/typescript/docs/models/operations/workloadunion1.md +++ b/client-sdks/platform/typescript/docs/models/operations/workloadunion1.md @@ -21,4 +21,3 @@ const value: operations.Workload1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/workloadunion2.md b/client-sdks/platform/typescript/docs/models/operations/workloadunion2.md index 81242c1a8..1f9891fe6 100644 --- a/client-sdks/platform/typescript/docs/models/operations/workloadunion2.md +++ b/client-sdks/platform/typescript/docs/models/operations/workloadunion2.md @@ -21,4 +21,3 @@ const value: operations.Workload2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/operations/workloadunion3.md b/client-sdks/platform/typescript/docs/models/operations/workloadunion3.md index bcd382ebf..548b2306c 100644 --- a/client-sdks/platform/typescript/docs/models/operations/workloadunion3.md +++ b/client-sdks/platform/typescript/docs/models/operations/workloadunion3.md @@ -21,4 +21,3 @@ const value: operations.Workload3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/outcome.md b/client-sdks/platform/typescript/docs/models/outcome.md new file mode 100644 index 000000000..b8695f435 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/outcome.md @@ -0,0 +1,15 @@ +# Outcome + +## Example Usage + +```typescript +import { Outcome } from "@alienplatform/platform-api/models"; + +let value: Outcome = "joined"; +``` + +## Values + +```typescript +"joined" | "already-member" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/overridereleaseinfoconditionunion.md b/client-sdks/platform/typescript/docs/models/overridereleaseinfoconditionunion.md index 0e0dcbb2d..f04d5bcae 100644 --- a/client-sdks/platform/typescript/docs/models/overridereleaseinfoconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/overridereleaseinfoconditionunion.md @@ -17,4 +17,3 @@ const value: models.OverrideConditionReleaseInfo = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/overridereleaseinforesourceconditionunion.md b/client-sdks/platform/typescript/docs/models/overridereleaseinforesourceconditionunion.md index a27620cd9..fe2ce931a 100644 --- a/client-sdks/platform/typescript/docs/models/overridereleaseinforesourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/overridereleaseinforesourceconditionunion.md @@ -17,4 +17,3 @@ const value: models.OverrideConditionReleaseInfoResource = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/packageoutputsunion.md b/client-sdks/platform/typescript/docs/models/packageoutputsunion.md index e91e9e131..3cbdb87a5 100644 --- a/client-sdks/platform/typescript/docs/models/packageoutputsunion.md +++ b/client-sdks/platform/typescript/docs/models/packageoutputsunion.md @@ -71,4 +71,3 @@ const value: models.OutputsTerraform = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/pendingapproval.md b/client-sdks/platform/typescript/docs/models/pendingapproval.md new file mode 100644 index 000000000..2011b6630 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/pendingapproval.md @@ -0,0 +1,22 @@ +# PendingApproval + +## Example Usage + +```typescript +import { PendingApproval } from "@alienplatform/platform-api/models"; + +let value: PendingApproval = { + approvalId: "", + toolCallId: "", + toolName: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `approvalId` | *string* | :heavy_check_mark: | N/A | +| `toolCallId` | *string* | :heavy_check_mark: | N/A | +| `toolName` | *string* | :heavy_check_mark: | N/A | +| `input` | *any* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/pendingpreparedstackextendconditionstateresource.md b/client-sdks/platform/typescript/docs/models/pendingpreparedstackextendconditionstateresource.md new file mode 100644 index 000000000..10e029922 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/pendingpreparedstackextendconditionstateresource.md @@ -0,0 +1,21 @@ +# PendingPreparedStackExtendConditionStateResource + +GCP IAM condition + +## Example Usage + +```typescript +import { PendingPreparedStackExtendConditionStateResource } from "@alienplatform/platform-api/models"; + +let value: PendingPreparedStackExtendConditionStateResource = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/pendingpreparedstackextendconditionstatestack.md b/client-sdks/platform/typescript/docs/models/pendingpreparedstackextendconditionstatestack.md new file mode 100644 index 000000000..630ff0986 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/pendingpreparedstackextendconditionstatestack.md @@ -0,0 +1,21 @@ +# PendingPreparedStackExtendConditionStateStack + +GCP IAM condition + +## Example Usage + +```typescript +import { PendingPreparedStackExtendConditionStateStack } from "@alienplatform/platform-api/models"; + +let value: PendingPreparedStackExtendConditionStateStack = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/pendingpreparedstackextendstateawresource.md b/client-sdks/platform/typescript/docs/models/pendingpreparedstackextendstateawresource.md new file mode 100644 index 000000000..2a12f6445 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/pendingpreparedstackextendstateawresource.md @@ -0,0 +1,23 @@ +# PendingPreparedStackExtendStateAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { PendingPreparedStackExtendStateAwResource } from "@alienplatform/platform-api/models"; + +let value: PendingPreparedStackExtendStateAwResource = { + resources: [ + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/pendingpreparedstackextendstateazureresource.md b/client-sdks/platform/typescript/docs/models/pendingpreparedstackextendstateazureresource.md new file mode 100644 index 000000000..3289ff5df --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/pendingpreparedstackextendstateazureresource.md @@ -0,0 +1,19 @@ +# PendingPreparedStackExtendStateAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { PendingPreparedStackExtendStateAzureResource } from "@alienplatform/platform-api/models"; + +let value: PendingPreparedStackExtendStateAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/pendingpreparedstackextendstategcpresource.md b/client-sdks/platform/typescript/docs/models/pendingpreparedstackextendstategcpresource.md new file mode 100644 index 000000000..8e86598b6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/pendingpreparedstackextendstategcpresource.md @@ -0,0 +1,20 @@ +# PendingPreparedStackExtendStateGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { PendingPreparedStackExtendStateGcpResource } from "@alienplatform/platform-api/models"; + +let value: PendingPreparedStackExtendStateGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `condition` | *models.PendingPreparedStackExtendStateResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/pendingpreparedstackextendstateresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/pendingpreparedstackextendstateresourceconditionunion.md new file mode 100644 index 000000000..3036d15cd --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/pendingpreparedstackextendstateresourceconditionunion.md @@ -0,0 +1,19 @@ +# PendingPreparedStackExtendStateResourceConditionUnion + + +## Supported Types + +### `models.PendingPreparedStackExtendConditionStateResource` + +```typescript +const value: models.PendingPreparedStackExtendConditionStateResource = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/pendingpreparedstackextendstatestackconditionunion.md b/client-sdks/platform/typescript/docs/models/pendingpreparedstackextendstatestackconditionunion.md new file mode 100644 index 000000000..0febe7f62 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/pendingpreparedstackextendstatestackconditionunion.md @@ -0,0 +1,19 @@ +# PendingPreparedStackExtendStateStackConditionUnion + + +## Supported Types + +### `models.PendingPreparedStackExtendConditionStateStack` + +```typescript +const value: models.PendingPreparedStackExtendConditionStateStack = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/pendingpreparedstackoverrideconditionstateresource.md b/client-sdks/platform/typescript/docs/models/pendingpreparedstackoverrideconditionstateresource.md new file mode 100644 index 000000000..073fba400 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/pendingpreparedstackoverrideconditionstateresource.md @@ -0,0 +1,21 @@ +# PendingPreparedStackOverrideConditionStateResource + +GCP IAM condition + +## Example Usage + +```typescript +import { PendingPreparedStackOverrideConditionStateResource } from "@alienplatform/platform-api/models"; + +let value: PendingPreparedStackOverrideConditionStateResource = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/pendingpreparedstackoverrideconditionstatestack.md b/client-sdks/platform/typescript/docs/models/pendingpreparedstackoverrideconditionstatestack.md new file mode 100644 index 000000000..955a7efd3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/pendingpreparedstackoverrideconditionstatestack.md @@ -0,0 +1,21 @@ +# PendingPreparedStackOverrideConditionStateStack + +GCP IAM condition + +## Example Usage + +```typescript +import { PendingPreparedStackOverrideConditionStateStack } from "@alienplatform/platform-api/models"; + +let value: PendingPreparedStackOverrideConditionStateStack = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/pendingpreparedstackoverridestateawresource.md b/client-sdks/platform/typescript/docs/models/pendingpreparedstackoverridestateawresource.md new file mode 100644 index 000000000..64bc61274 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/pendingpreparedstackoverridestateawresource.md @@ -0,0 +1,22 @@ +# PendingPreparedStackOverrideStateAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { PendingPreparedStackOverrideStateAwResource } from "@alienplatform/platform-api/models"; + +let value: PendingPreparedStackOverrideStateAwResource = { + resources: [ + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/pendingpreparedstackoverridestateazureresource.md b/client-sdks/platform/typescript/docs/models/pendingpreparedstackoverridestateazureresource.md new file mode 100644 index 000000000..21e6180a6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/pendingpreparedstackoverridestateazureresource.md @@ -0,0 +1,19 @@ +# PendingPreparedStackOverrideStateAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { PendingPreparedStackOverrideStateAzureResource } from "@alienplatform/platform-api/models"; + +let value: PendingPreparedStackOverrideStateAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/pendingpreparedstackoverridestategcpresource.md b/client-sdks/platform/typescript/docs/models/pendingpreparedstackoverridestategcpresource.md new file mode 100644 index 000000000..5fd820e16 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/pendingpreparedstackoverridestategcpresource.md @@ -0,0 +1,20 @@ +# PendingPreparedStackOverrideStateGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { PendingPreparedStackOverrideStateGcpResource } from "@alienplatform/platform-api/models"; + +let value: PendingPreparedStackOverrideStateGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | +| `condition` | *models.PendingPreparedStackOverrideStateResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/pendingpreparedstackoverridestateresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/pendingpreparedstackoverridestateresourceconditionunion.md new file mode 100644 index 000000000..c47490b89 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/pendingpreparedstackoverridestateresourceconditionunion.md @@ -0,0 +1,19 @@ +# PendingPreparedStackOverrideStateResourceConditionUnion + + +## Supported Types + +### `models.PendingPreparedStackOverrideConditionStateResource` + +```typescript +const value: models.PendingPreparedStackOverrideConditionStateResource = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/pendingpreparedstackoverridestatestackconditionunion.md b/client-sdks/platform/typescript/docs/models/pendingpreparedstackoverridestatestackconditionunion.md new file mode 100644 index 000000000..5db8b3596 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/pendingpreparedstackoverridestatestackconditionunion.md @@ -0,0 +1,19 @@ +# PendingPreparedStackOverrideStateStackConditionUnion + + +## Supported Types + +### `models.PendingPreparedStackOverrideConditionStateStack` + +```typescript +const value: models.PendingPreparedStackOverrideConditionStateStack = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/pendingpreparedstackprofileconditionstateresource.md b/client-sdks/platform/typescript/docs/models/pendingpreparedstackprofileconditionstateresource.md new file mode 100644 index 000000000..9c2ab0d7a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/pendingpreparedstackprofileconditionstateresource.md @@ -0,0 +1,21 @@ +# PendingPreparedStackProfileConditionStateResource + +GCP IAM condition + +## Example Usage + +```typescript +import { PendingPreparedStackProfileConditionStateResource } from "@alienplatform/platform-api/models"; + +let value: PendingPreparedStackProfileConditionStateResource = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/pendingpreparedstackprofileconditionstatestack.md b/client-sdks/platform/typescript/docs/models/pendingpreparedstackprofileconditionstatestack.md new file mode 100644 index 000000000..3c1587ce3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/pendingpreparedstackprofileconditionstatestack.md @@ -0,0 +1,21 @@ +# PendingPreparedStackProfileConditionStateStack + +GCP IAM condition + +## Example Usage + +```typescript +import { PendingPreparedStackProfileConditionStateStack } from "@alienplatform/platform-api/models"; + +let value: PendingPreparedStackProfileConditionStateStack = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/pendingpreparedstackprofilestateawresource.md b/client-sdks/platform/typescript/docs/models/pendingpreparedstackprofilestateawresource.md new file mode 100644 index 000000000..d7f059a8d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/pendingpreparedstackprofilestateawresource.md @@ -0,0 +1,22 @@ +# PendingPreparedStackProfileStateAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { PendingPreparedStackProfileStateAwResource } from "@alienplatform/platform-api/models"; + +let value: PendingPreparedStackProfileStateAwResource = { + resources: [ + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/pendingpreparedstackprofilestateazureresource.md b/client-sdks/platform/typescript/docs/models/pendingpreparedstackprofilestateazureresource.md new file mode 100644 index 000000000..9fdf67fb3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/pendingpreparedstackprofilestateazureresource.md @@ -0,0 +1,19 @@ +# PendingPreparedStackProfileStateAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { PendingPreparedStackProfileStateAzureResource } from "@alienplatform/platform-api/models"; + +let value: PendingPreparedStackProfileStateAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/pendingpreparedstackprofilestategcpresource.md b/client-sdks/platform/typescript/docs/models/pendingpreparedstackprofilestategcpresource.md new file mode 100644 index 000000000..bf960ab33 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/pendingpreparedstackprofilestategcpresource.md @@ -0,0 +1,20 @@ +# PendingPreparedStackProfileStateGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { PendingPreparedStackProfileStateGcpResource } from "@alienplatform/platform-api/models"; + +let value: PendingPreparedStackProfileStateGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | +| `condition` | *models.PendingPreparedStackProfileStateResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/pendingpreparedstackprofilestateresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/pendingpreparedstackprofilestateresourceconditionunion.md new file mode 100644 index 000000000..e1f102741 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/pendingpreparedstackprofilestateresourceconditionunion.md @@ -0,0 +1,19 @@ +# PendingPreparedStackProfileStateResourceConditionUnion + + +## Supported Types + +### `models.PendingPreparedStackProfileConditionStateResource` + +```typescript +const value: models.PendingPreparedStackProfileConditionStateResource = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/pendingpreparedstackprofilestatestackconditionunion.md b/client-sdks/platform/typescript/docs/models/pendingpreparedstackprofilestatestackconditionunion.md new file mode 100644 index 000000000..59dc00482 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/pendingpreparedstackprofilestatestackconditionunion.md @@ -0,0 +1,19 @@ +# PendingPreparedStackProfileStateStackConditionUnion + + +## Supported Types + +### `models.PendingPreparedStackProfileConditionStateStack` + +```typescript +const value: models.PendingPreparedStackProfileConditionStateStack = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/pendingpreparedstackstatekind.md b/client-sdks/platform/typescript/docs/models/pendingpreparedstackstatekind.md new file mode 100644 index 000000000..c6a09aa2f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/pendingpreparedstackstatekind.md @@ -0,0 +1,17 @@ +# PendingPreparedStackStateKind + +Primitive stack input kind. + +## Example Usage + +```typescript +import { PendingPreparedStackStateKind } from "@alienplatform/platform-api/models"; + +let value: PendingPreparedStackStateKind = "stringList"; +``` + +## Values + +```typescript +"string" | "secret" | "number" | "integer" | "boolean" | "enum" | "stringList" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/pendingpreparedstackstatelifecycle.md b/client-sdks/platform/typescript/docs/models/pendingpreparedstackstatelifecycle.md new file mode 100644 index 000000000..970005b5b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/pendingpreparedstackstatelifecycle.md @@ -0,0 +1,17 @@ +# PendingPreparedStackStateLifecycle + +Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + +## Example Usage + +```typescript +import { PendingPreparedStackStateLifecycle } from "@alienplatform/platform-api/models"; + +let value: PendingPreparedStackStateLifecycle = "frozen"; +``` + +## Values + +```typescript +"frozen" | "live" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequest.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequest.md index 44116d127..79a23a937 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequest.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequest.md @@ -37,6 +37,7 @@ let value: PersistImportedDeploymentRequest = { | `stackState` | *any* | :heavy_minus_sign: | N/A | | | `environmentInfo` | *models.PersistImportedDeploymentRequestEnvironmentInfoUnion* | :heavy_minus_sign: | Platform-specific environment information | | | `runtimeMetadata` | [models.PersistImportedDeploymentRequestRuntimeMetadata](../models/persistimporteddeploymentrequestruntimemetadata.md) | :heavy_check_mark: | Runtime metadata for deployment

Stores deployment state that needs to persist across step calls. | | +| `scheduleReconciliation` | *boolean* | :heavy_minus_sign: | N/A | | | `deploymentProtocolVersion` | *number* | :heavy_check_mark: | DeploymentState protocol version owned by the runtime/manager | | | `status` | [models.PersistImportedDeploymentRequestStatus](../models/persistimporteddeploymentrequeststatus.md) | :heavy_minus_sign: | Deployment status in the deployment lifecycle.

For observe-only deployments with no release or stack state, `Running`
means the Operator is attached. Connectivity comes from `lastHeartbeatAt`;
resource health comes from inventory and resource heartbeat data. | | | `currentReleaseId` | *string* | :heavy_minus_sign: | Unique identifier for the release. | rel_WbhQgksrawSKIpEN0NAssHX9 | diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestawsunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestawsunion.md index 7b1409708..82a804624 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestawsunion.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestawsunion.md @@ -16,4 +16,3 @@ const value: models.PersistImportedDeploymentRequestAws = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestazureunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestazureunion.md index 901f9f442..bd7c5b4e6 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestazureunion.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestazureunion.md @@ -16,4 +16,3 @@ const value: models.PersistImportedDeploymentRequestAzureStackSettings = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestcertificateunion1.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestcertificateunion1.md index dac2ba5d8..c61d5becd 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestcertificateunion1.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestcertificateunion1.md @@ -49,4 +49,3 @@ const value: models.PersistImportedDeploymentRequestCertificateNone1 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestcertificateunion2.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestcertificateunion2.md index 21aa20a99..b1cbe0e13 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestcertificateunion2.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestcertificateunion2.md @@ -49,4 +49,3 @@ const value: models.PersistImportedDeploymentRequestCertificateNone2 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestcloudunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestcloudunion.md index 0200c5a64..3be180122 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestcloudunion.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestcloudunion.md @@ -14,4 +14,3 @@ const value: models.PersistImportedDeploymentRequestCloud = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestclusterunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestclusterunion.md index eea427adc..18df1a1f1 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestclusterunion.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestclusterunion.md @@ -16,4 +16,3 @@ const value: models.PersistImportedDeploymentRequestCluster = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestcomputeunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestcomputeunion.md index ce8e19702..22798faab 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestcomputeunion.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestcomputeunion.md @@ -14,4 +14,3 @@ const value: models.PersistImportedDeploymentRequestCompute = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestconfig.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestconfig.md deleted file mode 100644 index ad6d68fba..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestconfig.md +++ /dev/null @@ -1,22 +0,0 @@ -# PersistImportedDeploymentRequestConfig - -Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestConfig } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestConfig = { - id: "", - type: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `id` | *string* | :heavy_check_mark: | The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. | -| `type` | *string* | :heavy_check_mark: | Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. | -| `additionalProperties` | Record | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdefaultboolean.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdefaultboolean.md deleted file mode 100644 index a911a6b61..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdefaultboolean.md +++ /dev/null @@ -1,19 +0,0 @@ -# PersistImportedDeploymentRequestDefaultBoolean - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestDefaultBoolean } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestDefaultBoolean = { - type: "boolean", - value: false, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -| `type` | [models.PersistImportedDeploymentRequestTypeBoolean](../models/persistimporteddeploymentrequesttypeboolean.md) | :heavy_check_mark: | N/A | -| `value` | *boolean* | :heavy_check_mark: | Boolean default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdefaultnumber.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdefaultnumber.md deleted file mode 100644 index e62822557..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdefaultnumber.md +++ /dev/null @@ -1,19 +0,0 @@ -# PersistImportedDeploymentRequestDefaultNumber - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestDefaultNumber } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestDefaultNumber = { - type: "number", - value: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | -| `type` | [models.PersistImportedDeploymentRequestTypeNumber](../models/persistimporteddeploymentrequesttypenumber.md) | :heavy_check_mark: | N/A | -| `value` | *string* | :heavy_check_mark: | Number default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdefaultstring.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdefaultstring.md deleted file mode 100644 index 767a64737..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdefaultstring.md +++ /dev/null @@ -1,19 +0,0 @@ -# PersistImportedDeploymentRequestDefaultString - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestDefaultString } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestDefaultString = { - type: "string", - value: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | -| `type` | [models.PersistImportedDeploymentRequestTypeString](../models/persistimporteddeploymentrequesttypestring.md) | :heavy_check_mark: | N/A | -| `value` | *string* | :heavy_check_mark: | String default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdefaultstringlist.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdefaultstringlist.md deleted file mode 100644 index 423e67a11..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdefaultstringlist.md +++ /dev/null @@ -1,21 +0,0 @@ -# PersistImportedDeploymentRequestDefaultStringList - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestDefaultStringList } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestDefaultStringList = { - type: "stringList", - value: [ - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| `type` | [models.PersistImportedDeploymentRequestTypeStringList](../models/persistimporteddeploymentrequesttypestringlist.md) | :heavy_check_mark: | N/A | -| `value` | *string*[] | :heavy_check_mark: | String list default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdefaultunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdefaultunion.md deleted file mode 100644 index f5662ffa3..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdefaultunion.md +++ /dev/null @@ -1,49 +0,0 @@ -# PersistImportedDeploymentRequestDefaultUnion - - -## Supported Types - -### `models.PersistImportedDeploymentRequestDefaultString` - -```typescript -const value: models.PersistImportedDeploymentRequestDefaultString = { - type: "string", - value: "", -}; -``` - -### `models.PersistImportedDeploymentRequestDefaultNumber` - -```typescript -const value: models.PersistImportedDeploymentRequestDefaultNumber = { - type: "number", - value: "", -}; -``` - -### `models.PersistImportedDeploymentRequestDefaultBoolean` - -```typescript -const value: models.PersistImportedDeploymentRequestDefaultBoolean = { - type: "boolean", - value: false, -}; -``` - -### `models.PersistImportedDeploymentRequestDefaultStringList` - -```typescript -const value: models.PersistImportedDeploymentRequestDefaultStringList = { - type: "stringList", - value: [ - "", - ], -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdependency.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdependency.md deleted file mode 100644 index b644227c2..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdependency.md +++ /dev/null @@ -1,21 +0,0 @@ -# PersistImportedDeploymentRequestDependency - -Reference to a resource by its stable id and resource type. - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestDependency } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestDependency = { - id: "", - type: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `id` | *string* | :heavy_check_mark: | N/A | -| `type` | *string* | :heavy_check_mark: | Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdomainskubernetesunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdomainskubernetesunion.md index 27b7515fd..8f3be18b3 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdomainskubernetesunion.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdomainskubernetesunion.md @@ -18,4 +18,3 @@ const value: models.PersistImportedDeploymentRequestDomainsKubernetes = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdomainsunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdomainsunion.md index f5c46ce17..661676fe7 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdomainsunion.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestdomainsunion.md @@ -14,4 +14,3 @@ const value: models.PersistImportedDeploymentRequestDomains = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestenv.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestenv.md deleted file mode 100644 index ac5a49202..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestenv.md +++ /dev/null @@ -1,21 +0,0 @@ -# PersistImportedDeploymentRequestEnv - -How a resolved stack input is injected into runtime environment variables. - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestEnv } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestEnv = { - name: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | -| `name` | *string* | :heavy_check_mark: | Environment variable name. | -| `targetResources` | *string*[] | :heavy_minus_sign: | Target resource IDs or patterns. None means every env-capable resource. | -| `type` | *models.PersistImportedDeploymentRequestTypeUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestenvironmentinfounion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestenvironmentinfounion.md index 6800dd482..73cb04a51 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestenvironmentinfounion.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestenvironmentinfounion.md @@ -62,4 +62,3 @@ const value: models.PersistImportedDeploymentRequestEnvironmentInfoTest = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestexposureunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestexposureunion.md index bbff9e288..4780263cc 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestexposureunion.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestexposureunion.md @@ -49,4 +49,3 @@ const value: models.PersistImportedDeploymentRequestExposureCustom = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextend.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextend.md deleted file mode 100644 index 870ab796d..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextend.md +++ /dev/null @@ -1,23 +0,0 @@ -# PersistImportedDeploymentRequestExtend - -A permission set that can be applied across different cloud platforms - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestExtend } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestExtend = { - description: "cantaloupe pfft pish blah gosh yum decide", - id: "", - platforms: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | -| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | -| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | -| `platforms` | [models.PersistImportedDeploymentRequestExtendPlatforms](../models/persistimporteddeploymentrequestextendplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendaw.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendaw.md deleted file mode 100644 index 7179310b6..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendaw.md +++ /dev/null @@ -1,24 +0,0 @@ -# PersistImportedDeploymentRequestExtendAw - -AWS-specific platform permission configuration - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestExtendAw } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestExtendAw = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | -| `binding` | [models.PersistImportedDeploymentRequestExtendAwBinding](../models/persistimporteddeploymentrequestextendawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `effect` | [models.PersistImportedDeploymentRequestExtendEffect](../models/persistimporteddeploymentrequestextendeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | -| `grant` | [models.PersistImportedDeploymentRequestExtendAwGrant](../models/persistimporteddeploymentrequestextendawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendawbinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendawbinding.md deleted file mode 100644 index b67a52829..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendawbinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# PersistImportedDeploymentRequestExtendAwBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestExtendAwBinding } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestExtendAwBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | -| `resource` | [models.PersistImportedDeploymentRequestExtendAwResource](../models/persistimporteddeploymentrequestextendawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | -| `stack` | [models.PersistImportedDeploymentRequestExtendAwStack](../models/persistimporteddeploymentrequestextendawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendawgrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendawgrant.md deleted file mode 100644 index bdabd105d..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendawgrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# PersistImportedDeploymentRequestExtendAwGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestExtendAwGrant } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestExtendAwGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendawresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendawresource.md deleted file mode 100644 index c40021c9e..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendawresource.md +++ /dev/null @@ -1,23 +0,0 @@ -# PersistImportedDeploymentRequestExtendAwResource - -AWS-specific binding specification - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestExtendAwResource } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestExtendAwResource = { - resources: [ - "", - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | -| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendawstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendawstack.md deleted file mode 100644 index 785a29ec0..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendawstack.md +++ /dev/null @@ -1,22 +0,0 @@ -# PersistImportedDeploymentRequestExtendAwStack - -AWS-specific binding specification - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestExtendAwStack } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestExtendAwStack = { - resources: [ - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | -| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendazure.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendazure.md deleted file mode 100644 index b5242d32a..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendazure.md +++ /dev/null @@ -1,23 +0,0 @@ -# PersistImportedDeploymentRequestExtendAzure - -Azure-specific platform permission configuration - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestExtendAzure } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestExtendAzure = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -| `binding` | [models.PersistImportedDeploymentRequestExtendAzureBinding](../models/persistimporteddeploymentrequestextendazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `grant` | [models.PersistImportedDeploymentRequestExtendAzureGrant](../models/persistimporteddeploymentrequestextendazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendazurebinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendazurebinding.md deleted file mode 100644 index 72a5c7915..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendazurebinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# PersistImportedDeploymentRequestExtendAzureBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestExtendAzureBinding } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestExtendAzureBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | -| `resource` | [models.PersistImportedDeploymentRequestExtendAzureResource](../models/persistimporteddeploymentrequestextendazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | -| `stack` | [models.PersistImportedDeploymentRequestExtendAzureStack](../models/persistimporteddeploymentrequestextendazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendazuregrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendazuregrant.md deleted file mode 100644 index a7168ff4b..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendazuregrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# PersistImportedDeploymentRequestExtendAzureGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestExtendAzureGrant } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestExtendAzureGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendazureresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendazureresource.md deleted file mode 100644 index f5e15a8bf..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendazureresource.md +++ /dev/null @@ -1,19 +0,0 @@ -# PersistImportedDeploymentRequestExtendAzureResource - -Azure-specific binding specification - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestExtendAzureResource } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestExtendAzureResource = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendazurestack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendazurestack.md deleted file mode 100644 index 01f13db62..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendazurestack.md +++ /dev/null @@ -1,19 +0,0 @@ -# PersistImportedDeploymentRequestExtendAzureStack - -Azure-specific binding specification - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestExtendAzureStack } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestExtendAzureStack = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendconditionresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendconditionresource.md deleted file mode 100644 index e032fa388..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendconditionresource.md +++ /dev/null @@ -1,21 +0,0 @@ -# PersistImportedDeploymentRequestExtendConditionResource - -GCP IAM condition - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestExtendConditionResource } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestExtendConditionResource = { - expression: "", - title: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `expression` | *string* | :heavy_check_mark: | N/A | -| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendconditionstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendconditionstack.md deleted file mode 100644 index 4b46d24b9..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendconditionstack.md +++ /dev/null @@ -1,21 +0,0 @@ -# PersistImportedDeploymentRequestExtendConditionStack - -GCP IAM condition - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestExtendConditionStack } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestExtendConditionStack = { - expression: "", - title: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `expression` | *string* | :heavy_check_mark: | N/A | -| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendeffect.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendeffect.md deleted file mode 100644 index acdf5248f..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendeffect.md +++ /dev/null @@ -1,17 +0,0 @@ -# PersistImportedDeploymentRequestExtendEffect - -IAM effect. Defaults to Allow. - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestExtendEffect } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestExtendEffect = "Deny"; -``` - -## Values - -```typescript -"Allow" | "Deny" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendgcp.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendgcp.md deleted file mode 100644 index b82b3e8e3..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendgcp.md +++ /dev/null @@ -1,23 +0,0 @@ -# PersistImportedDeploymentRequestExtendGcp - -GCP-specific platform permission configuration - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestExtendGcp } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestExtendGcp = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | -| `binding` | [models.PersistImportedDeploymentRequestExtendGcpBinding](../models/persistimporteddeploymentrequestextendgcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `grant` | [models.PersistImportedDeploymentRequestExtendGcpGrant](../models/persistimporteddeploymentrequestextendgcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendgcpbinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendgcpbinding.md deleted file mode 100644 index dcc677218..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendgcpbinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# PersistImportedDeploymentRequestExtendGcpBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestExtendGcpBinding } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestExtendGcpBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -| `resource` | [models.PersistImportedDeploymentRequestExtendGcpResource](../models/persistimporteddeploymentrequestextendgcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | -| `stack` | [models.PersistImportedDeploymentRequestExtendGcpStack](../models/persistimporteddeploymentrequestextendgcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendgcpgrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendgcpgrant.md deleted file mode 100644 index 867fa6061..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendgcpgrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# PersistImportedDeploymentRequestExtendGcpGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestExtendGcpGrant } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestExtendGcpGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendgcpresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendgcpresource.md deleted file mode 100644 index 641941fe3..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendgcpresource.md +++ /dev/null @@ -1,20 +0,0 @@ -# PersistImportedDeploymentRequestExtendGcpResource - -GCP-specific binding specification - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestExtendGcpResource } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestExtendGcpResource = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | --------------------------------------------------------------------- | -| `condition` | *models.PersistImportedDeploymentRequestExtendResourceConditionUnion* | :heavy_minus_sign: | N/A | -| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendgcpstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendgcpstack.md deleted file mode 100644 index 2ba40cf33..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendgcpstack.md +++ /dev/null @@ -1,20 +0,0 @@ -# PersistImportedDeploymentRequestExtendGcpStack - -GCP-specific binding specification - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestExtendGcpStack } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestExtendGcpStack = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | -| `condition` | *models.PersistImportedDeploymentRequestExtendStackConditionUnion* | :heavy_minus_sign: | N/A | -| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendplatforms.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendplatforms.md deleted file mode 100644 index 62ac2d652..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendplatforms.md +++ /dev/null @@ -1,19 +0,0 @@ -# PersistImportedDeploymentRequestExtendPlatforms - -Platform-specific permission configurations - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestExtendPlatforms } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestExtendPlatforms = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | -| `aws` | [models.PersistImportedDeploymentRequestExtendAw](../models/persistimporteddeploymentrequestextendaw.md)[] | :heavy_minus_sign: | AWS permission configurations | -| `azure` | [models.PersistImportedDeploymentRequestExtendAzure](../models/persistimporteddeploymentrequestextendazure.md)[] | :heavy_minus_sign: | Azure permission configurations | -| `gcp` | [models.PersistImportedDeploymentRequestExtendGcp](../models/persistimporteddeploymentrequestextendgcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendresourceconditionunion.md deleted file mode 100644 index ca2972220..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendresourceconditionunion.md +++ /dev/null @@ -1,20 +0,0 @@ -# PersistImportedDeploymentRequestExtendResourceConditionUnion - - -## Supported Types - -### `models.PersistImportedDeploymentRequestExtendConditionResource` - -```typescript -const value: models.PersistImportedDeploymentRequestExtendConditionResource = { - expression: "", - title: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendstackconditionunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendstackconditionunion.md deleted file mode 100644 index 6afac15ea..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendstackconditionunion.md +++ /dev/null @@ -1,20 +0,0 @@ -# PersistImportedDeploymentRequestExtendStackConditionUnion - - -## Supported Types - -### `models.PersistImportedDeploymentRequestExtendConditionStack` - -```typescript -const value: models.PersistImportedDeploymentRequestExtendConditionStack = { - expression: "", - title: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendunion.md deleted file mode 100644 index e958dade5..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestextendunion.md +++ /dev/null @@ -1,23 +0,0 @@ -# PersistImportedDeploymentRequestExtendUnion - -Reference to a permission set - either by name or inline definition - - -## Supported Types - -### `models.PersistImportedDeploymentRequestExtend` - -```typescript -const value: models.PersistImportedDeploymentRequestExtend = { - description: "cantaloupe pfft pish blah gosh yum decide", - id: "", - platforms: {}, -}; -``` - -### `string` - -```typescript -const value: string = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestfailuredomains1.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestfailuredomains1.md new file mode 100644 index 000000000..67b37c2cc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestfailuredomains1.md @@ -0,0 +1,20 @@ +# PersistImportedDeploymentRequestFailureDomains1 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestFailureDomains1 } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestFailureDomains1 = { + spread: 294914, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestfailuredomains2.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestfailuredomains2.md new file mode 100644 index 000000000..297768c22 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestfailuredomains2.md @@ -0,0 +1,20 @@ +# PersistImportedDeploymentRequestFailureDomains2 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestFailureDomains2 } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestFailureDomains2 = { + spread: 666091, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestfailuredomainsunion1.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestfailuredomainsunion1.md new file mode 100644 index 000000000..d00417296 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestfailuredomainsunion1.md @@ -0,0 +1,18 @@ +# PersistImportedDeploymentRequestFailureDomainsUnion1 + + +## Supported Types + +### `models.PersistImportedDeploymentRequestFailureDomains1` + +```typescript +const value: models.PersistImportedDeploymentRequestFailureDomains1 = { + spread: 294914, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestfailuredomainsunion2.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestfailuredomainsunion2.md new file mode 100644 index 000000000..b2aaa9ec0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestfailuredomainsunion2.md @@ -0,0 +1,18 @@ +# PersistImportedDeploymentRequestFailureDomainsUnion2 + + +## Supported Types + +### `models.PersistImportedDeploymentRequestFailureDomains2` + +```typescript +const value: models.PersistImportedDeploymentRequestFailureDomains2 = { + spread: 666091, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestgcpunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestgcpunion.md index 80dbacda8..8f734a63c 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestgcpunion.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestgcpunion.md @@ -16,4 +16,3 @@ const value: models.PersistImportedDeploymentRequestGcpStackSettings = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestinitialsetupauthority.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestinitialsetupauthority.md new file mode 100644 index 000000000..e7f87cb5e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestinitialsetupauthority.md @@ -0,0 +1,18 @@ +# PersistImportedDeploymentRequestInitialSetupAuthority + +Actor that owns structural work during the initial setup phase. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestInitialSetupAuthority } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestInitialSetupAuthority = + "importedHandoff"; +``` + +## Values + +```typescript +"importedHandoff" | "directSetup" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestinput.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestinput.md deleted file mode 100644 index 8c9d38528..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestinput.md +++ /dev/null @@ -1,36 +0,0 @@ -# PersistImportedDeploymentRequestInput - -Stack input definition serialized into a release stack. - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestInput } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestInput = { - description: "jump ew festival ah", - id: "", - kind: "integer", - label: "", - providedBy: [ - "developer", - ], - required: false, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | -| `default` | *models.PersistImportedDeploymentRequestDefaultUnion* | :heavy_minus_sign: | N/A | -| `description` | *string* | :heavy_check_mark: | Human-facing helper text. | -| `env` | [models.PersistImportedDeploymentRequestEnv](../models/persistimporteddeploymentrequestenv.md)[] | :heavy_minus_sign: | Runtime env-var mappings for v1 input resolution. | -| `id` | *string* | :heavy_check_mark: | Stable input ID used by CLI/API calls. | -| `kind` | [models.PersistImportedDeploymentRequestKind](../models/persistimporteddeploymentrequestkind.md) | :heavy_check_mark: | Primitive stack input kind. | -| `label` | *string* | :heavy_check_mark: | Human-facing field label. | -| `placeholder` | *string* | :heavy_minus_sign: | Example placeholder shown in UI. | -| `platforms` | [models.PersistImportedDeploymentRequestPreparedStackPlatform](../models/persistimporteddeploymentrequestpreparedstackplatform.md)[] | :heavy_minus_sign: | Platforms where this input applies. | -| `providedBy` | [models.PersistImportedDeploymentRequestProvidedBy](../models/persistimporteddeploymentrequestprovidedby.md)[] | :heavy_check_mark: | Who can provide this value. | -| `required` | *boolean* | :heavy_check_mark: | Whether a resolved value is required before deployment can proceed. | -| `validation` | *models.PersistImportedDeploymentRequestValidationUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestkind.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestkind.md deleted file mode 100644 index d4e8d9aef..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestkind.md +++ /dev/null @@ -1,17 +0,0 @@ -# PersistImportedDeploymentRequestKind - -Primitive stack input kind. - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestKind } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestKind = "integer"; -``` - -## Values - -```typescript -"string" | "secret" | "number" | "integer" | "boolean" | "enum" | "stringList" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestkubernetesunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestkubernetesunion.md index 8cf9d02a8..4f87d8db4 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestkubernetesunion.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestkubernetesunion.md @@ -14,4 +14,3 @@ const value: models.PersistImportedDeploymentRequestKubernetes = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestlifecycle.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestlifecycle.md deleted file mode 100644 index 69b055881..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestlifecycle.md +++ /dev/null @@ -1,17 +0,0 @@ -# PersistImportedDeploymentRequestLifecycle - -Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestLifecycle } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestLifecycle = "live"; -``` - -## Values - -```typescript -"frozen" | "live" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestmanagement1.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestmanagement1.md deleted file mode 100644 index a2c231673..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestmanagement1.md +++ /dev/null @@ -1,22 +0,0 @@ -# PersistImportedDeploymentRequestManagement1 - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestManagement1 } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestManagement1 = { - extend: { - "key": [ - "", - ], - "key1": [], - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -| `extend` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestmanagement2.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestmanagement2.md deleted file mode 100644 index fe1ef2b9d..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestmanagement2.md +++ /dev/null @@ -1,32 +0,0 @@ -# PersistImportedDeploymentRequestManagement2 - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestManagement2 } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestManagement2 = { - override: { - "key": [ - { - description: "rebound lay anti access underneath", - id: "", - platforms: {}, - }, - ], - "key1": [ - { - description: "rebound lay anti access underneath", - id: "", - platforms: {}, - }, - ], - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -| `override` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestmanagementconfigunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestmanagementconfigunion.md index f52ecc0cf..9f886bdb1 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestmanagementconfigunion.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestmanagementconfigunion.md @@ -45,4 +45,3 @@ const value: models.PersistImportedDeploymentRequestManagementConfigKubernetes = platform: "kubernetes", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestmanagementenum.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestmanagementenum.md deleted file mode 100644 index 790734b2a..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestmanagementenum.md +++ /dev/null @@ -1,15 +0,0 @@ -# PersistImportedDeploymentRequestManagementEnum - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestManagementEnum } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestManagementEnum = "auto"; -``` - -## Values - -```typescript -"auto" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestmanagementunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestmanagementunion.md deleted file mode 100644 index a3e942d6d..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestmanagementunion.md +++ /dev/null @@ -1,49 +0,0 @@ -# PersistImportedDeploymentRequestManagementUnion - -Management permissions configuration for stack management access - - -## Supported Types - -### `models.PersistImportedDeploymentRequestManagement1` - -```typescript -const value: models.PersistImportedDeploymentRequestManagement1 = { - extend: { - "key": [ - "", - ], - "key1": [], - }, -}; -``` - -### `models.PersistImportedDeploymentRequestManagement2` - -```typescript -const value: models.PersistImportedDeploymentRequestManagement2 = { - override: { - "key": [ - { - description: "rebound lay anti access underneath", - id: "", - platforms: {}, - }, - ], - "key1": [ - { - description: "rebound lay anti access underneath", - id: "", - platforms: {}, - }, - ], - }, -}; -``` - -### `models.PersistImportedDeploymentRequestManagementEnum` - -```typescript -const value: models.PersistImportedDeploymentRequestManagementEnum = "auto"; -``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestnetworkunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestnetworkunion.md index d80760e3a..3c1be8fa1 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestnetworkunion.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestnetworkunion.md @@ -60,4 +60,3 @@ const value: models.PersistImportedDeploymentRequestNetworkByoVnetAzure = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverride.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverride.md deleted file mode 100644 index bd8c9ae0c..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverride.md +++ /dev/null @@ -1,23 +0,0 @@ -# PersistImportedDeploymentRequestOverride - -A permission set that can be applied across different cloud platforms - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestOverride } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestOverride = { - description: "besides once uh-huh annex grimy hm quit while stitcher whether", - id: "", - platforms: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | -| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | -| `platforms` | [models.PersistImportedDeploymentRequestOverridePlatforms](../models/persistimporteddeploymentrequestoverrideplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideaw.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideaw.md deleted file mode 100644 index 8933a5830..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideaw.md +++ /dev/null @@ -1,24 +0,0 @@ -# PersistImportedDeploymentRequestOverrideAw - -AWS-specific platform permission configuration - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestOverrideAw } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestOverrideAw = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -| `binding` | [models.PersistImportedDeploymentRequestOverrideAwBinding](../models/persistimporteddeploymentrequestoverrideawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `effect` | [models.PersistImportedDeploymentRequestOverrideEffect](../models/persistimporteddeploymentrequestoverrideeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | -| `grant` | [models.PersistImportedDeploymentRequestOverrideAwGrant](../models/persistimporteddeploymentrequestoverrideawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideawbinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideawbinding.md deleted file mode 100644 index 6f784ad5c..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideawbinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# PersistImportedDeploymentRequestOverrideAwBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestOverrideAwBinding } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestOverrideAwBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -| `resource` | [models.PersistImportedDeploymentRequestOverrideAwResource](../models/persistimporteddeploymentrequestoverrideawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | -| `stack` | [models.PersistImportedDeploymentRequestOverrideAwStack](../models/persistimporteddeploymentrequestoverrideawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideawgrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideawgrant.md deleted file mode 100644 index 190763a27..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideawgrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# PersistImportedDeploymentRequestOverrideAwGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestOverrideAwGrant } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestOverrideAwGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideawresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideawresource.md deleted file mode 100644 index 7125413eb..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideawresource.md +++ /dev/null @@ -1,22 +0,0 @@ -# PersistImportedDeploymentRequestOverrideAwResource - -AWS-specific binding specification - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestOverrideAwResource } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestOverrideAwResource = { - resources: [ - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | -| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideawstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideawstack.md deleted file mode 100644 index 5be49766d..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideawstack.md +++ /dev/null @@ -1,20 +0,0 @@ -# PersistImportedDeploymentRequestOverrideAwStack - -AWS-specific binding specification - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestOverrideAwStack } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestOverrideAwStack = { - resources: [], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | -| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideazure.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideazure.md deleted file mode 100644 index db0b731e4..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideazure.md +++ /dev/null @@ -1,23 +0,0 @@ -# PersistImportedDeploymentRequestOverrideAzure - -Azure-specific platform permission configuration - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestOverrideAzure } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestOverrideAzure = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -| `binding` | [models.PersistImportedDeploymentRequestOverrideAzureBinding](../models/persistimporteddeploymentrequestoverrideazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `grant` | [models.PersistImportedDeploymentRequestOverrideAzureGrant](../models/persistimporteddeploymentrequestoverrideazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideazurebinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideazurebinding.md deleted file mode 100644 index 6e4b52f75..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideazurebinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# PersistImportedDeploymentRequestOverrideAzureBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestOverrideAzureBinding } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestOverrideAzureBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | -| `resource` | [models.PersistImportedDeploymentRequestOverrideAzureResource](../models/persistimporteddeploymentrequestoverrideazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | -| `stack` | [models.PersistImportedDeploymentRequestOverrideAzureStack](../models/persistimporteddeploymentrequestoverrideazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideazuregrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideazuregrant.md deleted file mode 100644 index 0b99662dd..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideazuregrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# PersistImportedDeploymentRequestOverrideAzureGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestOverrideAzureGrant } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestOverrideAzureGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideazureresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideazureresource.md deleted file mode 100644 index 80d38612d..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideazureresource.md +++ /dev/null @@ -1,19 +0,0 @@ -# PersistImportedDeploymentRequestOverrideAzureResource - -Azure-specific binding specification - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestOverrideAzureResource } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestOverrideAzureResource = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideazurestack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideazurestack.md deleted file mode 100644 index e09031a60..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideazurestack.md +++ /dev/null @@ -1,19 +0,0 @@ -# PersistImportedDeploymentRequestOverrideAzureStack - -Azure-specific binding specification - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestOverrideAzureStack } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestOverrideAzureStack = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideconditionresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideconditionresource.md deleted file mode 100644 index 691df7616..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideconditionresource.md +++ /dev/null @@ -1,21 +0,0 @@ -# PersistImportedDeploymentRequestOverrideConditionResource - -GCP IAM condition - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestOverrideConditionResource } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestOverrideConditionResource = { - expression: "", - title: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `expression` | *string* | :heavy_check_mark: | N/A | -| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideconditionstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideconditionstack.md deleted file mode 100644 index 5faf319e0..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideconditionstack.md +++ /dev/null @@ -1,21 +0,0 @@ -# PersistImportedDeploymentRequestOverrideConditionStack - -GCP IAM condition - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestOverrideConditionStack } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestOverrideConditionStack = { - expression: "", - title: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `expression` | *string* | :heavy_check_mark: | N/A | -| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideeffect.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideeffect.md deleted file mode 100644 index 529c586f0..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideeffect.md +++ /dev/null @@ -1,17 +0,0 @@ -# PersistImportedDeploymentRequestOverrideEffect - -IAM effect. Defaults to Allow. - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestOverrideEffect } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestOverrideEffect = "Allow"; -``` - -## Values - -```typescript -"Allow" | "Deny" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverridegcp.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverridegcp.md deleted file mode 100644 index af12cc00c..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverridegcp.md +++ /dev/null @@ -1,23 +0,0 @@ -# PersistImportedDeploymentRequestOverrideGcp - -GCP-specific platform permission configuration - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestOverrideGcp } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestOverrideGcp = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -| `binding` | [models.PersistImportedDeploymentRequestOverrideGcpBinding](../models/persistimporteddeploymentrequestoverridegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `grant` | [models.PersistImportedDeploymentRequestOverrideGcpGrant](../models/persistimporteddeploymentrequestoverridegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverridegcpbinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverridegcpbinding.md deleted file mode 100644 index a25221800..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverridegcpbinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# PersistImportedDeploymentRequestOverrideGcpBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestOverrideGcpBinding } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestOverrideGcpBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | -| `resource` | [models.PersistImportedDeploymentRequestOverrideGcpResource](../models/persistimporteddeploymentrequestoverridegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | -| `stack` | [models.PersistImportedDeploymentRequestOverrideGcpStack](../models/persistimporteddeploymentrequestoverridegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverridegcpgrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverridegcpgrant.md deleted file mode 100644 index ab85d1295..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverridegcpgrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# PersistImportedDeploymentRequestOverrideGcpGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestOverrideGcpGrant } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestOverrideGcpGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverridegcpresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverridegcpresource.md deleted file mode 100644 index 4e7a03ae7..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverridegcpresource.md +++ /dev/null @@ -1,20 +0,0 @@ -# PersistImportedDeploymentRequestOverrideGcpResource - -GCP-specific binding specification - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestOverrideGcpResource } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestOverrideGcpResource = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | -| `condition` | *models.PersistImportedDeploymentRequestOverrideResourceConditionUnion* | :heavy_minus_sign: | N/A | -| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverridegcpstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverridegcpstack.md deleted file mode 100644 index 36c31a9d3..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverridegcpstack.md +++ /dev/null @@ -1,20 +0,0 @@ -# PersistImportedDeploymentRequestOverrideGcpStack - -GCP-specific binding specification - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestOverrideGcpStack } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestOverrideGcpStack = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -| `condition` | *models.PersistImportedDeploymentRequestOverrideStackConditionUnion* | :heavy_minus_sign: | N/A | -| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideplatforms.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideplatforms.md deleted file mode 100644 index ec39dabd2..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideplatforms.md +++ /dev/null @@ -1,19 +0,0 @@ -# PersistImportedDeploymentRequestOverridePlatforms - -Platform-specific permission configurations - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestOverridePlatforms } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestOverridePlatforms = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| `aws` | [models.PersistImportedDeploymentRequestOverrideAw](../models/persistimporteddeploymentrequestoverrideaw.md)[] | :heavy_minus_sign: | AWS permission configurations | -| `azure` | [models.PersistImportedDeploymentRequestOverrideAzure](../models/persistimporteddeploymentrequestoverrideazure.md)[] | :heavy_minus_sign: | Azure permission configurations | -| `gcp` | [models.PersistImportedDeploymentRequestOverrideGcp](../models/persistimporteddeploymentrequestoverridegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideresourceconditionunion.md deleted file mode 100644 index d0d7be87f..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideresourceconditionunion.md +++ /dev/null @@ -1,21 +0,0 @@ -# PersistImportedDeploymentRequestOverrideResourceConditionUnion - - -## Supported Types - -### `models.PersistImportedDeploymentRequestOverrideConditionResource` - -```typescript -const value: models.PersistImportedDeploymentRequestOverrideConditionResource = - { - expression: "", - title: "", - }; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverridestackconditionunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverridestackconditionunion.md deleted file mode 100644 index 79c50048d..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverridestackconditionunion.md +++ /dev/null @@ -1,20 +0,0 @@ -# PersistImportedDeploymentRequestOverrideStackConditionUnion - - -## Supported Types - -### `models.PersistImportedDeploymentRequestOverrideConditionStack` - -```typescript -const value: models.PersistImportedDeploymentRequestOverrideConditionStack = { - expression: "", - title: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideunion.md deleted file mode 100644 index 39140970f..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestoverrideunion.md +++ /dev/null @@ -1,23 +0,0 @@ -# PersistImportedDeploymentRequestOverrideUnion - -Reference to a permission set - either by name or inline definition - - -## Supported Types - -### `models.PersistImportedDeploymentRequestOverride` - -```typescript -const value: models.PersistImportedDeploymentRequestOverride = { - description: "besides once uh-huh annex grimy hm quit while stitcher whether", - id: "", - platforms: {}, -}; -``` - -### `string` - -```typescript -const value: string = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstack.md new file mode 100644 index 000000000..cad128d46 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstack.md @@ -0,0 +1,33 @@ +# PersistImportedDeploymentRequestPendingPreparedStack + +A bag of resources, unaware of any cloud. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStack } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStack = { + id: "", + resources: { + "key": { + config: { + id: "", + type: "", + }, + dependencies: [], + lifecycle: "live", + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the stack | +| `inputs` | [models.PersistImportedDeploymentRequestPendingPreparedStackInput](../models/persistimporteddeploymentrequestpendingpreparedstackinput.md)[] | :heavy_minus_sign: | Input definitions required before setup or deployment can proceed. | +| `permissions` | [models.PersistImportedDeploymentRequestPendingPreparedStackPermissions](../models/persistimporteddeploymentrequestpendingpreparedstackpermissions.md) | :heavy_minus_sign: | Combined permissions configuration that contains both profiles and management | +| `resources` | Record | :heavy_check_mark: | Map of resource IDs to their configurations and lifecycle settings | +| `supportedPlatforms` | [models.PersistImportedDeploymentRequestPendingPreparedStackSupportedPlatform](../models/persistimporteddeploymentrequestpendingpreparedstacksupportedplatform.md)[] | :heavy_minus_sign: | Which platforms this stack supports. When None, all platforms are supported. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackconfig.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackconfig.md new file mode 100644 index 000000000..f3664dfe6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackconfig.md @@ -0,0 +1,22 @@ +# PersistImportedDeploymentRequestPendingPreparedStackConfig + +Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackConfig } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackConfig = { + id: "", + type: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. | +| `type` | *string* | :heavy_check_mark: | Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. | +| `additionalProperties` | Record | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackdefaultboolean.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackdefaultboolean.md new file mode 100644 index 000000000..731bce0b7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackdefaultboolean.md @@ -0,0 +1,20 @@ +# PersistImportedDeploymentRequestPendingPreparedStackDefaultBoolean + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackDefaultBoolean } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackDefaultBoolean = + { + type: "boolean", + value: false, + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `type` | [models.PersistImportedDeploymentRequestPendingPreparedStackTypeBoolean](../models/persistimporteddeploymentrequestpendingpreparedstacktypeboolean.md) | :heavy_check_mark: | N/A | +| `value` | *boolean* | :heavy_check_mark: | Boolean default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackdefaultnumber.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackdefaultnumber.md new file mode 100644 index 000000000..8083ad70c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackdefaultnumber.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPendingPreparedStackDefaultNumber + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackDefaultNumber } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackDefaultNumber = { + type: "number", + value: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | [models.PersistImportedDeploymentRequestPendingPreparedStackTypeNumber](../models/persistimporteddeploymentrequestpendingpreparedstacktypenumber.md) | :heavy_check_mark: | N/A | +| `value` | *string* | :heavy_check_mark: | Number default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackdefaultstring.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackdefaultstring.md new file mode 100644 index 000000000..b20bbf28d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackdefaultstring.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPendingPreparedStackDefaultString + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackDefaultString } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackDefaultString = { + type: "string", + value: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | [models.PersistImportedDeploymentRequestPendingPreparedStackTypeString](../models/persistimporteddeploymentrequestpendingpreparedstacktypestring.md) | :heavy_check_mark: | N/A | +| `value` | *string* | :heavy_check_mark: | String default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackdefaultstringlist.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackdefaultstringlist.md new file mode 100644 index 000000000..5d4b7b0a9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackdefaultstringlist.md @@ -0,0 +1,24 @@ +# PersistImportedDeploymentRequestPendingPreparedStackDefaultStringList + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackDefaultStringList } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackDefaultStringList = { + type: "stringList", + value: [ + "", + "", + "", + ], + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `type` | [models.PersistImportedDeploymentRequestPendingPreparedStackTypeStringList](../models/persistimporteddeploymentrequestpendingpreparedstacktypestringlist.md) | :heavy_check_mark: | N/A | +| `value` | *string*[] | :heavy_check_mark: | String list default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackdefaultunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackdefaultunion.md new file mode 100644 index 000000000..c511dcc21 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackdefaultunion.md @@ -0,0 +1,55 @@ +# PersistImportedDeploymentRequestPendingPreparedStackDefaultUnion + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPendingPreparedStackDefaultString` + +```typescript +const value: + models.PersistImportedDeploymentRequestPendingPreparedStackDefaultString = { + type: "string", + value: "", + }; +``` + +### `models.PersistImportedDeploymentRequestPendingPreparedStackDefaultNumber` + +```typescript +const value: + models.PersistImportedDeploymentRequestPendingPreparedStackDefaultNumber = { + type: "number", + value: "", + }; +``` + +### `models.PersistImportedDeploymentRequestPendingPreparedStackDefaultBoolean` + +```typescript +const value: + models.PersistImportedDeploymentRequestPendingPreparedStackDefaultBoolean = { + type: "boolean", + value: false, + }; +``` + +### `models.PersistImportedDeploymentRequestPendingPreparedStackDefaultStringList` + +```typescript +const value: + models.PersistImportedDeploymentRequestPendingPreparedStackDefaultStringList = + { + type: "stringList", + value: [ + "", + "", + "", + ], + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackdependency.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackdependency.md new file mode 100644 index 000000000..44b344092 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackdependency.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPendingPreparedStackDependency + +Reference to a resource by its stable id and resource type. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackDependency } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackDependency = { + id: "", + type: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | N/A | +| `type` | *string* | :heavy_check_mark: | Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackenv.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackenv.md new file mode 100644 index 000000000..22a481dad --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackenv.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPendingPreparedStackEnv + +How a resolved stack input is injected into runtime environment variables. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackEnv } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackEnv = { + name: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| `name` | *string* | :heavy_check_mark: | Environment variable name. | +| `targetResources` | *string*[] | :heavy_minus_sign: | Target resource IDs or patterns. None means every env-capable resource. | +| `type` | *models.PersistImportedDeploymentRequestPendingPreparedStackTypeUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextend.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextend.md new file mode 100644 index 000000000..ad60f7348 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextend.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPendingPreparedStackExtend + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackExtend } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackExtend = { + description: "since apud the pepper compassionate certainly hmph", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.PersistImportedDeploymentRequestPendingPreparedStackExtendPlatforms](../models/persistimporteddeploymentrequestpendingpreparedstackextendplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendaw.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendaw.md new file mode 100644 index 000000000..2a2e1ee32 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendaw.md @@ -0,0 +1,24 @@ +# PersistImportedDeploymentRequestPendingPreparedStackExtendAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackExtendAw } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackExtendAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.PersistImportedDeploymentRequestPendingPreparedStackExtendAwBinding](../models/persistimporteddeploymentrequestpendingpreparedstackextendawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.PersistImportedDeploymentRequestPendingPreparedStackExtendEffect](../models/persistimporteddeploymentrequestpendingpreparedstackextendeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.PersistImportedDeploymentRequestPendingPreparedStackExtendAwGrant](../models/persistimporteddeploymentrequestpendingpreparedstackextendawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendawbinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendawbinding.md new file mode 100644 index 000000000..c5c7546cf --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendawbinding.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPendingPreparedStackExtendAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackExtendAwBinding } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackExtendAwBinding = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.PersistImportedDeploymentRequestPendingPreparedStackExtendAwResource](../models/persistimporteddeploymentrequestpendingpreparedstackextendawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.PersistImportedDeploymentRequestPendingPreparedStackExtendAwStack](../models/persistimporteddeploymentrequestpendingpreparedstackextendawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendawgrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendawgrant.md new file mode 100644 index 000000000..586d11267 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendawgrant.md @@ -0,0 +1,22 @@ +# PersistImportedDeploymentRequestPendingPreparedStackExtendAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackExtendAwGrant } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackExtendAwGrant = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendawresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendawresource.md new file mode 100644 index 000000000..caacf7946 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendawresource.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPendingPreparedStackExtendAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackExtendAwResource } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackExtendAwResource = { + resources: [ + "", + ], + }; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendawstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendawstack.md new file mode 100644 index 000000000..609ef9cc5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendawstack.md @@ -0,0 +1,24 @@ +# PersistImportedDeploymentRequestPendingPreparedStackExtendAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackExtendAwStack } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackExtendAwStack = { + resources: [ + "", + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendazure.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendazure.md new file mode 100644 index 000000000..cc6e794ed --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendazure.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPendingPreparedStackExtendAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackExtendAzure } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackExtendAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.PersistImportedDeploymentRequestPendingPreparedStackExtendAzureBinding](../models/persistimporteddeploymentrequestpendingpreparedstackextendazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.PersistImportedDeploymentRequestPendingPreparedStackExtendAzureGrant](../models/persistimporteddeploymentrequestpendingpreparedstackextendazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendazurebinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendazurebinding.md new file mode 100644 index 000000000..0dd3c90ef --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendazurebinding.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPendingPreparedStackExtendAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackExtendAzureBinding } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.PersistImportedDeploymentRequestPendingPreparedStackExtendAzureResource](../models/persistimporteddeploymentrequestpendingpreparedstackextendazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.PersistImportedDeploymentRequestPendingPreparedStackExtendAzureStack](../models/persistimporteddeploymentrequestpendingpreparedstackextendazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendazuregrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendazuregrant.md new file mode 100644 index 000000000..3de59e1f7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendazuregrant.md @@ -0,0 +1,22 @@ +# PersistImportedDeploymentRequestPendingPreparedStackExtendAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackExtendAzureGrant } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendazureresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendazureresource.md new file mode 100644 index 000000000..b276f82d6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendazureresource.md @@ -0,0 +1,20 @@ +# PersistImportedDeploymentRequestPendingPreparedStackExtendAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackExtendAzureResource } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureResource = { + scope: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendazurestack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendazurestack.md new file mode 100644 index 000000000..b7c96fd77 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendazurestack.md @@ -0,0 +1,20 @@ +# PersistImportedDeploymentRequestPendingPreparedStackExtendAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackExtendAzureStack } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureStack = { + scope: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendconditionresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendconditionresource.md new file mode 100644 index 000000000..944a4f349 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendconditionresource.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPendingPreparedStackExtendConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackExtendConditionResource } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackExtendConditionResource = + { + expression: "", + title: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendconditionstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendconditionstack.md new file mode 100644 index 000000000..1ceced10b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendconditionstack.md @@ -0,0 +1,22 @@ +# PersistImportedDeploymentRequestPendingPreparedStackExtendConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackExtendConditionStack } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackExtendConditionStack = { + expression: "", + title: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendeffect.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendeffect.md new file mode 100644 index 000000000..baca2ced6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendeffect.md @@ -0,0 +1,18 @@ +# PersistImportedDeploymentRequestPendingPreparedStackExtendEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackExtendEffect } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackExtendEffect = + "Allow"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendgcp.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendgcp.md new file mode 100644 index 000000000..7bb199533 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendgcp.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPendingPreparedStackExtendGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackExtendGcp } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackExtendGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.PersistImportedDeploymentRequestPendingPreparedStackExtendGcpBinding](../models/persistimporteddeploymentrequestpendingpreparedstackextendgcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.PersistImportedDeploymentRequestPendingPreparedStackExtendGcpGrant](../models/persistimporteddeploymentrequestpendingpreparedstackextendgcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendgcpbinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendgcpbinding.md new file mode 100644 index 000000000..ae958b564 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendgcpbinding.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPendingPreparedStackExtendGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackExtendGcpBinding } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackExtendGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.PersistImportedDeploymentRequestPendingPreparedStackExtendGcpResource](../models/persistimporteddeploymentrequestpendingpreparedstackextendgcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.PersistImportedDeploymentRequestPendingPreparedStackExtendGcpStack](../models/persistimporteddeploymentrequestpendingpreparedstackextendgcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendgcpgrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendgcpgrant.md new file mode 100644 index 000000000..aa7f8ee50 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendgcpgrant.md @@ -0,0 +1,22 @@ +# PersistImportedDeploymentRequestPendingPreparedStackExtendGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackExtendGcpGrant } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackExtendGcpGrant = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendgcpresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendgcpresource.md new file mode 100644 index 000000000..2108ad85d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendgcpresource.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPendingPreparedStackExtendGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackExtendGcpResource } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackExtendGcpResource = { + scope: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- | +| `condition` | *models.PersistImportedDeploymentRequestPendingPreparedStackExtendResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendgcpstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendgcpstack.md new file mode 100644 index 000000000..4165a2fa6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendgcpstack.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPendingPreparedStackExtendGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackExtendGcpStack } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackExtendGcpStack = + { + scope: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `condition` | *models.PersistImportedDeploymentRequestPendingPreparedStackExtendStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendplatforms.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendplatforms.md new file mode 100644 index 000000000..c42be50f6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendplatforms.md @@ -0,0 +1,20 @@ +# PersistImportedDeploymentRequestPendingPreparedStackExtendPlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackExtendPlatforms } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackExtendPlatforms = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `aws` | [models.PersistImportedDeploymentRequestPendingPreparedStackExtendAw](../models/persistimporteddeploymentrequestpendingpreparedstackextendaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.PersistImportedDeploymentRequestPendingPreparedStackExtendAzure](../models/persistimporteddeploymentrequestpendingpreparedstackextendazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.PersistImportedDeploymentRequestPendingPreparedStackExtendGcp](../models/persistimporteddeploymentrequestpendingpreparedstackextendgcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendresourceconditionunion.md new file mode 100644 index 000000000..067eceda7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendresourceconditionunion.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPendingPreparedStackExtendResourceConditionUnion + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPendingPreparedStackExtendConditionResource` + +```typescript +const value: + models.PersistImportedDeploymentRequestPendingPreparedStackExtendConditionResource = + { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendstackconditionunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendstackconditionunion.md new file mode 100644 index 000000000..ae827c369 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendstackconditionunion.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPendingPreparedStackExtendStackConditionUnion + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPendingPreparedStackExtendConditionStack` + +```typescript +const value: + models.PersistImportedDeploymentRequestPendingPreparedStackExtendConditionStack = + { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendunion.md new file mode 100644 index 000000000..7b7bdfa6a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackextendunion.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPendingPreparedStackExtendUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPendingPreparedStackExtend` + +```typescript +const value: models.PersistImportedDeploymentRequestPendingPreparedStackExtend = + { + description: "since apud the pepper compassionate certainly hmph", + id: "", + platforms: {}, + }; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackinput.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackinput.md new file mode 100644 index 000000000..2d3fcd2dc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackinput.md @@ -0,0 +1,34 @@ +# PersistImportedDeploymentRequestPendingPreparedStackInput + +Stack input definition serialized into a release stack. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackInput } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackInput = { + description: "boohoo amongst refine what searchingly", + id: "", + kind: "string", + label: "", + providedBy: [], + required: false, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `default` | *models.PersistImportedDeploymentRequestPendingPreparedStackDefaultUnion* | :heavy_minus_sign: | N/A | +| `description` | *string* | :heavy_check_mark: | Human-facing helper text. | +| `env` | [models.PersistImportedDeploymentRequestPendingPreparedStackEnv](../models/persistimporteddeploymentrequestpendingpreparedstackenv.md)[] | :heavy_minus_sign: | Runtime env-var mappings for v1 input resolution. | +| `id` | *string* | :heavy_check_mark: | Stable input ID used by CLI/API calls. | +| `kind` | [models.PersistImportedDeploymentRequestPendingPreparedStackKind](../models/persistimporteddeploymentrequestpendingpreparedstackkind.md) | :heavy_check_mark: | Primitive stack input kind. | +| `label` | *string* | :heavy_check_mark: | Human-facing field label. | +| `placeholder` | *string* | :heavy_minus_sign: | Example placeholder shown in UI. | +| `platforms` | [models.PersistImportedDeploymentRequestPendingPreparedStackPlatform](../models/persistimporteddeploymentrequestpendingpreparedstackplatform.md)[] | :heavy_minus_sign: | Platforms where this input applies. | +| `providedBy` | [models.PersistImportedDeploymentRequestPendingPreparedStackProvidedBy](../models/persistimporteddeploymentrequestpendingpreparedstackprovidedby.md)[] | :heavy_check_mark: | Who can provide this value. | +| `required` | *boolean* | :heavy_check_mark: | Whether a resolved value is required before deployment can proceed. | +| `validation` | *models.PersistImportedDeploymentRequestPendingPreparedStackValidationUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackkind.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackkind.md new file mode 100644 index 000000000..d3408c909 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackkind.md @@ -0,0 +1,17 @@ +# PersistImportedDeploymentRequestPendingPreparedStackKind + +Primitive stack input kind. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackKind } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackKind = "number"; +``` + +## Values + +```typescript +"string" | "secret" | "number" | "integer" | "boolean" | "enum" | "stringList" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstacklifecycle.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstacklifecycle.md new file mode 100644 index 000000000..7d237a0fd --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstacklifecycle.md @@ -0,0 +1,18 @@ +# PersistImportedDeploymentRequestPendingPreparedStackLifecycle + +Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackLifecycle } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackLifecycle = + "live"; +``` + +## Values + +```typescript +"frozen" | "live" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackmanagement1.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackmanagement1.md new file mode 100644 index 000000000..334d4ef1a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackmanagement1.md @@ -0,0 +1,26 @@ +# PersistImportedDeploymentRequestPendingPreparedStackManagement1 + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackManagement1 } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackManagement1 = { + extend: { + "key": [ + { + description: + "inwardly phew prioritize ha forswear godfather merry calmly whereas", + id: "", + platforms: {}, + }, + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `extend` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackmanagement2.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackmanagement2.md new file mode 100644 index 000000000..a0d0bdb7f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackmanagement2.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPendingPreparedStackManagement2 + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackManagement2 } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackManagement2 = { + override: { + "key": [], + "key1": [ + "", + ], + "key2": [], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `override` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackmanagementenum.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackmanagementenum.md new file mode 100644 index 000000000..c8e184b23 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackmanagementenum.md @@ -0,0 +1,16 @@ +# PersistImportedDeploymentRequestPendingPreparedStackManagementEnum + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackManagementEnum } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackManagementEnum = + "auto"; +``` + +## Values + +```typescript +"auto" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackmanagementunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackmanagementunion.md new file mode 100644 index 000000000..9ee29e45a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackmanagementunion.md @@ -0,0 +1,47 @@ +# PersistImportedDeploymentRequestPendingPreparedStackManagementUnion + +Management permissions configuration for stack management access + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPendingPreparedStackManagement1` + +```typescript +const value: + models.PersistImportedDeploymentRequestPendingPreparedStackManagement1 = { + extend: { + "key": [ + { + description: + "inwardly phew prioritize ha forswear godfather merry calmly whereas", + id: "", + platforms: {}, + }, + ], + }, + }; +``` + +### `models.PersistImportedDeploymentRequestPendingPreparedStackManagement2` + +```typescript +const value: + models.PersistImportedDeploymentRequestPendingPreparedStackManagement2 = { + override: { + "key": [], + "key1": [ + "", + ], + "key2": [], + }, + }; +``` + +### `models.PersistImportedDeploymentRequestPendingPreparedStackManagementEnum` + +```typescript +const value: + models.PersistImportedDeploymentRequestPendingPreparedStackManagementEnum = + "auto"; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverride.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverride.md new file mode 100644 index 000000000..1ef760e06 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverride.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPendingPreparedStackOverride + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackOverride } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackOverride = { + description: "pointed spring icy", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.PersistImportedDeploymentRequestPendingPreparedStackOverridePlatforms](../models/persistimporteddeploymentrequestpendingpreparedstackoverrideplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideaw.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideaw.md new file mode 100644 index 000000000..37385f0ca --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideaw.md @@ -0,0 +1,24 @@ +# PersistImportedDeploymentRequestPendingPreparedStackOverrideAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackOverrideAw } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackOverrideAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.PersistImportedDeploymentRequestPendingPreparedStackOverrideAwBinding](../models/persistimporteddeploymentrequestpendingpreparedstackoverrideawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.PersistImportedDeploymentRequestPendingPreparedStackOverrideEffect](../models/persistimporteddeploymentrequestpendingpreparedstackoverrideeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.PersistImportedDeploymentRequestPendingPreparedStackOverrideAwGrant](../models/persistimporteddeploymentrequestpendingpreparedstackoverrideawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideawbinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideawbinding.md new file mode 100644 index 000000000..cdbebac1c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideawbinding.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPendingPreparedStackOverrideAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackOverrideAwBinding } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.PersistImportedDeploymentRequestPendingPreparedStackOverrideAwResource](../models/persistimporteddeploymentrequestpendingpreparedstackoverrideawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.PersistImportedDeploymentRequestPendingPreparedStackOverrideAwStack](../models/persistimporteddeploymentrequestpendingpreparedstackoverrideawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideawgrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideawgrant.md new file mode 100644 index 000000000..98f15af14 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideawgrant.md @@ -0,0 +1,22 @@ +# PersistImportedDeploymentRequestPendingPreparedStackOverrideAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackOverrideAwGrant } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackOverrideAwGrant = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideawresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideawresource.md new file mode 100644 index 000000000..f0c6583ac --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideawresource.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPendingPreparedStackOverrideAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackOverrideAwResource } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwResource = { + resources: [], + }; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideawstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideawstack.md new file mode 100644 index 000000000..e0bf2eaf9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideawstack.md @@ -0,0 +1,25 @@ +# PersistImportedDeploymentRequestPendingPreparedStackOverrideAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackOverrideAwStack } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackOverrideAwStack = + { + resources: [ + "", + "", + "", + ], + }; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideazure.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideazure.md new file mode 100644 index 000000000..0778f91d0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideazure.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPendingPreparedStackOverrideAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackOverrideAzure } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackOverrideAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureBinding](../models/persistimporteddeploymentrequestpendingpreparedstackoverrideazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureGrant](../models/persistimporteddeploymentrequestpendingpreparedstackoverrideazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideazurebinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideazurebinding.md new file mode 100644 index 000000000..13dbe361e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideazurebinding.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureBinding } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureResource](../models/persistimporteddeploymentrequestpendingpreparedstackoverrideazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureStack](../models/persistimporteddeploymentrequestpendingpreparedstackoverrideazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideazuregrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideazuregrant.md new file mode 100644 index 000000000..feb45ca0d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideazuregrant.md @@ -0,0 +1,22 @@ +# PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureGrant } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideazureresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideazureresource.md new file mode 100644 index 000000000..acb0ef570 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideazureresource.md @@ -0,0 +1,20 @@ +# PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureResource } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureResource = { + scope: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideazurestack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideazurestack.md new file mode 100644 index 000000000..8f458f733 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideazurestack.md @@ -0,0 +1,20 @@ +# PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureStack } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureStack = { + scope: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideconditionresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideconditionresource.md new file mode 100644 index 000000000..53660ffe4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideconditionresource.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionResource } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionResource = + { + expression: "", + title: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideconditionstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideconditionstack.md new file mode 100644 index 000000000..27c16109c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideconditionstack.md @@ -0,0 +1,22 @@ +# PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionStack } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionStack = { + expression: "", + title: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideeffect.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideeffect.md new file mode 100644 index 000000000..305f2c99f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideeffect.md @@ -0,0 +1,18 @@ +# PersistImportedDeploymentRequestPendingPreparedStackOverrideEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackOverrideEffect } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackOverrideEffect = + "Deny"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverridegcp.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverridegcp.md new file mode 100644 index 000000000..21a2c899c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverridegcp.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPendingPreparedStackOverrideGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackOverrideGcp } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackOverrideGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpBinding](../models/persistimporteddeploymentrequestpendingpreparedstackoverridegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpGrant](../models/persistimporteddeploymentrequestpendingpreparedstackoverridegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverridegcpbinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverridegcpbinding.md new file mode 100644 index 000000000..feea64311 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverridegcpbinding.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpBinding } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpResource](../models/persistimporteddeploymentrequestpendingpreparedstackoverridegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpStack](../models/persistimporteddeploymentrequestpendingpreparedstackoverridegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverridegcpgrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverridegcpgrant.md new file mode 100644 index 000000000..810a7806a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverridegcpgrant.md @@ -0,0 +1,22 @@ +# PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpGrant } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverridegcpresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverridegcpresource.md new file mode 100644 index 000000000..7fe11e5ef --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverridegcpresource.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpResource } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpResource = { + scope: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- | +| `condition` | *models.PersistImportedDeploymentRequestPendingPreparedStackOverrideResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverridegcpstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverridegcpstack.md new file mode 100644 index 000000000..e9ea21d6e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverridegcpstack.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpStack } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpStack = { + scope: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `condition` | *models.PersistImportedDeploymentRequestPendingPreparedStackOverrideStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideplatforms.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideplatforms.md new file mode 100644 index 000000000..6c52fa9eb --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideplatforms.md @@ -0,0 +1,20 @@ +# PersistImportedDeploymentRequestPendingPreparedStackOverridePlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackOverridePlatforms } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackOverridePlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `aws` | [models.PersistImportedDeploymentRequestPendingPreparedStackOverrideAw](../models/persistimporteddeploymentrequestpendingpreparedstackoverrideaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.PersistImportedDeploymentRequestPendingPreparedStackOverrideAzure](../models/persistimporteddeploymentrequestpendingpreparedstackoverrideazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.PersistImportedDeploymentRequestPendingPreparedStackOverrideGcp](../models/persistimporteddeploymentrequestpendingpreparedstackoverridegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideresourceconditionunion.md new file mode 100644 index 000000000..0360a4b20 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideresourceconditionunion.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPendingPreparedStackOverrideResourceConditionUnion + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionResource` + +```typescript +const value: + models.PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionResource = + { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverridestackconditionunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverridestackconditionunion.md new file mode 100644 index 000000000..11e9185da --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverridestackconditionunion.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPendingPreparedStackOverrideStackConditionUnion + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionStack` + +```typescript +const value: + models.PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionStack = + { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideunion.md new file mode 100644 index 000000000..eae79678f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackoverrideunion.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPendingPreparedStackOverrideUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPendingPreparedStackOverride` + +```typescript +const value: + models.PersistImportedDeploymentRequestPendingPreparedStackOverride = { + description: "pointed spring icy", + id: "", + platforms: {}, + }; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackpermissions.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackpermissions.md new file mode 100644 index 000000000..3a383141d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackpermissions.md @@ -0,0 +1,31 @@ +# PersistImportedDeploymentRequestPendingPreparedStackPermissions + +Combined permissions configuration that contains both profiles and management + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackPermissions } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackPermissions = { + profiles: { + "key": { + "key": [], + }, + "key1": { + "key": [], + "key1": [ + "", + ], + }, + "key2": {}, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `management` | *models.PersistImportedDeploymentRequestPendingPreparedStackManagementUnion* | :heavy_minus_sign: | Management permissions configuration for stack management access | +| `profiles` | Record> | :heavy_check_mark: | Permission profiles that define access control for compute services
Key is the profile name, value is the permission configuration | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackplatform.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackplatform.md new file mode 100644 index 000000000..45aa904e3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackplatform.md @@ -0,0 +1,18 @@ +# PersistImportedDeploymentRequestPendingPreparedStackPlatform + +Represents the target cloud platform. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackPlatform } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackPlatform = + "azure"; +``` + +## Values + +```typescript +"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofile.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofile.md new file mode 100644 index 000000000..ba814890b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofile.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPendingPreparedStackProfile + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackProfile } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackProfile = { + description: "sniveling reborn bemuse bar dutiful aw", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.PersistImportedDeploymentRequestPendingPreparedStackProfilePlatforms](../models/persistimporteddeploymentrequestpendingpreparedstackprofileplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileaw.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileaw.md new file mode 100644 index 000000000..558b226d4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileaw.md @@ -0,0 +1,24 @@ +# PersistImportedDeploymentRequestPendingPreparedStackProfileAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackProfileAw } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackProfileAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.PersistImportedDeploymentRequestPendingPreparedStackProfileAwBinding](../models/persistimporteddeploymentrequestpendingpreparedstackprofileawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.PersistImportedDeploymentRequestPendingPreparedStackProfileEffect](../models/persistimporteddeploymentrequestpendingpreparedstackprofileeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.PersistImportedDeploymentRequestPendingPreparedStackProfileAwGrant](../models/persistimporteddeploymentrequestpendingpreparedstackprofileawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileawbinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileawbinding.md new file mode 100644 index 000000000..133446739 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileawbinding.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPendingPreparedStackProfileAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackProfileAwBinding } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackProfileAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.PersistImportedDeploymentRequestPendingPreparedStackProfileAwResource](../models/persistimporteddeploymentrequestpendingpreparedstackprofileawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.PersistImportedDeploymentRequestPendingPreparedStackProfileAwStack](../models/persistimporteddeploymentrequestpendingpreparedstackprofileawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileawgrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileawgrant.md new file mode 100644 index 000000000..5673802b7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileawgrant.md @@ -0,0 +1,22 @@ +# PersistImportedDeploymentRequestPendingPreparedStackProfileAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackProfileAwGrant } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackProfileAwGrant = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileawresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileawresource.md new file mode 100644 index 000000000..8a4bdf7ba --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileawresource.md @@ -0,0 +1,24 @@ +# PersistImportedDeploymentRequestPendingPreparedStackProfileAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackProfileAwResource } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackProfileAwResource = { + resources: [ + "", + "", + ], + }; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileawstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileawstack.md new file mode 100644 index 000000000..58fcf85b9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileawstack.md @@ -0,0 +1,24 @@ +# PersistImportedDeploymentRequestPendingPreparedStackProfileAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackProfileAwStack } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackProfileAwStack = + { + resources: [ + "", + "", + ], + }; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileazure.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileazure.md new file mode 100644 index 000000000..a72a307b5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileazure.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPendingPreparedStackProfileAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackProfileAzure } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackProfileAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.PersistImportedDeploymentRequestPendingPreparedStackProfileAzureBinding](../models/persistimporteddeploymentrequestpendingpreparedstackprofileazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.PersistImportedDeploymentRequestPendingPreparedStackProfileAzureGrant](../models/persistimporteddeploymentrequestpendingpreparedstackprofileazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileazurebinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileazurebinding.md new file mode 100644 index 000000000..dd62be85d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileazurebinding.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPendingPreparedStackProfileAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackProfileAzureBinding } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.PersistImportedDeploymentRequestPendingPreparedStackProfileAzureResource](../models/persistimporteddeploymentrequestpendingpreparedstackprofileazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.PersistImportedDeploymentRequestPendingPreparedStackProfileAzureStack](../models/persistimporteddeploymentrequestpendingpreparedstackprofileazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileazuregrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileazuregrant.md new file mode 100644 index 000000000..df85bbb93 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileazuregrant.md @@ -0,0 +1,22 @@ +# PersistImportedDeploymentRequestPendingPreparedStackProfileAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackProfileAzureGrant } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileazureresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileazureresource.md new file mode 100644 index 000000000..104e61973 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileazureresource.md @@ -0,0 +1,20 @@ +# PersistImportedDeploymentRequestPendingPreparedStackProfileAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackProfileAzureResource } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureResource = { + scope: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileazurestack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileazurestack.md new file mode 100644 index 000000000..451d60044 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileazurestack.md @@ -0,0 +1,20 @@ +# PersistImportedDeploymentRequestPendingPreparedStackProfileAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackProfileAzureStack } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureStack = { + scope: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileconditionresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileconditionresource.md new file mode 100644 index 000000000..a39f5364b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileconditionresource.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPendingPreparedStackProfileConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackProfileConditionResource } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackProfileConditionResource = + { + expression: "", + title: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileconditionstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileconditionstack.md new file mode 100644 index 000000000..15426bf92 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileconditionstack.md @@ -0,0 +1,22 @@ +# PersistImportedDeploymentRequestPendingPreparedStackProfileConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackProfileConditionStack } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackProfileConditionStack = { + expression: "", + title: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileeffect.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileeffect.md new file mode 100644 index 000000000..0b0d9d4a8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileeffect.md @@ -0,0 +1,18 @@ +# PersistImportedDeploymentRequestPendingPreparedStackProfileEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackProfileEffect } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackProfileEffect = + "Deny"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofilegcp.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofilegcp.md new file mode 100644 index 000000000..883acf68f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofilegcp.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPendingPreparedStackProfileGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackProfileGcp } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackProfileGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.PersistImportedDeploymentRequestPendingPreparedStackProfileGcpBinding](../models/persistimporteddeploymentrequestpendingpreparedstackprofilegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.PersistImportedDeploymentRequestPendingPreparedStackProfileGcpGrant](../models/persistimporteddeploymentrequestpendingpreparedstackprofilegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofilegcpbinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofilegcpbinding.md new file mode 100644 index 000000000..d9bd8b03e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofilegcpbinding.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPendingPreparedStackProfileGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackProfileGcpBinding } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.PersistImportedDeploymentRequestPendingPreparedStackProfileGcpResource](../models/persistimporteddeploymentrequestpendingpreparedstackprofilegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.PersistImportedDeploymentRequestPendingPreparedStackProfileGcpStack](../models/persistimporteddeploymentrequestpendingpreparedstackprofilegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofilegcpgrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofilegcpgrant.md new file mode 100644 index 000000000..32377cd15 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofilegcpgrant.md @@ -0,0 +1,22 @@ +# PersistImportedDeploymentRequestPendingPreparedStackProfileGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackProfileGcpGrant } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackProfileGcpGrant = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofilegcpresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofilegcpresource.md new file mode 100644 index 000000000..8789a9006 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofilegcpresource.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPendingPreparedStackProfileGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackProfileGcpResource } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpResource = { + scope: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | +| `condition` | *models.PersistImportedDeploymentRequestPendingPreparedStackProfileResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofilegcpstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofilegcpstack.md new file mode 100644 index 000000000..219f225c9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofilegcpstack.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPendingPreparedStackProfileGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackProfileGcpStack } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackProfileGcpStack = + { + scope: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| `condition` | *models.PersistImportedDeploymentRequestPendingPreparedStackProfileStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileplatforms.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileplatforms.md new file mode 100644 index 000000000..770cb8968 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileplatforms.md @@ -0,0 +1,20 @@ +# PersistImportedDeploymentRequestPendingPreparedStackProfilePlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackProfilePlatforms } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackProfilePlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `aws` | [models.PersistImportedDeploymentRequestPendingPreparedStackProfileAw](../models/persistimporteddeploymentrequestpendingpreparedstackprofileaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.PersistImportedDeploymentRequestPendingPreparedStackProfileAzure](../models/persistimporteddeploymentrequestpendingpreparedstackprofileazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.PersistImportedDeploymentRequestPendingPreparedStackProfileGcp](../models/persistimporteddeploymentrequestpendingpreparedstackprofilegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileresourceconditionunion.md new file mode 100644 index 000000000..67df38825 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileresourceconditionunion.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPendingPreparedStackProfileResourceConditionUnion + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPendingPreparedStackProfileConditionResource` + +```typescript +const value: + models.PersistImportedDeploymentRequestPendingPreparedStackProfileConditionResource = + { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofilestackconditionunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofilestackconditionunion.md new file mode 100644 index 000000000..f5c41cb2e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofilestackconditionunion.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPendingPreparedStackProfileStackConditionUnion + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPendingPreparedStackProfileConditionStack` + +```typescript +const value: + models.PersistImportedDeploymentRequestPendingPreparedStackProfileConditionStack = + { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileunion.md new file mode 100644 index 000000000..2607fce0c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprofileunion.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPendingPreparedStackProfileUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPendingPreparedStackProfile` + +```typescript +const value: + models.PersistImportedDeploymentRequestPendingPreparedStackProfile = { + description: "sniveling reborn bemuse bar dutiful aw", + id: "", + platforms: {}, + }; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprovidedby.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprovidedby.md new file mode 100644 index 000000000..13ba81f0c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackprovidedby.md @@ -0,0 +1,18 @@ +# PersistImportedDeploymentRequestPendingPreparedStackProvidedBy + +Who can provide a stack input value. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackProvidedBy } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackProvidedBy = + "developer"; +``` + +## Values + +```typescript +"developer" | "deployer" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackresources.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackresources.md new file mode 100644 index 000000000..2015d4e81 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackresources.md @@ -0,0 +1,31 @@ +# PersistImportedDeploymentRequestPendingPreparedStackResources + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackResources } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackResources = { + config: { + id: "", + type: "", + }, + dependencies: [ + { + id: "", + type: "", + }, + ], + lifecycle: "live", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `config` | [models.PersistImportedDeploymentRequestPendingPreparedStackConfig](../models/persistimporteddeploymentrequestpendingpreparedstackconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | +| `dependencies` | [models.PersistImportedDeploymentRequestPendingPreparedStackDependency](../models/persistimporteddeploymentrequestpendingpreparedstackdependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | +| `enabledWhen` | *string* | :heavy_minus_sign: | Id of the boolean stack input that decides whether this resource is
created at all. `None` means always create it.

Set by `.enabled(input)` in the SDK. Setup emitters render the resource
conditionally on the matching template variable, so a deployer who says no
never gets the resource, its outputs, or anything derived from it. | +| `lifecycle` | [models.PersistImportedDeploymentRequestPendingPreparedStackLifecycle](../models/persistimporteddeploymentrequestpendingpreparedstacklifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | +| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstacksupportedplatform.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstacksupportedplatform.md new file mode 100644 index 000000000..36cfc1927 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstacksupportedplatform.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPendingPreparedStackSupportedPlatform + +Represents the target cloud platform. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackSupportedPlatform } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPendingPreparedStackSupportedPlatform = + "azure"; +``` + +## Values + +```typescript +"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstacktypeboolean.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstacktypeboolean.md new file mode 100644 index 000000000..22514880f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstacktypeboolean.md @@ -0,0 +1,16 @@ +# PersistImportedDeploymentRequestPendingPreparedStackTypeBoolean + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackTypeBoolean } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackTypeBoolean = + "boolean"; +``` + +## Values + +```typescript +"boolean" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstacktypeenvenum.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstacktypeenvenum.md new file mode 100644 index 000000000..e3b484082 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstacktypeenvenum.md @@ -0,0 +1,18 @@ +# PersistImportedDeploymentRequestPendingPreparedStackTypeEnvEnum + +Environment variable handling for a stack input mapping. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackTypeEnvEnum } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackTypeEnvEnum = + "plain"; +``` + +## Values + +```typescript +"plain" | "secret" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstacktypenumber.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstacktypenumber.md new file mode 100644 index 000000000..dbe34a7a5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstacktypenumber.md @@ -0,0 +1,16 @@ +# PersistImportedDeploymentRequestPendingPreparedStackTypeNumber + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackTypeNumber } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackTypeNumber = + "number"; +``` + +## Values + +```typescript +"number" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstacktypestring.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstacktypestring.md new file mode 100644 index 000000000..b0c07da55 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstacktypestring.md @@ -0,0 +1,16 @@ +# PersistImportedDeploymentRequestPendingPreparedStackTypeString + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackTypeString } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackTypeString = + "string"; +``` + +## Values + +```typescript +"string" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstacktypestringlist.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstacktypestringlist.md new file mode 100644 index 000000000..102e7b5f8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstacktypestringlist.md @@ -0,0 +1,16 @@ +# PersistImportedDeploymentRequestPendingPreparedStackTypeStringList + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackTypeStringList } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackTypeStringList = + "stringList"; +``` + +## Values + +```typescript +"stringList" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstacktypeunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstacktypeunion.md new file mode 100644 index 000000000..2d7c7da8d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstacktypeunion.md @@ -0,0 +1,18 @@ +# PersistImportedDeploymentRequestPendingPreparedStackTypeUnion + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPendingPreparedStackTypeEnvEnum` + +```typescript +const value: + models.PersistImportedDeploymentRequestPendingPreparedStackTypeEnvEnum = + "plain"; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackunion.md new file mode 100644 index 000000000..abed3db28 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackunion.md @@ -0,0 +1,28 @@ +# PersistImportedDeploymentRequestPendingPreparedStackUnion + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPendingPreparedStack` + +```typescript +const value: models.PersistImportedDeploymentRequestPendingPreparedStack = { + id: "", + resources: { + "key": { + config: { + id: "", + type: "", + }, + dependencies: [], + lifecycle: "live", + }, + }, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackvalidation.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackvalidation.md new file mode 100644 index 000000000..ceced57c0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackvalidation.md @@ -0,0 +1,25 @@ +# PersistImportedDeploymentRequestPendingPreparedStackValidation + +Portable stack input validation constraints. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPendingPreparedStackValidation } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPendingPreparedStackValidation = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `format` | *string* | :heavy_minus_sign: | Semantic format hint such as url. | +| `max` | *string* | :heavy_minus_sign: | Maximum number. | +| `maxItems` | *number* | :heavy_minus_sign: | Maximum string-list items. | +| `maxLength` | *number* | :heavy_minus_sign: | Maximum string length. | +| `min` | *string* | :heavy_minus_sign: | Minimum number. | +| `minItems` | *number* | :heavy_minus_sign: | Minimum string-list items. | +| `minLength` | *number* | :heavy_minus_sign: | Minimum string length. | +| `pattern` | *string* | :heavy_minus_sign: | Portable whole-value regex pattern. | +| `values` | *string*[] | :heavy_minus_sign: | Allowed string enum values. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackvalidationunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackvalidationunion.md new file mode 100644 index 000000000..fd8bd0b33 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpendingpreparedstackvalidationunion.md @@ -0,0 +1,17 @@ +# PersistImportedDeploymentRequestPendingPreparedStackValidationUnion + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPendingPreparedStackValidation` + +```typescript +const value: + models.PersistImportedDeploymentRequestPendingPreparedStackValidation = {}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpermissions.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpermissions.md deleted file mode 100644 index 070756002..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpermissions.md +++ /dev/null @@ -1,20 +0,0 @@ -# PersistImportedDeploymentRequestPermissions - -Combined permissions configuration that contains both profiles and management - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestPermissions } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestPermissions = { - profiles: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | -| `management` | *models.PersistImportedDeploymentRequestManagementUnion* | :heavy_minus_sign: | Management permissions configuration for stack management access | -| `profiles` | Record> | :heavy_check_mark: | Permission profiles that define access control for compute services
Key is the profile name, value is the permission configuration | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpoolsautoscale.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpoolsautoscale.md index 661e9e98d..acacda68b 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpoolsautoscale.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpoolsautoscale.md @@ -14,9 +14,10 @@ let value: PersistImportedDeploymentRequestPoolsAutoscale = { ## Fields -| Field | Type | Required | Description | -| --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | -| `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | -| `max` | *number* | :heavy_check_mark: | Maximum machine count. | -| `min` | *number* | :heavy_check_mark: | Minimum machine count. | -| `mode` | *"autoscale"* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | +| `failureDomains` | *models.PersistImportedDeploymentRequestFailureDomainsUnion2* | :heavy_minus_sign: | N/A | +| `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | +| `max` | *number* | :heavy_check_mark: | Maximum machine count. | +| `min` | *number* | :heavy_check_mark: | Minimum machine count. | +| `mode` | *"autoscale"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpoolsfixed.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpoolsfixed.md index 689af226d..11c2806c2 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpoolsfixed.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpoolsfixed.md @@ -13,8 +13,9 @@ let value: PersistImportedDeploymentRequestPoolsFixed = { ## Fields -| Field | Type | Required | Description | -| --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | -| `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | -| `machines` | *number* | :heavy_check_mark: | Number of machines to run. | -| `mode` | *"fixed"* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | +| `failureDomains` | *models.PersistImportedDeploymentRequestFailureDomainsUnion1* | :heavy_minus_sign: | N/A | +| `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | +| `machines` | *number* | :heavy_check_mark: | Number of machines to run. | +| `mode` | *"fixed"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpoolsunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpoolsunion.md index 4f7817ca8..5806ab22b 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpoolsunion.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpoolsunion.md @@ -23,4 +23,3 @@ const value: models.PersistImportedDeploymentRequestPoolsAutoscale = { mode: "autoscale", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstack.md index c6800e43d..fc0a9d33d 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstack.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstack.md @@ -15,10 +15,10 @@ let value: PersistImportedDeploymentRequestPreparedStack = { ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -| `id` | *string* | :heavy_check_mark: | Unique identifier for the stack | -| `inputs` | [models.PersistImportedDeploymentRequestInput](../models/persistimporteddeploymentrequestinput.md)[] | :heavy_minus_sign: | Input definitions required before setup or deployment can proceed. | -| `permissions` | [models.PersistImportedDeploymentRequestPermissions](../models/persistimporteddeploymentrequestpermissions.md) | :heavy_minus_sign: | Combined permissions configuration that contains both profiles and management | -| `resources` | Record | :heavy_check_mark: | Map of resource IDs to their configurations and lifecycle settings | -| `supportedPlatforms` | [models.PersistImportedDeploymentRequestSupportedPlatform](../models/persistimporteddeploymentrequestsupportedplatform.md)[] | :heavy_minus_sign: | Which platforms this stack supports. When None, all platforms are supported. | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the stack | +| `inputs` | [models.PersistImportedDeploymentRequestPreparedStackInput](../models/persistimporteddeploymentrequestpreparedstackinput.md)[] | :heavy_minus_sign: | Input definitions required before setup or deployment can proceed. | +| `permissions` | [models.PersistImportedDeploymentRequestPreparedStackPermissions](../models/persistimporteddeploymentrequestpreparedstackpermissions.md) | :heavy_minus_sign: | Combined permissions configuration that contains both profiles and management | +| `resources` | Record | :heavy_check_mark: | Map of resource IDs to their configurations and lifecycle settings | +| `supportedPlatforms` | [models.PersistImportedDeploymentRequestPreparedStackSupportedPlatform](../models/persistimporteddeploymentrequestpreparedstacksupportedplatform.md)[] | :heavy_minus_sign: | Which platforms this stack supports. When None, all platforms are supported. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackconfig.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackconfig.md new file mode 100644 index 000000000..2a831534c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackconfig.md @@ -0,0 +1,22 @@ +# PersistImportedDeploymentRequestPreparedStackConfig + +Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackConfig } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackConfig = { + id: "", + type: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. | +| `type` | *string* | :heavy_check_mark: | Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. | +| `additionalProperties` | Record | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackdefaultboolean.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackdefaultboolean.md new file mode 100644 index 000000000..b622c9b3a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackdefaultboolean.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPreparedStackDefaultBoolean + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackDefaultBoolean } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackDefaultBoolean = { + type: "boolean", + value: false, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | [models.PersistImportedDeploymentRequestPreparedStackTypeBoolean](../models/persistimporteddeploymentrequestpreparedstacktypeboolean.md) | :heavy_check_mark: | N/A | +| `value` | *boolean* | :heavy_check_mark: | Boolean default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackdefaultnumber.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackdefaultnumber.md new file mode 100644 index 000000000..c414da251 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackdefaultnumber.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPreparedStackDefaultNumber + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackDefaultNumber } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackDefaultNumber = { + type: "number", + value: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | [models.PersistImportedDeploymentRequestPreparedStackTypeNumber](../models/persistimporteddeploymentrequestpreparedstacktypenumber.md) | :heavy_check_mark: | N/A | +| `value` | *string* | :heavy_check_mark: | Number default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackdefaultstring.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackdefaultstring.md new file mode 100644 index 000000000..a9b57b052 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackdefaultstring.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPreparedStackDefaultString + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackDefaultString } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackDefaultString = { + type: "string", + value: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | [models.PersistImportedDeploymentRequestPreparedStackTypeString](../models/persistimporteddeploymentrequestpreparedstacktypestring.md) | :heavy_check_mark: | N/A | +| `value` | *string* | :heavy_check_mark: | String default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackdefaultstringlist.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackdefaultstringlist.md new file mode 100644 index 000000000..a1ba1a79e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackdefaultstringlist.md @@ -0,0 +1,22 @@ +# PersistImportedDeploymentRequestPreparedStackDefaultStringList + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackDefaultStringList } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackDefaultStringList = { + type: "stringList", + value: [ + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | [models.PersistImportedDeploymentRequestPreparedStackTypeStringList](../models/persistimporteddeploymentrequestpreparedstacktypestringlist.md) | :heavy_check_mark: | N/A | +| `value` | *string*[] | :heavy_check_mark: | String list default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackdefaultunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackdefaultunion.md new file mode 100644 index 000000000..568630e11 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackdefaultunion.md @@ -0,0 +1,53 @@ +# PersistImportedDeploymentRequestPreparedStackDefaultUnion + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPreparedStackDefaultString` + +```typescript +const value: models.PersistImportedDeploymentRequestPreparedStackDefaultString = + { + type: "string", + value: "", + }; +``` + +### `models.PersistImportedDeploymentRequestPreparedStackDefaultNumber` + +```typescript +const value: models.PersistImportedDeploymentRequestPreparedStackDefaultNumber = + { + type: "number", + value: "", + }; +``` + +### `models.PersistImportedDeploymentRequestPreparedStackDefaultBoolean` + +```typescript +const value: + models.PersistImportedDeploymentRequestPreparedStackDefaultBoolean = { + type: "boolean", + value: false, + }; +``` + +### `models.PersistImportedDeploymentRequestPreparedStackDefaultStringList` + +```typescript +const value: + models.PersistImportedDeploymentRequestPreparedStackDefaultStringList = { + type: "stringList", + value: [ + "", + "", + ], + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackdependency.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackdependency.md new file mode 100644 index 000000000..d2b0dc02b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackdependency.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPreparedStackDependency + +Reference to a resource by its stable id and resource type. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackDependency } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackDependency = { + id: "", + type: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | N/A | +| `type` | *string* | :heavy_check_mark: | Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackenv.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackenv.md new file mode 100644 index 000000000..f53889e77 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackenv.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPreparedStackEnv + +How a resolved stack input is injected into runtime environment variables. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackEnv } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackEnv = { + name: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| `name` | *string* | :heavy_check_mark: | Environment variable name. | +| `targetResources` | *string*[] | :heavy_minus_sign: | Target resource IDs or patterns. None means every env-capable resource. | +| `type` | *models.PersistImportedDeploymentRequestPreparedStackTypeUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextend.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextend.md new file mode 100644 index 000000000..68bfbf429 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextend.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPreparedStackExtend + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackExtend } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackExtend = { + description: "closely christen famously curiously", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.PersistImportedDeploymentRequestPreparedStackExtendPlatforms](../models/persistimporteddeploymentrequestpreparedstackextendplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendaw.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendaw.md new file mode 100644 index 000000000..c9e5fb1a5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendaw.md @@ -0,0 +1,24 @@ +# PersistImportedDeploymentRequestPreparedStackExtendAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackExtendAw } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackExtendAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.PersistImportedDeploymentRequestPreparedStackExtendAwBinding](../models/persistimporteddeploymentrequestpreparedstackextendawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.PersistImportedDeploymentRequestPreparedStackExtendEffect](../models/persistimporteddeploymentrequestpreparedstackextendeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.PersistImportedDeploymentRequestPreparedStackExtendAwGrant](../models/persistimporteddeploymentrequestpreparedstackextendawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendawbinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendawbinding.md new file mode 100644 index 000000000..e720f76b0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendawbinding.md @@ -0,0 +1,18 @@ +# PersistImportedDeploymentRequestPreparedStackExtendAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackExtendAwBinding } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackExtendAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.PersistImportedDeploymentRequestPreparedStackExtendAwResource](../models/persistimporteddeploymentrequestpreparedstackextendawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.PersistImportedDeploymentRequestPreparedStackExtendAwStack](../models/persistimporteddeploymentrequestpreparedstackextendawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendawgrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendawgrant.md new file mode 100644 index 000000000..defbe2d32 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendawgrant.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPreparedStackExtendAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackExtendAwGrant } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackExtendAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendawresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendawresource.md new file mode 100644 index 000000000..cda2255f7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendawresource.md @@ -0,0 +1,24 @@ +# PersistImportedDeploymentRequestPreparedStackExtendAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackExtendAwResource } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackExtendAwResource = { + resources: [ + "", + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendawstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendawstack.md new file mode 100644 index 000000000..71e1448e7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendawstack.md @@ -0,0 +1,22 @@ +# PersistImportedDeploymentRequestPreparedStackExtendAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackExtendAwStack } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackExtendAwStack = { + resources: [ + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendazure.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendazure.md new file mode 100644 index 000000000..7c7d99b93 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendazure.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPreparedStackExtendAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackExtendAzure } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackExtendAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.PersistImportedDeploymentRequestPreparedStackExtendAzureBinding](../models/persistimporteddeploymentrequestpreparedstackextendazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.PersistImportedDeploymentRequestPreparedStackExtendAzureGrant](../models/persistimporteddeploymentrequestpreparedstackextendazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendazurebinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendazurebinding.md new file mode 100644 index 000000000..297ebc712 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendazurebinding.md @@ -0,0 +1,18 @@ +# PersistImportedDeploymentRequestPreparedStackExtendAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackExtendAzureBinding } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackExtendAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.PersistImportedDeploymentRequestPreparedStackExtendAzureResource](../models/persistimporteddeploymentrequestpreparedstackextendazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.PersistImportedDeploymentRequestPreparedStackExtendAzureStack](../models/persistimporteddeploymentrequestpreparedstackextendazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendazuregrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendazuregrant.md new file mode 100644 index 000000000..539ae1027 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendazuregrant.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPreparedStackExtendAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackExtendAzureGrant } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackExtendAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendazureresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendazureresource.md new file mode 100644 index 000000000..e138d1f0a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendazureresource.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPreparedStackExtendAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackExtendAzureResource } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackExtendAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendazurestack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendazurestack.md new file mode 100644 index 000000000..16b8eb532 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendazurestack.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPreparedStackExtendAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackExtendAzureStack } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackExtendAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendconditionresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendconditionresource.md new file mode 100644 index 000000000..4f6fa6b2e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendconditionresource.md @@ -0,0 +1,22 @@ +# PersistImportedDeploymentRequestPreparedStackExtendConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackExtendConditionResource } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPreparedStackExtendConditionResource = { + expression: "", + title: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendconditionstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendconditionstack.md new file mode 100644 index 000000000..4e5452e6f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendconditionstack.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPreparedStackExtendConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackExtendConditionStack } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackExtendConditionStack = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendeffect.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendeffect.md new file mode 100644 index 000000000..27e20a339 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendeffect.md @@ -0,0 +1,17 @@ +# PersistImportedDeploymentRequestPreparedStackExtendEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackExtendEffect } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackExtendEffect = "Allow"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendgcp.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendgcp.md new file mode 100644 index 000000000..4a363d606 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendgcp.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPreparedStackExtendGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackExtendGcp } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackExtendGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.PersistImportedDeploymentRequestPreparedStackExtendGcpBinding](../models/persistimporteddeploymentrequestpreparedstackextendgcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.PersistImportedDeploymentRequestPreparedStackExtendGcpGrant](../models/persistimporteddeploymentrequestpreparedstackextendgcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendgcpbinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendgcpbinding.md new file mode 100644 index 000000000..36f09882b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendgcpbinding.md @@ -0,0 +1,18 @@ +# PersistImportedDeploymentRequestPreparedStackExtendGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackExtendGcpBinding } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackExtendGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.PersistImportedDeploymentRequestPreparedStackExtendGcpResource](../models/persistimporteddeploymentrequestpreparedstackextendgcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.PersistImportedDeploymentRequestPreparedStackExtendGcpStack](../models/persistimporteddeploymentrequestpreparedstackextendgcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendgcpgrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendgcpgrant.md new file mode 100644 index 000000000..fa9ea6f1a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendgcpgrant.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPreparedStackExtendGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackExtendGcpGrant } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackExtendGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendgcpresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendgcpresource.md new file mode 100644 index 000000000..ebe6eeda2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendgcpresource.md @@ -0,0 +1,20 @@ +# PersistImportedDeploymentRequestPreparedStackExtendGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackExtendGcpResource } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackExtendGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | +| `condition` | *models.PersistImportedDeploymentRequestPreparedStackExtendResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendgcpstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendgcpstack.md new file mode 100644 index 000000000..41ec3303a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendgcpstack.md @@ -0,0 +1,20 @@ +# PersistImportedDeploymentRequestPreparedStackExtendGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackExtendGcpStack } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackExtendGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | +| `condition` | *models.PersistImportedDeploymentRequestPreparedStackExtendStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendplatforms.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendplatforms.md new file mode 100644 index 000000000..fba304c70 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendplatforms.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPreparedStackExtendPlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackExtendPlatforms } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackExtendPlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | +| `aws` | [models.PersistImportedDeploymentRequestPreparedStackExtendAw](../models/persistimporteddeploymentrequestpreparedstackextendaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.PersistImportedDeploymentRequestPreparedStackExtendAzure](../models/persistimporteddeploymentrequestpreparedstackextendazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.PersistImportedDeploymentRequestPreparedStackExtendGcp](../models/persistimporteddeploymentrequestpreparedstackextendgcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendresourceconditionunion.md new file mode 100644 index 000000000..6ab19b3e4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendresourceconditionunion.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPreparedStackExtendResourceConditionUnion + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPreparedStackExtendConditionResource` + +```typescript +const value: + models.PersistImportedDeploymentRequestPreparedStackExtendConditionResource = + { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendstackconditionunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendstackconditionunion.md new file mode 100644 index 000000000..6ac063cdd --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendstackconditionunion.md @@ -0,0 +1,20 @@ +# PersistImportedDeploymentRequestPreparedStackExtendStackConditionUnion + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPreparedStackExtendConditionStack` + +```typescript +const value: + models.PersistImportedDeploymentRequestPreparedStackExtendConditionStack = { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendunion.md new file mode 100644 index 000000000..c9d04458c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackextendunion.md @@ -0,0 +1,22 @@ +# PersistImportedDeploymentRequestPreparedStackExtendUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPreparedStackExtend` + +```typescript +const value: models.PersistImportedDeploymentRequestPreparedStackExtend = { + description: "closely christen famously curiously", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackinput.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackinput.md new file mode 100644 index 000000000..14be2d5b0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackinput.md @@ -0,0 +1,36 @@ +# PersistImportedDeploymentRequestPreparedStackInput + +Stack input definition serialized into a release stack. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackInput } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackInput = { + description: "yowza athwart till before", + id: "", + kind: "string", + label: "", + providedBy: [ + "developer", + ], + required: false, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `default` | *models.PersistImportedDeploymentRequestPreparedStackDefaultUnion* | :heavy_minus_sign: | N/A | +| `description` | *string* | :heavy_check_mark: | Human-facing helper text. | +| `env` | [models.PersistImportedDeploymentRequestPreparedStackEnv](../models/persistimporteddeploymentrequestpreparedstackenv.md)[] | :heavy_minus_sign: | Runtime env-var mappings for v1 input resolution. | +| `id` | *string* | :heavy_check_mark: | Stable input ID used by CLI/API calls. | +| `kind` | [models.PersistImportedDeploymentRequestPreparedStackKind](../models/persistimporteddeploymentrequestpreparedstackkind.md) | :heavy_check_mark: | Primitive stack input kind. | +| `label` | *string* | :heavy_check_mark: | Human-facing field label. | +| `placeholder` | *string* | :heavy_minus_sign: | Example placeholder shown in UI. | +| `platforms` | [models.PersistImportedDeploymentRequestPreparedStackPlatform](../models/persistimporteddeploymentrequestpreparedstackplatform.md)[] | :heavy_minus_sign: | Platforms where this input applies. | +| `providedBy` | [models.PersistImportedDeploymentRequestPreparedStackProvidedBy](../models/persistimporteddeploymentrequestpreparedstackprovidedby.md)[] | :heavy_check_mark: | Who can provide this value. | +| `required` | *boolean* | :heavy_check_mark: | Whether a resolved value is required before deployment can proceed. | +| `validation` | *models.PersistImportedDeploymentRequestPreparedStackValidationUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackkind.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackkind.md new file mode 100644 index 000000000..cf3cfa7ba --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackkind.md @@ -0,0 +1,17 @@ +# PersistImportedDeploymentRequestPreparedStackKind + +Primitive stack input kind. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackKind } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackKind = "string"; +``` + +## Values + +```typescript +"string" | "secret" | "number" | "integer" | "boolean" | "enum" | "stringList" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstacklifecycle.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstacklifecycle.md new file mode 100644 index 000000000..baaf0fb79 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstacklifecycle.md @@ -0,0 +1,17 @@ +# PersistImportedDeploymentRequestPreparedStackLifecycle + +Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackLifecycle } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackLifecycle = "live"; +``` + +## Values + +```typescript +"frozen" | "live" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackmanagement1.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackmanagement1.md new file mode 100644 index 000000000..3dc227012 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackmanagement1.md @@ -0,0 +1,17 @@ +# PersistImportedDeploymentRequestPreparedStackManagement1 + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackManagement1 } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackManagement1 = { + extend: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `extend` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackmanagement2.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackmanagement2.md new file mode 100644 index 000000000..18c640a7f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackmanagement2.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPreparedStackManagement2 + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackManagement2 } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackManagement2 = { + override: { + "key": [], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `override` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackmanagementenum.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackmanagementenum.md new file mode 100644 index 000000000..0761fb8c0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackmanagementenum.md @@ -0,0 +1,15 @@ +# PersistImportedDeploymentRequestPreparedStackManagementEnum + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackManagementEnum } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackManagementEnum = "auto"; +``` + +## Values + +```typescript +"auto" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackmanagementunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackmanagementunion.md new file mode 100644 index 000000000..c63e80f4e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackmanagementunion.md @@ -0,0 +1,31 @@ +# PersistImportedDeploymentRequestPreparedStackManagementUnion + +Management permissions configuration for stack management access + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPreparedStackManagement1` + +```typescript +const value: models.PersistImportedDeploymentRequestPreparedStackManagement1 = { + extend: {}, +}; +``` + +### `models.PersistImportedDeploymentRequestPreparedStackManagement2` + +```typescript +const value: models.PersistImportedDeploymentRequestPreparedStackManagement2 = { + override: { + "key": [], + }, +}; +``` + +### `models.PersistImportedDeploymentRequestPreparedStackManagementEnum` + +```typescript +const value: + models.PersistImportedDeploymentRequestPreparedStackManagementEnum = "auto"; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverride.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverride.md new file mode 100644 index 000000000..0fdddc1d3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverride.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPreparedStackOverride + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackOverride } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackOverride = { + description: "edge bleakly quicker splosh caring nor moor yuck", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.PersistImportedDeploymentRequestPreparedStackOverridePlatforms](../models/persistimporteddeploymentrequestpreparedstackoverrideplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideaw.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideaw.md new file mode 100644 index 000000000..778a55219 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideaw.md @@ -0,0 +1,24 @@ +# PersistImportedDeploymentRequestPreparedStackOverrideAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackOverrideAw } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackOverrideAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.PersistImportedDeploymentRequestPreparedStackOverrideAwBinding](../models/persistimporteddeploymentrequestpreparedstackoverrideawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.PersistImportedDeploymentRequestPreparedStackOverrideEffect](../models/persistimporteddeploymentrequestpreparedstackoverrideeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.PersistImportedDeploymentRequestPreparedStackOverrideAwGrant](../models/persistimporteddeploymentrequestpreparedstackoverrideawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideawbinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideawbinding.md new file mode 100644 index 000000000..c5eadd528 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideawbinding.md @@ -0,0 +1,18 @@ +# PersistImportedDeploymentRequestPreparedStackOverrideAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackOverrideAwBinding } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackOverrideAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.PersistImportedDeploymentRequestPreparedStackOverrideAwResource](../models/persistimporteddeploymentrequestpreparedstackoverrideawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.PersistImportedDeploymentRequestPreparedStackOverrideAwStack](../models/persistimporteddeploymentrequestpreparedstackoverrideawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideawgrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideawgrant.md new file mode 100644 index 000000000..8d832fcd4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideawgrant.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPreparedStackOverrideAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackOverrideAwGrant } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackOverrideAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideawresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideawresource.md new file mode 100644 index 000000000..3eaa217ff --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideawresource.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPreparedStackOverrideAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackOverrideAwResource } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackOverrideAwResource = { + resources: [ + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideawstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideawstack.md new file mode 100644 index 000000000..dac540c16 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideawstack.md @@ -0,0 +1,24 @@ +# PersistImportedDeploymentRequestPreparedStackOverrideAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackOverrideAwStack } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackOverrideAwStack = { + resources: [ + "", + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideazure.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideazure.md new file mode 100644 index 000000000..a766b2eb4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideazure.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPreparedStackOverrideAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackOverrideAzure } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackOverrideAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.PersistImportedDeploymentRequestPreparedStackOverrideAzureBinding](../models/persistimporteddeploymentrequestpreparedstackoverrideazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.PersistImportedDeploymentRequestPreparedStackOverrideAzureGrant](../models/persistimporteddeploymentrequestpreparedstackoverrideazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideazurebinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideazurebinding.md new file mode 100644 index 000000000..8d687c3d2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideazurebinding.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPreparedStackOverrideAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackOverrideAzureBinding } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackOverrideAzureBinding = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.PersistImportedDeploymentRequestPreparedStackOverrideAzureResource](../models/persistimporteddeploymentrequestpreparedstackoverrideazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.PersistImportedDeploymentRequestPreparedStackOverrideAzureStack](../models/persistimporteddeploymentrequestpreparedstackoverrideazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideazuregrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideazuregrant.md new file mode 100644 index 000000000..756ecae83 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideazuregrant.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPreparedStackOverrideAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackOverrideAzureGrant } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackOverrideAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideazureresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideazureresource.md new file mode 100644 index 000000000..769b9df15 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideazureresource.md @@ -0,0 +1,20 @@ +# PersistImportedDeploymentRequestPreparedStackOverrideAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackOverrideAzureResource } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackOverrideAzureResource = + { + scope: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideazurestack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideazurestack.md new file mode 100644 index 000000000..37152361f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideazurestack.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPreparedStackOverrideAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackOverrideAzureStack } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackOverrideAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideconditionresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideconditionresource.md new file mode 100644 index 000000000..abac9d743 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideconditionresource.md @@ -0,0 +1,22 @@ +# PersistImportedDeploymentRequestPreparedStackOverrideConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackOverrideConditionResource } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPreparedStackOverrideConditionResource = { + expression: "", + title: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideconditionstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideconditionstack.md new file mode 100644 index 000000000..56597ff21 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideconditionstack.md @@ -0,0 +1,22 @@ +# PersistImportedDeploymentRequestPreparedStackOverrideConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackOverrideConditionStack } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackOverrideConditionStack = + { + expression: "", + title: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideeffect.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideeffect.md new file mode 100644 index 000000000..b86aa0709 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideeffect.md @@ -0,0 +1,18 @@ +# PersistImportedDeploymentRequestPreparedStackOverrideEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackOverrideEffect } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackOverrideEffect = + "Allow"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverridegcp.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverridegcp.md new file mode 100644 index 000000000..7877d5ec3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverridegcp.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPreparedStackOverrideGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackOverrideGcp } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackOverrideGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.PersistImportedDeploymentRequestPreparedStackOverrideGcpBinding](../models/persistimporteddeploymentrequestpreparedstackoverridegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.PersistImportedDeploymentRequestPreparedStackOverrideGcpGrant](../models/persistimporteddeploymentrequestpreparedstackoverridegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverridegcpbinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverridegcpbinding.md new file mode 100644 index 000000000..897593b28 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverridegcpbinding.md @@ -0,0 +1,18 @@ +# PersistImportedDeploymentRequestPreparedStackOverrideGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackOverrideGcpBinding } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackOverrideGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.PersistImportedDeploymentRequestPreparedStackOverrideGcpResource](../models/persistimporteddeploymentrequestpreparedstackoverridegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.PersistImportedDeploymentRequestPreparedStackOverrideGcpStack](../models/persistimporteddeploymentrequestpreparedstackoverridegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverridegcpgrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverridegcpgrant.md new file mode 100644 index 000000000..b936ee071 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverridegcpgrant.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPreparedStackOverrideGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackOverrideGcpGrant } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackOverrideGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverridegcpresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverridegcpresource.md new file mode 100644 index 000000000..e8477494d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverridegcpresource.md @@ -0,0 +1,20 @@ +# PersistImportedDeploymentRequestPreparedStackOverrideGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackOverrideGcpResource } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackOverrideGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `condition` | *models.PersistImportedDeploymentRequestPreparedStackOverrideResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverridegcpstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverridegcpstack.md new file mode 100644 index 000000000..df38a6a43 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverridegcpstack.md @@ -0,0 +1,20 @@ +# PersistImportedDeploymentRequestPreparedStackOverrideGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackOverrideGcpStack } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackOverrideGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| `condition` | *models.PersistImportedDeploymentRequestPreparedStackOverrideStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideplatforms.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideplatforms.md new file mode 100644 index 000000000..91dba0947 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideplatforms.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPreparedStackOverridePlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackOverridePlatforms } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackOverridePlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `aws` | [models.PersistImportedDeploymentRequestPreparedStackOverrideAw](../models/persistimporteddeploymentrequestpreparedstackoverrideaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.PersistImportedDeploymentRequestPreparedStackOverrideAzure](../models/persistimporteddeploymentrequestpreparedstackoverrideazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.PersistImportedDeploymentRequestPreparedStackOverrideGcp](../models/persistimporteddeploymentrequestpreparedstackoverridegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideresourceconditionunion.md new file mode 100644 index 000000000..b15490e6e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideresourceconditionunion.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPreparedStackOverrideResourceConditionUnion + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPreparedStackOverrideConditionResource` + +```typescript +const value: + models.PersistImportedDeploymentRequestPreparedStackOverrideConditionResource = + { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverridestackconditionunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverridestackconditionunion.md new file mode 100644 index 000000000..a92e25b36 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverridestackconditionunion.md @@ -0,0 +1,20 @@ +# PersistImportedDeploymentRequestPreparedStackOverrideStackConditionUnion + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPreparedStackOverrideConditionStack` + +```typescript +const value: + models.PersistImportedDeploymentRequestPreparedStackOverrideConditionStack = { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideunion.md new file mode 100644 index 000000000..0a1060f19 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackoverrideunion.md @@ -0,0 +1,22 @@ +# PersistImportedDeploymentRequestPreparedStackOverrideUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPreparedStackOverride` + +```typescript +const value: models.PersistImportedDeploymentRequestPreparedStackOverride = { + description: "edge bleakly quicker splosh caring nor moor yuck", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackpermissions.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackpermissions.md new file mode 100644 index 000000000..53a07b01f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackpermissions.md @@ -0,0 +1,42 @@ +# PersistImportedDeploymentRequestPreparedStackPermissions + +Combined permissions configuration that contains both profiles and management + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackPermissions } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackPermissions = { + profiles: { + "key": { + "key": [], + "key1": [], + "key2": [ + { + description: "mentor formula hm deliquesce forgery deceivingly nor", + id: "", + platforms: {}, + }, + ], + }, + "key1": { + "key": [], + "key1": [ + { + description: "mentor formula hm deliquesce forgery deceivingly nor", + id: "", + platforms: {}, + }, + ], + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `management` | *models.PersistImportedDeploymentRequestPreparedStackManagementUnion* | :heavy_minus_sign: | Management permissions configuration for stack management access | +| `profiles` | Record> | :heavy_check_mark: | Permission profiles that define access control for compute services
Key is the profile name, value is the permission configuration | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofile.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofile.md new file mode 100644 index 000000000..03be245f4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofile.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPreparedStackProfile + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackProfile } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackProfile = { + description: "meh rarely lamp eek whereas an nougat although hence", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.PersistImportedDeploymentRequestPreparedStackProfilePlatforms](../models/persistimporteddeploymentrequestpreparedstackprofileplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileaw.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileaw.md new file mode 100644 index 000000000..6c815b0d3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileaw.md @@ -0,0 +1,24 @@ +# PersistImportedDeploymentRequestPreparedStackProfileAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackProfileAw } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackProfileAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.PersistImportedDeploymentRequestPreparedStackProfileAwBinding](../models/persistimporteddeploymentrequestpreparedstackprofileawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.PersistImportedDeploymentRequestPreparedStackProfileEffect](../models/persistimporteddeploymentrequestpreparedstackprofileeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.PersistImportedDeploymentRequestPreparedStackProfileAwGrant](../models/persistimporteddeploymentrequestpreparedstackprofileawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileawbinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileawbinding.md new file mode 100644 index 000000000..9792dd6e3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileawbinding.md @@ -0,0 +1,18 @@ +# PersistImportedDeploymentRequestPreparedStackProfileAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackProfileAwBinding } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackProfileAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.PersistImportedDeploymentRequestPreparedStackProfileAwResource](../models/persistimporteddeploymentrequestpreparedstackprofileawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.PersistImportedDeploymentRequestPreparedStackProfileAwStack](../models/persistimporteddeploymentrequestpreparedstackprofileawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileawgrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileawgrant.md new file mode 100644 index 000000000..e002786a3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileawgrant.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPreparedStackProfileAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackProfileAwGrant } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackProfileAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileawresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileawresource.md new file mode 100644 index 000000000..9d1c4ed8e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileawresource.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPreparedStackProfileAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackProfileAwResource } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackProfileAwResource = { + resources: [ + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileawstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileawstack.md new file mode 100644 index 000000000..0903e6553 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileawstack.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPreparedStackProfileAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackProfileAwStack } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackProfileAwStack = { + resources: [ + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileazure.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileazure.md new file mode 100644 index 000000000..6d8d25a90 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileazure.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPreparedStackProfileAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackProfileAzure } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackProfileAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.PersistImportedDeploymentRequestPreparedStackProfileAzureBinding](../models/persistimporteddeploymentrequestpreparedstackprofileazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.PersistImportedDeploymentRequestPreparedStackProfileAzureGrant](../models/persistimporteddeploymentrequestpreparedstackprofileazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileazurebinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileazurebinding.md new file mode 100644 index 000000000..d15332c99 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileazurebinding.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPreparedStackProfileAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackProfileAzureBinding } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackProfileAzureBinding = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.PersistImportedDeploymentRequestPreparedStackProfileAzureResource](../models/persistimporteddeploymentrequestpreparedstackprofileazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.PersistImportedDeploymentRequestPreparedStackProfileAzureStack](../models/persistimporteddeploymentrequestpreparedstackprofileazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileazuregrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileazuregrant.md new file mode 100644 index 000000000..4ef74a867 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileazuregrant.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPreparedStackProfileAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackProfileAzureGrant } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackProfileAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileazureresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileazureresource.md new file mode 100644 index 000000000..98b967c1b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileazureresource.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPreparedStackProfileAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackProfileAzureResource } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackProfileAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileazurestack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileazurestack.md new file mode 100644 index 000000000..4b2c3c071 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileazurestack.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPreparedStackProfileAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackProfileAzureStack } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackProfileAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileconditionresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileconditionresource.md new file mode 100644 index 000000000..8dbd94935 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileconditionresource.md @@ -0,0 +1,22 @@ +# PersistImportedDeploymentRequestPreparedStackProfileConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackProfileConditionResource } from "@alienplatform/platform-api/models"; + +let value: + PersistImportedDeploymentRequestPreparedStackProfileConditionResource = { + expression: "", + title: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileconditionstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileconditionstack.md new file mode 100644 index 000000000..867bff504 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileconditionstack.md @@ -0,0 +1,22 @@ +# PersistImportedDeploymentRequestPreparedStackProfileConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackProfileConditionStack } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackProfileConditionStack = + { + expression: "", + title: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileeffect.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileeffect.md new file mode 100644 index 000000000..5394270e6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileeffect.md @@ -0,0 +1,17 @@ +# PersistImportedDeploymentRequestPreparedStackProfileEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackProfileEffect } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackProfileEffect = "Allow"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofilegcp.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofilegcp.md new file mode 100644 index 000000000..1c4377913 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofilegcp.md @@ -0,0 +1,23 @@ +# PersistImportedDeploymentRequestPreparedStackProfileGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackProfileGcp } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackProfileGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.PersistImportedDeploymentRequestPreparedStackProfileGcpBinding](../models/persistimporteddeploymentrequestpreparedstackprofilegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.PersistImportedDeploymentRequestPreparedStackProfileGcpGrant](../models/persistimporteddeploymentrequestpreparedstackprofilegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofilegcpbinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofilegcpbinding.md new file mode 100644 index 000000000..dc32e36db --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofilegcpbinding.md @@ -0,0 +1,18 @@ +# PersistImportedDeploymentRequestPreparedStackProfileGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackProfileGcpBinding } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackProfileGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.PersistImportedDeploymentRequestPreparedStackProfileGcpResource](../models/persistimporteddeploymentrequestpreparedstackprofilegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.PersistImportedDeploymentRequestPreparedStackProfileGcpStack](../models/persistimporteddeploymentrequestpreparedstackprofilegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofilegcpgrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofilegcpgrant.md new file mode 100644 index 000000000..2467c1d97 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofilegcpgrant.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPreparedStackProfileGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackProfileGcpGrant } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackProfileGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofilegcpresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofilegcpresource.md new file mode 100644 index 000000000..dc0ec6f92 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofilegcpresource.md @@ -0,0 +1,20 @@ +# PersistImportedDeploymentRequestPreparedStackProfileGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackProfileGcpResource } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackProfileGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | +| `condition` | *models.PersistImportedDeploymentRequestPreparedStackProfileResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofilegcpstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofilegcpstack.md new file mode 100644 index 000000000..6457f7d7d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofilegcpstack.md @@ -0,0 +1,20 @@ +# PersistImportedDeploymentRequestPreparedStackProfileGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackProfileGcpStack } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackProfileGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| `condition` | *models.PersistImportedDeploymentRequestPreparedStackProfileStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileplatforms.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileplatforms.md new file mode 100644 index 000000000..9470540bd --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileplatforms.md @@ -0,0 +1,19 @@ +# PersistImportedDeploymentRequestPreparedStackProfilePlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackProfilePlatforms } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackProfilePlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| `aws` | [models.PersistImportedDeploymentRequestPreparedStackProfileAw](../models/persistimporteddeploymentrequestpreparedstackprofileaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.PersistImportedDeploymentRequestPreparedStackProfileAzure](../models/persistimporteddeploymentrequestpreparedstackprofileazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.PersistImportedDeploymentRequestPreparedStackProfileGcp](../models/persistimporteddeploymentrequestpreparedstackprofilegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileresourceconditionunion.md new file mode 100644 index 000000000..02dd27ae7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileresourceconditionunion.md @@ -0,0 +1,21 @@ +# PersistImportedDeploymentRequestPreparedStackProfileResourceConditionUnion + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPreparedStackProfileConditionResource` + +```typescript +const value: + models.PersistImportedDeploymentRequestPreparedStackProfileConditionResource = + { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofilestackconditionunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofilestackconditionunion.md new file mode 100644 index 000000000..2b3fef9db --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofilestackconditionunion.md @@ -0,0 +1,20 @@ +# PersistImportedDeploymentRequestPreparedStackProfileStackConditionUnion + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPreparedStackProfileConditionStack` + +```typescript +const value: + models.PersistImportedDeploymentRequestPreparedStackProfileConditionStack = { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileunion.md new file mode 100644 index 000000000..4063a9de0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprofileunion.md @@ -0,0 +1,22 @@ +# PersistImportedDeploymentRequestPreparedStackProfileUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPreparedStackProfile` + +```typescript +const value: models.PersistImportedDeploymentRequestPreparedStackProfile = { + description: "meh rarely lamp eek whereas an nougat although hence", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprovidedby.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprovidedby.md new file mode 100644 index 000000000..4e9697155 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackprovidedby.md @@ -0,0 +1,17 @@ +# PersistImportedDeploymentRequestPreparedStackProvidedBy + +Who can provide a stack input value. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackProvidedBy } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackProvidedBy = "deployer"; +``` + +## Values + +```typescript +"developer" | "deployer" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackresources.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackresources.md new file mode 100644 index 000000000..3920442ba --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackresources.md @@ -0,0 +1,26 @@ +# PersistImportedDeploymentRequestPreparedStackResources + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackResources } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackResources = { + config: { + id: "", + type: "", + }, + dependencies: [], + lifecycle: "frozen", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `config` | [models.PersistImportedDeploymentRequestPreparedStackConfig](../models/persistimporteddeploymentrequestpreparedstackconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | +| `dependencies` | [models.PersistImportedDeploymentRequestPreparedStackDependency](../models/persistimporteddeploymentrequestpreparedstackdependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | +| `enabledWhen` | *string* | :heavy_minus_sign: | Id of the boolean stack input that decides whether this resource is
created at all. `None` means always create it.

Set by `.enabled(input)` in the SDK. Setup emitters render the resource
conditionally on the matching template variable, so a deployer who says no
never gets the resource, its outputs, or anything derived from it. | +| `lifecycle` | [models.PersistImportedDeploymentRequestPreparedStackLifecycle](../models/persistimporteddeploymentrequestpreparedstacklifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | +| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstacksupportedplatform.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstacksupportedplatform.md new file mode 100644 index 000000000..679563653 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstacksupportedplatform.md @@ -0,0 +1,18 @@ +# PersistImportedDeploymentRequestPreparedStackSupportedPlatform + +Represents the target cloud platform. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackSupportedPlatform } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackSupportedPlatform = + "local"; +``` + +## Values + +```typescript +"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstacktypeboolean.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstacktypeboolean.md new file mode 100644 index 000000000..b81f8fa2d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstacktypeboolean.md @@ -0,0 +1,15 @@ +# PersistImportedDeploymentRequestPreparedStackTypeBoolean + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackTypeBoolean } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackTypeBoolean = "boolean"; +``` + +## Values + +```typescript +"boolean" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstacktypeenvenum.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstacktypeenvenum.md new file mode 100644 index 000000000..4bf265179 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstacktypeenvenum.md @@ -0,0 +1,17 @@ +# PersistImportedDeploymentRequestPreparedStackTypeEnvEnum + +Environment variable handling for a stack input mapping. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackTypeEnvEnum } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackTypeEnvEnum = "plain"; +``` + +## Values + +```typescript +"plain" | "secret" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstacktypenumber.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstacktypenumber.md new file mode 100644 index 000000000..260fc2379 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstacktypenumber.md @@ -0,0 +1,15 @@ +# PersistImportedDeploymentRequestPreparedStackTypeNumber + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackTypeNumber } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackTypeNumber = "number"; +``` + +## Values + +```typescript +"number" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstacktypestring.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstacktypestring.md new file mode 100644 index 000000000..53d2c471b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstacktypestring.md @@ -0,0 +1,15 @@ +# PersistImportedDeploymentRequestPreparedStackTypeString + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackTypeString } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackTypeString = "string"; +``` + +## Values + +```typescript +"string" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstacktypestringlist.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstacktypestringlist.md new file mode 100644 index 000000000..baf1abac8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstacktypestringlist.md @@ -0,0 +1,16 @@ +# PersistImportedDeploymentRequestPreparedStackTypeStringList + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackTypeStringList } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackTypeStringList = + "stringList"; +``` + +## Values + +```typescript +"stringList" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstacktypeunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstacktypeunion.md new file mode 100644 index 000000000..493e4cd84 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstacktypeunion.md @@ -0,0 +1,17 @@ +# PersistImportedDeploymentRequestPreparedStackTypeUnion + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPreparedStackTypeEnvEnum` + +```typescript +const value: models.PersistImportedDeploymentRequestPreparedStackTypeEnvEnum = + "secret"; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackunion.md index 06ad04b88..fe95a79c5 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackunion.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackunion.md @@ -17,4 +17,3 @@ const value: models.PersistImportedDeploymentRequestPreparedStack = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackvalidation.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackvalidation.md new file mode 100644 index 000000000..9b3ca47e8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackvalidation.md @@ -0,0 +1,25 @@ +# PersistImportedDeploymentRequestPreparedStackValidation + +Portable stack input validation constraints. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestPreparedStackValidation } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestPreparedStackValidation = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `format` | *string* | :heavy_minus_sign: | Semantic format hint such as url. | +| `max` | *string* | :heavy_minus_sign: | Maximum number. | +| `maxItems` | *number* | :heavy_minus_sign: | Maximum string-list items. | +| `maxLength` | *number* | :heavy_minus_sign: | Maximum string length. | +| `min` | *string* | :heavy_minus_sign: | Minimum number. | +| `minItems` | *number* | :heavy_minus_sign: | Minimum string-list items. | +| `minLength` | *number* | :heavy_minus_sign: | Minimum string length. | +| `pattern` | *string* | :heavy_minus_sign: | Portable whole-value regex pattern. | +| `values` | *string*[] | :heavy_minus_sign: | Allowed string enum values. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackvalidationunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackvalidationunion.md new file mode 100644 index 000000000..8c641185e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpreparedstackvalidationunion.md @@ -0,0 +1,17 @@ +# PersistImportedDeploymentRequestPreparedStackValidationUnion + + +## Supported Types + +### `models.PersistImportedDeploymentRequestPreparedStackValidation` + +```typescript +const value: models.PersistImportedDeploymentRequestPreparedStackValidation = + {}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofile.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofile.md deleted file mode 100644 index d92201c67..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofile.md +++ /dev/null @@ -1,23 +0,0 @@ -# PersistImportedDeploymentRequestProfile - -A permission set that can be applied across different cloud platforms - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestProfile } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestProfile = { - description: "youthfully zowie infatuated", - id: "", - platforms: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | -| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | -| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | -| `platforms` | [models.PersistImportedDeploymentRequestProfilePlatforms](../models/persistimporteddeploymentrequestprofileplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileaw.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileaw.md deleted file mode 100644 index e4249add5..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileaw.md +++ /dev/null @@ -1,24 +0,0 @@ -# PersistImportedDeploymentRequestProfileAw - -AWS-specific platform permission configuration - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestProfileAw } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestProfileAw = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | -| `binding` | [models.PersistImportedDeploymentRequestProfileAwBinding](../models/persistimporteddeploymentrequestprofileawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `effect` | [models.PersistImportedDeploymentRequestProfileEffect](../models/persistimporteddeploymentrequestprofileeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | -| `grant` | [models.PersistImportedDeploymentRequestProfileAwGrant](../models/persistimporteddeploymentrequestprofileawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileawbinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileawbinding.md deleted file mode 100644 index a9cd6412d..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileawbinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# PersistImportedDeploymentRequestProfileAwBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestProfileAwBinding } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestProfileAwBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -| `resource` | [models.PersistImportedDeploymentRequestProfileAwResource](../models/persistimporteddeploymentrequestprofileawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | -| `stack` | [models.PersistImportedDeploymentRequestProfileAwStack](../models/persistimporteddeploymentrequestprofileawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileawgrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileawgrant.md deleted file mode 100644 index 642a146e5..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileawgrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# PersistImportedDeploymentRequestProfileAwGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestProfileAwGrant } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestProfileAwGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileawresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileawresource.md deleted file mode 100644 index 2ee6bbf41..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileawresource.md +++ /dev/null @@ -1,23 +0,0 @@ -# PersistImportedDeploymentRequestProfileAwResource - -AWS-specific binding specification - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestProfileAwResource } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestProfileAwResource = { - resources: [ - "", - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | -| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileawstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileawstack.md deleted file mode 100644 index c73801e67..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileawstack.md +++ /dev/null @@ -1,22 +0,0 @@ -# PersistImportedDeploymentRequestProfileAwStack - -AWS-specific binding specification - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestProfileAwStack } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestProfileAwStack = { - resources: [ - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | -| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileazure.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileazure.md deleted file mode 100644 index 417ba3aa8..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileazure.md +++ /dev/null @@ -1,23 +0,0 @@ -# PersistImportedDeploymentRequestProfileAzure - -Azure-specific platform permission configuration - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestProfileAzure } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestProfileAzure = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | -| `binding` | [models.PersistImportedDeploymentRequestProfileAzureBinding](../models/persistimporteddeploymentrequestprofileazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `grant` | [models.PersistImportedDeploymentRequestProfileAzureGrant](../models/persistimporteddeploymentrequestprofileazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileazurebinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileazurebinding.md deleted file mode 100644 index 8cd58321e..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileazurebinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# PersistImportedDeploymentRequestProfileAzureBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestProfileAzureBinding } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestProfileAzureBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -| `resource` | [models.PersistImportedDeploymentRequestProfileAzureResource](../models/persistimporteddeploymentrequestprofileazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | -| `stack` | [models.PersistImportedDeploymentRequestProfileAzureStack](../models/persistimporteddeploymentrequestprofileazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileazuregrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileazuregrant.md deleted file mode 100644 index ab25de34e..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileazuregrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# PersistImportedDeploymentRequestProfileAzureGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestProfileAzureGrant } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestProfileAzureGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileazureresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileazureresource.md deleted file mode 100644 index 914a35b94..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileazureresource.md +++ /dev/null @@ -1,19 +0,0 @@ -# PersistImportedDeploymentRequestProfileAzureResource - -Azure-specific binding specification - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestProfileAzureResource } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestProfileAzureResource = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileazurestack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileazurestack.md deleted file mode 100644 index a9529269d..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileazurestack.md +++ /dev/null @@ -1,19 +0,0 @@ -# PersistImportedDeploymentRequestProfileAzureStack - -Azure-specific binding specification - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestProfileAzureStack } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestProfileAzureStack = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileconditionresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileconditionresource.md deleted file mode 100644 index 44b8d62c0..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileconditionresource.md +++ /dev/null @@ -1,21 +0,0 @@ -# PersistImportedDeploymentRequestProfileConditionResource - -GCP IAM condition - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestProfileConditionResource } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestProfileConditionResource = { - expression: "", - title: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `expression` | *string* | :heavy_check_mark: | N/A | -| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileconditionstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileconditionstack.md deleted file mode 100644 index fa3672366..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileconditionstack.md +++ /dev/null @@ -1,21 +0,0 @@ -# PersistImportedDeploymentRequestProfileConditionStack - -GCP IAM condition - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestProfileConditionStack } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestProfileConditionStack = { - expression: "", - title: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `expression` | *string* | :heavy_check_mark: | N/A | -| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileeffect.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileeffect.md deleted file mode 100644 index 1605c1b90..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileeffect.md +++ /dev/null @@ -1,17 +0,0 @@ -# PersistImportedDeploymentRequestProfileEffect - -IAM effect. Defaults to Allow. - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestProfileEffect } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestProfileEffect = "Deny"; -``` - -## Values - -```typescript -"Allow" | "Deny" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofilegcp.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofilegcp.md deleted file mode 100644 index 5b7ac7145..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofilegcp.md +++ /dev/null @@ -1,23 +0,0 @@ -# PersistImportedDeploymentRequestProfileGcp - -GCP-specific platform permission configuration - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestProfileGcp } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestProfileGcp = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -| `binding` | [models.PersistImportedDeploymentRequestProfileGcpBinding](../models/persistimporteddeploymentrequestprofilegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `grant` | [models.PersistImportedDeploymentRequestProfileGcpGrant](../models/persistimporteddeploymentrequestprofilegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofilegcpbinding.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofilegcpbinding.md deleted file mode 100644 index b1634d5eb..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofilegcpbinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# PersistImportedDeploymentRequestProfileGcpBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestProfileGcpBinding } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestProfileGcpBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | -| `resource` | [models.PersistImportedDeploymentRequestProfileGcpResource](../models/persistimporteddeploymentrequestprofilegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | -| `stack` | [models.PersistImportedDeploymentRequestProfileGcpStack](../models/persistimporteddeploymentrequestprofilegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofilegcpgrant.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofilegcpgrant.md deleted file mode 100644 index 1d04fed31..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofilegcpgrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# PersistImportedDeploymentRequestProfileGcpGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestProfileGcpGrant } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestProfileGcpGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofilegcpresource.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofilegcpresource.md deleted file mode 100644 index 6b611daef..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofilegcpresource.md +++ /dev/null @@ -1,20 +0,0 @@ -# PersistImportedDeploymentRequestProfileGcpResource - -GCP-specific binding specification - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestProfileGcpResource } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestProfileGcpResource = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | -| `condition` | *models.PersistImportedDeploymentRequestProfileResourceConditionUnion* | :heavy_minus_sign: | N/A | -| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofilegcpstack.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofilegcpstack.md deleted file mode 100644 index c415a4ab0..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofilegcpstack.md +++ /dev/null @@ -1,20 +0,0 @@ -# PersistImportedDeploymentRequestProfileGcpStack - -GCP-specific binding specification - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestProfileGcpStack } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestProfileGcpStack = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | -| `condition` | *models.PersistImportedDeploymentRequestProfileStackConditionUnion* | :heavy_minus_sign: | N/A | -| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileplatforms.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileplatforms.md deleted file mode 100644 index df4bf146c..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileplatforms.md +++ /dev/null @@ -1,19 +0,0 @@ -# PersistImportedDeploymentRequestProfilePlatforms - -Platform-specific permission configurations - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestProfilePlatforms } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestProfilePlatforms = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | -| `aws` | [models.PersistImportedDeploymentRequestProfileAw](../models/persistimporteddeploymentrequestprofileaw.md)[] | :heavy_minus_sign: | AWS permission configurations | -| `azure` | [models.PersistImportedDeploymentRequestProfileAzure](../models/persistimporteddeploymentrequestprofileazure.md)[] | :heavy_minus_sign: | Azure permission configurations | -| `gcp` | [models.PersistImportedDeploymentRequestProfileGcp](../models/persistimporteddeploymentrequestprofilegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileresourceconditionunion.md deleted file mode 100644 index 313dd4d81..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileresourceconditionunion.md +++ /dev/null @@ -1,20 +0,0 @@ -# PersistImportedDeploymentRequestProfileResourceConditionUnion - - -## Supported Types - -### `models.PersistImportedDeploymentRequestProfileConditionResource` - -```typescript -const value: models.PersistImportedDeploymentRequestProfileConditionResource = { - expression: "", - title: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofilestackconditionunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofilestackconditionunion.md deleted file mode 100644 index b81e87545..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofilestackconditionunion.md +++ /dev/null @@ -1,20 +0,0 @@ -# PersistImportedDeploymentRequestProfileStackConditionUnion - - -## Supported Types - -### `models.PersistImportedDeploymentRequestProfileConditionStack` - -```typescript -const value: models.PersistImportedDeploymentRequestProfileConditionStack = { - expression: "", - title: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileunion.md deleted file mode 100644 index 7a556fb64..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprofileunion.md +++ /dev/null @@ -1,23 +0,0 @@ -# PersistImportedDeploymentRequestProfileUnion - -Reference to a permission set - either by name or inline definition - - -## Supported Types - -### `models.PersistImportedDeploymentRequestProfile` - -```typescript -const value: models.PersistImportedDeploymentRequestProfile = { - description: "youthfully zowie infatuated", - id: "", - platforms: {}, -}; -``` - -### `string` - -```typescript -const value: string = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprovidedby.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprovidedby.md deleted file mode 100644 index 7c2ad6a3b..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestprovidedby.md +++ /dev/null @@ -1,17 +0,0 @@ -# PersistImportedDeploymentRequestProvidedBy - -Who can provide a stack input value. - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestProvidedBy } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestProvidedBy = "deployer"; -``` - -## Values - -```typescript -"developer" | "deployer" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestproviderunion1.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestproviderunion1.md index ee28547e0..9ea87d74a 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestproviderunion1.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestproviderunion1.md @@ -37,4 +37,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestproviderunion2.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestproviderunion2.md index 0a7b6efd8..bc825a46d 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestproviderunion2.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestproviderunion2.md @@ -37,4 +37,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestproviderunion3.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestproviderunion3.md index c1409c6b4..55317b334 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestproviderunion3.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestproviderunion3.md @@ -37,4 +37,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestproviderunion4.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestproviderunion4.md index 012cbfb2b..1ddf85091 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestproviderunion4.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestproviderunion4.md @@ -37,4 +37,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpublicendpointtargetunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpublicendpointtargetunion.md index 7d1da6531..32605df2b 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpublicendpointtargetunion.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestpublicendpointtargetunion.md @@ -28,4 +28,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestresources.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestresources.md deleted file mode 100644 index fc307719c..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestresources.md +++ /dev/null @@ -1,25 +0,0 @@ -# PersistImportedDeploymentRequestResources - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestResources } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestResources = { - config: { - id: "", - type: "", - }, - dependencies: [], - lifecycle: "live", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `config` | [models.PersistImportedDeploymentRequestConfig](../models/persistimporteddeploymentrequestconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | -| `dependencies` | [models.PersistImportedDeploymentRequestDependency](../models/persistimporteddeploymentrequestdependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | -| `lifecycle` | [models.PersistImportedDeploymentRequestLifecycle](../models/persistimporteddeploymentrequestlifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | -| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestrouteunion1.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestrouteunion1.md index 06db88ad3..4447c736a 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestrouteunion1.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestrouteunion1.md @@ -23,4 +23,3 @@ const value: models.PersistImportedDeploymentRequestRouteGateway1 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestrouteunion2.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestrouteunion2.md index 9685a1d6c..a8e034ff2 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestrouteunion2.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestrouteunion2.md @@ -23,4 +23,3 @@ const value: models.PersistImportedDeploymentRequestRouteGateway2 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestruntimemetadata.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestruntimemetadata.md index 4c6bb6a03..8673cc979 100644 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestruntimemetadata.md +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestruntimemetadata.md @@ -14,9 +14,13 @@ let value: PersistImportedDeploymentRequestRuntimeMetadata = {}; ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `lastSyncedEnvVarsHash` | *string* | :heavy_minus_sign: | Hash of the environment variables snapshot that was last synced to the vault
Used to avoid redundant sync operations during incremental deployment | -| `lastSyncedSecretNames` | *string*[] | :heavy_minus_sign: | Exact vault keys owned by the deployment secret synchronizer. This
inventory lets a later snapshot delete removed keys without listing or
touching unrelated values in the same vault. | -| `preparedStack` | *models.PersistImportedDeploymentRequestPreparedStackUnion* | :heavy_minus_sign: | N/A | -| `registryAccessGranted` | *boolean* | :heavy_minus_sign: | Whether cross-account registry access has been successfully granted.
Set to true after the manager successfully sets the ECR/GAR repo policy
for this deployment's target account. Prevents redundant API calls on
every reconcile tick. | \ No newline at end of file +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `initialSetupAuthority` | [models.PersistImportedDeploymentRequestInitialSetupAuthority](../models/persistimporteddeploymentrequestinitialsetupauthority.md) | :heavy_minus_sign: | Actor that owns structural work during the initial setup phase. | +| `lastSyncedEnvVarsHash` | *string* | :heavy_minus_sign: | Hash of the environment variables snapshot that was last synced to the vault
Used to avoid redundant sync operations during incremental deployment | +| `lastSyncedSecretNames` | *string*[] | :heavy_minus_sign: | Exact vault keys owned by the deployment secret synchronizer. This
inventory lets a later snapshot delete removed keys without listing or
touching unrelated values in the same vault. | +| `pendingPreparedStack` | *models.PersistImportedDeploymentRequestPendingPreparedStackUnion* | :heavy_minus_sign: | N/A | +| `persistedGateAnswers` | Record | :heavy_minus_sign: | Canonical resolved answers for inputs that gate Frozen resources,
keyed by input id, recorded when the deployment is created or its
setup import registers.

A frozen gate's answer is fixed for the deployment's lifetime: the
update path refuses input values that conflict with these, and a Live
resource sharing such an input resolves the persisted answer forever. | +| `preparedStack` | *models.PersistImportedDeploymentRequestPreparedStackUnion* | :heavy_minus_sign: | N/A | +| `registryAccessGranted` | *boolean* | :heavy_minus_sign: | Whether cross-account registry access has been successfully granted.
Set to true after the manager successfully sets the ECR/GAR repo policy
for this deployment's target account. Prevents redundant API calls on
every reconcile tick. | +| `setupUpdateAuthorization` | *models.PersistImportedDeploymentRequestSetupUpdateAuthorizationUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestsetupupdateauthorization.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestsetupupdateauthorization.md new file mode 100644 index 000000000..631635f1c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestsetupupdateauthorization.md @@ -0,0 +1,31 @@ +# PersistImportedDeploymentRequestSetupUpdateAuthorization + +One-shot authority for a setup re-import to replace setup-owned resources. + +## Example Usage + +```typescript +import { PersistImportedDeploymentRequestSetupUpdateAuthorization } from "@alienplatform/platform-api/models"; + +let value: PersistImportedDeploymentRequestSetupUpdateAuthorization = { + baselineFrozenDigest: "", + nonce: "", + releaseId: "", + setupFingerprint: "", + setupFingerprintVersion: 956709, + setupTarget: "", + targetFrozenDigest: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | +| `baselineFrozenDigest` | *string* | :heavy_check_mark: | Frozen resource projection from the last successful deployment. | +| `nonce` | *string* | :heavy_check_mark: | Unique revision used by persistence layers for compare-and-swap updates. | +| `releaseId` | *string* | :heavy_check_mark: | Release whose stack was prepared by setup. | +| `setupFingerprint` | *string* | :heavy_check_mark: | Exact setup artifact revision that authored this authority. | +| `setupFingerprintVersion` | *number* | :heavy_check_mark: | Setup fingerprint contract version. | +| `setupTarget` | *string* | :heavy_check_mark: | Stable setup target recorded on the imported deployment. | +| `targetFrozenDigest` | *string* | :heavy_check_mark: | Frozen resource projection prepared by the setup re-import. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestsetupupdateauthorizationunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestsetupupdateauthorizationunion.md new file mode 100644 index 000000000..384600b98 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestsetupupdateauthorizationunion.md @@ -0,0 +1,24 @@ +# PersistImportedDeploymentRequestSetupUpdateAuthorizationUnion + + +## Supported Types + +### `models.PersistImportedDeploymentRequestSetupUpdateAuthorization` + +```typescript +const value: models.PersistImportedDeploymentRequestSetupUpdateAuthorization = { + baselineFrozenDigest: "", + nonce: "", + releaseId: "", + setupFingerprint: "", + setupFingerprintVersion: 956709, + setupTarget: "", + targetFrozenDigest: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestsupportedplatform.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestsupportedplatform.md deleted file mode 100644 index 6238b2055..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestsupportedplatform.md +++ /dev/null @@ -1,17 +0,0 @@ -# PersistImportedDeploymentRequestSupportedPlatform - -Represents the target cloud platform. - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestSupportedPlatform } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestSupportedPlatform = "test"; -``` - -## Values - -```typescript -"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequesttypeboolean.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequesttypeboolean.md deleted file mode 100644 index ef3e931af..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequesttypeboolean.md +++ /dev/null @@ -1,15 +0,0 @@ -# PersistImportedDeploymentRequestTypeBoolean - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestTypeBoolean } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestTypeBoolean = "boolean"; -``` - -## Values - -```typescript -"boolean" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequesttypeenvenum.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequesttypeenvenum.md deleted file mode 100644 index 70d455d2b..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequesttypeenvenum.md +++ /dev/null @@ -1,17 +0,0 @@ -# PersistImportedDeploymentRequestTypeEnvEnum - -Environment variable handling for a stack input mapping. - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestTypeEnvEnum } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestTypeEnvEnum = "plain"; -``` - -## Values - -```typescript -"plain" | "secret" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequesttypenumber.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequesttypenumber.md deleted file mode 100644 index fde8c46c3..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequesttypenumber.md +++ /dev/null @@ -1,15 +0,0 @@ -# PersistImportedDeploymentRequestTypeNumber - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestTypeNumber } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestTypeNumber = "number"; -``` - -## Values - -```typescript -"number" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequesttypestring.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequesttypestring.md deleted file mode 100644 index a606b8512..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequesttypestring.md +++ /dev/null @@ -1,15 +0,0 @@ -# PersistImportedDeploymentRequestTypeString - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestTypeString } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestTypeString = "string"; -``` - -## Values - -```typescript -"string" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequesttypestringlist.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequesttypestringlist.md deleted file mode 100644 index 762b46a2c..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequesttypestringlist.md +++ /dev/null @@ -1,15 +0,0 @@ -# PersistImportedDeploymentRequestTypeStringList - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestTypeStringList } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestTypeStringList = "stringList"; -``` - -## Values - -```typescript -"stringList" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequesttypeunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequesttypeunion.md deleted file mode 100644 index a616336e6..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequesttypeunion.md +++ /dev/null @@ -1,17 +0,0 @@ -# PersistImportedDeploymentRequestTypeUnion - - -## Supported Types - -### `models.PersistImportedDeploymentRequestTypeEnvEnum` - -```typescript -const value: models.PersistImportedDeploymentRequestTypeEnvEnum = "secret"; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestvalidation.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestvalidation.md deleted file mode 100644 index c2b37f2b0..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestvalidation.md +++ /dev/null @@ -1,25 +0,0 @@ -# PersistImportedDeploymentRequestValidation - -Portable stack input validation constraints. - -## Example Usage - -```typescript -import { PersistImportedDeploymentRequestValidation } from "@alienplatform/platform-api/models"; - -let value: PersistImportedDeploymentRequestValidation = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| `format` | *string* | :heavy_minus_sign: | Semantic format hint such as url. | -| `max` | *string* | :heavy_minus_sign: | Maximum number. | -| `maxItems` | *number* | :heavy_minus_sign: | Maximum string-list items. | -| `maxLength` | *number* | :heavy_minus_sign: | Maximum string length. | -| `min` | *string* | :heavy_minus_sign: | Minimum number. | -| `minItems` | *number* | :heavy_minus_sign: | Minimum string-list items. | -| `minLength` | *number* | :heavy_minus_sign: | Minimum string length. | -| `pattern` | *string* | :heavy_minus_sign: | Portable whole-value regex pattern. | -| `values` | *string*[] | :heavy_minus_sign: | Allowed string enum values. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestvalidationunion.md b/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestvalidationunion.md deleted file mode 100644 index cfb9c1e06..000000000 --- a/client-sdks/platform/typescript/docs/models/persistimporteddeploymentrequestvalidationunion.md +++ /dev/null @@ -1,17 +0,0 @@ -# PersistImportedDeploymentRequestValidationUnion - - -## Supported Types - -### `models.PersistImportedDeploymentRequestValidation` - -```typescript -const value: models.PersistImportedDeploymentRequestValidation = {}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/phase.md b/client-sdks/platform/typescript/docs/models/phase.md deleted file mode 100644 index 99ecbaa49..000000000 --- a/client-sdks/platform/typescript/docs/models/phase.md +++ /dev/null @@ -1,22 +0,0 @@ -# Phase - -Phase of a deployment at which a failure occurred. - -Derived from the source deployment status: `preflights-failed` → -`Preflights`, `provisioning-failed` → `Provisioning`, `update-failed` → -`Updating`, `delete-failed` → `Deleting`. -`refresh-failed` is modelled separately via `DeploymentDegraded`. - -## Example Usage - -```typescript -import { Phase } from "@alienplatform/platform-api/models"; - -let value: Phase = "provisioning"; -``` - -## Values - -```typescript -"preflights" | "provisioning" | "updating" | "deleting" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/pinreleaserequest.md b/client-sdks/platform/typescript/docs/models/pinreleaserequest.md index 4199ebaa1..311945c76 100644 --- a/client-sdks/platform/typescript/docs/models/pinreleaserequest.md +++ b/client-sdks/platform/typescript/docs/models/pinreleaserequest.md @@ -14,6 +14,6 @@ let value: PinReleaseRequest = { ## Fields -| Field | Type | Required | Description | Example | -| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | -| `releaseId` | *string* | :heavy_minus_sign: | Release ID to pin the deployment to. Set to null to unpin and use active release. | rel_WbhQgksrawSKIpEN0NAssHX9 | \ No newline at end of file +| Field | Type | Required | Description | Example | +| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| `releaseId` | *string* | :heavy_minus_sign: | Release ID to pin the deployment to. Set to null to resume its followed channel. | rel_WbhQgksrawSKIpEN0NAssHX9 | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/podcpuunion1.md b/client-sdks/platform/typescript/docs/models/podcpuunion1.md index e33465b33..811dcf61a 100644 --- a/client-sdks/platform/typescript/docs/models/podcpuunion1.md +++ b/client-sdks/platform/typescript/docs/models/podcpuunion1.md @@ -17,4 +17,3 @@ const value: models.CpuPod1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/podcpuunion2.md b/client-sdks/platform/typescript/docs/models/podcpuunion2.md index bcca1e331..4997551ce 100644 --- a/client-sdks/platform/typescript/docs/models/podcpuunion2.md +++ b/client-sdks/platform/typescript/docs/models/podcpuunion2.md @@ -17,4 +17,3 @@ const value: models.CpuPod2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/podcpuunion3.md b/client-sdks/platform/typescript/docs/models/podcpuunion3.md index 0dc885adf..a95a337fc 100644 --- a/client-sdks/platform/typescript/docs/models/podcpuunion3.md +++ b/client-sdks/platform/typescript/docs/models/podcpuunion3.md @@ -17,4 +17,3 @@ const value: models.CpuPod3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/podmemoryunion1.md b/client-sdks/platform/typescript/docs/models/podmemoryunion1.md index 3aa978d3d..79a8bf48c 100644 --- a/client-sdks/platform/typescript/docs/models/podmemoryunion1.md +++ b/client-sdks/platform/typescript/docs/models/podmemoryunion1.md @@ -17,4 +17,3 @@ const value: models.MemoryPod1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/podmemoryunion2.md b/client-sdks/platform/typescript/docs/models/podmemoryunion2.md index 036aa733c..3f95cb106 100644 --- a/client-sdks/platform/typescript/docs/models/podmemoryunion2.md +++ b/client-sdks/platform/typescript/docs/models/podmemoryunion2.md @@ -17,4 +17,3 @@ const value: models.MemoryPod2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/podmemoryunion3.md b/client-sdks/platform/typescript/docs/models/podmemoryunion3.md index 7f9483eac..5b0fb4479 100644 --- a/client-sdks/platform/typescript/docs/models/podmemoryunion3.md +++ b/client-sdks/platform/typescript/docs/models/podmemoryunion3.md @@ -17,4 +17,3 @@ const value: models.MemoryPod3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackdefaultunion.md b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackdefaultunion.md index c31edaad2..27486f827 100644 --- a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackdefaultunion.md +++ b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackdefaultunion.md @@ -46,4 +46,3 @@ const value: models.PreparedDeploymentStackDefaultStringList = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackextendconditionunion.md b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackextendconditionunion.md index aba682a41..1d333d682 100644 --- a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackextendconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackextendconditionunion.md @@ -17,4 +17,3 @@ const value: models.PreparedDeploymentStackExtendCondition = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackextendresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackextendresourceconditionunion.md index d5c240b92..8a1d6a055 100644 --- a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackextendresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackextendresourceconditionunion.md @@ -17,4 +17,3 @@ const value: models.PreparedDeploymentStackExtendConditionResource = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackextendunion.md b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackextendunion.md index 5d39b03f6..606157eb8 100644 --- a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackextendunion.md +++ b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackextendunion.md @@ -20,4 +20,3 @@ const value: models.PreparedDeploymentStackExtend = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackmanagementunion.md b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackmanagementunion.md index 3eb45cc16..79e91d7d3 100644 --- a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackmanagementunion.md +++ b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackmanagementunion.md @@ -46,4 +46,3 @@ const value: models.PreparedDeploymentStackManagement2 = { ```typescript const value: models.PreparedDeploymentStackManagementEnum = "auto"; ``` - diff --git a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackoverrideconditionunion.md b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackoverrideconditionunion.md index a788d73d0..07d0777b2 100644 --- a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackoverrideconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackoverrideconditionunion.md @@ -17,4 +17,3 @@ const value: models.PreparedDeploymentStackOverrideCondition = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackoverrideresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackoverrideresourceconditionunion.md index b7090854d..da66e072c 100644 --- a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackoverrideresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackoverrideresourceconditionunion.md @@ -17,4 +17,3 @@ const value: models.PreparedDeploymentStackOverrideConditionResource = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackoverrideunion.md b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackoverrideunion.md index 8bb8efbac..7ea06ef25 100644 --- a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackoverrideunion.md +++ b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackoverrideunion.md @@ -20,4 +20,3 @@ const value: models.PreparedDeploymentStackOverride = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackprofileconditionunion.md b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackprofileconditionunion.md index 6c9a30693..f54eb877c 100644 --- a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackprofileconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackprofileconditionunion.md @@ -17,4 +17,3 @@ const value: models.PreparedDeploymentStackProfileCondition = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackprofileresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackprofileresourceconditionunion.md index 7036906be..42d15382f 100644 --- a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackprofileresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackprofileresourceconditionunion.md @@ -17,4 +17,3 @@ const value: models.PreparedDeploymentStackProfileConditionResource = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackprofileunion.md b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackprofileunion.md index 8046576e5..4d3c44c8b 100644 --- a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackprofileunion.md +++ b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackprofileunion.md @@ -20,4 +20,3 @@ const value: models.PreparedDeploymentStackProfile = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackresources.md b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackresources.md index 71ecffac9..bca4536a6 100644 --- a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackresources.md +++ b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackresources.md @@ -17,9 +17,10 @@ let value: PreparedDeploymentStackResources = { ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `config` | [models.PreparedDeploymentStackConfig](../models/prepareddeploymentstackconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | -| `dependencies` | [models.PreparedDeploymentStackDependency](../models/prepareddeploymentstackdependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | -| `lifecycle` | [models.PreparedDeploymentStackLifecycle](../models/prepareddeploymentstacklifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | -| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `config` | [models.PreparedDeploymentStackConfig](../models/prepareddeploymentstackconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | +| `dependencies` | [models.PreparedDeploymentStackDependency](../models/prepareddeploymentstackdependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | +| `enabledWhen` | *string* | :heavy_minus_sign: | Id of the boolean stack input that decides whether this resource is
created at all. `None` means always create it.

Set by `.enabled(input)` in the SDK. Setup emitters render the resource
conditionally on the matching template variable, so a deployer who says no
never gets the resource, its outputs, or anything derived from it. | +| `lifecycle` | [models.PreparedDeploymentStackLifecycle](../models/prepareddeploymentstacklifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | +| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/prepareddeploymentstacktypeunion.md b/client-sdks/platform/typescript/docs/models/prepareddeploymentstacktypeunion.md index 5105047c6..47c5c42ee 100644 --- a/client-sdks/platform/typescript/docs/models/prepareddeploymentstacktypeunion.md +++ b/client-sdks/platform/typescript/docs/models/prepareddeploymentstacktypeunion.md @@ -14,4 +14,3 @@ const value: models.PreparedDeploymentStackTypeEnvEnum = "plain"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackvalidationunion.md b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackvalidationunion.md index 515ca7c75..fa2db01a5 100644 --- a/client-sdks/platform/typescript/docs/models/prepareddeploymentstackvalidationunion.md +++ b/client-sdks/platform/typescript/docs/models/prepareddeploymentstackvalidationunion.md @@ -14,4 +14,3 @@ const value: models.PreparedDeploymentStackValidation = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/preparedstackextendstateresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/preparedstackextendstateresourceconditionunion.md index d88a5dd83..910eb0d88 100644 --- a/client-sdks/platform/typescript/docs/models/preparedstackextendstateresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/preparedstackextendstateresourceconditionunion.md @@ -17,4 +17,3 @@ const value: models.PreparedStackExtendConditionStateResource = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/preparedstackextendstatestackconditionunion.md b/client-sdks/platform/typescript/docs/models/preparedstackextendstatestackconditionunion.md index 51604b652..76b0f9fd4 100644 --- a/client-sdks/platform/typescript/docs/models/preparedstackextendstatestackconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/preparedstackextendstatestackconditionunion.md @@ -17,4 +17,3 @@ const value: models.PreparedStackExtendConditionStateStack = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/preparedstackoverridestateresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/preparedstackoverridestateresourceconditionunion.md index 46bfcb6c4..6c8be3b5c 100644 --- a/client-sdks/platform/typescript/docs/models/preparedstackoverridestateresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/preparedstackoverridestateresourceconditionunion.md @@ -17,4 +17,3 @@ const value: models.PreparedStackOverrideConditionStateResource = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/preparedstackoverridestatestackconditionunion.md b/client-sdks/platform/typescript/docs/models/preparedstackoverridestatestackconditionunion.md index 811dc3738..5681dbc8a 100644 --- a/client-sdks/platform/typescript/docs/models/preparedstackoverridestatestackconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/preparedstackoverridestatestackconditionunion.md @@ -17,4 +17,3 @@ const value: models.PreparedStackOverrideConditionStateStack = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/preparedstackprofilestateresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/preparedstackprofilestateresourceconditionunion.md index d312ac96e..fb0783b1e 100644 --- a/client-sdks/platform/typescript/docs/models/preparedstackprofilestateresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/preparedstackprofilestateresourceconditionunion.md @@ -17,4 +17,3 @@ const value: models.PreparedStackProfileConditionStateResource = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/preparedstackprofilestatestackconditionunion.md b/client-sdks/platform/typescript/docs/models/preparedstackprofilestatestackconditionunion.md index e0fcb6c36..4233e8d3f 100644 --- a/client-sdks/platform/typescript/docs/models/preparedstackprofilestatestackconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/preparedstackprofilestatestackconditionunion.md @@ -17,4 +17,3 @@ const value: models.PreparedStackProfileConditionStateStack = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/previouserror.md b/client-sdks/platform/typescript/docs/models/previouserror.md deleted file mode 100644 index b1c7ad2e3..000000000 --- a/client-sdks/platform/typescript/docs/models/previouserror.md +++ /dev/null @@ -1,34 +0,0 @@ -# PreviousError - -Canonical error container that provides a structured way to represent errors -with rich metadata including error codes, human-readable messages, context, -and chaining capabilities for error propagation. - -This struct is designed to be both machine-readable and user-friendly, -supporting serialization for API responses and detailed error reporting -in distributed systems. - -## Example Usage - -```typescript -import { PreviousError } from "@alienplatform/platform-api/models"; - -let value: PreviousError = { - code: "", - internal: true, - message: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -| `code` | *string* | :heavy_check_mark: | A unique identifier for the type of error.

This should be a short, machine-readable string that can be used
by clients to programmatically handle different error types.
Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" | -| `context` | *any* | :heavy_minus_sign: | Additional diagnostic information about the error context.

This optional field can contain structured data providing more details
about the error, such as validation errors, request parameters that
caused the issue, or other relevant context information. | -| `hint` | *string* | :heavy_minus_sign: | Optional human-facing remediation hint. | -| `httpStatusCode` | *number* | :heavy_minus_sign: | HTTP status code for this error.

Used when converting the error to an HTTP response. If None, falls back to
the error type's default status code or 500. | -| `internal` | *boolean* | :heavy_check_mark: | Indicates if this is an internal error that should not be exposed to users.

When `true`, this error contains sensitive information or implementation
details that should not be shown to end-users. Such errors should be
logged for debugging but replaced with generic error messages in responses. | -| `message` | *string* | :heavy_check_mark: | Human-readable error message.

This message should be clear and actionable for developers or end-users,
providing context about what went wrong and potentially how to fix it. | -| `retryable` | *boolean* | :heavy_minus_sign: | Indicates whether the operation that caused the error should be retried.

When `true`, the error is transient and the operation might succeed
if attempted again. When `false`, retrying the same operation is
unlikely to succeed without changes. | -| `source` | *any* | :heavy_minus_sign: | The underlying error that caused this error, creating an error chain.

This allows for proper error propagation and debugging by maintaining
the full context of how an error occurred through multiple layers
of an application. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/previouserrorunion.md b/client-sdks/platform/typescript/docs/models/previouserrorunion.md deleted file mode 100644 index b911c916f..000000000 --- a/client-sdks/platform/typescript/docs/models/previouserrorunion.md +++ /dev/null @@ -1,21 +0,0 @@ -# PreviousErrorUnion - - -## Supported Types - -### `models.PreviousError` - -```typescript -const value: models.PreviousError = { - code: "", - internal: true, - message: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/processcpuunion.md b/client-sdks/platform/typescript/docs/models/processcpuunion.md index 0805e5d93..d1d5fb634 100644 --- a/client-sdks/platform/typescript/docs/models/processcpuunion.md +++ b/client-sdks/platform/typescript/docs/models/processcpuunion.md @@ -17,4 +17,3 @@ const value: models.ProcessCpu = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/processmemoryunion.md b/client-sdks/platform/typescript/docs/models/processmemoryunion.md index 526ba50cd..767783165 100644 --- a/client-sdks/platform/typescript/docs/models/processmemoryunion.md +++ b/client-sdks/platform/typescript/docs/models/processmemoryunion.md @@ -17,4 +17,3 @@ const value: models.ProcessMemory = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/processunion.md b/client-sdks/platform/typescript/docs/models/processunion.md index 6900a8234..732e9ed65 100644 --- a/client-sdks/platform/typescript/docs/models/processunion.md +++ b/client-sdks/platform/typescript/docs/models/processunion.md @@ -19,4 +19,3 @@ const value: models.Process = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/profilereleaseinfoconditionunion.md b/client-sdks/platform/typescript/docs/models/profilereleaseinfoconditionunion.md index 07b1aaa2c..d31f78cb6 100644 --- a/client-sdks/platform/typescript/docs/models/profilereleaseinfoconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/profilereleaseinfoconditionunion.md @@ -17,4 +17,3 @@ const value: models.ProfileConditionReleaseInfo = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/profilereleaseinforesourceconditionunion.md b/client-sdks/platform/typescript/docs/models/profilereleaseinforesourceconditionunion.md index 633fa2a5e..3232cdea9 100644 --- a/client-sdks/platform/typescript/docs/models/profilereleaseinforesourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/profilereleaseinforesourceconditionunion.md @@ -17,4 +17,3 @@ const value: models.ProfileConditionReleaseInfoResource = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/progress.md b/client-sdks/platform/typescript/docs/models/progress.md deleted file mode 100644 index 9bb04cac6..000000000 --- a/client-sdks/platform/typescript/docs/models/progress.md +++ /dev/null @@ -1,27 +0,0 @@ -# Progress - -Progress information for image push operations - -## Example Usage - -```typescript -import { Progress } from "@alienplatform/platform-api/models"; - -let value: Progress = { - bytesUploaded: 641278, - layersUploaded: 340252, - operation: "", - totalBytes: 238665, - totalLayers: 685450, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| --------------------------------- | --------------------------------- | --------------------------------- | --------------------------------- | -| `bytesUploaded` | *number* | :heavy_check_mark: | Bytes uploaded so far | -| `layersUploaded` | *number* | :heavy_check_mark: | Number of layers uploaded so far | -| `operation` | *string* | :heavy_check_mark: | Current operation being performed | -| `totalBytes` | *number* | :heavy_check_mark: | Total bytes to upload | -| `totalLayers` | *number* | :heavy_check_mark: | Total number of layers to upload | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/progressunion.md b/client-sdks/platform/typescript/docs/models/progressunion.md deleted file mode 100644 index 37877eca5..000000000 --- a/client-sdks/platform/typescript/docs/models/progressunion.md +++ /dev/null @@ -1,23 +0,0 @@ -# ProgressUnion - - -## Supported Types - -### `models.Progress` - -```typescript -const value: models.Progress = { - bytesUploaded: 641278, - layersUploaded: 340252, - operation: "", - totalBytes: 238665, - totalLayers: 685450, -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/projectgcpoauthprovider.md b/client-sdks/platform/typescript/docs/models/projectgcpoauthprovider.md index ff2738547..ad2f87382 100644 --- a/client-sdks/platform/typescript/docs/models/projectgcpoauthprovider.md +++ b/client-sdks/platform/typescript/docs/models/projectgcpoauthprovider.md @@ -29,4 +29,3 @@ const value: models.ProjectGcpOAuthProviderCustom = { ], }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/protocol.md b/client-sdks/platform/typescript/docs/models/protocol.md new file mode 100644 index 000000000..cb54c439a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/protocol.md @@ -0,0 +1,15 @@ +# Protocol + +## Example Usage + +```typescript +import { Protocol } from "@alienplatform/platform-api/models"; + +let value: Protocol = "http"; +``` + +## Values + +```typescript +"http" | "tcp" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/publicendpoints.md b/client-sdks/platform/typescript/docs/models/publicendpoints.md index 083f54ec4..798da3702 100644 --- a/client-sdks/platform/typescript/docs/models/publicendpoints.md +++ b/client-sdks/platform/typescript/docs/models/publicendpoints.md @@ -7,13 +7,18 @@ import { PublicEndpoints } from "@alienplatform/platform-api/models"; let value: PublicEndpoints = { url: "https://gigantic-hello.name", + protocol: "http", + host: "wordy-step-mother.info", + port: 701832, }; ``` ## Fields -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `url` | *string* | :heavy_check_mark: | N/A | -| `host` | *string* | :heavy_minus_sign: | N/A | -| `wildcardHost` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | ---------------------------------------- | +| `url` | *string* | :heavy_check_mark: | N/A | +| `protocol` | [models.Protocol](../models/protocol.md) | :heavy_check_mark: | N/A | +| `host` | *string* | :heavy_check_mark: | N/A | +| `port` | *number* | :heavy_check_mark: | N/A | +| `wildcardHost` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/recommendationunion1.md b/client-sdks/platform/typescript/docs/models/recommendationunion1.md index 3512bd706..307751f6e 100644 --- a/client-sdks/platform/typescript/docs/models/recommendationunion1.md +++ b/client-sdks/platform/typescript/docs/models/recommendationunion1.md @@ -16,4 +16,3 @@ const value: models.Recommendation1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/recommendationunion2.md b/client-sdks/platform/typescript/docs/models/recommendationunion2.md index 1a4ede9b3..ddfd5a33e 100644 --- a/client-sdks/platform/typescript/docs/models/recommendationunion2.md +++ b/client-sdks/platform/typescript/docs/models/recommendationunion2.md @@ -16,4 +16,3 @@ const value: models.Recommendation2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/recommendationunion3.md b/client-sdks/platform/typescript/docs/models/recommendationunion3.md index f7cf08b24..bab0ddb17 100644 --- a/client-sdks/platform/typescript/docs/models/recommendationunion3.md +++ b/client-sdks/platform/typescript/docs/models/recommendationunion3.md @@ -16,4 +16,3 @@ const value: models.Recommendation3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/recommendationunion4.md b/client-sdks/platform/typescript/docs/models/recommendationunion4.md index 317ea1ed1..698608fe0 100644 --- a/client-sdks/platform/typescript/docs/models/recommendationunion4.md +++ b/client-sdks/platform/typescript/docs/models/recommendationunion4.md @@ -16,4 +16,3 @@ const value: models.Recommendation4 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/recommended.md b/client-sdks/platform/typescript/docs/models/recommended.md index d2f852039..427107390 100644 --- a/client-sdks/platform/typescript/docs/models/recommended.md +++ b/client-sdks/platform/typescript/docs/models/recommended.md @@ -21,4 +21,3 @@ const value: models.RecommendedAutoscale = { max: 30048, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/release.md b/client-sdks/platform/typescript/docs/models/release.md index 25e44a67d..09c190a27 100644 --- a/client-sdks/platform/typescript/docs/models/release.md +++ b/client-sdks/platform/typescript/docs/models/release.md @@ -37,7 +37,8 @@ let value: Release = { | `version` | *string* | :heavy_check_mark: | N/A | | | `gitMetadata` | [models.GitMetadata](../models/gitmetadata.md) | :heavy_minus_sign: | N/A | | | `createdAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | N/A | | -| `stack` | [models.StackByPlatform](../models/stackbyplatform.md) | :heavy_minus_sign: | N/A | | +| `stack` | [models.ReleaseStack](../models/releasestack.md) | :heavy_minus_sign: | N/A | | | `setupFingerprints` | Record | :heavy_check_mark: | N/A | | | `rootDirectory` | *string* | :heavy_minus_sign: | N/A | | +| `createdByUserId` | *string* | :heavy_minus_sign: | ID of the platform user who created the release, if known | | | `workspaceId` | *string* | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/releasechannel.md b/client-sdks/platform/typescript/docs/models/releasechannel.md new file mode 100644 index 000000000..5a6eab156 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/releasechannel.md @@ -0,0 +1,28 @@ +# ReleaseChannel + +## Example Usage + +```typescript +import { ReleaseChannel } from "@alienplatform/platform-api/models"; + +let value: ReleaseChannel = { + workspaceId: "ws_It13CUaGEhLLAB87simX0", + projectId: "prj_mcytp6z3j91f7tn5ryqsfwtr", + name: "", + currentReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", + createdAt: new Date("2026-06-15T04:15:50.307Z"), + updatedAt: new Date("2024-10-13T06:24:32.093Z"), +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| `workspaceId` | *string* | :heavy_check_mark: | Unique identifier for the workspace. | ws_It13CUaGEhLLAB87simX0 | +| `projectId` | *string* | :heavy_check_mark: | Unique identifier for the project. | prj_mcytp6z3j91f7tn5ryqsfwtr | +| `name` | *string* | :heavy_check_mark: | N/A | | +| `currentReleaseId` | *string* | :heavy_check_mark: | Unique identifier for the release. | rel_WbhQgksrawSKIpEN0NAssHX9 | +| `deploymentCount` | *number* | :heavy_minus_sign: | N/A | | +| `createdAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | N/A | | +| `updatedAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/releasedeploymentitem.md b/client-sdks/platform/typescript/docs/models/releasedeploymentitem.md new file mode 100644 index 000000000..b603ae6d8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/releasedeploymentitem.md @@ -0,0 +1,43 @@ +# ReleaseDeploymentItem + +## Example Usage + +```typescript +import { ReleaseDeploymentItem } from "@alienplatform/platform-api/models"; + +let value: ReleaseDeploymentItem = { + id: "dep_0c29fq4a2yjb7kx3smwdgxlc", + name: "", + status: "update-failed", + platform: "gcp", + deploymentGroup: { + id: "dg_r27ict8c7vcgsumpj90ackf7b", + name: "prod-us-east-1", + }, + currentReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", + desiredReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", + pinnedReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", + rolloutState: "pinned-other", + releasedAt: new Date("2025-04-16T08:06:07.773Z"), + durationMs: 629552, +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the deployment. | dep_0c29fq4a2yjb7kx3smwdgxlc | +| `name` | *string* | :heavy_check_mark: | N/A | | +| `status` | [models.ReleaseDeploymentItemStatus](../models/releasedeploymentitemstatus.md) | :heavy_check_mark: | Deployment status in the deployment lifecycle.

For observe-only deployments with no release or stack state, `Running`
means the Operator is attached. Connectivity comes from `lastHeartbeatAt`;
resource health comes from inventory and resource heartbeat data. | | +| `platform` | [models.ReleaseDeploymentItemPlatform](../models/releasedeploymentitemplatform.md) | :heavy_check_mark: | Target platform for the deployment | | +| `environmentInfo` | *models.ReleaseDeploymentItemEnvironmentInfoUnion* | :heavy_minus_sign: | Cloud environment information | | +| `deploymentGroup` | [models.ReleaseDeploymentItemDeploymentGroup](../models/releasedeploymentitemdeploymentgroup.md) | :heavy_minus_sign: | Deployment group this deployment belongs to | | +| `currentReleaseId` | *string* | :heavy_minus_sign: | ID of the currently deployed release | rel_WbhQgksrawSKIpEN0NAssHX9 | +| `desiredReleaseId` | *string* | :heavy_minus_sign: | ID of the desired release | rel_WbhQgksrawSKIpEN0NAssHX9 | +| `pinnedReleaseId` | *string* | :heavy_minus_sign: | ID of the pinned release | rel_WbhQgksrawSKIpEN0NAssHX9 | +| `lastHeartbeatAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_minus_sign: | Timestamp of the last received heartbeat | | +| `rolloutState` | [models.ReleaseRolloutState](../models/releaserolloutstate.md) | :heavy_check_mark: | N/A | | +| `releasedAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | When this release went live on the deployment, null if it never did | | +| `durationMs` | *number* | :heavy_check_mark: | Time from release creation until the deployment finished updating, in milliseconds. Null for initial provisions and deployments that never ran this release. | | +| `error` | [models.ReleaseDeploymentItemError](../models/releasedeploymentitemerror.md) | :heavy_minus_sign: | Latest error information if the deployment is in a failed state | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/releasedeploymentitemdeploymentgroup.md b/client-sdks/platform/typescript/docs/models/releasedeploymentitemdeploymentgroup.md new file mode 100644 index 000000000..5bb4f9304 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/releasedeploymentitemdeploymentgroup.md @@ -0,0 +1,21 @@ +# ReleaseDeploymentItemDeploymentGroup + +Deployment group this deployment belongs to + +## Example Usage + +```typescript +import { ReleaseDeploymentItemDeploymentGroup } from "@alienplatform/platform-api/models"; + +let value: ReleaseDeploymentItemDeploymentGroup = { + id: "dg_r27ict8c7vcgsumpj90ackf7b", + name: "prod-us-east-1", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | ------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the deployment group. | dg_r27ict8c7vcgsumpj90ackf7b | +| `name` | *string* | :heavy_check_mark: | Deployment group name. | prod-us-east-1 | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/releasedeploymentitemenvironmentinfoaws.md b/client-sdks/platform/typescript/docs/models/releasedeploymentitemenvironmentinfoaws.md new file mode 100644 index 000000000..be3c5ca39 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/releasedeploymentitemenvironmentinfoaws.md @@ -0,0 +1,23 @@ +# ReleaseDeploymentItemEnvironmentInfoAws + +AWS-specific environment information + +## Example Usage + +```typescript +import { ReleaseDeploymentItemEnvironmentInfoAws } from "@alienplatform/platform-api/models"; + +let value: ReleaseDeploymentItemEnvironmentInfoAws = { + accountId: "", + region: "", + platform: "aws", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `accountId` | *string* | :heavy_check_mark: | AWS account ID | +| `region` | *string* | :heavy_check_mark: | AWS region | +| `platform` | [models.ReleaseDeploymentItemPlatformAws](../models/releasedeploymentitemplatformaws.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/releasedeploymentitemenvironmentinfoazure.md b/client-sdks/platform/typescript/docs/models/releasedeploymentitemenvironmentinfoazure.md new file mode 100644 index 000000000..887dd724f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/releasedeploymentitemenvironmentinfoazure.md @@ -0,0 +1,25 @@ +# ReleaseDeploymentItemEnvironmentInfoAzure + +Azure-specific environment information + +## Example Usage + +```typescript +import { ReleaseDeploymentItemEnvironmentInfoAzure } from "@alienplatform/platform-api/models"; + +let value: ReleaseDeploymentItemEnvironmentInfoAzure = { + location: "", + subscriptionId: "", + tenantId: "", + platform: "azure", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | +| `location` | *string* | :heavy_check_mark: | Azure location/region | +| `subscriptionId` | *string* | :heavy_check_mark: | Azure subscription ID | +| `tenantId` | *string* | :heavy_check_mark: | Azure tenant ID | +| `platform` | [models.ReleaseDeploymentItemPlatformAzure](../models/releasedeploymentitemplatformazure.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/releasedeploymentitemenvironmentinfogcp.md b/client-sdks/platform/typescript/docs/models/releasedeploymentitemenvironmentinfogcp.md new file mode 100644 index 000000000..b43100194 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/releasedeploymentitemenvironmentinfogcp.md @@ -0,0 +1,25 @@ +# ReleaseDeploymentItemEnvironmentInfoGcp + +GCP-specific environment information + +## Example Usage + +```typescript +import { ReleaseDeploymentItemEnvironmentInfoGcp } from "@alienplatform/platform-api/models"; + +let value: ReleaseDeploymentItemEnvironmentInfoGcp = { + projectId: "", + projectNumber: "", + region: "", + platform: "gcp", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `projectId` | *string* | :heavy_check_mark: | GCP project ID (e.g., "my-project") | +| `projectNumber` | *string* | :heavy_check_mark: | GCP project number (e.g., "123456789012") | +| `region` | *string* | :heavy_check_mark: | GCP region | +| `platform` | [models.ReleaseDeploymentItemPlatformGcp](../models/releasedeploymentitemplatformgcp.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/releasedeploymentitemenvironmentinfolocal.md b/client-sdks/platform/typescript/docs/models/releasedeploymentitemenvironmentinfolocal.md new file mode 100644 index 000000000..1c6b800c4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/releasedeploymentitemenvironmentinfolocal.md @@ -0,0 +1,25 @@ +# ReleaseDeploymentItemEnvironmentInfoLocal + +Local platform environment information + +## Example Usage + +```typescript +import { ReleaseDeploymentItemEnvironmentInfoLocal } from "@alienplatform/platform-api/models"; + +let value: ReleaseDeploymentItemEnvironmentInfoLocal = { + arch: "", + hostname: "unused-overcoat.biz", + os: "Linux", + platform: "local", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | +| `arch` | *string* | :heavy_check_mark: | Architecture (e.g., "x86_64", "aarch64") | +| `hostname` | *string* | :heavy_check_mark: | Hostname of the machine running the deployment | +| `os` | *string* | :heavy_check_mark: | Operating system (e.g., "linux", "macos", "windows") | +| `platform` | [models.ReleaseDeploymentItemPlatformLocal](../models/releasedeploymentitemplatformlocal.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/releasedeploymentitemenvironmentinfotest.md b/client-sdks/platform/typescript/docs/models/releasedeploymentitemenvironmentinfotest.md new file mode 100644 index 000000000..65f4722ed --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/releasedeploymentitemenvironmentinfotest.md @@ -0,0 +1,21 @@ +# ReleaseDeploymentItemEnvironmentInfoTest + +Test platform environment information (mock) + +## Example Usage + +```typescript +import { ReleaseDeploymentItemEnvironmentInfoTest } from "@alienplatform/platform-api/models"; + +let value: ReleaseDeploymentItemEnvironmentInfoTest = { + testId: "", + platform: "test", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | +| `testId` | *string* | :heavy_check_mark: | Test identifier for this environment | +| `platform` | [models.ReleaseDeploymentItemPlatformTest](../models/releasedeploymentitemplatformtest.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/releasedeploymentitemenvironmentinfounion.md b/client-sdks/platform/typescript/docs/models/releasedeploymentitemenvironmentinfounion.md new file mode 100644 index 000000000..5bc02725e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/releasedeploymentitemenvironmentinfounion.md @@ -0,0 +1,64 @@ +# ReleaseDeploymentItemEnvironmentInfoUnion + +Cloud environment information + + +## Supported Types + +### `models.ReleaseDeploymentItemEnvironmentInfoAws` + +```typescript +const value: models.ReleaseDeploymentItemEnvironmentInfoAws = { + accountId: "", + region: "", + platform: "aws", +}; +``` + +### `models.ReleaseDeploymentItemEnvironmentInfoGcp` + +```typescript +const value: models.ReleaseDeploymentItemEnvironmentInfoGcp = { + projectId: "", + projectNumber: "", + region: "", + platform: "gcp", +}; +``` + +### `models.ReleaseDeploymentItemEnvironmentInfoAzure` + +```typescript +const value: models.ReleaseDeploymentItemEnvironmentInfoAzure = { + location: "", + subscriptionId: "", + tenantId: "", + platform: "azure", +}; +``` + +### `models.ReleaseDeploymentItemEnvironmentInfoLocal` + +```typescript +const value: models.ReleaseDeploymentItemEnvironmentInfoLocal = { + arch: "", + hostname: "unused-overcoat.biz", + os: "Linux", + platform: "local", +}; +``` + +### `models.ReleaseDeploymentItemEnvironmentInfoTest` + +```typescript +const value: models.ReleaseDeploymentItemEnvironmentInfoTest = { + testId: "", + platform: "test", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/releasedeploymentitemerror.md b/client-sdks/platform/typescript/docs/models/releasedeploymentitemerror.md new file mode 100644 index 000000000..8dab43d2d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/releasedeploymentitemerror.md @@ -0,0 +1,28 @@ +# ReleaseDeploymentItemError + +Latest error information if the deployment is in a failed state + +## Example Usage + +```typescript +import { ReleaseDeploymentItemError } from "@alienplatform/platform-api/models"; + +let value: ReleaseDeploymentItemError = { + code: "", + internal: false, + message: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `code` | *string* | :heavy_check_mark: | A unique identifier for the type of error.

This should be a short, machine-readable string that can be used
by clients to programmatically handle different error types.
Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" | +| `context` | *any* | :heavy_minus_sign: | Additional diagnostic information about the error context.

This optional field can contain structured data providing more details
about the error, such as validation errors, request parameters that
caused the issue, or other relevant context information. | +| `hint` | *string* | :heavy_minus_sign: | Optional human-facing remediation hint. | +| `httpStatusCode` | *number* | :heavy_minus_sign: | HTTP status code for this error.

Used when converting the error to an HTTP response. If None, falls back to
the error type's default status code or 500. | +| `internal` | *boolean* | :heavy_check_mark: | Indicates if this is an internal error that should not be exposed to users.

When `true`, this error contains sensitive information or implementation
details that should not be shown to end-users. Such errors should be
logged for debugging but replaced with generic error messages in responses. | +| `message` | *string* | :heavy_check_mark: | Human-readable error message.

This message should be clear and actionable for developers or end-users,
providing context about what went wrong and potentially how to fix it. | +| `retryable` | *boolean* | :heavy_minus_sign: | Indicates whether the operation that caused the error should be retried.

When `true`, the error is transient and the operation might succeed
if attempted again. When `false`, retrying the same operation is
unlikely to succeed without changes. | +| `source` | *any* | :heavy_minus_sign: | The underlying error that caused this error, creating an error chain.

This allows for proper error propagation and debugging by maintaining
the full context of how an error occurred through multiple layers
of an application. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/releasedeploymentitemplatform.md b/client-sdks/platform/typescript/docs/models/releasedeploymentitemplatform.md new file mode 100644 index 000000000..0edf73fbd --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/releasedeploymentitemplatform.md @@ -0,0 +1,17 @@ +# ReleaseDeploymentItemPlatform + +Target platform for the deployment + +## Example Usage + +```typescript +import { ReleaseDeploymentItemPlatform } from "@alienplatform/platform-api/models"; + +let value: ReleaseDeploymentItemPlatform = "kubernetes"; +``` + +## Values + +```typescript +"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/releasedeploymentitemplatformaws.md b/client-sdks/platform/typescript/docs/models/releasedeploymentitemplatformaws.md new file mode 100644 index 000000000..3ae9629db --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/releasedeploymentitemplatformaws.md @@ -0,0 +1,15 @@ +# ReleaseDeploymentItemPlatformAws + +## Example Usage + +```typescript +import { ReleaseDeploymentItemPlatformAws } from "@alienplatform/platform-api/models"; + +let value: ReleaseDeploymentItemPlatformAws = "aws"; +``` + +## Values + +```typescript +"aws" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/releasedeploymentitemplatformazure.md b/client-sdks/platform/typescript/docs/models/releasedeploymentitemplatformazure.md new file mode 100644 index 000000000..379c009cd --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/releasedeploymentitemplatformazure.md @@ -0,0 +1,15 @@ +# ReleaseDeploymentItemPlatformAzure + +## Example Usage + +```typescript +import { ReleaseDeploymentItemPlatformAzure } from "@alienplatform/platform-api/models"; + +let value: ReleaseDeploymentItemPlatformAzure = "azure"; +``` + +## Values + +```typescript +"azure" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/releasedeploymentitemplatformgcp.md b/client-sdks/platform/typescript/docs/models/releasedeploymentitemplatformgcp.md new file mode 100644 index 000000000..096b2f2cb --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/releasedeploymentitemplatformgcp.md @@ -0,0 +1,15 @@ +# ReleaseDeploymentItemPlatformGcp + +## Example Usage + +```typescript +import { ReleaseDeploymentItemPlatformGcp } from "@alienplatform/platform-api/models"; + +let value: ReleaseDeploymentItemPlatformGcp = "gcp"; +``` + +## Values + +```typescript +"gcp" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/releasedeploymentitemplatformlocal.md b/client-sdks/platform/typescript/docs/models/releasedeploymentitemplatformlocal.md new file mode 100644 index 000000000..41a98ec10 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/releasedeploymentitemplatformlocal.md @@ -0,0 +1,15 @@ +# ReleaseDeploymentItemPlatformLocal + +## Example Usage + +```typescript +import { ReleaseDeploymentItemPlatformLocal } from "@alienplatform/platform-api/models"; + +let value: ReleaseDeploymentItemPlatformLocal = "local"; +``` + +## Values + +```typescript +"local" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/releasedeploymentitemplatformtest.md b/client-sdks/platform/typescript/docs/models/releasedeploymentitemplatformtest.md new file mode 100644 index 000000000..4a47aa416 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/releasedeploymentitemplatformtest.md @@ -0,0 +1,15 @@ +# ReleaseDeploymentItemPlatformTest + +## Example Usage + +```typescript +import { ReleaseDeploymentItemPlatformTest } from "@alienplatform/platform-api/models"; + +let value: ReleaseDeploymentItemPlatformTest = "test"; +``` + +## Values + +```typescript +"test" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/releasedeploymentitemstatus.md b/client-sdks/platform/typescript/docs/models/releasedeploymentitemstatus.md new file mode 100644 index 000000000..dcdb9292c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/releasedeploymentitemstatus.md @@ -0,0 +1,21 @@ +# ReleaseDeploymentItemStatus + +Deployment status in the deployment lifecycle. + +For observe-only deployments with no release or stack state, `Running` +means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; +resource health comes from inventory and resource heartbeat data. + +## Example Usage + +```typescript +import { ReleaseDeploymentItemStatus } from "@alienplatform/platform-api/models"; + +let value: ReleaseDeploymentItemStatus = "delete-failed"; +``` + +## Values + +```typescript +"pending" | "preflights-failed" | "initial-setup" | "initial-setup-failed" | "provisioning" | "waiting-for-machines" | "provisioning-failed" | "running" | "refresh-failed" | "update-pending" | "updating" | "update-failed" | "delete-pending" | "deleting" | "delete-failed" | "teardown-required" | "teardown-failed" | "deleted" | "error" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/releasedeploymentsresponse.md b/client-sdks/platform/typescript/docs/models/releasedeploymentsresponse.md new file mode 100644 index 000000000..043ce1dae --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/releasedeploymentsresponse.md @@ -0,0 +1,29 @@ +# ReleaseDeploymentsResponse + +## Example Usage + +```typescript +import { ReleaseDeploymentsResponse } from "@alienplatform/platform-api/models"; + +let value: ReleaseDeploymentsResponse = { + items: [], + nextCursor: "", + stateCounts: { + updated: 256940, + updating: 670112, + failed: 812790, + pending: 710404, + pinnedOther: 896373, + superseded: 835410, + onOther: 213666, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------- | +| `items` | [models.ReleaseDeploymentItem](../models/releasedeploymentitem.md)[] | :heavy_check_mark: | Items in this page | +| `nextCursor` | *string* | :heavy_check_mark: | Cursor for the next page, null if last page | +| `stateCounts` | [models.ReleaseRolloutStateCounts](../models/releaserolloutstatecounts.md) | :heavy_check_mark: | Deployment counts per rollout state across all deployments the filters allow (ignores the state filter) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/releaseinfodefaultunion.md b/client-sdks/platform/typescript/docs/models/releaseinfodefaultunion.md index 95acdc326..f092fd6a1 100644 --- a/client-sdks/platform/typescript/docs/models/releaseinfodefaultunion.md +++ b/client-sdks/platform/typescript/docs/models/releaseinfodefaultunion.md @@ -46,4 +46,3 @@ const value: models.DefaultReleaseInfoStringList = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/releaseinfoextendunion.md b/client-sdks/platform/typescript/docs/models/releaseinfoextendunion.md index a34472f7d..d56b9f75f 100644 --- a/client-sdks/platform/typescript/docs/models/releaseinfoextendunion.md +++ b/client-sdks/platform/typescript/docs/models/releaseinfoextendunion.md @@ -20,4 +20,3 @@ const value: models.ExtendReleaseInfo = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/releaseinfomanagementunion.md b/client-sdks/platform/typescript/docs/models/releaseinfomanagementunion.md index 11d085d6f..bc1e5e071 100644 --- a/client-sdks/platform/typescript/docs/models/releaseinfomanagementunion.md +++ b/client-sdks/platform/typescript/docs/models/releaseinfomanagementunion.md @@ -28,4 +28,3 @@ const value: models.ManagementReleaseInfo2 = { ```typescript const value: models.ManagementReleaseInfoEnum = "auto"; ``` - diff --git a/client-sdks/platform/typescript/docs/models/releaseinfooverrideunion.md b/client-sdks/platform/typescript/docs/models/releaseinfooverrideunion.md index a6e105bb8..e2d4b58d7 100644 --- a/client-sdks/platform/typescript/docs/models/releaseinfooverrideunion.md +++ b/client-sdks/platform/typescript/docs/models/releaseinfooverrideunion.md @@ -20,4 +20,3 @@ const value: models.OverrideReleaseInfo = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/releaseinfoprofileunion.md b/client-sdks/platform/typescript/docs/models/releaseinfoprofileunion.md index 9eede31d9..1079c63bc 100644 --- a/client-sdks/platform/typescript/docs/models/releaseinfoprofileunion.md +++ b/client-sdks/platform/typescript/docs/models/releaseinfoprofileunion.md @@ -20,4 +20,3 @@ const value: models.ProfileReleaseInfo = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/releaseinforesources.md b/client-sdks/platform/typescript/docs/models/releaseinforesources.md index 1900a98ea..843e62345 100644 --- a/client-sdks/platform/typescript/docs/models/releaseinforesources.md +++ b/client-sdks/platform/typescript/docs/models/releaseinforesources.md @@ -22,9 +22,10 @@ let value: ReleaseInfoResources = { ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `config` | [models.ReleaseInfoConfig](../models/releaseinfoconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | -| `dependencies` | [models.ReleaseInfoDependency](../models/releaseinfodependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | -| `lifecycle` | [models.ReleaseInfoLifecycle](../models/releaseinfolifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | -| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `config` | [models.ReleaseInfoConfig](../models/releaseinfoconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | +| `dependencies` | [models.ReleaseInfoDependency](../models/releaseinfodependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | +| `enabledWhen` | *string* | :heavy_minus_sign: | Id of the boolean stack input that decides whether this resource is
created at all. `None` means always create it.

Set by `.enabled(input)` in the SDK. Setup emitters render the resource
conditionally on the matching template variable, so a deployer who says no
never gets the resource, its outputs, or anything derived from it. | +| `lifecycle` | [models.ReleaseInfoLifecycle](../models/releaseinfolifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | +| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/releaseinfotypeunion.md b/client-sdks/platform/typescript/docs/models/releaseinfotypeunion.md index c1ec8b87a..bddcd9122 100644 --- a/client-sdks/platform/typescript/docs/models/releaseinfotypeunion.md +++ b/client-sdks/platform/typescript/docs/models/releaseinfotypeunion.md @@ -14,4 +14,3 @@ const value: models.TypeReleaseInfoEnvEnum = "secret"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/releaseinfovalidationunion.md b/client-sdks/platform/typescript/docs/models/releaseinfovalidationunion.md index 301b35550..b90155128 100644 --- a/client-sdks/platform/typescript/docs/models/releaseinfovalidationunion.md +++ b/client-sdks/platform/typescript/docs/models/releaseinfovalidationunion.md @@ -14,4 +14,3 @@ const value: models.ValidationReleaseInfo = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/releaselistitemresponse.md b/client-sdks/platform/typescript/docs/models/releaselistitemresponse.md index 80358d755..3816d1d90 100644 --- a/client-sdks/platform/typescript/docs/models/releaselistitemresponse.md +++ b/client-sdks/platform/typescript/docs/models/releaselistitemresponse.md @@ -31,6 +31,11 @@ let value: ReleaseListItemResponse = { }, }, workspaceId: "", + currentChannels: [ + "", + "", + ], + commitUrl: "https://glossy-marksman.biz", }; ``` @@ -43,8 +48,13 @@ let value: ReleaseListItemResponse = { | `version` | *string* | :heavy_check_mark: | N/A | | | `gitMetadata` | [models.GitMetadata](../models/gitmetadata.md) | :heavy_minus_sign: | N/A | | | `createdAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | N/A | | -| `stack` | [models.StackByPlatform](../models/stackbyplatform.md) | :heavy_minus_sign: | N/A | | +| `stack` | [models.ReleaseListItemResponseStack](../models/releaselistitemresponsestack.md) | :heavy_minus_sign: | N/A | | | `setupFingerprints` | Record | :heavy_check_mark: | N/A | | | `rootDirectory` | *string* | :heavy_minus_sign: | N/A | | +| `createdByUserId` | *string* | :heavy_minus_sign: | ID of the platform user who created the release, if known | | | `workspaceId` | *string* | :heavy_check_mark: | N/A | | -| `project` | [models.ReleaseListItemResponseProject](../models/releaselistitemresponseproject.md) | :heavy_minus_sign: | Project info, included when ?include=project is used | | \ No newline at end of file +| `currentChannels` | *string*[] | :heavy_check_mark: | Channels for which this release is currently selected | | +| `commitUrl` | *string* | :heavy_check_mark: | Validated canonical provider URL for the exact commit | | +| `project` | [models.ReleaseListItemResponseProject](../models/releaselistitemresponseproject.md) | :heavy_minus_sign: | Project info, included when ?include=project is used | | +| `rollout` | [models.Rollout](../models/rollout.md) | :heavy_minus_sign: | Rollout stats, included when ?include=rollout is used | | +| `createdBy` | [models.CreatedBy](../models/createdby.md) | :heavy_minus_sign: | Platform user who created the release, included when ?include=createdBy is used | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/releaselistitemresponsestack.md b/client-sdks/platform/typescript/docs/models/releaselistitemresponsestack.md new file mode 100644 index 000000000..caaa8233a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/releaselistitemresponsestack.md @@ -0,0 +1,21 @@ +# ReleaseListItemResponseStack + +## Example Usage + +```typescript +import { ReleaseListItemResponseStack } from "@alienplatform/platform-api/models"; + +let value: ReleaseListItemResponseStack = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `aws` | *any* | :heavy_minus_sign: | N/A | +| `gcp` | *any* | :heavy_minus_sign: | N/A | +| `azure` | *any* | :heavy_minus_sign: | N/A | +| `kubernetes` | *any* | :heavy_minus_sign: | N/A | +| `machines` | *any* | :heavy_minus_sign: | N/A | +| `local` | *any* | :heavy_minus_sign: | N/A | +| `test` | *any* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/releaserolloutstate.md b/client-sdks/platform/typescript/docs/models/releaserolloutstate.md new file mode 100644 index 000000000..7af7d416e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/releaserolloutstate.md @@ -0,0 +1,15 @@ +# ReleaseRolloutState + +## Example Usage + +```typescript +import { ReleaseRolloutState } from "@alienplatform/platform-api/models"; + +let value: ReleaseRolloutState = "updated"; +``` + +## Values + +```typescript +"updated" | "updating" | "failed" | "pending" | "pinned-other" | "superseded" | "on-other" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/releaserolloutstatecounts.md b/client-sdks/platform/typescript/docs/models/releaserolloutstatecounts.md new file mode 100644 index 000000000..61e10392f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/releaserolloutstatecounts.md @@ -0,0 +1,31 @@ +# ReleaseRolloutStateCounts + +Deployment counts per rollout state across all deployments the filters allow (ignores the state filter) + +## Example Usage + +```typescript +import { ReleaseRolloutStateCounts } from "@alienplatform/platform-api/models"; + +let value: ReleaseRolloutStateCounts = { + updated: 296286, + updating: 209667, + failed: 197301, + pending: 996144, + pinnedOther: 119808, + superseded: 913884, + onOther: 305959, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `updated` | *number* | :heavy_check_mark: | N/A | +| `updating` | *number* | :heavy_check_mark: | N/A | +| `failed` | *number* | :heavy_check_mark: | N/A | +| `pending` | *number* | :heavy_check_mark: | N/A | +| `pinnedOther` | *number* | :heavy_check_mark: | N/A | +| `superseded` | *number* | :heavy_check_mark: | N/A | +| `onOther` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/releasestack.md b/client-sdks/platform/typescript/docs/models/releasestack.md new file mode 100644 index 000000000..93e790910 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/releasestack.md @@ -0,0 +1,21 @@ +# ReleaseStack + +## Example Usage + +```typescript +import { ReleaseStack } from "@alienplatform/platform-api/models"; + +let value: ReleaseStack = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `aws` | *any* | :heavy_minus_sign: | N/A | +| `gcp` | *any* | :heavy_minus_sign: | N/A | +| `azure` | *any* | :heavy_minus_sign: | N/A | +| `kubernetes` | *any* | :heavy_minus_sign: | N/A | +| `machines` | *any* | :heavy_minus_sign: | N/A | +| `local` | *any* | :heavy_minus_sign: | N/A | +| `test` | *any* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/replicaunitcpuunion.md b/client-sdks/platform/typescript/docs/models/replicaunitcpuunion.md index 856d10a7b..f7bb1a276 100644 --- a/client-sdks/platform/typescript/docs/models/replicaunitcpuunion.md +++ b/client-sdks/platform/typescript/docs/models/replicaunitcpuunion.md @@ -17,4 +17,3 @@ const value: models.CpuReplicaUnit = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/replicaunitmemoryunion.md b/client-sdks/platform/typescript/docs/models/replicaunitmemoryunion.md index 2c5fa7dbe..7ac4a7023 100644 --- a/client-sdks/platform/typescript/docs/models/replicaunitmemoryunion.md +++ b/client-sdks/platform/typescript/docs/models/replicaunitmemoryunion.md @@ -17,4 +17,3 @@ const value: models.MemoryReplicaUnit = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/resolvemanagergcpoauthproviderresponse.md b/client-sdks/platform/typescript/docs/models/resolvemanagergcpoauthproviderresponse.md index 9794d34ae..3bc0dd77d 100644 --- a/client-sdks/platform/typescript/docs/models/resolvemanagergcpoauthproviderresponse.md +++ b/client-sdks/platform/typescript/docs/models/resolvemanagergcpoauthproviderresponse.md @@ -20,4 +20,3 @@ const value: models.ResolveManagerGcpOAuthProviderResponseCustom = { clientSecret: "GOCSPX-example", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/resolveresponsemanagementconfigunion.md b/client-sdks/platform/typescript/docs/models/resolveresponsemanagementconfigunion.md index 82d5dc533..142cc53f2 100644 --- a/client-sdks/platform/typescript/docs/models/resolveresponsemanagementconfigunion.md +++ b/client-sdks/platform/typescript/docs/models/resolveresponsemanagementconfigunion.md @@ -44,4 +44,3 @@ const value: models.ResolveResponseManagementConfigKubernetes = { platform: "kubernetes", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/resourcecounts.md b/client-sdks/platform/typescript/docs/models/resourcecounts.md index 5c9e08a2f..952326b46 100644 --- a/client-sdks/platform/typescript/docs/models/resourcecounts.md +++ b/client-sdks/platform/typescript/docs/models/resourcecounts.md @@ -20,6 +20,7 @@ let value: ResourceCounts = { | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | | `workers` | *number* | :heavy_check_mark: | N/A | | `containers` | *number* | :heavy_check_mark: | N/A | +| `daemons` | *number* | :heavy_minus_sign: | Daemon resources that run on managed runtime machines | | `publicHttpsEndpoints` | *number* | :heavy_check_mark: | Resources that declare managed public HTTPS endpoint setup | | `externalInfra` | *number* | :heavy_check_mark: | Storage, queue, KV, vault, database, or cache resources that Kubernetes needs Terraform to provision | | `total` | *number* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/resourceheartbeat.md b/client-sdks/platform/typescript/docs/models/resourceheartbeat.md index a5856bd43..dd4b3a68a 100644 --- a/client-sdks/platform/typescript/docs/models/resourceheartbeat.md +++ b/client-sdks/platform/typescript/docs/models/resourceheartbeat.md @@ -40,7 +40,7 @@ let value: ResourceHeartbeat = { | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | | `backend` | [models.ResourceHeartbeatBackendEnum](../models/resourceheartbeatbackendenum.md) | :heavy_check_mark: | N/A | | `controllerPlatform` | [models.ResourceHeartbeatControllerPlatform](../models/resourceheartbeatcontrollerplatform.md) | :heavy_check_mark: | Represents the target cloud platform. | -| `data` | *models.SyncReconcileRequestDataUnion16* | :heavy_check_mark: | N/A | +| `data` | *models.SyncReconcileRequestDataUnion18* | :heavy_check_mark: | N/A | | `deploymentId` | *string* | :heavy_minus_sign: | N/A | | `observedAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | N/A | | `raw` | [models.ResourceHeartbeatRaw](../models/resourceheartbeatraw.md)[] | :heavy_check_mark: | N/A | diff --git a/client-sdks/platform/typescript/docs/models/resourceheartbeatstatus66.md b/client-sdks/platform/typescript/docs/models/resourceheartbeatstatus66.md new file mode 100644 index 000000000..669009deb --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/resourceheartbeatstatus66.md @@ -0,0 +1,26 @@ +# ResourceHeartbeatStatus66 + +## Example Usage + +```typescript +import { ResourceHeartbeatStatus66 } from "@alienplatform/platform-api/models"; + +let value: ResourceHeartbeatStatus66 = { + collectionIssues: [], + health: "unhealthy", + lifecycle: "stopped", + partial: false, + stale: true, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `collectionIssues` | [models.DataCollectionIssue66](../models/datacollectionissue66.md)[] | :heavy_check_mark: | N/A | +| `health` | [models.DataHealth66](../models/datahealth66.md) | :heavy_check_mark: | N/A | +| `lifecycle` | [models.StatusLifecycle66](../models/statuslifecycle66.md) | :heavy_check_mark: | N/A | +| `message` | *string* | :heavy_minus_sign: | N/A | +| `partial` | *boolean* | :heavy_check_mark: | N/A | +| `stale` | *boolean* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/resourceheartbeatstatus67.md b/client-sdks/platform/typescript/docs/models/resourceheartbeatstatus67.md new file mode 100644 index 000000000..3a496f944 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/resourceheartbeatstatus67.md @@ -0,0 +1,26 @@ +# ResourceHeartbeatStatus67 + +## Example Usage + +```typescript +import { ResourceHeartbeatStatus67 } from "@alienplatform/platform-api/models"; + +let value: ResourceHeartbeatStatus67 = { + collectionIssues: [], + health: "healthy", + lifecycle: "running", + partial: false, + stale: true, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `collectionIssues` | [models.DataCollectionIssue67](../models/datacollectionissue67.md)[] | :heavy_check_mark: | N/A | +| `health` | [models.DataHealth67](../models/datahealth67.md) | :heavy_check_mark: | N/A | +| `lifecycle` | [models.StatusLifecycle67](../models/statuslifecycle67.md) | :heavy_check_mark: | N/A | +| `message` | *string* | :heavy_minus_sign: | N/A | +| `partial` | *boolean* | :heavy_check_mark: | N/A | +| `stale` | *boolean* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/resourceheartbeatstatus68.md b/client-sdks/platform/typescript/docs/models/resourceheartbeatstatus68.md new file mode 100644 index 000000000..b66076466 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/resourceheartbeatstatus68.md @@ -0,0 +1,26 @@ +# ResourceHeartbeatStatus68 + +## Example Usage + +```typescript +import { ResourceHeartbeatStatus68 } from "@alienplatform/platform-api/models"; + +let value: ResourceHeartbeatStatus68 = { + collectionIssues: [], + health: "healthy", + lifecycle: "failed", + partial: true, + stale: false, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `collectionIssues` | [models.DataCollectionIssue68](../models/datacollectionissue68.md)[] | :heavy_check_mark: | N/A | +| `health` | [models.DataHealth68](../models/datahealth68.md) | :heavy_check_mark: | N/A | +| `lifecycle` | [models.StatusLifecycle68](../models/statuslifecycle68.md) | :heavy_check_mark: | N/A | +| `message` | *string* | :heavy_minus_sign: | N/A | +| `partial` | *boolean* | :heavy_check_mark: | N/A | +| `stale` | *boolean* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/resourceheartbeatstatus69.md b/client-sdks/platform/typescript/docs/models/resourceheartbeatstatus69.md new file mode 100644 index 000000000..4adaf6065 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/resourceheartbeatstatus69.md @@ -0,0 +1,26 @@ +# ResourceHeartbeatStatus69 + +## Example Usage + +```typescript +import { ResourceHeartbeatStatus69 } from "@alienplatform/platform-api/models"; + +let value: ResourceHeartbeatStatus69 = { + collectionIssues: [], + health: "degraded", + lifecycle: "stopping", + partial: true, + stale: true, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `collectionIssues` | [models.DataCollectionIssue69](../models/datacollectionissue69.md)[] | :heavy_check_mark: | N/A | +| `health` | [models.DataHealth69](../models/datahealth69.md) | :heavy_check_mark: | N/A | +| `lifecycle` | [models.StatusLifecycle69](../models/statuslifecycle69.md) | :heavy_check_mark: | N/A | +| `message` | *string* | :heavy_minus_sign: | N/A | +| `partial` | *boolean* | :heavy_check_mark: | N/A | +| `stale` | *boolean* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/resourceheartbeatstatus70.md b/client-sdks/platform/typescript/docs/models/resourceheartbeatstatus70.md new file mode 100644 index 000000000..fbca6317c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/resourceheartbeatstatus70.md @@ -0,0 +1,20 @@ +# ResourceHeartbeatStatus70 + +## Example Usage + +```typescript +import { ResourceHeartbeatStatus70 } from "@alienplatform/platform-api/models"; + +let value: ResourceHeartbeatStatus70 = { + health: "unhealthy", + lifecycle: "stopping", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | +| `health` | [models.DataHealth70](../models/datahealth70.md) | :heavy_check_mark: | N/A | +| `lifecycle` | [models.StatusLifecycle70](../models/statuslifecycle70.md) | :heavy_check_mark: | N/A | +| `message` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/resourceheartbeatstatus71.md b/client-sdks/platform/typescript/docs/models/resourceheartbeatstatus71.md new file mode 100644 index 000000000..99039ef6c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/resourceheartbeatstatus71.md @@ -0,0 +1,20 @@ +# ResourceHeartbeatStatus71 + +## Example Usage + +```typescript +import { ResourceHeartbeatStatus71 } from "@alienplatform/platform-api/models"; + +let value: ResourceHeartbeatStatus71 = { + health: "degraded", + lifecycle: "updating", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | +| `health` | [models.DataHealth71](../models/datahealth71.md) | :heavy_check_mark: | N/A | +| `lifecycle` | [models.StatusLifecycle71](../models/statuslifecycle71.md) | :heavy_check_mark: | N/A | +| `message` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/resourceheartbeatstatus72.md b/client-sdks/platform/typescript/docs/models/resourceheartbeatstatus72.md new file mode 100644 index 000000000..ce81c2449 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/resourceheartbeatstatus72.md @@ -0,0 +1,20 @@ +# ResourceHeartbeatStatus72 + +## Example Usage + +```typescript +import { ResourceHeartbeatStatus72 } from "@alienplatform/platform-api/models"; + +let value: ResourceHeartbeatStatus72 = { + health: "unknown", + lifecycle: "running", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | +| `health` | [models.DataHealth72](../models/datahealth72.md) | :heavy_check_mark: | N/A | +| `lifecycle` | [models.StatusLifecycle72](../models/statuslifecycle72.md) | :heavy_check_mark: | N/A | +| `message` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/resourcetypehint.md b/client-sdks/platform/typescript/docs/models/resourcetypehint.md index 4de8f4b7d..e110db419 100644 --- a/client-sdks/platform/typescript/docs/models/resourcetypehint.md +++ b/client-sdks/platform/typescript/docs/models/resourcetypehint.md @@ -14,4 +14,3 @@ const value: string = ""; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/role.md b/client-sdks/platform/typescript/docs/models/role.md index a76fd3bfe..4e8172ed1 100644 --- a/client-sdks/platform/typescript/docs/models/role.md +++ b/client-sdks/platform/typescript/docs/models/role.md @@ -34,4 +34,3 @@ const value: models.DeploymentGroupRole = "deployment-group.deployer"; ```typescript const value: models.ManagerRole = "manager.runtime"; ``` - diff --git a/client-sdks/platform/typescript/docs/models/rollout.md b/client-sdks/platform/typescript/docs/models/rollout.md new file mode 100644 index 000000000..3e3c394b0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/rollout.md @@ -0,0 +1,23 @@ +# Rollout + +Rollout stats, included when ?include=rollout is used + +## Example Usage + +```typescript +import { Rollout } from "@alienplatform/platform-api/models"; + +let value: Rollout = { + updatedCount: 786693, + pendingCount: 96641, + avgDurationMs: 4012.4, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `updatedCount` | *number* | :heavy_check_mark: | Deployments that finished updating to this release (excludes initial provisions) | +| `pendingCount` | *number* | :heavy_check_mark: | Deployments currently targeting this release but not yet running it | +| `avgDurationMs` | *number* | :heavy_check_mark: | Average time from release creation until a deployment finished updating, in milliseconds | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/scale.md b/client-sdks/platform/typescript/docs/models/scale.md index 1d3db7d84..a7563fe3a 100644 --- a/client-sdks/platform/typescript/docs/models/scale.md +++ b/client-sdks/platform/typescript/docs/models/scale.md @@ -33,4 +33,3 @@ const value: models.ScaleAutoscale = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/scope.md b/client-sdks/platform/typescript/docs/models/scope.md index 235e0c8ab..ea9dfd9ba 100644 --- a/client-sdks/platform/typescript/docs/models/scope.md +++ b/client-sdks/platform/typescript/docs/models/scope.md @@ -55,4 +55,3 @@ const value: models.ManagerScope = { role: "manager.runtime", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/selected.md b/client-sdks/platform/typescript/docs/models/selected.md index 3e1d14d25..f1f332d4c 100644 --- a/client-sdks/platform/typescript/docs/models/selected.md +++ b/client-sdks/platform/typescript/docs/models/selected.md @@ -21,4 +21,3 @@ const value: models.SelectedAutoscale = { max: 358785, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/setdeploymentgroupexternalidrequest.md b/client-sdks/platform/typescript/docs/models/setdeploymentgroupexternalidrequest.md new file mode 100644 index 000000000..b04f74dbd --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/setdeploymentgroupexternalidrequest.md @@ -0,0 +1,17 @@ +# SetDeploymentGroupExternalIdRequest + +## Example Usage + +```typescript +import { SetDeploymentGroupExternalIdRequest } from "@alienplatform/platform-api/models"; + +let value: SetDeploymentGroupExternalIdRequest = { + externalId: "ext_example_01", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | --------------------------------------------------------------------------------- | +| `externalId` | *string* | :heavy_check_mark: | Case-sensitive, URL- and header-safe identifier from the integrating application. | ext_example_01 | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/slackchannel.md b/client-sdks/platform/typescript/docs/models/slackchannel.md new file mode 100644 index 000000000..af601c815 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/slackchannel.md @@ -0,0 +1,21 @@ +# SlackChannel + +## Example Usage + +```typescript +import { SlackChannel } from "@alienplatform/platform-api/models"; + +let value: SlackChannel = { + id: "", + name: "", + isMember: false, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `id` | *string* | :heavy_check_mark: | N/A | +| `name` | *string* | :heavy_check_mark: | N/A | +| `isMember` | *boolean* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/slackchannelsresponse.md b/client-sdks/platform/typescript/docs/models/slackchannelsresponse.md new file mode 100644 index 000000000..b1896b6db --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/slackchannelsresponse.md @@ -0,0 +1,17 @@ +# SlackChannelsResponse + +## Example Usage + +```typescript +import { SlackChannelsResponse } from "@alienplatform/platform-api/models"; + +let value: SlackChannelsResponse = { + channels: [], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `channels` | [models.SlackChannel](../models/slackchannel.md)[] | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/slackinstallurlresponse.md b/client-sdks/platform/typescript/docs/models/slackinstallurlresponse.md new file mode 100644 index 000000000..a6063ada8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/slackinstallurlresponse.md @@ -0,0 +1,17 @@ +# SlackInstallUrlResponse + +## Example Usage + +```typescript +import { SlackInstallUrlResponse } from "@alienplatform/platform-api/models"; + +let value: SlackInstallUrlResponse = { + url: "https://subtle-relative.name/", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `url` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/slackintegrationstatus.md b/client-sdks/platform/typescript/docs/models/slackintegrationstatus.md new file mode 100644 index 000000000..57d92af7b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/slackintegrationstatus.md @@ -0,0 +1,27 @@ +# SlackIntegrationStatus + +## Example Usage + +```typescript +import { SlackIntegrationStatus } from "@alienplatform/platform-api/models"; + +let value: SlackIntegrationStatus = { + connected: true, + slackTeamId: "", + slackTeamName: "", + installedByUserId: "", + installedAt: "", + notificationChannelId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------- | ----------------------- | ----------------------- | ----------------------- | +| `connected` | *boolean* | :heavy_check_mark: | N/A | +| `slackTeamId` | *string* | :heavy_check_mark: | N/A | +| `slackTeamName` | *string* | :heavy_check_mark: | N/A | +| `installedByUserId` | *string* | :heavy_check_mark: | N/A | +| `installedAt` | *string* | :heavy_check_mark: | N/A | +| `notificationChannelId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/slacknotificationchannelrequest.md b/client-sdks/platform/typescript/docs/models/slacknotificationchannelrequest.md new file mode 100644 index 000000000..73b136ece --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/slacknotificationchannelrequest.md @@ -0,0 +1,17 @@ +# SlackNotificationChannelRequest + +## Example Usage + +```typescript +import { SlackNotificationChannelRequest } from "@alienplatform/platform-api/models"; + +let value: SlackNotificationChannelRequest = { + channelId: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `channelId` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/slacknotificationchannelresponse.md b/client-sdks/platform/typescript/docs/models/slacknotificationchannelresponse.md new file mode 100644 index 000000000..1dace8dee --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/slacknotificationchannelresponse.md @@ -0,0 +1,19 @@ +# SlackNotificationChannelResponse + +## Example Usage + +```typescript +import { SlackNotificationChannelResponse } from "@alienplatform/platform-api/models"; + +let value: SlackNotificationChannelResponse = { + notificationChannelId: "", + warning: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------- | ----------------------- | ----------------------- | ----------------------- | +| `notificationChannelId` | *string* | :heavy_check_mark: | N/A | +| `warning` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/sourceevent1.md b/client-sdks/platform/typescript/docs/models/sourceevent1.md new file mode 100644 index 000000000..d4676e867 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/sourceevent1.md @@ -0,0 +1,16 @@ +# SourceEvent1 + +## Example Usage + +```typescript +import { SourceEvent1 } from "@alienplatform/platform-api/models"; + +let value: SourceEvent1 = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `component` | *string* | :heavy_minus_sign: | N/A | +| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/sourceevent10.md b/client-sdks/platform/typescript/docs/models/sourceevent10.md new file mode 100644 index 000000000..046ead673 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/sourceevent10.md @@ -0,0 +1,16 @@ +# SourceEvent10 + +## Example Usage + +```typescript +import { SourceEvent10 } from "@alienplatform/platform-api/models"; + +let value: SourceEvent10 = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `component` | *string* | :heavy_minus_sign: | N/A | +| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/sourceevent2.md b/client-sdks/platform/typescript/docs/models/sourceevent2.md new file mode 100644 index 000000000..fe28891ef --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/sourceevent2.md @@ -0,0 +1,16 @@ +# SourceEvent2 + +## Example Usage + +```typescript +import { SourceEvent2 } from "@alienplatform/platform-api/models"; + +let value: SourceEvent2 = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `component` | *string* | :heavy_minus_sign: | N/A | +| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/sourceevent3.md b/client-sdks/platform/typescript/docs/models/sourceevent3.md new file mode 100644 index 000000000..1517c37c4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/sourceevent3.md @@ -0,0 +1,16 @@ +# SourceEvent3 + +## Example Usage + +```typescript +import { SourceEvent3 } from "@alienplatform/platform-api/models"; + +let value: SourceEvent3 = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `component` | *string* | :heavy_minus_sign: | N/A | +| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/sourceevent4.md b/client-sdks/platform/typescript/docs/models/sourceevent4.md new file mode 100644 index 000000000..c9e6c6066 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/sourceevent4.md @@ -0,0 +1,16 @@ +# SourceEvent4 + +## Example Usage + +```typescript +import { SourceEvent4 } from "@alienplatform/platform-api/models"; + +let value: SourceEvent4 = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `component` | *string* | :heavy_minus_sign: | N/A | +| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/sourceevent5.md b/client-sdks/platform/typescript/docs/models/sourceevent5.md new file mode 100644 index 000000000..5858b34d8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/sourceevent5.md @@ -0,0 +1,16 @@ +# SourceEvent5 + +## Example Usage + +```typescript +import { SourceEvent5 } from "@alienplatform/platform-api/models"; + +let value: SourceEvent5 = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `component` | *string* | :heavy_minus_sign: | N/A | +| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/sourceevent6.md b/client-sdks/platform/typescript/docs/models/sourceevent6.md new file mode 100644 index 000000000..b47e25a49 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/sourceevent6.md @@ -0,0 +1,16 @@ +# SourceEvent6 + +## Example Usage + +```typescript +import { SourceEvent6 } from "@alienplatform/platform-api/models"; + +let value: SourceEvent6 = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `component` | *string* | :heavy_minus_sign: | N/A | +| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/sourceevent7.md b/client-sdks/platform/typescript/docs/models/sourceevent7.md new file mode 100644 index 000000000..e54630d52 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/sourceevent7.md @@ -0,0 +1,16 @@ +# SourceEvent7 + +## Example Usage + +```typescript +import { SourceEvent7 } from "@alienplatform/platform-api/models"; + +let value: SourceEvent7 = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `component` | *string* | :heavy_minus_sign: | N/A | +| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/sourceevent8.md b/client-sdks/platform/typescript/docs/models/sourceevent8.md new file mode 100644 index 000000000..4ff2b3fab --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/sourceevent8.md @@ -0,0 +1,16 @@ +# SourceEvent8 + +## Example Usage + +```typescript +import { SourceEvent8 } from "@alienplatform/platform-api/models"; + +let value: SourceEvent8 = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `component` | *string* | :heavy_minus_sign: | N/A | +| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/sourceevent9.md b/client-sdks/platform/typescript/docs/models/sourceevent9.md new file mode 100644 index 000000000..c628affb4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/sourceevent9.md @@ -0,0 +1,16 @@ +# SourceEvent9 + +## Example Usage + +```typescript +import { SourceEvent9 } from "@alienplatform/platform-api/models"; + +let value: SourceEvent9 = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `component` | *string* | :heavy_minus_sign: | N/A | +| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/sourceunion1.md b/client-sdks/platform/typescript/docs/models/sourceunion1.md index bfda2e900..42874e240 100644 --- a/client-sdks/platform/typescript/docs/models/sourceunion1.md +++ b/client-sdks/platform/typescript/docs/models/sourceunion1.md @@ -3,10 +3,10 @@ ## Supported Types -### `models.SyncReconcileRequestSource1` +### `models.SourceEvent1` ```typescript -const value: models.SyncReconcileRequestSource1 = {}; +const value: models.SourceEvent1 = {}; ``` ### `any` @@ -14,4 +14,3 @@ const value: models.SyncReconcileRequestSource1 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/sourceunion10.md b/client-sdks/platform/typescript/docs/models/sourceunion10.md index 85a37e17c..8dd3fd01a 100644 --- a/client-sdks/platform/typescript/docs/models/sourceunion10.md +++ b/client-sdks/platform/typescript/docs/models/sourceunion10.md @@ -3,10 +3,10 @@ ## Supported Types -### `models.SyncReconcileRequestSource10` +### `models.SourceEvent10` ```typescript -const value: models.SyncReconcileRequestSource10 = {}; +const value: models.SourceEvent10 = {}; ``` ### `any` @@ -14,4 +14,3 @@ const value: models.SyncReconcileRequestSource10 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/sourceunion2.md b/client-sdks/platform/typescript/docs/models/sourceunion2.md index 5c4dbad6f..a7a3c342b 100644 --- a/client-sdks/platform/typescript/docs/models/sourceunion2.md +++ b/client-sdks/platform/typescript/docs/models/sourceunion2.md @@ -3,10 +3,10 @@ ## Supported Types -### `models.SyncReconcileRequestSource2` +### `models.SourceEvent2` ```typescript -const value: models.SyncReconcileRequestSource2 = {}; +const value: models.SourceEvent2 = {}; ``` ### `any` @@ -14,4 +14,3 @@ const value: models.SyncReconcileRequestSource2 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/sourceunion3.md b/client-sdks/platform/typescript/docs/models/sourceunion3.md index 09523abd6..f21835d5c 100644 --- a/client-sdks/platform/typescript/docs/models/sourceunion3.md +++ b/client-sdks/platform/typescript/docs/models/sourceunion3.md @@ -3,10 +3,10 @@ ## Supported Types -### `models.SyncReconcileRequestSource3` +### `models.SourceEvent3` ```typescript -const value: models.SyncReconcileRequestSource3 = {}; +const value: models.SourceEvent3 = {}; ``` ### `any` @@ -14,4 +14,3 @@ const value: models.SyncReconcileRequestSource3 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/sourceunion4.md b/client-sdks/platform/typescript/docs/models/sourceunion4.md index 9a6d974a1..365c5ad1d 100644 --- a/client-sdks/platform/typescript/docs/models/sourceunion4.md +++ b/client-sdks/platform/typescript/docs/models/sourceunion4.md @@ -3,10 +3,10 @@ ## Supported Types -### `models.SyncReconcileRequestSource4` +### `models.SourceEvent4` ```typescript -const value: models.SyncReconcileRequestSource4 = {}; +const value: models.SourceEvent4 = {}; ``` ### `any` @@ -14,4 +14,3 @@ const value: models.SyncReconcileRequestSource4 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/sourceunion5.md b/client-sdks/platform/typescript/docs/models/sourceunion5.md index a904bd34a..75f32d656 100644 --- a/client-sdks/platform/typescript/docs/models/sourceunion5.md +++ b/client-sdks/platform/typescript/docs/models/sourceunion5.md @@ -3,10 +3,10 @@ ## Supported Types -### `models.SyncReconcileRequestSource5` +### `models.SourceEvent5` ```typescript -const value: models.SyncReconcileRequestSource5 = {}; +const value: models.SourceEvent5 = {}; ``` ### `any` @@ -14,4 +14,3 @@ const value: models.SyncReconcileRequestSource5 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/sourceunion6.md b/client-sdks/platform/typescript/docs/models/sourceunion6.md index ac56106ac..cda2f9304 100644 --- a/client-sdks/platform/typescript/docs/models/sourceunion6.md +++ b/client-sdks/platform/typescript/docs/models/sourceunion6.md @@ -3,10 +3,10 @@ ## Supported Types -### `models.SyncReconcileRequestSource6` +### `models.SourceEvent6` ```typescript -const value: models.SyncReconcileRequestSource6 = {}; +const value: models.SourceEvent6 = {}; ``` ### `any` @@ -14,4 +14,3 @@ const value: models.SyncReconcileRequestSource6 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/sourceunion7.md b/client-sdks/platform/typescript/docs/models/sourceunion7.md index b9acdce93..b3d4a5037 100644 --- a/client-sdks/platform/typescript/docs/models/sourceunion7.md +++ b/client-sdks/platform/typescript/docs/models/sourceunion7.md @@ -3,10 +3,10 @@ ## Supported Types -### `models.SyncReconcileRequestSource7` +### `models.SourceEvent7` ```typescript -const value: models.SyncReconcileRequestSource7 = {}; +const value: models.SourceEvent7 = {}; ``` ### `any` @@ -14,4 +14,3 @@ const value: models.SyncReconcileRequestSource7 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/sourceunion8.md b/client-sdks/platform/typescript/docs/models/sourceunion8.md index caca47536..44e4ed00d 100644 --- a/client-sdks/platform/typescript/docs/models/sourceunion8.md +++ b/client-sdks/platform/typescript/docs/models/sourceunion8.md @@ -3,10 +3,10 @@ ## Supported Types -### `models.SyncReconcileRequestSource8` +### `models.SourceEvent8` ```typescript -const value: models.SyncReconcileRequestSource8 = {}; +const value: models.SourceEvent8 = {}; ``` ### `any` @@ -14,4 +14,3 @@ const value: models.SyncReconcileRequestSource8 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/sourceunion9.md b/client-sdks/platform/typescript/docs/models/sourceunion9.md index 54e3762c9..44021db39 100644 --- a/client-sdks/platform/typescript/docs/models/sourceunion9.md +++ b/client-sdks/platform/typescript/docs/models/sourceunion9.md @@ -3,10 +3,10 @@ ## Supported Types -### `models.SyncReconcileRequestSource9` +### `models.SourceEvent9` ```typescript -const value: models.SyncReconcileRequestSource9 = {}; +const value: models.SourceEvent9 = {}; ``` ### `any` @@ -14,4 +14,3 @@ const value: models.SyncReconcileRequestSource9 = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/stackinputvaluerequest.md b/client-sdks/platform/typescript/docs/models/stackinputvaluerequest.md index f3bcfc4b4..1b06c5442 100644 --- a/client-sdks/platform/typescript/docs/models/stackinputvaluerequest.md +++ b/client-sdks/platform/typescript/docs/models/stackinputvaluerequest.md @@ -29,4 +29,3 @@ const value: string[] = [ "", ]; ``` - diff --git a/client-sdks/platform/typescript/docs/models/state.md b/client-sdks/platform/typescript/docs/models/state.md deleted file mode 100644 index fcc9aa55c..000000000 --- a/client-sdks/platform/typescript/docs/models/state.md +++ /dev/null @@ -1,33 +0,0 @@ -# State - -Represents the state of an event - - -## Supported Types - -### `models.EventState` - -```typescript -const value: models.EventState = { - failed: {}, -}; -``` - -### `models.StateNone` - -```typescript -const value: models.StateNone = "none"; -``` - -### `models.StateStarted` - -```typescript -const value: models.StateStarted = "started"; -``` - -### `models.StateSuccess` - -```typescript -const value: models.StateSuccess = "success"; -``` - diff --git a/client-sdks/platform/typescript/docs/models/statecontrollerplatformunion.md b/client-sdks/platform/typescript/docs/models/statecontrollerplatformunion.md index 615ac0b2d..8f019a56d 100644 --- a/client-sdks/platform/typescript/docs/models/statecontrollerplatformunion.md +++ b/client-sdks/platform/typescript/docs/models/statecontrollerplatformunion.md @@ -14,4 +14,3 @@ const value: models.ControllerPlatformStateEnum = "kubernetes"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/statelifecycleunion.md b/client-sdks/platform/typescript/docs/models/statelifecycleunion.md index 31f42c790..7a8fefbd7 100644 --- a/client-sdks/platform/typescript/docs/models/statelifecycleunion.md +++ b/client-sdks/platform/typescript/docs/models/statelifecycleunion.md @@ -14,4 +14,3 @@ const value: models.StackStateLifecycleStateEnum = "live"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/statenone.md b/client-sdks/platform/typescript/docs/models/statenone.md deleted file mode 100644 index e7e45caf9..000000000 --- a/client-sdks/platform/typescript/docs/models/statenone.md +++ /dev/null @@ -1,15 +0,0 @@ -# StateNone - -## Example Usage - -```typescript -import { StateNone } from "@alienplatform/platform-api/models"; - -let value: StateNone = "none"; -``` - -## Values - -```typescript -"none" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/statestarted.md b/client-sdks/platform/typescript/docs/models/statestarted.md deleted file mode 100644 index a6710e860..000000000 --- a/client-sdks/platform/typescript/docs/models/statestarted.md +++ /dev/null @@ -1,15 +0,0 @@ -# StateStarted - -## Example Usage - -```typescript -import { StateStarted } from "@alienplatform/platform-api/models"; - -let value: StateStarted = "started"; -``` - -## Values - -```typescript -"started" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/statesuccess.md b/client-sdks/platform/typescript/docs/models/statesuccess.md deleted file mode 100644 index 3e7d24302..000000000 --- a/client-sdks/platform/typescript/docs/models/statesuccess.md +++ /dev/null @@ -1,15 +0,0 @@ -# StateSuccess - -## Example Usage - -```typescript -import { StateSuccess } from "@alienplatform/platform-api/models"; - -let value: StateSuccess = "success"; -``` - -## Values - -```typescript -"success" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/statuslifecycle66.md b/client-sdks/platform/typescript/docs/models/statuslifecycle66.md new file mode 100644 index 000000000..c0ccf1cc6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/statuslifecycle66.md @@ -0,0 +1,15 @@ +# StatusLifecycle66 + +## Example Usage + +```typescript +import { StatusLifecycle66 } from "@alienplatform/platform-api/models"; + +let value: StatusLifecycle66 = "stopped"; +``` + +## Values + +```typescript +"unknown" | "creating" | "updating" | "running" | "scaling" | "stopping" | "stopped" | "deleting" | "deleted" | "failed" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/statuslifecycle67.md b/client-sdks/platform/typescript/docs/models/statuslifecycle67.md new file mode 100644 index 000000000..6aab96b35 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/statuslifecycle67.md @@ -0,0 +1,15 @@ +# StatusLifecycle67 + +## Example Usage + +```typescript +import { StatusLifecycle67 } from "@alienplatform/platform-api/models"; + +let value: StatusLifecycle67 = "stopped"; +``` + +## Values + +```typescript +"unknown" | "creating" | "updating" | "running" | "scaling" | "stopping" | "stopped" | "deleting" | "deleted" | "failed" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/statuslifecycle68.md b/client-sdks/platform/typescript/docs/models/statuslifecycle68.md new file mode 100644 index 000000000..18a4d2827 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/statuslifecycle68.md @@ -0,0 +1,15 @@ +# StatusLifecycle68 + +## Example Usage + +```typescript +import { StatusLifecycle68 } from "@alienplatform/platform-api/models"; + +let value: StatusLifecycle68 = "running"; +``` + +## Values + +```typescript +"unknown" | "creating" | "updating" | "running" | "scaling" | "stopping" | "stopped" | "deleting" | "deleted" | "failed" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/statuslifecycle69.md b/client-sdks/platform/typescript/docs/models/statuslifecycle69.md new file mode 100644 index 000000000..e7cf8e352 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/statuslifecycle69.md @@ -0,0 +1,15 @@ +# StatusLifecycle69 + +## Example Usage + +```typescript +import { StatusLifecycle69 } from "@alienplatform/platform-api/models"; + +let value: StatusLifecycle69 = "running"; +``` + +## Values + +```typescript +"unknown" | "creating" | "updating" | "running" | "scaling" | "stopping" | "stopped" | "deleting" | "deleted" | "failed" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/statuslifecycle70.md b/client-sdks/platform/typescript/docs/models/statuslifecycle70.md new file mode 100644 index 000000000..a8d9c5183 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/statuslifecycle70.md @@ -0,0 +1,15 @@ +# StatusLifecycle70 + +## Example Usage + +```typescript +import { StatusLifecycle70 } from "@alienplatform/platform-api/models"; + +let value: StatusLifecycle70 = "deleting"; +``` + +## Values + +```typescript +"unknown" | "creating" | "updating" | "running" | "scaling" | "stopping" | "stopped" | "deleting" | "deleted" | "failed" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/statuslifecycle71.md b/client-sdks/platform/typescript/docs/models/statuslifecycle71.md new file mode 100644 index 000000000..95312a65d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/statuslifecycle71.md @@ -0,0 +1,15 @@ +# StatusLifecycle71 + +## Example Usage + +```typescript +import { StatusLifecycle71 } from "@alienplatform/platform-api/models"; + +let value: StatusLifecycle71 = "running"; +``` + +## Values + +```typescript +"unknown" | "creating" | "updating" | "running" | "scaling" | "stopping" | "stopped" | "deleting" | "deleted" | "failed" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/statuslifecycle72.md b/client-sdks/platform/typescript/docs/models/statuslifecycle72.md new file mode 100644 index 000000000..2144a7295 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/statuslifecycle72.md @@ -0,0 +1,15 @@ +# StatusLifecycle72 + +## Example Usage + +```typescript +import { StatusLifecycle72 } from "@alienplatform/platform-api/models"; + +let value: StatusLifecycle72 = "failed"; +``` + +## Values + +```typescript +"unknown" | "creating" | "updating" | "running" | "scaling" | "stopping" | "stopped" | "deleting" | "deleted" | "failed" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/statusseverity66.md b/client-sdks/platform/typescript/docs/models/statusseverity66.md new file mode 100644 index 000000000..3b0449a82 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/statusseverity66.md @@ -0,0 +1,15 @@ +# StatusSeverity66 + +## Example Usage + +```typescript +import { StatusSeverity66 } from "@alienplatform/platform-api/models"; + +let value: StatusSeverity66 = "error"; +``` + +## Values + +```typescript +"info" | "warning" | "error" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/statusseverity67.md b/client-sdks/platform/typescript/docs/models/statusseverity67.md new file mode 100644 index 000000000..275270234 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/statusseverity67.md @@ -0,0 +1,15 @@ +# StatusSeverity67 + +## Example Usage + +```typescript +import { StatusSeverity67 } from "@alienplatform/platform-api/models"; + +let value: StatusSeverity67 = "error"; +``` + +## Values + +```typescript +"info" | "warning" | "error" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/statusseverity68.md b/client-sdks/platform/typescript/docs/models/statusseverity68.md new file mode 100644 index 000000000..1fd714daa --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/statusseverity68.md @@ -0,0 +1,15 @@ +# StatusSeverity68 + +## Example Usage + +```typescript +import { StatusSeverity68 } from "@alienplatform/platform-api/models"; + +let value: StatusSeverity68 = "warning"; +``` + +## Values + +```typescript +"info" | "warning" | "error" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/statusseverity69.md b/client-sdks/platform/typescript/docs/models/statusseverity69.md new file mode 100644 index 000000000..857ed39b3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/statusseverity69.md @@ -0,0 +1,15 @@ +# StatusSeverity69 + +## Example Usage + +```typescript +import { StatusSeverity69 } from "@alienplatform/platform-api/models"; + +let value: StatusSeverity69 = "warning"; +``` + +## Values + +```typescript +"info" | "warning" | "error" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/subject.md b/client-sdks/platform/typescript/docs/models/subject.md index 5e57eba78..b9f488f64 100644 --- a/client-sdks/platform/typescript/docs/models/subject.md +++ b/client-sdks/platform/typescript/docs/models/subject.md @@ -32,4 +32,3 @@ const value: models.ServiceAccountSubject = { role: "workspace.member", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/subjectscope.md b/client-sdks/platform/typescript/docs/models/subjectscope.md index 1c40923e8..b47cc8e71 100644 --- a/client-sdks/platform/typescript/docs/models/subjectscope.md +++ b/client-sdks/platform/typescript/docs/models/subjectscope.md @@ -50,4 +50,3 @@ const value: models.SubjectScopeManager = { managerId: "", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquirerequest.md b/client-sdks/platform/typescript/docs/models/syncacquirerequest.md index 77ed35fb0..df67eaf55 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquirerequest.md +++ b/client-sdks/platform/typescript/docs/models/syncacquirerequest.md @@ -10,6 +10,7 @@ import { SyncAcquireRequest } from "@alienplatform/platform-api/models"; let value: SyncAcquireRequest = { managerId: "mgr_enxscjrqiiu2lrc672hwwuc5", session: "", + requestId: "", deploymentIds: [ "dep_0c29fq4a2yjb7kx3smwdgxlc", ], diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponse.md b/client-sdks/platform/typescript/docs/models/syncacquireresponse.md index 08bb4853e..2fce8b135 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponse.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponse.md @@ -10,12 +10,14 @@ import { SyncAcquireResponse } from "@alienplatform/platform-api/models"; let value: SyncAcquireResponse = { deployments: [], failures: [], + leaseExpiresAt: new Date("2025-06-11T10:38:09.056Z"), }; ``` ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | -| `deployments` | [models.SyncAcquireResponseDeployment](../models/syncacquireresponsedeployment.md)[] | :heavy_check_mark: | List of acquired deployments with deployment context | -| `failures` | [models.Failure](../models/failure.md)[] | :heavy_check_mark: | List of deployments that failed during context building (locks already released) | \ No newline at end of file +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | +| `deployments` | [models.SyncAcquireResponseDeployment](../models/syncacquireresponsedeployment.md)[] | :heavy_check_mark: | List of acquired deployments with deployment context | +| `failures` | [models.Failure](../models/failure.md)[] | :heavy_check_mark: | List of deployments that failed during context building (locks already released) | +| `leaseExpiresAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | When the provisional leases on the returned deployments lapse. Confirm them with sync/renew before starting work. Null when nothing was acquired. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentaccountnameunion1.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentaccountnameunion1.md index fa25276bc..4546604fa 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentaccountnameunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentaccountnameunion1.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentAccountName1 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentaccountnameunion2.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentaccountnameunion2.md index a1c03f42a..e33394b33 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentaccountnameunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentaccountnameunion2.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentAccountName2 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentapikey.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentapikey.md new file mode 100644 index 000000000..8e7c37b45 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentapikey.md @@ -0,0 +1,20 @@ +# SyncAcquireResponseDeploymentApiKey + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentApiKey } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentApiKey = { + secretRef: { + key: "", + name: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| `secretRef` | [models.SyncAcquireResponseDeploymentApiKeySecretRef](../models/syncacquireresponsedeploymentapikeysecretref.md) | :heavy_check_mark: | Reference to a Kubernetes Secret | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentapikeysecretref.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentapikeysecretref.md new file mode 100644 index 000000000..c31c3fab3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentapikeysecretref.md @@ -0,0 +1,21 @@ +# SyncAcquireResponseDeploymentApiKeySecretRef + +Reference to a Kubernetes Secret + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentApiKeySecretRef } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentApiKeySecretRef = { + key: "", + name: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `key` | *string* | :heavy_check_mark: | N/A | +| `name` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentapikeyunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentapikeyunion.md new file mode 100644 index 000000000..e62cf8be3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentapikeyunion.md @@ -0,0 +1,30 @@ +# SyncAcquireResponseDeploymentApiKeyUnion + +Represents a value that can be either a concrete value, a template expression, +or a reference to a Kubernetes Secret + + +## Supported Types + +### `any` + +```typescript +const value: any = ""; +``` + +### `string` + +```typescript +const value: string = ""; +``` + +### `models.SyncAcquireResponseDeploymentApiKey` + +```typescript +const value: models.SyncAcquireResponseDeploymentApiKey = { + secretRef: { + key: "", + name: "", + }, +}; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentbaseplatformunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentbaseplatformunion.md index b6da2e77a..8ebcc292e 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentbaseplatformunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentbaseplatformunion.md @@ -14,4 +14,3 @@ const value: models.SyncAcquireResponseDeploymentBasePlatformEnum = "test"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentbucketnameunion1.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentbucketnameunion1.md index 7cd98435d..be1c61669 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentbucketnameunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentbucketnameunion1.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentBucketName1 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentbucketnameunion2.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentbucketnameunion2.md index bf12fe6ba..0567ec5dc 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentbucketnameunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentbucketnameunion2.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentBucketName2 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcertificateunion1.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcertificateunion1.md index bc60d6ee2..9d23b1515 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcertificateunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcertificateunion1.md @@ -49,4 +49,3 @@ const value: models.SyncAcquireResponseDeploymentCertificateNone1 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcertificateunion2.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcertificateunion2.md index 7d32ebeb4..6b15bae11 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcertificateunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcertificateunion2.md @@ -49,4 +49,3 @@ const value: models.SyncAcquireResponseDeploymentCertificateNone2 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcloudunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcloudunion.md index bd184593e..555fdd2a5 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcloudunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcloudunion.md @@ -14,4 +14,3 @@ const value: models.SyncAcquireResponseDeploymentCloud = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentclusterendpointunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentclusterendpointunion.md index 5fbd77bc7..95ab2de8a 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentclusterendpointunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentclusterendpointunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentClusterEndpoint = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentclusterunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentclusterunion.md index 9c6fd396a..31901f82b 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentclusterunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentclusterunion.md @@ -16,4 +16,3 @@ const value: models.SyncAcquireResponseDeploymentCluster = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcollectionnameunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcollectionnameunion.md index 7b7e7321e..2bfd87a33 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcollectionnameunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcollectionnameunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentCollectionName = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcomputebackendunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcomputebackendunion.md index bbee48e82..e8c50b642 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcomputebackendunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcomputebackendunion.md @@ -23,4 +23,3 @@ const value: models.SyncAcquireResponseDeploymentComputeBackendHorizon = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcomputeunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcomputeunion.md index fa6432708..707aaabaa 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcomputeunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcomputeunion.md @@ -14,4 +14,3 @@ const value: models.SyncAcquireResponseDeploymentCompute = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentconfig.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentconfig.md index d066f47b6..97348cf5e 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentconfig.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentconfig.md @@ -34,6 +34,7 @@ let value: SyncAcquireResponseDeploymentConfig = { | `domainMetadata` | *models.SyncAcquireResponseDeploymentDomainMetadataUnion* | :heavy_minus_sign: | N/A | | `environmentVariables` | [models.SyncAcquireResponseDeploymentEnvironmentVariables](../models/syncacquireresponsedeploymentenvironmentvariables.md) | :heavy_check_mark: | Snapshot of environment variables at a point in time | | `externalBindings` | Record | :heavy_minus_sign: | Map from resource ID to external binding.

Validated at runtime: binding type must match resource type. | +| `inputValues` | Record | :heavy_minus_sign: | Deployer-provided stack input values, keyed by input id. A resource
gated with `.enabled(input)` and a Live lifecycle follows these
values; a missing key falls back to the input's declared boolean
default. Suppliers must not place secret-kind input values here:
this map serializes and debug-prints unredacted. | | `labelDomain` | *string* | :heavy_minus_sign: | DNS-style label domain used for Kubernetes resource ownership labels.

Defaults to `alien.dev` when absent. Whitelabeled Operator builds set this
so generated workloads and optional log collectors share the same label
namespace. | | `managementConfig` | *models.SyncAcquireResponseDeploymentManagementConfigUnion* | :heavy_minus_sign: | N/A | | `managerUrl` | *string* | :heavy_minus_sign: | Manager base URL (e.g., "https://manager.alien.dev").

The manager IS the container registry — its `/v2/` endpoint serves as
the OCI Distribution API. Controllers derive the proxy host from this
to configure pull auth (RegistryCredentials, imagePullSecrets).

When None (e.g., `alien dev`), controllers use image URIs as-is. | diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentconnectionurlunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentconnectionurlunion.md index 903a83634..bf3178c1b 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentconnectionurlunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentconnectionurlunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentConnectionUrl = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcontainernameunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcontainernameunion.md index 9fb8511b1..1227c9635 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcontainernameunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcontainernameunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentContainerName = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcontrollerplatformunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcontrollerplatformunion.md index 06adcf034..35e02ab24 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcontrollerplatformunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcontrollerplatformunion.md @@ -14,4 +14,3 @@ const value: models.SyncAcquireResponseDeploymentControllerPlatformEnum = "gcp"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleasedefaultunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleasedefaultunion.md index 729ad2c72..d9d45e4e9 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleasedefaultunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleasedefaultunion.md @@ -46,4 +46,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseextendconditionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseextendconditionunion.md index 498924b68..11bbd4d0f 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseextendconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseextendconditionunion.md @@ -18,4 +18,3 @@ const value: models.SyncAcquireResponseDeploymentCurrentReleaseExtendCondition = ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseextendresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseextendresourceconditionunion.md index 736c33db3..a50ae5d2d 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseextendresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseextendresourceconditionunion.md @@ -18,4 +18,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseextendunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseextendunion.md index cfde81630..731a8d5cd 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseextendunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseextendunion.md @@ -20,4 +20,3 @@ const value: models.SyncAcquireResponseDeploymentCurrentReleaseExtend = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleasemanagementunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleasemanagementunion.md index f1b408be0..198469ee7 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleasemanagementunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleasemanagementunion.md @@ -33,4 +33,3 @@ const value: models.SyncAcquireResponseDeploymentCurrentReleaseManagement2 = { const value: models.SyncAcquireResponseDeploymentCurrentReleaseManagementEnum = "auto"; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseoverrideconditionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseoverrideconditionunion.md index 04be6d442..ac843325d 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseoverrideconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseoverrideconditionunion.md @@ -18,4 +18,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseoverrideresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseoverrideresourceconditionunion.md index 834e949e9..b18fa6fa0 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseoverrideresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseoverrideresourceconditionunion.md @@ -19,4 +19,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseoverrideunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseoverrideunion.md index b0125e67f..66bc2c786 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseoverrideunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseoverrideunion.md @@ -20,4 +20,3 @@ const value: models.SyncAcquireResponseDeploymentCurrentReleaseOverride = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseprofileconditionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseprofileconditionunion.md index 094cc1965..5fce19b02 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseprofileconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseprofileconditionunion.md @@ -18,4 +18,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseprofileresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseprofileresourceconditionunion.md index 0d511cf13..630e28e9f 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseprofileresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseprofileresourceconditionunion.md @@ -18,4 +18,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseprofileunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseprofileunion.md index 0463f883f..69792bafc 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseprofileunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseprofileunion.md @@ -20,4 +20,3 @@ const value: models.SyncAcquireResponseDeploymentCurrentReleaseProfile = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseresources.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseresources.md index c0617126b..8604a695f 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseresources.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseresources.md @@ -17,9 +17,10 @@ let value: SyncAcquireResponseDeploymentCurrentReleaseResources = { ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `config` | [models.SyncAcquireResponseDeploymentCurrentReleaseConfig](../models/syncacquireresponsedeploymentcurrentreleaseconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | -| `dependencies` | [models.SyncAcquireResponseDeploymentCurrentReleaseDependency](../models/syncacquireresponsedeploymentcurrentreleasedependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | -| `lifecycle` | [models.SyncAcquireResponseDeploymentCurrentReleaseLifecycle](../models/syncacquireresponsedeploymentcurrentreleaselifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | -| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `config` | [models.SyncAcquireResponseDeploymentCurrentReleaseConfig](../models/syncacquireresponsedeploymentcurrentreleaseconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | +| `dependencies` | [models.SyncAcquireResponseDeploymentCurrentReleaseDependency](../models/syncacquireresponsedeploymentcurrentreleasedependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | +| `enabledWhen` | *string* | :heavy_minus_sign: | Id of the boolean stack input that decides whether this resource is
created at all. `None` means always create it.

Set by `.enabled(input)` in the SDK. Setup emitters render the resource
conditionally on the matching template variable, so a deployer who says no
never gets the resource, its outputs, or anything derived from it. | +| `lifecycle` | [models.SyncAcquireResponseDeploymentCurrentReleaseLifecycle](../models/syncacquireresponsedeploymentcurrentreleaselifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | +| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleasetypeunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleasetypeunion.md index 09c6c2819..638e3388a 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleasetypeunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleasetypeunion.md @@ -15,4 +15,3 @@ const value: models.SyncAcquireResponseDeploymentCurrentReleaseTypeEnvEnum = ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseunion.md index 1da6f6020..f73254526 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleaseunion.md @@ -19,4 +19,3 @@ const value: models.SyncAcquireResponseDeploymentCurrentRelease = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleasevalidationunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleasevalidationunion.md index 985c50178..317017b21 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleasevalidationunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentcurrentreleasevalidationunion.md @@ -14,4 +14,3 @@ const value: models.SyncAcquireResponseDeploymentCurrentReleaseValidation = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatabaseidunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatabaseidunion.md index 26459a299..0cbd78e84 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatabaseidunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatabaseidunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentDatabaseId = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatabaseunion1.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatabaseunion1.md index 3a364fc21..9c79a4d72 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatabaseunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatabaseunion1.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentDatabase2 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatabaseunion2.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatabaseunion2.md index 98c6c9ebd..ed879fd49 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatabaseunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatabaseunion2.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentDatabase3 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatabaseunion3.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatabaseunion3.md index 6e22e0500..90513dbe8 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatabaseunion3.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatabaseunion3.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentDatabase4 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatabaseunion4.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatabaseunion4.md index 68306630c..8a6aae3b0 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatabaseunion4.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatabaseunion4.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentDatabase5 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatabaseunion5.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatabaseunion5.md index bee8fa28e..3ce88d43a 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatabaseunion5.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatabaseunion5.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentDatabase6 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatadirunion1.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatadirunion1.md index bdc9e107e..43bbaf0be 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatadirunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatadirunion1.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentDataDir1 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatadirunion2.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatadirunion2.md index 31dc456fd..85b9d6ad1 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatadirunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdatadirunion2.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentDataDir3 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdefaultdomainunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdefaultdomainunion.md index 3a7d0edea..29fdea313 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdefaultdomainunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdefaultdomainunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentDefaultDomain = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdomainmetadataunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdomainmetadataunion.md index 65f9abe15..52baef63b 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdomainmetadataunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdomainmetadataunion.md @@ -26,4 +26,3 @@ const value: models.SyncAcquireResponseDeploymentDomainMetadata = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdomainskubernetesunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdomainskubernetesunion.md index be587a173..15b4dfce8 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdomainskubernetesunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdomainskubernetesunion.md @@ -18,4 +18,3 @@ const value: models.SyncAcquireResponseDeploymentDomainsKubernetes = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdomainsunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdomainsunion.md index b9f72ad9a..2ac0bfb0a 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdomainsunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentdomainsunion.md @@ -14,4 +14,3 @@ const value: models.SyncAcquireResponseDeploymentDomains = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentenvironmentinfounion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentenvironmentinfounion.md index 6c9cde54f..c76fdbeec 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentenvironmentinfounion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentenvironmentinfounion.md @@ -60,4 +60,3 @@ const value: models.SyncAcquireResponseDeploymentEnvironmentInfoTest = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentenvironmentnameunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentenvironmentnameunion.md index 8b1170141..5962ec0a6 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentenvironmentnameunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentenvironmentnameunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentEnvironmentName = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenterrorunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenterrorunion.md index 9a1ef363b..ee44ede9e 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenterrorunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenterrorunion.md @@ -18,4 +18,3 @@ const value: models.SyncAcquireResponseDeploymentError = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexposureunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexposureunion.md index 12d19a399..5e61255b5 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexposureunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexposureunion.md @@ -51,4 +51,3 @@ const value: models.SyncAcquireResponseDeploymentExposureCustom = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsai.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsai.md new file mode 100644 index 000000000..8195d2301 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsai.md @@ -0,0 +1,27 @@ +# SyncAcquireResponseDeploymentExternalBindingsAi + +External AI provider binding configuration (BYO-key). + +The operator-supplied secret rides inside the binding via +`BindingValue`, so it is a literal on cloud platforms and gains +Kubernetes SecretRef resolution for free (`extract_binding_secrets` walks +the binding JSON for `secretRef`). + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentExternalBindingsAi } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentExternalBindingsAi = { + provider: "", + type: "ai", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `apiKey` | *models.SyncAcquireResponseDeploymentApiKeyUnion* | :heavy_minus_sign: | Represents a value that can be either a concrete value, a template expression,
or a reference to a Kubernetes Secret | +| `provider` | *string* | :heavy_check_mark: | The external AI provider name (e.g., "openai", "anthropic") | +| `type` | [models.SyncAcquireResponseDeploymentTypeAi](../models/syncacquireresponsedeploymenttypeai.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingscloudsql.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingscloudsql.md index 55eef0a20..eccce8a89 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingscloudsql.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingscloudsql.md @@ -21,6 +21,7 @@ let value: SyncAcquireResponseDeploymentExternalBindingsCloudSQL = { | `host` | *models.SyncAcquireResponseDeploymentHostUnion1* | :heavy_minus_sign: | Represents a value that can be either a concrete value, a template expression,
or a reference to a Kubernetes Secret | | `passwordSecretName` | *models.SyncAcquireResponseDeploymentPasswordSecretNameUnion* | :heavy_minus_sign: | Represents a value that can be either a concrete value, a template expression,
or a reference to a Kubernetes Secret | | `port` | *models.SyncAcquireResponseDeploymentPortUnion2* | :heavy_minus_sign: | Represents a value that can be either a concrete value, a template expression,
or a reference to a Kubernetes Secret | +| `serverCaCertificates` | *models.SyncAcquireResponseDeploymentServerCaCertificatesUnion* | :heavy_minus_sign: | Represents a value that can be either a concrete value, a template expression,
or a reference to a Kubernetes Secret | | `username` | *models.SyncAcquireResponseDeploymentUsernameUnion2* | :heavy_minus_sign: | Represents a value that can be either a concrete value, a template expression,
or a reference to a Kubernetes Secret | | `service` | *"cloud-sql"* | :heavy_check_mark: | N/A | | `type` | [models.SyncAcquireResponseDeploymentTypePostgres2](../models/syncacquireresponsedeploymenttypepostgres2.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsexternal.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsexternal.md index e8dc3bbea..acc553e74 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsexternal.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsexternal.md @@ -22,6 +22,7 @@ let value: SyncAcquireResponseDeploymentExternalBindingsExternal = { | `host` | *models.SyncAcquireResponseDeploymentHostUnion3* | :heavy_minus_sign: | Represents a value that can be either a concrete value, a template expression,
or a reference to a Kubernetes Secret | | `password` | *string* | :heavy_check_mark: | Connection password as a concrete value, never an unresolved `SecretRef`: the platform
materializes the Kubernetes secret into the pod env. The cloud variants carry a secret
locator instead. | | `port` | *models.SyncAcquireResponseDeploymentPortUnion4* | :heavy_minus_sign: | Represents a value that can be either a concrete value, a template expression,
or a reference to a Kubernetes Secret | +| `sslMode` | [models.SyncAcquireResponseDeploymentSslMode](../models/syncacquireresponsedeploymentsslmode.md) | :heavy_minus_sign: | TLS policy for an operator-provided / BYO Postgres database.

Unlike libpq's ambiguous `prefer` mode, both choices map exactly to the
connection settings exposed by every supported SDK. | | `username` | *models.SyncAcquireResponseDeploymentUsernameUnion4* | :heavy_minus_sign: | Represents a value that can be either a concrete value, a template expression,
or a reference to a Kubernetes Secret | | `service` | *"external"* | :heavy_check_mark: | N/A | | `type` | [models.SyncAcquireResponseDeploymentTypePostgres4](../models/syncacquireresponsedeploymenttypepostgres4.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion1.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion1.md index 41586cfc0..74becee61 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion1.md @@ -41,4 +41,3 @@ const value: models.SyncAcquireResponseDeploymentExternalBindingsLocalStorage = type: "storage", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion2.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion2.md index 061a01b96..b415fdf88 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion2.md @@ -40,4 +40,3 @@ const value: models.SyncAcquireResponseDeploymentExternalBindingsLocalQueue = { type: "queue", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion3.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion3.md index b861c4c29..dd999f74c 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion3.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion3.md @@ -50,4 +50,3 @@ const value: models.SyncAcquireResponseDeploymentExternalBindingsLocalKv = { type: "kv", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion4.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion4.md index c46ae85ba..33c39a8ec 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion4.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion4.md @@ -40,4 +40,3 @@ const value: models.SyncAcquireResponseDeploymentExternalBindingsLocal = { type: "artifact_registry", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion5.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion5.md index e2fc5ed8c..957df82c7 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion5.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion5.md @@ -53,4 +53,3 @@ const value: models.SyncAcquireResponseDeploymentExternalBindingsLocalVault = { type: "vault", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion6.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion6.md index 8db5edbe2..9842d9b11 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion6.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion6.md @@ -53,4 +53,3 @@ const value: models.SyncAcquireResponseDeploymentExternalBindingsLocalPostgres = type: "postgres", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion7.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion7.md index 96cafb548..561b1939e 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion7.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentexternalbindingsunion7.md @@ -72,3 +72,11 @@ const value: models.SyncAcquireResponseDeploymentExternalBindingsUnion6 = { }; ``` +### `models.SyncAcquireResponseDeploymentExternalBindingsAi` + +```typescript +const value: models.SyncAcquireResponseDeploymentExternalBindingsAi = { + provider: "", + type: "ai", +}; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentfailuredomains1.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentfailuredomains1.md new file mode 100644 index 000000000..f61781d61 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentfailuredomains1.md @@ -0,0 +1,20 @@ +# SyncAcquireResponseDeploymentFailureDomains1 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentFailureDomains1 } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentFailureDomains1 = { + spread: 446681, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentfailuredomains2.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentfailuredomains2.md new file mode 100644 index 000000000..f98035a9a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentfailuredomains2.md @@ -0,0 +1,20 @@ +# SyncAcquireResponseDeploymentFailureDomains2 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentFailureDomains2 } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentFailureDomains2 = { + spread: 647430, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentfailuredomainsunion1.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentfailuredomainsunion1.md new file mode 100644 index 000000000..a5b654703 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentfailuredomainsunion1.md @@ -0,0 +1,18 @@ +# SyncAcquireResponseDeploymentFailureDomainsUnion1 + + +## Supported Types + +### `models.SyncAcquireResponseDeploymentFailureDomains1` + +```typescript +const value: models.SyncAcquireResponseDeploymentFailureDomains1 = { + spread: 446681, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentfailuredomainsunion2.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentfailuredomainsunion2.md new file mode 100644 index 000000000..55d85e009 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentfailuredomainsunion2.md @@ -0,0 +1,18 @@ +# SyncAcquireResponseDeploymentFailureDomainsUnion2 + + +## Supported Types + +### `models.SyncAcquireResponseDeploymentFailureDomains2` + +```typescript +const value: models.SyncAcquireResponseDeploymentFailureDomains2 = { + spread: 647430, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthorizonmachineimageawsunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthorizonmachineimageawsunion.md index 6aea57ca1..cd026ca29 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthorizonmachineimageawsunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthorizonmachineimageawsunion.md @@ -25,4 +25,3 @@ const value: models.SyncAcquireResponseDeploymentHorizonMachineImageAws = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthorizonmachineimageazureunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthorizonmachineimageazureunion.md index df6345874..8730e556b 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthorizonmachineimageazureunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthorizonmachineimageazureunion.md @@ -20,4 +20,3 @@ const value: models.SyncAcquireResponseDeploymentHorizonMachineImageAzure = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthorizonmachineimagegcpunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthorizonmachineimagegcpunion.md index d45e1687c..07bbd47e5 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthorizonmachineimagegcpunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthorizonmachineimagegcpunion.md @@ -16,4 +16,3 @@ const value: models.SyncAcquireResponseDeploymentHorizonMachineImageGcp = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthorizonmachineimageunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthorizonmachineimageunion.md index 473c12430..07efc577d 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthorizonmachineimageunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthorizonmachineimageunion.md @@ -25,4 +25,3 @@ const value: models.SyncAcquireResponseDeploymentHorizonMachineImage = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthostunion1.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthostunion1.md index ade1113d2..f0ae74f6b 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthostunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthostunion1.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentHost1 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthostunion2.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthostunion2.md index 233a9c41e..891146cf4 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthostunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthostunion2.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentHost2 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthostunion3.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthostunion3.md index a1423a02f..556ffaa51 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthostunion3.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthostunion3.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentHost3 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthostunion4.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthostunion4.md index 154b2922c..a95bb4ce1 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthostunion4.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenthostunion4.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentHost4 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentinitialsetupauthority.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentinitialsetupauthority.md new file mode 100644 index 000000000..274d4ea2e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentinitialsetupauthority.md @@ -0,0 +1,17 @@ +# SyncAcquireResponseDeploymentInitialSetupAuthority + +Actor that owns structural work during the initial setup phase. + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentInitialSetupAuthority } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentInitialSetupAuthority = "directSetup"; +``` + +## Values + +```typescript +"importedHandoff" | "directSetup" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentkubernetesunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentkubernetesunion.md index a023f1aed..ad982a721 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentkubernetesunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentkubernetesunion.md @@ -14,4 +14,3 @@ const value: models.SyncAcquireResponseDeploymentKubernetes = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentlifecycleunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentlifecycleunion.md index 8be943af2..89820c2e5 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentlifecycleunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentlifecycleunion.md @@ -15,4 +15,3 @@ const value: models.SyncAcquireResponseDeploymentStackStateLifecycleEnum = ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentmanagementconfigunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentmanagementconfigunion.md index 5472830b4..438678049 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentmanagementconfigunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentmanagementconfigunion.md @@ -45,4 +45,3 @@ const value: models.SyncAcquireResponseDeploymentManagementConfigKubernetes = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentmonitoringunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentmonitoringunion.md index ad084511c..4ab149c6d 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentmonitoringunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentmonitoringunion.md @@ -17,4 +17,3 @@ const value: models.SyncAcquireResponseDeploymentMonitoring = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentnamespaceunion1.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentnamespaceunion1.md index 0c672b00d..56f77e37f 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentnamespaceunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentnamespaceunion1.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentNamespace1 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentnamespaceunion2.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentnamespaceunion2.md index fc3a39982..49ff90a90 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentnamespaceunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentnamespaceunion2.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentNamespace2 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentnetworkunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentnetworkunion.md index 41a105270..dc30e8c69 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentnetworkunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentnetworkunion.md @@ -62,4 +62,3 @@ const value: models.SyncAcquireResponseDeploymentNetworkByoVnetAzure = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentoutputsunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentoutputsunion.md index 47d3a01c2..700145c90 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentoutputsunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentoutputsunion.md @@ -16,4 +16,3 @@ const value: models.SyncAcquireResponseDeploymentOutputs = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpasswordsecretarnunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpasswordsecretarnunion.md index 7e38facb4..525c49987 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpasswordsecretarnunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpasswordsecretarnunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentPasswordSecretArn = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpasswordsecretnameunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpasswordsecretnameunion.md index 8da8b6548..0228f10a8 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpasswordsecretnameunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpasswordsecretnameunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentPasswordSecretName = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpasswordsecreturiunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpasswordsecreturiunion.md index 660b4be68..1cc759739 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpasswordsecreturiunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpasswordsecreturiunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentPasswordSecretUri = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstack.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstack.md new file mode 100644 index 000000000..f01d067f0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstack.md @@ -0,0 +1,24 @@ +# SyncAcquireResponseDeploymentPendingPreparedStack + +A bag of resources, unaware of any cloud. + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStack } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStack = { + id: "", + resources: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the stack | +| `inputs` | [models.SyncAcquireResponseDeploymentPendingPreparedStackInput](../models/syncacquireresponsedeploymentpendingpreparedstackinput.md)[] | :heavy_minus_sign: | Input definitions required before setup or deployment can proceed. | +| `permissions` | [models.SyncAcquireResponseDeploymentPendingPreparedStackPermissions](../models/syncacquireresponsedeploymentpendingpreparedstackpermissions.md) | :heavy_minus_sign: | Combined permissions configuration that contains both profiles and management | +| `resources` | Record | :heavy_check_mark: | Map of resource IDs to their configurations and lifecycle settings | +| `supportedPlatforms` | [models.SyncAcquireResponseDeploymentPendingPreparedStackSupportedPlatform](../models/syncacquireresponsedeploymentpendingpreparedstacksupportedplatform.md)[] | :heavy_minus_sign: | Which platforms this stack supports. When None, all platforms are supported. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackconfig.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackconfig.md new file mode 100644 index 000000000..df6d30372 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackconfig.md @@ -0,0 +1,22 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackConfig + +Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackConfig } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackConfig = { + id: "", + type: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. | +| `type` | *string* | :heavy_check_mark: | Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. | +| `additionalProperties` | Record | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackdefaultboolean.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackdefaultboolean.md new file mode 100644 index 000000000..d5c540e64 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackdefaultboolean.md @@ -0,0 +1,19 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackDefaultBoolean + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackDefaultBoolean } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackDefaultBoolean = { + type: "boolean", + value: false, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| `type` | [models.SyncAcquireResponseDeploymentPendingPreparedStackTypeBoolean](../models/syncacquireresponsedeploymentpendingpreparedstacktypeboolean.md) | :heavy_check_mark: | N/A | +| `value` | *boolean* | :heavy_check_mark: | Boolean default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackdefaultnumber.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackdefaultnumber.md new file mode 100644 index 000000000..805b6ecf3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackdefaultnumber.md @@ -0,0 +1,19 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackDefaultNumber + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackDefaultNumber } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackDefaultNumber = { + type: "number", + value: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | [models.SyncAcquireResponseDeploymentPendingPreparedStackTypeNumber](../models/syncacquireresponsedeploymentpendingpreparedstacktypenumber.md) | :heavy_check_mark: | N/A | +| `value` | *string* | :heavy_check_mark: | Number default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackdefaultstring.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackdefaultstring.md new file mode 100644 index 000000000..f9c7708e8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackdefaultstring.md @@ -0,0 +1,19 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackDefaultString + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackDefaultString } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackDefaultString = { + type: "string", + value: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | [models.SyncAcquireResponseDeploymentPendingPreparedStackTypeString](../models/syncacquireresponsedeploymentpendingpreparedstacktypestring.md) | :heavy_check_mark: | N/A | +| `value` | *string* | :heavy_check_mark: | String default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackdefaultstringlist.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackdefaultstringlist.md new file mode 100644 index 000000000..c23d3b451 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackdefaultstringlist.md @@ -0,0 +1,23 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackDefaultStringList + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackDefaultStringList } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackDefaultStringList = + { + type: "stringList", + value: [ + "", + "", + ], + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `type` | [models.SyncAcquireResponseDeploymentPendingPreparedStackTypeStringList](../models/syncacquireresponsedeploymentpendingpreparedstacktypestringlist.md) | :heavy_check_mark: | N/A | +| `value` | *string*[] | :heavy_check_mark: | String list default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackdefaultunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackdefaultunion.md new file mode 100644 index 000000000..29eacc66e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackdefaultunion.md @@ -0,0 +1,53 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackDefaultUnion + + +## Supported Types + +### `models.SyncAcquireResponseDeploymentPendingPreparedStackDefaultString` + +```typescript +const value: + models.SyncAcquireResponseDeploymentPendingPreparedStackDefaultString = { + type: "string", + value: "", + }; +``` + +### `models.SyncAcquireResponseDeploymentPendingPreparedStackDefaultNumber` + +```typescript +const value: + models.SyncAcquireResponseDeploymentPendingPreparedStackDefaultNumber = { + type: "number", + value: "", + }; +``` + +### `models.SyncAcquireResponseDeploymentPendingPreparedStackDefaultBoolean` + +```typescript +const value: + models.SyncAcquireResponseDeploymentPendingPreparedStackDefaultBoolean = { + type: "boolean", + value: false, + }; +``` + +### `models.SyncAcquireResponseDeploymentPendingPreparedStackDefaultStringList` + +```typescript +const value: + models.SyncAcquireResponseDeploymentPendingPreparedStackDefaultStringList = { + type: "stringList", + value: [ + "", + "", + ], + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackdependency.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackdependency.md new file mode 100644 index 000000000..658f36ff1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackdependency.md @@ -0,0 +1,21 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackDependency + +Reference to a resource by its stable id and resource type. + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackDependency } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackDependency = { + id: "", + type: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | N/A | +| `type` | *string* | :heavy_check_mark: | Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackenv.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackenv.md new file mode 100644 index 000000000..a9366c5d9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackenv.md @@ -0,0 +1,21 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackEnv + +How a resolved stack input is injected into runtime environment variables. + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackEnv } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackEnv = { + name: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| `name` | *string* | :heavy_check_mark: | Environment variable name. | +| `targetResources` | *string*[] | :heavy_minus_sign: | Target resource IDs or patterns. None means every env-capable resource. | +| `type` | *models.SyncAcquireResponseDeploymentPendingPreparedStackTypeUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextend.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextend.md new file mode 100644 index 000000000..724e8e5e9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextend.md @@ -0,0 +1,23 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackExtend + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackExtend } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackExtend = { + description: "whoa impact toward yawningly till", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.SyncAcquireResponseDeploymentPendingPreparedStackExtendPlatforms](../models/syncacquireresponsedeploymentpendingpreparedstackextendplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendaw.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendaw.md new file mode 100644 index 000000000..65c3ae6af --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendaw.md @@ -0,0 +1,24 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackExtendAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackExtendAw } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackExtendAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncAcquireResponseDeploymentPendingPreparedStackExtendAwBinding](../models/syncacquireresponsedeploymentpendingpreparedstackextendawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.SyncAcquireResponseDeploymentPendingPreparedStackExtendEffect](../models/syncacquireresponsedeploymentpendingpreparedstackextendeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.SyncAcquireResponseDeploymentPendingPreparedStackExtendAwGrant](../models/syncacquireresponsedeploymentpendingpreparedstackextendawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendawbinding.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendawbinding.md new file mode 100644 index 000000000..e1a2a2cd9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendawbinding.md @@ -0,0 +1,19 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackExtendAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackExtendAwBinding } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackExtendAwBinding = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.SyncAcquireResponseDeploymentPendingPreparedStackExtendAwResource](../models/syncacquireresponsedeploymentpendingpreparedstackextendawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.SyncAcquireResponseDeploymentPendingPreparedStackExtendAwStack](../models/syncacquireresponsedeploymentpendingpreparedstackextendawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendawgrant.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendawgrant.md new file mode 100644 index 000000000..fb0311375 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendawgrant.md @@ -0,0 +1,21 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackExtendAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackExtendAwGrant } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackExtendAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendawresource.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendawresource.md new file mode 100644 index 000000000..b5309fd5f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendawresource.md @@ -0,0 +1,24 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackExtendAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackExtendAwResource } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackExtendAwResource = { + resources: [ + "", + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendawstack.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendawstack.md new file mode 100644 index 000000000..430fe8b6a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendawstack.md @@ -0,0 +1,23 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackExtendAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackExtendAwStack } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackExtendAwStack = { + resources: [ + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendazure.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendazure.md new file mode 100644 index 000000000..02cf609ab --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendazure.md @@ -0,0 +1,23 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackExtendAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackExtendAzure } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackExtendAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureBinding](../models/syncacquireresponsedeploymentpendingpreparedstackextendazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureGrant](../models/syncacquireresponsedeploymentpendingpreparedstackextendazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendazurebinding.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendazurebinding.md new file mode 100644 index 000000000..87429a971 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendazurebinding.md @@ -0,0 +1,19 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureBinding } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureBinding = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureResource](../models/syncacquireresponsedeploymentpendingpreparedstackextendazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureStack](../models/syncacquireresponsedeploymentpendingpreparedstackextendazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendazuregrant.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendazuregrant.md new file mode 100644 index 000000000..13c15d18b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendazuregrant.md @@ -0,0 +1,22 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureGrant } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureGrant = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendazureresource.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendazureresource.md new file mode 100644 index 000000000..584ab22f9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendazureresource.md @@ -0,0 +1,20 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureResource } from "@alienplatform/platform-api/models"; + +let value: + SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureResource = { + scope: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendazurestack.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendazurestack.md new file mode 100644 index 000000000..77155e6f3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendazurestack.md @@ -0,0 +1,19 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureStack } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendconditionresource.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendconditionresource.md new file mode 100644 index 000000000..de6b8b838 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendconditionresource.md @@ -0,0 +1,22 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionResource } from "@alienplatform/platform-api/models"; + +let value: + SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionResource = { + expression: "", + title: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendconditionstack.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendconditionstack.md new file mode 100644 index 000000000..40d899171 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendconditionstack.md @@ -0,0 +1,22 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionStack } from "@alienplatform/platform-api/models"; + +let value: + SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionStack = { + expression: "", + title: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendeffect.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendeffect.md new file mode 100644 index 000000000..f7f345630 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendeffect.md @@ -0,0 +1,18 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackExtendEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackExtendEffect } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackExtendEffect = + "Allow"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendgcp.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendgcp.md new file mode 100644 index 000000000..e53effdba --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendgcp.md @@ -0,0 +1,23 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackExtendGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackExtendGcp } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackExtendGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpBinding](../models/syncacquireresponsedeploymentpendingpreparedstackextendgcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpGrant](../models/syncacquireresponsedeploymentpendingpreparedstackextendgcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendgcpbinding.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendgcpbinding.md new file mode 100644 index 000000000..f634f6a7e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendgcpbinding.md @@ -0,0 +1,19 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpBinding } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpBinding = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpResource](../models/syncacquireresponsedeploymentpendingpreparedstackextendgcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpStack](../models/syncacquireresponsedeploymentpendingpreparedstackextendgcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendgcpgrant.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendgcpgrant.md new file mode 100644 index 000000000..37280c34f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendgcpgrant.md @@ -0,0 +1,21 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpGrant } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendgcpresource.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendgcpresource.md new file mode 100644 index 000000000..d57cf9f1a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendgcpresource.md @@ -0,0 +1,21 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpResource } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpResource = + { + scope: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | +| `condition` | *models.SyncAcquireResponseDeploymentPendingPreparedStackExtendResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendgcpstack.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendgcpstack.md new file mode 100644 index 000000000..e67b5b667 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendgcpstack.md @@ -0,0 +1,20 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpStack } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------- | +| `condition` | *models.SyncAcquireResponseDeploymentPendingPreparedStackExtendStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendplatforms.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendplatforms.md new file mode 100644 index 000000000..d228a4e36 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendplatforms.md @@ -0,0 +1,20 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackExtendPlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackExtendPlatforms } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackExtendPlatforms = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| `aws` | [models.SyncAcquireResponseDeploymentPendingPreparedStackExtendAw](../models/syncacquireresponsedeploymentpendingpreparedstackextendaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.SyncAcquireResponseDeploymentPendingPreparedStackExtendAzure](../models/syncacquireresponsedeploymentpendingpreparedstackextendazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.SyncAcquireResponseDeploymentPendingPreparedStackExtendGcp](../models/syncacquireresponsedeploymentpendingpreparedstackextendgcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendresourceconditionunion.md new file mode 100644 index 000000000..c5e192116 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendresourceconditionunion.md @@ -0,0 +1,21 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackExtendResourceConditionUnion + + +## Supported Types + +### `models.SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionResource` + +```typescript +const value: + models.SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionResource = + { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendstackconditionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendstackconditionunion.md new file mode 100644 index 000000000..925d4264f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendstackconditionunion.md @@ -0,0 +1,21 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackExtendStackConditionUnion + + +## Supported Types + +### `models.SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionStack` + +```typescript +const value: + models.SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionStack = + { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendunion.md new file mode 100644 index 000000000..cffe7c4b4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackextendunion.md @@ -0,0 +1,22 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackExtendUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.SyncAcquireResponseDeploymentPendingPreparedStackExtend` + +```typescript +const value: models.SyncAcquireResponseDeploymentPendingPreparedStackExtend = { + description: "whoa impact toward yawningly till", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackinput.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackinput.md new file mode 100644 index 000000000..d7dd10a21 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackinput.md @@ -0,0 +1,35 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackInput + +Stack input definition serialized into a release stack. + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackInput } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackInput = { + description: + "whoa give passport reflate couch glider someplace bowler slipper openly", + id: "", + kind: "secret", + label: "", + providedBy: [], + required: true, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| `default` | *models.SyncAcquireResponseDeploymentPendingPreparedStackDefaultUnion* | :heavy_minus_sign: | N/A | +| `description` | *string* | :heavy_check_mark: | Human-facing helper text. | +| `env` | [models.SyncAcquireResponseDeploymentPendingPreparedStackEnv](../models/syncacquireresponsedeploymentpendingpreparedstackenv.md)[] | :heavy_minus_sign: | Runtime env-var mappings for v1 input resolution. | +| `id` | *string* | :heavy_check_mark: | Stable input ID used by CLI/API calls. | +| `kind` | [models.SyncAcquireResponseDeploymentPendingPreparedStackKind](../models/syncacquireresponsedeploymentpendingpreparedstackkind.md) | :heavy_check_mark: | Primitive stack input kind. | +| `label` | *string* | :heavy_check_mark: | Human-facing field label. | +| `placeholder` | *string* | :heavy_minus_sign: | Example placeholder shown in UI. | +| `platforms` | [models.SyncAcquireResponseDeploymentPendingPreparedStackPlatform](../models/syncacquireresponsedeploymentpendingpreparedstackplatform.md)[] | :heavy_minus_sign: | Platforms where this input applies. | +| `providedBy` | [models.SyncAcquireResponseDeploymentPendingPreparedStackProvidedBy](../models/syncacquireresponsedeploymentpendingpreparedstackprovidedby.md)[] | :heavy_check_mark: | Who can provide this value. | +| `required` | *boolean* | :heavy_check_mark: | Whether a resolved value is required before deployment can proceed. | +| `validation` | *models.SyncAcquireResponseDeploymentPendingPreparedStackValidationUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackkind.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackkind.md new file mode 100644 index 000000000..a426a8944 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackkind.md @@ -0,0 +1,17 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackKind + +Primitive stack input kind. + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackKind } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackKind = "stringList"; +``` + +## Values + +```typescript +"string" | "secret" | "number" | "integer" | "boolean" | "enum" | "stringList" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstacklifecycle.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstacklifecycle.md new file mode 100644 index 000000000..b3373e261 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstacklifecycle.md @@ -0,0 +1,17 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackLifecycle + +Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackLifecycle } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackLifecycle = "live"; +``` + +## Values + +```typescript +"frozen" | "live" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackmanagement1.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackmanagement1.md new file mode 100644 index 000000000..03ce0bad6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackmanagement1.md @@ -0,0 +1,27 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackManagement1 + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackManagement1 } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackManagement1 = { + extend: { + "key": [], + "key1": [ + { + description: "properly with suddenly", + id: "", + platforms: {}, + }, + ], + "key2": [], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `extend` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackmanagement2.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackmanagement2.md new file mode 100644 index 000000000..f8756a82f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackmanagement2.md @@ -0,0 +1,17 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackManagement2 + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackManagement2 } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackManagement2 = { + override: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `override` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackmanagementenum.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackmanagementenum.md new file mode 100644 index 000000000..2285cf437 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackmanagementenum.md @@ -0,0 +1,16 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackManagementEnum + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackManagementEnum } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackManagementEnum = + "auto"; +``` + +## Values + +```typescript +"auto" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackmanagementunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackmanagementunion.md new file mode 100644 index 000000000..26524dc86 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackmanagementunion.md @@ -0,0 +1,42 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackManagementUnion + +Management permissions configuration for stack management access + + +## Supported Types + +### `models.SyncAcquireResponseDeploymentPendingPreparedStackManagement1` + +```typescript +const value: + models.SyncAcquireResponseDeploymentPendingPreparedStackManagement1 = { + extend: { + "key": [], + "key1": [ + { + description: "properly with suddenly", + id: "", + platforms: {}, + }, + ], + "key2": [], + }, + }; +``` + +### `models.SyncAcquireResponseDeploymentPendingPreparedStackManagement2` + +```typescript +const value: + models.SyncAcquireResponseDeploymentPendingPreparedStackManagement2 = { + override: {}, + }; +``` + +### `models.SyncAcquireResponseDeploymentPendingPreparedStackManagementEnum` + +```typescript +const value: + models.SyncAcquireResponseDeploymentPendingPreparedStackManagementEnum = + "auto"; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverride.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverride.md new file mode 100644 index 000000000..2dcb06a65 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverride.md @@ -0,0 +1,23 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackOverride + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackOverride } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackOverride = { + description: "past huzzah which er plus or unripe vaguely phew deploy", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.SyncAcquireResponseDeploymentPendingPreparedStackOverridePlatforms](../models/syncacquireresponsedeploymentpendingpreparedstackoverrideplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideaw.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideaw.md new file mode 100644 index 000000000..c14cb2cf8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideaw.md @@ -0,0 +1,24 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackOverrideAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackOverrideAw } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackOverrideAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwBinding](../models/syncacquireresponsedeploymentpendingpreparedstackoverrideawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.SyncAcquireResponseDeploymentPendingPreparedStackOverrideEffect](../models/syncacquireresponsedeploymentpendingpreparedstackoverrideeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwGrant](../models/syncacquireresponsedeploymentpendingpreparedstackoverrideawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideawbinding.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideawbinding.md new file mode 100644 index 000000000..24f2c41ef --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideawbinding.md @@ -0,0 +1,19 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwBinding } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwBinding = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwResource](../models/syncacquireresponsedeploymentpendingpreparedstackoverrideawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwStack](../models/syncacquireresponsedeploymentpendingpreparedstackoverrideawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideawgrant.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideawgrant.md new file mode 100644 index 000000000..9c48aae28 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideawgrant.md @@ -0,0 +1,22 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwGrant } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwGrant = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideawresource.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideawresource.md new file mode 100644 index 000000000..6fcb3254d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideawresource.md @@ -0,0 +1,24 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwResource } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwResource = + { + resources: [ + "", + "", + ], + }; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideawstack.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideawstack.md new file mode 100644 index 000000000..a79731f20 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideawstack.md @@ -0,0 +1,23 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwStack } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwStack = { + resources: [ + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideazure.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideazure.md new file mode 100644 index 000000000..34568f704 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideazure.md @@ -0,0 +1,23 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzure } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureBinding](../models/syncacquireresponsedeploymentpendingpreparedstackoverrideazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureGrant](../models/syncacquireresponsedeploymentpendingpreparedstackoverrideazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideazurebinding.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideazurebinding.md new file mode 100644 index 000000000..f068dc5a3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideazurebinding.md @@ -0,0 +1,19 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureBinding } from "@alienplatform/platform-api/models"; + +let value: + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureResource](../models/syncacquireresponsedeploymentpendingpreparedstackoverrideazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureStack](../models/syncacquireresponsedeploymentpendingpreparedstackoverrideazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideazuregrant.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideazuregrant.md new file mode 100644 index 000000000..cac695131 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideazuregrant.md @@ -0,0 +1,22 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureGrant } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureGrant = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideazureresource.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideazureresource.md new file mode 100644 index 000000000..920766467 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideazureresource.md @@ -0,0 +1,20 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureResource } from "@alienplatform/platform-api/models"; + +let value: + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureResource = { + scope: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideazurestack.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideazurestack.md new file mode 100644 index 000000000..afd7d50cf --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideazurestack.md @@ -0,0 +1,20 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureStack } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureStack = + { + scope: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideconditionresource.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideconditionresource.md new file mode 100644 index 000000000..b74e2ed64 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideconditionresource.md @@ -0,0 +1,22 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionResource } from "@alienplatform/platform-api/models"; + +let value: + SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionResource = { + expression: "", + title: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideconditionstack.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideconditionstack.md new file mode 100644 index 000000000..d5d2a66a8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideconditionstack.md @@ -0,0 +1,22 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionStack } from "@alienplatform/platform-api/models"; + +let value: + SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionStack = { + expression: "", + title: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideeffect.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideeffect.md new file mode 100644 index 000000000..09b9c2102 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideeffect.md @@ -0,0 +1,18 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackOverrideEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackOverrideEffect } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackOverrideEffect = + "Allow"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverridegcp.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverridegcp.md new file mode 100644 index 000000000..a2e226b77 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverridegcp.md @@ -0,0 +1,23 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcp } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpBinding](../models/syncacquireresponsedeploymentpendingpreparedstackoverridegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpGrant](../models/syncacquireresponsedeploymentpendingpreparedstackoverridegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverridegcpbinding.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverridegcpbinding.md new file mode 100644 index 000000000..64b2edfb0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverridegcpbinding.md @@ -0,0 +1,19 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpBinding } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpBinding = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpResource](../models/syncacquireresponsedeploymentpendingpreparedstackoverridegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpStack](../models/syncacquireresponsedeploymentpendingpreparedstackoverridegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverridegcpgrant.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverridegcpgrant.md new file mode 100644 index 000000000..bea28b4fc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverridegcpgrant.md @@ -0,0 +1,22 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpGrant } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpGrant = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverridegcpresource.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverridegcpresource.md new file mode 100644 index 000000000..b2379d1fc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverridegcpresource.md @@ -0,0 +1,21 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpResource } from "@alienplatform/platform-api/models"; + +let value: + SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpResource = { + scope: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | +| `condition` | *models.SyncAcquireResponseDeploymentPendingPreparedStackOverrideResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverridegcpstack.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverridegcpstack.md new file mode 100644 index 000000000..f7d18fd14 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverridegcpstack.md @@ -0,0 +1,20 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpStack } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | +| `condition` | *models.SyncAcquireResponseDeploymentPendingPreparedStackOverrideStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideplatforms.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideplatforms.md new file mode 100644 index 000000000..e7d2edebc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideplatforms.md @@ -0,0 +1,20 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackOverridePlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackOverridePlatforms } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackOverridePlatforms = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `aws` | [models.SyncAcquireResponseDeploymentPendingPreparedStackOverrideAw](../models/syncacquireresponsedeploymentpendingpreparedstackoverrideaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzure](../models/syncacquireresponsedeploymentpendingpreparedstackoverrideazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcp](../models/syncacquireresponsedeploymentpendingpreparedstackoverridegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideresourceconditionunion.md new file mode 100644 index 000000000..4a025a36d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideresourceconditionunion.md @@ -0,0 +1,21 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackOverrideResourceConditionUnion + + +## Supported Types + +### `models.SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionResource` + +```typescript +const value: + models.SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionResource = + { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverridestackconditionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverridestackconditionunion.md new file mode 100644 index 000000000..5d67eb5bb --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverridestackconditionunion.md @@ -0,0 +1,21 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackOverrideStackConditionUnion + + +## Supported Types + +### `models.SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionStack` + +```typescript +const value: + models.SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionStack = + { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideunion.md new file mode 100644 index 000000000..63936af70 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackoverrideunion.md @@ -0,0 +1,23 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackOverrideUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.SyncAcquireResponseDeploymentPendingPreparedStackOverride` + +```typescript +const value: models.SyncAcquireResponseDeploymentPendingPreparedStackOverride = + { + description: "past huzzah which er plus or unripe vaguely phew deploy", + id: "", + platforms: {}, + }; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackpermissions.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackpermissions.md new file mode 100644 index 000000000..786a4bfc6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackpermissions.md @@ -0,0 +1,46 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackPermissions + +Combined permissions configuration that contains both profiles and management + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackPermissions } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackPermissions = { + profiles: { + "key": { + "key": [ + { + description: "yowza formamide now recent claw", + id: "", + platforms: {}, + }, + ], + "key1": [ + { + description: "yowza formamide now recent claw", + id: "", + platforms: {}, + }, + ], + }, + "key1": { + "key": [ + { + description: "yowza formamide now recent claw", + id: "", + platforms: {}, + }, + ], + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `management` | *models.SyncAcquireResponseDeploymentPendingPreparedStackManagementUnion* | :heavy_minus_sign: | Management permissions configuration for stack management access | +| `profiles` | Record> | :heavy_check_mark: | Permission profiles that define access control for compute services
Key is the profile name, value is the permission configuration | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackplatform.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackplatform.md new file mode 100644 index 000000000..e8b0e6b01 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackplatform.md @@ -0,0 +1,17 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackPlatform + +Represents the target cloud platform. + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackPlatform } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackPlatform = "azure"; +``` + +## Values + +```typescript +"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofile.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofile.md new file mode 100644 index 000000000..aec8fe97a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofile.md @@ -0,0 +1,23 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackProfile + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackProfile } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackProfile = { + description: "polished boo indeed exempt", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.SyncAcquireResponseDeploymentPendingPreparedStackProfilePlatforms](../models/syncacquireresponsedeploymentpendingpreparedstackprofileplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileaw.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileaw.md new file mode 100644 index 000000000..442a3a9be --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileaw.md @@ -0,0 +1,24 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackProfileAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackProfileAw } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackProfileAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncAcquireResponseDeploymentPendingPreparedStackProfileAwBinding](../models/syncacquireresponsedeploymentpendingpreparedstackprofileawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.SyncAcquireResponseDeploymentPendingPreparedStackProfileEffect](../models/syncacquireresponsedeploymentpendingpreparedstackprofileeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.SyncAcquireResponseDeploymentPendingPreparedStackProfileAwGrant](../models/syncacquireresponsedeploymentpendingpreparedstackprofileawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileawbinding.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileawbinding.md new file mode 100644 index 000000000..19afee450 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileawbinding.md @@ -0,0 +1,19 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackProfileAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackProfileAwBinding } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackProfileAwBinding = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.SyncAcquireResponseDeploymentPendingPreparedStackProfileAwResource](../models/syncacquireresponsedeploymentpendingpreparedstackprofileawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.SyncAcquireResponseDeploymentPendingPreparedStackProfileAwStack](../models/syncacquireresponsedeploymentpendingpreparedstackprofileawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileawgrant.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileawgrant.md new file mode 100644 index 000000000..154626eb6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileawgrant.md @@ -0,0 +1,21 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackProfileAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackProfileAwGrant } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackProfileAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileawresource.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileawresource.md new file mode 100644 index 000000000..4adfbcfe1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileawresource.md @@ -0,0 +1,25 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackProfileAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackProfileAwResource } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackProfileAwResource = + { + resources: [ + "", + "", + "", + ], + }; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileawstack.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileawstack.md new file mode 100644 index 000000000..ce36d5eee --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileawstack.md @@ -0,0 +1,20 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackProfileAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackProfileAwStack } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackProfileAwStack = { + resources: [], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileazure.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileazure.md new file mode 100644 index 000000000..26f7431cf --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileazure.md @@ -0,0 +1,23 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackProfileAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackProfileAzure } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackProfileAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureBinding](../models/syncacquireresponsedeploymentpendingpreparedstackprofileazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureGrant](../models/syncacquireresponsedeploymentpendingpreparedstackprofileazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileazurebinding.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileazurebinding.md new file mode 100644 index 000000000..f9b36da88 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileazurebinding.md @@ -0,0 +1,19 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureBinding } from "@alienplatform/platform-api/models"; + +let value: + SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureResource](../models/syncacquireresponsedeploymentpendingpreparedstackprofileazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureStack](../models/syncacquireresponsedeploymentpendingpreparedstackprofileazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileazuregrant.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileazuregrant.md new file mode 100644 index 000000000..6c8768078 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileazuregrant.md @@ -0,0 +1,22 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureGrant } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureGrant = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileazureresource.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileazureresource.md new file mode 100644 index 000000000..25a56113e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileazureresource.md @@ -0,0 +1,20 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureResource } from "@alienplatform/platform-api/models"; + +let value: + SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureResource = { + scope: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileazurestack.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileazurestack.md new file mode 100644 index 000000000..17ae80be0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileazurestack.md @@ -0,0 +1,20 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureStack } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureStack = + { + scope: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileconditionresource.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileconditionresource.md new file mode 100644 index 000000000..811019e5e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileconditionresource.md @@ -0,0 +1,22 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionResource } from "@alienplatform/platform-api/models"; + +let value: + SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionResource = { + expression: "", + title: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileconditionstack.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileconditionstack.md new file mode 100644 index 000000000..0106c8d2d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileconditionstack.md @@ -0,0 +1,22 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionStack } from "@alienplatform/platform-api/models"; + +let value: + SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionStack = { + expression: "", + title: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileeffect.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileeffect.md new file mode 100644 index 000000000..928bd6387 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileeffect.md @@ -0,0 +1,18 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackProfileEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackProfileEffect } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackProfileEffect = + "Deny"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofilegcp.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofilegcp.md new file mode 100644 index 000000000..9d8d642db --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofilegcp.md @@ -0,0 +1,23 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackProfileGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackProfileGcp } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackProfileGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpBinding](../models/syncacquireresponsedeploymentpendingpreparedstackprofilegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpGrant](../models/syncacquireresponsedeploymentpendingpreparedstackprofilegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofilegcpbinding.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofilegcpbinding.md new file mode 100644 index 000000000..74c40fb5d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofilegcpbinding.md @@ -0,0 +1,19 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpBinding } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpBinding = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpResource](../models/syncacquireresponsedeploymentpendingpreparedstackprofilegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpStack](../models/syncacquireresponsedeploymentpendingpreparedstackprofilegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofilegcpgrant.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofilegcpgrant.md new file mode 100644 index 000000000..8c5566433 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofilegcpgrant.md @@ -0,0 +1,22 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpGrant } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpGrant = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofilegcpresource.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofilegcpresource.md new file mode 100644 index 000000000..30fa849bc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofilegcpresource.md @@ -0,0 +1,21 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpResource } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpResource = + { + scope: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------- | +| `condition` | *models.SyncAcquireResponseDeploymentPendingPreparedStackProfileResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofilegcpstack.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofilegcpstack.md new file mode 100644 index 000000000..0e5b61c36 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofilegcpstack.md @@ -0,0 +1,20 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpStack } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | +| `condition` | *models.SyncAcquireResponseDeploymentPendingPreparedStackProfileStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileplatforms.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileplatforms.md new file mode 100644 index 000000000..c545e26f1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileplatforms.md @@ -0,0 +1,20 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackProfilePlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackProfilePlatforms } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackProfilePlatforms = + {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `aws` | [models.SyncAcquireResponseDeploymentPendingPreparedStackProfileAw](../models/syncacquireresponsedeploymentpendingpreparedstackprofileaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.SyncAcquireResponseDeploymentPendingPreparedStackProfileAzure](../models/syncacquireresponsedeploymentpendingpreparedstackprofileazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.SyncAcquireResponseDeploymentPendingPreparedStackProfileGcp](../models/syncacquireresponsedeploymentpendingpreparedstackprofilegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileresourceconditionunion.md new file mode 100644 index 000000000..92a5738ea --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileresourceconditionunion.md @@ -0,0 +1,21 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackProfileResourceConditionUnion + + +## Supported Types + +### `models.SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionResource` + +```typescript +const value: + models.SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionResource = + { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofilestackconditionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofilestackconditionunion.md new file mode 100644 index 000000000..c28d2e5ab --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofilestackconditionunion.md @@ -0,0 +1,21 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackProfileStackConditionUnion + + +## Supported Types + +### `models.SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionStack` + +```typescript +const value: + models.SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionStack = + { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileunion.md new file mode 100644 index 000000000..00054bdac --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprofileunion.md @@ -0,0 +1,22 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackProfileUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.SyncAcquireResponseDeploymentPendingPreparedStackProfile` + +```typescript +const value: models.SyncAcquireResponseDeploymentPendingPreparedStackProfile = { + description: "polished boo indeed exempt", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprovidedby.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprovidedby.md new file mode 100644 index 000000000..62b12f9f3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackprovidedby.md @@ -0,0 +1,18 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackProvidedBy + +Who can provide a stack input value. + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackProvidedBy } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackProvidedBy = + "developer"; +``` + +## Values + +```typescript +"developer" | "deployer" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackresources.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackresources.md new file mode 100644 index 000000000..4840b5a54 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackresources.md @@ -0,0 +1,26 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackResources + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackResources } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackResources = { + config: { + id: "", + type: "", + }, + dependencies: [], + lifecycle: "live", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `config` | [models.SyncAcquireResponseDeploymentPendingPreparedStackConfig](../models/syncacquireresponsedeploymentpendingpreparedstackconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | +| `dependencies` | [models.SyncAcquireResponseDeploymentPendingPreparedStackDependency](../models/syncacquireresponsedeploymentpendingpreparedstackdependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | +| `enabledWhen` | *string* | :heavy_minus_sign: | Id of the boolean stack input that decides whether this resource is
created at all. `None` means always create it.

Set by `.enabled(input)` in the SDK. Setup emitters render the resource
conditionally on the matching template variable, so a deployer who says no
never gets the resource, its outputs, or anything derived from it. | +| `lifecycle` | [models.SyncAcquireResponseDeploymentPendingPreparedStackLifecycle](../models/syncacquireresponsedeploymentpendingpreparedstacklifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | +| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstacksupportedplatform.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstacksupportedplatform.md new file mode 100644 index 000000000..3d1488859 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstacksupportedplatform.md @@ -0,0 +1,18 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackSupportedPlatform + +Represents the target cloud platform. + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackSupportedPlatform } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackSupportedPlatform = + "aws"; +``` + +## Values + +```typescript +"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstacktypeboolean.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstacktypeboolean.md new file mode 100644 index 000000000..47fa48a3d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstacktypeboolean.md @@ -0,0 +1,16 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackTypeBoolean + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackTypeBoolean } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackTypeBoolean = + "boolean"; +``` + +## Values + +```typescript +"boolean" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstacktypeenvenum.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstacktypeenvenum.md new file mode 100644 index 000000000..c860aa65c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstacktypeenvenum.md @@ -0,0 +1,18 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackTypeEnvEnum + +Environment variable handling for a stack input mapping. + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackTypeEnvEnum } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackTypeEnvEnum = + "secret"; +``` + +## Values + +```typescript +"plain" | "secret" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstacktypenumber.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstacktypenumber.md new file mode 100644 index 000000000..0fde7811c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstacktypenumber.md @@ -0,0 +1,16 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackTypeNumber + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackTypeNumber } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackTypeNumber = + "number"; +``` + +## Values + +```typescript +"number" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstacktypestring.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstacktypestring.md new file mode 100644 index 000000000..3ab83069f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstacktypestring.md @@ -0,0 +1,16 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackTypeString + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackTypeString } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackTypeString = + "string"; +``` + +## Values + +```typescript +"string" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstacktypestringlist.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstacktypestringlist.md new file mode 100644 index 000000000..e6c687286 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstacktypestringlist.md @@ -0,0 +1,16 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackTypeStringList + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackTypeStringList } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackTypeStringList = + "stringList"; +``` + +## Values + +```typescript +"stringList" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstacktypeunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstacktypeunion.md new file mode 100644 index 000000000..655e1b9e4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstacktypeunion.md @@ -0,0 +1,17 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackTypeUnion + + +## Supported Types + +### `models.SyncAcquireResponseDeploymentPendingPreparedStackTypeEnvEnum` + +```typescript +const value: + models.SyncAcquireResponseDeploymentPendingPreparedStackTypeEnvEnum = "plain"; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackunion.md new file mode 100644 index 000000000..aada1f68e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackunion.md @@ -0,0 +1,19 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackUnion + + +## Supported Types + +### `models.SyncAcquireResponseDeploymentPendingPreparedStack` + +```typescript +const value: models.SyncAcquireResponseDeploymentPendingPreparedStack = { + id: "", + resources: {}, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackvalidation.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackvalidation.md new file mode 100644 index 000000000..d02465f77 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackvalidation.md @@ -0,0 +1,25 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackValidation + +Portable stack input validation constraints. + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentPendingPreparedStackValidation } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentPendingPreparedStackValidation = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `format` | *string* | :heavy_minus_sign: | Semantic format hint such as url. | +| `max` | *string* | :heavy_minus_sign: | Maximum number. | +| `maxItems` | *number* | :heavy_minus_sign: | Maximum string-list items. | +| `maxLength` | *number* | :heavy_minus_sign: | Maximum string length. | +| `min` | *string* | :heavy_minus_sign: | Minimum number. | +| `minItems` | *number* | :heavy_minus_sign: | Minimum string-list items. | +| `minLength` | *number* | :heavy_minus_sign: | Minimum string length. | +| `pattern` | *string* | :heavy_minus_sign: | Portable whole-value regex pattern. | +| `values` | *string*[] | :heavy_minus_sign: | Allowed string enum values. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackvalidationunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackvalidationunion.md new file mode 100644 index 000000000..b90ef2c0c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpendingpreparedstackvalidationunion.md @@ -0,0 +1,17 @@ +# SyncAcquireResponseDeploymentPendingPreparedStackValidationUnion + + +## Supported Types + +### `models.SyncAcquireResponseDeploymentPendingPreparedStackValidation` + +```typescript +const value: + models.SyncAcquireResponseDeploymentPendingPreparedStackValidation = {}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpoolsautoscale.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpoolsautoscale.md index 7e2e5214d..e0e90e0c3 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpoolsautoscale.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpoolsautoscale.md @@ -14,9 +14,10 @@ let value: SyncAcquireResponseDeploymentPoolsAutoscale = { ## Fields -| Field | Type | Required | Description | -| --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | -| `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | -| `max` | *number* | :heavy_check_mark: | Maximum machine count. | -| `min` | *number* | :heavy_check_mark: | Minimum machine count. | -| `mode` | *"autoscale"* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | +| `failureDomains` | *models.SyncAcquireResponseDeploymentFailureDomainsUnion2* | :heavy_minus_sign: | N/A | +| `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | +| `max` | *number* | :heavy_check_mark: | Maximum machine count. | +| `min` | *number* | :heavy_check_mark: | Minimum machine count. | +| `mode` | *"autoscale"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpoolsfixed.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpoolsfixed.md index dcbf4ac15..0b98eb2d9 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpoolsfixed.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpoolsfixed.md @@ -13,8 +13,9 @@ let value: SyncAcquireResponseDeploymentPoolsFixed = { ## Fields -| Field | Type | Required | Description | -| --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | -| `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | -| `machines` | *number* | :heavy_check_mark: | Number of machines to run. | -| `mode` | *"fixed"* | :heavy_check_mark: | N/A | \ No newline at end of file +| Field | Type | Required | Description | +| ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | ---------------------------------------------------------- | +| `failureDomains` | *models.SyncAcquireResponseDeploymentFailureDomainsUnion1* | :heavy_minus_sign: | N/A | +| `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | +| `machines` | *number* | :heavy_check_mark: | Number of machines to run. | +| `mode` | *"fixed"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpoolsunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpoolsunion.md index a000dc273..365fdc535 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpoolsunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpoolsunion.md @@ -23,4 +23,3 @@ const value: models.SyncAcquireResponseDeploymentPoolsAutoscale = { mode: "autoscale", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentportunion1.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentportunion1.md index d5a20d499..0b14cace0 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentportunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentportunion1.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentPort1 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentportunion2.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentportunion2.md index 5c087914d..f66171b84 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentportunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentportunion2.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentPort2 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentportunion3.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentportunion3.md index fa39ad5d8..2d8e65889 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentportunion3.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentportunion3.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentPort3 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentportunion4.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentportunion4.md index 54f4acbe3..f07276817 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentportunion4.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentportunion4.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentPort4 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentportunion5.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentportunion5.md index a182011ed..88247aa85 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentportunion5.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentportunion5.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentPort5 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackdefaultunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackdefaultunion.md index 8e5d12703..9488ef93a 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackdefaultunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackdefaultunion.md @@ -48,4 +48,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackextendresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackextendresourceconditionunion.md index 7829722ee..10154fa4c 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackextendresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackextendresourceconditionunion.md @@ -18,4 +18,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackextendstackconditionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackextendstackconditionunion.md index 743e997db..436383a50 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackextendstackconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackextendstackconditionunion.md @@ -18,4 +18,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackextendunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackextendunion.md index 8e9403948..1adc9aa2c 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackextendunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackextendunion.md @@ -20,4 +20,3 @@ const value: models.SyncAcquireResponseDeploymentPreparedStackExtend = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackmanagementunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackmanagementunion.md index c1b46a520..ba4cfd56f 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackmanagementunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackmanagementunion.md @@ -29,4 +29,3 @@ const value: models.SyncAcquireResponseDeploymentPreparedStackManagement2 = { const value: models.SyncAcquireResponseDeploymentPreparedStackManagementEnum = "auto"; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackoverrideresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackoverrideresourceconditionunion.md index 52dd3ce42..04291bfaa 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackoverrideresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackoverrideresourceconditionunion.md @@ -18,4 +18,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackoverridestackconditionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackoverridestackconditionunion.md index 1bbd9d352..13d87f77f 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackoverridestackconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackoverridestackconditionunion.md @@ -18,4 +18,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackoverrideunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackoverrideunion.md index 8f65d4b64..3f0115e85 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackoverrideunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackoverrideunion.md @@ -20,4 +20,3 @@ const value: models.SyncAcquireResponseDeploymentPreparedStackOverride = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackprofileresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackprofileresourceconditionunion.md index 59a1c7a3c..fa98fa26a 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackprofileresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackprofileresourceconditionunion.md @@ -18,4 +18,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackprofilestackconditionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackprofilestackconditionunion.md index 5bacc1c04..5cf198d7f 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackprofilestackconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackprofilestackconditionunion.md @@ -18,4 +18,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackprofileunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackprofileunion.md index 1b8c9d76b..bc2a08b4a 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackprofileunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackprofileunion.md @@ -20,4 +20,3 @@ const value: models.SyncAcquireResponseDeploymentPreparedStackProfile = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackresources.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackresources.md index 68a040394..a64457d55 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackresources.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackresources.md @@ -22,9 +22,10 @@ let value: SyncAcquireResponseDeploymentPreparedStackResources = { ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `config` | [models.SyncAcquireResponseDeploymentPreparedStackConfig](../models/syncacquireresponsedeploymentpreparedstackconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | -| `dependencies` | [models.SyncAcquireResponseDeploymentPreparedStackDependency](../models/syncacquireresponsedeploymentpreparedstackdependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | -| `lifecycle` | [models.SyncAcquireResponseDeploymentPreparedStackLifecycle](../models/syncacquireresponsedeploymentpreparedstacklifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | -| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `config` | [models.SyncAcquireResponseDeploymentPreparedStackConfig](../models/syncacquireresponsedeploymentpreparedstackconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | +| `dependencies` | [models.SyncAcquireResponseDeploymentPreparedStackDependency](../models/syncacquireresponsedeploymentpreparedstackdependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | +| `enabledWhen` | *string* | :heavy_minus_sign: | Id of the boolean stack input that decides whether this resource is
created at all. `None` means always create it.

Set by `.enabled(input)` in the SDK. Setup emitters render the resource
conditionally on the matching template variable, so a deployer who says no
never gets the resource, its outputs, or anything derived from it. | +| `lifecycle` | [models.SyncAcquireResponseDeploymentPreparedStackLifecycle](../models/syncacquireresponsedeploymentpreparedstacklifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | +| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstacktypeunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstacktypeunion.md index 34843af62..9471b6e60 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstacktypeunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstacktypeunion.md @@ -15,4 +15,3 @@ const value: models.SyncAcquireResponseDeploymentPreparedStackTypeEnvEnum = ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackunion.md index 6824d09ff..69416bded 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackunion.md @@ -17,4 +17,3 @@ const value: models.SyncAcquireResponseDeploymentPreparedStack = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackvalidationunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackvalidationunion.md index 5549dad32..f4853cc73 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackvalidationunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreparedstackvalidationunion.md @@ -14,4 +14,3 @@ const value: models.SyncAcquireResponseDeploymentPreparedStackValidation = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreviousconfigunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreviousconfigunion.md index d03e50d7e..9ea0fe37c 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreviousconfigunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpreviousconfigunion.md @@ -17,4 +17,3 @@ const value: models.SyncAcquireResponseDeploymentPreviousConfig = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentprojectidunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentprojectidunion.md index b8b1beda1..0c3de30b3 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentprojectidunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentprojectidunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentProjectId = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentproviderunion1.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentproviderunion1.md index 8e72b39d7..7f92e0722 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentproviderunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentproviderunion1.md @@ -37,4 +37,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentproviderunion2.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentproviderunion2.md index 770c22f19..6e578c219 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentproviderunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentproviderunion2.md @@ -37,4 +37,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentproviderunion3.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentproviderunion3.md index ee5b3f5f6..86f4e15a1 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentproviderunion3.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentproviderunion3.md @@ -37,4 +37,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentproviderunion4.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentproviderunion4.md index 5ec49260d..9ec2d202d 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentproviderunion4.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentproviderunion4.md @@ -37,4 +37,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpublicendpointtargetunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpublicendpointtargetunion.md index 416d363b4..d5e1e4f53 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpublicendpointtargetunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentpublicendpointtargetunion.md @@ -27,4 +27,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentqueuenameunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentqueuenameunion.md index 35fc8b99a..3539bf74b 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentqueuenameunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentqueuenameunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentQueueName = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentqueuepathunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentqueuepathunion.md index 54a957b29..e323d03b1 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentqueuepathunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentqueuepathunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentQueuePath = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentqueueurlunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentqueueurlunion.md index 8aaadae82..6eb6ba24f 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentqueueurlunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentqueueurlunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentQueueUrl = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentregionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentregionunion.md index 8c1caa7d8..c9fb2dd50 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentregionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentregionunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentRegion = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentregistrynameunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentregistrynameunion.md index c1480e658..3d2be8748 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentregistrynameunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentregistrynameunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentRegistryName = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentregistryurlunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentregistryurlunion.md index 93ee16b00..ae826c7ab 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentregistryurlunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentregistryurlunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentRegistryUrl = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentrepositorynameunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentrepositorynameunion.md index 4ea7b5d49..52f1adac1 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentrepositorynameunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentrepositorynameunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentRepositoryName = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentrepositoryprefixunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentrepositoryprefixunion.md index 27423ac3f..db8b934e7 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentrepositoryprefixunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentrepositoryprefixunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentRepositoryPrefix1 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentresourcegroupnameunion1.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentresourcegroupnameunion1.md index 2127a95c9..565b909e6 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentresourcegroupnameunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentresourcegroupnameunion1.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentResourceGroupName1 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentresourcegroupnameunion2.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentresourcegroupnameunion2.md index 43ddd43ca..575af7fcc 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentresourcegroupnameunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentresourcegroupnameunion2.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentResourceGroupName2 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentresourcegroupnameunion3.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentresourcegroupnameunion3.md index be53315eb..4b21141bf 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentresourcegroupnameunion3.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentresourcegroupnameunion3.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentResourceGroupName3 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentresourceidunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentresourceidunion.md index 02efa537f..a26a11b24 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentresourceidunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentresourceidunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentResourceId = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentrouteunion1.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentrouteunion1.md index a9eeb6488..edd0fb882 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentrouteunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentrouteunion1.md @@ -23,4 +23,3 @@ const value: models.SyncAcquireResponseDeploymentRouteGateway1 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentrouteunion2.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentrouteunion2.md index 557d8d6e9..ce27f465d 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentrouteunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentrouteunion2.md @@ -23,4 +23,3 @@ const value: models.SyncAcquireResponseDeploymentRouteGateway2 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentruntimemetadata.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentruntimemetadata.md index b010fd0d7..5518a39ea 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentruntimemetadata.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentruntimemetadata.md @@ -14,9 +14,13 @@ let value: SyncAcquireResponseDeploymentRuntimeMetadata = {}; ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `lastSyncedEnvVarsHash` | *string* | :heavy_minus_sign: | Hash of the environment variables snapshot that was last synced to the vault
Used to avoid redundant sync operations during incremental deployment | -| `lastSyncedSecretNames` | *string*[] | :heavy_minus_sign: | Exact vault keys owned by the deployment secret synchronizer. This
inventory lets a later snapshot delete removed keys without listing or
touching unrelated values in the same vault. | -| `preparedStack` | *models.SyncAcquireResponseDeploymentPreparedStackUnion* | :heavy_minus_sign: | N/A | -| `registryAccessGranted` | *boolean* | :heavy_minus_sign: | Whether cross-account registry access has been successfully granted.
Set to true after the manager successfully sets the ECR/GAR repo policy
for this deployment's target account. Prevents redundant API calls on
every reconcile tick. | \ No newline at end of file +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `initialSetupAuthority` | [models.SyncAcquireResponseDeploymentInitialSetupAuthority](../models/syncacquireresponsedeploymentinitialsetupauthority.md) | :heavy_minus_sign: | Actor that owns structural work during the initial setup phase. | +| `lastSyncedEnvVarsHash` | *string* | :heavy_minus_sign: | Hash of the environment variables snapshot that was last synced to the vault
Used to avoid redundant sync operations during incremental deployment | +| `lastSyncedSecretNames` | *string*[] | :heavy_minus_sign: | Exact vault keys owned by the deployment secret synchronizer. This
inventory lets a later snapshot delete removed keys without listing or
touching unrelated values in the same vault. | +| `pendingPreparedStack` | *models.SyncAcquireResponseDeploymentPendingPreparedStackUnion* | :heavy_minus_sign: | N/A | +| `persistedGateAnswers` | Record | :heavy_minus_sign: | Canonical resolved answers for inputs that gate Frozen resources,
keyed by input id, recorded when the deployment is created or its
setup import registers.

A frozen gate's answer is fixed for the deployment's lifetime: the
update path refuses input values that conflict with these, and a Live
resource sharing such an input resolves the persisted answer forever. | +| `preparedStack` | *models.SyncAcquireResponseDeploymentPreparedStackUnion* | :heavy_minus_sign: | N/A | +| `registryAccessGranted` | *boolean* | :heavy_minus_sign: | Whether cross-account registry access has been successfully granted.
Set to true after the manager successfully sets the ECR/GAR repo policy
for this deployment's target account. Prevents redundant API calls on
every reconcile tick. | +| `setupUpdateAuthorization` | *models.SyncAcquireResponseDeploymentSetupUpdateAuthorizationUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentruntimemetadataunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentruntimemetadataunion.md index 72a5d1095..706bb8605 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentruntimemetadataunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentruntimemetadataunion.md @@ -14,4 +14,3 @@ const value: models.SyncAcquireResponseDeploymentRuntimeMetadata = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentservercacertificates.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentservercacertificates.md new file mode 100644 index 000000000..c73b8ad7a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentservercacertificates.md @@ -0,0 +1,20 @@ +# SyncAcquireResponseDeploymentServerCaCertificates + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentServerCaCertificates } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentServerCaCertificates = { + secretRef: { + key: "", + name: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| `secretRef` | [models.SyncAcquireResponseDeploymentServerCaCertificatesSecretRef](../models/syncacquireresponsedeploymentservercacertificatessecretref.md) | :heavy_check_mark: | Reference to a Kubernetes Secret | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentservercacertificatessecretref.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentservercacertificatessecretref.md new file mode 100644 index 000000000..ba76a040f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentservercacertificatessecretref.md @@ -0,0 +1,21 @@ +# SyncAcquireResponseDeploymentServerCaCertificatesSecretRef + +Reference to a Kubernetes Secret + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentServerCaCertificatesSecretRef } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentServerCaCertificatesSecretRef = { + key: "", + name: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `key` | *string* | :heavy_check_mark: | N/A | +| `name` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentservercacertificatesunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentservercacertificatesunion.md new file mode 100644 index 000000000..be0fbd4ae --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentservercacertificatesunion.md @@ -0,0 +1,33 @@ +# SyncAcquireResponseDeploymentServerCaCertificatesUnion + +Represents a value that can be either a concrete value, a template expression, +or a reference to a Kubernetes Secret + + +## Supported Types + +### `string[]` + +```typescript +const value: string[] = [ + "", + "", +]; +``` + +### `any` + +```typescript +const value: any = ""; +``` + +### `models.SyncAcquireResponseDeploymentServerCaCertificates` + +```typescript +const value: models.SyncAcquireResponseDeploymentServerCaCertificates = { + secretRef: { + key: "", + name: "", + }, +}; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentsetupupdateauthorization.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentsetupupdateauthorization.md new file mode 100644 index 000000000..b9f3209e8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentsetupupdateauthorization.md @@ -0,0 +1,31 @@ +# SyncAcquireResponseDeploymentSetupUpdateAuthorization + +One-shot authority for a setup re-import to replace setup-owned resources. + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentSetupUpdateAuthorization } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentSetupUpdateAuthorization = { + baselineFrozenDigest: "", + nonce: "", + releaseId: "", + setupFingerprint: "", + setupFingerprintVersion: 21546, + setupTarget: "", + targetFrozenDigest: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | +| `baselineFrozenDigest` | *string* | :heavy_check_mark: | Frozen resource projection from the last successful deployment. | +| `nonce` | *string* | :heavy_check_mark: | Unique revision used by persistence layers for compare-and-swap updates. | +| `releaseId` | *string* | :heavy_check_mark: | Release whose stack was prepared by setup. | +| `setupFingerprint` | *string* | :heavy_check_mark: | Exact setup artifact revision that authored this authority. | +| `setupFingerprintVersion` | *number* | :heavy_check_mark: | Setup fingerprint contract version. | +| `setupTarget` | *string* | :heavy_check_mark: | Stable setup target recorded on the imported deployment. | +| `targetFrozenDigest` | *string* | :heavy_check_mark: | Frozen resource projection prepared by the setup re-import. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentsetupupdateauthorizationunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentsetupupdateauthorizationunion.md new file mode 100644 index 000000000..b465d4073 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentsetupupdateauthorizationunion.md @@ -0,0 +1,24 @@ +# SyncAcquireResponseDeploymentSetupUpdateAuthorizationUnion + + +## Supported Types + +### `models.SyncAcquireResponseDeploymentSetupUpdateAuthorization` + +```typescript +const value: models.SyncAcquireResponseDeploymentSetupUpdateAuthorization = { + baselineFrozenDigest: "", + nonce: "", + releaseId: "", + setupFingerprint: "", + setupFingerprintVersion: 21546, + setupTarget: "", + targetFrozenDigest: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentsslmode.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentsslmode.md new file mode 100644 index 000000000..cf29c93cf --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentsslmode.md @@ -0,0 +1,20 @@ +# SyncAcquireResponseDeploymentSslMode + +TLS policy for an operator-provided / BYO Postgres database. + +Unlike libpq's ambiguous `prefer` mode, both choices map exactly to the +connection settings exposed by every supported SDK. + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentSslMode } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentSslMode = "disable"; +``` + +## Values + +```typescript +"verify-full" | "disable" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentstacksettingsawsunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentstacksettingsawsunion.md index a75f99948..48cc05c35 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentstacksettingsawsunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentstacksettingsawsunion.md @@ -16,4 +16,3 @@ const value: models.SyncAcquireResponseDeploymentAwsStackSettings = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentstacksettingsazureunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentstacksettingsazureunion.md index 2eb8503df..07f923880 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentstacksettingsazureunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentstacksettingsazureunion.md @@ -16,4 +16,3 @@ const value: models.SyncAcquireResponseDeploymentAzureStackSettings = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentstacksettingsgcpunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentstacksettingsgcpunion.md index c7d45ca7b..dbd37d08d 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentstacksettingsgcpunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentstacksettingsgcpunion.md @@ -16,4 +16,3 @@ const value: models.SyncAcquireResponseDeploymentGcpStackSettings = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentstackstateerrorunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentstackstateerrorunion.md index 9d4f725cf..8a831512a 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentstackstateerrorunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentstackstateerrorunion.md @@ -18,4 +18,3 @@ const value: models.SyncAcquireResponseDeploymentStackStateError = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentstackstateunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentstackstateunion.md index 5c3dae30a..a0d24edf4 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentstackstateunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentstackstateunion.md @@ -27,4 +27,3 @@ const value: models.SyncAcquireResponseDeploymentStackState = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentstoragepathunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentstoragepathunion.md index b3ca10a91..055e6e09c 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentstoragepathunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentstoragepathunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentStoragePath = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentsubscriptionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentsubscriptionunion.md index 201f520a8..98be33699 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentsubscriptionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentsubscriptionunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentSubscription = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttablenameunion1.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttablenameunion1.md index 2485fbd15..b83aceaaa 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttablenameunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttablenameunion1.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentTableName1 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttablenameunion2.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttablenameunion2.md index ae06404a4..1612c9a80 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttablenameunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttablenameunion2.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentTableName2 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleasedefaultunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleasedefaultunion.md index a735c662a..58878b7bd 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleasedefaultunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleasedefaultunion.md @@ -49,4 +49,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseextendconditionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseextendconditionunion.md index 0eaae36e6..f64de0961 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseextendconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseextendconditionunion.md @@ -18,4 +18,3 @@ const value: models.SyncAcquireResponseDeploymentTargetReleaseExtendCondition = ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseextendresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseextendresourceconditionunion.md index e41ddd454..e941cdf1d 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseextendresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseextendresourceconditionunion.md @@ -18,4 +18,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseextendunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseextendunion.md index 041328255..294ccf78e 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseextendunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseextendunion.md @@ -20,4 +20,3 @@ const value: models.SyncAcquireResponseDeploymentTargetReleaseExtend = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleasemanagementunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleasemanagementunion.md index 0bac12e11..c94a03576 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleasemanagementunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleasemanagementunion.md @@ -38,4 +38,3 @@ const value: models.SyncAcquireResponseDeploymentTargetReleaseManagement2 = { const value: models.SyncAcquireResponseDeploymentTargetReleaseManagementEnum = "auto"; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseoverrideconditionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseoverrideconditionunion.md index 89a85694f..1b20901b6 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseoverrideconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseoverrideconditionunion.md @@ -18,4 +18,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseoverrideresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseoverrideresourceconditionunion.md index 5049942c7..99ad3ae2c 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseoverrideresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseoverrideresourceconditionunion.md @@ -18,4 +18,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseoverrideunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseoverrideunion.md index 9af351b48..c61eec828 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseoverrideunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseoverrideunion.md @@ -21,4 +21,3 @@ const value: models.SyncAcquireResponseDeploymentTargetReleaseOverride = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseprofileconditionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseprofileconditionunion.md index 1147f4a86..72dae8ef9 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseprofileconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseprofileconditionunion.md @@ -18,4 +18,3 @@ const value: models.SyncAcquireResponseDeploymentTargetReleaseProfileCondition = ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseprofileresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseprofileresourceconditionunion.md index 330cc7868..7b8d08add 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseprofileresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseprofileresourceconditionunion.md @@ -18,4 +18,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseprofileunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseprofileunion.md index a9d79a2c0..43d0b6cbe 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseprofileunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseprofileunion.md @@ -20,4 +20,3 @@ const value: models.SyncAcquireResponseDeploymentTargetReleaseProfile = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseresources.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseresources.md index 81c49f554..9bd00622a 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseresources.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseresources.md @@ -17,9 +17,10 @@ let value: SyncAcquireResponseDeploymentTargetReleaseResources = { ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `config` | [models.SyncAcquireResponseDeploymentTargetReleaseConfig](../models/syncacquireresponsedeploymenttargetreleaseconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | -| `dependencies` | [models.SyncAcquireResponseDeploymentTargetReleaseDependency](../models/syncacquireresponsedeploymenttargetreleasedependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | -| `lifecycle` | [models.SyncAcquireResponseDeploymentTargetReleaseLifecycle](../models/syncacquireresponsedeploymenttargetreleaselifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | -| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `config` | [models.SyncAcquireResponseDeploymentTargetReleaseConfig](../models/syncacquireresponsedeploymenttargetreleaseconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | +| `dependencies` | [models.SyncAcquireResponseDeploymentTargetReleaseDependency](../models/syncacquireresponsedeploymenttargetreleasedependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | +| `enabledWhen` | *string* | :heavy_minus_sign: | Id of the boolean stack input that decides whether this resource is
created at all. `None` means always create it.

Set by `.enabled(input)` in the SDK. Setup emitters render the resource
conditionally on the matching template variable, so a deployer who says no
never gets the resource, its outputs, or anything derived from it. | +| `lifecycle` | [models.SyncAcquireResponseDeploymentTargetReleaseLifecycle](../models/syncacquireresponsedeploymenttargetreleaselifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | +| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleasetypeunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleasetypeunion.md index ce4981164..38f15d3ab 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleasetypeunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleasetypeunion.md @@ -15,4 +15,3 @@ const value: models.SyncAcquireResponseDeploymentTargetReleaseTypeEnvEnum = ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseunion.md index 8baec17fe..601969e41 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleaseunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentTargetRelease = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleasevalidationunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleasevalidationunion.md index 31f833cd8..f79c06108 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleasevalidationunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttargetreleasevalidationunion.md @@ -14,4 +14,3 @@ const value: models.SyncAcquireResponseDeploymentTargetReleaseValidation = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttopicunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttopicunion.md index 2d1bbcb5f..bd2aed5ae 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttopicunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttopicunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentTopic = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttypeai.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttypeai.md new file mode 100644 index 000000000..020b3c559 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymenttypeai.md @@ -0,0 +1,15 @@ +# SyncAcquireResponseDeploymentTypeAi + +## Example Usage + +```typescript +import { SyncAcquireResponseDeploymentTypeAi } from "@alienplatform/platform-api/models"; + +let value: SyncAcquireResponseDeploymentTypeAi = "ai"; +``` + +## Values + +```typescript +"ai" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentusernameunion1.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentusernameunion1.md index 0da0d9ee3..707a2cc7e 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentusernameunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentusernameunion1.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentUsername1 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentusernameunion2.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentusernameunion2.md index 0522147a0..3670cd3bc 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentusernameunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentusernameunion2.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentUsername2 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentusernameunion3.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentusernameunion3.md index c06120eca..ce4a3aa81 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentusernameunion3.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentusernameunion3.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentUsername3 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentusernameunion4.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentusernameunion4.md index 7961e86a3..af75ff2e6 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentusernameunion4.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentusernameunion4.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentUsername4 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentusernameunion5.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentusernameunion5.md index 078cc61a3..a49d01613 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentusernameunion5.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentusernameunion5.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentUsername5 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentvaultnameunion.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentvaultnameunion.md index 27e85e6ac..bfc301dee 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentvaultnameunion.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentvaultnameunion.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentVaultName = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentvaultprefixunion1.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentvaultprefixunion1.md index 3e2d691b0..3d9f21f2d 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentvaultprefixunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentvaultprefixunion1.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentVaultPrefix1 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentvaultprefixunion2.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentvaultprefixunion2.md index f65778ac1..1f87d7cde 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentvaultprefixunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentvaultprefixunion2.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentVaultPrefix2 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentvaultprefixunion3.md b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentvaultprefixunion3.md index 838d5fc95..58df29aa2 100644 --- a/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentvaultprefixunion3.md +++ b/client-sdks/platform/typescript/docs/models/syncacquireresponsedeploymentvaultprefixunion3.md @@ -28,4 +28,3 @@ const value: models.SyncAcquireResponseDeploymentVaultPrefix3 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponse.md b/client-sdks/platform/typescript/docs/models/synclistresponse.md index 9796c5bdd..d90b8e1bd 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponse.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponse.md @@ -21,6 +21,7 @@ let value: SyncListResponse = { currentReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", desiredReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", pinnedReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", + releaseChannel: "", retryRequested: true, createdAt: new Date("2026-10-15T16:14:26.325Z"), updatedAt: new Date("2025-12-30T11:04:55.945Z"), diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseawsunion.md b/client-sdks/platform/typescript/docs/models/synclistresponseawsunion.md index 8165850aa..79653218a 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponseawsunion.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponseawsunion.md @@ -16,4 +16,3 @@ const value: models.SyncListResponseAws = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseazureunion.md b/client-sdks/platform/typescript/docs/models/synclistresponseazureunion.md index 95ab7b765..c0aa3f611 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponseazureunion.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponseazureunion.md @@ -16,4 +16,3 @@ const value: models.SyncListResponseAzureStackSettings = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsecertificateunion1.md b/client-sdks/platform/typescript/docs/models/synclistresponsecertificateunion1.md index f5c266957..08732fb63 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponsecertificateunion1.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponsecertificateunion1.md @@ -47,4 +47,3 @@ const value: models.SyncListResponseCertificateNone1 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsecertificateunion2.md b/client-sdks/platform/typescript/docs/models/synclistresponsecertificateunion2.md index d9836c82c..024c691cd 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponsecertificateunion2.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponsecertificateunion2.md @@ -47,4 +47,3 @@ const value: models.SyncListResponseCertificateNone2 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsecloudunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsecloudunion.md index bdc235d72..8f2e278a5 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponsecloudunion.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponsecloudunion.md @@ -14,4 +14,3 @@ const value: models.SyncListResponseCloud = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseclusterunion.md b/client-sdks/platform/typescript/docs/models/synclistresponseclusterunion.md index 2ec3ffde2..23d553543 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponseclusterunion.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponseclusterunion.md @@ -16,4 +16,3 @@ const value: models.SyncListResponseCluster = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsecomputeunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsecomputeunion.md index 2df68001f..c358986f2 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponsecomputeunion.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponsecomputeunion.md @@ -14,4 +14,3 @@ const value: models.SyncListResponseCompute = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsecontrollerplatformunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsecontrollerplatformunion.md index 8a408db8d..8f66cdb42 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponsecontrollerplatformunion.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponsecontrollerplatformunion.md @@ -14,4 +14,3 @@ const value: models.SyncListResponseControllerPlatformEnum = "kubernetes"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsedefaultboolean.md b/client-sdks/platform/typescript/docs/models/synclistresponsedefaultboolean.md deleted file mode 100644 index b2a0889bd..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponsedefaultboolean.md +++ /dev/null @@ -1,19 +0,0 @@ -# SyncListResponseDefaultBoolean - -## Example Usage - -```typescript -import { SyncListResponseDefaultBoolean } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseDefaultBoolean = { - type: "boolean", - value: false, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | -| `type` | [models.SyncListResponseTypeBoolean](../models/synclistresponsetypeboolean.md) | :heavy_check_mark: | N/A | -| `value` | *boolean* | :heavy_check_mark: | Boolean default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsedefaultnumber.md b/client-sdks/platform/typescript/docs/models/synclistresponsedefaultnumber.md deleted file mode 100644 index d6dd25184..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponsedefaultnumber.md +++ /dev/null @@ -1,19 +0,0 @@ -# SyncListResponseDefaultNumber - -## Example Usage - -```typescript -import { SyncListResponseDefaultNumber } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseDefaultNumber = { - type: "number", - value: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | -| `type` | [models.SyncListResponseTypeNumber](../models/synclistresponsetypenumber.md) | :heavy_check_mark: | N/A | -| `value` | *string* | :heavy_check_mark: | Number default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsedefaultstring.md b/client-sdks/platform/typescript/docs/models/synclistresponsedefaultstring.md deleted file mode 100644 index 25b1dc755..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponsedefaultstring.md +++ /dev/null @@ -1,19 +0,0 @@ -# SyncListResponseDefaultString - -## Example Usage - -```typescript -import { SyncListResponseDefaultString } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseDefaultString = { - type: "string", - value: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | -| `type` | [models.SyncListResponseTypeString](../models/synclistresponsetypestring.md) | :heavy_check_mark: | N/A | -| `value` | *string* | :heavy_check_mark: | String default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsedefaultstringlist.md b/client-sdks/platform/typescript/docs/models/synclistresponsedefaultstringlist.md deleted file mode 100644 index 951d4a07a..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponsedefaultstringlist.md +++ /dev/null @@ -1,21 +0,0 @@ -# SyncListResponseDefaultStringList - -## Example Usage - -```typescript -import { SyncListResponseDefaultStringList } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseDefaultStringList = { - type: "stringList", - value: [ - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | -| `type` | [models.SyncListResponseTypeStringList](../models/synclistresponsetypestringlist.md) | :heavy_check_mark: | N/A | -| `value` | *string*[] | :heavy_check_mark: | String list default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsedefaultunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsedefaultunion.md deleted file mode 100644 index 0047656f4..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponsedefaultunion.md +++ /dev/null @@ -1,49 +0,0 @@ -# SyncListResponseDefaultUnion - - -## Supported Types - -### `models.SyncListResponseDefaultString` - -```typescript -const value: models.SyncListResponseDefaultString = { - type: "string", - value: "", -}; -``` - -### `models.SyncListResponseDefaultNumber` - -```typescript -const value: models.SyncListResponseDefaultNumber = { - type: "number", - value: "", -}; -``` - -### `models.SyncListResponseDefaultBoolean` - -```typescript -const value: models.SyncListResponseDefaultBoolean = { - type: "boolean", - value: false, -}; -``` - -### `models.SyncListResponseDefaultStringList` - -```typescript -const value: models.SyncListResponseDefaultStringList = { - type: "stringList", - value: [ - "", - ], -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsedeployment.md b/client-sdks/platform/typescript/docs/models/synclistresponsedeployment.md index fff640a76..7aca6111f 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponsedeployment.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponsedeployment.md @@ -17,6 +17,7 @@ let value: SyncListResponseDeployment = { currentReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", desiredReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", pinnedReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", + releaseChannel: "", retryRequested: false, createdAt: new Date("2024-10-11T05:39:21.095Z"), updatedAt: new Date("2026-03-09T16:42:49.718Z"), @@ -47,6 +48,7 @@ let value: SyncListResponseDeployment = { | `currentReleaseId` | *string* | :heavy_minus_sign: | ID of the currently deployed release (actual state) | rel_WbhQgksrawSKIpEN0NAssHX9 | | `desiredReleaseId` | *string* | :heavy_minus_sign: | ID of the desired release for deployment/update (desired state) | rel_WbhQgksrawSKIpEN0NAssHX9 | | `pinnedReleaseId` | *string* | :heavy_minus_sign: | ID of the pinned release | rel_WbhQgksrawSKIpEN0NAssHX9 | +| `releaseChannel` | *string* | :heavy_check_mark: | N/A | | | `importSource` | [models.SyncListResponseImportSource](../models/synclistresponseimportsource.md) | :heavy_minus_sign: | Setup source that imported this deployment | | | `setupMethod` | [models.SyncListResponseSetupMethod](../models/synclistresponsesetupmethod.md) | :heavy_minus_sign: | Setup method that created the deployment record and owns setup-time resources. | | | `setupMetadata` | Record | :heavy_minus_sign: | Setup method metadata needed to guide privileged teardown. | | diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsedomainskubernetesunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsedomainskubernetesunion.md index 1ce6e3f15..5b969e70c 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponsedomainskubernetesunion.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponsedomainskubernetesunion.md @@ -18,4 +18,3 @@ const value: models.SyncListResponseDomainsKubernetes = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsedomainsunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsedomainsunion.md index 2f2b79aa4..0676b8e61 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponsedomainsunion.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponsedomainsunion.md @@ -14,4 +14,3 @@ const value: models.SyncListResponseDomains = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseenv.md b/client-sdks/platform/typescript/docs/models/synclistresponseenv.md deleted file mode 100644 index f0e44e69e..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseenv.md +++ /dev/null @@ -1,21 +0,0 @@ -# SyncListResponseEnv - -How a resolved stack input is injected into runtime environment variables. - -## Example Usage - -```typescript -import { SyncListResponseEnv } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseEnv = { - name: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | -| `name` | *string* | :heavy_check_mark: | Environment variable name. | -| `targetResources` | *string*[] | :heavy_minus_sign: | Target resource IDs or patterns. None means every env-capable resource. | -| `type` | *models.SyncListResponseTypeUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseenvironmentinfounion.md b/client-sdks/platform/typescript/docs/models/synclistresponseenvironmentinfounion.md index a21d2c474..618b404b4 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponseenvironmentinfounion.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponseenvironmentinfounion.md @@ -62,4 +62,3 @@ const value: models.SyncListResponseEnvironmentInfoTest = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseerrorunion.md b/client-sdks/platform/typescript/docs/models/synclistresponseerrorunion.md index 912fd8c42..d4a1c1e37 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponseerrorunion.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponseerrorunion.md @@ -18,4 +18,3 @@ const value: models.SyncListResponseErrorStackState = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseexposureunion.md b/client-sdks/platform/typescript/docs/models/synclistresponseexposureunion.md index 1973534f3..bf59299d3 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponseexposureunion.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponseexposureunion.md @@ -49,4 +49,3 @@ const value: models.SyncListResponseExposureCustom = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseextend.md b/client-sdks/platform/typescript/docs/models/synclistresponseextend.md deleted file mode 100644 index 743a86a47..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseextend.md +++ /dev/null @@ -1,23 +0,0 @@ -# SyncListResponseExtend - -A permission set that can be applied across different cloud platforms - -## Example Usage - -```typescript -import { SyncListResponseExtend } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseExtend = { - description: "probable inasmuch cork", - id: "", - platforms: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | -| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | -| `platforms` | [models.SyncListResponseExtendPlatforms](../models/synclistresponseextendplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseextendaw.md b/client-sdks/platform/typescript/docs/models/synclistresponseextendaw.md deleted file mode 100644 index 3f7936deb..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseextendaw.md +++ /dev/null @@ -1,24 +0,0 @@ -# SyncListResponseExtendAw - -AWS-specific platform permission configuration - -## Example Usage - -```typescript -import { SyncListResponseExtendAw } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseExtendAw = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------- | -| `binding` | [models.SyncListResponseExtendAwBinding](../models/synclistresponseextendawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `effect` | [models.SyncListResponseExtendEffect](../models/synclistresponseextendeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | -| `grant` | [models.SyncListResponseExtendAwGrant](../models/synclistresponseextendawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseextendawbinding.md b/client-sdks/platform/typescript/docs/models/synclistresponseextendawbinding.md deleted file mode 100644 index 51ea4792d..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseextendawbinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# SyncListResponseExtendAwBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { SyncListResponseExtendAwBinding } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseExtendAwBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | -| `resource` | [models.SyncListResponseExtendAwResource](../models/synclistresponseextendawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | -| `stack` | [models.SyncListResponseExtendAwStack](../models/synclistresponseextendawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseextendawgrant.md b/client-sdks/platform/typescript/docs/models/synclistresponseextendawgrant.md deleted file mode 100644 index 2bb849031..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseextendawgrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# SyncListResponseExtendAwGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { SyncListResponseExtendAwGrant } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseExtendAwGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseextendawresource.md b/client-sdks/platform/typescript/docs/models/synclistresponseextendawresource.md deleted file mode 100644 index b2be0d1fb..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseextendawresource.md +++ /dev/null @@ -1,20 +0,0 @@ -# SyncListResponseExtendAwResource - -AWS-specific binding specification - -## Example Usage - -```typescript -import { SyncListResponseExtendAwResource } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseExtendAwResource = { - resources: [], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | -| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseextendawstack.md b/client-sdks/platform/typescript/docs/models/synclistresponseextendawstack.md deleted file mode 100644 index d3b13a9f2..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseextendawstack.md +++ /dev/null @@ -1,22 +0,0 @@ -# SyncListResponseExtendAwStack - -AWS-specific binding specification - -## Example Usage - -```typescript -import { SyncListResponseExtendAwStack } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseExtendAwStack = { - resources: [ - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | -| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseextendazure.md b/client-sdks/platform/typescript/docs/models/synclistresponseextendazure.md deleted file mode 100644 index af9ef5022..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseextendazure.md +++ /dev/null @@ -1,23 +0,0 @@ -# SyncListResponseExtendAzure - -Azure-specific platform permission configuration - -## Example Usage - -```typescript -import { SyncListResponseExtendAzure } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseExtendAzure = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -| `binding` | [models.SyncListResponseExtendAzureBinding](../models/synclistresponseextendazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `grant` | [models.SyncListResponseExtendAzureGrant](../models/synclistresponseextendazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseextendazurebinding.md b/client-sdks/platform/typescript/docs/models/synclistresponseextendazurebinding.md deleted file mode 100644 index d29956fb2..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseextendazurebinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# SyncListResponseExtendAzureBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { SyncListResponseExtendAzureBinding } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseExtendAzureBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| `resource` | [models.SyncListResponseExtendAzureResource](../models/synclistresponseextendazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | -| `stack` | [models.SyncListResponseExtendAzureStack](../models/synclistresponseextendazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseextendazuregrant.md b/client-sdks/platform/typescript/docs/models/synclistresponseextendazuregrant.md deleted file mode 100644 index e1826ffb8..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseextendazuregrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# SyncListResponseExtendAzureGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { SyncListResponseExtendAzureGrant } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseExtendAzureGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseextendazureresource.md b/client-sdks/platform/typescript/docs/models/synclistresponseextendazureresource.md deleted file mode 100644 index 2a7d635e4..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseextendazureresource.md +++ /dev/null @@ -1,19 +0,0 @@ -# SyncListResponseExtendAzureResource - -Azure-specific binding specification - -## Example Usage - -```typescript -import { SyncListResponseExtendAzureResource } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseExtendAzureResource = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseextendazurestack.md b/client-sdks/platform/typescript/docs/models/synclistresponseextendazurestack.md deleted file mode 100644 index 8e95ca2d2..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseextendazurestack.md +++ /dev/null @@ -1,19 +0,0 @@ -# SyncListResponseExtendAzureStack - -Azure-specific binding specification - -## Example Usage - -```typescript -import { SyncListResponseExtendAzureStack } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseExtendAzureStack = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseextendconditionresource.md b/client-sdks/platform/typescript/docs/models/synclistresponseextendconditionresource.md deleted file mode 100644 index b2506c3f6..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseextendconditionresource.md +++ /dev/null @@ -1,21 +0,0 @@ -# SyncListResponseExtendConditionResource - -GCP IAM condition - -## Example Usage - -```typescript -import { SyncListResponseExtendConditionResource } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseExtendConditionResource = { - expression: "", - title: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `expression` | *string* | :heavy_check_mark: | N/A | -| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseextendconditionstack.md b/client-sdks/platform/typescript/docs/models/synclistresponseextendconditionstack.md deleted file mode 100644 index bcec1de17..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseextendconditionstack.md +++ /dev/null @@ -1,21 +0,0 @@ -# SyncListResponseExtendConditionStack - -GCP IAM condition - -## Example Usage - -```typescript -import { SyncListResponseExtendConditionStack } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseExtendConditionStack = { - expression: "", - title: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `expression` | *string* | :heavy_check_mark: | N/A | -| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseextendeffect.md b/client-sdks/platform/typescript/docs/models/synclistresponseextendeffect.md deleted file mode 100644 index 8d02d1aaf..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseextendeffect.md +++ /dev/null @@ -1,17 +0,0 @@ -# SyncListResponseExtendEffect - -IAM effect. Defaults to Allow. - -## Example Usage - -```typescript -import { SyncListResponseExtendEffect } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseExtendEffect = "Allow"; -``` - -## Values - -```typescript -"Allow" | "Deny" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseextendgcp.md b/client-sdks/platform/typescript/docs/models/synclistresponseextendgcp.md deleted file mode 100644 index 91b9a24ed..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseextendgcp.md +++ /dev/null @@ -1,23 +0,0 @@ -# SyncListResponseExtendGcp - -GCP-specific platform permission configuration - -## Example Usage - -```typescript -import { SyncListResponseExtendGcp } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseExtendGcp = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | -| `binding` | [models.SyncListResponseExtendGcpBinding](../models/synclistresponseextendgcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `grant` | [models.SyncListResponseExtendGcpGrant](../models/synclistresponseextendgcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseextendgcpbinding.md b/client-sdks/platform/typescript/docs/models/synclistresponseextendgcpbinding.md deleted file mode 100644 index 4cca25430..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseextendgcpbinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# SyncListResponseExtendGcpBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { SyncListResponseExtendGcpBinding } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseExtendGcpBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | -| `resource` | [models.SyncListResponseExtendGcpResource](../models/synclistresponseextendgcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | -| `stack` | [models.SyncListResponseExtendGcpStack](../models/synclistresponseextendgcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseextendgcpgrant.md b/client-sdks/platform/typescript/docs/models/synclistresponseextendgcpgrant.md deleted file mode 100644 index 3cf7795c7..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseextendgcpgrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# SyncListResponseExtendGcpGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { SyncListResponseExtendGcpGrant } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseExtendGcpGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseextendgcpresource.md b/client-sdks/platform/typescript/docs/models/synclistresponseextendgcpresource.md deleted file mode 100644 index 2145e1ee8..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseextendgcpresource.md +++ /dev/null @@ -1,20 +0,0 @@ -# SyncListResponseExtendGcpResource - -GCP-specific binding specification - -## Example Usage - -```typescript -import { SyncListResponseExtendGcpResource } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseExtendGcpResource = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | ----------------------------------------------------- | -| `condition` | *models.SyncListResponseExtendResourceConditionUnion* | :heavy_minus_sign: | N/A | -| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseextendgcpstack.md b/client-sdks/platform/typescript/docs/models/synclistresponseextendgcpstack.md deleted file mode 100644 index 30d72bc2b..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseextendgcpstack.md +++ /dev/null @@ -1,20 +0,0 @@ -# SyncListResponseExtendGcpStack - -GCP-specific binding specification - -## Example Usage - -```typescript -import { SyncListResponseExtendGcpStack } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseExtendGcpStack = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | *models.SyncListResponseExtendStackConditionUnion* | :heavy_minus_sign: | N/A | -| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseextendplatforms.md b/client-sdks/platform/typescript/docs/models/synclistresponseextendplatforms.md deleted file mode 100644 index 71b73ebe5..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseextendplatforms.md +++ /dev/null @@ -1,19 +0,0 @@ -# SyncListResponseExtendPlatforms - -Platform-specific permission configurations - -## Example Usage - -```typescript -import { SyncListResponseExtendPlatforms } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseExtendPlatforms = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -| `aws` | [models.SyncListResponseExtendAw](../models/synclistresponseextendaw.md)[] | :heavy_minus_sign: | AWS permission configurations | -| `azure` | [models.SyncListResponseExtendAzure](../models/synclistresponseextendazure.md)[] | :heavy_minus_sign: | Azure permission configurations | -| `gcp` | [models.SyncListResponseExtendGcp](../models/synclistresponseextendgcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseextendresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/synclistresponseextendresourceconditionunion.md deleted file mode 100644 index 4ffbc3802..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseextendresourceconditionunion.md +++ /dev/null @@ -1,20 +0,0 @@ -# SyncListResponseExtendResourceConditionUnion - - -## Supported Types - -### `models.SyncListResponseExtendConditionResource` - -```typescript -const value: models.SyncListResponseExtendConditionResource = { - expression: "", - title: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseextendstackconditionunion.md b/client-sdks/platform/typescript/docs/models/synclistresponseextendstackconditionunion.md deleted file mode 100644 index ce110ef1b..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseextendstackconditionunion.md +++ /dev/null @@ -1,20 +0,0 @@ -# SyncListResponseExtendStackConditionUnion - - -## Supported Types - -### `models.SyncListResponseExtendConditionStack` - -```typescript -const value: models.SyncListResponseExtendConditionStack = { - expression: "", - title: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseextendunion.md b/client-sdks/platform/typescript/docs/models/synclistresponseextendunion.md deleted file mode 100644 index 4cf0f217d..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseextendunion.md +++ /dev/null @@ -1,23 +0,0 @@ -# SyncListResponseExtendUnion - -Reference to a permission set - either by name or inline definition - - -## Supported Types - -### `models.SyncListResponseExtend` - -```typescript -const value: models.SyncListResponseExtend = { - description: "probable inasmuch cork", - id: "", - platforms: {}, -}; -``` - -### `string` - -```typescript -const value: string = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsefailuredomains1.md b/client-sdks/platform/typescript/docs/models/synclistresponsefailuredomains1.md new file mode 100644 index 000000000..bef0bf126 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsefailuredomains1.md @@ -0,0 +1,20 @@ +# SyncListResponseFailureDomains1 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { SyncListResponseFailureDomains1 } from "@alienplatform/platform-api/models"; + +let value: SyncListResponseFailureDomains1 = { + spread: 124748, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsefailuredomains2.md b/client-sdks/platform/typescript/docs/models/synclistresponsefailuredomains2.md new file mode 100644 index 000000000..edae27522 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsefailuredomains2.md @@ -0,0 +1,20 @@ +# SyncListResponseFailureDomains2 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { SyncListResponseFailureDomains2 } from "@alienplatform/platform-api/models"; + +let value: SyncListResponseFailureDomains2 = { + spread: 625371, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsefailuredomainsunion1.md b/client-sdks/platform/typescript/docs/models/synclistresponsefailuredomainsunion1.md new file mode 100644 index 000000000..a8b741d46 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsefailuredomainsunion1.md @@ -0,0 +1,18 @@ +# SyncListResponseFailureDomainsUnion1 + + +## Supported Types + +### `models.SyncListResponseFailureDomains1` + +```typescript +const value: models.SyncListResponseFailureDomains1 = { + spread: 124748, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsefailuredomainsunion2.md b/client-sdks/platform/typescript/docs/models/synclistresponsefailuredomainsunion2.md new file mode 100644 index 000000000..9f44a44ed --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsefailuredomainsunion2.md @@ -0,0 +1,18 @@ +# SyncListResponseFailureDomainsUnion2 + + +## Supported Types + +### `models.SyncListResponseFailureDomains2` + +```typescript +const value: models.SyncListResponseFailureDomains2 = { + spread: 625371, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsegcpunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsegcpunion.md index 463e167d6..329d110b5 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponsegcpunion.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponsegcpunion.md @@ -16,4 +16,3 @@ const value: models.SyncListResponseGcpStackSettings = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseinitialsetupauthority.md b/client-sdks/platform/typescript/docs/models/synclistresponseinitialsetupauthority.md new file mode 100644 index 000000000..20f0d75ed --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponseinitialsetupauthority.md @@ -0,0 +1,17 @@ +# SyncListResponseInitialSetupAuthority + +Actor that owns structural work during the initial setup phase. + +## Example Usage + +```typescript +import { SyncListResponseInitialSetupAuthority } from "@alienplatform/platform-api/models"; + +let value: SyncListResponseInitialSetupAuthority = "importedHandoff"; +``` + +## Values + +```typescript +"importedHandoff" | "directSetup" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseinput.md b/client-sdks/platform/typescript/docs/models/synclistresponseinput.md deleted file mode 100644 index 4eb827ea6..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseinput.md +++ /dev/null @@ -1,36 +0,0 @@ -# SyncListResponseInput - -Stack input definition serialized into a release stack. - -## Example Usage - -```typescript -import { SyncListResponseInput } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseInput = { - description: "draw neatly round modulo sensitize", - id: "", - kind: "integer", - label: "", - providedBy: [ - "deployer", - ], - required: false, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------- | -| `default` | *models.SyncListResponseDefaultUnion* | :heavy_minus_sign: | N/A | -| `description` | *string* | :heavy_check_mark: | Human-facing helper text. | -| `env` | [models.SyncListResponseEnv](../models/synclistresponseenv.md)[] | :heavy_minus_sign: | Runtime env-var mappings for v1 input resolution. | -| `id` | *string* | :heavy_check_mark: | Stable input ID used by CLI/API calls. | -| `kind` | [models.SyncListResponseKind](../models/synclistresponsekind.md) | :heavy_check_mark: | Primitive stack input kind. | -| `label` | *string* | :heavy_check_mark: | Human-facing field label. | -| `placeholder` | *string* | :heavy_minus_sign: | Example placeholder shown in UI. | -| `platforms` | [models.SyncListResponsePreparedStackPlatform](../models/synclistresponsepreparedstackplatform.md)[] | :heavy_minus_sign: | Platforms where this input applies. | -| `providedBy` | [models.SyncListResponseProvidedBy](../models/synclistresponseprovidedby.md)[] | :heavy_check_mark: | Who can provide this value. | -| `required` | *boolean* | :heavy_check_mark: | Whether a resolved value is required before deployment can proceed. | -| `validation` | *models.SyncListResponseValidationUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsekind.md b/client-sdks/platform/typescript/docs/models/synclistresponsekind.md deleted file mode 100644 index 69657de70..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponsekind.md +++ /dev/null @@ -1,17 +0,0 @@ -# SyncListResponseKind - -Primitive stack input kind. - -## Example Usage - -```typescript -import { SyncListResponseKind } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseKind = "enum"; -``` - -## Values - -```typescript -"string" | "secret" | "number" | "integer" | "boolean" | "enum" | "stringList" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsekubernetesunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsekubernetesunion.md index 20e150cf1..d50d98b49 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponsekubernetesunion.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponsekubernetesunion.md @@ -14,4 +14,3 @@ const value: models.SyncListResponseKubernetes = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponselifecycleunion.md b/client-sdks/platform/typescript/docs/models/synclistresponselifecycleunion.md index a5ecaf830..9b181617a 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponselifecycleunion.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponselifecycleunion.md @@ -14,4 +14,3 @@ const value: models.SyncListResponseLifecycleStackStateEnum = "frozen"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsemanagement1.md b/client-sdks/platform/typescript/docs/models/synclistresponsemanagement1.md deleted file mode 100644 index 0c9b0ed5f..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponsemanagement1.md +++ /dev/null @@ -1,17 +0,0 @@ -# SyncListResponseManagement1 - -## Example Usage - -```typescript -import { SyncListResponseManagement1 } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseManagement1 = { - extend: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -| `extend` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsemanagement2.md b/client-sdks/platform/typescript/docs/models/synclistresponsemanagement2.md deleted file mode 100644 index 4c1f3e190..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponsemanagement2.md +++ /dev/null @@ -1,20 +0,0 @@ -# SyncListResponseManagement2 - -## Example Usage - -```typescript -import { SyncListResponseManagement2 } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseManagement2 = { - override: { - "key": [], - "key1": [], - }, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | -| `override` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsemanagementconfigunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsemanagementconfigunion.md index 3bd8c52c8..becde97ec 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponsemanagementconfigunion.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponsemanagementconfigunion.md @@ -50,4 +50,3 @@ const value: models.SyncListResponseManagementConfigKubernetes = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsemanagementenum.md b/client-sdks/platform/typescript/docs/models/synclistresponsemanagementenum.md deleted file mode 100644 index 8f3de0fa0..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponsemanagementenum.md +++ /dev/null @@ -1,15 +0,0 @@ -# SyncListResponseManagementEnum - -## Example Usage - -```typescript -import { SyncListResponseManagementEnum } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseManagementEnum = "auto"; -``` - -## Values - -```typescript -"auto" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsemanagementunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsemanagementunion.md deleted file mode 100644 index 580b016ea..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponsemanagementunion.md +++ /dev/null @@ -1,32 +0,0 @@ -# SyncListResponseManagementUnion - -Management permissions configuration for stack management access - - -## Supported Types - -### `models.SyncListResponseManagement1` - -```typescript -const value: models.SyncListResponseManagement1 = { - extend: {}, -}; -``` - -### `models.SyncListResponseManagement2` - -```typescript -const value: models.SyncListResponseManagement2 = { - override: { - "key": [], - "key1": [], - }, -}; -``` - -### `models.SyncListResponseManagementEnum` - -```typescript -const value: models.SyncListResponseManagementEnum = "auto"; -``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsenetworkunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsenetworkunion.md index a757d3adb..7c292d46f 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponsenetworkunion.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponsenetworkunion.md @@ -64,4 +64,3 @@ const value: models.SyncListResponseNetworkByoVnetAzure = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseoutputsunion.md b/client-sdks/platform/typescript/docs/models/synclistresponseoutputsunion.md index a2403ad09..5143b0289 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponseoutputsunion.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponseoutputsunion.md @@ -16,4 +16,3 @@ const value: models.SyncListResponseOutputs = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseoverride.md b/client-sdks/platform/typescript/docs/models/synclistresponseoverride.md deleted file mode 100644 index bdc4c6734..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseoverride.md +++ /dev/null @@ -1,23 +0,0 @@ -# SyncListResponseOverride - -A permission set that can be applied across different cloud platforms - -## Example Usage - -```typescript -import { SyncListResponseOverride } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseOverride = { - description: "singe excepting censor overcooked gee youthfully um including", - id: "", - platforms: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | -| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | -| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | -| `platforms` | [models.SyncListResponseOverridePlatforms](../models/synclistresponseoverrideplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideaw.md b/client-sdks/platform/typescript/docs/models/synclistresponseoverrideaw.md deleted file mode 100644 index 0f48bc470..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideaw.md +++ /dev/null @@ -1,24 +0,0 @@ -# SyncListResponseOverrideAw - -AWS-specific platform permission configuration - -## Example Usage - -```typescript -import { SyncListResponseOverrideAw } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseOverrideAw = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | -| `binding` | [models.SyncListResponseOverrideAwBinding](../models/synclistresponseoverrideawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `effect` | [models.SyncListResponseOverrideEffect](../models/synclistresponseoverrideeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | -| `grant` | [models.SyncListResponseOverrideAwGrant](../models/synclistresponseoverrideawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideawbinding.md b/client-sdks/platform/typescript/docs/models/synclistresponseoverrideawbinding.md deleted file mode 100644 index 6211e89c5..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideawbinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# SyncListResponseOverrideAwBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { SyncListResponseOverrideAwBinding } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseOverrideAwBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -| `resource` | [models.SyncListResponseOverrideAwResource](../models/synclistresponseoverrideawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | -| `stack` | [models.SyncListResponseOverrideAwStack](../models/synclistresponseoverrideawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideawgrant.md b/client-sdks/platform/typescript/docs/models/synclistresponseoverrideawgrant.md deleted file mode 100644 index ddffe3050..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideawgrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# SyncListResponseOverrideAwGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { SyncListResponseOverrideAwGrant } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseOverrideAwGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideawresource.md b/client-sdks/platform/typescript/docs/models/synclistresponseoverrideawresource.md deleted file mode 100644 index 006538549..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideawresource.md +++ /dev/null @@ -1,23 +0,0 @@ -# SyncListResponseOverrideAwResource - -AWS-specific binding specification - -## Example Usage - -```typescript -import { SyncListResponseOverrideAwResource } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseOverrideAwResource = { - resources: [ - "", - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | -| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideawstack.md b/client-sdks/platform/typescript/docs/models/synclistresponseoverrideawstack.md deleted file mode 100644 index 420e60090..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideawstack.md +++ /dev/null @@ -1,20 +0,0 @@ -# SyncListResponseOverrideAwStack - -AWS-specific binding specification - -## Example Usage - -```typescript -import { SyncListResponseOverrideAwStack } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseOverrideAwStack = { - resources: [], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | -| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideazure.md b/client-sdks/platform/typescript/docs/models/synclistresponseoverrideazure.md deleted file mode 100644 index 2eff38ca8..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideazure.md +++ /dev/null @@ -1,23 +0,0 @@ -# SyncListResponseOverrideAzure - -Azure-specific platform permission configuration - -## Example Usage - -```typescript -import { SyncListResponseOverrideAzure } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseOverrideAzure = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | -| `binding` | [models.SyncListResponseOverrideAzureBinding](../models/synclistresponseoverrideazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `grant` | [models.SyncListResponseOverrideAzureGrant](../models/synclistresponseoverrideazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideazurebinding.md b/client-sdks/platform/typescript/docs/models/synclistresponseoverrideazurebinding.md deleted file mode 100644 index 3cb01c11b..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideazurebinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# SyncListResponseOverrideAzureBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { SyncListResponseOverrideAzureBinding } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseOverrideAzureBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------- | -| `resource` | [models.SyncListResponseOverrideAzureResource](../models/synclistresponseoverrideazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | -| `stack` | [models.SyncListResponseOverrideAzureStack](../models/synclistresponseoverrideazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideazuregrant.md b/client-sdks/platform/typescript/docs/models/synclistresponseoverrideazuregrant.md deleted file mode 100644 index c14ac3a83..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideazuregrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# SyncListResponseOverrideAzureGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { SyncListResponseOverrideAzureGrant } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseOverrideAzureGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideazureresource.md b/client-sdks/platform/typescript/docs/models/synclistresponseoverrideazureresource.md deleted file mode 100644 index 6d01fc344..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideazureresource.md +++ /dev/null @@ -1,19 +0,0 @@ -# SyncListResponseOverrideAzureResource - -Azure-specific binding specification - -## Example Usage - -```typescript -import { SyncListResponseOverrideAzureResource } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseOverrideAzureResource = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideazurestack.md b/client-sdks/platform/typescript/docs/models/synclistresponseoverrideazurestack.md deleted file mode 100644 index 30fc35b69..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideazurestack.md +++ /dev/null @@ -1,19 +0,0 @@ -# SyncListResponseOverrideAzureStack - -Azure-specific binding specification - -## Example Usage - -```typescript -import { SyncListResponseOverrideAzureStack } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseOverrideAzureStack = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideconditionresource.md b/client-sdks/platform/typescript/docs/models/synclistresponseoverrideconditionresource.md deleted file mode 100644 index a511107ca..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideconditionresource.md +++ /dev/null @@ -1,21 +0,0 @@ -# SyncListResponseOverrideConditionResource - -GCP IAM condition - -## Example Usage - -```typescript -import { SyncListResponseOverrideConditionResource } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseOverrideConditionResource = { - expression: "", - title: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `expression` | *string* | :heavy_check_mark: | N/A | -| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideconditionstack.md b/client-sdks/platform/typescript/docs/models/synclistresponseoverrideconditionstack.md deleted file mode 100644 index aaa5905d1..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideconditionstack.md +++ /dev/null @@ -1,21 +0,0 @@ -# SyncListResponseOverrideConditionStack - -GCP IAM condition - -## Example Usage - -```typescript -import { SyncListResponseOverrideConditionStack } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseOverrideConditionStack = { - expression: "", - title: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `expression` | *string* | :heavy_check_mark: | N/A | -| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideeffect.md b/client-sdks/platform/typescript/docs/models/synclistresponseoverrideeffect.md deleted file mode 100644 index 0dbcfb1e3..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideeffect.md +++ /dev/null @@ -1,17 +0,0 @@ -# SyncListResponseOverrideEffect - -IAM effect. Defaults to Allow. - -## Example Usage - -```typescript -import { SyncListResponseOverrideEffect } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseOverrideEffect = "Allow"; -``` - -## Values - -```typescript -"Allow" | "Deny" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseoverridegcp.md b/client-sdks/platform/typescript/docs/models/synclistresponseoverridegcp.md deleted file mode 100644 index b7123593a..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseoverridegcp.md +++ /dev/null @@ -1,23 +0,0 @@ -# SyncListResponseOverrideGcp - -GCP-specific platform permission configuration - -## Example Usage - -```typescript -import { SyncListResponseOverrideGcp } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseOverrideGcp = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -| `binding` | [models.SyncListResponseOverrideGcpBinding](../models/synclistresponseoverridegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `grant` | [models.SyncListResponseOverrideGcpGrant](../models/synclistresponseoverridegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseoverridegcpbinding.md b/client-sdks/platform/typescript/docs/models/synclistresponseoverridegcpbinding.md deleted file mode 100644 index 4da417185..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseoverridegcpbinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# SyncListResponseOverrideGcpBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { SyncListResponseOverrideGcpBinding } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseOverrideGcpBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| `resource` | [models.SyncListResponseOverrideGcpResource](../models/synclistresponseoverridegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | -| `stack` | [models.SyncListResponseOverrideGcpStack](../models/synclistresponseoverridegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseoverridegcpgrant.md b/client-sdks/platform/typescript/docs/models/synclistresponseoverridegcpgrant.md deleted file mode 100644 index 35780b497..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseoverridegcpgrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# SyncListResponseOverrideGcpGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { SyncListResponseOverrideGcpGrant } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseOverrideGcpGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseoverridegcpresource.md b/client-sdks/platform/typescript/docs/models/synclistresponseoverridegcpresource.md deleted file mode 100644 index 41a7e7ab2..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseoverridegcpresource.md +++ /dev/null @@ -1,20 +0,0 @@ -# SyncListResponseOverrideGcpResource - -GCP-specific binding specification - -## Example Usage - -```typescript -import { SyncListResponseOverrideGcpResource } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseOverrideGcpResource = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | ------------------------------------------------------- | -| `condition` | *models.SyncListResponseOverrideResourceConditionUnion* | :heavy_minus_sign: | N/A | -| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseoverridegcpstack.md b/client-sdks/platform/typescript/docs/models/synclistresponseoverridegcpstack.md deleted file mode 100644 index 2a4a5f5db..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseoverridegcpstack.md +++ /dev/null @@ -1,20 +0,0 @@ -# SyncListResponseOverrideGcpStack - -GCP-specific binding specification - -## Example Usage - -```typescript -import { SyncListResponseOverrideGcpStack } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseOverrideGcpStack = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | ---------------------------------------------------- | -| `condition` | *models.SyncListResponseOverrideStackConditionUnion* | :heavy_minus_sign: | N/A | -| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideplatforms.md b/client-sdks/platform/typescript/docs/models/synclistresponseoverrideplatforms.md deleted file mode 100644 index 4012fdb16..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideplatforms.md +++ /dev/null @@ -1,19 +0,0 @@ -# SyncListResponseOverridePlatforms - -Platform-specific permission configurations - -## Example Usage - -```typescript -import { SyncListResponseOverridePlatforms } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseOverridePlatforms = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------ | -| `aws` | [models.SyncListResponseOverrideAw](../models/synclistresponseoverrideaw.md)[] | :heavy_minus_sign: | AWS permission configurations | -| `azure` | [models.SyncListResponseOverrideAzure](../models/synclistresponseoverrideazure.md)[] | :heavy_minus_sign: | Azure permission configurations | -| `gcp` | [models.SyncListResponseOverrideGcp](../models/synclistresponseoverridegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/synclistresponseoverrideresourceconditionunion.md deleted file mode 100644 index d639b1bd5..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideresourceconditionunion.md +++ /dev/null @@ -1,20 +0,0 @@ -# SyncListResponseOverrideResourceConditionUnion - - -## Supported Types - -### `models.SyncListResponseOverrideConditionResource` - -```typescript -const value: models.SyncListResponseOverrideConditionResource = { - expression: "", - title: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseoverridestackconditionunion.md b/client-sdks/platform/typescript/docs/models/synclistresponseoverridestackconditionunion.md deleted file mode 100644 index b79a2052b..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseoverridestackconditionunion.md +++ /dev/null @@ -1,20 +0,0 @@ -# SyncListResponseOverrideStackConditionUnion - - -## Supported Types - -### `models.SyncListResponseOverrideConditionStack` - -```typescript -const value: models.SyncListResponseOverrideConditionStack = { - expression: "", - title: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideunion.md b/client-sdks/platform/typescript/docs/models/synclistresponseoverrideunion.md deleted file mode 100644 index 3073ddc9a..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseoverrideunion.md +++ /dev/null @@ -1,23 +0,0 @@ -# SyncListResponseOverrideUnion - -Reference to a permission set - either by name or inline definition - - -## Supported Types - -### `models.SyncListResponseOverride` - -```typescript -const value: models.SyncListResponseOverride = { - description: "singe excepting censor overcooked gee youthfully um including", - id: "", - platforms: {}, -}; -``` - -### `string` - -```typescript -const value: string = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstack.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstack.md new file mode 100644 index 000000000..98cea5a96 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstack.md @@ -0,0 +1,38 @@ +# SyncListResponsePendingPreparedStack + +A bag of resources, unaware of any cloud. + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStack = { + id: "", + resources: { + "key": { + config: { + id: "", + type: "", + }, + dependencies: [ + { + id: "", + type: "", + }, + ], + lifecycle: "frozen", + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the stack | +| `inputs` | [models.SyncListResponsePendingPreparedStackInput](../models/synclistresponsependingpreparedstackinput.md)[] | :heavy_minus_sign: | Input definitions required before setup or deployment can proceed. | +| `permissions` | [models.SyncListResponsePendingPreparedStackPermissions](../models/synclistresponsependingpreparedstackpermissions.md) | :heavy_minus_sign: | Combined permissions configuration that contains both profiles and management | +| `resources` | Record | :heavy_check_mark: | Map of resource IDs to their configurations and lifecycle settings | +| `supportedPlatforms` | [models.SyncListResponsePendingPreparedStackSupportedPlatform](../models/synclistresponsependingpreparedstacksupportedplatform.md)[] | :heavy_minus_sign: | Which platforms this stack supports. When None, all platforms are supported. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackconfig.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackconfig.md new file mode 100644 index 000000000..b64851ea8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackconfig.md @@ -0,0 +1,22 @@ +# SyncListResponsePendingPreparedStackConfig + +Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackConfig } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackConfig = { + id: "", + type: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. | +| `type` | *string* | :heavy_check_mark: | Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. | +| `additionalProperties` | Record | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackdefaultboolean.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackdefaultboolean.md new file mode 100644 index 000000000..2bd851301 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackdefaultboolean.md @@ -0,0 +1,19 @@ +# SyncListResponsePendingPreparedStackDefaultBoolean + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackDefaultBoolean } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackDefaultBoolean = { + type: "boolean", + value: false, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| `type` | [models.SyncListResponsePendingPreparedStackTypeBoolean](../models/synclistresponsependingpreparedstacktypeboolean.md) | :heavy_check_mark: | N/A | +| `value` | *boolean* | :heavy_check_mark: | Boolean default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackdefaultnumber.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackdefaultnumber.md new file mode 100644 index 000000000..065164ad5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackdefaultnumber.md @@ -0,0 +1,19 @@ +# SyncListResponsePendingPreparedStackDefaultNumber + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackDefaultNumber } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackDefaultNumber = { + type: "number", + value: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `type` | [models.SyncListResponsePendingPreparedStackTypeNumber](../models/synclistresponsependingpreparedstacktypenumber.md) | :heavy_check_mark: | N/A | +| `value` | *string* | :heavy_check_mark: | Number default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackdefaultstring.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackdefaultstring.md new file mode 100644 index 000000000..6f4871798 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackdefaultstring.md @@ -0,0 +1,19 @@ +# SyncListResponsePendingPreparedStackDefaultString + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackDefaultString } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackDefaultString = { + type: "string", + value: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `type` | [models.SyncListResponsePendingPreparedStackTypeString](../models/synclistresponsependingpreparedstacktypestring.md) | :heavy_check_mark: | N/A | +| `value` | *string* | :heavy_check_mark: | String default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackdefaultstringlist.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackdefaultstringlist.md new file mode 100644 index 000000000..0aa88104b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackdefaultstringlist.md @@ -0,0 +1,22 @@ +# SyncListResponsePendingPreparedStackDefaultStringList + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackDefaultStringList } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackDefaultStringList = { + type: "stringList", + value: [ + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | +| `type` | [models.SyncListResponsePendingPreparedStackTypeStringList](../models/synclistresponsependingpreparedstacktypestringlist.md) | :heavy_check_mark: | N/A | +| `value` | *string*[] | :heavy_check_mark: | String list default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackdefaultunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackdefaultunion.md new file mode 100644 index 000000000..efa9b9fe6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackdefaultunion.md @@ -0,0 +1,49 @@ +# SyncListResponsePendingPreparedStackDefaultUnion + + +## Supported Types + +### `models.SyncListResponsePendingPreparedStackDefaultString` + +```typescript +const value: models.SyncListResponsePendingPreparedStackDefaultString = { + type: "string", + value: "", +}; +``` + +### `models.SyncListResponsePendingPreparedStackDefaultNumber` + +```typescript +const value: models.SyncListResponsePendingPreparedStackDefaultNumber = { + type: "number", + value: "", +}; +``` + +### `models.SyncListResponsePendingPreparedStackDefaultBoolean` + +```typescript +const value: models.SyncListResponsePendingPreparedStackDefaultBoolean = { + type: "boolean", + value: false, +}; +``` + +### `models.SyncListResponsePendingPreparedStackDefaultStringList` + +```typescript +const value: models.SyncListResponsePendingPreparedStackDefaultStringList = { + type: "stringList", + value: [ + "", + "", + ], +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackdependency.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackdependency.md new file mode 100644 index 000000000..8d19d11dd --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackdependency.md @@ -0,0 +1,21 @@ +# SyncListResponsePendingPreparedStackDependency + +Reference to a resource by its stable id and resource type. + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackDependency } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackDependency = { + id: "", + type: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | N/A | +| `type` | *string* | :heavy_check_mark: | Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackenv.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackenv.md new file mode 100644 index 000000000..35977c6c4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackenv.md @@ -0,0 +1,21 @@ +# SyncListResponsePendingPreparedStackEnv + +How a resolved stack input is injected into runtime environment variables. + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackEnv } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackEnv = { + name: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| `name` | *string* | :heavy_check_mark: | Environment variable name. | +| `targetResources` | *string*[] | :heavy_minus_sign: | Target resource IDs or patterns. None means every env-capable resource. | +| `type` | *models.SyncListResponsePendingPreparedStackTypeUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextend.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextend.md new file mode 100644 index 000000000..cd9ae179b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextend.md @@ -0,0 +1,24 @@ +# SyncListResponsePendingPreparedStackExtend + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackExtend } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackExtend = { + description: + "since miskey flimsy near ambitious pish though ignite accurate tooth", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.SyncListResponsePendingPreparedStackExtendPlatforms](../models/synclistresponsependingpreparedstackextendplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendaw.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendaw.md new file mode 100644 index 000000000..ccebfaf0b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendaw.md @@ -0,0 +1,24 @@ +# SyncListResponsePendingPreparedStackExtendAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackExtendAw } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackExtendAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.SyncListResponsePendingPreparedStackExtendAwBinding](../models/synclistresponsependingpreparedstackextendawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.SyncListResponsePendingPreparedStackExtendEffect](../models/synclistresponsependingpreparedstackextendeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.SyncListResponsePendingPreparedStackExtendAwGrant](../models/synclistresponsependingpreparedstackextendawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendawbinding.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendawbinding.md new file mode 100644 index 000000000..676145484 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendawbinding.md @@ -0,0 +1,18 @@ +# SyncListResponsePendingPreparedStackExtendAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackExtendAwBinding } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackExtendAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.SyncListResponsePendingPreparedStackExtendAwResource](../models/synclistresponsependingpreparedstackextendawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.SyncListResponsePendingPreparedStackExtendAwStack](../models/synclistresponsependingpreparedstackextendawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendawgrant.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendawgrant.md new file mode 100644 index 000000000..f49dadc7b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendawgrant.md @@ -0,0 +1,21 @@ +# SyncListResponsePendingPreparedStackExtendAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackExtendAwGrant } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackExtendAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendawresource.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendawresource.md new file mode 100644 index 000000000..eafa5d8ac --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendawresource.md @@ -0,0 +1,23 @@ +# SyncListResponsePendingPreparedStackExtendAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackExtendAwResource } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackExtendAwResource = { + resources: [ + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendawstack.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendawstack.md new file mode 100644 index 000000000..ee9ea6a3f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendawstack.md @@ -0,0 +1,22 @@ +# SyncListResponsePendingPreparedStackExtendAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackExtendAwStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackExtendAwStack = { + resources: [ + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendazure.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendazure.md new file mode 100644 index 000000000..3377fb68d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendazure.md @@ -0,0 +1,23 @@ +# SyncListResponsePendingPreparedStackExtendAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackExtendAzure } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackExtendAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.SyncListResponsePendingPreparedStackExtendAzureBinding](../models/synclistresponsependingpreparedstackextendazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncListResponsePendingPreparedStackExtendAzureGrant](../models/synclistresponsependingpreparedstackextendazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendazurebinding.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendazurebinding.md new file mode 100644 index 000000000..841f37385 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendazurebinding.md @@ -0,0 +1,18 @@ +# SyncListResponsePendingPreparedStackExtendAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackExtendAzureBinding } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackExtendAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.SyncListResponsePendingPreparedStackExtendAzureResource](../models/synclistresponsependingpreparedstackextendazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.SyncListResponsePendingPreparedStackExtendAzureStack](../models/synclistresponsependingpreparedstackextendazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendazuregrant.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendazuregrant.md new file mode 100644 index 000000000..ee367cf94 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendazuregrant.md @@ -0,0 +1,21 @@ +# SyncListResponsePendingPreparedStackExtendAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackExtendAzureGrant } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackExtendAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendazureresource.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendazureresource.md new file mode 100644 index 000000000..ea5f28cb1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendazureresource.md @@ -0,0 +1,19 @@ +# SyncListResponsePendingPreparedStackExtendAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackExtendAzureResource } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackExtendAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendazurestack.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendazurestack.md new file mode 100644 index 000000000..4ea9fcc6f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendazurestack.md @@ -0,0 +1,19 @@ +# SyncListResponsePendingPreparedStackExtendAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackExtendAzureStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackExtendAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendconditionresource.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendconditionresource.md new file mode 100644 index 000000000..58c05983a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendconditionresource.md @@ -0,0 +1,21 @@ +# SyncListResponsePendingPreparedStackExtendConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackExtendConditionResource } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackExtendConditionResource = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendconditionstack.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendconditionstack.md new file mode 100644 index 000000000..479a3536c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendconditionstack.md @@ -0,0 +1,21 @@ +# SyncListResponsePendingPreparedStackExtendConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackExtendConditionStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackExtendConditionStack = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendeffect.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendeffect.md new file mode 100644 index 000000000..f2a860698 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendeffect.md @@ -0,0 +1,17 @@ +# SyncListResponsePendingPreparedStackExtendEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackExtendEffect } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackExtendEffect = "Deny"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendgcp.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendgcp.md new file mode 100644 index 000000000..540f947d4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendgcp.md @@ -0,0 +1,23 @@ +# SyncListResponsePendingPreparedStackExtendGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackExtendGcp } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackExtendGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncListResponsePendingPreparedStackExtendGcpBinding](../models/synclistresponsependingpreparedstackextendgcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncListResponsePendingPreparedStackExtendGcpGrant](../models/synclistresponsependingpreparedstackextendgcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendgcpbinding.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendgcpbinding.md new file mode 100644 index 000000000..19f58a2c5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendgcpbinding.md @@ -0,0 +1,18 @@ +# SyncListResponsePendingPreparedStackExtendGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackExtendGcpBinding } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackExtendGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.SyncListResponsePendingPreparedStackExtendGcpResource](../models/synclistresponsependingpreparedstackextendgcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.SyncListResponsePendingPreparedStackExtendGcpStack](../models/synclistresponsependingpreparedstackextendgcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendgcpgrant.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendgcpgrant.md new file mode 100644 index 000000000..d8d0703b4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendgcpgrant.md @@ -0,0 +1,21 @@ +# SyncListResponsePendingPreparedStackExtendGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackExtendGcpGrant } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackExtendGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendgcpresource.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendgcpresource.md new file mode 100644 index 000000000..de3fa8d10 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendgcpresource.md @@ -0,0 +1,20 @@ +# SyncListResponsePendingPreparedStackExtendGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackExtendGcpResource } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackExtendGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | ------------------------------------------------------------------------- | +| `condition` | *models.SyncListResponsePendingPreparedStackExtendResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendgcpstack.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendgcpstack.md new file mode 100644 index 000000000..61d8e51aa --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendgcpstack.md @@ -0,0 +1,20 @@ +# SyncListResponsePendingPreparedStackExtendGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackExtendGcpStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackExtendGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | ---------------------------------------------------------------------- | +| `condition` | *models.SyncListResponsePendingPreparedStackExtendStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendplatforms.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendplatforms.md new file mode 100644 index 000000000..ab3768f54 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendplatforms.md @@ -0,0 +1,19 @@ +# SyncListResponsePendingPreparedStackExtendPlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackExtendPlatforms } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackExtendPlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| `aws` | [models.SyncListResponsePendingPreparedStackExtendAw](../models/synclistresponsependingpreparedstackextendaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.SyncListResponsePendingPreparedStackExtendAzure](../models/synclistresponsependingpreparedstackextendazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.SyncListResponsePendingPreparedStackExtendGcp](../models/synclistresponsependingpreparedstackextendgcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendresourceconditionunion.md new file mode 100644 index 000000000..50d4ecb58 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendresourceconditionunion.md @@ -0,0 +1,20 @@ +# SyncListResponsePendingPreparedStackExtendResourceConditionUnion + + +## Supported Types + +### `models.SyncListResponsePendingPreparedStackExtendConditionResource` + +```typescript +const value: + models.SyncListResponsePendingPreparedStackExtendConditionResource = { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendstackconditionunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendstackconditionunion.md new file mode 100644 index 000000000..023c34e90 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendstackconditionunion.md @@ -0,0 +1,19 @@ +# SyncListResponsePendingPreparedStackExtendStackConditionUnion + + +## Supported Types + +### `models.SyncListResponsePendingPreparedStackExtendConditionStack` + +```typescript +const value: models.SyncListResponsePendingPreparedStackExtendConditionStack = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendunion.md new file mode 100644 index 000000000..765b2b5e6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackextendunion.md @@ -0,0 +1,23 @@ +# SyncListResponsePendingPreparedStackExtendUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.SyncListResponsePendingPreparedStackExtend` + +```typescript +const value: models.SyncListResponsePendingPreparedStackExtend = { + description: + "since miskey flimsy near ambitious pish though ignite accurate tooth", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackinput.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackinput.md new file mode 100644 index 000000000..fa42cddeb --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackinput.md @@ -0,0 +1,34 @@ +# SyncListResponsePendingPreparedStackInput + +Stack input definition serialized into a release stack. + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackInput } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackInput = { + description: "and ack twine absent plus", + id: "", + kind: "enum", + label: "", + providedBy: [], + required: false, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| `default` | *models.SyncListResponsePendingPreparedStackDefaultUnion* | :heavy_minus_sign: | N/A | +| `description` | *string* | :heavy_check_mark: | Human-facing helper text. | +| `env` | [models.SyncListResponsePendingPreparedStackEnv](../models/synclistresponsependingpreparedstackenv.md)[] | :heavy_minus_sign: | Runtime env-var mappings for v1 input resolution. | +| `id` | *string* | :heavy_check_mark: | Stable input ID used by CLI/API calls. | +| `kind` | [models.SyncListResponsePendingPreparedStackKind](../models/synclistresponsependingpreparedstackkind.md) | :heavy_check_mark: | Primitive stack input kind. | +| `label` | *string* | :heavy_check_mark: | Human-facing field label. | +| `placeholder` | *string* | :heavy_minus_sign: | Example placeholder shown in UI. | +| `platforms` | [models.SyncListResponsePendingPreparedStackPlatform](../models/synclistresponsependingpreparedstackplatform.md)[] | :heavy_minus_sign: | Platforms where this input applies. | +| `providedBy` | [models.SyncListResponsePendingPreparedStackProvidedBy](../models/synclistresponsependingpreparedstackprovidedby.md)[] | :heavy_check_mark: | Who can provide this value. | +| `required` | *boolean* | :heavy_check_mark: | Whether a resolved value is required before deployment can proceed. | +| `validation` | *models.SyncListResponsePendingPreparedStackValidationUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackkind.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackkind.md new file mode 100644 index 000000000..23ab8a81e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackkind.md @@ -0,0 +1,17 @@ +# SyncListResponsePendingPreparedStackKind + +Primitive stack input kind. + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackKind } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackKind = "secret"; +``` + +## Values + +```typescript +"string" | "secret" | "number" | "integer" | "boolean" | "enum" | "stringList" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstacklifecycle.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstacklifecycle.md new file mode 100644 index 000000000..aa9399061 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstacklifecycle.md @@ -0,0 +1,17 @@ +# SyncListResponsePendingPreparedStackLifecycle + +Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackLifecycle } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackLifecycle = "live"; +``` + +## Values + +```typescript +"frozen" | "live" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackmanagement1.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackmanagement1.md new file mode 100644 index 000000000..1ea565861 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackmanagement1.md @@ -0,0 +1,35 @@ +# SyncListResponsePendingPreparedStackManagement1 + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackManagement1 } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackManagement1 = { + extend: { + "key": [ + { + description: "alongside however generously ick teammate for", + id: "", + platforms: {}, + }, + ], + "key1": [ + "", + ], + "key2": [ + { + description: "alongside however generously ick teammate for", + id: "", + platforms: {}, + }, + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `extend` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackmanagement2.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackmanagement2.md new file mode 100644 index 000000000..d1fdaa1a6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackmanagement2.md @@ -0,0 +1,22 @@ +# SyncListResponsePendingPreparedStackManagement2 + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackManagement2 } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackManagement2 = { + override: { + "key": [], + "key1": [ + "", + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `override` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackmanagementenum.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackmanagementenum.md new file mode 100644 index 000000000..4002de3b8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackmanagementenum.md @@ -0,0 +1,15 @@ +# SyncListResponsePendingPreparedStackManagementEnum + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackManagementEnum } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackManagementEnum = "auto"; +``` + +## Values + +```typescript +"auto" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackmanagementunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackmanagementunion.md new file mode 100644 index 000000000..5da377da5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackmanagementunion.md @@ -0,0 +1,51 @@ +# SyncListResponsePendingPreparedStackManagementUnion + +Management permissions configuration for stack management access + + +## Supported Types + +### `models.SyncListResponsePendingPreparedStackManagement1` + +```typescript +const value: models.SyncListResponsePendingPreparedStackManagement1 = { + extend: { + "key": [ + { + description: "alongside however generously ick teammate for", + id: "", + platforms: {}, + }, + ], + "key1": [ + "", + ], + "key2": [ + { + description: "alongside however generously ick teammate for", + id: "", + platforms: {}, + }, + ], + }, +}; +``` + +### `models.SyncListResponsePendingPreparedStackManagement2` + +```typescript +const value: models.SyncListResponsePendingPreparedStackManagement2 = { + override: { + "key": [], + "key1": [ + "", + ], + }, +}; +``` + +### `models.SyncListResponsePendingPreparedStackManagementEnum` + +```typescript +const value: models.SyncListResponsePendingPreparedStackManagementEnum = "auto"; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverride.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverride.md new file mode 100644 index 000000000..d3a99be04 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverride.md @@ -0,0 +1,23 @@ +# SyncListResponsePendingPreparedStackOverride + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackOverride } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackOverride = { + description: "as ack duh", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.SyncListResponsePendingPreparedStackOverridePlatforms](../models/synclistresponsependingpreparedstackoverrideplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideaw.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideaw.md new file mode 100644 index 000000000..cac6a93f1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideaw.md @@ -0,0 +1,24 @@ +# SyncListResponsePendingPreparedStackOverrideAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackOverrideAw } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackOverrideAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncListResponsePendingPreparedStackOverrideAwBinding](../models/synclistresponsependingpreparedstackoverrideawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.SyncListResponsePendingPreparedStackOverrideEffect](../models/synclistresponsependingpreparedstackoverrideeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.SyncListResponsePendingPreparedStackOverrideAwGrant](../models/synclistresponsependingpreparedstackoverrideawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideawbinding.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideawbinding.md new file mode 100644 index 000000000..ed6beaa28 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideawbinding.md @@ -0,0 +1,18 @@ +# SyncListResponsePendingPreparedStackOverrideAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackOverrideAwBinding } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackOverrideAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.SyncListResponsePendingPreparedStackOverrideAwResource](../models/synclistresponsependingpreparedstackoverrideawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.SyncListResponsePendingPreparedStackOverrideAwStack](../models/synclistresponsependingpreparedstackoverrideawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideawgrant.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideawgrant.md new file mode 100644 index 000000000..897f3da0f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideawgrant.md @@ -0,0 +1,21 @@ +# SyncListResponsePendingPreparedStackOverrideAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackOverrideAwGrant } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackOverrideAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideawresource.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideawresource.md new file mode 100644 index 000000000..45de3977c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideawresource.md @@ -0,0 +1,24 @@ +# SyncListResponsePendingPreparedStackOverrideAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackOverrideAwResource } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackOverrideAwResource = { + resources: [ + "", + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideawstack.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideawstack.md new file mode 100644 index 000000000..2d3b29759 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideawstack.md @@ -0,0 +1,20 @@ +# SyncListResponsePendingPreparedStackOverrideAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackOverrideAwStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackOverrideAwStack = { + resources: [], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideazure.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideazure.md new file mode 100644 index 000000000..989322e74 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideazure.md @@ -0,0 +1,23 @@ +# SyncListResponsePendingPreparedStackOverrideAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackOverrideAzure } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackOverrideAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncListResponsePendingPreparedStackOverrideAzureBinding](../models/synclistresponsependingpreparedstackoverrideazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncListResponsePendingPreparedStackOverrideAzureGrant](../models/synclistresponsependingpreparedstackoverrideazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideazurebinding.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideazurebinding.md new file mode 100644 index 000000000..e0d4e6630 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideazurebinding.md @@ -0,0 +1,18 @@ +# SyncListResponsePendingPreparedStackOverrideAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackOverrideAzureBinding } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackOverrideAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.SyncListResponsePendingPreparedStackOverrideAzureResource](../models/synclistresponsependingpreparedstackoverrideazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.SyncListResponsePendingPreparedStackOverrideAzureStack](../models/synclistresponsependingpreparedstackoverrideazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideazuregrant.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideazuregrant.md new file mode 100644 index 000000000..9cf579c5f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideazuregrant.md @@ -0,0 +1,21 @@ +# SyncListResponsePendingPreparedStackOverrideAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackOverrideAzureGrant } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackOverrideAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideazureresource.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideazureresource.md new file mode 100644 index 000000000..6977f47ef --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideazureresource.md @@ -0,0 +1,19 @@ +# SyncListResponsePendingPreparedStackOverrideAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackOverrideAzureResource } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackOverrideAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideazurestack.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideazurestack.md new file mode 100644 index 000000000..f32bfd7fb --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideazurestack.md @@ -0,0 +1,19 @@ +# SyncListResponsePendingPreparedStackOverrideAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackOverrideAzureStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackOverrideAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideconditionresource.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideconditionresource.md new file mode 100644 index 000000000..5b3f164c6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideconditionresource.md @@ -0,0 +1,21 @@ +# SyncListResponsePendingPreparedStackOverrideConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackOverrideConditionResource } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackOverrideConditionResource = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideconditionstack.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideconditionstack.md new file mode 100644 index 000000000..55ac71c17 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideconditionstack.md @@ -0,0 +1,21 @@ +# SyncListResponsePendingPreparedStackOverrideConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackOverrideConditionStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackOverrideConditionStack = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideeffect.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideeffect.md new file mode 100644 index 000000000..79d294913 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideeffect.md @@ -0,0 +1,17 @@ +# SyncListResponsePendingPreparedStackOverrideEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackOverrideEffect } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackOverrideEffect = "Allow"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverridegcp.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverridegcp.md new file mode 100644 index 000000000..532931ffc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverridegcp.md @@ -0,0 +1,23 @@ +# SyncListResponsePendingPreparedStackOverrideGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackOverrideGcp } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackOverrideGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.SyncListResponsePendingPreparedStackOverrideGcpBinding](../models/synclistresponsependingpreparedstackoverridegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncListResponsePendingPreparedStackOverrideGcpGrant](../models/synclistresponsependingpreparedstackoverridegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverridegcpbinding.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverridegcpbinding.md new file mode 100644 index 000000000..40e6fcd06 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverridegcpbinding.md @@ -0,0 +1,18 @@ +# SyncListResponsePendingPreparedStackOverrideGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackOverrideGcpBinding } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackOverrideGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.SyncListResponsePendingPreparedStackOverrideGcpResource](../models/synclistresponsependingpreparedstackoverridegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.SyncListResponsePendingPreparedStackOverrideGcpStack](../models/synclistresponsependingpreparedstackoverridegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverridegcpgrant.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverridegcpgrant.md new file mode 100644 index 000000000..9cfd6a19a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverridegcpgrant.md @@ -0,0 +1,21 @@ +# SyncListResponsePendingPreparedStackOverrideGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackOverrideGcpGrant } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackOverrideGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverridegcpresource.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverridegcpresource.md new file mode 100644 index 000000000..1b0b9bc51 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverridegcpresource.md @@ -0,0 +1,20 @@ +# SyncListResponsePendingPreparedStackOverrideGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackOverrideGcpResource } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackOverrideGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | +| `condition` | *models.SyncListResponsePendingPreparedStackOverrideResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverridegcpstack.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverridegcpstack.md new file mode 100644 index 000000000..eb1f21470 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverridegcpstack.md @@ -0,0 +1,20 @@ +# SyncListResponsePendingPreparedStackOverrideGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackOverrideGcpStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackOverrideGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | +| `condition` | *models.SyncListResponsePendingPreparedStackOverrideStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideplatforms.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideplatforms.md new file mode 100644 index 000000000..abbaa48c8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideplatforms.md @@ -0,0 +1,19 @@ +# SyncListResponsePendingPreparedStackOverridePlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackOverridePlatforms } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackOverridePlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | +| `aws` | [models.SyncListResponsePendingPreparedStackOverrideAw](../models/synclistresponsependingpreparedstackoverrideaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.SyncListResponsePendingPreparedStackOverrideAzure](../models/synclistresponsependingpreparedstackoverrideazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.SyncListResponsePendingPreparedStackOverrideGcp](../models/synclistresponsependingpreparedstackoverridegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideresourceconditionunion.md new file mode 100644 index 000000000..6114cbcfb --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideresourceconditionunion.md @@ -0,0 +1,20 @@ +# SyncListResponsePendingPreparedStackOverrideResourceConditionUnion + + +## Supported Types + +### `models.SyncListResponsePendingPreparedStackOverrideConditionResource` + +```typescript +const value: + models.SyncListResponsePendingPreparedStackOverrideConditionResource = { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverridestackconditionunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverridestackconditionunion.md new file mode 100644 index 000000000..376335683 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverridestackconditionunion.md @@ -0,0 +1,20 @@ +# SyncListResponsePendingPreparedStackOverrideStackConditionUnion + + +## Supported Types + +### `models.SyncListResponsePendingPreparedStackOverrideConditionStack` + +```typescript +const value: models.SyncListResponsePendingPreparedStackOverrideConditionStack = + { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideunion.md new file mode 100644 index 000000000..654f45db0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackoverrideunion.md @@ -0,0 +1,22 @@ +# SyncListResponsePendingPreparedStackOverrideUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.SyncListResponsePendingPreparedStackOverride` + +```typescript +const value: models.SyncListResponsePendingPreparedStackOverride = { + description: "as ack duh", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackpermissions.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackpermissions.md new file mode 100644 index 000000000..ef787c09f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackpermissions.md @@ -0,0 +1,25 @@ +# SyncListResponsePendingPreparedStackPermissions + +Combined permissions configuration that contains both profiles and management + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackPermissions } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackPermissions = { + profiles: { + "key": { + "key": [], + }, + "key1": {}, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `management` | *models.SyncListResponsePendingPreparedStackManagementUnion* | :heavy_minus_sign: | Management permissions configuration for stack management access | +| `profiles` | Record> | :heavy_check_mark: | Permission profiles that define access control for compute services
Key is the profile name, value is the permission configuration | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackplatform.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackplatform.md new file mode 100644 index 000000000..5fdf1eda2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackplatform.md @@ -0,0 +1,17 @@ +# SyncListResponsePendingPreparedStackPlatform + +Represents the target cloud platform. + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackPlatform } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackPlatform = "azure"; +``` + +## Values + +```typescript +"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofile.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofile.md new file mode 100644 index 000000000..c0f0e866b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofile.md @@ -0,0 +1,24 @@ +# SyncListResponsePendingPreparedStackProfile + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackProfile } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackProfile = { + description: + "whereas spectacles er late seldom absentmindedly experienced where", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.SyncListResponsePendingPreparedStackProfilePlatforms](../models/synclistresponsependingpreparedstackprofileplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileaw.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileaw.md new file mode 100644 index 000000000..7f8aafaa6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileaw.md @@ -0,0 +1,24 @@ +# SyncListResponsePendingPreparedStackProfileAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackProfileAw } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackProfileAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncListResponsePendingPreparedStackProfileAwBinding](../models/synclistresponsependingpreparedstackprofileawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.SyncListResponsePendingPreparedStackProfileEffect](../models/synclistresponsependingpreparedstackprofileeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.SyncListResponsePendingPreparedStackProfileAwGrant](../models/synclistresponsependingpreparedstackprofileawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileawbinding.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileawbinding.md new file mode 100644 index 000000000..a06df7c44 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileawbinding.md @@ -0,0 +1,18 @@ +# SyncListResponsePendingPreparedStackProfileAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackProfileAwBinding } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackProfileAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.SyncListResponsePendingPreparedStackProfileAwResource](../models/synclistresponsependingpreparedstackprofileawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.SyncListResponsePendingPreparedStackProfileAwStack](../models/synclistresponsependingpreparedstackprofileawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileawgrant.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileawgrant.md new file mode 100644 index 000000000..92383b9d1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileawgrant.md @@ -0,0 +1,21 @@ +# SyncListResponsePendingPreparedStackProfileAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackProfileAwGrant } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackProfileAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileawresource.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileawresource.md new file mode 100644 index 000000000..a1e6ba562 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileawresource.md @@ -0,0 +1,23 @@ +# SyncListResponsePendingPreparedStackProfileAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackProfileAwResource } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackProfileAwResource = { + resources: [ + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileawstack.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileawstack.md new file mode 100644 index 000000000..5641a0795 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileawstack.md @@ -0,0 +1,20 @@ +# SyncListResponsePendingPreparedStackProfileAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackProfileAwStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackProfileAwStack = { + resources: [], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileazure.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileazure.md new file mode 100644 index 000000000..21469a5fd --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileazure.md @@ -0,0 +1,23 @@ +# SyncListResponsePendingPreparedStackProfileAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackProfileAzure } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackProfileAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncListResponsePendingPreparedStackProfileAzureBinding](../models/synclistresponsependingpreparedstackprofileazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncListResponsePendingPreparedStackProfileAzureGrant](../models/synclistresponsependingpreparedstackprofileazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileazurebinding.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileazurebinding.md new file mode 100644 index 000000000..1cd643e22 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileazurebinding.md @@ -0,0 +1,18 @@ +# SyncListResponsePendingPreparedStackProfileAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackProfileAzureBinding } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackProfileAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.SyncListResponsePendingPreparedStackProfileAzureResource](../models/synclistresponsependingpreparedstackprofileazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.SyncListResponsePendingPreparedStackProfileAzureStack](../models/synclistresponsependingpreparedstackprofileazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileazuregrant.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileazuregrant.md new file mode 100644 index 000000000..32e3897b3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileazuregrant.md @@ -0,0 +1,21 @@ +# SyncListResponsePendingPreparedStackProfileAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackProfileAzureGrant } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackProfileAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileazureresource.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileazureresource.md new file mode 100644 index 000000000..d704640e2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileazureresource.md @@ -0,0 +1,19 @@ +# SyncListResponsePendingPreparedStackProfileAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackProfileAzureResource } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackProfileAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileazurestack.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileazurestack.md new file mode 100644 index 000000000..91e7d5feb --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileazurestack.md @@ -0,0 +1,19 @@ +# SyncListResponsePendingPreparedStackProfileAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackProfileAzureStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackProfileAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileconditionresource.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileconditionresource.md new file mode 100644 index 000000000..9edf4c244 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileconditionresource.md @@ -0,0 +1,21 @@ +# SyncListResponsePendingPreparedStackProfileConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackProfileConditionResource } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackProfileConditionResource = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileconditionstack.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileconditionstack.md new file mode 100644 index 000000000..9b5786900 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileconditionstack.md @@ -0,0 +1,21 @@ +# SyncListResponsePendingPreparedStackProfileConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackProfileConditionStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackProfileConditionStack = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileeffect.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileeffect.md new file mode 100644 index 000000000..d44887463 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileeffect.md @@ -0,0 +1,17 @@ +# SyncListResponsePendingPreparedStackProfileEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackProfileEffect } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackProfileEffect = "Allow"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofilegcp.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofilegcp.md new file mode 100644 index 000000000..b8dfd20be --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofilegcp.md @@ -0,0 +1,23 @@ +# SyncListResponsePendingPreparedStackProfileGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackProfileGcp } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackProfileGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncListResponsePendingPreparedStackProfileGcpBinding](../models/synclistresponsependingpreparedstackprofilegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncListResponsePendingPreparedStackProfileGcpGrant](../models/synclistresponsependingpreparedstackprofilegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofilegcpbinding.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofilegcpbinding.md new file mode 100644 index 000000000..a55b9a0b2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofilegcpbinding.md @@ -0,0 +1,18 @@ +# SyncListResponsePendingPreparedStackProfileGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackProfileGcpBinding } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackProfileGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.SyncListResponsePendingPreparedStackProfileGcpResource](../models/synclistresponsependingpreparedstackprofilegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.SyncListResponsePendingPreparedStackProfileGcpStack](../models/synclistresponsependingpreparedstackprofilegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofilegcpgrant.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofilegcpgrant.md new file mode 100644 index 000000000..fe33f855f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofilegcpgrant.md @@ -0,0 +1,21 @@ +# SyncListResponsePendingPreparedStackProfileGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackProfileGcpGrant } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackProfileGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofilegcpresource.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofilegcpresource.md new file mode 100644 index 000000000..12b201bc7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofilegcpresource.md @@ -0,0 +1,20 @@ +# SyncListResponsePendingPreparedStackProfileGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackProfileGcpResource } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackProfileGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `condition` | *models.SyncListResponsePendingPreparedStackProfileResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofilegcpstack.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofilegcpstack.md new file mode 100644 index 000000000..64d4f1333 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofilegcpstack.md @@ -0,0 +1,20 @@ +# SyncListResponsePendingPreparedStackProfileGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackProfileGcpStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackProfileGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| `condition` | *models.SyncListResponsePendingPreparedStackProfileStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileplatforms.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileplatforms.md new file mode 100644 index 000000000..b5de6e467 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileplatforms.md @@ -0,0 +1,19 @@ +# SyncListResponsePendingPreparedStackProfilePlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackProfilePlatforms } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackProfilePlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| `aws` | [models.SyncListResponsePendingPreparedStackProfileAw](../models/synclistresponsependingpreparedstackprofileaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.SyncListResponsePendingPreparedStackProfileAzure](../models/synclistresponsependingpreparedstackprofileazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.SyncListResponsePendingPreparedStackProfileGcp](../models/synclistresponsependingpreparedstackprofilegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileresourceconditionunion.md new file mode 100644 index 000000000..c13065a2c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileresourceconditionunion.md @@ -0,0 +1,20 @@ +# SyncListResponsePendingPreparedStackProfileResourceConditionUnion + + +## Supported Types + +### `models.SyncListResponsePendingPreparedStackProfileConditionResource` + +```typescript +const value: + models.SyncListResponsePendingPreparedStackProfileConditionResource = { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofilestackconditionunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofilestackconditionunion.md new file mode 100644 index 000000000..61ef8f8ba --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofilestackconditionunion.md @@ -0,0 +1,20 @@ +# SyncListResponsePendingPreparedStackProfileStackConditionUnion + + +## Supported Types + +### `models.SyncListResponsePendingPreparedStackProfileConditionStack` + +```typescript +const value: models.SyncListResponsePendingPreparedStackProfileConditionStack = + { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileunion.md new file mode 100644 index 000000000..9bc0678cf --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprofileunion.md @@ -0,0 +1,23 @@ +# SyncListResponsePendingPreparedStackProfileUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.SyncListResponsePendingPreparedStackProfile` + +```typescript +const value: models.SyncListResponsePendingPreparedStackProfile = { + description: + "whereas spectacles er late seldom absentmindedly experienced where", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprovidedby.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprovidedby.md new file mode 100644 index 000000000..1ecf00f7a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackprovidedby.md @@ -0,0 +1,17 @@ +# SyncListResponsePendingPreparedStackProvidedBy + +Who can provide a stack input value. + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackProvidedBy } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackProvidedBy = "developer"; +``` + +## Values + +```typescript +"developer" | "deployer" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackresources.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackresources.md new file mode 100644 index 000000000..1e0b90de3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackresources.md @@ -0,0 +1,26 @@ +# SyncListResponsePendingPreparedStackResources + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackResources } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackResources = { + config: { + id: "", + type: "", + }, + dependencies: [], + lifecycle: "frozen", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `config` | [models.SyncListResponsePendingPreparedStackConfig](../models/synclistresponsependingpreparedstackconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | +| `dependencies` | [models.SyncListResponsePendingPreparedStackDependency](../models/synclistresponsependingpreparedstackdependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | +| `enabledWhen` | *string* | :heavy_minus_sign: | Id of the boolean stack input that decides whether this resource is
created at all. `None` means always create it.

Set by `.enabled(input)` in the SDK. Setup emitters render the resource
conditionally on the matching template variable, so a deployer who says no
never gets the resource, its outputs, or anything derived from it. | +| `lifecycle` | [models.SyncListResponsePendingPreparedStackLifecycle](../models/synclistresponsependingpreparedstacklifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | +| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstacksupportedplatform.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstacksupportedplatform.md new file mode 100644 index 000000000..46b04d63e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstacksupportedplatform.md @@ -0,0 +1,17 @@ +# SyncListResponsePendingPreparedStackSupportedPlatform + +Represents the target cloud platform. + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackSupportedPlatform } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackSupportedPlatform = "kubernetes"; +``` + +## Values + +```typescript +"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstacktypeboolean.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstacktypeboolean.md new file mode 100644 index 000000000..0a001b257 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstacktypeboolean.md @@ -0,0 +1,15 @@ +# SyncListResponsePendingPreparedStackTypeBoolean + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackTypeBoolean } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackTypeBoolean = "boolean"; +``` + +## Values + +```typescript +"boolean" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstacktypeenvenum.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstacktypeenvenum.md new file mode 100644 index 000000000..7b3ff275d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstacktypeenvenum.md @@ -0,0 +1,17 @@ +# SyncListResponsePendingPreparedStackTypeEnvEnum + +Environment variable handling for a stack input mapping. + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackTypeEnvEnum } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackTypeEnvEnum = "plain"; +``` + +## Values + +```typescript +"plain" | "secret" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstacktypenumber.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstacktypenumber.md new file mode 100644 index 000000000..e0a734081 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstacktypenumber.md @@ -0,0 +1,15 @@ +# SyncListResponsePendingPreparedStackTypeNumber + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackTypeNumber } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackTypeNumber = "number"; +``` + +## Values + +```typescript +"number" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstacktypestring.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstacktypestring.md new file mode 100644 index 000000000..7125a3eda --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstacktypestring.md @@ -0,0 +1,15 @@ +# SyncListResponsePendingPreparedStackTypeString + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackTypeString } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackTypeString = "string"; +``` + +## Values + +```typescript +"string" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstacktypestringlist.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstacktypestringlist.md new file mode 100644 index 000000000..e22c7cdfc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstacktypestringlist.md @@ -0,0 +1,15 @@ +# SyncListResponsePendingPreparedStackTypeStringList + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackTypeStringList } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackTypeStringList = "stringList"; +``` + +## Values + +```typescript +"stringList" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstacktypeunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstacktypeunion.md new file mode 100644 index 000000000..6a6420f4a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstacktypeunion.md @@ -0,0 +1,16 @@ +# SyncListResponsePendingPreparedStackTypeUnion + + +## Supported Types + +### `models.SyncListResponsePendingPreparedStackTypeEnvEnum` + +```typescript +const value: models.SyncListResponsePendingPreparedStackTypeEnvEnum = "secret"; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackunion.md new file mode 100644 index 000000000..953854b38 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackunion.md @@ -0,0 +1,33 @@ +# SyncListResponsePendingPreparedStackUnion + + +## Supported Types + +### `models.SyncListResponsePendingPreparedStack` + +```typescript +const value: models.SyncListResponsePendingPreparedStack = { + id: "", + resources: { + "key": { + config: { + id: "", + type: "", + }, + dependencies: [ + { + id: "", + type: "", + }, + ], + lifecycle: "frozen", + }, + }, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackvalidation.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackvalidation.md new file mode 100644 index 000000000..4d8b01589 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackvalidation.md @@ -0,0 +1,25 @@ +# SyncListResponsePendingPreparedStackValidation + +Portable stack input validation constraints. + +## Example Usage + +```typescript +import { SyncListResponsePendingPreparedStackValidation } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePendingPreparedStackValidation = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `format` | *string* | :heavy_minus_sign: | Semantic format hint such as url. | +| `max` | *string* | :heavy_minus_sign: | Maximum number. | +| `maxItems` | *number* | :heavy_minus_sign: | Maximum string-list items. | +| `maxLength` | *number* | :heavy_minus_sign: | Maximum string length. | +| `min` | *string* | :heavy_minus_sign: | Minimum number. | +| `minItems` | *number* | :heavy_minus_sign: | Minimum string-list items. | +| `minLength` | *number* | :heavy_minus_sign: | Minimum string length. | +| `pattern` | *string* | :heavy_minus_sign: | Portable whole-value regex pattern. | +| `values` | *string*[] | :heavy_minus_sign: | Allowed string enum values. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackvalidationunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackvalidationunion.md new file mode 100644 index 000000000..e9ba04b24 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsependingpreparedstackvalidationunion.md @@ -0,0 +1,16 @@ +# SyncListResponsePendingPreparedStackValidationUnion + + +## Supported Types + +### `models.SyncListResponsePendingPreparedStackValidation` + +```typescript +const value: models.SyncListResponsePendingPreparedStackValidation = {}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepermissions.md b/client-sdks/platform/typescript/docs/models/synclistresponsepermissions.md deleted file mode 100644 index bd5a95021..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponsepermissions.md +++ /dev/null @@ -1,20 +0,0 @@ -# SyncListResponsePermissions - -Combined permissions configuration that contains both profiles and management - -## Example Usage - -```typescript -import { SyncListResponsePermissions } from "@alienplatform/platform-api/models"; - -let value: SyncListResponsePermissions = { - profiles: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | -| `management` | *models.SyncListResponseManagementUnion* | :heavy_minus_sign: | Management permissions configuration for stack management access | -| `profiles` | Record> | :heavy_check_mark: | Permission profiles that define access control for compute services
Key is the profile name, value is the permission configuration | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepoolsautoscale.md b/client-sdks/platform/typescript/docs/models/synclistresponsepoolsautoscale.md index b4d2d4c0e..6032bbb31 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponsepoolsautoscale.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepoolsautoscale.md @@ -16,6 +16,7 @@ let value: SyncListResponsePoolsAutoscale = { | Field | Type | Required | Description | | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `failureDomains` | *models.SyncListResponseFailureDomainsUnion2* | :heavy_minus_sign: | N/A | | `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | | `max` | *number* | :heavy_check_mark: | Maximum machine count. | | `min` | *number* | :heavy_check_mark: | Minimum machine count. | diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepoolsfixed.md b/client-sdks/platform/typescript/docs/models/synclistresponsepoolsfixed.md index afeb652a3..538897181 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponsepoolsfixed.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepoolsfixed.md @@ -15,6 +15,7 @@ let value: SyncListResponsePoolsFixed = { | Field | Type | Required | Description | | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `failureDomains` | *models.SyncListResponseFailureDomainsUnion1* | :heavy_minus_sign: | N/A | | `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | | `machines` | *number* | :heavy_check_mark: | Number of machines to run. | | `mode` | *"fixed"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepoolsunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsepoolsunion.md index 33aa9ada0..e82394ec8 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponsepoolsunion.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepoolsunion.md @@ -23,4 +23,3 @@ const value: models.SyncListResponsePoolsAutoscale = { mode: "autoscale", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstack.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstack.md index 4ac8d5cbe..89cbad199 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstack.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstack.md @@ -15,10 +15,10 @@ let value: SyncListResponsePreparedStack = { ## Fields -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -| `id` | *string* | :heavy_check_mark: | Unique identifier for the stack | -| `inputs` | [models.SyncListResponseInput](../models/synclistresponseinput.md)[] | :heavy_minus_sign: | Input definitions required before setup or deployment can proceed. | -| `permissions` | [models.SyncListResponsePermissions](../models/synclistresponsepermissions.md) | :heavy_minus_sign: | Combined permissions configuration that contains both profiles and management | -| `resources` | Record | :heavy_check_mark: | Map of resource IDs to their configurations and lifecycle settings | -| `supportedPlatforms` | [models.SyncListResponseSupportedPlatform](../models/synclistresponsesupportedplatform.md)[] | :heavy_minus_sign: | Which platforms this stack supports. When None, all platforms are supported. | \ No newline at end of file +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the stack | +| `inputs` | [models.SyncListResponsePreparedStackInput](../models/synclistresponsepreparedstackinput.md)[] | :heavy_minus_sign: | Input definitions required before setup or deployment can proceed. | +| `permissions` | [models.SyncListResponsePreparedStackPermissions](../models/synclistresponsepreparedstackpermissions.md) | :heavy_minus_sign: | Combined permissions configuration that contains both profiles and management | +| `resources` | Record | :heavy_check_mark: | Map of resource IDs to their configurations and lifecycle settings | +| `supportedPlatforms` | [models.SyncListResponsePreparedStackSupportedPlatform](../models/synclistresponsepreparedstacksupportedplatform.md)[] | :heavy_minus_sign: | Which platforms this stack supports. When None, all platforms are supported. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackdefaultboolean.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackdefaultboolean.md new file mode 100644 index 000000000..ee5211172 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackdefaultboolean.md @@ -0,0 +1,19 @@ +# SyncListResponsePreparedStackDefaultBoolean + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackDefaultBoolean } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackDefaultBoolean = { + type: "boolean", + value: false, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | +| `type` | [models.SyncListResponsePreparedStackTypeBoolean](../models/synclistresponsepreparedstacktypeboolean.md) | :heavy_check_mark: | N/A | +| `value` | *boolean* | :heavy_check_mark: | Boolean default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackdefaultnumber.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackdefaultnumber.md new file mode 100644 index 000000000..3ba264879 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackdefaultnumber.md @@ -0,0 +1,19 @@ +# SyncListResponsePreparedStackDefaultNumber + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackDefaultNumber } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackDefaultNumber = { + type: "number", + value: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | +| `type` | [models.SyncListResponsePreparedStackTypeNumber](../models/synclistresponsepreparedstacktypenumber.md) | :heavy_check_mark: | N/A | +| `value` | *string* | :heavy_check_mark: | Number default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackdefaultstring.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackdefaultstring.md new file mode 100644 index 000000000..e2dbe2576 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackdefaultstring.md @@ -0,0 +1,19 @@ +# SyncListResponsePreparedStackDefaultString + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackDefaultString } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackDefaultString = { + type: "string", + value: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | +| `type` | [models.SyncListResponsePreparedStackTypeString](../models/synclistresponsepreparedstacktypestring.md) | :heavy_check_mark: | N/A | +| `value` | *string* | :heavy_check_mark: | String default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackdefaultstringlist.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackdefaultstringlist.md new file mode 100644 index 000000000..a3e77d762 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackdefaultstringlist.md @@ -0,0 +1,23 @@ +# SyncListResponsePreparedStackDefaultStringList + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackDefaultStringList } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackDefaultStringList = { + type: "stringList", + value: [ + "", + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | +| `type` | [models.SyncListResponsePreparedStackTypeStringList](../models/synclistresponsepreparedstacktypestringlist.md) | :heavy_check_mark: | N/A | +| `value` | *string*[] | :heavy_check_mark: | String list default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackdefaultunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackdefaultunion.md new file mode 100644 index 000000000..24804a037 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackdefaultunion.md @@ -0,0 +1,50 @@ +# SyncListResponsePreparedStackDefaultUnion + + +## Supported Types + +### `models.SyncListResponsePreparedStackDefaultString` + +```typescript +const value: models.SyncListResponsePreparedStackDefaultString = { + type: "string", + value: "", +}; +``` + +### `models.SyncListResponsePreparedStackDefaultNumber` + +```typescript +const value: models.SyncListResponsePreparedStackDefaultNumber = { + type: "number", + value: "", +}; +``` + +### `models.SyncListResponsePreparedStackDefaultBoolean` + +```typescript +const value: models.SyncListResponsePreparedStackDefaultBoolean = { + type: "boolean", + value: false, +}; +``` + +### `models.SyncListResponsePreparedStackDefaultStringList` + +```typescript +const value: models.SyncListResponsePreparedStackDefaultStringList = { + type: "stringList", + value: [ + "", + "", + "", + ], +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackenv.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackenv.md new file mode 100644 index 000000000..e5593c9c2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackenv.md @@ -0,0 +1,21 @@ +# SyncListResponsePreparedStackEnv + +How a resolved stack input is injected into runtime environment variables. + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackEnv } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackEnv = { + name: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| `name` | *string* | :heavy_check_mark: | Environment variable name. | +| `targetResources` | *string*[] | :heavy_minus_sign: | Target resource IDs or patterns. None means every env-capable resource. | +| `type` | *models.SyncListResponsePreparedStackTypeUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextend.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextend.md new file mode 100644 index 000000000..8699e9145 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextend.md @@ -0,0 +1,23 @@ +# SyncListResponsePreparedStackExtend + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackExtend } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackExtend = { + description: "why nor cultivated openly trust garage scary hateful waist", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.SyncListResponsePreparedStackExtendPlatforms](../models/synclistresponsepreparedstackextendplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendaw.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendaw.md new file mode 100644 index 000000000..d4bffb43c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendaw.md @@ -0,0 +1,24 @@ +# SyncListResponsePreparedStackExtendAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackExtendAw } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackExtendAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncListResponsePreparedStackExtendAwBinding](../models/synclistresponsepreparedstackextendawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.SyncListResponsePreparedStackExtendEffect](../models/synclistresponsepreparedstackextendeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.SyncListResponsePreparedStackExtendAwGrant](../models/synclistresponsepreparedstackextendawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendawbinding.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendawbinding.md new file mode 100644 index 000000000..18f414a61 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendawbinding.md @@ -0,0 +1,18 @@ +# SyncListResponsePreparedStackExtendAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackExtendAwBinding } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackExtendAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.SyncListResponsePreparedStackExtendAwResource](../models/synclistresponsepreparedstackextendawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.SyncListResponsePreparedStackExtendAwStack](../models/synclistresponsepreparedstackextendawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendawgrant.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendawgrant.md new file mode 100644 index 000000000..72dc08b2a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendawgrant.md @@ -0,0 +1,21 @@ +# SyncListResponsePreparedStackExtendAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackExtendAwGrant } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackExtendAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendawresource.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendawresource.md new file mode 100644 index 000000000..4689dd7dc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendawresource.md @@ -0,0 +1,24 @@ +# SyncListResponsePreparedStackExtendAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackExtendAwResource } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackExtendAwResource = { + resources: [ + "", + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendawstack.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendawstack.md new file mode 100644 index 000000000..89a0ddd8d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendawstack.md @@ -0,0 +1,23 @@ +# SyncListResponsePreparedStackExtendAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackExtendAwStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackExtendAwStack = { + resources: [ + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendazure.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendazure.md new file mode 100644 index 000000000..4ffc46e83 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendazure.md @@ -0,0 +1,23 @@ +# SyncListResponsePreparedStackExtendAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackExtendAzure } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackExtendAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncListResponsePreparedStackExtendAzureBinding](../models/synclistresponsepreparedstackextendazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncListResponsePreparedStackExtendAzureGrant](../models/synclistresponsepreparedstackextendazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendazurebinding.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendazurebinding.md new file mode 100644 index 000000000..7e1cb4421 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendazurebinding.md @@ -0,0 +1,18 @@ +# SyncListResponsePreparedStackExtendAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackExtendAzureBinding } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackExtendAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.SyncListResponsePreparedStackExtendAzureResource](../models/synclistresponsepreparedstackextendazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.SyncListResponsePreparedStackExtendAzureStack](../models/synclistresponsepreparedstackextendazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendazuregrant.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendazuregrant.md new file mode 100644 index 000000000..a7472a8ef --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendazuregrant.md @@ -0,0 +1,21 @@ +# SyncListResponsePreparedStackExtendAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackExtendAzureGrant } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackExtendAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendazureresource.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendazureresource.md new file mode 100644 index 000000000..3efd17682 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendazureresource.md @@ -0,0 +1,19 @@ +# SyncListResponsePreparedStackExtendAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackExtendAzureResource } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackExtendAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendazurestack.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendazurestack.md new file mode 100644 index 000000000..a08443e1d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendazurestack.md @@ -0,0 +1,19 @@ +# SyncListResponsePreparedStackExtendAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackExtendAzureStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackExtendAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendconditionresource.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendconditionresource.md new file mode 100644 index 000000000..855636644 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendconditionresource.md @@ -0,0 +1,21 @@ +# SyncListResponsePreparedStackExtendConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackExtendConditionResource } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackExtendConditionResource = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendconditionstack.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendconditionstack.md new file mode 100644 index 000000000..c8c403c31 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendconditionstack.md @@ -0,0 +1,21 @@ +# SyncListResponsePreparedStackExtendConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackExtendConditionStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackExtendConditionStack = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendeffect.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendeffect.md new file mode 100644 index 000000000..8744d2729 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendeffect.md @@ -0,0 +1,17 @@ +# SyncListResponsePreparedStackExtendEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackExtendEffect } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackExtendEffect = "Allow"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendgcp.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendgcp.md new file mode 100644 index 000000000..096c06431 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendgcp.md @@ -0,0 +1,23 @@ +# SyncListResponsePreparedStackExtendGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackExtendGcp } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackExtendGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.SyncListResponsePreparedStackExtendGcpBinding](../models/synclistresponsepreparedstackextendgcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncListResponsePreparedStackExtendGcpGrant](../models/synclistresponsepreparedstackextendgcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendgcpbinding.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendgcpbinding.md new file mode 100644 index 000000000..32cd007c3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendgcpbinding.md @@ -0,0 +1,18 @@ +# SyncListResponsePreparedStackExtendGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackExtendGcpBinding } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackExtendGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.SyncListResponsePreparedStackExtendGcpResource](../models/synclistresponsepreparedstackextendgcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.SyncListResponsePreparedStackExtendGcpStack](../models/synclistresponsepreparedstackextendgcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendgcpgrant.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendgcpgrant.md new file mode 100644 index 000000000..cd5cd06db --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendgcpgrant.md @@ -0,0 +1,21 @@ +# SyncListResponsePreparedStackExtendGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackExtendGcpGrant } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackExtendGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendgcpresource.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendgcpresource.md new file mode 100644 index 000000000..69680b249 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendgcpresource.md @@ -0,0 +1,20 @@ +# SyncListResponsePreparedStackExtendGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackExtendGcpResource } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackExtendGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | ------------------------------------------------------------------ | +| `condition` | *models.SyncListResponsePreparedStackExtendResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendgcpstack.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendgcpstack.md new file mode 100644 index 000000000..f044a61d3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendgcpstack.md @@ -0,0 +1,20 @@ +# SyncListResponsePreparedStackExtendGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackExtendGcpStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackExtendGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | --------------------------------------------------------------- | +| `condition` | *models.SyncListResponsePreparedStackExtendStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendplatforms.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendplatforms.md new file mode 100644 index 000000000..a945321f1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendplatforms.md @@ -0,0 +1,19 @@ +# SyncListResponsePreparedStackExtendPlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackExtendPlatforms } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackExtendPlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- | +| `aws` | [models.SyncListResponsePreparedStackExtendAw](../models/synclistresponsepreparedstackextendaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.SyncListResponsePreparedStackExtendAzure](../models/synclistresponsepreparedstackextendazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.SyncListResponsePreparedStackExtendGcp](../models/synclistresponsepreparedstackextendgcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendresourceconditionunion.md new file mode 100644 index 000000000..50f2c56dc --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendresourceconditionunion.md @@ -0,0 +1,19 @@ +# SyncListResponsePreparedStackExtendResourceConditionUnion + + +## Supported Types + +### `models.SyncListResponsePreparedStackExtendConditionResource` + +```typescript +const value: models.SyncListResponsePreparedStackExtendConditionResource = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendstackconditionunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendstackconditionunion.md new file mode 100644 index 000000000..5de7fced0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendstackconditionunion.md @@ -0,0 +1,19 @@ +# SyncListResponsePreparedStackExtendStackConditionUnion + + +## Supported Types + +### `models.SyncListResponsePreparedStackExtendConditionStack` + +```typescript +const value: models.SyncListResponsePreparedStackExtendConditionStack = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendunion.md new file mode 100644 index 000000000..63ce40627 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackextendunion.md @@ -0,0 +1,22 @@ +# SyncListResponsePreparedStackExtendUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.SyncListResponsePreparedStackExtend` + +```typescript +const value: models.SyncListResponsePreparedStackExtend = { + description: "why nor cultivated openly trust garage scary hateful waist", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackinput.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackinput.md new file mode 100644 index 000000000..66a993473 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackinput.md @@ -0,0 +1,34 @@ +# SyncListResponsePreparedStackInput + +Stack input definition serialized into a release stack. + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackInput } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackInput = { + description: "or calculus vision via buttery times", + id: "", + kind: "boolean", + label: "", + providedBy: [], + required: false, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | +| `default` | *models.SyncListResponsePreparedStackDefaultUnion* | :heavy_minus_sign: | N/A | +| `description` | *string* | :heavy_check_mark: | Human-facing helper text. | +| `env` | [models.SyncListResponsePreparedStackEnv](../models/synclistresponsepreparedstackenv.md)[] | :heavy_minus_sign: | Runtime env-var mappings for v1 input resolution. | +| `id` | *string* | :heavy_check_mark: | Stable input ID used by CLI/API calls. | +| `kind` | [models.SyncListResponsePreparedStackKind](../models/synclistresponsepreparedstackkind.md) | :heavy_check_mark: | Primitive stack input kind. | +| `label` | *string* | :heavy_check_mark: | Human-facing field label. | +| `placeholder` | *string* | :heavy_minus_sign: | Example placeholder shown in UI. | +| `platforms` | [models.SyncListResponsePreparedStackPlatform](../models/synclistresponsepreparedstackplatform.md)[] | :heavy_minus_sign: | Platforms where this input applies. | +| `providedBy` | [models.SyncListResponsePreparedStackProvidedBy](../models/synclistresponsepreparedstackprovidedby.md)[] | :heavy_check_mark: | Who can provide this value. | +| `required` | *boolean* | :heavy_check_mark: | Whether a resolved value is required before deployment can proceed. | +| `validation` | *models.SyncListResponsePreparedStackValidationUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackkind.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackkind.md new file mode 100644 index 000000000..31916cf51 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackkind.md @@ -0,0 +1,17 @@ +# SyncListResponsePreparedStackKind + +Primitive stack input kind. + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackKind } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackKind = "boolean"; +``` + +## Values + +```typescript +"string" | "secret" | "number" | "integer" | "boolean" | "enum" | "stringList" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackmanagement1.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackmanagement1.md new file mode 100644 index 000000000..f7ed73414 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackmanagement1.md @@ -0,0 +1,22 @@ +# SyncListResponsePreparedStackManagement1 + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackManagement1 } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackManagement1 = { + extend: { + "key": [ + "", + ], + "key1": [], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `extend` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackmanagement2.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackmanagement2.md new file mode 100644 index 000000000..94ecc8182 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackmanagement2.md @@ -0,0 +1,17 @@ +# SyncListResponsePreparedStackManagement2 + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackManagement2 } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackManagement2 = { + override: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `override` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackmanagementenum.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackmanagementenum.md new file mode 100644 index 000000000..77fb3f690 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackmanagementenum.md @@ -0,0 +1,15 @@ +# SyncListResponsePreparedStackManagementEnum + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackManagementEnum } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackManagementEnum = "auto"; +``` + +## Values + +```typescript +"auto" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackmanagementunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackmanagementunion.md new file mode 100644 index 000000000..5dc957d68 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackmanagementunion.md @@ -0,0 +1,33 @@ +# SyncListResponsePreparedStackManagementUnion + +Management permissions configuration for stack management access + + +## Supported Types + +### `models.SyncListResponsePreparedStackManagement1` + +```typescript +const value: models.SyncListResponsePreparedStackManagement1 = { + extend: { + "key": [ + "", + ], + "key1": [], + }, +}; +``` + +### `models.SyncListResponsePreparedStackManagement2` + +```typescript +const value: models.SyncListResponsePreparedStackManagement2 = { + override: {}, +}; +``` + +### `models.SyncListResponsePreparedStackManagementEnum` + +```typescript +const value: models.SyncListResponsePreparedStackManagementEnum = "auto"; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverride.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverride.md new file mode 100644 index 000000000..66e90e1b5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverride.md @@ -0,0 +1,24 @@ +# SyncListResponsePreparedStackOverride + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackOverride } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackOverride = { + description: + "circa as armchair jiggle fictionalize devise consequently acceptable concerning fraternise", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.SyncListResponsePreparedStackOverridePlatforms](../models/synclistresponsepreparedstackoverrideplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideaw.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideaw.md new file mode 100644 index 000000000..3b2c2be4f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideaw.md @@ -0,0 +1,24 @@ +# SyncListResponsePreparedStackOverrideAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackOverrideAw } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackOverrideAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncListResponsePreparedStackOverrideAwBinding](../models/synclistresponsepreparedstackoverrideawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.SyncListResponsePreparedStackOverrideEffect](../models/synclistresponsepreparedstackoverrideeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.SyncListResponsePreparedStackOverrideAwGrant](../models/synclistresponsepreparedstackoverrideawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideawbinding.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideawbinding.md new file mode 100644 index 000000000..d3cc7553e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideawbinding.md @@ -0,0 +1,18 @@ +# SyncListResponsePreparedStackOverrideAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackOverrideAwBinding } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackOverrideAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.SyncListResponsePreparedStackOverrideAwResource](../models/synclistresponsepreparedstackoverrideawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.SyncListResponsePreparedStackOverrideAwStack](../models/synclistresponsepreparedstackoverrideawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideawgrant.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideawgrant.md new file mode 100644 index 000000000..52a398097 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideawgrant.md @@ -0,0 +1,21 @@ +# SyncListResponsePreparedStackOverrideAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackOverrideAwGrant } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackOverrideAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideawresource.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideawresource.md new file mode 100644 index 000000000..6ea5d6974 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideawresource.md @@ -0,0 +1,23 @@ +# SyncListResponsePreparedStackOverrideAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackOverrideAwResource } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackOverrideAwResource = { + resources: [ + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideawstack.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideawstack.md new file mode 100644 index 000000000..3970c3fd2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideawstack.md @@ -0,0 +1,24 @@ +# SyncListResponsePreparedStackOverrideAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackOverrideAwStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackOverrideAwStack = { + resources: [ + "", + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideazure.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideazure.md new file mode 100644 index 000000000..c69c1f29d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideazure.md @@ -0,0 +1,23 @@ +# SyncListResponsePreparedStackOverrideAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackOverrideAzure } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackOverrideAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncListResponsePreparedStackOverrideAzureBinding](../models/synclistresponsepreparedstackoverrideazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncListResponsePreparedStackOverrideAzureGrant](../models/synclistresponsepreparedstackoverrideazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideazurebinding.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideazurebinding.md new file mode 100644 index 000000000..eaa05199b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideazurebinding.md @@ -0,0 +1,18 @@ +# SyncListResponsePreparedStackOverrideAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackOverrideAzureBinding } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackOverrideAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.SyncListResponsePreparedStackOverrideAzureResource](../models/synclistresponsepreparedstackoverrideazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.SyncListResponsePreparedStackOverrideAzureStack](../models/synclistresponsepreparedstackoverrideazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideazuregrant.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideazuregrant.md new file mode 100644 index 000000000..b57d2bf87 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideazuregrant.md @@ -0,0 +1,21 @@ +# SyncListResponsePreparedStackOverrideAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackOverrideAzureGrant } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackOverrideAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideazureresource.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideazureresource.md new file mode 100644 index 000000000..00ef78ef8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideazureresource.md @@ -0,0 +1,19 @@ +# SyncListResponsePreparedStackOverrideAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackOverrideAzureResource } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackOverrideAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideazurestack.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideazurestack.md new file mode 100644 index 000000000..ab78b9cc4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideazurestack.md @@ -0,0 +1,19 @@ +# SyncListResponsePreparedStackOverrideAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackOverrideAzureStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackOverrideAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideconditionresource.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideconditionresource.md new file mode 100644 index 000000000..3e6ddfd4c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideconditionresource.md @@ -0,0 +1,21 @@ +# SyncListResponsePreparedStackOverrideConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackOverrideConditionResource } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackOverrideConditionResource = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideconditionstack.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideconditionstack.md new file mode 100644 index 000000000..89616101b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideconditionstack.md @@ -0,0 +1,21 @@ +# SyncListResponsePreparedStackOverrideConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackOverrideConditionStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackOverrideConditionStack = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideeffect.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideeffect.md new file mode 100644 index 000000000..e4004fc50 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideeffect.md @@ -0,0 +1,17 @@ +# SyncListResponsePreparedStackOverrideEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackOverrideEffect } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackOverrideEffect = "Deny"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverridegcp.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverridegcp.md new file mode 100644 index 000000000..50d7ca221 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverridegcp.md @@ -0,0 +1,23 @@ +# SyncListResponsePreparedStackOverrideGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackOverrideGcp } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackOverrideGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncListResponsePreparedStackOverrideGcpBinding](../models/synclistresponsepreparedstackoverridegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncListResponsePreparedStackOverrideGcpGrant](../models/synclistresponsepreparedstackoverridegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverridegcpbinding.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverridegcpbinding.md new file mode 100644 index 000000000..43e3fcc7e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverridegcpbinding.md @@ -0,0 +1,18 @@ +# SyncListResponsePreparedStackOverrideGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackOverrideGcpBinding } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackOverrideGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.SyncListResponsePreparedStackOverrideGcpResource](../models/synclistresponsepreparedstackoverridegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.SyncListResponsePreparedStackOverrideGcpStack](../models/synclistresponsepreparedstackoverridegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverridegcpgrant.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverridegcpgrant.md new file mode 100644 index 000000000..e3fe6f07f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverridegcpgrant.md @@ -0,0 +1,21 @@ +# SyncListResponsePreparedStackOverrideGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackOverrideGcpGrant } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackOverrideGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverridegcpresource.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverridegcpresource.md new file mode 100644 index 000000000..860093917 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverridegcpresource.md @@ -0,0 +1,20 @@ +# SyncListResponsePreparedStackOverrideGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackOverrideGcpResource } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackOverrideGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | -------------------------------------------------------------------- | +| `condition` | *models.SyncListResponsePreparedStackOverrideResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverridegcpstack.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverridegcpstack.md new file mode 100644 index 000000000..85c150c0f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverridegcpstack.md @@ -0,0 +1,20 @@ +# SyncListResponsePreparedStackOverrideGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackOverrideGcpStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackOverrideGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | ----------------------------------------------------------------- | +| `condition` | *models.SyncListResponsePreparedStackOverrideStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideplatforms.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideplatforms.md new file mode 100644 index 000000000..002eb9771 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideplatforms.md @@ -0,0 +1,19 @@ +# SyncListResponsePreparedStackOverridePlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackOverridePlatforms } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackOverridePlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------- | +| `aws` | [models.SyncListResponsePreparedStackOverrideAw](../models/synclistresponsepreparedstackoverrideaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.SyncListResponsePreparedStackOverrideAzure](../models/synclistresponsepreparedstackoverrideazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.SyncListResponsePreparedStackOverrideGcp](../models/synclistresponsepreparedstackoverridegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideresourceconditionunion.md new file mode 100644 index 000000000..850ed2e74 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideresourceconditionunion.md @@ -0,0 +1,19 @@ +# SyncListResponsePreparedStackOverrideResourceConditionUnion + + +## Supported Types + +### `models.SyncListResponsePreparedStackOverrideConditionResource` + +```typescript +const value: models.SyncListResponsePreparedStackOverrideConditionResource = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverridestackconditionunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverridestackconditionunion.md new file mode 100644 index 000000000..3d9ea6fbe --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverridestackconditionunion.md @@ -0,0 +1,19 @@ +# SyncListResponsePreparedStackOverrideStackConditionUnion + + +## Supported Types + +### `models.SyncListResponsePreparedStackOverrideConditionStack` + +```typescript +const value: models.SyncListResponsePreparedStackOverrideConditionStack = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideunion.md new file mode 100644 index 000000000..b08909b3e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackoverrideunion.md @@ -0,0 +1,23 @@ +# SyncListResponsePreparedStackOverrideUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.SyncListResponsePreparedStackOverride` + +```typescript +const value: models.SyncListResponsePreparedStackOverride = { + description: + "circa as armchair jiggle fictionalize devise consequently acceptable concerning fraternise", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackpermissions.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackpermissions.md new file mode 100644 index 000000000..f8a1684ff --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackpermissions.md @@ -0,0 +1,24 @@ +# SyncListResponsePreparedStackPermissions + +Combined permissions configuration that contains both profiles and management + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackPermissions } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackPermissions = { + profiles: { + "key": { + "key": [], + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `management` | *models.SyncListResponsePreparedStackManagementUnion* | :heavy_minus_sign: | Management permissions configuration for stack management access | +| `profiles` | Record> | :heavy_check_mark: | Permission profiles that define access control for compute services
Key is the profile name, value is the permission configuration | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofile.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofile.md new file mode 100644 index 000000000..c74e29fa5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofile.md @@ -0,0 +1,24 @@ +# SyncListResponsePreparedStackProfile + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackProfile } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackProfile = { + description: + "an joyously sternly colorize zowie puff till trusting ick until", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.SyncListResponsePreparedStackProfilePlatforms](../models/synclistresponsepreparedstackprofileplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileaw.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileaw.md new file mode 100644 index 000000000..70f2497b4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileaw.md @@ -0,0 +1,24 @@ +# SyncListResponsePreparedStackProfileAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackProfileAw } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackProfileAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.SyncListResponsePreparedStackProfileAwBinding](../models/synclistresponsepreparedstackprofileawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.SyncListResponsePreparedStackProfileEffect](../models/synclistresponsepreparedstackprofileeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.SyncListResponsePreparedStackProfileAwGrant](../models/synclistresponsepreparedstackprofileawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileawbinding.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileawbinding.md new file mode 100644 index 000000000..df92aebd8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileawbinding.md @@ -0,0 +1,18 @@ +# SyncListResponsePreparedStackProfileAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackProfileAwBinding } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackProfileAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.SyncListResponsePreparedStackProfileAwResource](../models/synclistresponsepreparedstackprofileawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.SyncListResponsePreparedStackProfileAwStack](../models/synclistresponsepreparedstackprofileawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileawgrant.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileawgrant.md new file mode 100644 index 000000000..38eab0eed --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileawgrant.md @@ -0,0 +1,21 @@ +# SyncListResponsePreparedStackProfileAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackProfileAwGrant } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackProfileAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileawresource.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileawresource.md new file mode 100644 index 000000000..6f60cbdff --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileawresource.md @@ -0,0 +1,22 @@ +# SyncListResponsePreparedStackProfileAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackProfileAwResource } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackProfileAwResource = { + resources: [ + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileawstack.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileawstack.md new file mode 100644 index 000000000..b81b193e0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileawstack.md @@ -0,0 +1,24 @@ +# SyncListResponsePreparedStackProfileAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackProfileAwStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackProfileAwStack = { + resources: [ + "", + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileazure.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileazure.md new file mode 100644 index 000000000..e3de20129 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileazure.md @@ -0,0 +1,23 @@ +# SyncListResponsePreparedStackProfileAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackProfileAzure } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackProfileAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.SyncListResponsePreparedStackProfileAzureBinding](../models/synclistresponsepreparedstackprofileazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncListResponsePreparedStackProfileAzureGrant](../models/synclistresponsepreparedstackprofileazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileazurebinding.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileazurebinding.md new file mode 100644 index 000000000..ac48e1d51 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileazurebinding.md @@ -0,0 +1,18 @@ +# SyncListResponsePreparedStackProfileAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackProfileAzureBinding } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackProfileAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.SyncListResponsePreparedStackProfileAzureResource](../models/synclistresponsepreparedstackprofileazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.SyncListResponsePreparedStackProfileAzureStack](../models/synclistresponsepreparedstackprofileazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileazuregrant.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileazuregrant.md new file mode 100644 index 000000000..639bff2a6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileazuregrant.md @@ -0,0 +1,21 @@ +# SyncListResponsePreparedStackProfileAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackProfileAzureGrant } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackProfileAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileazureresource.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileazureresource.md new file mode 100644 index 000000000..8b4fde022 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileazureresource.md @@ -0,0 +1,19 @@ +# SyncListResponsePreparedStackProfileAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackProfileAzureResource } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackProfileAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileazurestack.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileazurestack.md new file mode 100644 index 000000000..29d144bb3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileazurestack.md @@ -0,0 +1,19 @@ +# SyncListResponsePreparedStackProfileAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackProfileAzureStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackProfileAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileconditionresource.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileconditionresource.md new file mode 100644 index 000000000..5103919fd --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileconditionresource.md @@ -0,0 +1,21 @@ +# SyncListResponsePreparedStackProfileConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackProfileConditionResource } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackProfileConditionResource = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileconditionstack.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileconditionstack.md new file mode 100644 index 000000000..9760ee18a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileconditionstack.md @@ -0,0 +1,21 @@ +# SyncListResponsePreparedStackProfileConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackProfileConditionStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackProfileConditionStack = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileeffect.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileeffect.md new file mode 100644 index 000000000..b88b51e10 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileeffect.md @@ -0,0 +1,17 @@ +# SyncListResponsePreparedStackProfileEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackProfileEffect } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackProfileEffect = "Allow"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofilegcp.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofilegcp.md new file mode 100644 index 000000000..f42099dcb --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofilegcp.md @@ -0,0 +1,23 @@ +# SyncListResponsePreparedStackProfileGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackProfileGcp } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackProfileGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncListResponsePreparedStackProfileGcpBinding](../models/synclistresponsepreparedstackprofilegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncListResponsePreparedStackProfileGcpGrant](../models/synclistresponsepreparedstackprofilegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofilegcpbinding.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofilegcpbinding.md new file mode 100644 index 000000000..545362ad6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofilegcpbinding.md @@ -0,0 +1,18 @@ +# SyncListResponsePreparedStackProfileGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackProfileGcpBinding } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackProfileGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.SyncListResponsePreparedStackProfileGcpResource](../models/synclistresponsepreparedstackprofilegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.SyncListResponsePreparedStackProfileGcpStack](../models/synclistresponsepreparedstackprofilegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofilegcpgrant.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofilegcpgrant.md new file mode 100644 index 000000000..86f4cc5e5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofilegcpgrant.md @@ -0,0 +1,21 @@ +# SyncListResponsePreparedStackProfileGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackProfileGcpGrant } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackProfileGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofilegcpresource.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofilegcpresource.md new file mode 100644 index 000000000..5a840ee3f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofilegcpresource.md @@ -0,0 +1,20 @@ +# SyncListResponsePreparedStackProfileGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackProfileGcpResource } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackProfileGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | ------------------------------------------------------------------- | +| `condition` | *models.SyncListResponsePreparedStackProfileResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofilegcpstack.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofilegcpstack.md new file mode 100644 index 000000000..0099b8967 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofilegcpstack.md @@ -0,0 +1,20 @@ +# SyncListResponsePreparedStackProfileGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackProfileGcpStack } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackProfileGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | ---------------------------------------------------------------- | +| `condition` | *models.SyncListResponsePreparedStackProfileStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileplatforms.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileplatforms.md new file mode 100644 index 000000000..2d46d491b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileplatforms.md @@ -0,0 +1,19 @@ +# SyncListResponsePreparedStackProfilePlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackProfilePlatforms } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackProfilePlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------ | +| `aws` | [models.SyncListResponsePreparedStackProfileAw](../models/synclistresponsepreparedstackprofileaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.SyncListResponsePreparedStackProfileAzure](../models/synclistresponsepreparedstackprofileazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.SyncListResponsePreparedStackProfileGcp](../models/synclistresponsepreparedstackprofilegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileresourceconditionunion.md new file mode 100644 index 000000000..12803cf94 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileresourceconditionunion.md @@ -0,0 +1,19 @@ +# SyncListResponsePreparedStackProfileResourceConditionUnion + + +## Supported Types + +### `models.SyncListResponsePreparedStackProfileConditionResource` + +```typescript +const value: models.SyncListResponsePreparedStackProfileConditionResource = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofilestackconditionunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofilestackconditionunion.md new file mode 100644 index 000000000..a9327b10b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofilestackconditionunion.md @@ -0,0 +1,19 @@ +# SyncListResponsePreparedStackProfileStackConditionUnion + + +## Supported Types + +### `models.SyncListResponsePreparedStackProfileConditionStack` + +```typescript +const value: models.SyncListResponsePreparedStackProfileConditionStack = { + expression: "", + title: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileunion.md new file mode 100644 index 000000000..8925d60df --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprofileunion.md @@ -0,0 +1,23 @@ +# SyncListResponsePreparedStackProfileUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.SyncListResponsePreparedStackProfile` + +```typescript +const value: models.SyncListResponsePreparedStackProfile = { + description: + "an joyously sternly colorize zowie puff till trusting ick until", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprovidedby.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprovidedby.md new file mode 100644 index 000000000..5c58e4bcb --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackprovidedby.md @@ -0,0 +1,17 @@ +# SyncListResponsePreparedStackProvidedBy + +Who can provide a stack input value. + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackProvidedBy } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackProvidedBy = "developer"; +``` + +## Values + +```typescript +"developer" | "deployer" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackresources.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackresources.md index f041dd3ff..caad6e3f0 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackresources.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackresources.md @@ -17,9 +17,10 @@ let value: SyncListResponsePreparedStackResources = { ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `config` | [models.SyncListResponsePreparedStackConfig](../models/synclistresponsepreparedstackconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | -| `dependencies` | [models.SyncListResponsePreparedStackDependency](../models/synclistresponsepreparedstackdependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | -| `lifecycle` | [models.SyncListResponsePreparedStackLifecycle](../models/synclistresponsepreparedstacklifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | -| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `config` | [models.SyncListResponsePreparedStackConfig](../models/synclistresponsepreparedstackconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | +| `dependencies` | [models.SyncListResponsePreparedStackDependency](../models/synclistresponsepreparedstackdependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | +| `enabledWhen` | *string* | :heavy_minus_sign: | Id of the boolean stack input that decides whether this resource is
created at all. `None` means always create it.

Set by `.enabled(input)` in the SDK. Setup emitters render the resource
conditionally on the matching template variable, so a deployer who says no
never gets the resource, its outputs, or anything derived from it. | +| `lifecycle` | [models.SyncListResponsePreparedStackLifecycle](../models/synclistresponsepreparedstacklifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | +| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstacksupportedplatform.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstacksupportedplatform.md new file mode 100644 index 000000000..e9fdfe5aa --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstacksupportedplatform.md @@ -0,0 +1,17 @@ +# SyncListResponsePreparedStackSupportedPlatform + +Represents the target cloud platform. + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackSupportedPlatform } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackSupportedPlatform = "azure"; +``` + +## Values + +```typescript +"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstacktypeboolean.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstacktypeboolean.md new file mode 100644 index 000000000..3965035be --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstacktypeboolean.md @@ -0,0 +1,15 @@ +# SyncListResponsePreparedStackTypeBoolean + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackTypeBoolean } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackTypeBoolean = "boolean"; +``` + +## Values + +```typescript +"boolean" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstacktypeenvenum.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstacktypeenvenum.md new file mode 100644 index 000000000..2b8a209c6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstacktypeenvenum.md @@ -0,0 +1,17 @@ +# SyncListResponsePreparedStackTypeEnvEnum + +Environment variable handling for a stack input mapping. + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackTypeEnvEnum } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackTypeEnvEnum = "plain"; +``` + +## Values + +```typescript +"plain" | "secret" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstacktypenumber.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstacktypenumber.md new file mode 100644 index 000000000..d33e69781 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstacktypenumber.md @@ -0,0 +1,15 @@ +# SyncListResponsePreparedStackTypeNumber + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackTypeNumber } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackTypeNumber = "number"; +``` + +## Values + +```typescript +"number" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstacktypestring.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstacktypestring.md new file mode 100644 index 000000000..1a1bde608 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstacktypestring.md @@ -0,0 +1,15 @@ +# SyncListResponsePreparedStackTypeString + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackTypeString } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackTypeString = "string"; +``` + +## Values + +```typescript +"string" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstacktypestringlist.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstacktypestringlist.md new file mode 100644 index 000000000..33ebff7ff --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstacktypestringlist.md @@ -0,0 +1,15 @@ +# SyncListResponsePreparedStackTypeStringList + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackTypeStringList } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackTypeStringList = "stringList"; +``` + +## Values + +```typescript +"stringList" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstacktypeunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstacktypeunion.md new file mode 100644 index 000000000..c01c4a8e6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstacktypeunion.md @@ -0,0 +1,16 @@ +# SyncListResponsePreparedStackTypeUnion + + +## Supported Types + +### `models.SyncListResponsePreparedStackTypeEnvEnum` + +```typescript +const value: models.SyncListResponsePreparedStackTypeEnvEnum = "secret"; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackunion.md index bb89df76c..0446f9fc3 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackunion.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackunion.md @@ -17,4 +17,3 @@ const value: models.SyncListResponsePreparedStack = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackvalidation.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackvalidation.md new file mode 100644 index 000000000..8c9998976 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackvalidation.md @@ -0,0 +1,25 @@ +# SyncListResponsePreparedStackValidation + +Portable stack input validation constraints. + +## Example Usage + +```typescript +import { SyncListResponsePreparedStackValidation } from "@alienplatform/platform-api/models"; + +let value: SyncListResponsePreparedStackValidation = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `format` | *string* | :heavy_minus_sign: | Semantic format hint such as url. | +| `max` | *string* | :heavy_minus_sign: | Maximum number. | +| `maxItems` | *number* | :heavy_minus_sign: | Maximum string-list items. | +| `maxLength` | *number* | :heavy_minus_sign: | Maximum string length. | +| `min` | *string* | :heavy_minus_sign: | Minimum number. | +| `minItems` | *number* | :heavy_minus_sign: | Minimum string-list items. | +| `minLength` | *number* | :heavy_minus_sign: | Minimum string length. | +| `pattern` | *string* | :heavy_minus_sign: | Portable whole-value regex pattern. | +| `values` | *string*[] | :heavy_minus_sign: | Allowed string enum values. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackvalidationunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackvalidationunion.md new file mode 100644 index 000000000..199c04803 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreparedstackvalidationunion.md @@ -0,0 +1,16 @@ +# SyncListResponsePreparedStackValidationUnion + + +## Supported Types + +### `models.SyncListResponsePreparedStackValidation` + +```typescript +const value: models.SyncListResponsePreparedStackValidation = {}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepreviousconfigunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsepreviousconfigunion.md index c30d0971e..9043b5bb0 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponsepreviousconfigunion.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepreviousconfigunion.md @@ -17,4 +17,3 @@ const value: models.SyncListResponsePreviousConfig = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseprofile.md b/client-sdks/platform/typescript/docs/models/synclistresponseprofile.md deleted file mode 100644 index 238e1fe15..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseprofile.md +++ /dev/null @@ -1,24 +0,0 @@ -# SyncListResponseProfile - -A permission set that can be applied across different cloud platforms - -## Example Usage - -```typescript -import { SyncListResponseProfile } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseProfile = { - description: - "regarding even now bungalow boiling promptly entry eventually where", - id: "", - platforms: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | -| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | -| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | -| `platforms` | [models.SyncListResponseProfilePlatforms](../models/synclistresponseprofileplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseprofileaw.md b/client-sdks/platform/typescript/docs/models/synclistresponseprofileaw.md deleted file mode 100644 index 987c70614..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseprofileaw.md +++ /dev/null @@ -1,24 +0,0 @@ -# SyncListResponseProfileAw - -AWS-specific platform permission configuration - -## Example Usage - -```typescript -import { SyncListResponseProfileAw } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseProfileAw = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------- | -| `binding` | [models.SyncListResponseProfileAwBinding](../models/synclistresponseprofileawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `effect` | [models.SyncListResponseProfileEffect](../models/synclistresponseprofileeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | -| `grant` | [models.SyncListResponseProfileAwGrant](../models/synclistresponseprofileawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseprofileawbinding.md b/client-sdks/platform/typescript/docs/models/synclistresponseprofileawbinding.md deleted file mode 100644 index 2eb26a410..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseprofileawbinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# SyncListResponseProfileAwBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { SyncListResponseProfileAwBinding } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseProfileAwBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | -| `resource` | [models.SyncListResponseProfileAwResource](../models/synclistresponseprofileawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | -| `stack` | [models.SyncListResponseProfileAwStack](../models/synclistresponseprofileawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseprofileawgrant.md b/client-sdks/platform/typescript/docs/models/synclistresponseprofileawgrant.md deleted file mode 100644 index 1d170cb70..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseprofileawgrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# SyncListResponseProfileAwGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { SyncListResponseProfileAwGrant } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseProfileAwGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseprofileawresource.md b/client-sdks/platform/typescript/docs/models/synclistresponseprofileawresource.md deleted file mode 100644 index 0dc0c16b2..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseprofileawresource.md +++ /dev/null @@ -1,23 +0,0 @@ -# SyncListResponseProfileAwResource - -AWS-specific binding specification - -## Example Usage - -```typescript -import { SyncListResponseProfileAwResource } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseProfileAwResource = { - resources: [ - "", - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | -| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseprofileawstack.md b/client-sdks/platform/typescript/docs/models/synclistresponseprofileawstack.md deleted file mode 100644 index 676d6447c..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseprofileawstack.md +++ /dev/null @@ -1,22 +0,0 @@ -# SyncListResponseProfileAwStack - -AWS-specific binding specification - -## Example Usage - -```typescript -import { SyncListResponseProfileAwStack } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseProfileAwStack = { - resources: [ - "", - ], -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | -| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseprofileazure.md b/client-sdks/platform/typescript/docs/models/synclistresponseprofileazure.md deleted file mode 100644 index d1c45333a..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseprofileazure.md +++ /dev/null @@ -1,23 +0,0 @@ -# SyncListResponseProfileAzure - -Azure-specific platform permission configuration - -## Example Usage - -```typescript -import { SyncListResponseProfileAzure } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseProfileAzure = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | -| `binding` | [models.SyncListResponseProfileAzureBinding](../models/synclistresponseprofileazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `grant` | [models.SyncListResponseProfileAzureGrant](../models/synclistresponseprofileazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseprofileazurebinding.md b/client-sdks/platform/typescript/docs/models/synclistresponseprofileazurebinding.md deleted file mode 100644 index a80f47c78..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseprofileazurebinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# SyncListResponseProfileAzureBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { SyncListResponseProfileAzureBinding } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseProfileAzureBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | -| `resource` | [models.SyncListResponseProfileAzureResource](../models/synclistresponseprofileazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | -| `stack` | [models.SyncListResponseProfileAzureStack](../models/synclistresponseprofileazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseprofileazuregrant.md b/client-sdks/platform/typescript/docs/models/synclistresponseprofileazuregrant.md deleted file mode 100644 index ad9e04d7c..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseprofileazuregrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# SyncListResponseProfileAzureGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { SyncListResponseProfileAzureGrant } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseProfileAzureGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseprofileazureresource.md b/client-sdks/platform/typescript/docs/models/synclistresponseprofileazureresource.md deleted file mode 100644 index de9da1fe8..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseprofileazureresource.md +++ /dev/null @@ -1,19 +0,0 @@ -# SyncListResponseProfileAzureResource - -Azure-specific binding specification - -## Example Usage - -```typescript -import { SyncListResponseProfileAzureResource } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseProfileAzureResource = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseprofileazurestack.md b/client-sdks/platform/typescript/docs/models/synclistresponseprofileazurestack.md deleted file mode 100644 index 2ef44dde5..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseprofileazurestack.md +++ /dev/null @@ -1,19 +0,0 @@ -# SyncListResponseProfileAzureStack - -Azure-specific binding specification - -## Example Usage - -```typescript -import { SyncListResponseProfileAzureStack } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseProfileAzureStack = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseprofileconditionresource.md b/client-sdks/platform/typescript/docs/models/synclistresponseprofileconditionresource.md deleted file mode 100644 index 520a6573d..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseprofileconditionresource.md +++ /dev/null @@ -1,21 +0,0 @@ -# SyncListResponseProfileConditionResource - -GCP IAM condition - -## Example Usage - -```typescript -import { SyncListResponseProfileConditionResource } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseProfileConditionResource = { - expression: "", - title: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `expression` | *string* | :heavy_check_mark: | N/A | -| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseprofileconditionstack.md b/client-sdks/platform/typescript/docs/models/synclistresponseprofileconditionstack.md deleted file mode 100644 index 242337317..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseprofileconditionstack.md +++ /dev/null @@ -1,21 +0,0 @@ -# SyncListResponseProfileConditionStack - -GCP IAM condition - -## Example Usage - -```typescript -import { SyncListResponseProfileConditionStack } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseProfileConditionStack = { - expression: "", - title: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `expression` | *string* | :heavy_check_mark: | N/A | -| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseprofileeffect.md b/client-sdks/platform/typescript/docs/models/synclistresponseprofileeffect.md deleted file mode 100644 index 210cdc774..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseprofileeffect.md +++ /dev/null @@ -1,17 +0,0 @@ -# SyncListResponseProfileEffect - -IAM effect. Defaults to Allow. - -## Example Usage - -```typescript -import { SyncListResponseProfileEffect } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseProfileEffect = "Deny"; -``` - -## Values - -```typescript -"Allow" | "Deny" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseprofilegcp.md b/client-sdks/platform/typescript/docs/models/synclistresponseprofilegcp.md deleted file mode 100644 index 8d5b756da..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseprofilegcp.md +++ /dev/null @@ -1,23 +0,0 @@ -# SyncListResponseProfileGcp - -GCP-specific platform permission configuration - -## Example Usage - -```typescript -import { SyncListResponseProfileGcp } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseProfileGcp = { - binding: {}, - grant: {}, -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------ | -| `binding` | [models.SyncListResponseProfileGcpBinding](../models/synclistresponseprofilegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | -| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | -| `grant` | [models.SyncListResponseProfileGcpGrant](../models/synclistresponseprofilegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | -| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseprofilegcpbinding.md b/client-sdks/platform/typescript/docs/models/synclistresponseprofilegcpbinding.md deleted file mode 100644 index 348032150..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseprofilegcpbinding.md +++ /dev/null @@ -1,18 +0,0 @@ -# SyncListResponseProfileGcpBinding - -Generic binding configuration for permissions - -## Example Usage - -```typescript -import { SyncListResponseProfileGcpBinding } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseProfileGcpBinding = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------- | -| `resource` | [models.SyncListResponseProfileGcpResource](../models/synclistresponseprofilegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | -| `stack` | [models.SyncListResponseProfileGcpStack](../models/synclistresponseprofilegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseprofilegcpgrant.md b/client-sdks/platform/typescript/docs/models/synclistresponseprofilegcpgrant.md deleted file mode 100644 index 87f225737..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseprofilegcpgrant.md +++ /dev/null @@ -1,21 +0,0 @@ -# SyncListResponseProfileGcpGrant - -Grant permissions for a specific cloud platform - -## Example Usage - -```typescript -import { SyncListResponseProfileGcpGrant } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseProfileGcpGrant = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | -| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | -| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | -| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | -| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseprofilegcpresource.md b/client-sdks/platform/typescript/docs/models/synclistresponseprofilegcpresource.md deleted file mode 100644 index 07a2ffd92..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseprofilegcpresource.md +++ /dev/null @@ -1,20 +0,0 @@ -# SyncListResponseProfileGcpResource - -GCP-specific binding specification - -## Example Usage - -```typescript -import { SyncListResponseProfileGcpResource } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseProfileGcpResource = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | ------------------------------------------------------ | -| `condition` | *models.SyncListResponseProfileResourceConditionUnion* | :heavy_minus_sign: | N/A | -| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseprofilegcpstack.md b/client-sdks/platform/typescript/docs/models/synclistresponseprofilegcpstack.md deleted file mode 100644 index 8e87d36c3..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseprofilegcpstack.md +++ /dev/null @@ -1,20 +0,0 @@ -# SyncListResponseProfileGcpStack - -GCP-specific binding specification - -## Example Usage - -```typescript -import { SyncListResponseProfileGcpStack } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseProfileGcpStack = { - scope: "", -}; -``` - -## Fields - -| Field | Type | Required | Description | -| --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | -| `condition` | *models.SyncListResponseProfileStackConditionUnion* | :heavy_minus_sign: | N/A | -| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseprofileplatforms.md b/client-sdks/platform/typescript/docs/models/synclistresponseprofileplatforms.md deleted file mode 100644 index faf193dcc..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseprofileplatforms.md +++ /dev/null @@ -1,19 +0,0 @@ -# SyncListResponseProfilePlatforms - -Platform-specific permission configurations - -## Example Usage - -```typescript -import { SyncListResponseProfilePlatforms } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseProfilePlatforms = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------- | -| `aws` | [models.SyncListResponseProfileAw](../models/synclistresponseprofileaw.md)[] | :heavy_minus_sign: | AWS permission configurations | -| `azure` | [models.SyncListResponseProfileAzure](../models/synclistresponseprofileazure.md)[] | :heavy_minus_sign: | Azure permission configurations | -| `gcp` | [models.SyncListResponseProfileGcp](../models/synclistresponseprofilegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseprofileresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/synclistresponseprofileresourceconditionunion.md deleted file mode 100644 index 83c0c0036..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseprofileresourceconditionunion.md +++ /dev/null @@ -1,20 +0,0 @@ -# SyncListResponseProfileResourceConditionUnion - - -## Supported Types - -### `models.SyncListResponseProfileConditionResource` - -```typescript -const value: models.SyncListResponseProfileConditionResource = { - expression: "", - title: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseprofilestackconditionunion.md b/client-sdks/platform/typescript/docs/models/synclistresponseprofilestackconditionunion.md deleted file mode 100644 index 84f803db0..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseprofilestackconditionunion.md +++ /dev/null @@ -1,20 +0,0 @@ -# SyncListResponseProfileStackConditionUnion - - -## Supported Types - -### `models.SyncListResponseProfileConditionStack` - -```typescript -const value: models.SyncListResponseProfileConditionStack = { - expression: "", - title: "", -}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseprofileunion.md b/client-sdks/platform/typescript/docs/models/synclistresponseprofileunion.md deleted file mode 100644 index 4a00f6276..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseprofileunion.md +++ /dev/null @@ -1,24 +0,0 @@ -# SyncListResponseProfileUnion - -Reference to a permission set - either by name or inline definition - - -## Supported Types - -### `models.SyncListResponseProfile` - -```typescript -const value: models.SyncListResponseProfile = { - description: - "regarding even now bungalow boiling promptly entry eventually where", - id: "", - platforms: {}, -}; -``` - -### `string` - -```typescript -const value: string = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseprovidedby.md b/client-sdks/platform/typescript/docs/models/synclistresponseprovidedby.md deleted file mode 100644 index f23e1fd4f..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponseprovidedby.md +++ /dev/null @@ -1,17 +0,0 @@ -# SyncListResponseProvidedBy - -Who can provide a stack input value. - -## Example Usage - -```typescript -import { SyncListResponseProvidedBy } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseProvidedBy = "deployer"; -``` - -## Values - -```typescript -"developer" | "deployer" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseproviderunion1.md b/client-sdks/platform/typescript/docs/models/synclistresponseproviderunion1.md index 5987686b0..a3dd58e30 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponseproviderunion1.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponseproviderunion1.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseproviderunion2.md b/client-sdks/platform/typescript/docs/models/synclistresponseproviderunion2.md index 120429ecc..f2db53e0f 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponseproviderunion2.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponseproviderunion2.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseproviderunion3.md b/client-sdks/platform/typescript/docs/models/synclistresponseproviderunion3.md index 3bd5e7f21..be9f5fbb3 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponseproviderunion3.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponseproviderunion3.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseproviderunion4.md b/client-sdks/platform/typescript/docs/models/synclistresponseproviderunion4.md index 84eaa118b..f29b52229 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponseproviderunion4.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponseproviderunion4.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsepublicendpointtargetunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsepublicendpointtargetunion.md index 58b5f6d75..929da874f 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponsepublicendpointtargetunion.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponsepublicendpointtargetunion.md @@ -25,4 +25,3 @@ const value: models.SyncListResponsePublicEndpointTargetLoadBalancer = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponserouteunion1.md b/client-sdks/platform/typescript/docs/models/synclistresponserouteunion1.md index 379c4372e..db058e50f 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponserouteunion1.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponserouteunion1.md @@ -23,4 +23,3 @@ const value: models.SyncListResponseRouteGateway1 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponserouteunion2.md b/client-sdks/platform/typescript/docs/models/synclistresponserouteunion2.md index 2e5df8411..43b2a2029 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponserouteunion2.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponserouteunion2.md @@ -23,4 +23,3 @@ const value: models.SyncListResponseRouteGateway2 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponseruntimemetadata.md b/client-sdks/platform/typescript/docs/models/synclistresponseruntimemetadata.md index 53b393f71..f974bf674 100644 --- a/client-sdks/platform/typescript/docs/models/synclistresponseruntimemetadata.md +++ b/client-sdks/platform/typescript/docs/models/synclistresponseruntimemetadata.md @@ -12,9 +12,13 @@ let value: SyncListResponseRuntimeMetadata = {}; ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `lastSyncedEnvVarsHash` | *string* | :heavy_minus_sign: | Hash of the environment variables snapshot that was last synced to the vault
Used to avoid redundant sync operations during incremental deployment | -| `lastSyncedSecretNames` | *string*[] | :heavy_minus_sign: | Exact vault keys owned by the deployment secret synchronizer. This
inventory lets a later snapshot delete removed keys without listing or
touching unrelated values in the same vault. | -| `preparedStack` | *models.SyncListResponsePreparedStackUnion* | :heavy_minus_sign: | N/A | -| `registryAccessGranted` | *boolean* | :heavy_minus_sign: | Whether cross-account registry access has been successfully granted.
Set to true after the manager successfully sets the ECR/GAR repo policy
for this deployment's target account. Prevents redundant API calls on
every reconcile tick. | \ No newline at end of file +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `initialSetupAuthority` | [models.SyncListResponseInitialSetupAuthority](../models/synclistresponseinitialsetupauthority.md) | :heavy_minus_sign: | Actor that owns structural work during the initial setup phase. | +| `lastSyncedEnvVarsHash` | *string* | :heavy_minus_sign: | Hash of the environment variables snapshot that was last synced to the vault
Used to avoid redundant sync operations during incremental deployment | +| `lastSyncedSecretNames` | *string*[] | :heavy_minus_sign: | Exact vault keys owned by the deployment secret synchronizer. This
inventory lets a later snapshot delete removed keys without listing or
touching unrelated values in the same vault. | +| `pendingPreparedStack` | *models.SyncListResponsePendingPreparedStackUnion* | :heavy_minus_sign: | N/A | +| `persistedGateAnswers` | Record | :heavy_minus_sign: | Canonical resolved answers for inputs that gate Frozen resources,
keyed by input id, recorded when the deployment is created or its
setup import registers.

A frozen gate's answer is fixed for the deployment's lifetime: the
update path refuses input values that conflict with these, and a Live
resource sharing such an input resolves the persisted answer forever. | +| `preparedStack` | *models.SyncListResponsePreparedStackUnion* | :heavy_minus_sign: | N/A | +| `registryAccessGranted` | *boolean* | :heavy_minus_sign: | Whether cross-account registry access has been successfully granted.
Set to true after the manager successfully sets the ECR/GAR repo policy
for this deployment's target account. Prevents redundant API calls on
every reconcile tick. | +| `setupUpdateAuthorization` | *models.SyncListResponseSetupUpdateAuthorizationUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsesetupupdateauthorization.md b/client-sdks/platform/typescript/docs/models/synclistresponsesetupupdateauthorization.md new file mode 100644 index 000000000..a67e8137c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsesetupupdateauthorization.md @@ -0,0 +1,31 @@ +# SyncListResponseSetupUpdateAuthorization + +One-shot authority for a setup re-import to replace setup-owned resources. + +## Example Usage + +```typescript +import { SyncListResponseSetupUpdateAuthorization } from "@alienplatform/platform-api/models"; + +let value: SyncListResponseSetupUpdateAuthorization = { + baselineFrozenDigest: "", + nonce: "", + releaseId: "", + setupFingerprint: "", + setupFingerprintVersion: 256760, + setupTarget: "", + targetFrozenDigest: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | +| `baselineFrozenDigest` | *string* | :heavy_check_mark: | Frozen resource projection from the last successful deployment. | +| `nonce` | *string* | :heavy_check_mark: | Unique revision used by persistence layers for compare-and-swap updates. | +| `releaseId` | *string* | :heavy_check_mark: | Release whose stack was prepared by setup. | +| `setupFingerprint` | *string* | :heavy_check_mark: | Exact setup artifact revision that authored this authority. | +| `setupFingerprintVersion` | *number* | :heavy_check_mark: | Setup fingerprint contract version. | +| `setupTarget` | *string* | :heavy_check_mark: | Stable setup target recorded on the imported deployment. | +| `targetFrozenDigest` | *string* | :heavy_check_mark: | Frozen resource projection prepared by the setup re-import. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsesetupupdateauthorizationunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsesetupupdateauthorizationunion.md new file mode 100644 index 000000000..0e96f11fb --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/synclistresponsesetupupdateauthorizationunion.md @@ -0,0 +1,24 @@ +# SyncListResponseSetupUpdateAuthorizationUnion + + +## Supported Types + +### `models.SyncListResponseSetupUpdateAuthorization` + +```typescript +const value: models.SyncListResponseSetupUpdateAuthorization = { + baselineFrozenDigest: "", + nonce: "", + releaseId: "", + setupFingerprint: "", + setupFingerprintVersion: 256760, + setupTarget: "", + targetFrozenDigest: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsesupportedplatform.md b/client-sdks/platform/typescript/docs/models/synclistresponsesupportedplatform.md deleted file mode 100644 index 6681a2b5c..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponsesupportedplatform.md +++ /dev/null @@ -1,17 +0,0 @@ -# SyncListResponseSupportedPlatform - -Represents the target cloud platform. - -## Example Usage - -```typescript -import { SyncListResponseSupportedPlatform } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseSupportedPlatform = "machines"; -``` - -## Values - -```typescript -"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsetypeboolean.md b/client-sdks/platform/typescript/docs/models/synclistresponsetypeboolean.md deleted file mode 100644 index 8a87011cb..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponsetypeboolean.md +++ /dev/null @@ -1,15 +0,0 @@ -# SyncListResponseTypeBoolean - -## Example Usage - -```typescript -import { SyncListResponseTypeBoolean } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseTypeBoolean = "boolean"; -``` - -## Values - -```typescript -"boolean" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsetypeenvenum.md b/client-sdks/platform/typescript/docs/models/synclistresponsetypeenvenum.md deleted file mode 100644 index b6df8a0e1..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponsetypeenvenum.md +++ /dev/null @@ -1,17 +0,0 @@ -# SyncListResponseTypeEnvEnum - -Environment variable handling for a stack input mapping. - -## Example Usage - -```typescript -import { SyncListResponseTypeEnvEnum } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseTypeEnvEnum = "secret"; -``` - -## Values - -```typescript -"plain" | "secret" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsetypenumber.md b/client-sdks/platform/typescript/docs/models/synclistresponsetypenumber.md deleted file mode 100644 index 2233d0800..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponsetypenumber.md +++ /dev/null @@ -1,15 +0,0 @@ -# SyncListResponseTypeNumber - -## Example Usage - -```typescript -import { SyncListResponseTypeNumber } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseTypeNumber = "number"; -``` - -## Values - -```typescript -"number" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsetypestring.md b/client-sdks/platform/typescript/docs/models/synclistresponsetypestring.md deleted file mode 100644 index 20e3c0e6f..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponsetypestring.md +++ /dev/null @@ -1,15 +0,0 @@ -# SyncListResponseTypeString - -## Example Usage - -```typescript -import { SyncListResponseTypeString } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseTypeString = "string"; -``` - -## Values - -```typescript -"string" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsetypestringlist.md b/client-sdks/platform/typescript/docs/models/synclistresponsetypestringlist.md deleted file mode 100644 index feae29106..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponsetypestringlist.md +++ /dev/null @@ -1,15 +0,0 @@ -# SyncListResponseTypeStringList - -## Example Usage - -```typescript -import { SyncListResponseTypeStringList } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseTypeStringList = "stringList"; -``` - -## Values - -```typescript -"stringList" -``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsetypeunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsetypeunion.md deleted file mode 100644 index f94f2cf16..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponsetypeunion.md +++ /dev/null @@ -1,17 +0,0 @@ -# SyncListResponseTypeUnion - - -## Supported Types - -### `models.SyncListResponseTypeEnvEnum` - -```typescript -const value: models.SyncListResponseTypeEnvEnum = "secret"; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsevalidation.md b/client-sdks/platform/typescript/docs/models/synclistresponsevalidation.md deleted file mode 100644 index 6acbb83f5..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponsevalidation.md +++ /dev/null @@ -1,25 +0,0 @@ -# SyncListResponseValidation - -Portable stack input validation constraints. - -## Example Usage - -```typescript -import { SyncListResponseValidation } from "@alienplatform/platform-api/models"; - -let value: SyncListResponseValidation = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | -| `format` | *string* | :heavy_minus_sign: | Semantic format hint such as url. | -| `max` | *string* | :heavy_minus_sign: | Maximum number. | -| `maxItems` | *number* | :heavy_minus_sign: | Maximum string-list items. | -| `maxLength` | *number* | :heavy_minus_sign: | Maximum string length. | -| `min` | *string* | :heavy_minus_sign: | Minimum number. | -| `minItems` | *number* | :heavy_minus_sign: | Minimum string-list items. | -| `minLength` | *number* | :heavy_minus_sign: | Minimum string length. | -| `pattern` | *string* | :heavy_minus_sign: | Portable whole-value regex pattern. | -| `values` | *string*[] | :heavy_minus_sign: | Allowed string enum values. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/synclistresponsevalidationunion.md b/client-sdks/platform/typescript/docs/models/synclistresponsevalidationunion.md deleted file mode 100644 index a239f4dbf..000000000 --- a/client-sdks/platform/typescript/docs/models/synclistresponsevalidationunion.md +++ /dev/null @@ -1,17 +0,0 @@ -# SyncListResponseValidationUnion - - -## Supported Types - -### `models.SyncListResponseValidation` - -```typescript -const value: models.SyncListResponseValidation = {}; -``` - -### `any` - -```typescript -const value: any = ""; -``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleasedefaultunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleasedefaultunion.md index 3ab396431..d2b1402ff 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleasedefaultunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleasedefaultunion.md @@ -47,4 +47,3 @@ const value: models.SyncReconcileRequestCurrentReleaseDefaultStringList = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleaseextendunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleaseextendunion.md index 8f4a19013..4794609cf 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleaseextendunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleaseextendunion.md @@ -20,4 +20,3 @@ const value: models.SyncReconcileRequestCurrentReleaseExtend = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleasemanagementunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleasemanagementunion.md index e2fb6b051..bd725370c 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleasemanagementunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleasemanagementunion.md @@ -39,4 +39,3 @@ const value: models.SyncReconcileRequestCurrentReleaseManagement2 = { ```typescript const value: models.SyncReconcileRequestCurrentReleaseManagementEnum = "auto"; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleaseoverrideunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleaseoverrideunion.md index f2029ef4e..aabaedc38 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleaseoverrideunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleaseoverrideunion.md @@ -20,4 +20,3 @@ const value: models.SyncReconcileRequestCurrentReleaseOverride = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleaseprofileunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleaseprofileunion.md index 53ec7279c..3b2db8552 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleaseprofileunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleaseprofileunion.md @@ -20,4 +20,3 @@ const value: models.SyncReconcileRequestCurrentReleaseProfile = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleaseresources.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleaseresources.md index 4f4b85dfa..0bda4c11a 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleaseresources.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleaseresources.md @@ -17,9 +17,10 @@ let value: SyncReconcileRequestCurrentReleaseResources = { ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `config` | [models.SyncReconcileRequestCurrentReleaseConfig](../models/syncreconcilerequestcurrentreleaseconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | -| `dependencies` | [models.SyncReconcileRequestCurrentReleaseDependency](../models/syncreconcilerequestcurrentreleasedependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | -| `lifecycle` | [models.CurrentReleaseStateLifecycle](../models/currentreleasestatelifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | -| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `config` | [models.SyncReconcileRequestCurrentReleaseConfig](../models/syncreconcilerequestcurrentreleaseconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | +| `dependencies` | [models.SyncReconcileRequestCurrentReleaseDependency](../models/syncreconcilerequestcurrentreleasedependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | +| `enabledWhen` | *string* | :heavy_minus_sign: | Id of the boolean stack input that decides whether this resource is
created at all. `None` means always create it.

Set by `.enabled(input)` in the SDK. Setup emitters render the resource
conditionally on the matching template variable, so a deployer who says no
never gets the resource, its outputs, or anything derived from it. | +| `lifecycle` | [models.CurrentReleaseStateLifecycle](../models/currentreleasestatelifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | +| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleasetypeunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleasetypeunion.md index e8fc62ba2..1f35858c5 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleasetypeunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleasetypeunion.md @@ -14,4 +14,3 @@ const value: models.SyncReconcileRequestCurrentReleaseTypeEnvEnum = "plain"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleaseunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleaseunion.md index fbeeec6ed..a3e89ee05 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleaseunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleaseunion.md @@ -33,4 +33,3 @@ const value: models.SyncReconcileRequestCurrentRelease = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleasevalidationunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleasevalidationunion.md index 4b4ccfb1d..3f1c82812 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleasevalidationunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestcurrentreleasevalidationunion.md @@ -14,4 +14,3 @@ const value: models.SyncReconcileRequestCurrentReleaseValidation = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdata6.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdata6.md new file mode 100644 index 000000000..89d2278e7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdata6.md @@ -0,0 +1,30 @@ +# SyncReconcileRequestData6 + +## Example Usage + +```typescript +import { SyncReconcileRequestData6 } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestData6 = { + enabled: true, + keyArn: "", + keySpec: "", + keyState: "", + keyUsage: "", + status: { + health: "unhealthy", + lifecycle: "stopped", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `enabled` | *boolean* | :heavy_check_mark: | N/A | +| `keyArn` | *string* | :heavy_check_mark: | N/A | +| `keySpec` | *string* | :heavy_check_mark: | N/A | +| `keyState` | *string* | :heavy_check_mark: | N/A | +| `keyUsage` | *string* | :heavy_check_mark: | N/A | +| `status` | [models.ResourceHeartbeatStatus70](../models/resourceheartbeatstatus70.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdata7.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdata7.md new file mode 100644 index 000000000..6ec228328 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdata7.md @@ -0,0 +1,27 @@ +# SyncReconcileRequestData7 + +## Example Usage + +```typescript +import { SyncReconcileRequestData7 } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestData7 = { + cryptoKeyName: "", + purpose: "", + status: { + health: "degraded", + lifecycle: "running", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `algorithm` | *string* | :heavy_minus_sign: | N/A | +| `cryptoKeyName` | *string* | :heavy_check_mark: | N/A | +| `primaryState` | *string* | :heavy_minus_sign: | N/A | +| `primaryVersion` | *string* | :heavy_minus_sign: | N/A | +| `purpose` | *string* | :heavy_check_mark: | N/A | +| `status` | [models.ResourceHeartbeatStatus71](../models/resourceheartbeatstatus71.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdata8.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdata8.md new file mode 100644 index 000000000..f0dd70791 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdata8.md @@ -0,0 +1,28 @@ +# SyncReconcileRequestData8 + +## Example Usage + +```typescript +import { SyncReconcileRequestData8 } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestData8 = { + keyId: "", + keyOperations: [], + keyType: "", + status: { + health: "unknown", + lifecycle: "deleting", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | -------------------------------------------------------------------------- | +| `enabled` | *boolean* | :heavy_minus_sign: | N/A | +| `keyId` | *string* | :heavy_check_mark: | N/A | +| `keyOperations` | *string*[] | :heavy_check_mark: | N/A | +| `keyType` | *string* | :heavy_check_mark: | N/A | +| `recoveryLevel` | *string* | :heavy_minus_sign: | N/A | +| `status` | [models.ResourceHeartbeatStatus72](../models/resourceheartbeatstatus72.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion1.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion1.md index 5af4c48c4..c6df8b795 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion1.md @@ -93,4 +93,3 @@ const value: models.DataLocal1 = { backend: "local", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion10.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion10.md index cb80231f0..aeac4f142 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion10.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion10.md @@ -121,4 +121,3 @@ const value: models.DataLocal10 = { backend: "local", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion11.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion11.md index 12d35d2a4..b9cdf090d 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion11.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion11.md @@ -64,4 +64,3 @@ const value: models.DataAzureVnet = { backend: "azureVnet", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion12.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion12.md index 1554561ed..87a58d6f8 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion12.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion12.md @@ -69,4 +69,3 @@ const value: models.DataAzureManagedIdentity2 = { backend: "azureManagedIdentity", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion13.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion13.md index 0759afcc4..386e68841 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion13.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion13.md @@ -109,4 +109,3 @@ const value: models.DataLocal11 = { backend: "local", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion14.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion14.md index 5e8d3da56..ffe4ce3d9 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion14.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion14.md @@ -105,4 +105,3 @@ const value: models.DataKubernetesJob = { backend: "kubernetesJob", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion15.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion15.md index d216133e2..8dc19fc3a 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion15.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion15.md @@ -45,4 +45,3 @@ const value: models.DataAzureResourceProvider = { backend: "azureResourceProvider", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion16.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion16.md index 81fc5e752..a035e834f 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion16.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion16.md @@ -3,549 +3,114 @@ ## Supported Types -### `models.DataStorage` +### `models.DataAwsBedrock` ```typescript -const value: models.DataStorage = { - data: { - path: "/home", - pathExists: false, - status: { - collectionIssues: [ - { - message: "", - reason: "collection-failed", - severity: "warning", - source: "", - }, - ], - health: "unhealthy", - lifecycle: "stopping", - partial: false, - stale: true, - }, - backend: "local", +const value: models.DataAwsBedrock = { + availability: { + catalogRevision: "", + models: [], + source: "aws-bedrock", }, - resourceType: "storage", -}; -``` - -### `models.DataWorker` - -```typescript -const value: models.DataWorker = { - data: { - commandSupported: false, - events: [ + region: "", + status: { + collectionIssues: [ { - kind: "", message: "", - severity: "info", - timestamp: new Date("2024-07-21T11:12:11.792Z"), + reason: "timed-out", + severity: "warning", + source: "", }, ], - imagePathPresent: true, - status: { - collectionIssues: [ - { - message: "", - reason: "not-installed", - severity: "warning", - source: "", - }, - ], - health: "degraded", - lifecycle: "updating", - partial: true, - stale: false, - }, - triggerCount: 71218, - backend: "local", + health: "unhealthy", + lifecycle: "deleting", + partial: false, + stale: false, }, - resourceType: "worker", + backend: "awsBedrock", }; ``` -### `models.DataContainer` +### `models.DataGcpVertex` ```typescript -const value: models.DataContainer = { - data: { - attentionCount: 486054, - containerId: "", - events: [], - replicaUnits: [], - replicas: {}, - schedulingMode: "stateful", - status: { - collectionIssues: [ - { - message: "", - reason: "not-installed", - severity: "info", - source: "", - }, - ], - health: "degraded", - lifecycle: "failed", - partial: false, - stale: true, - }, - backend: "horizonPlatform", - }, - resourceType: "container", -}; -``` - -### `models.DataDaemon` - -```typescript -const value: models.DataDaemon = { - data: { - assignedMachines: 489905, - capacityGroup: "", - commandSupported: true, - daemonInstances: [], - desiredMachines: 665477, - events: [ +const value: models.DataGcpVertex = { + availability: { + catalogRevision: "", + models: [ { - message: "", - reason: "", + accessTest: "not-checked", + availability: "unknown", + blockers: [], + clientApis: [], + publicModelId: "", }, ], - healthyInstances: 921353, - horizonClusterId: "", - horizonStatus: "", - latestUpdateTimestamp: "", - status: { - collectionIssues: [ - { - message: "", - reason: "api-unavailable", - severity: "warning", - source: "", - }, - ], - health: "unknown", - lifecycle: "stopped", - partial: true, - stale: true, - }, - unavailableInstances: 431179, - backend: "azure", + source: "anthropic", }, - resourceType: "daemon", -}; -``` - -### `models.DataComputeCluster` - -```typescript -const value: models.DataComputeCluster = { - data: { - dockerAvailable: true, - name: "", - networkAvailable: true, - nodes: {}, - status: { - collectionIssues: [ - { - message: "", - reason: "forbidden", - severity: "error", - source: "", - }, - ], - health: "unknown", - lifecycle: "running", - partial: false, - stale: true, - }, - backend: "local", + location: "", + project: "", + status: { + collectionIssues: [], + health: "degraded", + lifecycle: "unknown", + partial: false, + stale: false, }, - resourceType: "compute-cluster", + backend: "gcpVertex", }; ``` -### `models.DataKubernetesCluster` +### `models.DataAzureFoundry` ```typescript -const value: models.DataKubernetesCluster = { - data: { - events: [ +const value: models.DataAzureFoundry = { + accountName: "", + availability: { + catalogRevision: "", + models: [ { - message: "", - reason: "", + accessTest: "verified", + availability: "available", + blockers: [], + clientApis: [ + "anthropic-messages", + ], + publicModelId: "", }, ], - name: "", - nodeCounts: {}, - podCounts: {}, - status: { - collectionIssues: [ - { - message: "", - reason: "timed-out", - severity: "warning", - source: "", - }, - ], - health: "unknown", - lifecycle: "stopping", - partial: true, - stale: false, - }, + source: "azure-foundry", }, - resourceType: "kubernetes-cluster", -}; -``` - -### `models.DataQueue` - -```typescript -const value: models.DataQueue = { - data: { - messageStorageAllowedPersistenceRegions: [ - "", - "", - ], - status: { - collectionIssues: [], - health: "healthy", - lifecycle: "failed", - partial: true, - stale: true, - }, - subscriptionLabels: { - "key": "", - }, - subscriptionPushAttributes: { - "key": "", - "key1": "", - "key2": "", - }, - topicLabels: {}, - topicName: "", - backend: "gcpPubSub", - }, - resourceType: "queue", -}; -``` - -### `models.DataKv` - -```typescript -const value: models.DataKv = { - data: { - status: { - collectionIssues: [ - { - message: "", - reason: "api-unavailable", - severity: "warning", - source: "", - }, - ], - health: "degraded", - lifecycle: "unknown", - partial: true, - stale: false, - }, - storageAccountName: "", - tableExists: false, - tableName: "", - backend: "azureTable", - }, - resourceType: "kv", -}; -``` - -### `models.DataPostgres` - -```typescript -const value: models.DataPostgres = { - data: { - serverName: "", - status: { - collectionIssues: [], - health: "unknown", - lifecycle: "stopped", - partial: true, - stale: false, - }, - backend: "flexibleServer", - }, - resourceType: "postgres", -}; -``` - -### `models.DataVault` - -```typescript -const value: models.DataVault = { - data: { - accountId: "", - parameterMetadataSampled: true, - prefix: "", - region: "", - status: { - collectionIssues: [], - health: "unknown", - lifecycle: "unknown", - partial: true, - stale: false, - }, - backend: "awsParameterStore", - }, - resourceType: "vault", -}; -``` - -### `models.DataServiceAccount` - -```typescript -const value: models.DataServiceAccount = { - data: { - customRoleDefinitionCount: 991371, - customRoleDefinitionIds: [ - "", - "", - "", - ], - location: "", - managedTagCount: 438151, - name: "", - resourceGroup: "", - resourceId: "", - roleAssignmentCount: 703891, - roleAssignmentIds: [ - "", + status: { + collectionIssues: [ + { + message: "", + reason: "collection-failed", + severity: "warning", + source: "", + }, ], - stackPermissionsApplied: true, - status: { - collectionIssues: [ - { - message: "", - reason: "timed-out", - severity: "warning", - source: "", - }, - ], - health: "healthy", - lifecycle: "stopped", - partial: true, - stale: false, - }, - backend: "azureManagedIdentity", - }, - resourceType: "service-account", -}; -``` - -### `models.DataNetwork` - -```typescript -const value: models.DataNetwork = { - data: { - isByoVnet: true, - status: { - collectionIssues: [], - health: "unhealthy", - lifecycle: "unknown", - partial: true, - stale: true, - }, - backend: "azureVnet", - }, - resourceType: "network", -}; -``` - -### `models.DataRemoteStackManagement` - -```typescript -const value: models.DataRemoteStackManagement = { - data: { - managementPermissionsApplied: true, - status: { - collectionIssues: [ - { - message: "", - reason: "api-unavailable", - severity: "warning", - source: "", - }, - ], - health: "unknown", - lifecycle: "stopping", - partial: true, - stale: true, - }, - backend: "awsIamRole", - }, - resourceType: "remote-stack-management", -}; -``` - -### `models.DataArtifactRegistry` - -```typescript -const value: models.DataArtifactRegistry = { - data: { - reachable: false, - registryUrl: "https://tedious-reach.com", - status: { - collectionIssues: [], - health: "unknown", - lifecycle: "creating", - partial: true, - stale: false, - }, - backend: "local", - }, - resourceType: "artifact-registry", -}; -``` - -### `models.DataBuild` - -```typescript -const value: models.DataBuild = { - data: { - encryptionKeyPresent: false, - environmentVariableCount: 19119, - projectName: "", - serviceRolePresent: true, - status: { - collectionIssues: [ - { - message: "", - reason: "not-installed", - severity: "info", - source: "", - }, - ], - health: "healthy", - lifecycle: "failed", - partial: false, - stale: true, - }, - backend: "awsCodeBuild", + health: "unknown", + lifecycle: "stopping", + partial: false, + stale: false, }, - resourceType: "build", + backend: "azureFoundry", }; ``` -### `models.DataServiceActivation` +### `models.DataExternal` ```typescript -const value: models.DataServiceActivation = { - data: { - enabled: true, - projectId: "", - serviceName: "", - status: { - collectionIssues: [ - { - message: "", - reason: "api-unavailable", - severity: "error", - source: "", - }, - ], - health: "unhealthy", - lifecycle: "stopped", - partial: true, - stale: true, - }, - backend: "gcpServiceUsage", +const value: models.DataExternal = { + provider: "", + status: { + collectionIssues: [], + health: "unknown", + lifecycle: "running", + partial: true, + stale: false, }, - resourceType: "service_activation", + backend: "external", }; ``` - -### `models.DataAzureResourceGroup` - -```typescript -const value: models.DataAzureResourceGroup = { - data: { - managedTags: {}, - name: "", - status: { - collectionIssues: [ - { - message: "", - reason: "timed-out", - severity: "error", - source: "", - }, - ], - health: "degraded", - lifecycle: "deleting", - partial: true, - stale: true, - }, - }, - resourceType: "azure_resource_group", -}; -``` - -### `models.DataAzureStorageAccount` - -```typescript -const value: models.DataAzureStorageAccount = { - data: { - name: "", - primaryEndpoints: {}, - secondaryEndpoints: {}, - status: { - collectionIssues: [], - health: "unhealthy", - lifecycle: "unknown", - partial: true, - stale: false, - }, - }, - resourceType: "azure_storage_account", -}; -``` - -### `models.DataAzureContainerAppsEnvironment` - -```typescript -const value: models.DataAzureContainerAppsEnvironment = { - data: { - name: "", - status: { - collectionIssues: [], - health: "unknown", - lifecycle: "scaling", - partial: true, - stale: true, - }, - workloadProfileCount: 415280, - workloadProfiles: [], - }, - resourceType: "azure_container_apps_environment", -}; -``` - -### `models.DataAzureServiceBusNamespace` - -```typescript -const value: models.DataAzureServiceBusNamespace = { - data: { - name: "", - privateEndpointConnectionCount: 152029, - status: { - collectionIssues: [], - health: "degraded", - lifecycle: "creating", - partial: true, - stale: false, - }, - }, - resourceType: "azure_service_bus_namespace", -}; -``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion17.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion17.md new file mode 100644 index 000000000..009225c4c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion17.md @@ -0,0 +1,56 @@ +# SyncReconcileRequestDataUnion17 + + +## Supported Types + +### `models.DataAwsKms` + +```typescript +const value: models.DataAwsKms = { + data: { + enabled: true, + keyArn: "", + keySpec: "", + keyState: "", + keyUsage: "", + status: { + health: "unhealthy", + lifecycle: "stopped", + }, + }, + provider: "aws-kms", +}; +``` + +### `models.DataGcpCloudKms` + +```typescript +const value: models.DataGcpCloudKms = { + data: { + cryptoKeyName: "", + purpose: "", + status: { + health: "degraded", + lifecycle: "running", + }, + }, + provider: "gcp-cloud-kms", +}; +``` + +### `models.DataAzureKeyVault2` + +```typescript +const value: models.DataAzureKeyVault2 = { + data: { + keyId: "", + keyOperations: [], + keyType: "", + status: { + health: "unknown", + lifecycle: "deleting", + }, + }, + provider: "azure-key-vault", +}; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion18.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion18.md new file mode 100644 index 000000000..dc178088f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion18.md @@ -0,0 +1,603 @@ +# SyncReconcileRequestDataUnion18 + + +## Supported Types + +### `models.DataStorage` + +```typescript +const value: models.DataStorage = { + data: { + path: "/home", + pathExists: false, + status: { + collectionIssues: [ + { + message: "", + reason: "collection-failed", + severity: "warning", + source: "", + }, + ], + health: "unhealthy", + lifecycle: "stopping", + partial: false, + stale: true, + }, + backend: "local", + }, + resourceType: "storage", +}; +``` + +### `models.DataWorker` + +```typescript +const value: models.DataWorker = { + data: { + commandSupported: false, + events: [ + { + kind: "", + message: "", + severity: "info", + timestamp: new Date("2024-07-21T11:12:11.792Z"), + }, + ], + imagePathPresent: true, + status: { + collectionIssues: [ + { + message: "", + reason: "not-installed", + severity: "warning", + source: "", + }, + ], + health: "degraded", + lifecycle: "updating", + partial: true, + stale: false, + }, + triggerCount: 71218, + backend: "local", + }, + resourceType: "worker", +}; +``` + +### `models.DataContainer` + +```typescript +const value: models.DataContainer = { + data: { + attentionCount: 486054, + containerId: "", + events: [], + replicaUnits: [], + replicas: {}, + schedulingMode: "stateful", + status: { + collectionIssues: [ + { + message: "", + reason: "not-installed", + severity: "info", + source: "", + }, + ], + health: "degraded", + lifecycle: "failed", + partial: false, + stale: true, + }, + backend: "horizonPlatform", + }, + resourceType: "container", +}; +``` + +### `models.DataDaemon` + +```typescript +const value: models.DataDaemon = { + data: { + assignedMachines: 489905, + capacityGroup: "", + commandSupported: true, + daemonInstances: [], + desiredMachines: 665477, + events: [ + { + message: "", + reason: "", + }, + ], + healthyInstances: 921353, + horizonClusterId: "", + horizonStatus: "", + latestUpdateTimestamp: "", + status: { + collectionIssues: [ + { + message: "", + reason: "api-unavailable", + severity: "warning", + source: "", + }, + ], + health: "unknown", + lifecycle: "stopped", + partial: true, + stale: true, + }, + unavailableInstances: 431179, + backend: "azure", + }, + resourceType: "daemon", +}; +``` + +### `models.DataComputeCluster` + +```typescript +const value: models.DataComputeCluster = { + data: { + dockerAvailable: true, + name: "", + networkAvailable: true, + nodes: {}, + status: { + collectionIssues: [ + { + message: "", + reason: "forbidden", + severity: "error", + source: "", + }, + ], + health: "unknown", + lifecycle: "running", + partial: false, + stale: true, + }, + backend: "local", + }, + resourceType: "compute-cluster", +}; +``` + +### `models.DataKubernetesCluster` + +```typescript +const value: models.DataKubernetesCluster = { + data: { + events: [ + { + message: "", + reason: "", + }, + ], + name: "", + nodeCounts: {}, + podCounts: {}, + status: { + collectionIssues: [ + { + message: "", + reason: "timed-out", + severity: "warning", + source: "", + }, + ], + health: "unknown", + lifecycle: "stopping", + partial: true, + stale: false, + }, + }, + resourceType: "kubernetes-cluster", +}; +``` + +### `models.DataQueue` + +```typescript +const value: models.DataQueue = { + data: { + messageStorageAllowedPersistenceRegions: [ + "", + "", + ], + status: { + collectionIssues: [], + health: "healthy", + lifecycle: "failed", + partial: true, + stale: true, + }, + subscriptionLabels: { + "key": "", + }, + subscriptionPushAttributes: { + "key": "", + "key1": "", + "key2": "", + }, + topicLabels: {}, + topicName: "", + backend: "gcpPubSub", + }, + resourceType: "queue", +}; +``` + +### `models.DataKv` + +```typescript +const value: models.DataKv = { + data: { + status: { + collectionIssues: [ + { + message: "", + reason: "api-unavailable", + severity: "warning", + source: "", + }, + ], + health: "degraded", + lifecycle: "unknown", + partial: true, + stale: false, + }, + storageAccountName: "", + tableExists: false, + tableName: "", + backend: "azureTable", + }, + resourceType: "kv", +}; +``` + +### `models.DataPostgres` + +```typescript +const value: models.DataPostgres = { + data: { + serverName: "", + status: { + collectionIssues: [], + health: "unknown", + lifecycle: "stopped", + partial: true, + stale: false, + }, + backend: "flexibleServer", + }, + resourceType: "postgres", +}; +``` + +### `models.DataVault` + +```typescript +const value: models.DataVault = { + data: { + accountId: "", + parameterMetadataSampled: true, + prefix: "", + region: "", + status: { + collectionIssues: [], + health: "unknown", + lifecycle: "unknown", + partial: true, + stale: false, + }, + backend: "awsParameterStore", + }, + resourceType: "vault", +}; +``` + +### `models.DataServiceAccount` + +```typescript +const value: models.DataServiceAccount = { + data: { + customRoleDefinitionCount: 991371, + customRoleDefinitionIds: [ + "", + "", + "", + ], + location: "", + managedTagCount: 438151, + name: "", + resourceGroup: "", + resourceId: "", + roleAssignmentCount: 703891, + roleAssignmentIds: [ + "", + ], + stackPermissionsApplied: true, + status: { + collectionIssues: [ + { + message: "", + reason: "timed-out", + severity: "warning", + source: "", + }, + ], + health: "healthy", + lifecycle: "stopped", + partial: true, + stale: false, + }, + backend: "azureManagedIdentity", + }, + resourceType: "service-account", +}; +``` + +### `models.DataNetwork` + +```typescript +const value: models.DataNetwork = { + data: { + isByoVnet: true, + status: { + collectionIssues: [], + health: "unhealthy", + lifecycle: "unknown", + partial: true, + stale: true, + }, + backend: "azureVnet", + }, + resourceType: "network", +}; +``` + +### `models.DataRemoteStackManagement` + +```typescript +const value: models.DataRemoteStackManagement = { + data: { + managementPermissionsApplied: true, + status: { + collectionIssues: [ + { + message: "", + reason: "api-unavailable", + severity: "warning", + source: "", + }, + ], + health: "unknown", + lifecycle: "stopping", + partial: true, + stale: true, + }, + backend: "awsIamRole", + }, + resourceType: "remote-stack-management", +}; +``` + +### `models.DataArtifactRegistry` + +```typescript +const value: models.DataArtifactRegistry = { + data: { + reachable: false, + registryUrl: "https://tedious-reach.com", + status: { + collectionIssues: [], + health: "unknown", + lifecycle: "creating", + partial: true, + stale: false, + }, + backend: "local", + }, + resourceType: "artifact-registry", +}; +``` + +### `models.DataBuild` + +```typescript +const value: models.DataBuild = { + data: { + encryptionKeyPresent: false, + environmentVariableCount: 19119, + projectName: "", + serviceRolePresent: true, + status: { + collectionIssues: [ + { + message: "", + reason: "not-installed", + severity: "info", + source: "", + }, + ], + health: "healthy", + lifecycle: "failed", + partial: false, + stale: true, + }, + backend: "awsCodeBuild", + }, + resourceType: "build", +}; +``` + +### `models.DataServiceActivation` + +```typescript +const value: models.DataServiceActivation = { + data: { + enabled: true, + projectId: "", + serviceName: "", + status: { + collectionIssues: [ + { + message: "", + reason: "api-unavailable", + severity: "error", + source: "", + }, + ], + health: "unhealthy", + lifecycle: "stopped", + partial: true, + stale: true, + }, + backend: "gcpServiceUsage", + }, + resourceType: "service_activation", +}; +``` + +### `models.DataAzureResourceGroup` + +```typescript +const value: models.DataAzureResourceGroup = { + data: { + managedTags: {}, + name: "", + status: { + collectionIssues: [ + { + message: "", + reason: "timed-out", + severity: "error", + source: "", + }, + ], + health: "degraded", + lifecycle: "deleting", + partial: true, + stale: true, + }, + }, + resourceType: "azure_resource_group", +}; +``` + +### `models.DataAzureStorageAccount` + +```typescript +const value: models.DataAzureStorageAccount = { + data: { + name: "", + primaryEndpoints: {}, + secondaryEndpoints: {}, + status: { + collectionIssues: [], + health: "unhealthy", + lifecycle: "unknown", + partial: true, + stale: false, + }, + }, + resourceType: "azure_storage_account", +}; +``` + +### `models.DataAzureContainerAppsEnvironment` + +```typescript +const value: models.DataAzureContainerAppsEnvironment = { + data: { + name: "", + status: { + collectionIssues: [], + health: "unknown", + lifecycle: "scaling", + partial: true, + stale: true, + }, + workloadProfileCount: 415280, + workloadProfiles: [], + }, + resourceType: "azure_container_apps_environment", +}; +``` + +### `models.DataAzureServiceBusNamespace` + +```typescript +const value: models.DataAzureServiceBusNamespace = { + data: { + name: "", + privateEndpointConnectionCount: 152029, + status: { + collectionIssues: [], + health: "degraded", + lifecycle: "creating", + partial: true, + stale: false, + }, + }, + resourceType: "azure_service_bus_namespace", +}; +``` + +### `models.DataAi` + +```typescript +const value: models.DataAi = { + data: { + availability: { + catalogRevision: "", + models: [ + { + accessTest: "not-checked", + availability: "unknown", + blockers: [], + clientApis: [], + publicModelId: "", + }, + ], + source: "anthropic", + }, + location: "", + project: "", + status: { + collectionIssues: [], + health: "degraded", + lifecycle: "unknown", + partial: false, + stale: false, + }, + backend: "gcpVertex", + }, + resourceType: "ai", +}; +``` + +### `models.DataKey` + +```typescript +const value: models.DataKey = { + data: { + data: { + keyId: "", + keyOperations: [], + keyType: "", + status: { + health: "unknown", + lifecycle: "deleting", + }, + }, + provider: "azure-key-vault", + }, + resourceType: "key", +}; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion2.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion2.md index 616602e2a..a40527269 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion2.md @@ -131,4 +131,3 @@ const value: models.DataLocal2 = { backend: "local", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion3.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion3.md index 54a36bcb4..c50c19741 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion3.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion3.md @@ -77,4 +77,3 @@ const value: models.DataLocal3 = { backend: "local", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion4.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion4.md index 259a268eb..48383efab 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion4.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion4.md @@ -212,4 +212,3 @@ const value: models.DataLocal4 = { backend: "local", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion5.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion5.md index ad1cf9902..51f14929b 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion5.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion5.md @@ -143,4 +143,3 @@ const value: models.DataLocal5 = { backend: "local", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion6.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion6.md index 26c967501..39c2b92a3 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion6.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion6.md @@ -88,4 +88,3 @@ const value: models.DataLocal6 = { backend: "local", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion7.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion7.md index a3e43a50c..1da736b74 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion7.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion7.md @@ -93,4 +93,3 @@ const value: models.DataLocal7 = { backend: "local", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion8.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion8.md index 33d237be1..47c96d1a5 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion8.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion8.md @@ -76,4 +76,3 @@ const value: models.DataLocal8 = { backend: "local", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion9.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion9.md index 3da519146..c78b7d13d 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion9.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestdataunion9.md @@ -41,23 +41,30 @@ const value: models.DataGcpSecretManager = { }; ``` -### `models.DataAzureKeyVault` +### `models.DataAzureKeyVault1` ```typescript -const value: models.DataAzureKeyVault = { - accessPolicyCount: 923246, +const value: models.DataAzureKeyVault1 = { + accessPolicyCount: 582917, name: "", - privateEndpointConnectionCount: 319306, + privateEndpointConnectionCount: 112234, publicNetworkAccess: "", rbacAuthorizationEnabled: true, secretMetadataListed: false, - softDeleteEnabled: false, - softDeleteRetentionDays: 497787, + softDeleteEnabled: true, + softDeleteRetentionDays: 457442, status: { - collectionIssues: [], - health: "degraded", - lifecycle: "creating", - partial: true, + collectionIssues: [ + { + message: "", + reason: "timed-out", + severity: "error", + source: "", + }, + ], + health: "unknown", + lifecycle: "updating", + partial: false, stale: false, }, backend: "azureKeyVault", @@ -113,4 +120,3 @@ const value: models.DataLocal9 = { backend: "local", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestenvironmentinfounion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestenvironmentinfounion.md index d2929691f..3444561c6 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestenvironmentinfounion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestenvironmentinfounion.md @@ -60,4 +60,3 @@ const value: models.SyncReconcileRequestEnvironmentInfoTest = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequesterrorunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequesterrorunion.md index 4aec5b89a..dfccf6a2b 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequesterrorunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequesterrorunion.md @@ -18,4 +18,3 @@ const value: models.SyncReconcileRequestError = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestinitialsetupauthority.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestinitialsetupauthority.md new file mode 100644 index 000000000..a28264c13 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestinitialsetupauthority.md @@ -0,0 +1,17 @@ +# SyncReconcileRequestInitialSetupAuthority + +Actor that owns structural work during the initial setup phase. + +## Example Usage + +```typescript +import { SyncReconcileRequestInitialSetupAuthority } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestInitialSetupAuthority = "importedHandoff"; +``` + +## Values + +```typescript +"importedHandoff" | "directSetup" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestoutputsunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestoutputsunion.md index 41bdb2c98..e5feeb454 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestoutputsunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestoutputsunion.md @@ -16,4 +16,3 @@ const value: models.SyncReconcileRequestOutputs = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstack.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstack.md new file mode 100644 index 000000000..51fddc16d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstack.md @@ -0,0 +1,24 @@ +# SyncReconcileRequestPendingPreparedStack + +A bag of resources, unaware of any cloud. + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStack } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStack = { + id: "", + resources: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the stack | +| `inputs` | [models.SyncReconcileRequestPendingPreparedStackInput](../models/syncreconcilerequestpendingpreparedstackinput.md)[] | :heavy_minus_sign: | Input definitions required before setup or deployment can proceed. | +| `permissions` | [models.SyncReconcileRequestPendingPreparedStackPermissions](../models/syncreconcilerequestpendingpreparedstackpermissions.md) | :heavy_minus_sign: | Combined permissions configuration that contains both profiles and management | +| `resources` | Record | :heavy_check_mark: | Map of resource IDs to their configurations and lifecycle settings | +| `supportedPlatforms` | [models.SyncReconcileRequestPendingPreparedStackSupportedPlatform](../models/syncreconcilerequestpendingpreparedstacksupportedplatform.md)[] | :heavy_minus_sign: | Which platforms this stack supports. When None, all platforms are supported. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackconfig.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackconfig.md new file mode 100644 index 000000000..ac778a24d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackconfig.md @@ -0,0 +1,22 @@ +# SyncReconcileRequestPendingPreparedStackConfig + +Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackConfig } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackConfig = { + id: "", + type: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. | +| `type` | *string* | :heavy_check_mark: | Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. | +| `additionalProperties` | Record | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackdefaultboolean.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackdefaultboolean.md new file mode 100644 index 000000000..aed707997 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackdefaultboolean.md @@ -0,0 +1,19 @@ +# SyncReconcileRequestPendingPreparedStackDefaultBoolean + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackDefaultBoolean } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackDefaultBoolean = { + type: "boolean", + value: true, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `type` | [models.SyncReconcileRequestPendingPreparedStackTypeBoolean](../models/syncreconcilerequestpendingpreparedstacktypeboolean.md) | :heavy_check_mark: | N/A | +| `value` | *boolean* | :heavy_check_mark: | Boolean default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackdefaultnumber.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackdefaultnumber.md new file mode 100644 index 000000000..2d672fa40 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackdefaultnumber.md @@ -0,0 +1,19 @@ +# SyncReconcileRequestPendingPreparedStackDefaultNumber + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackDefaultNumber } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackDefaultNumber = { + type: "number", + value: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | +| `type` | [models.SyncReconcileRequestPendingPreparedStackTypeNumber](../models/syncreconcilerequestpendingpreparedstacktypenumber.md) | :heavy_check_mark: | N/A | +| `value` | *string* | :heavy_check_mark: | Number default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackdefaultstring.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackdefaultstring.md new file mode 100644 index 000000000..b6f510b75 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackdefaultstring.md @@ -0,0 +1,19 @@ +# SyncReconcileRequestPendingPreparedStackDefaultString + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackDefaultString } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackDefaultString = { + type: "string", + value: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | +| `type` | [models.SyncReconcileRequestPendingPreparedStackTypeString](../models/syncreconcilerequestpendingpreparedstacktypestring.md) | :heavy_check_mark: | N/A | +| `value` | *string* | :heavy_check_mark: | String default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackdefaultstringlist.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackdefaultstringlist.md new file mode 100644 index 000000000..1163d420c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackdefaultstringlist.md @@ -0,0 +1,22 @@ +# SyncReconcileRequestPendingPreparedStackDefaultStringList + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackDefaultStringList } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackDefaultStringList = { + type: "stringList", + value: [ + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | +| `type` | [models.SyncReconcileRequestPendingPreparedStackTypeStringList](../models/syncreconcilerequestpendingpreparedstacktypestringlist.md) | :heavy_check_mark: | N/A | +| `value` | *string*[] | :heavy_check_mark: | String list default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackdefaultunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackdefaultunion.md new file mode 100644 index 000000000..e313250c4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackdefaultunion.md @@ -0,0 +1,50 @@ +# SyncReconcileRequestPendingPreparedStackDefaultUnion + + +## Supported Types + +### `models.SyncReconcileRequestPendingPreparedStackDefaultString` + +```typescript +const value: models.SyncReconcileRequestPendingPreparedStackDefaultString = { + type: "string", + value: "", +}; +``` + +### `models.SyncReconcileRequestPendingPreparedStackDefaultNumber` + +```typescript +const value: models.SyncReconcileRequestPendingPreparedStackDefaultNumber = { + type: "number", + value: "", +}; +``` + +### `models.SyncReconcileRequestPendingPreparedStackDefaultBoolean` + +```typescript +const value: models.SyncReconcileRequestPendingPreparedStackDefaultBoolean = { + type: "boolean", + value: true, +}; +``` + +### `models.SyncReconcileRequestPendingPreparedStackDefaultStringList` + +```typescript +const value: models.SyncReconcileRequestPendingPreparedStackDefaultStringList = + { + type: "stringList", + value: [ + "", + "", + ], + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackdependency.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackdependency.md new file mode 100644 index 000000000..082334ed0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackdependency.md @@ -0,0 +1,21 @@ +# SyncReconcileRequestPendingPreparedStackDependency + +Reference to a resource by its stable id and resource type. + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackDependency } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackDependency = { + id: "", + type: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | N/A | +| `type` | *string* | :heavy_check_mark: | Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackenv.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackenv.md new file mode 100644 index 000000000..158ac8c0e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackenv.md @@ -0,0 +1,21 @@ +# SyncReconcileRequestPendingPreparedStackEnv + +How a resolved stack input is injected into runtime environment variables. + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackEnv } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackEnv = { + name: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| `name` | *string* | :heavy_check_mark: | Environment variable name. | +| `targetResources` | *string*[] | :heavy_minus_sign: | Target resource IDs or patterns. None means every env-capable resource. | +| `type` | *models.SyncReconcileRequestPendingPreparedStackTypeUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextend.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextend.md new file mode 100644 index 000000000..1b05db9fe --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextend.md @@ -0,0 +1,23 @@ +# SyncReconcileRequestPendingPreparedStackExtend + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackExtend } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackExtend = { + description: "from unto closely", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.SyncReconcileRequestPendingPreparedStackExtendPlatforms](../models/syncreconcilerequestpendingpreparedstackextendplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendaw.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendaw.md new file mode 100644 index 000000000..acbc8c0a1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendaw.md @@ -0,0 +1,24 @@ +# SyncReconcileRequestPendingPreparedStackExtendAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackExtendAw } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackExtendAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncReconcileRequestPendingPreparedStackExtendAwBinding](../models/syncreconcilerequestpendingpreparedstackextendawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.SyncReconcileRequestPendingPreparedStackExtendEffect](../models/syncreconcilerequestpendingpreparedstackextendeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.SyncReconcileRequestPendingPreparedStackExtendAwGrant](../models/syncreconcilerequestpendingpreparedstackextendawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendawbinding.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendawbinding.md new file mode 100644 index 000000000..ab6244c83 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendawbinding.md @@ -0,0 +1,18 @@ +# SyncReconcileRequestPendingPreparedStackExtendAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackExtendAwBinding } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackExtendAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.PendingPreparedStackExtendStateAwResource](../models/pendingpreparedstackextendstateawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.SyncReconcileRequestPendingPreparedStackExtendAwStack](../models/syncreconcilerequestpendingpreparedstackextendawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendawgrant.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendawgrant.md new file mode 100644 index 000000000..988016168 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendawgrant.md @@ -0,0 +1,21 @@ +# SyncReconcileRequestPendingPreparedStackExtendAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackExtendAwGrant } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackExtendAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendawstack.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendawstack.md new file mode 100644 index 000000000..d96f87bc2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendawstack.md @@ -0,0 +1,20 @@ +# SyncReconcileRequestPendingPreparedStackExtendAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackExtendAwStack } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackExtendAwStack = { + resources: [], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendazure.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendazure.md new file mode 100644 index 000000000..381ca360d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendazure.md @@ -0,0 +1,23 @@ +# SyncReconcileRequestPendingPreparedStackExtendAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackExtendAzure } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackExtendAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncReconcileRequestPendingPreparedStackExtendAzureBinding](../models/syncreconcilerequestpendingpreparedstackextendazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncReconcileRequestPendingPreparedStackExtendAzureGrant](../models/syncreconcilerequestpendingpreparedstackextendazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendazurebinding.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendazurebinding.md new file mode 100644 index 000000000..60ffa2740 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendazurebinding.md @@ -0,0 +1,18 @@ +# SyncReconcileRequestPendingPreparedStackExtendAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackExtendAzureBinding } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackExtendAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.PendingPreparedStackExtendStateAzureResource](../models/pendingpreparedstackextendstateazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.SyncReconcileRequestPendingPreparedStackExtendAzureStack](../models/syncreconcilerequestpendingpreparedstackextendazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendazuregrant.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendazuregrant.md new file mode 100644 index 000000000..386f50f9a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendazuregrant.md @@ -0,0 +1,21 @@ +# SyncReconcileRequestPendingPreparedStackExtendAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackExtendAzureGrant } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackExtendAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendazurestack.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendazurestack.md new file mode 100644 index 000000000..4dd07e114 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendazurestack.md @@ -0,0 +1,19 @@ +# SyncReconcileRequestPendingPreparedStackExtendAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackExtendAzureStack } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackExtendAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendeffect.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendeffect.md new file mode 100644 index 000000000..77b0d00a4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendeffect.md @@ -0,0 +1,17 @@ +# SyncReconcileRequestPendingPreparedStackExtendEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackExtendEffect } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackExtendEffect = "Allow"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendgcp.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendgcp.md new file mode 100644 index 000000000..bd58f0f57 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendgcp.md @@ -0,0 +1,23 @@ +# SyncReconcileRequestPendingPreparedStackExtendGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackExtendGcp } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackExtendGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncReconcileRequestPendingPreparedStackExtendGcpBinding](../models/syncreconcilerequestpendingpreparedstackextendgcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncReconcileRequestPendingPreparedStackExtendGcpGrant](../models/syncreconcilerequestpendingpreparedstackextendgcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendgcpbinding.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendgcpbinding.md new file mode 100644 index 000000000..8f80ba17e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendgcpbinding.md @@ -0,0 +1,18 @@ +# SyncReconcileRequestPendingPreparedStackExtendGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackExtendGcpBinding } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackExtendGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.PendingPreparedStackExtendStateGcpResource](../models/pendingpreparedstackextendstategcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.SyncReconcileRequestPendingPreparedStackExtendGcpStack](../models/syncreconcilerequestpendingpreparedstackextendgcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendgcpgrant.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendgcpgrant.md new file mode 100644 index 000000000..00799a996 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendgcpgrant.md @@ -0,0 +1,21 @@ +# SyncReconcileRequestPendingPreparedStackExtendGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackExtendGcpGrant } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackExtendGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendgcpstack.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendgcpstack.md new file mode 100644 index 000000000..90b930919 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendgcpstack.md @@ -0,0 +1,20 @@ +# SyncReconcileRequestPendingPreparedStackExtendGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackExtendGcpStack } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackExtendGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------- | +| `condition` | *models.PendingPreparedStackExtendStateStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendplatforms.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendplatforms.md new file mode 100644 index 000000000..8eab08438 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendplatforms.md @@ -0,0 +1,19 @@ +# SyncReconcileRequestPendingPreparedStackExtendPlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackExtendPlatforms } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackExtendPlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | +| `aws` | [models.SyncReconcileRequestPendingPreparedStackExtendAw](../models/syncreconcilerequestpendingpreparedstackextendaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.SyncReconcileRequestPendingPreparedStackExtendAzure](../models/syncreconcilerequestpendingpreparedstackextendazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.SyncReconcileRequestPendingPreparedStackExtendGcp](../models/syncreconcilerequestpendingpreparedstackextendgcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendunion.md new file mode 100644 index 000000000..f3524e930 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackextendunion.md @@ -0,0 +1,22 @@ +# SyncReconcileRequestPendingPreparedStackExtendUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.SyncReconcileRequestPendingPreparedStackExtend` + +```typescript +const value: models.SyncReconcileRequestPendingPreparedStackExtend = { + description: "from unto closely", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackinput.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackinput.md new file mode 100644 index 000000000..4c4778c1c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackinput.md @@ -0,0 +1,35 @@ +# SyncReconcileRequestPendingPreparedStackInput + +Stack input definition serialized into a release stack. + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackInput } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackInput = { + description: + "yet whine moral ew massive well-off forsaken willfully uh-huh developmental", + id: "", + kind: "integer", + label: "", + providedBy: [], + required: true, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `default` | *models.SyncReconcileRequestPendingPreparedStackDefaultUnion* | :heavy_minus_sign: | N/A | +| `description` | *string* | :heavy_check_mark: | Human-facing helper text. | +| `env` | [models.SyncReconcileRequestPendingPreparedStackEnv](../models/syncreconcilerequestpendingpreparedstackenv.md)[] | :heavy_minus_sign: | Runtime env-var mappings for v1 input resolution. | +| `id` | *string* | :heavy_check_mark: | Stable input ID used by CLI/API calls. | +| `kind` | [models.PendingPreparedStackStateKind](../models/pendingpreparedstackstatekind.md) | :heavy_check_mark: | Primitive stack input kind. | +| `label` | *string* | :heavy_check_mark: | Human-facing field label. | +| `placeholder` | *string* | :heavy_minus_sign: | Example placeholder shown in UI. | +| `platforms` | [models.SyncReconcileRequestPendingPreparedStackPlatform](../models/syncreconcilerequestpendingpreparedstackplatform.md)[] | :heavy_minus_sign: | Platforms where this input applies. | +| `providedBy` | [models.SyncReconcileRequestPendingPreparedStackProvidedBy](../models/syncreconcilerequestpendingpreparedstackprovidedby.md)[] | :heavy_check_mark: | Who can provide this value. | +| `required` | *boolean* | :heavy_check_mark: | Whether a resolved value is required before deployment can proceed. | +| `validation` | *models.SyncReconcileRequestPendingPreparedStackValidationUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackmanagement1.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackmanagement1.md new file mode 100644 index 000000000..5712dd9d7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackmanagement1.md @@ -0,0 +1,20 @@ +# SyncReconcileRequestPendingPreparedStackManagement1 + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackManagement1 } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackManagement1 = { + extend: { + "key": [], + "key1": [], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `extend` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackmanagement2.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackmanagement2.md new file mode 100644 index 000000000..db4e331fa --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackmanagement2.md @@ -0,0 +1,25 @@ +# SyncReconcileRequestPendingPreparedStackManagement2 + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackManagement2 } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackManagement2 = { + override: { + "key": [ + "", + ], + "key1": [ + "", + ], + "key2": [], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `override` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackmanagementenum.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackmanagementenum.md new file mode 100644 index 000000000..2dd2fb33a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackmanagementenum.md @@ -0,0 +1,15 @@ +# SyncReconcileRequestPendingPreparedStackManagementEnum + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackManagementEnum } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackManagementEnum = "auto"; +``` + +## Values + +```typescript +"auto" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackmanagementunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackmanagementunion.md new file mode 100644 index 000000000..419e8c04e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackmanagementunion.md @@ -0,0 +1,40 @@ +# SyncReconcileRequestPendingPreparedStackManagementUnion + +Management permissions configuration for stack management access + + +## Supported Types + +### `models.SyncReconcileRequestPendingPreparedStackManagement1` + +```typescript +const value: models.SyncReconcileRequestPendingPreparedStackManagement1 = { + extend: { + "key": [], + "key1": [], + }, +}; +``` + +### `models.SyncReconcileRequestPendingPreparedStackManagement2` + +```typescript +const value: models.SyncReconcileRequestPendingPreparedStackManagement2 = { + override: { + "key": [ + "", + ], + "key1": [ + "", + ], + "key2": [], + }, +}; +``` + +### `models.SyncReconcileRequestPendingPreparedStackManagementEnum` + +```typescript +const value: models.SyncReconcileRequestPendingPreparedStackManagementEnum = + "auto"; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverride.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverride.md new file mode 100644 index 000000000..43523c293 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverride.md @@ -0,0 +1,24 @@ +# SyncReconcileRequestPendingPreparedStackOverride + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackOverride } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackOverride = { + description: + "ouch daily past dual regularly gracefully athwart flu zowie whose", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.SyncReconcileRequestPendingPreparedStackOverridePlatforms](../models/syncreconcilerequestpendingpreparedstackoverrideplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideaw.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideaw.md new file mode 100644 index 000000000..a9e31c0c8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideaw.md @@ -0,0 +1,24 @@ +# SyncReconcileRequestPendingPreparedStackOverrideAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackOverrideAw } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackOverrideAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.SyncReconcileRequestPendingPreparedStackOverrideAwBinding](../models/syncreconcilerequestpendingpreparedstackoverrideawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.SyncReconcileRequestPendingPreparedStackOverrideEffect](../models/syncreconcilerequestpendingpreparedstackoverrideeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.SyncReconcileRequestPendingPreparedStackOverrideAwGrant](../models/syncreconcilerequestpendingpreparedstackoverrideawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideawbinding.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideawbinding.md new file mode 100644 index 000000000..7d8d22a6c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideawbinding.md @@ -0,0 +1,18 @@ +# SyncReconcileRequestPendingPreparedStackOverrideAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackOverrideAwBinding } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackOverrideAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.PendingPreparedStackOverrideStateAwResource](../models/pendingpreparedstackoverridestateawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.SyncReconcileRequestPendingPreparedStackOverrideAwStack](../models/syncreconcilerequestpendingpreparedstackoverrideawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideawgrant.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideawgrant.md new file mode 100644 index 000000000..bfcb66473 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideawgrant.md @@ -0,0 +1,21 @@ +# SyncReconcileRequestPendingPreparedStackOverrideAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackOverrideAwGrant } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackOverrideAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideawstack.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideawstack.md new file mode 100644 index 000000000..3dc4cdd52 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideawstack.md @@ -0,0 +1,24 @@ +# SyncReconcileRequestPendingPreparedStackOverrideAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackOverrideAwStack } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackOverrideAwStack = { + resources: [ + "", + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideazure.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideazure.md new file mode 100644 index 000000000..5ff3b39ab --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideazure.md @@ -0,0 +1,23 @@ +# SyncReconcileRequestPendingPreparedStackOverrideAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackOverrideAzure } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackOverrideAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.SyncReconcileRequestPendingPreparedStackOverrideAzureBinding](../models/syncreconcilerequestpendingpreparedstackoverrideazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncReconcileRequestPendingPreparedStackOverrideAzureGrant](../models/syncreconcilerequestpendingpreparedstackoverrideazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideazurebinding.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideazurebinding.md new file mode 100644 index 000000000..d4e8abd7c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideazurebinding.md @@ -0,0 +1,18 @@ +# SyncReconcileRequestPendingPreparedStackOverrideAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackOverrideAzureBinding } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackOverrideAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.PendingPreparedStackOverrideStateAzureResource](../models/pendingpreparedstackoverridestateazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.SyncReconcileRequestPendingPreparedStackOverrideAzureStack](../models/syncreconcilerequestpendingpreparedstackoverrideazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideazuregrant.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideazuregrant.md new file mode 100644 index 000000000..1f2aa8244 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideazuregrant.md @@ -0,0 +1,21 @@ +# SyncReconcileRequestPendingPreparedStackOverrideAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackOverrideAzureGrant } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackOverrideAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideazurestack.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideazurestack.md new file mode 100644 index 000000000..851c2b313 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideazurestack.md @@ -0,0 +1,19 @@ +# SyncReconcileRequestPendingPreparedStackOverrideAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackOverrideAzureStack } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackOverrideAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideeffect.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideeffect.md new file mode 100644 index 000000000..faf14664e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideeffect.md @@ -0,0 +1,17 @@ +# SyncReconcileRequestPendingPreparedStackOverrideEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackOverrideEffect } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackOverrideEffect = "Deny"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverridegcp.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverridegcp.md new file mode 100644 index 000000000..b7dab9723 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverridegcp.md @@ -0,0 +1,23 @@ +# SyncReconcileRequestPendingPreparedStackOverrideGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackOverrideGcp } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackOverrideGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncReconcileRequestPendingPreparedStackOverrideGcpBinding](../models/syncreconcilerequestpendingpreparedstackoverridegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncReconcileRequestPendingPreparedStackOverrideGcpGrant](../models/syncreconcilerequestpendingpreparedstackoverridegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverridegcpbinding.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverridegcpbinding.md new file mode 100644 index 000000000..a1fa671fa --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverridegcpbinding.md @@ -0,0 +1,18 @@ +# SyncReconcileRequestPendingPreparedStackOverrideGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackOverrideGcpBinding } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackOverrideGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.PendingPreparedStackOverrideStateGcpResource](../models/pendingpreparedstackoverridestategcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.SyncReconcileRequestPendingPreparedStackOverrideGcpStack](../models/syncreconcilerequestpendingpreparedstackoverridegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverridegcpgrant.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverridegcpgrant.md new file mode 100644 index 000000000..2a6d7ecbd --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverridegcpgrant.md @@ -0,0 +1,21 @@ +# SyncReconcileRequestPendingPreparedStackOverrideGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackOverrideGcpGrant } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackOverrideGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverridegcpstack.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverridegcpstack.md new file mode 100644 index 000000000..280d864c8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverridegcpstack.md @@ -0,0 +1,20 @@ +# SyncReconcileRequestPendingPreparedStackOverrideGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackOverrideGcpStack } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackOverrideGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | ------------------------------------------------------------- | +| `condition` | *models.PendingPreparedStackOverrideStateStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideplatforms.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideplatforms.md new file mode 100644 index 000000000..6d631da53 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideplatforms.md @@ -0,0 +1,19 @@ +# SyncReconcileRequestPendingPreparedStackOverridePlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackOverridePlatforms } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackOverridePlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | +| `aws` | [models.SyncReconcileRequestPendingPreparedStackOverrideAw](../models/syncreconcilerequestpendingpreparedstackoverrideaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.SyncReconcileRequestPendingPreparedStackOverrideAzure](../models/syncreconcilerequestpendingpreparedstackoverrideazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.SyncReconcileRequestPendingPreparedStackOverrideGcp](../models/syncreconcilerequestpendingpreparedstackoverridegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideunion.md new file mode 100644 index 000000000..af2071a6c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackoverrideunion.md @@ -0,0 +1,23 @@ +# SyncReconcileRequestPendingPreparedStackOverrideUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.SyncReconcileRequestPendingPreparedStackOverride` + +```typescript +const value: models.SyncReconcileRequestPendingPreparedStackOverride = { + description: + "ouch daily past dual regularly gracefully athwart flu zowie whose", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackpermissions.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackpermissions.md new file mode 100644 index 000000000..a8ff2b043 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackpermissions.md @@ -0,0 +1,37 @@ +# SyncReconcileRequestPendingPreparedStackPermissions + +Combined permissions configuration that contains both profiles and management + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackPermissions } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackPermissions = { + profiles: { + "key": { + "key": [ + { + description: "unfortunately hmph voluntarily issue pure finding aw", + id: "", + platforms: {}, + }, + ], + "key1": [ + { + description: "unfortunately hmph voluntarily issue pure finding aw", + id: "", + platforms: {}, + }, + ], + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `management` | *models.SyncReconcileRequestPendingPreparedStackManagementUnion* | :heavy_minus_sign: | Management permissions configuration for stack management access | +| `profiles` | Record> | :heavy_check_mark: | Permission profiles that define access control for compute services
Key is the profile name, value is the permission configuration | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackplatform.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackplatform.md new file mode 100644 index 000000000..29cccea6a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackplatform.md @@ -0,0 +1,17 @@ +# SyncReconcileRequestPendingPreparedStackPlatform + +Represents the target cloud platform. + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackPlatform } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackPlatform = "kubernetes"; +``` + +## Values + +```typescript +"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofile.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofile.md new file mode 100644 index 000000000..f125644ea --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofile.md @@ -0,0 +1,23 @@ +# SyncReconcileRequestPendingPreparedStackProfile + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackProfile } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackProfile = { + description: "amidst unaccountably so brr sermon ugh violent", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.SyncReconcileRequestPendingPreparedStackProfilePlatforms](../models/syncreconcilerequestpendingpreparedstackprofileplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileaw.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileaw.md new file mode 100644 index 000000000..8f4d0bf8f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileaw.md @@ -0,0 +1,24 @@ +# SyncReconcileRequestPendingPreparedStackProfileAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackProfileAw } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackProfileAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncReconcileRequestPendingPreparedStackProfileAwBinding](../models/syncreconcilerequestpendingpreparedstackprofileawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.SyncReconcileRequestPendingPreparedStackProfileEffect](../models/syncreconcilerequestpendingpreparedstackprofileeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.SyncReconcileRequestPendingPreparedStackProfileAwGrant](../models/syncreconcilerequestpendingpreparedstackprofileawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileawbinding.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileawbinding.md new file mode 100644 index 000000000..2f69940f8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileawbinding.md @@ -0,0 +1,18 @@ +# SyncReconcileRequestPendingPreparedStackProfileAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackProfileAwBinding } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackProfileAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.PendingPreparedStackProfileStateAwResource](../models/pendingpreparedstackprofilestateawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.SyncReconcileRequestPendingPreparedStackProfileAwStack](../models/syncreconcilerequestpendingpreparedstackprofileawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileawgrant.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileawgrant.md new file mode 100644 index 000000000..b70678a07 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileawgrant.md @@ -0,0 +1,21 @@ +# SyncReconcileRequestPendingPreparedStackProfileAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackProfileAwGrant } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackProfileAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileawstack.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileawstack.md new file mode 100644 index 000000000..9015d92a8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileawstack.md @@ -0,0 +1,23 @@ +# SyncReconcileRequestPendingPreparedStackProfileAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackProfileAwStack } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackProfileAwStack = { + resources: [ + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileazure.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileazure.md new file mode 100644 index 000000000..57456ea6d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileazure.md @@ -0,0 +1,23 @@ +# SyncReconcileRequestPendingPreparedStackProfileAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackProfileAzure } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackProfileAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncReconcileRequestPendingPreparedStackProfileAzureBinding](../models/syncreconcilerequestpendingpreparedstackprofileazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncReconcileRequestPendingPreparedStackProfileAzureGrant](../models/syncreconcilerequestpendingpreparedstackprofileazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileazurebinding.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileazurebinding.md new file mode 100644 index 000000000..972cda111 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileazurebinding.md @@ -0,0 +1,18 @@ +# SyncReconcileRequestPendingPreparedStackProfileAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackProfileAzureBinding } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackProfileAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.PendingPreparedStackProfileStateAzureResource](../models/pendingpreparedstackprofilestateazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.SyncReconcileRequestPendingPreparedStackProfileAzureStack](../models/syncreconcilerequestpendingpreparedstackprofileazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileazuregrant.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileazuregrant.md new file mode 100644 index 000000000..2d6ea55b5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileazuregrant.md @@ -0,0 +1,21 @@ +# SyncReconcileRequestPendingPreparedStackProfileAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackProfileAzureGrant } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackProfileAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileazurestack.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileazurestack.md new file mode 100644 index 000000000..660df978d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileazurestack.md @@ -0,0 +1,19 @@ +# SyncReconcileRequestPendingPreparedStackProfileAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackProfileAzureStack } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackProfileAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileeffect.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileeffect.md new file mode 100644 index 000000000..c64ca7e63 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileeffect.md @@ -0,0 +1,17 @@ +# SyncReconcileRequestPendingPreparedStackProfileEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackProfileEffect } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackProfileEffect = "Allow"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofilegcp.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofilegcp.md new file mode 100644 index 000000000..f427c4958 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofilegcp.md @@ -0,0 +1,23 @@ +# SyncReconcileRequestPendingPreparedStackProfileGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackProfileGcp } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackProfileGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.SyncReconcileRequestPendingPreparedStackProfileGcpBinding](../models/syncreconcilerequestpendingpreparedstackprofilegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncReconcileRequestPendingPreparedStackProfileGcpGrant](../models/syncreconcilerequestpendingpreparedstackprofilegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofilegcpbinding.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofilegcpbinding.md new file mode 100644 index 000000000..abc4dff0a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofilegcpbinding.md @@ -0,0 +1,18 @@ +# SyncReconcileRequestPendingPreparedStackProfileGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackProfileGcpBinding } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackProfileGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.PendingPreparedStackProfileStateGcpResource](../models/pendingpreparedstackprofilestategcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.SyncReconcileRequestPendingPreparedStackProfileGcpStack](../models/syncreconcilerequestpendingpreparedstackprofilegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofilegcpgrant.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofilegcpgrant.md new file mode 100644 index 000000000..0bf125080 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofilegcpgrant.md @@ -0,0 +1,21 @@ +# SyncReconcileRequestPendingPreparedStackProfileGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackProfileGcpGrant } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackProfileGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofilegcpstack.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofilegcpstack.md new file mode 100644 index 000000000..b5444a017 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofilegcpstack.md @@ -0,0 +1,20 @@ +# SyncReconcileRequestPendingPreparedStackProfileGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackProfileGcpStack } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackProfileGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | +| `condition` | *models.PendingPreparedStackProfileStateStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileplatforms.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileplatforms.md new file mode 100644 index 000000000..b6f3fb940 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileplatforms.md @@ -0,0 +1,19 @@ +# SyncReconcileRequestPendingPreparedStackProfilePlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackProfilePlatforms } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackProfilePlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `aws` | [models.SyncReconcileRequestPendingPreparedStackProfileAw](../models/syncreconcilerequestpendingpreparedstackprofileaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.SyncReconcileRequestPendingPreparedStackProfileAzure](../models/syncreconcilerequestpendingpreparedstackprofileazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.SyncReconcileRequestPendingPreparedStackProfileGcp](../models/syncreconcilerequestpendingpreparedstackprofilegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileunion.md new file mode 100644 index 000000000..02516e716 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprofileunion.md @@ -0,0 +1,22 @@ +# SyncReconcileRequestPendingPreparedStackProfileUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.SyncReconcileRequestPendingPreparedStackProfile` + +```typescript +const value: models.SyncReconcileRequestPendingPreparedStackProfile = { + description: "amidst unaccountably so brr sermon ugh violent", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprovidedby.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprovidedby.md new file mode 100644 index 000000000..cf95da743 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackprovidedby.md @@ -0,0 +1,17 @@ +# SyncReconcileRequestPendingPreparedStackProvidedBy + +Who can provide a stack input value. + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackProvidedBy } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackProvidedBy = "deployer"; +``` + +## Values + +```typescript +"developer" | "deployer" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackresources.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackresources.md new file mode 100644 index 000000000..fcdb729ce --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackresources.md @@ -0,0 +1,26 @@ +# SyncReconcileRequestPendingPreparedStackResources + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackResources } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackResources = { + config: { + id: "", + type: "", + }, + dependencies: [], + lifecycle: "live", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `config` | [models.SyncReconcileRequestPendingPreparedStackConfig](../models/syncreconcilerequestpendingpreparedstackconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | +| `dependencies` | [models.SyncReconcileRequestPendingPreparedStackDependency](../models/syncreconcilerequestpendingpreparedstackdependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | +| `enabledWhen` | *string* | :heavy_minus_sign: | Id of the boolean stack input that decides whether this resource is
created at all. `None` means always create it.

Set by `.enabled(input)` in the SDK. Setup emitters render the resource
conditionally on the matching template variable, so a deployer who says no
never gets the resource, its outputs, or anything derived from it. | +| `lifecycle` | [models.PendingPreparedStackStateLifecycle](../models/pendingpreparedstackstatelifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | +| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstacksupportedplatform.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstacksupportedplatform.md new file mode 100644 index 000000000..a2b3238bf --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstacksupportedplatform.md @@ -0,0 +1,17 @@ +# SyncReconcileRequestPendingPreparedStackSupportedPlatform + +Represents the target cloud platform. + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackSupportedPlatform } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackSupportedPlatform = "aws"; +``` + +## Values + +```typescript +"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstacktypeboolean.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstacktypeboolean.md new file mode 100644 index 000000000..1ed3a21ce --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstacktypeboolean.md @@ -0,0 +1,15 @@ +# SyncReconcileRequestPendingPreparedStackTypeBoolean + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackTypeBoolean } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackTypeBoolean = "boolean"; +``` + +## Values + +```typescript +"boolean" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstacktypeenvenum.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstacktypeenvenum.md new file mode 100644 index 000000000..836c5955c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstacktypeenvenum.md @@ -0,0 +1,17 @@ +# SyncReconcileRequestPendingPreparedStackTypeEnvEnum + +Environment variable handling for a stack input mapping. + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackTypeEnvEnum } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackTypeEnvEnum = "plain"; +``` + +## Values + +```typescript +"plain" | "secret" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstacktypenumber.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstacktypenumber.md new file mode 100644 index 000000000..7196f32db --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstacktypenumber.md @@ -0,0 +1,15 @@ +# SyncReconcileRequestPendingPreparedStackTypeNumber + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackTypeNumber } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackTypeNumber = "number"; +``` + +## Values + +```typescript +"number" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstacktypestring.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstacktypestring.md new file mode 100644 index 000000000..94be57c96 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstacktypestring.md @@ -0,0 +1,15 @@ +# SyncReconcileRequestPendingPreparedStackTypeString + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackTypeString } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackTypeString = "string"; +``` + +## Values + +```typescript +"string" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstacktypestringlist.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstacktypestringlist.md new file mode 100644 index 000000000..a3a652c53 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstacktypestringlist.md @@ -0,0 +1,16 @@ +# SyncReconcileRequestPendingPreparedStackTypeStringList + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackTypeStringList } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackTypeStringList = + "stringList"; +``` + +## Values + +```typescript +"stringList" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstacktypeunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstacktypeunion.md new file mode 100644 index 000000000..9e814b484 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstacktypeunion.md @@ -0,0 +1,17 @@ +# SyncReconcileRequestPendingPreparedStackTypeUnion + + +## Supported Types + +### `models.SyncReconcileRequestPendingPreparedStackTypeEnvEnum` + +```typescript +const value: models.SyncReconcileRequestPendingPreparedStackTypeEnvEnum = + "plain"; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackunion.md new file mode 100644 index 000000000..2429b7c1a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackunion.md @@ -0,0 +1,19 @@ +# SyncReconcileRequestPendingPreparedStackUnion + + +## Supported Types + +### `models.SyncReconcileRequestPendingPreparedStack` + +```typescript +const value: models.SyncReconcileRequestPendingPreparedStack = { + id: "", + resources: {}, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackvalidation.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackvalidation.md new file mode 100644 index 000000000..0b1310660 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackvalidation.md @@ -0,0 +1,25 @@ +# SyncReconcileRequestPendingPreparedStackValidation + +Portable stack input validation constraints. + +## Example Usage + +```typescript +import { SyncReconcileRequestPendingPreparedStackValidation } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestPendingPreparedStackValidation = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `format` | *string* | :heavy_minus_sign: | Semantic format hint such as url. | +| `max` | *string* | :heavy_minus_sign: | Maximum number. | +| `maxItems` | *number* | :heavy_minus_sign: | Maximum string-list items. | +| `maxLength` | *number* | :heavy_minus_sign: | Maximum string length. | +| `min` | *string* | :heavy_minus_sign: | Minimum number. | +| `minItems` | *number* | :heavy_minus_sign: | Minimum string-list items. | +| `minLength` | *number* | :heavy_minus_sign: | Minimum string length. | +| `pattern` | *string* | :heavy_minus_sign: | Portable whole-value regex pattern. | +| `values` | *string*[] | :heavy_minus_sign: | Allowed string enum values. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackvalidationunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackvalidationunion.md new file mode 100644 index 000000000..1a53b79f1 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpendingpreparedstackvalidationunion.md @@ -0,0 +1,16 @@ +# SyncReconcileRequestPendingPreparedStackValidationUnion + + +## Supported Types + +### `models.SyncReconcileRequestPendingPreparedStackValidation` + +```typescript +const value: models.SyncReconcileRequestPendingPreparedStackValidation = {}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackdefaultunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackdefaultunion.md index 40e3f6cfd..e73634a4b 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackdefaultunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackdefaultunion.md @@ -44,4 +44,3 @@ const value: models.SyncReconcileRequestPreparedStackDefaultStringList = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackextendunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackextendunion.md index d566b41c6..77adb8aae 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackextendunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackextendunion.md @@ -21,4 +21,3 @@ const value: models.SyncReconcileRequestPreparedStackExtend = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackmanagementunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackmanagementunion.md index aa2e43967..ca453592b 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackmanagementunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackmanagementunion.md @@ -26,4 +26,3 @@ const value: models.SyncReconcileRequestPreparedStackManagement2 = { ```typescript const value: models.SyncReconcileRequestPreparedStackManagementEnum = "auto"; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackoverrideunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackoverrideunion.md index e0abb7cd4..2b128f442 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackoverrideunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackoverrideunion.md @@ -20,4 +20,3 @@ const value: models.SyncReconcileRequestPreparedStackOverride = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackprofileunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackprofileunion.md index b0b643352..c72a1ba04 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackprofileunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackprofileunion.md @@ -20,4 +20,3 @@ const value: models.SyncReconcileRequestPreparedStackProfile = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackresources.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackresources.md index 47457bd69..68118f7f0 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackresources.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackresources.md @@ -17,9 +17,10 @@ let value: SyncReconcileRequestPreparedStackResources = { ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `config` | [models.SyncReconcileRequestPreparedStackConfig](../models/syncreconcilerequestpreparedstackconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | -| `dependencies` | [models.SyncReconcileRequestPreparedStackDependency](../models/syncreconcilerequestpreparedstackdependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | -| `lifecycle` | [models.PreparedStackStateLifecycle](../models/preparedstackstatelifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | -| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `config` | [models.SyncReconcileRequestPreparedStackConfig](../models/syncreconcilerequestpreparedstackconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | +| `dependencies` | [models.SyncReconcileRequestPreparedStackDependency](../models/syncreconcilerequestpreparedstackdependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | +| `enabledWhen` | *string* | :heavy_minus_sign: | Id of the boolean stack input that decides whether this resource is
created at all. `None` means always create it.

Set by `.enabled(input)` in the SDK. Setup emitters render the resource
conditionally on the matching template variable, so a deployer who says no
never gets the resource, its outputs, or anything derived from it. | +| `lifecycle` | [models.PreparedStackStateLifecycle](../models/preparedstackstatelifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | +| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstacktypeunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstacktypeunion.md index 5ab1ecaf9..1237cfb4b 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstacktypeunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstacktypeunion.md @@ -14,4 +14,3 @@ const value: models.SyncReconcileRequestPreparedStackTypeEnvEnum = "plain"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackunion.md index 656e79d2c..86c421ace 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackunion.md @@ -31,4 +31,3 @@ const value: models.SyncReconcileRequestPreparedStack = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackvalidationunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackvalidationunion.md index 044c69e92..433b46e1e 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackvalidationunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreparedstackvalidationunion.md @@ -14,4 +14,3 @@ const value: models.SyncReconcileRequestPreparedStackValidation = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreviousconfigunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreviousconfigunion.md index 8ccb2b167..cbb86a61b 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreviousconfigunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestpreviousconfigunion.md @@ -17,4 +17,3 @@ const value: models.SyncReconcileRequestPreviousConfig = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestruntimemetadata.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestruntimemetadata.md index 4e4fa25e3..0dce1b40b 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestruntimemetadata.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestruntimemetadata.md @@ -14,9 +14,13 @@ let value: SyncReconcileRequestRuntimeMetadata = {}; ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `lastSyncedEnvVarsHash` | *string* | :heavy_minus_sign: | Hash of the environment variables snapshot that was last synced to the vault
Used to avoid redundant sync operations during incremental deployment | -| `lastSyncedSecretNames` | *string*[] | :heavy_minus_sign: | Exact vault keys owned by the deployment secret synchronizer. This
inventory lets a later snapshot delete removed keys without listing or
touching unrelated values in the same vault. | -| `preparedStack` | *models.SyncReconcileRequestPreparedStackUnion* | :heavy_minus_sign: | N/A | -| `registryAccessGranted` | *boolean* | :heavy_minus_sign: | Whether cross-account registry access has been successfully granted.
Set to true after the manager successfully sets the ECR/GAR repo policy
for this deployment's target account. Prevents redundant API calls on
every reconcile tick. | \ No newline at end of file +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `initialSetupAuthority` | [models.SyncReconcileRequestInitialSetupAuthority](../models/syncreconcilerequestinitialsetupauthority.md) | :heavy_minus_sign: | Actor that owns structural work during the initial setup phase. | +| `lastSyncedEnvVarsHash` | *string* | :heavy_minus_sign: | Hash of the environment variables snapshot that was last synced to the vault
Used to avoid redundant sync operations during incremental deployment | +| `lastSyncedSecretNames` | *string*[] | :heavy_minus_sign: | Exact vault keys owned by the deployment secret synchronizer. This
inventory lets a later snapshot delete removed keys without listing or
touching unrelated values in the same vault. | +| `pendingPreparedStack` | *models.SyncReconcileRequestPendingPreparedStackUnion* | :heavy_minus_sign: | N/A | +| `persistedGateAnswers` | Record | :heavy_minus_sign: | Canonical resolved answers for inputs that gate Frozen resources,
keyed by input id, recorded when the deployment is created or its
setup import registers.

A frozen gate's answer is fixed for the deployment's lifetime: the
update path refuses input values that conflict with these, and a Live
resource sharing such an input resolves the persisted answer forever. | +| `preparedStack` | *models.SyncReconcileRequestPreparedStackUnion* | :heavy_minus_sign: | N/A | +| `registryAccessGranted` | *boolean* | :heavy_minus_sign: | Whether cross-account registry access has been successfully granted.
Set to true after the manager successfully sets the ECR/GAR repo policy
for this deployment's target account. Prevents redundant API calls on
every reconcile tick. | +| `setupUpdateAuthorization` | *models.SyncReconcileRequestSetupUpdateAuthorizationUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestruntimemetadataunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestruntimemetadataunion.md index 48f649d6c..fb3cfefb5 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestruntimemetadataunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestruntimemetadataunion.md @@ -14,4 +14,3 @@ const value: models.SyncReconcileRequestRuntimeMetadata = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsetupupdateauthorization.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestsetupupdateauthorization.md new file mode 100644 index 000000000..d1636e670 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestsetupupdateauthorization.md @@ -0,0 +1,31 @@ +# SyncReconcileRequestSetupUpdateAuthorization + +One-shot authority for a setup re-import to replace setup-owned resources. + +## Example Usage + +```typescript +import { SyncReconcileRequestSetupUpdateAuthorization } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileRequestSetupUpdateAuthorization = { + baselineFrozenDigest: "", + nonce: "", + releaseId: "", + setupFingerprint: "", + setupFingerprintVersion: 809897, + setupTarget: "", + targetFrozenDigest: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | +| `baselineFrozenDigest` | *string* | :heavy_check_mark: | Frozen resource projection from the last successful deployment. | +| `nonce` | *string* | :heavy_check_mark: | Unique revision used by persistence layers for compare-and-swap updates. | +| `releaseId` | *string* | :heavy_check_mark: | Release whose stack was prepared by setup. | +| `setupFingerprint` | *string* | :heavy_check_mark: | Exact setup artifact revision that authored this authority. | +| `setupFingerprintVersion` | *number* | :heavy_check_mark: | Setup fingerprint contract version. | +| `setupTarget` | *string* | :heavy_check_mark: | Stable setup target recorded on the imported deployment. | +| `targetFrozenDigest` | *string* | :heavy_check_mark: | Frozen resource projection prepared by the setup re-import. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsetupupdateauthorizationunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestsetupupdateauthorizationunion.md new file mode 100644 index 000000000..f32772ad5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestsetupupdateauthorizationunion.md @@ -0,0 +1,24 @@ +# SyncReconcileRequestSetupUpdateAuthorizationUnion + + +## Supported Types + +### `models.SyncReconcileRequestSetupUpdateAuthorization` + +```typescript +const value: models.SyncReconcileRequestSetupUpdateAuthorization = { + baselineFrozenDigest: "", + nonce: "", + releaseId: "", + setupFingerprint: "", + setupFingerprintVersion: 809897, + setupTarget: "", + targetFrozenDigest: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource1.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource1.md deleted file mode 100644 index e088c765d..000000000 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource1.md +++ /dev/null @@ -1,16 +0,0 @@ -# SyncReconcileRequestSource1 - -## Example Usage - -```typescript -import { SyncReconcileRequestSource1 } from "@alienplatform/platform-api/models"; - -let value: SyncReconcileRequestSource1 = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `component` | *string* | :heavy_minus_sign: | N/A | -| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource10.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource10.md deleted file mode 100644 index 06894983d..000000000 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource10.md +++ /dev/null @@ -1,16 +0,0 @@ -# SyncReconcileRequestSource10 - -## Example Usage - -```typescript -import { SyncReconcileRequestSource10 } from "@alienplatform/platform-api/models"; - -let value: SyncReconcileRequestSource10 = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `component` | *string* | :heavy_minus_sign: | N/A | -| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource2.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource2.md deleted file mode 100644 index dbfed25d3..000000000 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource2.md +++ /dev/null @@ -1,16 +0,0 @@ -# SyncReconcileRequestSource2 - -## Example Usage - -```typescript -import { SyncReconcileRequestSource2 } from "@alienplatform/platform-api/models"; - -let value: SyncReconcileRequestSource2 = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `component` | *string* | :heavy_minus_sign: | N/A | -| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource3.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource3.md deleted file mode 100644 index 307c9c330..000000000 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource3.md +++ /dev/null @@ -1,16 +0,0 @@ -# SyncReconcileRequestSource3 - -## Example Usage - -```typescript -import { SyncReconcileRequestSource3 } from "@alienplatform/platform-api/models"; - -let value: SyncReconcileRequestSource3 = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `component` | *string* | :heavy_minus_sign: | N/A | -| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource4.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource4.md deleted file mode 100644 index a7166492d..000000000 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource4.md +++ /dev/null @@ -1,16 +0,0 @@ -# SyncReconcileRequestSource4 - -## Example Usage - -```typescript -import { SyncReconcileRequestSource4 } from "@alienplatform/platform-api/models"; - -let value: SyncReconcileRequestSource4 = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `component` | *string* | :heavy_minus_sign: | N/A | -| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource5.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource5.md deleted file mode 100644 index fc4895587..000000000 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource5.md +++ /dev/null @@ -1,16 +0,0 @@ -# SyncReconcileRequestSource5 - -## Example Usage - -```typescript -import { SyncReconcileRequestSource5 } from "@alienplatform/platform-api/models"; - -let value: SyncReconcileRequestSource5 = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `component` | *string* | :heavy_minus_sign: | N/A | -| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource6.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource6.md deleted file mode 100644 index 16ea50e2c..000000000 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource6.md +++ /dev/null @@ -1,16 +0,0 @@ -# SyncReconcileRequestSource6 - -## Example Usage - -```typescript -import { SyncReconcileRequestSource6 } from "@alienplatform/platform-api/models"; - -let value: SyncReconcileRequestSource6 = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `component` | *string* | :heavy_minus_sign: | N/A | -| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource7.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource7.md deleted file mode 100644 index 9101f77b6..000000000 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource7.md +++ /dev/null @@ -1,16 +0,0 @@ -# SyncReconcileRequestSource7 - -## Example Usage - -```typescript -import { SyncReconcileRequestSource7 } from "@alienplatform/platform-api/models"; - -let value: SyncReconcileRequestSource7 = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `component` | *string* | :heavy_minus_sign: | N/A | -| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource8.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource8.md deleted file mode 100644 index 87c3e1b01..000000000 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource8.md +++ /dev/null @@ -1,16 +0,0 @@ -# SyncReconcileRequestSource8 - -## Example Usage - -```typescript -import { SyncReconcileRequestSource8 } from "@alienplatform/platform-api/models"; - -let value: SyncReconcileRequestSource8 = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `component` | *string* | :heavy_minus_sign: | N/A | -| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource9.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource9.md deleted file mode 100644 index f4ec35288..000000000 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsource9.md +++ /dev/null @@ -1,16 +0,0 @@ -# SyncReconcileRequestSource9 - -## Example Usage - -```typescript -import { SyncReconcileRequestSource9 } from "@alienplatform/platform-api/models"; - -let value: SyncReconcileRequestSource9 = {}; -``` - -## Fields - -| Field | Type | Required | Description | -| ------------------ | ------------------ | ------------------ | ------------------ | -| `component` | *string* | :heavy_minus_sign: | N/A | -| `host` | *string* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequeststackstateerrorunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequeststackstateerrorunion.md index 9fd889322..cdff9e85d 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequeststackstateerrorunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequeststackstateerrorunion.md @@ -18,4 +18,3 @@ const value: models.SyncReconcileRequestStackStateError = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequeststackstateunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequeststackstateunion.md index 859044cab..212883ddb 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequeststackstateunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequeststackstateunion.md @@ -18,4 +18,3 @@ const value: models.SyncReconcileRequestStackState = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsubjectunion1.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestsubjectunion1.md index 2a27cfe07..4343e292d 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsubjectunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestsubjectunion1.md @@ -16,4 +16,3 @@ const value: models.SyncReconcileRequestSubject1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsubjectunion2.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestsubjectunion2.md index d73481c63..681d54623 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsubjectunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestsubjectunion2.md @@ -16,4 +16,3 @@ const value: models.SyncReconcileRequestSubject2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsubjectunion3.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequestsubjectunion3.md index 0dea010d1..2ab287889 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequestsubjectunion3.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequestsubjectunion3.md @@ -16,4 +16,3 @@ const value: models.SyncReconcileRequestSubject3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleasedefaultunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleasedefaultunion.md index 95ebbee53..6409703fe 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleasedefaultunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleasedefaultunion.md @@ -44,4 +44,3 @@ const value: models.SyncReconcileRequestTargetReleaseDefaultStringList = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleaseextendunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleaseextendunion.md index ca8815ae3..dcd1b39a1 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleaseextendunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleaseextendunion.md @@ -21,4 +21,3 @@ const value: models.SyncReconcileRequestTargetReleaseExtend = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleasemanagementunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleasemanagementunion.md index 0b0af36e3..d4977815c 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleasemanagementunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleasemanagementunion.md @@ -37,4 +37,3 @@ const value: models.SyncReconcileRequestTargetReleaseManagement2 = { ```typescript const value: models.SyncReconcileRequestTargetReleaseManagementEnum = "auto"; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleaseoverrideunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleaseoverrideunion.md index 68be1cd58..399e0e319 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleaseoverrideunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleaseoverrideunion.md @@ -20,4 +20,3 @@ const value: models.SyncReconcileRequestTargetReleaseOverride = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleaseprofileunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleaseprofileunion.md index 0343e9520..757949bc9 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleaseprofileunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleaseprofileunion.md @@ -21,4 +21,3 @@ const value: models.SyncReconcileRequestTargetReleaseProfile = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleaseresources.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleaseresources.md index 1e93239fc..4156953c4 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleaseresources.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleaseresources.md @@ -22,9 +22,10 @@ let value: SyncReconcileRequestTargetReleaseResources = { ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `config` | [models.SyncReconcileRequestTargetReleaseConfig](../models/syncreconcilerequesttargetreleaseconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | -| `dependencies` | [models.SyncReconcileRequestTargetReleaseDependency](../models/syncreconcilerequesttargetreleasedependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | -| `lifecycle` | [models.TargetReleaseStateLifecycle](../models/targetreleasestatelifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | -| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `config` | [models.SyncReconcileRequestTargetReleaseConfig](../models/syncreconcilerequesttargetreleaseconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | +| `dependencies` | [models.SyncReconcileRequestTargetReleaseDependency](../models/syncreconcilerequesttargetreleasedependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | +| `enabledWhen` | *string* | :heavy_minus_sign: | Id of the boolean stack input that decides whether this resource is
created at all. `None` means always create it.

Set by `.enabled(input)` in the SDK. Setup emitters render the resource
conditionally on the matching template variable, so a deployer who says no
never gets the resource, its outputs, or anything derived from it. | +| `lifecycle` | [models.TargetReleaseStateLifecycle](../models/targetreleasestatelifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | +| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleasetypeunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleasetypeunion.md index 6e317ed6a..3ba690073 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleasetypeunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleasetypeunion.md @@ -14,4 +14,3 @@ const value: models.SyncReconcileRequestTargetReleaseTypeEnvEnum = "secret"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleaseunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleaseunion.md index 2d2256f1d..6886818a4 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleaseunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleaseunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileRequestTargetRelease = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleasevalidationunion.md b/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleasevalidationunion.md index 52b4ddc7c..3782be530 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleasevalidationunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcilerequesttargetreleasevalidationunion.md @@ -14,4 +14,3 @@ const value: models.SyncReconcileRequestTargetReleaseValidation = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseaccountnameunion1.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseaccountnameunion1.md index b541bcb64..6abce34f6 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseaccountnameunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseaccountnameunion1.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseAccountName1 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseaccountnameunion2.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseaccountnameunion2.md index a3b895326..a61ef99ef 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseaccountnameunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseaccountnameunion2.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseAccountName2 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseapikey.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseapikey.md new file mode 100644 index 000000000..5e0bc9448 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseapikey.md @@ -0,0 +1,20 @@ +# SyncReconcileResponseApiKey + +## Example Usage + +```typescript +import { SyncReconcileResponseApiKey } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponseApiKey = { + secretRef: { + key: "", + name: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------ | +| `secretRef` | [models.SyncReconcileResponseApiKeySecretRef](../models/syncreconcileresponseapikeysecretref.md) | :heavy_check_mark: | Reference to a Kubernetes Secret | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseapikeysecretref.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseapikeysecretref.md new file mode 100644 index 000000000..a7427a77d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseapikeysecretref.md @@ -0,0 +1,21 @@ +# SyncReconcileResponseApiKeySecretRef + +Reference to a Kubernetes Secret + +## Example Usage + +```typescript +import { SyncReconcileResponseApiKeySecretRef } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponseApiKeySecretRef = { + key: "", + name: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `key` | *string* | :heavy_check_mark: | N/A | +| `name` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseapikeyunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseapikeyunion.md new file mode 100644 index 000000000..46d6a645a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseapikeyunion.md @@ -0,0 +1,30 @@ +# SyncReconcileResponseApiKeyUnion + +Represents a value that can be either a concrete value, a template expression, +or a reference to a Kubernetes Secret + + +## Supported Types + +### `any` + +```typescript +const value: any = ""; +``` + +### `string` + +```typescript +const value: string = ""; +``` + +### `models.SyncReconcileResponseApiKey` + +```typescript +const value: models.SyncReconcileResponseApiKey = { + secretRef: { + key: "", + name: "", + }, +}; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsebaseplatformunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsebaseplatformunion.md index dc939b5cd..e418a9c62 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsebaseplatformunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsebaseplatformunion.md @@ -14,4 +14,3 @@ const value: models.SyncReconcileResponseBasePlatformEnum = "azure"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsebucketnameunion1.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsebucketnameunion1.md index 56e21e93d..6ecdaeeb7 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsebucketnameunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsebucketnameunion1.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseBucketName1 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsebucketnameunion2.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsebucketnameunion2.md index e8f9a878b..d21e0006f 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsebucketnameunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsebucketnameunion2.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseBucketName2 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecertificateunion1.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecertificateunion1.md index b0a9e6157..19dc29c47 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecertificateunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecertificateunion1.md @@ -47,4 +47,3 @@ const value: models.SyncReconcileResponseCertificateNone1 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecertificateunion2.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecertificateunion2.md index fb028a602..5cc585bed 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecertificateunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecertificateunion2.md @@ -47,4 +47,3 @@ const value: models.SyncReconcileResponseCertificateNone2 = { mode: "none", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecloudunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecloudunion.md index ec182df79..1cad9cc96 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecloudunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecloudunion.md @@ -14,4 +14,3 @@ const value: models.SyncReconcileResponseCloud = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseclusterendpointunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseclusterendpointunion.md index d6b286291..61a66ea8e 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseclusterendpointunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseclusterendpointunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseClusterEndpoint = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseclusterunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseclusterunion.md index e95997dcb..a917f5807 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseclusterunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseclusterunion.md @@ -16,4 +16,3 @@ const value: models.SyncReconcileResponseCluster = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecollectionnameunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecollectionnameunion.md index a4d79d493..56559db90 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecollectionnameunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecollectionnameunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseCollectionName = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecomputebackendunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecomputebackendunion.md index c964ddf32..ac7b5cc66 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecomputebackendunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecomputebackendunion.md @@ -18,4 +18,3 @@ const value: models.SyncReconcileResponseComputeBackendHorizon = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecomputeunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecomputeunion.md index 5dadb1706..bf5abdd6f 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecomputeunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecomputeunion.md @@ -14,4 +14,3 @@ const value: models.SyncReconcileResponseCompute = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseconnectionurlunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseconnectionurlunion.md index 242225bcf..42eb96d1b 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseconnectionurlunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseconnectionurlunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseConnectionUrl = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecontainernameunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecontainernameunion.md index eac9a80ac..190437126 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecontainernameunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecontainernameunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseContainerName = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecontrollerplatformunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecontrollerplatformunion.md index 96ff57b61..cab7a3af5 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecontrollerplatformunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecontrollerplatformunion.md @@ -14,4 +14,3 @@ const value: models.SyncReconcileResponseControllerPlatformEnum = "aws"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleasedefaultunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleasedefaultunion.md index 51a76e6cb..67eec675a 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleasedefaultunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleasedefaultunion.md @@ -48,4 +48,3 @@ const value: models.SyncReconcileResponseCurrentReleaseDefaultStringList = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseextendconditionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseextendconditionunion.md index 303bddc7b..51d7d3fbf 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseextendconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseextendconditionunion.md @@ -17,4 +17,3 @@ const value: models.SyncReconcileResponseCurrentReleaseExtendCondition = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseextendresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseextendresourceconditionunion.md index 994dd6a3f..f80d3be83 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseextendresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseextendresourceconditionunion.md @@ -18,4 +18,3 @@ const value: models.SyncReconcileResponseCurrentReleaseExtendConditionResource = ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseextendunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseextendunion.md index 15cc2ef86..2f3cc6119 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseextendunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseextendunion.md @@ -20,4 +20,3 @@ const value: models.SyncReconcileResponseCurrentReleaseExtend = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleasemanagementunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleasemanagementunion.md index 9a3836235..a39a300dc 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleasemanagementunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleasemanagementunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseCurrentReleaseManagement2 = { ```typescript const value: models.SyncReconcileResponseCurrentReleaseManagementEnum = "auto"; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseoverrideconditionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseoverrideconditionunion.md index 6ac65510f..62fde2185 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseoverrideconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseoverrideconditionunion.md @@ -17,4 +17,3 @@ const value: models.SyncReconcileResponseCurrentReleaseOverrideCondition = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseoverrideresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseoverrideresourceconditionunion.md index 773433fb8..ef32cdd45 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseoverrideresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseoverrideresourceconditionunion.md @@ -18,4 +18,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseoverrideunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseoverrideunion.md index a792ec873..72f95a483 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseoverrideunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseoverrideunion.md @@ -20,4 +20,3 @@ const value: models.SyncReconcileResponseCurrentReleaseOverride = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseprofileconditionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseprofileconditionunion.md index 083c28068..14e0bd873 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseprofileconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseprofileconditionunion.md @@ -17,4 +17,3 @@ const value: models.SyncReconcileResponseCurrentReleaseProfileCondition = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseprofileresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseprofileresourceconditionunion.md index 80c08dbb5..ac9deef4d 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseprofileresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseprofileresourceconditionunion.md @@ -18,4 +18,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseprofileunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseprofileunion.md index 33622f3d3..428c685cb 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseprofileunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseprofileunion.md @@ -20,4 +20,3 @@ const value: models.SyncReconcileResponseCurrentReleaseProfile = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseresources.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseresources.md index cf00a8abe..290aab3ab 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseresources.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseresources.md @@ -17,9 +17,10 @@ let value: SyncReconcileResponseCurrentReleaseResources = { ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `config` | [models.SyncReconcileResponseCurrentReleaseConfig](../models/syncreconcileresponsecurrentreleaseconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | -| `dependencies` | [models.SyncReconcileResponseCurrentReleaseDependency](../models/syncreconcileresponsecurrentreleasedependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | -| `lifecycle` | [models.SyncReconcileResponseCurrentReleaseLifecycle](../models/syncreconcileresponsecurrentreleaselifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | -| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `config` | [models.SyncReconcileResponseCurrentReleaseConfig](../models/syncreconcileresponsecurrentreleaseconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | +| `dependencies` | [models.SyncReconcileResponseCurrentReleaseDependency](../models/syncreconcileresponsecurrentreleasedependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | +| `enabledWhen` | *string* | :heavy_minus_sign: | Id of the boolean stack input that decides whether this resource is
created at all. `None` means always create it.

Set by `.enabled(input)` in the SDK. Setup emitters render the resource
conditionally on the matching template variable, so a deployer who says no
never gets the resource, its outputs, or anything derived from it. | +| `lifecycle` | [models.SyncReconcileResponseCurrentReleaseLifecycle](../models/syncreconcileresponsecurrentreleaselifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | +| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleasetypeunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleasetypeunion.md index 8c172ee59..139733785 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleasetypeunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleasetypeunion.md @@ -14,4 +14,3 @@ const value: models.SyncReconcileResponseCurrentReleaseTypeEnvEnum = "plain"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseunion.md index 6a3731cec..db1e330be 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleaseunion.md @@ -19,4 +19,3 @@ const value: models.SyncReconcileResponseCurrentRelease = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleasevalidationunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleasevalidationunion.md index 3defa857a..8b896f784 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleasevalidationunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsecurrentreleasevalidationunion.md @@ -14,4 +14,3 @@ const value: models.SyncReconcileResponseCurrentReleaseValidation = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatabaseidunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatabaseidunion.md index d215af39d..5f004f63a 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatabaseidunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatabaseidunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseDatabaseId = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatabaseunion1.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatabaseunion1.md index 95a532df0..500d69b03 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatabaseunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatabaseunion1.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseDatabase2 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatabaseunion2.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatabaseunion2.md index 6d233190c..ee841bab1 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatabaseunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatabaseunion2.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseDatabase3 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatabaseunion3.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatabaseunion3.md index c858f2ce9..3f45c617b 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatabaseunion3.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatabaseunion3.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseDatabase4 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatabaseunion4.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatabaseunion4.md index 46651dcd6..42479c80f 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatabaseunion4.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatabaseunion4.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseDatabase5 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatabaseunion5.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatabaseunion5.md index 8202ad53c..51245f831 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatabaseunion5.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatabaseunion5.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseDatabase6 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatadirunion1.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatadirunion1.md index 7537ffa3d..da71a436d 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatadirunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatadirunion1.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseDataDir1 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatadirunion2.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatadirunion2.md index f48b47d2f..5e1ed2b38 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatadirunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsedatadirunion2.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseDataDir3 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsedefaultdomainunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsedefaultdomainunion.md index 087af21b1..487893e27 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsedefaultdomainunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsedefaultdomainunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseDefaultDomain = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsedomainmetadataunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsedomainmetadataunion.md index a41971da9..590e69daa 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsedomainmetadataunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsedomainmetadataunion.md @@ -19,4 +19,3 @@ const value: models.SyncReconcileResponseDomainMetadata = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsedomainskubernetesunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsedomainskubernetesunion.md index c31432f6f..c699619be 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsedomainskubernetesunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsedomainskubernetesunion.md @@ -18,4 +18,3 @@ const value: models.SyncReconcileResponseDomainsKubernetes = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsedomainsunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsedomainsunion.md index 0f5a3ee99..ab471f33d 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsedomainsunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsedomainsunion.md @@ -14,4 +14,3 @@ const value: models.SyncReconcileResponseDomains = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseenvironmentinfounion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseenvironmentinfounion.md index bd8d81a6b..8b81f9c3d 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseenvironmentinfounion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseenvironmentinfounion.md @@ -60,4 +60,3 @@ const value: models.SyncReconcileResponseEnvironmentInfoTest = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseenvironmentnameunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseenvironmentnameunion.md index acc97453c..f18fcbff1 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseenvironmentnameunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseenvironmentnameunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseEnvironmentName = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseerrorunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseerrorunion.md index 97c9c4335..67c227d68 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseerrorunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseerrorunion.md @@ -18,4 +18,3 @@ const value: models.SyncReconcileResponseError = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseexposureunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseexposureunion.md index d684b33f9..4a3fb37d6 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseexposureunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseexposureunion.md @@ -48,4 +48,3 @@ const value: models.SyncReconcileResponseExposureCustom = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsai.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsai.md new file mode 100644 index 000000000..a255eea32 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsai.md @@ -0,0 +1,27 @@ +# SyncReconcileResponseExternalBindingsAi + +External AI provider binding configuration (BYO-key). + +The operator-supplied secret rides inside the binding via +`BindingValue`, so it is a literal on cloud platforms and gains +Kubernetes SecretRef resolution for free (`extract_binding_secrets` walks +the binding JSON for `secretRef`). + +## Example Usage + +```typescript +import { SyncReconcileResponseExternalBindingsAi } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponseExternalBindingsAi = { + provider: "", + type: "ai", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- | +| `apiKey` | *models.SyncReconcileResponseApiKeyUnion* | :heavy_minus_sign: | Represents a value that can be either a concrete value, a template expression,
or a reference to a Kubernetes Secret | +| `provider` | *string* | :heavy_check_mark: | The external AI provider name (e.g., "openai", "anthropic") | +| `type` | [models.TargetTypeAi](../models/targettypeai.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingscloudsql.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingscloudsql.md index 5af93c2ce..8c00ea8c9 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingscloudsql.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingscloudsql.md @@ -21,6 +21,7 @@ let value: SyncReconcileResponseExternalBindingsCloudSQL = { | `host` | *models.SyncReconcileResponseHostUnion1* | :heavy_minus_sign: | Represents a value that can be either a concrete value, a template expression,
or a reference to a Kubernetes Secret | | `passwordSecretName` | *models.SyncReconcileResponsePasswordSecretNameUnion* | :heavy_minus_sign: | Represents a value that can be either a concrete value, a template expression,
or a reference to a Kubernetes Secret | | `port` | *models.SyncReconcileResponsePortUnion2* | :heavy_minus_sign: | Represents a value that can be either a concrete value, a template expression,
or a reference to a Kubernetes Secret | +| `serverCaCertificates` | *models.SyncReconcileResponseServerCaCertificatesUnion* | :heavy_minus_sign: | Represents a value that can be either a concrete value, a template expression,
or a reference to a Kubernetes Secret | | `username` | *models.SyncReconcileResponseUsernameUnion2* | :heavy_minus_sign: | Represents a value that can be either a concrete value, a template expression,
or a reference to a Kubernetes Secret | | `service` | *"cloud-sql"* | :heavy_check_mark: | N/A | | `type` | [models.TargetTypePostgres2](../models/targettypepostgres2.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsexternal.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsexternal.md index d536b460f..ea7af204c 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsexternal.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsexternal.md @@ -22,6 +22,7 @@ let value: SyncReconcileResponseExternalBindingsExternal = { | `host` | *models.SyncReconcileResponseHostUnion3* | :heavy_minus_sign: | Represents a value that can be either a concrete value, a template expression,
or a reference to a Kubernetes Secret | | `password` | *string* | :heavy_check_mark: | Connection password as a concrete value, never an unresolved `SecretRef`: the platform
materializes the Kubernetes secret into the pod env. The cloud variants carry a secret
locator instead. | | `port` | *models.SyncReconcileResponsePortUnion4* | :heavy_minus_sign: | Represents a value that can be either a concrete value, a template expression,
or a reference to a Kubernetes Secret | +| `sslMode` | [models.SyncReconcileResponseSslMode](../models/syncreconcileresponsesslmode.md) | :heavy_minus_sign: | TLS policy for an operator-provided / BYO Postgres database.

Unlike libpq's ambiguous `prefer` mode, both choices map exactly to the
connection settings exposed by every supported SDK. | | `username` | *models.SyncReconcileResponseUsernameUnion4* | :heavy_minus_sign: | Represents a value that can be either a concrete value, a template expression,
or a reference to a Kubernetes Secret | | `service` | *"external"* | :heavy_check_mark: | N/A | | `type` | [models.TargetTypePostgres4](../models/targettypepostgres4.md) | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion1.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion1.md index f1170e307..793a0e21a 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion1.md @@ -40,4 +40,3 @@ const value: models.SyncReconcileResponseExternalBindingsLocalStorage = { type: "storage", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion2.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion2.md index 865ae3d20..cc2ae38e3 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion2.md @@ -40,4 +40,3 @@ const value: models.SyncReconcileResponseExternalBindingsLocalQueue = { type: "queue", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion3.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion3.md index 2e9d5cc1c..b5cd0a541 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion3.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion3.md @@ -49,4 +49,3 @@ const value: models.SyncReconcileResponseExternalBindingsLocalKv = { type: "kv", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion4.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion4.md index ece6d3899..9ef3e3417 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion4.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion4.md @@ -40,4 +40,3 @@ const value: models.SyncReconcileResponseExternalBindingsLocal = { type: "artifact_registry", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion5.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion5.md index 65ad516aa..32192cee8 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion5.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion5.md @@ -50,4 +50,3 @@ const value: models.SyncReconcileResponseExternalBindingsLocalVault = { type: "vault", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion6.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion6.md index f31e90989..a2b6fd1a2 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion6.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion6.md @@ -51,4 +51,3 @@ const value: models.SyncReconcileResponseExternalBindingsLocalPostgres = { type: "postgres", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion7.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion7.md index 36d0ee555..211fa18a9 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion7.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseexternalbindingsunion7.md @@ -73,3 +73,11 @@ const value: models.SyncReconcileResponseExternalBindingsUnion6 = { }; ``` +### `models.SyncReconcileResponseExternalBindingsAi` + +```typescript +const value: models.SyncReconcileResponseExternalBindingsAi = { + provider: "", + type: "ai", +}; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsefailuredomains1.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsefailuredomains1.md new file mode 100644 index 000000000..2cd557444 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsefailuredomains1.md @@ -0,0 +1,20 @@ +# SyncReconcileResponseFailureDomains1 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { SyncReconcileResponseFailureDomains1 } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponseFailureDomains1 = { + spread: 244778, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsefailuredomains2.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsefailuredomains2.md new file mode 100644 index 000000000..e0807df7b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsefailuredomains2.md @@ -0,0 +1,20 @@ +# SyncReconcileResponseFailureDomains2 + +Failure-domain policy selected for a compute pool. + +## Example Usage + +```typescript +import { SyncReconcileResponseFailureDomains2 } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponseFailureDomains2 = { + spread: 575572, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `selectedFailureDomains` | *string*[] | :heavy_minus_sign: | Concrete provider domains selected during setup.
Empty delegates deterministic selection to the provider setup implementation. | +| `spread` | *number* | :heavy_check_mark: | Number of distinct failure domains across which new stateful replicas may be spread. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsefailuredomainsunion1.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsefailuredomainsunion1.md new file mode 100644 index 000000000..366528849 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsefailuredomainsunion1.md @@ -0,0 +1,18 @@ +# SyncReconcileResponseFailureDomainsUnion1 + + +## Supported Types + +### `models.SyncReconcileResponseFailureDomains1` + +```typescript +const value: models.SyncReconcileResponseFailureDomains1 = { + spread: 244778, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsefailuredomainsunion2.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsefailuredomainsunion2.md new file mode 100644 index 000000000..8742b509b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsefailuredomainsunion2.md @@ -0,0 +1,18 @@ +# SyncReconcileResponseFailureDomainsUnion2 + + +## Supported Types + +### `models.SyncReconcileResponseFailureDomains2` + +```typescript +const value: models.SyncReconcileResponseFailureDomains2 = { + spread: 575572, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsehorizonmachineimageawsunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsehorizonmachineimageawsunion.md index 782bd86ff..09236770b 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsehorizonmachineimageawsunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsehorizonmachineimageawsunion.md @@ -16,4 +16,3 @@ const value: models.SyncReconcileResponseHorizonMachineImageAws = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsehorizonmachineimageunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsehorizonmachineimageunion.md index 727d0fd94..2ae400529 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsehorizonmachineimageunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsehorizonmachineimageunion.md @@ -30,4 +30,3 @@ const value: models.SyncReconcileResponseHorizonMachineImage = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsehostunion1.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsehostunion1.md index ad541483e..1bbf683ac 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsehostunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsehostunion1.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseHost1 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsehostunion2.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsehostunion2.md index 1c3b23711..959867a82 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsehostunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsehostunion2.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseHost2 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsehostunion3.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsehostunion3.md index 25ebb6dcc..abbbf35b8 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsehostunion3.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsehostunion3.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseHost3 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsehostunion4.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsehostunion4.md index 8b1964ada..74ddbebf5 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsehostunion4.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsehostunion4.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseHost4 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseinitialsetupauthority.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseinitialsetupauthority.md new file mode 100644 index 000000000..6de8736e6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseinitialsetupauthority.md @@ -0,0 +1,17 @@ +# SyncReconcileResponseInitialSetupAuthority + +Actor that owns structural work during the initial setup phase. + +## Example Usage + +```typescript +import { SyncReconcileResponseInitialSetupAuthority } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponseInitialSetupAuthority = "importedHandoff"; +``` + +## Values + +```typescript +"importedHandoff" | "directSetup" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsekubernetesunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsekubernetesunion.md index 0cca399f4..1199759ce 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsekubernetesunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsekubernetesunion.md @@ -14,4 +14,3 @@ const value: models.SyncReconcileResponseKubernetes = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponselifecycleunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponselifecycleunion.md index 9ef50418e..9d801a528 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponselifecycleunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponselifecycleunion.md @@ -14,4 +14,3 @@ const value: models.SyncReconcileResponseStackStateLifecycleEnum = "frozen"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsemanagementconfigunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsemanagementconfigunion.md index 3bd95320f..2ad49df7b 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsemanagementconfigunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsemanagementconfigunion.md @@ -45,4 +45,3 @@ const value: models.SyncReconcileResponseManagementConfigKubernetes = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsemonitoringunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsemonitoringunion.md index 60759a236..48df98dae 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsemonitoringunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsemonitoringunion.md @@ -17,4 +17,3 @@ const value: models.SyncReconcileResponseMonitoring = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsenamespaceunion1.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsenamespaceunion1.md index 6f98aac75..37d6f8cb2 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsenamespaceunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsenamespaceunion1.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseNamespace1 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsenamespaceunion2.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsenamespaceunion2.md index b6461f29c..24c86e44b 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsenamespaceunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsenamespaceunion2.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseNamespace2 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsenetworkunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsenetworkunion.md index 57ff40694..0dc67fc4c 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsenetworkunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsenetworkunion.md @@ -60,4 +60,3 @@ const value: models.SyncReconcileResponseNetworkByoVnetAzure = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseoutputsunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseoutputsunion.md index 408db3c80..172803c20 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseoutputsunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseoutputsunion.md @@ -16,4 +16,3 @@ const value: models.SyncReconcileResponseOutputs = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepasswordsecretarnunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepasswordsecretarnunion.md index 0999fa844..e7ad67af0 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepasswordsecretarnunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepasswordsecretarnunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponsePasswordSecretArn = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepasswordsecretnameunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepasswordsecretnameunion.md index b20831552..30ac7de1c 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepasswordsecretnameunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepasswordsecretnameunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponsePasswordSecretName = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepasswordsecreturiunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepasswordsecreturiunion.md index 6cdc4b4af..3b3892f17 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepasswordsecreturiunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepasswordsecreturiunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponsePasswordSecretUri = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstack.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstack.md new file mode 100644 index 000000000..0655c0735 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstack.md @@ -0,0 +1,38 @@ +# SyncReconcileResponsePendingPreparedStack + +A bag of resources, unaware of any cloud. + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStack } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStack = { + id: "", + resources: { + "key": { + config: { + id: "", + type: "", + }, + dependencies: [ + { + id: "", + type: "", + }, + ], + lifecycle: "live", + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the stack | +| `inputs` | [models.SyncReconcileResponsePendingPreparedStackInput](../models/syncreconcileresponsependingpreparedstackinput.md)[] | :heavy_minus_sign: | Input definitions required before setup or deployment can proceed. | +| `permissions` | [models.SyncReconcileResponsePendingPreparedStackPermissions](../models/syncreconcileresponsependingpreparedstackpermissions.md) | :heavy_minus_sign: | Combined permissions configuration that contains both profiles and management | +| `resources` | Record | :heavy_check_mark: | Map of resource IDs to their configurations and lifecycle settings | +| `supportedPlatforms` | [models.SyncReconcileResponsePendingPreparedStackSupportedPlatform](../models/syncreconcileresponsependingpreparedstacksupportedplatform.md)[] | :heavy_minus_sign: | Which platforms this stack supports. When None, all platforms are supported. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackconfig.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackconfig.md new file mode 100644 index 000000000..c263b98d0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackconfig.md @@ -0,0 +1,22 @@ +# SyncReconcileResponsePendingPreparedStackConfig + +Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackConfig } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackConfig = { + id: "", + type: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. | +| `type` | *string* | :heavy_check_mark: | Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. | +| `additionalProperties` | Record | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackdefaultboolean.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackdefaultboolean.md new file mode 100644 index 000000000..63d36b41b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackdefaultboolean.md @@ -0,0 +1,19 @@ +# SyncReconcileResponsePendingPreparedStackDefaultBoolean + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackDefaultBoolean } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackDefaultBoolean = { + type: "boolean", + value: false, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | +| `type` | [models.SyncReconcileResponsePendingPreparedStackTypeBoolean](../models/syncreconcileresponsependingpreparedstacktypeboolean.md) | :heavy_check_mark: | N/A | +| `value` | *boolean* | :heavy_check_mark: | Boolean default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackdefaultnumber.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackdefaultnumber.md new file mode 100644 index 000000000..d1aa73d1d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackdefaultnumber.md @@ -0,0 +1,19 @@ +# SyncReconcileResponsePendingPreparedStackDefaultNumber + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackDefaultNumber } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackDefaultNumber = { + type: "number", + value: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `type` | [models.SyncReconcileResponsePendingPreparedStackTypeNumber](../models/syncreconcileresponsependingpreparedstacktypenumber.md) | :heavy_check_mark: | N/A | +| `value` | *string* | :heavy_check_mark: | Number default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackdefaultstring.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackdefaultstring.md new file mode 100644 index 000000000..cb94bdc56 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackdefaultstring.md @@ -0,0 +1,19 @@ +# SyncReconcileResponsePendingPreparedStackDefaultString + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackDefaultString } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackDefaultString = { + type: "string", + value: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------ | +| `type` | [models.SyncReconcileResponsePendingPreparedStackTypeString](../models/syncreconcileresponsependingpreparedstacktypestring.md) | :heavy_check_mark: | N/A | +| `value` | *string* | :heavy_check_mark: | String default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackdefaultstringlist.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackdefaultstringlist.md new file mode 100644 index 000000000..8edb7d81e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackdefaultstringlist.md @@ -0,0 +1,23 @@ +# SyncReconcileResponsePendingPreparedStackDefaultStringList + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackDefaultStringList } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackDefaultStringList = { + type: "stringList", + value: [ + "", + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `type` | [models.SyncReconcileResponsePendingPreparedStackTypeStringList](../models/syncreconcileresponsependingpreparedstacktypestringlist.md) | :heavy_check_mark: | N/A | +| `value` | *string*[] | :heavy_check_mark: | String list default. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackdefaultunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackdefaultunion.md new file mode 100644 index 000000000..835c57c5c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackdefaultunion.md @@ -0,0 +1,51 @@ +# SyncReconcileResponsePendingPreparedStackDefaultUnion + + +## Supported Types + +### `models.SyncReconcileResponsePendingPreparedStackDefaultString` + +```typescript +const value: models.SyncReconcileResponsePendingPreparedStackDefaultString = { + type: "string", + value: "", +}; +``` + +### `models.SyncReconcileResponsePendingPreparedStackDefaultNumber` + +```typescript +const value: models.SyncReconcileResponsePendingPreparedStackDefaultNumber = { + type: "number", + value: "", +}; +``` + +### `models.SyncReconcileResponsePendingPreparedStackDefaultBoolean` + +```typescript +const value: models.SyncReconcileResponsePendingPreparedStackDefaultBoolean = { + type: "boolean", + value: false, +}; +``` + +### `models.SyncReconcileResponsePendingPreparedStackDefaultStringList` + +```typescript +const value: models.SyncReconcileResponsePendingPreparedStackDefaultStringList = + { + type: "stringList", + value: [ + "", + "", + "", + ], + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackdependency.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackdependency.md new file mode 100644 index 000000000..9fa80e1fb --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackdependency.md @@ -0,0 +1,21 @@ +# SyncReconcileResponsePendingPreparedStackDependency + +Reference to a resource by its stable id and resource type. + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackDependency } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackDependency = { + id: "", + type: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | N/A | +| `type` | *string* | :heavy_check_mark: | Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackenv.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackenv.md new file mode 100644 index 000000000..ebcbdfc01 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackenv.md @@ -0,0 +1,21 @@ +# SyncReconcileResponsePendingPreparedStackEnv + +How a resolved stack input is injected into runtime environment variables. + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackEnv } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackEnv = { + name: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | ----------------------------------------------------------------------- | +| `name` | *string* | :heavy_check_mark: | Environment variable name. | +| `targetResources` | *string*[] | :heavy_minus_sign: | Target resource IDs or patterns. None means every env-capable resource. | +| `type` | *models.SyncReconcileResponsePendingPreparedStackTypeUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextend.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextend.md new file mode 100644 index 000000000..fd44eb7ab --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextend.md @@ -0,0 +1,23 @@ +# SyncReconcileResponsePendingPreparedStackExtend + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackExtend } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackExtend = { + description: "cruelly whether yowza incidentally innocently idealistic", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.SyncReconcileResponsePendingPreparedStackExtendPlatforms](../models/syncreconcileresponsependingpreparedstackextendplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendaw.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendaw.md new file mode 100644 index 000000000..48ea14141 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendaw.md @@ -0,0 +1,24 @@ +# SyncReconcileResponsePendingPreparedStackExtendAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackExtendAw } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackExtendAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncReconcileResponsePendingPreparedStackExtendAwBinding](../models/syncreconcileresponsependingpreparedstackextendawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.SyncReconcileResponsePendingPreparedStackExtendEffect](../models/syncreconcileresponsependingpreparedstackextendeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.SyncReconcileResponsePendingPreparedStackExtendAwGrant](../models/syncreconcileresponsependingpreparedstackextendawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendawbinding.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendawbinding.md new file mode 100644 index 000000000..74aa4b204 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendawbinding.md @@ -0,0 +1,18 @@ +# SyncReconcileResponsePendingPreparedStackExtendAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackExtendAwBinding } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackExtendAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.SyncReconcileResponsePendingPreparedStackExtendAwResource](../models/syncreconcileresponsependingpreparedstackextendawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.SyncReconcileResponsePendingPreparedStackExtendAwStack](../models/syncreconcileresponsependingpreparedstackextendawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendawgrant.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendawgrant.md new file mode 100644 index 000000000..fb89c1a75 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendawgrant.md @@ -0,0 +1,21 @@ +# SyncReconcileResponsePendingPreparedStackExtendAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackExtendAwGrant } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackExtendAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendawresource.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendawresource.md new file mode 100644 index 000000000..bd2d40633 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendawresource.md @@ -0,0 +1,20 @@ +# SyncReconcileResponsePendingPreparedStackExtendAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackExtendAwResource } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackExtendAwResource = { + resources: [], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendawstack.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendawstack.md new file mode 100644 index 000000000..f7175dd91 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendawstack.md @@ -0,0 +1,24 @@ +# SyncReconcileResponsePendingPreparedStackExtendAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackExtendAwStack } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackExtendAwStack = { + resources: [ + "", + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendazure.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendazure.md new file mode 100644 index 000000000..c458ccbaa --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendazure.md @@ -0,0 +1,23 @@ +# SyncReconcileResponsePendingPreparedStackExtendAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackExtendAzure } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackExtendAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncReconcileResponsePendingPreparedStackExtendAzureBinding](../models/syncreconcileresponsependingpreparedstackextendazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncReconcileResponsePendingPreparedStackExtendAzureGrant](../models/syncreconcileresponsependingpreparedstackextendazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendazurebinding.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendazurebinding.md new file mode 100644 index 000000000..cdebfc136 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendazurebinding.md @@ -0,0 +1,18 @@ +# SyncReconcileResponsePendingPreparedStackExtendAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackExtendAzureBinding } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackExtendAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.SyncReconcileResponsePendingPreparedStackExtendAzureResource](../models/syncreconcileresponsependingpreparedstackextendazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.SyncReconcileResponsePendingPreparedStackExtendAzureStack](../models/syncreconcileresponsependingpreparedstackextendazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendazuregrant.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendazuregrant.md new file mode 100644 index 000000000..87a46bc13 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendazuregrant.md @@ -0,0 +1,21 @@ +# SyncReconcileResponsePendingPreparedStackExtendAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackExtendAzureGrant } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackExtendAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendazureresource.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendazureresource.md new file mode 100644 index 000000000..b1b812a4a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendazureresource.md @@ -0,0 +1,19 @@ +# SyncReconcileResponsePendingPreparedStackExtendAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackExtendAzureResource } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackExtendAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendazurestack.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendazurestack.md new file mode 100644 index 000000000..7d4b71355 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendazurestack.md @@ -0,0 +1,19 @@ +# SyncReconcileResponsePendingPreparedStackExtendAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackExtendAzureStack } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackExtendAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendconditionresource.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendconditionresource.md new file mode 100644 index 000000000..6443c519d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendconditionresource.md @@ -0,0 +1,21 @@ +# SyncReconcileResponsePendingPreparedStackExtendConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackExtendConditionResource } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackExtendConditionResource = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendconditionstack.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendconditionstack.md new file mode 100644 index 000000000..31644f19a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendconditionstack.md @@ -0,0 +1,21 @@ +# SyncReconcileResponsePendingPreparedStackExtendConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackExtendConditionStack } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackExtendConditionStack = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendeffect.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendeffect.md new file mode 100644 index 000000000..ac3fb2465 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendeffect.md @@ -0,0 +1,17 @@ +# SyncReconcileResponsePendingPreparedStackExtendEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackExtendEffect } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackExtendEffect = "Allow"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendgcp.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendgcp.md new file mode 100644 index 000000000..f15b86750 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendgcp.md @@ -0,0 +1,23 @@ +# SyncReconcileResponsePendingPreparedStackExtendGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackExtendGcp } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackExtendGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.SyncReconcileResponsePendingPreparedStackExtendGcpBinding](../models/syncreconcileresponsependingpreparedstackextendgcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncReconcileResponsePendingPreparedStackExtendGcpGrant](../models/syncreconcileresponsependingpreparedstackextendgcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendgcpbinding.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendgcpbinding.md new file mode 100644 index 000000000..e23efec21 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendgcpbinding.md @@ -0,0 +1,18 @@ +# SyncReconcileResponsePendingPreparedStackExtendGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackExtendGcpBinding } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackExtendGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.SyncReconcileResponsePendingPreparedStackExtendGcpResource](../models/syncreconcileresponsependingpreparedstackextendgcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.SyncReconcileResponsePendingPreparedStackExtendGcpStack](../models/syncreconcileresponsependingpreparedstackextendgcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendgcpgrant.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendgcpgrant.md new file mode 100644 index 000000000..ed5da3d30 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendgcpgrant.md @@ -0,0 +1,21 @@ +# SyncReconcileResponsePendingPreparedStackExtendGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackExtendGcpGrant } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackExtendGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendgcpresource.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendgcpresource.md new file mode 100644 index 000000000..087e55bd9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendgcpresource.md @@ -0,0 +1,20 @@ +# SyncReconcileResponsePendingPreparedStackExtendGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackExtendGcpResource } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackExtendGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | ------------------------------------------------------------------------------ | +| `condition` | *models.SyncReconcileResponsePendingPreparedStackExtendResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendgcpstack.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendgcpstack.md new file mode 100644 index 000000000..dad0679a3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendgcpstack.md @@ -0,0 +1,20 @@ +# SyncReconcileResponsePendingPreparedStackExtendGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackExtendGcpStack } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackExtendGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | --------------------------------------------------------------------------- | +| `condition` | *models.SyncReconcileResponsePendingPreparedStackExtendStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendplatforms.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendplatforms.md new file mode 100644 index 000000000..53d9a9bc8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendplatforms.md @@ -0,0 +1,19 @@ +# SyncReconcileResponsePendingPreparedStackExtendPlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackExtendPlatforms } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackExtendPlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `aws` | [models.SyncReconcileResponsePendingPreparedStackExtendAw](../models/syncreconcileresponsependingpreparedstackextendaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.SyncReconcileResponsePendingPreparedStackExtendAzure](../models/syncreconcileresponsependingpreparedstackextendazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.SyncReconcileResponsePendingPreparedStackExtendGcp](../models/syncreconcileresponsependingpreparedstackextendgcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendresourceconditionunion.md new file mode 100644 index 000000000..ad791a806 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendresourceconditionunion.md @@ -0,0 +1,20 @@ +# SyncReconcileResponsePendingPreparedStackExtendResourceConditionUnion + + +## Supported Types + +### `models.SyncReconcileResponsePendingPreparedStackExtendConditionResource` + +```typescript +const value: + models.SyncReconcileResponsePendingPreparedStackExtendConditionResource = { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendstackconditionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendstackconditionunion.md new file mode 100644 index 000000000..be5b4a20d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendstackconditionunion.md @@ -0,0 +1,20 @@ +# SyncReconcileResponsePendingPreparedStackExtendStackConditionUnion + + +## Supported Types + +### `models.SyncReconcileResponsePendingPreparedStackExtendConditionStack` + +```typescript +const value: + models.SyncReconcileResponsePendingPreparedStackExtendConditionStack = { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendunion.md new file mode 100644 index 000000000..d1080d76f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackextendunion.md @@ -0,0 +1,22 @@ +# SyncReconcileResponsePendingPreparedStackExtendUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.SyncReconcileResponsePendingPreparedStackExtend` + +```typescript +const value: models.SyncReconcileResponsePendingPreparedStackExtend = { + description: "cruelly whether yowza incidentally innocently idealistic", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackinput.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackinput.md new file mode 100644 index 000000000..6b9321b97 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackinput.md @@ -0,0 +1,34 @@ +# SyncReconcileResponsePendingPreparedStackInput + +Stack input definition serialized into a release stack. + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackInput } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackInput = { + description: "left qualified yahoo", + id: "", + kind: "integer", + label: "", + providedBy: [], + required: false, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------- | +| `default` | *models.SyncReconcileResponsePendingPreparedStackDefaultUnion* | :heavy_minus_sign: | N/A | +| `description` | *string* | :heavy_check_mark: | Human-facing helper text. | +| `env` | [models.SyncReconcileResponsePendingPreparedStackEnv](../models/syncreconcileresponsependingpreparedstackenv.md)[] | :heavy_minus_sign: | Runtime env-var mappings for v1 input resolution. | +| `id` | *string* | :heavy_check_mark: | Stable input ID used by CLI/API calls. | +| `kind` | [models.SyncReconcileResponsePendingPreparedStackKind](../models/syncreconcileresponsependingpreparedstackkind.md) | :heavy_check_mark: | Primitive stack input kind. | +| `label` | *string* | :heavy_check_mark: | Human-facing field label. | +| `placeholder` | *string* | :heavy_minus_sign: | Example placeholder shown in UI. | +| `platforms` | [models.SyncReconcileResponsePendingPreparedStackPlatform](../models/syncreconcileresponsependingpreparedstackplatform.md)[] | :heavy_minus_sign: | Platforms where this input applies. | +| `providedBy` | [models.SyncReconcileResponsePendingPreparedStackProvidedBy](../models/syncreconcileresponsependingpreparedstackprovidedby.md)[] | :heavy_check_mark: | Who can provide this value. | +| `required` | *boolean* | :heavy_check_mark: | Whether a resolved value is required before deployment can proceed. | +| `validation` | *models.SyncReconcileResponsePendingPreparedStackValidationUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackkind.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackkind.md new file mode 100644 index 000000000..8d49662e5 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackkind.md @@ -0,0 +1,17 @@ +# SyncReconcileResponsePendingPreparedStackKind + +Primitive stack input kind. + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackKind } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackKind = "stringList"; +``` + +## Values + +```typescript +"string" | "secret" | "number" | "integer" | "boolean" | "enum" | "stringList" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstacklifecycle.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstacklifecycle.md new file mode 100644 index 000000000..41c10ccac --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstacklifecycle.md @@ -0,0 +1,17 @@ +# SyncReconcileResponsePendingPreparedStackLifecycle + +Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackLifecycle } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackLifecycle = "frozen"; +``` + +## Values + +```typescript +"frozen" | "live" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackmanagement1.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackmanagement1.md new file mode 100644 index 000000000..28b93feba --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackmanagement1.md @@ -0,0 +1,26 @@ +# SyncReconcileResponsePendingPreparedStackManagement1 + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackManagement1 } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackManagement1 = { + extend: { + "key": [], + "key1": [ + { + description: "now forager phooey cinder finally whenever restfully ack", + id: "", + platforms: {}, + }, + ], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `extend` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackmanagement2.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackmanagement2.md new file mode 100644 index 000000000..6c6fcd4fa --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackmanagement2.md @@ -0,0 +1,27 @@ +# SyncReconcileResponsePendingPreparedStackManagement2 + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackManagement2 } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackManagement2 = { + override: { + "key": [ + { + description: + "incidentally outnumber before till roadway encouragement rightfully", + id: "", + platforms: {}, + }, + ], + "key1": [], + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------- | +| `override` | Record | :heavy_check_mark: | Permission profile that maps resources to permission sets
Key can be "*" for all resources or resource name for specific resource | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackmanagementenum.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackmanagementenum.md new file mode 100644 index 000000000..82a4d9e90 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackmanagementenum.md @@ -0,0 +1,15 @@ +# SyncReconcileResponsePendingPreparedStackManagementEnum + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackManagementEnum } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackManagementEnum = "auto"; +``` + +## Values + +```typescript +"auto" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackmanagementunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackmanagementunion.md new file mode 100644 index 000000000..7185c1f13 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackmanagementunion.md @@ -0,0 +1,48 @@ +# SyncReconcileResponsePendingPreparedStackManagementUnion + +Management permissions configuration for stack management access + + +## Supported Types + +### `models.SyncReconcileResponsePendingPreparedStackManagement1` + +```typescript +const value: models.SyncReconcileResponsePendingPreparedStackManagement1 = { + extend: { + "key": [], + "key1": [ + { + description: "now forager phooey cinder finally whenever restfully ack", + id: "", + platforms: {}, + }, + ], + }, +}; +``` + +### `models.SyncReconcileResponsePendingPreparedStackManagement2` + +```typescript +const value: models.SyncReconcileResponsePendingPreparedStackManagement2 = { + override: { + "key": [ + { + description: + "incidentally outnumber before till roadway encouragement rightfully", + id: "", + platforms: {}, + }, + ], + "key1": [], + }, +}; +``` + +### `models.SyncReconcileResponsePendingPreparedStackManagementEnum` + +```typescript +const value: models.SyncReconcileResponsePendingPreparedStackManagementEnum = + "auto"; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverride.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverride.md new file mode 100644 index 000000000..d0148dcf4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverride.md @@ -0,0 +1,23 @@ +# SyncReconcileResponsePendingPreparedStackOverride + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackOverride } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackOverride = { + description: "fatally the equal whimsical for coal bare rowdy flint", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.SyncReconcileResponsePendingPreparedStackOverridePlatforms](../models/syncreconcileresponsependingpreparedstackoverrideplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideaw.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideaw.md new file mode 100644 index 000000000..8c2c0f404 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideaw.md @@ -0,0 +1,24 @@ +# SyncReconcileResponsePendingPreparedStackOverrideAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackOverrideAw } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackOverrideAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncReconcileResponsePendingPreparedStackOverrideAwBinding](../models/syncreconcileresponsependingpreparedstackoverrideawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.SyncReconcileResponsePendingPreparedStackOverrideEffect](../models/syncreconcileresponsependingpreparedstackoverrideeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.SyncReconcileResponsePendingPreparedStackOverrideAwGrant](../models/syncreconcileresponsependingpreparedstackoverrideawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideawbinding.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideawbinding.md new file mode 100644 index 000000000..1de5e9c43 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideawbinding.md @@ -0,0 +1,18 @@ +# SyncReconcileResponsePendingPreparedStackOverrideAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackOverrideAwBinding } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackOverrideAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.SyncReconcileResponsePendingPreparedStackOverrideAwResource](../models/syncreconcileresponsependingpreparedstackoverrideawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.SyncReconcileResponsePendingPreparedStackOverrideAwStack](../models/syncreconcileresponsependingpreparedstackoverrideawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideawgrant.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideawgrant.md new file mode 100644 index 000000000..aa438b7ab --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideawgrant.md @@ -0,0 +1,21 @@ +# SyncReconcileResponsePendingPreparedStackOverrideAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackOverrideAwGrant } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackOverrideAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideawresource.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideawresource.md new file mode 100644 index 000000000..62a50b175 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideawresource.md @@ -0,0 +1,24 @@ +# SyncReconcileResponsePendingPreparedStackOverrideAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackOverrideAwResource } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackOverrideAwResource = { + resources: [ + "", + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideawstack.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideawstack.md new file mode 100644 index 000000000..4402ff734 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideawstack.md @@ -0,0 +1,20 @@ +# SyncReconcileResponsePendingPreparedStackOverrideAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackOverrideAwStack } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackOverrideAwStack = { + resources: [], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideazure.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideazure.md new file mode 100644 index 000000000..ef84cf30d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideazure.md @@ -0,0 +1,23 @@ +# SyncReconcileResponsePendingPreparedStackOverrideAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackOverrideAzure } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackOverrideAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncReconcileResponsePendingPreparedStackOverrideAzureBinding](../models/syncreconcileresponsependingpreparedstackoverrideazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncReconcileResponsePendingPreparedStackOverrideAzureGrant](../models/syncreconcileresponsependingpreparedstackoverrideazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideazurebinding.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideazurebinding.md new file mode 100644 index 000000000..b0d3cb363 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideazurebinding.md @@ -0,0 +1,18 @@ +# SyncReconcileResponsePendingPreparedStackOverrideAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackOverrideAzureBinding } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackOverrideAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.SyncReconcileResponsePendingPreparedStackOverrideAzureResource](../models/syncreconcileresponsependingpreparedstackoverrideazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.SyncReconcileResponsePendingPreparedStackOverrideAzureStack](../models/syncreconcileresponsependingpreparedstackoverrideazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideazuregrant.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideazuregrant.md new file mode 100644 index 000000000..329d873ad --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideazuregrant.md @@ -0,0 +1,21 @@ +# SyncReconcileResponsePendingPreparedStackOverrideAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackOverrideAzureGrant } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackOverrideAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideazureresource.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideazureresource.md new file mode 100644 index 000000000..002ac9b23 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideazureresource.md @@ -0,0 +1,19 @@ +# SyncReconcileResponsePendingPreparedStackOverrideAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackOverrideAzureResource } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackOverrideAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideazurestack.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideazurestack.md new file mode 100644 index 000000000..58ca500de --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideazurestack.md @@ -0,0 +1,19 @@ +# SyncReconcileResponsePendingPreparedStackOverrideAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackOverrideAzureStack } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackOverrideAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideconditionresource.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideconditionresource.md new file mode 100644 index 000000000..74ed965c8 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideconditionresource.md @@ -0,0 +1,22 @@ +# SyncReconcileResponsePendingPreparedStackOverrideConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackOverrideConditionResource } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackOverrideConditionResource = + { + expression: "", + title: "", + }; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideconditionstack.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideconditionstack.md new file mode 100644 index 000000000..7140c97d3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideconditionstack.md @@ -0,0 +1,21 @@ +# SyncReconcileResponsePendingPreparedStackOverrideConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackOverrideConditionStack } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackOverrideConditionStack = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideeffect.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideeffect.md new file mode 100644 index 000000000..b8f0559be --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideeffect.md @@ -0,0 +1,17 @@ +# SyncReconcileResponsePendingPreparedStackOverrideEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackOverrideEffect } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackOverrideEffect = "Allow"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverridegcp.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverridegcp.md new file mode 100644 index 000000000..6fc17a874 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverridegcp.md @@ -0,0 +1,23 @@ +# SyncReconcileResponsePendingPreparedStackOverrideGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackOverrideGcp } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackOverrideGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncReconcileResponsePendingPreparedStackOverrideGcpBinding](../models/syncreconcileresponsependingpreparedstackoverridegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncReconcileResponsePendingPreparedStackOverrideGcpGrant](../models/syncreconcileresponsependingpreparedstackoverridegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverridegcpbinding.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverridegcpbinding.md new file mode 100644 index 000000000..7b59a0234 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverridegcpbinding.md @@ -0,0 +1,18 @@ +# SyncReconcileResponsePendingPreparedStackOverrideGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackOverrideGcpBinding } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackOverrideGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| `resource` | [models.SyncReconcileResponsePendingPreparedStackOverrideGcpResource](../models/syncreconcileresponsependingpreparedstackoverridegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.SyncReconcileResponsePendingPreparedStackOverrideGcpStack](../models/syncreconcileresponsependingpreparedstackoverridegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverridegcpgrant.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverridegcpgrant.md new file mode 100644 index 000000000..a589a2b14 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverridegcpgrant.md @@ -0,0 +1,21 @@ +# SyncReconcileResponsePendingPreparedStackOverrideGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackOverrideGcpGrant } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackOverrideGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverridegcpresource.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverridegcpresource.md new file mode 100644 index 000000000..99bdf9b2b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverridegcpresource.md @@ -0,0 +1,20 @@ +# SyncReconcileResponsePendingPreparedStackOverrideGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackOverrideGcpResource } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackOverrideGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | +| `condition` | *models.SyncReconcileResponsePendingPreparedStackOverrideResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverridegcpstack.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverridegcpstack.md new file mode 100644 index 000000000..67529bebd --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverridegcpstack.md @@ -0,0 +1,20 @@ +# SyncReconcileResponsePendingPreparedStackOverrideGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackOverrideGcpStack } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackOverrideGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | ----------------------------------------------------------------------------- | +| `condition` | *models.SyncReconcileResponsePendingPreparedStackOverrideStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideplatforms.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideplatforms.md new file mode 100644 index 000000000..62c0b918a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideplatforms.md @@ -0,0 +1,19 @@ +# SyncReconcileResponsePendingPreparedStackOverridePlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackOverridePlatforms } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackOverridePlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------- | +| `aws` | [models.SyncReconcileResponsePendingPreparedStackOverrideAw](../models/syncreconcileresponsependingpreparedstackoverrideaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.SyncReconcileResponsePendingPreparedStackOverrideAzure](../models/syncreconcileresponsependingpreparedstackoverrideazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.SyncReconcileResponsePendingPreparedStackOverrideGcp](../models/syncreconcileresponsependingpreparedstackoverridegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideresourceconditionunion.md new file mode 100644 index 000000000..b05a0b348 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideresourceconditionunion.md @@ -0,0 +1,20 @@ +# SyncReconcileResponsePendingPreparedStackOverrideResourceConditionUnion + + +## Supported Types + +### `models.SyncReconcileResponsePendingPreparedStackOverrideConditionResource` + +```typescript +const value: + models.SyncReconcileResponsePendingPreparedStackOverrideConditionResource = { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverridestackconditionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverridestackconditionunion.md new file mode 100644 index 000000000..dd0bf76f6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverridestackconditionunion.md @@ -0,0 +1,20 @@ +# SyncReconcileResponsePendingPreparedStackOverrideStackConditionUnion + + +## Supported Types + +### `models.SyncReconcileResponsePendingPreparedStackOverrideConditionStack` + +```typescript +const value: + models.SyncReconcileResponsePendingPreparedStackOverrideConditionStack = { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideunion.md new file mode 100644 index 000000000..48ff9a61e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackoverrideunion.md @@ -0,0 +1,22 @@ +# SyncReconcileResponsePendingPreparedStackOverrideUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.SyncReconcileResponsePendingPreparedStackOverride` + +```typescript +const value: models.SyncReconcileResponsePendingPreparedStackOverride = { + description: "fatally the equal whimsical for coal bare rowdy flint", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackpermissions.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackpermissions.md new file mode 100644 index 000000000..69a747e66 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackpermissions.md @@ -0,0 +1,33 @@ +# SyncReconcileResponsePendingPreparedStackPermissions + +Combined permissions configuration that contains both profiles and management + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackPermissions } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackPermissions = { + profiles: { + "key": { + "key": [ + "", + ], + "key1": [], + "key2": [], + }, + "key1": { + "key": [], + "key1": [], + "key2": [], + }, + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------- | +| `management` | *models.SyncReconcileResponsePendingPreparedStackManagementUnion* | :heavy_minus_sign: | Management permissions configuration for stack management access | +| `profiles` | Record> | :heavy_check_mark: | Permission profiles that define access control for compute services
Key is the profile name, value is the permission configuration | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackplatform.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackplatform.md new file mode 100644 index 000000000..8fa211df9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackplatform.md @@ -0,0 +1,17 @@ +# SyncReconcileResponsePendingPreparedStackPlatform + +Represents the target cloud platform. + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackPlatform } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackPlatform = "azure"; +``` + +## Values + +```typescript +"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofile.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofile.md new file mode 100644 index 000000000..1b0c2195e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofile.md @@ -0,0 +1,24 @@ +# SyncReconcileResponsePendingPreparedStackProfile + +A permission set that can be applied across different cloud platforms + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackProfile } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackProfile = { + description: + "catalyze consequently forenenst smuggle pomelo stealthily keenly", + id: "", + platforms: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | +| `description` | *string* | :heavy_check_mark: | Human-readable description of what this permission set allows | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the permission set (e.g., "storage/data-read") | +| `platforms` | [models.SyncReconcileResponsePendingPreparedStackProfilePlatforms](../models/syncreconcileresponsependingpreparedstackprofileplatforms.md) | :heavy_check_mark: | Platform-specific permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileaw.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileaw.md new file mode 100644 index 000000000..400827c85 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileaw.md @@ -0,0 +1,24 @@ +# SyncReconcileResponsePendingPreparedStackProfileAw + +AWS-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackProfileAw } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackProfileAw = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.SyncReconcileResponsePendingPreparedStackProfileAwBinding](../models/syncreconcileresponsependingpreparedstackprofileawbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `effect` | [models.SyncReconcileResponsePendingPreparedStackProfileEffect](../models/syncreconcileresponsependingpreparedstackprofileeffect.md) | :heavy_minus_sign: | IAM effect. Defaults to Allow. | +| `grant` | [models.SyncReconcileResponsePendingPreparedStackProfileAwGrant](../models/syncreconcileresponsependingpreparedstackprofileawgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileawbinding.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileawbinding.md new file mode 100644 index 000000000..9a7848826 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileawbinding.md @@ -0,0 +1,18 @@ +# SyncReconcileResponsePendingPreparedStackProfileAwBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackProfileAwBinding } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackProfileAwBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.SyncReconcileResponsePendingPreparedStackProfileAwResource](../models/syncreconcileresponsependingpreparedstackprofileawresource.md) | :heavy_minus_sign: | AWS-specific binding specification | +| `stack` | [models.SyncReconcileResponsePendingPreparedStackProfileAwStack](../models/syncreconcileresponsependingpreparedstackprofileawstack.md) | :heavy_minus_sign: | AWS-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileawgrant.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileawgrant.md new file mode 100644 index 000000000..c63492355 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileawgrant.md @@ -0,0 +1,21 @@ +# SyncReconcileResponsePendingPreparedStackProfileAwGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackProfileAwGrant } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackProfileAwGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileawresource.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileawresource.md new file mode 100644 index 000000000..d9000c30f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileawresource.md @@ -0,0 +1,24 @@ +# SyncReconcileResponsePendingPreparedStackProfileAwResource + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackProfileAwResource } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackProfileAwResource = { + resources: [ + "", + "", + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileawstack.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileawstack.md new file mode 100644 index 000000000..c33e3d9db --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileawstack.md @@ -0,0 +1,22 @@ +# SyncReconcileResponsePendingPreparedStackProfileAwStack + +AWS-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackProfileAwStack } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackProfileAwStack = { + resources: [ + "", + ], +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `condition` | Record> | :heavy_minus_sign: | Optional condition for additional filtering (rare) | +| `resources` | *string*[] | :heavy_check_mark: | Resource ARNs to bind to | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileazure.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileazure.md new file mode 100644 index 000000000..86e0bfd52 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileazure.md @@ -0,0 +1,23 @@ +# SyncReconcileResponsePendingPreparedStackProfileAzure + +Azure-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackProfileAzure } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackProfileAzure = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------ | +| `binding` | [models.SyncReconcileResponsePendingPreparedStackProfileAzureBinding](../models/syncreconcileresponsependingpreparedstackprofileazurebinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncReconcileResponsePendingPreparedStackProfileAzureGrant](../models/syncreconcileresponsependingpreparedstackprofileazuregrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileazurebinding.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileazurebinding.md new file mode 100644 index 000000000..7d1c57b0e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileazurebinding.md @@ -0,0 +1,18 @@ +# SyncReconcileResponsePendingPreparedStackProfileAzureBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackProfileAzureBinding } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackProfileAzureBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.SyncReconcileResponsePendingPreparedStackProfileAzureResource](../models/syncreconcileresponsependingpreparedstackprofileazureresource.md) | :heavy_minus_sign: | Azure-specific binding specification | +| `stack` | [models.SyncReconcileResponsePendingPreparedStackProfileAzureStack](../models/syncreconcileresponsependingpreparedstackprofileazurestack.md) | :heavy_minus_sign: | Azure-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileazuregrant.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileazuregrant.md new file mode 100644 index 000000000..764b2efb4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileazuregrant.md @@ -0,0 +1,21 @@ +# SyncReconcileResponsePendingPreparedStackProfileAzureGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackProfileAzureGrant } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackProfileAzureGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileazureresource.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileazureresource.md new file mode 100644 index 000000000..4e6fd2086 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileazureresource.md @@ -0,0 +1,19 @@ +# SyncReconcileResponsePendingPreparedStackProfileAzureResource + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackProfileAzureResource } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackProfileAzureResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileazurestack.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileazurestack.md new file mode 100644 index 000000000..e66ad8162 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileazurestack.md @@ -0,0 +1,19 @@ +# SyncReconcileResponsePendingPreparedStackProfileAzureStack + +Azure-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackProfileAzureStack } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackProfileAzureStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | -------------------------------------------------- | +| `scope` | *string* | :heavy_check_mark: | Scope (subscription/resource group/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileconditionresource.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileconditionresource.md new file mode 100644 index 000000000..7c5fd3d2a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileconditionresource.md @@ -0,0 +1,21 @@ +# SyncReconcileResponsePendingPreparedStackProfileConditionResource + +GCP IAM condition + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackProfileConditionResource } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackProfileConditionResource = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileconditionstack.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileconditionstack.md new file mode 100644 index 000000000..d62b67b0b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileconditionstack.md @@ -0,0 +1,21 @@ +# SyncReconcileResponsePendingPreparedStackProfileConditionStack + +GCP IAM condition + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackProfileConditionStack } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackProfileConditionStack = { + expression: "", + title: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `expression` | *string* | :heavy_check_mark: | N/A | +| `title` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileeffect.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileeffect.md new file mode 100644 index 000000000..93bb4786b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileeffect.md @@ -0,0 +1,17 @@ +# SyncReconcileResponsePendingPreparedStackProfileEffect + +IAM effect. Defaults to Allow. + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackProfileEffect } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackProfileEffect = "Allow"; +``` + +## Values + +```typescript +"Allow" | "Deny" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofilegcp.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofilegcp.md new file mode 100644 index 000000000..0fe4662be --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofilegcp.md @@ -0,0 +1,23 @@ +# SyncReconcileResponsePendingPreparedStackProfileGcp + +GCP-specific platform permission configuration + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackProfileGcp } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackProfileGcp = { + binding: {}, + grant: {}, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------- | +| `binding` | [models.SyncReconcileResponsePendingPreparedStackProfileGcpBinding](../models/syncreconcileresponsependingpreparedstackprofilegcpbinding.md) | :heavy_check_mark: | Generic binding configuration for permissions | +| `description` | *string* | :heavy_minus_sign: | Short admin-facing description of why this entry exists. | +| `grant` | [models.SyncReconcileResponsePendingPreparedStackProfileGcpGrant](../models/syncreconcileresponsependingpreparedstackprofilegcpgrant.md) | :heavy_check_mark: | Grant permissions for a specific cloud platform | +| `label` | *string* | :heavy_minus_sign: | Stable admin-facing label for this permission entry. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofilegcpbinding.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofilegcpbinding.md new file mode 100644 index 000000000..59934d9eb --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofilegcpbinding.md @@ -0,0 +1,18 @@ +# SyncReconcileResponsePendingPreparedStackProfileGcpBinding + +Generic binding configuration for permissions + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackProfileGcpBinding } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackProfileGcpBinding = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `resource` | [models.SyncReconcileResponsePendingPreparedStackProfileGcpResource](../models/syncreconcileresponsependingpreparedstackprofilegcpresource.md) | :heavy_minus_sign: | GCP-specific binding specification | +| `stack` | [models.SyncReconcileResponsePendingPreparedStackProfileGcpStack](../models/syncreconcileresponsependingpreparedstackprofilegcpstack.md) | :heavy_minus_sign: | GCP-specific binding specification | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofilegcpgrant.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofilegcpgrant.md new file mode 100644 index 000000000..3d6ae977f --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofilegcpgrant.md @@ -0,0 +1,21 @@ +# SyncReconcileResponsePendingPreparedStackProfileGcpGrant + +Grant permissions for a specific cloud platform + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackProfileGcpGrant } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackProfileGcpGrant = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | -------------------------------------------------------------- | +| `actions` | *string*[] | :heavy_minus_sign: | AWS IAM actions (only for AWS) | +| `dataActions` | *string*[] | :heavy_minus_sign: | Azure actions (only for Azure) | +| `permissions` | *string*[] | :heavy_minus_sign: | GCP permissions that require an exact residual custom role. | +| `predefinedRoles` | *string*[] | :heavy_minus_sign: | Provider predefined roles to bind directly. | +| `residualPermissions` | *string*[] | :heavy_minus_sign: | GCP residual custom permissions to pair with predefined roles. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofilegcpresource.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofilegcpresource.md new file mode 100644 index 000000000..9c98581a7 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofilegcpresource.md @@ -0,0 +1,20 @@ +# SyncReconcileResponsePendingPreparedStackProfileGcpResource + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackProfileGcpResource } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackProfileGcpResource = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- | +| `condition` | *models.SyncReconcileResponsePendingPreparedStackProfileResourceConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofilegcpstack.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofilegcpstack.md new file mode 100644 index 000000000..8ab9039c0 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofilegcpstack.md @@ -0,0 +1,20 @@ +# SyncReconcileResponsePendingPreparedStackProfileGcpStack + +GCP-specific binding specification + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackProfileGcpStack } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackProfileGcpStack = { + scope: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | ---------------------------------------------------------------------------- | +| `condition` | *models.SyncReconcileResponsePendingPreparedStackProfileStackConditionUnion* | :heavy_minus_sign: | N/A | +| `scope` | *string* | :heavy_check_mark: | Scope (project/resource level) | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileplatforms.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileplatforms.md new file mode 100644 index 000000000..09468639c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileplatforms.md @@ -0,0 +1,19 @@ +# SyncReconcileResponsePendingPreparedStackProfilePlatforms + +Platform-specific permission configurations + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackProfilePlatforms } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackProfilePlatforms = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------ | +| `aws` | [models.SyncReconcileResponsePendingPreparedStackProfileAw](../models/syncreconcileresponsependingpreparedstackprofileaw.md)[] | :heavy_minus_sign: | AWS permission configurations | +| `azure` | [models.SyncReconcileResponsePendingPreparedStackProfileAzure](../models/syncreconcileresponsependingpreparedstackprofileazure.md)[] | :heavy_minus_sign: | Azure permission configurations | +| `gcp` | [models.SyncReconcileResponsePendingPreparedStackProfileGcp](../models/syncreconcileresponsependingpreparedstackprofilegcp.md)[] | :heavy_minus_sign: | GCP permission configurations | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileresourceconditionunion.md new file mode 100644 index 000000000..920c8cb27 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileresourceconditionunion.md @@ -0,0 +1,20 @@ +# SyncReconcileResponsePendingPreparedStackProfileResourceConditionUnion + + +## Supported Types + +### `models.SyncReconcileResponsePendingPreparedStackProfileConditionResource` + +```typescript +const value: + models.SyncReconcileResponsePendingPreparedStackProfileConditionResource = { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofilestackconditionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofilestackconditionunion.md new file mode 100644 index 000000000..0816ea365 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofilestackconditionunion.md @@ -0,0 +1,20 @@ +# SyncReconcileResponsePendingPreparedStackProfileStackConditionUnion + + +## Supported Types + +### `models.SyncReconcileResponsePendingPreparedStackProfileConditionStack` + +```typescript +const value: + models.SyncReconcileResponsePendingPreparedStackProfileConditionStack = { + expression: "", + title: "", + }; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileunion.md new file mode 100644 index 000000000..d1c7666b3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprofileunion.md @@ -0,0 +1,23 @@ +# SyncReconcileResponsePendingPreparedStackProfileUnion + +Reference to a permission set - either by name or inline definition + + +## Supported Types + +### `models.SyncReconcileResponsePendingPreparedStackProfile` + +```typescript +const value: models.SyncReconcileResponsePendingPreparedStackProfile = { + description: + "catalyze consequently forenenst smuggle pomelo stealthily keenly", + id: "", + platforms: {}, +}; +``` + +### `string` + +```typescript +const value: string = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprovidedby.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprovidedby.md new file mode 100644 index 000000000..02b9a0580 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackprovidedby.md @@ -0,0 +1,17 @@ +# SyncReconcileResponsePendingPreparedStackProvidedBy + +Who can provide a stack input value. + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackProvidedBy } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackProvidedBy = "developer"; +``` + +## Values + +```typescript +"developer" | "deployer" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackresources.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackresources.md new file mode 100644 index 000000000..896e51c9d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackresources.md @@ -0,0 +1,26 @@ +# SyncReconcileResponsePendingPreparedStackResources + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackResources } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackResources = { + config: { + id: "", + type: "", + }, + dependencies: [], + lifecycle: "frozen", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `config` | [models.SyncReconcileResponsePendingPreparedStackConfig](../models/syncreconcileresponsependingpreparedstackconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | +| `dependencies` | [models.SyncReconcileResponsePendingPreparedStackDependency](../models/syncreconcileresponsependingpreparedstackdependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | +| `enabledWhen` | *string* | :heavy_minus_sign: | Id of the boolean stack input that decides whether this resource is
created at all. `None` means always create it.

Set by `.enabled(input)` in the SDK. Setup emitters render the resource
conditionally on the matching template variable, so a deployer who says no
never gets the resource, its outputs, or anything derived from it. | +| `lifecycle` | [models.SyncReconcileResponsePendingPreparedStackLifecycle](../models/syncreconcileresponsependingpreparedstacklifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | +| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstacksupportedplatform.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstacksupportedplatform.md new file mode 100644 index 000000000..916c988a3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstacksupportedplatform.md @@ -0,0 +1,17 @@ +# SyncReconcileResponsePendingPreparedStackSupportedPlatform + +Represents the target cloud platform. + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackSupportedPlatform } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackSupportedPlatform = "test"; +``` + +## Values + +```typescript +"aws" | "gcp" | "azure" | "kubernetes" | "machines" | "local" | "test" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstacktypeboolean.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstacktypeboolean.md new file mode 100644 index 000000000..e7a9f6122 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstacktypeboolean.md @@ -0,0 +1,15 @@ +# SyncReconcileResponsePendingPreparedStackTypeBoolean + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackTypeBoolean } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackTypeBoolean = "boolean"; +``` + +## Values + +```typescript +"boolean" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstacktypeenvenum.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstacktypeenvenum.md new file mode 100644 index 000000000..0aa260fa2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstacktypeenvenum.md @@ -0,0 +1,17 @@ +# SyncReconcileResponsePendingPreparedStackTypeEnvEnum + +Environment variable handling for a stack input mapping. + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackTypeEnvEnum } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackTypeEnvEnum = "plain"; +``` + +## Values + +```typescript +"plain" | "secret" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstacktypenumber.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstacktypenumber.md new file mode 100644 index 000000000..4601bfafe --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstacktypenumber.md @@ -0,0 +1,15 @@ +# SyncReconcileResponsePendingPreparedStackTypeNumber + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackTypeNumber } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackTypeNumber = "number"; +``` + +## Values + +```typescript +"number" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstacktypestring.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstacktypestring.md new file mode 100644 index 000000000..eb7fa2383 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstacktypestring.md @@ -0,0 +1,15 @@ +# SyncReconcileResponsePendingPreparedStackTypeString + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackTypeString } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackTypeString = "string"; +``` + +## Values + +```typescript +"string" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstacktypestringlist.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstacktypestringlist.md new file mode 100644 index 000000000..d53d93e5c --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstacktypestringlist.md @@ -0,0 +1,16 @@ +# SyncReconcileResponsePendingPreparedStackTypeStringList + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackTypeStringList } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackTypeStringList = + "stringList"; +``` + +## Values + +```typescript +"stringList" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstacktypeunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstacktypeunion.md new file mode 100644 index 000000000..858a2ab63 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstacktypeunion.md @@ -0,0 +1,17 @@ +# SyncReconcileResponsePendingPreparedStackTypeUnion + + +## Supported Types + +### `models.SyncReconcileResponsePendingPreparedStackTypeEnvEnum` + +```typescript +const value: models.SyncReconcileResponsePendingPreparedStackTypeEnvEnum = + "plain"; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackunion.md new file mode 100644 index 000000000..e1b545a6a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackunion.md @@ -0,0 +1,33 @@ +# SyncReconcileResponsePendingPreparedStackUnion + + +## Supported Types + +### `models.SyncReconcileResponsePendingPreparedStack` + +```typescript +const value: models.SyncReconcileResponsePendingPreparedStack = { + id: "", + resources: { + "key": { + config: { + id: "", + type: "", + }, + dependencies: [ + { + id: "", + type: "", + }, + ], + lifecycle: "live", + }, + }, +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackvalidation.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackvalidation.md new file mode 100644 index 000000000..714428df2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackvalidation.md @@ -0,0 +1,25 @@ +# SyncReconcileResponsePendingPreparedStackValidation + +Portable stack input validation constraints. + +## Example Usage + +```typescript +import { SyncReconcileResponsePendingPreparedStackValidation } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponsePendingPreparedStackValidation = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| ----------------------------------- | ----------------------------------- | ----------------------------------- | ----------------------------------- | +| `format` | *string* | :heavy_minus_sign: | Semantic format hint such as url. | +| `max` | *string* | :heavy_minus_sign: | Maximum number. | +| `maxItems` | *number* | :heavy_minus_sign: | Maximum string-list items. | +| `maxLength` | *number* | :heavy_minus_sign: | Maximum string length. | +| `min` | *string* | :heavy_minus_sign: | Minimum number. | +| `minItems` | *number* | :heavy_minus_sign: | Minimum string-list items. | +| `minLength` | *number* | :heavy_minus_sign: | Minimum string length. | +| `pattern` | *string* | :heavy_minus_sign: | Portable whole-value regex pattern. | +| `values` | *string*[] | :heavy_minus_sign: | Allowed string enum values. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackvalidationunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackvalidationunion.md new file mode 100644 index 000000000..17ca167ec --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsependingpreparedstackvalidationunion.md @@ -0,0 +1,16 @@ +# SyncReconcileResponsePendingPreparedStackValidationUnion + + +## Supported Types + +### `models.SyncReconcileResponsePendingPreparedStackValidation` + +```typescript +const value: models.SyncReconcileResponsePendingPreparedStackValidation = {}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepoolsautoscale.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepoolsautoscale.md index 5c8dbdcfc..f9b32f32b 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepoolsautoscale.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepoolsautoscale.md @@ -16,6 +16,7 @@ let value: SyncReconcileResponsePoolsAutoscale = { | Field | Type | Required | Description | | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `failureDomains` | *models.SyncReconcileResponseFailureDomainsUnion2* | :heavy_minus_sign: | N/A | | `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | | `max` | *number* | :heavy_check_mark: | Maximum machine count. | | `min` | *number* | :heavy_check_mark: | Minimum machine count. | diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepoolsfixed.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepoolsfixed.md index c81e70fbf..bdf2b52e5 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepoolsfixed.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepoolsfixed.md @@ -15,6 +15,7 @@ let value: SyncReconcileResponsePoolsFixed = { | Field | Type | Required | Description | | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | --------------------------------------------------- | +| `failureDomains` | *models.SyncReconcileResponseFailureDomainsUnion1* | :heavy_minus_sign: | N/A | | `machine` | *string* | :heavy_minus_sign: | Provider machine type selected for this deployment. | | `machines` | *number* | :heavy_check_mark: | Number of machines to run. | | `mode` | *"fixed"* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepoolsunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepoolsunion.md index 6645cf974..4f453b890 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepoolsunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepoolsunion.md @@ -23,4 +23,3 @@ const value: models.SyncReconcileResponsePoolsAutoscale = { mode: "autoscale", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseportunion1.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseportunion1.md index 0d2a5a498..89fa92878 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseportunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseportunion1.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponsePort1 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseportunion2.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseportunion2.md index 6b27b0809..054243e04 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseportunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseportunion2.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponsePort2 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseportunion3.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseportunion3.md index 317dd8bb6..d452b1d1c 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseportunion3.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseportunion3.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponsePort3 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseportunion4.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseportunion4.md index f95ce5020..b08f7f385 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseportunion4.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseportunion4.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponsePort4 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseportunion5.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseportunion5.md index 04cc904d9..0ccf5223e 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseportunion5.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseportunion5.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponsePort5 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackdefaultunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackdefaultunion.md index f1cf5e226..31cc16463 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackdefaultunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackdefaultunion.md @@ -47,4 +47,3 @@ const value: models.SyncReconcileResponsePreparedStackDefaultStringList = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackextendresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackextendresourceconditionunion.md index 46d77f23e..90555ca4c 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackextendresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackextendresourceconditionunion.md @@ -18,4 +18,3 @@ const value: models.SyncReconcileResponsePreparedStackExtendConditionResource = ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackextendstackconditionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackextendstackconditionunion.md index be06b886f..a4758f1f4 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackextendstackconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackextendstackconditionunion.md @@ -17,4 +17,3 @@ const value: models.SyncReconcileResponsePreparedStackExtendConditionStack = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackextendunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackextendunion.md index f13c68778..468f5a01c 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackextendunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackextendunion.md @@ -21,4 +21,3 @@ const value: models.SyncReconcileResponsePreparedStackExtend = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackmanagementunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackmanagementunion.md index 2e017539a..47ad54c27 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackmanagementunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackmanagementunion.md @@ -26,4 +26,3 @@ const value: models.SyncReconcileResponsePreparedStackManagement2 = { ```typescript const value: models.SyncReconcileResponsePreparedStackManagementEnum = "auto"; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackoverrideresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackoverrideresourceconditionunion.md index eb3af11ea..105f2fde7 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackoverrideresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackoverrideresourceconditionunion.md @@ -18,4 +18,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackoverridestackconditionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackoverridestackconditionunion.md index 8d34e20e0..6e7d2aceb 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackoverridestackconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackoverridestackconditionunion.md @@ -17,4 +17,3 @@ const value: models.SyncReconcileResponsePreparedStackOverrideConditionStack = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackoverrideunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackoverrideunion.md index 58d1e7499..307b33eda 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackoverrideunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackoverrideunion.md @@ -20,4 +20,3 @@ const value: models.SyncReconcileResponsePreparedStackOverride = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackprofileresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackprofileresourceconditionunion.md index 51d0d8922..8063dc79d 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackprofileresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackprofileresourceconditionunion.md @@ -18,4 +18,3 @@ const value: models.SyncReconcileResponsePreparedStackProfileConditionResource = ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackprofilestackconditionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackprofilestackconditionunion.md index 3d86b005f..52f59a1e5 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackprofilestackconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackprofilestackconditionunion.md @@ -17,4 +17,3 @@ const value: models.SyncReconcileResponsePreparedStackProfileConditionStack = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackprofileunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackprofileunion.md index 50497f6a8..5d278815c 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackprofileunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackprofileunion.md @@ -20,4 +20,3 @@ const value: models.SyncReconcileResponsePreparedStackProfile = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackresources.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackresources.md index 996b8ad22..760310910 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackresources.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackresources.md @@ -22,9 +22,10 @@ let value: SyncReconcileResponsePreparedStackResources = { ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `config` | [models.SyncReconcileResponsePreparedStackConfig](../models/syncreconcileresponsepreparedstackconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | -| `dependencies` | [models.SyncReconcileResponsePreparedStackDependency](../models/syncreconcileresponsepreparedstackdependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | -| `lifecycle` | [models.SyncReconcileResponsePreparedStackLifecycle](../models/syncreconcileresponsepreparedstacklifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | -| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `config` | [models.SyncReconcileResponsePreparedStackConfig](../models/syncreconcileresponsepreparedstackconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | +| `dependencies` | [models.SyncReconcileResponsePreparedStackDependency](../models/syncreconcileresponsepreparedstackdependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | +| `enabledWhen` | *string* | :heavy_minus_sign: | Id of the boolean stack input that decides whether this resource is
created at all. `None` means always create it.

Set by `.enabled(input)` in the SDK. Setup emitters render the resource
conditionally on the matching template variable, so a deployer who says no
never gets the resource, its outputs, or anything derived from it. | +| `lifecycle` | [models.SyncReconcileResponsePreparedStackLifecycle](../models/syncreconcileresponsepreparedstacklifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | +| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstacktypeunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstacktypeunion.md index 8cb598429..09c5c6129 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstacktypeunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstacktypeunion.md @@ -14,4 +14,3 @@ const value: models.SyncReconcileResponsePreparedStackTypeEnvEnum = "secret"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackunion.md index a70b256f2..0cf9c56b2 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackunion.md @@ -31,4 +31,3 @@ const value: models.SyncReconcileResponsePreparedStack = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackvalidationunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackvalidationunion.md index d0300a8d0..02846b23d 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackvalidationunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreparedstackvalidationunion.md @@ -14,4 +14,3 @@ const value: models.SyncReconcileResponsePreparedStackValidation = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreviousconfigunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreviousconfigunion.md index c4e557b22..ba0877ced 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreviousconfigunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepreviousconfigunion.md @@ -17,4 +17,3 @@ const value: models.SyncReconcileResponsePreviousConfig = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseprojectidunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseprojectidunion.md index 6a579b48e..d040769fb 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseprojectidunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseprojectidunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseProjectId = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseproviderunion1.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseproviderunion1.md index 3dc67c19f..f9d04fbaf 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseproviderunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseproviderunion1.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseproviderunion2.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseproviderunion2.md index 186aa715c..ec73c0466 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseproviderunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseproviderunion2.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseproviderunion3.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseproviderunion3.md index 23761c49c..014bd380b 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseproviderunion3.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseproviderunion3.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseproviderunion4.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseproviderunion4.md index 5e99c87e4..4a51bc30b 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseproviderunion4.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseproviderunion4.md @@ -36,4 +36,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepublicendpointtargetunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepublicendpointtargetunion.md index 0b772192a..b8e932b1e 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsepublicendpointtargetunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsepublicendpointtargetunion.md @@ -26,4 +26,3 @@ const value: models.SyncReconcileResponsePublicEndpointTargetLoadBalancer = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsequeuenameunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsequeuenameunion.md index ecdce236f..74e1c1fb9 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsequeuenameunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsequeuenameunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseQueueName = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsequeuepathunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsequeuepathunion.md index 9c5b0b68a..96d5f3b39 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsequeuepathunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsequeuepathunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseQueuePath = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsequeueurlunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsequeueurlunion.md index 7878a874a..458e4903d 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsequeueurlunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsequeueurlunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseQueueUrl = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseregionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseregionunion.md index 270db2f71..7797b6cfb 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseregionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseregionunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseRegion = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseregistrynameunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseregistrynameunion.md index 3c37dc40a..4dfa21b55 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseregistrynameunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseregistrynameunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseRegistryName = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseregistryurlunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseregistryurlunion.md index d3b6e83cd..66aa9f198 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseregistryurlunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseregistryurlunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseRegistryUrl = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponserepositorynameunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponserepositorynameunion.md index 56e5cd167..4d7c1f821 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponserepositorynameunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponserepositorynameunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseRepositoryName = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponserepositoryprefixunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponserepositoryprefixunion.md index b7958669b..60466e887 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponserepositoryprefixunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponserepositoryprefixunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseRepositoryPrefix1 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseresourcegroupnameunion1.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseresourcegroupnameunion1.md index caa7164e8..18b4bf7ed 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseresourcegroupnameunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseresourcegroupnameunion1.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseResourceGroupName1 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseresourcegroupnameunion2.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseresourcegroupnameunion2.md index bed2bb3e2..28a1af1c4 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseresourcegroupnameunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseresourcegroupnameunion2.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseResourceGroupName2 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseresourcegroupnameunion3.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseresourcegroupnameunion3.md index 1f6d52627..8c5dd371c 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseresourcegroupnameunion3.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseresourcegroupnameunion3.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseResourceGroupName3 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseresourceidunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseresourceidunion.md index 0485d0d66..cd5f926e7 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseresourceidunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseresourceidunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseResourceId = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponserouteunion1.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponserouteunion1.md index 22a0be822..410e6d086 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponserouteunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponserouteunion1.md @@ -23,4 +23,3 @@ const value: models.SyncReconcileResponseRouteGateway1 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponserouteunion2.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponserouteunion2.md index 29cad4d24..3738364a7 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponserouteunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponserouteunion2.md @@ -23,4 +23,3 @@ const value: models.SyncReconcileResponseRouteGateway2 = { routeApi: "gateway", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseruntimemetadata.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseruntimemetadata.md index 0ced73a05..fb49dbd39 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseruntimemetadata.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseruntimemetadata.md @@ -14,9 +14,13 @@ let value: SyncReconcileResponseRuntimeMetadata = {}; ## Fields -| Field | Type | Required | Description | -| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `lastSyncedEnvVarsHash` | *string* | :heavy_minus_sign: | Hash of the environment variables snapshot that was last synced to the vault
Used to avoid redundant sync operations during incremental deployment | -| `lastSyncedSecretNames` | *string*[] | :heavy_minus_sign: | Exact vault keys owned by the deployment secret synchronizer. This
inventory lets a later snapshot delete removed keys without listing or
touching unrelated values in the same vault. | -| `preparedStack` | *models.SyncReconcileResponsePreparedStackUnion* | :heavy_minus_sign: | N/A | -| `registryAccessGranted` | *boolean* | :heavy_minus_sign: | Whether cross-account registry access has been successfully granted.
Set to true after the manager successfully sets the ECR/GAR repo policy
for this deployment's target account. Prevents redundant API calls on
every reconcile tick. | \ No newline at end of file +| Field | Type | Required | Description | +| --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `initialSetupAuthority` | [models.SyncReconcileResponseInitialSetupAuthority](../models/syncreconcileresponseinitialsetupauthority.md) | :heavy_minus_sign: | Actor that owns structural work during the initial setup phase. | +| `lastSyncedEnvVarsHash` | *string* | :heavy_minus_sign: | Hash of the environment variables snapshot that was last synced to the vault
Used to avoid redundant sync operations during incremental deployment | +| `lastSyncedSecretNames` | *string*[] | :heavy_minus_sign: | Exact vault keys owned by the deployment secret synchronizer. This
inventory lets a later snapshot delete removed keys without listing or
touching unrelated values in the same vault. | +| `pendingPreparedStack` | *models.SyncReconcileResponsePendingPreparedStackUnion* | :heavy_minus_sign: | N/A | +| `persistedGateAnswers` | Record | :heavy_minus_sign: | Canonical resolved answers for inputs that gate Frozen resources,
keyed by input id, recorded when the deployment is created or its
setup import registers.

A frozen gate's answer is fixed for the deployment's lifetime: the
update path refuses input values that conflict with these, and a Live
resource sharing such an input resolves the persisted answer forever. | +| `preparedStack` | *models.SyncReconcileResponsePreparedStackUnion* | :heavy_minus_sign: | N/A | +| `registryAccessGranted` | *boolean* | :heavy_minus_sign: | Whether cross-account registry access has been successfully granted.
Set to true after the manager successfully sets the ECR/GAR repo policy
for this deployment's target account. Prevents redundant API calls on
every reconcile tick. | +| `setupUpdateAuthorization` | *models.SyncReconcileResponseSetupUpdateAuthorizationUnion* | :heavy_minus_sign: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseruntimemetadataunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseruntimemetadataunion.md index 4028a6dd2..c060e18b6 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseruntimemetadataunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseruntimemetadataunion.md @@ -14,4 +14,3 @@ const value: models.SyncReconcileResponseRuntimeMetadata = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseservercacertificates.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseservercacertificates.md new file mode 100644 index 000000000..d53d62554 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseservercacertificates.md @@ -0,0 +1,20 @@ +# SyncReconcileResponseServerCaCertificates + +## Example Usage + +```typescript +import { SyncReconcileResponseServerCaCertificates } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponseServerCaCertificates = { + secretRef: { + key: "", + name: "", + }, +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------- | +| `secretRef` | [models.SyncReconcileResponseServerCaCertificatesSecretRef](../models/syncreconcileresponseservercacertificatessecretref.md) | :heavy_check_mark: | Reference to a Kubernetes Secret | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseservercacertificatessecretref.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseservercacertificatessecretref.md new file mode 100644 index 000000000..3e6cfc6c3 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseservercacertificatessecretref.md @@ -0,0 +1,21 @@ +# SyncReconcileResponseServerCaCertificatesSecretRef + +Reference to a Kubernetes Secret + +## Example Usage + +```typescript +import { SyncReconcileResponseServerCaCertificatesSecretRef } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponseServerCaCertificatesSecretRef = { + key: "", + name: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------ | ------------------ | ------------------ | ------------------ | +| `key` | *string* | :heavy_check_mark: | N/A | +| `name` | *string* | :heavy_check_mark: | N/A | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseservercacertificatesunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseservercacertificatesunion.md new file mode 100644 index 000000000..17b53a01d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseservercacertificatesunion.md @@ -0,0 +1,33 @@ +# SyncReconcileResponseServerCaCertificatesUnion + +Represents a value that can be either a concrete value, a template expression, +or a reference to a Kubernetes Secret + + +## Supported Types + +### `string[]` + +```typescript +const value: string[] = [ + "", + "", +]; +``` + +### `any` + +```typescript +const value: any = ""; +``` + +### `models.SyncReconcileResponseServerCaCertificates` + +```typescript +const value: models.SyncReconcileResponseServerCaCertificates = { + secretRef: { + key: "", + name: "", + }, +}; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsesetupupdateauthorization.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsesetupupdateauthorization.md new file mode 100644 index 000000000..caaf33c5e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsesetupupdateauthorization.md @@ -0,0 +1,31 @@ +# SyncReconcileResponseSetupUpdateAuthorization + +One-shot authority for a setup re-import to replace setup-owned resources. + +## Example Usage + +```typescript +import { SyncReconcileResponseSetupUpdateAuthorization } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponseSetupUpdateAuthorization = { + baselineFrozenDigest: "", + nonce: "", + releaseId: "", + setupFingerprint: "", + setupFingerprintVersion: 91270, + setupTarget: "", + targetFrozenDigest: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | +| ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | ------------------------------------------------------------------------ | +| `baselineFrozenDigest` | *string* | :heavy_check_mark: | Frozen resource projection from the last successful deployment. | +| `nonce` | *string* | :heavy_check_mark: | Unique revision used by persistence layers for compare-and-swap updates. | +| `releaseId` | *string* | :heavy_check_mark: | Release whose stack was prepared by setup. | +| `setupFingerprint` | *string* | :heavy_check_mark: | Exact setup artifact revision that authored this authority. | +| `setupFingerprintVersion` | *number* | :heavy_check_mark: | Setup fingerprint contract version. | +| `setupTarget` | *string* | :heavy_check_mark: | Stable setup target recorded on the imported deployment. | +| `targetFrozenDigest` | *string* | :heavy_check_mark: | Frozen resource projection prepared by the setup re-import. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsesetupupdateauthorizationunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsesetupupdateauthorizationunion.md new file mode 100644 index 000000000..5eac6a54b --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsesetupupdateauthorizationunion.md @@ -0,0 +1,24 @@ +# SyncReconcileResponseSetupUpdateAuthorizationUnion + + +## Supported Types + +### `models.SyncReconcileResponseSetupUpdateAuthorization` + +```typescript +const value: models.SyncReconcileResponseSetupUpdateAuthorization = { + baselineFrozenDigest: "", + nonce: "", + releaseId: "", + setupFingerprint: "", + setupFingerprintVersion: 91270, + setupTarget: "", + targetFrozenDigest: "", +}; +``` + +### `any` + +```typescript +const value: any = ""; +``` diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsesslmode.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsesslmode.md new file mode 100644 index 000000000..17c372c92 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsesslmode.md @@ -0,0 +1,20 @@ +# SyncReconcileResponseSslMode + +TLS policy for an operator-provided / BYO Postgres database. + +Unlike libpq's ambiguous `prefer` mode, both choices map exactly to the +connection settings exposed by every supported SDK. + +## Example Usage + +```typescript +import { SyncReconcileResponseSslMode } from "@alienplatform/platform-api/models"; + +let value: SyncReconcileResponseSslMode = "verify-full"; +``` + +## Values + +```typescript +"verify-full" | "disable" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsestacksettingsawsunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsestacksettingsawsunion.md index f8ecc1ef1..6639365df 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsestacksettingsawsunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsestacksettingsawsunion.md @@ -16,4 +16,3 @@ const value: models.SyncReconcileResponseAwsStackSettings = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsestackstateerrorunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsestackstateerrorunion.md index 1a3564ae0..248c4fa58 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsestackstateerrorunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsestackstateerrorunion.md @@ -18,4 +18,3 @@ const value: models.SyncReconcileResponseStackStateError = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsestackstateunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsestackstateunion.md index b85b7056f..22e288fe0 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsestackstateunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsestackstateunion.md @@ -27,4 +27,3 @@ const value: models.SyncReconcileResponseStackState = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsestoragepathunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsestoragepathunion.md index a819e5d8f..ab94d3660 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsestoragepathunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsestoragepathunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseStoragePath = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsesubscriptionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsesubscriptionunion.md index 8658226c2..fdfee76ae 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsesubscriptionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsesubscriptionunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseSubscription = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetablenameunion1.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetablenameunion1.md index d683c5cee..3eb81b150 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetablenameunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetablenameunion1.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseTableName1 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetablenameunion2.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetablenameunion2.md index 31ded5320..156e56e82 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetablenameunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetablenameunion2.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseTableName2 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleasedefaultunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleasedefaultunion.md index c58893e01..49365b126 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleasedefaultunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleasedefaultunion.md @@ -46,4 +46,3 @@ const value: models.SyncReconcileResponseTargetReleaseDefaultStringList = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseextendconditionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseextendconditionunion.md index 9feb75e77..dccbed4d6 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseextendconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseextendconditionunion.md @@ -17,4 +17,3 @@ const value: models.SyncReconcileResponseTargetReleaseExtendCondition = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseextendresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseextendresourceconditionunion.md index 643a90982..f2e7acbe6 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseextendresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseextendresourceconditionunion.md @@ -18,4 +18,3 @@ const value: models.SyncReconcileResponseTargetReleaseExtendConditionResource = ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseextendunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseextendunion.md index 622aedbc8..d69a0fdfb 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseextendunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseextendunion.md @@ -20,4 +20,3 @@ const value: models.SyncReconcileResponseTargetReleaseExtend = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleasemanagementunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleasemanagementunion.md index 36c163d3e..5b4abfd81 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleasemanagementunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleasemanagementunion.md @@ -36,4 +36,3 @@ const value: models.SyncReconcileResponseTargetReleaseManagement2 = { ```typescript const value: models.SyncReconcileResponseTargetReleaseManagementEnum = "auto"; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseoverrideconditionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseoverrideconditionunion.md index 7b6f2b8a1..ed9eae90c 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseoverrideconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseoverrideconditionunion.md @@ -17,4 +17,3 @@ const value: models.SyncReconcileResponseTargetReleaseOverrideCondition = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseoverrideresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseoverrideresourceconditionunion.md index 5f43dc08c..8dfd33a6e 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseoverrideresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseoverrideresourceconditionunion.md @@ -18,4 +18,3 @@ const value: ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseoverrideunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseoverrideunion.md index 276878ac7..24e5b2df8 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseoverrideunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseoverrideunion.md @@ -21,4 +21,3 @@ const value: models.SyncReconcileResponseTargetReleaseOverride = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseprofileconditionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseprofileconditionunion.md index 2fcecca40..a005da327 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseprofileconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseprofileconditionunion.md @@ -17,4 +17,3 @@ const value: models.SyncReconcileResponseTargetReleaseProfileCondition = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseprofileresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseprofileresourceconditionunion.md index e6b7869c9..edea060cf 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseprofileresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseprofileresourceconditionunion.md @@ -18,4 +18,3 @@ const value: models.SyncReconcileResponseTargetReleaseProfileConditionResource = ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseprofileunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseprofileunion.md index 428c8edbd..84574412a 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseprofileunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseprofileunion.md @@ -20,4 +20,3 @@ const value: models.SyncReconcileResponseTargetReleaseProfile = { ```typescript const value: string = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseresources.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseresources.md index 06c7b898e..be9064f7c 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseresources.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseresources.md @@ -17,9 +17,10 @@ let value: SyncReconcileResponseTargetReleaseResources = { ## Fields -| Field | Type | Required | Description | -| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| `config` | [models.SyncReconcileResponseTargetReleaseConfig](../models/syncreconcileresponsetargetreleaseconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | -| `dependencies` | [models.SyncReconcileResponseTargetReleaseDependency](../models/syncreconcileresponsetargetreleasedependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | -| `lifecycle` | [models.SyncReconcileResponseTargetReleaseLifecycle](../models/syncreconcileresponsetargetreleaselifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | -| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file +| Field | Type | Required | Description | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `config` | [models.SyncReconcileResponseTargetReleaseConfig](../models/syncreconcileresponsetargetreleaseconfig.md) | :heavy_check_mark: | Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. | +| `dependencies` | [models.SyncReconcileResponseTargetReleaseDependency](../models/syncreconcileresponsetargetreleasedependency.md)[] | :heavy_check_mark: | Additional dependencies for this resource beyond those defined in the resource itself.
The total dependencies are: resource.get_dependencies() + this list | +| `enabledWhen` | *string* | :heavy_minus_sign: | Id of the boolean stack input that decides whether this resource is
created at all. `None` means always create it.

Set by `.enabled(input)` in the SDK. Setup emitters render the resource
conditionally on the matching template variable, so a deployer who says no
never gets the resource, its outputs, or anything derived from it. | +| `lifecycle` | [models.SyncReconcileResponseTargetReleaseLifecycle](../models/syncreconcileresponsetargetreleaselifecycle.md) | :heavy_check_mark: | Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. | +| `remoteAccess` | *boolean* | :heavy_minus_sign: | Enable remote bindings for this resource (BYOB use case).
When true, binding params are synced to StackState's `remote_binding_params`.
Default: false (prevents sensitive data in synced state). | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleasetypeunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleasetypeunion.md index a56cd675a..c9dd93d89 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleasetypeunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleasetypeunion.md @@ -14,4 +14,3 @@ const value: models.SyncReconcileResponseTargetReleaseTypeEnvEnum = "secret"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseunion.md index 687231dd6..fb32c06e6 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleaseunion.md @@ -33,4 +33,3 @@ const value: models.SyncReconcileResponseTargetRelease = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleasevalidationunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleasevalidationunion.md index 69a2aa5d8..fd7e3f505 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleasevalidationunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetargetreleasevalidationunion.md @@ -14,4 +14,3 @@ const value: models.SyncReconcileResponseTargetReleaseValidation = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetopicunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetopicunion.md index c852eb8eb..db28ac18d 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsetopicunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsetopicunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseTopic = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseusernameunion1.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseusernameunion1.md index 624ad9cd3..e8498530b 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseusernameunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseusernameunion1.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseUsername1 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseusernameunion2.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseusernameunion2.md index c6555baa5..b9071c8dd 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseusernameunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseusernameunion2.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseUsername2 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseusernameunion3.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseusernameunion3.md index 6b95298d3..b44c84d0d 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseusernameunion3.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseusernameunion3.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseUsername3 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseusernameunion4.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseusernameunion4.md index 520d969fc..befc640a0 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseusernameunion4.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseusernameunion4.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseUsername4 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponseusernameunion5.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponseusernameunion5.md index 8aa584589..03acb4e6f 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponseusernameunion5.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponseusernameunion5.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseUsername5 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsevaultnameunion.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsevaultnameunion.md index 64088610a..40552f51c 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsevaultnameunion.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsevaultnameunion.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseVaultName = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsevaultprefixunion1.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsevaultprefixunion1.md index b94999dfe..25d60061c 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsevaultprefixunion1.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsevaultprefixunion1.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseVaultPrefix1 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsevaultprefixunion2.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsevaultprefixunion2.md index eb57c5ba6..1ffbab981 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsevaultprefixunion2.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsevaultprefixunion2.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseVaultPrefix2 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncreconcileresponsevaultprefixunion3.md b/client-sdks/platform/typescript/docs/models/syncreconcileresponsevaultprefixunion3.md index 25b104fcd..c9cbb86e7 100644 --- a/client-sdks/platform/typescript/docs/models/syncreconcileresponsevaultprefixunion3.md +++ b/client-sdks/platform/typescript/docs/models/syncreconcileresponsevaultprefixunion3.md @@ -28,4 +28,3 @@ const value: models.SyncReconcileResponseVaultPrefix3 = { }, }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/syncrenewrequest.md b/client-sdks/platform/typescript/docs/models/syncrenewrequest.md new file mode 100644 index 000000000..d70204cde --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/syncrenewrequest.md @@ -0,0 +1,23 @@ +# SyncRenewRequest + +## Example Usage + +```typescript +import { SyncRenewRequest } from "@alienplatform/platform-api/models"; + +let value: SyncRenewRequest = { + deploymentId: "dep_0c29fq4a2yjb7kx3smwdgxlc", + deploymentIds: [ + "dep_0c29fq4a2yjb7kx3smwdgxlc", + ], + session: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- | +| `deploymentId` | *string* | :heavy_minus_sign: | Single deployment to renew. Deprecated: use deploymentIds. Retained so a manager built against the previous API keeps renewing during rollout. | dep_0c29fq4a2yjb7kx3smwdgxlc | +| `deploymentIds` | *string*[] | :heavy_minus_sign: | Deployments to renew or confirm. Renewal is per deployment: the response reports each one independently. | | +| `session` | *string* | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/targetconfig.md b/client-sdks/platform/typescript/docs/models/targetconfig.md index f5d85637d..dfbe5b5b5 100644 --- a/client-sdks/platform/typescript/docs/models/targetconfig.md +++ b/client-sdks/platform/typescript/docs/models/targetconfig.md @@ -31,6 +31,7 @@ let value: TargetConfig = { | `domainMetadata` | *models.SyncReconcileResponseDomainMetadataUnion* | :heavy_minus_sign: | N/A | | `environmentVariables` | [models.SyncReconcileResponseEnvironmentVariables](../models/syncreconcileresponseenvironmentvariables.md) | :heavy_check_mark: | Snapshot of environment variables at a point in time | | `externalBindings` | Record | :heavy_minus_sign: | Map from resource ID to external binding.

Validated at runtime: binding type must match resource type. | +| `inputValues` | Record | :heavy_minus_sign: | Deployer-provided stack input values, keyed by input id. A resource
gated with `.enabled(input)` and a Live lifecycle follows these
values; a missing key falls back to the input's declared boolean
default. Suppliers must not place secret-kind input values here:
this map serializes and debug-prints unredacted. | | `labelDomain` | *string* | :heavy_minus_sign: | DNS-style label domain used for Kubernetes resource ownership labels.

Defaults to `alien.dev` when absent. Whitelabeled Operator builds set this
so generated workloads and optional log collectors share the same label
namespace. | | `managementConfig` | *models.SyncReconcileResponseManagementConfigUnion* | :heavy_minus_sign: | N/A | | `managerUrl` | *string* | :heavy_minus_sign: | Manager base URL (e.g., "https://manager.alien.dev").

The manager IS the container registry — its `/v2/` endpoint serves as
the OCI Distribution API. Controllers derive the proxy host from this
to configure pull auth (RegistryCredentials, imagePullSecrets).

When None (e.g., `alien dev`), controllers use image URIs as-is. | diff --git a/client-sdks/platform/typescript/docs/models/targetreleaseextendstateconditionunion.md b/client-sdks/platform/typescript/docs/models/targetreleaseextendstateconditionunion.md index f03028646..f1e1ab930 100644 --- a/client-sdks/platform/typescript/docs/models/targetreleaseextendstateconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/targetreleaseextendstateconditionunion.md @@ -17,4 +17,3 @@ const value: models.TargetReleaseExtendConditionState = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/targetreleaseextendstateresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/targetreleaseextendstateresourceconditionunion.md index a6feae6ab..ed4479927 100644 --- a/client-sdks/platform/typescript/docs/models/targetreleaseextendstateresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/targetreleaseextendstateresourceconditionunion.md @@ -17,4 +17,3 @@ const value: models.TargetReleaseExtendConditionStateResource = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/targetreleaseoverridestateconditionunion.md b/client-sdks/platform/typescript/docs/models/targetreleaseoverridestateconditionunion.md index 6805a4d79..0ba7afe79 100644 --- a/client-sdks/platform/typescript/docs/models/targetreleaseoverridestateconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/targetreleaseoverridestateconditionunion.md @@ -17,4 +17,3 @@ const value: models.TargetReleaseOverrideConditionState = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/targetreleaseoverridestateresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/targetreleaseoverridestateresourceconditionunion.md index a22d84bf5..9be3b4a28 100644 --- a/client-sdks/platform/typescript/docs/models/targetreleaseoverridestateresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/targetreleaseoverridestateresourceconditionunion.md @@ -17,4 +17,3 @@ const value: models.TargetReleaseOverrideConditionStateResource = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/targetreleaseprofilestateconditionunion.md b/client-sdks/platform/typescript/docs/models/targetreleaseprofilestateconditionunion.md index 8d7f606b1..f9d965e42 100644 --- a/client-sdks/platform/typescript/docs/models/targetreleaseprofilestateconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/targetreleaseprofilestateconditionunion.md @@ -17,4 +17,3 @@ const value: models.TargetReleaseProfileConditionState = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/targetreleaseprofilestateresourceconditionunion.md b/client-sdks/platform/typescript/docs/models/targetreleaseprofilestateresourceconditionunion.md index d611e3bc3..091770fff 100644 --- a/client-sdks/platform/typescript/docs/models/targetreleaseprofilestateresourceconditionunion.md +++ b/client-sdks/platform/typescript/docs/models/targetreleaseprofilestateresourceconditionunion.md @@ -17,4 +17,3 @@ const value: models.TargetReleaseProfileConditionStateResource = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/targetstacksettingsazureunion.md b/client-sdks/platform/typescript/docs/models/targetstacksettingsazureunion.md index 820bd6509..ec2d5a2e8 100644 --- a/client-sdks/platform/typescript/docs/models/targetstacksettingsazureunion.md +++ b/client-sdks/platform/typescript/docs/models/targetstacksettingsazureunion.md @@ -16,4 +16,3 @@ const value: models.AzureTargetStackSettings = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/targetstacksettingsgcpunion.md b/client-sdks/platform/typescript/docs/models/targetstacksettingsgcpunion.md index cb9b64c1a..ddbdd9aaa 100644 --- a/client-sdks/platform/typescript/docs/models/targetstacksettingsgcpunion.md +++ b/client-sdks/platform/typescript/docs/models/targetstacksettingsgcpunion.md @@ -16,4 +16,3 @@ const value: models.GcpTargetStackSettings = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/targettypeai.md b/client-sdks/platform/typescript/docs/models/targettypeai.md new file mode 100644 index 000000000..f688269d4 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/targettypeai.md @@ -0,0 +1,15 @@ +# TargetTypeAi + +## Example Usage + +```typescript +import { TargetTypeAi } from "@alienplatform/platform-api/models"; + +let value: TargetTypeAi = "ai"; +``` + +## Values + +```typescript +"ai" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/updatedeploymentinputsresponsedefaultunion.md b/client-sdks/platform/typescript/docs/models/updatedeploymentinputsresponsedefaultunion.md index d417b82de..2c8062d34 100644 --- a/client-sdks/platform/typescript/docs/models/updatedeploymentinputsresponsedefaultunion.md +++ b/client-sdks/platform/typescript/docs/models/updatedeploymentinputsresponsedefaultunion.md @@ -46,4 +46,3 @@ const value: models.UpdateDeploymentInputsResponseDefaultStringList = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/updatedeploymentinputsresponsetypeunion.md b/client-sdks/platform/typescript/docs/models/updatedeploymentinputsresponsetypeunion.md index 0e6752bdf..5614b028b 100644 --- a/client-sdks/platform/typescript/docs/models/updatedeploymentinputsresponsetypeunion.md +++ b/client-sdks/platform/typescript/docs/models/updatedeploymentinputsresponsetypeunion.md @@ -14,4 +14,3 @@ const value: models.UpdateDeploymentInputsResponseTypeEnvEnum = "plain"; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/updatedeploymentinputsresponsevalidationunion.md b/client-sdks/platform/typescript/docs/models/updatedeploymentinputsresponsevalidationunion.md index 8994005f0..296644ebe 100644 --- a/client-sdks/platform/typescript/docs/models/updatedeploymentinputsresponsevalidationunion.md +++ b/client-sdks/platform/typescript/docs/models/updatedeploymentinputsresponsevalidationunion.md @@ -14,4 +14,3 @@ const value: models.UpdateDeploymentInputsResponseValidation = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/updatedeploymentsetuppolicy.md b/client-sdks/platform/typescript/docs/models/updatedeploymentsetuppolicy.md index 3cbd81fea..4104e39aa 100644 --- a/client-sdks/platform/typescript/docs/models/updatedeploymentsetuppolicy.md +++ b/client-sdks/platform/typescript/docs/models/updatedeploymentsetuppolicy.md @@ -10,7 +10,9 @@ import { UpdateDeploymentSetupPolicy } from "@alienplatform/platform-api/models" let value: UpdateDeploymentSetupPolicy = { policy: { allowedPlatforms: [], - allowedSetupMethods: [], + allowedSetupMethods: [ + "google-oauth", + ], }, }; ``` diff --git a/client-sdks/platform/typescript/docs/models/updateprojectgcpoauthprovider.md b/client-sdks/platform/typescript/docs/models/updateprojectgcpoauthprovider.md index 46576bafd..cd0a36c0a 100644 --- a/client-sdks/platform/typescript/docs/models/updateprojectgcpoauthprovider.md +++ b/client-sdks/platform/typescript/docs/models/updateprojectgcpoauthprovider.md @@ -20,4 +20,3 @@ const value: models.UpdateProjectGcpOAuthProviderCustom = { clientSecret: "GOCSPX-example", }; ``` - diff --git a/client-sdks/platform/typescript/docs/models/updateworkspacesettingsrequest.md b/client-sdks/platform/typescript/docs/models/updateworkspacesettingsrequest.md new file mode 100644 index 000000000..edca8a59e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/updateworkspacesettingsrequest.md @@ -0,0 +1,16 @@ +# UpdateWorkspaceSettingsRequest + +## Example Usage + +```typescript +import { UpdateWorkspaceSettingsRequest } from "@alienplatform/platform-api/models"; + +let value: UpdateWorkspaceSettingsRequest = {}; +``` + +## Fields + +| Field | Type | Required | Description | +| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `debugPermissionMode` | [models.UpdateWorkspaceSettingsRequestDebugPermissionMode](../models/updateworkspacesettingsrequestdebugpermissionmode.md) | :heavy_minus_sign: | Workspace-level policy for ai-agent debug commands. `auto` runs `alien_debug` tool calls without asking; `ask` halts each session before every debug command and waits for a human approval from dashboard or Slack. | +| `enabled` | *boolean* | :heavy_minus_sign: | Turn the ai-agent on (`true`) or off (`false`) for this workspace. | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/updateworkspacesettingsrequestdebugpermissionmode.md b/client-sdks/platform/typescript/docs/models/updateworkspacesettingsrequestdebugpermissionmode.md new file mode 100644 index 000000000..03d408814 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/updateworkspacesettingsrequestdebugpermissionmode.md @@ -0,0 +1,17 @@ +# UpdateWorkspaceSettingsRequestDebugPermissionMode + +Workspace-level policy for ai-agent debug commands. `auto` runs `alien_debug` tool calls without asking; `ask` halts each session before every debug command and waits for a human approval from dashboard or Slack. + +## Example Usage + +```typescript +import { UpdateWorkspaceSettingsRequestDebugPermissionMode } from "@alienplatform/platform-api/models"; + +let value: UpdateWorkspaceSettingsRequestDebugPermissionMode = "auto"; +``` + +## Values + +```typescript +"auto" | "ask" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/usage.md b/client-sdks/platform/typescript/docs/models/usage.md index c925d982f..dadaf7a7e 100644 --- a/client-sdks/platform/typescript/docs/models/usage.md +++ b/client-sdks/platform/typescript/docs/models/usage.md @@ -14,4 +14,3 @@ const value: models.SyncReconcileRequestUsage = {}; ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/usagecpuunion.md b/client-sdks/platform/typescript/docs/models/usagecpuunion.md index 46e078fd1..2339b350a 100644 --- a/client-sdks/platform/typescript/docs/models/usagecpuunion.md +++ b/client-sdks/platform/typescript/docs/models/usagecpuunion.md @@ -17,4 +17,3 @@ const value: models.UsageCpu = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/usagememoryunion.md b/client-sdks/platform/typescript/docs/models/usagememoryunion.md index edd7e9e05..19a049e4d 100644 --- a/client-sdks/platform/typescript/docs/models/usagememoryunion.md +++ b/client-sdks/platform/typescript/docs/models/usagememoryunion.md @@ -17,4 +17,3 @@ const value: models.UsageMemory = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/utilizationunion1.md b/client-sdks/platform/typescript/docs/models/utilizationunion1.md index 8fb8ef354..8b22bdc55 100644 --- a/client-sdks/platform/typescript/docs/models/utilizationunion1.md +++ b/client-sdks/platform/typescript/docs/models/utilizationunion1.md @@ -17,4 +17,3 @@ const value: models.Utilization1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/utilizationunion2.md b/client-sdks/platform/typescript/docs/models/utilizationunion2.md index 5688b3f72..a001d40ec 100644 --- a/client-sdks/platform/typescript/docs/models/utilizationunion2.md +++ b/client-sdks/platform/typescript/docs/models/utilizationunion2.md @@ -17,4 +17,3 @@ const value: models.Utilization2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/utilizationunion3.md b/client-sdks/platform/typescript/docs/models/utilizationunion3.md index 6939f4120..aac4f2f27 100644 --- a/client-sdks/platform/typescript/docs/models/utilizationunion3.md +++ b/client-sdks/platform/typescript/docs/models/utilizationunion3.md @@ -17,4 +17,3 @@ const value: models.Utilization3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/utilizationunion4.md b/client-sdks/platform/typescript/docs/models/utilizationunion4.md index 1d681d573..f5d0ce89b 100644 --- a/client-sdks/platform/typescript/docs/models/utilizationunion4.md +++ b/client-sdks/platform/typescript/docs/models/utilizationunion4.md @@ -17,4 +17,3 @@ const value: models.Utilization4 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/workloadunion1.md b/client-sdks/platform/typescript/docs/models/workloadunion1.md index 782d48113..c49e0577c 100644 --- a/client-sdks/platform/typescript/docs/models/workloadunion1.md +++ b/client-sdks/platform/typescript/docs/models/workloadunion1.md @@ -21,4 +21,3 @@ const value: models.Workload1 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/workloadunion2.md b/client-sdks/platform/typescript/docs/models/workloadunion2.md index 8b980224b..3edb10dbc 100644 --- a/client-sdks/platform/typescript/docs/models/workloadunion2.md +++ b/client-sdks/platform/typescript/docs/models/workloadunion2.md @@ -21,4 +21,3 @@ const value: models.Workload2 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/workloadunion3.md b/client-sdks/platform/typescript/docs/models/workloadunion3.md index 03bbc567a..61b310198 100644 --- a/client-sdks/platform/typescript/docs/models/workloadunion3.md +++ b/client-sdks/platform/typescript/docs/models/workloadunion3.md @@ -21,4 +21,3 @@ const value: models.Workload3 = { ```typescript const value: any = ""; ``` - diff --git a/client-sdks/platform/typescript/docs/models/workspaceinvitation.md b/client-sdks/platform/typescript/docs/models/workspaceinvitation.md new file mode 100644 index 000000000..06fb17a7a --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/workspaceinvitation.md @@ -0,0 +1,33 @@ +# WorkspaceInvitation + +## Example Usage + +```typescript +import { WorkspaceInvitation } from "@alienplatform/platform-api/models"; + +let value: WorkspaceInvitation = { + id: "winv_DsgltMIFV0GmqtxV5NYTtrknrna", + email: "Lane.Wolff@yahoo.com", + role: "workspace.member", + status: "expired", + deliveryStatus: "sent", + expiresAt: new Date("2026-06-18T15:21:24.905Z"), + lastSentAt: new Date("2024-12-31T09:24:38.956Z"), + createdAt: new Date("2026-03-05T13:06:57.242Z"), + inviteUrl: "https://impractical-perfection.org/", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the workspace invitation. | winv_DsgltMIFV0GmqtxV5NYTtrknrna | +| `email` | *string* | :heavy_check_mark: | N/A | | +| `role` | [models.WorkspaceRole](../models/workspacerole.md) | :heavy_check_mark: | Role for workspace-scoped service accounts | workspace.member | +| `status` | [models.WorkspaceInvitationStatus](../models/workspaceinvitationstatus.md) | :heavy_check_mark: | N/A | | +| `deliveryStatus` | [models.DeliveryStatus](../models/deliverystatus.md) | :heavy_check_mark: | N/A | | +| `expiresAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | N/A | | +| `lastSentAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | N/A | | +| `createdAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | N/A | | +| `inviteUrl` | *string* | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/workspaceinvitationpreview.md b/client-sdks/platform/typescript/docs/models/workspaceinvitationpreview.md new file mode 100644 index 000000000..344bf6c6e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/workspaceinvitationpreview.md @@ -0,0 +1,36 @@ +# WorkspaceInvitationPreview + +## Example Usage + +```typescript +import { WorkspaceInvitationPreview } from "@alienplatform/platform-api/models"; + +let value: WorkspaceInvitationPreview = { + kind: "link", + workspace: { + id: "ws_It13CUaGEhLLAB87simX0", + name: "", + logoUrl: "https://deficient-draft.com/", + }, + inviter: { + name: "", + image: "https://grandiose-self-confidence.biz", + }, + role: "workspace.member", + expiresAt: new Date("2024-01-12T23:31:33.131Z"), + state: "revoked", + emailHint: "", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------- | +| `kind` | [models.WorkspaceInvitationPreviewKind](../models/workspaceinvitationpreviewkind.md) | :heavy_check_mark: | N/A | | +| `workspace` | [models.WorkspaceInvitationPreviewWorkspace](../models/workspaceinvitationpreviewworkspace.md) | :heavy_check_mark: | N/A | | +| `inviter` | [models.Inviter](../models/inviter.md) | :heavy_check_mark: | N/A | | +| `role` | [models.WorkspaceRole](../models/workspacerole.md) | :heavy_check_mark: | Role for workspace-scoped service accounts | workspace.member | +| `expiresAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | N/A | | +| `state` | [models.WorkspaceInvitationPreviewState](../models/workspaceinvitationpreviewstate.md) | :heavy_check_mark: | N/A | | +| `emailHint` | *string* | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/workspaceinvitationpreviewkind.md b/client-sdks/platform/typescript/docs/models/workspaceinvitationpreviewkind.md new file mode 100644 index 000000000..93b24b440 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/workspaceinvitationpreviewkind.md @@ -0,0 +1,15 @@ +# WorkspaceInvitationPreviewKind + +## Example Usage + +```typescript +import { WorkspaceInvitationPreviewKind } from "@alienplatform/platform-api/models"; + +let value: WorkspaceInvitationPreviewKind = "email"; +``` + +## Values + +```typescript +"email" | "link" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/workspaceinvitationpreviewstate.md b/client-sdks/platform/typescript/docs/models/workspaceinvitationpreviewstate.md new file mode 100644 index 000000000..1af1b5d58 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/workspaceinvitationpreviewstate.md @@ -0,0 +1,15 @@ +# WorkspaceInvitationPreviewState + +## Example Usage + +```typescript +import { WorkspaceInvitationPreviewState } from "@alienplatform/platform-api/models"; + +let value: WorkspaceInvitationPreviewState = "active"; +``` + +## Values + +```typescript +"active" | "accepted" | "expired" | "revoked" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/workspaceinvitationpreviewworkspace.md b/client-sdks/platform/typescript/docs/models/workspaceinvitationpreviewworkspace.md new file mode 100644 index 000000000..9ec6a560e --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/workspaceinvitationpreviewworkspace.md @@ -0,0 +1,21 @@ +# WorkspaceInvitationPreviewWorkspace + +## Example Usage + +```typescript +import { WorkspaceInvitationPreviewWorkspace } from "@alienplatform/platform-api/models"; + +let value: WorkspaceInvitationPreviewWorkspace = { + id: "ws_It13CUaGEhLLAB87simX0", + name: "", + logoUrl: null, +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | ------------------------------------ | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the workspace. | ws_It13CUaGEhLLAB87simX0 | +| `name` | *string* | :heavy_check_mark: | N/A | | +| `logoUrl` | *string* | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/workspaceinvitationstatus.md b/client-sdks/platform/typescript/docs/models/workspaceinvitationstatus.md new file mode 100644 index 000000000..0c88655b6 --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/workspaceinvitationstatus.md @@ -0,0 +1,15 @@ +# WorkspaceInvitationStatus + +## Example Usage + +```typescript +import { WorkspaceInvitationStatus } from "@alienplatform/platform-api/models"; + +let value: WorkspaceInvitationStatus = "accepted"; +``` + +## Values + +```typescript +"pending" | "accepted" | "revoked" | "expired" +``` \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/models/workspaceinvitelink.md b/client-sdks/platform/typescript/docs/models/workspaceinvitelink.md new file mode 100644 index 000000000..47d55f74d --- /dev/null +++ b/client-sdks/platform/typescript/docs/models/workspaceinvitelink.md @@ -0,0 +1,29 @@ +# WorkspaceInviteLink + +## Example Usage + +```typescript +import { WorkspaceInviteLink } from "@alienplatform/platform-api/models"; + +let value: WorkspaceInviteLink = { + id: "wil_RgcthDSZ37rmFLekuItpFS7btjXoYwou1gE4", + role: "workspace.member", + expiresAt: new Date("2025-08-10T09:44:19.208Z"), + createdAt: new Date("2024-12-17T22:24:34.536Z"), + useCount: 786384, + lastUsedAt: new Date("2024-02-08T13:27:28.425Z"), + inviteUrl: "https://immediate-drug.net/", +}; +``` + +## Fields + +| Field | Type | Required | Description | Example | +| --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------- | +| `id` | *string* | :heavy_check_mark: | Unique identifier for the workspace invite link. | wil_RgcthDSZ37rmFLekuItpFS7btjXoYwou1gE4 | +| `role` | [models.WorkspaceRole](../models/workspacerole.md) | :heavy_check_mark: | Role for workspace-scoped service accounts | workspace.member | +| `expiresAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | N/A | | +| `createdAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | N/A | | +| `useCount` | *number* | :heavy_check_mark: | N/A | | +| `lastUsedAt` | [Date](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date) | :heavy_check_mark: | N/A | | +| `inviteUrl` | *string* | :heavy_check_mark: | N/A | | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/sdks/agentsessions/README.md b/client-sdks/platform/typescript/docs/sdks/agentsessions/README.md new file mode 100644 index 000000000..a6deaf994 --- /dev/null +++ b/client-sdks/platform/typescript/docs/sdks/agentsessions/README.md @@ -0,0 +1,390 @@ +# AgentSessions + +## Overview + +### Available Operations + +* [list](#list) - List ai-agent monitor sessions for this workspace. Newest first, capped at 50. +* [get](#get) - Retrieve one ai-agent monitor session by id. +* [events](#events) - Incrementally read a session's event log (steps, tool calls, report deltas, approvals, status transitions). Pass the previous response's `latestSeq` as `after` to fetch only new events. +* [approve](#approve) - Approve a halted ai-agent monitor session. Proxies to the ai-agent service, minting a fresh CLI session for the caller so the ai-agent's own auth applies. +* [stop](#stop) - Stop (cancel) a running, queued, or halted ai-agent monitor session. Proxies to the ai-agent service, minting a fresh CLI session for the caller so the ai-agent's own auth applies. Idempotent — stopping an already-terminal session is a 200 no-op. + +## list + +List ai-agent monitor sessions for this workspace. Newest first, capped at 50. + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.agentSessions.list({ + workspace: "my-workspace", + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { agentSessionsList } from "@alienplatform/platform-api/funcs/agentSessionsList.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await agentSessionsList(alien, { + workspace: "my-workspace", + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("agentSessionsList failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.ListAgentSessionsRequest](../../models/operations/listagentsessionsrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.AgentSessionListResponse](../../models/agentsessionlistresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + +## get + +Retrieve one ai-agent monitor session by id. + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.agentSessions.get({ + id: "", + workspace: "my-workspace", + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { agentSessionsGet } from "@alienplatform/platform-api/funcs/agentSessionsGet.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await agentSessionsGet(alien, { + id: "", + workspace: "my-workspace", + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("agentSessionsGet failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.GetAgentSessionRequest](../../models/operations/getagentsessionrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.AgentSessionDetail](../../models/agentsessiondetail.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 404 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + +## events + +Incrementally read a session's event log (steps, tool calls, report deltas, approvals, status transitions). Pass the previous response's `latestSeq` as `after` to fetch only new events. + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.agentSessions.events({ + id: "", + workspace: "my-workspace", + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { agentSessionsEvents } from "@alienplatform/platform-api/funcs/agentSessionsEvents.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await agentSessionsEvents(alien, { + id: "", + workspace: "my-workspace", + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("agentSessionsEvents failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.ListAgentSessionEventsRequest](../../models/operations/listagentsessioneventsrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.AgentSessionEventsResponse](../../models/agentsessioneventsresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 404 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + +## approve + +Approve a halted ai-agent monitor session. Proxies to the ai-agent service, minting a fresh CLI session for the caller so the ai-agent's own auth applies. + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.agentSessions.approve({ + id: "", + workspace: "my-workspace", + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { agentSessionsApprove } from "@alienplatform/platform-api/funcs/agentSessionsApprove.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await agentSessionsApprove(alien, { + id: "", + workspace: "my-workspace", + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("agentSessionsApprove failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.ApproveAgentSessionRequest](../../models/operations/approveagentsessionrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.AgentSessionApproveResponse](../../models/agentsessionapproveresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 404 | application/json | +| errors.APIError | 503 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + +## stop + +Stop (cancel) a running, queued, or halted ai-agent monitor session. Proxies to the ai-agent service, minting a fresh CLI session for the caller so the ai-agent's own auth applies. Idempotent — stopping an already-terminal session is a 200 no-op. + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.agentSessions.stop({ + id: "", + workspace: "my-workspace", + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { agentSessionsStop } from "@alienplatform/platform-api/funcs/agentSessionsStop.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await agentSessionsStop(alien, { + id: "", + workspace: "my-workspace", + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("agentSessionsStop failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.StopAgentSessionRequest](../../models/operations/stopagentsessionrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.AgentSessionStopResponse](../../models/agentsessionstopresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 404 | application/json | +| errors.APIError | 503 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/sdks/alien/README.md b/client-sdks/platform/typescript/docs/sdks/alien/README.md new file mode 100644 index 000000000..dcaaf29e2 --- /dev/null +++ b/client-sdks/platform/typescript/docs/sdks/alien/README.md @@ -0,0 +1,704 @@ +# Alien SDK + +## Overview + +### Available Operations + +* [getWorkspaceInvitationPreview](#getworkspaceinvitationpreview) +* [acceptWorkspaceInvitation](#acceptworkspaceinvitation) +* [listWorkspaceInvitations](#listworkspaceinvitations) +* [createWorkspaceInvitation](#createworkspaceinvitation) +* [resendWorkspaceInvitation](#resendworkspaceinvitation) +* [revokeWorkspaceInvitation](#revokeworkspaceinvitation) +* [getWorkspaceInviteLink](#getworkspaceinvitelink) +* [createWorkspaceInviteLink](#createworkspaceinvitelink) +* [revokeWorkspaceInviteLink](#revokeworkspaceinvitelink) + +## getWorkspaceInvitationPreview + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.getWorkspaceInvitationPreview({ + token: "", + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { getWorkspaceInvitationPreview } from "@alienplatform/platform-api/funcs/getWorkspaceInvitationPreview.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await getWorkspaceInvitationPreview(alien, { + token: "", + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("getWorkspaceInvitationPreview failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.GetWorkspaceInvitationPreviewRequest](../../models/operations/getworkspaceinvitationpreviewrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.WorkspaceInvitationPreview](../../models/workspaceinvitationpreview.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 404 | application/json | +| errors.APIError | 500 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + +## acceptWorkspaceInvitation + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.acceptWorkspaceInvitation({ + token: "", + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { acceptWorkspaceInvitation } from "@alienplatform/platform-api/funcs/acceptWorkspaceInvitation.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await acceptWorkspaceInvitation(alien, { + token: "", + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("acceptWorkspaceInvitation failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.AcceptWorkspaceInvitationRequest](../../models/operations/acceptworkspaceinvitationrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.AcceptWorkspaceInvitationResponse](../../models/acceptworkspaceinvitationresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 404, 409 | application/json | +| errors.APIError | 500 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + +## listWorkspaceInvitations + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.listWorkspaceInvitations({ + id: "ws_It13CUaGEhLLAB87simX0", + workspace: "my-workspace", + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { listWorkspaceInvitations } from "@alienplatform/platform-api/funcs/listWorkspaceInvitations.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await listWorkspaceInvitations(alien, { + id: "ws_It13CUaGEhLLAB87simX0", + workspace: "my-workspace", + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("listWorkspaceInvitations failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.ListWorkspaceInvitationsRequest](../../models/operations/listworkspaceinvitationsrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.ListWorkspaceInvitationsResponse](../../models/operations/listworkspaceinvitationsresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 404 | application/json | +| errors.APIError | 500 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + +## createWorkspaceInvitation + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.createWorkspaceInvitation({ + id: "ws_It13CUaGEhLLAB87simX0", + workspace: "my-workspace", + requestBody: { + email: "Moriah.Rolfson@hotmail.com", + role: "workspace.member", + }, + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { createWorkspaceInvitation } from "@alienplatform/platform-api/funcs/createWorkspaceInvitation.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await createWorkspaceInvitation(alien, { + id: "ws_It13CUaGEhLLAB87simX0", + workspace: "my-workspace", + requestBody: { + email: "Moriah.Rolfson@hotmail.com", + role: "workspace.member", + }, + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("createWorkspaceInvitation failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.CreateWorkspaceInvitationRequest](../../models/operations/createworkspaceinvitationrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.WorkspaceInvitation](../../models/workspaceinvitation.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 403, 404, 409 | application/json | +| errors.APIError | 500 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + +## resendWorkspaceInvitation + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.resendWorkspaceInvitation({ + id: "ws_It13CUaGEhLLAB87simX0", + invitationId: "", + workspace: "my-workspace", + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { resendWorkspaceInvitation } from "@alienplatform/platform-api/funcs/resendWorkspaceInvitation.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await resendWorkspaceInvitation(alien, { + id: "ws_It13CUaGEhLLAB87simX0", + invitationId: "", + workspace: "my-workspace", + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("resendWorkspaceInvitation failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.ResendWorkspaceInvitationRequest](../../models/operations/resendworkspaceinvitationrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.WorkspaceInvitation](../../models/workspaceinvitation.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 404 | application/json | +| errors.APIError | 500 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + +## revokeWorkspaceInvitation + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + await alien.revokeWorkspaceInvitation({ + id: "ws_It13CUaGEhLLAB87simX0", + invitationId: "", + workspace: "my-workspace", + }); + + +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { revokeWorkspaceInvitation } from "@alienplatform/platform-api/funcs/revokeWorkspaceInvitation.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await revokeWorkspaceInvitation(alien, { + id: "ws_It13CUaGEhLLAB87simX0", + invitationId: "", + workspace: "my-workspace", + }); + if (res.ok) { + const { value: result } = res; + + } else { + console.log("revokeWorkspaceInvitation failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.RevokeWorkspaceInvitationRequest](../../models/operations/revokeworkspaceinvitationrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 404 | application/json | +| errors.APIError | 500 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + +## getWorkspaceInviteLink + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.getWorkspaceInviteLink({ + id: "ws_It13CUaGEhLLAB87simX0", + workspace: "my-workspace", + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { getWorkspaceInviteLink } from "@alienplatform/platform-api/funcs/getWorkspaceInviteLink.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await getWorkspaceInviteLink(alien, { + id: "ws_It13CUaGEhLLAB87simX0", + workspace: "my-workspace", + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("getWorkspaceInviteLink failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.GetWorkspaceInviteLinkRequest](../../models/operations/getworkspaceinvitelinkrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.WorkspaceInviteLink](../../models/workspaceinvitelink.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 404 | application/json | +| errors.APIError | 500 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + +## createWorkspaceInviteLink + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.createWorkspaceInviteLink({ + id: "ws_It13CUaGEhLLAB87simX0", + workspace: "my-workspace", + requestBody: { + role: "workspace.member", + }, + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { createWorkspaceInviteLink } from "@alienplatform/platform-api/funcs/createWorkspaceInviteLink.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await createWorkspaceInviteLink(alien, { + id: "ws_It13CUaGEhLLAB87simX0", + workspace: "my-workspace", + requestBody: { + role: "workspace.member", + }, + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("createWorkspaceInviteLink failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.CreateWorkspaceInviteLinkRequest](../../models/operations/createworkspaceinvitelinkrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.WorkspaceInviteLink](../../models/workspaceinvitelink.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 404 | application/json | +| errors.APIError | 500 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + +## revokeWorkspaceInviteLink + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + await alien.revokeWorkspaceInviteLink({ + id: "ws_It13CUaGEhLLAB87simX0", + workspace: "my-workspace", + }); + + +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { revokeWorkspaceInviteLink } from "@alienplatform/platform-api/funcs/revokeWorkspaceInviteLink.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await revokeWorkspaceInviteLink(alien, { + id: "ws_It13CUaGEhLLAB87simX0", + workspace: "my-workspace", + }); + if (res.ok) { + const { value: result } = res; + + } else { + console.log("revokeWorkspaceInviteLink failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.RevokeWorkspaceInviteLinkRequest](../../models/operations/revokeworkspaceinvitelinkrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 404 | application/json | +| errors.APIError | 500 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/sdks/deploymentgroups/README.md b/client-sdks/platform/typescript/docs/sdks/deploymentgroups/README.md index a55375747..3d1b724f1 100644 --- a/client-sdks/platform/typescript/docs/sdks/deploymentgroups/README.md +++ b/client-sdks/platform/typescript/docs/sdks/deploymentgroups/README.md @@ -7,9 +7,12 @@ * [createDeploymentGroup](#createdeploymentgroup) - Create a new deployment group * [listDeploymentGroups](#listdeploymentgroups) - List deployment groups * [ensureDeploymentGroupByName](#ensuredeploymentgroupbyname) - Get or create a deployment group by project and name +* [ensureDeploymentGroupByExternalId](#ensuredeploymentgroupbyexternalid) - Get or create a deployment group by project and external ID +* [getDeploymentGroupByExternalId](#getdeploymentgroupbyexternalid) - Get a deployment group by project and external ID * [getDeploymentGroup](#getdeploymentgroup) - Get deployment group details * [updateDeploymentGroup](#updatedeploymentgroup) - Update deployment group * [deleteDeploymentGroup](#deletedeploymentgroup) - Delete deployment group +* [setDeploymentGroupExternalId](#setdeploymentgroupexternalid) - Set or clear a deployment group's external ID * [createDeploymentGroupToken](#createdeploymentgrouptoken) - Create deployment group token * [createFirstPartyDeploymentSession](#createfirstpartydeploymentsession) - Create first-party deployment session @@ -32,6 +35,7 @@ async function run() { workspace: "my-workspace", createDeploymentGroupRequest: { name: "prod-us-east-1", + externalId: "ext_example_01", project: "", }, }); @@ -61,6 +65,7 @@ async function run() { workspace: "my-workspace", createDeploymentGroupRequest: { name: "prod-us-east-1", + externalId: "ext_example_01", project: "", }, }); @@ -255,6 +260,168 @@ run(); | errors.APIError | 500 | application/json | | errors.AlienDefaultError | 4XX, 5XX | \*/\* | +## ensureDeploymentGroupByExternalId + +Get or create a deployment group by project and external ID + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.deploymentGroups.ensureDeploymentGroupByExternalId({ + workspace: "my-workspace", + ensureDeploymentGroupByExternalIdRequest: { + externalId: "ext_example_01", + name: "prod-us-east-1", + project: "", + }, + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { deploymentGroupsEnsureDeploymentGroupByExternalId } from "@alienplatform/platform-api/funcs/deploymentGroupsEnsureDeploymentGroupByExternalId.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await deploymentGroupsEnsureDeploymentGroupByExternalId(alien, { + workspace: "my-workspace", + ensureDeploymentGroupByExternalIdRequest: { + externalId: "ext_example_01", + name: "prod-us-east-1", + project: "", + }, + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("deploymentGroupsEnsureDeploymentGroupByExternalId failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.EnsureDeploymentGroupByExternalIdRequest](../../models/operations/ensuredeploymentgroupbyexternalidrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.DeploymentGroup](../../models/deploymentgroup.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 404, 409 | application/json | +| errors.APIError | 500 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + +## getDeploymentGroupByExternalId + +Get a deployment group by project and external ID + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.deploymentGroups.getDeploymentGroupByExternalId({ + workspace: "my-workspace", + externalId: "ext_example_01", + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { deploymentGroupsGetDeploymentGroupByExternalId } from "@alienplatform/platform-api/funcs/deploymentGroupsGetDeploymentGroupByExternalId.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await deploymentGroupsGetDeploymentGroupByExternalId(alien, { + workspace: "my-workspace", + externalId: "ext_example_01", + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("deploymentGroupsGetDeploymentGroupByExternalId failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.GetDeploymentGroupByExternalIdRequest](../../models/operations/getdeploymentgroupbyexternalidrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.DeploymentGroup](../../models/deploymentgroup.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 404 | application/json | +| errors.APIError | 500 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + ## getDeploymentGroup Get deployment group details @@ -492,6 +659,89 @@ run(); | errors.APIError | 500 | application/json | | errors.AlienDefaultError | 4XX, 5XX | \*/\* | +## setDeploymentGroupExternalId + +Set or clear a deployment group's external ID + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.deploymentGroups.setDeploymentGroupExternalId({ + id: "dg_r27ict8c7vcgsumpj90ackf7b", + workspace: "my-workspace", + setDeploymentGroupExternalIdRequest: { + externalId: "ext_example_01", + }, + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { deploymentGroupsSetDeploymentGroupExternalId } from "@alienplatform/platform-api/funcs/deploymentGroupsSetDeploymentGroupExternalId.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await deploymentGroupsSetDeploymentGroupExternalId(alien, { + id: "dg_r27ict8c7vcgsumpj90ackf7b", + workspace: "my-workspace", + setDeploymentGroupExternalIdRequest: { + externalId: "ext_example_01", + }, + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("deploymentGroupsSetDeploymentGroupExternalId failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.SetDeploymentGroupExternalIdRequest](../../models/operations/setdeploymentgroupexternalidrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.DeploymentGroup](../../models/deploymentgroup.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 404, 409 | application/json | +| errors.APIError | 500 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + ## createDeploymentGroupToken Creates a deployment-group scoped API key and returns both the token and formatted deployment link @@ -601,7 +851,7 @@ run(); | Error Type | Status Code | Content Type | | ------------------------ | ------------------------ | ------------------------ | -| errors.APIError | 404 | application/json | +| errors.APIError | 400, 404 | application/json | | errors.APIError | 500 | application/json | | errors.AlienDefaultError | 4XX, 5XX | \*/\* | diff --git a/client-sdks/platform/typescript/docs/sdks/deployments/README.md b/client-sdks/platform/typescript/docs/sdks/deployments/README.md index 1301da51f..466294a89 100644 --- a/client-sdks/platform/typescript/docs/sdks/deployments/README.md +++ b/client-sdks/platform/typescript/docs/sdks/deployments/README.md @@ -18,6 +18,7 @@ * [delete](#delete) - Delete, detach, or forget a deployment by ID. * [redeploy](#redeploy) - Redeploy a running deployment with the same release and fresh environment variables. Sets status to update-pending. * [pinRelease](#pinrelease) - Pin or unpin a running or runtime-failed deployment. Running deployments start an update; failed deployments retry toward the selected release. +* [setReleaseChannel](#setreleasechannel) * [retry](#retry) - Retry a failed deployment operation. Uses alien-infra's retry mechanisms to resume from exact failure point. * [getInputs](#getinputs) - Get the active input definitions and current non-secret values for a deployment. * [updateInputs](#updateinputs) - Update runtime stack inputs, rebuild their environment-variable mappings, and request a deployment update when runtime configuration changes. @@ -1221,6 +1222,80 @@ run(); | errors.APIError | 500 | application/json | | errors.AlienDefaultError | 4XX, 5XX | \*/\* | +## setReleaseChannel + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.deployments.setReleaseChannel({ + id: "dep_0c29fq4a2yjb7kx3smwdgxlc", + workspace: "my-workspace", + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { deploymentsSetReleaseChannel } from "@alienplatform/platform-api/funcs/deploymentsSetReleaseChannel.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await deploymentsSetReleaseChannel(alien, { + id: "dep_0c29fq4a2yjb7kx3smwdgxlc", + workspace: "my-workspace", + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("deploymentsSetReleaseChannel failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.SetDeploymentReleaseChannelRequest](../../models/operations/setdeploymentreleasechannelrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.Deployment](../../models/deployment.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 400, 404 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + ## retry Retry a failed deployment operation. Uses alien-infra's retry mechanisms to resume from exact failure point. diff --git a/client-sdks/platform/typescript/docs/sdks/managers/README.md b/client-sdks/platform/typescript/docs/sdks/managers/README.md index 8bfe2a424..6de5c4112 100644 --- a/client-sdks/platform/typescript/docs/sdks/managers/README.md +++ b/client-sdks/platform/typescript/docs/sdks/managers/README.md @@ -18,6 +18,7 @@ * [update](#update) - Update a manager to a specific release ID or active release. * [listEvents](#listevents) - Retrieve all events of a manager. * [generateManagerToken](#generatemanagertoken) - Generate a short-lived JWT for direct browser → manager communication. Used for fetching command payloads and querying logs without routing sensitive data through the platform API. +* [generateManagerBindingToken](#generatemanagerbindingtoken) - Generate a short-lived deployment-scoped token for resolving opted-in remote bindings through the currently assigned manager. * [resolveGcpOAuthProvider](#resolvegcpoauthprovider) - Resolve decrypted project-level Google Cloud OAuth provider settings for a manager-side deployment bootstrap. * [reportHeartbeat](#reportheartbeat) - Report Manager health status and metrics. * [getDeployment](#getdeployment) - Get deployment details for a private manager (internal deployment platform, status, resources). @@ -1109,6 +1110,89 @@ run(); | errors.APIError | 500 | application/json | | errors.AlienDefaultError | 4XX, 5XX | \*/\* | +## generateManagerBindingToken + +Generate a short-lived deployment-scoped token for resolving opted-in remote bindings through the currently assigned manager. + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.managers.generateManagerBindingToken({ + id: "mgr_enxscjrqiiu2lrc672hwwuc5", + workspace: "my-workspace", + generateManagerBindingTokenRequest: { + deploymentId: "dep_0c29fq4a2yjb7kx3smwdgxlc", + }, + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { managersGenerateManagerBindingToken } from "@alienplatform/platform-api/funcs/managersGenerateManagerBindingToken.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await managersGenerateManagerBindingToken(alien, { + id: "mgr_enxscjrqiiu2lrc672hwwuc5", + workspace: "my-workspace", + generateManagerBindingTokenRequest: { + deploymentId: "dep_0c29fq4a2yjb7kx3smwdgxlc", + }, + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("managersGenerateManagerBindingToken failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.GenerateManagerBindingTokenRequest](../../models/operations/generatemanagerbindingtokenrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.GenerateManagerBindingTokenResponse](../../models/generatemanagerbindingtokenresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 403, 404 | application/json | +| errors.APIError | 503 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + ## resolveGcpOAuthProvider Resolve decrypted project-level Google Cloud OAuth provider settings for a manager-side deployment bootstrap. diff --git a/client-sdks/platform/typescript/docs/sdks/projects/README.md b/client-sdks/platform/typescript/docs/sdks/projects/README.md index c1fddb188..fbf131fa7 100644 --- a/client-sdks/platform/typescript/docs/sdks/projects/README.md +++ b/client-sdks/platform/typescript/docs/sdks/projects/README.md @@ -15,7 +15,7 @@ * [createFromTemplate](#createfromtemplate) - Create a project by forking alienplatform/alien into your namespace, then configuring GitHub Actions. * [getTemplateUrls](#gettemplateurls) - Get template URLs for deploying setup stacks in this project. * [getDeploymentLinkSetup](#getdeploymentlinksetup) - Get the active release stack and portal-visible setup availability for deployment-link configuration. -* [getActiveRelease](#getactiverelease) - Get the active release for this project. Returns the latest release, or the pinned release if deploymentId is provided and that deployment has a pinned release. +* [getActiveRelease](#getactiverelease) - Get the production channel's current release. When deploymentId is provided, returns that deployment's effective release: its pin, or its followed channel's current release. ## list @@ -901,7 +901,7 @@ run(); ## getActiveRelease -Get the active release for this project. Returns the latest release, or the pinned release if deploymentId is provided and that deployment has a pinned release. +Get the production channel's current release. When deploymentId is provided, returns that deployment's effective release: its pin, or its followed channel's current release. ### Example Usage diff --git a/client-sdks/platform/typescript/docs/sdks/releasechannels/README.md b/client-sdks/platform/typescript/docs/sdks/releasechannels/README.md new file mode 100644 index 000000000..c3c630fc9 --- /dev/null +++ b/client-sdks/platform/typescript/docs/sdks/releasechannels/README.md @@ -0,0 +1,241 @@ +# ReleaseChannels + +## Overview + +### Available Operations + +* [list](#list) +* [create](#create) +* [delete](#delete) + +## list + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.releaseChannels.list({ + workspace: "my-workspace", + project: "my-project", + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { releaseChannelsList } from "@alienplatform/platform-api/funcs/releaseChannelsList.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await releaseChannelsList(alien, { + workspace: "my-workspace", + project: "my-project", + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("releaseChannelsList failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.ListReleaseChannelsRequest](../../models/operations/listreleasechannelsrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.ListReleaseChannelsResponse](../../models/operations/listreleasechannelsresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 404 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + +## create + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.releaseChannels.create({ + workspace: "my-workspace", + project: "my-project", + requestBody: { + name: "", + releaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", + }, + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { releaseChannelsCreate } from "@alienplatform/platform-api/funcs/releaseChannelsCreate.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await releaseChannelsCreate(alien, { + workspace: "my-workspace", + project: "my-project", + requestBody: { + name: "", + releaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", + }, + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("releaseChannelsCreate failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.CreateReleaseChannelRequest](../../models/operations/createreleasechannelrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.ReleaseChannel](../../models/releasechannel.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 400, 404 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + +## delete + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + await alien.releaseChannels.delete({ + name: "", + workspace: "my-workspace", + project: "my-project", + }); + + +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { releaseChannelsDelete } from "@alienplatform/platform-api/funcs/releaseChannelsDelete.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await releaseChannelsDelete(alien, { + name: "", + workspace: "my-workspace", + project: "my-project", + }); + if (res.ok) { + const { value: result } = res; + + } else { + console.log("releaseChannelsDelete failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.DeleteReleaseChannelRequest](../../models/operations/deletereleasechannelrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 400, 404, 409 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/sdks/releases/README.md b/client-sdks/platform/typescript/docs/sdks/releases/README.md index c9dde0507..824eac8f9 100644 --- a/client-sdks/platform/typescript/docs/sdks/releases/README.md +++ b/client-sdks/platform/typescript/docs/sdks/releases/README.md @@ -9,6 +9,8 @@ * [listBranches](#listbranches) - List distinct git branches across releases. Used for filter dropdowns. * [listAuthors](#listauthors) - List distinct commit authors across releases. Used for filter dropdowns. * [get](#get) - Retrieve a release by ID. +* [listDeployments](#listdeployments) - List the project's deployments with their rollout state relative to this release. +* [promote](#promote) ## list @@ -418,4 +420,165 @@ run(); | ------------------------ | ------------------------ | ------------------------ | | errors.APIError | 404 | application/json | | errors.APIError | 500 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + +## listDeployments + +List the project's deployments with their rollout state relative to this release. + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.releases.listDeployments({ + id: "rel_WbhQgksrawSKIpEN0NAssHX9", + workspace: "my-workspace", + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { releasesListDeployments } from "@alienplatform/platform-api/funcs/releasesListDeployments.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await releasesListDeployments(alien, { + id: "rel_WbhQgksrawSKIpEN0NAssHX9", + workspace: "my-workspace", + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("releasesListDeployments failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.ListReleaseDeploymentsRequest](../../models/operations/listreleasedeploymentsrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.ReleaseDeploymentsResponse](../../models/releasedeploymentsresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 404 | application/json | +| errors.APIError | 500 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + +## promote + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.releases.promote({ + name: "", + workspace: "my-workspace", + project: "my-project", + requestBody: { + releaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", + expectedReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", + }, + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { releasesPromote } from "@alienplatform/platform-api/funcs/releasesPromote.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await releasesPromote(alien, { + name: "", + workspace: "my-workspace", + project: "my-project", + requestBody: { + releaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", + expectedReleaseId: "rel_WbhQgksrawSKIpEN0NAssHX9", + }, + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("releasesPromote failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.PromoteReleaseRequest](../../models/operations/promotereleaserequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.ReleaseChannel](../../models/releasechannel.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 404, 409 | application/json | | errors.AlienDefaultError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/sdks/slackintegration/README.md b/client-sdks/platform/typescript/docs/sdks/slackintegration/README.md new file mode 100644 index 000000000..320fd7682 --- /dev/null +++ b/client-sdks/platform/typescript/docs/sdks/slackintegration/README.md @@ -0,0 +1,379 @@ +# SlackIntegration + +## Overview + +### Available Operations + +* [installUrl](#installurl) - Generate the Slack OAuth consent URL for this workspace. +* [status](#status) - Return the Slack install for this workspace (if any). +* [listChannels](#listchannels) - List public Slack channels for this workspace's install. Used by the dashboard's notification-channel picker. +* [setNotificationChannel](#setnotificationchannel) - Configure which Slack channel receives ai-agent monitor reports. +* [uninstall](#uninstall) - Uninstall the Slack integration for this workspace. Revokes the bot token at Slack and deletes the row. + +## installUrl + +Generate the Slack OAuth consent URL for this workspace. + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.slackIntegration.installUrl({ + workspace: "my-workspace", + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { slackIntegrationInstallUrl } from "@alienplatform/platform-api/funcs/slackIntegrationInstallUrl.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await slackIntegrationInstallUrl(alien, { + workspace: "my-workspace", + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("slackIntegrationInstallUrl failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.SlackIntegrationInstallUrlRequest](../../models/operations/slackintegrationinstallurlrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.SlackInstallUrlResponse](../../models/slackinstallurlresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 500 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + +## status + +Return the Slack install for this workspace (if any). + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.slackIntegration.status({ + workspace: "my-workspace", + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { slackIntegrationStatus } from "@alienplatform/platform-api/funcs/slackIntegrationStatus.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await slackIntegrationStatus(alien, { + workspace: "my-workspace", + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("slackIntegrationStatus failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.SlackIntegrationStatusRequest](../../models/operations/slackintegrationstatusrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.SlackIntegrationStatus](../../models/slackintegrationstatus.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + +## listChannels + +List public Slack channels for this workspace's install. Used by the dashboard's notification-channel picker. + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.slackIntegration.listChannels({ + workspace: "my-workspace", + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { slackIntegrationListChannels } from "@alienplatform/platform-api/funcs/slackIntegrationListChannels.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await slackIntegrationListChannels(alien, { + workspace: "my-workspace", + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("slackIntegrationListChannels failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.SlackIntegrationChannelsRequest](../../models/operations/slackintegrationchannelsrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.SlackChannelsResponse](../../models/slackchannelsresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 400 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + +## setNotificationChannel + +Configure which Slack channel receives ai-agent monitor reports. + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.slackIntegration.setNotificationChannel({ + workspace: "my-workspace", + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { slackIntegrationSetNotificationChannel } from "@alienplatform/platform-api/funcs/slackIntegrationSetNotificationChannel.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await slackIntegrationSetNotificationChannel(alien, { + workspace: "my-workspace", + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("slackIntegrationSetNotificationChannel failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.SlackIntegrationSetNotificationChannelRequest](../../models/operations/slackintegrationsetnotificationchannelrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.SlackNotificationChannelResponse](../../models/slacknotificationchannelresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 400 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + +## uninstall + +Uninstall the Slack integration for this workspace. Revokes the bot token at Slack and deletes the row. + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + await alien.slackIntegration.uninstall({ + workspace: "my-workspace", + }); + + +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { slackIntegrationUninstall } from "@alienplatform/platform-api/funcs/slackIntegrationUninstall.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await slackIntegrationUninstall(alien, { + workspace: "my-workspace", + }); + if (res.ok) { + const { value: result } = res; + + } else { + console.log("slackIntegrationUninstall failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.SlackIntegrationUninstallRequest](../../models/operations/slackintegrationuninstallrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/client-sdks/platform/typescript/docs/sdks/sync/README.md b/client-sdks/platform/typescript/docs/sdks/sync/README.md index c0377133c..5b1c4b8db 100644 --- a/client-sdks/platform/typescript/docs/sdks/sync/README.md +++ b/client-sdks/platform/typescript/docs/sdks/sync/README.md @@ -8,6 +8,7 @@ * [context](#context) - Get computed deployment state and configuration for a manager-side operation without acquiring the deployment reconciliation lock. * [acquire](#acquire) - Acquire a batch of deployments for processing. Used by Manager to atomically lock deployments matching filters. Each deployment in the batch must be released after processing. * [reconcile](#reconcile) - Reconcile deployment state. Push model requests that include a session verify lock ownership. Pull model state reports are accepted as authz-gated agent progress even when they carry an agent-sync session. Accepts full DeploymentState after step() execution. +* [renew](#renew) * [release](#release) - Release a deployment lock. Must be called after processing an acquired deployment, even if processing failed. This is critical to avoid deadlocks. ## list @@ -202,6 +203,7 @@ async function run() { syncAcquireRequest: { managerId: "mgr_enxscjrqiiu2lrc672hwwuc5", session: "", + requestId: "", deploymentIds: [ "dep_0c29fq4a2yjb7kx3smwdgxlc", ], @@ -235,6 +237,7 @@ async function run() { syncAcquireRequest: { managerId: "mgr_enxscjrqiiu2lrc672hwwuc5", session: "", + requestId: "", deploymentIds: [ "dep_0c29fq4a2yjb7kx3smwdgxlc", ], @@ -364,6 +367,93 @@ run(); | errors.APIError | 500 | application/json | | errors.AlienDefaultError | 4XX, 5XX | \*/\* | +## renew + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.sync.renew({ + workspace: "my-workspace", + syncRenewRequest: { + deploymentId: "dep_0c29fq4a2yjb7kx3smwdgxlc", + deploymentIds: [ + "dep_0c29fq4a2yjb7kx3smwdgxlc", + ], + session: "", + }, + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { syncRenew } from "@alienplatform/platform-api/funcs/syncRenew.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await syncRenew(alien, { + workspace: "my-workspace", + syncRenewRequest: { + deploymentId: "dep_0c29fq4a2yjb7kx3smwdgxlc", + deploymentIds: [ + "dep_0c29fq4a2yjb7kx3smwdgxlc", + ], + session: "", + }, + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("syncRenew failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.SyncRenewRequest](../../models/operations/syncrenewrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[operations.SyncRenewResponse](../../models/operations/syncrenewresponse.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 404, 409 | application/json | +| errors.APIError | 500 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + ## release Release a deployment lock. Must be called after processing an acquired deployment, even if processing failed. This is critical to avoid deadlocks. diff --git a/client-sdks/platform/typescript/docs/sdks/workspaces/README.md b/client-sdks/platform/typescript/docs/sdks/workspaces/README.md index 611010858..ee4ca7811 100644 --- a/client-sdks/platform/typescript/docs/sdks/workspaces/README.md +++ b/client-sdks/platform/typescript/docs/sdks/workspaces/README.md @@ -13,6 +13,8 @@ * [updateMember](#updatemember) - Update a workspace member's role. * [removeMember](#removemember) - Remove a member from a workspace. * [dismissOnboarding](#dismissonboarding) - Mark the Getting Started walkthrough as dismissed for a workspace. The dashboard stops auto-promoting onboarding once this is set; users can still re-enter the walkthrough via the help menu. +* [getSettings](#getsettings) - Read the ai-agent settings for a workspace. Returns defaults (`enabled: true`, `debugPermissionMode: auto`) when the workspace has never customized them. +* [updateSettings](#updatesettings) - Update the ai-agent settings for a workspace. Supports `debugPermissionMode` (`ask` requires human approval on every ai-agent debug command, `auto` runs them without asking) and `enabled` (`false` turns the ai-agent off so incoming triggers are rejected before any session runs). ## list @@ -720,4 +722,156 @@ run(); | ------------------------ | ------------------------ | ------------------------ | | errors.APIError | 404 | application/json | | errors.APIError | 500 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + +## getSettings + +Read the ai-agent settings for a workspace. Returns defaults (`enabled: true`, `debugPermissionMode: auto`) when the workspace has never customized them. + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.workspaces.getSettings({ + id: "ws_It13CUaGEhLLAB87simX0", + workspace: "my-workspace", + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { workspacesGetSettings } from "@alienplatform/platform-api/funcs/workspacesGetSettings.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await workspacesGetSettings(alien, { + id: "ws_It13CUaGEhLLAB87simX0", + workspace: "my-workspace", + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("workspacesGetSettings failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.GetWorkspaceSettingsRequest](../../models/operations/getworkspacesettingsrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.AgentSettings](../../models/agentsettings.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 404 | application/json | +| errors.AlienDefaultError | 4XX, 5XX | \*/\* | + +## updateSettings + +Update the ai-agent settings for a workspace. Supports `debugPermissionMode` (`ask` requires human approval on every ai-agent debug command, `auto` runs them without asking) and `enabled` (`false` turns the ai-agent off so incoming triggers are rejected before any session runs). + +### Example Usage + + +```typescript +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const result = await alien.workspaces.updateSettings({ + id: "ws_It13CUaGEhLLAB87simX0", + workspace: "my-workspace", + }); + + console.log(result); +} + +run(); +``` + +### Standalone function + +The standalone function version of this method: + +```typescript +import { AlienCore } from "@alienplatform/platform-api/core.js"; +import { workspacesUpdateSettings } from "@alienplatform/platform-api/funcs/workspacesUpdateSettings.js"; + +// Use `AlienCore` for best tree-shaking performance. +// You can create one instance of it to use across an application. +const alien = new AlienCore({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function run() { + const res = await workspacesUpdateSettings(alien, { + id: "ws_It13CUaGEhLLAB87simX0", + workspace: "my-workspace", + }); + if (res.ok) { + const { value: result } = res; + console.log(result); + } else { + console.log("workspacesUpdateSettings failed:", res.error); + } +} + +run(); +``` + +### Parameters + +| Parameter | Type | Required | Description | +| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | +| `request` | [operations.UpdateWorkspaceSettingsRequest](../../models/operations/updateworkspacesettingsrequest.md) | :heavy_check_mark: | The request object to use for the request. | +| `options` | RequestOptions | :heavy_minus_sign: | Used to set various options for making HTTP requests. | +| `options.fetchOptions` | [RequestInit](https://developer.mozilla.org/en-US/docs/Web/API/Request/Request#options) | :heavy_minus_sign: | Options that are passed to the underlying HTTP request. This can be used to inject extra headers for examples. All `Request` options, except `method` and `body`, are allowed. | +| `options.retries` | [RetryConfig](../../lib/utils/retryconfig.md) | :heavy_minus_sign: | Enables retrying HTTP requests under certain failure conditions. | + +### Response + +**Promise\<[models.AgentSettings](../../models/agentsettings.md)\>** + +### Errors + +| Error Type | Status Code | Content Type | +| ------------------------ | ------------------------ | ------------------------ | +| errors.APIError | 404 | application/json | | errors.AlienDefaultError | 4XX, 5XX | \*/\* | \ No newline at end of file diff --git a/client-sdks/platform/typescript/examples/README.md b/client-sdks/platform/typescript/examples/README.md index 881bdabe3..afd231a8f 100644 --- a/client-sdks/platform/typescript/examples/README.md +++ b/client-sdks/platform/typescript/examples/README.md @@ -27,5 +27,3 @@ npm run build && npx tsx example.ts ## Creating new examples Duplicate an existing example file, they won't be overwritten by the generation process. - - diff --git a/client-sdks/platform/typescript/examples/getWorkspaceInvitationPreview.example.ts b/client-sdks/platform/typescript/examples/getWorkspaceInvitationPreview.example.ts new file mode 100644 index 000000000..11c31f8f0 --- /dev/null +++ b/client-sdks/platform/typescript/examples/getWorkspaceInvitationPreview.example.ts @@ -0,0 +1,28 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import dotenv from "dotenv"; +dotenv.config(); +/** + * Example usage of the @alienplatform/platform-api SDK + * + * To run this example from the examples directory: + * npm run build && npx tsx getWorkspaceInvitationPreview.example.ts + */ + +import { Alien } from "@alienplatform/platform-api"; + +const alien = new Alien({ + apiKey: process.env["ALIEN_API_KEY"] ?? "", +}); + +async function main() { + const result = await alien.getWorkspaceInvitationPreview({ + token: "", + }); + + console.log(result); +} + +main().catch(console.error); diff --git a/client-sdks/platform/typescript/examples/userListMemberships.example.ts b/client-sdks/platform/typescript/examples/userListMemberships.example.ts deleted file mode 100644 index dc513216f..000000000 --- a/client-sdks/platform/typescript/examples/userListMemberships.example.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. - */ - -import dotenv from "dotenv"; -dotenv.config(); -/** - * Example usage of the @alienplatform/platform-api SDK - * - * To run this example from the examples directory: - * npm run build && npx tsx userListMemberships.example.ts - */ - -import { Alien } from "@alienplatform/platform-api"; - -const alien = new Alien({ - apiKey: process.env["ALIEN_API_KEY"] ?? "", -}); - -async function main() { - const result = await alien.user.listMemberships(); - - console.log(result); -} - -main().catch(console.error); diff --git a/client-sdks/platform/typescript/package.json b/client-sdks/platform/typescript/package.json index 3800a9a82..5911cbefa 100644 --- a/client-sdks/platform/typescript/package.json +++ b/client-sdks/platform/typescript/package.json @@ -5,9 +5,9 @@ "homepage": "https://alien.dev", "license": "FSL-1.1-Apache-2.0", "repository": { - "directory": "client-sdks/platform/typescript", "type": "git", - "url": "https://github.com/alienplatform/alien.git" + "url": "https://github.com/alienplatform/alien.git", + "directory": "client-sdks/platform/typescript" }, "type": "module", "main": "./esm/index.js", @@ -61,7 +61,7 @@ "devDependencies": { "@eslint/js": "^9.19.0", "eslint": "^9.19.0", - "globals": "^17.0.0", + "globals": "^15.14.0", "typescript": "~5.8.3", "typescript-eslint": "^8.26.0" }, diff --git a/client-sdks/platform/typescript/src/funcs/acceptWorkspaceInvitation.ts b/client-sdks/platform/typescript/src/funcs/acceptWorkspaceInvitation.ts new file mode 100644 index 000000000..e74b919e0 --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/acceptWorkspaceInvitation.ts @@ -0,0 +1,172 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +export function acceptWorkspaceInvitation( + client: AlienCore, + request: operations.AcceptWorkspaceInvitationRequest, + options?: RequestOptions, +): APIPromise< + Result< + models.AcceptWorkspaceInvitationResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.AcceptWorkspaceInvitationRequest, + options?: RequestOptions, +): Promise< + [ + Result< + models.AcceptWorkspaceInvitationResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.AcceptWorkspaceInvitationRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + token: encodeSimple("token", payload.token, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/user/invitations/{token}/accept")(pathParams); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "acceptWorkspaceInvitation", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + baseURL: options?.serverURL, + path: path, + headers: headers, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "409", "4XX", "500", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + models.AcceptWorkspaceInvitationResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, models.AcceptWorkspaceInvitationResponse$inboundSchema), + M.jsonErr([404, 409], errors.APIError$inboundSchema), + M.jsonErr(500, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/agentSessionsApprove.ts b/client-sdks/platform/typescript/src/funcs/agentSessionsApprove.ts new file mode 100644 index 000000000..f017d5695 --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/agentSessionsApprove.ts @@ -0,0 +1,180 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Approve a halted ai-agent monitor session. Proxies to the ai-agent service, minting a fresh CLI session for the caller so the ai-agent's own auth applies. + */ +export function agentSessionsApprove( + client: AlienCore, + request: operations.ApproveAgentSessionRequest, + options?: RequestOptions, +): APIPromise< + Result< + models.AgentSessionApproveResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.ApproveAgentSessionRequest, + options?: RequestOptions, +): Promise< + [ + Result< + models.AgentSessionApproveResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.ApproveAgentSessionRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + id: encodeSimple("id", payload.id, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/agent-sessions/{id}/approve")(pathParams); + + const query = encodeFormQuery({ + "workspace": payload.workspace, + }); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "approveAgentSession", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + models.AgentSessionApproveResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json([200, 202], models.AgentSessionApproveResponse$inboundSchema), + M.jsonErr(404, errors.APIError$inboundSchema), + M.jsonErr(503, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/agentSessionsEvents.ts b/client-sdks/platform/typescript/src/funcs/agentSessionsEvents.ts new file mode 100644 index 000000000..c6facc8c5 --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/agentSessionsEvents.ts @@ -0,0 +1,181 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Incrementally read a session's event log (steps, tool calls, report deltas, approvals, status transitions). Pass the previous response's `latestSeq` as `after` to fetch only new events. + */ +export function agentSessionsEvents( + client: AlienCore, + request: operations.ListAgentSessionEventsRequest, + options?: RequestOptions, +): APIPromise< + Result< + models.AgentSessionEventsResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.ListAgentSessionEventsRequest, + options?: RequestOptions, +): Promise< + [ + Result< + models.AgentSessionEventsResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.ListAgentSessionEventsRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + id: encodeSimple("id", payload.id, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/agent-sessions/{id}/events")(pathParams); + + const query = encodeFormQuery({ + "after": payload.after, + "limit": payload.limit, + "workspace": payload.workspace, + }); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "listAgentSessionEvents", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "4XX", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + models.AgentSessionEventsResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, models.AgentSessionEventsResponse$inboundSchema), + M.jsonErr(404, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/agentSessionsGet.ts b/client-sdks/platform/typescript/src/funcs/agentSessionsGet.ts new file mode 100644 index 000000000..bd64c55df --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/agentSessionsGet.ts @@ -0,0 +1,178 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Retrieve one ai-agent monitor session by id. + */ +export function agentSessionsGet( + client: AlienCore, + request: operations.GetAgentSessionRequest, + options?: RequestOptions, +): APIPromise< + Result< + models.AgentSessionDetail, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.GetAgentSessionRequest, + options?: RequestOptions, +): Promise< + [ + Result< + models.AgentSessionDetail, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => operations.GetAgentSessionRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + id: encodeSimple("id", payload.id, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/agent-sessions/{id}")(pathParams); + + const query = encodeFormQuery({ + "workspace": payload.workspace, + }); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "getAgentSession", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "4XX", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + models.AgentSessionDetail, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, models.AgentSessionDetail$inboundSchema), + M.jsonErr(404, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/agentSessionsList.ts b/client-sdks/platform/typescript/src/funcs/agentSessionsList.ts new file mode 100644 index 000000000..332e6e278 --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/agentSessionsList.ts @@ -0,0 +1,165 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * List ai-agent monitor sessions for this workspace. Newest first, capped at 50. + */ +export function agentSessionsList( + client: AlienCore, + request?: operations.ListAgentSessionsRequest | undefined, + options?: RequestOptions, +): APIPromise< + Result< + models.AgentSessionListResponse, + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request?: operations.ListAgentSessionsRequest | undefined, + options?: RequestOptions, +): Promise< + [ + Result< + models.AgentSessionListResponse, + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.ListAgentSessionsRequest$outboundSchema.optional().parse( + value, + ), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const path = pathToFunc("/v1/agent-sessions")(); + + const query = encodeFormQuery({ + "workspace": payload?.workspace, + }); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "listAgentSessions", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["4XX", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const [result] = await M.match< + models.AgentSessionListResponse, + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, models.AgentSessionListResponse$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/agentSessionsStop.ts b/client-sdks/platform/typescript/src/funcs/agentSessionsStop.ts new file mode 100644 index 000000000..2fbd5e3d9 --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/agentSessionsStop.ts @@ -0,0 +1,179 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Stop (cancel) a running, queued, or halted ai-agent monitor session. Proxies to the ai-agent service, minting a fresh CLI session for the caller so the ai-agent's own auth applies. Idempotent — stopping an already-terminal session is a 200 no-op. + */ +export function agentSessionsStop( + client: AlienCore, + request: operations.StopAgentSessionRequest, + options?: RequestOptions, +): APIPromise< + Result< + models.AgentSessionStopResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.StopAgentSessionRequest, + options?: RequestOptions, +): Promise< + [ + Result< + models.AgentSessionStopResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => operations.StopAgentSessionRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + id: encodeSimple("id", payload.id, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/agent-sessions/{id}/stop")(pathParams); + + const query = encodeFormQuery({ + "workspace": payload.workspace, + }); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "stopAgentSession", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + models.AgentSessionStopResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json([200, 202], models.AgentSessionStopResponse$inboundSchema), + M.jsonErr(404, errors.APIError$inboundSchema), + M.jsonErr(503, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/createWorkspaceInvitation.ts b/client-sdks/platform/typescript/src/funcs/createWorkspaceInvitation.ts new file mode 100644 index 000000000..d72c54200 --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/createWorkspaceInvitation.ts @@ -0,0 +1,178 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery, encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +export function createWorkspaceInvitation( + client: AlienCore, + request: operations.CreateWorkspaceInvitationRequest, + options?: RequestOptions, +): APIPromise< + Result< + models.WorkspaceInvitation, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.CreateWorkspaceInvitationRequest, + options?: RequestOptions, +): Promise< + [ + Result< + models.WorkspaceInvitation, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.CreateWorkspaceInvitationRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.RequestBody, { explode: true }); + + const pathParams = { + id: encodeSimple("id", payload.id, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/workspaces/{id}/invitations")(pathParams); + + const query = encodeFormQuery({ + "workspace": payload.workspace, + }); + + const headers = new Headers(compactMap({ + "Content-Type": "application/json", + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "createWorkspaceInvitation", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["403", "404", "409", "4XX", "500", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + models.WorkspaceInvitation, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(201, models.WorkspaceInvitation$inboundSchema), + M.jsonErr([403, 404, 409], errors.APIError$inboundSchema), + M.jsonErr(500, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/createWorkspaceInviteLink.ts b/client-sdks/platform/typescript/src/funcs/createWorkspaceInviteLink.ts new file mode 100644 index 000000000..bb475ffb5 --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/createWorkspaceInviteLink.ts @@ -0,0 +1,178 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery, encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +export function createWorkspaceInviteLink( + client: AlienCore, + request: operations.CreateWorkspaceInviteLinkRequest, + options?: RequestOptions, +): APIPromise< + Result< + models.WorkspaceInviteLink, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.CreateWorkspaceInviteLinkRequest, + options?: RequestOptions, +): Promise< + [ + Result< + models.WorkspaceInviteLink, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.CreateWorkspaceInviteLinkRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.RequestBody, { explode: true }); + + const pathParams = { + id: encodeSimple("id", payload.id, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/workspaces/{id}/invite-link")(pathParams); + + const query = encodeFormQuery({ + "workspace": payload.workspace, + }); + + const headers = new Headers(compactMap({ + "Content-Type": "application/json", + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "createWorkspaceInviteLink", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PUT", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "4XX", "500", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + models.WorkspaceInviteLink, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, models.WorkspaceInviteLink$inboundSchema), + M.jsonErr(404, errors.APIError$inboundSchema), + M.jsonErr(500, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/deploymentGroupsCreateDeploymentGroupToken.ts b/client-sdks/platform/typescript/src/funcs/deploymentGroupsCreateDeploymentGroupToken.ts index c7967960a..195de6bfb 100644 --- a/client-sdks/platform/typescript/src/funcs/deploymentGroupsCreateDeploymentGroupToken.ts +++ b/client-sdks/platform/typescript/src/funcs/deploymentGroupsCreateDeploymentGroupToken.ts @@ -147,7 +147,7 @@ async function $do( const doResult = await client._do(req, { context, - errorCodes: ["404", "4XX", "500", "5XX"], + errorCodes: ["400", "404", "4XX", "500", "5XX"], retryConfig: context.retryConfig, retryCodes: context.retryCodes, }); @@ -173,7 +173,7 @@ async function $do( | SDKValidationError >( M.json(200, models.CreateDeploymentGroupTokenResponse$inboundSchema), - M.jsonErr(404, errors.APIError$inboundSchema), + M.jsonErr([400, 404], errors.APIError$inboundSchema), M.jsonErr(500, errors.APIError$inboundSchema), M.fail("4XX"), M.fail("5XX"), diff --git a/client-sdks/platform/typescript/src/funcs/deploymentGroupsEnsureDeploymentGroupByExternalId.ts b/client-sdks/platform/typescript/src/funcs/deploymentGroupsEnsureDeploymentGroupByExternalId.ts new file mode 100644 index 000000000..e1f4eb9d5 --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/deploymentGroupsEnsureDeploymentGroupByExternalId.ts @@ -0,0 +1,180 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery, encodeJSON } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Get or create a deployment group by project and external ID + */ +export function deploymentGroupsEnsureDeploymentGroupByExternalId( + client: AlienCore, + request: operations.EnsureDeploymentGroupByExternalIdRequest, + options?: RequestOptions, +): APIPromise< + Result< + models.DeploymentGroup, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.EnsureDeploymentGroupByExternalIdRequest, + options?: RequestOptions, +): Promise< + [ + Result< + models.DeploymentGroup, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.EnsureDeploymentGroupByExternalIdRequest$outboundSchema.parse( + value, + ), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = encodeJSON( + "body", + payload.EnsureDeploymentGroupByExternalIdRequest, + { explode: true }, + ); + + const path = pathToFunc("/v1/deployment-groups/by-external-id")(); + + const query = encodeFormQuery({ + "workspace": payload.workspace, + }); + + const headers = new Headers(compactMap({ + "Content-Type": "application/json", + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "ensureDeploymentGroupByExternalId", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PUT", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "409", "4XX", "500", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + models.DeploymentGroup, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, models.DeploymentGroup$inboundSchema), + M.jsonErr([404, 409], errors.APIError$inboundSchema), + M.jsonErr(500, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/deploymentGroupsGetDeploymentGroupByExternalId.ts b/client-sdks/platform/typescript/src/funcs/deploymentGroupsGetDeploymentGroupByExternalId.ts new file mode 100644 index 000000000..ba2a70958 --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/deploymentGroupsGetDeploymentGroupByExternalId.ts @@ -0,0 +1,177 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Get a deployment group by project and external ID + */ +export function deploymentGroupsGetDeploymentGroupByExternalId( + client: AlienCore, + request: operations.GetDeploymentGroupByExternalIdRequest, + options?: RequestOptions, +): APIPromise< + Result< + models.DeploymentGroup, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.GetDeploymentGroupByExternalIdRequest, + options?: RequestOptions, +): Promise< + [ + Result< + models.DeploymentGroup, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.GetDeploymentGroupByExternalIdRequest$outboundSchema.parse( + value, + ), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const path = pathToFunc("/v1/deployment-groups/by-external-id")(); + + const query = encodeFormQuery({ + "externalId": payload.externalId, + "project": payload.project, + "workspace": payload.workspace, + }); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "getDeploymentGroupByExternalId", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "4XX", "500", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + models.DeploymentGroup, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, models.DeploymentGroup$inboundSchema), + M.jsonErr(404, errors.APIError$inboundSchema), + M.jsonErr(500, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/deploymentGroupsSetDeploymentGroupExternalId.ts b/client-sdks/platform/typescript/src/funcs/deploymentGroupsSetDeploymentGroupExternalId.ts new file mode 100644 index 000000000..da2e525d0 --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/deploymentGroupsSetDeploymentGroupExternalId.ts @@ -0,0 +1,185 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery, encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Set or clear a deployment group's external ID + */ +export function deploymentGroupsSetDeploymentGroupExternalId( + client: AlienCore, + request: operations.SetDeploymentGroupExternalIdRequest, + options?: RequestOptions, +): APIPromise< + Result< + models.DeploymentGroup, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.SetDeploymentGroupExternalIdRequest, + options?: RequestOptions, +): Promise< + [ + Result< + models.DeploymentGroup, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.SetDeploymentGroupExternalIdRequest$outboundSchema.parse( + value, + ), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.SetDeploymentGroupExternalIdRequest, { + explode: true, + }); + + const pathParams = { + id: encodeSimple("id", payload.id, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/deployment-groups/{id}/external-id")(pathParams); + + const query = encodeFormQuery({ + "workspace": payload.workspace, + }); + + const headers = new Headers(compactMap({ + "Content-Type": "application/json", + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "setDeploymentGroupExternalId", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PUT", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "409", "4XX", "500", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + models.DeploymentGroup, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, models.DeploymentGroup$inboundSchema), + M.jsonErr([404, 409], errors.APIError$inboundSchema), + M.jsonErr(500, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/deploymentsSetReleaseChannel.ts b/client-sdks/platform/typescript/src/funcs/deploymentsSetReleaseChannel.ts new file mode 100644 index 000000000..29cd7d2c1 --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/deploymentsSetReleaseChannel.ts @@ -0,0 +1,177 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery, encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +export function deploymentsSetReleaseChannel( + client: AlienCore, + request: operations.SetDeploymentReleaseChannelRequest, + options?: RequestOptions, +): APIPromise< + Result< + models.Deployment, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.SetDeploymentReleaseChannelRequest, + options?: RequestOptions, +): Promise< + [ + Result< + models.Deployment, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.SetDeploymentReleaseChannelRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.RequestBody, { explode: true }); + + const pathParams = { + id: encodeSimple("id", payload.id, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/deployments/{id}/release-channel")(pathParams); + + const query = encodeFormQuery({ + "workspace": payload.workspace, + }); + + const headers = new Headers(compactMap({ + "Content-Type": "application/json", + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "setDeploymentReleaseChannel", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["400", "404", "4XX", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + models.Deployment, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, models.Deployment$inboundSchema), + M.jsonErr([400, 404], errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/eventsList.ts b/client-sdks/platform/typescript/src/funcs/eventsList.ts index 9eb623291..cff4a709c 100644 --- a/client-sdks/platform/typescript/src/funcs/eventsList.ts +++ b/client-sdks/platform/typescript/src/funcs/eventsList.ts @@ -91,8 +91,10 @@ async function $do( const query = encodeFormQuery({ "cursor": payload?.cursor, "deploymentId": payload?.deploymentId, + "include": payload?.include, "limit": payload?.limit, "project": payload?.project, + "releaseId": payload?.releaseId, "workspace": payload?.workspace, }); diff --git a/client-sdks/platform/typescript/src/funcs/getWorkspaceInvitationPreview.ts b/client-sdks/platform/typescript/src/funcs/getWorkspaceInvitationPreview.ts new file mode 100644 index 000000000..2a1e4718c --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/getWorkspaceInvitationPreview.ts @@ -0,0 +1,174 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +export function getWorkspaceInvitationPreview( + client: AlienCore, + request: operations.GetWorkspaceInvitationPreviewRequest, + options?: RequestOptions, +): APIPromise< + Result< + models.WorkspaceInvitationPreview, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.GetWorkspaceInvitationPreviewRequest, + options?: RequestOptions, +): Promise< + [ + Result< + models.WorkspaceInvitationPreview, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.GetWorkspaceInvitationPreviewRequest$outboundSchema.parse( + value, + ), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + token: encodeSimple("token", payload.token, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/invitations/{token}")(pathParams); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "getWorkspaceInvitationPreview", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + baseURL: options?.serverURL, + path: path, + headers: headers, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "4XX", "500", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + models.WorkspaceInvitationPreview, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, models.WorkspaceInvitationPreview$inboundSchema), + M.jsonErr(404, errors.APIError$inboundSchema), + M.jsonErr(500, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/getWorkspaceInviteLink.ts b/client-sdks/platform/typescript/src/funcs/getWorkspaceInviteLink.ts new file mode 100644 index 000000000..8155fe4dd --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/getWorkspaceInviteLink.ts @@ -0,0 +1,177 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +export function getWorkspaceInviteLink( + client: AlienCore, + request: operations.GetWorkspaceInviteLinkRequest, + options?: RequestOptions, +): APIPromise< + Result< + models.WorkspaceInviteLink, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.GetWorkspaceInviteLinkRequest, + options?: RequestOptions, +): Promise< + [ + Result< + models.WorkspaceInviteLink, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.GetWorkspaceInviteLinkRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + id: encodeSimple("id", payload.id, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/workspaces/{id}/invite-link")(pathParams); + + const query = encodeFormQuery({ + "workspace": payload.workspace, + }); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "getWorkspaceInviteLink", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "4XX", "500", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + models.WorkspaceInviteLink, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, models.WorkspaceInviteLink$inboundSchema), + M.jsonErr(404, errors.APIError$inboundSchema), + M.jsonErr(500, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/listWorkspaceInvitations.ts b/client-sdks/platform/typescript/src/funcs/listWorkspaceInvitations.ts new file mode 100644 index 000000000..b81150c3b --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/listWorkspaceInvitations.ts @@ -0,0 +1,176 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +export function listWorkspaceInvitations( + client: AlienCore, + request: operations.ListWorkspaceInvitationsRequest, + options?: RequestOptions, +): APIPromise< + Result< + operations.ListWorkspaceInvitationsResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.ListWorkspaceInvitationsRequest, + options?: RequestOptions, +): Promise< + [ + Result< + operations.ListWorkspaceInvitationsResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.ListWorkspaceInvitationsRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + id: encodeSimple("id", payload.id, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/workspaces/{id}/invitations")(pathParams); + + const query = encodeFormQuery({ + "workspace": payload.workspace, + }); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "listWorkspaceInvitations", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "4XX", "500", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.ListWorkspaceInvitationsResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, operations.ListWorkspaceInvitationsResponse$inboundSchema), + M.jsonErr(404, errors.APIError$inboundSchema), + M.jsonErr(500, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/managersGenerateManagerBindingToken.ts b/client-sdks/platform/typescript/src/funcs/managersGenerateManagerBindingToken.ts new file mode 100644 index 000000000..b4175bf76 --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/managersGenerateManagerBindingToken.ts @@ -0,0 +1,183 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery, encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Generate a short-lived deployment-scoped token for resolving opted-in remote bindings through the currently assigned manager. + */ +export function managersGenerateManagerBindingToken( + client: AlienCore, + request: operations.GenerateManagerBindingTokenRequest, + options?: RequestOptions, +): APIPromise< + Result< + models.GenerateManagerBindingTokenResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.GenerateManagerBindingTokenRequest, + options?: RequestOptions, +): Promise< + [ + Result< + models.GenerateManagerBindingTokenResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.GenerateManagerBindingTokenRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.GenerateManagerBindingTokenRequest, { + explode: true, + }); + + const pathParams = { + id: encodeSimple("id", payload.id, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/managers/{id}/binding-token")(pathParams); + + const query = encodeFormQuery({ + "workspace": payload.workspace, + }); + + const headers = new Headers(compactMap({ + "Content-Type": "application/json", + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "generateManagerBindingToken", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["403", "404", "4XX", "503", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + models.GenerateManagerBindingTokenResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, models.GenerateManagerBindingTokenResponse$inboundSchema), + M.jsonErr([403, 404], errors.APIError$inboundSchema), + M.jsonErr(503, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/projectsGetActiveRelease.ts b/client-sdks/platform/typescript/src/funcs/projectsGetActiveRelease.ts index ead8e6b01..778753685 100644 --- a/client-sdks/platform/typescript/src/funcs/projectsGetActiveRelease.ts +++ b/client-sdks/platform/typescript/src/funcs/projectsGetActiveRelease.ts @@ -27,7 +27,7 @@ import { APICall, APIPromise } from "../types/async.js"; import { Result } from "../types/fp.js"; /** - * Get the active release for this project. Returns the latest release, or the pinned release if deploymentId is provided and that deployment has a pinned release. + * Get the production channel's current release. When deploymentId is provided, returns that deployment's effective release: its pin, or its followed channel's current release. */ export function projectsGetActiveRelease( client: AlienCore, diff --git a/client-sdks/platform/typescript/src/funcs/releaseChannelsCreate.ts b/client-sdks/platform/typescript/src/funcs/releaseChannelsCreate.ts new file mode 100644 index 000000000..383ea9548 --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/releaseChannelsCreate.ts @@ -0,0 +1,171 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery, encodeJSON } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +export function releaseChannelsCreate( + client: AlienCore, + request: operations.CreateReleaseChannelRequest, + options?: RequestOptions, +): APIPromise< + Result< + models.ReleaseChannel, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.CreateReleaseChannelRequest, + options?: RequestOptions, +): Promise< + [ + Result< + models.ReleaseChannel, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.CreateReleaseChannelRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.RequestBody, { explode: true }); + + const path = pathToFunc("/v1/release-channels")(); + + const query = encodeFormQuery({ + "project": payload.project, + "workspace": payload.workspace, + }); + + const headers = new Headers(compactMap({ + "Content-Type": "application/json", + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "createReleaseChannel", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["400", "404", "4XX", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + models.ReleaseChannel, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(201, models.ReleaseChannel$inboundSchema), + M.jsonErr([400, 404], errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/releaseChannelsDelete.ts b/client-sdks/platform/typescript/src/funcs/releaseChannelsDelete.ts new file mode 100644 index 000000000..37dcdd70d --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/releaseChannelsDelete.ts @@ -0,0 +1,177 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { AlienCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +export function releaseChannelsDelete( + client: AlienCore, + request: operations.DeleteReleaseChannelRequest, + options?: RequestOptions, +): APIPromise< + Result< + void, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.DeleteReleaseChannelRequest, + options?: RequestOptions, +): Promise< + [ + Result< + void, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.DeleteReleaseChannelRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + name: encodeSimple("name", payload.name, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/release-channels/{name}")(pathParams); + + const query = encodeFormQuery({ + "project": payload.project, + "workspace": payload.workspace, + }); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "deleteReleaseChannel", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "DELETE", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["400", "404", "409", "4XX", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + void, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.nil(204, z.void()), + M.jsonErr([400, 404, 409], errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/releaseChannelsList.ts b/client-sdks/platform/typescript/src/funcs/releaseChannelsList.ts new file mode 100644 index 000000000..b79015d2a --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/releaseChannelsList.ts @@ -0,0 +1,169 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +export function releaseChannelsList( + client: AlienCore, + request: operations.ListReleaseChannelsRequest, + options?: RequestOptions, +): APIPromise< + Result< + operations.ListReleaseChannelsResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.ListReleaseChannelsRequest, + options?: RequestOptions, +): Promise< + [ + Result< + operations.ListReleaseChannelsResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.ListReleaseChannelsRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const path = pathToFunc("/v1/release-channels")(); + + const query = encodeFormQuery({ + "project": payload.project, + "workspace": payload.workspace, + }); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "listReleaseChannels", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "4XX", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.ListReleaseChannelsResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, operations.ListReleaseChannelsResponse$inboundSchema), + M.jsonErr(404, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/releasesList.ts b/client-sdks/platform/typescript/src/funcs/releasesList.ts index 945fb175c..99c98bd89 100644 --- a/client-sdks/platform/typescript/src/funcs/releasesList.ts +++ b/client-sdks/platform/typescript/src/funcs/releasesList.ts @@ -89,8 +89,10 @@ async function $do( const path = pathToFunc("/v1/releases")(); const query = encodeFormQuery({ + "allChannels": payload?.allChannels, "author": payload?.author, "branch": payload?.branch, + "channel": payload?.channel, "createdAfter": payload?.createdAfter, "createdBefore": payload?.createdBefore, "cursor": payload?.cursor, diff --git a/client-sdks/platform/typescript/src/funcs/releasesListDeployments.ts b/client-sdks/platform/typescript/src/funcs/releasesListDeployments.ts new file mode 100644 index 000000000..249b7f105 --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/releasesListDeployments.ts @@ -0,0 +1,184 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * List the project's deployments with their rollout state relative to this release. + */ +export function releasesListDeployments( + client: AlienCore, + request: operations.ListReleaseDeploymentsRequest, + options?: RequestOptions, +): APIPromise< + Result< + models.ReleaseDeploymentsResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.ListReleaseDeploymentsRequest, + options?: RequestOptions, +): Promise< + [ + Result< + models.ReleaseDeploymentsResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.ListReleaseDeploymentsRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + id: encodeSimple("id", payload.id, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/releases/{id}/deployments")(pathParams); + + const query = encodeFormQuery({ + "cursor": payload.cursor, + "deploymentGroup": payload.deploymentGroup, + "limit": payload.limit, + "state": payload.state, + "workspace": payload.workspace, + }); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "listReleaseDeployments", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "4XX", "500", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + models.ReleaseDeploymentsResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, models.ReleaseDeploymentsResponse$inboundSchema), + M.jsonErr(404, errors.APIError$inboundSchema), + M.jsonErr(500, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/releasesPromote.ts b/client-sdks/platform/typescript/src/funcs/releasesPromote.ts new file mode 100644 index 000000000..666313241 --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/releasesPromote.ts @@ -0,0 +1,177 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery, encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +export function releasesPromote( + client: AlienCore, + request: operations.PromoteReleaseRequest, + options?: RequestOptions, +): APIPromise< + Result< + models.ReleaseChannel, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.PromoteReleaseRequest, + options?: RequestOptions, +): Promise< + [ + Result< + models.ReleaseChannel, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => operations.PromoteReleaseRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.RequestBody, { explode: true }); + + const pathParams = { + name: encodeSimple("name", payload.name, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/release-channels/{name}/promote")(pathParams); + + const query = encodeFormQuery({ + "project": payload.project, + "workspace": payload.workspace, + }); + + const headers = new Headers(compactMap({ + "Content-Type": "application/json", + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "promoteRelease", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "409", "4XX", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + models.ReleaseChannel, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, models.ReleaseChannel$inboundSchema), + M.jsonErr([404, 409], errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/resendWorkspaceInvitation.ts b/client-sdks/platform/typescript/src/funcs/resendWorkspaceInvitation.ts new file mode 100644 index 000000000..646525687 --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/resendWorkspaceInvitation.ts @@ -0,0 +1,183 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +export function resendWorkspaceInvitation( + client: AlienCore, + request: operations.ResendWorkspaceInvitationRequest, + options?: RequestOptions, +): APIPromise< + Result< + models.WorkspaceInvitation, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.ResendWorkspaceInvitationRequest, + options?: RequestOptions, +): Promise< + [ + Result< + models.WorkspaceInvitation, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.ResendWorkspaceInvitationRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + id: encodeSimple("id", payload.id, { + explode: false, + charEncoding: "percent", + }), + invitationId: encodeSimple("invitationId", payload.invitationId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc( + "/v1/workspaces/{id}/invitations/{invitationId}/resend", + )(pathParams); + + const query = encodeFormQuery({ + "workspace": payload.workspace, + }); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "resendWorkspaceInvitation", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "4XX", "500", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + models.WorkspaceInvitation, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, models.WorkspaceInvitation$inboundSchema), + M.jsonErr(404, errors.APIError$inboundSchema), + M.jsonErr(500, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/revokeWorkspaceInvitation.ts b/client-sdks/platform/typescript/src/funcs/revokeWorkspaceInvitation.ts new file mode 100644 index 000000000..6ef959216 --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/revokeWorkspaceInvitation.ts @@ -0,0 +1,183 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { AlienCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +export function revokeWorkspaceInvitation( + client: AlienCore, + request: operations.RevokeWorkspaceInvitationRequest, + options?: RequestOptions, +): APIPromise< + Result< + void, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.RevokeWorkspaceInvitationRequest, + options?: RequestOptions, +): Promise< + [ + Result< + void, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.RevokeWorkspaceInvitationRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + id: encodeSimple("id", payload.id, { + explode: false, + charEncoding: "percent", + }), + invitationId: encodeSimple("invitationId", payload.invitationId, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/workspaces/{id}/invitations/{invitationId}")( + pathParams, + ); + + const query = encodeFormQuery({ + "workspace": payload.workspace, + }); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "revokeWorkspaceInvitation", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "DELETE", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "4XX", "500", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + void, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.nil(204, z.void()), + M.jsonErr(404, errors.APIError$inboundSchema), + M.jsonErr(500, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/revokeWorkspaceInviteLink.ts b/client-sdks/platform/typescript/src/funcs/revokeWorkspaceInviteLink.ts new file mode 100644 index 000000000..619c078bf --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/revokeWorkspaceInviteLink.ts @@ -0,0 +1,177 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { AlienCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +export function revokeWorkspaceInviteLink( + client: AlienCore, + request: operations.RevokeWorkspaceInviteLinkRequest, + options?: RequestOptions, +): APIPromise< + Result< + void, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.RevokeWorkspaceInviteLinkRequest, + options?: RequestOptions, +): Promise< + [ + Result< + void, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.RevokeWorkspaceInviteLinkRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + id: encodeSimple("id", payload.id, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/workspaces/{id}/invite-link")(pathParams); + + const query = encodeFormQuery({ + "workspace": payload.workspace, + }); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "revokeWorkspaceInviteLink", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "DELETE", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "4XX", "500", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + void, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.nil(204, z.void()), + M.jsonErr(404, errors.APIError$inboundSchema), + M.jsonErr(500, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/slackIntegrationInstallUrl.ts b/client-sdks/platform/typescript/src/funcs/slackIntegrationInstallUrl.ts new file mode 100644 index 000000000..f32f906a8 --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/slackIntegrationInstallUrl.ts @@ -0,0 +1,173 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Generate the Slack OAuth consent URL for this workspace. + */ +export function slackIntegrationInstallUrl( + client: AlienCore, + request?: operations.SlackIntegrationInstallUrlRequest | undefined, + options?: RequestOptions, +): APIPromise< + Result< + models.SlackInstallUrlResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request?: operations.SlackIntegrationInstallUrlRequest | undefined, + options?: RequestOptions, +): Promise< + [ + Result< + models.SlackInstallUrlResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.SlackIntegrationInstallUrlRequest$outboundSchema.optional() + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const path = pathToFunc("/v1/integrations/slack/install-url")(); + + const query = encodeFormQuery({ + "workspace": payload?.workspace, + }); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "slackIntegrationInstallUrl", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["4XX", "500", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + models.SlackInstallUrlResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, models.SlackInstallUrlResponse$inboundSchema), + M.jsonErr(500, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/slackIntegrationListChannels.ts b/client-sdks/platform/typescript/src/funcs/slackIntegrationListChannels.ts new file mode 100644 index 000000000..5709afe3b --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/slackIntegrationListChannels.ts @@ -0,0 +1,173 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * List public Slack channels for this workspace's install. Used by the dashboard's notification-channel picker. + */ +export function slackIntegrationListChannels( + client: AlienCore, + request?: operations.SlackIntegrationChannelsRequest | undefined, + options?: RequestOptions, +): APIPromise< + Result< + models.SlackChannelsResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request?: operations.SlackIntegrationChannelsRequest | undefined, + options?: RequestOptions, +): Promise< + [ + Result< + models.SlackChannelsResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.SlackIntegrationChannelsRequest$outboundSchema.optional() + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const path = pathToFunc("/v1/integrations/slack/channels")(); + + const query = encodeFormQuery({ + "workspace": payload?.workspace, + }); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "slackIntegrationChannels", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["400", "4XX", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + models.SlackChannelsResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, models.SlackChannelsResponse$inboundSchema), + M.jsonErr(400, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/slackIntegrationSetNotificationChannel.ts b/client-sdks/platform/typescript/src/funcs/slackIntegrationSetNotificationChannel.ts new file mode 100644 index 000000000..2e403c7af --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/slackIntegrationSetNotificationChannel.ts @@ -0,0 +1,180 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery, encodeJSON } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Configure which Slack channel receives ai-agent monitor reports. + */ +export function slackIntegrationSetNotificationChannel( + client: AlienCore, + request?: + | operations.SlackIntegrationSetNotificationChannelRequest + | undefined, + options?: RequestOptions, +): APIPromise< + Result< + models.SlackNotificationChannelResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request?: + | operations.SlackIntegrationSetNotificationChannelRequest + | undefined, + options?: RequestOptions, +): Promise< + [ + Result< + models.SlackNotificationChannelResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.SlackIntegrationSetNotificationChannelRequest$outboundSchema + .optional().parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = encodeJSON("body", payload?.SlackNotificationChannelRequest, { + explode: true, + }); + + const path = pathToFunc("/v1/integrations/slack/notification-channel")(); + + const query = encodeFormQuery({ + "workspace": payload?.workspace, + }); + + const headers = new Headers(compactMap({ + "Content-Type": "application/json", + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "slackIntegrationSetNotificationChannel", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PUT", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["400", "4XX", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + models.SlackNotificationChannelResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, models.SlackNotificationChannelResponse$inboundSchema), + M.jsonErr(400, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/slackIntegrationStatus.ts b/client-sdks/platform/typescript/src/funcs/slackIntegrationStatus.ts new file mode 100644 index 000000000..bcf1620e7 --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/slackIntegrationStatus.ts @@ -0,0 +1,165 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Return the Slack install for this workspace (if any). + */ +export function slackIntegrationStatus( + client: AlienCore, + request?: operations.SlackIntegrationStatusRequest | undefined, + options?: RequestOptions, +): APIPromise< + Result< + models.SlackIntegrationStatus, + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request?: operations.SlackIntegrationStatusRequest | undefined, + options?: RequestOptions, +): Promise< + [ + Result< + models.SlackIntegrationStatus, + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.SlackIntegrationStatusRequest$outboundSchema.optional().parse( + value, + ), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const path = pathToFunc("/v1/integrations/slack/status")(); + + const query = encodeFormQuery({ + "workspace": payload?.workspace, + }); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "slackIntegrationStatus", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["4XX", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const [result] = await M.match< + models.SlackIntegrationStatus, + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, models.SlackIntegrationStatus$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/slackIntegrationUninstall.ts b/client-sdks/platform/typescript/src/funcs/slackIntegrationUninstall.ts new file mode 100644 index 000000000..ab41fcf3a --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/slackIntegrationUninstall.ts @@ -0,0 +1,164 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { AlienCore } from "../core.js"; +import { encodeFormQuery } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Uninstall the Slack integration for this workspace. Revokes the bot token at Slack and deletes the row. + */ +export function slackIntegrationUninstall( + client: AlienCore, + request?: operations.SlackIntegrationUninstallRequest | undefined, + options?: RequestOptions, +): APIPromise< + Result< + void, + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request?: operations.SlackIntegrationUninstallRequest | undefined, + options?: RequestOptions, +): Promise< + [ + Result< + void, + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.SlackIntegrationUninstallRequest$outboundSchema.optional() + .parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const path = pathToFunc("/v1/integrations/slack/installation")(); + + const query = encodeFormQuery({ + "workspace": payload?.workspace, + }); + + const headers = new Headers(compactMap({ + Accept: "*/*", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "slackIntegrationUninstall", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "DELETE", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["4XX", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const [result] = await M.match< + void, + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.nil(204, z.void()), + M.fail("4XX"), + M.fail("5XX"), + )(response, req); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/syncRenew.ts b/client-sdks/platform/typescript/src/funcs/syncRenew.ts new file mode 100644 index 000000000..4c03cbc91 --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/syncRenew.ts @@ -0,0 +1,169 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery, encodeJSON } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +export function syncRenew( + client: AlienCore, + request: operations.SyncRenewRequest, + options?: RequestOptions, +): APIPromise< + Result< + operations.SyncRenewResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.SyncRenewRequest, + options?: RequestOptions, +): Promise< + [ + Result< + operations.SyncRenewResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => operations.SyncRenewRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.SyncRenewRequest, { explode: true }); + + const path = pathToFunc("/v1/sync/renew")(); + + const query = encodeFormQuery({ + "workspace": payload.workspace, + }); + + const headers = new Headers(compactMap({ + "Content-Type": "application/json", + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "syncRenew", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "POST", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "409", "4XX", "500", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + operations.SyncRenewResponse, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, operations.SyncRenewResponse$inboundSchema), + M.jsonErr([404, 409], errors.APIError$inboundSchema), + M.jsonErr(500, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/workspacesGetSettings.ts b/client-sdks/platform/typescript/src/funcs/workspacesGetSettings.ts new file mode 100644 index 000000000..0def81be8 --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/workspacesGetSettings.ts @@ -0,0 +1,179 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Read the ai-agent settings for a workspace. Returns defaults (`enabled: true`, `debugPermissionMode: auto`) when the workspace has never customized them. + */ +export function workspacesGetSettings( + client: AlienCore, + request: operations.GetWorkspaceSettingsRequest, + options?: RequestOptions, +): APIPromise< + Result< + models.AgentSettings, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.GetWorkspaceSettingsRequest, + options?: RequestOptions, +): Promise< + [ + Result< + models.AgentSettings, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.GetWorkspaceSettingsRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = null; + + const pathParams = { + id: encodeSimple("id", payload.id, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/workspaces/{id}/settings")(pathParams); + + const query = encodeFormQuery({ + "workspace": payload.workspace, + }); + + const headers = new Headers(compactMap({ + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "getWorkspaceSettings", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "GET", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "4XX", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + models.AgentSettings, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, models.AgentSettings$inboundSchema), + M.jsonErr(404, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/funcs/workspacesUpdateSettings.ts b/client-sdks/platform/typescript/src/funcs/workspacesUpdateSettings.ts new file mode 100644 index 000000000..07cacec65 --- /dev/null +++ b/client-sdks/platform/typescript/src/funcs/workspacesUpdateSettings.ts @@ -0,0 +1,182 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { AlienCore } from "../core.js"; +import { encodeFormQuery, encodeJSON, encodeSimple } from "../lib/encodings.js"; +import * as M from "../lib/matchers.js"; +import { compactMap } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { RequestOptions } from "../lib/sdks.js"; +import { extractSecurity, resolveGlobalSecurity } from "../lib/security.js"; +import { pathToFunc } from "../lib/url.js"; +import { AlienError } from "../models/errors/alienerror.js"; +import { + ConnectionError, + InvalidRequestError, + RequestAbortedError, + RequestTimeoutError, + UnexpectedClientError, +} from "../models/errors/httpclienterrors.js"; +import * as errors from "../models/errors/index.js"; +import { ResponseValidationError } from "../models/errors/responsevalidationerror.js"; +import { SDKValidationError } from "../models/errors/sdkvalidationerror.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { APICall, APIPromise } from "../types/async.js"; +import { Result } from "../types/fp.js"; + +/** + * Update the ai-agent settings for a workspace. Supports `debugPermissionMode` (`ask` requires human approval on every ai-agent debug command, `auto` runs them without asking) and `enabled` (`false` turns the ai-agent off so incoming triggers are rejected before any session runs). + */ +export function workspacesUpdateSettings( + client: AlienCore, + request: operations.UpdateWorkspaceSettingsRequest, + options?: RequestOptions, +): APIPromise< + Result< + models.AgentSettings, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + > +> { + return new APIPromise($do( + client, + request, + options, + )); +} + +async function $do( + client: AlienCore, + request: operations.UpdateWorkspaceSettingsRequest, + options?: RequestOptions, +): Promise< + [ + Result< + models.AgentSettings, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >, + APICall, + ] +> { + const parsed = safeParse( + request, + (value) => + operations.UpdateWorkspaceSettingsRequest$outboundSchema.parse(value), + "Input validation failed", + ); + if (!parsed.ok) { + return [parsed, { status: "invalid" }]; + } + const payload = parsed.value; + const body = encodeJSON("body", payload.UpdateWorkspaceSettingsRequest, { + explode: true, + }); + + const pathParams = { + id: encodeSimple("id", payload.id, { + explode: false, + charEncoding: "percent", + }), + }; + + const path = pathToFunc("/v1/workspaces/{id}/settings")(pathParams); + + const query = encodeFormQuery({ + "workspace": payload.workspace, + }); + + const headers = new Headers(compactMap({ + "Content-Type": "application/json", + Accept: "application/json", + })); + + const secConfig = await extractSecurity(client._options.apiKey); + const securityInput = secConfig == null ? {} : { apiKey: secConfig }; + const requestSecurity = resolveGlobalSecurity(securityInput); + + const context = { + options: client._options, + baseURL: options?.serverURL ?? client._baseURL ?? "", + operationID: "updateWorkspaceSettings", + oAuth2Scopes: null, + + resolvedSecurity: requestSecurity, + + securitySource: client._options.apiKey, + retryConfig: options?.retries + || client._options.retryConfig + || { strategy: "none" }, + retryCodes: options?.retryCodes || ["429", "500", "502", "503", "504"], + }; + + const requestRes = client._createRequest(context, { + security: requestSecurity, + method: "PATCH", + baseURL: options?.serverURL, + path: path, + headers: headers, + query: query, + body: body, + userAgent: client._options.userAgent, + timeoutMs: options?.timeoutMs || client._options.timeoutMs || -1, + }, options); + if (!requestRes.ok) { + return [requestRes, { status: "invalid" }]; + } + const req = requestRes.value; + + const doResult = await client._do(req, { + context, + errorCodes: ["404", "4XX", "5XX"], + retryConfig: context.retryConfig, + retryCodes: context.retryCodes, + }); + if (!doResult.ok) { + return [doResult, { status: "request-error", request: req }]; + } + const response = doResult.value; + + const responseFields = { + HttpMeta: { Response: response, Request: req }, + }; + + const [result] = await M.match< + models.AgentSettings, + | errors.APIError + | AlienError + | ResponseValidationError + | ConnectionError + | RequestAbortedError + | RequestTimeoutError + | InvalidRequestError + | UnexpectedClientError + | SDKValidationError + >( + M.json(200, models.AgentSettings$inboundSchema), + M.jsonErr(404, errors.APIError$inboundSchema), + M.fail("4XX"), + M.fail("5XX"), + )(response, req, { extraFields: responseFields }); + if (!result.ok) { + return [result, { status: "complete", request: req, response }]; + } + + return [result, { status: "complete", request: req, response }]; +} diff --git a/client-sdks/platform/typescript/src/lib/config.ts b/client-sdks/platform/typescript/src/lib/config.ts index ea094ae04..ed650b921 100644 --- a/client-sdks/platform/typescript/src/lib/config.ts +++ b/client-sdks/platform/typescript/src/lib/config.ts @@ -61,8 +61,8 @@ export function serverURLFromOptions(options: SDKOptions): URL | null { export const SDK_METADATA = { language: "typescript", openapiDocVersion: "1.0.0", - sdkVersion: "1.14.3", + sdkVersion: "3.3.11", genVersion: "2.788.15", userAgent: - "speakeasy-sdk/typescript 1.14.3 2.788.15 1.0.0 @alienplatform/platform-api", + "speakeasy-sdk/typescript 3.3.11 2.788.15 1.0.0 @alienplatform/platform-api", } as const; diff --git a/client-sdks/platform/typescript/src/models/acceptworkspaceinvitationresponse.ts b/client-sdks/platform/typescript/src/models/acceptworkspaceinvitationresponse.ts new file mode 100644 index 000000000..f42669be1 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/acceptworkspaceinvitationresponse.ts @@ -0,0 +1,53 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { ClosedEnum } from "../types/enums.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; +import { WorkspaceRole, WorkspaceRole$inboundSchema } from "./workspacerole.js"; + +export const Outcome = { + Joined: "joined", + AlreadyMember: "already-member", +} as const; +export type Outcome = ClosedEnum; + +export type AcceptWorkspaceInvitationResponse = { + outcome: Outcome; + /** + * Unique identifier for the workspace. + */ + workspaceId: string; + workspaceName: string; + /** + * Role for workspace-scoped service accounts + */ + role: WorkspaceRole; +}; + +/** @internal */ +export const Outcome$inboundSchema: z.ZodEnum = z.enum(Outcome); + +/** @internal */ +export const AcceptWorkspaceInvitationResponse$inboundSchema: z.ZodType< + AcceptWorkspaceInvitationResponse, + unknown +> = z.object({ + outcome: Outcome$inboundSchema, + workspaceId: z.string(), + workspaceName: z.string(), + role: WorkspaceRole$inboundSchema, +}); + +export function acceptWorkspaceInvitationResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AcceptWorkspaceInvitationResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AcceptWorkspaceInvitationResponse' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/agentsessionapprovalgrantedevent.ts b/client-sdks/platform/typescript/src/models/agentsessionapprovalgrantedevent.ts new file mode 100644 index 000000000..8700396e5 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/agentsessionapprovalgrantedevent.ts @@ -0,0 +1,84 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { ClosedEnum } from "../types/enums.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export const AgentSessionApprovalGrantedEventSource = { + Dashboard: "dashboard", + Slack: "slack", +} as const; +export type AgentSessionApprovalGrantedEventSource = ClosedEnum< + typeof AgentSessionApprovalGrantedEventSource +>; + +export type AgentSessionApprovalGrantedEventPayload = { + approvalId: string; + approvedByUserId: string; + approvedByName: string | null; + source: AgentSessionApprovalGrantedEventSource; +}; + +export type AgentSessionApprovalGrantedEvent = { + seq: number; + createdAt: string; + type: "approval_granted"; + payload: AgentSessionApprovalGrantedEventPayload; +}; + +/** @internal */ +export const AgentSessionApprovalGrantedEventSource$inboundSchema: z.ZodEnum< + typeof AgentSessionApprovalGrantedEventSource +> = z.enum(AgentSessionApprovalGrantedEventSource); + +/** @internal */ +export const AgentSessionApprovalGrantedEventPayload$inboundSchema: z.ZodType< + AgentSessionApprovalGrantedEventPayload, + unknown +> = z.object({ + approvalId: z.string(), + approvedByUserId: z.string(), + approvedByName: z.nullable(z.string()), + source: AgentSessionApprovalGrantedEventSource$inboundSchema, +}); + +export function agentSessionApprovalGrantedEventPayloadFromJSON( + jsonString: string, +): SafeParseResult< + AgentSessionApprovalGrantedEventPayload, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + AgentSessionApprovalGrantedEventPayload$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'AgentSessionApprovalGrantedEventPayload' from JSON`, + ); +} + +/** @internal */ +export const AgentSessionApprovalGrantedEvent$inboundSchema: z.ZodType< + AgentSessionApprovalGrantedEvent, + unknown +> = z.object({ + seq: z.number(), + createdAt: z.string(), + type: z.literal("approval_granted"), + payload: z.lazy(() => AgentSessionApprovalGrantedEventPayload$inboundSchema), +}); + +export function agentSessionApprovalGrantedEventFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AgentSessionApprovalGrantedEvent$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AgentSessionApprovalGrantedEvent' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/agentsessionapprovalrequestedevent.ts b/client-sdks/platform/typescript/src/models/agentsessionapprovalrequestedevent.ts new file mode 100644 index 000000000..c559cc0f9 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/agentsessionapprovalrequestedevent.ts @@ -0,0 +1,73 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export type AgentSessionApprovalRequestedEventPayload = { + approvalId: string; + toolCallId: string; + toolName: string; + input?: any | null | undefined; +}; + +export type AgentSessionApprovalRequestedEvent = { + seq: number; + createdAt: string; + type: "approval_requested"; + payload: AgentSessionApprovalRequestedEventPayload; +}; + +/** @internal */ +export const AgentSessionApprovalRequestedEventPayload$inboundSchema: z.ZodType< + AgentSessionApprovalRequestedEventPayload, + unknown +> = z.object({ + approvalId: z.string(), + toolCallId: z.string(), + toolName: z.string(), + input: z.nullable(z.any()).optional(), +}); + +export function agentSessionApprovalRequestedEventPayloadFromJSON( + jsonString: string, +): SafeParseResult< + AgentSessionApprovalRequestedEventPayload, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + AgentSessionApprovalRequestedEventPayload$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'AgentSessionApprovalRequestedEventPayload' from JSON`, + ); +} + +/** @internal */ +export const AgentSessionApprovalRequestedEvent$inboundSchema: z.ZodType< + AgentSessionApprovalRequestedEvent, + unknown +> = z.object({ + seq: z.number(), + createdAt: z.string(), + type: z.literal("approval_requested"), + payload: z.lazy(() => + AgentSessionApprovalRequestedEventPayload$inboundSchema + ), +}); + +export function agentSessionApprovalRequestedEventFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + AgentSessionApprovalRequestedEvent$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AgentSessionApprovalRequestedEvent' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/agentsessionapproveresponse.ts b/client-sdks/platform/typescript/src/models/agentsessionapproveresponse.ts new file mode 100644 index 000000000..2f0f7b806 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/agentsessionapproveresponse.ts @@ -0,0 +1,34 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export type AgentSessionApproveResponse = { + jobId: string; + status: string; + resumed: boolean; +}; + +/** @internal */ +export const AgentSessionApproveResponse$inboundSchema: z.ZodType< + AgentSessionApproveResponse, + unknown +> = z.object({ + jobId: z.string(), + status: z.string(), + resumed: z.boolean(), +}); + +export function agentSessionApproveResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AgentSessionApproveResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AgentSessionApproveResponse' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/agentsessiondetail.ts b/client-sdks/platform/typescript/src/models/agentsessiondetail.ts new file mode 100644 index 000000000..0c7f65284 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/agentsessiondetail.ts @@ -0,0 +1,82 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { + AgentSessionSubject, + AgentSessionSubject$inboundSchema, +} from "./agentsessionsubject.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export type PendingApproval = { + approvalId: string; + toolCallId: string; + toolName: string; + input?: any | null | undefined; +}; + +export type AgentSessionDetail = { + id: string; + triggerType: string; + subjectId: string; + subject: AgentSessionSubject; + status: string; + createdAt: string; + updatedAt: string; + resultText: string | null; + toolNames: Array | null; + error: string | null; + pendingApproval: PendingApproval | null; +}; + +/** @internal */ +export const PendingApproval$inboundSchema: z.ZodType< + PendingApproval, + unknown +> = z.object({ + approvalId: z.string(), + toolCallId: z.string(), + toolName: z.string(), + input: z.nullable(z.any()).optional(), +}); + +export function pendingApprovalFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => PendingApproval$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'PendingApproval' from JSON`, + ); +} + +/** @internal */ +export const AgentSessionDetail$inboundSchema: z.ZodType< + AgentSessionDetail, + unknown +> = z.object({ + id: z.string(), + triggerType: z.string(), + subjectId: z.string(), + subject: AgentSessionSubject$inboundSchema, + status: z.string(), + createdAt: z.string(), + updatedAt: z.string(), + resultText: z.nullable(z.string()), + toolNames: z.nullable(z.array(z.string())), + error: z.nullable(z.string()), + pendingApproval: z.nullable(z.lazy(() => PendingApproval$inboundSchema)), +}); + +export function agentSessionDetailFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AgentSessionDetail$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AgentSessionDetail' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/agentsessionevent.ts b/client-sdks/platform/typescript/src/models/agentsessionevent.ts new file mode 100644 index 000000000..2fec5ca6e --- /dev/null +++ b/client-sdks/platform/typescript/src/models/agentsessionevent.ts @@ -0,0 +1,81 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { + AgentSessionApprovalGrantedEvent, + AgentSessionApprovalGrantedEvent$inboundSchema, +} from "./agentsessionapprovalgrantedevent.js"; +import { + AgentSessionApprovalRequestedEvent, + AgentSessionApprovalRequestedEvent$inboundSchema, +} from "./agentsessionapprovalrequestedevent.js"; +import { + AgentSessionEventsTruncatedEvent, + AgentSessionEventsTruncatedEvent$inboundSchema, +} from "./agentsessioneventstruncatedevent.js"; +import { + AgentSessionMarkdownEvent, + AgentSessionMarkdownEvent$inboundSchema, +} from "./agentsessionmarkdownevent.js"; +import { + AgentSessionRestartedEvent, + AgentSessionRestartedEvent$inboundSchema, +} from "./agentsessionrestartedevent.js"; +import { + AgentSessionStatusEvent, + AgentSessionStatusEvent$inboundSchema, +} from "./agentsessionstatusevent.js"; +import { + AgentSessionStepEvent, + AgentSessionStepEvent$inboundSchema, +} from "./agentsessionstepevent.js"; +import { + AgentSessionToolCallEvent, + AgentSessionToolCallEvent$inboundSchema, +} from "./agentsessiontoolcallevent.js"; +import { + AgentSessionToolResultEvent, + AgentSessionToolResultEvent$inboundSchema, +} from "./agentsessiontoolresultevent.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export type AgentSessionEvent = + | AgentSessionStatusEvent + | AgentSessionStepEvent + | AgentSessionToolCallEvent + | AgentSessionToolResultEvent + | AgentSessionMarkdownEvent + | AgentSessionApprovalRequestedEvent + | AgentSessionApprovalGrantedEvent + | AgentSessionRestartedEvent + | AgentSessionEventsTruncatedEvent; + +/** @internal */ +export const AgentSessionEvent$inboundSchema: z.ZodType< + AgentSessionEvent, + unknown +> = z.union([ + AgentSessionStatusEvent$inboundSchema, + AgentSessionStepEvent$inboundSchema, + AgentSessionToolCallEvent$inboundSchema, + AgentSessionToolResultEvent$inboundSchema, + AgentSessionMarkdownEvent$inboundSchema, + AgentSessionApprovalRequestedEvent$inboundSchema, + AgentSessionApprovalGrantedEvent$inboundSchema, + AgentSessionRestartedEvent$inboundSchema, + AgentSessionEventsTruncatedEvent$inboundSchema, +]); + +export function agentSessionEventFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AgentSessionEvent$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AgentSessionEvent' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/agentsessioneventsresponse.ts b/client-sdks/platform/typescript/src/models/agentsessioneventsresponse.ts new file mode 100644 index 000000000..571d7d4da --- /dev/null +++ b/client-sdks/platform/typescript/src/models/agentsessioneventsresponse.ts @@ -0,0 +1,38 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { + AgentSessionEvent, + AgentSessionEvent$inboundSchema, +} from "./agentsessionevent.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export type AgentSessionEventsResponse = { + events: Array; + latestSeq: number; + hasMore: boolean; +}; + +/** @internal */ +export const AgentSessionEventsResponse$inboundSchema: z.ZodType< + AgentSessionEventsResponse, + unknown +> = z.object({ + events: z.array(AgentSessionEvent$inboundSchema), + latestSeq: z.number(), + hasMore: z.boolean(), +}); + +export function agentSessionEventsResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AgentSessionEventsResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AgentSessionEventsResponse' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/agentsessioneventstruncatedevent.ts b/client-sdks/platform/typescript/src/models/agentsessioneventstruncatedevent.ts new file mode 100644 index 000000000..4f4d0238b --- /dev/null +++ b/client-sdks/platform/typescript/src/models/agentsessioneventstruncatedevent.ts @@ -0,0 +1,64 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export type AgentSessionEventsTruncatedEventPayload = { + limit: number; +}; + +export type AgentSessionEventsTruncatedEvent = { + seq: number; + createdAt: string; + type: "events_truncated"; + payload: AgentSessionEventsTruncatedEventPayload; +}; + +/** @internal */ +export const AgentSessionEventsTruncatedEventPayload$inboundSchema: z.ZodType< + AgentSessionEventsTruncatedEventPayload, + unknown +> = z.object({ + limit: z.number(), +}); + +export function agentSessionEventsTruncatedEventPayloadFromJSON( + jsonString: string, +): SafeParseResult< + AgentSessionEventsTruncatedEventPayload, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + AgentSessionEventsTruncatedEventPayload$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'AgentSessionEventsTruncatedEventPayload' from JSON`, + ); +} + +/** @internal */ +export const AgentSessionEventsTruncatedEvent$inboundSchema: z.ZodType< + AgentSessionEventsTruncatedEvent, + unknown +> = z.object({ + seq: z.number(), + createdAt: z.string(), + type: z.literal("events_truncated"), + payload: z.lazy(() => AgentSessionEventsTruncatedEventPayload$inboundSchema), +}); + +export function agentSessionEventsTruncatedEventFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AgentSessionEventsTruncatedEvent$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AgentSessionEventsTruncatedEvent' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/agentsessionlistitem.ts b/client-sdks/platform/typescript/src/models/agentsessionlistitem.ts new file mode 100644 index 000000000..5079f4cc6 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/agentsessionlistitem.ts @@ -0,0 +1,46 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { + AgentSessionSubject, + AgentSessionSubject$inboundSchema, +} from "./agentsessionsubject.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export type AgentSessionListItem = { + id: string; + triggerType: string; + subjectId: string; + subject: AgentSessionSubject; + status: string; + createdAt: string; + updatedAt: string; +}; + +/** @internal */ +export const AgentSessionListItem$inboundSchema: z.ZodType< + AgentSessionListItem, + unknown +> = z.object({ + id: z.string(), + triggerType: z.string(), + subjectId: z.string(), + subject: AgentSessionSubject$inboundSchema, + status: z.string(), + createdAt: z.string(), + updatedAt: z.string(), +}); + +export function agentSessionListItemFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AgentSessionListItem$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AgentSessionListItem' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/agentsessionlistresponse.ts b/client-sdks/platform/typescript/src/models/agentsessionlistresponse.ts new file mode 100644 index 000000000..00594bd94 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/agentsessionlistresponse.ts @@ -0,0 +1,34 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { + AgentSessionListItem, + AgentSessionListItem$inboundSchema, +} from "./agentsessionlistitem.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export type AgentSessionListResponse = { + sessions: Array; +}; + +/** @internal */ +export const AgentSessionListResponse$inboundSchema: z.ZodType< + AgentSessionListResponse, + unknown +> = z.object({ + sessions: z.array(AgentSessionListItem$inboundSchema), +}); + +export function agentSessionListResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AgentSessionListResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AgentSessionListResponse' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/agentsessionmarkdownevent.ts b/client-sdks/platform/typescript/src/models/agentsessionmarkdownevent.ts new file mode 100644 index 000000000..9511f17db --- /dev/null +++ b/client-sdks/platform/typescript/src/models/agentsessionmarkdownevent.ts @@ -0,0 +1,58 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export type AgentSessionMarkdownEventPayload = { + text: string; +}; + +export type AgentSessionMarkdownEvent = { + seq: number; + createdAt: string; + type: "markdown"; + payload: AgentSessionMarkdownEventPayload; +}; + +/** @internal */ +export const AgentSessionMarkdownEventPayload$inboundSchema: z.ZodType< + AgentSessionMarkdownEventPayload, + unknown +> = z.object({ + text: z.string(), +}); + +export function agentSessionMarkdownEventPayloadFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AgentSessionMarkdownEventPayload$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AgentSessionMarkdownEventPayload' from JSON`, + ); +} + +/** @internal */ +export const AgentSessionMarkdownEvent$inboundSchema: z.ZodType< + AgentSessionMarkdownEvent, + unknown +> = z.object({ + seq: z.number(), + createdAt: z.string(), + type: z.literal("markdown"), + payload: z.lazy(() => AgentSessionMarkdownEventPayload$inboundSchema), +}); + +export function agentSessionMarkdownEventFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AgentSessionMarkdownEvent$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AgentSessionMarkdownEvent' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/agentsessionrestartedevent.ts b/client-sdks/platform/typescript/src/models/agentsessionrestartedevent.ts new file mode 100644 index 000000000..c70d9af46 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/agentsessionrestartedevent.ts @@ -0,0 +1,58 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export type AgentSessionRestartedEventPayload = { + reason: string; +}; + +export type AgentSessionRestartedEvent = { + seq: number; + createdAt: string; + type: "session_restarted"; + payload: AgentSessionRestartedEventPayload; +}; + +/** @internal */ +export const AgentSessionRestartedEventPayload$inboundSchema: z.ZodType< + AgentSessionRestartedEventPayload, + unknown +> = z.object({ + reason: z.string(), +}); + +export function agentSessionRestartedEventPayloadFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AgentSessionRestartedEventPayload$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AgentSessionRestartedEventPayload' from JSON`, + ); +} + +/** @internal */ +export const AgentSessionRestartedEvent$inboundSchema: z.ZodType< + AgentSessionRestartedEvent, + unknown +> = z.object({ + seq: z.number(), + createdAt: z.string(), + type: z.literal("session_restarted"), + payload: z.lazy(() => AgentSessionRestartedEventPayload$inboundSchema), +}); + +export function agentSessionRestartedEventFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AgentSessionRestartedEvent$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AgentSessionRestartedEvent' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/agentsessionstatusevent.ts b/client-sdks/platform/typescript/src/models/agentsessionstatusevent.ts new file mode 100644 index 000000000..0e4f018d1 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/agentsessionstatusevent.ts @@ -0,0 +1,60 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export type AgentSessionStatusEventPayload = { + status: string; + error?: string | undefined; +}; + +export type AgentSessionStatusEvent = { + seq: number; + createdAt: string; + type: "status"; + payload: AgentSessionStatusEventPayload; +}; + +/** @internal */ +export const AgentSessionStatusEventPayload$inboundSchema: z.ZodType< + AgentSessionStatusEventPayload, + unknown +> = z.object({ + status: z.string(), + error: z.string().optional(), +}); + +export function agentSessionStatusEventPayloadFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AgentSessionStatusEventPayload$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AgentSessionStatusEventPayload' from JSON`, + ); +} + +/** @internal */ +export const AgentSessionStatusEvent$inboundSchema: z.ZodType< + AgentSessionStatusEvent, + unknown +> = z.object({ + seq: z.number(), + createdAt: z.string(), + type: z.literal("status"), + payload: z.lazy(() => AgentSessionStatusEventPayload$inboundSchema), +}); + +export function agentSessionStatusEventFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AgentSessionStatusEvent$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AgentSessionStatusEvent' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/agentsessionstepevent.ts b/client-sdks/platform/typescript/src/models/agentsessionstepevent.ts new file mode 100644 index 000000000..82d603f64 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/agentsessionstepevent.ts @@ -0,0 +1,77 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { ClosedEnum } from "../types/enums.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export const AgentSessionStepEventStatus = { + InProgress: "in_progress", + Complete: "complete", + Error: "error", +} as const; +export type AgentSessionStepEventStatus = ClosedEnum< + typeof AgentSessionStepEventStatus +>; + +export type AgentSessionStepEventPayload = { + stepId: string; + title: string; + status: AgentSessionStepEventStatus; +}; + +export type AgentSessionStepEvent = { + seq: number; + createdAt: string; + type: "step"; + payload: AgentSessionStepEventPayload; +}; + +/** @internal */ +export const AgentSessionStepEventStatus$inboundSchema: z.ZodEnum< + typeof AgentSessionStepEventStatus +> = z.enum(AgentSessionStepEventStatus); + +/** @internal */ +export const AgentSessionStepEventPayload$inboundSchema: z.ZodType< + AgentSessionStepEventPayload, + unknown +> = z.object({ + stepId: z.string(), + title: z.string(), + status: AgentSessionStepEventStatus$inboundSchema, +}); + +export function agentSessionStepEventPayloadFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AgentSessionStepEventPayload$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AgentSessionStepEventPayload' from JSON`, + ); +} + +/** @internal */ +export const AgentSessionStepEvent$inboundSchema: z.ZodType< + AgentSessionStepEvent, + unknown +> = z.object({ + seq: z.number(), + createdAt: z.string(), + type: z.literal("step"), + payload: z.lazy(() => AgentSessionStepEventPayload$inboundSchema), +}); + +export function agentSessionStepEventFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AgentSessionStepEvent$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AgentSessionStepEvent' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/agentsessionstopresponse.ts b/client-sdks/platform/typescript/src/models/agentsessionstopresponse.ts new file mode 100644 index 000000000..3c798096c --- /dev/null +++ b/client-sdks/platform/typescript/src/models/agentsessionstopresponse.ts @@ -0,0 +1,34 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export type AgentSessionStopResponse = { + jobId: string; + status: string; + canceled: boolean; +}; + +/** @internal */ +export const AgentSessionStopResponse$inboundSchema: z.ZodType< + AgentSessionStopResponse, + unknown +> = z.object({ + jobId: z.string(), + status: z.string(), + canceled: z.boolean(), +}); + +export function agentSessionStopResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AgentSessionStopResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AgentSessionStopResponse' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/agentsessionsubject.ts b/client-sdks/platform/typescript/src/models/agentsessionsubject.ts new file mode 100644 index 000000000..97a291c85 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/agentsessionsubject.ts @@ -0,0 +1,44 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export type AgentSessionSubject = { + deploymentName: string | null; + deploymentGroupId: string | null; + deploymentGroupName: string | null; + releaseId: string | null; + releaseCommitMessage: string | null; + releaseCommitRef: string | null; + projectId: string | null; + projectName: string | null; +}; + +/** @internal */ +export const AgentSessionSubject$inboundSchema: z.ZodType< + AgentSessionSubject, + unknown +> = z.object({ + deploymentName: z.nullable(z.string()), + deploymentGroupId: z.nullable(z.string()), + deploymentGroupName: z.nullable(z.string()), + releaseId: z.nullable(z.string()), + releaseCommitMessage: z.nullable(z.string()), + releaseCommitRef: z.nullable(z.string()), + projectId: z.nullable(z.string()), + projectName: z.nullable(z.string()), +}); + +export function agentSessionSubjectFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AgentSessionSubject$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AgentSessionSubject' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/agentsessiontoolcallevent.ts b/client-sdks/platform/typescript/src/models/agentsessiontoolcallevent.ts new file mode 100644 index 000000000..03352e188 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/agentsessiontoolcallevent.ts @@ -0,0 +1,62 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export type AgentSessionToolCallEventPayload = { + toolCallId: string; + toolName: string; + input?: any | null | undefined; +}; + +export type AgentSessionToolCallEvent = { + seq: number; + createdAt: string; + type: "tool_call"; + payload: AgentSessionToolCallEventPayload; +}; + +/** @internal */ +export const AgentSessionToolCallEventPayload$inboundSchema: z.ZodType< + AgentSessionToolCallEventPayload, + unknown +> = z.object({ + toolCallId: z.string(), + toolName: z.string(), + input: z.nullable(z.any()).optional(), +}); + +export function agentSessionToolCallEventPayloadFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AgentSessionToolCallEventPayload$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AgentSessionToolCallEventPayload' from JSON`, + ); +} + +/** @internal */ +export const AgentSessionToolCallEvent$inboundSchema: z.ZodType< + AgentSessionToolCallEvent, + unknown +> = z.object({ + seq: z.number(), + createdAt: z.string(), + type: z.literal("tool_call"), + payload: z.lazy(() => AgentSessionToolCallEventPayload$inboundSchema), +}); + +export function agentSessionToolCallEventFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AgentSessionToolCallEvent$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AgentSessionToolCallEvent' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/agentsessiontoolresultevent.ts b/client-sdks/platform/typescript/src/models/agentsessiontoolresultevent.ts new file mode 100644 index 000000000..d6ef79069 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/agentsessiontoolresultevent.ts @@ -0,0 +1,65 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export type AgentSessionToolResultEventPayload = { + toolCallId: string | null; + toolName: string | null; + ok: boolean; + output?: any | null | undefined; +}; + +export type AgentSessionToolResultEvent = { + seq: number; + createdAt: string; + type: "tool_result"; + payload: AgentSessionToolResultEventPayload; +}; + +/** @internal */ +export const AgentSessionToolResultEventPayload$inboundSchema: z.ZodType< + AgentSessionToolResultEventPayload, + unknown +> = z.object({ + toolCallId: z.nullable(z.string()), + toolName: z.nullable(z.string()), + ok: z.boolean(), + output: z.nullable(z.any()).optional(), +}); + +export function agentSessionToolResultEventPayloadFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + AgentSessionToolResultEventPayload$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AgentSessionToolResultEventPayload' from JSON`, + ); +} + +/** @internal */ +export const AgentSessionToolResultEvent$inboundSchema: z.ZodType< + AgentSessionToolResultEvent, + unknown +> = z.object({ + seq: z.number(), + createdAt: z.string(), + type: z.literal("tool_result"), + payload: z.lazy(() => AgentSessionToolResultEventPayload$inboundSchema), +}); + +export function agentSessionToolResultEventFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AgentSessionToolResultEvent$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AgentSessionToolResultEvent' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/agentsettings.ts b/client-sdks/platform/typescript/src/models/agentsettings.ts new file mode 100644 index 000000000..a1e393637 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/agentsettings.ts @@ -0,0 +1,65 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { ClosedEnum } from "../types/enums.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +/** + * Workspace-level policy for ai-agent debug commands. `auto` runs `alien_debug` tool calls without asking; `ask` halts each session before every debug command and waits for a human approval from dashboard or Slack. + */ +export const AgentSettingsDebugPermissionMode = { + Auto: "auto", + Ask: "ask", +} as const; +/** + * Workspace-level policy for ai-agent debug commands. `auto` runs `alien_debug` tool calls without asking; `ask` halts each session before every debug command and waits for a human approval from dashboard or Slack. + */ +export type AgentSettingsDebugPermissionMode = ClosedEnum< + typeof AgentSettingsDebugPermissionMode +>; + +export type AgentSettings = { + /** + * Unique identifier for the workspace. + */ + workspaceId: string; + /** + * Workspace on/off switch for the ai-agent. When `false`, incoming triggers (release/deployment monitoring and Slack-invoked sessions) are rejected before any session runs. Defaults to `true`. + */ + enabled: boolean; + /** + * Workspace-level policy for ai-agent debug commands. `auto` runs `alien_debug` tool calls without asking; `ask` halts each session before every debug command and waits for a human approval from dashboard or Slack. + */ + debugPermissionMode: AgentSettingsDebugPermissionMode; + createdAt: Date; + updatedAt: Date; +}; + +/** @internal */ +export const AgentSettingsDebugPermissionMode$inboundSchema: z.ZodEnum< + typeof AgentSettingsDebugPermissionMode +> = z.enum(AgentSettingsDebugPermissionMode); + +/** @internal */ +export const AgentSettings$inboundSchema: z.ZodType = z + .object({ + workspaceId: z.string(), + enabled: z.boolean(), + debugPermissionMode: AgentSettingsDebugPermissionMode$inboundSchema, + createdAt: z.iso.datetime({ offset: true }).transform(v => new Date(v)), + updatedAt: z.iso.datetime({ offset: true }).transform(v => new Date(v)), + }); + +export function agentSettingsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AgentSettings$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AgentSettings' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/createdeploymentgrouprequest.ts b/client-sdks/platform/typescript/src/models/createdeploymentgrouprequest.ts index 7c6b89358..1a4e18dc5 100644 --- a/client-sdks/platform/typescript/src/models/createdeploymentgrouprequest.ts +++ b/client-sdks/platform/typescript/src/models/createdeploymentgrouprequest.ts @@ -9,6 +9,10 @@ export type CreateDeploymentGroupRequest = { * Deployment group name. */ name: string; + /** + * Case-sensitive, URL- and header-safe identifier from the integrating application. + */ + externalId?: string | undefined; /** * Project ID or name this deployment group belongs to */ @@ -22,6 +26,7 @@ export type CreateDeploymentGroupRequest = { /** @internal */ export type CreateDeploymentGroupRequest$Outbound = { name: string; + externalId?: string | undefined; project: string; maxDeployments: number; }; @@ -32,6 +37,7 @@ export const CreateDeploymentGroupRequest$outboundSchema: z.ZodType< CreateDeploymentGroupRequest > = z.object({ name: z.string(), + externalId: z.string().optional(), project: z.string(), maxDeployments: z.int().default(100), }); diff --git a/client-sdks/platform/typescript/src/models/createdeploymenttokenrequest.ts b/client-sdks/platform/typescript/src/models/createdeploymenttokenrequest.ts index a515f8369..f3e3af5d5 100644 --- a/client-sdks/platform/typescript/src/models/createdeploymenttokenrequest.ts +++ b/client-sdks/platform/typescript/src/models/createdeploymenttokenrequest.ts @@ -12,13 +12,13 @@ export type CreateDeploymentTokenRequest = { /** * Optional expiration date for the deployment token */ - expiresAt?: Date | undefined; + expiresAt?: Date | null | undefined; }; /** @internal */ export type CreateDeploymentTokenRequest$Outbound = { description: string | null; - expiresAt?: string | undefined; + expiresAt?: string | null | undefined; }; /** @internal */ @@ -27,7 +27,7 @@ export const CreateDeploymentTokenRequest$outboundSchema: z.ZodType< CreateDeploymentTokenRequest > = z.object({ description: z.nullable(z.string()), - expiresAt: z.date().transform(v => v.toISOString()).optional(), + expiresAt: z.nullable(z.date().transform(v => v.toISOString())).optional(), }); export function createDeploymentTokenRequestToJSON( diff --git a/client-sdks/platform/typescript/src/models/createmanagerresponse.ts b/client-sdks/platform/typescript/src/models/createmanagerresponse.ts index 1dd947f66..aa56f5305 100644 --- a/client-sdks/platform/typescript/src/models/createmanagerresponse.ts +++ b/client-sdks/platform/typescript/src/models/createmanagerresponse.ts @@ -49,7 +49,33 @@ export type CreateManagerResponseSetupConfig = { environmentVariables: Array; }; +/** + * Failure-domain policy selected for a compute pool. + */ +export type CreateManagerResponseFailureDomains6 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type CreateManagerResponseFailureDomainsUnion6 = + | CreateManagerResponseFailureDomains6 + | any; + export type CreateManagerResponsePoolsAutoscale3 = { + failureDomains?: + | CreateManagerResponseFailureDomains6 + | any + | null + | undefined; /** * Provider machine type selected for this deployment. */ @@ -65,7 +91,33 @@ export type CreateManagerResponsePoolsAutoscale3 = { mode: "autoscale"; }; +/** + * Failure-domain policy selected for a compute pool. + */ +export type CreateManagerResponseFailureDomains5 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type CreateManagerResponseFailureDomainsUnion5 = + | CreateManagerResponseFailureDomains5 + | any; + export type CreateManagerResponsePoolsFixed3 = { + failureDomains?: + | CreateManagerResponseFailureDomains5 + | any + | null + | undefined; /** * Provider machine type selected for this deployment. */ @@ -1219,7 +1271,33 @@ export type CreateManagerResponseSetupTerraform = { stackSettings: CreateManagerResponseStackSettings3; }; +/** + * Failure-domain policy selected for a compute pool. + */ +export type CreateManagerResponseFailureDomains4 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type CreateManagerResponseFailureDomainsUnion4 = + | CreateManagerResponseFailureDomains4 + | any; + export type CreateManagerResponsePoolsAutoscale2 = { + failureDomains?: + | CreateManagerResponseFailureDomains4 + | any + | null + | undefined; /** * Provider machine type selected for this deployment. */ @@ -1235,7 +1313,33 @@ export type CreateManagerResponsePoolsAutoscale2 = { mode: "autoscale"; }; +/** + * Failure-domain policy selected for a compute pool. + */ +export type CreateManagerResponseFailureDomains3 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type CreateManagerResponseFailureDomainsUnion3 = + | CreateManagerResponseFailureDomains3 + | any; + export type CreateManagerResponsePoolsFixed2 = { + failureDomains?: + | CreateManagerResponseFailureDomains3 + | any + | null + | undefined; /** * Provider machine type selected for this deployment. */ @@ -2384,7 +2488,33 @@ export type CreateManagerResponseSetupGoogleOauth = { stackSettings: CreateManagerResponseStackSettings2; }; +/** + * Failure-domain policy selected for a compute pool. + */ +export type CreateManagerResponseFailureDomains2 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type CreateManagerResponseFailureDomainsUnion2 = + | CreateManagerResponseFailureDomains2 + | any; + export type CreateManagerResponsePoolsAutoscale1 = { + failureDomains?: + | CreateManagerResponseFailureDomains2 + | any + | null + | undefined; /** * Provider machine type selected for this deployment. */ @@ -2400,7 +2530,33 @@ export type CreateManagerResponsePoolsAutoscale1 = { mode: "autoscale"; }; +/** + * Failure-domain policy selected for a compute pool. + */ +export type CreateManagerResponseFailureDomains1 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type CreateManagerResponseFailureDomainsUnion1 = + | CreateManagerResponseFailureDomains1 + | any; + export type CreateManagerResponsePoolsFixed1 = { + failureDomains?: + | CreateManagerResponseFailureDomains1 + | any + | null + | undefined; /** * Provider machine type selected for this deployment. */ @@ -3630,15 +3786,70 @@ export function createManagerResponseSetupConfigFromJSON( ); } +/** @internal */ +export const CreateManagerResponseFailureDomains6$inboundSchema: z.ZodType< + CreateManagerResponseFailureDomains6, + unknown +> = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), +}); + +export function createManagerResponseFailureDomains6FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + CreateManagerResponseFailureDomains6$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CreateManagerResponseFailureDomains6' from JSON`, + ); +} + +/** @internal */ +export const CreateManagerResponseFailureDomainsUnion6$inboundSchema: z.ZodType< + CreateManagerResponseFailureDomainsUnion6, + unknown +> = z.union([ + z.lazy(() => CreateManagerResponseFailureDomains6$inboundSchema), + z.any(), +]); + +export function createManagerResponseFailureDomainsUnion6FromJSON( + jsonString: string, +): SafeParseResult< + CreateManagerResponseFailureDomainsUnion6, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + CreateManagerResponseFailureDomainsUnion6$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'CreateManagerResponseFailureDomainsUnion6' from JSON`, + ); +} + /** @internal */ export const CreateManagerResponsePoolsAutoscale3$inboundSchema: z.ZodType< CreateManagerResponsePoolsAutoscale3, unknown > = z.object({ + failure_domains: z.nullable( + z.union([ + z.lazy(() => CreateManagerResponseFailureDomains6$inboundSchema), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), max: z.int(), min: z.int(), mode: z.literal("autoscale"), +}).transform((v) => { + return remap$(v, { + "failure_domains": "failureDomains", + }); }); export function createManagerResponsePoolsAutoscale3FromJSON( @@ -3652,14 +3863,69 @@ export function createManagerResponsePoolsAutoscale3FromJSON( ); } +/** @internal */ +export const CreateManagerResponseFailureDomains5$inboundSchema: z.ZodType< + CreateManagerResponseFailureDomains5, + unknown +> = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), +}); + +export function createManagerResponseFailureDomains5FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + CreateManagerResponseFailureDomains5$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CreateManagerResponseFailureDomains5' from JSON`, + ); +} + +/** @internal */ +export const CreateManagerResponseFailureDomainsUnion5$inboundSchema: z.ZodType< + CreateManagerResponseFailureDomainsUnion5, + unknown +> = z.union([ + z.lazy(() => CreateManagerResponseFailureDomains5$inboundSchema), + z.any(), +]); + +export function createManagerResponseFailureDomainsUnion5FromJSON( + jsonString: string, +): SafeParseResult< + CreateManagerResponseFailureDomainsUnion5, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + CreateManagerResponseFailureDomainsUnion5$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'CreateManagerResponseFailureDomainsUnion5' from JSON`, + ); +} + /** @internal */ export const CreateManagerResponsePoolsFixed3$inboundSchema: z.ZodType< CreateManagerResponsePoolsFixed3, unknown > = z.object({ + failure_domains: z.nullable( + z.union([ + z.lazy(() => CreateManagerResponseFailureDomains5$inboundSchema), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), machines: z.int(), mode: z.literal("fixed"), +}).transform((v) => { + return remap$(v, { + "failure_domains": "failureDomains", + }); }); export function createManagerResponsePoolsFixed3FromJSON( @@ -5613,15 +5879,70 @@ export function createManagerResponseSetupTerraformFromJSON( ); } +/** @internal */ +export const CreateManagerResponseFailureDomains4$inboundSchema: z.ZodType< + CreateManagerResponseFailureDomains4, + unknown +> = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), +}); + +export function createManagerResponseFailureDomains4FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + CreateManagerResponseFailureDomains4$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CreateManagerResponseFailureDomains4' from JSON`, + ); +} + +/** @internal */ +export const CreateManagerResponseFailureDomainsUnion4$inboundSchema: z.ZodType< + CreateManagerResponseFailureDomainsUnion4, + unknown +> = z.union([ + z.lazy(() => CreateManagerResponseFailureDomains4$inboundSchema), + z.any(), +]); + +export function createManagerResponseFailureDomainsUnion4FromJSON( + jsonString: string, +): SafeParseResult< + CreateManagerResponseFailureDomainsUnion4, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + CreateManagerResponseFailureDomainsUnion4$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'CreateManagerResponseFailureDomainsUnion4' from JSON`, + ); +} + /** @internal */ export const CreateManagerResponsePoolsAutoscale2$inboundSchema: z.ZodType< CreateManagerResponsePoolsAutoscale2, unknown > = z.object({ + failure_domains: z.nullable( + z.union([ + z.lazy(() => CreateManagerResponseFailureDomains4$inboundSchema), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), max: z.int(), min: z.int(), mode: z.literal("autoscale"), +}).transform((v) => { + return remap$(v, { + "failure_domains": "failureDomains", + }); }); export function createManagerResponsePoolsAutoscale2FromJSON( @@ -5635,14 +5956,69 @@ export function createManagerResponsePoolsAutoscale2FromJSON( ); } +/** @internal */ +export const CreateManagerResponseFailureDomains3$inboundSchema: z.ZodType< + CreateManagerResponseFailureDomains3, + unknown +> = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), +}); + +export function createManagerResponseFailureDomains3FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + CreateManagerResponseFailureDomains3$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CreateManagerResponseFailureDomains3' from JSON`, + ); +} + +/** @internal */ +export const CreateManagerResponseFailureDomainsUnion3$inboundSchema: z.ZodType< + CreateManagerResponseFailureDomainsUnion3, + unknown +> = z.union([ + z.lazy(() => CreateManagerResponseFailureDomains3$inboundSchema), + z.any(), +]); + +export function createManagerResponseFailureDomainsUnion3FromJSON( + jsonString: string, +): SafeParseResult< + CreateManagerResponseFailureDomainsUnion3, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + CreateManagerResponseFailureDomainsUnion3$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'CreateManagerResponseFailureDomainsUnion3' from JSON`, + ); +} + /** @internal */ export const CreateManagerResponsePoolsFixed2$inboundSchema: z.ZodType< CreateManagerResponsePoolsFixed2, unknown > = z.object({ + failure_domains: z.nullable( + z.union([ + z.lazy(() => CreateManagerResponseFailureDomains3$inboundSchema), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), machines: z.int(), mode: z.literal("fixed"), +}).transform((v) => { + return remap$(v, { + "failure_domains": "failureDomains", + }); }); export function createManagerResponsePoolsFixed2FromJSON( @@ -7591,15 +7967,70 @@ export function createManagerResponseSetupGoogleOauthFromJSON( ); } +/** @internal */ +export const CreateManagerResponseFailureDomains2$inboundSchema: z.ZodType< + CreateManagerResponseFailureDomains2, + unknown +> = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), +}); + +export function createManagerResponseFailureDomains2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + CreateManagerResponseFailureDomains2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CreateManagerResponseFailureDomains2' from JSON`, + ); +} + +/** @internal */ +export const CreateManagerResponseFailureDomainsUnion2$inboundSchema: z.ZodType< + CreateManagerResponseFailureDomainsUnion2, + unknown +> = z.union([ + z.lazy(() => CreateManagerResponseFailureDomains2$inboundSchema), + z.any(), +]); + +export function createManagerResponseFailureDomainsUnion2FromJSON( + jsonString: string, +): SafeParseResult< + CreateManagerResponseFailureDomainsUnion2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + CreateManagerResponseFailureDomainsUnion2$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'CreateManagerResponseFailureDomainsUnion2' from JSON`, + ); +} + /** @internal */ export const CreateManagerResponsePoolsAutoscale1$inboundSchema: z.ZodType< CreateManagerResponsePoolsAutoscale1, unknown > = z.object({ + failure_domains: z.nullable( + z.union([ + z.lazy(() => CreateManagerResponseFailureDomains2$inboundSchema), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), max: z.int(), min: z.int(), mode: z.literal("autoscale"), +}).transform((v) => { + return remap$(v, { + "failure_domains": "failureDomains", + }); }); export function createManagerResponsePoolsAutoscale1FromJSON( @@ -7613,14 +8044,69 @@ export function createManagerResponsePoolsAutoscale1FromJSON( ); } +/** @internal */ +export const CreateManagerResponseFailureDomains1$inboundSchema: z.ZodType< + CreateManagerResponseFailureDomains1, + unknown +> = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), +}); + +export function createManagerResponseFailureDomains1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + CreateManagerResponseFailureDomains1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CreateManagerResponseFailureDomains1' from JSON`, + ); +} + +/** @internal */ +export const CreateManagerResponseFailureDomainsUnion1$inboundSchema: z.ZodType< + CreateManagerResponseFailureDomainsUnion1, + unknown +> = z.union([ + z.lazy(() => CreateManagerResponseFailureDomains1$inboundSchema), + z.any(), +]); + +export function createManagerResponseFailureDomainsUnion1FromJSON( + jsonString: string, +): SafeParseResult< + CreateManagerResponseFailureDomainsUnion1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + CreateManagerResponseFailureDomainsUnion1$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'CreateManagerResponseFailureDomainsUnion1' from JSON`, + ); +} + /** @internal */ export const CreateManagerResponsePoolsFixed1$inboundSchema: z.ZodType< CreateManagerResponsePoolsFixed1, unknown > = z.object({ + failure_domains: z.nullable( + z.union([ + z.lazy(() => CreateManagerResponseFailureDomains1$inboundSchema), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), machines: z.int(), mode: z.literal("fixed"), +}).transform((v) => { + return remap$(v, { + "failure_domains": "failureDomains", + }); }); export function createManagerResponsePoolsFixed1FromJSON( diff --git a/client-sdks/platform/typescript/src/models/createreleaserequest.ts b/client-sdks/platform/typescript/src/models/createreleaserequest.ts index 6ea40be7e..5a13956a7 100644 --- a/client-sdks/platform/typescript/src/models/createreleaserequest.ts +++ b/client-sdks/platform/typescript/src/models/createreleaserequest.ts @@ -21,8 +21,9 @@ export type CreateReleaseRequest = { project: string; version?: string | undefined; gitMetadata?: GitMetadata | null | undefined; - stack?: StackByPlatform | null | undefined; + stack?: StackByPlatform | undefined; rootDirectory?: string | null | undefined; + channel?: string | undefined; }; /** @internal */ @@ -30,8 +31,9 @@ export type CreateReleaseRequest$Outbound = { project: string; version?: string | undefined; gitMetadata?: GitMetadata$Outbound | null | undefined; - stack?: StackByPlatform$Outbound | null | undefined; + stack?: StackByPlatform$Outbound | undefined; rootDirectory?: string | null | undefined; + channel?: string | undefined; }; /** @internal */ @@ -42,8 +44,9 @@ export const CreateReleaseRequest$outboundSchema: z.ZodType< project: z.string(), version: z.string().optional(), gitMetadata: z.nullable(GitMetadata$outboundSchema).optional(), - stack: z.nullable(StackByPlatform$outboundSchema).optional(), + stack: StackByPlatform$outboundSchema.optional(), rootDirectory: z.nullable(z.string()).optional(), + channel: z.string().optional(), }); export function createReleaseRequestToJSON( diff --git a/client-sdks/platform/typescript/src/models/createsetupregistrationoperationrequest.ts b/client-sdks/platform/typescript/src/models/createsetupregistrationoperationrequest.ts index 619dd8779..d6a3c0f1c 100644 --- a/client-sdks/platform/typescript/src/models/createsetupregistrationoperationrequest.ts +++ b/client-sdks/platform/typescript/src/models/createsetupregistrationoperationrequest.ts @@ -52,7 +52,33 @@ export type CreateSetupRegistrationOperationRequestPlatform = ClosedEnum< typeof CreateSetupRegistrationOperationRequestPlatform >; +/** + * Failure-domain policy selected for a compute pool. + */ +export type CreateSetupRegistrationOperationRequestFailureDomains2 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type CreateSetupRegistrationOperationRequestFailureDomainsUnion2 = + | CreateSetupRegistrationOperationRequestFailureDomains2 + | any; + export type CreateSetupRegistrationOperationRequestPoolsAutoscale = { + failureDomains?: + | CreateSetupRegistrationOperationRequestFailureDomains2 + | any + | null + | undefined; /** * Provider machine type selected for this deployment. */ @@ -68,7 +94,33 @@ export type CreateSetupRegistrationOperationRequestPoolsAutoscale = { mode: "autoscale"; }; +/** + * Failure-domain policy selected for a compute pool. + */ +export type CreateSetupRegistrationOperationRequestFailureDomains1 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type CreateSetupRegistrationOperationRequestFailureDomainsUnion1 = + | CreateSetupRegistrationOperationRequestFailureDomains1 + | any; + export type CreateSetupRegistrationOperationRequestPoolsFixed = { + failureDomains?: + | CreateSetupRegistrationOperationRequestFailureDomains1 + | any + | null + | undefined; /** * Provider machine type selected for this deployment. */ @@ -1406,8 +1458,67 @@ export const CreateSetupRegistrationOperationRequestPlatform$outboundSchema: CreateSetupRegistrationOperationRequestPlatform, ); +/** @internal */ +export type CreateSetupRegistrationOperationRequestFailureDomains2$Outbound = { + selectedFailureDomains?: Array | undefined; + spread: number; +}; + +/** @internal */ +export const CreateSetupRegistrationOperationRequestFailureDomains2$outboundSchema: + z.ZodType< + CreateSetupRegistrationOperationRequestFailureDomains2$Outbound, + CreateSetupRegistrationOperationRequestFailureDomains2 + > = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), + }); + +export function createSetupRegistrationOperationRequestFailureDomains2ToJSON( + createSetupRegistrationOperationRequestFailureDomains2: + CreateSetupRegistrationOperationRequestFailureDomains2, +): string { + return JSON.stringify( + CreateSetupRegistrationOperationRequestFailureDomains2$outboundSchema.parse( + createSetupRegistrationOperationRequestFailureDomains2, + ), + ); +} + +/** @internal */ +export type CreateSetupRegistrationOperationRequestFailureDomainsUnion2$Outbound = + | CreateSetupRegistrationOperationRequestFailureDomains2$Outbound + | any; + +/** @internal */ +export const CreateSetupRegistrationOperationRequestFailureDomainsUnion2$outboundSchema: + z.ZodType< + CreateSetupRegistrationOperationRequestFailureDomainsUnion2$Outbound, + CreateSetupRegistrationOperationRequestFailureDomainsUnion2 + > = z.union([ + z.lazy(() => + CreateSetupRegistrationOperationRequestFailureDomains2$outboundSchema + ), + z.any(), + ]); + +export function createSetupRegistrationOperationRequestFailureDomainsUnion2ToJSON( + createSetupRegistrationOperationRequestFailureDomainsUnion2: + CreateSetupRegistrationOperationRequestFailureDomainsUnion2, +): string { + return JSON.stringify( + CreateSetupRegistrationOperationRequestFailureDomainsUnion2$outboundSchema + .parse(createSetupRegistrationOperationRequestFailureDomainsUnion2), + ); +} + /** @internal */ export type CreateSetupRegistrationOperationRequestPoolsAutoscale$Outbound = { + failure_domains?: + | CreateSetupRegistrationOperationRequestFailureDomains2$Outbound + | any + | null + | undefined; machine?: string | null | undefined; max: number; min: number; @@ -1420,10 +1531,22 @@ export const CreateSetupRegistrationOperationRequestPoolsAutoscale$outboundSchem CreateSetupRegistrationOperationRequestPoolsAutoscale$Outbound, CreateSetupRegistrationOperationRequestPoolsAutoscale > = z.object({ + failureDomains: z.nullable( + z.union([ + z.lazy(() => + CreateSetupRegistrationOperationRequestFailureDomains2$outboundSchema + ), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), max: z.int(), min: z.int(), mode: z.literal("autoscale"), + }).transform((v) => { + return remap$(v, { + failureDomains: "failure_domains", + }); }); export function createSetupRegistrationOperationRequestPoolsAutoscaleToJSON( @@ -1437,8 +1560,67 @@ export function createSetupRegistrationOperationRequestPoolsAutoscaleToJSON( ); } +/** @internal */ +export type CreateSetupRegistrationOperationRequestFailureDomains1$Outbound = { + selectedFailureDomains?: Array | undefined; + spread: number; +}; + +/** @internal */ +export const CreateSetupRegistrationOperationRequestFailureDomains1$outboundSchema: + z.ZodType< + CreateSetupRegistrationOperationRequestFailureDomains1$Outbound, + CreateSetupRegistrationOperationRequestFailureDomains1 + > = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), + }); + +export function createSetupRegistrationOperationRequestFailureDomains1ToJSON( + createSetupRegistrationOperationRequestFailureDomains1: + CreateSetupRegistrationOperationRequestFailureDomains1, +): string { + return JSON.stringify( + CreateSetupRegistrationOperationRequestFailureDomains1$outboundSchema.parse( + createSetupRegistrationOperationRequestFailureDomains1, + ), + ); +} + +/** @internal */ +export type CreateSetupRegistrationOperationRequestFailureDomainsUnion1$Outbound = + | CreateSetupRegistrationOperationRequestFailureDomains1$Outbound + | any; + +/** @internal */ +export const CreateSetupRegistrationOperationRequestFailureDomainsUnion1$outboundSchema: + z.ZodType< + CreateSetupRegistrationOperationRequestFailureDomainsUnion1$Outbound, + CreateSetupRegistrationOperationRequestFailureDomainsUnion1 + > = z.union([ + z.lazy(() => + CreateSetupRegistrationOperationRequestFailureDomains1$outboundSchema + ), + z.any(), + ]); + +export function createSetupRegistrationOperationRequestFailureDomainsUnion1ToJSON( + createSetupRegistrationOperationRequestFailureDomainsUnion1: + CreateSetupRegistrationOperationRequestFailureDomainsUnion1, +): string { + return JSON.stringify( + CreateSetupRegistrationOperationRequestFailureDomainsUnion1$outboundSchema + .parse(createSetupRegistrationOperationRequestFailureDomainsUnion1), + ); +} + /** @internal */ export type CreateSetupRegistrationOperationRequestPoolsFixed$Outbound = { + failure_domains?: + | CreateSetupRegistrationOperationRequestFailureDomains1$Outbound + | any + | null + | undefined; machine?: string | null | undefined; machines: number; mode: "fixed"; @@ -1450,9 +1632,21 @@ export const CreateSetupRegistrationOperationRequestPoolsFixed$outboundSchema: CreateSetupRegistrationOperationRequestPoolsFixed$Outbound, CreateSetupRegistrationOperationRequestPoolsFixed > = z.object({ + failureDomains: z.nullable( + z.union([ + z.lazy(() => + CreateSetupRegistrationOperationRequestFailureDomains1$outboundSchema + ), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), machines: z.int(), mode: z.literal("fixed"), + }).transform((v) => { + return remap$(v, { + failureDomains: "failure_domains", + }); }); export function createSetupRegistrationOperationRequestPoolsFixedToJSON( diff --git a/client-sdks/platform/typescript/src/models/deployment.ts b/client-sdks/platform/typescript/src/models/deployment.ts index ac9488106..62d01efa2 100644 --- a/client-sdks/platform/typescript/src/models/deployment.ts +++ b/client-sdks/platform/typescript/src/models/deployment.ts @@ -214,7 +214,27 @@ export type DeploymentEnvironmentInfoUnion = | DeploymentEnvironmentInfoTest | any; +/** + * Failure-domain policy selected for a compute pool. + */ +export type DeploymentFailureDomains2 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type DeploymentFailureDomainsUnion2 = DeploymentFailureDomains2 | any; + export type DeploymentPoolsAutoscale = { + failureDomains?: DeploymentFailureDomains2 | any | null | undefined; /** * Provider machine type selected for this deployment. */ @@ -230,7 +250,27 @@ export type DeploymentPoolsAutoscale = { mode: "autoscale"; }; +/** + * Failure-domain policy selected for a compute pool. + */ +export type DeploymentFailureDomains1 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type DeploymentFailureDomainsUnion1 = DeploymentFailureDomains1 | any; + export type DeploymentPoolsFixed = { + failureDomains?: DeploymentFailureDomains1 | any | null | undefined; /** * Provider machine type selected for this deployment. */ @@ -1604,85 +1644,109 @@ export type DeploymentStackState = { resources: { [k: string]: DeploymentStackStateResources }; }; -export const DeploymentTypeStringList = { +/** + * Actor that owns structural work during the initial setup phase. + */ +export const DeploymentInitialSetupAuthority = { + ImportedHandoff: "importedHandoff", + DirectSetup: "directSetup", +} as const; +/** + * Actor that owns structural work during the initial setup phase. + */ +export type DeploymentInitialSetupAuthority = ClosedEnum< + typeof DeploymentInitialSetupAuthority +>; + +export const DeploymentPendingPreparedStackTypeStringList = { StringList: "stringList", } as const; -export type DeploymentTypeStringList = ClosedEnum< - typeof DeploymentTypeStringList +export type DeploymentPendingPreparedStackTypeStringList = ClosedEnum< + typeof DeploymentPendingPreparedStackTypeStringList >; -export type DeploymentDefaultStringList = { - type: DeploymentTypeStringList; +export type DeploymentPendingPreparedStackDefaultStringList = { + type: DeploymentPendingPreparedStackTypeStringList; /** * String list default. */ value: Array; }; -export const DeploymentTypeBoolean = { +export const DeploymentPendingPreparedStackTypeBoolean = { Boolean: "boolean", } as const; -export type DeploymentTypeBoolean = ClosedEnum; +export type DeploymentPendingPreparedStackTypeBoolean = ClosedEnum< + typeof DeploymentPendingPreparedStackTypeBoolean +>; -export type DeploymentDefaultBoolean = { - type: DeploymentTypeBoolean; +export type DeploymentPendingPreparedStackDefaultBoolean = { + type: DeploymentPendingPreparedStackTypeBoolean; /** * Boolean default. */ value: boolean; }; -export const DeploymentTypeNumber = { +export const DeploymentPendingPreparedStackTypeNumber = { Number: "number", } as const; -export type DeploymentTypeNumber = ClosedEnum; +export type DeploymentPendingPreparedStackTypeNumber = ClosedEnum< + typeof DeploymentPendingPreparedStackTypeNumber +>; -export type DeploymentDefaultNumber = { - type: DeploymentTypeNumber; +export type DeploymentPendingPreparedStackDefaultNumber = { + type: DeploymentPendingPreparedStackTypeNumber; /** * Number default. */ value: string; }; -export const DeploymentTypeString = { +export const DeploymentPendingPreparedStackTypeString = { String: "string", } as const; -export type DeploymentTypeString = ClosedEnum; +export type DeploymentPendingPreparedStackTypeString = ClosedEnum< + typeof DeploymentPendingPreparedStackTypeString +>; -export type DeploymentDefaultString = { - type: DeploymentTypeString; +export type DeploymentPendingPreparedStackDefaultString = { + type: DeploymentPendingPreparedStackTypeString; /** * String default. */ value: string; }; -export type DeploymentDefaultUnion = - | DeploymentDefaultString - | DeploymentDefaultNumber - | DeploymentDefaultBoolean - | DeploymentDefaultStringList +export type DeploymentPendingPreparedStackDefaultUnion = + | DeploymentPendingPreparedStackDefaultString + | DeploymentPendingPreparedStackDefaultNumber + | DeploymentPendingPreparedStackDefaultBoolean + | DeploymentPendingPreparedStackDefaultStringList | any; /** * Environment variable handling for a stack input mapping. */ -export const DeploymentTypeEnvEnum = { +export const DeploymentPendingPreparedStackTypeEnvEnum = { Plain: "plain", Secret: "secret", } as const; /** * Environment variable handling for a stack input mapping. */ -export type DeploymentTypeEnvEnum = ClosedEnum; +export type DeploymentPendingPreparedStackTypeEnvEnum = ClosedEnum< + typeof DeploymentPendingPreparedStackTypeEnvEnum +>; -export type DeploymentTypeUnion = DeploymentTypeEnvEnum | any; +export type DeploymentPendingPreparedStackTypeUnion = + | DeploymentPendingPreparedStackTypeEnvEnum + | any; /** * How a resolved stack input is injected into runtime environment variables. */ -export type DeploymentEnv = { +export type DeploymentPendingPreparedStackEnv = { /** * Environment variable name. */ @@ -1691,13 +1755,13 @@ export type DeploymentEnv = { * Target resource IDs or patterns. None means every env-capable resource. */ targetResources?: Array | null | undefined; - type?: DeploymentTypeEnvEnum | any | null | undefined; + type?: DeploymentPendingPreparedStackTypeEnvEnum | any | null | undefined; }; /** * Primitive stack input kind. */ -export const DeploymentKind = { +export const DeploymentPendingPreparedStackKind = { String: "string", Secret: "secret", Number: "number", @@ -1709,12 +1773,14 @@ export const DeploymentKind = { /** * Primitive stack input kind. */ -export type DeploymentKind = ClosedEnum; +export type DeploymentPendingPreparedStackKind = ClosedEnum< + typeof DeploymentPendingPreparedStackKind +>; /** * Represents the target cloud platform. */ -export const DeploymentPreparedStackPlatform = { +export const DeploymentPendingPreparedStackPlatform = { Aws: "aws", Gcp: "gcp", Azure: "azure", @@ -1726,26 +1792,28 @@ export const DeploymentPreparedStackPlatform = { /** * Represents the target cloud platform. */ -export type DeploymentPreparedStackPlatform = ClosedEnum< - typeof DeploymentPreparedStackPlatform +export type DeploymentPendingPreparedStackPlatform = ClosedEnum< + typeof DeploymentPendingPreparedStackPlatform >; /** * Who can provide a stack input value. */ -export const DeploymentProvidedBy = { +export const DeploymentPendingPreparedStackProvidedBy = { Developer: "developer", Deployer: "deployer", } as const; /** * Who can provide a stack input value. */ -export type DeploymentProvidedBy = ClosedEnum; +export type DeploymentPendingPreparedStackProvidedBy = ClosedEnum< + typeof DeploymentPendingPreparedStackProvidedBy +>; /** * Portable stack input validation constraints. */ -export type DeploymentValidation = { +export type DeploymentPendingPreparedStackValidation = { /** * Semantic format hint such as url. */ @@ -1784,17 +1852,19 @@ export type DeploymentValidation = { values?: Array | null | undefined; }; -export type DeploymentValidationUnion = DeploymentValidation | any; +export type DeploymentPendingPreparedStackValidationUnion = + | DeploymentPendingPreparedStackValidation + | any; /** * Stack input definition serialized into a release stack. */ -export type DeploymentInput = { +export type DeploymentPendingPreparedStackInput = { default?: - | DeploymentDefaultString - | DeploymentDefaultNumber - | DeploymentDefaultBoolean - | DeploymentDefaultStringList + | DeploymentPendingPreparedStackDefaultString + | DeploymentPendingPreparedStackDefaultNumber + | DeploymentPendingPreparedStackDefaultBoolean + | DeploymentPendingPreparedStackDefaultStringList | any | null | undefined; @@ -1805,7 +1875,7 @@ export type DeploymentInput = { /** * Runtime env-var mappings for v1 input resolution. */ - env?: Array | undefined; + env?: Array | undefined; /** * Stable input ID used by CLI/API calls. */ @@ -1813,7 +1883,7 @@ export type DeploymentInput = { /** * Primitive stack input kind. */ - kind: DeploymentKind; + kind: DeploymentPendingPreparedStackKind; /** * Human-facing field label. */ @@ -1825,29 +1895,33 @@ export type DeploymentInput = { /** * Platforms where this input applies. */ - platforms?: Array | null | undefined; + platforms?: Array | null | undefined; /** * Who can provide this value. */ - providedBy: Array; + providedBy: Array; /** * Whether a resolved value is required before deployment can proceed. */ required: boolean; - validation?: DeploymentValidation | any | null | undefined; + validation?: + | DeploymentPendingPreparedStackValidation + | any + | null + | undefined; }; -export const DeploymentManagementEnum = { +export const DeploymentPendingPreparedStackManagementEnum = { Auto: "auto", } as const; -export type DeploymentManagementEnum = ClosedEnum< - typeof DeploymentManagementEnum +export type DeploymentPendingPreparedStackManagementEnum = ClosedEnum< + typeof DeploymentPendingPreparedStackManagementEnum >; /** * AWS-specific binding specification */ -export type DeploymentOverrideAwResource = { +export type DeploymentPendingPreparedStackOverrideAwResource = { /** * Optional condition for additional filtering (rare) */ @@ -1861,7 +1935,7 @@ export type DeploymentOverrideAwResource = { /** * AWS-specific binding specification */ -export type DeploymentOverrideAwStack = { +export type DeploymentPendingPreparedStackOverrideAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -1875,35 +1949,35 @@ export type DeploymentOverrideAwStack = { /** * Generic binding configuration for permissions */ -export type DeploymentOverrideAwBinding = { +export type DeploymentPendingPreparedStackOverrideAwBinding = { /** * AWS-specific binding specification */ - resource?: DeploymentOverrideAwResource | undefined; + resource?: DeploymentPendingPreparedStackOverrideAwResource | undefined; /** * AWS-specific binding specification */ - stack?: DeploymentOverrideAwStack | undefined; + stack?: DeploymentPendingPreparedStackOverrideAwStack | undefined; }; /** * IAM effect. Defaults to Allow. */ -export const DeploymentOverrideEffect = { +export const DeploymentPendingPreparedStackOverrideEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type DeploymentOverrideEffect = ClosedEnum< - typeof DeploymentOverrideEffect +export type DeploymentPendingPreparedStackOverrideEffect = ClosedEnum< + typeof DeploymentPendingPreparedStackOverrideEffect >; /** * Grant permissions for a specific cloud platform */ -export type DeploymentOverrideAwGrant = { +export type DeploymentPendingPreparedStackOverrideAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -1929,11 +2003,11 @@ export type DeploymentOverrideAwGrant = { /** * AWS-specific platform permission configuration */ -export type DeploymentOverrideAw = { +export type DeploymentPendingPreparedStackOverrideAw = { /** * Generic binding configuration for permissions */ - binding: DeploymentOverrideAwBinding; + binding: DeploymentPendingPreparedStackOverrideAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -1941,11 +2015,11 @@ export type DeploymentOverrideAw = { /** * IAM effect. Defaults to Allow. */ - effect?: DeploymentOverrideEffect | undefined; + effect?: DeploymentPendingPreparedStackOverrideEffect | undefined; /** * Grant permissions for a specific cloud platform */ - grant: DeploymentOverrideAwGrant; + grant: DeploymentPendingPreparedStackOverrideAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -1955,7 +2029,7 @@ export type DeploymentOverrideAw = { /** * Azure-specific binding specification */ -export type DeploymentOverrideAzureResource = { +export type DeploymentPendingPreparedStackOverrideAzureResource = { /** * Scope (subscription/resource group/resource level) */ @@ -1965,7 +2039,7 @@ export type DeploymentOverrideAzureResource = { /** * Azure-specific binding specification */ -export type DeploymentOverrideAzureStack = { +export type DeploymentPendingPreparedStackOverrideAzureStack = { /** * Scope (subscription/resource group/resource level) */ @@ -1975,21 +2049,21 @@ export type DeploymentOverrideAzureStack = { /** * Generic binding configuration for permissions */ -export type DeploymentOverrideAzureBinding = { +export type DeploymentPendingPreparedStackOverrideAzureBinding = { /** * Azure-specific binding specification */ - resource?: DeploymentOverrideAzureResource | undefined; + resource?: DeploymentPendingPreparedStackOverrideAzureResource | undefined; /** * Azure-specific binding specification */ - stack?: DeploymentOverrideAzureStack | undefined; + stack?: DeploymentPendingPreparedStackOverrideAzureStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type DeploymentOverrideAzureGrant = { +export type DeploymentPendingPreparedStackOverrideAzureGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2015,11 +2089,11 @@ export type DeploymentOverrideAzureGrant = { /** * Azure-specific platform permission configuration */ -export type DeploymentOverrideAzure = { +export type DeploymentPendingPreparedStackOverrideAzure = { /** * Generic binding configuration for permissions */ - binding: DeploymentOverrideAzureBinding; + binding: DeploymentPendingPreparedStackOverrideAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2027,7 +2101,7 @@ export type DeploymentOverrideAzure = { /** * Grant permissions for a specific cloud platform */ - grant: DeploymentOverrideAzureGrant; + grant: DeploymentPendingPreparedStackOverrideAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2037,20 +2111,24 @@ export type DeploymentOverrideAzure = { /** * GCP IAM condition */ -export type DeploymentOverrideConditionResource = { +export type DeploymentPendingPreparedStackOverrideConditionResource = { expression: string; title: string; }; -export type DeploymentOverrideResourceConditionUnion = - | DeploymentOverrideConditionResource +export type DeploymentPendingPreparedStackOverrideResourceConditionUnion = + | DeploymentPendingPreparedStackOverrideConditionResource | any; /** * GCP-specific binding specification */ -export type DeploymentOverrideGcpResource = { - condition?: DeploymentOverrideConditionResource | any | null | undefined; +export type DeploymentPendingPreparedStackOverrideGcpResource = { + condition?: + | DeploymentPendingPreparedStackOverrideConditionResource + | any + | null + | undefined; /** * Scope (project/resource level) */ @@ -2060,20 +2138,24 @@ export type DeploymentOverrideGcpResource = { /** * GCP IAM condition */ -export type DeploymentOverrideConditionStack = { +export type DeploymentPendingPreparedStackOverrideConditionStack = { expression: string; title: string; }; -export type DeploymentOverrideStackConditionUnion = - | DeploymentOverrideConditionStack +export type DeploymentPendingPreparedStackOverrideStackConditionUnion = + | DeploymentPendingPreparedStackOverrideConditionStack | any; /** * GCP-specific binding specification */ -export type DeploymentOverrideGcpStack = { - condition?: DeploymentOverrideConditionStack | any | null | undefined; +export type DeploymentPendingPreparedStackOverrideGcpStack = { + condition?: + | DeploymentPendingPreparedStackOverrideConditionStack + | any + | null + | undefined; /** * Scope (project/resource level) */ @@ -2083,21 +2165,21 @@ export type DeploymentOverrideGcpStack = { /** * Generic binding configuration for permissions */ -export type DeploymentOverrideGcpBinding = { +export type DeploymentPendingPreparedStackOverrideGcpBinding = { /** * GCP-specific binding specification */ - resource?: DeploymentOverrideGcpResource | undefined; + resource?: DeploymentPendingPreparedStackOverrideGcpResource | undefined; /** * GCP-specific binding specification */ - stack?: DeploymentOverrideGcpStack | undefined; + stack?: DeploymentPendingPreparedStackOverrideGcpStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type DeploymentOverrideGcpGrant = { +export type DeploymentPendingPreparedStackOverrideGcpGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2123,11 +2205,11 @@ export type DeploymentOverrideGcpGrant = { /** * GCP-specific platform permission configuration */ -export type DeploymentOverrideGcp = { +export type DeploymentPendingPreparedStackOverrideGcp = { /** * Generic binding configuration for permissions */ - binding: DeploymentOverrideGcpBinding; + binding: DeploymentPendingPreparedStackOverrideGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2135,7 +2217,7 @@ export type DeploymentOverrideGcp = { /** * Grant permissions for a specific cloud platform */ - grant: DeploymentOverrideGcpGrant; + grant: DeploymentPendingPreparedStackOverrideGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2145,25 +2227,25 @@ export type DeploymentOverrideGcp = { /** * Platform-specific permission configurations */ -export type DeploymentOverridePlatforms = { +export type DeploymentPendingPreparedStackOverridePlatforms = { /** * AWS permission configurations */ - aws?: Array | null | undefined; + aws?: Array | null | undefined; /** * Azure permission configurations */ - azure?: Array | null | undefined; + azure?: Array | null | undefined; /** * GCP permission configurations */ - gcp?: Array | null | undefined; + gcp?: Array | null | undefined; }; /** * A permission set that can be applied across different cloud platforms */ -export type DeploymentOverride = { +export type DeploymentPendingPreparedStackOverride = { /** * Human-readable description of what this permission set allows */ @@ -2175,28 +2257,32 @@ export type DeploymentOverride = { /** * Platform-specific permission configurations */ - platforms: DeploymentOverridePlatforms; + platforms: DeploymentPendingPreparedStackOverridePlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type DeploymentOverrideUnion = DeploymentOverride | string; +export type DeploymentPendingPreparedStackOverrideUnion = + | DeploymentPendingPreparedStackOverride + | string; -export type DeploymentManagement2 = { +export type DeploymentPendingPreparedStackManagement2 = { /** * Permission profile that maps resources to permission sets * * @remarks * Key can be "*" for all resources or resource name for specific resource */ - override: { [k: string]: Array }; + override: { + [k: string]: Array; + }; }; /** * AWS-specific binding specification */ -export type DeploymentExtendAwResource = { +export type DeploymentPendingPreparedStackExtendAwResource = { /** * Optional condition for additional filtering (rare) */ @@ -2210,7 +2296,7 @@ export type DeploymentExtendAwResource = { /** * AWS-specific binding specification */ -export type DeploymentExtendAwStack = { +export type DeploymentPendingPreparedStackExtendAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -2224,33 +2310,35 @@ export type DeploymentExtendAwStack = { /** * Generic binding configuration for permissions */ -export type DeploymentExtendAwBinding = { +export type DeploymentPendingPreparedStackExtendAwBinding = { /** * AWS-specific binding specification */ - resource?: DeploymentExtendAwResource | undefined; + resource?: DeploymentPendingPreparedStackExtendAwResource | undefined; /** * AWS-specific binding specification */ - stack?: DeploymentExtendAwStack | undefined; + stack?: DeploymentPendingPreparedStackExtendAwStack | undefined; }; /** * IAM effect. Defaults to Allow. */ -export const DeploymentExtendEffect = { +export const DeploymentPendingPreparedStackExtendEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type DeploymentExtendEffect = ClosedEnum; +export type DeploymentPendingPreparedStackExtendEffect = ClosedEnum< + typeof DeploymentPendingPreparedStackExtendEffect +>; /** * Grant permissions for a specific cloud platform */ -export type DeploymentExtendAwGrant = { +export type DeploymentPendingPreparedStackExtendAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2276,11 +2364,11 @@ export type DeploymentExtendAwGrant = { /** * AWS-specific platform permission configuration */ -export type DeploymentExtendAw = { +export type DeploymentPendingPreparedStackExtendAw = { /** * Generic binding configuration for permissions */ - binding: DeploymentExtendAwBinding; + binding: DeploymentPendingPreparedStackExtendAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2288,11 +2376,11 @@ export type DeploymentExtendAw = { /** * IAM effect. Defaults to Allow. */ - effect?: DeploymentExtendEffect | undefined; + effect?: DeploymentPendingPreparedStackExtendEffect | undefined; /** * Grant permissions for a specific cloud platform */ - grant: DeploymentExtendAwGrant; + grant: DeploymentPendingPreparedStackExtendAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2302,7 +2390,7 @@ export type DeploymentExtendAw = { /** * Azure-specific binding specification */ -export type DeploymentExtendAzureResource = { +export type DeploymentPendingPreparedStackExtendAzureResource = { /** * Scope (subscription/resource group/resource level) */ @@ -2312,7 +2400,7 @@ export type DeploymentExtendAzureResource = { /** * Azure-specific binding specification */ -export type DeploymentExtendAzureStack = { +export type DeploymentPendingPreparedStackExtendAzureStack = { /** * Scope (subscription/resource group/resource level) */ @@ -2322,21 +2410,21 @@ export type DeploymentExtendAzureStack = { /** * Generic binding configuration for permissions */ -export type DeploymentExtendAzureBinding = { +export type DeploymentPendingPreparedStackExtendAzureBinding = { /** * Azure-specific binding specification */ - resource?: DeploymentExtendAzureResource | undefined; + resource?: DeploymentPendingPreparedStackExtendAzureResource | undefined; /** * Azure-specific binding specification */ - stack?: DeploymentExtendAzureStack | undefined; + stack?: DeploymentPendingPreparedStackExtendAzureStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type DeploymentExtendAzureGrant = { +export type DeploymentPendingPreparedStackExtendAzureGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2362,11 +2450,11 @@ export type DeploymentExtendAzureGrant = { /** * Azure-specific platform permission configuration */ -export type DeploymentExtendAzure = { +export type DeploymentPendingPreparedStackExtendAzure = { /** * Generic binding configuration for permissions */ - binding: DeploymentExtendAzureBinding; + binding: DeploymentPendingPreparedStackExtendAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2374,7 +2462,7 @@ export type DeploymentExtendAzure = { /** * Grant permissions for a specific cloud platform */ - grant: DeploymentExtendAzureGrant; + grant: DeploymentPendingPreparedStackExtendAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2384,20 +2472,24 @@ export type DeploymentExtendAzure = { /** * GCP IAM condition */ -export type DeploymentExtendConditionResource = { +export type DeploymentPendingPreparedStackExtendConditionResource = { expression: string; title: string; }; -export type DeploymentExtendResourceConditionUnion = - | DeploymentExtendConditionResource +export type DeploymentPendingPreparedStackExtendResourceConditionUnion = + | DeploymentPendingPreparedStackExtendConditionResource | any; /** * GCP-specific binding specification */ -export type DeploymentExtendGcpResource = { - condition?: DeploymentExtendConditionResource | any | null | undefined; +export type DeploymentPendingPreparedStackExtendGcpResource = { + condition?: + | DeploymentPendingPreparedStackExtendConditionResource + | any + | null + | undefined; /** * Scope (project/resource level) */ @@ -2407,20 +2499,24 @@ export type DeploymentExtendGcpResource = { /** * GCP IAM condition */ -export type DeploymentExtendConditionStack = { +export type DeploymentPendingPreparedStackExtendConditionStack = { expression: string; title: string; }; -export type DeploymentExtendStackConditionUnion = - | DeploymentExtendConditionStack +export type DeploymentPendingPreparedStackExtendStackConditionUnion = + | DeploymentPendingPreparedStackExtendConditionStack | any; /** * GCP-specific binding specification */ -export type DeploymentExtendGcpStack = { - condition?: DeploymentExtendConditionStack | any | null | undefined; +export type DeploymentPendingPreparedStackExtendGcpStack = { + condition?: + | DeploymentPendingPreparedStackExtendConditionStack + | any + | null + | undefined; /** * Scope (project/resource level) */ @@ -2430,21 +2526,21 @@ export type DeploymentExtendGcpStack = { /** * Generic binding configuration for permissions */ -export type DeploymentExtendGcpBinding = { +export type DeploymentPendingPreparedStackExtendGcpBinding = { /** * GCP-specific binding specification */ - resource?: DeploymentExtendGcpResource | undefined; + resource?: DeploymentPendingPreparedStackExtendGcpResource | undefined; /** * GCP-specific binding specification */ - stack?: DeploymentExtendGcpStack | undefined; + stack?: DeploymentPendingPreparedStackExtendGcpStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type DeploymentExtendGcpGrant = { +export type DeploymentPendingPreparedStackExtendGcpGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2470,11 +2566,11 @@ export type DeploymentExtendGcpGrant = { /** * GCP-specific platform permission configuration */ -export type DeploymentExtendGcp = { +export type DeploymentPendingPreparedStackExtendGcp = { /** * Generic binding configuration for permissions */ - binding: DeploymentExtendGcpBinding; + binding: DeploymentPendingPreparedStackExtendGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2482,7 +2578,7 @@ export type DeploymentExtendGcp = { /** * Grant permissions for a specific cloud platform */ - grant: DeploymentExtendGcpGrant; + grant: DeploymentPendingPreparedStackExtendGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2492,25 +2588,25 @@ export type DeploymentExtendGcp = { /** * Platform-specific permission configurations */ -export type DeploymentExtendPlatforms = { +export type DeploymentPendingPreparedStackExtendPlatforms = { /** * AWS permission configurations */ - aws?: Array | null | undefined; + aws?: Array | null | undefined; /** * Azure permission configurations */ - azure?: Array | null | undefined; + azure?: Array | null | undefined; /** * GCP permission configurations */ - gcp?: Array | null | undefined; + gcp?: Array | null | undefined; }; /** * A permission set that can be applied across different cloud platforms */ -export type DeploymentExtend = { +export type DeploymentPendingPreparedStackExtend = { /** * Human-readable description of what this permission set allows */ @@ -2522,36 +2618,38 @@ export type DeploymentExtend = { /** * Platform-specific permission configurations */ - platforms: DeploymentExtendPlatforms; + platforms: DeploymentPendingPreparedStackExtendPlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type DeploymentExtendUnion = DeploymentExtend | string; +export type DeploymentPendingPreparedStackExtendUnion = + | DeploymentPendingPreparedStackExtend + | string; -export type DeploymentManagement1 = { +export type DeploymentPendingPreparedStackManagement1 = { /** * Permission profile that maps resources to permission sets * * @remarks * Key can be "*" for all resources or resource name for specific resource */ - extend: { [k: string]: Array }; + extend: { [k: string]: Array }; }; /** * Management permissions configuration for stack management access */ -export type DeploymentManagementUnion = - | DeploymentManagement1 - | DeploymentManagement2 - | DeploymentManagementEnum; +export type DeploymentPendingPreparedStackManagementUnion = + | DeploymentPendingPreparedStackManagement1 + | DeploymentPendingPreparedStackManagement2 + | DeploymentPendingPreparedStackManagementEnum; /** * AWS-specific binding specification */ -export type DeploymentProfileAwResource = { +export type DeploymentPendingPreparedStackProfileAwResource = { /** * Optional condition for additional filtering (rare) */ @@ -2565,7 +2663,7 @@ export type DeploymentProfileAwResource = { /** * AWS-specific binding specification */ -export type DeploymentProfileAwStack = { +export type DeploymentPendingPreparedStackProfileAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -2579,35 +2677,35 @@ export type DeploymentProfileAwStack = { /** * Generic binding configuration for permissions */ -export type DeploymentProfileAwBinding = { +export type DeploymentPendingPreparedStackProfileAwBinding = { /** * AWS-specific binding specification */ - resource?: DeploymentProfileAwResource | undefined; + resource?: DeploymentPendingPreparedStackProfileAwResource | undefined; /** * AWS-specific binding specification */ - stack?: DeploymentProfileAwStack | undefined; + stack?: DeploymentPendingPreparedStackProfileAwStack | undefined; }; /** * IAM effect. Defaults to Allow. */ -export const DeploymentProfileEffect = { +export const DeploymentPendingPreparedStackProfileEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type DeploymentProfileEffect = ClosedEnum< - typeof DeploymentProfileEffect +export type DeploymentPendingPreparedStackProfileEffect = ClosedEnum< + typeof DeploymentPendingPreparedStackProfileEffect >; /** * Grant permissions for a specific cloud platform */ -export type DeploymentProfileAwGrant = { +export type DeploymentPendingPreparedStackProfileAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2633,11 +2731,11 @@ export type DeploymentProfileAwGrant = { /** * AWS-specific platform permission configuration */ -export type DeploymentProfileAw = { +export type DeploymentPendingPreparedStackProfileAw = { /** * Generic binding configuration for permissions */ - binding: DeploymentProfileAwBinding; + binding: DeploymentPendingPreparedStackProfileAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2645,11 +2743,11 @@ export type DeploymentProfileAw = { /** * IAM effect. Defaults to Allow. */ - effect?: DeploymentProfileEffect | undefined; + effect?: DeploymentPendingPreparedStackProfileEffect | undefined; /** * Grant permissions for a specific cloud platform */ - grant: DeploymentProfileAwGrant; + grant: DeploymentPendingPreparedStackProfileAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2659,7 +2757,7 @@ export type DeploymentProfileAw = { /** * Azure-specific binding specification */ -export type DeploymentProfileAzureResource = { +export type DeploymentPendingPreparedStackProfileAzureResource = { /** * Scope (subscription/resource group/resource level) */ @@ -2669,7 +2767,7 @@ export type DeploymentProfileAzureResource = { /** * Azure-specific binding specification */ -export type DeploymentProfileAzureStack = { +export type DeploymentPendingPreparedStackProfileAzureStack = { /** * Scope (subscription/resource group/resource level) */ @@ -2679,21 +2777,21 @@ export type DeploymentProfileAzureStack = { /** * Generic binding configuration for permissions */ -export type DeploymentProfileAzureBinding = { +export type DeploymentPendingPreparedStackProfileAzureBinding = { /** * Azure-specific binding specification */ - resource?: DeploymentProfileAzureResource | undefined; + resource?: DeploymentPendingPreparedStackProfileAzureResource | undefined; /** * Azure-specific binding specification */ - stack?: DeploymentProfileAzureStack | undefined; + stack?: DeploymentPendingPreparedStackProfileAzureStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type DeploymentProfileAzureGrant = { +export type DeploymentPendingPreparedStackProfileAzureGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2719,11 +2817,11 @@ export type DeploymentProfileAzureGrant = { /** * Azure-specific platform permission configuration */ -export type DeploymentProfileAzure = { +export type DeploymentPendingPreparedStackProfileAzure = { /** * Generic binding configuration for permissions */ - binding: DeploymentProfileAzureBinding; + binding: DeploymentPendingPreparedStackProfileAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2731,7 +2829,7 @@ export type DeploymentProfileAzure = { /** * Grant permissions for a specific cloud platform */ - grant: DeploymentProfileAzureGrant; + grant: DeploymentPendingPreparedStackProfileAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2741,20 +2839,24 @@ export type DeploymentProfileAzure = { /** * GCP IAM condition */ -export type DeploymentProfileConditionResource = { +export type DeploymentPendingPreparedStackProfileConditionResource = { expression: string; title: string; }; -export type DeploymentProfileResourceConditionUnion = - | DeploymentProfileConditionResource +export type DeploymentPendingPreparedStackProfileResourceConditionUnion = + | DeploymentPendingPreparedStackProfileConditionResource | any; /** * GCP-specific binding specification */ -export type DeploymentProfileGcpResource = { - condition?: DeploymentProfileConditionResource | any | null | undefined; +export type DeploymentPendingPreparedStackProfileGcpResource = { + condition?: + | DeploymentPendingPreparedStackProfileConditionResource + | any + | null + | undefined; /** * Scope (project/resource level) */ @@ -2764,20 +2866,24 @@ export type DeploymentProfileGcpResource = { /** * GCP IAM condition */ -export type DeploymentProfileConditionStack = { +export type DeploymentPendingPreparedStackProfileConditionStack = { expression: string; title: string; }; -export type DeploymentProfileStackConditionUnion = - | DeploymentProfileConditionStack +export type DeploymentPendingPreparedStackProfileStackConditionUnion = + | DeploymentPendingPreparedStackProfileConditionStack | any; /** * GCP-specific binding specification */ -export type DeploymentProfileGcpStack = { - condition?: DeploymentProfileConditionStack | any | null | undefined; +export type DeploymentPendingPreparedStackProfileGcpStack = { + condition?: + | DeploymentPendingPreparedStackProfileConditionStack + | any + | null + | undefined; /** * Scope (project/resource level) */ @@ -2787,21 +2893,21 @@ export type DeploymentProfileGcpStack = { /** * Generic binding configuration for permissions */ -export type DeploymentProfileGcpBinding = { +export type DeploymentPendingPreparedStackProfileGcpBinding = { /** * GCP-specific binding specification */ - resource?: DeploymentProfileGcpResource | undefined; + resource?: DeploymentPendingPreparedStackProfileGcpResource | undefined; /** * GCP-specific binding specification */ - stack?: DeploymentProfileGcpStack | undefined; + stack?: DeploymentPendingPreparedStackProfileGcpStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type DeploymentProfileGcpGrant = { +export type DeploymentPendingPreparedStackProfileGcpGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2827,11 +2933,11 @@ export type DeploymentProfileGcpGrant = { /** * GCP-specific platform permission configuration */ -export type DeploymentProfileGcp = { +export type DeploymentPendingPreparedStackProfileGcp = { /** * Generic binding configuration for permissions */ - binding: DeploymentProfileGcpBinding; + binding: DeploymentPendingPreparedStackProfileGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2839,7 +2945,7 @@ export type DeploymentProfileGcp = { /** * Grant permissions for a specific cloud platform */ - grant: DeploymentProfileGcpGrant; + grant: DeploymentPendingPreparedStackProfileGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2849,25 +2955,25 @@ export type DeploymentProfileGcp = { /** * Platform-specific permission configurations */ -export type DeploymentProfilePlatforms = { +export type DeploymentPendingPreparedStackProfilePlatforms = { /** * AWS permission configurations */ - aws?: Array | null | undefined; + aws?: Array | null | undefined; /** * Azure permission configurations */ - azure?: Array | null | undefined; + azure?: Array | null | undefined; /** * GCP permission configurations */ - gcp?: Array | null | undefined; + gcp?: Array | null | undefined; }; /** * A permission set that can be applied across different cloud platforms */ -export type DeploymentProfile = { +export type DeploymentPendingPreparedStackProfile = { /** * Human-readable description of what this permission set allows */ @@ -2879,25 +2985,27 @@ export type DeploymentProfile = { /** * Platform-specific permission configurations */ - platforms: DeploymentProfilePlatforms; + platforms: DeploymentPendingPreparedStackProfilePlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type DeploymentProfileUnion = DeploymentProfile | string; +export type DeploymentPendingPreparedStackProfileUnion = + | DeploymentPendingPreparedStackProfile + | string; /** * Combined permissions configuration that contains both profiles and management */ -export type DeploymentPermissions = { +export type DeploymentPendingPreparedStackPermissions = { /** * Management permissions configuration for stack management access */ management?: - | DeploymentManagement1 - | DeploymentManagement2 - | DeploymentManagementEnum + | DeploymentPendingPreparedStackManagement1 + | DeploymentPendingPreparedStackManagement2 + | DeploymentPendingPreparedStackManagementEnum | undefined; /** * Permission profiles that define access control for compute services @@ -2905,13 +3013,17 @@ export type DeploymentPermissions = { * @remarks * Key is the profile name, value is the permission configuration */ - profiles: { [k: string]: { [k: string]: Array } }; + profiles: { + [k: string]: { + [k: string]: Array; + }; + }; }; /** * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ -export type DeploymentPreparedStackConfig = { +export type DeploymentPendingPreparedStackConfig = { /** * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. */ @@ -2926,7 +3038,7 @@ export type DeploymentPreparedStackConfig = { /** * Reference to a resource by its stable id and resource type. */ -export type DeploymentPreparedStackDependency = { +export type DeploymentPendingPreparedStackDependency = { id: string; /** * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. @@ -2937,33 +3049,44 @@ export type DeploymentPreparedStackDependency = { /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export const DeploymentPreparedStackLifecycle = { +export const DeploymentPendingPreparedStackLifecycle = { Frozen: "frozen", Live: "live", } as const; /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export type DeploymentPreparedStackLifecycle = ClosedEnum< - typeof DeploymentPreparedStackLifecycle +export type DeploymentPendingPreparedStackLifecycle = ClosedEnum< + typeof DeploymentPendingPreparedStackLifecycle >; -export type DeploymentPreparedStackResources = { +export type DeploymentPendingPreparedStackResources = { /** * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ - config: DeploymentPreparedStackConfig; + config: DeploymentPendingPreparedStackConfig; /** * Additional dependencies for this resource beyond those defined in the resource itself. * * @remarks * The total dependencies are: resource.get_dependencies() + this list */ - dependencies: Array; + dependencies: Array; + /** + * Id of the boolean stack input that decides whether this resource is + * + * @remarks + * created at all. `None` means always create it. + * + * Set by `.enabled(input)` in the SDK. Setup emitters render the resource + * conditionally on the matching template variable, so a deployer who says no + * never gets the resource, its outputs, or anything derived from it. + */ + enabledWhen?: string | null | undefined; /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ - lifecycle: DeploymentPreparedStackLifecycle; + lifecycle: DeploymentPendingPreparedStackLifecycle; /** * Enable remote bindings for this resource (BYOB use case). * @@ -2977,7 +3100,7 @@ export type DeploymentPreparedStackResources = { /** * Represents the target cloud platform. */ -export const DeploymentSupportedPlatform = { +export const DeploymentPendingPreparedStackSupportedPlatform = { Aws: "aws", Gcp: "gcp", Azure: "azure", @@ -2989,14 +3112,14 @@ export const DeploymentSupportedPlatform = { /** * Represents the target cloud platform. */ -export type DeploymentSupportedPlatform = ClosedEnum< - typeof DeploymentSupportedPlatform +export type DeploymentPendingPreparedStackSupportedPlatform = ClosedEnum< + typeof DeploymentPendingPreparedStackSupportedPlatform >; /** * A bag of resources, unaware of any cloud. */ -export type DeploymentPreparedStack = { +export type DeploymentPendingPreparedStack = { /** * Unique identifier for the stack */ @@ -3004,2454 +3127,6450 @@ export type DeploymentPreparedStack = { /** * Input definitions required before setup or deployment can proceed. */ - inputs?: Array | undefined; + inputs?: Array | undefined; /** * Combined permissions configuration that contains both profiles and management */ - permissions?: DeploymentPermissions | undefined; + permissions?: DeploymentPendingPreparedStackPermissions | undefined; /** * Map of resource IDs to their configurations and lifecycle settings */ - resources: { [k: string]: DeploymentPreparedStackResources }; + resources: { [k: string]: DeploymentPendingPreparedStackResources }; /** * Which platforms this stack supports. When None, all platforms are supported. */ - supportedPlatforms?: Array | null | undefined; + supportedPlatforms?: + | Array + | null + | undefined; }; -export type DeploymentPreparedStackUnion = DeploymentPreparedStack | any; +export type DeploymentPendingPreparedStackUnion = + | DeploymentPendingPreparedStack + | any; -/** - * Runtime metadata for deployment state persistence - */ -export type DeploymentRuntimeMetadata = { +export const DeploymentPreparedStackTypeStringList = { + StringList: "stringList", +} as const; +export type DeploymentPreparedStackTypeStringList = ClosedEnum< + typeof DeploymentPreparedStackTypeStringList +>; + +export type DeploymentPreparedStackDefaultStringList = { + type: DeploymentPreparedStackTypeStringList; /** - * Hash of the environment variables snapshot that was last synced to the vault - * - * @remarks - * Used to avoid redundant sync operations during incremental deployment + * String list default. */ - lastSyncedEnvVarsHash?: string | null | undefined; + value: Array; +}; + +export const DeploymentPreparedStackTypeBoolean = { + Boolean: "boolean", +} as const; +export type DeploymentPreparedStackTypeBoolean = ClosedEnum< + typeof DeploymentPreparedStackTypeBoolean +>; + +export type DeploymentPreparedStackDefaultBoolean = { + type: DeploymentPreparedStackTypeBoolean; /** - * Exact vault keys owned by the deployment secret synchronizer. This - * - * @remarks - * inventory lets a later snapshot delete removed keys without listing or - * touching unrelated values in the same vault. + * Boolean default. */ - lastSyncedSecretNames?: Array | undefined; - preparedStack?: DeploymentPreparedStack | any | null | undefined; + value: boolean; +}; + +export const DeploymentPreparedStackTypeNumber = { + Number: "number", +} as const; +export type DeploymentPreparedStackTypeNumber = ClosedEnum< + typeof DeploymentPreparedStackTypeNumber +>; + +export type DeploymentPreparedStackDefaultNumber = { + type: DeploymentPreparedStackTypeNumber; /** - * Whether cross-account registry access has been successfully granted. - * - * @remarks - * Set to true after the manager successfully sets the ECR/GAR repo policy - * for this deployment's target account. Prevents redundant API calls on - * every reconcile tick. + * Number default. */ - registryAccessGranted?: boolean | undefined; + value: string; }; +export const DeploymentPreparedStackTypeString = { + String: "string", +} as const; +export type DeploymentPreparedStackTypeString = ClosedEnum< + typeof DeploymentPreparedStackTypeString +>; + +export type DeploymentPreparedStackDefaultString = { + type: DeploymentPreparedStackTypeString; + /** + * String default. + */ + value: string; +}; + +export type DeploymentPreparedStackDefaultUnion = + | DeploymentPreparedStackDefaultString + | DeploymentPreparedStackDefaultNumber + | DeploymentPreparedStackDefaultBoolean + | DeploymentPreparedStackDefaultStringList + | any; + /** - * Setup source that imported this deployment + * Environment variable handling for a stack input mapping. */ -export const DeploymentImportSource = { - Cloudformation: "cloudformation", - Terraform: "terraform", - Helm: "helm", +export const DeploymentPreparedStackTypeEnvEnum = { + Plain: "plain", + Secret: "secret", } as const; /** - * Setup source that imported this deployment + * Environment variable handling for a stack input mapping. */ -export type DeploymentImportSource = ClosedEnum; +export type DeploymentPreparedStackTypeEnvEnum = ClosedEnum< + typeof DeploymentPreparedStackTypeEnvEnum +>; + +export type DeploymentPreparedStackTypeUnion = + | DeploymentPreparedStackTypeEnvEnum + | any; /** - * Setup method that created the deployment record and owns setup-time resources. + * How a resolved stack input is injected into runtime environment variables. */ -export const DeploymentSetupMethod1 = { - Cloudformation: "cloudformation", - GoogleOauth: "google-oauth", - Terraform: "terraform", - Helm: "helm", - Cli: "cli", - Manual: "manual", +export type DeploymentPreparedStackEnv = { + /** + * Environment variable name. + */ + name: string; + /** + * Target resource IDs or patterns. None means every env-capable resource. + */ + targetResources?: Array | null | undefined; + type?: DeploymentPreparedStackTypeEnvEnum | any | null | undefined; +}; + +/** + * Primitive stack input kind. + */ +export const DeploymentPreparedStackKind = { + String: "string", + Secret: "secret", + Number: "number", + Integer: "integer", + Boolean: "boolean", + Enum: "enum", + StringList: "stringList", } as const; /** - * Setup method that created the deployment record and owns setup-time resources. + * Primitive stack input kind. */ -export type DeploymentSetupMethod1 = ClosedEnum; +export type DeploymentPreparedStackKind = ClosedEnum< + typeof DeploymentPreparedStackKind +>; /** - * Latest error information if the deployment is in a failed state + * Represents the target cloud platform. */ -export type DeploymentError = { +export const DeploymentPreparedStackPlatform = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", +} as const; +/** + * Represents the target cloud platform. + */ +export type DeploymentPreparedStackPlatform = ClosedEnum< + typeof DeploymentPreparedStackPlatform +>; + +/** + * Who can provide a stack input value. + */ +export const DeploymentPreparedStackProvidedBy = { + Developer: "developer", + Deployer: "deployer", +} as const; +/** + * Who can provide a stack input value. + */ +export type DeploymentPreparedStackProvidedBy = ClosedEnum< + typeof DeploymentPreparedStackProvidedBy +>; + +/** + * Portable stack input validation constraints. + */ +export type DeploymentPreparedStackValidation = { /** - * A unique identifier for the type of error. - * - * @remarks - * - * This should be a short, machine-readable string that can be used - * by clients to programmatically handle different error types. - * Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" + * Semantic format hint such as url. */ - code: string; + format?: string | null | undefined; /** - * Additional diagnostic information about the error context. - * - * @remarks - * - * This optional field can contain structured data providing more details - * about the error, such as validation errors, request parameters that - * caused the issue, or other relevant context information. + * Maximum number. */ - context?: any | null | undefined; + max?: string | null | undefined; /** - * Optional human-facing remediation hint. + * Maximum string-list items. */ - hint?: string | null | undefined; + maxItems?: number | null | undefined; /** - * HTTP status code for this error. - * - * @remarks - * - * Used when converting the error to an HTTP response. If None, falls back to - * the error type's default status code or 500. + * Maximum string length. */ - httpStatusCode?: number | null | undefined; + maxLength?: number | null | undefined; /** - * Indicates if this is an internal error that should not be exposed to users. - * - * @remarks - * - * When `true`, this error contains sensitive information or implementation - * details that should not be shown to end-users. Such errors should be - * logged for debugging but replaced with generic error messages in responses. + * Minimum number. */ - internal: boolean; + min?: string | null | undefined; /** - * Human-readable error message. - * - * @remarks - * - * This message should be clear and actionable for developers or end-users, - * providing context about what went wrong and potentially how to fix it. + * Minimum string-list items. */ - message: string; + minItems?: number | null | undefined; /** - * Indicates whether the operation that caused the error should be retried. - * - * @remarks - * - * When `true`, the error is transient and the operation might succeed - * if attempted again. When `false`, retrying the same operation is - * unlikely to succeed without changes. + * Minimum string length. */ - retryable: boolean; + minLength?: number | null | undefined; /** - * The underlying error that caused this error, creating an error chain. - * - * @remarks - * - * This allows for proper error propagation and debugging by maintaining - * the full context of how an error occurred through multiple layers - * of an application. + * Portable whole-value regex pattern. */ - source?: any | null | undefined; + pattern?: string | null | undefined; + /** + * Allowed string enum values. + */ + values?: Array | null | undefined; }; +export type DeploymentPreparedStackValidationUnion = + | DeploymentPreparedStackValidation + | any; + /** - * Snapshot of target environment variables for the deployment + * Stack input definition serialized into a release stack. */ -export type DeploymentTargetEnvironmentVariables = { +export type DeploymentPreparedStackInput = { + default?: + | DeploymentPreparedStackDefaultString + | DeploymentPreparedStackDefaultNumber + | DeploymentPreparedStackDefaultBoolean + | DeploymentPreparedStackDefaultStringList + | any + | null + | undefined; /** - * Environment variables in the snapshot + * Human-facing helper text. */ - variables: Array; + description: string; /** - * Deterministic hash of all variables for change detection + * Runtime env-var mappings for v1 input resolution. */ - hash: string; + env?: Array | undefined; /** - * ISO 8601 timestamp when snapshot was created + * Stable input ID used by CLI/API calls. */ - createdAt: Date; -}; - -/** - * Snapshot of current environment variables for the deployment - */ -export type DeploymentCurrentEnvironmentVariables = { + id: string; /** - * Environment variables in the snapshot + * Primitive stack input kind. */ - variables: Array; + kind: DeploymentPreparedStackKind; /** - * Deterministic hash of all variables for change detection + * Human-facing field label. */ - hash: string; + label: string; /** - * ISO 8601 timestamp when snapshot was created + * Example placeholder shown in UI. */ - createdAt: Date; -}; - -export type Deployment = { + placeholder?: string | null | undefined; /** - * Unique identifier for the deployment. + * Platforms where this input applies. */ - id: string; + platforms?: Array | null | undefined; /** - * Deployment name. + * Who can provide this value. */ - name: string; + providedBy: Array; /** - * Public subdomain for auto-generated domains + * Whether a resolved value is required before deployment can proceed. */ - publicSubdomain?: string | null | undefined; + required: boolean; + validation?: DeploymentPreparedStackValidation | any | null | undefined; +}; + +export const DeploymentPreparedStackManagementEnum = { + Auto: "auto", +} as const; +export type DeploymentPreparedStackManagementEnum = ClosedEnum< + typeof DeploymentPreparedStackManagementEnum +>; + +/** + * AWS-specific binding specification + */ +export type DeploymentPreparedStackOverrideAwResource = { /** - * Deployment status in the deployment lifecycle. - * - * @remarks - * - * For observe-only deployments with no release or stack state, `Running` - * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; - * resource health comes from inventory and resource heartbeat data. + * Optional condition for additional filtering (rare) */ - status: DeploymentStatus; + condition?: { [k: string]: { [k: string]: string } } | null | undefined; /** - * Unique identifier for the project. + * Resource ARNs to bind to */ - projectId: string; + resources: Array; +}; + +/** + * AWS-specific binding specification + */ +export type DeploymentPreparedStackOverrideAwStack = { /** - * Target platform for the deployment + * Optional condition for additional filtering (rare) */ - platform: DeploymentPlatform; + condition?: { [k: string]: { [k: string]: string } } | null | undefined; /** - * Underlying cloud platform for Kubernetes deployments. + * Resource ARNs to bind to */ - basePlatform?: DeploymentBasePlatform | null | undefined; + resources: Array; +}; + +/** + * Generic binding configuration for permissions + */ +export type DeploymentPreparedStackOverrideAwBinding = { /** - * Cloud region or location for the deployment. + * AWS-specific binding specification */ - region?: string | null | undefined; + resource?: DeploymentPreparedStackOverrideAwResource | undefined; /** - * DeploymentState protocol version owned by the runtime/manager + * AWS-specific binding specification */ - deploymentProtocolVersion: number; + stack?: DeploymentPreparedStackOverrideAwStack | undefined; +}; + +/** + * IAM effect. Defaults to Allow. + */ +export const DeploymentPreparedStackOverrideEffect = { + Allow: "Allow", + Deny: "Deny", +} as const; +/** + * IAM effect. Defaults to Allow. + */ +export type DeploymentPreparedStackOverrideEffect = ClosedEnum< + typeof DeploymentPreparedStackOverrideEffect +>; + +/** + * Grant permissions for a specific cloud platform + */ +export type DeploymentPreparedStackOverrideAwGrant = { /** - * ID of deployment group this deployment belongs to + * AWS IAM actions (only for AWS) */ - deploymentGroupId: string; + actions?: Array | null | undefined; /** - * Cloud environment information + * Azure actions (only for Azure) */ - environmentInfo?: - | DeploymentEnvironmentInfoGcp - | DeploymentEnvironmentInfoAzure - | DeploymentEnvironmentInfoLocal - | DeploymentEnvironmentInfoAws - | DeploymentEnvironmentInfoTest - | any - | null - | undefined; + dataActions?: Array | null | undefined; /** - * User-provided configuration (network, deployment model, approvals) + * GCP permissions that require an exact residual custom role. */ - stackSettings: DeploymentStackSettings; + permissions?: Array | null | undefined; /** - * State of infrastructure components managed by this deployment + * Provider predefined roles to bind directly. */ - stackState?: DeploymentStackState | null | undefined; + predefinedRoles?: Array | null | undefined; /** - * Runtime metadata for deployment state persistence + * GCP residual custom permissions to pair with predefined roles. */ - runtimeMetadata?: DeploymentRuntimeMetadata | null | undefined; + residualPermissions?: Array | null | undefined; +}; + +/** + * AWS-specific platform permission configuration + */ +export type DeploymentPreparedStackOverrideAw = { /** - * ID of the currently deployed release (actual state) + * Generic binding configuration for permissions */ - currentReleaseId?: string | null | undefined; + binding: DeploymentPreparedStackOverrideAwBinding; /** - * ID of the desired release for deployment/update (desired state) + * Short admin-facing description of why this entry exists. */ - desiredReleaseId?: string | null | undefined; + description?: string | null | undefined; /** - * ID of the pinned release + * IAM effect. Defaults to Allow. */ - pinnedReleaseId?: string | null | undefined; + effect?: DeploymentPreparedStackOverrideEffect | undefined; /** - * Setup source that imported this deployment + * Grant permissions for a specific cloud platform */ - importSource?: DeploymentImportSource | null | undefined; + grant: DeploymentPreparedStackOverrideAwGrant; /** - * Setup method that created the deployment record and owns setup-time resources. + * Stable admin-facing label for this permission entry. */ - setupMethod?: DeploymentSetupMethod1 | null | undefined; + label?: string | null | undefined; +}; + +/** + * Azure-specific binding specification + */ +export type DeploymentPreparedStackOverrideAzureResource = { /** - * Setup method metadata needed to guide privileged teardown. + * Scope (subscription/resource group/resource level) */ - setupMetadata?: { [k: string]: any | null } | null | undefined; + scope: string; +}; + +/** + * Azure-specific binding specification + */ +export type DeploymentPreparedStackOverrideAzureStack = { /** - * Imported setup target for compatibility checks + * Scope (subscription/resource group/resource level) */ - setupTarget?: string | null | undefined; + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type DeploymentPreparedStackOverrideAzureBinding = { /** - * Imported setup compatibility fingerprint + * Azure-specific binding specification */ - setupFingerprint?: string | null | undefined; + resource?: DeploymentPreparedStackOverrideAzureResource | undefined; /** - * Imported setup fingerprint algorithm version + * Azure-specific binding specification */ - setupFingerprintVersion?: number | null | undefined; + stack?: DeploymentPreparedStackOverrideAzureStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type DeploymentPreparedStackOverrideAzureGrant = { /** - * Display-only scope reported by the Operator manifest + * AWS IAM actions (only for AWS) */ - operatorScope?: string | null | undefined; + actions?: Array | null | undefined; /** - * Display-only permission tier reported by the Operator manifest + * Azure actions (only for Azure) */ - operatorPermission?: string | null | undefined; + dataActions?: Array | null | undefined; /** - * Version reported by the Operator + * GCP permissions that require an exact residual custom role. */ - operatorVersion?: string | null | undefined; + permissions?: Array | null | undefined; /** - * Capability state reported by the Operator + * Provider predefined roles to bind directly. */ - capabilities?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; /** - * Whether a retry has been requested for a failed deployment + * GCP residual custom permissions to pair with predefined roles. */ - retryRequested: boolean; + residualPermissions?: Array | null | undefined; +}; + +/** + * Azure-specific platform permission configuration + */ +export type DeploymentPreparedStackOverrideAzure = { /** - * Timestamp of the last received heartbeat from the deployment + * Generic binding configuration for permissions */ - lastHeartbeatAt?: Date | null | undefined; + binding: DeploymentPreparedStackOverrideAzureBinding; /** - * Latest error information if the deployment is in a failed state + * Short admin-facing description of why this entry exists. */ - error?: DeploymentError | null | undefined; + description?: string | null | undefined; /** - * Configuration of environment variables for the deployment + * Grant permissions for a specific cloud platform */ - environmentVariables?: Array | null | undefined; + grant: DeploymentPreparedStackOverrideAzureGrant; /** - * Snapshot of target environment variables for the deployment + * Stable admin-facing label for this permission entry. */ - targetEnvironmentVariables?: - | DeploymentTargetEnvironmentVariables + label?: string | null | undefined; +}; + +/** + * GCP IAM condition + */ +export type DeploymentPreparedStackOverrideConditionResource = { + expression: string; + title: string; +}; + +export type DeploymentPreparedStackOverrideResourceConditionUnion = + | DeploymentPreparedStackOverrideConditionResource + | any; + +/** + * GCP-specific binding specification + */ +export type DeploymentPreparedStackOverrideGcpResource = { + condition?: + | DeploymentPreparedStackOverrideConditionResource + | any | null | undefined; /** - * Snapshot of current environment variables for the deployment + * Scope (project/resource level) */ - currentEnvironmentVariables?: - | DeploymentCurrentEnvironmentVariables + scope: string; +}; + +/** + * GCP IAM condition + */ +export type DeploymentPreparedStackOverrideConditionStack = { + expression: string; + title: string; +}; + +export type DeploymentPreparedStackOverrideStackConditionUnion = + | DeploymentPreparedStackOverrideConditionStack + | any; + +/** + * GCP-specific binding specification + */ +export type DeploymentPreparedStackOverrideGcpStack = { + condition?: + | DeploymentPreparedStackOverrideConditionStack + | any | null | undefined; - createdAt: Date; - updatedAt: Date; - managerId: string; /** - * Unique identifier for the workspace. + * Scope (project/resource level) */ - workspaceId: string; + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type DeploymentPreparedStackOverrideGcpBinding = { + /** + * GCP-specific binding specification + */ + resource?: DeploymentPreparedStackOverrideGcpResource | undefined; + /** + * GCP-specific binding specification + */ + stack?: DeploymentPreparedStackOverrideGcpStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type DeploymentPreparedStackOverrideGcpGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * GCP-specific platform permission configuration + */ +export type DeploymentPreparedStackOverrideGcp = { + /** + * Generic binding configuration for permissions + */ + binding: DeploymentPreparedStackOverrideGcpBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: DeploymentPreparedStackOverrideGcpGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Platform-specific permission configurations + */ +export type DeploymentPreparedStackOverridePlatforms = { + /** + * AWS permission configurations + */ + aws?: Array | null | undefined; + /** + * Azure permission configurations + */ + azure?: Array | null | undefined; + /** + * GCP permission configurations + */ + gcp?: Array | null | undefined; +}; + +/** + * A permission set that can be applied across different cloud platforms + */ +export type DeploymentPreparedStackOverride = { + /** + * Human-readable description of what this permission set allows + */ + description: string; + /** + * Unique identifier for the permission set (e.g., "storage/data-read") + */ + id: string; + /** + * Platform-specific permission configurations + */ + platforms: DeploymentPreparedStackOverridePlatforms; +}; + +/** + * Reference to a permission set - either by name or inline definition + */ +export type DeploymentPreparedStackOverrideUnion = + | DeploymentPreparedStackOverride + | string; + +export type DeploymentPreparedStackManagement2 = { + /** + * Permission profile that maps resources to permission sets + * + * @remarks + * Key can be "*" for all resources or resource name for specific resource + */ + override: { [k: string]: Array }; +}; + +/** + * AWS-specific binding specification + */ +export type DeploymentPreparedStackExtendAwResource = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; + +/** + * AWS-specific binding specification + */ +export type DeploymentPreparedStackExtendAwStack = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; + +/** + * Generic binding configuration for permissions + */ +export type DeploymentPreparedStackExtendAwBinding = { + /** + * AWS-specific binding specification + */ + resource?: DeploymentPreparedStackExtendAwResource | undefined; + /** + * AWS-specific binding specification + */ + stack?: DeploymentPreparedStackExtendAwStack | undefined; +}; + +/** + * IAM effect. Defaults to Allow. + */ +export const DeploymentPreparedStackExtendEffect = { + Allow: "Allow", + Deny: "Deny", +} as const; +/** + * IAM effect. Defaults to Allow. + */ +export type DeploymentPreparedStackExtendEffect = ClosedEnum< + typeof DeploymentPreparedStackExtendEffect +>; + +/** + * Grant permissions for a specific cloud platform + */ +export type DeploymentPreparedStackExtendAwGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * AWS-specific platform permission configuration + */ +export type DeploymentPreparedStackExtendAw = { + /** + * Generic binding configuration for permissions + */ + binding: DeploymentPreparedStackExtendAwBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * IAM effect. Defaults to Allow. + */ + effect?: DeploymentPreparedStackExtendEffect | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: DeploymentPreparedStackExtendAwGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; }; -/** @internal */ -export const DeploymentStatus$inboundSchema: z.ZodEnum< - typeof DeploymentStatus -> = z.enum(DeploymentStatus); +/** + * Azure-specific binding specification + */ +export type DeploymentPreparedStackExtendAzureResource = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; + +/** + * Azure-specific binding specification + */ +export type DeploymentPreparedStackExtendAzureStack = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type DeploymentPreparedStackExtendAzureBinding = { + /** + * Azure-specific binding specification + */ + resource?: DeploymentPreparedStackExtendAzureResource | undefined; + /** + * Azure-specific binding specification + */ + stack?: DeploymentPreparedStackExtendAzureStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type DeploymentPreparedStackExtendAzureGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * Azure-specific platform permission configuration + */ +export type DeploymentPreparedStackExtendAzure = { + /** + * Generic binding configuration for permissions + */ + binding: DeploymentPreparedStackExtendAzureBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: DeploymentPreparedStackExtendAzureGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * GCP IAM condition + */ +export type DeploymentPreparedStackExtendConditionResource = { + expression: string; + title: string; +}; + +export type DeploymentPreparedStackExtendResourceConditionUnion = + | DeploymentPreparedStackExtendConditionResource + | any; + +/** + * GCP-specific binding specification + */ +export type DeploymentPreparedStackExtendGcpResource = { + condition?: + | DeploymentPreparedStackExtendConditionResource + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + +/** + * GCP IAM condition + */ +export type DeploymentPreparedStackExtendConditionStack = { + expression: string; + title: string; +}; + +export type DeploymentPreparedStackExtendStackConditionUnion = + | DeploymentPreparedStackExtendConditionStack + | any; + +/** + * GCP-specific binding specification + */ +export type DeploymentPreparedStackExtendGcpStack = { + condition?: + | DeploymentPreparedStackExtendConditionStack + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type DeploymentPreparedStackExtendGcpBinding = { + /** + * GCP-specific binding specification + */ + resource?: DeploymentPreparedStackExtendGcpResource | undefined; + /** + * GCP-specific binding specification + */ + stack?: DeploymentPreparedStackExtendGcpStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type DeploymentPreparedStackExtendGcpGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * GCP-specific platform permission configuration + */ +export type DeploymentPreparedStackExtendGcp = { + /** + * Generic binding configuration for permissions + */ + binding: DeploymentPreparedStackExtendGcpBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: DeploymentPreparedStackExtendGcpGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Platform-specific permission configurations + */ +export type DeploymentPreparedStackExtendPlatforms = { + /** + * AWS permission configurations + */ + aws?: Array | null | undefined; + /** + * Azure permission configurations + */ + azure?: Array | null | undefined; + /** + * GCP permission configurations + */ + gcp?: Array | null | undefined; +}; + +/** + * A permission set that can be applied across different cloud platforms + */ +export type DeploymentPreparedStackExtend = { + /** + * Human-readable description of what this permission set allows + */ + description: string; + /** + * Unique identifier for the permission set (e.g., "storage/data-read") + */ + id: string; + /** + * Platform-specific permission configurations + */ + platforms: DeploymentPreparedStackExtendPlatforms; +}; + +/** + * Reference to a permission set - either by name or inline definition + */ +export type DeploymentPreparedStackExtendUnion = + | DeploymentPreparedStackExtend + | string; + +export type DeploymentPreparedStackManagement1 = { + /** + * Permission profile that maps resources to permission sets + * + * @remarks + * Key can be "*" for all resources or resource name for specific resource + */ + extend: { [k: string]: Array }; +}; + +/** + * Management permissions configuration for stack management access + */ +export type DeploymentPreparedStackManagementUnion = + | DeploymentPreparedStackManagement1 + | DeploymentPreparedStackManagement2 + | DeploymentPreparedStackManagementEnum; + +/** + * AWS-specific binding specification + */ +export type DeploymentPreparedStackProfileAwResource = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; + +/** + * AWS-specific binding specification + */ +export type DeploymentPreparedStackProfileAwStack = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; + +/** + * Generic binding configuration for permissions + */ +export type DeploymentPreparedStackProfileAwBinding = { + /** + * AWS-specific binding specification + */ + resource?: DeploymentPreparedStackProfileAwResource | undefined; + /** + * AWS-specific binding specification + */ + stack?: DeploymentPreparedStackProfileAwStack | undefined; +}; + +/** + * IAM effect. Defaults to Allow. + */ +export const DeploymentPreparedStackProfileEffect = { + Allow: "Allow", + Deny: "Deny", +} as const; +/** + * IAM effect. Defaults to Allow. + */ +export type DeploymentPreparedStackProfileEffect = ClosedEnum< + typeof DeploymentPreparedStackProfileEffect +>; + +/** + * Grant permissions for a specific cloud platform + */ +export type DeploymentPreparedStackProfileAwGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * AWS-specific platform permission configuration + */ +export type DeploymentPreparedStackProfileAw = { + /** + * Generic binding configuration for permissions + */ + binding: DeploymentPreparedStackProfileAwBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * IAM effect. Defaults to Allow. + */ + effect?: DeploymentPreparedStackProfileEffect | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: DeploymentPreparedStackProfileAwGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Azure-specific binding specification + */ +export type DeploymentPreparedStackProfileAzureResource = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; + +/** + * Azure-specific binding specification + */ +export type DeploymentPreparedStackProfileAzureStack = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type DeploymentPreparedStackProfileAzureBinding = { + /** + * Azure-specific binding specification + */ + resource?: DeploymentPreparedStackProfileAzureResource | undefined; + /** + * Azure-specific binding specification + */ + stack?: DeploymentPreparedStackProfileAzureStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type DeploymentPreparedStackProfileAzureGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * Azure-specific platform permission configuration + */ +export type DeploymentPreparedStackProfileAzure = { + /** + * Generic binding configuration for permissions + */ + binding: DeploymentPreparedStackProfileAzureBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: DeploymentPreparedStackProfileAzureGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * GCP IAM condition + */ +export type DeploymentPreparedStackProfileConditionResource = { + expression: string; + title: string; +}; + +export type DeploymentPreparedStackProfileResourceConditionUnion = + | DeploymentPreparedStackProfileConditionResource + | any; + +/** + * GCP-specific binding specification + */ +export type DeploymentPreparedStackProfileGcpResource = { + condition?: + | DeploymentPreparedStackProfileConditionResource + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + +/** + * GCP IAM condition + */ +export type DeploymentPreparedStackProfileConditionStack = { + expression: string; + title: string; +}; + +export type DeploymentPreparedStackProfileStackConditionUnion = + | DeploymentPreparedStackProfileConditionStack + | any; + +/** + * GCP-specific binding specification + */ +export type DeploymentPreparedStackProfileGcpStack = { + condition?: + | DeploymentPreparedStackProfileConditionStack + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type DeploymentPreparedStackProfileGcpBinding = { + /** + * GCP-specific binding specification + */ + resource?: DeploymentPreparedStackProfileGcpResource | undefined; + /** + * GCP-specific binding specification + */ + stack?: DeploymentPreparedStackProfileGcpStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type DeploymentPreparedStackProfileGcpGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * GCP-specific platform permission configuration + */ +export type DeploymentPreparedStackProfileGcp = { + /** + * Generic binding configuration for permissions + */ + binding: DeploymentPreparedStackProfileGcpBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: DeploymentPreparedStackProfileGcpGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Platform-specific permission configurations + */ +export type DeploymentPreparedStackProfilePlatforms = { + /** + * AWS permission configurations + */ + aws?: Array | null | undefined; + /** + * Azure permission configurations + */ + azure?: Array | null | undefined; + /** + * GCP permission configurations + */ + gcp?: Array | null | undefined; +}; + +/** + * A permission set that can be applied across different cloud platforms + */ +export type DeploymentPreparedStackProfile = { + /** + * Human-readable description of what this permission set allows + */ + description: string; + /** + * Unique identifier for the permission set (e.g., "storage/data-read") + */ + id: string; + /** + * Platform-specific permission configurations + */ + platforms: DeploymentPreparedStackProfilePlatforms; +}; + +/** + * Reference to a permission set - either by name or inline definition + */ +export type DeploymentPreparedStackProfileUnion = + | DeploymentPreparedStackProfile + | string; + +/** + * Combined permissions configuration that contains both profiles and management + */ +export type DeploymentPreparedStackPermissions = { + /** + * Management permissions configuration for stack management access + */ + management?: + | DeploymentPreparedStackManagement1 + | DeploymentPreparedStackManagement2 + | DeploymentPreparedStackManagementEnum + | undefined; + /** + * Permission profiles that define access control for compute services + * + * @remarks + * Key is the profile name, value is the permission configuration + */ + profiles: { + [k: string]: { + [k: string]: Array; + }; + }; +}; + +/** + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + */ +export type DeploymentPreparedStackConfig = { + /** + * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. + */ + id: string; + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + type: string; + additionalProperties?: { [k: string]: any | null } | undefined; +}; + +/** + * Reference to a resource by its stable id and resource type. + */ +export type DeploymentPreparedStackDependency = { + id: string; + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + type: string; +}; + +/** + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ +export const DeploymentPreparedStackLifecycle = { + Frozen: "frozen", + Live: "live", +} as const; +/** + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ +export type DeploymentPreparedStackLifecycle = ClosedEnum< + typeof DeploymentPreparedStackLifecycle +>; + +export type DeploymentPreparedStackResources = { + /** + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + */ + config: DeploymentPreparedStackConfig; + /** + * Additional dependencies for this resource beyond those defined in the resource itself. + * + * @remarks + * The total dependencies are: resource.get_dependencies() + this list + */ + dependencies: Array; + /** + * Id of the boolean stack input that decides whether this resource is + * + * @remarks + * created at all. `None` means always create it. + * + * Set by `.enabled(input)` in the SDK. Setup emitters render the resource + * conditionally on the matching template variable, so a deployer who says no + * never gets the resource, its outputs, or anything derived from it. + */ + enabledWhen?: string | null | undefined; + /** + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ + lifecycle: DeploymentPreparedStackLifecycle; + /** + * Enable remote bindings for this resource (BYOB use case). + * + * @remarks + * When true, binding params are synced to StackState's `remote_binding_params`. + * Default: false (prevents sensitive data in synced state). + */ + remoteAccess?: boolean | undefined; +}; + +/** + * Represents the target cloud platform. + */ +export const DeploymentPreparedStackSupportedPlatform = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", +} as const; +/** + * Represents the target cloud platform. + */ +export type DeploymentPreparedStackSupportedPlatform = ClosedEnum< + typeof DeploymentPreparedStackSupportedPlatform +>; + +/** + * A bag of resources, unaware of any cloud. + */ +export type DeploymentPreparedStack = { + /** + * Unique identifier for the stack + */ + id: string; + /** + * Input definitions required before setup or deployment can proceed. + */ + inputs?: Array | undefined; + /** + * Combined permissions configuration that contains both profiles and management + */ + permissions?: DeploymentPreparedStackPermissions | undefined; + /** + * Map of resource IDs to their configurations and lifecycle settings + */ + resources: { [k: string]: DeploymentPreparedStackResources }; + /** + * Which platforms this stack supports. When None, all platforms are supported. + */ + supportedPlatforms?: + | Array + | null + | undefined; +}; + +export type DeploymentPreparedStackUnion = DeploymentPreparedStack | any; + +/** + * One-shot authority for a setup re-import to replace setup-owned resources. + */ +export type DeploymentSetupUpdateAuthorization = { + /** + * Frozen resource projection from the last successful deployment. + */ + baselineFrozenDigest: string; + /** + * Unique revision used by persistence layers for compare-and-swap updates. + */ + nonce: string; + /** + * Release whose stack was prepared by setup. + */ + releaseId: string; + /** + * Exact setup artifact revision that authored this authority. + */ + setupFingerprint: string; + /** + * Setup fingerprint contract version. + */ + setupFingerprintVersion: number; + /** + * Stable setup target recorded on the imported deployment. + */ + setupTarget: string; + /** + * Frozen resource projection prepared by the setup re-import. + */ + targetFrozenDigest: string; +}; + +export type DeploymentSetupUpdateAuthorizationUnion = + | DeploymentSetupUpdateAuthorization + | any; + +/** + * Runtime metadata for deployment state persistence + */ +export type DeploymentRuntimeMetadata = { + /** + * Actor that owns structural work during the initial setup phase. + */ + initialSetupAuthority?: DeploymentInitialSetupAuthority | undefined; + /** + * Hash of the environment variables snapshot that was last synced to the vault + * + * @remarks + * Used to avoid redundant sync operations during incremental deployment + */ + lastSyncedEnvVarsHash?: string | null | undefined; + /** + * Exact vault keys owned by the deployment secret synchronizer. This + * + * @remarks + * inventory lets a later snapshot delete removed keys without listing or + * touching unrelated values in the same vault. + */ + lastSyncedSecretNames?: Array | undefined; + pendingPreparedStack?: + | DeploymentPendingPreparedStack + | any + | null + | undefined; + /** + * Canonical resolved answers for inputs that gate Frozen resources, + * + * @remarks + * keyed by input id, recorded when the deployment is created or its + * setup import registers. + * + * A frozen gate's answer is fixed for the deployment's lifetime: the + * update path refuses input values that conflict with these, and a Live + * resource sharing such an input resolves the persisted answer forever. + */ + persistedGateAnswers?: { [k: string]: boolean } | undefined; + preparedStack?: DeploymentPreparedStack | any | null | undefined; + /** + * Whether cross-account registry access has been successfully granted. + * + * @remarks + * Set to true after the manager successfully sets the ECR/GAR repo policy + * for this deployment's target account. Prevents redundant API calls on + * every reconcile tick. + */ + registryAccessGranted?: boolean | undefined; + setupUpdateAuthorization?: + | DeploymentSetupUpdateAuthorization + | any + | null + | undefined; +}; + +/** + * Setup source that imported this deployment + */ +export const DeploymentImportSource = { + Cloudformation: "cloudformation", + Terraform: "terraform", + Helm: "helm", +} as const; +/** + * Setup source that imported this deployment + */ +export type DeploymentImportSource = ClosedEnum; + +/** + * Setup method that created the deployment record and owns setup-time resources. + */ +export const DeploymentSetupMethod1 = { + Cloudformation: "cloudformation", + GoogleOauth: "google-oauth", + Terraform: "terraform", + Helm: "helm", + Cli: "cli", + Manual: "manual", +} as const; +/** + * Setup method that created the deployment record and owns setup-time resources. + */ +export type DeploymentSetupMethod1 = ClosedEnum; + +/** + * Latest error information if the deployment is in a failed state + */ +export type DeploymentError = { + /** + * A unique identifier for the type of error. + * + * @remarks + * + * This should be a short, machine-readable string that can be used + * by clients to programmatically handle different error types. + * Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" + */ + code: string; + /** + * Additional diagnostic information about the error context. + * + * @remarks + * + * This optional field can contain structured data providing more details + * about the error, such as validation errors, request parameters that + * caused the issue, or other relevant context information. + */ + context?: any | null | undefined; + /** + * Optional human-facing remediation hint. + */ + hint?: string | null | undefined; + /** + * HTTP status code for this error. + * + * @remarks + * + * Used when converting the error to an HTTP response. If None, falls back to + * the error type's default status code or 500. + */ + httpStatusCode?: number | null | undefined; + /** + * Indicates if this is an internal error that should not be exposed to users. + * + * @remarks + * + * When `true`, this error contains sensitive information or implementation + * details that should not be shown to end-users. Such errors should be + * logged for debugging but replaced with generic error messages in responses. + */ + internal: boolean; + /** + * Human-readable error message. + * + * @remarks + * + * This message should be clear and actionable for developers or end-users, + * providing context about what went wrong and potentially how to fix it. + */ + message: string; + /** + * Indicates whether the operation that caused the error should be retried. + * + * @remarks + * + * When `true`, the error is transient and the operation might succeed + * if attempted again. When `false`, retrying the same operation is + * unlikely to succeed without changes. + */ + retryable: boolean; + /** + * The underlying error that caused this error, creating an error chain. + * + * @remarks + * + * This allows for proper error propagation and debugging by maintaining + * the full context of how an error occurred through multiple layers + * of an application. + */ + source?: any | null | undefined; +}; + +/** + * Snapshot of target environment variables for the deployment + */ +export type DeploymentTargetEnvironmentVariables = { + /** + * Environment variables in the snapshot + */ + variables: Array; + /** + * Deterministic hash of all variables for change detection + */ + hash: string; + /** + * ISO 8601 timestamp when snapshot was created + */ + createdAt: Date; +}; + +/** + * Snapshot of current environment variables for the deployment + */ +export type DeploymentCurrentEnvironmentVariables = { + /** + * Environment variables in the snapshot + */ + variables: Array; + /** + * Deterministic hash of all variables for change detection + */ + hash: string; + /** + * ISO 8601 timestamp when snapshot was created + */ + createdAt: Date; +}; + +export type Deployment = { + /** + * Unique identifier for the deployment. + */ + id: string; + /** + * Deployment name. + */ + name: string; + /** + * Public subdomain for auto-generated domains + */ + publicSubdomain?: string | null | undefined; + /** + * Deployment status in the deployment lifecycle. + * + * @remarks + * + * For observe-only deployments with no release or stack state, `Running` + * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; + * resource health comes from inventory and resource heartbeat data. + */ + status: DeploymentStatus; + /** + * Unique identifier for the project. + */ + projectId: string; + /** + * Target platform for the deployment + */ + platform: DeploymentPlatform; + /** + * Underlying cloud platform for Kubernetes deployments. + */ + basePlatform?: DeploymentBasePlatform | null | undefined; + /** + * Cloud region or location for the deployment. + */ + region?: string | null | undefined; + /** + * DeploymentState protocol version owned by the runtime/manager + */ + deploymentProtocolVersion: number; + /** + * ID of deployment group this deployment belongs to + */ + deploymentGroupId: string; + /** + * Cloud environment information + */ + environmentInfo?: + | DeploymentEnvironmentInfoGcp + | DeploymentEnvironmentInfoAzure + | DeploymentEnvironmentInfoLocal + | DeploymentEnvironmentInfoAws + | DeploymentEnvironmentInfoTest + | any + | null + | undefined; + /** + * User-provided configuration (network, deployment model, approvals) + */ + stackSettings: DeploymentStackSettings; + /** + * State of infrastructure components managed by this deployment + */ + stackState?: DeploymentStackState | null | undefined; + /** + * Runtime metadata for deployment state persistence + */ + runtimeMetadata?: DeploymentRuntimeMetadata | null | undefined; + /** + * ID of the currently deployed release (actual state) + */ + currentReleaseId?: string | null | undefined; + /** + * ID of the desired release for deployment/update (desired state) + */ + desiredReleaseId?: string | null | undefined; + /** + * ID of the pinned release + */ + pinnedReleaseId?: string | null | undefined; + releaseChannel: string; + /** + * Setup source that imported this deployment + */ + importSource?: DeploymentImportSource | null | undefined; + /** + * Setup method that created the deployment record and owns setup-time resources. + */ + setupMethod?: DeploymentSetupMethod1 | null | undefined; + /** + * Setup method metadata needed to guide privileged teardown. + */ + setupMetadata?: { [k: string]: any | null } | null | undefined; + /** + * Imported setup target for compatibility checks + */ + setupTarget?: string | null | undefined; + /** + * Imported setup compatibility fingerprint + */ + setupFingerprint?: string | null | undefined; + /** + * Imported setup fingerprint algorithm version + */ + setupFingerprintVersion?: number | null | undefined; + /** + * Display-only scope reported by the Operator manifest + */ + operatorScope?: string | null | undefined; + /** + * Display-only permission tier reported by the Operator manifest + */ + operatorPermission?: string | null | undefined; + /** + * Version reported by the Operator + */ + operatorVersion?: string | null | undefined; + /** + * Capability state reported by the Operator + */ + capabilities?: Array | null | undefined; + /** + * Whether a retry has been requested for a failed deployment + */ + retryRequested: boolean; + /** + * Timestamp of the last received heartbeat from the deployment + */ + lastHeartbeatAt?: Date | null | undefined; + /** + * Latest error information if the deployment is in a failed state + */ + error?: DeploymentError | null | undefined; + /** + * Configuration of environment variables for the deployment + */ + environmentVariables?: Array | null | undefined; + /** + * Snapshot of target environment variables for the deployment + */ + targetEnvironmentVariables?: + | DeploymentTargetEnvironmentVariables + | null + | undefined; + /** + * Snapshot of current environment variables for the deployment + */ + currentEnvironmentVariables?: + | DeploymentCurrentEnvironmentVariables + | null + | undefined; + createdAt: Date; + updatedAt: Date; + managerId: string; + /** + * Unique identifier for the workspace. + */ + workspaceId: string; +}; + +/** @internal */ +export const DeploymentStatus$inboundSchema: z.ZodEnum< + typeof DeploymentStatus +> = z.enum(DeploymentStatus); + +/** @internal */ +export const DeploymentPlatform$inboundSchema: z.ZodEnum< + typeof DeploymentPlatform +> = z.enum(DeploymentPlatform); + +/** @internal */ +export const DeploymentBasePlatform$inboundSchema: z.ZodEnum< + typeof DeploymentBasePlatform +> = z.enum(DeploymentBasePlatform); + +/** @internal */ +export const DeploymentPlatformTest$inboundSchema: z.ZodEnum< + typeof DeploymentPlatformTest +> = z.enum(DeploymentPlatformTest); + +/** @internal */ +export const DeploymentEnvironmentInfoTest$inboundSchema: z.ZodType< + DeploymentEnvironmentInfoTest, + unknown +> = z.object({ + testId: z.string(), + platform: DeploymentPlatformTest$inboundSchema, +}); + +export function deploymentEnvironmentInfoTestFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentEnvironmentInfoTest$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentEnvironmentInfoTest' from JSON`, + ); +} + +/** @internal */ +export const DeploymentPlatformLocal$inboundSchema: z.ZodEnum< + typeof DeploymentPlatformLocal +> = z.enum(DeploymentPlatformLocal); + +/** @internal */ +export const DeploymentEnvironmentInfoLocal$inboundSchema: z.ZodType< + DeploymentEnvironmentInfoLocal, + unknown +> = z.object({ + arch: z.string(), + hostname: z.string(), + os: z.string(), + platform: DeploymentPlatformLocal$inboundSchema, +}); + +export function deploymentEnvironmentInfoLocalFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentEnvironmentInfoLocal$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentEnvironmentInfoLocal' from JSON`, + ); +} + +/** @internal */ +export const DeploymentPlatformAzure$inboundSchema: z.ZodEnum< + typeof DeploymentPlatformAzure +> = z.enum(DeploymentPlatformAzure); + +/** @internal */ +export const DeploymentEnvironmentInfoAzure$inboundSchema: z.ZodType< + DeploymentEnvironmentInfoAzure, + unknown +> = z.object({ + location: z.string(), + subscriptionId: z.string(), + tenantId: z.string(), + platform: DeploymentPlatformAzure$inboundSchema, +}); + +export function deploymentEnvironmentInfoAzureFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentEnvironmentInfoAzure$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentEnvironmentInfoAzure' from JSON`, + ); +} + +/** @internal */ +export const DeploymentPlatformGcp$inboundSchema: z.ZodEnum< + typeof DeploymentPlatformGcp +> = z.enum(DeploymentPlatformGcp); + +/** @internal */ +export const DeploymentEnvironmentInfoGcp$inboundSchema: z.ZodType< + DeploymentEnvironmentInfoGcp, + unknown +> = z.object({ + projectId: z.string(), + projectNumber: z.string(), + region: z.string(), + platform: DeploymentPlatformGcp$inboundSchema, +}); + +export function deploymentEnvironmentInfoGcpFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentEnvironmentInfoGcp$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentEnvironmentInfoGcp' from JSON`, + ); +} + +/** @internal */ +export const DeploymentPlatformAws$inboundSchema: z.ZodEnum< + typeof DeploymentPlatformAws +> = z.enum(DeploymentPlatformAws); + +/** @internal */ +export const DeploymentEnvironmentInfoAws$inboundSchema: z.ZodType< + DeploymentEnvironmentInfoAws, + unknown +> = z.object({ + accountId: z.string(), + region: z.string(), + platform: DeploymentPlatformAws$inboundSchema, +}); + +export function deploymentEnvironmentInfoAwsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentEnvironmentInfoAws$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentEnvironmentInfoAws' from JSON`, + ); +} + +/** @internal */ +export const DeploymentEnvironmentInfoUnion$inboundSchema: z.ZodType< + DeploymentEnvironmentInfoUnion, + unknown +> = z.union([ + z.lazy(() => DeploymentEnvironmentInfoGcp$inboundSchema), + z.lazy(() => DeploymentEnvironmentInfoAzure$inboundSchema), + z.lazy(() => DeploymentEnvironmentInfoLocal$inboundSchema), + z.lazy(() => DeploymentEnvironmentInfoAws$inboundSchema), + z.lazy(() => DeploymentEnvironmentInfoTest$inboundSchema), + z.any(), +]); + +export function deploymentEnvironmentInfoUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentEnvironmentInfoUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentEnvironmentInfoUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentFailureDomains2$inboundSchema: z.ZodType< + DeploymentFailureDomains2, + unknown +> = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), +}); + +export function deploymentFailureDomains2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentFailureDomains2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentFailureDomains2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentFailureDomainsUnion2$inboundSchema: z.ZodType< + DeploymentFailureDomainsUnion2, + unknown +> = z.union([z.lazy(() => DeploymentFailureDomains2$inboundSchema), z.any()]); + +export function deploymentFailureDomainsUnion2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentFailureDomainsUnion2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentFailureDomainsUnion2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentPoolsAutoscale$inboundSchema: z.ZodType< + DeploymentPoolsAutoscale, + unknown +> = z.object({ + failure_domains: z.nullable( + z.union([z.lazy(() => DeploymentFailureDomains2$inboundSchema), z.any()]), + ).optional(), + machine: z.nullable(z.string()).optional(), + max: z.int(), + min: z.int(), + mode: z.literal("autoscale"), +}).transform((v) => { + return remap$(v, { + "failure_domains": "failureDomains", + }); +}); + +export function deploymentPoolsAutoscaleFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentPoolsAutoscale$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPoolsAutoscale' from JSON`, + ); +} + +/** @internal */ +export const DeploymentFailureDomains1$inboundSchema: z.ZodType< + DeploymentFailureDomains1, + unknown +> = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), +}); + +export function deploymentFailureDomains1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentFailureDomains1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentFailureDomains1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentFailureDomainsUnion1$inboundSchema: z.ZodType< + DeploymentFailureDomainsUnion1, + unknown +> = z.union([z.lazy(() => DeploymentFailureDomains1$inboundSchema), z.any()]); + +export function deploymentFailureDomainsUnion1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentFailureDomainsUnion1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentFailureDomainsUnion1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentPoolsFixed$inboundSchema: z.ZodType< + DeploymentPoolsFixed, + unknown +> = z.object({ + failure_domains: z.nullable( + z.union([z.lazy(() => DeploymentFailureDomains1$inboundSchema), z.any()]), + ).optional(), + machine: z.nullable(z.string()).optional(), + machines: z.int(), + mode: z.literal("fixed"), +}).transform((v) => { + return remap$(v, { + "failure_domains": "failureDomains", + }); +}); + +export function deploymentPoolsFixedFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentPoolsFixed$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPoolsFixed' from JSON`, + ); +} + +/** @internal */ +export const DeploymentPoolsUnion$inboundSchema: z.ZodType< + DeploymentPoolsUnion, + unknown +> = z.union([ + z.lazy(() => DeploymentPoolsFixed$inboundSchema), + z.lazy(() => DeploymentPoolsAutoscale$inboundSchema), +]); + +export function deploymentPoolsUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentPoolsUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPoolsUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentCompute$inboundSchema: z.ZodType< + DeploymentCompute, + unknown +> = z.object({ + pools: z.record( + z.string(), + z.union([ + z.lazy(() => DeploymentPoolsFixed$inboundSchema), + z.lazy(() => DeploymentPoolsAutoscale$inboundSchema), + ]), + ).optional(), +}); + +export function deploymentComputeFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentCompute$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentCompute' from JSON`, + ); +} + +/** @internal */ +export const DeploymentComputeUnion$inboundSchema: z.ZodType< + DeploymentComputeUnion, + unknown +> = z.union([z.lazy(() => DeploymentCompute$inboundSchema), z.any()]); + +export function deploymentComputeUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentComputeUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentComputeUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDeploymentModel$inboundSchema: z.ZodEnum< + typeof DeploymentDeploymentModel +> = z.enum(DeploymentDeploymentModel); + +/** @internal */ +export const DeploymentAws$inboundSchema: z.ZodType = z + .object({ + certificateArn: z.string(), + }); + +export function deploymentAwsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentAws$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentAws' from JSON`, + ); +} + +/** @internal */ +export const DeploymentAwsUnion$inboundSchema: z.ZodType< + DeploymentAwsUnion, + unknown +> = z.union([z.lazy(() => DeploymentAws$inboundSchema), z.any()]); + +export function deploymentAwsUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentAwsUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentAwsUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentAzureStackSettings$inboundSchema: z.ZodType< + DeploymentAzureStackSettings, + unknown +> = z.object({ + keyVaultCertificateId: z.string(), + keyVaultResourceId: z.nullable(z.string()).optional(), +}); + +export function deploymentAzureStackSettingsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentAzureStackSettings$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentAzureStackSettings' from JSON`, + ); +} + +/** @internal */ +export const DeploymentAzureUnion$inboundSchema: z.ZodType< + DeploymentAzureUnion, + unknown +> = z.union([ + z.lazy(() => DeploymentAzureStackSettings$inboundSchema), + z.any(), +]); + +export function deploymentAzureUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentAzureUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentAzureUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentGcpStackSettings$inboundSchema: z.ZodType< + DeploymentGcpStackSettings, + unknown +> = z.object({ + certificateName: z.string(), +}); + +export function deploymentGcpStackSettingsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentGcpStackSettings$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentGcpStackSettings' from JSON`, + ); +} + +/** @internal */ +export const DeploymentGcpUnion$inboundSchema: z.ZodType< + DeploymentGcpUnion, + unknown +> = z.union([z.lazy(() => DeploymentGcpStackSettings$inboundSchema), z.any()]); + +export function deploymentGcpUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentGcpUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentGcpUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentTlsSecretRef$inboundSchema: z.ZodType< + DeploymentTlsSecretRef, + unknown +> = z.object({ + namespace: z.nullable(z.string()).optional(), + secretName: z.string(), +}); + +export function deploymentTlsSecretRefFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentTlsSecretRef$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentTlsSecretRef' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDomainsKubernetes$inboundSchema: z.ZodType< + DeploymentDomainsKubernetes, + unknown +> = z.object({ + tlsSecretRef: z.lazy(() => DeploymentTlsSecretRef$inboundSchema), +}); + +export function deploymentDomainsKubernetesFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentDomainsKubernetes$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDomainsKubernetes' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDomainsKubernetesUnion$inboundSchema: z.ZodType< + DeploymentDomainsKubernetesUnion, + unknown +> = z.union([z.lazy(() => DeploymentDomainsKubernetes$inboundSchema), z.any()]); + +export function deploymentDomainsKubernetesUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentDomainsKubernetesUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDomainsKubernetesUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDomainsCertificate$inboundSchema: z.ZodType< + DeploymentDomainsCertificate, + unknown +> = z.object({ + aws: z.nullable(z.union([z.lazy(() => DeploymentAws$inboundSchema), z.any()])) + .optional(), + azure: z.nullable( + z.union([ + z.lazy(() => DeploymentAzureStackSettings$inboundSchema), + z.any(), + ]), + ).optional(), + gcp: z.nullable( + z.union([z.lazy(() => DeploymentGcpStackSettings$inboundSchema), z.any()]), + ).optional(), + kubernetes: z.nullable( + z.union([z.lazy(() => DeploymentDomainsKubernetes$inboundSchema), z.any()]), + ).optional(), +}); + +export function deploymentDomainsCertificateFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentDomainsCertificate$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDomainsCertificate' from JSON`, + ); +} + +/** @internal */ +export const DeploymentCustomDomains$inboundSchema: z.ZodType< + DeploymentCustomDomains, + unknown +> = z.object({ + certificate: z.lazy(() => DeploymentDomainsCertificate$inboundSchema), + domain: z.string(), +}); + +export function deploymentCustomDomainsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentCustomDomains$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentCustomDomains' from JSON`, + ); +} + +/** @internal */ +export const DeploymentModeLoadBalancer$inboundSchema: z.ZodEnum< + typeof DeploymentModeLoadBalancer +> = z.enum(DeploymentModeLoadBalancer); + +/** @internal */ +export const DeploymentPublicEndpointTargetLoadBalancer$inboundSchema: + z.ZodType = z.object({ + cnameTarget: z.string(), + mode: DeploymentModeLoadBalancer$inboundSchema, + }); + +export function deploymentPublicEndpointTargetLoadBalancerFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentPublicEndpointTargetLoadBalancer, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentPublicEndpointTargetLoadBalancer$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPublicEndpointTargetLoadBalancer' from JSON`, + ); +} + +/** @internal */ +export const DeploymentModeMachineAddresses$inboundSchema: z.ZodEnum< + typeof DeploymentModeMachineAddresses +> = z.enum(DeploymentModeMachineAddresses); + +/** @internal */ +export const DeploymentPublicEndpointTargetMachineAddresses$inboundSchema: + z.ZodType = z.object( + { + mode: DeploymentModeMachineAddresses$inboundSchema, + }, + ); + +export function deploymentPublicEndpointTargetMachineAddressesFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentPublicEndpointTargetMachineAddresses, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentPublicEndpointTargetMachineAddresses$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPublicEndpointTargetMachineAddresses' from JSON`, + ); +} + +/** @internal */ +export const DeploymentPublicEndpointTargetUnion$inboundSchema: z.ZodType< + DeploymentPublicEndpointTargetUnion, + unknown +> = z.union([ + z.lazy(() => DeploymentPublicEndpointTargetLoadBalancer$inboundSchema), + z.lazy(() => DeploymentPublicEndpointTargetMachineAddresses$inboundSchema), + z.any(), +]); + +export function deploymentPublicEndpointTargetUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentPublicEndpointTargetUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPublicEndpointTargetUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDomains$inboundSchema: z.ZodType< + DeploymentDomains, + unknown +> = z.object({ + customDomains: z.nullable( + z.record(z.string(), z.lazy(() => DeploymentCustomDomains$inboundSchema)), + ).optional(), + publicEndpointTarget: z.nullable( + z.union([ + z.lazy(() => DeploymentPublicEndpointTargetLoadBalancer$inboundSchema), + z.lazy(() => + DeploymentPublicEndpointTargetMachineAddresses$inboundSchema + ), + z.any(), + ]), + ).optional(), +}); + +export function deploymentDomainsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentDomains$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDomains' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDomainsUnion$inboundSchema: z.ZodType< + DeploymentDomainsUnion, + unknown +> = z.union([z.lazy(() => DeploymentDomains$inboundSchema), z.any()]); + +export function deploymentDomainsUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentDomainsUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDomainsUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentExternalBindings$inboundSchema: z.ZodType< + DeploymentExternalBindings, + unknown +> = z.object({}); + +export function deploymentExternalBindingsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentExternalBindings$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentExternalBindings' from JSON`, + ); +} + +/** @internal */ +export const DeploymentHeartbeats$inboundSchema: z.ZodEnum< + typeof DeploymentHeartbeats +> = z.enum(DeploymentHeartbeats); + +/** @internal */ +export const DeploymentCloud$inboundSchema: z.ZodType< + DeploymentCloud, + unknown +> = z.object({ + accountId: z.nullable(z.string()).optional(), + clusterId: z.nullable(z.string()).optional(), + clusterName: z.nullable(z.string()).optional(), + projectId: z.nullable(z.string()).optional(), + region: z.nullable(z.string()).optional(), + resourceGroup: z.nullable(z.string()).optional(), + subscriptionId: z.nullable(z.string()).optional(), +}); + +export function deploymentCloudFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentCloud$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentCloud' from JSON`, + ); +} + +/** @internal */ +export const DeploymentCloudUnion$inboundSchema: z.ZodType< + DeploymentCloudUnion, + unknown +> = z.union([z.lazy(() => DeploymentCloud$inboundSchema), z.any()]); + +export function deploymentCloudUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentCloudUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentCloudUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentOwnership$inboundSchema: z.ZodEnum< + typeof DeploymentOwnership +> = z.enum(DeploymentOwnership); + +/** @internal */ +export const DeploymentCluster$inboundSchema: z.ZodType< + DeploymentCluster, + unknown +> = z.object({ + cloud: z.nullable( + z.union([z.lazy(() => DeploymentCloud$inboundSchema), z.any()]), + ).optional(), + namespace: z.nullable(z.string()).optional(), + ownership: DeploymentOwnership$inboundSchema, +}); + +export function deploymentClusterFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentCluster$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentCluster' from JSON`, + ); +} + +/** @internal */ +export const DeploymentClusterUnion$inboundSchema: z.ZodType< + DeploymentClusterUnion, + unknown +> = z.union([z.lazy(() => DeploymentCluster$inboundSchema), z.any()]); + +export function deploymentClusterUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentClusterUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentClusterUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentCertificateNone2$inboundSchema: z.ZodType< + DeploymentCertificateNone2, + unknown +> = z.object({ + mode: z.literal("none"), +}); + +export function deploymentCertificateNone2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentCertificateNone2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentCertificateNone2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentCertificateManagedTLSSecret2$inboundSchema: z.ZodType< + DeploymentCertificateManagedTLSSecret2, + unknown +> = z.object({ + mode: z.literal("managedTlsSecret"), + secretNameTemplate: z.string(), +}); + +export function deploymentCertificateManagedTLSSecret2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentCertificateManagedTLSSecret2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentCertificateManagedTLSSecret2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentCertificateAwsAcmArn2$inboundSchema: z.ZodType< + DeploymentCertificateAwsAcmArn2, + unknown +> = z.object({ + certificateArn: z.string(), + mode: z.literal("awsAcmArn"), +}); + +export function deploymentCertificateAwsAcmArn2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentCertificateAwsAcmArn2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentCertificateAwsAcmArn2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentCertificateManagedAcmImport2$inboundSchema: z.ZodType< + DeploymentCertificateManagedAcmImport2, + unknown +> = z.object({ + mode: z.literal("managedAcmImport"), + region: z.nullable(z.string()).optional(), + tags: z.record(z.string(), z.string()).optional(), +}); + +export function deploymentCertificateManagedAcmImport2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentCertificateManagedAcmImport2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentCertificateManagedAcmImport2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentCertificateTLSSecretRef2$inboundSchema: z.ZodType< + DeploymentCertificateTLSSecretRef2, + unknown +> = z.object({ + namespace: z.nullable(z.string()).optional(), + secretName: z.string(), + mode: z.literal("tlsSecretRef"), +}); + +export function deploymentCertificateTLSSecretRef2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentCertificateTLSSecretRef2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentCertificateTLSSecretRef2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentCertificateUnion2$inboundSchema: z.ZodType< + DeploymentCertificateUnion2, + unknown +> = z.union([ + z.lazy(() => DeploymentCertificateTLSSecretRef2$inboundSchema), + z.lazy(() => DeploymentCertificateManagedAcmImport2$inboundSchema), + z.lazy(() => DeploymentCertificateAwsAcmArn2$inboundSchema), + z.lazy(() => DeploymentCertificateManagedTLSSecret2$inboundSchema), + z.lazy(() => DeploymentCertificateNone2$inboundSchema), +]); + +export function deploymentCertificateUnion2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentCertificateUnion2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentCertificateUnion2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentModeCustom$inboundSchema: z.ZodEnum< + typeof DeploymentModeCustom +> = z.enum(DeploymentModeCustom); + +/** @internal */ +export const DeploymentProviderAzureApplicationGatewayForContainersEnum4$inboundSchema: + z.ZodEnum< + typeof DeploymentProviderAzureApplicationGatewayForContainersEnum4 + > = z.enum(DeploymentProviderAzureApplicationGatewayForContainersEnum4); + +/** @internal */ +export const DeploymentProviderAzureApplicationGatewayForContainers4$inboundSchema: + z.ZodType = + z.object({ + albName: z.nullable(z.string()).optional(), + albNamespace: z.nullable(z.string()).optional(), + frontend: z.string(), + provider: + DeploymentProviderAzureApplicationGatewayForContainersEnum4$inboundSchema, + }); + +export function deploymentProviderAzureApplicationGatewayForContainers4FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentProviderAzureApplicationGatewayForContainers4, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentProviderAzureApplicationGatewayForContainers4$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentProviderAzureApplicationGatewayForContainers4' from JSON`, + ); +} + +/** @internal */ +export const DeploymentProviderGkeGatewayEnum4$inboundSchema: z.ZodEnum< + typeof DeploymentProviderGkeGatewayEnum4 +> = z.enum(DeploymentProviderGkeGatewayEnum4); + +/** @internal */ +export const DeploymentProviderGkeGateway4$inboundSchema: z.ZodType< + DeploymentProviderGkeGateway4, + unknown +> = z.object({ + provider: DeploymentProviderGkeGatewayEnum4$inboundSchema, + staticAddressName: z.nullable(z.string()).optional(), +}); + +export function deploymentProviderGkeGateway4FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentProviderGkeGateway4$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentProviderGkeGateway4' from JSON`, + ); +} + +/** @internal */ +export const DeploymentProviderAwsAlbEnum4$inboundSchema: z.ZodEnum< + typeof DeploymentProviderAwsAlbEnum4 +> = z.enum(DeploymentProviderAwsAlbEnum4); + +/** @internal */ +export const DeploymentProviderAwsAlb4$inboundSchema: z.ZodType< + DeploymentProviderAwsAlb4, + unknown +> = z.object({ + ipAddressType: z.nullable(z.string()).optional(), + provider: DeploymentProviderAwsAlbEnum4$inboundSchema, + scheme: z.string(), + subnetIds: z.array(z.string()).optional(), + targetType: z.string(), +}); + +export function deploymentProviderAwsAlb4FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentProviderAwsAlb4$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentProviderAwsAlb4' from JSON`, + ); +} + +/** @internal */ +export const DeploymentProviderUnion4$inboundSchema: z.ZodType< + DeploymentProviderUnion4, + unknown +> = z.union([ + z.lazy(() => DeploymentProviderAwsAlb4$inboundSchema), + z.lazy(() => + DeploymentProviderAzureApplicationGatewayForContainers4$inboundSchema + ), + z.lazy(() => DeploymentProviderGkeGateway4$inboundSchema), + z.any(), +]); + +export function deploymentProviderUnion4FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentProviderUnion4$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentProviderUnion4' from JSON`, + ); +} + +/** @internal */ +export const DeploymentRouteGateway2$inboundSchema: z.ZodType< + DeploymentRouteGateway2, + unknown +> = z.object({ + annotations: z.record(z.string(), z.string()).optional(), + controller: z.nullable(z.string()).optional(), + gatewayClassName: z.string(), + labels: z.record(z.string(), z.string()).optional(), + listenerPort: z.int(), + provider: z.nullable( + z.union([ + z.lazy(() => DeploymentProviderAwsAlb4$inboundSchema), + z.lazy(() => + DeploymentProviderAzureApplicationGatewayForContainers4$inboundSchema + ), + z.lazy(() => DeploymentProviderGkeGateway4$inboundSchema), + z.any(), + ]), + ).optional(), + routeApi: z.literal("gateway"), +}); + +export function deploymentRouteGateway2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentRouteGateway2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentRouteGateway2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentProviderAzureApplicationGatewayForContainersEnum3$inboundSchema: + z.ZodEnum< + typeof DeploymentProviderAzureApplicationGatewayForContainersEnum3 + > = z.enum(DeploymentProviderAzureApplicationGatewayForContainersEnum3); + +/** @internal */ +export const DeploymentProviderAzureApplicationGatewayForContainers3$inboundSchema: + z.ZodType = + z.object({ + albName: z.nullable(z.string()).optional(), + albNamespace: z.nullable(z.string()).optional(), + frontend: z.string(), + provider: + DeploymentProviderAzureApplicationGatewayForContainersEnum3$inboundSchema, + }); + +export function deploymentProviderAzureApplicationGatewayForContainers3FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentProviderAzureApplicationGatewayForContainers3, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentProviderAzureApplicationGatewayForContainers3$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentProviderAzureApplicationGatewayForContainers3' from JSON`, + ); +} + +/** @internal */ +export const DeploymentProviderGkeGatewayEnum3$inboundSchema: z.ZodEnum< + typeof DeploymentProviderGkeGatewayEnum3 +> = z.enum(DeploymentProviderGkeGatewayEnum3); + +/** @internal */ +export const DeploymentProviderGkeGateway3$inboundSchema: z.ZodType< + DeploymentProviderGkeGateway3, + unknown +> = z.object({ + provider: DeploymentProviderGkeGatewayEnum3$inboundSchema, + staticAddressName: z.nullable(z.string()).optional(), +}); + +export function deploymentProviderGkeGateway3FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentProviderGkeGateway3$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentProviderGkeGateway3' from JSON`, + ); +} + +/** @internal */ +export const DeploymentProviderAwsAlbEnum3$inboundSchema: z.ZodEnum< + typeof DeploymentProviderAwsAlbEnum3 +> = z.enum(DeploymentProviderAwsAlbEnum3); + +/** @internal */ +export const DeploymentProviderAwsAlb3$inboundSchema: z.ZodType< + DeploymentProviderAwsAlb3, + unknown +> = z.object({ + ipAddressType: z.nullable(z.string()).optional(), + provider: DeploymentProviderAwsAlbEnum3$inboundSchema, + scheme: z.string(), + subnetIds: z.array(z.string()).optional(), + targetType: z.string(), +}); + +export function deploymentProviderAwsAlb3FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentProviderAwsAlb3$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentProviderAwsAlb3' from JSON`, + ); +} + +/** @internal */ +export const DeploymentProviderUnion3$inboundSchema: z.ZodType< + DeploymentProviderUnion3, + unknown +> = z.union([ + z.lazy(() => DeploymentProviderAwsAlb3$inboundSchema), + z.lazy(() => + DeploymentProviderAzureApplicationGatewayForContainers3$inboundSchema + ), + z.lazy(() => DeploymentProviderGkeGateway3$inboundSchema), + z.any(), +]); + +export function deploymentProviderUnion3FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentProviderUnion3$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentProviderUnion3' from JSON`, + ); +} + +/** @internal */ +export const DeploymentRouteIngress2$inboundSchema: z.ZodType< + DeploymentRouteIngress2, + unknown +> = z.object({ + annotations: z.record(z.string(), z.string()).optional(), + controller: z.nullable(z.string()).optional(), + ingressClassName: z.string(), + labels: z.record(z.string(), z.string()).optional(), + provider: z.nullable( + z.union([ + z.lazy(() => DeploymentProviderAwsAlb3$inboundSchema), + z.lazy(() => + DeploymentProviderAzureApplicationGatewayForContainers3$inboundSchema + ), + z.lazy(() => DeploymentProviderGkeGateway3$inboundSchema), + z.any(), + ]), + ).optional(), + routeApi: z.literal("ingress"), +}); + +export function deploymentRouteIngress2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentRouteIngress2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentRouteIngress2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentRouteUnion2$inboundSchema: z.ZodType< + DeploymentRouteUnion2, + unknown +> = z.union([ + z.lazy(() => DeploymentRouteIngress2$inboundSchema), + z.lazy(() => DeploymentRouteGateway2$inboundSchema), +]); + +export function deploymentRouteUnion2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentRouteUnion2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentRouteUnion2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentExposureCustom$inboundSchema: z.ZodType< + DeploymentExposureCustom, + unknown +> = z.object({ + certificate: z.union([ + z.lazy(() => DeploymentCertificateTLSSecretRef2$inboundSchema), + z.lazy(() => DeploymentCertificateManagedAcmImport2$inboundSchema), + z.lazy(() => DeploymentCertificateAwsAcmArn2$inboundSchema), + z.lazy(() => DeploymentCertificateManagedTLSSecret2$inboundSchema), + z.lazy(() => DeploymentCertificateNone2$inboundSchema), + ]), + domain: z.string(), + mode: DeploymentModeCustom$inboundSchema, + route: z.union([ + z.lazy(() => DeploymentRouteIngress2$inboundSchema), + z.lazy(() => DeploymentRouteGateway2$inboundSchema), + ]), +}); + +export function deploymentExposureCustomFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentExposureCustom$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentExposureCustom' from JSON`, + ); +} + +/** @internal */ +export const DeploymentCertificateNone1$inboundSchema: z.ZodType< + DeploymentCertificateNone1, + unknown +> = z.object({ + mode: z.literal("none"), +}); + +export function deploymentCertificateNone1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentCertificateNone1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentCertificateNone1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentCertificateManagedTLSSecret1$inboundSchema: z.ZodType< + DeploymentCertificateManagedTLSSecret1, + unknown +> = z.object({ + mode: z.literal("managedTlsSecret"), + secretNameTemplate: z.string(), +}); + +export function deploymentCertificateManagedTLSSecret1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentCertificateManagedTLSSecret1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentCertificateManagedTLSSecret1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentCertificateAwsAcmArn1$inboundSchema: z.ZodType< + DeploymentCertificateAwsAcmArn1, + unknown +> = z.object({ + certificateArn: z.string(), + mode: z.literal("awsAcmArn"), +}); + +export function deploymentCertificateAwsAcmArn1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentCertificateAwsAcmArn1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentCertificateAwsAcmArn1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentCertificateManagedAcmImport1$inboundSchema: z.ZodType< + DeploymentCertificateManagedAcmImport1, + unknown +> = z.object({ + mode: z.literal("managedAcmImport"), + region: z.nullable(z.string()).optional(), + tags: z.record(z.string(), z.string()).optional(), +}); + +export function deploymentCertificateManagedAcmImport1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentCertificateManagedAcmImport1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentCertificateManagedAcmImport1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentCertificateTLSSecretRef1$inboundSchema: z.ZodType< + DeploymentCertificateTLSSecretRef1, + unknown +> = z.object({ + namespace: z.nullable(z.string()).optional(), + secretName: z.string(), + mode: z.literal("tlsSecretRef"), +}); + +export function deploymentCertificateTLSSecretRef1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentCertificateTLSSecretRef1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentCertificateTLSSecretRef1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentCertificateUnion1$inboundSchema: z.ZodType< + DeploymentCertificateUnion1, + unknown +> = z.union([ + z.lazy(() => DeploymentCertificateTLSSecretRef1$inboundSchema), + z.lazy(() => DeploymentCertificateManagedAcmImport1$inboundSchema), + z.lazy(() => DeploymentCertificateAwsAcmArn1$inboundSchema), + z.lazy(() => DeploymentCertificateManagedTLSSecret1$inboundSchema), + z.lazy(() => DeploymentCertificateNone1$inboundSchema), +]); + +export function deploymentCertificateUnion1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentCertificateUnion1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentCertificateUnion1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentModeGenerated$inboundSchema: z.ZodEnum< + typeof DeploymentModeGenerated +> = z.enum(DeploymentModeGenerated); + +/** @internal */ +export const DeploymentProviderAzureApplicationGatewayForContainersEnum2$inboundSchema: + z.ZodEnum< + typeof DeploymentProviderAzureApplicationGatewayForContainersEnum2 + > = z.enum(DeploymentProviderAzureApplicationGatewayForContainersEnum2); + +/** @internal */ +export const DeploymentProviderAzureApplicationGatewayForContainers2$inboundSchema: + z.ZodType = + z.object({ + albName: z.nullable(z.string()).optional(), + albNamespace: z.nullable(z.string()).optional(), + frontend: z.string(), + provider: + DeploymentProviderAzureApplicationGatewayForContainersEnum2$inboundSchema, + }); + +export function deploymentProviderAzureApplicationGatewayForContainers2FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentProviderAzureApplicationGatewayForContainers2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentProviderAzureApplicationGatewayForContainers2$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentProviderAzureApplicationGatewayForContainers2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentProviderGkeGatewayEnum2$inboundSchema: z.ZodEnum< + typeof DeploymentProviderGkeGatewayEnum2 +> = z.enum(DeploymentProviderGkeGatewayEnum2); + +/** @internal */ +export const DeploymentProviderGkeGateway2$inboundSchema: z.ZodType< + DeploymentProviderGkeGateway2, + unknown +> = z.object({ + provider: DeploymentProviderGkeGatewayEnum2$inboundSchema, + staticAddressName: z.nullable(z.string()).optional(), +}); + +export function deploymentProviderGkeGateway2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentProviderGkeGateway2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentProviderGkeGateway2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentProviderAwsAlbEnum2$inboundSchema: z.ZodEnum< + typeof DeploymentProviderAwsAlbEnum2 +> = z.enum(DeploymentProviderAwsAlbEnum2); + +/** @internal */ +export const DeploymentProviderAwsAlb2$inboundSchema: z.ZodType< + DeploymentProviderAwsAlb2, + unknown +> = z.object({ + ipAddressType: z.nullable(z.string()).optional(), + provider: DeploymentProviderAwsAlbEnum2$inboundSchema, + scheme: z.string(), + subnetIds: z.array(z.string()).optional(), + targetType: z.string(), +}); + +export function deploymentProviderAwsAlb2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentProviderAwsAlb2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentProviderAwsAlb2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentProviderUnion2$inboundSchema: z.ZodType< + DeploymentProviderUnion2, + unknown +> = z.union([ + z.lazy(() => DeploymentProviderAwsAlb2$inboundSchema), + z.lazy(() => + DeploymentProviderAzureApplicationGatewayForContainers2$inboundSchema + ), + z.lazy(() => DeploymentProviderGkeGateway2$inboundSchema), + z.any(), +]); + +export function deploymentProviderUnion2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentProviderUnion2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentProviderUnion2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentRouteGateway1$inboundSchema: z.ZodType< + DeploymentRouteGateway1, + unknown +> = z.object({ + annotations: z.record(z.string(), z.string()).optional(), + controller: z.nullable(z.string()).optional(), + gatewayClassName: z.string(), + labels: z.record(z.string(), z.string()).optional(), + listenerPort: z.int(), + provider: z.nullable( + z.union([ + z.lazy(() => DeploymentProviderAwsAlb2$inboundSchema), + z.lazy(() => + DeploymentProviderAzureApplicationGatewayForContainers2$inboundSchema + ), + z.lazy(() => DeploymentProviderGkeGateway2$inboundSchema), + z.any(), + ]), + ).optional(), + routeApi: z.literal("gateway"), +}); + +export function deploymentRouteGateway1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentRouteGateway1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentRouteGateway1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentProviderAzureApplicationGatewayForContainersEnum1$inboundSchema: + z.ZodEnum< + typeof DeploymentProviderAzureApplicationGatewayForContainersEnum1 + > = z.enum(DeploymentProviderAzureApplicationGatewayForContainersEnum1); + +/** @internal */ +export const DeploymentProviderAzureApplicationGatewayForContainers1$inboundSchema: + z.ZodType = + z.object({ + albName: z.nullable(z.string()).optional(), + albNamespace: z.nullable(z.string()).optional(), + frontend: z.string(), + provider: + DeploymentProviderAzureApplicationGatewayForContainersEnum1$inboundSchema, + }); + +export function deploymentProviderAzureApplicationGatewayForContainers1FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentProviderAzureApplicationGatewayForContainers1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentProviderAzureApplicationGatewayForContainers1$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentProviderAzureApplicationGatewayForContainers1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentProviderGkeGatewayEnum1$inboundSchema: z.ZodEnum< + typeof DeploymentProviderGkeGatewayEnum1 +> = z.enum(DeploymentProviderGkeGatewayEnum1); + +/** @internal */ +export const DeploymentProviderGkeGateway1$inboundSchema: z.ZodType< + DeploymentProviderGkeGateway1, + unknown +> = z.object({ + provider: DeploymentProviderGkeGatewayEnum1$inboundSchema, + staticAddressName: z.nullable(z.string()).optional(), +}); + +export function deploymentProviderGkeGateway1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentProviderGkeGateway1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentProviderGkeGateway1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentProviderAwsAlbEnum1$inboundSchema: z.ZodEnum< + typeof DeploymentProviderAwsAlbEnum1 +> = z.enum(DeploymentProviderAwsAlbEnum1); + +/** @internal */ +export const DeploymentProviderAwsAlb1$inboundSchema: z.ZodType< + DeploymentProviderAwsAlb1, + unknown +> = z.object({ + ipAddressType: z.nullable(z.string()).optional(), + provider: DeploymentProviderAwsAlbEnum1$inboundSchema, + scheme: z.string(), + subnetIds: z.array(z.string()).optional(), + targetType: z.string(), +}); + +export function deploymentProviderAwsAlb1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentProviderAwsAlb1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentProviderAwsAlb1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentProviderUnion1$inboundSchema: z.ZodType< + DeploymentProviderUnion1, + unknown +> = z.union([ + z.lazy(() => DeploymentProviderAwsAlb1$inboundSchema), + z.lazy(() => + DeploymentProviderAzureApplicationGatewayForContainers1$inboundSchema + ), + z.lazy(() => DeploymentProviderGkeGateway1$inboundSchema), + z.any(), +]); + +export function deploymentProviderUnion1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentProviderUnion1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentProviderUnion1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentRouteIngress1$inboundSchema: z.ZodType< + DeploymentRouteIngress1, + unknown +> = z.object({ + annotations: z.record(z.string(), z.string()).optional(), + controller: z.nullable(z.string()).optional(), + ingressClassName: z.string(), + labels: z.record(z.string(), z.string()).optional(), + provider: z.nullable( + z.union([ + z.lazy(() => DeploymentProviderAwsAlb1$inboundSchema), + z.lazy(() => + DeploymentProviderAzureApplicationGatewayForContainers1$inboundSchema + ), + z.lazy(() => DeploymentProviderGkeGateway1$inboundSchema), + z.any(), + ]), + ).optional(), + routeApi: z.literal("ingress"), +}); + +export function deploymentRouteIngress1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentRouteIngress1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentRouteIngress1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentRouteUnion1$inboundSchema: z.ZodType< + DeploymentRouteUnion1, + unknown +> = z.union([ + z.lazy(() => DeploymentRouteIngress1$inboundSchema), + z.lazy(() => DeploymentRouteGateway1$inboundSchema), +]); + +export function deploymentRouteUnion1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentRouteUnion1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentRouteUnion1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentExposureGenerated$inboundSchema: z.ZodType< + DeploymentExposureGenerated, + unknown +> = z.object({ + certificate: z.union([ + z.lazy(() => DeploymentCertificateTLSSecretRef1$inboundSchema), + z.lazy(() => DeploymentCertificateManagedAcmImport1$inboundSchema), + z.lazy(() => DeploymentCertificateAwsAcmArn1$inboundSchema), + z.lazy(() => DeploymentCertificateManagedTLSSecret1$inboundSchema), + z.lazy(() => DeploymentCertificateNone1$inboundSchema), + ]), + mode: DeploymentModeGenerated$inboundSchema, + route: z.union([ + z.lazy(() => DeploymentRouteIngress1$inboundSchema), + z.lazy(() => DeploymentRouteGateway1$inboundSchema), + ]), +}); + +export function deploymentExposureGeneratedFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentExposureGenerated$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentExposureGenerated' from JSON`, + ); +} + +/** @internal */ +export const DeploymentModeDisabled$inboundSchema: z.ZodEnum< + typeof DeploymentModeDisabled +> = z.enum(DeploymentModeDisabled); + +/** @internal */ +export const DeploymentExposureDisabled$inboundSchema: z.ZodType< + DeploymentExposureDisabled, + unknown +> = z.object({ + mode: DeploymentModeDisabled$inboundSchema, +}); + +export function deploymentExposureDisabledFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentExposureDisabled$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentExposureDisabled' from JSON`, + ); +} + +/** @internal */ +export const DeploymentExposureUnion$inboundSchema: z.ZodType< + DeploymentExposureUnion, + unknown +> = z.union([ + z.lazy(() => DeploymentExposureCustom$inboundSchema), + z.lazy(() => DeploymentExposureGenerated$inboundSchema), + z.lazy(() => DeploymentExposureDisabled$inboundSchema), + z.any(), +]); + +export function deploymentExposureUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentExposureUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentExposureUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentKubernetes$inboundSchema: z.ZodType< + DeploymentKubernetes, + unknown +> = z.object({ + cluster: z.nullable( + z.union([z.lazy(() => DeploymentCluster$inboundSchema), z.any()]), + ).optional(), + exposure: z.nullable( + z.union([ + z.lazy(() => DeploymentExposureCustom$inboundSchema), + z.lazy(() => DeploymentExposureGenerated$inboundSchema), + z.lazy(() => DeploymentExposureDisabled$inboundSchema), + z.any(), + ]), + ).optional(), +}); + +export function deploymentKubernetesFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentKubernetes$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentKubernetes' from JSON`, + ); +} + +/** @internal */ +export const DeploymentKubernetesUnion$inboundSchema: z.ZodType< + DeploymentKubernetesUnion, + unknown +> = z.union([z.lazy(() => DeploymentKubernetes$inboundSchema), z.any()]); + +export function deploymentKubernetesUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentKubernetesUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentKubernetesUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentTypeByoVnetAzure$inboundSchema: z.ZodEnum< + typeof DeploymentTypeByoVnetAzure +> = z.enum(DeploymentTypeByoVnetAzure); + +/** @internal */ +export const DeploymentNetworkByoVnetAzure$inboundSchema: z.ZodType< + DeploymentNetworkByoVnetAzure, + unknown +> = z.object({ + application_gateway_subnet_name: z.nullable(z.string()).optional(), + private_endpoint_subnet_name: z.nullable(z.string()).optional(), + private_subnet_name: z.string(), + public_subnet_name: z.string(), + type: DeploymentTypeByoVnetAzure$inboundSchema, + vnet_resource_id: z.string(), +}).transform((v) => { + return remap$(v, { + "application_gateway_subnet_name": "applicationGatewaySubnetName", + "private_endpoint_subnet_name": "privateEndpointSubnetName", + "private_subnet_name": "privateSubnetName", + "public_subnet_name": "publicSubnetName", + "vnet_resource_id": "vnetResourceId", + }); +}); + +export function deploymentNetworkByoVnetAzureFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentNetworkByoVnetAzure$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentNetworkByoVnetAzure' from JSON`, + ); +} + +/** @internal */ +export const DeploymentTypeByoVpcGcp$inboundSchema: z.ZodEnum< + typeof DeploymentTypeByoVpcGcp +> = z.enum(DeploymentTypeByoVpcGcp); + +/** @internal */ +export const DeploymentNetworkByoVpcGcp$inboundSchema: z.ZodType< + DeploymentNetworkByoVpcGcp, + unknown +> = z.object({ + network_name: z.string(), + region: z.string(), + subnet_name: z.string(), + type: DeploymentTypeByoVpcGcp$inboundSchema, +}).transform((v) => { + return remap$(v, { + "network_name": "networkName", + "subnet_name": "subnetName", + }); +}); + +export function deploymentNetworkByoVpcGcpFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentNetworkByoVpcGcp$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentNetworkByoVpcGcp' from JSON`, + ); +} + +/** @internal */ +export const DeploymentTypeByoVpcAws$inboundSchema: z.ZodEnum< + typeof DeploymentTypeByoVpcAws +> = z.enum(DeploymentTypeByoVpcAws); + +/** @internal */ +export const DeploymentNetworkByoVpcAws$inboundSchema: z.ZodType< + DeploymentNetworkByoVpcAws, + unknown +> = z.object({ + private_subnet_ids: z.array(z.string()), + public_subnet_ids: z.array(z.string()), + security_group_ids: z.array(z.string()).optional(), + type: DeploymentTypeByoVpcAws$inboundSchema, + vpc_id: z.string(), +}).transform((v) => { + return remap$(v, { + "private_subnet_ids": "privateSubnetIds", + "public_subnet_ids": "publicSubnetIds", + "security_group_ids": "securityGroupIds", + "vpc_id": "vpcId", + }); +}); + +export function deploymentNetworkByoVpcAwsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentNetworkByoVpcAws$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentNetworkByoVpcAws' from JSON`, + ); +} /** @internal */ -export const DeploymentPlatform$inboundSchema: z.ZodEnum< - typeof DeploymentPlatform -> = z.enum(DeploymentPlatform); +export const DeploymentTypeCreate$inboundSchema: z.ZodEnum< + typeof DeploymentTypeCreate +> = z.enum(DeploymentTypeCreate); /** @internal */ -export const DeploymentBasePlatform$inboundSchema: z.ZodEnum< - typeof DeploymentBasePlatform -> = z.enum(DeploymentBasePlatform); +export const DeploymentNetworkCreate$inboundSchema: z.ZodType< + DeploymentNetworkCreate, + unknown +> = z.object({ + availability_zones: z.int().optional(), + cidr: z.nullable(z.string()).optional(), + type: DeploymentTypeCreate$inboundSchema, +}).transform((v) => { + return remap$(v, { + "availability_zones": "availabilityZones", + }); +}); + +export function deploymentNetworkCreateFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentNetworkCreate$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentNetworkCreate' from JSON`, + ); +} /** @internal */ -export const DeploymentPlatformTest$inboundSchema: z.ZodEnum< - typeof DeploymentPlatformTest -> = z.enum(DeploymentPlatformTest); +export const DeploymentTypeUseDefault$inboundSchema: z.ZodEnum< + typeof DeploymentTypeUseDefault +> = z.enum(DeploymentTypeUseDefault); /** @internal */ -export const DeploymentEnvironmentInfoTest$inboundSchema: z.ZodType< - DeploymentEnvironmentInfoTest, +export const DeploymentNetworkUseDefault$inboundSchema: z.ZodType< + DeploymentNetworkUseDefault, unknown > = z.object({ - testId: z.string(), - platform: DeploymentPlatformTest$inboundSchema, + type: DeploymentTypeUseDefault$inboundSchema, }); -export function deploymentEnvironmentInfoTestFromJSON( +export function deploymentNetworkUseDefaultFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentEnvironmentInfoTest$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentEnvironmentInfoTest' from JSON`, + (x) => DeploymentNetworkUseDefault$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentNetworkUseDefault' from JSON`, ); } /** @internal */ -export const DeploymentPlatformLocal$inboundSchema: z.ZodEnum< - typeof DeploymentPlatformLocal -> = z.enum(DeploymentPlatformLocal); +export const DeploymentNetworkUnion$inboundSchema: z.ZodType< + DeploymentNetworkUnion, + unknown +> = z.union([ + z.lazy(() => DeploymentNetworkByoVpcAws$inboundSchema), + z.lazy(() => DeploymentNetworkByoVpcGcp$inboundSchema), + z.lazy(() => DeploymentNetworkByoVnetAzure$inboundSchema), + z.lazy(() => DeploymentNetworkUseDefault$inboundSchema), + z.lazy(() => DeploymentNetworkCreate$inboundSchema), + z.any(), +]); + +export function deploymentNetworkUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentNetworkUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentNetworkUnion' from JSON`, + ); +} /** @internal */ -export const DeploymentEnvironmentInfoLocal$inboundSchema: z.ZodType< - DeploymentEnvironmentInfoLocal, +export const DeploymentTelemetry$inboundSchema: z.ZodEnum< + typeof DeploymentTelemetry +> = z.enum(DeploymentTelemetry); + +/** @internal */ +export const DeploymentUpdates$inboundSchema: z.ZodEnum< + typeof DeploymentUpdates +> = z.enum(DeploymentUpdates); + +/** @internal */ +export const DeploymentStackSettings$inboundSchema: z.ZodType< + DeploymentStackSettings, unknown > = z.object({ - arch: z.string(), - hostname: z.string(), - os: z.string(), - platform: DeploymentPlatformLocal$inboundSchema, + compute: z.nullable( + z.union([z.lazy(() => DeploymentCompute$inboundSchema), z.any()]), + ).optional(), + deploymentModel: DeploymentDeploymentModel$inboundSchema.optional(), + domains: z.nullable( + z.union([z.lazy(() => DeploymentDomains$inboundSchema), z.any()]), + ).optional(), + externalBindings: z.nullable( + z.lazy(() => DeploymentExternalBindings$inboundSchema), + ).optional(), + heartbeats: DeploymentHeartbeats$inboundSchema.optional(), + kubernetes: z.nullable( + z.union([z.lazy(() => DeploymentKubernetes$inboundSchema), z.any()]), + ).optional(), + network: z.nullable( + z.union([ + z.lazy(() => DeploymentNetworkByoVpcAws$inboundSchema), + z.lazy(() => DeploymentNetworkByoVpcGcp$inboundSchema), + z.lazy(() => DeploymentNetworkByoVnetAzure$inboundSchema), + z.lazy(() => DeploymentNetworkUseDefault$inboundSchema), + z.lazy(() => DeploymentNetworkCreate$inboundSchema), + z.any(), + ]), + ).optional(), + telemetry: DeploymentTelemetry$inboundSchema.optional(), + updates: DeploymentUpdates$inboundSchema.optional(), }); -export function deploymentEnvironmentInfoLocalFromJSON( +export function deploymentStackSettingsFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentEnvironmentInfoLocal$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentEnvironmentInfoLocal' from JSON`, + (x) => DeploymentStackSettings$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentStackSettings' from JSON`, ); } /** @internal */ -export const DeploymentPlatformAzure$inboundSchema: z.ZodEnum< - typeof DeploymentPlatformAzure -> = z.enum(DeploymentPlatformAzure); +export const DeploymentStackStatePlatform$inboundSchema: z.ZodEnum< + typeof DeploymentStackStatePlatform +> = z.enum(DeploymentStackStatePlatform); /** @internal */ -export const DeploymentEnvironmentInfoAzure$inboundSchema: z.ZodType< - DeploymentEnvironmentInfoAzure, +export const DeploymentStackStateConfig$inboundSchema: z.ZodType< + DeploymentStackStateConfig, unknown -> = z.object({ - location: z.string(), - subscriptionId: z.string(), - tenantId: z.string(), - platform: DeploymentPlatformAzure$inboundSchema, -}); +> = collectExtraKeys$( + z.object({ + id: z.string(), + type: z.string(), + }).catchall(z.any()), + "additionalProperties", + true, +); -export function deploymentEnvironmentInfoAzureFromJSON( +export function deploymentStackStateConfigFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentEnvironmentInfoAzure$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentEnvironmentInfoAzure' from JSON`, + (x) => DeploymentStackStateConfig$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentStackStateConfig' from JSON`, ); } /** @internal */ -export const DeploymentPlatformGcp$inboundSchema: z.ZodEnum< - typeof DeploymentPlatformGcp -> = z.enum(DeploymentPlatformGcp); +export const DeploymentControllerPlatformEnum$inboundSchema: z.ZodEnum< + typeof DeploymentControllerPlatformEnum +> = z.enum(DeploymentControllerPlatformEnum); /** @internal */ -export const DeploymentEnvironmentInfoGcp$inboundSchema: z.ZodType< - DeploymentEnvironmentInfoGcp, +export const DeploymentControllerPlatformUnion$inboundSchema: z.ZodType< + DeploymentControllerPlatformUnion, + unknown +> = z.union([DeploymentControllerPlatformEnum$inboundSchema, z.any()]); + +export function deploymentControllerPlatformUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentControllerPlatformUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentControllerPlatformUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentStackStateDependency$inboundSchema: z.ZodType< + DeploymentStackStateDependency, unknown > = z.object({ - projectId: z.string(), - projectNumber: z.string(), - region: z.string(), - platform: DeploymentPlatformGcp$inboundSchema, + id: z.string(), + type: z.string(), }); -export function deploymentEnvironmentInfoGcpFromJSON( +export function deploymentStackStateDependencyFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentEnvironmentInfoGcp$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentEnvironmentInfoGcp' from JSON`, + (x) => DeploymentStackStateDependency$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentStackStateDependency' from JSON`, + ); +} + +/** @internal */ +export const DeploymentErrorStackState$inboundSchema: z.ZodType< + DeploymentErrorStackState, + unknown +> = z.object({ + code: z.string(), + context: z.nullable(z.any()).optional(), + hint: z.nullable(z.string()).optional(), + httpStatusCode: z.nullable(z.int()).optional(), + internal: z.boolean(), + message: z.string(), + retryable: z.boolean().default(false), + source: z.nullable(z.any()).optional(), +}); + +export function deploymentErrorStackStateFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentErrorStackState$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentErrorStackState' from JSON`, + ); +} + +/** @internal */ +export const DeploymentErrorUnion$inboundSchema: z.ZodType< + DeploymentErrorUnion, + unknown +> = z.union([z.lazy(() => DeploymentErrorStackState$inboundSchema), z.any()]); + +export function deploymentErrorUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentErrorUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentErrorUnion' from JSON`, ); } /** @internal */ -export const DeploymentPlatformAws$inboundSchema: z.ZodEnum< - typeof DeploymentPlatformAws -> = z.enum(DeploymentPlatformAws); +export const DeploymentLifecycleStackStateEnum$inboundSchema: z.ZodEnum< + typeof DeploymentLifecycleStackStateEnum +> = z.enum(DeploymentLifecycleStackStateEnum); /** @internal */ -export const DeploymentEnvironmentInfoAws$inboundSchema: z.ZodType< - DeploymentEnvironmentInfoAws, +export const DeploymentLifecycleUnion$inboundSchema: z.ZodType< + DeploymentLifecycleUnion, unknown -> = z.object({ - accountId: z.string(), - region: z.string(), - platform: DeploymentPlatformAws$inboundSchema, -}); +> = z.union([DeploymentLifecycleStackStateEnum$inboundSchema, z.any()]); -export function deploymentEnvironmentInfoAwsFromJSON( +export function deploymentLifecycleUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentEnvironmentInfoAws$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentEnvironmentInfoAws' from JSON`, + (x) => DeploymentLifecycleUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentLifecycleUnion' from JSON`, ); } /** @internal */ -export const DeploymentEnvironmentInfoUnion$inboundSchema: z.ZodType< - DeploymentEnvironmentInfoUnion, +export const DeploymentOutputs$inboundSchema: z.ZodType< + DeploymentOutputs, unknown -> = z.union([ - z.lazy(() => DeploymentEnvironmentInfoGcp$inboundSchema), - z.lazy(() => DeploymentEnvironmentInfoAzure$inboundSchema), - z.lazy(() => DeploymentEnvironmentInfoLocal$inboundSchema), - z.lazy(() => DeploymentEnvironmentInfoAws$inboundSchema), - z.lazy(() => DeploymentEnvironmentInfoTest$inboundSchema), - z.any(), -]); +> = collectExtraKeys$( + z.object({ + type: z.string(), + }).catchall(z.any()), + "additionalProperties", + true, +); -export function deploymentEnvironmentInfoUnionFromJSON( +export function deploymentOutputsFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentEnvironmentInfoUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentEnvironmentInfoUnion' from JSON`, + (x) => DeploymentOutputs$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentOutputs' from JSON`, ); } /** @internal */ -export const DeploymentPoolsAutoscale$inboundSchema: z.ZodType< - DeploymentPoolsAutoscale, +export const DeploymentOutputsUnion$inboundSchema: z.ZodType< + DeploymentOutputsUnion, unknown -> = z.object({ - machine: z.nullable(z.string()).optional(), - max: z.int(), - min: z.int(), - mode: z.literal("autoscale"), -}); +> = z.union([z.lazy(() => DeploymentOutputs$inboundSchema), z.any()]); -export function deploymentPoolsAutoscaleFromJSON( +export function deploymentOutputsUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentPoolsAutoscale$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentPoolsAutoscale' from JSON`, + (x) => DeploymentOutputsUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentOutputsUnion' from JSON`, ); } /** @internal */ -export const DeploymentPoolsFixed$inboundSchema: z.ZodType< - DeploymentPoolsFixed, +export const DeploymentPreviousConfig$inboundSchema: z.ZodType< + DeploymentPreviousConfig, unknown -> = z.object({ - machine: z.nullable(z.string()).optional(), - machines: z.int(), - mode: z.literal("fixed"), -}); +> = collectExtraKeys$( + z.object({ + id: z.string(), + type: z.string(), + }).catchall(z.any()), + "additionalProperties", + true, +); -export function deploymentPoolsFixedFromJSON( +export function deploymentPreviousConfigFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentPoolsFixed$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentPoolsFixed' from JSON`, + (x) => DeploymentPreviousConfig$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreviousConfig' from JSON`, ); } /** @internal */ -export const DeploymentPoolsUnion$inboundSchema: z.ZodType< - DeploymentPoolsUnion, +export const DeploymentPreviousConfigUnion$inboundSchema: z.ZodType< + DeploymentPreviousConfigUnion, unknown -> = z.union([ - z.lazy(() => DeploymentPoolsFixed$inboundSchema), - z.lazy(() => DeploymentPoolsAutoscale$inboundSchema), -]); +> = z.union([z.lazy(() => DeploymentPreviousConfig$inboundSchema), z.any()]); -export function deploymentPoolsUnionFromJSON( +export function deploymentPreviousConfigUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentPoolsUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentPoolsUnion' from JSON`, + (x) => DeploymentPreviousConfigUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreviousConfigUnion' from JSON`, ); } /** @internal */ -export const DeploymentCompute$inboundSchema: z.ZodType< - DeploymentCompute, +export const DeploymentStackStateStatus$inboundSchema: z.ZodEnum< + typeof DeploymentStackStateStatus +> = z.enum(DeploymentStackStateStatus); + +/** @internal */ +export const DeploymentStackStateResources$inboundSchema: z.ZodType< + DeploymentStackStateResources, unknown > = z.object({ - pools: z.record( - z.string(), - z.union([ - z.lazy(() => DeploymentPoolsFixed$inboundSchema), - z.lazy(() => DeploymentPoolsAutoscale$inboundSchema), - ]), + _internal: z.nullable(z.any()).optional(), + config: z.lazy(() => DeploymentStackStateConfig$inboundSchema), + controllerPlatform: z.nullable( + z.union([DeploymentControllerPlatformEnum$inboundSchema, z.any()]), + ).optional(), + dependencies: z.array( + z.lazy(() => DeploymentStackStateDependency$inboundSchema), + ).optional(), + error: z.nullable( + z.union([z.lazy(() => DeploymentErrorStackState$inboundSchema), z.any()]), + ).optional(), + lastFailedState: z.nullable(z.any()).optional(), + lifecycle: z.nullable( + z.union([DeploymentLifecycleStackStateEnum$inboundSchema, z.any()]), ).optional(), + outputs: z.nullable( + z.union([z.lazy(() => DeploymentOutputs$inboundSchema), z.any()]), + ).optional(), + previousConfig: z.nullable( + z.union([z.lazy(() => DeploymentPreviousConfig$inboundSchema), z.any()]), + ).optional(), + remoteBindingParams: z.nullable(z.any()).optional(), + retryAttempt: z.int().optional(), + status: DeploymentStackStateStatus$inboundSchema, + type: z.string(), +}).transform((v) => { + return remap$(v, { + "_internal": "internal", + }); }); -export function deploymentComputeFromJSON( +export function deploymentStackStateResourcesFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentCompute$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentCompute' from JSON`, + (x) => DeploymentStackStateResources$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentStackStateResources' from JSON`, ); } /** @internal */ -export const DeploymentComputeUnion$inboundSchema: z.ZodType< - DeploymentComputeUnion, +export const DeploymentStackState$inboundSchema: z.ZodType< + DeploymentStackState, unknown -> = z.union([z.lazy(() => DeploymentCompute$inboundSchema), z.any()]); +> = z.object({ + platform: DeploymentStackStatePlatform$inboundSchema, + resourcePrefix: z.string(), + resources: z.record( + z.string(), + z.lazy(() => DeploymentStackStateResources$inboundSchema), + ), +}); -export function deploymentComputeUnionFromJSON( +export function deploymentStackStateFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentComputeUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentComputeUnion' from JSON`, + (x) => DeploymentStackState$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentStackState' from JSON`, ); } /** @internal */ -export const DeploymentDeploymentModel$inboundSchema: z.ZodEnum< - typeof DeploymentDeploymentModel -> = z.enum(DeploymentDeploymentModel); +export const DeploymentInitialSetupAuthority$inboundSchema: z.ZodEnum< + typeof DeploymentInitialSetupAuthority +> = z.enum(DeploymentInitialSetupAuthority); /** @internal */ -export const DeploymentAws$inboundSchema: z.ZodType = z - .object({ - certificateArn: z.string(), - }); +export const DeploymentPendingPreparedStackTypeStringList$inboundSchema: + z.ZodEnum = z.enum( + DeploymentPendingPreparedStackTypeStringList, + ); -export function deploymentAwsFromJSON( +/** @internal */ +export const DeploymentPendingPreparedStackDefaultStringList$inboundSchema: + z.ZodType = z + .object({ + type: DeploymentPendingPreparedStackTypeStringList$inboundSchema, + value: z.array(z.string()), + }); + +export function deploymentPendingPreparedStackDefaultStringListFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackDefaultStringList, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentAws$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentAws' from JSON`, + (x) => + DeploymentPendingPreparedStackDefaultStringList$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackDefaultStringList' from JSON`, ); } /** @internal */ -export const DeploymentAwsUnion$inboundSchema: z.ZodType< - DeploymentAwsUnion, - unknown -> = z.union([z.lazy(() => DeploymentAws$inboundSchema), z.any()]); +export const DeploymentPendingPreparedStackTypeBoolean$inboundSchema: z.ZodEnum< + typeof DeploymentPendingPreparedStackTypeBoolean +> = z.enum(DeploymentPendingPreparedStackTypeBoolean); -export function deploymentAwsUnionFromJSON( +/** @internal */ +export const DeploymentPendingPreparedStackDefaultBoolean$inboundSchema: + z.ZodType = z.object({ + type: DeploymentPendingPreparedStackTypeBoolean$inboundSchema, + value: z.boolean(), + }); + +export function deploymentPendingPreparedStackDefaultBooleanFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackDefaultBoolean, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentAwsUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentAwsUnion' from JSON`, + (x) => + DeploymentPendingPreparedStackDefaultBoolean$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackDefaultBoolean' from JSON`, ); } /** @internal */ -export const DeploymentAzureStackSettings$inboundSchema: z.ZodType< - DeploymentAzureStackSettings, - unknown -> = z.object({ - keyVaultCertificateId: z.string(), - keyVaultResourceId: z.nullable(z.string()).optional(), -}); +export const DeploymentPendingPreparedStackTypeNumber$inboundSchema: z.ZodEnum< + typeof DeploymentPendingPreparedStackTypeNumber +> = z.enum(DeploymentPendingPreparedStackTypeNumber); -export function deploymentAzureStackSettingsFromJSON( +/** @internal */ +export const DeploymentPendingPreparedStackDefaultNumber$inboundSchema: + z.ZodType = z.object({ + type: DeploymentPendingPreparedStackTypeNumber$inboundSchema, + value: z.string(), + }); + +export function deploymentPendingPreparedStackDefaultNumberFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackDefaultNumber, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentAzureStackSettings$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentAzureStackSettings' from JSON`, + (x) => + DeploymentPendingPreparedStackDefaultNumber$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackDefaultNumber' from JSON`, ); } /** @internal */ -export const DeploymentAzureUnion$inboundSchema: z.ZodType< - DeploymentAzureUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentAzureStackSettings$inboundSchema), - z.any(), -]); +export const DeploymentPendingPreparedStackTypeString$inboundSchema: z.ZodEnum< + typeof DeploymentPendingPreparedStackTypeString +> = z.enum(DeploymentPendingPreparedStackTypeString); -export function deploymentAzureUnionFromJSON( +/** @internal */ +export const DeploymentPendingPreparedStackDefaultString$inboundSchema: + z.ZodType = z.object({ + type: DeploymentPendingPreparedStackTypeString$inboundSchema, + value: z.string(), + }); + +export function deploymentPendingPreparedStackDefaultStringFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackDefaultString, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentAzureUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentAzureUnion' from JSON`, + (x) => + DeploymentPendingPreparedStackDefaultString$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackDefaultString' from JSON`, ); } /** @internal */ -export const DeploymentGcpStackSettings$inboundSchema: z.ZodType< - DeploymentGcpStackSettings, - unknown -> = z.object({ - certificateName: z.string(), -}); +export const DeploymentPendingPreparedStackDefaultUnion$inboundSchema: + z.ZodType = z.union([ + z.lazy(() => DeploymentPendingPreparedStackDefaultString$inboundSchema), + z.lazy(() => DeploymentPendingPreparedStackDefaultNumber$inboundSchema), + z.lazy(() => DeploymentPendingPreparedStackDefaultBoolean$inboundSchema), + z.lazy(() => DeploymentPendingPreparedStackDefaultStringList$inboundSchema), + z.any(), + ]); -export function deploymentGcpStackSettingsFromJSON( +export function deploymentPendingPreparedStackDefaultUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackDefaultUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentGcpStackSettings$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentGcpStackSettings' from JSON`, + (x) => + DeploymentPendingPreparedStackDefaultUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackDefaultUnion' from JSON`, ); } /** @internal */ -export const DeploymentGcpUnion$inboundSchema: z.ZodType< - DeploymentGcpUnion, +export const DeploymentPendingPreparedStackTypeEnvEnum$inboundSchema: z.ZodEnum< + typeof DeploymentPendingPreparedStackTypeEnvEnum +> = z.enum(DeploymentPendingPreparedStackTypeEnvEnum); + +/** @internal */ +export const DeploymentPendingPreparedStackTypeUnion$inboundSchema: z.ZodType< + DeploymentPendingPreparedStackTypeUnion, unknown -> = z.union([z.lazy(() => DeploymentGcpStackSettings$inboundSchema), z.any()]); +> = z.union([DeploymentPendingPreparedStackTypeEnvEnum$inboundSchema, z.any()]); -export function deploymentGcpUnionFromJSON( +export function deploymentPendingPreparedStackTypeUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackTypeUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentGcpUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentGcpUnion' from JSON`, + (x) => + DeploymentPendingPreparedStackTypeUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackTypeUnion' from JSON`, ); } /** @internal */ -export const DeploymentTlsSecretRef$inboundSchema: z.ZodType< - DeploymentTlsSecretRef, +export const DeploymentPendingPreparedStackEnv$inboundSchema: z.ZodType< + DeploymentPendingPreparedStackEnv, unknown > = z.object({ - namespace: z.nullable(z.string()).optional(), - secretName: z.string(), + name: z.string(), + targetResources: z.nullable(z.array(z.string())).optional(), + type: z.nullable( + z.union([DeploymentPendingPreparedStackTypeEnvEnum$inboundSchema, z.any()]), + ).optional(), }); -export function deploymentTlsSecretRefFromJSON( +export function deploymentPendingPreparedStackEnvFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentTlsSecretRef$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentTlsSecretRef' from JSON`, + (x) => DeploymentPendingPreparedStackEnv$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPendingPreparedStackEnv' from JSON`, ); } /** @internal */ -export const DeploymentDomainsKubernetes$inboundSchema: z.ZodType< - DeploymentDomainsKubernetes, +export const DeploymentPendingPreparedStackKind$inboundSchema: z.ZodEnum< + typeof DeploymentPendingPreparedStackKind +> = z.enum(DeploymentPendingPreparedStackKind); + +/** @internal */ +export const DeploymentPendingPreparedStackPlatform$inboundSchema: z.ZodEnum< + typeof DeploymentPendingPreparedStackPlatform +> = z.enum(DeploymentPendingPreparedStackPlatform); + +/** @internal */ +export const DeploymentPendingPreparedStackProvidedBy$inboundSchema: z.ZodEnum< + typeof DeploymentPendingPreparedStackProvidedBy +> = z.enum(DeploymentPendingPreparedStackProvidedBy); + +/** @internal */ +export const DeploymentPendingPreparedStackValidation$inboundSchema: z.ZodType< + DeploymentPendingPreparedStackValidation, unknown > = z.object({ - tlsSecretRef: z.lazy(() => DeploymentTlsSecretRef$inboundSchema), + format: z.nullable(z.string()).optional(), + max: z.nullable(z.string()).optional(), + maxItems: z.nullable(z.int()).optional(), + maxLength: z.nullable(z.int()).optional(), + min: z.nullable(z.string()).optional(), + minItems: z.nullable(z.int()).optional(), + minLength: z.nullable(z.int()).optional(), + pattern: z.nullable(z.string()).optional(), + values: z.nullable(z.array(z.string())).optional(), }); -export function deploymentDomainsKubernetesFromJSON( +export function deploymentPendingPreparedStackValidationFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackValidation, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentDomainsKubernetes$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDomainsKubernetes' from JSON`, + (x) => + DeploymentPendingPreparedStackValidation$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackValidation' from JSON`, ); } /** @internal */ -export const DeploymentDomainsKubernetesUnion$inboundSchema: z.ZodType< - DeploymentDomainsKubernetesUnion, - unknown -> = z.union([z.lazy(() => DeploymentDomainsKubernetes$inboundSchema), z.any()]); +export const DeploymentPendingPreparedStackValidationUnion$inboundSchema: + z.ZodType = z.union([ + z.lazy(() => DeploymentPendingPreparedStackValidation$inboundSchema), + z.any(), + ]); -export function deploymentDomainsKubernetesUnionFromJSON( +export function deploymentPendingPreparedStackValidationUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackValidationUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentDomainsKubernetesUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDomainsKubernetesUnion' from JSON`, + (x) => + DeploymentPendingPreparedStackValidationUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackValidationUnion' from JSON`, ); } /** @internal */ -export const DeploymentDomainsCertificate$inboundSchema: z.ZodType< - DeploymentDomainsCertificate, +export const DeploymentPendingPreparedStackInput$inboundSchema: z.ZodType< + DeploymentPendingPreparedStackInput, unknown > = z.object({ - aws: z.nullable(z.union([z.lazy(() => DeploymentAws$inboundSchema), z.any()])) - .optional(), - azure: z.nullable( + default: z.nullable( z.union([ - z.lazy(() => DeploymentAzureStackSettings$inboundSchema), + z.lazy(() => DeploymentPendingPreparedStackDefaultString$inboundSchema), + z.lazy(() => DeploymentPendingPreparedStackDefaultNumber$inboundSchema), + z.lazy(() => DeploymentPendingPreparedStackDefaultBoolean$inboundSchema), + z.lazy(() => + DeploymentPendingPreparedStackDefaultStringList$inboundSchema + ), z.any(), ]), ).optional(), - gcp: z.nullable( - z.union([z.lazy(() => DeploymentGcpStackSettings$inboundSchema), z.any()]), + description: z.string(), + env: z.array(z.lazy(() => DeploymentPendingPreparedStackEnv$inboundSchema)) + .optional(), + id: z.string(), + kind: DeploymentPendingPreparedStackKind$inboundSchema, + label: z.string(), + placeholder: z.nullable(z.string()).optional(), + platforms: z.nullable( + z.array(DeploymentPendingPreparedStackPlatform$inboundSchema), ).optional(), - kubernetes: z.nullable( - z.union([z.lazy(() => DeploymentDomainsKubernetes$inboundSchema), z.any()]), + providedBy: z.array(DeploymentPendingPreparedStackProvidedBy$inboundSchema), + required: z.boolean(), + validation: z.nullable( + z.union([ + z.lazy(() => DeploymentPendingPreparedStackValidation$inboundSchema), + z.any(), + ]), ).optional(), }); -export function deploymentDomainsCertificateFromJSON( +export function deploymentPendingPreparedStackInputFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentDomainsCertificate$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDomainsCertificate' from JSON`, + (x) => + DeploymentPendingPreparedStackInput$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPendingPreparedStackInput' from JSON`, ); } /** @internal */ -export const DeploymentCustomDomains$inboundSchema: z.ZodType< - DeploymentCustomDomains, - unknown -> = z.object({ - certificate: z.lazy(() => DeploymentDomainsCertificate$inboundSchema), - domain: z.string(), -}); - -export function deploymentCustomDomainsFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => DeploymentCustomDomains$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentCustomDomains' from JSON`, +export const DeploymentPendingPreparedStackManagementEnum$inboundSchema: + z.ZodEnum = z.enum( + DeploymentPendingPreparedStackManagementEnum, ); -} - -/** @internal */ -export const DeploymentModeLoadBalancer$inboundSchema: z.ZodEnum< - typeof DeploymentModeLoadBalancer -> = z.enum(DeploymentModeLoadBalancer); /** @internal */ -export const DeploymentPublicEndpointTargetLoadBalancer$inboundSchema: - z.ZodType = z.object({ - cnameTarget: z.string(), - mode: DeploymentModeLoadBalancer$inboundSchema, - }); +export const DeploymentPendingPreparedStackOverrideAwResource$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function deploymentPublicEndpointTargetLoadBalancerFromJSON( +export function deploymentPendingPreparedStackOverrideAwResourceFromJSON( jsonString: string, ): SafeParseResult< - DeploymentPublicEndpointTargetLoadBalancer, + DeploymentPendingPreparedStackOverrideAwResource, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentPublicEndpointTargetLoadBalancer$inboundSchema.parse( + DeploymentPendingPreparedStackOverrideAwResource$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentPublicEndpointTargetLoadBalancer' from JSON`, + `Failed to parse 'DeploymentPendingPreparedStackOverrideAwResource' from JSON`, ); } /** @internal */ -export const DeploymentModeMachineAddresses$inboundSchema: z.ZodEnum< - typeof DeploymentModeMachineAddresses -> = z.enum(DeploymentModeMachineAddresses); - -/** @internal */ -export const DeploymentPublicEndpointTargetMachineAddresses$inboundSchema: - z.ZodType = z.object( - { - mode: DeploymentModeMachineAddresses$inboundSchema, - }, - ); +export const DeploymentPendingPreparedStackOverrideAwStack$inboundSchema: + z.ZodType = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function deploymentPublicEndpointTargetMachineAddressesFromJSON( +export function deploymentPendingPreparedStackOverrideAwStackFromJSON( jsonString: string, ): SafeParseResult< - DeploymentPublicEndpointTargetMachineAddresses, + DeploymentPendingPreparedStackOverrideAwStack, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentPublicEndpointTargetMachineAddresses$inboundSchema.parse( + DeploymentPendingPreparedStackOverrideAwStack$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentPublicEndpointTargetMachineAddresses' from JSON`, + `Failed to parse 'DeploymentPendingPreparedStackOverrideAwStack' from JSON`, ); } /** @internal */ -export const DeploymentPublicEndpointTargetUnion$inboundSchema: z.ZodType< - DeploymentPublicEndpointTargetUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentPublicEndpointTargetLoadBalancer$inboundSchema), - z.lazy(() => DeploymentPublicEndpointTargetMachineAddresses$inboundSchema), - z.any(), -]); +export const DeploymentPendingPreparedStackOverrideAwBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + DeploymentPendingPreparedStackOverrideAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentPendingPreparedStackOverrideAwStack$inboundSchema + ).optional(), + }); -export function deploymentPublicEndpointTargetUnionFromJSON( +export function deploymentPendingPreparedStackOverrideAwBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackOverrideAwBinding, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentPublicEndpointTargetUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentPublicEndpointTargetUnion' from JSON`, - ); -} - -/** @internal */ -export const DeploymentDomains$inboundSchema: z.ZodType< - DeploymentDomains, - unknown -> = z.object({ - customDomains: z.nullable( - z.record(z.string(), z.lazy(() => DeploymentCustomDomains$inboundSchema)), - ).optional(), - publicEndpointTarget: z.nullable( - z.union([ - z.lazy(() => DeploymentPublicEndpointTargetLoadBalancer$inboundSchema), - z.lazy(() => - DeploymentPublicEndpointTargetMachineAddresses$inboundSchema + DeploymentPendingPreparedStackOverrideAwBinding$inboundSchema.parse( + JSON.parse(x), ), - z.any(), - ]), - ).optional(), -}); - -export function deploymentDomainsFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => DeploymentDomains$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDomains' from JSON`, + `Failed to parse 'DeploymentPendingPreparedStackOverrideAwBinding' from JSON`, ); } /** @internal */ -export const DeploymentDomainsUnion$inboundSchema: z.ZodType< - DeploymentDomainsUnion, - unknown -> = z.union([z.lazy(() => DeploymentDomains$inboundSchema), z.any()]); - -export function deploymentDomainsUnionFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => DeploymentDomainsUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDomainsUnion' from JSON`, +export const DeploymentPendingPreparedStackOverrideEffect$inboundSchema: + z.ZodEnum = z.enum( + DeploymentPendingPreparedStackOverrideEffect, ); -} /** @internal */ -export const DeploymentExternalBindings$inboundSchema: z.ZodType< - DeploymentExternalBindings, - unknown -> = z.object({}); +export const DeploymentPendingPreparedStackOverrideAwGrant$inboundSchema: + z.ZodType = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function deploymentExternalBindingsFromJSON( +export function deploymentPendingPreparedStackOverrideAwGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackOverrideAwGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentExternalBindings$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExternalBindings' from JSON`, + (x) => + DeploymentPendingPreparedStackOverrideAwGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackOverrideAwGrant' from JSON`, ); } /** @internal */ -export const DeploymentHeartbeats$inboundSchema: z.ZodEnum< - typeof DeploymentHeartbeats -> = z.enum(DeploymentHeartbeats); - -/** @internal */ -export const DeploymentCloud$inboundSchema: z.ZodType< - DeploymentCloud, +export const DeploymentPendingPreparedStackOverrideAw$inboundSchema: z.ZodType< + DeploymentPendingPreparedStackOverrideAw, unknown > = z.object({ - accountId: z.nullable(z.string()).optional(), - clusterId: z.nullable(z.string()).optional(), - clusterName: z.nullable(z.string()).optional(), - projectId: z.nullable(z.string()).optional(), - region: z.nullable(z.string()).optional(), - resourceGroup: z.nullable(z.string()).optional(), - subscriptionId: z.nullable(z.string()).optional(), + binding: z.lazy(() => + DeploymentPendingPreparedStackOverrideAwBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: DeploymentPendingPreparedStackOverrideEffect$inboundSchema.optional(), + grant: z.lazy(() => + DeploymentPendingPreparedStackOverrideAwGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), }); -export function deploymentCloudFromJSON( +export function deploymentPendingPreparedStackOverrideAwFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackOverrideAw, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentCloud$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentCloud' from JSON`, + (x) => + DeploymentPendingPreparedStackOverrideAw$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackOverrideAw' from JSON`, ); } /** @internal */ -export const DeploymentCloudUnion$inboundSchema: z.ZodType< - DeploymentCloudUnion, - unknown -> = z.union([z.lazy(() => DeploymentCloud$inboundSchema), z.any()]); +export const DeploymentPendingPreparedStackOverrideAzureResource$inboundSchema: + z.ZodType = z + .object({ + scope: z.string(), + }); -export function deploymentCloudUnionFromJSON( +export function deploymentPendingPreparedStackOverrideAzureResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackOverrideAzureResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentCloudUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentCloudUnion' from JSON`, + (x) => + DeploymentPendingPreparedStackOverrideAzureResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackOverrideAzureResource' from JSON`, ); } /** @internal */ -export const DeploymentOwnership$inboundSchema: z.ZodEnum< - typeof DeploymentOwnership -> = z.enum(DeploymentOwnership); - -/** @internal */ -export const DeploymentCluster$inboundSchema: z.ZodType< - DeploymentCluster, - unknown -> = z.object({ - cloud: z.nullable( - z.union([z.lazy(() => DeploymentCloud$inboundSchema), z.any()]), - ).optional(), - namespace: z.nullable(z.string()).optional(), - ownership: DeploymentOwnership$inboundSchema, -}); +export const DeploymentPendingPreparedStackOverrideAzureStack$inboundSchema: + z.ZodType = z + .object({ + scope: z.string(), + }); -export function deploymentClusterFromJSON( +export function deploymentPendingPreparedStackOverrideAzureStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackOverrideAzureStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentCluster$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentCluster' from JSON`, + (x) => + DeploymentPendingPreparedStackOverrideAzureStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackOverrideAzureStack' from JSON`, ); } /** @internal */ -export const DeploymentClusterUnion$inboundSchema: z.ZodType< - DeploymentClusterUnion, - unknown -> = z.union([z.lazy(() => DeploymentCluster$inboundSchema), z.any()]); +export const DeploymentPendingPreparedStackOverrideAzureBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + DeploymentPendingPreparedStackOverrideAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentPendingPreparedStackOverrideAzureStack$inboundSchema + ).optional(), + }); -export function deploymentClusterUnionFromJSON( +export function deploymentPendingPreparedStackOverrideAzureBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackOverrideAzureBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentClusterUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentClusterUnion' from JSON`, + (x) => + DeploymentPendingPreparedStackOverrideAzureBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackOverrideAzureBinding' from JSON`, ); } /** @internal */ -export const DeploymentCertificateNone2$inboundSchema: z.ZodType< - DeploymentCertificateNone2, - unknown -> = z.object({ - mode: z.literal("none"), -}); +export const DeploymentPendingPreparedStackOverrideAzureGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function deploymentCertificateNone2FromJSON( +export function deploymentPendingPreparedStackOverrideAzureGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackOverrideAzureGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentCertificateNone2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentCertificateNone2' from JSON`, + (x) => + DeploymentPendingPreparedStackOverrideAzureGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackOverrideAzureGrant' from JSON`, ); } /** @internal */ -export const DeploymentCertificateManagedTLSSecret2$inboundSchema: z.ZodType< - DeploymentCertificateManagedTLSSecret2, - unknown -> = z.object({ - mode: z.literal("managedTlsSecret"), - secretNameTemplate: z.string(), -}); +export const DeploymentPendingPreparedStackOverrideAzure$inboundSchema: + z.ZodType = z.object({ + binding: z.lazy(() => + DeploymentPendingPreparedStackOverrideAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + DeploymentPendingPreparedStackOverrideAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function deploymentCertificateManagedTLSSecret2FromJSON( +export function deploymentPendingPreparedStackOverrideAzureFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackOverrideAzure, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentCertificateManagedTLSSecret2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentCertificateManagedTLSSecret2' from JSON`, + DeploymentPendingPreparedStackOverrideAzure$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackOverrideAzure' from JSON`, ); } /** @internal */ -export const DeploymentCertificateAwsAcmArn2$inboundSchema: z.ZodType< - DeploymentCertificateAwsAcmArn2, - unknown -> = z.object({ - certificateArn: z.string(), - mode: z.literal("awsAcmArn"), -}); +export const DeploymentPendingPreparedStackOverrideConditionResource$inboundSchema: + z.ZodType = + z.object({ + expression: z.string(), + title: z.string(), + }); -export function deploymentCertificateAwsAcmArn2FromJSON( +export function deploymentPendingPreparedStackOverrideConditionResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackOverrideConditionResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentCertificateAwsAcmArn2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentCertificateAwsAcmArn2' from JSON`, + (x) => + DeploymentPendingPreparedStackOverrideConditionResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentPendingPreparedStackOverrideConditionResource' from JSON`, ); } /** @internal */ -export const DeploymentCertificateManagedAcmImport2$inboundSchema: z.ZodType< - DeploymentCertificateManagedAcmImport2, - unknown -> = z.object({ - mode: z.literal("managedAcmImport"), - region: z.nullable(z.string()).optional(), - tags: z.record(z.string(), z.string()).optional(), -}); +export const DeploymentPendingPreparedStackOverrideResourceConditionUnion$inboundSchema: + z.ZodType< + DeploymentPendingPreparedStackOverrideResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + DeploymentPendingPreparedStackOverrideConditionResource$inboundSchema + ), + z.any(), + ]); -export function deploymentCertificateManagedAcmImport2FromJSON( +export function deploymentPendingPreparedStackOverrideResourceConditionUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackOverrideResourceConditionUnion, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentCertificateManagedAcmImport2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentCertificateManagedAcmImport2' from JSON`, + DeploymentPendingPreparedStackOverrideResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentPendingPreparedStackOverrideResourceConditionUnion' from JSON`, ); } /** @internal */ -export const DeploymentCertificateTLSSecretRef2$inboundSchema: z.ZodType< - DeploymentCertificateTLSSecretRef2, - unknown -> = z.object({ - namespace: z.nullable(z.string()).optional(), - secretName: z.string(), - mode: z.literal("tlsSecretRef"), -}); +export const DeploymentPendingPreparedStackOverrideGcpResource$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.union([ + z.lazy(() => + DeploymentPendingPreparedStackOverrideConditionResource$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function deploymentCertificateTLSSecretRef2FromJSON( +export function deploymentPendingPreparedStackOverrideGcpResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackOverrideGcpResource, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentCertificateTLSSecretRef2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentCertificateTLSSecretRef2' from JSON`, + DeploymentPendingPreparedStackOverrideGcpResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackOverrideGcpResource' from JSON`, ); } /** @internal */ -export const DeploymentCertificateUnion2$inboundSchema: z.ZodType< - DeploymentCertificateUnion2, - unknown -> = z.union([ - z.lazy(() => DeploymentCertificateTLSSecretRef2$inboundSchema), - z.lazy(() => DeploymentCertificateManagedAcmImport2$inboundSchema), - z.lazy(() => DeploymentCertificateAwsAcmArn2$inboundSchema), - z.lazy(() => DeploymentCertificateManagedTLSSecret2$inboundSchema), - z.lazy(() => DeploymentCertificateNone2$inboundSchema), -]); +export const DeploymentPendingPreparedStackOverrideConditionStack$inboundSchema: + z.ZodType = z + .object({ + expression: z.string(), + title: z.string(), + }); -export function deploymentCertificateUnion2FromJSON( +export function deploymentPendingPreparedStackOverrideConditionStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackOverrideConditionStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentCertificateUnion2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentCertificateUnion2' from JSON`, + (x) => + DeploymentPendingPreparedStackOverrideConditionStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackOverrideConditionStack' from JSON`, ); } /** @internal */ -export const DeploymentModeCustom$inboundSchema: z.ZodEnum< - typeof DeploymentModeCustom -> = z.enum(DeploymentModeCustom); - -/** @internal */ -export const DeploymentProviderAzureApplicationGatewayForContainersEnum4$inboundSchema: - z.ZodEnum< - typeof DeploymentProviderAzureApplicationGatewayForContainersEnum4 - > = z.enum(DeploymentProviderAzureApplicationGatewayForContainersEnum4); - -/** @internal */ -export const DeploymentProviderAzureApplicationGatewayForContainers4$inboundSchema: - z.ZodType = - z.object({ - albName: z.nullable(z.string()).optional(), - albNamespace: z.nullable(z.string()).optional(), - frontend: z.string(), - provider: - DeploymentProviderAzureApplicationGatewayForContainersEnum4$inboundSchema, - }); +export const DeploymentPendingPreparedStackOverrideStackConditionUnion$inboundSchema: + z.ZodType< + DeploymentPendingPreparedStackOverrideStackConditionUnion, + unknown + > = z.union([ + z.lazy(() => + DeploymentPendingPreparedStackOverrideConditionStack$inboundSchema + ), + z.any(), + ]); -export function deploymentProviderAzureApplicationGatewayForContainers4FromJSON( +export function deploymentPendingPreparedStackOverrideStackConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - DeploymentProviderAzureApplicationGatewayForContainers4, + DeploymentPendingPreparedStackOverrideStackConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentProviderAzureApplicationGatewayForContainers4$inboundSchema + DeploymentPendingPreparedStackOverrideStackConditionUnion$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'DeploymentProviderAzureApplicationGatewayForContainers4' from JSON`, + `Failed to parse 'DeploymentPendingPreparedStackOverrideStackConditionUnion' from JSON`, ); } /** @internal */ -export const DeploymentProviderGkeGatewayEnum4$inboundSchema: z.ZodEnum< - typeof DeploymentProviderGkeGatewayEnum4 -> = z.enum(DeploymentProviderGkeGatewayEnum4); - -/** @internal */ -export const DeploymentProviderGkeGateway4$inboundSchema: z.ZodType< - DeploymentProviderGkeGateway4, - unknown -> = z.object({ - provider: DeploymentProviderGkeGatewayEnum4$inboundSchema, - staticAddressName: z.nullable(z.string()).optional(), -}); +export const DeploymentPendingPreparedStackOverrideGcpStack$inboundSchema: + z.ZodType = z.object( + { + condition: z.nullable(z.union([ + z.lazy(() => + DeploymentPendingPreparedStackOverrideConditionStack$inboundSchema + ), + z.any(), + ])).optional(), + scope: z.string(), + }, + ); -export function deploymentProviderGkeGateway4FromJSON( +export function deploymentPendingPreparedStackOverrideGcpStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackOverrideGcpStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentProviderGkeGateway4$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProviderGkeGateway4' from JSON`, + (x) => + DeploymentPendingPreparedStackOverrideGcpStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackOverrideGcpStack' from JSON`, ); } /** @internal */ -export const DeploymentProviderAwsAlbEnum4$inboundSchema: z.ZodEnum< - typeof DeploymentProviderAwsAlbEnum4 -> = z.enum(DeploymentProviderAwsAlbEnum4); +export const DeploymentPendingPreparedStackOverrideGcpBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + DeploymentPendingPreparedStackOverrideGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentPendingPreparedStackOverrideGcpStack$inboundSchema + ).optional(), + }); + +export function deploymentPendingPreparedStackOverrideGcpBindingFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentPendingPreparedStackOverrideGcpBinding, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentPendingPreparedStackOverrideGcpBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackOverrideGcpBinding' from JSON`, + ); +} /** @internal */ -export const DeploymentProviderAwsAlb4$inboundSchema: z.ZodType< - DeploymentProviderAwsAlb4, - unknown -> = z.object({ - ipAddressType: z.nullable(z.string()).optional(), - provider: DeploymentProviderAwsAlbEnum4$inboundSchema, - scheme: z.string(), - subnetIds: z.array(z.string()).optional(), - targetType: z.string(), -}); +export const DeploymentPendingPreparedStackOverrideGcpGrant$inboundSchema: + z.ZodType = z.object( + { + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }, + ); -export function deploymentProviderAwsAlb4FromJSON( +export function deploymentPendingPreparedStackOverrideGcpGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackOverrideGcpGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentProviderAwsAlb4$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProviderAwsAlb4' from JSON`, + (x) => + DeploymentPendingPreparedStackOverrideGcpGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackOverrideGcpGrant' from JSON`, ); } /** @internal */ -export const DeploymentProviderUnion4$inboundSchema: z.ZodType< - DeploymentProviderUnion4, +export const DeploymentPendingPreparedStackOverrideGcp$inboundSchema: z.ZodType< + DeploymentPendingPreparedStackOverrideGcp, unknown -> = z.union([ - z.lazy(() => DeploymentProviderAwsAlb4$inboundSchema), - z.lazy(() => - DeploymentProviderAzureApplicationGatewayForContainers4$inboundSchema +> = z.object({ + binding: z.lazy(() => + DeploymentPendingPreparedStackOverrideGcpBinding$inboundSchema ), - z.lazy(() => DeploymentProviderGkeGateway4$inboundSchema), - z.any(), -]); + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + DeploymentPendingPreparedStackOverrideGcpGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), +}); -export function deploymentProviderUnion4FromJSON( +export function deploymentPendingPreparedStackOverrideGcpFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackOverrideGcp, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentProviderUnion4$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProviderUnion4' from JSON`, + (x) => + DeploymentPendingPreparedStackOverrideGcp$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackOverrideGcp' from JSON`, + ); +} + +/** @internal */ +export const DeploymentPendingPreparedStackOverridePlatforms$inboundSchema: + z.ZodType = z + .object({ + aws: z.nullable( + z.array(z.lazy(() => + DeploymentPendingPreparedStackOverrideAw$inboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + DeploymentPendingPreparedStackOverrideAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + DeploymentPendingPreparedStackOverrideGcp$inboundSchema + )), + ).optional(), + }); + +export function deploymentPendingPreparedStackOverridePlatformsFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentPendingPreparedStackOverridePlatforms, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentPendingPreparedStackOverridePlatforms$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackOverridePlatforms' from JSON`, ); } /** @internal */ -export const DeploymentRouteGateway2$inboundSchema: z.ZodType< - DeploymentRouteGateway2, +export const DeploymentPendingPreparedStackOverride$inboundSchema: z.ZodType< + DeploymentPendingPreparedStackOverride, unknown > = z.object({ - annotations: z.record(z.string(), z.string()).optional(), - controller: z.nullable(z.string()).optional(), - gatewayClassName: z.string(), - labels: z.record(z.string(), z.string()).optional(), - listenerPort: z.int(), - provider: z.nullable( - z.union([ - z.lazy(() => DeploymentProviderAwsAlb4$inboundSchema), - z.lazy(() => - DeploymentProviderAzureApplicationGatewayForContainers4$inboundSchema - ), - z.lazy(() => DeploymentProviderGkeGateway4$inboundSchema), - z.any(), - ]), - ).optional(), - routeApi: z.literal("gateway"), + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + DeploymentPendingPreparedStackOverridePlatforms$inboundSchema + ), }); -export function deploymentRouteGateway2FromJSON( +export function deploymentPendingPreparedStackOverrideFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentRouteGateway2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentRouteGateway2' from JSON`, + (x) => + DeploymentPendingPreparedStackOverride$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPendingPreparedStackOverride' from JSON`, ); } /** @internal */ -export const DeploymentProviderAzureApplicationGatewayForContainersEnum3$inboundSchema: - z.ZodEnum< - typeof DeploymentProviderAzureApplicationGatewayForContainersEnum3 - > = z.enum(DeploymentProviderAzureApplicationGatewayForContainersEnum3); - -/** @internal */ -export const DeploymentProviderAzureApplicationGatewayForContainers3$inboundSchema: - z.ZodType = - z.object({ - albName: z.nullable(z.string()).optional(), - albNamespace: z.nullable(z.string()).optional(), - frontend: z.string(), - provider: - DeploymentProviderAzureApplicationGatewayForContainersEnum3$inboundSchema, - }); +export const DeploymentPendingPreparedStackOverrideUnion$inboundSchema: + z.ZodType = z.union([ + z.lazy(() => DeploymentPendingPreparedStackOverride$inboundSchema), + z.string(), + ]); -export function deploymentProviderAzureApplicationGatewayForContainers3FromJSON( +export function deploymentPendingPreparedStackOverrideUnionFromJSON( jsonString: string, ): SafeParseResult< - DeploymentProviderAzureApplicationGatewayForContainers3, + DeploymentPendingPreparedStackOverrideUnion, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentProviderAzureApplicationGatewayForContainers3$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'DeploymentProviderAzureApplicationGatewayForContainers3' from JSON`, + DeploymentPendingPreparedStackOverrideUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackOverrideUnion' from JSON`, ); } /** @internal */ -export const DeploymentProviderGkeGatewayEnum3$inboundSchema: z.ZodEnum< - typeof DeploymentProviderGkeGatewayEnum3 -> = z.enum(DeploymentProviderGkeGatewayEnum3); - -/** @internal */ -export const DeploymentProviderGkeGateway3$inboundSchema: z.ZodType< - DeploymentProviderGkeGateway3, +export const DeploymentPendingPreparedStackManagement2$inboundSchema: z.ZodType< + DeploymentPendingPreparedStackManagement2, unknown > = z.object({ - provider: DeploymentProviderGkeGatewayEnum3$inboundSchema, - staticAddressName: z.nullable(z.string()).optional(), + override: z.record( + z.string(), + z.array(z.union([ + z.lazy(() => DeploymentPendingPreparedStackOverride$inboundSchema), + z.string(), + ])), + ), }); -export function deploymentProviderGkeGateway3FromJSON( +export function deploymentPendingPreparedStackManagement2FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackManagement2, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentProviderGkeGateway3$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProviderGkeGateway3' from JSON`, + (x) => + DeploymentPendingPreparedStackManagement2$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackManagement2' from JSON`, ); } /** @internal */ -export const DeploymentProviderAwsAlbEnum3$inboundSchema: z.ZodEnum< - typeof DeploymentProviderAwsAlbEnum3 -> = z.enum(DeploymentProviderAwsAlbEnum3); - -/** @internal */ -export const DeploymentProviderAwsAlb3$inboundSchema: z.ZodType< - DeploymentProviderAwsAlb3, - unknown -> = z.object({ - ipAddressType: z.nullable(z.string()).optional(), - provider: DeploymentProviderAwsAlbEnum3$inboundSchema, - scheme: z.string(), - subnetIds: z.array(z.string()).optional(), - targetType: z.string(), -}); +export const DeploymentPendingPreparedStackExtendAwResource$inboundSchema: + z.ZodType = z.object( + { + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }, + ); -export function deploymentProviderAwsAlb3FromJSON( +export function deploymentPendingPreparedStackExtendAwResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackExtendAwResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentProviderAwsAlb3$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProviderAwsAlb3' from JSON`, + (x) => + DeploymentPendingPreparedStackExtendAwResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackExtendAwResource' from JSON`, ); } /** @internal */ -export const DeploymentProviderUnion3$inboundSchema: z.ZodType< - DeploymentProviderUnion3, - unknown -> = z.union([ - z.lazy(() => DeploymentProviderAwsAlb3$inboundSchema), - z.lazy(() => - DeploymentProviderAzureApplicationGatewayForContainers3$inboundSchema - ), - z.lazy(() => DeploymentProviderGkeGateway3$inboundSchema), - z.any(), -]); +export const DeploymentPendingPreparedStackExtendAwStack$inboundSchema: + z.ZodType = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function deploymentProviderUnion3FromJSON( +export function deploymentPendingPreparedStackExtendAwStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackExtendAwStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentProviderUnion3$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProviderUnion3' from JSON`, + (x) => + DeploymentPendingPreparedStackExtendAwStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackExtendAwStack' from JSON`, ); } /** @internal */ -export const DeploymentRouteIngress2$inboundSchema: z.ZodType< - DeploymentRouteIngress2, - unknown -> = z.object({ - annotations: z.record(z.string(), z.string()).optional(), - controller: z.nullable(z.string()).optional(), - ingressClassName: z.string(), - labels: z.record(z.string(), z.string()).optional(), - provider: z.nullable( - z.union([ - z.lazy(() => DeploymentProviderAwsAlb3$inboundSchema), - z.lazy(() => - DeploymentProviderAzureApplicationGatewayForContainers3$inboundSchema - ), - z.lazy(() => DeploymentProviderGkeGateway3$inboundSchema), - z.any(), - ]), - ).optional(), - routeApi: z.literal("ingress"), -}); +export const DeploymentPendingPreparedStackExtendAwBinding$inboundSchema: + z.ZodType = z.object({ + resource: z.lazy(() => + DeploymentPendingPreparedStackExtendAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentPendingPreparedStackExtendAwStack$inboundSchema + ).optional(), + }); -export function deploymentRouteIngress2FromJSON( +export function deploymentPendingPreparedStackExtendAwBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackExtendAwBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentRouteIngress2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentRouteIngress2' from JSON`, + (x) => + DeploymentPendingPreparedStackExtendAwBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackExtendAwBinding' from JSON`, ); } /** @internal */ -export const DeploymentRouteUnion2$inboundSchema: z.ZodType< - DeploymentRouteUnion2, - unknown -> = z.union([ - z.lazy(() => DeploymentRouteIngress2$inboundSchema), - z.lazy(() => DeploymentRouteGateway2$inboundSchema), -]); +export const DeploymentPendingPreparedStackExtendEffect$inboundSchema: + z.ZodEnum = z.enum( + DeploymentPendingPreparedStackExtendEffect, + ); -export function deploymentRouteUnion2FromJSON( +/** @internal */ +export const DeploymentPendingPreparedStackExtendAwGrant$inboundSchema: + z.ZodType = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function deploymentPendingPreparedStackExtendAwGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackExtendAwGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentRouteUnion2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentRouteUnion2' from JSON`, + (x) => + DeploymentPendingPreparedStackExtendAwGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackExtendAwGrant' from JSON`, ); } /** @internal */ -export const DeploymentExposureCustom$inboundSchema: z.ZodType< - DeploymentExposureCustom, +export const DeploymentPendingPreparedStackExtendAw$inboundSchema: z.ZodType< + DeploymentPendingPreparedStackExtendAw, unknown > = z.object({ - certificate: z.union([ - z.lazy(() => DeploymentCertificateTLSSecretRef2$inboundSchema), - z.lazy(() => DeploymentCertificateManagedAcmImport2$inboundSchema), - z.lazy(() => DeploymentCertificateAwsAcmArn2$inboundSchema), - z.lazy(() => DeploymentCertificateManagedTLSSecret2$inboundSchema), - z.lazy(() => DeploymentCertificateNone2$inboundSchema), - ]), - domain: z.string(), - mode: DeploymentModeCustom$inboundSchema, - route: z.union([ - z.lazy(() => DeploymentRouteIngress2$inboundSchema), - z.lazy(() => DeploymentRouteGateway2$inboundSchema), - ]), + binding: z.lazy(() => + DeploymentPendingPreparedStackExtendAwBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: DeploymentPendingPreparedStackExtendEffect$inboundSchema.optional(), + grant: z.lazy(() => + DeploymentPendingPreparedStackExtendAwGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), }); -export function deploymentExposureCustomFromJSON( +export function deploymentPendingPreparedStackExtendAwFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentPendingPreparedStackExtendAw$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPendingPreparedStackExtendAw' from JSON`, + ); +} + +/** @internal */ +export const DeploymentPendingPreparedStackExtendAzureResource$inboundSchema: + z.ZodType = z + .object({ + scope: z.string(), + }); + +export function deploymentPendingPreparedStackExtendAzureResourceFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentPendingPreparedStackExtendAzureResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentExposureCustom$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExposureCustom' from JSON`, + (x) => + DeploymentPendingPreparedStackExtendAzureResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackExtendAzureResource' from JSON`, ); } /** @internal */ -export const DeploymentCertificateNone1$inboundSchema: z.ZodType< - DeploymentCertificateNone1, - unknown -> = z.object({ - mode: z.literal("none"), -}); +export const DeploymentPendingPreparedStackExtendAzureStack$inboundSchema: + z.ZodType = z.object( + { + scope: z.string(), + }, + ); -export function deploymentCertificateNone1FromJSON( +export function deploymentPendingPreparedStackExtendAzureStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackExtendAzureStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentCertificateNone1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentCertificateNone1' from JSON`, + (x) => + DeploymentPendingPreparedStackExtendAzureStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackExtendAzureStack' from JSON`, ); } /** @internal */ -export const DeploymentCertificateManagedTLSSecret1$inboundSchema: z.ZodType< - DeploymentCertificateManagedTLSSecret1, - unknown -> = z.object({ - mode: z.literal("managedTlsSecret"), - secretNameTemplate: z.string(), -}); +export const DeploymentPendingPreparedStackExtendAzureBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + DeploymentPendingPreparedStackExtendAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentPendingPreparedStackExtendAzureStack$inboundSchema + ).optional(), + }); -export function deploymentCertificateManagedTLSSecret1FromJSON( +export function deploymentPendingPreparedStackExtendAzureBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackExtendAzureBinding, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentCertificateManagedTLSSecret1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentCertificateManagedTLSSecret1' from JSON`, + DeploymentPendingPreparedStackExtendAzureBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackExtendAzureBinding' from JSON`, ); } /** @internal */ -export const DeploymentCertificateAwsAcmArn1$inboundSchema: z.ZodType< - DeploymentCertificateAwsAcmArn1, - unknown -> = z.object({ - certificateArn: z.string(), - mode: z.literal("awsAcmArn"), -}); +export const DeploymentPendingPreparedStackExtendAzureGrant$inboundSchema: + z.ZodType = z.object( + { + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }, + ); -export function deploymentCertificateAwsAcmArn1FromJSON( +export function deploymentPendingPreparedStackExtendAzureGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackExtendAzureGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentCertificateAwsAcmArn1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentCertificateAwsAcmArn1' from JSON`, + (x) => + DeploymentPendingPreparedStackExtendAzureGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackExtendAzureGrant' from JSON`, ); } /** @internal */ -export const DeploymentCertificateManagedAcmImport1$inboundSchema: z.ZodType< - DeploymentCertificateManagedAcmImport1, +export const DeploymentPendingPreparedStackExtendAzure$inboundSchema: z.ZodType< + DeploymentPendingPreparedStackExtendAzure, unknown > = z.object({ - mode: z.literal("managedAcmImport"), - region: z.nullable(z.string()).optional(), - tags: z.record(z.string(), z.string()).optional(), + binding: z.lazy(() => + DeploymentPendingPreparedStackExtendAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + DeploymentPendingPreparedStackExtendAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), }); -export function deploymentCertificateManagedAcmImport1FromJSON( +export function deploymentPendingPreparedStackExtendAzureFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackExtendAzure, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentCertificateManagedAcmImport1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentCertificateManagedAcmImport1' from JSON`, + DeploymentPendingPreparedStackExtendAzure$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackExtendAzure' from JSON`, ); } /** @internal */ -export const DeploymentCertificateTLSSecretRef1$inboundSchema: z.ZodType< - DeploymentCertificateTLSSecretRef1, - unknown -> = z.object({ - namespace: z.nullable(z.string()).optional(), - secretName: z.string(), - mode: z.literal("tlsSecretRef"), -}); +export const DeploymentPendingPreparedStackExtendConditionResource$inboundSchema: + z.ZodType = z + .object({ + expression: z.string(), + title: z.string(), + }); -export function deploymentCertificateTLSSecretRef1FromJSON( +export function deploymentPendingPreparedStackExtendConditionResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackExtendConditionResource, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentCertificateTLSSecretRef1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentCertificateTLSSecretRef1' from JSON`, + DeploymentPendingPreparedStackExtendConditionResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackExtendConditionResource' from JSON`, ); } /** @internal */ -export const DeploymentCertificateUnion1$inboundSchema: z.ZodType< - DeploymentCertificateUnion1, - unknown -> = z.union([ - z.lazy(() => DeploymentCertificateTLSSecretRef1$inboundSchema), - z.lazy(() => DeploymentCertificateManagedAcmImport1$inboundSchema), - z.lazy(() => DeploymentCertificateAwsAcmArn1$inboundSchema), - z.lazy(() => DeploymentCertificateManagedTLSSecret1$inboundSchema), - z.lazy(() => DeploymentCertificateNone1$inboundSchema), -]); +export const DeploymentPendingPreparedStackExtendResourceConditionUnion$inboundSchema: + z.ZodType< + DeploymentPendingPreparedStackExtendResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + DeploymentPendingPreparedStackExtendConditionResource$inboundSchema + ), + z.any(), + ]); -export function deploymentCertificateUnion1FromJSON( +export function deploymentPendingPreparedStackExtendResourceConditionUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackExtendResourceConditionUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentCertificateUnion1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentCertificateUnion1' from JSON`, + (x) => + DeploymentPendingPreparedStackExtendResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentPendingPreparedStackExtendResourceConditionUnion' from JSON`, ); } /** @internal */ -export const DeploymentModeGenerated$inboundSchema: z.ZodEnum< - typeof DeploymentModeGenerated -> = z.enum(DeploymentModeGenerated); - -/** @internal */ -export const DeploymentProviderAzureApplicationGatewayForContainersEnum2$inboundSchema: - z.ZodEnum< - typeof DeploymentProviderAzureApplicationGatewayForContainersEnum2 - > = z.enum(DeploymentProviderAzureApplicationGatewayForContainersEnum2); - -/** @internal */ -export const DeploymentProviderAzureApplicationGatewayForContainers2$inboundSchema: - z.ZodType = - z.object({ - albName: z.nullable(z.string()).optional(), - albNamespace: z.nullable(z.string()).optional(), - frontend: z.string(), - provider: - DeploymentProviderAzureApplicationGatewayForContainersEnum2$inboundSchema, +export const DeploymentPendingPreparedStackExtendGcpResource$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.union([ + z.lazy(() => + DeploymentPendingPreparedStackExtendConditionResource$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), }); -export function deploymentProviderAzureApplicationGatewayForContainers2FromJSON( +export function deploymentPendingPreparedStackExtendGcpResourceFromJSON( jsonString: string, ): SafeParseResult< - DeploymentProviderAzureApplicationGatewayForContainers2, + DeploymentPendingPreparedStackExtendGcpResource, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentProviderAzureApplicationGatewayForContainers2$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'DeploymentProviderAzureApplicationGatewayForContainers2' from JSON`, + DeploymentPendingPreparedStackExtendGcpResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackExtendGcpResource' from JSON`, ); } /** @internal */ -export const DeploymentProviderGkeGatewayEnum2$inboundSchema: z.ZodEnum< - typeof DeploymentProviderGkeGatewayEnum2 -> = z.enum(DeploymentProviderGkeGatewayEnum2); - -/** @internal */ -export const DeploymentProviderGkeGateway2$inboundSchema: z.ZodType< - DeploymentProviderGkeGateway2, - unknown -> = z.object({ - provider: DeploymentProviderGkeGatewayEnum2$inboundSchema, - staticAddressName: z.nullable(z.string()).optional(), -}); +export const DeploymentPendingPreparedStackExtendConditionStack$inboundSchema: + z.ZodType = z + .object({ + expression: z.string(), + title: z.string(), + }); -export function deploymentProviderGkeGateway2FromJSON( +export function deploymentPendingPreparedStackExtendConditionStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackExtendConditionStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentProviderGkeGateway2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProviderGkeGateway2' from JSON`, + (x) => + DeploymentPendingPreparedStackExtendConditionStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackExtendConditionStack' from JSON`, ); } /** @internal */ -export const DeploymentProviderAwsAlbEnum2$inboundSchema: z.ZodEnum< - typeof DeploymentProviderAwsAlbEnum2 -> = z.enum(DeploymentProviderAwsAlbEnum2); - -/** @internal */ -export const DeploymentProviderAwsAlb2$inboundSchema: z.ZodType< - DeploymentProviderAwsAlb2, - unknown -> = z.object({ - ipAddressType: z.nullable(z.string()).optional(), - provider: DeploymentProviderAwsAlbEnum2$inboundSchema, - scheme: z.string(), - subnetIds: z.array(z.string()).optional(), - targetType: z.string(), -}); +export const DeploymentPendingPreparedStackExtendStackConditionUnion$inboundSchema: + z.ZodType = + z.union([ + z.lazy(() => + DeploymentPendingPreparedStackExtendConditionStack$inboundSchema + ), + z.any(), + ]); -export function deploymentProviderAwsAlb2FromJSON( +export function deploymentPendingPreparedStackExtendStackConditionUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackExtendStackConditionUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentProviderAwsAlb2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProviderAwsAlb2' from JSON`, + (x) => + DeploymentPendingPreparedStackExtendStackConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentPendingPreparedStackExtendStackConditionUnion' from JSON`, ); } /** @internal */ -export const DeploymentProviderUnion2$inboundSchema: z.ZodType< - DeploymentProviderUnion2, - unknown -> = z.union([ - z.lazy(() => DeploymentProviderAwsAlb2$inboundSchema), - z.lazy(() => - DeploymentProviderAzureApplicationGatewayForContainers2$inboundSchema - ), - z.lazy(() => DeploymentProviderGkeGateway2$inboundSchema), - z.any(), -]); +export const DeploymentPendingPreparedStackExtendGcpStack$inboundSchema: + z.ZodType = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + DeploymentPendingPreparedStackExtendConditionStack$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function deploymentProviderUnion2FromJSON( +export function deploymentPendingPreparedStackExtendGcpStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackExtendGcpStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentProviderUnion2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProviderUnion2' from JSON`, + (x) => + DeploymentPendingPreparedStackExtendGcpStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackExtendGcpStack' from JSON`, ); } /** @internal */ -export const DeploymentRouteGateway1$inboundSchema: z.ZodType< - DeploymentRouteGateway1, - unknown -> = z.object({ - annotations: z.record(z.string(), z.string()).optional(), - controller: z.nullable(z.string()).optional(), - gatewayClassName: z.string(), - labels: z.record(z.string(), z.string()).optional(), - listenerPort: z.int(), - provider: z.nullable( - z.union([ - z.lazy(() => DeploymentProviderAwsAlb2$inboundSchema), - z.lazy(() => - DeploymentProviderAzureApplicationGatewayForContainers2$inboundSchema - ), - z.lazy(() => DeploymentProviderGkeGateway2$inboundSchema), - z.any(), - ]), - ).optional(), - routeApi: z.literal("gateway"), -}); +export const DeploymentPendingPreparedStackExtendGcpBinding$inboundSchema: + z.ZodType = z.object( + { + resource: z.lazy(() => + DeploymentPendingPreparedStackExtendGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentPendingPreparedStackExtendGcpStack$inboundSchema + ).optional(), + }, + ); -export function deploymentRouteGateway1FromJSON( +export function deploymentPendingPreparedStackExtendGcpBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackExtendGcpBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentRouteGateway1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentRouteGateway1' from JSON`, + (x) => + DeploymentPendingPreparedStackExtendGcpBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackExtendGcpBinding' from JSON`, ); } /** @internal */ -export const DeploymentProviderAzureApplicationGatewayForContainersEnum1$inboundSchema: - z.ZodEnum< - typeof DeploymentProviderAzureApplicationGatewayForContainersEnum1 - > = z.enum(DeploymentProviderAzureApplicationGatewayForContainersEnum1); - -/** @internal */ -export const DeploymentProviderAzureApplicationGatewayForContainers1$inboundSchema: - z.ZodType = - z.object({ - albName: z.nullable(z.string()).optional(), - albNamespace: z.nullable(z.string()).optional(), - frontend: z.string(), - provider: - DeploymentProviderAzureApplicationGatewayForContainersEnum1$inboundSchema, - }); +export const DeploymentPendingPreparedStackExtendGcpGrant$inboundSchema: + z.ZodType = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function deploymentProviderAzureApplicationGatewayForContainers1FromJSON( +export function deploymentPendingPreparedStackExtendGcpGrantFromJSON( jsonString: string, ): SafeParseResult< - DeploymentProviderAzureApplicationGatewayForContainers1, + DeploymentPendingPreparedStackExtendGcpGrant, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentProviderAzureApplicationGatewayForContainers1$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'DeploymentProviderAzureApplicationGatewayForContainers1' from JSON`, + DeploymentPendingPreparedStackExtendGcpGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackExtendGcpGrant' from JSON`, ); } /** @internal */ -export const DeploymentProviderGkeGatewayEnum1$inboundSchema: z.ZodEnum< - typeof DeploymentProviderGkeGatewayEnum1 -> = z.enum(DeploymentProviderGkeGatewayEnum1); - -/** @internal */ -export const DeploymentProviderGkeGateway1$inboundSchema: z.ZodType< - DeploymentProviderGkeGateway1, +export const DeploymentPendingPreparedStackExtendGcp$inboundSchema: z.ZodType< + DeploymentPendingPreparedStackExtendGcp, unknown > = z.object({ - provider: DeploymentProviderGkeGatewayEnum1$inboundSchema, - staticAddressName: z.nullable(z.string()).optional(), + binding: z.lazy(() => + DeploymentPendingPreparedStackExtendGcpBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + DeploymentPendingPreparedStackExtendGcpGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), }); -export function deploymentProviderGkeGateway1FromJSON( +export function deploymentPendingPreparedStackExtendGcpFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackExtendGcp, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentProviderGkeGateway1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProviderGkeGateway1' from JSON`, + (x) => + DeploymentPendingPreparedStackExtendGcp$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackExtendGcp' from JSON`, ); } /** @internal */ -export const DeploymentProviderAwsAlbEnum1$inboundSchema: z.ZodEnum< - typeof DeploymentProviderAwsAlbEnum1 -> = z.enum(DeploymentProviderAwsAlbEnum1); +export const DeploymentPendingPreparedStackExtendPlatforms$inboundSchema: + z.ZodType = z.object({ + aws: z.nullable( + z.array( + z.lazy(() => DeploymentPendingPreparedStackExtendAw$inboundSchema), + ), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + DeploymentPendingPreparedStackExtendAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array( + z.lazy(() => DeploymentPendingPreparedStackExtendGcp$inboundSchema), + ), + ).optional(), + }); + +export function deploymentPendingPreparedStackExtendPlatformsFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentPendingPreparedStackExtendPlatforms, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentPendingPreparedStackExtendPlatforms$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackExtendPlatforms' from JSON`, + ); +} /** @internal */ -export const DeploymentProviderAwsAlb1$inboundSchema: z.ZodType< - DeploymentProviderAwsAlb1, +export const DeploymentPendingPreparedStackExtend$inboundSchema: z.ZodType< + DeploymentPendingPreparedStackExtend, unknown > = z.object({ - ipAddressType: z.nullable(z.string()).optional(), - provider: DeploymentProviderAwsAlbEnum1$inboundSchema, - scheme: z.string(), - subnetIds: z.array(z.string()).optional(), - targetType: z.string(), + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + DeploymentPendingPreparedStackExtendPlatforms$inboundSchema + ), }); -export function deploymentProviderAwsAlb1FromJSON( +export function deploymentPendingPreparedStackExtendFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentProviderAwsAlb1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProviderAwsAlb1' from JSON`, + (x) => + DeploymentPendingPreparedStackExtend$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPendingPreparedStackExtend' from JSON`, ); } /** @internal */ -export const DeploymentProviderUnion1$inboundSchema: z.ZodType< - DeploymentProviderUnion1, +export const DeploymentPendingPreparedStackExtendUnion$inboundSchema: z.ZodType< + DeploymentPendingPreparedStackExtendUnion, unknown > = z.union([ - z.lazy(() => DeploymentProviderAwsAlb1$inboundSchema), - z.lazy(() => - DeploymentProviderAzureApplicationGatewayForContainers1$inboundSchema - ), - z.lazy(() => DeploymentProviderGkeGateway1$inboundSchema), - z.any(), + z.lazy(() => DeploymentPendingPreparedStackExtend$inboundSchema), + z.string(), ]); -export function deploymentProviderUnion1FromJSON( +export function deploymentPendingPreparedStackExtendUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackExtendUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentProviderUnion1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProviderUnion1' from JSON`, + (x) => + DeploymentPendingPreparedStackExtendUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackExtendUnion' from JSON`, ); } /** @internal */ -export const DeploymentRouteIngress1$inboundSchema: z.ZodType< - DeploymentRouteIngress1, +export const DeploymentPendingPreparedStackManagement1$inboundSchema: z.ZodType< + DeploymentPendingPreparedStackManagement1, unknown > = z.object({ - annotations: z.record(z.string(), z.string()).optional(), - controller: z.nullable(z.string()).optional(), - ingressClassName: z.string(), - labels: z.record(z.string(), z.string()).optional(), - provider: z.nullable( - z.union([ - z.lazy(() => DeploymentProviderAwsAlb1$inboundSchema), - z.lazy(() => - DeploymentProviderAzureApplicationGatewayForContainers1$inboundSchema - ), - z.lazy(() => DeploymentProviderGkeGateway1$inboundSchema), - z.any(), - ]), - ).optional(), - routeApi: z.literal("ingress"), + extend: z.record( + z.string(), + z.array(z.union([ + z.lazy(() => DeploymentPendingPreparedStackExtend$inboundSchema), + z.string(), + ])), + ), }); -export function deploymentRouteIngress1FromJSON( +export function deploymentPendingPreparedStackManagement1FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackManagement1, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentRouteIngress1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentRouteIngress1' from JSON`, + (x) => + DeploymentPendingPreparedStackManagement1$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackManagement1' from JSON`, ); } /** @internal */ -export const DeploymentRouteUnion1$inboundSchema: z.ZodType< - DeploymentRouteUnion1, - unknown -> = z.union([ - z.lazy(() => DeploymentRouteIngress1$inboundSchema), - z.lazy(() => DeploymentRouteGateway1$inboundSchema), -]); +export const DeploymentPendingPreparedStackManagementUnion$inboundSchema: + z.ZodType = z.union([ + z.lazy(() => DeploymentPendingPreparedStackManagement1$inboundSchema), + z.lazy(() => DeploymentPendingPreparedStackManagement2$inboundSchema), + DeploymentPendingPreparedStackManagementEnum$inboundSchema, + ]); -export function deploymentRouteUnion1FromJSON( +export function deploymentPendingPreparedStackManagementUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackManagementUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentRouteUnion1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentRouteUnion1' from JSON`, + (x) => + DeploymentPendingPreparedStackManagementUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackManagementUnion' from JSON`, ); } /** @internal */ -export const DeploymentExposureGenerated$inboundSchema: z.ZodType< - DeploymentExposureGenerated, - unknown -> = z.object({ - certificate: z.union([ - z.lazy(() => DeploymentCertificateTLSSecretRef1$inboundSchema), - z.lazy(() => DeploymentCertificateManagedAcmImport1$inboundSchema), - z.lazy(() => DeploymentCertificateAwsAcmArn1$inboundSchema), - z.lazy(() => DeploymentCertificateManagedTLSSecret1$inboundSchema), - z.lazy(() => DeploymentCertificateNone1$inboundSchema), - ]), - mode: DeploymentModeGenerated$inboundSchema, - route: z.union([ - z.lazy(() => DeploymentRouteIngress1$inboundSchema), - z.lazy(() => DeploymentRouteGateway1$inboundSchema), - ]), -}); +export const DeploymentPendingPreparedStackProfileAwResource$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function deploymentExposureGeneratedFromJSON( +export function deploymentPendingPreparedStackProfileAwResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackProfileAwResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentExposureGenerated$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExposureGenerated' from JSON`, + (x) => + DeploymentPendingPreparedStackProfileAwResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackProfileAwResource' from JSON`, ); } /** @internal */ -export const DeploymentModeDisabled$inboundSchema: z.ZodEnum< - typeof DeploymentModeDisabled -> = z.enum(DeploymentModeDisabled); +export const DeploymentPendingPreparedStackProfileAwStack$inboundSchema: + z.ZodType = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); + +export function deploymentPendingPreparedStackProfileAwStackFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentPendingPreparedStackProfileAwStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentPendingPreparedStackProfileAwStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackProfileAwStack' from JSON`, + ); +} /** @internal */ -export const DeploymentExposureDisabled$inboundSchema: z.ZodType< - DeploymentExposureDisabled, - unknown -> = z.object({ - mode: DeploymentModeDisabled$inboundSchema, -}); +export const DeploymentPendingPreparedStackProfileAwBinding$inboundSchema: + z.ZodType = z.object( + { + resource: z.lazy(() => + DeploymentPendingPreparedStackProfileAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentPendingPreparedStackProfileAwStack$inboundSchema + ).optional(), + }, + ); -export function deploymentExposureDisabledFromJSON( +export function deploymentPendingPreparedStackProfileAwBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackProfileAwBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentExposureDisabled$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExposureDisabled' from JSON`, + (x) => + DeploymentPendingPreparedStackProfileAwBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackProfileAwBinding' from JSON`, ); } /** @internal */ -export const DeploymentExposureUnion$inboundSchema: z.ZodType< - DeploymentExposureUnion, +export const DeploymentPendingPreparedStackProfileEffect$inboundSchema: + z.ZodEnum = z.enum( + DeploymentPendingPreparedStackProfileEffect, + ); + +/** @internal */ +export const DeploymentPendingPreparedStackProfileAwGrant$inboundSchema: + z.ZodType = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function deploymentPendingPreparedStackProfileAwGrantFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentPendingPreparedStackProfileAwGrant, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentPendingPreparedStackProfileAwGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackProfileAwGrant' from JSON`, + ); +} + +/** @internal */ +export const DeploymentPendingPreparedStackProfileAw$inboundSchema: z.ZodType< + DeploymentPendingPreparedStackProfileAw, unknown -> = z.union([ - z.lazy(() => DeploymentExposureCustom$inboundSchema), - z.lazy(() => DeploymentExposureGenerated$inboundSchema), - z.lazy(() => DeploymentExposureDisabled$inboundSchema), - z.any(), -]); +> = z.object({ + binding: z.lazy(() => + DeploymentPendingPreparedStackProfileAwBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: DeploymentPendingPreparedStackProfileEffect$inboundSchema.optional(), + grant: z.lazy(() => + DeploymentPendingPreparedStackProfileAwGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), +}); -export function deploymentExposureUnionFromJSON( +export function deploymentPendingPreparedStackProfileAwFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackProfileAw, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentExposureUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExposureUnion' from JSON`, + (x) => + DeploymentPendingPreparedStackProfileAw$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackProfileAw' from JSON`, ); } /** @internal */ -export const DeploymentKubernetes$inboundSchema: z.ZodType< - DeploymentKubernetes, - unknown -> = z.object({ - cluster: z.nullable( - z.union([z.lazy(() => DeploymentCluster$inboundSchema), z.any()]), - ).optional(), - exposure: z.nullable( - z.union([ - z.lazy(() => DeploymentExposureCustom$inboundSchema), - z.lazy(() => DeploymentExposureGenerated$inboundSchema), - z.lazy(() => DeploymentExposureDisabled$inboundSchema), - z.any(), - ]), - ).optional(), -}); +export const DeploymentPendingPreparedStackProfileAzureResource$inboundSchema: + z.ZodType = z + .object({ + scope: z.string(), + }); -export function deploymentKubernetesFromJSON( +export function deploymentPendingPreparedStackProfileAzureResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackProfileAzureResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentKubernetes$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentKubernetes' from JSON`, + (x) => + DeploymentPendingPreparedStackProfileAzureResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackProfileAzureResource' from JSON`, ); } /** @internal */ -export const DeploymentKubernetesUnion$inboundSchema: z.ZodType< - DeploymentKubernetesUnion, - unknown -> = z.union([z.lazy(() => DeploymentKubernetes$inboundSchema), z.any()]); +export const DeploymentPendingPreparedStackProfileAzureStack$inboundSchema: + z.ZodType = z + .object({ + scope: z.string(), + }); -export function deploymentKubernetesUnionFromJSON( +export function deploymentPendingPreparedStackProfileAzureStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackProfileAzureStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentKubernetesUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentKubernetesUnion' from JSON`, + (x) => + DeploymentPendingPreparedStackProfileAzureStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackProfileAzureStack' from JSON`, ); } /** @internal */ -export const DeploymentTypeByoVnetAzure$inboundSchema: z.ZodEnum< - typeof DeploymentTypeByoVnetAzure -> = z.enum(DeploymentTypeByoVnetAzure); - -/** @internal */ -export const DeploymentNetworkByoVnetAzure$inboundSchema: z.ZodType< - DeploymentNetworkByoVnetAzure, - unknown -> = z.object({ - application_gateway_subnet_name: z.nullable(z.string()).optional(), - private_endpoint_subnet_name: z.nullable(z.string()).optional(), - private_subnet_name: z.string(), - public_subnet_name: z.string(), - type: DeploymentTypeByoVnetAzure$inboundSchema, - vnet_resource_id: z.string(), -}).transform((v) => { - return remap$(v, { - "application_gateway_subnet_name": "applicationGatewaySubnetName", - "private_endpoint_subnet_name": "privateEndpointSubnetName", - "private_subnet_name": "privateSubnetName", - "public_subnet_name": "publicSubnetName", - "vnet_resource_id": "vnetResourceId", - }); -}); +export const DeploymentPendingPreparedStackProfileAzureBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + DeploymentPendingPreparedStackProfileAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentPendingPreparedStackProfileAzureStack$inboundSchema + ).optional(), + }); -export function deploymentNetworkByoVnetAzureFromJSON( +export function deploymentPendingPreparedStackProfileAzureBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackProfileAzureBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentNetworkByoVnetAzure$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentNetworkByoVnetAzure' from JSON`, + (x) => + DeploymentPendingPreparedStackProfileAzureBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackProfileAzureBinding' from JSON`, ); } /** @internal */ -export const DeploymentTypeByoVpcGcp$inboundSchema: z.ZodEnum< - typeof DeploymentTypeByoVpcGcp -> = z.enum(DeploymentTypeByoVpcGcp); - -/** @internal */ -export const DeploymentNetworkByoVpcGcp$inboundSchema: z.ZodType< - DeploymentNetworkByoVpcGcp, - unknown -> = z.object({ - network_name: z.string(), - region: z.string(), - subnet_name: z.string(), - type: DeploymentTypeByoVpcGcp$inboundSchema, -}).transform((v) => { - return remap$(v, { - "network_name": "networkName", - "subnet_name": "subnetName", - }); -}); +export const DeploymentPendingPreparedStackProfileAzureGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function deploymentNetworkByoVpcGcpFromJSON( +export function deploymentPendingPreparedStackProfileAzureGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackProfileAzureGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentNetworkByoVpcGcp$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentNetworkByoVpcGcp' from JSON`, + (x) => + DeploymentPendingPreparedStackProfileAzureGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackProfileAzureGrant' from JSON`, ); } /** @internal */ -export const DeploymentTypeByoVpcAws$inboundSchema: z.ZodEnum< - typeof DeploymentTypeByoVpcAws -> = z.enum(DeploymentTypeByoVpcAws); - -/** @internal */ -export const DeploymentNetworkByoVpcAws$inboundSchema: z.ZodType< - DeploymentNetworkByoVpcAws, - unknown -> = z.object({ - private_subnet_ids: z.array(z.string()), - public_subnet_ids: z.array(z.string()), - security_group_ids: z.array(z.string()).optional(), - type: DeploymentTypeByoVpcAws$inboundSchema, - vpc_id: z.string(), -}).transform((v) => { - return remap$(v, { - "private_subnet_ids": "privateSubnetIds", - "public_subnet_ids": "publicSubnetIds", - "security_group_ids": "securityGroupIds", - "vpc_id": "vpcId", +export const DeploymentPendingPreparedStackProfileAzure$inboundSchema: + z.ZodType = z.object({ + binding: z.lazy(() => + DeploymentPendingPreparedStackProfileAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + DeploymentPendingPreparedStackProfileAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), }); -}); -export function deploymentNetworkByoVpcAwsFromJSON( +export function deploymentPendingPreparedStackProfileAzureFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackProfileAzure, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentNetworkByoVpcAws$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentNetworkByoVpcAws' from JSON`, + (x) => + DeploymentPendingPreparedStackProfileAzure$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackProfileAzure' from JSON`, ); } /** @internal */ -export const DeploymentTypeCreate$inboundSchema: z.ZodEnum< - typeof DeploymentTypeCreate -> = z.enum(DeploymentTypeCreate); - -/** @internal */ -export const DeploymentNetworkCreate$inboundSchema: z.ZodType< - DeploymentNetworkCreate, - unknown -> = z.object({ - availability_zones: z.int().optional(), - cidr: z.nullable(z.string()).optional(), - type: DeploymentTypeCreate$inboundSchema, -}).transform((v) => { - return remap$(v, { - "availability_zones": "availabilityZones", - }); -}); +export const DeploymentPendingPreparedStackProfileConditionResource$inboundSchema: + z.ZodType = z + .object({ + expression: z.string(), + title: z.string(), + }); -export function deploymentNetworkCreateFromJSON( +export function deploymentPendingPreparedStackProfileConditionResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackProfileConditionResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentNetworkCreate$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentNetworkCreate' from JSON`, + (x) => + DeploymentPendingPreparedStackProfileConditionResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentPendingPreparedStackProfileConditionResource' from JSON`, ); } /** @internal */ -export const DeploymentTypeUseDefault$inboundSchema: z.ZodEnum< - typeof DeploymentTypeUseDefault -> = z.enum(DeploymentTypeUseDefault); - -/** @internal */ -export const DeploymentNetworkUseDefault$inboundSchema: z.ZodType< - DeploymentNetworkUseDefault, - unknown -> = z.object({ - type: DeploymentTypeUseDefault$inboundSchema, -}); +export const DeploymentPendingPreparedStackProfileResourceConditionUnion$inboundSchema: + z.ZodType< + DeploymentPendingPreparedStackProfileResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + DeploymentPendingPreparedStackProfileConditionResource$inboundSchema + ), + z.any(), + ]); -export function deploymentNetworkUseDefaultFromJSON( +export function deploymentPendingPreparedStackProfileResourceConditionUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackProfileResourceConditionUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentNetworkUseDefault$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentNetworkUseDefault' from JSON`, + (x) => + DeploymentPendingPreparedStackProfileResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentPendingPreparedStackProfileResourceConditionUnion' from JSON`, ); } /** @internal */ -export const DeploymentNetworkUnion$inboundSchema: z.ZodType< - DeploymentNetworkUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentNetworkByoVpcAws$inboundSchema), - z.lazy(() => DeploymentNetworkByoVpcGcp$inboundSchema), - z.lazy(() => DeploymentNetworkByoVnetAzure$inboundSchema), - z.lazy(() => DeploymentNetworkUseDefault$inboundSchema), - z.lazy(() => DeploymentNetworkCreate$inboundSchema), - z.any(), -]); +export const DeploymentPendingPreparedStackProfileGcpResource$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.union([ + z.lazy(() => + DeploymentPendingPreparedStackProfileConditionResource$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function deploymentNetworkUnionFromJSON( +export function deploymentPendingPreparedStackProfileGcpResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackProfileGcpResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentNetworkUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentNetworkUnion' from JSON`, + (x) => + DeploymentPendingPreparedStackProfileGcpResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackProfileGcpResource' from JSON`, ); } /** @internal */ -export const DeploymentTelemetry$inboundSchema: z.ZodEnum< - typeof DeploymentTelemetry -> = z.enum(DeploymentTelemetry); - -/** @internal */ -export const DeploymentUpdates$inboundSchema: z.ZodEnum< - typeof DeploymentUpdates -> = z.enum(DeploymentUpdates); +export const DeploymentPendingPreparedStackProfileConditionStack$inboundSchema: + z.ZodType = z + .object({ + expression: z.string(), + title: z.string(), + }); -/** @internal */ -export const DeploymentStackSettings$inboundSchema: z.ZodType< - DeploymentStackSettings, - unknown -> = z.object({ - compute: z.nullable( - z.union([z.lazy(() => DeploymentCompute$inboundSchema), z.any()]), - ).optional(), - deploymentModel: DeploymentDeploymentModel$inboundSchema.optional(), - domains: z.nullable( - z.union([z.lazy(() => DeploymentDomains$inboundSchema), z.any()]), - ).optional(), - externalBindings: z.nullable( - z.lazy(() => DeploymentExternalBindings$inboundSchema), - ).optional(), - heartbeats: DeploymentHeartbeats$inboundSchema.optional(), - kubernetes: z.nullable( - z.union([z.lazy(() => DeploymentKubernetes$inboundSchema), z.any()]), - ).optional(), - network: z.nullable( - z.union([ - z.lazy(() => DeploymentNetworkByoVpcAws$inboundSchema), - z.lazy(() => DeploymentNetworkByoVpcGcp$inboundSchema), - z.lazy(() => DeploymentNetworkByoVnetAzure$inboundSchema), - z.lazy(() => DeploymentNetworkUseDefault$inboundSchema), - z.lazy(() => DeploymentNetworkCreate$inboundSchema), +export function deploymentPendingPreparedStackProfileConditionStackFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentPendingPreparedStackProfileConditionStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentPendingPreparedStackProfileConditionStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackProfileConditionStack' from JSON`, + ); +} + +/** @internal */ +export const DeploymentPendingPreparedStackProfileStackConditionUnion$inboundSchema: + z.ZodType = + z.union([ + z.lazy(() => + DeploymentPendingPreparedStackProfileConditionStack$inboundSchema + ), z.any(), - ]), - ).optional(), - telemetry: DeploymentTelemetry$inboundSchema.optional(), - updates: DeploymentUpdates$inboundSchema.optional(), -}); + ]); -export function deploymentStackSettingsFromJSON( +export function deploymentPendingPreparedStackProfileStackConditionUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackProfileStackConditionUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentStackSettings$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentStackSettings' from JSON`, + (x) => + DeploymentPendingPreparedStackProfileStackConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentPendingPreparedStackProfileStackConditionUnion' from JSON`, ); } /** @internal */ -export const DeploymentStackStatePlatform$inboundSchema: z.ZodEnum< - typeof DeploymentStackStatePlatform -> = z.enum(DeploymentStackStatePlatform); - -/** @internal */ -export const DeploymentStackStateConfig$inboundSchema: z.ZodType< - DeploymentStackStateConfig, - unknown -> = collectExtraKeys$( - z.object({ - id: z.string(), - type: z.string(), - }).catchall(z.any()), - "additionalProperties", - true, -); +export const DeploymentPendingPreparedStackProfileGcpStack$inboundSchema: + z.ZodType = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + DeploymentPendingPreparedStackProfileConditionStack$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function deploymentStackStateConfigFromJSON( +export function deploymentPendingPreparedStackProfileGcpStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackProfileGcpStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentStackStateConfig$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentStackStateConfig' from JSON`, + (x) => + DeploymentPendingPreparedStackProfileGcpStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackProfileGcpStack' from JSON`, ); } /** @internal */ -export const DeploymentControllerPlatformEnum$inboundSchema: z.ZodEnum< - typeof DeploymentControllerPlatformEnum -> = z.enum(DeploymentControllerPlatformEnum); - -/** @internal */ -export const DeploymentControllerPlatformUnion$inboundSchema: z.ZodType< - DeploymentControllerPlatformUnion, - unknown -> = z.union([DeploymentControllerPlatformEnum$inboundSchema, z.any()]); +export const DeploymentPendingPreparedStackProfileGcpBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + DeploymentPendingPreparedStackProfileGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentPendingPreparedStackProfileGcpStack$inboundSchema + ).optional(), + }); -export function deploymentControllerPlatformUnionFromJSON( +export function deploymentPendingPreparedStackProfileGcpBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackProfileGcpBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentControllerPlatformUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentControllerPlatformUnion' from JSON`, + (x) => + DeploymentPendingPreparedStackProfileGcpBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackProfileGcpBinding' from JSON`, ); } /** @internal */ -export const DeploymentStackStateDependency$inboundSchema: z.ZodType< - DeploymentStackStateDependency, - unknown -> = z.object({ - id: z.string(), - type: z.string(), -}); +export const DeploymentPendingPreparedStackProfileGcpGrant$inboundSchema: + z.ZodType = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function deploymentStackStateDependencyFromJSON( +export function deploymentPendingPreparedStackProfileGcpGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackProfileGcpGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentStackStateDependency$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentStackStateDependency' from JSON`, + (x) => + DeploymentPendingPreparedStackProfileGcpGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackProfileGcpGrant' from JSON`, ); } /** @internal */ -export const DeploymentErrorStackState$inboundSchema: z.ZodType< - DeploymentErrorStackState, +export const DeploymentPendingPreparedStackProfileGcp$inboundSchema: z.ZodType< + DeploymentPendingPreparedStackProfileGcp, unknown > = z.object({ - code: z.string(), - context: z.nullable(z.any()).optional(), - hint: z.nullable(z.string()).optional(), - httpStatusCode: z.nullable(z.int()).optional(), - internal: z.boolean(), - message: z.string(), - retryable: z.boolean().default(false), - source: z.nullable(z.any()).optional(), + binding: z.lazy(() => + DeploymentPendingPreparedStackProfileGcpBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + DeploymentPendingPreparedStackProfileGcpGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), }); -export function deploymentErrorStackStateFromJSON( +export function deploymentPendingPreparedStackProfileGcpFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackProfileGcp, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentErrorStackState$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentErrorStackState' from JSON`, + (x) => + DeploymentPendingPreparedStackProfileGcp$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackProfileGcp' from JSON`, ); } /** @internal */ -export const DeploymentErrorUnion$inboundSchema: z.ZodType< - DeploymentErrorUnion, - unknown -> = z.union([z.lazy(() => DeploymentErrorStackState$inboundSchema), z.any()]); +export const DeploymentPendingPreparedStackProfilePlatforms$inboundSchema: + z.ZodType = z.object( + { + aws: z.nullable(z.array(z.lazy(() => + DeploymentPendingPreparedStackProfileAw$inboundSchema + ))).optional(), + azure: z.nullable(z.array(z.lazy(() => + DeploymentPendingPreparedStackProfileAzure$inboundSchema + ))).optional(), + gcp: z.nullable(z.array(z.lazy(() => + DeploymentPendingPreparedStackProfileGcp$inboundSchema + ))).optional(), + }, + ); -export function deploymentErrorUnionFromJSON( +export function deploymentPendingPreparedStackProfilePlatformsFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackProfilePlatforms, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentErrorUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentErrorUnion' from JSON`, + (x) => + DeploymentPendingPreparedStackProfilePlatforms$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackProfilePlatforms' from JSON`, ); } /** @internal */ -export const DeploymentLifecycleStackStateEnum$inboundSchema: z.ZodEnum< - typeof DeploymentLifecycleStackStateEnum -> = z.enum(DeploymentLifecycleStackStateEnum); - -/** @internal */ -export const DeploymentLifecycleUnion$inboundSchema: z.ZodType< - DeploymentLifecycleUnion, +export const DeploymentPendingPreparedStackProfile$inboundSchema: z.ZodType< + DeploymentPendingPreparedStackProfile, unknown -> = z.union([DeploymentLifecycleStackStateEnum$inboundSchema, z.any()]); +> = z.object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + DeploymentPendingPreparedStackProfilePlatforms$inboundSchema + ), +}); -export function deploymentLifecycleUnionFromJSON( +export function deploymentPendingPreparedStackProfileFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentLifecycleUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentLifecycleUnion' from JSON`, + (x) => + DeploymentPendingPreparedStackProfile$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPendingPreparedStackProfile' from JSON`, ); } /** @internal */ -export const DeploymentOutputs$inboundSchema: z.ZodType< - DeploymentOutputs, - unknown -> = collectExtraKeys$( - z.object({ - type: z.string(), - }).catchall(z.any()), - "additionalProperties", - true, -); +export const DeploymentPendingPreparedStackProfileUnion$inboundSchema: + z.ZodType = z.union([ + z.lazy(() => DeploymentPendingPreparedStackProfile$inboundSchema), + z.string(), + ]); -export function deploymentOutputsFromJSON( +export function deploymentPendingPreparedStackProfileUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackProfileUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentOutputs$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentOutputs' from JSON`, + (x) => + DeploymentPendingPreparedStackProfileUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackProfileUnion' from JSON`, ); } /** @internal */ -export const DeploymentOutputsUnion$inboundSchema: z.ZodType< - DeploymentOutputsUnion, +export const DeploymentPendingPreparedStackPermissions$inboundSchema: z.ZodType< + DeploymentPendingPreparedStackPermissions, unknown -> = z.union([z.lazy(() => DeploymentOutputs$inboundSchema), z.any()]); +> = z.object({ + management: z.union([ + z.lazy(() => DeploymentPendingPreparedStackManagement1$inboundSchema), + z.lazy(() => DeploymentPendingPreparedStackManagement2$inboundSchema), + DeploymentPendingPreparedStackManagementEnum$inboundSchema, + ]).optional(), + profiles: z.record( + z.string(), + z.record( + z.string(), + z.array( + z.union([ + z.lazy(() => DeploymentPendingPreparedStackProfile$inboundSchema), + z.string(), + ]), + ), + ), + ), +}); -export function deploymentOutputsUnionFromJSON( +export function deploymentPendingPreparedStackPermissionsFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackPermissions, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentOutputsUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentOutputsUnion' from JSON`, + (x) => + DeploymentPendingPreparedStackPermissions$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackPermissions' from JSON`, ); } /** @internal */ -export const DeploymentPreviousConfig$inboundSchema: z.ZodType< - DeploymentPreviousConfig, +export const DeploymentPendingPreparedStackConfig$inboundSchema: z.ZodType< + DeploymentPendingPreparedStackConfig, unknown > = collectExtraKeys$( z.object({ @@ -5462,267 +9581,309 @@ export const DeploymentPreviousConfig$inboundSchema: z.ZodType< true, ); -export function deploymentPreviousConfigFromJSON( +export function deploymentPendingPreparedStackConfigFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentPreviousConfig$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentPreviousConfig' from JSON`, + (x) => + DeploymentPendingPreparedStackConfig$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPendingPreparedStackConfig' from JSON`, ); } /** @internal */ -export const DeploymentPreviousConfigUnion$inboundSchema: z.ZodType< - DeploymentPreviousConfigUnion, +export const DeploymentPendingPreparedStackDependency$inboundSchema: z.ZodType< + DeploymentPendingPreparedStackDependency, unknown -> = z.union([z.lazy(() => DeploymentPreviousConfig$inboundSchema), z.any()]); +> = z.object({ + id: z.string(), + type: z.string(), +}); -export function deploymentPreviousConfigUnionFromJSON( +export function deploymentPendingPreparedStackDependencyFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackDependency, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentPreviousConfigUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentPreviousConfigUnion' from JSON`, + (x) => + DeploymentPendingPreparedStackDependency$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackDependency' from JSON`, ); } -/** @internal */ -export const DeploymentStackStateStatus$inboundSchema: z.ZodEnum< - typeof DeploymentStackStateStatus -> = z.enum(DeploymentStackStateStatus); - -/** @internal */ -export const DeploymentStackStateResources$inboundSchema: z.ZodType< - DeploymentStackStateResources, - unknown -> = z.object({ - _internal: z.nullable(z.any()).optional(), - config: z.lazy(() => DeploymentStackStateConfig$inboundSchema), - controllerPlatform: z.nullable( - z.union([DeploymentControllerPlatformEnum$inboundSchema, z.any()]), - ).optional(), - dependencies: z.array( - z.lazy(() => DeploymentStackStateDependency$inboundSchema), - ).optional(), - error: z.nullable( - z.union([z.lazy(() => DeploymentErrorStackState$inboundSchema), z.any()]), - ).optional(), - lastFailedState: z.nullable(z.any()).optional(), - lifecycle: z.nullable( - z.union([DeploymentLifecycleStackStateEnum$inboundSchema, z.any()]), - ).optional(), - outputs: z.nullable( - z.union([z.lazy(() => DeploymentOutputs$inboundSchema), z.any()]), - ).optional(), - previousConfig: z.nullable( - z.union([z.lazy(() => DeploymentPreviousConfig$inboundSchema), z.any()]), - ).optional(), - remoteBindingParams: z.nullable(z.any()).optional(), - retryAttempt: z.int().optional(), - status: DeploymentStackStateStatus$inboundSchema, - type: z.string(), -}).transform((v) => { - return remap$(v, { - "_internal": "internal", - }); +/** @internal */ +export const DeploymentPendingPreparedStackLifecycle$inboundSchema: z.ZodEnum< + typeof DeploymentPendingPreparedStackLifecycle +> = z.enum(DeploymentPendingPreparedStackLifecycle); + +/** @internal */ +export const DeploymentPendingPreparedStackResources$inboundSchema: z.ZodType< + DeploymentPendingPreparedStackResources, + unknown +> = z.object({ + config: z.lazy(() => DeploymentPendingPreparedStackConfig$inboundSchema), + dependencies: z.array( + z.lazy(() => DeploymentPendingPreparedStackDependency$inboundSchema), + ), + enabledWhen: z.nullable(z.string()).optional(), + lifecycle: DeploymentPendingPreparedStackLifecycle$inboundSchema, + remoteAccess: z.boolean().optional(), }); -export function deploymentStackStateResourcesFromJSON( +export function deploymentPendingPreparedStackResourcesFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPendingPreparedStackResources, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentStackStateResources$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentStackStateResources' from JSON`, + (x) => + DeploymentPendingPreparedStackResources$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPendingPreparedStackResources' from JSON`, ); } /** @internal */ -export const DeploymentStackState$inboundSchema: z.ZodType< - DeploymentStackState, +export const DeploymentPendingPreparedStackSupportedPlatform$inboundSchema: + z.ZodEnum = z.enum( + DeploymentPendingPreparedStackSupportedPlatform, + ); + +/** @internal */ +export const DeploymentPendingPreparedStack$inboundSchema: z.ZodType< + DeploymentPendingPreparedStack, unknown > = z.object({ - platform: DeploymentStackStatePlatform$inboundSchema, - resourcePrefix: z.string(), + id: z.string(), + inputs: z.array( + z.lazy(() => DeploymentPendingPreparedStackInput$inboundSchema), + ).optional(), + permissions: z.lazy(() => + DeploymentPendingPreparedStackPermissions$inboundSchema + ).optional(), resources: z.record( z.string(), - z.lazy(() => DeploymentStackStateResources$inboundSchema), + z.lazy(() => DeploymentPendingPreparedStackResources$inboundSchema), ), + supportedPlatforms: z.nullable( + z.array(DeploymentPendingPreparedStackSupportedPlatform$inboundSchema), + ).optional(), }); -export function deploymentStackStateFromJSON( +export function deploymentPendingPreparedStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentStackState$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentStackState' from JSON`, + (x) => DeploymentPendingPreparedStack$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPendingPreparedStack' from JSON`, + ); +} + +/** @internal */ +export const DeploymentPendingPreparedStackUnion$inboundSchema: z.ZodType< + DeploymentPendingPreparedStackUnion, + unknown +> = z.union([ + z.lazy(() => DeploymentPendingPreparedStack$inboundSchema), + z.any(), +]); + +export function deploymentPendingPreparedStackUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentPendingPreparedStackUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPendingPreparedStackUnion' from JSON`, ); } /** @internal */ -export const DeploymentTypeStringList$inboundSchema: z.ZodEnum< - typeof DeploymentTypeStringList -> = z.enum(DeploymentTypeStringList); +export const DeploymentPreparedStackTypeStringList$inboundSchema: z.ZodEnum< + typeof DeploymentPreparedStackTypeStringList +> = z.enum(DeploymentPreparedStackTypeStringList); /** @internal */ -export const DeploymentDefaultStringList$inboundSchema: z.ZodType< - DeploymentDefaultStringList, +export const DeploymentPreparedStackDefaultStringList$inboundSchema: z.ZodType< + DeploymentPreparedStackDefaultStringList, unknown > = z.object({ - type: DeploymentTypeStringList$inboundSchema, + type: DeploymentPreparedStackTypeStringList$inboundSchema, value: z.array(z.string()), }); -export function deploymentDefaultStringListFromJSON( +export function deploymentPreparedStackDefaultStringListFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackDefaultStringList, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentDefaultStringList$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDefaultStringList' from JSON`, + (x) => + DeploymentPreparedStackDefaultStringList$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackDefaultStringList' from JSON`, ); } /** @internal */ -export const DeploymentTypeBoolean$inboundSchema: z.ZodEnum< - typeof DeploymentTypeBoolean -> = z.enum(DeploymentTypeBoolean); +export const DeploymentPreparedStackTypeBoolean$inboundSchema: z.ZodEnum< + typeof DeploymentPreparedStackTypeBoolean +> = z.enum(DeploymentPreparedStackTypeBoolean); /** @internal */ -export const DeploymentDefaultBoolean$inboundSchema: z.ZodType< - DeploymentDefaultBoolean, +export const DeploymentPreparedStackDefaultBoolean$inboundSchema: z.ZodType< + DeploymentPreparedStackDefaultBoolean, unknown > = z.object({ - type: DeploymentTypeBoolean$inboundSchema, + type: DeploymentPreparedStackTypeBoolean$inboundSchema, value: z.boolean(), }); -export function deploymentDefaultBooleanFromJSON( +export function deploymentPreparedStackDefaultBooleanFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentDefaultBoolean$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDefaultBoolean' from JSON`, + (x) => + DeploymentPreparedStackDefaultBoolean$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackDefaultBoolean' from JSON`, ); } /** @internal */ -export const DeploymentTypeNumber$inboundSchema: z.ZodEnum< - typeof DeploymentTypeNumber -> = z.enum(DeploymentTypeNumber); +export const DeploymentPreparedStackTypeNumber$inboundSchema: z.ZodEnum< + typeof DeploymentPreparedStackTypeNumber +> = z.enum(DeploymentPreparedStackTypeNumber); /** @internal */ -export const DeploymentDefaultNumber$inboundSchema: z.ZodType< - DeploymentDefaultNumber, +export const DeploymentPreparedStackDefaultNumber$inboundSchema: z.ZodType< + DeploymentPreparedStackDefaultNumber, unknown > = z.object({ - type: DeploymentTypeNumber$inboundSchema, + type: DeploymentPreparedStackTypeNumber$inboundSchema, value: z.string(), }); -export function deploymentDefaultNumberFromJSON( +export function deploymentPreparedStackDefaultNumberFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentDefaultNumber$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDefaultNumber' from JSON`, + (x) => + DeploymentPreparedStackDefaultNumber$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackDefaultNumber' from JSON`, ); } /** @internal */ -export const DeploymentTypeString$inboundSchema: z.ZodEnum< - typeof DeploymentTypeString -> = z.enum(DeploymentTypeString); +export const DeploymentPreparedStackTypeString$inboundSchema: z.ZodEnum< + typeof DeploymentPreparedStackTypeString +> = z.enum(DeploymentPreparedStackTypeString); /** @internal */ -export const DeploymentDefaultString$inboundSchema: z.ZodType< - DeploymentDefaultString, +export const DeploymentPreparedStackDefaultString$inboundSchema: z.ZodType< + DeploymentPreparedStackDefaultString, unknown > = z.object({ - type: DeploymentTypeString$inboundSchema, + type: DeploymentPreparedStackTypeString$inboundSchema, value: z.string(), }); -export function deploymentDefaultStringFromJSON( +export function deploymentPreparedStackDefaultStringFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentDefaultString$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDefaultString' from JSON`, + (x) => + DeploymentPreparedStackDefaultString$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackDefaultString' from JSON`, ); } /** @internal */ -export const DeploymentDefaultUnion$inboundSchema: z.ZodType< - DeploymentDefaultUnion, +export const DeploymentPreparedStackDefaultUnion$inboundSchema: z.ZodType< + DeploymentPreparedStackDefaultUnion, unknown > = z.union([ - z.lazy(() => DeploymentDefaultString$inboundSchema), - z.lazy(() => DeploymentDefaultNumber$inboundSchema), - z.lazy(() => DeploymentDefaultBoolean$inboundSchema), - z.lazy(() => DeploymentDefaultStringList$inboundSchema), + z.lazy(() => DeploymentPreparedStackDefaultString$inboundSchema), + z.lazy(() => DeploymentPreparedStackDefaultNumber$inboundSchema), + z.lazy(() => DeploymentPreparedStackDefaultBoolean$inboundSchema), + z.lazy(() => DeploymentPreparedStackDefaultStringList$inboundSchema), z.any(), ]); -export function deploymentDefaultUnionFromJSON( +export function deploymentPreparedStackDefaultUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentDefaultUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDefaultUnion' from JSON`, + (x) => + DeploymentPreparedStackDefaultUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackDefaultUnion' from JSON`, ); } /** @internal */ -export const DeploymentTypeEnvEnum$inboundSchema: z.ZodEnum< - typeof DeploymentTypeEnvEnum -> = z.enum(DeploymentTypeEnvEnum); +export const DeploymentPreparedStackTypeEnvEnum$inboundSchema: z.ZodEnum< + typeof DeploymentPreparedStackTypeEnvEnum +> = z.enum(DeploymentPreparedStackTypeEnvEnum); /** @internal */ -export const DeploymentTypeUnion$inboundSchema: z.ZodType< - DeploymentTypeUnion, +export const DeploymentPreparedStackTypeUnion$inboundSchema: z.ZodType< + DeploymentPreparedStackTypeUnion, unknown -> = z.union([DeploymentTypeEnvEnum$inboundSchema, z.any()]); +> = z.union([DeploymentPreparedStackTypeEnvEnum$inboundSchema, z.any()]); -export function deploymentTypeUnionFromJSON( +export function deploymentPreparedStackTypeUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentTypeUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentTypeUnion' from JSON`, + (x) => DeploymentPreparedStackTypeUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackTypeUnion' from JSON`, ); } /** @internal */ -export const DeploymentEnv$inboundSchema: z.ZodType = z - .object({ - name: z.string(), - targetResources: z.nullable(z.array(z.string())).optional(), - type: z.nullable(z.union([DeploymentTypeEnvEnum$inboundSchema, z.any()])) - .optional(), - }); +export const DeploymentPreparedStackEnv$inboundSchema: z.ZodType< + DeploymentPreparedStackEnv, + unknown +> = z.object({ + name: z.string(), + targetResources: z.nullable(z.array(z.string())).optional(), + type: z.nullable( + z.union([DeploymentPreparedStackTypeEnvEnum$inboundSchema, z.any()]), + ).optional(), +}); -export function deploymentEnvFromJSON( +export function deploymentPreparedStackEnvFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentEnv$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentEnv' from JSON`, + (x) => DeploymentPreparedStackEnv$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackEnv' from JSON`, ); } /** @internal */ -export const DeploymentKind$inboundSchema: z.ZodEnum = z - .enum(DeploymentKind); +export const DeploymentPreparedStackKind$inboundSchema: z.ZodEnum< + typeof DeploymentPreparedStackKind +> = z.enum(DeploymentPreparedStackKind); /** @internal */ export const DeploymentPreparedStackPlatform$inboundSchema: z.ZodEnum< @@ -5730,13 +9891,13 @@ export const DeploymentPreparedStackPlatform$inboundSchema: z.ZodEnum< > = z.enum(DeploymentPreparedStackPlatform); /** @internal */ -export const DeploymentProvidedBy$inboundSchema: z.ZodEnum< - typeof DeploymentProvidedBy -> = z.enum(DeploymentProvidedBy); +export const DeploymentPreparedStackProvidedBy$inboundSchema: z.ZodEnum< + typeof DeploymentPreparedStackProvidedBy +> = z.enum(DeploymentPreparedStackProvidedBy); /** @internal */ -export const DeploymentValidation$inboundSchema: z.ZodType< - DeploymentValidation, +export const DeploymentPreparedStackValidation$inboundSchema: z.ZodType< + DeploymentPreparedStackValidation, unknown > = z.object({ format: z.nullable(z.string()).optional(), @@ -5750,79 +9911,87 @@ export const DeploymentValidation$inboundSchema: z.ZodType< values: z.nullable(z.array(z.string())).optional(), }); -export function deploymentValidationFromJSON( +export function deploymentPreparedStackValidationFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentValidation$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentValidation' from JSON`, + (x) => DeploymentPreparedStackValidation$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackValidation' from JSON`, ); } /** @internal */ -export const DeploymentValidationUnion$inboundSchema: z.ZodType< - DeploymentValidationUnion, +export const DeploymentPreparedStackValidationUnion$inboundSchema: z.ZodType< + DeploymentPreparedStackValidationUnion, unknown -> = z.union([z.lazy(() => DeploymentValidation$inboundSchema), z.any()]); +> = z.union([ + z.lazy(() => DeploymentPreparedStackValidation$inboundSchema), + z.any(), +]); -export function deploymentValidationUnionFromJSON( +export function deploymentPreparedStackValidationUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentValidationUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentValidationUnion' from JSON`, + (x) => + DeploymentPreparedStackValidationUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackValidationUnion' from JSON`, ); } /** @internal */ -export const DeploymentInput$inboundSchema: z.ZodType< - DeploymentInput, +export const DeploymentPreparedStackInput$inboundSchema: z.ZodType< + DeploymentPreparedStackInput, unknown > = z.object({ default: z.nullable( z.union([ - z.lazy(() => DeploymentDefaultString$inboundSchema), - z.lazy(() => DeploymentDefaultNumber$inboundSchema), - z.lazy(() => DeploymentDefaultBoolean$inboundSchema), - z.lazy(() => DeploymentDefaultStringList$inboundSchema), + z.lazy(() => DeploymentPreparedStackDefaultString$inboundSchema), + z.lazy(() => DeploymentPreparedStackDefaultNumber$inboundSchema), + z.lazy(() => DeploymentPreparedStackDefaultBoolean$inboundSchema), + z.lazy(() => DeploymentPreparedStackDefaultStringList$inboundSchema), z.any(), ]), ).optional(), description: z.string(), - env: z.array(z.lazy(() => DeploymentEnv$inboundSchema)).optional(), + env: z.array(z.lazy(() => DeploymentPreparedStackEnv$inboundSchema)) + .optional(), id: z.string(), - kind: DeploymentKind$inboundSchema, + kind: DeploymentPreparedStackKind$inboundSchema, label: z.string(), placeholder: z.nullable(z.string()).optional(), platforms: z.nullable(z.array(DeploymentPreparedStackPlatform$inboundSchema)) .optional(), - providedBy: z.array(DeploymentProvidedBy$inboundSchema), + providedBy: z.array(DeploymentPreparedStackProvidedBy$inboundSchema), required: z.boolean(), validation: z.nullable( - z.union([z.lazy(() => DeploymentValidation$inboundSchema), z.any()]), + z.union([ + z.lazy(() => DeploymentPreparedStackValidation$inboundSchema), + z.any(), + ]), ).optional(), }); -export function deploymentInputFromJSON( +export function deploymentPreparedStackInputFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentInput$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentInput' from JSON`, + (x) => DeploymentPreparedStackInput$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackInput' from JSON`, ); } /** @internal */ -export const DeploymentManagementEnum$inboundSchema: z.ZodEnum< - typeof DeploymentManagementEnum -> = z.enum(DeploymentManagementEnum); +export const DeploymentPreparedStackManagementEnum$inboundSchema: z.ZodEnum< + typeof DeploymentPreparedStackManagementEnum +> = z.enum(DeploymentPreparedStackManagementEnum); /** @internal */ -export const DeploymentOverrideAwResource$inboundSchema: z.ZodType< - DeploymentOverrideAwResource, +export const DeploymentPreparedStackOverrideAwResource$inboundSchema: z.ZodType< + DeploymentPreparedStackOverrideAwResource, unknown > = z.object({ condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) @@ -5830,19 +9999,25 @@ export const DeploymentOverrideAwResource$inboundSchema: z.ZodType< resources: z.array(z.string()), }); -export function deploymentOverrideAwResourceFromJSON( +export function deploymentPreparedStackOverrideAwResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackOverrideAwResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentOverrideAwResource$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentOverrideAwResource' from JSON`, + (x) => + DeploymentPreparedStackOverrideAwResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackOverrideAwResource' from JSON`, ); } /** @internal */ -export const DeploymentOverrideAwStack$inboundSchema: z.ZodType< - DeploymentOverrideAwStack, +export const DeploymentPreparedStackOverrideAwStack$inboundSchema: z.ZodType< + DeploymentPreparedStackOverrideAwStack, unknown > = z.object({ condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) @@ -5850,43 +10025,53 @@ export const DeploymentOverrideAwStack$inboundSchema: z.ZodType< resources: z.array(z.string()), }); -export function deploymentOverrideAwStackFromJSON( +export function deploymentPreparedStackOverrideAwStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentOverrideAwStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentOverrideAwStack' from JSON`, + (x) => + DeploymentPreparedStackOverrideAwStack$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackOverrideAwStack' from JSON`, ); } /** @internal */ -export const DeploymentOverrideAwBinding$inboundSchema: z.ZodType< - DeploymentOverrideAwBinding, +export const DeploymentPreparedStackOverrideAwBinding$inboundSchema: z.ZodType< + DeploymentPreparedStackOverrideAwBinding, unknown > = z.object({ - resource: z.lazy(() => DeploymentOverrideAwResource$inboundSchema).optional(), - stack: z.lazy(() => DeploymentOverrideAwStack$inboundSchema).optional(), + resource: z.lazy(() => + DeploymentPreparedStackOverrideAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => DeploymentPreparedStackOverrideAwStack$inboundSchema) + .optional(), }); -export function deploymentOverrideAwBindingFromJSON( +export function deploymentPreparedStackOverrideAwBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackOverrideAwBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentOverrideAwBinding$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentOverrideAwBinding' from JSON`, + (x) => + DeploymentPreparedStackOverrideAwBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackOverrideAwBinding' from JSON`, ); } /** @internal */ -export const DeploymentOverrideEffect$inboundSchema: z.ZodEnum< - typeof DeploymentOverrideEffect -> = z.enum(DeploymentOverrideEffect); +export const DeploymentPreparedStackOverrideEffect$inboundSchema: z.ZodEnum< + typeof DeploymentPreparedStackOverrideEffect +> = z.enum(DeploymentPreparedStackOverrideEffect); /** @internal */ -export const DeploymentOverrideAwGrant$inboundSchema: z.ZodType< - DeploymentOverrideAwGrant, +export const DeploymentPreparedStackOverrideAwGrant$inboundSchema: z.ZodType< + DeploymentPreparedStackOverrideAwGrant, unknown > = z.object({ actions: z.nullable(z.array(z.string())).optional(), @@ -5896,97 +10081,114 @@ export const DeploymentOverrideAwGrant$inboundSchema: z.ZodType< residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function deploymentOverrideAwGrantFromJSON( +export function deploymentPreparedStackOverrideAwGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentOverrideAwGrant$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentOverrideAwGrant' from JSON`, + (x) => + DeploymentPreparedStackOverrideAwGrant$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackOverrideAwGrant' from JSON`, ); } /** @internal */ -export const DeploymentOverrideAw$inboundSchema: z.ZodType< - DeploymentOverrideAw, +export const DeploymentPreparedStackOverrideAw$inboundSchema: z.ZodType< + DeploymentPreparedStackOverrideAw, unknown > = z.object({ - binding: z.lazy(() => DeploymentOverrideAwBinding$inboundSchema), + binding: z.lazy(() => DeploymentPreparedStackOverrideAwBinding$inboundSchema), description: z.nullable(z.string()).optional(), - effect: DeploymentOverrideEffect$inboundSchema.optional(), - grant: z.lazy(() => DeploymentOverrideAwGrant$inboundSchema), + effect: DeploymentPreparedStackOverrideEffect$inboundSchema.optional(), + grant: z.lazy(() => DeploymentPreparedStackOverrideAwGrant$inboundSchema), label: z.nullable(z.string()).optional(), }); -export function deploymentOverrideAwFromJSON( +export function deploymentPreparedStackOverrideAwFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentOverrideAw$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentOverrideAw' from JSON`, + (x) => DeploymentPreparedStackOverrideAw$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackOverrideAw' from JSON`, ); } /** @internal */ -export const DeploymentOverrideAzureResource$inboundSchema: z.ZodType< - DeploymentOverrideAzureResource, - unknown -> = z.object({ - scope: z.string(), -}); +export const DeploymentPreparedStackOverrideAzureResource$inboundSchema: + z.ZodType = z.object({ + scope: z.string(), + }); -export function deploymentOverrideAzureResourceFromJSON( +export function deploymentPreparedStackOverrideAzureResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackOverrideAzureResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentOverrideAzureResource$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentOverrideAzureResource' from JSON`, + (x) => + DeploymentPreparedStackOverrideAzureResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackOverrideAzureResource' from JSON`, ); } /** @internal */ -export const DeploymentOverrideAzureStack$inboundSchema: z.ZodType< - DeploymentOverrideAzureStack, +export const DeploymentPreparedStackOverrideAzureStack$inboundSchema: z.ZodType< + DeploymentPreparedStackOverrideAzureStack, unknown > = z.object({ scope: z.string(), }); -export function deploymentOverrideAzureStackFromJSON( +export function deploymentPreparedStackOverrideAzureStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackOverrideAzureStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentOverrideAzureStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentOverrideAzureStack' from JSON`, + (x) => + DeploymentPreparedStackOverrideAzureStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackOverrideAzureStack' from JSON`, ); } /** @internal */ -export const DeploymentOverrideAzureBinding$inboundSchema: z.ZodType< - DeploymentOverrideAzureBinding, - unknown -> = z.object({ - resource: z.lazy(() => DeploymentOverrideAzureResource$inboundSchema) - .optional(), - stack: z.lazy(() => DeploymentOverrideAzureStack$inboundSchema).optional(), -}); +export const DeploymentPreparedStackOverrideAzureBinding$inboundSchema: + z.ZodType = z.object({ + resource: z.lazy(() => + DeploymentPreparedStackOverrideAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => DeploymentPreparedStackOverrideAzureStack$inboundSchema) + .optional(), + }); -export function deploymentOverrideAzureBindingFromJSON( +export function deploymentPreparedStackOverrideAzureBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackOverrideAzureBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentOverrideAzureBinding$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentOverrideAzureBinding' from JSON`, + (x) => + DeploymentPreparedStackOverrideAzureBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackOverrideAzureBinding' from JSON`, ); } /** @internal */ -export const DeploymentOverrideAzureGrant$inboundSchema: z.ZodType< - DeploymentOverrideAzureGrant, +export const DeploymentPreparedStackOverrideAzureGrant$inboundSchema: z.ZodType< + DeploymentPreparedStackOverrideAzureGrant, unknown > = z.object({ actions: z.nullable(z.array(z.string())).optional(), @@ -5996,192 +10198,234 @@ export const DeploymentOverrideAzureGrant$inboundSchema: z.ZodType< residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function deploymentOverrideAzureGrantFromJSON( +export function deploymentPreparedStackOverrideAzureGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackOverrideAzureGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentOverrideAzureGrant$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentOverrideAzureGrant' from JSON`, + (x) => + DeploymentPreparedStackOverrideAzureGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackOverrideAzureGrant' from JSON`, ); } /** @internal */ -export const DeploymentOverrideAzure$inboundSchema: z.ZodType< - DeploymentOverrideAzure, +export const DeploymentPreparedStackOverrideAzure$inboundSchema: z.ZodType< + DeploymentPreparedStackOverrideAzure, unknown > = z.object({ - binding: z.lazy(() => DeploymentOverrideAzureBinding$inboundSchema), + binding: z.lazy(() => + DeploymentPreparedStackOverrideAzureBinding$inboundSchema + ), description: z.nullable(z.string()).optional(), - grant: z.lazy(() => DeploymentOverrideAzureGrant$inboundSchema), + grant: z.lazy(() => DeploymentPreparedStackOverrideAzureGrant$inboundSchema), label: z.nullable(z.string()).optional(), }); -export function deploymentOverrideAzureFromJSON( +export function deploymentPreparedStackOverrideAzureFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentOverrideAzure$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentOverrideAzure' from JSON`, + (x) => + DeploymentPreparedStackOverrideAzure$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackOverrideAzure' from JSON`, ); } /** @internal */ -export const DeploymentOverrideConditionResource$inboundSchema: z.ZodType< - DeploymentOverrideConditionResource, - unknown -> = z.object({ - expression: z.string(), - title: z.string(), -}); +export const DeploymentPreparedStackOverrideConditionResource$inboundSchema: + z.ZodType = z + .object({ + expression: z.string(), + title: z.string(), + }); -export function deploymentOverrideConditionResourceFromJSON( +export function deploymentPreparedStackOverrideConditionResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackOverrideConditionResource, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentOverrideConditionResource$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentOverrideConditionResource' from JSON`, + DeploymentPreparedStackOverrideConditionResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackOverrideConditionResource' from JSON`, ); } /** @internal */ -export const DeploymentOverrideResourceConditionUnion$inboundSchema: z.ZodType< - DeploymentOverrideResourceConditionUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentOverrideConditionResource$inboundSchema), - z.any(), -]); +export const DeploymentPreparedStackOverrideResourceConditionUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => + DeploymentPreparedStackOverrideConditionResource$inboundSchema + ), + z.any(), + ]); -export function deploymentOverrideResourceConditionUnionFromJSON( +export function deploymentPreparedStackOverrideResourceConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - DeploymentOverrideResourceConditionUnion, + DeploymentPreparedStackOverrideResourceConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentOverrideResourceConditionUnion$inboundSchema.parse( + DeploymentPreparedStackOverrideResourceConditionUnion$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentOverrideResourceConditionUnion' from JSON`, + `Failed to parse 'DeploymentPreparedStackOverrideResourceConditionUnion' from JSON`, ); } /** @internal */ -export const DeploymentOverrideGcpResource$inboundSchema: z.ZodType< - DeploymentOverrideGcpResource, - unknown -> = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => DeploymentOverrideConditionResource$inboundSchema), - z.any(), - ]), - ).optional(), - scope: z.string(), -}); +export const DeploymentPreparedStackOverrideGcpResource$inboundSchema: + z.ZodType = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + DeploymentPreparedStackOverrideConditionResource$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function deploymentOverrideGcpResourceFromJSON( +export function deploymentPreparedStackOverrideGcpResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackOverrideGcpResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentOverrideGcpResource$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentOverrideGcpResource' from JSON`, + (x) => + DeploymentPreparedStackOverrideGcpResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackOverrideGcpResource' from JSON`, ); } /** @internal */ -export const DeploymentOverrideConditionStack$inboundSchema: z.ZodType< - DeploymentOverrideConditionStack, - unknown -> = z.object({ - expression: z.string(), - title: z.string(), -}); +export const DeploymentPreparedStackOverrideConditionStack$inboundSchema: + z.ZodType = z.object({ + expression: z.string(), + title: z.string(), + }); -export function deploymentOverrideConditionStackFromJSON( +export function deploymentPreparedStackOverrideConditionStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackOverrideConditionStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentOverrideConditionStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentOverrideConditionStack' from JSON`, + (x) => + DeploymentPreparedStackOverrideConditionStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackOverrideConditionStack' from JSON`, ); } /** @internal */ -export const DeploymentOverrideStackConditionUnion$inboundSchema: z.ZodType< - DeploymentOverrideStackConditionUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentOverrideConditionStack$inboundSchema), - z.any(), -]); +export const DeploymentPreparedStackOverrideStackConditionUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => DeploymentPreparedStackOverrideConditionStack$inboundSchema), + z.any(), + ]); -export function deploymentOverrideStackConditionUnionFromJSON( +export function deploymentPreparedStackOverrideStackConditionUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackOverrideStackConditionUnion, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentOverrideStackConditionUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentOverrideStackConditionUnion' from JSON`, + DeploymentPreparedStackOverrideStackConditionUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackOverrideStackConditionUnion' from JSON`, ); } /** @internal */ -export const DeploymentOverrideGcpStack$inboundSchema: z.ZodType< - DeploymentOverrideGcpStack, +export const DeploymentPreparedStackOverrideGcpStack$inboundSchema: z.ZodType< + DeploymentPreparedStackOverrideGcpStack, unknown > = z.object({ condition: z.nullable( z.union([ - z.lazy(() => DeploymentOverrideConditionStack$inboundSchema), + z.lazy(() => DeploymentPreparedStackOverrideConditionStack$inboundSchema), z.any(), ]), ).optional(), scope: z.string(), }); -export function deploymentOverrideGcpStackFromJSON( +export function deploymentPreparedStackOverrideGcpStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackOverrideGcpStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentOverrideGcpStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentOverrideGcpStack' from JSON`, + (x) => + DeploymentPreparedStackOverrideGcpStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackOverrideGcpStack' from JSON`, ); } /** @internal */ -export const DeploymentOverrideGcpBinding$inboundSchema: z.ZodType< - DeploymentOverrideGcpBinding, +export const DeploymentPreparedStackOverrideGcpBinding$inboundSchema: z.ZodType< + DeploymentPreparedStackOverrideGcpBinding, unknown > = z.object({ - resource: z.lazy(() => DeploymentOverrideGcpResource$inboundSchema) + resource: z.lazy(() => + DeploymentPreparedStackOverrideGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => DeploymentPreparedStackOverrideGcpStack$inboundSchema) .optional(), - stack: z.lazy(() => DeploymentOverrideGcpStack$inboundSchema).optional(), }); -export function deploymentOverrideGcpBindingFromJSON( +export function deploymentPreparedStackOverrideGcpBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackOverrideGcpBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentOverrideGcpBinding$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentOverrideGcpBinding' from JSON`, + (x) => + DeploymentPreparedStackOverrideGcpBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackOverrideGcpBinding' from JSON`, ); } /** @internal */ -export const DeploymentOverrideGcpGrant$inboundSchema: z.ZodType< - DeploymentOverrideGcpGrant, +export const DeploymentPreparedStackOverrideGcpGrant$inboundSchema: z.ZodType< + DeploymentPreparedStackOverrideGcpGrant, unknown > = z.object({ actions: z.nullable(z.array(z.string())).optional(), @@ -6191,123 +10435,148 @@ export const DeploymentOverrideGcpGrant$inboundSchema: z.ZodType< residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function deploymentOverrideGcpGrantFromJSON( +export function deploymentPreparedStackOverrideGcpGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackOverrideGcpGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentOverrideGcpGrant$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentOverrideGcpGrant' from JSON`, + (x) => + DeploymentPreparedStackOverrideGcpGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackOverrideGcpGrant' from JSON`, ); } /** @internal */ -export const DeploymentOverrideGcp$inboundSchema: z.ZodType< - DeploymentOverrideGcp, +export const DeploymentPreparedStackOverrideGcp$inboundSchema: z.ZodType< + DeploymentPreparedStackOverrideGcp, unknown > = z.object({ - binding: z.lazy(() => DeploymentOverrideGcpBinding$inboundSchema), + binding: z.lazy(() => + DeploymentPreparedStackOverrideGcpBinding$inboundSchema + ), description: z.nullable(z.string()).optional(), - grant: z.lazy(() => DeploymentOverrideGcpGrant$inboundSchema), + grant: z.lazy(() => DeploymentPreparedStackOverrideGcpGrant$inboundSchema), label: z.nullable(z.string()).optional(), }); -export function deploymentOverrideGcpFromJSON( +export function deploymentPreparedStackOverrideGcpFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentOverrideGcp$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentOverrideGcp' from JSON`, + (x) => + DeploymentPreparedStackOverrideGcp$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackOverrideGcp' from JSON`, ); } /** @internal */ -export const DeploymentOverridePlatforms$inboundSchema: z.ZodType< - DeploymentOverridePlatforms, +export const DeploymentPreparedStackOverridePlatforms$inboundSchema: z.ZodType< + DeploymentPreparedStackOverridePlatforms, unknown > = z.object({ - aws: z.nullable(z.array(z.lazy(() => DeploymentOverrideAw$inboundSchema))) - .optional(), + aws: z.nullable( + z.array(z.lazy(() => DeploymentPreparedStackOverrideAw$inboundSchema)), + ).optional(), azure: z.nullable( - z.array(z.lazy(() => DeploymentOverrideAzure$inboundSchema)), + z.array(z.lazy(() => DeploymentPreparedStackOverrideAzure$inboundSchema)), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => DeploymentPreparedStackOverrideGcp$inboundSchema)), ).optional(), - gcp: z.nullable(z.array(z.lazy(() => DeploymentOverrideGcp$inboundSchema))) - .optional(), }); -export function deploymentOverridePlatformsFromJSON( +export function deploymentPreparedStackOverridePlatformsFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackOverridePlatforms, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentOverridePlatforms$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentOverridePlatforms' from JSON`, + (x) => + DeploymentPreparedStackOverridePlatforms$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackOverridePlatforms' from JSON`, ); } /** @internal */ -export const DeploymentOverride$inboundSchema: z.ZodType< - DeploymentOverride, +export const DeploymentPreparedStackOverride$inboundSchema: z.ZodType< + DeploymentPreparedStackOverride, unknown > = z.object({ description: z.string(), id: z.string(), - platforms: z.lazy(() => DeploymentOverridePlatforms$inboundSchema), + platforms: z.lazy(() => + DeploymentPreparedStackOverridePlatforms$inboundSchema + ), }); -export function deploymentOverrideFromJSON( +export function deploymentPreparedStackOverrideFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentOverride$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentOverride' from JSON`, + (x) => DeploymentPreparedStackOverride$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackOverride' from JSON`, ); } /** @internal */ -export const DeploymentOverrideUnion$inboundSchema: z.ZodType< - DeploymentOverrideUnion, +export const DeploymentPreparedStackOverrideUnion$inboundSchema: z.ZodType< + DeploymentPreparedStackOverrideUnion, unknown -> = z.union([z.lazy(() => DeploymentOverride$inboundSchema), z.string()]); +> = z.union([ + z.lazy(() => DeploymentPreparedStackOverride$inboundSchema), + z.string(), +]); -export function deploymentOverrideUnionFromJSON( +export function deploymentPreparedStackOverrideUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentOverrideUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentOverrideUnion' from JSON`, + (x) => + DeploymentPreparedStackOverrideUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackOverrideUnion' from JSON`, ); } /** @internal */ -export const DeploymentManagement2$inboundSchema: z.ZodType< - DeploymentManagement2, +export const DeploymentPreparedStackManagement2$inboundSchema: z.ZodType< + DeploymentPreparedStackManagement2, unknown > = z.object({ override: z.record( z.string(), - z.array( - z.union([z.lazy(() => DeploymentOverride$inboundSchema), z.string()]), - ), + z.array(z.union([ + z.lazy(() => DeploymentPreparedStackOverride$inboundSchema), + z.string(), + ])), ), }); -export function deploymentManagement2FromJSON( +export function deploymentPreparedStackManagement2FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentManagement2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentManagement2' from JSON`, + (x) => + DeploymentPreparedStackManagement2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackManagement2' from JSON`, ); } /** @internal */ -export const DeploymentExtendAwResource$inboundSchema: z.ZodType< - DeploymentExtendAwResource, +export const DeploymentPreparedStackExtendAwResource$inboundSchema: z.ZodType< + DeploymentPreparedStackExtendAwResource, unknown > = z.object({ condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) @@ -6315,19 +10584,25 @@ export const DeploymentExtendAwResource$inboundSchema: z.ZodType< resources: z.array(z.string()), }); -export function deploymentExtendAwResourceFromJSON( +export function deploymentPreparedStackExtendAwResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackExtendAwResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentExtendAwResource$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExtendAwResource' from JSON`, + (x) => + DeploymentPreparedStackExtendAwResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackExtendAwResource' from JSON`, ); } /** @internal */ -export const DeploymentExtendAwStack$inboundSchema: z.ZodType< - DeploymentExtendAwStack, +export const DeploymentPreparedStackExtendAwStack$inboundSchema: z.ZodType< + DeploymentPreparedStackExtendAwStack, unknown > = z.object({ condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) @@ -6335,43 +10610,47 @@ export const DeploymentExtendAwStack$inboundSchema: z.ZodType< resources: z.array(z.string()), }); -export function deploymentExtendAwStackFromJSON( +export function deploymentPreparedStackExtendAwStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentExtendAwStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExtendAwStack' from JSON`, + (x) => + DeploymentPreparedStackExtendAwStack$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackExtendAwStack' from JSON`, ); } /** @internal */ -export const DeploymentExtendAwBinding$inboundSchema: z.ZodType< - DeploymentExtendAwBinding, +export const DeploymentPreparedStackExtendAwBinding$inboundSchema: z.ZodType< + DeploymentPreparedStackExtendAwBinding, unknown > = z.object({ - resource: z.lazy(() => DeploymentExtendAwResource$inboundSchema).optional(), - stack: z.lazy(() => DeploymentExtendAwStack$inboundSchema).optional(), + resource: z.lazy(() => DeploymentPreparedStackExtendAwResource$inboundSchema) + .optional(), + stack: z.lazy(() => DeploymentPreparedStackExtendAwStack$inboundSchema) + .optional(), }); -export function deploymentExtendAwBindingFromJSON( +export function deploymentPreparedStackExtendAwBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentExtendAwBinding$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExtendAwBinding' from JSON`, + (x) => + DeploymentPreparedStackExtendAwBinding$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackExtendAwBinding' from JSON`, ); } /** @internal */ -export const DeploymentExtendEffect$inboundSchema: z.ZodEnum< - typeof DeploymentExtendEffect -> = z.enum(DeploymentExtendEffect); +export const DeploymentPreparedStackExtendEffect$inboundSchema: z.ZodEnum< + typeof DeploymentPreparedStackExtendEffect +> = z.enum(DeploymentPreparedStackExtendEffect); /** @internal */ -export const DeploymentExtendAwGrant$inboundSchema: z.ZodType< - DeploymentExtendAwGrant, +export const DeploymentPreparedStackExtendAwGrant$inboundSchema: z.ZodType< + DeploymentPreparedStackExtendAwGrant, unknown > = z.object({ actions: z.nullable(z.array(z.string())).optional(), @@ -6381,97 +10660,116 @@ export const DeploymentExtendAwGrant$inboundSchema: z.ZodType< residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function deploymentExtendAwGrantFromJSON( +export function deploymentPreparedStackExtendAwGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentExtendAwGrant$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExtendAwGrant' from JSON`, + (x) => + DeploymentPreparedStackExtendAwGrant$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackExtendAwGrant' from JSON`, ); } /** @internal */ -export const DeploymentExtendAw$inboundSchema: z.ZodType< - DeploymentExtendAw, +export const DeploymentPreparedStackExtendAw$inboundSchema: z.ZodType< + DeploymentPreparedStackExtendAw, unknown > = z.object({ - binding: z.lazy(() => DeploymentExtendAwBinding$inboundSchema), + binding: z.lazy(() => DeploymentPreparedStackExtendAwBinding$inboundSchema), description: z.nullable(z.string()).optional(), - effect: DeploymentExtendEffect$inboundSchema.optional(), - grant: z.lazy(() => DeploymentExtendAwGrant$inboundSchema), + effect: DeploymentPreparedStackExtendEffect$inboundSchema.optional(), + grant: z.lazy(() => DeploymentPreparedStackExtendAwGrant$inboundSchema), label: z.nullable(z.string()).optional(), }); -export function deploymentExtendAwFromJSON( +export function deploymentPreparedStackExtendAwFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentExtendAw$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExtendAw' from JSON`, + (x) => DeploymentPreparedStackExtendAw$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackExtendAw' from JSON`, ); } /** @internal */ -export const DeploymentExtendAzureResource$inboundSchema: z.ZodType< - DeploymentExtendAzureResource, - unknown -> = z.object({ - scope: z.string(), -}); +export const DeploymentPreparedStackExtendAzureResource$inboundSchema: + z.ZodType = z.object({ + scope: z.string(), + }); -export function deploymentExtendAzureResourceFromJSON( +export function deploymentPreparedStackExtendAzureResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackExtendAzureResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentExtendAzureResource$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExtendAzureResource' from JSON`, + (x) => + DeploymentPreparedStackExtendAzureResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackExtendAzureResource' from JSON`, ); } /** @internal */ -export const DeploymentExtendAzureStack$inboundSchema: z.ZodType< - DeploymentExtendAzureStack, +export const DeploymentPreparedStackExtendAzureStack$inboundSchema: z.ZodType< + DeploymentPreparedStackExtendAzureStack, unknown > = z.object({ scope: z.string(), }); -export function deploymentExtendAzureStackFromJSON( +export function deploymentPreparedStackExtendAzureStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackExtendAzureStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentExtendAzureStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExtendAzureStack' from JSON`, + (x) => + DeploymentPreparedStackExtendAzureStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackExtendAzureStack' from JSON`, ); } /** @internal */ -export const DeploymentExtendAzureBinding$inboundSchema: z.ZodType< - DeploymentExtendAzureBinding, +export const DeploymentPreparedStackExtendAzureBinding$inboundSchema: z.ZodType< + DeploymentPreparedStackExtendAzureBinding, unknown > = z.object({ - resource: z.lazy(() => DeploymentExtendAzureResource$inboundSchema) + resource: z.lazy(() => + DeploymentPreparedStackExtendAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => DeploymentPreparedStackExtendAzureStack$inboundSchema) .optional(), - stack: z.lazy(() => DeploymentExtendAzureStack$inboundSchema).optional(), }); -export function deploymentExtendAzureBindingFromJSON( +export function deploymentPreparedStackExtendAzureBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackExtendAzureBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentExtendAzureBinding$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExtendAzureBinding' from JSON`, + (x) => + DeploymentPreparedStackExtendAzureBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackExtendAzureBinding' from JSON`, ); } /** @internal */ -export const DeploymentExtendAzureGrant$inboundSchema: z.ZodType< - DeploymentExtendAzureGrant, +export const DeploymentPreparedStackExtendAzureGrant$inboundSchema: z.ZodType< + DeploymentPreparedStackExtendAzureGrant, unknown > = z.object({ actions: z.nullable(z.array(z.string())).optional(), @@ -6481,185 +10779,231 @@ export const DeploymentExtendAzureGrant$inboundSchema: z.ZodType< residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function deploymentExtendAzureGrantFromJSON( +export function deploymentPreparedStackExtendAzureGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackExtendAzureGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentExtendAzureGrant$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExtendAzureGrant' from JSON`, + (x) => + DeploymentPreparedStackExtendAzureGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackExtendAzureGrant' from JSON`, ); } /** @internal */ -export const DeploymentExtendAzure$inboundSchema: z.ZodType< - DeploymentExtendAzure, +export const DeploymentPreparedStackExtendAzure$inboundSchema: z.ZodType< + DeploymentPreparedStackExtendAzure, unknown > = z.object({ - binding: z.lazy(() => DeploymentExtendAzureBinding$inboundSchema), + binding: z.lazy(() => + DeploymentPreparedStackExtendAzureBinding$inboundSchema + ), description: z.nullable(z.string()).optional(), - grant: z.lazy(() => DeploymentExtendAzureGrant$inboundSchema), + grant: z.lazy(() => DeploymentPreparedStackExtendAzureGrant$inboundSchema), label: z.nullable(z.string()).optional(), }); -export function deploymentExtendAzureFromJSON( +export function deploymentPreparedStackExtendAzureFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentExtendAzure$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExtendAzure' from JSON`, + (x) => + DeploymentPreparedStackExtendAzure$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackExtendAzure' from JSON`, ); } /** @internal */ -export const DeploymentExtendConditionResource$inboundSchema: z.ZodType< - DeploymentExtendConditionResource, - unknown -> = z.object({ - expression: z.string(), - title: z.string(), -}); +export const DeploymentPreparedStackExtendConditionResource$inboundSchema: + z.ZodType = z.object( + { + expression: z.string(), + title: z.string(), + }, + ); -export function deploymentExtendConditionResourceFromJSON( +export function deploymentPreparedStackExtendConditionResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackExtendConditionResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentExtendConditionResource$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExtendConditionResource' from JSON`, + (x) => + DeploymentPreparedStackExtendConditionResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackExtendConditionResource' from JSON`, ); } /** @internal */ -export const DeploymentExtendResourceConditionUnion$inboundSchema: z.ZodType< - DeploymentExtendResourceConditionUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentExtendConditionResource$inboundSchema), - z.any(), -]); +export const DeploymentPreparedStackExtendResourceConditionUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => + DeploymentPreparedStackExtendConditionResource$inboundSchema + ), + z.any(), + ]); -export function deploymentExtendResourceConditionUnionFromJSON( +export function deploymentPreparedStackExtendResourceConditionUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackExtendResourceConditionUnion, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentExtendResourceConditionUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExtendResourceConditionUnion' from JSON`, + DeploymentPreparedStackExtendResourceConditionUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackExtendResourceConditionUnion' from JSON`, ); } /** @internal */ -export const DeploymentExtendGcpResource$inboundSchema: z.ZodType< - DeploymentExtendGcpResource, +export const DeploymentPreparedStackExtendGcpResource$inboundSchema: z.ZodType< + DeploymentPreparedStackExtendGcpResource, unknown > = z.object({ condition: z.nullable( z.union([ - z.lazy(() => DeploymentExtendConditionResource$inboundSchema), + z.lazy(() => + DeploymentPreparedStackExtendConditionResource$inboundSchema + ), z.any(), ]), ).optional(), scope: z.string(), }); -export function deploymentExtendGcpResourceFromJSON( +export function deploymentPreparedStackExtendGcpResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackExtendGcpResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentExtendGcpResource$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExtendGcpResource' from JSON`, + (x) => + DeploymentPreparedStackExtendGcpResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackExtendGcpResource' from JSON`, ); } /** @internal */ -export const DeploymentExtendConditionStack$inboundSchema: z.ZodType< - DeploymentExtendConditionStack, - unknown -> = z.object({ - expression: z.string(), - title: z.string(), -}); +export const DeploymentPreparedStackExtendConditionStack$inboundSchema: + z.ZodType = z.object({ + expression: z.string(), + title: z.string(), + }); -export function deploymentExtendConditionStackFromJSON( +export function deploymentPreparedStackExtendConditionStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackExtendConditionStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentExtendConditionStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExtendConditionStack' from JSON`, + (x) => + DeploymentPreparedStackExtendConditionStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackExtendConditionStack' from JSON`, ); } /** @internal */ -export const DeploymentExtendStackConditionUnion$inboundSchema: z.ZodType< - DeploymentExtendStackConditionUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentExtendConditionStack$inboundSchema), - z.any(), -]); +export const DeploymentPreparedStackExtendStackConditionUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => DeploymentPreparedStackExtendConditionStack$inboundSchema), + z.any(), + ]); -export function deploymentExtendStackConditionUnionFromJSON( +export function deploymentPreparedStackExtendStackConditionUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackExtendStackConditionUnion, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentExtendStackConditionUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExtendStackConditionUnion' from JSON`, + DeploymentPreparedStackExtendStackConditionUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackExtendStackConditionUnion' from JSON`, ); } /** @internal */ -export const DeploymentExtendGcpStack$inboundSchema: z.ZodType< - DeploymentExtendGcpStack, +export const DeploymentPreparedStackExtendGcpStack$inboundSchema: z.ZodType< + DeploymentPreparedStackExtendGcpStack, unknown > = z.object({ condition: z.nullable( z.union([ - z.lazy(() => DeploymentExtendConditionStack$inboundSchema), + z.lazy(() => DeploymentPreparedStackExtendConditionStack$inboundSchema), z.any(), ]), ).optional(), scope: z.string(), }); -export function deploymentExtendGcpStackFromJSON( +export function deploymentPreparedStackExtendGcpStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentExtendGcpStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExtendGcpStack' from JSON`, + (x) => + DeploymentPreparedStackExtendGcpStack$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackExtendGcpStack' from JSON`, ); } /** @internal */ -export const DeploymentExtendGcpBinding$inboundSchema: z.ZodType< - DeploymentExtendGcpBinding, +export const DeploymentPreparedStackExtendGcpBinding$inboundSchema: z.ZodType< + DeploymentPreparedStackExtendGcpBinding, unknown > = z.object({ - resource: z.lazy(() => DeploymentExtendGcpResource$inboundSchema).optional(), - stack: z.lazy(() => DeploymentExtendGcpStack$inboundSchema).optional(), + resource: z.lazy(() => DeploymentPreparedStackExtendGcpResource$inboundSchema) + .optional(), + stack: z.lazy(() => DeploymentPreparedStackExtendGcpStack$inboundSchema) + .optional(), }); -export function deploymentExtendGcpBindingFromJSON( +export function deploymentPreparedStackExtendGcpBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackExtendGcpBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentExtendGcpBinding$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExtendGcpBinding' from JSON`, + (x) => + DeploymentPreparedStackExtendGcpBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackExtendGcpBinding' from JSON`, ); } /** @internal */ -export const DeploymentExtendGcpGrant$inboundSchema: z.ZodType< - DeploymentExtendGcpGrant, +export const DeploymentPreparedStackExtendGcpGrant$inboundSchema: z.ZodType< + DeploymentPreparedStackExtendGcpGrant, unknown > = z.object({ actions: z.nullable(z.array(z.string())).optional(), @@ -6669,142 +11013,154 @@ export const DeploymentExtendGcpGrant$inboundSchema: z.ZodType< residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function deploymentExtendGcpGrantFromJSON( +export function deploymentPreparedStackExtendGcpGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentExtendGcpGrant$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExtendGcpGrant' from JSON`, + (x) => + DeploymentPreparedStackExtendGcpGrant$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackExtendGcpGrant' from JSON`, ); } /** @internal */ -export const DeploymentExtendGcp$inboundSchema: z.ZodType< - DeploymentExtendGcp, +export const DeploymentPreparedStackExtendGcp$inboundSchema: z.ZodType< + DeploymentPreparedStackExtendGcp, unknown > = z.object({ - binding: z.lazy(() => DeploymentExtendGcpBinding$inboundSchema), + binding: z.lazy(() => DeploymentPreparedStackExtendGcpBinding$inboundSchema), description: z.nullable(z.string()).optional(), - grant: z.lazy(() => DeploymentExtendGcpGrant$inboundSchema), + grant: z.lazy(() => DeploymentPreparedStackExtendGcpGrant$inboundSchema), label: z.nullable(z.string()).optional(), }); -export function deploymentExtendGcpFromJSON( +export function deploymentPreparedStackExtendGcpFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentExtendGcp$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExtendGcp' from JSON`, + (x) => DeploymentPreparedStackExtendGcp$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackExtendGcp' from JSON`, ); } /** @internal */ -export const DeploymentExtendPlatforms$inboundSchema: z.ZodType< - DeploymentExtendPlatforms, +export const DeploymentPreparedStackExtendPlatforms$inboundSchema: z.ZodType< + DeploymentPreparedStackExtendPlatforms, unknown > = z.object({ - aws: z.nullable(z.array(z.lazy(() => DeploymentExtendAw$inboundSchema))) - .optional(), - azure: z.nullable(z.array(z.lazy(() => DeploymentExtendAzure$inboundSchema))) - .optional(), - gcp: z.nullable(z.array(z.lazy(() => DeploymentExtendGcp$inboundSchema))) - .optional(), + aws: z.nullable( + z.array(z.lazy(() => DeploymentPreparedStackExtendAw$inboundSchema)), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => DeploymentPreparedStackExtendAzure$inboundSchema)), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => DeploymentPreparedStackExtendGcp$inboundSchema)), + ).optional(), }); -export function deploymentExtendPlatformsFromJSON( +export function deploymentPreparedStackExtendPlatformsFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentExtendPlatforms$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExtendPlatforms' from JSON`, + (x) => + DeploymentPreparedStackExtendPlatforms$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackExtendPlatforms' from JSON`, ); } /** @internal */ -export const DeploymentExtend$inboundSchema: z.ZodType< - DeploymentExtend, +export const DeploymentPreparedStackExtend$inboundSchema: z.ZodType< + DeploymentPreparedStackExtend, unknown > = z.object({ description: z.string(), id: z.string(), - platforms: z.lazy(() => DeploymentExtendPlatforms$inboundSchema), + platforms: z.lazy(() => DeploymentPreparedStackExtendPlatforms$inboundSchema), }); -export function deploymentExtendFromJSON( +export function deploymentPreparedStackExtendFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentExtend$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExtend' from JSON`, + (x) => DeploymentPreparedStackExtend$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackExtend' from JSON`, ); } /** @internal */ -export const DeploymentExtendUnion$inboundSchema: z.ZodType< - DeploymentExtendUnion, +export const DeploymentPreparedStackExtendUnion$inboundSchema: z.ZodType< + DeploymentPreparedStackExtendUnion, unknown -> = z.union([z.lazy(() => DeploymentExtend$inboundSchema), z.string()]); +> = z.union([ + z.lazy(() => DeploymentPreparedStackExtend$inboundSchema), + z.string(), +]); -export function deploymentExtendUnionFromJSON( +export function deploymentPreparedStackExtendUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentExtendUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentExtendUnion' from JSON`, + (x) => + DeploymentPreparedStackExtendUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackExtendUnion' from JSON`, ); } /** @internal */ -export const DeploymentManagement1$inboundSchema: z.ZodType< - DeploymentManagement1, +export const DeploymentPreparedStackManagement1$inboundSchema: z.ZodType< + DeploymentPreparedStackManagement1, unknown > = z.object({ extend: z.record( z.string(), - z.array( - z.union([z.lazy(() => DeploymentExtend$inboundSchema), z.string()]), - ), + z.array(z.union([ + z.lazy(() => DeploymentPreparedStackExtend$inboundSchema), + z.string(), + ])), ), }); -export function deploymentManagement1FromJSON( +export function deploymentPreparedStackManagement1FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentManagement1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentManagement1' from JSON`, + (x) => + DeploymentPreparedStackManagement1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackManagement1' from JSON`, ); } /** @internal */ -export const DeploymentManagementUnion$inboundSchema: z.ZodType< - DeploymentManagementUnion, +export const DeploymentPreparedStackManagementUnion$inboundSchema: z.ZodType< + DeploymentPreparedStackManagementUnion, unknown > = z.union([ - z.lazy(() => DeploymentManagement1$inboundSchema), - z.lazy(() => DeploymentManagement2$inboundSchema), - DeploymentManagementEnum$inboundSchema, + z.lazy(() => DeploymentPreparedStackManagement1$inboundSchema), + z.lazy(() => DeploymentPreparedStackManagement2$inboundSchema), + DeploymentPreparedStackManagementEnum$inboundSchema, ]); -export function deploymentManagementUnionFromJSON( +export function deploymentPreparedStackManagementUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentManagementUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentManagementUnion' from JSON`, + (x) => + DeploymentPreparedStackManagementUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackManagementUnion' from JSON`, ); } /** @internal */ -export const DeploymentProfileAwResource$inboundSchema: z.ZodType< - DeploymentProfileAwResource, +export const DeploymentPreparedStackProfileAwResource$inboundSchema: z.ZodType< + DeploymentPreparedStackProfileAwResource, unknown > = z.object({ condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) @@ -6812,19 +11168,25 @@ export const DeploymentProfileAwResource$inboundSchema: z.ZodType< resources: z.array(z.string()), }); -export function deploymentProfileAwResourceFromJSON( +export function deploymentPreparedStackProfileAwResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackProfileAwResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentProfileAwResource$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProfileAwResource' from JSON`, + (x) => + DeploymentPreparedStackProfileAwResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackProfileAwResource' from JSON`, ); } /** @internal */ -export const DeploymentProfileAwStack$inboundSchema: z.ZodType< - DeploymentProfileAwStack, +export const DeploymentPreparedStackProfileAwStack$inboundSchema: z.ZodType< + DeploymentPreparedStackProfileAwStack, unknown > = z.object({ condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) @@ -6832,43 +11194,52 @@ export const DeploymentProfileAwStack$inboundSchema: z.ZodType< resources: z.array(z.string()), }); -export function deploymentProfileAwStackFromJSON( +export function deploymentPreparedStackProfileAwStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentProfileAwStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProfileAwStack' from JSON`, + (x) => + DeploymentPreparedStackProfileAwStack$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackProfileAwStack' from JSON`, ); } /** @internal */ -export const DeploymentProfileAwBinding$inboundSchema: z.ZodType< - DeploymentProfileAwBinding, +export const DeploymentPreparedStackProfileAwBinding$inboundSchema: z.ZodType< + DeploymentPreparedStackProfileAwBinding, unknown > = z.object({ - resource: z.lazy(() => DeploymentProfileAwResource$inboundSchema).optional(), - stack: z.lazy(() => DeploymentProfileAwStack$inboundSchema).optional(), + resource: z.lazy(() => DeploymentPreparedStackProfileAwResource$inboundSchema) + .optional(), + stack: z.lazy(() => DeploymentPreparedStackProfileAwStack$inboundSchema) + .optional(), }); -export function deploymentProfileAwBindingFromJSON( +export function deploymentPreparedStackProfileAwBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackProfileAwBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentProfileAwBinding$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProfileAwBinding' from JSON`, + (x) => + DeploymentPreparedStackProfileAwBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackProfileAwBinding' from JSON`, ); } /** @internal */ -export const DeploymentProfileEffect$inboundSchema: z.ZodEnum< - typeof DeploymentProfileEffect -> = z.enum(DeploymentProfileEffect); +export const DeploymentPreparedStackProfileEffect$inboundSchema: z.ZodEnum< + typeof DeploymentPreparedStackProfileEffect +> = z.enum(DeploymentPreparedStackProfileEffect); /** @internal */ -export const DeploymentProfileAwGrant$inboundSchema: z.ZodType< - DeploymentProfileAwGrant, +export const DeploymentPreparedStackProfileAwGrant$inboundSchema: z.ZodType< + DeploymentPreparedStackProfileAwGrant, unknown > = z.object({ actions: z.nullable(z.array(z.string())).optional(), @@ -6878,97 +11249,114 @@ export const DeploymentProfileAwGrant$inboundSchema: z.ZodType< residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function deploymentProfileAwGrantFromJSON( +export function deploymentPreparedStackProfileAwGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentProfileAwGrant$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProfileAwGrant' from JSON`, + (x) => + DeploymentPreparedStackProfileAwGrant$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackProfileAwGrant' from JSON`, ); } /** @internal */ -export const DeploymentProfileAw$inboundSchema: z.ZodType< - DeploymentProfileAw, +export const DeploymentPreparedStackProfileAw$inboundSchema: z.ZodType< + DeploymentPreparedStackProfileAw, unknown > = z.object({ - binding: z.lazy(() => DeploymentProfileAwBinding$inboundSchema), + binding: z.lazy(() => DeploymentPreparedStackProfileAwBinding$inboundSchema), description: z.nullable(z.string()).optional(), - effect: DeploymentProfileEffect$inboundSchema.optional(), - grant: z.lazy(() => DeploymentProfileAwGrant$inboundSchema), + effect: DeploymentPreparedStackProfileEffect$inboundSchema.optional(), + grant: z.lazy(() => DeploymentPreparedStackProfileAwGrant$inboundSchema), label: z.nullable(z.string()).optional(), }); -export function deploymentProfileAwFromJSON( +export function deploymentPreparedStackProfileAwFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentProfileAw$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProfileAw' from JSON`, + (x) => DeploymentPreparedStackProfileAw$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackProfileAw' from JSON`, ); } /** @internal */ -export const DeploymentProfileAzureResource$inboundSchema: z.ZodType< - DeploymentProfileAzureResource, - unknown -> = z.object({ - scope: z.string(), -}); +export const DeploymentPreparedStackProfileAzureResource$inboundSchema: + z.ZodType = z.object({ + scope: z.string(), + }); -export function deploymentProfileAzureResourceFromJSON( +export function deploymentPreparedStackProfileAzureResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackProfileAzureResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentProfileAzureResource$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProfileAzureResource' from JSON`, + (x) => + DeploymentPreparedStackProfileAzureResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackProfileAzureResource' from JSON`, ); } /** @internal */ -export const DeploymentProfileAzureStack$inboundSchema: z.ZodType< - DeploymentProfileAzureStack, +export const DeploymentPreparedStackProfileAzureStack$inboundSchema: z.ZodType< + DeploymentPreparedStackProfileAzureStack, unknown > = z.object({ scope: z.string(), }); -export function deploymentProfileAzureStackFromJSON( +export function deploymentPreparedStackProfileAzureStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackProfileAzureStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentProfileAzureStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProfileAzureStack' from JSON`, + (x) => + DeploymentPreparedStackProfileAzureStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackProfileAzureStack' from JSON`, ); } /** @internal */ -export const DeploymentProfileAzureBinding$inboundSchema: z.ZodType< - DeploymentProfileAzureBinding, - unknown -> = z.object({ - resource: z.lazy(() => DeploymentProfileAzureResource$inboundSchema) - .optional(), - stack: z.lazy(() => DeploymentProfileAzureStack$inboundSchema).optional(), -}); +export const DeploymentPreparedStackProfileAzureBinding$inboundSchema: + z.ZodType = z.object({ + resource: z.lazy(() => + DeploymentPreparedStackProfileAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => DeploymentPreparedStackProfileAzureStack$inboundSchema) + .optional(), + }); -export function deploymentProfileAzureBindingFromJSON( +export function deploymentPreparedStackProfileAzureBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackProfileAzureBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentProfileAzureBinding$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProfileAzureBinding' from JSON`, + (x) => + DeploymentPreparedStackProfileAzureBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackProfileAzureBinding' from JSON`, ); } /** @internal */ -export const DeploymentProfileAzureGrant$inboundSchema: z.ZodType< - DeploymentProfileAzureGrant, +export const DeploymentPreparedStackProfileAzureGrant$inboundSchema: z.ZodType< + DeploymentPreparedStackProfileAzureGrant, unknown > = z.object({ actions: z.nullable(z.array(z.string())).optional(), @@ -6978,191 +11366,231 @@ export const DeploymentProfileAzureGrant$inboundSchema: z.ZodType< residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function deploymentProfileAzureGrantFromJSON( +export function deploymentPreparedStackProfileAzureGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackProfileAzureGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentProfileAzureGrant$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProfileAzureGrant' from JSON`, + (x) => + DeploymentPreparedStackProfileAzureGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackProfileAzureGrant' from JSON`, ); } /** @internal */ -export const DeploymentProfileAzure$inboundSchema: z.ZodType< - DeploymentProfileAzure, +export const DeploymentPreparedStackProfileAzure$inboundSchema: z.ZodType< + DeploymentPreparedStackProfileAzure, unknown > = z.object({ - binding: z.lazy(() => DeploymentProfileAzureBinding$inboundSchema), + binding: z.lazy(() => + DeploymentPreparedStackProfileAzureBinding$inboundSchema + ), description: z.nullable(z.string()).optional(), - grant: z.lazy(() => DeploymentProfileAzureGrant$inboundSchema), + grant: z.lazy(() => DeploymentPreparedStackProfileAzureGrant$inboundSchema), label: z.nullable(z.string()).optional(), }); -export function deploymentProfileAzureFromJSON( +export function deploymentPreparedStackProfileAzureFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentProfileAzure$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProfileAzure' from JSON`, + (x) => + DeploymentPreparedStackProfileAzure$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackProfileAzure' from JSON`, ); } /** @internal */ -export const DeploymentProfileConditionResource$inboundSchema: z.ZodType< - DeploymentProfileConditionResource, - unknown -> = z.object({ - expression: z.string(), - title: z.string(), -}); +export const DeploymentPreparedStackProfileConditionResource$inboundSchema: + z.ZodType = z + .object({ + expression: z.string(), + title: z.string(), + }); -export function deploymentProfileConditionResourceFromJSON( +export function deploymentPreparedStackProfileConditionResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackProfileConditionResource, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentProfileConditionResource$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProfileConditionResource' from JSON`, + DeploymentPreparedStackProfileConditionResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackProfileConditionResource' from JSON`, ); } /** @internal */ -export const DeploymentProfileResourceConditionUnion$inboundSchema: z.ZodType< - DeploymentProfileResourceConditionUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentProfileConditionResource$inboundSchema), - z.any(), -]); +export const DeploymentPreparedStackProfileResourceConditionUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => + DeploymentPreparedStackProfileConditionResource$inboundSchema + ), + z.any(), + ]); -export function deploymentProfileResourceConditionUnionFromJSON( +export function deploymentPreparedStackProfileResourceConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - DeploymentProfileResourceConditionUnion, + DeploymentPreparedStackProfileResourceConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentProfileResourceConditionUnion$inboundSchema.parse( + DeploymentPreparedStackProfileResourceConditionUnion$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentProfileResourceConditionUnion' from JSON`, + `Failed to parse 'DeploymentPreparedStackProfileResourceConditionUnion' from JSON`, ); } /** @internal */ -export const DeploymentProfileGcpResource$inboundSchema: z.ZodType< - DeploymentProfileGcpResource, +export const DeploymentPreparedStackProfileGcpResource$inboundSchema: z.ZodType< + DeploymentPreparedStackProfileGcpResource, unknown > = z.object({ condition: z.nullable( z.union([ - z.lazy(() => DeploymentProfileConditionResource$inboundSchema), + z.lazy(() => + DeploymentPreparedStackProfileConditionResource$inboundSchema + ), z.any(), ]), ).optional(), scope: z.string(), }); -export function deploymentProfileGcpResourceFromJSON( +export function deploymentPreparedStackProfileGcpResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackProfileGcpResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentProfileGcpResource$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProfileGcpResource' from JSON`, + (x) => + DeploymentPreparedStackProfileGcpResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackProfileGcpResource' from JSON`, ); } /** @internal */ -export const DeploymentProfileConditionStack$inboundSchema: z.ZodType< - DeploymentProfileConditionStack, - unknown -> = z.object({ - expression: z.string(), - title: z.string(), -}); +export const DeploymentPreparedStackProfileConditionStack$inboundSchema: + z.ZodType = z.object({ + expression: z.string(), + title: z.string(), + }); -export function deploymentProfileConditionStackFromJSON( +export function deploymentPreparedStackProfileConditionStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackProfileConditionStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentProfileConditionStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProfileConditionStack' from JSON`, + (x) => + DeploymentPreparedStackProfileConditionStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackProfileConditionStack' from JSON`, ); } /** @internal */ -export const DeploymentProfileStackConditionUnion$inboundSchema: z.ZodType< - DeploymentProfileStackConditionUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentProfileConditionStack$inboundSchema), - z.any(), -]); +export const DeploymentPreparedStackProfileStackConditionUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => DeploymentPreparedStackProfileConditionStack$inboundSchema), + z.any(), + ]); -export function deploymentProfileStackConditionUnionFromJSON( +export function deploymentPreparedStackProfileStackConditionUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackProfileStackConditionUnion, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentProfileStackConditionUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProfileStackConditionUnion' from JSON`, + DeploymentPreparedStackProfileStackConditionUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackProfileStackConditionUnion' from JSON`, ); } /** @internal */ -export const DeploymentProfileGcpStack$inboundSchema: z.ZodType< - DeploymentProfileGcpStack, +export const DeploymentPreparedStackProfileGcpStack$inboundSchema: z.ZodType< + DeploymentPreparedStackProfileGcpStack, unknown > = z.object({ condition: z.nullable( z.union([ - z.lazy(() => DeploymentProfileConditionStack$inboundSchema), + z.lazy(() => DeploymentPreparedStackProfileConditionStack$inboundSchema), z.any(), ]), ).optional(), scope: z.string(), }); -export function deploymentProfileGcpStackFromJSON( +export function deploymentPreparedStackProfileGcpStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentProfileGcpStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProfileGcpStack' from JSON`, + (x) => + DeploymentPreparedStackProfileGcpStack$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackProfileGcpStack' from JSON`, ); } /** @internal */ -export const DeploymentProfileGcpBinding$inboundSchema: z.ZodType< - DeploymentProfileGcpBinding, +export const DeploymentPreparedStackProfileGcpBinding$inboundSchema: z.ZodType< + DeploymentPreparedStackProfileGcpBinding, unknown > = z.object({ - resource: z.lazy(() => DeploymentProfileGcpResource$inboundSchema).optional(), - stack: z.lazy(() => DeploymentProfileGcpStack$inboundSchema).optional(), + resource: z.lazy(() => + DeploymentPreparedStackProfileGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => DeploymentPreparedStackProfileGcpStack$inboundSchema) + .optional(), }); -export function deploymentProfileGcpBindingFromJSON( +export function deploymentPreparedStackProfileGcpBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackProfileGcpBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentProfileGcpBinding$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProfileGcpBinding' from JSON`, + (x) => + DeploymentPreparedStackProfileGcpBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackProfileGcpBinding' from JSON`, ); } /** @internal */ -export const DeploymentProfileGcpGrant$inboundSchema: z.ZodType< - DeploymentProfileGcpGrant, +export const DeploymentPreparedStackProfileGcpGrant$inboundSchema: z.ZodType< + DeploymentPreparedStackProfileGcpGrant, unknown > = z.object({ actions: z.nullable(z.array(z.string())).optional(), @@ -7172,124 +11600,144 @@ export const DeploymentProfileGcpGrant$inboundSchema: z.ZodType< residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function deploymentProfileGcpGrantFromJSON( +export function deploymentPreparedStackProfileGcpGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentProfileGcpGrant$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProfileGcpGrant' from JSON`, + (x) => + DeploymentPreparedStackProfileGcpGrant$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackProfileGcpGrant' from JSON`, ); } /** @internal */ -export const DeploymentProfileGcp$inboundSchema: z.ZodType< - DeploymentProfileGcp, +export const DeploymentPreparedStackProfileGcp$inboundSchema: z.ZodType< + DeploymentPreparedStackProfileGcp, unknown > = z.object({ - binding: z.lazy(() => DeploymentProfileGcpBinding$inboundSchema), + binding: z.lazy(() => DeploymentPreparedStackProfileGcpBinding$inboundSchema), description: z.nullable(z.string()).optional(), - grant: z.lazy(() => DeploymentProfileGcpGrant$inboundSchema), + grant: z.lazy(() => DeploymentPreparedStackProfileGcpGrant$inboundSchema), label: z.nullable(z.string()).optional(), }); -export function deploymentProfileGcpFromJSON( +export function deploymentPreparedStackProfileGcpFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentProfileGcp$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProfileGcp' from JSON`, + (x) => DeploymentPreparedStackProfileGcp$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackProfileGcp' from JSON`, ); } /** @internal */ -export const DeploymentProfilePlatforms$inboundSchema: z.ZodType< - DeploymentProfilePlatforms, +export const DeploymentPreparedStackProfilePlatforms$inboundSchema: z.ZodType< + DeploymentPreparedStackProfilePlatforms, unknown > = z.object({ - aws: z.nullable(z.array(z.lazy(() => DeploymentProfileAw$inboundSchema))) - .optional(), - azure: z.nullable(z.array(z.lazy(() => DeploymentProfileAzure$inboundSchema))) - .optional(), - gcp: z.nullable(z.array(z.lazy(() => DeploymentProfileGcp$inboundSchema))) - .optional(), + aws: z.nullable( + z.array(z.lazy(() => DeploymentPreparedStackProfileAw$inboundSchema)), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => DeploymentPreparedStackProfileAzure$inboundSchema)), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => DeploymentPreparedStackProfileGcp$inboundSchema)), + ).optional(), }); -export function deploymentProfilePlatformsFromJSON( +export function deploymentPreparedStackProfilePlatformsFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentPreparedStackProfilePlatforms, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentProfilePlatforms$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProfilePlatforms' from JSON`, + (x) => + DeploymentPreparedStackProfilePlatforms$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentPreparedStackProfilePlatforms' from JSON`, ); } /** @internal */ -export const DeploymentProfile$inboundSchema: z.ZodType< - DeploymentProfile, +export const DeploymentPreparedStackProfile$inboundSchema: z.ZodType< + DeploymentPreparedStackProfile, unknown > = z.object({ description: z.string(), id: z.string(), - platforms: z.lazy(() => DeploymentProfilePlatforms$inboundSchema), + platforms: z.lazy(() => + DeploymentPreparedStackProfilePlatforms$inboundSchema + ), }); -export function deploymentProfileFromJSON( +export function deploymentPreparedStackProfileFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentProfile$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProfile' from JSON`, + (x) => DeploymentPreparedStackProfile$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackProfile' from JSON`, ); } /** @internal */ -export const DeploymentProfileUnion$inboundSchema: z.ZodType< - DeploymentProfileUnion, +export const DeploymentPreparedStackProfileUnion$inboundSchema: z.ZodType< + DeploymentPreparedStackProfileUnion, unknown -> = z.union([z.lazy(() => DeploymentProfile$inboundSchema), z.string()]); +> = z.union([ + z.lazy(() => DeploymentPreparedStackProfile$inboundSchema), + z.string(), +]); -export function deploymentProfileUnionFromJSON( +export function deploymentPreparedStackProfileUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentProfileUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentProfileUnion' from JSON`, + (x) => + DeploymentPreparedStackProfileUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackProfileUnion' from JSON`, ); } /** @internal */ -export const DeploymentPermissions$inboundSchema: z.ZodType< - DeploymentPermissions, +export const DeploymentPreparedStackPermissions$inboundSchema: z.ZodType< + DeploymentPreparedStackPermissions, unknown > = z.object({ management: z.union([ - z.lazy(() => DeploymentManagement1$inboundSchema), - z.lazy(() => DeploymentManagement2$inboundSchema), - DeploymentManagementEnum$inboundSchema, + z.lazy(() => DeploymentPreparedStackManagement1$inboundSchema), + z.lazy(() => DeploymentPreparedStackManagement2$inboundSchema), + DeploymentPreparedStackManagementEnum$inboundSchema, ]).optional(), profiles: z.record( z.string(), z.record( z.string(), z.array( - z.union([z.lazy(() => DeploymentProfile$inboundSchema), z.string()]), + z.union([ + z.lazy(() => DeploymentPreparedStackProfile$inboundSchema), + z.string(), + ]), ), ), ), }); -export function deploymentPermissionsFromJSON( +export function deploymentPreparedStackPermissionsFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DeploymentPermissions$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentPermissions' from JSON`, + (x) => + DeploymentPreparedStackPermissions$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentPreparedStackPermissions' from JSON`, ); } @@ -7349,6 +11797,7 @@ export const DeploymentPreparedStackResources$inboundSchema: z.ZodType< dependencies: z.array( z.lazy(() => DeploymentPreparedStackDependency$inboundSchema), ), + enabledWhen: z.nullable(z.string()).optional(), lifecycle: DeploymentPreparedStackLifecycle$inboundSchema, remoteAccess: z.boolean().optional(), }); @@ -7364,9 +11813,9 @@ export function deploymentPreparedStackResourcesFromJSON( } /** @internal */ -export const DeploymentSupportedPlatform$inboundSchema: z.ZodEnum< - typeof DeploymentSupportedPlatform -> = z.enum(DeploymentSupportedPlatform); +export const DeploymentPreparedStackSupportedPlatform$inboundSchema: z.ZodEnum< + typeof DeploymentPreparedStackSupportedPlatform +> = z.enum(DeploymentPreparedStackSupportedPlatform); /** @internal */ export const DeploymentPreparedStack$inboundSchema: z.ZodType< @@ -7374,14 +11823,16 @@ export const DeploymentPreparedStack$inboundSchema: z.ZodType< unknown > = z.object({ id: z.string(), - inputs: z.array(z.lazy(() => DeploymentInput$inboundSchema)).optional(), - permissions: z.lazy(() => DeploymentPermissions$inboundSchema).optional(), + inputs: z.array(z.lazy(() => DeploymentPreparedStackInput$inboundSchema)) + .optional(), + permissions: z.lazy(() => DeploymentPreparedStackPermissions$inboundSchema) + .optional(), resources: z.record( z.string(), z.lazy(() => DeploymentPreparedStackResources$inboundSchema), ), supportedPlatforms: z.nullable( - z.array(DeploymentSupportedPlatform$inboundSchema), + z.array(DeploymentPreparedStackSupportedPlatform$inboundSchema), ).optional(), }); @@ -7411,17 +11862,82 @@ export function deploymentPreparedStackUnionFromJSON( ); } +/** @internal */ +export const DeploymentSetupUpdateAuthorization$inboundSchema: z.ZodType< + DeploymentSetupUpdateAuthorization, + unknown +> = z.object({ + baselineFrozenDigest: z.string(), + nonce: z.string(), + releaseId: z.string(), + setupFingerprint: z.string(), + setupFingerprintVersion: z.int(), + setupTarget: z.string(), + targetFrozenDigest: z.string(), +}); + +export function deploymentSetupUpdateAuthorizationFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentSetupUpdateAuthorization$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentSetupUpdateAuthorization' from JSON`, + ); +} + +/** @internal */ +export const DeploymentSetupUpdateAuthorizationUnion$inboundSchema: z.ZodType< + DeploymentSetupUpdateAuthorizationUnion, + unknown +> = z.union([ + z.lazy(() => DeploymentSetupUpdateAuthorization$inboundSchema), + z.any(), +]); + +export function deploymentSetupUpdateAuthorizationUnionFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentSetupUpdateAuthorizationUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentSetupUpdateAuthorizationUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentSetupUpdateAuthorizationUnion' from JSON`, + ); +} + /** @internal */ export const DeploymentRuntimeMetadata$inboundSchema: z.ZodType< DeploymentRuntimeMetadata, unknown > = z.object({ + initialSetupAuthority: DeploymentInitialSetupAuthority$inboundSchema + .optional(), lastSyncedEnvVarsHash: z.nullable(z.string()).optional(), lastSyncedSecretNames: z.array(z.string()).optional(), + pendingPreparedStack: z.nullable( + z.union([ + z.lazy(() => DeploymentPendingPreparedStack$inboundSchema), + z.any(), + ]), + ).optional(), + persistedGateAnswers: z.record(z.string(), z.boolean()).optional(), preparedStack: z.nullable( z.union([z.lazy(() => DeploymentPreparedStack$inboundSchema), z.any()]), ).optional(), registryAccessGranted: z.boolean().optional(), + setupUpdateAuthorization: z.nullable( + z.union([ + z.lazy(() => DeploymentSetupUpdateAuthorization$inboundSchema), + z.any(), + ]), + ).optional(), }); export function deploymentRuntimeMetadataFromJSON( @@ -7543,6 +12059,7 @@ export const Deployment$inboundSchema: z.ZodType = z currentReleaseId: z.nullable(z.string()).optional(), desiredReleaseId: z.nullable(z.string()).optional(), pinnedReleaseId: z.nullable(z.string()).optional(), + releaseChannel: z.string(), importSource: z.nullable(DeploymentImportSource$inboundSchema).optional(), setupMethod: z.nullable(DeploymentSetupMethod1$inboundSchema).optional(), setupMetadata: z.nullable(z.record(z.string(), z.nullable(z.any()))) diff --git a/client-sdks/platform/typescript/src/models/deploymentconnectioninfo.ts b/client-sdks/platform/typescript/src/models/deploymentconnectioninfo.ts index ac3c0dd3e..7b04b32ed 100644 --- a/client-sdks/platform/typescript/src/models/deploymentconnectioninfo.ts +++ b/client-sdks/platform/typescript/src/models/deploymentconnectioninfo.ts @@ -19,9 +19,17 @@ export type Arc = { deploymentId: string; }; +export const Protocol = { + Http: "http", + Tcp: "tcp", +} as const; +export type Protocol = ClosedEnum; + export type PublicEndpoints = { url: string; - host?: string | undefined; + protocol: Protocol; + host: string; + port: number; wildcardHost?: string | undefined; }; @@ -114,13 +122,20 @@ export function arcFromJSON( ); } +/** @internal */ +export const Protocol$inboundSchema: z.ZodEnum = z.enum( + Protocol, +); + /** @internal */ export const PublicEndpoints$inboundSchema: z.ZodType< PublicEndpoints, unknown > = z.object({ url: z.string(), - host: z.string().optional(), + protocol: Protocol$inboundSchema, + host: z.string(), + port: z.int(), wildcardHost: z.string().optional(), }); diff --git a/client-sdks/platform/typescript/src/models/deploymentdetailresponse.ts b/client-sdks/platform/typescript/src/models/deploymentdetailresponse.ts index 1f9d107e8..c5cb56cb7 100644 --- a/client-sdks/platform/typescript/src/models/deploymentdetailresponse.ts +++ b/client-sdks/platform/typescript/src/models/deploymentdetailresponse.ts @@ -238,7 +238,33 @@ export type DeploymentDetailResponseEnvironmentInfoUnion = | DeploymentDetailResponseEnvironmentInfoTest | any; +/** + * Failure-domain policy selected for a compute pool. + */ +export type DeploymentDetailResponseFailureDomains2 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type DeploymentDetailResponseFailureDomainsUnion2 = + | DeploymentDetailResponseFailureDomains2 + | any; + export type DeploymentDetailResponsePoolsAutoscale = { + failureDomains?: + | DeploymentDetailResponseFailureDomains2 + | any + | null + | undefined; /** * Provider machine type selected for this deployment. */ @@ -254,7 +280,33 @@ export type DeploymentDetailResponsePoolsAutoscale = { mode: "autoscale"; }; +/** + * Failure-domain policy selected for a compute pool. + */ +export type DeploymentDetailResponseFailureDomains1 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type DeploymentDetailResponseFailureDomainsUnion1 = + | DeploymentDetailResponseFailureDomains1 + | any; + export type DeploymentDetailResponsePoolsFixed = { + failureDomains?: + | DeploymentDetailResponseFailureDomains1 + | any + | null + | undefined; /** * Provider machine type selected for this deployment. */ @@ -1708,95 +1760,106 @@ export type DeploymentDetailResponseStackState = { resources: { [k: string]: DeploymentDetailResponseStackStateResources }; }; -export const DeploymentDetailResponseTypeStringList = { - StringList: "stringList", +/** + * Actor that owns structural work during the initial setup phase. + */ +export const DeploymentDetailResponseInitialSetupAuthority = { + ImportedHandoff: "importedHandoff", + DirectSetup: "directSetup", } as const; -export type DeploymentDetailResponseTypeStringList = ClosedEnum< - typeof DeploymentDetailResponseTypeStringList +/** + * Actor that owns structural work during the initial setup phase. + */ +export type DeploymentDetailResponseInitialSetupAuthority = ClosedEnum< + typeof DeploymentDetailResponseInitialSetupAuthority >; -export type DeploymentDetailResponseDefaultStringList = { - type: DeploymentDetailResponseTypeStringList; +export const DeploymentDetailResponsePendingPreparedStackTypeStringList = { + StringList: "stringList", +} as const; +export type DeploymentDetailResponsePendingPreparedStackTypeStringList = + ClosedEnum; + +export type DeploymentDetailResponsePendingPreparedStackDefaultStringList = { + type: DeploymentDetailResponsePendingPreparedStackTypeStringList; /** * String list default. */ value: Array; }; -export const DeploymentDetailResponseTypeBoolean = { +export const DeploymentDetailResponsePendingPreparedStackTypeBoolean = { Boolean: "boolean", } as const; -export type DeploymentDetailResponseTypeBoolean = ClosedEnum< - typeof DeploymentDetailResponseTypeBoolean ->; +export type DeploymentDetailResponsePendingPreparedStackTypeBoolean = + ClosedEnum; -export type DeploymentDetailResponseDefaultBoolean = { - type: DeploymentDetailResponseTypeBoolean; +export type DeploymentDetailResponsePendingPreparedStackDefaultBoolean = { + type: DeploymentDetailResponsePendingPreparedStackTypeBoolean; /** * Boolean default. */ value: boolean; }; -export const DeploymentDetailResponseTypeNumber = { +export const DeploymentDetailResponsePendingPreparedStackTypeNumber = { Number: "number", } as const; -export type DeploymentDetailResponseTypeNumber = ClosedEnum< - typeof DeploymentDetailResponseTypeNumber +export type DeploymentDetailResponsePendingPreparedStackTypeNumber = ClosedEnum< + typeof DeploymentDetailResponsePendingPreparedStackTypeNumber >; -export type DeploymentDetailResponseDefaultNumber = { - type: DeploymentDetailResponseTypeNumber; +export type DeploymentDetailResponsePendingPreparedStackDefaultNumber = { + type: DeploymentDetailResponsePendingPreparedStackTypeNumber; /** * Number default. */ value: string; }; -export const DeploymentDetailResponseTypeString = { +export const DeploymentDetailResponsePendingPreparedStackTypeString = { String: "string", } as const; -export type DeploymentDetailResponseTypeString = ClosedEnum< - typeof DeploymentDetailResponseTypeString +export type DeploymentDetailResponsePendingPreparedStackTypeString = ClosedEnum< + typeof DeploymentDetailResponsePendingPreparedStackTypeString >; -export type DeploymentDetailResponseDefaultString = { - type: DeploymentDetailResponseTypeString; +export type DeploymentDetailResponsePendingPreparedStackDefaultString = { + type: DeploymentDetailResponsePendingPreparedStackTypeString; /** * String default. */ value: string; }; -export type DeploymentDetailResponseDefaultUnion = - | DeploymentDetailResponseDefaultString - | DeploymentDetailResponseDefaultNumber - | DeploymentDetailResponseDefaultBoolean - | DeploymentDetailResponseDefaultStringList +export type DeploymentDetailResponsePendingPreparedStackDefaultUnion = + | DeploymentDetailResponsePendingPreparedStackDefaultString + | DeploymentDetailResponsePendingPreparedStackDefaultNumber + | DeploymentDetailResponsePendingPreparedStackDefaultBoolean + | DeploymentDetailResponsePendingPreparedStackDefaultStringList | any; /** * Environment variable handling for a stack input mapping. */ -export const DeploymentDetailResponseTypeEnvEnum = { +export const DeploymentDetailResponsePendingPreparedStackTypeEnvEnum = { Plain: "plain", Secret: "secret", } as const; /** * Environment variable handling for a stack input mapping. */ -export type DeploymentDetailResponseTypeEnvEnum = ClosedEnum< - typeof DeploymentDetailResponseTypeEnvEnum ->; +export type DeploymentDetailResponsePendingPreparedStackTypeEnvEnum = + ClosedEnum; -export type DeploymentDetailResponseTypeUnion = - | DeploymentDetailResponseTypeEnvEnum +export type DeploymentDetailResponsePendingPreparedStackTypeUnion = + | DeploymentDetailResponsePendingPreparedStackTypeEnvEnum | any; /** * How a resolved stack input is injected into runtime environment variables. */ -export type DeploymentDetailResponseEnv = { +export type DeploymentDetailResponsePendingPreparedStackEnv = { /** * Environment variable name. */ @@ -1805,13 +1868,17 @@ export type DeploymentDetailResponseEnv = { * Target resource IDs or patterns. None means every env-capable resource. */ targetResources?: Array | null | undefined; - type?: DeploymentDetailResponseTypeEnvEnum | any | null | undefined; + type?: + | DeploymentDetailResponsePendingPreparedStackTypeEnvEnum + | any + | null + | undefined; }; /** * Primitive stack input kind. */ -export const DeploymentDetailResponseKind = { +export const DeploymentDetailResponsePendingPreparedStackKind = { String: "string", Secret: "secret", Number: "number", @@ -1823,14 +1890,14 @@ export const DeploymentDetailResponseKind = { /** * Primitive stack input kind. */ -export type DeploymentDetailResponseKind = ClosedEnum< - typeof DeploymentDetailResponseKind +export type DeploymentDetailResponsePendingPreparedStackKind = ClosedEnum< + typeof DeploymentDetailResponsePendingPreparedStackKind >; /** * Represents the target cloud platform. */ -export const DeploymentDetailResponsePreparedStackPlatform = { +export const DeploymentDetailResponsePendingPreparedStackPlatform = { Aws: "aws", Gcp: "gcp", Azure: "azure", @@ -1842,28 +1909,28 @@ export const DeploymentDetailResponsePreparedStackPlatform = { /** * Represents the target cloud platform. */ -export type DeploymentDetailResponsePreparedStackPlatform = ClosedEnum< - typeof DeploymentDetailResponsePreparedStackPlatform +export type DeploymentDetailResponsePendingPreparedStackPlatform = ClosedEnum< + typeof DeploymentDetailResponsePendingPreparedStackPlatform >; /** * Who can provide a stack input value. */ -export const DeploymentDetailResponseProvidedBy = { +export const DeploymentDetailResponsePendingPreparedStackProvidedBy = { Developer: "developer", Deployer: "deployer", } as const; /** * Who can provide a stack input value. */ -export type DeploymentDetailResponseProvidedBy = ClosedEnum< - typeof DeploymentDetailResponseProvidedBy +export type DeploymentDetailResponsePendingPreparedStackProvidedBy = ClosedEnum< + typeof DeploymentDetailResponsePendingPreparedStackProvidedBy >; /** * Portable stack input validation constraints. */ -export type DeploymentDetailResponseValidation = { +export type DeploymentDetailResponsePendingPreparedStackValidation = { /** * Semantic format hint such as url. */ @@ -1902,19 +1969,19 @@ export type DeploymentDetailResponseValidation = { values?: Array | null | undefined; }; -export type DeploymentDetailResponseValidationUnion = - | DeploymentDetailResponseValidation +export type DeploymentDetailResponsePendingPreparedStackValidationUnion = + | DeploymentDetailResponsePendingPreparedStackValidation | any; /** * Stack input definition serialized into a release stack. */ -export type DeploymentDetailResponseInput = { +export type DeploymentDetailResponsePendingPreparedStackInput = { default?: - | DeploymentDetailResponseDefaultString - | DeploymentDetailResponseDefaultNumber - | DeploymentDetailResponseDefaultBoolean - | DeploymentDetailResponseDefaultStringList + | DeploymentDetailResponsePendingPreparedStackDefaultString + | DeploymentDetailResponsePendingPreparedStackDefaultNumber + | DeploymentDetailResponsePendingPreparedStackDefaultBoolean + | DeploymentDetailResponsePendingPreparedStackDefaultStringList | any | null | undefined; @@ -1925,7 +1992,7 @@ export type DeploymentDetailResponseInput = { /** * Runtime env-var mappings for v1 input resolution. */ - env?: Array | undefined; + env?: Array | undefined; /** * Stable input ID used by CLI/API calls. */ @@ -1933,7 +2000,7 @@ export type DeploymentDetailResponseInput = { /** * Primitive stack input kind. */ - kind: DeploymentDetailResponseKind; + kind: DeploymentDetailResponsePendingPreparedStackKind; /** * Human-facing field label. */ @@ -1946,31 +2013,34 @@ export type DeploymentDetailResponseInput = { * Platforms where this input applies. */ platforms?: - | Array + | Array | null | undefined; /** * Who can provide this value. */ - providedBy: Array; + providedBy: Array; /** * Whether a resolved value is required before deployment can proceed. */ required: boolean; - validation?: DeploymentDetailResponseValidation | any | null | undefined; + validation?: + | DeploymentDetailResponsePendingPreparedStackValidation + | any + | null + | undefined; }; -export const DeploymentDetailResponseManagementEnum = { +export const DeploymentDetailResponsePendingPreparedStackManagementEnum = { Auto: "auto", } as const; -export type DeploymentDetailResponseManagementEnum = ClosedEnum< - typeof DeploymentDetailResponseManagementEnum ->; +export type DeploymentDetailResponsePendingPreparedStackManagementEnum = + ClosedEnum; /** * AWS-specific binding specification */ -export type DeploymentDetailResponseOverrideAwResource = { +export type DeploymentDetailResponsePendingPreparedStackOverrideAwResource = { /** * Optional condition for additional filtering (rare) */ @@ -1984,7 +2054,7 @@ export type DeploymentDetailResponseOverrideAwResource = { /** * AWS-specific binding specification */ -export type DeploymentDetailResponseOverrideAwStack = { +export type DeploymentDetailResponsePendingPreparedStackOverrideAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -1998,35 +2068,38 @@ export type DeploymentDetailResponseOverrideAwStack = { /** * Generic binding configuration for permissions */ -export type DeploymentDetailResponseOverrideAwBinding = { +export type DeploymentDetailResponsePendingPreparedStackOverrideAwBinding = { /** * AWS-specific binding specification */ - resource?: DeploymentDetailResponseOverrideAwResource | undefined; + resource?: + | DeploymentDetailResponsePendingPreparedStackOverrideAwResource + | undefined; /** * AWS-specific binding specification */ - stack?: DeploymentDetailResponseOverrideAwStack | undefined; + stack?: + | DeploymentDetailResponsePendingPreparedStackOverrideAwStack + | undefined; }; /** * IAM effect. Defaults to Allow. */ -export const DeploymentDetailResponseOverrideEffect = { +export const DeploymentDetailResponsePendingPreparedStackOverrideEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type DeploymentDetailResponseOverrideEffect = ClosedEnum< - typeof DeploymentDetailResponseOverrideEffect ->; +export type DeploymentDetailResponsePendingPreparedStackOverrideEffect = + ClosedEnum; /** * Grant permissions for a specific cloud platform */ -export type DeploymentDetailResponseOverrideAwGrant = { +export type DeploymentDetailResponsePendingPreparedStackOverrideAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2052,11 +2125,11 @@ export type DeploymentDetailResponseOverrideAwGrant = { /** * AWS-specific platform permission configuration */ -export type DeploymentDetailResponseOverrideAw = { +export type DeploymentDetailResponsePendingPreparedStackOverrideAw = { /** * Generic binding configuration for permissions */ - binding: DeploymentDetailResponseOverrideAwBinding; + binding: DeploymentDetailResponsePendingPreparedStackOverrideAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2064,11 +2137,13 @@ export type DeploymentDetailResponseOverrideAw = { /** * IAM effect. Defaults to Allow. */ - effect?: DeploymentDetailResponseOverrideEffect | undefined; + effect?: + | DeploymentDetailResponsePendingPreparedStackOverrideEffect + | undefined; /** * Grant permissions for a specific cloud platform */ - grant: DeploymentDetailResponseOverrideAwGrant; + grant: DeploymentDetailResponsePendingPreparedStackOverrideAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2078,17 +2153,18 @@ export type DeploymentDetailResponseOverrideAw = { /** * Azure-specific binding specification */ -export type DeploymentDetailResponseOverrideAzureResource = { - /** - * Scope (subscription/resource group/resource level) - */ - scope: string; -}; +export type DeploymentDetailResponsePendingPreparedStackOverrideAzureResource = + { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; + }; /** * Azure-specific binding specification */ -export type DeploymentDetailResponseOverrideAzureStack = { +export type DeploymentDetailResponsePendingPreparedStackOverrideAzureStack = { /** * Scope (subscription/resource group/resource level) */ @@ -2098,21 +2174,25 @@ export type DeploymentDetailResponseOverrideAzureStack = { /** * Generic binding configuration for permissions */ -export type DeploymentDetailResponseOverrideAzureBinding = { +export type DeploymentDetailResponsePendingPreparedStackOverrideAzureBinding = { /** * Azure-specific binding specification */ - resource?: DeploymentDetailResponseOverrideAzureResource | undefined; + resource?: + | DeploymentDetailResponsePendingPreparedStackOverrideAzureResource + | undefined; /** * Azure-specific binding specification */ - stack?: DeploymentDetailResponseOverrideAzureStack | undefined; + stack?: + | DeploymentDetailResponsePendingPreparedStackOverrideAzureStack + | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type DeploymentDetailResponseOverrideAzureGrant = { +export type DeploymentDetailResponsePendingPreparedStackOverrideAzureGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2138,11 +2218,11 @@ export type DeploymentDetailResponseOverrideAzureGrant = { /** * Azure-specific platform permission configuration */ -export type DeploymentDetailResponseOverrideAzure = { +export type DeploymentDetailResponsePendingPreparedStackOverrideAzure = { /** * Generic binding configuration for permissions */ - binding: DeploymentDetailResponseOverrideAzureBinding; + binding: DeploymentDetailResponsePendingPreparedStackOverrideAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2150,7 +2230,7 @@ export type DeploymentDetailResponseOverrideAzure = { /** * Grant permissions for a specific cloud platform */ - grant: DeploymentDetailResponseOverrideAzureGrant; + grant: DeploymentDetailResponsePendingPreparedStackOverrideAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2160,21 +2240,22 @@ export type DeploymentDetailResponseOverrideAzure = { /** * GCP IAM condition */ -export type DeploymentDetailResponseOverrideConditionResource = { - expression: string; - title: string; -}; +export type DeploymentDetailResponsePendingPreparedStackOverrideConditionResource = + { + expression: string; + title: string; + }; -export type DeploymentDetailResponseOverrideResourceConditionUnion = - | DeploymentDetailResponseOverrideConditionResource +export type DeploymentDetailResponsePendingPreparedStackOverrideResourceConditionUnion = + | DeploymentDetailResponsePendingPreparedStackOverrideConditionResource | any; /** * GCP-specific binding specification */ -export type DeploymentDetailResponseOverrideGcpResource = { +export type DeploymentDetailResponsePendingPreparedStackOverrideGcpResource = { condition?: - | DeploymentDetailResponseOverrideConditionResource + | DeploymentDetailResponsePendingPreparedStackOverrideConditionResource | any | null | undefined; @@ -2187,21 +2268,22 @@ export type DeploymentDetailResponseOverrideGcpResource = { /** * GCP IAM condition */ -export type DeploymentDetailResponseOverrideConditionStack = { - expression: string; - title: string; -}; +export type DeploymentDetailResponsePendingPreparedStackOverrideConditionStack = + { + expression: string; + title: string; + }; -export type DeploymentDetailResponseOverrideStackConditionUnion = - | DeploymentDetailResponseOverrideConditionStack +export type DeploymentDetailResponsePendingPreparedStackOverrideStackConditionUnion = + | DeploymentDetailResponsePendingPreparedStackOverrideConditionStack | any; /** * GCP-specific binding specification */ -export type DeploymentDetailResponseOverrideGcpStack = { +export type DeploymentDetailResponsePendingPreparedStackOverrideGcpStack = { condition?: - | DeploymentDetailResponseOverrideConditionStack + | DeploymentDetailResponsePendingPreparedStackOverrideConditionStack | any | null | undefined; @@ -2214,21 +2296,25 @@ export type DeploymentDetailResponseOverrideGcpStack = { /** * Generic binding configuration for permissions */ -export type DeploymentDetailResponseOverrideGcpBinding = { +export type DeploymentDetailResponsePendingPreparedStackOverrideGcpBinding = { /** * GCP-specific binding specification */ - resource?: DeploymentDetailResponseOverrideGcpResource | undefined; + resource?: + | DeploymentDetailResponsePendingPreparedStackOverrideGcpResource + | undefined; /** * GCP-specific binding specification */ - stack?: DeploymentDetailResponseOverrideGcpStack | undefined; + stack?: + | DeploymentDetailResponsePendingPreparedStackOverrideGcpStack + | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type DeploymentDetailResponseOverrideGcpGrant = { +export type DeploymentDetailResponsePendingPreparedStackOverrideGcpGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2254,11 +2340,11 @@ export type DeploymentDetailResponseOverrideGcpGrant = { /** * GCP-specific platform permission configuration */ -export type DeploymentDetailResponseOverrideGcp = { +export type DeploymentDetailResponsePendingPreparedStackOverrideGcp = { /** * Generic binding configuration for permissions */ - binding: DeploymentDetailResponseOverrideGcpBinding; + binding: DeploymentDetailResponsePendingPreparedStackOverrideGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2266,7 +2352,7 @@ export type DeploymentDetailResponseOverrideGcp = { /** * Grant permissions for a specific cloud platform */ - grant: DeploymentDetailResponseOverrideGcpGrant; + grant: DeploymentDetailResponsePendingPreparedStackOverrideGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2276,25 +2362,34 @@ export type DeploymentDetailResponseOverrideGcp = { /** * Platform-specific permission configurations */ -export type DeploymentDetailResponseOverridePlatforms = { +export type DeploymentDetailResponsePendingPreparedStackOverridePlatforms = { /** * AWS permission configurations */ - aws?: Array | null | undefined; + aws?: + | Array + | null + | undefined; /** * Azure permission configurations */ - azure?: Array | null | undefined; + azure?: + | Array + | null + | undefined; /** * GCP permission configurations */ - gcp?: Array | null | undefined; + gcp?: + | Array + | null + | undefined; }; /** * A permission set that can be applied across different cloud platforms */ -export type DeploymentDetailResponseOverride = { +export type DeploymentDetailResponsePendingPreparedStackOverride = { /** * Human-readable description of what this permission set allows */ @@ -2306,30 +2401,34 @@ export type DeploymentDetailResponseOverride = { /** * Platform-specific permission configurations */ - platforms: DeploymentDetailResponseOverridePlatforms; + platforms: DeploymentDetailResponsePendingPreparedStackOverridePlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type DeploymentDetailResponseOverrideUnion = - | DeploymentDetailResponseOverride +export type DeploymentDetailResponsePendingPreparedStackOverrideUnion = + | DeploymentDetailResponsePendingPreparedStackOverride | string; -export type DeploymentDetailResponseManagement2 = { +export type DeploymentDetailResponsePendingPreparedStackManagement2 = { /** * Permission profile that maps resources to permission sets * * @remarks * Key can be "*" for all resources or resource name for specific resource */ - override: { [k: string]: Array }; + override: { + [k: string]: Array< + DeploymentDetailResponsePendingPreparedStackOverride | string + >; + }; }; /** * AWS-specific binding specification */ -export type DeploymentDetailResponseExtendAwResource = { +export type DeploymentDetailResponsePendingPreparedStackExtendAwResource = { /** * Optional condition for additional filtering (rare) */ @@ -2343,7 +2442,7 @@ export type DeploymentDetailResponseExtendAwResource = { /** * AWS-specific binding specification */ -export type DeploymentDetailResponseExtendAwStack = { +export type DeploymentDetailResponsePendingPreparedStackExtendAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -2357,35 +2456,36 @@ export type DeploymentDetailResponseExtendAwStack = { /** * Generic binding configuration for permissions */ -export type DeploymentDetailResponseExtendAwBinding = { +export type DeploymentDetailResponsePendingPreparedStackExtendAwBinding = { /** * AWS-specific binding specification */ - resource?: DeploymentDetailResponseExtendAwResource | undefined; + resource?: + | DeploymentDetailResponsePendingPreparedStackExtendAwResource + | undefined; /** * AWS-specific binding specification */ - stack?: DeploymentDetailResponseExtendAwStack | undefined; + stack?: DeploymentDetailResponsePendingPreparedStackExtendAwStack | undefined; }; /** * IAM effect. Defaults to Allow. */ -export const DeploymentDetailResponseExtendEffect = { +export const DeploymentDetailResponsePendingPreparedStackExtendEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type DeploymentDetailResponseExtendEffect = ClosedEnum< - typeof DeploymentDetailResponseExtendEffect ->; +export type DeploymentDetailResponsePendingPreparedStackExtendEffect = + ClosedEnum; /** * Grant permissions for a specific cloud platform */ -export type DeploymentDetailResponseExtendAwGrant = { +export type DeploymentDetailResponsePendingPreparedStackExtendAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2411,11 +2511,11 @@ export type DeploymentDetailResponseExtendAwGrant = { /** * AWS-specific platform permission configuration */ -export type DeploymentDetailResponseExtendAw = { +export type DeploymentDetailResponsePendingPreparedStackExtendAw = { /** * Generic binding configuration for permissions */ - binding: DeploymentDetailResponseExtendAwBinding; + binding: DeploymentDetailResponsePendingPreparedStackExtendAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2423,11 +2523,11 @@ export type DeploymentDetailResponseExtendAw = { /** * IAM effect. Defaults to Allow. */ - effect?: DeploymentDetailResponseExtendEffect | undefined; + effect?: DeploymentDetailResponsePendingPreparedStackExtendEffect | undefined; /** * Grant permissions for a specific cloud platform */ - grant: DeploymentDetailResponseExtendAwGrant; + grant: DeploymentDetailResponsePendingPreparedStackExtendAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2437,7 +2537,7 @@ export type DeploymentDetailResponseExtendAw = { /** * Azure-specific binding specification */ -export type DeploymentDetailResponseExtendAzureResource = { +export type DeploymentDetailResponsePendingPreparedStackExtendAzureResource = { /** * Scope (subscription/resource group/resource level) */ @@ -2447,7 +2547,7 @@ export type DeploymentDetailResponseExtendAzureResource = { /** * Azure-specific binding specification */ -export type DeploymentDetailResponseExtendAzureStack = { +export type DeploymentDetailResponsePendingPreparedStackExtendAzureStack = { /** * Scope (subscription/resource group/resource level) */ @@ -2457,21 +2557,25 @@ export type DeploymentDetailResponseExtendAzureStack = { /** * Generic binding configuration for permissions */ -export type DeploymentDetailResponseExtendAzureBinding = { +export type DeploymentDetailResponsePendingPreparedStackExtendAzureBinding = { /** * Azure-specific binding specification */ - resource?: DeploymentDetailResponseExtendAzureResource | undefined; + resource?: + | DeploymentDetailResponsePendingPreparedStackExtendAzureResource + | undefined; /** * Azure-specific binding specification */ - stack?: DeploymentDetailResponseExtendAzureStack | undefined; + stack?: + | DeploymentDetailResponsePendingPreparedStackExtendAzureStack + | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type DeploymentDetailResponseExtendAzureGrant = { +export type DeploymentDetailResponsePendingPreparedStackExtendAzureGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2497,11 +2601,11 @@ export type DeploymentDetailResponseExtendAzureGrant = { /** * Azure-specific platform permission configuration */ -export type DeploymentDetailResponseExtendAzure = { +export type DeploymentDetailResponsePendingPreparedStackExtendAzure = { /** * Generic binding configuration for permissions */ - binding: DeploymentDetailResponseExtendAzureBinding; + binding: DeploymentDetailResponsePendingPreparedStackExtendAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2509,7 +2613,7 @@ export type DeploymentDetailResponseExtendAzure = { /** * Grant permissions for a specific cloud platform */ - grant: DeploymentDetailResponseExtendAzureGrant; + grant: DeploymentDetailResponsePendingPreparedStackExtendAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2519,21 +2623,22 @@ export type DeploymentDetailResponseExtendAzure = { /** * GCP IAM condition */ -export type DeploymentDetailResponseExtendConditionResource = { - expression: string; - title: string; -}; +export type DeploymentDetailResponsePendingPreparedStackExtendConditionResource = + { + expression: string; + title: string; + }; -export type DeploymentDetailResponseExtendResourceConditionUnion = - | DeploymentDetailResponseExtendConditionResource +export type DeploymentDetailResponsePendingPreparedStackExtendResourceConditionUnion = + | DeploymentDetailResponsePendingPreparedStackExtendConditionResource | any; /** * GCP-specific binding specification */ -export type DeploymentDetailResponseExtendGcpResource = { +export type DeploymentDetailResponsePendingPreparedStackExtendGcpResource = { condition?: - | DeploymentDetailResponseExtendConditionResource + | DeploymentDetailResponsePendingPreparedStackExtendConditionResource | any | null | undefined; @@ -2546,21 +2651,21 @@ export type DeploymentDetailResponseExtendGcpResource = { /** * GCP IAM condition */ -export type DeploymentDetailResponseExtendConditionStack = { +export type DeploymentDetailResponsePendingPreparedStackExtendConditionStack = { expression: string; title: string; }; -export type DeploymentDetailResponseExtendStackConditionUnion = - | DeploymentDetailResponseExtendConditionStack +export type DeploymentDetailResponsePendingPreparedStackExtendStackConditionUnion = + | DeploymentDetailResponsePendingPreparedStackExtendConditionStack | any; /** * GCP-specific binding specification */ -export type DeploymentDetailResponseExtendGcpStack = { +export type DeploymentDetailResponsePendingPreparedStackExtendGcpStack = { condition?: - | DeploymentDetailResponseExtendConditionStack + | DeploymentDetailResponsePendingPreparedStackExtendConditionStack | any | null | undefined; @@ -2573,21 +2678,25 @@ export type DeploymentDetailResponseExtendGcpStack = { /** * Generic binding configuration for permissions */ -export type DeploymentDetailResponseExtendGcpBinding = { +export type DeploymentDetailResponsePendingPreparedStackExtendGcpBinding = { /** * GCP-specific binding specification */ - resource?: DeploymentDetailResponseExtendGcpResource | undefined; + resource?: + | DeploymentDetailResponsePendingPreparedStackExtendGcpResource + | undefined; /** * GCP-specific binding specification */ - stack?: DeploymentDetailResponseExtendGcpStack | undefined; + stack?: + | DeploymentDetailResponsePendingPreparedStackExtendGcpStack + | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type DeploymentDetailResponseExtendGcpGrant = { +export type DeploymentDetailResponsePendingPreparedStackExtendGcpGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2613,11 +2722,11 @@ export type DeploymentDetailResponseExtendGcpGrant = { /** * GCP-specific platform permission configuration */ -export type DeploymentDetailResponseExtendGcp = { +export type DeploymentDetailResponsePendingPreparedStackExtendGcp = { /** * Generic binding configuration for permissions */ - binding: DeploymentDetailResponseExtendGcpBinding; + binding: DeploymentDetailResponsePendingPreparedStackExtendGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2625,7 +2734,7 @@ export type DeploymentDetailResponseExtendGcp = { /** * Grant permissions for a specific cloud platform */ - grant: DeploymentDetailResponseExtendGcpGrant; + grant: DeploymentDetailResponsePendingPreparedStackExtendGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2635,25 +2744,34 @@ export type DeploymentDetailResponseExtendGcp = { /** * Platform-specific permission configurations */ -export type DeploymentDetailResponseExtendPlatforms = { +export type DeploymentDetailResponsePendingPreparedStackExtendPlatforms = { /** * AWS permission configurations */ - aws?: Array | null | undefined; + aws?: + | Array + | null + | undefined; /** * Azure permission configurations */ - azure?: Array | null | undefined; + azure?: + | Array + | null + | undefined; /** * GCP permission configurations */ - gcp?: Array | null | undefined; + gcp?: + | Array + | null + | undefined; }; /** * A permission set that can be applied across different cloud platforms */ -export type DeploymentDetailResponseExtend = { +export type DeploymentDetailResponsePendingPreparedStackExtend = { /** * Human-readable description of what this permission set allows */ @@ -2665,38 +2783,42 @@ export type DeploymentDetailResponseExtend = { /** * Platform-specific permission configurations */ - platforms: DeploymentDetailResponseExtendPlatforms; + platforms: DeploymentDetailResponsePendingPreparedStackExtendPlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type DeploymentDetailResponseExtendUnion = - | DeploymentDetailResponseExtend +export type DeploymentDetailResponsePendingPreparedStackExtendUnion = + | DeploymentDetailResponsePendingPreparedStackExtend | string; -export type DeploymentDetailResponseManagement1 = { +export type DeploymentDetailResponsePendingPreparedStackManagement1 = { /** * Permission profile that maps resources to permission sets * * @remarks * Key can be "*" for all resources or resource name for specific resource */ - extend: { [k: string]: Array }; + extend: { + [k: string]: Array< + DeploymentDetailResponsePendingPreparedStackExtend | string + >; + }; }; /** * Management permissions configuration for stack management access */ -export type DeploymentDetailResponseManagementUnion = - | DeploymentDetailResponseManagement1 - | DeploymentDetailResponseManagement2 - | DeploymentDetailResponseManagementEnum; +export type DeploymentDetailResponsePendingPreparedStackManagementUnion = + | DeploymentDetailResponsePendingPreparedStackManagement1 + | DeploymentDetailResponsePendingPreparedStackManagement2 + | DeploymentDetailResponsePendingPreparedStackManagementEnum; /** * AWS-specific binding specification */ -export type DeploymentDetailResponseProfileAwResource = { +export type DeploymentDetailResponsePendingPreparedStackProfileAwResource = { /** * Optional condition for additional filtering (rare) */ @@ -2710,7 +2832,7 @@ export type DeploymentDetailResponseProfileAwResource = { /** * AWS-specific binding specification */ -export type DeploymentDetailResponseProfileAwStack = { +export type DeploymentDetailResponsePendingPreparedStackProfileAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -2724,35 +2846,38 @@ export type DeploymentDetailResponseProfileAwStack = { /** * Generic binding configuration for permissions */ -export type DeploymentDetailResponseProfileAwBinding = { +export type DeploymentDetailResponsePendingPreparedStackProfileAwBinding = { /** * AWS-specific binding specification */ - resource?: DeploymentDetailResponseProfileAwResource | undefined; + resource?: + | DeploymentDetailResponsePendingPreparedStackProfileAwResource + | undefined; /** * AWS-specific binding specification */ - stack?: DeploymentDetailResponseProfileAwStack | undefined; + stack?: + | DeploymentDetailResponsePendingPreparedStackProfileAwStack + | undefined; }; /** * IAM effect. Defaults to Allow. */ -export const DeploymentDetailResponseProfileEffect = { +export const DeploymentDetailResponsePendingPreparedStackProfileEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type DeploymentDetailResponseProfileEffect = ClosedEnum< - typeof DeploymentDetailResponseProfileEffect ->; +export type DeploymentDetailResponsePendingPreparedStackProfileEffect = + ClosedEnum; /** * Grant permissions for a specific cloud platform */ -export type DeploymentDetailResponseProfileAwGrant = { +export type DeploymentDetailResponsePendingPreparedStackProfileAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2778,11 +2903,11 @@ export type DeploymentDetailResponseProfileAwGrant = { /** * AWS-specific platform permission configuration */ -export type DeploymentDetailResponseProfileAw = { +export type DeploymentDetailResponsePendingPreparedStackProfileAw = { /** * Generic binding configuration for permissions */ - binding: DeploymentDetailResponseProfileAwBinding; + binding: DeploymentDetailResponsePendingPreparedStackProfileAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2790,11 +2915,13 @@ export type DeploymentDetailResponseProfileAw = { /** * IAM effect. Defaults to Allow. */ - effect?: DeploymentDetailResponseProfileEffect | undefined; + effect?: + | DeploymentDetailResponsePendingPreparedStackProfileEffect + | undefined; /** * Grant permissions for a specific cloud platform */ - grant: DeploymentDetailResponseProfileAwGrant; + grant: DeploymentDetailResponsePendingPreparedStackProfileAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2804,7 +2931,7 @@ export type DeploymentDetailResponseProfileAw = { /** * Azure-specific binding specification */ -export type DeploymentDetailResponseProfileAzureResource = { +export type DeploymentDetailResponsePendingPreparedStackProfileAzureResource = { /** * Scope (subscription/resource group/resource level) */ @@ -2814,7 +2941,7 @@ export type DeploymentDetailResponseProfileAzureResource = { /** * Azure-specific binding specification */ -export type DeploymentDetailResponseProfileAzureStack = { +export type DeploymentDetailResponsePendingPreparedStackProfileAzureStack = { /** * Scope (subscription/resource group/resource level) */ @@ -2824,21 +2951,25 @@ export type DeploymentDetailResponseProfileAzureStack = { /** * Generic binding configuration for permissions */ -export type DeploymentDetailResponseProfileAzureBinding = { +export type DeploymentDetailResponsePendingPreparedStackProfileAzureBinding = { /** * Azure-specific binding specification */ - resource?: DeploymentDetailResponseProfileAzureResource | undefined; + resource?: + | DeploymentDetailResponsePendingPreparedStackProfileAzureResource + | undefined; /** * Azure-specific binding specification */ - stack?: DeploymentDetailResponseProfileAzureStack | undefined; + stack?: + | DeploymentDetailResponsePendingPreparedStackProfileAzureStack + | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type DeploymentDetailResponseProfileAzureGrant = { +export type DeploymentDetailResponsePendingPreparedStackProfileAzureGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2864,11 +2995,11 @@ export type DeploymentDetailResponseProfileAzureGrant = { /** * Azure-specific platform permission configuration */ -export type DeploymentDetailResponseProfileAzure = { +export type DeploymentDetailResponsePendingPreparedStackProfileAzure = { /** * Generic binding configuration for permissions */ - binding: DeploymentDetailResponseProfileAzureBinding; + binding: DeploymentDetailResponsePendingPreparedStackProfileAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2876,7 +3007,7 @@ export type DeploymentDetailResponseProfileAzure = { /** * Grant permissions for a specific cloud platform */ - grant: DeploymentDetailResponseProfileAzureGrant; + grant: DeploymentDetailResponsePendingPreparedStackProfileAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2886,21 +3017,22 @@ export type DeploymentDetailResponseProfileAzure = { /** * GCP IAM condition */ -export type DeploymentDetailResponseProfileConditionResource = { - expression: string; - title: string; -}; +export type DeploymentDetailResponsePendingPreparedStackProfileConditionResource = + { + expression: string; + title: string; + }; -export type DeploymentDetailResponseProfileResourceConditionUnion = - | DeploymentDetailResponseProfileConditionResource +export type DeploymentDetailResponsePendingPreparedStackProfileResourceConditionUnion = + | DeploymentDetailResponsePendingPreparedStackProfileConditionResource | any; /** * GCP-specific binding specification */ -export type DeploymentDetailResponseProfileGcpResource = { +export type DeploymentDetailResponsePendingPreparedStackProfileGcpResource = { condition?: - | DeploymentDetailResponseProfileConditionResource + | DeploymentDetailResponsePendingPreparedStackProfileConditionResource | any | null | undefined; @@ -2913,21 +3045,22 @@ export type DeploymentDetailResponseProfileGcpResource = { /** * GCP IAM condition */ -export type DeploymentDetailResponseProfileConditionStack = { - expression: string; - title: string; -}; +export type DeploymentDetailResponsePendingPreparedStackProfileConditionStack = + { + expression: string; + title: string; + }; -export type DeploymentDetailResponseProfileStackConditionUnion = - | DeploymentDetailResponseProfileConditionStack +export type DeploymentDetailResponsePendingPreparedStackProfileStackConditionUnion = + | DeploymentDetailResponsePendingPreparedStackProfileConditionStack | any; /** * GCP-specific binding specification */ -export type DeploymentDetailResponseProfileGcpStack = { +export type DeploymentDetailResponsePendingPreparedStackProfileGcpStack = { condition?: - | DeploymentDetailResponseProfileConditionStack + | DeploymentDetailResponsePendingPreparedStackProfileConditionStack | any | null | undefined; @@ -2940,21 +3073,25 @@ export type DeploymentDetailResponseProfileGcpStack = { /** * Generic binding configuration for permissions */ -export type DeploymentDetailResponseProfileGcpBinding = { +export type DeploymentDetailResponsePendingPreparedStackProfileGcpBinding = { /** * GCP-specific binding specification */ - resource?: DeploymentDetailResponseProfileGcpResource | undefined; + resource?: + | DeploymentDetailResponsePendingPreparedStackProfileGcpResource + | undefined; /** * GCP-specific binding specification */ - stack?: DeploymentDetailResponseProfileGcpStack | undefined; + stack?: + | DeploymentDetailResponsePendingPreparedStackProfileGcpStack + | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type DeploymentDetailResponseProfileGcpGrant = { +export type DeploymentDetailResponsePendingPreparedStackProfileGcpGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2980,11 +3117,11 @@ export type DeploymentDetailResponseProfileGcpGrant = { /** * GCP-specific platform permission configuration */ -export type DeploymentDetailResponseProfileGcp = { +export type DeploymentDetailResponsePendingPreparedStackProfileGcp = { /** * Generic binding configuration for permissions */ - binding: DeploymentDetailResponseProfileGcpBinding; + binding: DeploymentDetailResponsePendingPreparedStackProfileGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2992,7 +3129,7 @@ export type DeploymentDetailResponseProfileGcp = { /** * Grant permissions for a specific cloud platform */ - grant: DeploymentDetailResponseProfileGcpGrant; + grant: DeploymentDetailResponsePendingPreparedStackProfileGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -3002,25 +3139,34 @@ export type DeploymentDetailResponseProfileGcp = { /** * Platform-specific permission configurations */ -export type DeploymentDetailResponseProfilePlatforms = { +export type DeploymentDetailResponsePendingPreparedStackProfilePlatforms = { /** * AWS permission configurations */ - aws?: Array | null | undefined; + aws?: + | Array + | null + | undefined; /** * Azure permission configurations */ - azure?: Array | null | undefined; + azure?: + | Array + | null + | undefined; /** * GCP permission configurations */ - gcp?: Array | null | undefined; + gcp?: + | Array + | null + | undefined; }; /** * A permission set that can be applied across different cloud platforms */ -export type DeploymentDetailResponseProfile = { +export type DeploymentDetailResponsePendingPreparedStackProfile = { /** * Human-readable description of what this permission set allows */ @@ -3032,27 +3178,27 @@ export type DeploymentDetailResponseProfile = { /** * Platform-specific permission configurations */ - platforms: DeploymentDetailResponseProfilePlatforms; + platforms: DeploymentDetailResponsePendingPreparedStackProfilePlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type DeploymentDetailResponseProfileUnion = - | DeploymentDetailResponseProfile +export type DeploymentDetailResponsePendingPreparedStackProfileUnion = + | DeploymentDetailResponsePendingPreparedStackProfile | string; /** * Combined permissions configuration that contains both profiles and management */ -export type DeploymentDetailResponsePermissions = { +export type DeploymentDetailResponsePendingPreparedStackPermissions = { /** * Management permissions configuration for stack management access */ management?: - | DeploymentDetailResponseManagement1 - | DeploymentDetailResponseManagement2 - | DeploymentDetailResponseManagementEnum + | DeploymentDetailResponsePendingPreparedStackManagement1 + | DeploymentDetailResponsePendingPreparedStackManagement2 + | DeploymentDetailResponsePendingPreparedStackManagementEnum | undefined; /** * Permission profiles that define access control for compute services @@ -3062,7 +3208,9 @@ export type DeploymentDetailResponsePermissions = { */ profiles: { [k: string]: { - [k: string]: Array; + [k: string]: Array< + DeploymentDetailResponsePendingPreparedStackProfile | string + >; }; }; }; @@ -3070,7 +3218,7 @@ export type DeploymentDetailResponsePermissions = { /** * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ -export type DeploymentDetailResponsePreparedStackConfig = { +export type DeploymentDetailResponsePendingPreparedStackConfig = { /** * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. */ @@ -3085,7 +3233,7 @@ export type DeploymentDetailResponsePreparedStackConfig = { /** * Reference to a resource by its stable id and resource type. */ -export type DeploymentDetailResponsePreparedStackDependency = { +export type DeploymentDetailResponsePendingPreparedStackDependency = { id: string; /** * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. @@ -3096,33 +3244,44 @@ export type DeploymentDetailResponsePreparedStackDependency = { /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export const DeploymentDetailResponsePreparedStackLifecycle = { +export const DeploymentDetailResponsePendingPreparedStackLifecycle = { Frozen: "frozen", Live: "live", } as const; /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export type DeploymentDetailResponsePreparedStackLifecycle = ClosedEnum< - typeof DeploymentDetailResponsePreparedStackLifecycle +export type DeploymentDetailResponsePendingPreparedStackLifecycle = ClosedEnum< + typeof DeploymentDetailResponsePendingPreparedStackLifecycle >; -export type DeploymentDetailResponsePreparedStackResources = { +export type DeploymentDetailResponsePendingPreparedStackResources = { /** * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ - config: DeploymentDetailResponsePreparedStackConfig; + config: DeploymentDetailResponsePendingPreparedStackConfig; /** * Additional dependencies for this resource beyond those defined in the resource itself. * * @remarks * The total dependencies are: resource.get_dependencies() + this list */ - dependencies: Array; + dependencies: Array; + /** + * Id of the boolean stack input that decides whether this resource is + * + * @remarks + * created at all. `None` means always create it. + * + * Set by `.enabled(input)` in the SDK. Setup emitters render the resource + * conditionally on the matching template variable, so a deployer who says no + * never gets the resource, its outputs, or anything derived from it. + */ + enabledWhen?: string | null | undefined; /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ - lifecycle: DeploymentDetailResponsePreparedStackLifecycle; + lifecycle: DeploymentDetailResponsePendingPreparedStackLifecycle; /** * Enable remote bindings for this resource (BYOB use case). * @@ -3136,7 +3295,7 @@ export type DeploymentDetailResponsePreparedStackResources = { /** * Represents the target cloud platform. */ -export const DeploymentDetailResponseSupportedPlatform = { +export const DeploymentDetailResponsePendingPreparedStackSupportedPlatform = { Aws: "aws", Gcp: "gcp", Azure: "azure", @@ -3148,14 +3307,15 @@ export const DeploymentDetailResponseSupportedPlatform = { /** * Represents the target cloud platform. */ -export type DeploymentDetailResponseSupportedPlatform = ClosedEnum< - typeof DeploymentDetailResponseSupportedPlatform ->; +export type DeploymentDetailResponsePendingPreparedStackSupportedPlatform = + ClosedEnum< + typeof DeploymentDetailResponsePendingPreparedStackSupportedPlatform + >; /** * A bag of resources, unaware of any cloud. */ -export type DeploymentDetailResponsePreparedStack = { +export type DeploymentDetailResponsePendingPreparedStack = { /** * Unique identifier for the stack */ @@ -3163,3149 +3323,7458 @@ export type DeploymentDetailResponsePreparedStack = { /** * Input definitions required before setup or deployment can proceed. */ - inputs?: Array | undefined; + inputs?: Array | undefined; /** * Combined permissions configuration that contains both profiles and management */ - permissions?: DeploymentDetailResponsePermissions | undefined; + permissions?: + | DeploymentDetailResponsePendingPreparedStackPermissions + | undefined; /** * Map of resource IDs to their configurations and lifecycle settings */ - resources: { [k: string]: DeploymentDetailResponsePreparedStackResources }; + resources: { + [k: string]: DeploymentDetailResponsePendingPreparedStackResources; + }; /** * Which platforms this stack supports. When None, all platforms are supported. */ supportedPlatforms?: - | Array + | Array | null | undefined; }; -export type DeploymentDetailResponsePreparedStackUnion = - | DeploymentDetailResponsePreparedStack +export type DeploymentDetailResponsePendingPreparedStackUnion = + | DeploymentDetailResponsePendingPreparedStack | any; -/** - * Runtime metadata for deployment state persistence - */ -export type DeploymentDetailResponseRuntimeMetadata = { +export const DeploymentDetailResponsePreparedStackTypeStringList = { + StringList: "stringList", +} as const; +export type DeploymentDetailResponsePreparedStackTypeStringList = ClosedEnum< + typeof DeploymentDetailResponsePreparedStackTypeStringList +>; + +export type DeploymentDetailResponsePreparedStackDefaultStringList = { + type: DeploymentDetailResponsePreparedStackTypeStringList; /** - * Hash of the environment variables snapshot that was last synced to the vault - * - * @remarks - * Used to avoid redundant sync operations during incremental deployment + * String list default. */ - lastSyncedEnvVarsHash?: string | null | undefined; + value: Array; +}; + +export const DeploymentDetailResponsePreparedStackTypeBoolean = { + Boolean: "boolean", +} as const; +export type DeploymentDetailResponsePreparedStackTypeBoolean = ClosedEnum< + typeof DeploymentDetailResponsePreparedStackTypeBoolean +>; + +export type DeploymentDetailResponsePreparedStackDefaultBoolean = { + type: DeploymentDetailResponsePreparedStackTypeBoolean; /** - * Exact vault keys owned by the deployment secret synchronizer. This - * - * @remarks - * inventory lets a later snapshot delete removed keys without listing or - * touching unrelated values in the same vault. + * Boolean default. */ - lastSyncedSecretNames?: Array | undefined; - preparedStack?: - | DeploymentDetailResponsePreparedStack - | any - | null - | undefined; + value: boolean; +}; + +export const DeploymentDetailResponsePreparedStackTypeNumber = { + Number: "number", +} as const; +export type DeploymentDetailResponsePreparedStackTypeNumber = ClosedEnum< + typeof DeploymentDetailResponsePreparedStackTypeNumber +>; + +export type DeploymentDetailResponsePreparedStackDefaultNumber = { + type: DeploymentDetailResponsePreparedStackTypeNumber; /** - * Whether cross-account registry access has been successfully granted. - * - * @remarks - * Set to true after the manager successfully sets the ECR/GAR repo policy - * for this deployment's target account. Prevents redundant API calls on - * every reconcile tick. + * Number default. */ - registryAccessGranted?: boolean | undefined; + value: string; }; -/** - * Setup source that imported this deployment - */ -export const DeploymentDetailResponseImportSource = { - Cloudformation: "cloudformation", - Terraform: "terraform", - Helm: "helm", +export const DeploymentDetailResponsePreparedStackTypeString = { + String: "string", } as const; -/** - * Setup source that imported this deployment - */ -export type DeploymentDetailResponseImportSource = ClosedEnum< - typeof DeploymentDetailResponseImportSource +export type DeploymentDetailResponsePreparedStackTypeString = ClosedEnum< + typeof DeploymentDetailResponsePreparedStackTypeString >; +export type DeploymentDetailResponsePreparedStackDefaultString = { + type: DeploymentDetailResponsePreparedStackTypeString; + /** + * String default. + */ + value: string; +}; + +export type DeploymentDetailResponsePreparedStackDefaultUnion = + | DeploymentDetailResponsePreparedStackDefaultString + | DeploymentDetailResponsePreparedStackDefaultNumber + | DeploymentDetailResponsePreparedStackDefaultBoolean + | DeploymentDetailResponsePreparedStackDefaultStringList + | any; + /** - * Setup method that created the deployment record and owns setup-time resources. + * Environment variable handling for a stack input mapping. */ -export const DeploymentDetailResponseSetupMethod = { - Cloudformation: "cloudformation", - GoogleOauth: "google-oauth", - Terraform: "terraform", - Helm: "helm", - Cli: "cli", - Manual: "manual", +export const DeploymentDetailResponsePreparedStackTypeEnvEnum = { + Plain: "plain", + Secret: "secret", } as const; /** - * Setup method that created the deployment record and owns setup-time resources. + * Environment variable handling for a stack input mapping. */ -export type DeploymentDetailResponseSetupMethod = ClosedEnum< - typeof DeploymentDetailResponseSetupMethod +export type DeploymentDetailResponsePreparedStackTypeEnvEnum = ClosedEnum< + typeof DeploymentDetailResponsePreparedStackTypeEnvEnum >; +export type DeploymentDetailResponsePreparedStackTypeUnion = + | DeploymentDetailResponsePreparedStackTypeEnvEnum + | any; + /** - * Latest error information if the deployment is in a failed state + * How a resolved stack input is injected into runtime environment variables. */ -export type DeploymentDetailResponseError = { +export type DeploymentDetailResponsePreparedStackEnv = { /** - * A unique identifier for the type of error. - * - * @remarks - * - * This should be a short, machine-readable string that can be used - * by clients to programmatically handle different error types. - * Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" + * Environment variable name. */ - code: string; + name: string; /** - * Additional diagnostic information about the error context. - * - * @remarks - * - * This optional field can contain structured data providing more details - * about the error, such as validation errors, request parameters that - * caused the issue, or other relevant context information. + * Target resource IDs or patterns. None means every env-capable resource. */ - context?: any | null | undefined; + targetResources?: Array | null | undefined; + type?: + | DeploymentDetailResponsePreparedStackTypeEnvEnum + | any + | null + | undefined; +}; + +/** + * Primitive stack input kind. + */ +export const DeploymentDetailResponsePreparedStackKind = { + String: "string", + Secret: "secret", + Number: "number", + Integer: "integer", + Boolean: "boolean", + Enum: "enum", + StringList: "stringList", +} as const; +/** + * Primitive stack input kind. + */ +export type DeploymentDetailResponsePreparedStackKind = ClosedEnum< + typeof DeploymentDetailResponsePreparedStackKind +>; + +/** + * Represents the target cloud platform. + */ +export const DeploymentDetailResponsePreparedStackPlatform = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", +} as const; +/** + * Represents the target cloud platform. + */ +export type DeploymentDetailResponsePreparedStackPlatform = ClosedEnum< + typeof DeploymentDetailResponsePreparedStackPlatform +>; + +/** + * Who can provide a stack input value. + */ +export const DeploymentDetailResponsePreparedStackProvidedBy = { + Developer: "developer", + Deployer: "deployer", +} as const; +/** + * Who can provide a stack input value. + */ +export type DeploymentDetailResponsePreparedStackProvidedBy = ClosedEnum< + typeof DeploymentDetailResponsePreparedStackProvidedBy +>; + +/** + * Portable stack input validation constraints. + */ +export type DeploymentDetailResponsePreparedStackValidation = { /** - * Optional human-facing remediation hint. + * Semantic format hint such as url. */ - hint?: string | null | undefined; + format?: string | null | undefined; /** - * HTTP status code for this error. - * - * @remarks - * - * Used when converting the error to an HTTP response. If None, falls back to - * the error type's default status code or 500. + * Maximum number. */ - httpStatusCode?: number | null | undefined; + max?: string | null | undefined; /** - * Indicates if this is an internal error that should not be exposed to users. - * - * @remarks - * - * When `true`, this error contains sensitive information or implementation - * details that should not be shown to end-users. Such errors should be - * logged for debugging but replaced with generic error messages in responses. + * Maximum string-list items. */ - internal: boolean; + maxItems?: number | null | undefined; /** - * Human-readable error message. - * - * @remarks - * - * This message should be clear and actionable for developers or end-users, - * providing context about what went wrong and potentially how to fix it. + * Maximum string length. */ - message: string; + maxLength?: number | null | undefined; /** - * Indicates whether the operation that caused the error should be retried. - * - * @remarks - * - * When `true`, the error is transient and the operation might succeed - * if attempted again. When `false`, retrying the same operation is - * unlikely to succeed without changes. + * Minimum number. */ - retryable: boolean; + min?: string | null | undefined; /** - * The underlying error that caused this error, creating an error chain. - * - * @remarks - * - * This allows for proper error propagation and debugging by maintaining - * the full context of how an error occurred through multiple layers - * of an application. + * Minimum string-list items. */ - source?: any | null | undefined; -}; - -/** - * Snapshot of target environment variables for the deployment - */ -export type DeploymentDetailResponseTargetEnvironmentVariables = { + minItems?: number | null | undefined; /** - * Environment variables in the snapshot + * Minimum string length. */ - variables: Array; + minLength?: number | null | undefined; /** - * Deterministic hash of all variables for change detection + * Portable whole-value regex pattern. */ - hash: string; + pattern?: string | null | undefined; /** - * ISO 8601 timestamp when snapshot was created + * Allowed string enum values. */ - createdAt: Date; + values?: Array | null | undefined; }; +export type DeploymentDetailResponsePreparedStackValidationUnion = + | DeploymentDetailResponsePreparedStackValidation + | any; + /** - * Snapshot of current environment variables for the deployment + * Stack input definition serialized into a release stack. */ -export type DeploymentDetailResponseCurrentEnvironmentVariables = { +export type DeploymentDetailResponsePreparedStackInput = { + default?: + | DeploymentDetailResponsePreparedStackDefaultString + | DeploymentDetailResponsePreparedStackDefaultNumber + | DeploymentDetailResponsePreparedStackDefaultBoolean + | DeploymentDetailResponsePreparedStackDefaultStringList + | any + | null + | undefined; /** - * Environment variables in the snapshot + * Human-facing helper text. */ - variables: Array; + description: string; /** - * Deterministic hash of all variables for change detection + * Runtime env-var mappings for v1 input resolution. */ - hash: string; + env?: Array | undefined; /** - * ISO 8601 timestamp when snapshot was created + * Stable input ID used by CLI/API calls. */ - createdAt: Date; -}; - -export type DeploymentDetailResponse = { + id: string; /** - * Unique identifier for the deployment. + * Primitive stack input kind. */ - id: string; + kind: DeploymentDetailResponsePreparedStackKind; /** - * Deployment name. + * Human-facing field label. */ - name: string; + label: string; /** - * Public subdomain for auto-generated domains + * Example placeholder shown in UI. */ - publicSubdomain?: string | null | undefined; + placeholder?: string | null | undefined; /** - * Deployment status in the deployment lifecycle. - * - * @remarks - * - * For observe-only deployments with no release or stack state, `Running` - * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; - * resource health comes from inventory and resource heartbeat data. + * Platforms where this input applies. */ - status: DeploymentDetailResponseStatus; + platforms?: + | Array + | null + | undefined; /** - * Unique identifier for the project. + * Who can provide this value. */ - projectId: string; + providedBy: Array; /** - * Target platform for the deployment + * Whether a resolved value is required before deployment can proceed. */ - platform: DeploymentDetailResponsePlatform; + required: boolean; + validation?: + | DeploymentDetailResponsePreparedStackValidation + | any + | null + | undefined; +}; + +export const DeploymentDetailResponsePreparedStackManagementEnum = { + Auto: "auto", +} as const; +export type DeploymentDetailResponsePreparedStackManagementEnum = ClosedEnum< + typeof DeploymentDetailResponsePreparedStackManagementEnum +>; + +/** + * AWS-specific binding specification + */ +export type DeploymentDetailResponsePreparedStackOverrideAwResource = { /** - * Underlying cloud platform for Kubernetes deployments. + * Optional condition for additional filtering (rare) */ - basePlatform?: DeploymentDetailResponseBasePlatform | null | undefined; + condition?: { [k: string]: { [k: string]: string } } | null | undefined; /** - * Cloud region or location for the deployment. + * Resource ARNs to bind to */ - region?: string | null | undefined; + resources: Array; +}; + +/** + * AWS-specific binding specification + */ +export type DeploymentDetailResponsePreparedStackOverrideAwStack = { /** - * DeploymentState protocol version owned by the runtime/manager + * Optional condition for additional filtering (rare) */ - deploymentProtocolVersion: number; + condition?: { [k: string]: { [k: string]: string } } | null | undefined; /** - * ID of deployment group this deployment belongs to + * Resource ARNs to bind to */ - deploymentGroupId: string; + resources: Array; +}; + +/** + * Generic binding configuration for permissions + */ +export type DeploymentDetailResponsePreparedStackOverrideAwBinding = { /** - * Cloud environment information + * AWS-specific binding specification */ - environmentInfo?: - | DeploymentDetailResponseEnvironmentInfoGcp - | DeploymentDetailResponseEnvironmentInfoAzure - | DeploymentDetailResponseEnvironmentInfoLocal - | DeploymentDetailResponseEnvironmentInfoAws - | DeploymentDetailResponseEnvironmentInfoTest - | any - | null + resource?: + | DeploymentDetailResponsePreparedStackOverrideAwResource | undefined; /** - * User-provided configuration (network, deployment model, approvals) + * AWS-specific binding specification */ - stackSettings: DeploymentDetailResponseStackSettings; + stack?: DeploymentDetailResponsePreparedStackOverrideAwStack | undefined; +}; + +/** + * IAM effect. Defaults to Allow. + */ +export const DeploymentDetailResponsePreparedStackOverrideEffect = { + Allow: "Allow", + Deny: "Deny", +} as const; +/** + * IAM effect. Defaults to Allow. + */ +export type DeploymentDetailResponsePreparedStackOverrideEffect = ClosedEnum< + typeof DeploymentDetailResponsePreparedStackOverrideEffect +>; + +/** + * Grant permissions for a specific cloud platform + */ +export type DeploymentDetailResponsePreparedStackOverrideAwGrant = { /** - * State of infrastructure components managed by this deployment + * AWS IAM actions (only for AWS) */ - stackState?: DeploymentDetailResponseStackState | null | undefined; + actions?: Array | null | undefined; /** - * Runtime metadata for deployment state persistence + * Azure actions (only for Azure) */ - runtimeMetadata?: DeploymentDetailResponseRuntimeMetadata | null | undefined; + dataActions?: Array | null | undefined; /** - * ID of the currently deployed release (actual state) + * GCP permissions that require an exact residual custom role. */ - currentReleaseId?: string | null | undefined; + permissions?: Array | null | undefined; /** - * ID of the desired release for deployment/update (desired state) + * Provider predefined roles to bind directly. */ - desiredReleaseId?: string | null | undefined; + predefinedRoles?: Array | null | undefined; /** - * ID of the pinned release + * GCP residual custom permissions to pair with predefined roles. */ - pinnedReleaseId?: string | null | undefined; + residualPermissions?: Array | null | undefined; +}; + +/** + * AWS-specific platform permission configuration + */ +export type DeploymentDetailResponsePreparedStackOverrideAw = { /** - * Setup source that imported this deployment + * Generic binding configuration for permissions */ - importSource?: DeploymentDetailResponseImportSource | null | undefined; + binding: DeploymentDetailResponsePreparedStackOverrideAwBinding; /** - * Setup method that created the deployment record and owns setup-time resources. + * Short admin-facing description of why this entry exists. */ - setupMethod?: DeploymentDetailResponseSetupMethod | null | undefined; + description?: string | null | undefined; /** - * Setup method metadata needed to guide privileged teardown. + * IAM effect. Defaults to Allow. */ - setupMetadata?: { [k: string]: any | null } | null | undefined; + effect?: DeploymentDetailResponsePreparedStackOverrideEffect | undefined; /** - * Imported setup target for compatibility checks + * Grant permissions for a specific cloud platform */ - setupTarget?: string | null | undefined; + grant: DeploymentDetailResponsePreparedStackOverrideAwGrant; /** - * Imported setup compatibility fingerprint + * Stable admin-facing label for this permission entry. */ - setupFingerprint?: string | null | undefined; + label?: string | null | undefined; +}; + +/** + * Azure-specific binding specification + */ +export type DeploymentDetailResponsePreparedStackOverrideAzureResource = { /** - * Imported setup fingerprint algorithm version + * Scope (subscription/resource group/resource level) */ - setupFingerprintVersion?: number | null | undefined; + scope: string; +}; + +/** + * Azure-specific binding specification + */ +export type DeploymentDetailResponsePreparedStackOverrideAzureStack = { /** - * Display-only scope reported by the Operator manifest + * Scope (subscription/resource group/resource level) */ - operatorScope?: string | null | undefined; + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type DeploymentDetailResponsePreparedStackOverrideAzureBinding = { /** - * Display-only permission tier reported by the Operator manifest + * Azure-specific binding specification */ - operatorPermission?: string | null | undefined; + resource?: + | DeploymentDetailResponsePreparedStackOverrideAzureResource + | undefined; /** - * Version reported by the Operator + * Azure-specific binding specification */ - operatorVersion?: string | null | undefined; + stack?: DeploymentDetailResponsePreparedStackOverrideAzureStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type DeploymentDetailResponsePreparedStackOverrideAzureGrant = { /** - * Capability state reported by the Operator + * AWS IAM actions (only for AWS) */ - capabilities?: Array | null | undefined; + actions?: Array | null | undefined; /** - * Whether a retry has been requested for a failed deployment + * Azure actions (only for Azure) */ - retryRequested: boolean; + dataActions?: Array | null | undefined; /** - * Timestamp of the last received heartbeat from the deployment + * GCP permissions that require an exact residual custom role. */ - lastHeartbeatAt?: Date | null | undefined; + permissions?: Array | null | undefined; /** - * Latest error information if the deployment is in a failed state + * Provider predefined roles to bind directly. */ - error?: DeploymentDetailResponseError | null | undefined; + predefinedRoles?: Array | null | undefined; /** - * Configuration of environment variables for the deployment + * GCP residual custom permissions to pair with predefined roles. */ - environmentVariables?: Array | null | undefined; + residualPermissions?: Array | null | undefined; +}; + +/** + * Azure-specific platform permission configuration + */ +export type DeploymentDetailResponsePreparedStackOverrideAzure = { /** - * Snapshot of target environment variables for the deployment + * Generic binding configuration for permissions */ - targetEnvironmentVariables?: - | DeploymentDetailResponseTargetEnvironmentVariables + binding: DeploymentDetailResponsePreparedStackOverrideAzureBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: DeploymentDetailResponsePreparedStackOverrideAzureGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * GCP IAM condition + */ +export type DeploymentDetailResponsePreparedStackOverrideConditionResource = { + expression: string; + title: string; +}; + +export type DeploymentDetailResponsePreparedStackOverrideResourceConditionUnion = + | DeploymentDetailResponsePreparedStackOverrideConditionResource + | any; + +/** + * GCP-specific binding specification + */ +export type DeploymentDetailResponsePreparedStackOverrideGcpResource = { + condition?: + | DeploymentDetailResponsePreparedStackOverrideConditionResource + | any | null | undefined; /** - * Snapshot of current environment variables for the deployment + * Scope (project/resource level) */ - currentEnvironmentVariables?: - | DeploymentDetailResponseCurrentEnvironmentVariables + scope: string; +}; + +/** + * GCP IAM condition + */ +export type DeploymentDetailResponsePreparedStackOverrideConditionStack = { + expression: string; + title: string; +}; + +export type DeploymentDetailResponsePreparedStackOverrideStackConditionUnion = + | DeploymentDetailResponsePreparedStackOverrideConditionStack + | any; + +/** + * GCP-specific binding specification + */ +export type DeploymentDetailResponsePreparedStackOverrideGcpStack = { + condition?: + | DeploymentDetailResponsePreparedStackOverrideConditionStack + | any | null | undefined; - createdAt: Date; - updatedAt: Date; - managerId: string; /** - * Unique identifier for the workspace. + * Scope (project/resource level) */ - workspaceId: string; - release?: DeploymentReleaseInfo | null | undefined; - deploymentGroup?: DeploymentGroupInfo | undefined; - project?: DeploymentProjectInfo | undefined; + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type DeploymentDetailResponsePreparedStackOverrideGcpBinding = { + /** + * GCP-specific binding specification + */ + resource?: + | DeploymentDetailResponsePreparedStackOverrideGcpResource + | undefined; + /** + * GCP-specific binding specification + */ + stack?: DeploymentDetailResponsePreparedStackOverrideGcpStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type DeploymentDetailResponsePreparedStackOverrideGcpGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * GCP-specific platform permission configuration + */ +export type DeploymentDetailResponsePreparedStackOverrideGcp = { + /** + * Generic binding configuration for permissions + */ + binding: DeploymentDetailResponsePreparedStackOverrideGcpBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: DeploymentDetailResponsePreparedStackOverrideGcpGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Platform-specific permission configurations + */ +export type DeploymentDetailResponsePreparedStackOverridePlatforms = { + /** + * AWS permission configurations + */ + aws?: + | Array + | null + | undefined; + /** + * Azure permission configurations + */ + azure?: + | Array + | null + | undefined; + /** + * GCP permission configurations + */ + gcp?: + | Array + | null + | undefined; +}; + +/** + * A permission set that can be applied across different cloud platforms + */ +export type DeploymentDetailResponsePreparedStackOverride = { + /** + * Human-readable description of what this permission set allows + */ + description: string; + /** + * Unique identifier for the permission set (e.g., "storage/data-read") + */ + id: string; + /** + * Platform-specific permission configurations + */ + platforms: DeploymentDetailResponsePreparedStackOverridePlatforms; }; -/** @internal */ -export const DeploymentDetailResponseStatus$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseStatus -> = z.enum(DeploymentDetailResponseStatus); +/** + * Reference to a permission set - either by name or inline definition + */ +export type DeploymentDetailResponsePreparedStackOverrideUnion = + | DeploymentDetailResponsePreparedStackOverride + | string; + +export type DeploymentDetailResponsePreparedStackManagement2 = { + /** + * Permission profile that maps resources to permission sets + * + * @remarks + * Key can be "*" for all resources or resource name for specific resource + */ + override: { + [k: string]: Array; + }; +}; + +/** + * AWS-specific binding specification + */ +export type DeploymentDetailResponsePreparedStackExtendAwResource = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; + +/** + * AWS-specific binding specification + */ +export type DeploymentDetailResponsePreparedStackExtendAwStack = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; + +/** + * Generic binding configuration for permissions + */ +export type DeploymentDetailResponsePreparedStackExtendAwBinding = { + /** + * AWS-specific binding specification + */ + resource?: DeploymentDetailResponsePreparedStackExtendAwResource | undefined; + /** + * AWS-specific binding specification + */ + stack?: DeploymentDetailResponsePreparedStackExtendAwStack | undefined; +}; + +/** + * IAM effect. Defaults to Allow. + */ +export const DeploymentDetailResponsePreparedStackExtendEffect = { + Allow: "Allow", + Deny: "Deny", +} as const; +/** + * IAM effect. Defaults to Allow. + */ +export type DeploymentDetailResponsePreparedStackExtendEffect = ClosedEnum< + typeof DeploymentDetailResponsePreparedStackExtendEffect +>; + +/** + * Grant permissions for a specific cloud platform + */ +export type DeploymentDetailResponsePreparedStackExtendAwGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * AWS-specific platform permission configuration + */ +export type DeploymentDetailResponsePreparedStackExtendAw = { + /** + * Generic binding configuration for permissions + */ + binding: DeploymentDetailResponsePreparedStackExtendAwBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * IAM effect. Defaults to Allow. + */ + effect?: DeploymentDetailResponsePreparedStackExtendEffect | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: DeploymentDetailResponsePreparedStackExtendAwGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Azure-specific binding specification + */ +export type DeploymentDetailResponsePreparedStackExtendAzureResource = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; + +/** + * Azure-specific binding specification + */ +export type DeploymentDetailResponsePreparedStackExtendAzureStack = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type DeploymentDetailResponsePreparedStackExtendAzureBinding = { + /** + * Azure-specific binding specification + */ + resource?: + | DeploymentDetailResponsePreparedStackExtendAzureResource + | undefined; + /** + * Azure-specific binding specification + */ + stack?: DeploymentDetailResponsePreparedStackExtendAzureStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type DeploymentDetailResponsePreparedStackExtendAzureGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * Azure-specific platform permission configuration + */ +export type DeploymentDetailResponsePreparedStackExtendAzure = { + /** + * Generic binding configuration for permissions + */ + binding: DeploymentDetailResponsePreparedStackExtendAzureBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: DeploymentDetailResponsePreparedStackExtendAzureGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * GCP IAM condition + */ +export type DeploymentDetailResponsePreparedStackExtendConditionResource = { + expression: string; + title: string; +}; + +export type DeploymentDetailResponsePreparedStackExtendResourceConditionUnion = + | DeploymentDetailResponsePreparedStackExtendConditionResource + | any; + +/** + * GCP-specific binding specification + */ +export type DeploymentDetailResponsePreparedStackExtendGcpResource = { + condition?: + | DeploymentDetailResponsePreparedStackExtendConditionResource + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + +/** + * GCP IAM condition + */ +export type DeploymentDetailResponsePreparedStackExtendConditionStack = { + expression: string; + title: string; +}; + +export type DeploymentDetailResponsePreparedStackExtendStackConditionUnion = + | DeploymentDetailResponsePreparedStackExtendConditionStack + | any; + +/** + * GCP-specific binding specification + */ +export type DeploymentDetailResponsePreparedStackExtendGcpStack = { + condition?: + | DeploymentDetailResponsePreparedStackExtendConditionStack + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type DeploymentDetailResponsePreparedStackExtendGcpBinding = { + /** + * GCP-specific binding specification + */ + resource?: DeploymentDetailResponsePreparedStackExtendGcpResource | undefined; + /** + * GCP-specific binding specification + */ + stack?: DeploymentDetailResponsePreparedStackExtendGcpStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type DeploymentDetailResponsePreparedStackExtendGcpGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * GCP-specific platform permission configuration + */ +export type DeploymentDetailResponsePreparedStackExtendGcp = { + /** + * Generic binding configuration for permissions + */ + binding: DeploymentDetailResponsePreparedStackExtendGcpBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: DeploymentDetailResponsePreparedStackExtendGcpGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Platform-specific permission configurations + */ +export type DeploymentDetailResponsePreparedStackExtendPlatforms = { + /** + * AWS permission configurations + */ + aws?: Array | null | undefined; + /** + * Azure permission configurations + */ + azure?: + | Array + | null + | undefined; + /** + * GCP permission configurations + */ + gcp?: + | Array + | null + | undefined; +}; + +/** + * A permission set that can be applied across different cloud platforms + */ +export type DeploymentDetailResponsePreparedStackExtend = { + /** + * Human-readable description of what this permission set allows + */ + description: string; + /** + * Unique identifier for the permission set (e.g., "storage/data-read") + */ + id: string; + /** + * Platform-specific permission configurations + */ + platforms: DeploymentDetailResponsePreparedStackExtendPlatforms; +}; + +/** + * Reference to a permission set - either by name or inline definition + */ +export type DeploymentDetailResponsePreparedStackExtendUnion = + | DeploymentDetailResponsePreparedStackExtend + | string; + +export type DeploymentDetailResponsePreparedStackManagement1 = { + /** + * Permission profile that maps resources to permission sets + * + * @remarks + * Key can be "*" for all resources or resource name for specific resource + */ + extend: { + [k: string]: Array; + }; +}; + +/** + * Management permissions configuration for stack management access + */ +export type DeploymentDetailResponsePreparedStackManagementUnion = + | DeploymentDetailResponsePreparedStackManagement1 + | DeploymentDetailResponsePreparedStackManagement2 + | DeploymentDetailResponsePreparedStackManagementEnum; + +/** + * AWS-specific binding specification + */ +export type DeploymentDetailResponsePreparedStackProfileAwResource = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; + +/** + * AWS-specific binding specification + */ +export type DeploymentDetailResponsePreparedStackProfileAwStack = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; + +/** + * Generic binding configuration for permissions + */ +export type DeploymentDetailResponsePreparedStackProfileAwBinding = { + /** + * AWS-specific binding specification + */ + resource?: DeploymentDetailResponsePreparedStackProfileAwResource | undefined; + /** + * AWS-specific binding specification + */ + stack?: DeploymentDetailResponsePreparedStackProfileAwStack | undefined; +}; + +/** + * IAM effect. Defaults to Allow. + */ +export const DeploymentDetailResponsePreparedStackProfileEffect = { + Allow: "Allow", + Deny: "Deny", +} as const; +/** + * IAM effect. Defaults to Allow. + */ +export type DeploymentDetailResponsePreparedStackProfileEffect = ClosedEnum< + typeof DeploymentDetailResponsePreparedStackProfileEffect +>; + +/** + * Grant permissions for a specific cloud platform + */ +export type DeploymentDetailResponsePreparedStackProfileAwGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * AWS-specific platform permission configuration + */ +export type DeploymentDetailResponsePreparedStackProfileAw = { + /** + * Generic binding configuration for permissions + */ + binding: DeploymentDetailResponsePreparedStackProfileAwBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * IAM effect. Defaults to Allow. + */ + effect?: DeploymentDetailResponsePreparedStackProfileEffect | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: DeploymentDetailResponsePreparedStackProfileAwGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Azure-specific binding specification + */ +export type DeploymentDetailResponsePreparedStackProfileAzureResource = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; + +/** + * Azure-specific binding specification + */ +export type DeploymentDetailResponsePreparedStackProfileAzureStack = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type DeploymentDetailResponsePreparedStackProfileAzureBinding = { + /** + * Azure-specific binding specification + */ + resource?: + | DeploymentDetailResponsePreparedStackProfileAzureResource + | undefined; + /** + * Azure-specific binding specification + */ + stack?: DeploymentDetailResponsePreparedStackProfileAzureStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type DeploymentDetailResponsePreparedStackProfileAzureGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * Azure-specific platform permission configuration + */ +export type DeploymentDetailResponsePreparedStackProfileAzure = { + /** + * Generic binding configuration for permissions + */ + binding: DeploymentDetailResponsePreparedStackProfileAzureBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: DeploymentDetailResponsePreparedStackProfileAzureGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * GCP IAM condition + */ +export type DeploymentDetailResponsePreparedStackProfileConditionResource = { + expression: string; + title: string; +}; + +export type DeploymentDetailResponsePreparedStackProfileResourceConditionUnion = + | DeploymentDetailResponsePreparedStackProfileConditionResource + | any; + +/** + * GCP-specific binding specification + */ +export type DeploymentDetailResponsePreparedStackProfileGcpResource = { + condition?: + | DeploymentDetailResponsePreparedStackProfileConditionResource + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + +/** + * GCP IAM condition + */ +export type DeploymentDetailResponsePreparedStackProfileConditionStack = { + expression: string; + title: string; +}; + +export type DeploymentDetailResponsePreparedStackProfileStackConditionUnion = + | DeploymentDetailResponsePreparedStackProfileConditionStack + | any; + +/** + * GCP-specific binding specification + */ +export type DeploymentDetailResponsePreparedStackProfileGcpStack = { + condition?: + | DeploymentDetailResponsePreparedStackProfileConditionStack + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type DeploymentDetailResponsePreparedStackProfileGcpBinding = { + /** + * GCP-specific binding specification + */ + resource?: + | DeploymentDetailResponsePreparedStackProfileGcpResource + | undefined; + /** + * GCP-specific binding specification + */ + stack?: DeploymentDetailResponsePreparedStackProfileGcpStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type DeploymentDetailResponsePreparedStackProfileGcpGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * GCP-specific platform permission configuration + */ +export type DeploymentDetailResponsePreparedStackProfileGcp = { + /** + * Generic binding configuration for permissions + */ + binding: DeploymentDetailResponsePreparedStackProfileGcpBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: DeploymentDetailResponsePreparedStackProfileGcpGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Platform-specific permission configurations + */ +export type DeploymentDetailResponsePreparedStackProfilePlatforms = { + /** + * AWS permission configurations + */ + aws?: + | Array + | null + | undefined; + /** + * Azure permission configurations + */ + azure?: + | Array + | null + | undefined; + /** + * GCP permission configurations + */ + gcp?: + | Array + | null + | undefined; +}; + +/** + * A permission set that can be applied across different cloud platforms + */ +export type DeploymentDetailResponsePreparedStackProfile = { + /** + * Human-readable description of what this permission set allows + */ + description: string; + /** + * Unique identifier for the permission set (e.g., "storage/data-read") + */ + id: string; + /** + * Platform-specific permission configurations + */ + platforms: DeploymentDetailResponsePreparedStackProfilePlatforms; +}; + +/** + * Reference to a permission set - either by name or inline definition + */ +export type DeploymentDetailResponsePreparedStackProfileUnion = + | DeploymentDetailResponsePreparedStackProfile + | string; + +/** + * Combined permissions configuration that contains both profiles and management + */ +export type DeploymentDetailResponsePreparedStackPermissions = { + /** + * Management permissions configuration for stack management access + */ + management?: + | DeploymentDetailResponsePreparedStackManagement1 + | DeploymentDetailResponsePreparedStackManagement2 + | DeploymentDetailResponsePreparedStackManagementEnum + | undefined; + /** + * Permission profiles that define access control for compute services + * + * @remarks + * Key is the profile name, value is the permission configuration + */ + profiles: { + [k: string]: { + [k: string]: Array; + }; + }; +}; + +/** + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + */ +export type DeploymentDetailResponsePreparedStackConfig = { + /** + * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. + */ + id: string; + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + type: string; + additionalProperties?: { [k: string]: any | null } | undefined; +}; + +/** + * Reference to a resource by its stable id and resource type. + */ +export type DeploymentDetailResponsePreparedStackDependency = { + id: string; + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + type: string; +}; + +/** + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ +export const DeploymentDetailResponsePreparedStackLifecycle = { + Frozen: "frozen", + Live: "live", +} as const; +/** + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ +export type DeploymentDetailResponsePreparedStackLifecycle = ClosedEnum< + typeof DeploymentDetailResponsePreparedStackLifecycle +>; + +export type DeploymentDetailResponsePreparedStackResources = { + /** + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + */ + config: DeploymentDetailResponsePreparedStackConfig; + /** + * Additional dependencies for this resource beyond those defined in the resource itself. + * + * @remarks + * The total dependencies are: resource.get_dependencies() + this list + */ + dependencies: Array; + /** + * Id of the boolean stack input that decides whether this resource is + * + * @remarks + * created at all. `None` means always create it. + * + * Set by `.enabled(input)` in the SDK. Setup emitters render the resource + * conditionally on the matching template variable, so a deployer who says no + * never gets the resource, its outputs, or anything derived from it. + */ + enabledWhen?: string | null | undefined; + /** + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ + lifecycle: DeploymentDetailResponsePreparedStackLifecycle; + /** + * Enable remote bindings for this resource (BYOB use case). + * + * @remarks + * When true, binding params are synced to StackState's `remote_binding_params`. + * Default: false (prevents sensitive data in synced state). + */ + remoteAccess?: boolean | undefined; +}; + +/** + * Represents the target cloud platform. + */ +export const DeploymentDetailResponsePreparedStackSupportedPlatform = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", +} as const; +/** + * Represents the target cloud platform. + */ +export type DeploymentDetailResponsePreparedStackSupportedPlatform = ClosedEnum< + typeof DeploymentDetailResponsePreparedStackSupportedPlatform +>; + +/** + * A bag of resources, unaware of any cloud. + */ +export type DeploymentDetailResponsePreparedStack = { + /** + * Unique identifier for the stack + */ + id: string; + /** + * Input definitions required before setup or deployment can proceed. + */ + inputs?: Array | undefined; + /** + * Combined permissions configuration that contains both profiles and management + */ + permissions?: DeploymentDetailResponsePreparedStackPermissions | undefined; + /** + * Map of resource IDs to their configurations and lifecycle settings + */ + resources: { [k: string]: DeploymentDetailResponsePreparedStackResources }; + /** + * Which platforms this stack supports. When None, all platforms are supported. + */ + supportedPlatforms?: + | Array + | null + | undefined; +}; + +export type DeploymentDetailResponsePreparedStackUnion = + | DeploymentDetailResponsePreparedStack + | any; + +/** + * One-shot authority for a setup re-import to replace setup-owned resources. + */ +export type DeploymentDetailResponseSetupUpdateAuthorization = { + /** + * Frozen resource projection from the last successful deployment. + */ + baselineFrozenDigest: string; + /** + * Unique revision used by persistence layers for compare-and-swap updates. + */ + nonce: string; + /** + * Release whose stack was prepared by setup. + */ + releaseId: string; + /** + * Exact setup artifact revision that authored this authority. + */ + setupFingerprint: string; + /** + * Setup fingerprint contract version. + */ + setupFingerprintVersion: number; + /** + * Stable setup target recorded on the imported deployment. + */ + setupTarget: string; + /** + * Frozen resource projection prepared by the setup re-import. + */ + targetFrozenDigest: string; +}; + +export type DeploymentDetailResponseSetupUpdateAuthorizationUnion = + | DeploymentDetailResponseSetupUpdateAuthorization + | any; + +/** + * Runtime metadata for deployment state persistence + */ +export type DeploymentDetailResponseRuntimeMetadata = { + /** + * Actor that owns structural work during the initial setup phase. + */ + initialSetupAuthority?: + | DeploymentDetailResponseInitialSetupAuthority + | undefined; + /** + * Hash of the environment variables snapshot that was last synced to the vault + * + * @remarks + * Used to avoid redundant sync operations during incremental deployment + */ + lastSyncedEnvVarsHash?: string | null | undefined; + /** + * Exact vault keys owned by the deployment secret synchronizer. This + * + * @remarks + * inventory lets a later snapshot delete removed keys without listing or + * touching unrelated values in the same vault. + */ + lastSyncedSecretNames?: Array | undefined; + pendingPreparedStack?: + | DeploymentDetailResponsePendingPreparedStack + | any + | null + | undefined; + /** + * Canonical resolved answers for inputs that gate Frozen resources, + * + * @remarks + * keyed by input id, recorded when the deployment is created or its + * setup import registers. + * + * A frozen gate's answer is fixed for the deployment's lifetime: the + * update path refuses input values that conflict with these, and a Live + * resource sharing such an input resolves the persisted answer forever. + */ + persistedGateAnswers?: { [k: string]: boolean } | undefined; + preparedStack?: + | DeploymentDetailResponsePreparedStack + | any + | null + | undefined; + /** + * Whether cross-account registry access has been successfully granted. + * + * @remarks + * Set to true after the manager successfully sets the ECR/GAR repo policy + * for this deployment's target account. Prevents redundant API calls on + * every reconcile tick. + */ + registryAccessGranted?: boolean | undefined; + setupUpdateAuthorization?: + | DeploymentDetailResponseSetupUpdateAuthorization + | any + | null + | undefined; +}; + +/** + * Setup source that imported this deployment + */ +export const DeploymentDetailResponseImportSource = { + Cloudformation: "cloudformation", + Terraform: "terraform", + Helm: "helm", +} as const; +/** + * Setup source that imported this deployment + */ +export type DeploymentDetailResponseImportSource = ClosedEnum< + typeof DeploymentDetailResponseImportSource +>; + +/** + * Setup method that created the deployment record and owns setup-time resources. + */ +export const DeploymentDetailResponseSetupMethod = { + Cloudformation: "cloudformation", + GoogleOauth: "google-oauth", + Terraform: "terraform", + Helm: "helm", + Cli: "cli", + Manual: "manual", +} as const; +/** + * Setup method that created the deployment record and owns setup-time resources. + */ +export type DeploymentDetailResponseSetupMethod = ClosedEnum< + typeof DeploymentDetailResponseSetupMethod +>; + +/** + * Latest error information if the deployment is in a failed state + */ +export type DeploymentDetailResponseError = { + /** + * A unique identifier for the type of error. + * + * @remarks + * + * This should be a short, machine-readable string that can be used + * by clients to programmatically handle different error types. + * Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" + */ + code: string; + /** + * Additional diagnostic information about the error context. + * + * @remarks + * + * This optional field can contain structured data providing more details + * about the error, such as validation errors, request parameters that + * caused the issue, or other relevant context information. + */ + context?: any | null | undefined; + /** + * Optional human-facing remediation hint. + */ + hint?: string | null | undefined; + /** + * HTTP status code for this error. + * + * @remarks + * + * Used when converting the error to an HTTP response. If None, falls back to + * the error type's default status code or 500. + */ + httpStatusCode?: number | null | undefined; + /** + * Indicates if this is an internal error that should not be exposed to users. + * + * @remarks + * + * When `true`, this error contains sensitive information or implementation + * details that should not be shown to end-users. Such errors should be + * logged for debugging but replaced with generic error messages in responses. + */ + internal: boolean; + /** + * Human-readable error message. + * + * @remarks + * + * This message should be clear and actionable for developers or end-users, + * providing context about what went wrong and potentially how to fix it. + */ + message: string; + /** + * Indicates whether the operation that caused the error should be retried. + * + * @remarks + * + * When `true`, the error is transient and the operation might succeed + * if attempted again. When `false`, retrying the same operation is + * unlikely to succeed without changes. + */ + retryable: boolean; + /** + * The underlying error that caused this error, creating an error chain. + * + * @remarks + * + * This allows for proper error propagation and debugging by maintaining + * the full context of how an error occurred through multiple layers + * of an application. + */ + source?: any | null | undefined; +}; + +/** + * Snapshot of target environment variables for the deployment + */ +export type DeploymentDetailResponseTargetEnvironmentVariables = { + /** + * Environment variables in the snapshot + */ + variables: Array; + /** + * Deterministic hash of all variables for change detection + */ + hash: string; + /** + * ISO 8601 timestamp when snapshot was created + */ + createdAt: Date; +}; + +/** + * Snapshot of current environment variables for the deployment + */ +export type DeploymentDetailResponseCurrentEnvironmentVariables = { + /** + * Environment variables in the snapshot + */ + variables: Array; + /** + * Deterministic hash of all variables for change detection + */ + hash: string; + /** + * ISO 8601 timestamp when snapshot was created + */ + createdAt: Date; +}; + +export type DeploymentDetailResponse = { + /** + * Unique identifier for the deployment. + */ + id: string; + /** + * Deployment name. + */ + name: string; + /** + * Public subdomain for auto-generated domains + */ + publicSubdomain?: string | null | undefined; + /** + * Deployment status in the deployment lifecycle. + * + * @remarks + * + * For observe-only deployments with no release or stack state, `Running` + * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; + * resource health comes from inventory and resource heartbeat data. + */ + status: DeploymentDetailResponseStatus; + /** + * Unique identifier for the project. + */ + projectId: string; + /** + * Target platform for the deployment + */ + platform: DeploymentDetailResponsePlatform; + /** + * Underlying cloud platform for Kubernetes deployments. + */ + basePlatform?: DeploymentDetailResponseBasePlatform | null | undefined; + /** + * Cloud region or location for the deployment. + */ + region?: string | null | undefined; + /** + * DeploymentState protocol version owned by the runtime/manager + */ + deploymentProtocolVersion: number; + /** + * ID of deployment group this deployment belongs to + */ + deploymentGroupId: string; + /** + * Cloud environment information + */ + environmentInfo?: + | DeploymentDetailResponseEnvironmentInfoGcp + | DeploymentDetailResponseEnvironmentInfoAzure + | DeploymentDetailResponseEnvironmentInfoLocal + | DeploymentDetailResponseEnvironmentInfoAws + | DeploymentDetailResponseEnvironmentInfoTest + | any + | null + | undefined; + /** + * User-provided configuration (network, deployment model, approvals) + */ + stackSettings: DeploymentDetailResponseStackSettings; + /** + * State of infrastructure components managed by this deployment + */ + stackState?: DeploymentDetailResponseStackState | null | undefined; + /** + * Runtime metadata for deployment state persistence + */ + runtimeMetadata?: DeploymentDetailResponseRuntimeMetadata | null | undefined; + /** + * ID of the currently deployed release (actual state) + */ + currentReleaseId?: string | null | undefined; + /** + * ID of the desired release for deployment/update (desired state) + */ + desiredReleaseId?: string | null | undefined; + /** + * ID of the pinned release + */ + pinnedReleaseId?: string | null | undefined; + releaseChannel: string; + /** + * Setup source that imported this deployment + */ + importSource?: DeploymentDetailResponseImportSource | null | undefined; + /** + * Setup method that created the deployment record and owns setup-time resources. + */ + setupMethod?: DeploymentDetailResponseSetupMethod | null | undefined; + /** + * Setup method metadata needed to guide privileged teardown. + */ + setupMetadata?: { [k: string]: any | null } | null | undefined; + /** + * Imported setup target for compatibility checks + */ + setupTarget?: string | null | undefined; + /** + * Imported setup compatibility fingerprint + */ + setupFingerprint?: string | null | undefined; + /** + * Imported setup fingerprint algorithm version + */ + setupFingerprintVersion?: number | null | undefined; + /** + * Display-only scope reported by the Operator manifest + */ + operatorScope?: string | null | undefined; + /** + * Display-only permission tier reported by the Operator manifest + */ + operatorPermission?: string | null | undefined; + /** + * Version reported by the Operator + */ + operatorVersion?: string | null | undefined; + /** + * Capability state reported by the Operator + */ + capabilities?: Array | null | undefined; + /** + * Whether a retry has been requested for a failed deployment + */ + retryRequested: boolean; + /** + * Timestamp of the last received heartbeat from the deployment + */ + lastHeartbeatAt?: Date | null | undefined; + /** + * Latest error information if the deployment is in a failed state + */ + error?: DeploymentDetailResponseError | null | undefined; + /** + * Configuration of environment variables for the deployment + */ + environmentVariables?: Array | null | undefined; + /** + * Snapshot of target environment variables for the deployment + */ + targetEnvironmentVariables?: + | DeploymentDetailResponseTargetEnvironmentVariables + | null + | undefined; + /** + * Snapshot of current environment variables for the deployment + */ + currentEnvironmentVariables?: + | DeploymentDetailResponseCurrentEnvironmentVariables + | null + | undefined; + createdAt: Date; + updatedAt: Date; + managerId: string; + /** + * Unique identifier for the workspace. + */ + workspaceId: string; + release?: DeploymentReleaseInfo | null | undefined; + deploymentGroup?: DeploymentGroupInfo | undefined; + project?: DeploymentProjectInfo | undefined; +}; + +/** @internal */ +export const DeploymentDetailResponseStatus$inboundSchema: z.ZodEnum< + typeof DeploymentDetailResponseStatus +> = z.enum(DeploymentDetailResponseStatus); + +/** @internal */ +export const DeploymentDetailResponsePlatform$inboundSchema: z.ZodEnum< + typeof DeploymentDetailResponsePlatform +> = z.enum(DeploymentDetailResponsePlatform); + +/** @internal */ +export const DeploymentDetailResponseBasePlatform$inboundSchema: z.ZodEnum< + typeof DeploymentDetailResponseBasePlatform +> = z.enum(DeploymentDetailResponseBasePlatform); + +/** @internal */ +export const DeploymentDetailResponsePlatformTest$inboundSchema: z.ZodEnum< + typeof DeploymentDetailResponsePlatformTest +> = z.enum(DeploymentDetailResponsePlatformTest); + +/** @internal */ +export const DeploymentDetailResponseEnvironmentInfoTest$inboundSchema: + z.ZodType = z.object({ + testId: z.string(), + platform: DeploymentDetailResponsePlatformTest$inboundSchema, + }); + +export function deploymentDetailResponseEnvironmentInfoTestFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseEnvironmentInfoTest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseEnvironmentInfoTest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseEnvironmentInfoTest' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponsePlatformLocal$inboundSchema: z.ZodEnum< + typeof DeploymentDetailResponsePlatformLocal +> = z.enum(DeploymentDetailResponsePlatformLocal); + +/** @internal */ +export const DeploymentDetailResponseEnvironmentInfoLocal$inboundSchema: + z.ZodType = z.object({ + arch: z.string(), + hostname: z.string(), + os: z.string(), + platform: DeploymentDetailResponsePlatformLocal$inboundSchema, + }); + +export function deploymentDetailResponseEnvironmentInfoLocalFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseEnvironmentInfoLocal, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseEnvironmentInfoLocal$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseEnvironmentInfoLocal' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponsePlatformAzure$inboundSchema: z.ZodEnum< + typeof DeploymentDetailResponsePlatformAzure +> = z.enum(DeploymentDetailResponsePlatformAzure); + +/** @internal */ +export const DeploymentDetailResponseEnvironmentInfoAzure$inboundSchema: + z.ZodType = z.object({ + location: z.string(), + subscriptionId: z.string(), + tenantId: z.string(), + platform: DeploymentDetailResponsePlatformAzure$inboundSchema, + }); + +export function deploymentDetailResponseEnvironmentInfoAzureFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseEnvironmentInfoAzure, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseEnvironmentInfoAzure$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseEnvironmentInfoAzure' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponsePlatformGcp$inboundSchema: z.ZodEnum< + typeof DeploymentDetailResponsePlatformGcp +> = z.enum(DeploymentDetailResponsePlatformGcp); + +/** @internal */ +export const DeploymentDetailResponseEnvironmentInfoGcp$inboundSchema: + z.ZodType = z.object({ + projectId: z.string(), + projectNumber: z.string(), + region: z.string(), + platform: DeploymentDetailResponsePlatformGcp$inboundSchema, + }); + +export function deploymentDetailResponseEnvironmentInfoGcpFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseEnvironmentInfoGcp, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseEnvironmentInfoGcp$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseEnvironmentInfoGcp' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponsePlatformAws$inboundSchema: z.ZodEnum< + typeof DeploymentDetailResponsePlatformAws +> = z.enum(DeploymentDetailResponsePlatformAws); + +/** @internal */ +export const DeploymentDetailResponseEnvironmentInfoAws$inboundSchema: + z.ZodType = z.object({ + accountId: z.string(), + region: z.string(), + platform: DeploymentDetailResponsePlatformAws$inboundSchema, + }); + +export function deploymentDetailResponseEnvironmentInfoAwsFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseEnvironmentInfoAws, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseEnvironmentInfoAws$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseEnvironmentInfoAws' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseEnvironmentInfoUnion$inboundSchema: + z.ZodType = z.union([ + z.lazy(() => DeploymentDetailResponseEnvironmentInfoGcp$inboundSchema), + z.lazy(() => DeploymentDetailResponseEnvironmentInfoAzure$inboundSchema), + z.lazy(() => DeploymentDetailResponseEnvironmentInfoLocal$inboundSchema), + z.lazy(() => DeploymentDetailResponseEnvironmentInfoAws$inboundSchema), + z.lazy(() => DeploymentDetailResponseEnvironmentInfoTest$inboundSchema), + z.any(), + ]); + +export function deploymentDetailResponseEnvironmentInfoUnionFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseEnvironmentInfoUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseEnvironmentInfoUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseEnvironmentInfoUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseFailureDomains2$inboundSchema: z.ZodType< + DeploymentDetailResponseFailureDomains2, + unknown +> = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), +}); + +export function deploymentDetailResponseFailureDomains2FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseFailureDomains2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseFailureDomains2$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseFailureDomains2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseFailureDomainsUnion2$inboundSchema: + z.ZodType = z.union([ + z.lazy(() => DeploymentDetailResponseFailureDomains2$inboundSchema), + z.any(), + ]); + +export function deploymentDetailResponseFailureDomainsUnion2FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseFailureDomainsUnion2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseFailureDomainsUnion2$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseFailureDomainsUnion2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponsePoolsAutoscale$inboundSchema: z.ZodType< + DeploymentDetailResponsePoolsAutoscale, + unknown +> = z.object({ + failure_domains: z.nullable( + z.union([ + z.lazy(() => DeploymentDetailResponseFailureDomains2$inboundSchema), + z.any(), + ]), + ).optional(), + machine: z.nullable(z.string()).optional(), + max: z.int(), + min: z.int(), + mode: z.literal("autoscale"), +}).transform((v) => { + return remap$(v, { + "failure_domains": "failureDomains", + }); +}); + +export function deploymentDetailResponsePoolsAutoscaleFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponsePoolsAutoscale$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePoolsAutoscale' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseFailureDomains1$inboundSchema: z.ZodType< + DeploymentDetailResponseFailureDomains1, + unknown +> = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), +}); + +export function deploymentDetailResponseFailureDomains1FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseFailureDomains1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseFailureDomains1$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseFailureDomains1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseFailureDomainsUnion1$inboundSchema: + z.ZodType = z.union([ + z.lazy(() => DeploymentDetailResponseFailureDomains1$inboundSchema), + z.any(), + ]); + +export function deploymentDetailResponseFailureDomainsUnion1FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseFailureDomainsUnion1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseFailureDomainsUnion1$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseFailureDomainsUnion1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponsePoolsFixed$inboundSchema: z.ZodType< + DeploymentDetailResponsePoolsFixed, + unknown +> = z.object({ + failure_domains: z.nullable( + z.union([ + z.lazy(() => DeploymentDetailResponseFailureDomains1$inboundSchema), + z.any(), + ]), + ).optional(), + machine: z.nullable(z.string()).optional(), + machines: z.int(), + mode: z.literal("fixed"), +}).transform((v) => { + return remap$(v, { + "failure_domains": "failureDomains", + }); +}); + +export function deploymentDetailResponsePoolsFixedFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponsePoolsFixed$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePoolsFixed' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponsePoolsUnion$inboundSchema: z.ZodType< + DeploymentDetailResponsePoolsUnion, + unknown +> = z.union([ + z.lazy(() => DeploymentDetailResponsePoolsFixed$inboundSchema), + z.lazy(() => DeploymentDetailResponsePoolsAutoscale$inboundSchema), +]); + +export function deploymentDetailResponsePoolsUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponsePoolsUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePoolsUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseCompute$inboundSchema: z.ZodType< + DeploymentDetailResponseCompute, + unknown +> = z.object({ + pools: z.record( + z.string(), + z.union([ + z.lazy(() => DeploymentDetailResponsePoolsFixed$inboundSchema), + z.lazy(() => DeploymentDetailResponsePoolsAutoscale$inboundSchema), + ]), + ).optional(), +}); + +export function deploymentDetailResponseComputeFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentDetailResponseCompute$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseCompute' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseComputeUnion$inboundSchema: z.ZodType< + DeploymentDetailResponseComputeUnion, + unknown +> = z.union([ + z.lazy(() => DeploymentDetailResponseCompute$inboundSchema), + z.any(), +]); + +export function deploymentDetailResponseComputeUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseComputeUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseComputeUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseDeploymentModel$inboundSchema: z.ZodEnum< + typeof DeploymentDetailResponseDeploymentModel +> = z.enum(DeploymentDetailResponseDeploymentModel); + +/** @internal */ +export const DeploymentDetailResponseAws$inboundSchema: z.ZodType< + DeploymentDetailResponseAws, + unknown +> = z.object({ + certificateArn: z.string(), +}); + +export function deploymentDetailResponseAwsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentDetailResponseAws$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseAws' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseAwsUnion$inboundSchema: z.ZodType< + DeploymentDetailResponseAwsUnion, + unknown +> = z.union([z.lazy(() => DeploymentDetailResponseAws$inboundSchema), z.any()]); + +export function deploymentDetailResponseAwsUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentDetailResponseAwsUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseAwsUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseAzureStackSettings$inboundSchema: + z.ZodType = z.object({ + keyVaultCertificateId: z.string(), + keyVaultResourceId: z.nullable(z.string()).optional(), + }); + +export function deploymentDetailResponseAzureStackSettingsFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseAzureStackSettings, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseAzureStackSettings$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseAzureStackSettings' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseAzureUnion$inboundSchema: z.ZodType< + DeploymentDetailResponseAzureUnion, + unknown +> = z.union([ + z.lazy(() => DeploymentDetailResponseAzureStackSettings$inboundSchema), + z.any(), +]); + +export function deploymentDetailResponseAzureUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseAzureUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseAzureUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseGcpStackSettings$inboundSchema: z.ZodType< + DeploymentDetailResponseGcpStackSettings, + unknown +> = z.object({ + certificateName: z.string(), +}); + +export function deploymentDetailResponseGcpStackSettingsFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseGcpStackSettings, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseGcpStackSettings$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseGcpStackSettings' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseGcpUnion$inboundSchema: z.ZodType< + DeploymentDetailResponseGcpUnion, + unknown +> = z.union([ + z.lazy(() => DeploymentDetailResponseGcpStackSettings$inboundSchema), + z.any(), +]); + +export function deploymentDetailResponseGcpUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentDetailResponseGcpUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseGcpUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseTlsSecretRef$inboundSchema: z.ZodType< + DeploymentDetailResponseTlsSecretRef, + unknown +> = z.object({ + namespace: z.nullable(z.string()).optional(), + secretName: z.string(), +}); + +export function deploymentDetailResponseTlsSecretRefFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseTlsSecretRef$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseTlsSecretRef' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseDomainsKubernetes$inboundSchema: z.ZodType< + DeploymentDetailResponseDomainsKubernetes, + unknown +> = z.object({ + tlsSecretRef: z.lazy(() => + DeploymentDetailResponseTlsSecretRef$inboundSchema + ), +}); + +export function deploymentDetailResponseDomainsKubernetesFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseDomainsKubernetes, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseDomainsKubernetes$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseDomainsKubernetes' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseDomainsKubernetesUnion$inboundSchema: + z.ZodType = z.union([ + z.lazy(() => DeploymentDetailResponseDomainsKubernetes$inboundSchema), + z.any(), + ]); + +export function deploymentDetailResponseDomainsKubernetesUnionFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseDomainsKubernetesUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseDomainsKubernetesUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseDomainsKubernetesUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseDomainsCertificate$inboundSchema: + z.ZodType = z.object({ + aws: z.nullable( + z.union([ + z.lazy(() => DeploymentDetailResponseAws$inboundSchema), + z.any(), + ]), + ).optional(), + azure: z.nullable( + z.union([ + z.lazy(() => DeploymentDetailResponseAzureStackSettings$inboundSchema), + z.any(), + ]), + ).optional(), + gcp: z.nullable( + z.union([ + z.lazy(() => DeploymentDetailResponseGcpStackSettings$inboundSchema), + z.any(), + ]), + ).optional(), + kubernetes: z.nullable( + z.union([ + z.lazy(() => DeploymentDetailResponseDomainsKubernetes$inboundSchema), + z.any(), + ]), + ).optional(), + }); + +export function deploymentDetailResponseDomainsCertificateFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseDomainsCertificate, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseDomainsCertificate$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseDomainsCertificate' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseCustomDomains$inboundSchema: z.ZodType< + DeploymentDetailResponseCustomDomains, + unknown +> = z.object({ + certificate: z.lazy(() => + DeploymentDetailResponseDomainsCertificate$inboundSchema + ), + domain: z.string(), +}); + +export function deploymentDetailResponseCustomDomainsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseCustomDomains$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseCustomDomains' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseModeLoadBalancer$inboundSchema: z.ZodEnum< + typeof DeploymentDetailResponseModeLoadBalancer +> = z.enum(DeploymentDetailResponseModeLoadBalancer); + +/** @internal */ +export const DeploymentDetailResponsePublicEndpointTargetLoadBalancer$inboundSchema: + z.ZodType = + z.object({ + cnameTarget: z.string(), + mode: DeploymentDetailResponseModeLoadBalancer$inboundSchema, + }); + +export function deploymentDetailResponsePublicEndpointTargetLoadBalancerFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponsePublicEndpointTargetLoadBalancer, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponsePublicEndpointTargetLoadBalancer$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePublicEndpointTargetLoadBalancer' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseModeMachineAddresses$inboundSchema: + z.ZodEnum = z.enum( + DeploymentDetailResponseModeMachineAddresses, + ); + +/** @internal */ +export const DeploymentDetailResponsePublicEndpointTargetMachineAddresses$inboundSchema: + z.ZodType< + DeploymentDetailResponsePublicEndpointTargetMachineAddresses, + unknown + > = z.object({ + mode: DeploymentDetailResponseModeMachineAddresses$inboundSchema, + }); + +export function deploymentDetailResponsePublicEndpointTargetMachineAddressesFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponsePublicEndpointTargetMachineAddresses, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponsePublicEndpointTargetMachineAddresses$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePublicEndpointTargetMachineAddresses' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponsePublicEndpointTargetUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => + DeploymentDetailResponsePublicEndpointTargetLoadBalancer$inboundSchema + ), + z.lazy(() => + DeploymentDetailResponsePublicEndpointTargetMachineAddresses$inboundSchema + ), + z.any(), + ]); + +export function deploymentDetailResponsePublicEndpointTargetUnionFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponsePublicEndpointTargetUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponsePublicEndpointTargetUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePublicEndpointTargetUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseDomains$inboundSchema: z.ZodType< + DeploymentDetailResponseDomains, + unknown +> = z.object({ + customDomains: z.nullable( + z.record( + z.string(), + z.lazy(() => DeploymentDetailResponseCustomDomains$inboundSchema), + ), + ).optional(), + publicEndpointTarget: z.nullable( + z.union([ + z.lazy(() => + DeploymentDetailResponsePublicEndpointTargetLoadBalancer$inboundSchema + ), + z.lazy(() => + DeploymentDetailResponsePublicEndpointTargetMachineAddresses$inboundSchema + ), + z.any(), + ]), + ).optional(), +}); + +export function deploymentDetailResponseDomainsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentDetailResponseDomains$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseDomains' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseDomainsUnion$inboundSchema: z.ZodType< + DeploymentDetailResponseDomainsUnion, + unknown +> = z.union([ + z.lazy(() => DeploymentDetailResponseDomains$inboundSchema), + z.any(), +]); + +export function deploymentDetailResponseDomainsUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseDomainsUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseDomainsUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseExternalBindings$inboundSchema: z.ZodType< + DeploymentDetailResponseExternalBindings, + unknown +> = z.object({}); + +export function deploymentDetailResponseExternalBindingsFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseExternalBindings, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseExternalBindings$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseExternalBindings' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseHeartbeats$inboundSchema: z.ZodEnum< + typeof DeploymentDetailResponseHeartbeats +> = z.enum(DeploymentDetailResponseHeartbeats); + +/** @internal */ +export const DeploymentDetailResponseCloud$inboundSchema: z.ZodType< + DeploymentDetailResponseCloud, + unknown +> = z.object({ + accountId: z.nullable(z.string()).optional(), + clusterId: z.nullable(z.string()).optional(), + clusterName: z.nullable(z.string()).optional(), + projectId: z.nullable(z.string()).optional(), + region: z.nullable(z.string()).optional(), + resourceGroup: z.nullable(z.string()).optional(), + subscriptionId: z.nullable(z.string()).optional(), +}); + +export function deploymentDetailResponseCloudFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentDetailResponseCloud$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseCloud' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseCloudUnion$inboundSchema: z.ZodType< + DeploymentDetailResponseCloudUnion, + unknown +> = z.union([ + z.lazy(() => DeploymentDetailResponseCloud$inboundSchema), + z.any(), +]); + +export function deploymentDetailResponseCloudUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseCloudUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseCloudUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseOwnership$inboundSchema: z.ZodEnum< + typeof DeploymentDetailResponseOwnership +> = z.enum(DeploymentDetailResponseOwnership); + +/** @internal */ +export const DeploymentDetailResponseCluster$inboundSchema: z.ZodType< + DeploymentDetailResponseCluster, + unknown +> = z.object({ + cloud: z.nullable( + z.union([ + z.lazy(() => DeploymentDetailResponseCloud$inboundSchema), + z.any(), + ]), + ).optional(), + namespace: z.nullable(z.string()).optional(), + ownership: DeploymentDetailResponseOwnership$inboundSchema, +}); + +export function deploymentDetailResponseClusterFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentDetailResponseCluster$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseCluster' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseClusterUnion$inboundSchema: z.ZodType< + DeploymentDetailResponseClusterUnion, + unknown +> = z.union([ + z.lazy(() => DeploymentDetailResponseCluster$inboundSchema), + z.any(), +]); + +export function deploymentDetailResponseClusterUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseClusterUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseClusterUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseCertificateNone2$inboundSchema: z.ZodType< + DeploymentDetailResponseCertificateNone2, + unknown +> = z.object({ + mode: z.literal("none"), +}); + +export function deploymentDetailResponseCertificateNone2FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseCertificateNone2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseCertificateNone2$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseCertificateNone2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseCertificateManagedTLSSecret2$inboundSchema: + z.ZodType = z + .object({ + mode: z.literal("managedTlsSecret"), + secretNameTemplate: z.string(), + }); + +export function deploymentDetailResponseCertificateManagedTLSSecret2FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseCertificateManagedTLSSecret2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseCertificateManagedTLSSecret2$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseCertificateManagedTLSSecret2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseCertificateAwsAcmArn2$inboundSchema: + z.ZodType = z.object({ + certificateArn: z.string(), + mode: z.literal("awsAcmArn"), + }); + +export function deploymentDetailResponseCertificateAwsAcmArn2FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseCertificateAwsAcmArn2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseCertificateAwsAcmArn2$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseCertificateAwsAcmArn2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseCertificateManagedAcmImport2$inboundSchema: + z.ZodType = z + .object({ + mode: z.literal("managedAcmImport"), + region: z.nullable(z.string()).optional(), + tags: z.record(z.string(), z.string()).optional(), + }); + +export function deploymentDetailResponseCertificateManagedAcmImport2FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseCertificateManagedAcmImport2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseCertificateManagedAcmImport2$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseCertificateManagedAcmImport2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseCertificateTLSSecretRef2$inboundSchema: + z.ZodType = z + .object({ + namespace: z.nullable(z.string()).optional(), + secretName: z.string(), + mode: z.literal("tlsSecretRef"), + }); + +export function deploymentDetailResponseCertificateTLSSecretRef2FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseCertificateTLSSecretRef2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseCertificateTLSSecretRef2$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseCertificateTLSSecretRef2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseCertificateUnion2$inboundSchema: z.ZodType< + DeploymentDetailResponseCertificateUnion2, + unknown +> = z.union([ + z.lazy(() => DeploymentDetailResponseCertificateTLSSecretRef2$inboundSchema), + z.lazy(() => + DeploymentDetailResponseCertificateManagedAcmImport2$inboundSchema + ), + z.lazy(() => DeploymentDetailResponseCertificateAwsAcmArn2$inboundSchema), + z.lazy(() => + DeploymentDetailResponseCertificateManagedTLSSecret2$inboundSchema + ), + z.lazy(() => DeploymentDetailResponseCertificateNone2$inboundSchema), +]); + +export function deploymentDetailResponseCertificateUnion2FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseCertificateUnion2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseCertificateUnion2$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseCertificateUnion2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseModeCustom$inboundSchema: z.ZodEnum< + typeof DeploymentDetailResponseModeCustom +> = z.enum(DeploymentDetailResponseModeCustom); + +/** @internal */ +export const DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum4$inboundSchema: + z.ZodEnum< + typeof DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum4 + > = z.enum( + DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum4, + ); + +/** @internal */ +export const DeploymentDetailResponseProviderAzureApplicationGatewayForContainers4$inboundSchema: + z.ZodType< + DeploymentDetailResponseProviderAzureApplicationGatewayForContainers4, + unknown + > = z.object({ + albName: z.nullable(z.string()).optional(), + albNamespace: z.nullable(z.string()).optional(), + frontend: z.string(), + provider: + DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum4$inboundSchema, + }); + +export function deploymentDetailResponseProviderAzureApplicationGatewayForContainers4FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseProviderAzureApplicationGatewayForContainers4, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseProviderAzureApplicationGatewayForContainers4$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseProviderAzureApplicationGatewayForContainers4' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseProviderGkeGatewayEnum4$inboundSchema: + z.ZodEnum = z.enum( + DeploymentDetailResponseProviderGkeGatewayEnum4, + ); + +/** @internal */ +export const DeploymentDetailResponseProviderGkeGateway4$inboundSchema: + z.ZodType = z.object({ + provider: DeploymentDetailResponseProviderGkeGatewayEnum4$inboundSchema, + staticAddressName: z.nullable(z.string()).optional(), + }); + +export function deploymentDetailResponseProviderGkeGateway4FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseProviderGkeGateway4, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseProviderGkeGateway4$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseProviderGkeGateway4' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseProviderAwsAlbEnum4$inboundSchema: + z.ZodEnum = z.enum( + DeploymentDetailResponseProviderAwsAlbEnum4, + ); + +/** @internal */ +export const DeploymentDetailResponseProviderAwsAlb4$inboundSchema: z.ZodType< + DeploymentDetailResponseProviderAwsAlb4, + unknown +> = z.object({ + ipAddressType: z.nullable(z.string()).optional(), + provider: DeploymentDetailResponseProviderAwsAlbEnum4$inboundSchema, + scheme: z.string(), + subnetIds: z.array(z.string()).optional(), + targetType: z.string(), +}); + +export function deploymentDetailResponseProviderAwsAlb4FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseProviderAwsAlb4, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseProviderAwsAlb4$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseProviderAwsAlb4' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseProviderUnion4$inboundSchema: z.ZodType< + DeploymentDetailResponseProviderUnion4, + unknown +> = z.union([ + z.lazy(() => DeploymentDetailResponseProviderAwsAlb4$inboundSchema), + z.lazy(() => + DeploymentDetailResponseProviderAzureApplicationGatewayForContainers4$inboundSchema + ), + z.lazy(() => DeploymentDetailResponseProviderGkeGateway4$inboundSchema), + z.any(), +]); + +export function deploymentDetailResponseProviderUnion4FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseProviderUnion4$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseProviderUnion4' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseRouteGateway2$inboundSchema: z.ZodType< + DeploymentDetailResponseRouteGateway2, + unknown +> = z.object({ + annotations: z.record(z.string(), z.string()).optional(), + controller: z.nullable(z.string()).optional(), + gatewayClassName: z.string(), + labels: z.record(z.string(), z.string()).optional(), + listenerPort: z.int(), + provider: z.nullable( + z.union([ + z.lazy(() => DeploymentDetailResponseProviderAwsAlb4$inboundSchema), + z.lazy(() => + DeploymentDetailResponseProviderAzureApplicationGatewayForContainers4$inboundSchema + ), + z.lazy(() => DeploymentDetailResponseProviderGkeGateway4$inboundSchema), + z.any(), + ]), + ).optional(), + routeApi: z.literal("gateway"), +}); + +export function deploymentDetailResponseRouteGateway2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseRouteGateway2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseRouteGateway2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum3$inboundSchema: + z.ZodEnum< + typeof DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum3 + > = z.enum( + DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum3, + ); + +/** @internal */ +export const DeploymentDetailResponseProviderAzureApplicationGatewayForContainers3$inboundSchema: + z.ZodType< + DeploymentDetailResponseProviderAzureApplicationGatewayForContainers3, + unknown + > = z.object({ + albName: z.nullable(z.string()).optional(), + albNamespace: z.nullable(z.string()).optional(), + frontend: z.string(), + provider: + DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum3$inboundSchema, + }); + +export function deploymentDetailResponseProviderAzureApplicationGatewayForContainers3FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseProviderAzureApplicationGatewayForContainers3, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseProviderAzureApplicationGatewayForContainers3$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseProviderAzureApplicationGatewayForContainers3' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseProviderGkeGatewayEnum3$inboundSchema: + z.ZodEnum = z.enum( + DeploymentDetailResponseProviderGkeGatewayEnum3, + ); + +/** @internal */ +export const DeploymentDetailResponseProviderGkeGateway3$inboundSchema: + z.ZodType = z.object({ + provider: DeploymentDetailResponseProviderGkeGatewayEnum3$inboundSchema, + staticAddressName: z.nullable(z.string()).optional(), + }); + +export function deploymentDetailResponseProviderGkeGateway3FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseProviderGkeGateway3, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseProviderGkeGateway3$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseProviderGkeGateway3' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseProviderAwsAlbEnum3$inboundSchema: + z.ZodEnum = z.enum( + DeploymentDetailResponseProviderAwsAlbEnum3, + ); + +/** @internal */ +export const DeploymentDetailResponseProviderAwsAlb3$inboundSchema: z.ZodType< + DeploymentDetailResponseProviderAwsAlb3, + unknown +> = z.object({ + ipAddressType: z.nullable(z.string()).optional(), + provider: DeploymentDetailResponseProviderAwsAlbEnum3$inboundSchema, + scheme: z.string(), + subnetIds: z.array(z.string()).optional(), + targetType: z.string(), +}); + +export function deploymentDetailResponseProviderAwsAlb3FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseProviderAwsAlb3, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseProviderAwsAlb3$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseProviderAwsAlb3' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseProviderUnion3$inboundSchema: z.ZodType< + DeploymentDetailResponseProviderUnion3, + unknown +> = z.union([ + z.lazy(() => DeploymentDetailResponseProviderAwsAlb3$inboundSchema), + z.lazy(() => + DeploymentDetailResponseProviderAzureApplicationGatewayForContainers3$inboundSchema + ), + z.lazy(() => DeploymentDetailResponseProviderGkeGateway3$inboundSchema), + z.any(), +]); + +export function deploymentDetailResponseProviderUnion3FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseProviderUnion3$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseProviderUnion3' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseRouteIngress2$inboundSchema: z.ZodType< + DeploymentDetailResponseRouteIngress2, + unknown +> = z.object({ + annotations: z.record(z.string(), z.string()).optional(), + controller: z.nullable(z.string()).optional(), + ingressClassName: z.string(), + labels: z.record(z.string(), z.string()).optional(), + provider: z.nullable( + z.union([ + z.lazy(() => DeploymentDetailResponseProviderAwsAlb3$inboundSchema), + z.lazy(() => + DeploymentDetailResponseProviderAzureApplicationGatewayForContainers3$inboundSchema + ), + z.lazy(() => DeploymentDetailResponseProviderGkeGateway3$inboundSchema), + z.any(), + ]), + ).optional(), + routeApi: z.literal("ingress"), +}); + +export function deploymentDetailResponseRouteIngress2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseRouteIngress2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseRouteIngress2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseRouteUnion2$inboundSchema: z.ZodType< + DeploymentDetailResponseRouteUnion2, + unknown +> = z.union([ + z.lazy(() => DeploymentDetailResponseRouteIngress2$inboundSchema), + z.lazy(() => DeploymentDetailResponseRouteGateway2$inboundSchema), +]); + +export function deploymentDetailResponseRouteUnion2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseRouteUnion2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseRouteUnion2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseExposureCustom$inboundSchema: z.ZodType< + DeploymentDetailResponseExposureCustom, + unknown +> = z.object({ + certificate: z.union([ + z.lazy(() => + DeploymentDetailResponseCertificateTLSSecretRef2$inboundSchema + ), + z.lazy(() => + DeploymentDetailResponseCertificateManagedAcmImport2$inboundSchema + ), + z.lazy(() => DeploymentDetailResponseCertificateAwsAcmArn2$inboundSchema), + z.lazy(() => + DeploymentDetailResponseCertificateManagedTLSSecret2$inboundSchema + ), + z.lazy(() => DeploymentDetailResponseCertificateNone2$inboundSchema), + ]), + domain: z.string(), + mode: DeploymentDetailResponseModeCustom$inboundSchema, + route: z.union([ + z.lazy(() => DeploymentDetailResponseRouteIngress2$inboundSchema), + z.lazy(() => DeploymentDetailResponseRouteGateway2$inboundSchema), + ]), +}); + +export function deploymentDetailResponseExposureCustomFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseExposureCustom$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseExposureCustom' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseCertificateNone1$inboundSchema: z.ZodType< + DeploymentDetailResponseCertificateNone1, + unknown +> = z.object({ + mode: z.literal("none"), +}); + +export function deploymentDetailResponseCertificateNone1FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseCertificateNone1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseCertificateNone1$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseCertificateNone1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseCertificateManagedTLSSecret1$inboundSchema: + z.ZodType = z + .object({ + mode: z.literal("managedTlsSecret"), + secretNameTemplate: z.string(), + }); + +export function deploymentDetailResponseCertificateManagedTLSSecret1FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseCertificateManagedTLSSecret1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseCertificateManagedTLSSecret1$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseCertificateManagedTLSSecret1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseCertificateAwsAcmArn1$inboundSchema: + z.ZodType = z.object({ + certificateArn: z.string(), + mode: z.literal("awsAcmArn"), + }); + +export function deploymentDetailResponseCertificateAwsAcmArn1FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseCertificateAwsAcmArn1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseCertificateAwsAcmArn1$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseCertificateAwsAcmArn1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseCertificateManagedAcmImport1$inboundSchema: + z.ZodType = z + .object({ + mode: z.literal("managedAcmImport"), + region: z.nullable(z.string()).optional(), + tags: z.record(z.string(), z.string()).optional(), + }); + +export function deploymentDetailResponseCertificateManagedAcmImport1FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseCertificateManagedAcmImport1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseCertificateManagedAcmImport1$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseCertificateManagedAcmImport1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseCertificateTLSSecretRef1$inboundSchema: + z.ZodType = z + .object({ + namespace: z.nullable(z.string()).optional(), + secretName: z.string(), + mode: z.literal("tlsSecretRef"), + }); + +export function deploymentDetailResponseCertificateTLSSecretRef1FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseCertificateTLSSecretRef1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseCertificateTLSSecretRef1$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseCertificateTLSSecretRef1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseCertificateUnion1$inboundSchema: z.ZodType< + DeploymentDetailResponseCertificateUnion1, + unknown +> = z.union([ + z.lazy(() => DeploymentDetailResponseCertificateTLSSecretRef1$inboundSchema), + z.lazy(() => + DeploymentDetailResponseCertificateManagedAcmImport1$inboundSchema + ), + z.lazy(() => DeploymentDetailResponseCertificateAwsAcmArn1$inboundSchema), + z.lazy(() => + DeploymentDetailResponseCertificateManagedTLSSecret1$inboundSchema + ), + z.lazy(() => DeploymentDetailResponseCertificateNone1$inboundSchema), +]); + +export function deploymentDetailResponseCertificateUnion1FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseCertificateUnion1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseCertificateUnion1$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseCertificateUnion1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseModeGenerated$inboundSchema: z.ZodEnum< + typeof DeploymentDetailResponseModeGenerated +> = z.enum(DeploymentDetailResponseModeGenerated); + +/** @internal */ +export const DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum2$inboundSchema: + z.ZodEnum< + typeof DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum2 + > = z.enum( + DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum2, + ); + +/** @internal */ +export const DeploymentDetailResponseProviderAzureApplicationGatewayForContainers2$inboundSchema: + z.ZodType< + DeploymentDetailResponseProviderAzureApplicationGatewayForContainers2, + unknown + > = z.object({ + albName: z.nullable(z.string()).optional(), + albNamespace: z.nullable(z.string()).optional(), + frontend: z.string(), + provider: + DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum2$inboundSchema, + }); + +export function deploymentDetailResponseProviderAzureApplicationGatewayForContainers2FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseProviderAzureApplicationGatewayForContainers2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseProviderAzureApplicationGatewayForContainers2$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseProviderAzureApplicationGatewayForContainers2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseProviderGkeGatewayEnum2$inboundSchema: + z.ZodEnum = z.enum( + DeploymentDetailResponseProviderGkeGatewayEnum2, + ); + +/** @internal */ +export const DeploymentDetailResponseProviderGkeGateway2$inboundSchema: + z.ZodType = z.object({ + provider: DeploymentDetailResponseProviderGkeGatewayEnum2$inboundSchema, + staticAddressName: z.nullable(z.string()).optional(), + }); + +export function deploymentDetailResponseProviderGkeGateway2FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseProviderGkeGateway2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseProviderGkeGateway2$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseProviderGkeGateway2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseProviderAwsAlbEnum2$inboundSchema: + z.ZodEnum = z.enum( + DeploymentDetailResponseProviderAwsAlbEnum2, + ); + +/** @internal */ +export const DeploymentDetailResponseProviderAwsAlb2$inboundSchema: z.ZodType< + DeploymentDetailResponseProviderAwsAlb2, + unknown +> = z.object({ + ipAddressType: z.nullable(z.string()).optional(), + provider: DeploymentDetailResponseProviderAwsAlbEnum2$inboundSchema, + scheme: z.string(), + subnetIds: z.array(z.string()).optional(), + targetType: z.string(), +}); + +export function deploymentDetailResponseProviderAwsAlb2FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseProviderAwsAlb2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseProviderAwsAlb2$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseProviderAwsAlb2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseProviderUnion2$inboundSchema: z.ZodType< + DeploymentDetailResponseProviderUnion2, + unknown +> = z.union([ + z.lazy(() => DeploymentDetailResponseProviderAwsAlb2$inboundSchema), + z.lazy(() => + DeploymentDetailResponseProviderAzureApplicationGatewayForContainers2$inboundSchema + ), + z.lazy(() => DeploymentDetailResponseProviderGkeGateway2$inboundSchema), + z.any(), +]); + +export function deploymentDetailResponseProviderUnion2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseProviderUnion2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseProviderUnion2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseRouteGateway1$inboundSchema: z.ZodType< + DeploymentDetailResponseRouteGateway1, + unknown +> = z.object({ + annotations: z.record(z.string(), z.string()).optional(), + controller: z.nullable(z.string()).optional(), + gatewayClassName: z.string(), + labels: z.record(z.string(), z.string()).optional(), + listenerPort: z.int(), + provider: z.nullable( + z.union([ + z.lazy(() => DeploymentDetailResponseProviderAwsAlb2$inboundSchema), + z.lazy(() => + DeploymentDetailResponseProviderAzureApplicationGatewayForContainers2$inboundSchema + ), + z.lazy(() => DeploymentDetailResponseProviderGkeGateway2$inboundSchema), + z.any(), + ]), + ).optional(), + routeApi: z.literal("gateway"), +}); + +export function deploymentDetailResponseRouteGateway1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseRouteGateway1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseRouteGateway1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum1$inboundSchema: + z.ZodEnum< + typeof DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum1 + > = z.enum( + DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum1, + ); + +/** @internal */ +export const DeploymentDetailResponseProviderAzureApplicationGatewayForContainers1$inboundSchema: + z.ZodType< + DeploymentDetailResponseProviderAzureApplicationGatewayForContainers1, + unknown + > = z.object({ + albName: z.nullable(z.string()).optional(), + albNamespace: z.nullable(z.string()).optional(), + frontend: z.string(), + provider: + DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum1$inboundSchema, + }); + +export function deploymentDetailResponseProviderAzureApplicationGatewayForContainers1FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseProviderAzureApplicationGatewayForContainers1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseProviderAzureApplicationGatewayForContainers1$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseProviderAzureApplicationGatewayForContainers1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseProviderGkeGatewayEnum1$inboundSchema: + z.ZodEnum = z.enum( + DeploymentDetailResponseProviderGkeGatewayEnum1, + ); + +/** @internal */ +export const DeploymentDetailResponseProviderGkeGateway1$inboundSchema: + z.ZodType = z.object({ + provider: DeploymentDetailResponseProviderGkeGatewayEnum1$inboundSchema, + staticAddressName: z.nullable(z.string()).optional(), + }); + +export function deploymentDetailResponseProviderGkeGateway1FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseProviderGkeGateway1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseProviderGkeGateway1$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseProviderGkeGateway1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseProviderAwsAlbEnum1$inboundSchema: + z.ZodEnum = z.enum( + DeploymentDetailResponseProviderAwsAlbEnum1, + ); + +/** @internal */ +export const DeploymentDetailResponseProviderAwsAlb1$inboundSchema: z.ZodType< + DeploymentDetailResponseProviderAwsAlb1, + unknown +> = z.object({ + ipAddressType: z.nullable(z.string()).optional(), + provider: DeploymentDetailResponseProviderAwsAlbEnum1$inboundSchema, + scheme: z.string(), + subnetIds: z.array(z.string()).optional(), + targetType: z.string(), +}); + +export function deploymentDetailResponseProviderAwsAlb1FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseProviderAwsAlb1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseProviderAwsAlb1$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseProviderAwsAlb1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseProviderUnion1$inboundSchema: z.ZodType< + DeploymentDetailResponseProviderUnion1, + unknown +> = z.union([ + z.lazy(() => DeploymentDetailResponseProviderAwsAlb1$inboundSchema), + z.lazy(() => + DeploymentDetailResponseProviderAzureApplicationGatewayForContainers1$inboundSchema + ), + z.lazy(() => DeploymentDetailResponseProviderGkeGateway1$inboundSchema), + z.any(), +]); + +export function deploymentDetailResponseProviderUnion1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseProviderUnion1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseProviderUnion1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseRouteIngress1$inboundSchema: z.ZodType< + DeploymentDetailResponseRouteIngress1, + unknown +> = z.object({ + annotations: z.record(z.string(), z.string()).optional(), + controller: z.nullable(z.string()).optional(), + ingressClassName: z.string(), + labels: z.record(z.string(), z.string()).optional(), + provider: z.nullable( + z.union([ + z.lazy(() => DeploymentDetailResponseProviderAwsAlb1$inboundSchema), + z.lazy(() => + DeploymentDetailResponseProviderAzureApplicationGatewayForContainers1$inboundSchema + ), + z.lazy(() => DeploymentDetailResponseProviderGkeGateway1$inboundSchema), + z.any(), + ]), + ).optional(), + routeApi: z.literal("ingress"), +}); + +export function deploymentDetailResponseRouteIngress1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseRouteIngress1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseRouteIngress1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseRouteUnion1$inboundSchema: z.ZodType< + DeploymentDetailResponseRouteUnion1, + unknown +> = z.union([ + z.lazy(() => DeploymentDetailResponseRouteIngress1$inboundSchema), + z.lazy(() => DeploymentDetailResponseRouteGateway1$inboundSchema), +]); + +export function deploymentDetailResponseRouteUnion1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseRouteUnion1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseRouteUnion1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseExposureGenerated$inboundSchema: z.ZodType< + DeploymentDetailResponseExposureGenerated, + unknown +> = z.object({ + certificate: z.union([ + z.lazy(() => + DeploymentDetailResponseCertificateTLSSecretRef1$inboundSchema + ), + z.lazy(() => + DeploymentDetailResponseCertificateManagedAcmImport1$inboundSchema + ), + z.lazy(() => DeploymentDetailResponseCertificateAwsAcmArn1$inboundSchema), + z.lazy(() => + DeploymentDetailResponseCertificateManagedTLSSecret1$inboundSchema + ), + z.lazy(() => DeploymentDetailResponseCertificateNone1$inboundSchema), + ]), + mode: DeploymentDetailResponseModeGenerated$inboundSchema, + route: z.union([ + z.lazy(() => DeploymentDetailResponseRouteIngress1$inboundSchema), + z.lazy(() => DeploymentDetailResponseRouteGateway1$inboundSchema), + ]), +}); + +export function deploymentDetailResponseExposureGeneratedFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseExposureGenerated, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseExposureGenerated$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseExposureGenerated' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseModeDisabled$inboundSchema: z.ZodEnum< + typeof DeploymentDetailResponseModeDisabled +> = z.enum(DeploymentDetailResponseModeDisabled); + +/** @internal */ +export const DeploymentDetailResponseExposureDisabled$inboundSchema: z.ZodType< + DeploymentDetailResponseExposureDisabled, + unknown +> = z.object({ + mode: DeploymentDetailResponseModeDisabled$inboundSchema, +}); + +export function deploymentDetailResponseExposureDisabledFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseExposureDisabled, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseExposureDisabled$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseExposureDisabled' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseExposureUnion$inboundSchema: z.ZodType< + DeploymentDetailResponseExposureUnion, + unknown +> = z.union([ + z.lazy(() => DeploymentDetailResponseExposureCustom$inboundSchema), + z.lazy(() => DeploymentDetailResponseExposureGenerated$inboundSchema), + z.lazy(() => DeploymentDetailResponseExposureDisabled$inboundSchema), + z.any(), +]); + +export function deploymentDetailResponseExposureUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseExposureUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseExposureUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseKubernetes$inboundSchema: z.ZodType< + DeploymentDetailResponseKubernetes, + unknown +> = z.object({ + cluster: z.nullable( + z.union([ + z.lazy(() => DeploymentDetailResponseCluster$inboundSchema), + z.any(), + ]), + ).optional(), + exposure: z.nullable( + z.union([ + z.lazy(() => DeploymentDetailResponseExposureCustom$inboundSchema), + z.lazy(() => DeploymentDetailResponseExposureGenerated$inboundSchema), + z.lazy(() => DeploymentDetailResponseExposureDisabled$inboundSchema), + z.any(), + ]), + ).optional(), +}); + +export function deploymentDetailResponseKubernetesFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseKubernetes$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseKubernetes' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseKubernetesUnion$inboundSchema: z.ZodType< + DeploymentDetailResponseKubernetesUnion, + unknown +> = z.union([ + z.lazy(() => DeploymentDetailResponseKubernetes$inboundSchema), + z.any(), +]); + +export function deploymentDetailResponseKubernetesUnionFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseKubernetesUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseKubernetesUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseKubernetesUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseTypeByoVnetAzure$inboundSchema: z.ZodEnum< + typeof DeploymentDetailResponseTypeByoVnetAzure +> = z.enum(DeploymentDetailResponseTypeByoVnetAzure); + +/** @internal */ +export const DeploymentDetailResponseNetworkByoVnetAzure$inboundSchema: + z.ZodType = z.object({ + application_gateway_subnet_name: z.nullable(z.string()).optional(), + private_endpoint_subnet_name: z.nullable(z.string()).optional(), + private_subnet_name: z.string(), + public_subnet_name: z.string(), + type: DeploymentDetailResponseTypeByoVnetAzure$inboundSchema, + vnet_resource_id: z.string(), + }).transform((v) => { + return remap$(v, { + "application_gateway_subnet_name": "applicationGatewaySubnetName", + "private_endpoint_subnet_name": "privateEndpointSubnetName", + "private_subnet_name": "privateSubnetName", + "public_subnet_name": "publicSubnetName", + "vnet_resource_id": "vnetResourceId", + }); + }); + +export function deploymentDetailResponseNetworkByoVnetAzureFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseNetworkByoVnetAzure, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseNetworkByoVnetAzure$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseNetworkByoVnetAzure' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseTypeByoVpcGcp$inboundSchema: z.ZodEnum< + typeof DeploymentDetailResponseTypeByoVpcGcp +> = z.enum(DeploymentDetailResponseTypeByoVpcGcp); + +/** @internal */ +export const DeploymentDetailResponseNetworkByoVpcGcp$inboundSchema: z.ZodType< + DeploymentDetailResponseNetworkByoVpcGcp, + unknown +> = z.object({ + network_name: z.string(), + region: z.string(), + subnet_name: z.string(), + type: DeploymentDetailResponseTypeByoVpcGcp$inboundSchema, +}).transform((v) => { + return remap$(v, { + "network_name": "networkName", + "subnet_name": "subnetName", + }); +}); + +export function deploymentDetailResponseNetworkByoVpcGcpFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseNetworkByoVpcGcp, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseNetworkByoVpcGcp$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseNetworkByoVpcGcp' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseTypeByoVpcAws$inboundSchema: z.ZodEnum< + typeof DeploymentDetailResponseTypeByoVpcAws +> = z.enum(DeploymentDetailResponseTypeByoVpcAws); + +/** @internal */ +export const DeploymentDetailResponseNetworkByoVpcAws$inboundSchema: z.ZodType< + DeploymentDetailResponseNetworkByoVpcAws, + unknown +> = z.object({ + private_subnet_ids: z.array(z.string()), + public_subnet_ids: z.array(z.string()), + security_group_ids: z.array(z.string()).optional(), + type: DeploymentDetailResponseTypeByoVpcAws$inboundSchema, + vpc_id: z.string(), +}).transform((v) => { + return remap$(v, { + "private_subnet_ids": "privateSubnetIds", + "public_subnet_ids": "publicSubnetIds", + "security_group_ids": "securityGroupIds", + "vpc_id": "vpcId", + }); +}); + +export function deploymentDetailResponseNetworkByoVpcAwsFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseNetworkByoVpcAws, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseNetworkByoVpcAws$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseNetworkByoVpcAws' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseTypeCreate$inboundSchema: z.ZodEnum< + typeof DeploymentDetailResponseTypeCreate +> = z.enum(DeploymentDetailResponseTypeCreate); + +/** @internal */ +export const DeploymentDetailResponseNetworkCreate$inboundSchema: z.ZodType< + DeploymentDetailResponseNetworkCreate, + unknown +> = z.object({ + availability_zones: z.int().optional(), + cidr: z.nullable(z.string()).optional(), + type: DeploymentDetailResponseTypeCreate$inboundSchema, +}).transform((v) => { + return remap$(v, { + "availability_zones": "availabilityZones", + }); +}); + +export function deploymentDetailResponseNetworkCreateFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseNetworkCreate$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseNetworkCreate' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseTypeUseDefault$inboundSchema: z.ZodEnum< + typeof DeploymentDetailResponseTypeUseDefault +> = z.enum(DeploymentDetailResponseTypeUseDefault); + +/** @internal */ +export const DeploymentDetailResponseNetworkUseDefault$inboundSchema: z.ZodType< + DeploymentDetailResponseNetworkUseDefault, + unknown +> = z.object({ + type: DeploymentDetailResponseTypeUseDefault$inboundSchema, +}); + +export function deploymentDetailResponseNetworkUseDefaultFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseNetworkUseDefault, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseNetworkUseDefault$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseNetworkUseDefault' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseNetworkUnion$inboundSchema: z.ZodType< + DeploymentDetailResponseNetworkUnion, + unknown +> = z.union([ + z.lazy(() => DeploymentDetailResponseNetworkByoVpcAws$inboundSchema), + z.lazy(() => DeploymentDetailResponseNetworkByoVpcGcp$inboundSchema), + z.lazy(() => DeploymentDetailResponseNetworkByoVnetAzure$inboundSchema), + z.lazy(() => DeploymentDetailResponseNetworkUseDefault$inboundSchema), + z.lazy(() => DeploymentDetailResponseNetworkCreate$inboundSchema), + z.any(), +]); + +export function deploymentDetailResponseNetworkUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseNetworkUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseNetworkUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseTelemetry$inboundSchema: z.ZodEnum< + typeof DeploymentDetailResponseTelemetry +> = z.enum(DeploymentDetailResponseTelemetry); + +/** @internal */ +export const DeploymentDetailResponseUpdates$inboundSchema: z.ZodEnum< + typeof DeploymentDetailResponseUpdates +> = z.enum(DeploymentDetailResponseUpdates); + +/** @internal */ +export const DeploymentDetailResponseStackSettings$inboundSchema: z.ZodType< + DeploymentDetailResponseStackSettings, + unknown +> = z.object({ + compute: z.nullable( + z.union([ + z.lazy(() => DeploymentDetailResponseCompute$inboundSchema), + z.any(), + ]), + ).optional(), + deploymentModel: DeploymentDetailResponseDeploymentModel$inboundSchema + .optional(), + domains: z.nullable( + z.union([ + z.lazy(() => DeploymentDetailResponseDomains$inboundSchema), + z.any(), + ]), + ).optional(), + externalBindings: z.nullable( + z.lazy(() => DeploymentDetailResponseExternalBindings$inboundSchema), + ).optional(), + heartbeats: DeploymentDetailResponseHeartbeats$inboundSchema.optional(), + kubernetes: z.nullable( + z.union([ + z.lazy(() => DeploymentDetailResponseKubernetes$inboundSchema), + z.any(), + ]), + ).optional(), + network: z.nullable( + z.union([ + z.lazy(() => DeploymentDetailResponseNetworkByoVpcAws$inboundSchema), + z.lazy(() => DeploymentDetailResponseNetworkByoVpcGcp$inboundSchema), + z.lazy(() => DeploymentDetailResponseNetworkByoVnetAzure$inboundSchema), + z.lazy(() => DeploymentDetailResponseNetworkUseDefault$inboundSchema), + z.lazy(() => DeploymentDetailResponseNetworkCreate$inboundSchema), + z.any(), + ]), + ).optional(), + telemetry: DeploymentDetailResponseTelemetry$inboundSchema.optional(), + updates: DeploymentDetailResponseUpdates$inboundSchema.optional(), +}); + +export function deploymentDetailResponseStackSettingsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseStackSettings$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseStackSettings' from JSON`, + ); +} /** @internal */ -export const DeploymentDetailResponsePlatform$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponsePlatform -> = z.enum(DeploymentDetailResponsePlatform); +export const DeploymentDetailResponseStackStatePlatform$inboundSchema: + z.ZodEnum = z.enum( + DeploymentDetailResponseStackStatePlatform, + ); /** @internal */ -export const DeploymentDetailResponseBasePlatform$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseBasePlatform -> = z.enum(DeploymentDetailResponseBasePlatform); +export const DeploymentDetailResponseStackStateConfig$inboundSchema: z.ZodType< + DeploymentDetailResponseStackStateConfig, + unknown +> = collectExtraKeys$( + z.object({ + id: z.string(), + type: z.string(), + }).catchall(z.any()), + "additionalProperties", + true, +); + +export function deploymentDetailResponseStackStateConfigFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseStackStateConfig, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseStackStateConfig$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseStackStateConfig' from JSON`, + ); +} /** @internal */ -export const DeploymentDetailResponsePlatformTest$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponsePlatformTest -> = z.enum(DeploymentDetailResponsePlatformTest); +export const DeploymentDetailResponseControllerPlatformEnum$inboundSchema: + z.ZodEnum = z.enum( + DeploymentDetailResponseControllerPlatformEnum, + ); /** @internal */ -export const DeploymentDetailResponseEnvironmentInfoTest$inboundSchema: - z.ZodType = z.object({ - testId: z.string(), - platform: DeploymentDetailResponsePlatformTest$inboundSchema, - }); +export const DeploymentDetailResponseControllerPlatformUnion$inboundSchema: + z.ZodType = z.union( + [DeploymentDetailResponseControllerPlatformEnum$inboundSchema, z.any()], + ); -export function deploymentDetailResponseEnvironmentInfoTestFromJSON( +export function deploymentDetailResponseControllerPlatformUnionFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseEnvironmentInfoTest, + DeploymentDetailResponseControllerPlatformUnion, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseEnvironmentInfoTest$inboundSchema.parse( + DeploymentDetailResponseControllerPlatformUnion$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseEnvironmentInfoTest' from JSON`, + `Failed to parse 'DeploymentDetailResponseControllerPlatformUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponsePlatformLocal$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponsePlatformLocal -> = z.enum(DeploymentDetailResponsePlatformLocal); - -/** @internal */ -export const DeploymentDetailResponseEnvironmentInfoLocal$inboundSchema: - z.ZodType = z.object({ - arch: z.string(), - hostname: z.string(), - os: z.string(), - platform: DeploymentDetailResponsePlatformLocal$inboundSchema, +export const DeploymentDetailResponseStackStateDependency$inboundSchema: + z.ZodType = z.object({ + id: z.string(), + type: z.string(), }); -export function deploymentDetailResponseEnvironmentInfoLocalFromJSON( +export function deploymentDetailResponseStackStateDependencyFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseEnvironmentInfoLocal, + DeploymentDetailResponseStackStateDependency, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseEnvironmentInfoLocal$inboundSchema.parse( + DeploymentDetailResponseStackStateDependency$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseEnvironmentInfoLocal' from JSON`, + `Failed to parse 'DeploymentDetailResponseStackStateDependency' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponsePlatformAzure$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponsePlatformAzure -> = z.enum(DeploymentDetailResponsePlatformAzure); - -/** @internal */ -export const DeploymentDetailResponseEnvironmentInfoAzure$inboundSchema: - z.ZodType = z.object({ - location: z.string(), - subscriptionId: z.string(), - tenantId: z.string(), - platform: DeploymentDetailResponsePlatformAzure$inboundSchema, - }); +export const DeploymentDetailResponseErrorStackState$inboundSchema: z.ZodType< + DeploymentDetailResponseErrorStackState, + unknown +> = z.object({ + code: z.string(), + context: z.nullable(z.any()).optional(), + hint: z.nullable(z.string()).optional(), + httpStatusCode: z.nullable(z.int()).optional(), + internal: z.boolean(), + message: z.string(), + retryable: z.boolean().default(false), + source: z.nullable(z.any()).optional(), +}); -export function deploymentDetailResponseEnvironmentInfoAzureFromJSON( +export function deploymentDetailResponseErrorStackStateFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseEnvironmentInfoAzure, + DeploymentDetailResponseErrorStackState, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseEnvironmentInfoAzure$inboundSchema.parse( + DeploymentDetailResponseErrorStackState$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseEnvironmentInfoAzure' from JSON`, + `Failed to parse 'DeploymentDetailResponseErrorStackState' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponsePlatformGcp$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponsePlatformGcp -> = z.enum(DeploymentDetailResponsePlatformGcp); +export const DeploymentDetailResponseErrorUnion$inboundSchema: z.ZodType< + DeploymentDetailResponseErrorUnion, + unknown +> = z.union([ + z.lazy(() => DeploymentDetailResponseErrorStackState$inboundSchema), + z.any(), +]); + +export function deploymentDetailResponseErrorUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseErrorUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseErrorUnion' from JSON`, + ); +} /** @internal */ -export const DeploymentDetailResponseEnvironmentInfoGcp$inboundSchema: - z.ZodType = z.object({ - projectId: z.string(), - projectNumber: z.string(), - region: z.string(), - platform: DeploymentDetailResponsePlatformGcp$inboundSchema, - }); +export const DeploymentDetailResponseLifecycleStackStateEnum$inboundSchema: + z.ZodEnum = z.enum( + DeploymentDetailResponseLifecycleStackStateEnum, + ); -export function deploymentDetailResponseEnvironmentInfoGcpFromJSON( +/** @internal */ +export const DeploymentDetailResponseLifecycleUnion$inboundSchema: z.ZodType< + DeploymentDetailResponseLifecycleUnion, + unknown +> = z.union([ + DeploymentDetailResponseLifecycleStackStateEnum$inboundSchema, + z.any(), +]); + +export function deploymentDetailResponseLifecycleUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseLifecycleUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseLifecycleUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseOutputs$inboundSchema: z.ZodType< + DeploymentDetailResponseOutputs, + unknown +> = collectExtraKeys$( + z.object({ + type: z.string(), + }).catchall(z.any()), + "additionalProperties", + true, +); + +export function deploymentDetailResponseOutputsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentDetailResponseOutputs$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseOutputs' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseOutputsUnion$inboundSchema: z.ZodType< + DeploymentDetailResponseOutputsUnion, + unknown +> = z.union([ + z.lazy(() => DeploymentDetailResponseOutputs$inboundSchema), + z.any(), +]); + +export function deploymentDetailResponseOutputsUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseOutputsUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseOutputsUnion' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponsePreviousConfig$inboundSchema: z.ZodType< + DeploymentDetailResponsePreviousConfig, + unknown +> = collectExtraKeys$( + z.object({ + id: z.string(), + type: z.string(), + }).catchall(z.any()), + "additionalProperties", + true, +); + +export function deploymentDetailResponsePreviousConfigFromJSON( jsonString: string, -): SafeParseResult< - DeploymentDetailResponseEnvironmentInfoGcp, - SDKValidationError -> { +): SafeParseResult { return safeParse( jsonString, (x) => - DeploymentDetailResponseEnvironmentInfoGcp$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseEnvironmentInfoGcp' from JSON`, + DeploymentDetailResponsePreviousConfig$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreviousConfig' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponsePlatformAws$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponsePlatformAws -> = z.enum(DeploymentDetailResponsePlatformAws); - -/** @internal */ -export const DeploymentDetailResponseEnvironmentInfoAws$inboundSchema: - z.ZodType = z.object({ - accountId: z.string(), - region: z.string(), - platform: DeploymentDetailResponsePlatformAws$inboundSchema, - }); +export const DeploymentDetailResponsePreviousConfigUnion$inboundSchema: + z.ZodType = z.union([ + z.lazy(() => DeploymentDetailResponsePreviousConfig$inboundSchema), + z.any(), + ]); -export function deploymentDetailResponseEnvironmentInfoAwsFromJSON( +export function deploymentDetailResponsePreviousConfigUnionFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseEnvironmentInfoAws, + DeploymentDetailResponsePreviousConfigUnion, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseEnvironmentInfoAws$inboundSchema.parse( + DeploymentDetailResponsePreviousConfigUnion$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseEnvironmentInfoAws' from JSON`, + `Failed to parse 'DeploymentDetailResponsePreviousConfigUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseEnvironmentInfoUnion$inboundSchema: - z.ZodType = z.union([ - z.lazy(() => DeploymentDetailResponseEnvironmentInfoGcp$inboundSchema), - z.lazy(() => DeploymentDetailResponseEnvironmentInfoAzure$inboundSchema), - z.lazy(() => DeploymentDetailResponseEnvironmentInfoLocal$inboundSchema), - z.lazy(() => DeploymentDetailResponseEnvironmentInfoAws$inboundSchema), - z.lazy(() => DeploymentDetailResponseEnvironmentInfoTest$inboundSchema), - z.any(), - ]); +export const DeploymentDetailResponseStackStateStatus$inboundSchema: z.ZodEnum< + typeof DeploymentDetailResponseStackStateStatus +> = z.enum(DeploymentDetailResponseStackStateStatus); -export function deploymentDetailResponseEnvironmentInfoUnionFromJSON( +/** @internal */ +export const DeploymentDetailResponseStackStateResources$inboundSchema: + z.ZodType = z.object({ + _internal: z.nullable(z.any()).optional(), + config: z.lazy(() => + DeploymentDetailResponseStackStateConfig$inboundSchema + ), + controllerPlatform: z.nullable( + z.union([ + DeploymentDetailResponseControllerPlatformEnum$inboundSchema, + z.any(), + ]), + ).optional(), + dependencies: z.array( + z.lazy(() => DeploymentDetailResponseStackStateDependency$inboundSchema), + ).optional(), + error: z.nullable( + z.union([ + z.lazy(() => DeploymentDetailResponseErrorStackState$inboundSchema), + z.any(), + ]), + ).optional(), + lastFailedState: z.nullable(z.any()).optional(), + lifecycle: z.nullable( + z.union([ + DeploymentDetailResponseLifecycleStackStateEnum$inboundSchema, + z.any(), + ]), + ).optional(), + outputs: z.nullable( + z.union([ + z.lazy(() => DeploymentDetailResponseOutputs$inboundSchema), + z.any(), + ]), + ).optional(), + previousConfig: z.nullable( + z.union([ + z.lazy(() => DeploymentDetailResponsePreviousConfig$inboundSchema), + z.any(), + ]), + ).optional(), + remoteBindingParams: z.nullable(z.any()).optional(), + retryAttempt: z.int().optional(), + status: DeploymentDetailResponseStackStateStatus$inboundSchema, + type: z.string(), + }).transform((v) => { + return remap$(v, { + "_internal": "internal", + }); + }); + +export function deploymentDetailResponseStackStateResourcesFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseEnvironmentInfoUnion, + DeploymentDetailResponseStackStateResources, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseEnvironmentInfoUnion$inboundSchema.parse( + DeploymentDetailResponseStackStateResources$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseEnvironmentInfoUnion' from JSON`, + `Failed to parse 'DeploymentDetailResponseStackStateResources' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponsePoolsAutoscale$inboundSchema: z.ZodType< - DeploymentDetailResponsePoolsAutoscale, +export const DeploymentDetailResponseStackState$inboundSchema: z.ZodType< + DeploymentDetailResponseStackState, unknown > = z.object({ - machine: z.nullable(z.string()).optional(), - max: z.int(), - min: z.int(), - mode: z.literal("autoscale"), + platform: DeploymentDetailResponseStackStatePlatform$inboundSchema, + resourcePrefix: z.string(), + resources: z.record( + z.string(), + z.lazy(() => DeploymentDetailResponseStackStateResources$inboundSchema), + ), }); -export function deploymentDetailResponsePoolsAutoscaleFromJSON( +export function deploymentDetailResponseStackStateFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, (x) => - DeploymentDetailResponsePoolsAutoscale$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponsePoolsAutoscale' from JSON`, + DeploymentDetailResponseStackState$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponseStackState' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponsePoolsFixed$inboundSchema: z.ZodType< - DeploymentDetailResponsePoolsFixed, - unknown -> = z.object({ - machine: z.nullable(z.string()).optional(), - machines: z.int(), - mode: z.literal("fixed"), -}); - -export function deploymentDetailResponsePoolsFixedFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => - DeploymentDetailResponsePoolsFixed$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponsePoolsFixed' from JSON`, +export const DeploymentDetailResponseInitialSetupAuthority$inboundSchema: + z.ZodEnum = z.enum( + DeploymentDetailResponseInitialSetupAuthority, ); -} /** @internal */ -export const DeploymentDetailResponsePoolsUnion$inboundSchema: z.ZodType< - DeploymentDetailResponsePoolsUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponsePoolsFixed$inboundSchema), - z.lazy(() => DeploymentDetailResponsePoolsAutoscale$inboundSchema), -]); +export const DeploymentDetailResponsePendingPreparedStackTypeStringList$inboundSchema: + z.ZodEnum = + z.enum(DeploymentDetailResponsePendingPreparedStackTypeStringList); -export function deploymentDetailResponsePoolsUnionFromJSON( +/** @internal */ +export const DeploymentDetailResponsePendingPreparedStackDefaultStringList$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackDefaultStringList, + unknown + > = z.object({ + type: + DeploymentDetailResponsePendingPreparedStackTypeStringList$inboundSchema, + value: z.array(z.string()), + }); + +export function deploymentDetailResponsePendingPreparedStackDefaultStringListFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackDefaultStringList, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponsePoolsUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponsePoolsUnion' from JSON`, + DeploymentDetailResponsePendingPreparedStackDefaultStringList$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackDefaultStringList' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseCompute$inboundSchema: z.ZodType< - DeploymentDetailResponseCompute, - unknown -> = z.object({ - pools: z.record( - z.string(), - z.union([ - z.lazy(() => DeploymentDetailResponsePoolsFixed$inboundSchema), - z.lazy(() => DeploymentDetailResponsePoolsAutoscale$inboundSchema), - ]), - ).optional(), -}); +export const DeploymentDetailResponsePendingPreparedStackTypeBoolean$inboundSchema: + z.ZodEnum = z + .enum(DeploymentDetailResponsePendingPreparedStackTypeBoolean); -export function deploymentDetailResponseComputeFromJSON( +/** @internal */ +export const DeploymentDetailResponsePendingPreparedStackDefaultBoolean$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackDefaultBoolean, + unknown + > = z.object({ + type: DeploymentDetailResponsePendingPreparedStackTypeBoolean$inboundSchema, + value: z.boolean(), + }); + +export function deploymentDetailResponsePendingPreparedStackDefaultBooleanFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackDefaultBoolean, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentDetailResponseCompute$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseCompute' from JSON`, + (x) => + DeploymentDetailResponsePendingPreparedStackDefaultBoolean$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackDefaultBoolean' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseComputeUnion$inboundSchema: z.ZodType< - DeploymentDetailResponseComputeUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseCompute$inboundSchema), - z.any(), -]); +export const DeploymentDetailResponsePendingPreparedStackTypeNumber$inboundSchema: + z.ZodEnum = z + .enum(DeploymentDetailResponsePendingPreparedStackTypeNumber); -export function deploymentDetailResponseComputeUnionFromJSON( +/** @internal */ +export const DeploymentDetailResponsePendingPreparedStackDefaultNumber$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackDefaultNumber, + unknown + > = z.object({ + type: DeploymentDetailResponsePendingPreparedStackTypeNumber$inboundSchema, + value: z.string(), + }); + +export function deploymentDetailResponsePendingPreparedStackDefaultNumberFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackDefaultNumber, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseComputeUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseComputeUnion' from JSON`, + DeploymentDetailResponsePendingPreparedStackDefaultNumber$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackDefaultNumber' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseDeploymentModel$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseDeploymentModel -> = z.enum(DeploymentDetailResponseDeploymentModel); +export const DeploymentDetailResponsePendingPreparedStackTypeString$inboundSchema: + z.ZodEnum = z + .enum(DeploymentDetailResponsePendingPreparedStackTypeString); /** @internal */ -export const DeploymentDetailResponseAws$inboundSchema: z.ZodType< - DeploymentDetailResponseAws, - unknown -> = z.object({ - certificateArn: z.string(), -}); +export const DeploymentDetailResponsePendingPreparedStackDefaultString$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackDefaultString, + unknown + > = z.object({ + type: DeploymentDetailResponsePendingPreparedStackTypeString$inboundSchema, + value: z.string(), + }); -export function deploymentDetailResponseAwsFromJSON( +export function deploymentDetailResponsePendingPreparedStackDefaultStringFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackDefaultString, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentDetailResponseAws$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseAws' from JSON`, + (x) => + DeploymentDetailResponsePendingPreparedStackDefaultString$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackDefaultString' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseAwsUnion$inboundSchema: z.ZodType< - DeploymentDetailResponseAwsUnion, - unknown -> = z.union([z.lazy(() => DeploymentDetailResponseAws$inboundSchema), z.any()]); +export const DeploymentDetailResponsePendingPreparedStackDefaultUnion$inboundSchema: + z.ZodType = + z.union([ + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackDefaultString$inboundSchema + ), + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackDefaultNumber$inboundSchema + ), + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackDefaultBoolean$inboundSchema + ), + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackDefaultStringList$inboundSchema + ), + z.any(), + ]); -export function deploymentDetailResponseAwsUnionFromJSON( +export function deploymentDetailResponsePendingPreparedStackDefaultUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackDefaultUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentDetailResponseAwsUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseAwsUnion' from JSON`, + (x) => + DeploymentDetailResponsePendingPreparedStackDefaultUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackDefaultUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseAzureStackSettings$inboundSchema: - z.ZodType = z.object({ - keyVaultCertificateId: z.string(), - keyVaultResourceId: z.nullable(z.string()).optional(), - }); +export const DeploymentDetailResponsePendingPreparedStackTypeEnvEnum$inboundSchema: + z.ZodEnum = z + .enum(DeploymentDetailResponsePendingPreparedStackTypeEnvEnum); -export function deploymentDetailResponseAzureStackSettingsFromJSON( +/** @internal */ +export const DeploymentDetailResponsePendingPreparedStackTypeUnion$inboundSchema: + z.ZodType = z + .union([ + DeploymentDetailResponsePendingPreparedStackTypeEnvEnum$inboundSchema, + z.any(), + ]); + +export function deploymentDetailResponsePendingPreparedStackTypeUnionFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseAzureStackSettings, + DeploymentDetailResponsePendingPreparedStackTypeUnion, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseAzureStackSettings$inboundSchema.parse( + DeploymentDetailResponsePendingPreparedStackTypeUnion$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseAzureStackSettings' from JSON`, + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackTypeUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseAzureUnion$inboundSchema: z.ZodType< - DeploymentDetailResponseAzureUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseAzureStackSettings$inboundSchema), - z.any(), -]); +export const DeploymentDetailResponsePendingPreparedStackEnv$inboundSchema: + z.ZodType = z + .object({ + name: z.string(), + targetResources: z.nullable(z.array(z.string())).optional(), + type: z.nullable( + z.union([ + DeploymentDetailResponsePendingPreparedStackTypeEnvEnum$inboundSchema, + z.any(), + ]), + ).optional(), + }); -export function deploymentDetailResponseAzureUnionFromJSON( +export function deploymentDetailResponsePendingPreparedStackEnvFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackEnv, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseAzureUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseAzureUnion' from JSON`, + DeploymentDetailResponsePendingPreparedStackEnv$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackEnv' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseGcpStackSettings$inboundSchema: z.ZodType< - DeploymentDetailResponseGcpStackSettings, - unknown -> = z.object({ - certificateName: z.string(), -}); +export const DeploymentDetailResponsePendingPreparedStackKind$inboundSchema: + z.ZodEnum = z.enum( + DeploymentDetailResponsePendingPreparedStackKind, + ); -export function deploymentDetailResponseGcpStackSettingsFromJSON( +/** @internal */ +export const DeploymentDetailResponsePendingPreparedStackPlatform$inboundSchema: + z.ZodEnum = z + .enum(DeploymentDetailResponsePendingPreparedStackPlatform); + +/** @internal */ +export const DeploymentDetailResponsePendingPreparedStackProvidedBy$inboundSchema: + z.ZodEnum = z + .enum(DeploymentDetailResponsePendingPreparedStackProvidedBy); + +/** @internal */ +export const DeploymentDetailResponsePendingPreparedStackValidation$inboundSchema: + z.ZodType = z + .object({ + format: z.nullable(z.string()).optional(), + max: z.nullable(z.string()).optional(), + maxItems: z.nullable(z.int()).optional(), + maxLength: z.nullable(z.int()).optional(), + min: z.nullable(z.string()).optional(), + minItems: z.nullable(z.int()).optional(), + minLength: z.nullable(z.int()).optional(), + pattern: z.nullable(z.string()).optional(), + values: z.nullable(z.array(z.string())).optional(), + }); + +export function deploymentDetailResponsePendingPreparedStackValidationFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseGcpStackSettings, + DeploymentDetailResponsePendingPreparedStackValidation, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseGcpStackSettings$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseGcpStackSettings' from JSON`, + DeploymentDetailResponsePendingPreparedStackValidation$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackValidation' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseGcpUnion$inboundSchema: z.ZodType< - DeploymentDetailResponseGcpUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseGcpStackSettings$inboundSchema), - z.any(), -]); +export const DeploymentDetailResponsePendingPreparedStackValidationUnion$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackValidationUnion, + unknown + > = z.union([ + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackValidation$inboundSchema + ), + z.any(), + ]); -export function deploymentDetailResponseGcpUnionFromJSON( +export function deploymentDetailResponsePendingPreparedStackValidationUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackValidationUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentDetailResponseGcpUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseGcpUnion' from JSON`, + (x) => + DeploymentDetailResponsePendingPreparedStackValidationUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackValidationUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseTlsSecretRef$inboundSchema: z.ZodType< - DeploymentDetailResponseTlsSecretRef, - unknown -> = z.object({ - namespace: z.nullable(z.string()).optional(), - secretName: z.string(), -}); +export const DeploymentDetailResponsePendingPreparedStackInput$inboundSchema: + z.ZodType = z + .object({ + default: z.nullable( + z.union([ + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackDefaultString$inboundSchema + ), + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackDefaultNumber$inboundSchema + ), + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackDefaultBoolean$inboundSchema + ), + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackDefaultStringList$inboundSchema + ), + z.any(), + ]), + ).optional(), + description: z.string(), + env: z.array( + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackEnv$inboundSchema + ), + ).optional(), + id: z.string(), + kind: DeploymentDetailResponsePendingPreparedStackKind$inboundSchema, + label: z.string(), + placeholder: z.nullable(z.string()).optional(), + platforms: z.nullable( + z.array( + DeploymentDetailResponsePendingPreparedStackPlatform$inboundSchema, + ), + ).optional(), + providedBy: z.array( + DeploymentDetailResponsePendingPreparedStackProvidedBy$inboundSchema, + ), + required: z.boolean(), + validation: z.nullable( + z.union([ + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackValidation$inboundSchema + ), + z.any(), + ]), + ).optional(), + }); -export function deploymentDetailResponseTlsSecretRefFromJSON( +export function deploymentDetailResponsePendingPreparedStackInputFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackInput, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseTlsSecretRef$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseTlsSecretRef' from JSON`, + DeploymentDetailResponsePendingPreparedStackInput$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackInput' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseDomainsKubernetes$inboundSchema: z.ZodType< - DeploymentDetailResponseDomainsKubernetes, - unknown -> = z.object({ - tlsSecretRef: z.lazy(() => - DeploymentDetailResponseTlsSecretRef$inboundSchema - ), -}); +export const DeploymentDetailResponsePendingPreparedStackManagementEnum$inboundSchema: + z.ZodEnum = + z.enum(DeploymentDetailResponsePendingPreparedStackManagementEnum); -export function deploymentDetailResponseDomainsKubernetesFromJSON( +/** @internal */ +export const DeploymentDetailResponsePendingPreparedStackOverrideAwResource$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackOverrideAwResource, + unknown + > = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); + +export function deploymentDetailResponsePendingPreparedStackOverrideAwResourceFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseDomainsKubernetes, + DeploymentDetailResponsePendingPreparedStackOverrideAwResource, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseDomainsKubernetes$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseDomainsKubernetes' from JSON`, + DeploymentDetailResponsePendingPreparedStackOverrideAwResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackOverrideAwResource' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseDomainsKubernetesUnion$inboundSchema: - z.ZodType = z.union([ - z.lazy(() => DeploymentDetailResponseDomainsKubernetes$inboundSchema), - z.any(), - ]); +export const DeploymentDetailResponsePendingPreparedStackOverrideAwStack$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackOverrideAwStack, + unknown + > = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function deploymentDetailResponseDomainsKubernetesUnionFromJSON( +export function deploymentDetailResponsePendingPreparedStackOverrideAwStackFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseDomainsKubernetesUnion, + DeploymentDetailResponsePendingPreparedStackOverrideAwStack, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseDomainsKubernetesUnion$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseDomainsKubernetesUnion' from JSON`, + DeploymentDetailResponsePendingPreparedStackOverrideAwStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackOverrideAwStack' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseDomainsCertificate$inboundSchema: - z.ZodType = z.object({ - aws: z.nullable( - z.union([ - z.lazy(() => DeploymentDetailResponseAws$inboundSchema), - z.any(), - ]), - ).optional(), - azure: z.nullable( - z.union([ - z.lazy(() => DeploymentDetailResponseAzureStackSettings$inboundSchema), - z.any(), - ]), - ).optional(), - gcp: z.nullable( - z.union([ - z.lazy(() => DeploymentDetailResponseGcpStackSettings$inboundSchema), - z.any(), - ]), +export const DeploymentDetailResponsePendingPreparedStackOverrideAwBinding$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackOverrideAwBinding, + unknown + > = z.object({ + resource: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackOverrideAwResource$inboundSchema ).optional(), - kubernetes: z.nullable( - z.union([ - z.lazy(() => DeploymentDetailResponseDomainsKubernetes$inboundSchema), - z.any(), - ]), + stack: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackOverrideAwStack$inboundSchema ).optional(), }); -export function deploymentDetailResponseDomainsCertificateFromJSON( +export function deploymentDetailResponsePendingPreparedStackOverrideAwBindingFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseDomainsCertificate, + DeploymentDetailResponsePendingPreparedStackOverrideAwBinding, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseDomainsCertificate$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseDomainsCertificate' from JSON`, + DeploymentDetailResponsePendingPreparedStackOverrideAwBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackOverrideAwBinding' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseCustomDomains$inboundSchema: z.ZodType< - DeploymentDetailResponseCustomDomains, - unknown -> = z.object({ - certificate: z.lazy(() => - DeploymentDetailResponseDomainsCertificate$inboundSchema - ), - domain: z.string(), -}); +export const DeploymentDetailResponsePendingPreparedStackOverrideEffect$inboundSchema: + z.ZodEnum = + z.enum(DeploymentDetailResponsePendingPreparedStackOverrideEffect); -export function deploymentDetailResponseCustomDomainsFromJSON( +/** @internal */ +export const DeploymentDetailResponsePendingPreparedStackOverrideAwGrant$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackOverrideAwGrant, + unknown + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function deploymentDetailResponsePendingPreparedStackOverrideAwGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackOverrideAwGrant, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseCustomDomains$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseCustomDomains' from JSON`, + DeploymentDetailResponsePendingPreparedStackOverrideAwGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackOverrideAwGrant' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseModeLoadBalancer$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseModeLoadBalancer -> = z.enum(DeploymentDetailResponseModeLoadBalancer); - -/** @internal */ -export const DeploymentDetailResponsePublicEndpointTargetLoadBalancer$inboundSchema: - z.ZodType = - z.object({ - cnameTarget: z.string(), - mode: DeploymentDetailResponseModeLoadBalancer$inboundSchema, +export const DeploymentDetailResponsePendingPreparedStackOverrideAw$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackOverrideAwBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: + DeploymentDetailResponsePendingPreparedStackOverrideEffect$inboundSchema + .optional(), + grant: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackOverrideAwGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), }); -export function deploymentDetailResponsePublicEndpointTargetLoadBalancerFromJSON( +export function deploymentDetailResponsePendingPreparedStackOverrideAwFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponsePublicEndpointTargetLoadBalancer, + DeploymentDetailResponsePendingPreparedStackOverrideAw, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponsePublicEndpointTargetLoadBalancer$inboundSchema + DeploymentDetailResponsePendingPreparedStackOverrideAw$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponsePublicEndpointTargetLoadBalancer' from JSON`, + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackOverrideAw' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseModeMachineAddresses$inboundSchema: - z.ZodEnum = z.enum( - DeploymentDetailResponseModeMachineAddresses, +export const DeploymentDetailResponsePendingPreparedStackOverrideAzureResource$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackOverrideAzureResource, + unknown + > = z.object({ + scope: z.string(), + }); + +export function deploymentDetailResponsePendingPreparedStackOverrideAzureResourceFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackOverrideAzureResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponsePendingPreparedStackOverrideAzureResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackOverrideAzureResource' from JSON`, ); +} /** @internal */ -export const DeploymentDetailResponsePublicEndpointTargetMachineAddresses$inboundSchema: +export const DeploymentDetailResponsePendingPreparedStackOverrideAzureStack$inboundSchema: z.ZodType< - DeploymentDetailResponsePublicEndpointTargetMachineAddresses, + DeploymentDetailResponsePendingPreparedStackOverrideAzureStack, unknown > = z.object({ - mode: DeploymentDetailResponseModeMachineAddresses$inboundSchema, + scope: z.string(), }); -export function deploymentDetailResponsePublicEndpointTargetMachineAddressesFromJSON( +export function deploymentDetailResponsePendingPreparedStackOverrideAzureStackFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponsePublicEndpointTargetMachineAddresses, + DeploymentDetailResponsePendingPreparedStackOverrideAzureStack, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponsePublicEndpointTargetMachineAddresses$inboundSchema + DeploymentDetailResponsePendingPreparedStackOverrideAzureStack$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponsePublicEndpointTargetMachineAddresses' from JSON`, + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackOverrideAzureStack' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponsePublicEndpointTargetUnion$inboundSchema: - z.ZodType = z - .union([ - z.lazy(() => - DeploymentDetailResponsePublicEndpointTargetLoadBalancer$inboundSchema - ), - z.lazy(() => - DeploymentDetailResponsePublicEndpointTargetMachineAddresses$inboundSchema - ), - z.any(), - ]); +export const DeploymentDetailResponsePendingPreparedStackOverrideAzureBinding$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackOverrideAzureBinding, + unknown + > = z.object({ + resource: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackOverrideAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackOverrideAzureStack$inboundSchema + ).optional(), + }); -export function deploymentDetailResponsePublicEndpointTargetUnionFromJSON( +export function deploymentDetailResponsePendingPreparedStackOverrideAzureBindingFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponsePublicEndpointTargetUnion, + DeploymentDetailResponsePendingPreparedStackOverrideAzureBinding, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponsePublicEndpointTargetUnion$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponsePublicEndpointTargetUnion' from JSON`, + DeploymentDetailResponsePendingPreparedStackOverrideAzureBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackOverrideAzureBinding' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseDomains$inboundSchema: z.ZodType< - DeploymentDetailResponseDomains, - unknown -> = z.object({ - customDomains: z.nullable( - z.record( - z.string(), - z.lazy(() => DeploymentDetailResponseCustomDomains$inboundSchema), - ), - ).optional(), - publicEndpointTarget: z.nullable( - z.union([ - z.lazy(() => - DeploymentDetailResponsePublicEndpointTargetLoadBalancer$inboundSchema - ), - z.lazy(() => - DeploymentDetailResponsePublicEndpointTargetMachineAddresses$inboundSchema - ), - z.any(), - ]), - ).optional(), -}); +export const DeploymentDetailResponsePendingPreparedStackOverrideAzureGrant$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackOverrideAzureGrant, + unknown + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function deploymentDetailResponseDomainsFromJSON( +export function deploymentDetailResponsePendingPreparedStackOverrideAzureGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackOverrideAzureGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentDetailResponseDomains$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseDomains' from JSON`, + (x) => + DeploymentDetailResponsePendingPreparedStackOverrideAzureGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackOverrideAzureGrant' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseDomainsUnion$inboundSchema: z.ZodType< - DeploymentDetailResponseDomainsUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseDomains$inboundSchema), - z.any(), -]); +export const DeploymentDetailResponsePendingPreparedStackOverrideAzure$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackOverrideAzure, + unknown + > = z.object({ + binding: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackOverrideAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackOverrideAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function deploymentDetailResponseDomainsUnionFromJSON( +export function deploymentDetailResponsePendingPreparedStackOverrideAzureFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackOverrideAzure, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseDomainsUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseDomainsUnion' from JSON`, + DeploymentDetailResponsePendingPreparedStackOverrideAzure$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackOverrideAzure' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExternalBindings$inboundSchema: z.ZodType< - DeploymentDetailResponseExternalBindings, - unknown -> = z.object({}); +export const DeploymentDetailResponsePendingPreparedStackOverrideConditionResource$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackOverrideConditionResource, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function deploymentDetailResponseExternalBindingsFromJSON( +export function deploymentDetailResponsePendingPreparedStackOverrideConditionResourceFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseExternalBindings, + DeploymentDetailResponsePendingPreparedStackOverrideConditionResource, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseExternalBindings$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseExternalBindings' from JSON`, + DeploymentDetailResponsePendingPreparedStackOverrideConditionResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackOverrideConditionResource' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseHeartbeats$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseHeartbeats -> = z.enum(DeploymentDetailResponseHeartbeats); - -/** @internal */ -export const DeploymentDetailResponseCloud$inboundSchema: z.ZodType< - DeploymentDetailResponseCloud, - unknown -> = z.object({ - accountId: z.nullable(z.string()).optional(), - clusterId: z.nullable(z.string()).optional(), - clusterName: z.nullable(z.string()).optional(), - projectId: z.nullable(z.string()).optional(), - region: z.nullable(z.string()).optional(), - resourceGroup: z.nullable(z.string()).optional(), - subscriptionId: z.nullable(z.string()).optional(), -}); +export const DeploymentDetailResponsePendingPreparedStackOverrideResourceConditionUnion$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackOverrideResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackOverrideConditionResource$inboundSchema + ), + z.any(), + ]); -export function deploymentDetailResponseCloudFromJSON( +export function deploymentDetailResponsePendingPreparedStackOverrideResourceConditionUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackOverrideResourceConditionUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentDetailResponseCloud$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseCloud' from JSON`, + (x) => + DeploymentDetailResponsePendingPreparedStackOverrideResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackOverrideResourceConditionUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseCloudUnion$inboundSchema: z.ZodType< - DeploymentDetailResponseCloudUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseCloud$inboundSchema), - z.any(), -]); +export const DeploymentDetailResponsePendingPreparedStackOverrideGcpResource$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackOverrideGcpResource, + unknown + > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackOverrideConditionResource$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function deploymentDetailResponseCloudUnionFromJSON( +export function deploymentDetailResponsePendingPreparedStackOverrideGcpResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackOverrideGcpResource, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseCloudUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseCloudUnion' from JSON`, + DeploymentDetailResponsePendingPreparedStackOverrideGcpResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackOverrideGcpResource' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseOwnership$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseOwnership -> = z.enum(DeploymentDetailResponseOwnership); - -/** @internal */ -export const DeploymentDetailResponseCluster$inboundSchema: z.ZodType< - DeploymentDetailResponseCluster, - unknown -> = z.object({ - cloud: z.nullable( - z.union([ - z.lazy(() => DeploymentDetailResponseCloud$inboundSchema), - z.any(), - ]), - ).optional(), - namespace: z.nullable(z.string()).optional(), - ownership: DeploymentDetailResponseOwnership$inboundSchema, -}); +export const DeploymentDetailResponsePendingPreparedStackOverrideConditionStack$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackOverrideConditionStack, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function deploymentDetailResponseClusterFromJSON( +export function deploymentDetailResponsePendingPreparedStackOverrideConditionStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackOverrideConditionStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentDetailResponseCluster$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseCluster' from JSON`, + (x) => + DeploymentDetailResponsePendingPreparedStackOverrideConditionStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackOverrideConditionStack' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseClusterUnion$inboundSchema: z.ZodType< - DeploymentDetailResponseClusterUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseCluster$inboundSchema), - z.any(), -]); +export const DeploymentDetailResponsePendingPreparedStackOverrideStackConditionUnion$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackOverrideStackConditionUnion, + unknown + > = z.union([ + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackOverrideConditionStack$inboundSchema + ), + z.any(), + ]); -export function deploymentDetailResponseClusterUnionFromJSON( +export function deploymentDetailResponsePendingPreparedStackOverrideStackConditionUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackOverrideStackConditionUnion, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseClusterUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseClusterUnion' from JSON`, + DeploymentDetailResponsePendingPreparedStackOverrideStackConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackOverrideStackConditionUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseCertificateNone2$inboundSchema: z.ZodType< - DeploymentDetailResponseCertificateNone2, - unknown -> = z.object({ - mode: z.literal("none"), -}); +export const DeploymentDetailResponsePendingPreparedStackOverrideGcpStack$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackOverrideGcpStack, + unknown + > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackOverrideConditionStack$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function deploymentDetailResponseCertificateNone2FromJSON( +export function deploymentDetailResponsePendingPreparedStackOverrideGcpStackFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseCertificateNone2, + DeploymentDetailResponsePendingPreparedStackOverrideGcpStack, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseCertificateNone2$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseCertificateNone2' from JSON`, + DeploymentDetailResponsePendingPreparedStackOverrideGcpStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackOverrideGcpStack' from JSON`, ); } -/** @internal */ -export const DeploymentDetailResponseCertificateManagedTLSSecret2$inboundSchema: - z.ZodType = z - .object({ - mode: z.literal("managedTlsSecret"), - secretNameTemplate: z.string(), - }); +/** @internal */ +export const DeploymentDetailResponsePendingPreparedStackOverrideGcpBinding$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackOverrideGcpBinding, + unknown + > = z.object({ + resource: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackOverrideGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackOverrideGcpStack$inboundSchema + ).optional(), + }); -export function deploymentDetailResponseCertificateManagedTLSSecret2FromJSON( +export function deploymentDetailResponsePendingPreparedStackOverrideGcpBindingFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseCertificateManagedTLSSecret2, + DeploymentDetailResponsePendingPreparedStackOverrideGcpBinding, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseCertificateManagedTLSSecret2$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseCertificateManagedTLSSecret2' from JSON`, + DeploymentDetailResponsePendingPreparedStackOverrideGcpBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackOverrideGcpBinding' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseCertificateAwsAcmArn2$inboundSchema: - z.ZodType = z.object({ - certificateArn: z.string(), - mode: z.literal("awsAcmArn"), +export const DeploymentDetailResponsePendingPreparedStackOverrideGcpGrant$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackOverrideGcpGrant, + unknown + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function deploymentDetailResponseCertificateAwsAcmArn2FromJSON( +export function deploymentDetailResponsePendingPreparedStackOverrideGcpGrantFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseCertificateAwsAcmArn2, + DeploymentDetailResponsePendingPreparedStackOverrideGcpGrant, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseCertificateAwsAcmArn2$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseCertificateAwsAcmArn2' from JSON`, + DeploymentDetailResponsePendingPreparedStackOverrideGcpGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackOverrideGcpGrant' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseCertificateManagedAcmImport2$inboundSchema: - z.ZodType = z - .object({ - mode: z.literal("managedAcmImport"), - region: z.nullable(z.string()).optional(), - tags: z.record(z.string(), z.string()).optional(), +export const DeploymentDetailResponsePendingPreparedStackOverrideGcp$inboundSchema: + z.ZodType = + z.object({ + binding: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackOverrideGcpBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackOverrideGcpGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), }); -export function deploymentDetailResponseCertificateManagedAcmImport2FromJSON( +export function deploymentDetailResponsePendingPreparedStackOverrideGcpFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseCertificateManagedAcmImport2, + DeploymentDetailResponsePendingPreparedStackOverrideGcp, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseCertificateManagedAcmImport2$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseCertificateManagedAcmImport2' from JSON`, + DeploymentDetailResponsePendingPreparedStackOverrideGcp$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackOverrideGcp' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseCertificateTLSSecretRef2$inboundSchema: - z.ZodType = z - .object({ - namespace: z.nullable(z.string()).optional(), - secretName: z.string(), - mode: z.literal("tlsSecretRef"), - }); +export const DeploymentDetailResponsePendingPreparedStackOverridePlatforms$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackOverridePlatforms, + unknown + > = z.object({ + aws: z.nullable( + z.array(z.lazy(() => + DeploymentDetailResponsePendingPreparedStackOverrideAw$inboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + DeploymentDetailResponsePendingPreparedStackOverrideAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + DeploymentDetailResponsePendingPreparedStackOverrideGcp$inboundSchema + )), + ).optional(), + }); -export function deploymentDetailResponseCertificateTLSSecretRef2FromJSON( +export function deploymentDetailResponsePendingPreparedStackOverridePlatformsFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseCertificateTLSSecretRef2, + DeploymentDetailResponsePendingPreparedStackOverridePlatforms, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseCertificateTLSSecretRef2$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseCertificateTLSSecretRef2' from JSON`, + DeploymentDetailResponsePendingPreparedStackOverridePlatforms$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackOverridePlatforms' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseCertificateUnion2$inboundSchema: z.ZodType< - DeploymentDetailResponseCertificateUnion2, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseCertificateTLSSecretRef2$inboundSchema), - z.lazy(() => - DeploymentDetailResponseCertificateManagedAcmImport2$inboundSchema - ), - z.lazy(() => DeploymentDetailResponseCertificateAwsAcmArn2$inboundSchema), - z.lazy(() => - DeploymentDetailResponseCertificateManagedTLSSecret2$inboundSchema - ), - z.lazy(() => DeploymentDetailResponseCertificateNone2$inboundSchema), -]); +export const DeploymentDetailResponsePendingPreparedStackOverride$inboundSchema: + z.ZodType = z + .object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackOverridePlatforms$inboundSchema + ), + }); -export function deploymentDetailResponseCertificateUnion2FromJSON( +export function deploymentDetailResponsePendingPreparedStackOverrideFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseCertificateUnion2, + DeploymentDetailResponsePendingPreparedStackOverride, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseCertificateUnion2$inboundSchema.parse( + DeploymentDetailResponsePendingPreparedStackOverride$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseCertificateUnion2' from JSON`, + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackOverride' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseModeCustom$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseModeCustom -> = z.enum(DeploymentDetailResponseModeCustom); - -/** @internal */ -export const DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum4$inboundSchema: - z.ZodEnum< - typeof DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum4 - > = z.enum( - DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum4, - ); - -/** @internal */ -export const DeploymentDetailResponseProviderAzureApplicationGatewayForContainers4$inboundSchema: +export const DeploymentDetailResponsePendingPreparedStackOverrideUnion$inboundSchema: z.ZodType< - DeploymentDetailResponseProviderAzureApplicationGatewayForContainers4, + DeploymentDetailResponsePendingPreparedStackOverrideUnion, unknown - > = z.object({ - albName: z.nullable(z.string()).optional(), - albNamespace: z.nullable(z.string()).optional(), - frontend: z.string(), - provider: - DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum4$inboundSchema, - }); + > = z.union([ + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackOverride$inboundSchema + ), + z.string(), + ]); -export function deploymentDetailResponseProviderAzureApplicationGatewayForContainers4FromJSON( +export function deploymentDetailResponsePendingPreparedStackOverrideUnionFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProviderAzureApplicationGatewayForContainers4, + DeploymentDetailResponsePendingPreparedStackOverrideUnion, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProviderAzureApplicationGatewayForContainers4$inboundSchema + DeploymentDetailResponsePendingPreparedStackOverrideUnion$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseProviderAzureApplicationGatewayForContainers4' from JSON`, + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackOverrideUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProviderGkeGatewayEnum4$inboundSchema: - z.ZodEnum = z.enum( - DeploymentDetailResponseProviderGkeGatewayEnum4, - ); - -/** @internal */ -export const DeploymentDetailResponseProviderGkeGateway4$inboundSchema: - z.ZodType = z.object({ - provider: DeploymentDetailResponseProviderGkeGatewayEnum4$inboundSchema, - staticAddressName: z.nullable(z.string()).optional(), - }); +export const DeploymentDetailResponsePendingPreparedStackManagement2$inboundSchema: + z.ZodType = + z.object({ + override: z.record( + z.string(), + z.array(z.union([ + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackOverride$inboundSchema + ), + z.string(), + ])), + ), + }); -export function deploymentDetailResponseProviderGkeGateway4FromJSON( +export function deploymentDetailResponsePendingPreparedStackManagement2FromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProviderGkeGateway4, + DeploymentDetailResponsePendingPreparedStackManagement2, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProviderGkeGateway4$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseProviderGkeGateway4' from JSON`, + DeploymentDetailResponsePendingPreparedStackManagement2$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackManagement2' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProviderAwsAlbEnum4$inboundSchema: - z.ZodEnum = z.enum( - DeploymentDetailResponseProviderAwsAlbEnum4, - ); - -/** @internal */ -export const DeploymentDetailResponseProviderAwsAlb4$inboundSchema: z.ZodType< - DeploymentDetailResponseProviderAwsAlb4, - unknown -> = z.object({ - ipAddressType: z.nullable(z.string()).optional(), - provider: DeploymentDetailResponseProviderAwsAlbEnum4$inboundSchema, - scheme: z.string(), - subnetIds: z.array(z.string()).optional(), - targetType: z.string(), -}); +export const DeploymentDetailResponsePendingPreparedStackExtendAwResource$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackExtendAwResource, + unknown + > = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function deploymentDetailResponseProviderAwsAlb4FromJSON( +export function deploymentDetailResponsePendingPreparedStackExtendAwResourceFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProviderAwsAlb4, + DeploymentDetailResponsePendingPreparedStackExtendAwResource, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProviderAwsAlb4$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseProviderAwsAlb4' from JSON`, + DeploymentDetailResponsePendingPreparedStackExtendAwResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackExtendAwResource' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProviderUnion4$inboundSchema: z.ZodType< - DeploymentDetailResponseProviderUnion4, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseProviderAwsAlb4$inboundSchema), - z.lazy(() => - DeploymentDetailResponseProviderAzureApplicationGatewayForContainers4$inboundSchema - ), - z.lazy(() => DeploymentDetailResponseProviderGkeGateway4$inboundSchema), - z.any(), -]); +export const DeploymentDetailResponsePendingPreparedStackExtendAwStack$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackExtendAwStack, + unknown + > = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function deploymentDetailResponseProviderUnion4FromJSON( +export function deploymentDetailResponsePendingPreparedStackExtendAwStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackExtendAwStack, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseProviderUnion4$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseProviderUnion4' from JSON`, + DeploymentDetailResponsePendingPreparedStackExtendAwStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackExtendAwStack' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseRouteGateway2$inboundSchema: z.ZodType< - DeploymentDetailResponseRouteGateway2, - unknown -> = z.object({ - annotations: z.record(z.string(), z.string()).optional(), - controller: z.nullable(z.string()).optional(), - gatewayClassName: z.string(), - labels: z.record(z.string(), z.string()).optional(), - listenerPort: z.int(), - provider: z.nullable( - z.union([ - z.lazy(() => DeploymentDetailResponseProviderAwsAlb4$inboundSchema), - z.lazy(() => - DeploymentDetailResponseProviderAzureApplicationGatewayForContainers4$inboundSchema - ), - z.lazy(() => DeploymentDetailResponseProviderGkeGateway4$inboundSchema), - z.any(), - ]), - ).optional(), - routeApi: z.literal("gateway"), -}); +export const DeploymentDetailResponsePendingPreparedStackExtendAwBinding$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackExtendAwBinding, + unknown + > = z.object({ + resource: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackExtendAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackExtendAwStack$inboundSchema + ).optional(), + }); -export function deploymentDetailResponseRouteGateway2FromJSON( +export function deploymentDetailResponsePendingPreparedStackExtendAwBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackExtendAwBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => - DeploymentDetailResponseRouteGateway2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseRouteGateway2' from JSON`, - ); -} - -/** @internal */ -export const DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum3$inboundSchema: - z.ZodEnum< - typeof DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum3 - > = z.enum( - DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum3, + (x) => + DeploymentDetailResponsePendingPreparedStackExtendAwBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackExtendAwBinding' from JSON`, ); +} /** @internal */ -export const DeploymentDetailResponseProviderAzureApplicationGatewayForContainers3$inboundSchema: +export const DeploymentDetailResponsePendingPreparedStackExtendEffect$inboundSchema: + z.ZodEnum = z + .enum(DeploymentDetailResponsePendingPreparedStackExtendEffect); + +/** @internal */ +export const DeploymentDetailResponsePendingPreparedStackExtendAwGrant$inboundSchema: z.ZodType< - DeploymentDetailResponseProviderAzureApplicationGatewayForContainers3, + DeploymentDetailResponsePendingPreparedStackExtendAwGrant, unknown > = z.object({ - albName: z.nullable(z.string()).optional(), - albNamespace: z.nullable(z.string()).optional(), - frontend: z.string(), - provider: - DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum3$inboundSchema, + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function deploymentDetailResponseProviderAzureApplicationGatewayForContainers3FromJSON( +export function deploymentDetailResponsePendingPreparedStackExtendAwGrantFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProviderAzureApplicationGatewayForContainers3, + DeploymentDetailResponsePendingPreparedStackExtendAwGrant, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProviderAzureApplicationGatewayForContainers3$inboundSchema + DeploymentDetailResponsePendingPreparedStackExtendAwGrant$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseProviderAzureApplicationGatewayForContainers3' from JSON`, + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackExtendAwGrant' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProviderGkeGatewayEnum3$inboundSchema: - z.ZodEnum = z.enum( - DeploymentDetailResponseProviderGkeGatewayEnum3, - ); - -/** @internal */ -export const DeploymentDetailResponseProviderGkeGateway3$inboundSchema: - z.ZodType = z.object({ - provider: DeploymentDetailResponseProviderGkeGatewayEnum3$inboundSchema, - staticAddressName: z.nullable(z.string()).optional(), - }); +export const DeploymentDetailResponsePendingPreparedStackExtendAw$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackExtendAwBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: + DeploymentDetailResponsePendingPreparedStackExtendEffect$inboundSchema + .optional(), + grant: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackExtendAwGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function deploymentDetailResponseProviderGkeGateway3FromJSON( +export function deploymentDetailResponsePendingPreparedStackExtendAwFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProviderGkeGateway3, + DeploymentDetailResponsePendingPreparedStackExtendAw, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProviderGkeGateway3$inboundSchema.parse( + DeploymentDetailResponsePendingPreparedStackExtendAw$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseProviderGkeGateway3' from JSON`, + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackExtendAw' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProviderAwsAlbEnum3$inboundSchema: - z.ZodEnum = z.enum( - DeploymentDetailResponseProviderAwsAlbEnum3, - ); - -/** @internal */ -export const DeploymentDetailResponseProviderAwsAlb3$inboundSchema: z.ZodType< - DeploymentDetailResponseProviderAwsAlb3, - unknown -> = z.object({ - ipAddressType: z.nullable(z.string()).optional(), - provider: DeploymentDetailResponseProviderAwsAlbEnum3$inboundSchema, - scheme: z.string(), - subnetIds: z.array(z.string()).optional(), - targetType: z.string(), -}); +export const DeploymentDetailResponsePendingPreparedStackExtendAzureResource$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackExtendAzureResource, + unknown + > = z.object({ + scope: z.string(), + }); -export function deploymentDetailResponseProviderAwsAlb3FromJSON( +export function deploymentDetailResponsePendingPreparedStackExtendAzureResourceFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProviderAwsAlb3, + DeploymentDetailResponsePendingPreparedStackExtendAzureResource, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProviderAwsAlb3$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseProviderAwsAlb3' from JSON`, + DeploymentDetailResponsePendingPreparedStackExtendAzureResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackExtendAzureResource' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProviderUnion3$inboundSchema: z.ZodType< - DeploymentDetailResponseProviderUnion3, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseProviderAwsAlb3$inboundSchema), - z.lazy(() => - DeploymentDetailResponseProviderAzureApplicationGatewayForContainers3$inboundSchema - ), - z.lazy(() => DeploymentDetailResponseProviderGkeGateway3$inboundSchema), - z.any(), -]); +export const DeploymentDetailResponsePendingPreparedStackExtendAzureStack$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackExtendAzureStack, + unknown + > = z.object({ + scope: z.string(), + }); -export function deploymentDetailResponseProviderUnion3FromJSON( +export function deploymentDetailResponsePendingPreparedStackExtendAzureStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackExtendAzureStack, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseProviderUnion3$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseProviderUnion3' from JSON`, + DeploymentDetailResponsePendingPreparedStackExtendAzureStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackExtendAzureStack' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseRouteIngress2$inboundSchema: z.ZodType< - DeploymentDetailResponseRouteIngress2, - unknown -> = z.object({ - annotations: z.record(z.string(), z.string()).optional(), - controller: z.nullable(z.string()).optional(), - ingressClassName: z.string(), - labels: z.record(z.string(), z.string()).optional(), - provider: z.nullable( - z.union([ - z.lazy(() => DeploymentDetailResponseProviderAwsAlb3$inboundSchema), - z.lazy(() => - DeploymentDetailResponseProviderAzureApplicationGatewayForContainers3$inboundSchema - ), - z.lazy(() => DeploymentDetailResponseProviderGkeGateway3$inboundSchema), - z.any(), - ]), - ).optional(), - routeApi: z.literal("ingress"), -}); +export const DeploymentDetailResponsePendingPreparedStackExtendAzureBinding$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackExtendAzureBinding, + unknown + > = z.object({ + resource: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackExtendAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackExtendAzureStack$inboundSchema + ).optional(), + }); -export function deploymentDetailResponseRouteIngress2FromJSON( +export function deploymentDetailResponsePendingPreparedStackExtendAzureBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackExtendAzureBinding, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseRouteIngress2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseRouteIngress2' from JSON`, + DeploymentDetailResponsePendingPreparedStackExtendAzureBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackExtendAzureBinding' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseRouteUnion2$inboundSchema: z.ZodType< - DeploymentDetailResponseRouteUnion2, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseRouteIngress2$inboundSchema), - z.lazy(() => DeploymentDetailResponseRouteGateway2$inboundSchema), -]); +export const DeploymentDetailResponsePendingPreparedStackExtendAzureGrant$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackExtendAzureGrant, + unknown + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function deploymentDetailResponseRouteUnion2FromJSON( +export function deploymentDetailResponsePendingPreparedStackExtendAzureGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackExtendAzureGrant, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseRouteUnion2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseRouteUnion2' from JSON`, + DeploymentDetailResponsePendingPreparedStackExtendAzureGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackExtendAzureGrant' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExposureCustom$inboundSchema: z.ZodType< - DeploymentDetailResponseExposureCustom, - unknown -> = z.object({ - certificate: z.union([ - z.lazy(() => - DeploymentDetailResponseCertificateTLSSecretRef2$inboundSchema - ), - z.lazy(() => - DeploymentDetailResponseCertificateManagedAcmImport2$inboundSchema - ), - z.lazy(() => DeploymentDetailResponseCertificateAwsAcmArn2$inboundSchema), - z.lazy(() => - DeploymentDetailResponseCertificateManagedTLSSecret2$inboundSchema - ), - z.lazy(() => DeploymentDetailResponseCertificateNone2$inboundSchema), - ]), - domain: z.string(), - mode: DeploymentDetailResponseModeCustom$inboundSchema, - route: z.union([ - z.lazy(() => DeploymentDetailResponseRouteIngress2$inboundSchema), - z.lazy(() => DeploymentDetailResponseRouteGateway2$inboundSchema), - ]), -}); +export const DeploymentDetailResponsePendingPreparedStackExtendAzure$inboundSchema: + z.ZodType = + z.object({ + binding: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackExtendAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackExtendAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function deploymentDetailResponseExposureCustomFromJSON( +export function deploymentDetailResponsePendingPreparedStackExtendAzureFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackExtendAzure, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseExposureCustom$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseExposureCustom' from JSON`, + DeploymentDetailResponsePendingPreparedStackExtendAzure$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackExtendAzure' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseCertificateNone1$inboundSchema: z.ZodType< - DeploymentDetailResponseCertificateNone1, - unknown -> = z.object({ - mode: z.literal("none"), -}); +export const DeploymentDetailResponsePendingPreparedStackExtendConditionResource$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackExtendConditionResource, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function deploymentDetailResponseCertificateNone1FromJSON( +export function deploymentDetailResponsePendingPreparedStackExtendConditionResourceFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseCertificateNone1, + DeploymentDetailResponsePendingPreparedStackExtendConditionResource, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseCertificateNone1$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseCertificateNone1' from JSON`, + DeploymentDetailResponsePendingPreparedStackExtendConditionResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackExtendConditionResource' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseCertificateManagedTLSSecret1$inboundSchema: - z.ZodType = z - .object({ - mode: z.literal("managedTlsSecret"), - secretNameTemplate: z.string(), - }); +export const DeploymentDetailResponsePendingPreparedStackExtendResourceConditionUnion$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackExtendResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackExtendConditionResource$inboundSchema + ), + z.any(), + ]); -export function deploymentDetailResponseCertificateManagedTLSSecret1FromJSON( +export function deploymentDetailResponsePendingPreparedStackExtendResourceConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseCertificateManagedTLSSecret1, + DeploymentDetailResponsePendingPreparedStackExtendResourceConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseCertificateManagedTLSSecret1$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseCertificateManagedTLSSecret1' from JSON`, + DeploymentDetailResponsePendingPreparedStackExtendResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackExtendResourceConditionUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseCertificateAwsAcmArn1$inboundSchema: - z.ZodType = z.object({ - certificateArn: z.string(), - mode: z.literal("awsAcmArn"), +export const DeploymentDetailResponsePendingPreparedStackExtendGcpResource$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackExtendGcpResource, + unknown + > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackExtendConditionResource$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), }); -export function deploymentDetailResponseCertificateAwsAcmArn1FromJSON( +export function deploymentDetailResponsePendingPreparedStackExtendGcpResourceFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseCertificateAwsAcmArn1, + DeploymentDetailResponsePendingPreparedStackExtendGcpResource, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseCertificateAwsAcmArn1$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseCertificateAwsAcmArn1' from JSON`, + DeploymentDetailResponsePendingPreparedStackExtendGcpResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackExtendGcpResource' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseCertificateManagedAcmImport1$inboundSchema: - z.ZodType = z - .object({ - mode: z.literal("managedAcmImport"), - region: z.nullable(z.string()).optional(), - tags: z.record(z.string(), z.string()).optional(), - }); +export const DeploymentDetailResponsePendingPreparedStackExtendConditionStack$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackExtendConditionStack, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function deploymentDetailResponseCertificateManagedAcmImport1FromJSON( +export function deploymentDetailResponsePendingPreparedStackExtendConditionStackFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseCertificateManagedAcmImport1, + DeploymentDetailResponsePendingPreparedStackExtendConditionStack, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseCertificateManagedAcmImport1$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseCertificateManagedAcmImport1' from JSON`, + DeploymentDetailResponsePendingPreparedStackExtendConditionStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackExtendConditionStack' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseCertificateTLSSecretRef1$inboundSchema: - z.ZodType = z - .object({ - namespace: z.nullable(z.string()).optional(), - secretName: z.string(), - mode: z.literal("tlsSecretRef"), - }); +export const DeploymentDetailResponsePendingPreparedStackExtendStackConditionUnion$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackExtendStackConditionUnion, + unknown + > = z.union([ + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackExtendConditionStack$inboundSchema + ), + z.any(), + ]); -export function deploymentDetailResponseCertificateTLSSecretRef1FromJSON( +export function deploymentDetailResponsePendingPreparedStackExtendStackConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseCertificateTLSSecretRef1, + DeploymentDetailResponsePendingPreparedStackExtendStackConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseCertificateTLSSecretRef1$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseCertificateTLSSecretRef1' from JSON`, + DeploymentDetailResponsePendingPreparedStackExtendStackConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackExtendStackConditionUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseCertificateUnion1$inboundSchema: z.ZodType< - DeploymentDetailResponseCertificateUnion1, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseCertificateTLSSecretRef1$inboundSchema), - z.lazy(() => - DeploymentDetailResponseCertificateManagedAcmImport1$inboundSchema - ), - z.lazy(() => DeploymentDetailResponseCertificateAwsAcmArn1$inboundSchema), - z.lazy(() => - DeploymentDetailResponseCertificateManagedTLSSecret1$inboundSchema - ), - z.lazy(() => DeploymentDetailResponseCertificateNone1$inboundSchema), -]); +export const DeploymentDetailResponsePendingPreparedStackExtendGcpStack$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackExtendGcpStack, + unknown + > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackExtendConditionStack$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function deploymentDetailResponseCertificateUnion1FromJSON( +export function deploymentDetailResponsePendingPreparedStackExtendGcpStackFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseCertificateUnion1, + DeploymentDetailResponsePendingPreparedStackExtendGcpStack, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseCertificateUnion1$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseCertificateUnion1' from JSON`, + DeploymentDetailResponsePendingPreparedStackExtendGcpStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackExtendGcpStack' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseModeGenerated$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseModeGenerated -> = z.enum(DeploymentDetailResponseModeGenerated); - -/** @internal */ -export const DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum2$inboundSchema: - z.ZodEnum< - typeof DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum2 - > = z.enum( - DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum2, - ); - -/** @internal */ -export const DeploymentDetailResponseProviderAzureApplicationGatewayForContainers2$inboundSchema: +export const DeploymentDetailResponsePendingPreparedStackExtendGcpBinding$inboundSchema: z.ZodType< - DeploymentDetailResponseProviderAzureApplicationGatewayForContainers2, + DeploymentDetailResponsePendingPreparedStackExtendGcpBinding, unknown > = z.object({ - albName: z.nullable(z.string()).optional(), - albNamespace: z.nullable(z.string()).optional(), - frontend: z.string(), - provider: - DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum2$inboundSchema, + resource: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackExtendGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackExtendGcpStack$inboundSchema + ).optional(), }); -export function deploymentDetailResponseProviderAzureApplicationGatewayForContainers2FromJSON( +export function deploymentDetailResponsePendingPreparedStackExtendGcpBindingFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProviderAzureApplicationGatewayForContainers2, + DeploymentDetailResponsePendingPreparedStackExtendGcpBinding, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProviderAzureApplicationGatewayForContainers2$inboundSchema + DeploymentDetailResponsePendingPreparedStackExtendGcpBinding$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseProviderAzureApplicationGatewayForContainers2' from JSON`, + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackExtendGcpBinding' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProviderGkeGatewayEnum2$inboundSchema: - z.ZodEnum = z.enum( - DeploymentDetailResponseProviderGkeGatewayEnum2, - ); - -/** @internal */ -export const DeploymentDetailResponseProviderGkeGateway2$inboundSchema: - z.ZodType = z.object({ - provider: DeploymentDetailResponseProviderGkeGatewayEnum2$inboundSchema, - staticAddressName: z.nullable(z.string()).optional(), +export const DeploymentDetailResponsePendingPreparedStackExtendGcpGrant$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackExtendGcpGrant, + unknown + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function deploymentDetailResponseProviderGkeGateway2FromJSON( +export function deploymentDetailResponsePendingPreparedStackExtendGcpGrantFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProviderGkeGateway2, + DeploymentDetailResponsePendingPreparedStackExtendGcpGrant, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProviderGkeGateway2$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseProviderGkeGateway2' from JSON`, + DeploymentDetailResponsePendingPreparedStackExtendGcpGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackExtendGcpGrant' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProviderAwsAlbEnum2$inboundSchema: - z.ZodEnum = z.enum( - DeploymentDetailResponseProviderAwsAlbEnum2, - ); - -/** @internal */ -export const DeploymentDetailResponseProviderAwsAlb2$inboundSchema: z.ZodType< - DeploymentDetailResponseProviderAwsAlb2, - unknown -> = z.object({ - ipAddressType: z.nullable(z.string()).optional(), - provider: DeploymentDetailResponseProviderAwsAlbEnum2$inboundSchema, - scheme: z.string(), - subnetIds: z.array(z.string()).optional(), - targetType: z.string(), -}); +export const DeploymentDetailResponsePendingPreparedStackExtendGcp$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackExtendGcpBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackExtendGcpGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function deploymentDetailResponseProviderAwsAlb2FromJSON( +export function deploymentDetailResponsePendingPreparedStackExtendGcpFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProviderAwsAlb2, + DeploymentDetailResponsePendingPreparedStackExtendGcp, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProviderAwsAlb2$inboundSchema.parse( + DeploymentDetailResponsePendingPreparedStackExtendGcp$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseProviderAwsAlb2' from JSON`, + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackExtendGcp' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProviderUnion2$inboundSchema: z.ZodType< - DeploymentDetailResponseProviderUnion2, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseProviderAwsAlb2$inboundSchema), - z.lazy(() => - DeploymentDetailResponseProviderAzureApplicationGatewayForContainers2$inboundSchema - ), - z.lazy(() => DeploymentDetailResponseProviderGkeGateway2$inboundSchema), - z.any(), -]); +export const DeploymentDetailResponsePendingPreparedStackExtendPlatforms$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackExtendPlatforms, + unknown + > = z.object({ + aws: z.nullable( + z.array(z.lazy(() => + DeploymentDetailResponsePendingPreparedStackExtendAw$inboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + DeploymentDetailResponsePendingPreparedStackExtendAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + DeploymentDetailResponsePendingPreparedStackExtendGcp$inboundSchema + )), + ).optional(), + }); -export function deploymentDetailResponseProviderUnion2FromJSON( +export function deploymentDetailResponsePendingPreparedStackExtendPlatformsFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackExtendPlatforms, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseProviderUnion2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseProviderUnion2' from JSON`, + DeploymentDetailResponsePendingPreparedStackExtendPlatforms$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackExtendPlatforms' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseRouteGateway1$inboundSchema: z.ZodType< - DeploymentDetailResponseRouteGateway1, - unknown -> = z.object({ - annotations: z.record(z.string(), z.string()).optional(), - controller: z.nullable(z.string()).optional(), - gatewayClassName: z.string(), - labels: z.record(z.string(), z.string()).optional(), - listenerPort: z.int(), - provider: z.nullable( - z.union([ - z.lazy(() => DeploymentDetailResponseProviderAwsAlb2$inboundSchema), - z.lazy(() => - DeploymentDetailResponseProviderAzureApplicationGatewayForContainers2$inboundSchema +export const DeploymentDetailResponsePendingPreparedStackExtend$inboundSchema: + z.ZodType = z + .object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackExtendPlatforms$inboundSchema ), - z.lazy(() => DeploymentDetailResponseProviderGkeGateway2$inboundSchema), - z.any(), - ]), - ).optional(), - routeApi: z.literal("gateway"), -}); + }); -export function deploymentDetailResponseRouteGateway1FromJSON( +export function deploymentDetailResponsePendingPreparedStackExtendFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackExtend, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseRouteGateway1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseRouteGateway1' from JSON`, + DeploymentDetailResponsePendingPreparedStackExtend$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackExtend' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum1$inboundSchema: - z.ZodEnum< - typeof DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum1 - > = z.enum( - DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum1, - ); - -/** @internal */ -export const DeploymentDetailResponseProviderAzureApplicationGatewayForContainers1$inboundSchema: - z.ZodType< - DeploymentDetailResponseProviderAzureApplicationGatewayForContainers1, - unknown - > = z.object({ - albName: z.nullable(z.string()).optional(), - albNamespace: z.nullable(z.string()).optional(), - frontend: z.string(), - provider: - DeploymentDetailResponseProviderAzureApplicationGatewayForContainersEnum1$inboundSchema, - }); +export const DeploymentDetailResponsePendingPreparedStackExtendUnion$inboundSchema: + z.ZodType = + z.union([ + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackExtend$inboundSchema + ), + z.string(), + ]); -export function deploymentDetailResponseProviderAzureApplicationGatewayForContainers1FromJSON( +export function deploymentDetailResponsePendingPreparedStackExtendUnionFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProviderAzureApplicationGatewayForContainers1, + DeploymentDetailResponsePendingPreparedStackExtendUnion, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProviderAzureApplicationGatewayForContainers1$inboundSchema + DeploymentDetailResponsePendingPreparedStackExtendUnion$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseProviderAzureApplicationGatewayForContainers1' from JSON`, + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackExtendUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProviderGkeGatewayEnum1$inboundSchema: - z.ZodEnum = z.enum( - DeploymentDetailResponseProviderGkeGatewayEnum1, - ); +export const DeploymentDetailResponsePendingPreparedStackManagement1$inboundSchema: + z.ZodType = + z.object({ + extend: z.record( + z.string(), + z.array(z.union([ + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackExtend$inboundSchema + ), + z.string(), + ])), + ), + }); -/** @internal */ -export const DeploymentDetailResponseProviderGkeGateway1$inboundSchema: - z.ZodType = z.object({ - provider: DeploymentDetailResponseProviderGkeGatewayEnum1$inboundSchema, - staticAddressName: z.nullable(z.string()).optional(), - }); +export function deploymentDetailResponsePendingPreparedStackManagement1FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackManagement1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponsePendingPreparedStackManagement1$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackManagement1' from JSON`, + ); +} -export function deploymentDetailResponseProviderGkeGateway1FromJSON( +/** @internal */ +export const DeploymentDetailResponsePendingPreparedStackManagementUnion$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackManagementUnion, + unknown + > = z.union([ + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackManagement1$inboundSchema + ), + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackManagement2$inboundSchema + ), + DeploymentDetailResponsePendingPreparedStackManagementEnum$inboundSchema, + ]); + +export function deploymentDetailResponsePendingPreparedStackManagementUnionFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProviderGkeGateway1, + DeploymentDetailResponsePendingPreparedStackManagementUnion, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProviderGkeGateway1$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseProviderGkeGateway1' from JSON`, + DeploymentDetailResponsePendingPreparedStackManagementUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackManagementUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProviderAwsAlbEnum1$inboundSchema: - z.ZodEnum = z.enum( - DeploymentDetailResponseProviderAwsAlbEnum1, - ); - -/** @internal */ -export const DeploymentDetailResponseProviderAwsAlb1$inboundSchema: z.ZodType< - DeploymentDetailResponseProviderAwsAlb1, - unknown -> = z.object({ - ipAddressType: z.nullable(z.string()).optional(), - provider: DeploymentDetailResponseProviderAwsAlbEnum1$inboundSchema, - scheme: z.string(), - subnetIds: z.array(z.string()).optional(), - targetType: z.string(), -}); +export const DeploymentDetailResponsePendingPreparedStackProfileAwResource$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackProfileAwResource, + unknown + > = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function deploymentDetailResponseProviderAwsAlb1FromJSON( +export function deploymentDetailResponsePendingPreparedStackProfileAwResourceFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProviderAwsAlb1, + DeploymentDetailResponsePendingPreparedStackProfileAwResource, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProviderAwsAlb1$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseProviderAwsAlb1' from JSON`, + DeploymentDetailResponsePendingPreparedStackProfileAwResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackProfileAwResource' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProviderUnion1$inboundSchema: z.ZodType< - DeploymentDetailResponseProviderUnion1, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseProviderAwsAlb1$inboundSchema), - z.lazy(() => - DeploymentDetailResponseProviderAzureApplicationGatewayForContainers1$inboundSchema - ), - z.lazy(() => DeploymentDetailResponseProviderGkeGateway1$inboundSchema), - z.any(), -]); +export const DeploymentDetailResponsePendingPreparedStackProfileAwStack$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackProfileAwStack, + unknown + > = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function deploymentDetailResponseProviderUnion1FromJSON( +export function deploymentDetailResponsePendingPreparedStackProfileAwStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackProfileAwStack, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseProviderUnion1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseProviderUnion1' from JSON`, + DeploymentDetailResponsePendingPreparedStackProfileAwStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackProfileAwStack' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseRouteIngress1$inboundSchema: z.ZodType< - DeploymentDetailResponseRouteIngress1, - unknown -> = z.object({ - annotations: z.record(z.string(), z.string()).optional(), - controller: z.nullable(z.string()).optional(), - ingressClassName: z.string(), - labels: z.record(z.string(), z.string()).optional(), - provider: z.nullable( - z.union([ - z.lazy(() => DeploymentDetailResponseProviderAwsAlb1$inboundSchema), - z.lazy(() => - DeploymentDetailResponseProviderAzureApplicationGatewayForContainers1$inboundSchema - ), - z.lazy(() => DeploymentDetailResponseProviderGkeGateway1$inboundSchema), - z.any(), - ]), - ).optional(), - routeApi: z.literal("ingress"), -}); +export const DeploymentDetailResponsePendingPreparedStackProfileAwBinding$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackProfileAwBinding, + unknown + > = z.object({ + resource: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackProfileAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackProfileAwStack$inboundSchema + ).optional(), + }); -export function deploymentDetailResponseRouteIngress1FromJSON( +export function deploymentDetailResponsePendingPreparedStackProfileAwBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackProfileAwBinding, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseRouteIngress1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseRouteIngress1' from JSON`, + DeploymentDetailResponsePendingPreparedStackProfileAwBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackProfileAwBinding' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseRouteUnion1$inboundSchema: z.ZodType< - DeploymentDetailResponseRouteUnion1, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseRouteIngress1$inboundSchema), - z.lazy(() => DeploymentDetailResponseRouteGateway1$inboundSchema), -]); +export const DeploymentDetailResponsePendingPreparedStackProfileEffect$inboundSchema: + z.ZodEnum = + z.enum(DeploymentDetailResponsePendingPreparedStackProfileEffect); -export function deploymentDetailResponseRouteUnion1FromJSON( +/** @internal */ +export const DeploymentDetailResponsePendingPreparedStackProfileAwGrant$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackProfileAwGrant, + unknown + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function deploymentDetailResponsePendingPreparedStackProfileAwGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackProfileAwGrant, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseRouteUnion1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseRouteUnion1' from JSON`, + DeploymentDetailResponsePendingPreparedStackProfileAwGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackProfileAwGrant' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExposureGenerated$inboundSchema: z.ZodType< - DeploymentDetailResponseExposureGenerated, - unknown -> = z.object({ - certificate: z.union([ - z.lazy(() => - DeploymentDetailResponseCertificateTLSSecretRef1$inboundSchema - ), - z.lazy(() => - DeploymentDetailResponseCertificateManagedAcmImport1$inboundSchema - ), - z.lazy(() => DeploymentDetailResponseCertificateAwsAcmArn1$inboundSchema), - z.lazy(() => - DeploymentDetailResponseCertificateManagedTLSSecret1$inboundSchema - ), - z.lazy(() => DeploymentDetailResponseCertificateNone1$inboundSchema), - ]), - mode: DeploymentDetailResponseModeGenerated$inboundSchema, - route: z.union([ - z.lazy(() => DeploymentDetailResponseRouteIngress1$inboundSchema), - z.lazy(() => DeploymentDetailResponseRouteGateway1$inboundSchema), - ]), -}); +export const DeploymentDetailResponsePendingPreparedStackProfileAw$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackProfileAwBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: + DeploymentDetailResponsePendingPreparedStackProfileEffect$inboundSchema + .optional(), + grant: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackProfileAwGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function deploymentDetailResponseExposureGeneratedFromJSON( +export function deploymentDetailResponsePendingPreparedStackProfileAwFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseExposureGenerated, + DeploymentDetailResponsePendingPreparedStackProfileAw, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseExposureGenerated$inboundSchema.parse( + DeploymentDetailResponsePendingPreparedStackProfileAw$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseExposureGenerated' from JSON`, + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackProfileAw' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseModeDisabled$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseModeDisabled -> = z.enum(DeploymentDetailResponseModeDisabled); - -/** @internal */ -export const DeploymentDetailResponseExposureDisabled$inboundSchema: z.ZodType< - DeploymentDetailResponseExposureDisabled, - unknown -> = z.object({ - mode: DeploymentDetailResponseModeDisabled$inboundSchema, -}); +export const DeploymentDetailResponsePendingPreparedStackProfileAzureResource$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackProfileAzureResource, + unknown + > = z.object({ + scope: z.string(), + }); -export function deploymentDetailResponseExposureDisabledFromJSON( +export function deploymentDetailResponsePendingPreparedStackProfileAzureResourceFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseExposureDisabled, + DeploymentDetailResponsePendingPreparedStackProfileAzureResource, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseExposureDisabled$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseExposureDisabled' from JSON`, + DeploymentDetailResponsePendingPreparedStackProfileAzureResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackProfileAzureResource' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExposureUnion$inboundSchema: z.ZodType< - DeploymentDetailResponseExposureUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseExposureCustom$inboundSchema), - z.lazy(() => DeploymentDetailResponseExposureGenerated$inboundSchema), - z.lazy(() => DeploymentDetailResponseExposureDisabled$inboundSchema), - z.any(), -]); +export const DeploymentDetailResponsePendingPreparedStackProfileAzureStack$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackProfileAzureStack, + unknown + > = z.object({ + scope: z.string(), + }); -export function deploymentDetailResponseExposureUnionFromJSON( +export function deploymentDetailResponsePendingPreparedStackProfileAzureStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackProfileAzureStack, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseExposureUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseExposureUnion' from JSON`, + DeploymentDetailResponsePendingPreparedStackProfileAzureStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackProfileAzureStack' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseKubernetes$inboundSchema: z.ZodType< - DeploymentDetailResponseKubernetes, - unknown -> = z.object({ - cluster: z.nullable( - z.union([ - z.lazy(() => DeploymentDetailResponseCluster$inboundSchema), - z.any(), - ]), - ).optional(), - exposure: z.nullable( - z.union([ - z.lazy(() => DeploymentDetailResponseExposureCustom$inboundSchema), - z.lazy(() => DeploymentDetailResponseExposureGenerated$inboundSchema), - z.lazy(() => DeploymentDetailResponseExposureDisabled$inboundSchema), - z.any(), - ]), - ).optional(), -}); +export const DeploymentDetailResponsePendingPreparedStackProfileAzureBinding$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackProfileAzureBinding, + unknown + > = z.object({ + resource: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackProfileAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackProfileAzureStack$inboundSchema + ).optional(), + }); -export function deploymentDetailResponseKubernetesFromJSON( +export function deploymentDetailResponsePendingPreparedStackProfileAzureBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackProfileAzureBinding, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseKubernetes$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseKubernetes' from JSON`, + DeploymentDetailResponsePendingPreparedStackProfileAzureBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackProfileAzureBinding' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseKubernetesUnion$inboundSchema: z.ZodType< - DeploymentDetailResponseKubernetesUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseKubernetes$inboundSchema), - z.any(), -]); +export const DeploymentDetailResponsePendingPreparedStackProfileAzureGrant$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackProfileAzureGrant, + unknown + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function deploymentDetailResponseKubernetesUnionFromJSON( +export function deploymentDetailResponsePendingPreparedStackProfileAzureGrantFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseKubernetesUnion, + DeploymentDetailResponsePendingPreparedStackProfileAzureGrant, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseKubernetesUnion$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseKubernetesUnion' from JSON`, + DeploymentDetailResponsePendingPreparedStackProfileAzureGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackProfileAzureGrant' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseTypeByoVnetAzure$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseTypeByoVnetAzure -> = z.enum(DeploymentDetailResponseTypeByoVnetAzure); - -/** @internal */ -export const DeploymentDetailResponseNetworkByoVnetAzure$inboundSchema: - z.ZodType = z.object({ - application_gateway_subnet_name: z.nullable(z.string()).optional(), - private_endpoint_subnet_name: z.nullable(z.string()).optional(), - private_subnet_name: z.string(), - public_subnet_name: z.string(), - type: DeploymentDetailResponseTypeByoVnetAzure$inboundSchema, - vnet_resource_id: z.string(), - }).transform((v) => { - return remap$(v, { - "application_gateway_subnet_name": "applicationGatewaySubnetName", - "private_endpoint_subnet_name": "privateEndpointSubnetName", - "private_subnet_name": "privateSubnetName", - "public_subnet_name": "publicSubnetName", - "vnet_resource_id": "vnetResourceId", +export const DeploymentDetailResponsePendingPreparedStackProfileAzure$inboundSchema: + z.ZodType = + z.object({ + binding: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackProfileAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackProfileAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), }); - }); -export function deploymentDetailResponseNetworkByoVnetAzureFromJSON( +export function deploymentDetailResponsePendingPreparedStackProfileAzureFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseNetworkByoVnetAzure, + DeploymentDetailResponsePendingPreparedStackProfileAzure, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseNetworkByoVnetAzure$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseNetworkByoVnetAzure' from JSON`, + DeploymentDetailResponsePendingPreparedStackProfileAzure$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackProfileAzure' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseTypeByoVpcGcp$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseTypeByoVpcGcp -> = z.enum(DeploymentDetailResponseTypeByoVpcGcp); - -/** @internal */ -export const DeploymentDetailResponseNetworkByoVpcGcp$inboundSchema: z.ZodType< - DeploymentDetailResponseNetworkByoVpcGcp, - unknown -> = z.object({ - network_name: z.string(), - region: z.string(), - subnet_name: z.string(), - type: DeploymentDetailResponseTypeByoVpcGcp$inboundSchema, -}).transform((v) => { - return remap$(v, { - "network_name": "networkName", - "subnet_name": "subnetName", +export const DeploymentDetailResponsePendingPreparedStackProfileConditionResource$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackProfileConditionResource, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), }); -}); -export function deploymentDetailResponseNetworkByoVpcGcpFromJSON( +export function deploymentDetailResponsePendingPreparedStackProfileConditionResourceFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseNetworkByoVpcGcp, + DeploymentDetailResponsePendingPreparedStackProfileConditionResource, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseNetworkByoVpcGcp$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseNetworkByoVpcGcp' from JSON`, + DeploymentDetailResponsePendingPreparedStackProfileConditionResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackProfileConditionResource' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseTypeByoVpcAws$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseTypeByoVpcAws -> = z.enum(DeploymentDetailResponseTypeByoVpcAws); - -/** @internal */ -export const DeploymentDetailResponseNetworkByoVpcAws$inboundSchema: z.ZodType< - DeploymentDetailResponseNetworkByoVpcAws, - unknown -> = z.object({ - private_subnet_ids: z.array(z.string()), - public_subnet_ids: z.array(z.string()), - security_group_ids: z.array(z.string()).optional(), - type: DeploymentDetailResponseTypeByoVpcAws$inboundSchema, - vpc_id: z.string(), -}).transform((v) => { - return remap$(v, { - "private_subnet_ids": "privateSubnetIds", - "public_subnet_ids": "publicSubnetIds", - "security_group_ids": "securityGroupIds", - "vpc_id": "vpcId", - }); -}); +export const DeploymentDetailResponsePendingPreparedStackProfileResourceConditionUnion$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackProfileResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackProfileConditionResource$inboundSchema + ), + z.any(), + ]); -export function deploymentDetailResponseNetworkByoVpcAwsFromJSON( +export function deploymentDetailResponsePendingPreparedStackProfileResourceConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseNetworkByoVpcAws, + DeploymentDetailResponsePendingPreparedStackProfileResourceConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseNetworkByoVpcAws$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseNetworkByoVpcAws' from JSON`, + DeploymentDetailResponsePendingPreparedStackProfileResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackProfileResourceConditionUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseTypeCreate$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseTypeCreate -> = z.enum(DeploymentDetailResponseTypeCreate); - -/** @internal */ -export const DeploymentDetailResponseNetworkCreate$inboundSchema: z.ZodType< - DeploymentDetailResponseNetworkCreate, - unknown -> = z.object({ - availability_zones: z.int().optional(), - cidr: z.nullable(z.string()).optional(), - type: DeploymentDetailResponseTypeCreate$inboundSchema, -}).transform((v) => { - return remap$(v, { - "availability_zones": "availabilityZones", +export const DeploymentDetailResponsePendingPreparedStackProfileGcpResource$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackProfileGcpResource, + unknown + > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackProfileConditionResource$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), }); -}); -export function deploymentDetailResponseNetworkCreateFromJSON( +export function deploymentDetailResponsePendingPreparedStackProfileGcpResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackProfileGcpResource, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseNetworkCreate$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseNetworkCreate' from JSON`, + DeploymentDetailResponsePendingPreparedStackProfileGcpResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackProfileGcpResource' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseTypeUseDefault$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseTypeUseDefault -> = z.enum(DeploymentDetailResponseTypeUseDefault); - -/** @internal */ -export const DeploymentDetailResponseNetworkUseDefault$inboundSchema: z.ZodType< - DeploymentDetailResponseNetworkUseDefault, - unknown -> = z.object({ - type: DeploymentDetailResponseTypeUseDefault$inboundSchema, -}); +export const DeploymentDetailResponsePendingPreparedStackProfileConditionStack$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackProfileConditionStack, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function deploymentDetailResponseNetworkUseDefaultFromJSON( +export function deploymentDetailResponsePendingPreparedStackProfileConditionStackFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseNetworkUseDefault, + DeploymentDetailResponsePendingPreparedStackProfileConditionStack, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseNetworkUseDefault$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseNetworkUseDefault' from JSON`, + DeploymentDetailResponsePendingPreparedStackProfileConditionStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackProfileConditionStack' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseNetworkUnion$inboundSchema: z.ZodType< - DeploymentDetailResponseNetworkUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseNetworkByoVpcAws$inboundSchema), - z.lazy(() => DeploymentDetailResponseNetworkByoVpcGcp$inboundSchema), - z.lazy(() => DeploymentDetailResponseNetworkByoVnetAzure$inboundSchema), - z.lazy(() => DeploymentDetailResponseNetworkUseDefault$inboundSchema), - z.lazy(() => DeploymentDetailResponseNetworkCreate$inboundSchema), - z.any(), -]); +export const DeploymentDetailResponsePendingPreparedStackProfileStackConditionUnion$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackProfileStackConditionUnion, + unknown + > = z.union([ + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackProfileConditionStack$inboundSchema + ), + z.any(), + ]); -export function deploymentDetailResponseNetworkUnionFromJSON( +export function deploymentDetailResponsePendingPreparedStackProfileStackConditionUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackProfileStackConditionUnion, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseNetworkUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseNetworkUnion' from JSON`, + DeploymentDetailResponsePendingPreparedStackProfileStackConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackProfileStackConditionUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseTelemetry$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseTelemetry -> = z.enum(DeploymentDetailResponseTelemetry); - -/** @internal */ -export const DeploymentDetailResponseUpdates$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseUpdates -> = z.enum(DeploymentDetailResponseUpdates); - -/** @internal */ -export const DeploymentDetailResponseStackSettings$inboundSchema: z.ZodType< - DeploymentDetailResponseStackSettings, - unknown -> = z.object({ - compute: z.nullable( - z.union([ - z.lazy(() => DeploymentDetailResponseCompute$inboundSchema), - z.any(), - ]), - ).optional(), - deploymentModel: DeploymentDetailResponseDeploymentModel$inboundSchema - .optional(), - domains: z.nullable( - z.union([ - z.lazy(() => DeploymentDetailResponseDomains$inboundSchema), - z.any(), - ]), - ).optional(), - externalBindings: z.nullable( - z.lazy(() => DeploymentDetailResponseExternalBindings$inboundSchema), - ).optional(), - heartbeats: DeploymentDetailResponseHeartbeats$inboundSchema.optional(), - kubernetes: z.nullable( - z.union([ - z.lazy(() => DeploymentDetailResponseKubernetes$inboundSchema), - z.any(), - ]), - ).optional(), - network: z.nullable( - z.union([ - z.lazy(() => DeploymentDetailResponseNetworkByoVpcAws$inboundSchema), - z.lazy(() => DeploymentDetailResponseNetworkByoVpcGcp$inboundSchema), - z.lazy(() => DeploymentDetailResponseNetworkByoVnetAzure$inboundSchema), - z.lazy(() => DeploymentDetailResponseNetworkUseDefault$inboundSchema), - z.lazy(() => DeploymentDetailResponseNetworkCreate$inboundSchema), - z.any(), - ]), - ).optional(), - telemetry: DeploymentDetailResponseTelemetry$inboundSchema.optional(), - updates: DeploymentDetailResponseUpdates$inboundSchema.optional(), -}); +export const DeploymentDetailResponsePendingPreparedStackProfileGcpStack$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackProfileGcpStack, + unknown + > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackProfileConditionStack$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function deploymentDetailResponseStackSettingsFromJSON( +export function deploymentDetailResponsePendingPreparedStackProfileGcpStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackProfileGcpStack, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseStackSettings$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseStackSettings' from JSON`, + DeploymentDetailResponsePendingPreparedStackProfileGcpStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackProfileGcpStack' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseStackStatePlatform$inboundSchema: - z.ZodEnum = z.enum( - DeploymentDetailResponseStackStatePlatform, - ); - -/** @internal */ -export const DeploymentDetailResponseStackStateConfig$inboundSchema: z.ZodType< - DeploymentDetailResponseStackStateConfig, - unknown -> = collectExtraKeys$( - z.object({ - id: z.string(), - type: z.string(), - }).catchall(z.any()), - "additionalProperties", - true, -); +export const DeploymentDetailResponsePendingPreparedStackProfileGcpBinding$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackProfileGcpBinding, + unknown + > = z.object({ + resource: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackProfileGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackProfileGcpStack$inboundSchema + ).optional(), + }); -export function deploymentDetailResponseStackStateConfigFromJSON( +export function deploymentDetailResponsePendingPreparedStackProfileGcpBindingFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseStackStateConfig, + DeploymentDetailResponsePendingPreparedStackProfileGcpBinding, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseStackStateConfig$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseStackStateConfig' from JSON`, + DeploymentDetailResponsePendingPreparedStackProfileGcpBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackProfileGcpBinding' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseControllerPlatformEnum$inboundSchema: - z.ZodEnum = z.enum( - DeploymentDetailResponseControllerPlatformEnum, - ); - -/** @internal */ -export const DeploymentDetailResponseControllerPlatformUnion$inboundSchema: - z.ZodType = z.union( - [DeploymentDetailResponseControllerPlatformEnum$inboundSchema, z.any()], - ); +export const DeploymentDetailResponsePendingPreparedStackProfileGcpGrant$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackProfileGcpGrant, + unknown + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function deploymentDetailResponseControllerPlatformUnionFromJSON( +export function deploymentDetailResponsePendingPreparedStackProfileGcpGrantFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseControllerPlatformUnion, + DeploymentDetailResponsePendingPreparedStackProfileGcpGrant, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseControllerPlatformUnion$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseControllerPlatformUnion' from JSON`, + DeploymentDetailResponsePendingPreparedStackProfileGcpGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackProfileGcpGrant' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseStackStateDependency$inboundSchema: - z.ZodType = z.object({ - id: z.string(), - type: z.string(), - }); +export const DeploymentDetailResponsePendingPreparedStackProfileGcp$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackProfileGcpBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackProfileGcpGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function deploymentDetailResponseStackStateDependencyFromJSON( +export function deploymentDetailResponsePendingPreparedStackProfileGcpFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseStackStateDependency, + DeploymentDetailResponsePendingPreparedStackProfileGcp, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseStackStateDependency$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseStackStateDependency' from JSON`, + DeploymentDetailResponsePendingPreparedStackProfileGcp$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackProfileGcp' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseErrorStackState$inboundSchema: z.ZodType< - DeploymentDetailResponseErrorStackState, - unknown -> = z.object({ - code: z.string(), - context: z.nullable(z.any()).optional(), - hint: z.nullable(z.string()).optional(), - httpStatusCode: z.nullable(z.int()).optional(), - internal: z.boolean(), - message: z.string(), - retryable: z.boolean().default(false), - source: z.nullable(z.any()).optional(), -}); +export const DeploymentDetailResponsePendingPreparedStackProfilePlatforms$inboundSchema: + z.ZodType< + DeploymentDetailResponsePendingPreparedStackProfilePlatforms, + unknown + > = z.object({ + aws: z.nullable( + z.array(z.lazy(() => + DeploymentDetailResponsePendingPreparedStackProfileAw$inboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + DeploymentDetailResponsePendingPreparedStackProfileAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + DeploymentDetailResponsePendingPreparedStackProfileGcp$inboundSchema + )), + ).optional(), + }); -export function deploymentDetailResponseErrorStackStateFromJSON( +export function deploymentDetailResponsePendingPreparedStackProfilePlatformsFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseErrorStackState, + DeploymentDetailResponsePendingPreparedStackProfilePlatforms, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseErrorStackState$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseErrorStackState' from JSON`, + DeploymentDetailResponsePendingPreparedStackProfilePlatforms$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackProfilePlatforms' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseErrorUnion$inboundSchema: z.ZodType< - DeploymentDetailResponseErrorUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseErrorStackState$inboundSchema), - z.any(), -]); +export const DeploymentDetailResponsePendingPreparedStackProfile$inboundSchema: + z.ZodType = z + .object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackProfilePlatforms$inboundSchema + ), + }); -export function deploymentDetailResponseErrorUnionFromJSON( +export function deploymentDetailResponsePendingPreparedStackProfileFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackProfile, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseErrorUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseErrorUnion' from JSON`, + DeploymentDetailResponsePendingPreparedStackProfile$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackProfile' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseLifecycleStackStateEnum$inboundSchema: - z.ZodEnum = z.enum( - DeploymentDetailResponseLifecycleStackStateEnum, - ); - -/** @internal */ -export const DeploymentDetailResponseLifecycleUnion$inboundSchema: z.ZodType< - DeploymentDetailResponseLifecycleUnion, - unknown -> = z.union([ - DeploymentDetailResponseLifecycleStackStateEnum$inboundSchema, - z.any(), -]); +export const DeploymentDetailResponsePendingPreparedStackProfileUnion$inboundSchema: + z.ZodType = + z.union([ + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackProfile$inboundSchema + ), + z.string(), + ]); -export function deploymentDetailResponseLifecycleUnionFromJSON( +export function deploymentDetailResponsePendingPreparedStackProfileUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackProfileUnion, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseLifecycleUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseLifecycleUnion' from JSON`, + DeploymentDetailResponsePendingPreparedStackProfileUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackProfileUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseOutputs$inboundSchema: z.ZodType< - DeploymentDetailResponseOutputs, - unknown -> = collectExtraKeys$( - z.object({ - type: z.string(), - }).catchall(z.any()), - "additionalProperties", - true, -); +export const DeploymentDetailResponsePendingPreparedStackPermissions$inboundSchema: + z.ZodType = + z.object({ + management: z.union([ + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackManagement1$inboundSchema + ), + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackManagement2$inboundSchema + ), + DeploymentDetailResponsePendingPreparedStackManagementEnum$inboundSchema, + ]).optional(), + profiles: z.record( + z.string(), + z.record( + z.string(), + z.array( + z.union([ + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackProfile$inboundSchema + ), + z.string(), + ]), + ), + ), + ), + }); -export function deploymentDetailResponseOutputsFromJSON( +export function deploymentDetailResponsePendingPreparedStackPermissionsFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackPermissions, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentDetailResponseOutputs$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseOutputs' from JSON`, + (x) => + DeploymentDetailResponsePendingPreparedStackPermissions$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackPermissions' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseOutputsUnion$inboundSchema: z.ZodType< - DeploymentDetailResponseOutputsUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseOutputs$inboundSchema), - z.any(), -]); +export const DeploymentDetailResponsePendingPreparedStackConfig$inboundSchema: + z.ZodType = + collectExtraKeys$( + z.object({ + id: z.string(), + type: z.string(), + }).catchall(z.any()), + "additionalProperties", + true, + ); -export function deploymentDetailResponseOutputsUnionFromJSON( +export function deploymentDetailResponsePendingPreparedStackConfigFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackConfig, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseOutputsUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseOutputsUnion' from JSON`, + DeploymentDetailResponsePendingPreparedStackConfig$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackConfig' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponsePreviousConfig$inboundSchema: z.ZodType< - DeploymentDetailResponsePreviousConfig, - unknown -> = collectExtraKeys$( - z.object({ - id: z.string(), - type: z.string(), - }).catchall(z.any()), - "additionalProperties", - true, -); +export const DeploymentDetailResponsePendingPreparedStackDependency$inboundSchema: + z.ZodType = z + .object({ + id: z.string(), + type: z.string(), + }); -export function deploymentDetailResponsePreviousConfigFromJSON( +export function deploymentDetailResponsePendingPreparedStackDependencyFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackDependency, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponsePreviousConfig$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponsePreviousConfig' from JSON`, + DeploymentDetailResponsePendingPreparedStackDependency$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackDependency' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponsePreviousConfigUnion$inboundSchema: - z.ZodType = z.union([ - z.lazy(() => DeploymentDetailResponsePreviousConfig$inboundSchema), - z.any(), - ]); +export const DeploymentDetailResponsePendingPreparedStackLifecycle$inboundSchema: + z.ZodEnum = z + .enum(DeploymentDetailResponsePendingPreparedStackLifecycle); -export function deploymentDetailResponsePreviousConfigUnionFromJSON( +/** @internal */ +export const DeploymentDetailResponsePendingPreparedStackResources$inboundSchema: + z.ZodType = z + .object({ + config: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackConfig$inboundSchema + ), + dependencies: z.array( + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackDependency$inboundSchema + ), + ), + enabledWhen: z.nullable(z.string()).optional(), + lifecycle: + DeploymentDetailResponsePendingPreparedStackLifecycle$inboundSchema, + remoteAccess: z.boolean().optional(), + }); + +export function deploymentDetailResponsePendingPreparedStackResourcesFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponsePreviousConfigUnion, + DeploymentDetailResponsePendingPreparedStackResources, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponsePreviousConfigUnion$inboundSchema.parse( + DeploymentDetailResponsePendingPreparedStackResources$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponsePreviousConfigUnion' from JSON`, + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackResources' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseStackStateStatus$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseStackStateStatus -> = z.enum(DeploymentDetailResponseStackStateStatus); +export const DeploymentDetailResponsePendingPreparedStackSupportedPlatform$inboundSchema: + z.ZodEnum< + typeof DeploymentDetailResponsePendingPreparedStackSupportedPlatform + > = z.enum(DeploymentDetailResponsePendingPreparedStackSupportedPlatform); /** @internal */ -export const DeploymentDetailResponseStackStateResources$inboundSchema: - z.ZodType = z.object({ - _internal: z.nullable(z.any()).optional(), - config: z.lazy(() => - DeploymentDetailResponseStackStateConfig$inboundSchema - ), - controllerPlatform: z.nullable( - z.union([ - DeploymentDetailResponseControllerPlatformEnum$inboundSchema, - z.any(), - ]), - ).optional(), - dependencies: z.array( - z.lazy(() => DeploymentDetailResponseStackStateDependency$inboundSchema), - ).optional(), - error: z.nullable( - z.union([ - z.lazy(() => DeploymentDetailResponseErrorStackState$inboundSchema), - z.any(), - ]), - ).optional(), - lastFailedState: z.nullable(z.any()).optional(), - lifecycle: z.nullable( - z.union([ - DeploymentDetailResponseLifecycleStackStateEnum$inboundSchema, - z.any(), - ]), +export const DeploymentDetailResponsePendingPreparedStack$inboundSchema: + z.ZodType = z.object({ + id: z.string(), + inputs: z.array( + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackInput$inboundSchema + ), ).optional(), - outputs: z.nullable( - z.union([ - z.lazy(() => DeploymentDetailResponseOutputs$inboundSchema), - z.any(), - ]), + permissions: z.lazy(() => + DeploymentDetailResponsePendingPreparedStackPermissions$inboundSchema ).optional(), - previousConfig: z.nullable( - z.union([ - z.lazy(() => DeploymentDetailResponsePreviousConfig$inboundSchema), - z.any(), - ]), + resources: z.record( + z.string(), + z.lazy(() => + DeploymentDetailResponsePendingPreparedStackResources$inboundSchema + ), + ), + supportedPlatforms: z.nullable( + z.array( + DeploymentDetailResponsePendingPreparedStackSupportedPlatform$inboundSchema, + ), ).optional(), - remoteBindingParams: z.nullable(z.any()).optional(), - retryAttempt: z.int().optional(), - status: DeploymentDetailResponseStackStateStatus$inboundSchema, - type: z.string(), - }).transform((v) => { - return remap$(v, { - "_internal": "internal", - }); }); -export function deploymentDetailResponseStackStateResourcesFromJSON( +export function deploymentDetailResponsePendingPreparedStackFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseStackStateResources, + DeploymentDetailResponsePendingPreparedStack, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseStackStateResources$inboundSchema.parse( + DeploymentDetailResponsePendingPreparedStack$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseStackStateResources' from JSON`, + `Failed to parse 'DeploymentDetailResponsePendingPreparedStack' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseStackState$inboundSchema: z.ZodType< - DeploymentDetailResponseStackState, - unknown -> = z.object({ - platform: DeploymentDetailResponseStackStatePlatform$inboundSchema, - resourcePrefix: z.string(), - resources: z.record( - z.string(), - z.lazy(() => DeploymentDetailResponseStackStateResources$inboundSchema), - ), -}); +export const DeploymentDetailResponsePendingPreparedStackUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => DeploymentDetailResponsePendingPreparedStack$inboundSchema), + z.any(), + ]); -export function deploymentDetailResponseStackStateFromJSON( +export function deploymentDetailResponsePendingPreparedStackUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePendingPreparedStackUnion, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseStackState$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseStackState' from JSON`, + DeploymentDetailResponsePendingPreparedStackUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePendingPreparedStackUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseTypeStringList$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseTypeStringList -> = z.enum(DeploymentDetailResponseTypeStringList); +export const DeploymentDetailResponsePreparedStackTypeStringList$inboundSchema: + z.ZodEnum = z + .enum(DeploymentDetailResponsePreparedStackTypeStringList); /** @internal */ -export const DeploymentDetailResponseDefaultStringList$inboundSchema: z.ZodType< - DeploymentDetailResponseDefaultStringList, - unknown -> = z.object({ - type: DeploymentDetailResponseTypeStringList$inboundSchema, - value: z.array(z.string()), -}); +export const DeploymentDetailResponsePreparedStackDefaultStringList$inboundSchema: + z.ZodType = z + .object({ + type: DeploymentDetailResponsePreparedStackTypeStringList$inboundSchema, + value: z.array(z.string()), + }); -export function deploymentDetailResponseDefaultStringListFromJSON( +export function deploymentDetailResponsePreparedStackDefaultStringListFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseDefaultStringList, + DeploymentDetailResponsePreparedStackDefaultStringList, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseDefaultStringList$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseDefaultStringList' from JSON`, + DeploymentDetailResponsePreparedStackDefaultStringList$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackDefaultStringList' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseTypeBoolean$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseTypeBoolean -> = z.enum(DeploymentDetailResponseTypeBoolean); +export const DeploymentDetailResponsePreparedStackTypeBoolean$inboundSchema: + z.ZodEnum = z.enum( + DeploymentDetailResponsePreparedStackTypeBoolean, + ); /** @internal */ -export const DeploymentDetailResponseDefaultBoolean$inboundSchema: z.ZodType< - DeploymentDetailResponseDefaultBoolean, - unknown -> = z.object({ - type: DeploymentDetailResponseTypeBoolean$inboundSchema, - value: z.boolean(), -}); +export const DeploymentDetailResponsePreparedStackDefaultBoolean$inboundSchema: + z.ZodType = z + .object({ + type: DeploymentDetailResponsePreparedStackTypeBoolean$inboundSchema, + value: z.boolean(), + }); -export function deploymentDetailResponseDefaultBooleanFromJSON( +export function deploymentDetailResponsePreparedStackDefaultBooleanFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackDefaultBoolean, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseDefaultBoolean$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseDefaultBoolean' from JSON`, + DeploymentDetailResponsePreparedStackDefaultBoolean$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackDefaultBoolean' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseTypeNumber$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseTypeNumber -> = z.enum(DeploymentDetailResponseTypeNumber); +export const DeploymentDetailResponsePreparedStackTypeNumber$inboundSchema: + z.ZodEnum = z.enum( + DeploymentDetailResponsePreparedStackTypeNumber, + ); /** @internal */ -export const DeploymentDetailResponseDefaultNumber$inboundSchema: z.ZodType< - DeploymentDetailResponseDefaultNumber, - unknown -> = z.object({ - type: DeploymentDetailResponseTypeNumber$inboundSchema, - value: z.string(), -}); +export const DeploymentDetailResponsePreparedStackDefaultNumber$inboundSchema: + z.ZodType = z + .object({ + type: DeploymentDetailResponsePreparedStackTypeNumber$inboundSchema, + value: z.string(), + }); -export function deploymentDetailResponseDefaultNumberFromJSON( +export function deploymentDetailResponsePreparedStackDefaultNumberFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackDefaultNumber, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseDefaultNumber$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseDefaultNumber' from JSON`, + DeploymentDetailResponsePreparedStackDefaultNumber$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackDefaultNumber' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseTypeString$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseTypeString -> = z.enum(DeploymentDetailResponseTypeString); +export const DeploymentDetailResponsePreparedStackTypeString$inboundSchema: + z.ZodEnum = z.enum( + DeploymentDetailResponsePreparedStackTypeString, + ); /** @internal */ -export const DeploymentDetailResponseDefaultString$inboundSchema: z.ZodType< - DeploymentDetailResponseDefaultString, - unknown -> = z.object({ - type: DeploymentDetailResponseTypeString$inboundSchema, - value: z.string(), -}); +export const DeploymentDetailResponsePreparedStackDefaultString$inboundSchema: + z.ZodType = z + .object({ + type: DeploymentDetailResponsePreparedStackTypeString$inboundSchema, + value: z.string(), + }); -export function deploymentDetailResponseDefaultStringFromJSON( +export function deploymentDetailResponsePreparedStackDefaultStringFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackDefaultString, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseDefaultString$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseDefaultString' from JSON`, + DeploymentDetailResponsePreparedStackDefaultString$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackDefaultString' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseDefaultUnion$inboundSchema: z.ZodType< - DeploymentDetailResponseDefaultUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseDefaultString$inboundSchema), - z.lazy(() => DeploymentDetailResponseDefaultNumber$inboundSchema), - z.lazy(() => DeploymentDetailResponseDefaultBoolean$inboundSchema), - z.lazy(() => DeploymentDetailResponseDefaultStringList$inboundSchema), - z.any(), -]); +export const DeploymentDetailResponsePreparedStackDefaultUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => + DeploymentDetailResponsePreparedStackDefaultString$inboundSchema + ), + z.lazy(() => + DeploymentDetailResponsePreparedStackDefaultNumber$inboundSchema + ), + z.lazy(() => + DeploymentDetailResponsePreparedStackDefaultBoolean$inboundSchema + ), + z.lazy(() => + DeploymentDetailResponsePreparedStackDefaultStringList$inboundSchema + ), + z.any(), + ]); -export function deploymentDetailResponseDefaultUnionFromJSON( +export function deploymentDetailResponsePreparedStackDefaultUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackDefaultUnion, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseDefaultUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseDefaultUnion' from JSON`, + DeploymentDetailResponsePreparedStackDefaultUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackDefaultUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseTypeEnvEnum$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseTypeEnvEnum -> = z.enum(DeploymentDetailResponseTypeEnvEnum); +export const DeploymentDetailResponsePreparedStackTypeEnvEnum$inboundSchema: + z.ZodEnum = z.enum( + DeploymentDetailResponsePreparedStackTypeEnvEnum, + ); /** @internal */ -export const DeploymentDetailResponseTypeUnion$inboundSchema: z.ZodType< - DeploymentDetailResponseTypeUnion, - unknown -> = z.union([DeploymentDetailResponseTypeEnvEnum$inboundSchema, z.any()]); +export const DeploymentDetailResponsePreparedStackTypeUnion$inboundSchema: + z.ZodType = z.union([ + DeploymentDetailResponsePreparedStackTypeEnvEnum$inboundSchema, + z.any(), + ]); -export function deploymentDetailResponseTypeUnionFromJSON( +export function deploymentDetailResponsePreparedStackTypeUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackTypeUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentDetailResponseTypeUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseTypeUnion' from JSON`, + (x) => + DeploymentDetailResponsePreparedStackTypeUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackTypeUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseEnv$inboundSchema: z.ZodType< - DeploymentDetailResponseEnv, +export const DeploymentDetailResponsePreparedStackEnv$inboundSchema: z.ZodType< + DeploymentDetailResponsePreparedStackEnv, unknown > = z.object({ name: z.string(), targetResources: z.nullable(z.array(z.string())).optional(), type: z.nullable( - z.union([DeploymentDetailResponseTypeEnvEnum$inboundSchema, z.any()]), + z.union([ + DeploymentDetailResponsePreparedStackTypeEnvEnum$inboundSchema, + z.any(), + ]), ).optional(), }); -export function deploymentDetailResponseEnvFromJSON( +export function deploymentDetailResponsePreparedStackEnvFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackEnv, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentDetailResponseEnv$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseEnv' from JSON`, + (x) => + DeploymentDetailResponsePreparedStackEnv$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackEnv' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseKind$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseKind -> = z.enum(DeploymentDetailResponseKind); +export const DeploymentDetailResponsePreparedStackKind$inboundSchema: z.ZodEnum< + typeof DeploymentDetailResponsePreparedStackKind +> = z.enum(DeploymentDetailResponsePreparedStackKind); /** @internal */ export const DeploymentDetailResponsePreparedStackPlatform$inboundSchema: @@ -6314,1899 +10783,2096 @@ export const DeploymentDetailResponsePreparedStackPlatform$inboundSchema: ); /** @internal */ -export const DeploymentDetailResponseProvidedBy$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseProvidedBy -> = z.enum(DeploymentDetailResponseProvidedBy); +export const DeploymentDetailResponsePreparedStackProvidedBy$inboundSchema: + z.ZodEnum = z.enum( + DeploymentDetailResponsePreparedStackProvidedBy, + ); /** @internal */ -export const DeploymentDetailResponseValidation$inboundSchema: z.ZodType< - DeploymentDetailResponseValidation, - unknown -> = z.object({ - format: z.nullable(z.string()).optional(), - max: z.nullable(z.string()).optional(), - maxItems: z.nullable(z.int()).optional(), - maxLength: z.nullable(z.int()).optional(), - min: z.nullable(z.string()).optional(), - minItems: z.nullable(z.int()).optional(), - minLength: z.nullable(z.int()).optional(), - pattern: z.nullable(z.string()).optional(), - values: z.nullable(z.array(z.string())).optional(), -}); +export const DeploymentDetailResponsePreparedStackValidation$inboundSchema: + z.ZodType = z + .object({ + format: z.nullable(z.string()).optional(), + max: z.nullable(z.string()).optional(), + maxItems: z.nullable(z.int()).optional(), + maxLength: z.nullable(z.int()).optional(), + min: z.nullable(z.string()).optional(), + minItems: z.nullable(z.int()).optional(), + minLength: z.nullable(z.int()).optional(), + pattern: z.nullable(z.string()).optional(), + values: z.nullable(z.array(z.string())).optional(), + }); -export function deploymentDetailResponseValidationFromJSON( +export function deploymentDetailResponsePreparedStackValidationFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackValidation, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseValidation$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseValidation' from JSON`, + DeploymentDetailResponsePreparedStackValidation$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackValidation' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseValidationUnion$inboundSchema: z.ZodType< - DeploymentDetailResponseValidationUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseValidation$inboundSchema), - z.any(), -]); +export const DeploymentDetailResponsePreparedStackValidationUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => + DeploymentDetailResponsePreparedStackValidation$inboundSchema + ), + z.any(), + ]); -export function deploymentDetailResponseValidationUnionFromJSON( +export function deploymentDetailResponsePreparedStackValidationUnionFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseValidationUnion, + DeploymentDetailResponsePreparedStackValidationUnion, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseValidationUnion$inboundSchema.parse( + DeploymentDetailResponsePreparedStackValidationUnion$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseValidationUnion' from JSON`, + `Failed to parse 'DeploymentDetailResponsePreparedStackValidationUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseInput$inboundSchema: z.ZodType< - DeploymentDetailResponseInput, - unknown -> = z.object({ - default: z.nullable( - z.union([ - z.lazy(() => DeploymentDetailResponseDefaultString$inboundSchema), - z.lazy(() => DeploymentDetailResponseDefaultNumber$inboundSchema), - z.lazy(() => DeploymentDetailResponseDefaultBoolean$inboundSchema), - z.lazy(() => DeploymentDetailResponseDefaultStringList$inboundSchema), - z.any(), - ]), - ).optional(), - description: z.string(), - env: z.array(z.lazy(() => DeploymentDetailResponseEnv$inboundSchema)) - .optional(), - id: z.string(), - kind: DeploymentDetailResponseKind$inboundSchema, - label: z.string(), - placeholder: z.nullable(z.string()).optional(), - platforms: z.nullable( - z.array(DeploymentDetailResponsePreparedStackPlatform$inboundSchema), - ).optional(), - providedBy: z.array(DeploymentDetailResponseProvidedBy$inboundSchema), - required: z.boolean(), - validation: z.nullable( - z.union([ - z.lazy(() => DeploymentDetailResponseValidation$inboundSchema), - z.any(), - ]), - ).optional(), -}); +export const DeploymentDetailResponsePreparedStackInput$inboundSchema: + z.ZodType = z.object({ + default: z.nullable( + z.union([ + z.lazy(() => + DeploymentDetailResponsePreparedStackDefaultString$inboundSchema + ), + z.lazy(() => + DeploymentDetailResponsePreparedStackDefaultNumber$inboundSchema + ), + z.lazy(() => + DeploymentDetailResponsePreparedStackDefaultBoolean$inboundSchema + ), + z.lazy(() => + DeploymentDetailResponsePreparedStackDefaultStringList$inboundSchema + ), + z.any(), + ]), + ).optional(), + description: z.string(), + env: z.array( + z.lazy(() => DeploymentDetailResponsePreparedStackEnv$inboundSchema), + ).optional(), + id: z.string(), + kind: DeploymentDetailResponsePreparedStackKind$inboundSchema, + label: z.string(), + placeholder: z.nullable(z.string()).optional(), + platforms: z.nullable( + z.array(DeploymentDetailResponsePreparedStackPlatform$inboundSchema), + ).optional(), + providedBy: z.array( + DeploymentDetailResponsePreparedStackProvidedBy$inboundSchema, + ), + required: z.boolean(), + validation: z.nullable( + z.union([ + z.lazy(() => + DeploymentDetailResponsePreparedStackValidation$inboundSchema + ), + z.any(), + ]), + ).optional(), + }); -export function deploymentDetailResponseInputFromJSON( +export function deploymentDetailResponsePreparedStackInputFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackInput, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentDetailResponseInput$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseInput' from JSON`, + (x) => + DeploymentDetailResponsePreparedStackInput$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackInput' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseManagementEnum$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseManagementEnum -> = z.enum(DeploymentDetailResponseManagementEnum); +export const DeploymentDetailResponsePreparedStackManagementEnum$inboundSchema: + z.ZodEnum = z + .enum(DeploymentDetailResponsePreparedStackManagementEnum); /** @internal */ -export const DeploymentDetailResponseOverrideAwResource$inboundSchema: - z.ZodType = z.object({ - condition: z.nullable( - z.record(z.string(), z.record(z.string(), z.string())), - ).optional(), - resources: z.array(z.string()), - }); +export const DeploymentDetailResponsePreparedStackOverrideAwResource$inboundSchema: + z.ZodType = + z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function deploymentDetailResponseOverrideAwResourceFromJSON( +export function deploymentDetailResponsePreparedStackOverrideAwResourceFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseOverrideAwResource, + DeploymentDetailResponsePreparedStackOverrideAwResource, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseOverrideAwResource$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseOverrideAwResource' from JSON`, + DeploymentDetailResponsePreparedStackOverrideAwResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackOverrideAwResource' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseOverrideAwStack$inboundSchema: z.ZodType< - DeploymentDetailResponseOverrideAwStack, - unknown -> = z.object({ - condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) - .optional(), - resources: z.array(z.string()), -}); +export const DeploymentDetailResponsePreparedStackOverrideAwStack$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function deploymentDetailResponseOverrideAwStackFromJSON( +export function deploymentDetailResponsePreparedStackOverrideAwStackFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseOverrideAwStack, + DeploymentDetailResponsePreparedStackOverrideAwStack, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseOverrideAwStack$inboundSchema.parse( + DeploymentDetailResponsePreparedStackOverrideAwStack$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseOverrideAwStack' from JSON`, + `Failed to parse 'DeploymentDetailResponsePreparedStackOverrideAwStack' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseOverrideAwBinding$inboundSchema: z.ZodType< - DeploymentDetailResponseOverrideAwBinding, - unknown -> = z.object({ - resource: z.lazy(() => - DeploymentDetailResponseOverrideAwResource$inboundSchema - ).optional(), - stack: z.lazy(() => DeploymentDetailResponseOverrideAwStack$inboundSchema) - .optional(), -}); +export const DeploymentDetailResponsePreparedStackOverrideAwBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + DeploymentDetailResponsePreparedStackOverrideAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentDetailResponsePreparedStackOverrideAwStack$inboundSchema + ).optional(), + }); -export function deploymentDetailResponseOverrideAwBindingFromJSON( +export function deploymentDetailResponsePreparedStackOverrideAwBindingFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseOverrideAwBinding, + DeploymentDetailResponsePreparedStackOverrideAwBinding, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseOverrideAwBinding$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseOverrideAwBinding' from JSON`, + DeploymentDetailResponsePreparedStackOverrideAwBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackOverrideAwBinding' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseOverrideEffect$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseOverrideEffect -> = z.enum(DeploymentDetailResponseOverrideEffect); +export const DeploymentDetailResponsePreparedStackOverrideEffect$inboundSchema: + z.ZodEnum = z + .enum(DeploymentDetailResponsePreparedStackOverrideEffect); /** @internal */ -export const DeploymentDetailResponseOverrideAwGrant$inboundSchema: z.ZodType< - DeploymentDetailResponseOverrideAwGrant, - unknown -> = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), -}); +export const DeploymentDetailResponsePreparedStackOverrideAwGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function deploymentDetailResponseOverrideAwGrantFromJSON( +export function deploymentDetailResponsePreparedStackOverrideAwGrantFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseOverrideAwGrant, + DeploymentDetailResponsePreparedStackOverrideAwGrant, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseOverrideAwGrant$inboundSchema.parse( + DeploymentDetailResponsePreparedStackOverrideAwGrant$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseOverrideAwGrant' from JSON`, + `Failed to parse 'DeploymentDetailResponsePreparedStackOverrideAwGrant' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseOverrideAw$inboundSchema: z.ZodType< - DeploymentDetailResponseOverrideAw, - unknown -> = z.object({ - binding: z.lazy(() => - DeploymentDetailResponseOverrideAwBinding$inboundSchema - ), - description: z.nullable(z.string()).optional(), - effect: DeploymentDetailResponseOverrideEffect$inboundSchema.optional(), - grant: z.lazy(() => DeploymentDetailResponseOverrideAwGrant$inboundSchema), - label: z.nullable(z.string()).optional(), -}); +export const DeploymentDetailResponsePreparedStackOverrideAw$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + DeploymentDetailResponsePreparedStackOverrideAwBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: DeploymentDetailResponsePreparedStackOverrideEffect$inboundSchema + .optional(), + grant: z.lazy(() => + DeploymentDetailResponsePreparedStackOverrideAwGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function deploymentDetailResponseOverrideAwFromJSON( +export function deploymentDetailResponsePreparedStackOverrideAwFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackOverrideAw, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseOverrideAw$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseOverrideAw' from JSON`, + DeploymentDetailResponsePreparedStackOverrideAw$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackOverrideAw' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseOverrideAzureResource$inboundSchema: - z.ZodType = z.object({ +export const DeploymentDetailResponsePreparedStackOverrideAzureResource$inboundSchema: + z.ZodType< + DeploymentDetailResponsePreparedStackOverrideAzureResource, + unknown + > = z.object({ scope: z.string(), }); -export function deploymentDetailResponseOverrideAzureResourceFromJSON( +export function deploymentDetailResponsePreparedStackOverrideAzureResourceFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseOverrideAzureResource, + DeploymentDetailResponsePreparedStackOverrideAzureResource, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseOverrideAzureResource$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseOverrideAzureResource' from JSON`, + DeploymentDetailResponsePreparedStackOverrideAzureResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackOverrideAzureResource' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseOverrideAzureStack$inboundSchema: - z.ZodType = z.object({ - scope: z.string(), - }); +export const DeploymentDetailResponsePreparedStackOverrideAzureStack$inboundSchema: + z.ZodType = + z.object({ + scope: z.string(), + }); -export function deploymentDetailResponseOverrideAzureStackFromJSON( +export function deploymentDetailResponsePreparedStackOverrideAzureStackFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseOverrideAzureStack, + DeploymentDetailResponsePreparedStackOverrideAzureStack, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseOverrideAzureStack$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseOverrideAzureStack' from JSON`, + DeploymentDetailResponsePreparedStackOverrideAzureStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackOverrideAzureStack' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseOverrideAzureBinding$inboundSchema: - z.ZodType = z.object({ +export const DeploymentDetailResponsePreparedStackOverrideAzureBinding$inboundSchema: + z.ZodType< + DeploymentDetailResponsePreparedStackOverrideAzureBinding, + unknown + > = z.object({ resource: z.lazy(() => - DeploymentDetailResponseOverrideAzureResource$inboundSchema + DeploymentDetailResponsePreparedStackOverrideAzureResource$inboundSchema ).optional(), stack: z.lazy(() => - DeploymentDetailResponseOverrideAzureStack$inboundSchema + DeploymentDetailResponsePreparedStackOverrideAzureStack$inboundSchema ).optional(), }); -export function deploymentDetailResponseOverrideAzureBindingFromJSON( +export function deploymentDetailResponsePreparedStackOverrideAzureBindingFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseOverrideAzureBinding, + DeploymentDetailResponsePreparedStackOverrideAzureBinding, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseOverrideAzureBinding$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseOverrideAzureBinding' from JSON`, + DeploymentDetailResponsePreparedStackOverrideAzureBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackOverrideAzureBinding' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseOverrideAzureGrant$inboundSchema: - z.ZodType = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), - }); +export const DeploymentDetailResponsePreparedStackOverrideAzureGrant$inboundSchema: + z.ZodType = + z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function deploymentDetailResponseOverrideAzureGrantFromJSON( +export function deploymentDetailResponsePreparedStackOverrideAzureGrantFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseOverrideAzureGrant, + DeploymentDetailResponsePreparedStackOverrideAzureGrant, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseOverrideAzureGrant$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseOverrideAzureGrant' from JSON`, - ); -} - -/** @internal */ -export const DeploymentDetailResponseOverrideAzure$inboundSchema: z.ZodType< - DeploymentDetailResponseOverrideAzure, - unknown -> = z.object({ - binding: z.lazy(() => - DeploymentDetailResponseOverrideAzureBinding$inboundSchema - ), - description: z.nullable(z.string()).optional(), - grant: z.lazy(() => DeploymentDetailResponseOverrideAzureGrant$inboundSchema), - label: z.nullable(z.string()).optional(), -}); - -export function deploymentDetailResponseOverrideAzureFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => - DeploymentDetailResponseOverrideAzure$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseOverrideAzure' from JSON`, + DeploymentDetailResponsePreparedStackOverrideAzureGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackOverrideAzureGrant' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseOverrideConditionResource$inboundSchema: - z.ZodType = z +export const DeploymentDetailResponsePreparedStackOverrideAzure$inboundSchema: + z.ZodType = z .object({ - expression: z.string(), - title: z.string(), + binding: z.lazy(() => + DeploymentDetailResponsePreparedStackOverrideAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + DeploymentDetailResponsePreparedStackOverrideAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), }); -export function deploymentDetailResponseOverrideConditionResourceFromJSON( +export function deploymentDetailResponsePreparedStackOverrideAzureFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseOverrideConditionResource, + DeploymentDetailResponsePreparedStackOverrideAzure, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseOverrideConditionResource$inboundSchema.parse( + DeploymentDetailResponsePreparedStackOverrideAzure$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseOverrideConditionResource' from JSON`, + `Failed to parse 'DeploymentDetailResponsePreparedStackOverrideAzure' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseOverrideResourceConditionUnion$inboundSchema: - z.ZodType = z - .union([ - z.lazy(() => - DeploymentDetailResponseOverrideConditionResource$inboundSchema - ), - z.any(), - ]); +export const DeploymentDetailResponsePreparedStackOverrideConditionResource$inboundSchema: + z.ZodType< + DeploymentDetailResponsePreparedStackOverrideConditionResource, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function deploymentDetailResponseOverrideResourceConditionUnionFromJSON( +export function deploymentDetailResponsePreparedStackOverrideConditionResourceFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseOverrideResourceConditionUnion, + DeploymentDetailResponsePreparedStackOverrideConditionResource, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseOverrideResourceConditionUnion$inboundSchema + DeploymentDetailResponsePreparedStackOverrideConditionResource$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseOverrideResourceConditionUnion' from JSON`, + `Failed to parse 'DeploymentDetailResponsePreparedStackOverrideConditionResource' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseOverrideGcpResource$inboundSchema: - z.ZodType = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => - DeploymentDetailResponseOverrideConditionResource$inboundSchema - ), - z.any(), - ]), - ).optional(), - scope: z.string(), - }); +export const DeploymentDetailResponsePreparedStackOverrideResourceConditionUnion$inboundSchema: + z.ZodType< + DeploymentDetailResponsePreparedStackOverrideResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + DeploymentDetailResponsePreparedStackOverrideConditionResource$inboundSchema + ), + z.any(), + ]); -export function deploymentDetailResponseOverrideGcpResourceFromJSON( +export function deploymentDetailResponsePreparedStackOverrideResourceConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseOverrideGcpResource, + DeploymentDetailResponsePreparedStackOverrideResourceConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseOverrideGcpResource$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseOverrideGcpResource' from JSON`, + DeploymentDetailResponsePreparedStackOverrideResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackOverrideResourceConditionUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseOverrideConditionStack$inboundSchema: - z.ZodType = z.object( - { - expression: z.string(), - title: z.string(), - }, - ); +export const DeploymentDetailResponsePreparedStackOverrideGcpResource$inboundSchema: + z.ZodType = + z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + DeploymentDetailResponsePreparedStackOverrideConditionResource$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function deploymentDetailResponseOverrideConditionStackFromJSON( +export function deploymentDetailResponsePreparedStackOverrideGcpResourceFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseOverrideConditionStack, + DeploymentDetailResponsePreparedStackOverrideGcpResource, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseOverrideConditionStack$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseOverrideConditionStack' from JSON`, + DeploymentDetailResponsePreparedStackOverrideGcpResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackOverrideGcpResource' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseOverrideStackConditionUnion$inboundSchema: - z.ZodType = z - .union([ - z.lazy(() => - DeploymentDetailResponseOverrideConditionStack$inboundSchema - ), - z.any(), - ]); +export const DeploymentDetailResponsePreparedStackOverrideConditionStack$inboundSchema: + z.ZodType< + DeploymentDetailResponsePreparedStackOverrideConditionStack, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function deploymentDetailResponseOverrideStackConditionUnionFromJSON( +export function deploymentDetailResponsePreparedStackOverrideConditionStackFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseOverrideStackConditionUnion, + DeploymentDetailResponsePreparedStackOverrideConditionStack, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseOverrideStackConditionUnion$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseOverrideStackConditionUnion' from JSON`, + DeploymentDetailResponsePreparedStackOverrideConditionStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackOverrideConditionStack' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseOverrideGcpStack$inboundSchema: z.ZodType< - DeploymentDetailResponseOverrideGcpStack, - unknown -> = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => - DeploymentDetailResponseOverrideConditionStack$inboundSchema - ), - z.any(), - ]), - ).optional(), - scope: z.string(), -}); +export const DeploymentDetailResponsePreparedStackOverrideStackConditionUnion$inboundSchema: + z.ZodType< + DeploymentDetailResponsePreparedStackOverrideStackConditionUnion, + unknown + > = z.union([ + z.lazy(() => + DeploymentDetailResponsePreparedStackOverrideConditionStack$inboundSchema + ), + z.any(), + ]); -export function deploymentDetailResponseOverrideGcpStackFromJSON( +export function deploymentDetailResponsePreparedStackOverrideStackConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseOverrideGcpStack, + DeploymentDetailResponsePreparedStackOverrideStackConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseOverrideGcpStack$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseOverrideGcpStack' from JSON`, + DeploymentDetailResponsePreparedStackOverrideStackConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackOverrideStackConditionUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseOverrideGcpBinding$inboundSchema: - z.ZodType = z.object({ - resource: z.lazy(() => - DeploymentDetailResponseOverrideGcpResource$inboundSchema - ).optional(), - stack: z.lazy(() => DeploymentDetailResponseOverrideGcpStack$inboundSchema) - .optional(), - }); +export const DeploymentDetailResponsePreparedStackOverrideGcpStack$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.union([ + z.lazy(() => + DeploymentDetailResponsePreparedStackOverrideConditionStack$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function deploymentDetailResponseOverrideGcpBindingFromJSON( +export function deploymentDetailResponsePreparedStackOverrideGcpStackFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseOverrideGcpBinding, + DeploymentDetailResponsePreparedStackOverrideGcpStack, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseOverrideGcpBinding$inboundSchema.parse( + DeploymentDetailResponsePreparedStackOverrideGcpStack$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseOverrideGcpBinding' from JSON`, + `Failed to parse 'DeploymentDetailResponsePreparedStackOverrideGcpStack' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseOverrideGcpGrant$inboundSchema: z.ZodType< - DeploymentDetailResponseOverrideGcpGrant, - unknown -> = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), -}); +export const DeploymentDetailResponsePreparedStackOverrideGcpBinding$inboundSchema: + z.ZodType = + z.object({ + resource: z.lazy(() => + DeploymentDetailResponsePreparedStackOverrideGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentDetailResponsePreparedStackOverrideGcpStack$inboundSchema + ).optional(), + }); -export function deploymentDetailResponseOverrideGcpGrantFromJSON( +export function deploymentDetailResponsePreparedStackOverrideGcpBindingFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseOverrideGcpGrant, + DeploymentDetailResponsePreparedStackOverrideGcpBinding, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseOverrideGcpGrant$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseOverrideGcpGrant' from JSON`, + DeploymentDetailResponsePreparedStackOverrideGcpBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackOverrideGcpBinding' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseOverrideGcp$inboundSchema: z.ZodType< - DeploymentDetailResponseOverrideGcp, - unknown -> = z.object({ - binding: z.lazy(() => - DeploymentDetailResponseOverrideGcpBinding$inboundSchema - ), - description: z.nullable(z.string()).optional(), - grant: z.lazy(() => DeploymentDetailResponseOverrideGcpGrant$inboundSchema), - label: z.nullable(z.string()).optional(), -}); +export const DeploymentDetailResponsePreparedStackOverrideGcpGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function deploymentDetailResponseOverrideGcpFromJSON( +export function deploymentDetailResponsePreparedStackOverrideGcpGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackOverrideGcpGrant, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseOverrideGcp$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseOverrideGcp' from JSON`, + DeploymentDetailResponsePreparedStackOverrideGcpGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackOverrideGcpGrant' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseOverridePlatforms$inboundSchema: z.ZodType< - DeploymentDetailResponseOverridePlatforms, - unknown -> = z.object({ - aws: z.nullable( - z.array(z.lazy(() => DeploymentDetailResponseOverrideAw$inboundSchema)), - ).optional(), - azure: z.nullable( - z.array(z.lazy(() => DeploymentDetailResponseOverrideAzure$inboundSchema)), - ).optional(), - gcp: z.nullable( - z.array(z.lazy(() => DeploymentDetailResponseOverrideGcp$inboundSchema)), - ).optional(), -}); +export const DeploymentDetailResponsePreparedStackOverrideGcp$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + DeploymentDetailResponsePreparedStackOverrideGcpBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + DeploymentDetailResponsePreparedStackOverrideGcpGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function deploymentDetailResponseOverridePlatformsFromJSON( +export function deploymentDetailResponsePreparedStackOverrideGcpFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseOverridePlatforms, + DeploymentDetailResponsePreparedStackOverrideGcp, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseOverridePlatforms$inboundSchema.parse( + DeploymentDetailResponsePreparedStackOverrideGcp$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseOverridePlatforms' from JSON`, + `Failed to parse 'DeploymentDetailResponsePreparedStackOverrideGcp' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseOverride$inboundSchema: z.ZodType< - DeploymentDetailResponseOverride, - unknown -> = z.object({ - description: z.string(), - id: z.string(), - platforms: z.lazy(() => - DeploymentDetailResponseOverridePlatforms$inboundSchema - ), -}); +export const DeploymentDetailResponsePreparedStackOverridePlatforms$inboundSchema: + z.ZodType = z + .object({ + aws: z.nullable( + z.array(z.lazy(() => + DeploymentDetailResponsePreparedStackOverrideAw$inboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + DeploymentDetailResponsePreparedStackOverrideAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + DeploymentDetailResponsePreparedStackOverrideGcp$inboundSchema + )), + ).optional(), + }); -export function deploymentDetailResponseOverrideFromJSON( +export function deploymentDetailResponsePreparedStackOverridePlatformsFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackOverridePlatforms, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentDetailResponseOverride$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseOverride' from JSON`, + (x) => + DeploymentDetailResponsePreparedStackOverridePlatforms$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackOverridePlatforms' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseOverrideUnion$inboundSchema: z.ZodType< - DeploymentDetailResponseOverrideUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseOverride$inboundSchema), - z.string(), -]); +export const DeploymentDetailResponsePreparedStackOverride$inboundSchema: + z.ZodType = z.object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + DeploymentDetailResponsePreparedStackOverridePlatforms$inboundSchema + ), + }); -export function deploymentDetailResponseOverrideUnionFromJSON( +export function deploymentDetailResponsePreparedStackOverrideFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackOverride, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseOverrideUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseOverrideUnion' from JSON`, + DeploymentDetailResponsePreparedStackOverride$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackOverride' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseManagement2$inboundSchema: z.ZodType< - DeploymentDetailResponseManagement2, - unknown -> = z.object({ - override: z.record( - z.string(), - z.array(z.union([ - z.lazy(() => DeploymentDetailResponseOverride$inboundSchema), +export const DeploymentDetailResponsePreparedStackOverrideUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => DeploymentDetailResponsePreparedStackOverride$inboundSchema), z.string(), - ])), - ), -}); + ]); -export function deploymentDetailResponseManagement2FromJSON( +export function deploymentDetailResponsePreparedStackOverrideUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackOverrideUnion, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseManagement2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseManagement2' from JSON`, + DeploymentDetailResponsePreparedStackOverrideUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackOverrideUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExtendAwResource$inboundSchema: z.ZodType< - DeploymentDetailResponseExtendAwResource, - unknown -> = z.object({ - condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) - .optional(), - resources: z.array(z.string()), -}); +export const DeploymentDetailResponsePreparedStackManagement2$inboundSchema: + z.ZodType = z + .object({ + override: z.record( + z.string(), + z.array(z.union([ + z.lazy(() => + DeploymentDetailResponsePreparedStackOverride$inboundSchema + ), + z.string(), + ])), + ), + }); -export function deploymentDetailResponseExtendAwResourceFromJSON( +export function deploymentDetailResponsePreparedStackManagement2FromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseExtendAwResource, + DeploymentDetailResponsePreparedStackManagement2, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseExtendAwResource$inboundSchema.parse( + DeploymentDetailResponsePreparedStackManagement2$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseExtendAwResource' from JSON`, + `Failed to parse 'DeploymentDetailResponsePreparedStackManagement2' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExtendAwStack$inboundSchema: z.ZodType< - DeploymentDetailResponseExtendAwStack, - unknown -> = z.object({ - condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) - .optional(), - resources: z.array(z.string()), -}); +export const DeploymentDetailResponsePreparedStackExtendAwResource$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function deploymentDetailResponseExtendAwStackFromJSON( +export function deploymentDetailResponsePreparedStackExtendAwResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackExtendAwResource, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseExtendAwStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseExtendAwStack' from JSON`, + DeploymentDetailResponsePreparedStackExtendAwResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackExtendAwResource' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExtendAwBinding$inboundSchema: z.ZodType< - DeploymentDetailResponseExtendAwBinding, - unknown -> = z.object({ - resource: z.lazy(() => DeploymentDetailResponseExtendAwResource$inboundSchema) - .optional(), - stack: z.lazy(() => DeploymentDetailResponseExtendAwStack$inboundSchema) - .optional(), -}); +export const DeploymentDetailResponsePreparedStackExtendAwStack$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function deploymentDetailResponseExtendAwBindingFromJSON( +export function deploymentDetailResponsePreparedStackExtendAwStackFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseExtendAwBinding, + DeploymentDetailResponsePreparedStackExtendAwStack, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseExtendAwBinding$inboundSchema.parse( + DeploymentDetailResponsePreparedStackExtendAwStack$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseExtendAwBinding' from JSON`, + `Failed to parse 'DeploymentDetailResponsePreparedStackExtendAwStack' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExtendEffect$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseExtendEffect -> = z.enum(DeploymentDetailResponseExtendEffect); - -/** @internal */ -export const DeploymentDetailResponseExtendAwGrant$inboundSchema: z.ZodType< - DeploymentDetailResponseExtendAwGrant, - unknown -> = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), -}); +export const DeploymentDetailResponsePreparedStackExtendAwBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + DeploymentDetailResponsePreparedStackExtendAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentDetailResponsePreparedStackExtendAwStack$inboundSchema + ).optional(), + }); -export function deploymentDetailResponseExtendAwGrantFromJSON( +export function deploymentDetailResponsePreparedStackExtendAwBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackExtendAwBinding, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseExtendAwGrant$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseExtendAwGrant' from JSON`, + DeploymentDetailResponsePreparedStackExtendAwBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackExtendAwBinding' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExtendAw$inboundSchema: z.ZodType< - DeploymentDetailResponseExtendAw, - unknown -> = z.object({ - binding: z.lazy(() => DeploymentDetailResponseExtendAwBinding$inboundSchema), - description: z.nullable(z.string()).optional(), - effect: DeploymentDetailResponseExtendEffect$inboundSchema.optional(), - grant: z.lazy(() => DeploymentDetailResponseExtendAwGrant$inboundSchema), - label: z.nullable(z.string()).optional(), -}); +export const DeploymentDetailResponsePreparedStackExtendEffect$inboundSchema: + z.ZodEnum = z.enum( + DeploymentDetailResponsePreparedStackExtendEffect, + ); -export function deploymentDetailResponseExtendAwFromJSON( +/** @internal */ +export const DeploymentDetailResponsePreparedStackExtendAwGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function deploymentDetailResponsePreparedStackExtendAwGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackExtendAwGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentDetailResponseExtendAw$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseExtendAw' from JSON`, + (x) => + DeploymentDetailResponsePreparedStackExtendAwGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackExtendAwGrant' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExtendAzureResource$inboundSchema: - z.ZodType = z.object({ - scope: z.string(), +export const DeploymentDetailResponsePreparedStackExtendAw$inboundSchema: + z.ZodType = z.object({ + binding: z.lazy(() => + DeploymentDetailResponsePreparedStackExtendAwBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: DeploymentDetailResponsePreparedStackExtendEffect$inboundSchema + .optional(), + grant: z.lazy(() => + DeploymentDetailResponsePreparedStackExtendAwGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), }); -export function deploymentDetailResponseExtendAzureResourceFromJSON( +export function deploymentDetailResponsePreparedStackExtendAwFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseExtendAzureResource, + DeploymentDetailResponsePreparedStackExtendAw, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseExtendAzureResource$inboundSchema.parse( + DeploymentDetailResponsePreparedStackExtendAw$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseExtendAzureResource' from JSON`, + `Failed to parse 'DeploymentDetailResponsePreparedStackExtendAw' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExtendAzureStack$inboundSchema: z.ZodType< - DeploymentDetailResponseExtendAzureStack, - unknown -> = z.object({ - scope: z.string(), -}); +export const DeploymentDetailResponsePreparedStackExtendAzureResource$inboundSchema: + z.ZodType = + z.object({ + scope: z.string(), + }); -export function deploymentDetailResponseExtendAzureStackFromJSON( +export function deploymentDetailResponsePreparedStackExtendAzureResourceFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseExtendAzureStack, + DeploymentDetailResponsePreparedStackExtendAzureResource, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseExtendAzureStack$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseExtendAzureStack' from JSON`, + DeploymentDetailResponsePreparedStackExtendAzureResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackExtendAzureResource' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExtendAzureBinding$inboundSchema: - z.ZodType = z.object({ - resource: z.lazy(() => - DeploymentDetailResponseExtendAzureResource$inboundSchema - ).optional(), - stack: z.lazy(() => DeploymentDetailResponseExtendAzureStack$inboundSchema) - .optional(), - }); +export const DeploymentDetailResponsePreparedStackExtendAzureStack$inboundSchema: + z.ZodType = z + .object({ + scope: z.string(), + }); -export function deploymentDetailResponseExtendAzureBindingFromJSON( +export function deploymentDetailResponsePreparedStackExtendAzureStackFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseExtendAzureBinding, + DeploymentDetailResponsePreparedStackExtendAzureStack, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseExtendAzureBinding$inboundSchema.parse( + DeploymentDetailResponsePreparedStackExtendAzureStack$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseExtendAzureBinding' from JSON`, + `Failed to parse 'DeploymentDetailResponsePreparedStackExtendAzureStack' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExtendAzureGrant$inboundSchema: z.ZodType< - DeploymentDetailResponseExtendAzureGrant, - unknown -> = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), -}); +export const DeploymentDetailResponsePreparedStackExtendAzureBinding$inboundSchema: + z.ZodType = + z.object({ + resource: z.lazy(() => + DeploymentDetailResponsePreparedStackExtendAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentDetailResponsePreparedStackExtendAzureStack$inboundSchema + ).optional(), + }); -export function deploymentDetailResponseExtendAzureGrantFromJSON( +export function deploymentDetailResponsePreparedStackExtendAzureBindingFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseExtendAzureGrant, + DeploymentDetailResponsePreparedStackExtendAzureBinding, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseExtendAzureGrant$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseExtendAzureGrant' from JSON`, + DeploymentDetailResponsePreparedStackExtendAzureBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackExtendAzureBinding' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExtendAzure$inboundSchema: z.ZodType< - DeploymentDetailResponseExtendAzure, - unknown -> = z.object({ - binding: z.lazy(() => - DeploymentDetailResponseExtendAzureBinding$inboundSchema - ), - description: z.nullable(z.string()).optional(), - grant: z.lazy(() => DeploymentDetailResponseExtendAzureGrant$inboundSchema), - label: z.nullable(z.string()).optional(), -}); +export const DeploymentDetailResponsePreparedStackExtendAzureGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function deploymentDetailResponseExtendAzureFromJSON( +export function deploymentDetailResponsePreparedStackExtendAzureGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackExtendAzureGrant, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseExtendAzure$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseExtendAzure' from JSON`, + DeploymentDetailResponsePreparedStackExtendAzureGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackExtendAzureGrant' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExtendConditionResource$inboundSchema: - z.ZodType = z +export const DeploymentDetailResponsePreparedStackExtendAzure$inboundSchema: + z.ZodType = z .object({ - expression: z.string(), - title: z.string(), + binding: z.lazy(() => + DeploymentDetailResponsePreparedStackExtendAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + DeploymentDetailResponsePreparedStackExtendAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), }); -export function deploymentDetailResponseExtendConditionResourceFromJSON( +export function deploymentDetailResponsePreparedStackExtendAzureFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseExtendConditionResource, + DeploymentDetailResponsePreparedStackExtendAzure, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseExtendConditionResource$inboundSchema.parse( + DeploymentDetailResponsePreparedStackExtendAzure$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseExtendConditionResource' from JSON`, + `Failed to parse 'DeploymentDetailResponsePreparedStackExtendAzure' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExtendResourceConditionUnion$inboundSchema: - z.ZodType = z - .union([ - z.lazy(() => - DeploymentDetailResponseExtendConditionResource$inboundSchema - ), - z.any(), - ]); +export const DeploymentDetailResponsePreparedStackExtendConditionResource$inboundSchema: + z.ZodType< + DeploymentDetailResponsePreparedStackExtendConditionResource, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function deploymentDetailResponseExtendResourceConditionUnionFromJSON( +export function deploymentDetailResponsePreparedStackExtendConditionResourceFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseExtendResourceConditionUnion, + DeploymentDetailResponsePreparedStackExtendConditionResource, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseExtendResourceConditionUnion$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseExtendResourceConditionUnion' from JSON`, + DeploymentDetailResponsePreparedStackExtendConditionResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackExtendConditionResource' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExtendGcpResource$inboundSchema: z.ZodType< - DeploymentDetailResponseExtendGcpResource, - unknown -> = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => - DeploymentDetailResponseExtendConditionResource$inboundSchema - ), - z.any(), - ]), - ).optional(), - scope: z.string(), -}); +export const DeploymentDetailResponsePreparedStackExtendResourceConditionUnion$inboundSchema: + z.ZodType< + DeploymentDetailResponsePreparedStackExtendResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + DeploymentDetailResponsePreparedStackExtendConditionResource$inboundSchema + ), + z.any(), + ]); -export function deploymentDetailResponseExtendGcpResourceFromJSON( +export function deploymentDetailResponsePreparedStackExtendResourceConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseExtendGcpResource, + DeploymentDetailResponsePreparedStackExtendResourceConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseExtendGcpResource$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseExtendGcpResource' from JSON`, + DeploymentDetailResponsePreparedStackExtendResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackExtendResourceConditionUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExtendConditionStack$inboundSchema: - z.ZodType = z.object({ - expression: z.string(), - title: z.string(), - }); +export const DeploymentDetailResponsePreparedStackExtendGcpResource$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.union([ + z.lazy(() => + DeploymentDetailResponsePreparedStackExtendConditionResource$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function deploymentDetailResponseExtendConditionStackFromJSON( +export function deploymentDetailResponsePreparedStackExtendGcpResourceFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseExtendConditionStack, + DeploymentDetailResponsePreparedStackExtendGcpResource, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseExtendConditionStack$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseExtendConditionStack' from JSON`, + DeploymentDetailResponsePreparedStackExtendGcpResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackExtendGcpResource' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExtendStackConditionUnion$inboundSchema: - z.ZodType = z - .union([ - z.lazy(() => DeploymentDetailResponseExtendConditionStack$inboundSchema), - z.any(), - ]); +export const DeploymentDetailResponsePreparedStackExtendConditionStack$inboundSchema: + z.ZodType< + DeploymentDetailResponsePreparedStackExtendConditionStack, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function deploymentDetailResponseExtendStackConditionUnionFromJSON( +export function deploymentDetailResponsePreparedStackExtendConditionStackFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseExtendStackConditionUnion, + DeploymentDetailResponsePreparedStackExtendConditionStack, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseExtendStackConditionUnion$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseExtendStackConditionUnion' from JSON`, + DeploymentDetailResponsePreparedStackExtendConditionStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackExtendConditionStack' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExtendGcpStack$inboundSchema: z.ZodType< - DeploymentDetailResponseExtendGcpStack, - unknown -> = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => DeploymentDetailResponseExtendConditionStack$inboundSchema), - z.any(), - ]), - ).optional(), - scope: z.string(), -}); +export const DeploymentDetailResponsePreparedStackExtendStackConditionUnion$inboundSchema: + z.ZodType< + DeploymentDetailResponsePreparedStackExtendStackConditionUnion, + unknown + > = z.union([ + z.lazy(() => + DeploymentDetailResponsePreparedStackExtendConditionStack$inboundSchema + ), + z.any(), + ]); -export function deploymentDetailResponseExtendGcpStackFromJSON( +export function deploymentDetailResponsePreparedStackExtendStackConditionUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackExtendStackConditionUnion, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseExtendGcpStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseExtendGcpStack' from JSON`, + DeploymentDetailResponsePreparedStackExtendStackConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackExtendStackConditionUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExtendGcpBinding$inboundSchema: z.ZodType< - DeploymentDetailResponseExtendGcpBinding, - unknown -> = z.object({ - resource: z.lazy(() => - DeploymentDetailResponseExtendGcpResource$inboundSchema - ).optional(), - stack: z.lazy(() => DeploymentDetailResponseExtendGcpStack$inboundSchema) - .optional(), -}); +export const DeploymentDetailResponsePreparedStackExtendGcpStack$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.union([ + z.lazy(() => + DeploymentDetailResponsePreparedStackExtendConditionStack$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function deploymentDetailResponseExtendGcpBindingFromJSON( +export function deploymentDetailResponsePreparedStackExtendGcpStackFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseExtendGcpBinding, + DeploymentDetailResponsePreparedStackExtendGcpStack, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseExtendGcpBinding$inboundSchema.parse( + DeploymentDetailResponsePreparedStackExtendGcpStack$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseExtendGcpBinding' from JSON`, + `Failed to parse 'DeploymentDetailResponsePreparedStackExtendGcpStack' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExtendGcpGrant$inboundSchema: z.ZodType< - DeploymentDetailResponseExtendGcpGrant, - unknown -> = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), -}); +export const DeploymentDetailResponsePreparedStackExtendGcpBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + DeploymentDetailResponsePreparedStackExtendGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentDetailResponsePreparedStackExtendGcpStack$inboundSchema + ).optional(), + }); -export function deploymentDetailResponseExtendGcpGrantFromJSON( +export function deploymentDetailResponsePreparedStackExtendGcpBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackExtendGcpBinding, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseExtendGcpGrant$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseExtendGcpGrant' from JSON`, + DeploymentDetailResponsePreparedStackExtendGcpBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackExtendGcpBinding' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExtendGcp$inboundSchema: z.ZodType< - DeploymentDetailResponseExtendGcp, - unknown -> = z.object({ - binding: z.lazy(() => DeploymentDetailResponseExtendGcpBinding$inboundSchema), - description: z.nullable(z.string()).optional(), - grant: z.lazy(() => DeploymentDetailResponseExtendGcpGrant$inboundSchema), - label: z.nullable(z.string()).optional(), -}); +export const DeploymentDetailResponsePreparedStackExtendGcpGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function deploymentDetailResponseExtendGcpFromJSON( +export function deploymentDetailResponsePreparedStackExtendGcpGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackExtendGcpGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentDetailResponseExtendGcp$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseExtendGcp' from JSON`, + (x) => + DeploymentDetailResponsePreparedStackExtendGcpGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackExtendGcpGrant' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExtendPlatforms$inboundSchema: z.ZodType< - DeploymentDetailResponseExtendPlatforms, - unknown -> = z.object({ - aws: z.nullable( - z.array(z.lazy(() => DeploymentDetailResponseExtendAw$inboundSchema)), - ).optional(), - azure: z.nullable( - z.array(z.lazy(() => DeploymentDetailResponseExtendAzure$inboundSchema)), - ).optional(), - gcp: z.nullable( - z.array(z.lazy(() => DeploymentDetailResponseExtendGcp$inboundSchema)), - ).optional(), -}); +export const DeploymentDetailResponsePreparedStackExtendGcp$inboundSchema: + z.ZodType = z.object( + { + binding: z.lazy(() => + DeploymentDetailResponsePreparedStackExtendGcpBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + DeploymentDetailResponsePreparedStackExtendGcpGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }, + ); -export function deploymentDetailResponseExtendPlatformsFromJSON( +export function deploymentDetailResponsePreparedStackExtendGcpFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseExtendPlatforms, + DeploymentDetailResponsePreparedStackExtendGcp, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseExtendPlatforms$inboundSchema.parse( + DeploymentDetailResponsePreparedStackExtendGcp$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseExtendPlatforms' from JSON`, + `Failed to parse 'DeploymentDetailResponsePreparedStackExtendGcp' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExtend$inboundSchema: z.ZodType< - DeploymentDetailResponseExtend, - unknown -> = z.object({ - description: z.string(), - id: z.string(), - platforms: z.lazy(() => - DeploymentDetailResponseExtendPlatforms$inboundSchema - ), -}); +export const DeploymentDetailResponsePreparedStackExtendPlatforms$inboundSchema: + z.ZodType = z + .object({ + aws: z.nullable( + z.array(z.lazy(() => + DeploymentDetailResponsePreparedStackExtendAw$inboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + DeploymentDetailResponsePreparedStackExtendAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + DeploymentDetailResponsePreparedStackExtendGcp$inboundSchema + )), + ).optional(), + }); -export function deploymentDetailResponseExtendFromJSON( +export function deploymentDetailResponsePreparedStackExtendPlatformsFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackExtendPlatforms, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentDetailResponseExtend$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseExtend' from JSON`, + (x) => + DeploymentDetailResponsePreparedStackExtendPlatforms$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackExtendPlatforms' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseExtendUnion$inboundSchema: z.ZodType< - DeploymentDetailResponseExtendUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseExtend$inboundSchema), - z.string(), -]); +export const DeploymentDetailResponsePreparedStackExtend$inboundSchema: + z.ZodType = z.object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + DeploymentDetailResponsePreparedStackExtendPlatforms$inboundSchema + ), + }); -export function deploymentDetailResponseExtendUnionFromJSON( +export function deploymentDetailResponsePreparedStackExtendFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackExtend, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseExtendUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseExtendUnion' from JSON`, + DeploymentDetailResponsePreparedStackExtend$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackExtend' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseManagement1$inboundSchema: z.ZodType< - DeploymentDetailResponseManagement1, - unknown -> = z.object({ - extend: z.record( - z.string(), - z.array(z.union([ - z.lazy(() => DeploymentDetailResponseExtend$inboundSchema), +export const DeploymentDetailResponsePreparedStackExtendUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => DeploymentDetailResponsePreparedStackExtend$inboundSchema), z.string(), - ])), - ), -}); + ]); -export function deploymentDetailResponseManagement1FromJSON( +export function deploymentDetailResponsePreparedStackExtendUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackExtendUnion, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseManagement1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseManagement1' from JSON`, + DeploymentDetailResponsePreparedStackExtendUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackExtendUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseManagementUnion$inboundSchema: z.ZodType< - DeploymentDetailResponseManagementUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseManagement1$inboundSchema), - z.lazy(() => DeploymentDetailResponseManagement2$inboundSchema), - DeploymentDetailResponseManagementEnum$inboundSchema, -]); +export const DeploymentDetailResponsePreparedStackManagement1$inboundSchema: + z.ZodType = z + .object({ + extend: z.record( + z.string(), + z.array(z.union([ + z.lazy(() => + DeploymentDetailResponsePreparedStackExtend$inboundSchema + ), + z.string(), + ])), + ), + }); -export function deploymentDetailResponseManagementUnionFromJSON( +export function deploymentDetailResponsePreparedStackManagement1FromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseManagementUnion, + DeploymentDetailResponsePreparedStackManagement1, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseManagementUnion$inboundSchema.parse( + DeploymentDetailResponsePreparedStackManagement1$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseManagementUnion' from JSON`, + `Failed to parse 'DeploymentDetailResponsePreparedStackManagement1' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProfileAwResource$inboundSchema: z.ZodType< - DeploymentDetailResponseProfileAwResource, - unknown -> = z.object({ - condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) - .optional(), - resources: z.array(z.string()), -}); +export const DeploymentDetailResponsePreparedStackManagementUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => + DeploymentDetailResponsePreparedStackManagement1$inboundSchema + ), + z.lazy(() => + DeploymentDetailResponsePreparedStackManagement2$inboundSchema + ), + DeploymentDetailResponsePreparedStackManagementEnum$inboundSchema, + ]); -export function deploymentDetailResponseProfileAwResourceFromJSON( +export function deploymentDetailResponsePreparedStackManagementUnionFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProfileAwResource, + DeploymentDetailResponsePreparedStackManagementUnion, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProfileAwResource$inboundSchema.parse( + DeploymentDetailResponsePreparedStackManagementUnion$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseProfileAwResource' from JSON`, + `Failed to parse 'DeploymentDetailResponsePreparedStackManagementUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProfileAwStack$inboundSchema: z.ZodType< - DeploymentDetailResponseProfileAwStack, - unknown -> = z.object({ - condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) - .optional(), - resources: z.array(z.string()), -}); +export const DeploymentDetailResponsePreparedStackProfileAwResource$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function deploymentDetailResponseProfileAwStackFromJSON( +export function deploymentDetailResponsePreparedStackProfileAwResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackProfileAwResource, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseProfileAwStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseProfileAwStack' from JSON`, + DeploymentDetailResponsePreparedStackProfileAwResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackProfileAwResource' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProfileAwBinding$inboundSchema: z.ZodType< - DeploymentDetailResponseProfileAwBinding, - unknown -> = z.object({ - resource: z.lazy(() => - DeploymentDetailResponseProfileAwResource$inboundSchema - ).optional(), - stack: z.lazy(() => DeploymentDetailResponseProfileAwStack$inboundSchema) - .optional(), -}); +export const DeploymentDetailResponsePreparedStackProfileAwStack$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); + +export function deploymentDetailResponsePreparedStackProfileAwStackFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponsePreparedStackProfileAwStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponsePreparedStackProfileAwStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackProfileAwStack' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponsePreparedStackProfileAwBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + DeploymentDetailResponsePreparedStackProfileAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentDetailResponsePreparedStackProfileAwStack$inboundSchema + ).optional(), + }); -export function deploymentDetailResponseProfileAwBindingFromJSON( +export function deploymentDetailResponsePreparedStackProfileAwBindingFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProfileAwBinding, + DeploymentDetailResponsePreparedStackProfileAwBinding, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProfileAwBinding$inboundSchema.parse( + DeploymentDetailResponsePreparedStackProfileAwBinding$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseProfileAwBinding' from JSON`, + `Failed to parse 'DeploymentDetailResponsePreparedStackProfileAwBinding' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProfileEffect$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseProfileEffect -> = z.enum(DeploymentDetailResponseProfileEffect); +export const DeploymentDetailResponsePreparedStackProfileEffect$inboundSchema: + z.ZodEnum = z.enum( + DeploymentDetailResponsePreparedStackProfileEffect, + ); /** @internal */ -export const DeploymentDetailResponseProfileAwGrant$inboundSchema: z.ZodType< - DeploymentDetailResponseProfileAwGrant, - unknown -> = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), -}); +export const DeploymentDetailResponsePreparedStackProfileAwGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function deploymentDetailResponseProfileAwGrantFromJSON( +export function deploymentDetailResponsePreparedStackProfileAwGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackProfileAwGrant, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseProfileAwGrant$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseProfileAwGrant' from JSON`, + DeploymentDetailResponsePreparedStackProfileAwGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackProfileAwGrant' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProfileAw$inboundSchema: z.ZodType< - DeploymentDetailResponseProfileAw, - unknown -> = z.object({ - binding: z.lazy(() => DeploymentDetailResponseProfileAwBinding$inboundSchema), - description: z.nullable(z.string()).optional(), - effect: DeploymentDetailResponseProfileEffect$inboundSchema.optional(), - grant: z.lazy(() => DeploymentDetailResponseProfileAwGrant$inboundSchema), - label: z.nullable(z.string()).optional(), -}); +export const DeploymentDetailResponsePreparedStackProfileAw$inboundSchema: + z.ZodType = z.object( + { + binding: z.lazy(() => + DeploymentDetailResponsePreparedStackProfileAwBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: DeploymentDetailResponsePreparedStackProfileEffect$inboundSchema + .optional(), + grant: z.lazy(() => + DeploymentDetailResponsePreparedStackProfileAwGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }, + ); -export function deploymentDetailResponseProfileAwFromJSON( +export function deploymentDetailResponsePreparedStackProfileAwFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackProfileAw, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentDetailResponseProfileAw$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseProfileAw' from JSON`, + (x) => + DeploymentDetailResponsePreparedStackProfileAw$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackProfileAw' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProfileAzureResource$inboundSchema: - z.ZodType = z.object({ +export const DeploymentDetailResponsePreparedStackProfileAzureResource$inboundSchema: + z.ZodType< + DeploymentDetailResponsePreparedStackProfileAzureResource, + unknown + > = z.object({ scope: z.string(), }); -export function deploymentDetailResponseProfileAzureResourceFromJSON( +export function deploymentDetailResponsePreparedStackProfileAzureResourceFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProfileAzureResource, + DeploymentDetailResponsePreparedStackProfileAzureResource, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProfileAzureResource$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseProfileAzureResource' from JSON`, + DeploymentDetailResponsePreparedStackProfileAzureResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackProfileAzureResource' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProfileAzureStack$inboundSchema: z.ZodType< - DeploymentDetailResponseProfileAzureStack, - unknown -> = z.object({ - scope: z.string(), -}); +export const DeploymentDetailResponsePreparedStackProfileAzureStack$inboundSchema: + z.ZodType = z + .object({ + scope: z.string(), + }); -export function deploymentDetailResponseProfileAzureStackFromJSON( +export function deploymentDetailResponsePreparedStackProfileAzureStackFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProfileAzureStack, + DeploymentDetailResponsePreparedStackProfileAzureStack, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProfileAzureStack$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseProfileAzureStack' from JSON`, + DeploymentDetailResponsePreparedStackProfileAzureStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackProfileAzureStack' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProfileAzureBinding$inboundSchema: - z.ZodType = z.object({ - resource: z.lazy(() => - DeploymentDetailResponseProfileAzureResource$inboundSchema - ).optional(), - stack: z.lazy(() => DeploymentDetailResponseProfileAzureStack$inboundSchema) - .optional(), - }); +export const DeploymentDetailResponsePreparedStackProfileAzureBinding$inboundSchema: + z.ZodType = + z.object({ + resource: z.lazy(() => + DeploymentDetailResponsePreparedStackProfileAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentDetailResponsePreparedStackProfileAzureStack$inboundSchema + ).optional(), + }); -export function deploymentDetailResponseProfileAzureBindingFromJSON( +export function deploymentDetailResponsePreparedStackProfileAzureBindingFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProfileAzureBinding, + DeploymentDetailResponsePreparedStackProfileAzureBinding, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProfileAzureBinding$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseProfileAzureBinding' from JSON`, + DeploymentDetailResponsePreparedStackProfileAzureBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackProfileAzureBinding' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProfileAzureGrant$inboundSchema: z.ZodType< - DeploymentDetailResponseProfileAzureGrant, - unknown -> = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), -}); +export const DeploymentDetailResponsePreparedStackProfileAzureGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function deploymentDetailResponseProfileAzureGrantFromJSON( +export function deploymentDetailResponsePreparedStackProfileAzureGrantFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProfileAzureGrant, + DeploymentDetailResponsePreparedStackProfileAzureGrant, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProfileAzureGrant$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseProfileAzureGrant' from JSON`, + DeploymentDetailResponsePreparedStackProfileAzureGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackProfileAzureGrant' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProfileAzure$inboundSchema: z.ZodType< - DeploymentDetailResponseProfileAzure, - unknown -> = z.object({ - binding: z.lazy(() => - DeploymentDetailResponseProfileAzureBinding$inboundSchema - ), - description: z.nullable(z.string()).optional(), - grant: z.lazy(() => DeploymentDetailResponseProfileAzureGrant$inboundSchema), - label: z.nullable(z.string()).optional(), -}); +export const DeploymentDetailResponsePreparedStackProfileAzure$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + DeploymentDetailResponsePreparedStackProfileAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + DeploymentDetailResponsePreparedStackProfileAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function deploymentDetailResponseProfileAzureFromJSON( +export function deploymentDetailResponsePreparedStackProfileAzureFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackProfileAzure, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseProfileAzure$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseProfileAzure' from JSON`, + DeploymentDetailResponsePreparedStackProfileAzure$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackProfileAzure' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProfileConditionResource$inboundSchema: - z.ZodType = z - .object({ - expression: z.string(), - title: z.string(), - }); +export const DeploymentDetailResponsePreparedStackProfileConditionResource$inboundSchema: + z.ZodType< + DeploymentDetailResponsePreparedStackProfileConditionResource, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function deploymentDetailResponseProfileConditionResourceFromJSON( +export function deploymentDetailResponsePreparedStackProfileConditionResourceFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProfileConditionResource, + DeploymentDetailResponsePreparedStackProfileConditionResource, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProfileConditionResource$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseProfileConditionResource' from JSON`, + DeploymentDetailResponsePreparedStackProfileConditionResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackProfileConditionResource' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProfileResourceConditionUnion$inboundSchema: - z.ZodType = z - .union([ - z.lazy(() => - DeploymentDetailResponseProfileConditionResource$inboundSchema - ), - z.any(), - ]); +export const DeploymentDetailResponsePreparedStackProfileResourceConditionUnion$inboundSchema: + z.ZodType< + DeploymentDetailResponsePreparedStackProfileResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + DeploymentDetailResponsePreparedStackProfileConditionResource$inboundSchema + ), + z.any(), + ]); -export function deploymentDetailResponseProfileResourceConditionUnionFromJSON( +export function deploymentDetailResponsePreparedStackProfileResourceConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProfileResourceConditionUnion, + DeploymentDetailResponsePreparedStackProfileResourceConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProfileResourceConditionUnion$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseProfileResourceConditionUnion' from JSON`, + DeploymentDetailResponsePreparedStackProfileResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackProfileResourceConditionUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProfileGcpResource$inboundSchema: - z.ZodType = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => - DeploymentDetailResponseProfileConditionResource$inboundSchema - ), - z.any(), - ]), - ).optional(), - scope: z.string(), - }); +export const DeploymentDetailResponsePreparedStackProfileGcpResource$inboundSchema: + z.ZodType = + z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + DeploymentDetailResponsePreparedStackProfileConditionResource$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function deploymentDetailResponseProfileGcpResourceFromJSON( +export function deploymentDetailResponsePreparedStackProfileGcpResourceFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProfileGcpResource, + DeploymentDetailResponsePreparedStackProfileGcpResource, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProfileGcpResource$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseProfileGcpResource' from JSON`, + DeploymentDetailResponsePreparedStackProfileGcpResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackProfileGcpResource' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProfileConditionStack$inboundSchema: - z.ZodType = z.object({ +export const DeploymentDetailResponsePreparedStackProfileConditionStack$inboundSchema: + z.ZodType< + DeploymentDetailResponsePreparedStackProfileConditionStack, + unknown + > = z.object({ expression: z.string(), title: z.string(), }); -export function deploymentDetailResponseProfileConditionStackFromJSON( +export function deploymentDetailResponsePreparedStackProfileConditionStackFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProfileConditionStack, + DeploymentDetailResponsePreparedStackProfileConditionStack, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProfileConditionStack$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseProfileConditionStack' from JSON`, + DeploymentDetailResponsePreparedStackProfileConditionStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackProfileConditionStack' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProfileStackConditionUnion$inboundSchema: - z.ZodType = z - .union([ - z.lazy(() => DeploymentDetailResponseProfileConditionStack$inboundSchema), - z.any(), - ]); +export const DeploymentDetailResponsePreparedStackProfileStackConditionUnion$inboundSchema: + z.ZodType< + DeploymentDetailResponsePreparedStackProfileStackConditionUnion, + unknown + > = z.union([ + z.lazy(() => + DeploymentDetailResponsePreparedStackProfileConditionStack$inboundSchema + ), + z.any(), + ]); -export function deploymentDetailResponseProfileStackConditionUnionFromJSON( +export function deploymentDetailResponsePreparedStackProfileStackConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProfileStackConditionUnion, + DeploymentDetailResponsePreparedStackProfileStackConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProfileStackConditionUnion$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseProfileStackConditionUnion' from JSON`, + DeploymentDetailResponsePreparedStackProfileStackConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackProfileStackConditionUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProfileGcpStack$inboundSchema: z.ZodType< - DeploymentDetailResponseProfileGcpStack, - unknown -> = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => DeploymentDetailResponseProfileConditionStack$inboundSchema), - z.any(), - ]), - ).optional(), - scope: z.string(), -}); +export const DeploymentDetailResponsePreparedStackProfileGcpStack$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.union([ + z.lazy(() => + DeploymentDetailResponsePreparedStackProfileConditionStack$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function deploymentDetailResponseProfileGcpStackFromJSON( +export function deploymentDetailResponsePreparedStackProfileGcpStackFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProfileGcpStack, + DeploymentDetailResponsePreparedStackProfileGcpStack, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProfileGcpStack$inboundSchema.parse( + DeploymentDetailResponsePreparedStackProfileGcpStack$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseProfileGcpStack' from JSON`, + `Failed to parse 'DeploymentDetailResponsePreparedStackProfileGcpStack' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProfileGcpBinding$inboundSchema: z.ZodType< - DeploymentDetailResponseProfileGcpBinding, - unknown -> = z.object({ - resource: z.lazy(() => - DeploymentDetailResponseProfileGcpResource$inboundSchema - ).optional(), - stack: z.lazy(() => DeploymentDetailResponseProfileGcpStack$inboundSchema) - .optional(), -}); +export const DeploymentDetailResponsePreparedStackProfileGcpBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + DeploymentDetailResponsePreparedStackProfileGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + DeploymentDetailResponsePreparedStackProfileGcpStack$inboundSchema + ).optional(), + }); -export function deploymentDetailResponseProfileGcpBindingFromJSON( +export function deploymentDetailResponsePreparedStackProfileGcpBindingFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProfileGcpBinding, + DeploymentDetailResponsePreparedStackProfileGcpBinding, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProfileGcpBinding$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'DeploymentDetailResponseProfileGcpBinding' from JSON`, + DeploymentDetailResponsePreparedStackProfileGcpBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentDetailResponsePreparedStackProfileGcpBinding' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProfileGcpGrant$inboundSchema: z.ZodType< - DeploymentDetailResponseProfileGcpGrant, - unknown -> = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), -}); +export const DeploymentDetailResponsePreparedStackProfileGcpGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function deploymentDetailResponseProfileGcpGrantFromJSON( +export function deploymentDetailResponsePreparedStackProfileGcpGrantFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProfileGcpGrant, + DeploymentDetailResponsePreparedStackProfileGcpGrant, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProfileGcpGrant$inboundSchema.parse( + DeploymentDetailResponsePreparedStackProfileGcpGrant$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseProfileGcpGrant' from JSON`, + `Failed to parse 'DeploymentDetailResponsePreparedStackProfileGcpGrant' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProfileGcp$inboundSchema: z.ZodType< - DeploymentDetailResponseProfileGcp, - unknown -> = z.object({ - binding: z.lazy(() => - DeploymentDetailResponseProfileGcpBinding$inboundSchema - ), - description: z.nullable(z.string()).optional(), - grant: z.lazy(() => DeploymentDetailResponseProfileGcpGrant$inboundSchema), - label: z.nullable(z.string()).optional(), -}); +export const DeploymentDetailResponsePreparedStackProfileGcp$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + DeploymentDetailResponsePreparedStackProfileGcpBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + DeploymentDetailResponsePreparedStackProfileGcpGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function deploymentDetailResponseProfileGcpFromJSON( +export function deploymentDetailResponsePreparedStackProfileGcpFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackProfileGcp, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseProfileGcp$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseProfileGcp' from JSON`, + DeploymentDetailResponsePreparedStackProfileGcp$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackProfileGcp' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProfilePlatforms$inboundSchema: z.ZodType< - DeploymentDetailResponseProfilePlatforms, - unknown -> = z.object({ - aws: z.nullable( - z.array(z.lazy(() => DeploymentDetailResponseProfileAw$inboundSchema)), - ).optional(), - azure: z.nullable( - z.array(z.lazy(() => DeploymentDetailResponseProfileAzure$inboundSchema)), - ).optional(), - gcp: z.nullable( - z.array(z.lazy(() => DeploymentDetailResponseProfileGcp$inboundSchema)), - ).optional(), -}); +export const DeploymentDetailResponsePreparedStackProfilePlatforms$inboundSchema: + z.ZodType = z + .object({ + aws: z.nullable( + z.array(z.lazy(() => + DeploymentDetailResponsePreparedStackProfileAw$inboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + DeploymentDetailResponsePreparedStackProfileAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + DeploymentDetailResponsePreparedStackProfileGcp$inboundSchema + )), + ).optional(), + }); -export function deploymentDetailResponseProfilePlatformsFromJSON( +export function deploymentDetailResponsePreparedStackProfilePlatformsFromJSON( jsonString: string, ): SafeParseResult< - DeploymentDetailResponseProfilePlatforms, + DeploymentDetailResponsePreparedStackProfilePlatforms, SDKValidationError > { return safeParse( jsonString, (x) => - DeploymentDetailResponseProfilePlatforms$inboundSchema.parse( + DeploymentDetailResponsePreparedStackProfilePlatforms$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DeploymentDetailResponseProfilePlatforms' from JSON`, + `Failed to parse 'DeploymentDetailResponsePreparedStackProfilePlatforms' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProfile$inboundSchema: z.ZodType< - DeploymentDetailResponseProfile, - unknown -> = z.object({ - description: z.string(), - id: z.string(), - platforms: z.lazy(() => - DeploymentDetailResponseProfilePlatforms$inboundSchema - ), -}); +export const DeploymentDetailResponsePreparedStackProfile$inboundSchema: + z.ZodType = z.object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + DeploymentDetailResponsePreparedStackProfilePlatforms$inboundSchema + ), + }); -export function deploymentDetailResponseProfileFromJSON( +export function deploymentDetailResponsePreparedStackProfileFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackProfile, + SDKValidationError +> { return safeParse( jsonString, - (x) => DeploymentDetailResponseProfile$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseProfile' from JSON`, + (x) => + DeploymentDetailResponsePreparedStackProfile$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackProfile' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponseProfileUnion$inboundSchema: z.ZodType< - DeploymentDetailResponseProfileUnion, - unknown -> = z.union([ - z.lazy(() => DeploymentDetailResponseProfile$inboundSchema), - z.string(), -]); +export const DeploymentDetailResponsePreparedStackProfileUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => DeploymentDetailResponsePreparedStackProfile$inboundSchema), + z.string(), + ]); -export function deploymentDetailResponseProfileUnionFromJSON( +export function deploymentDetailResponsePreparedStackProfileUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackProfileUnion, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponseProfileUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponseProfileUnion' from JSON`, + DeploymentDetailResponsePreparedStackProfileUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackProfileUnion' from JSON`, ); } /** @internal */ -export const DeploymentDetailResponsePermissions$inboundSchema: z.ZodType< - DeploymentDetailResponsePermissions, - unknown -> = z.object({ - management: z.union([ - z.lazy(() => DeploymentDetailResponseManagement1$inboundSchema), - z.lazy(() => DeploymentDetailResponseManagement2$inboundSchema), - DeploymentDetailResponseManagementEnum$inboundSchema, - ]).optional(), - profiles: z.record( - z.string(), - z.record( - z.string(), - z.array( - z.union([ - z.lazy(() => DeploymentDetailResponseProfile$inboundSchema), +export const DeploymentDetailResponsePreparedStackPermissions$inboundSchema: + z.ZodType = z + .object({ + management: z.union([ + z.lazy(() => + DeploymentDetailResponsePreparedStackManagement1$inboundSchema + ), + z.lazy(() => + DeploymentDetailResponsePreparedStackManagement2$inboundSchema + ), + DeploymentDetailResponsePreparedStackManagementEnum$inboundSchema, + ]).optional(), + profiles: z.record( + z.string(), + z.record( z.string(), - ]), + z.array( + z.union([ + z.lazy(() => + DeploymentDetailResponsePreparedStackProfile$inboundSchema + ), + z.string(), + ]), + ), + ), ), - ), - ), -}); + }); -export function deploymentDetailResponsePermissionsFromJSON( +export function deploymentDetailResponsePreparedStackPermissionsFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + DeploymentDetailResponsePreparedStackPermissions, + SDKValidationError +> { return safeParse( jsonString, (x) => - DeploymentDetailResponsePermissions$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DeploymentDetailResponsePermissions' from JSON`, + DeploymentDetailResponsePreparedStackPermissions$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponsePreparedStackPermissions' from JSON`, ); } @@ -8278,6 +12944,7 @@ export const DeploymentDetailResponsePreparedStackResources$inboundSchema: dependencies: z.array(z.lazy(() => DeploymentDetailResponsePreparedStackDependency$inboundSchema )), + enabledWhen: z.nullable(z.string()).optional(), lifecycle: DeploymentDetailResponsePreparedStackLifecycle$inboundSchema, remoteAccess: z.boolean().optional(), }, @@ -8300,9 +12967,9 @@ export function deploymentDetailResponsePreparedStackResourcesFromJSON( } /** @internal */ -export const DeploymentDetailResponseSupportedPlatform$inboundSchema: z.ZodEnum< - typeof DeploymentDetailResponseSupportedPlatform -> = z.enum(DeploymentDetailResponseSupportedPlatform); +export const DeploymentDetailResponsePreparedStackSupportedPlatform$inboundSchema: + z.ZodEnum = z + .enum(DeploymentDetailResponsePreparedStackSupportedPlatform); /** @internal */ export const DeploymentDetailResponsePreparedStack$inboundSchema: z.ZodType< @@ -8310,16 +12977,20 @@ export const DeploymentDetailResponsePreparedStack$inboundSchema: z.ZodType< unknown > = z.object({ id: z.string(), - inputs: z.array(z.lazy(() => DeploymentDetailResponseInput$inboundSchema)) - .optional(), - permissions: z.lazy(() => DeploymentDetailResponsePermissions$inboundSchema) - .optional(), + inputs: z.array( + z.lazy(() => DeploymentDetailResponsePreparedStackInput$inboundSchema), + ).optional(), + permissions: z.lazy(() => + DeploymentDetailResponsePreparedStackPermissions$inboundSchema + ).optional(), resources: z.record( z.string(), z.lazy(() => DeploymentDetailResponsePreparedStackResources$inboundSchema), ), supportedPlatforms: z.nullable( - z.array(DeploymentDetailResponseSupportedPlatform$inboundSchema), + z.array( + DeploymentDetailResponsePreparedStackSupportedPlatform$inboundSchema, + ), ).optional(), }); @@ -8357,13 +13028,77 @@ export function deploymentDetailResponsePreparedStackUnionFromJSON( ); } +/** @internal */ +export const DeploymentDetailResponseSetupUpdateAuthorization$inboundSchema: + z.ZodType = z + .object({ + baselineFrozenDigest: z.string(), + nonce: z.string(), + releaseId: z.string(), + setupFingerprint: z.string(), + setupFingerprintVersion: z.int(), + setupTarget: z.string(), + targetFrozenDigest: z.string(), + }); + +export function deploymentDetailResponseSetupUpdateAuthorizationFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseSetupUpdateAuthorization, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseSetupUpdateAuthorization$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseSetupUpdateAuthorization' from JSON`, + ); +} + +/** @internal */ +export const DeploymentDetailResponseSetupUpdateAuthorizationUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => + DeploymentDetailResponseSetupUpdateAuthorization$inboundSchema + ), + z.any(), + ]); + +export function deploymentDetailResponseSetupUpdateAuthorizationUnionFromJSON( + jsonString: string, +): SafeParseResult< + DeploymentDetailResponseSetupUpdateAuthorizationUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentDetailResponseSetupUpdateAuthorizationUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentDetailResponseSetupUpdateAuthorizationUnion' from JSON`, + ); +} + /** @internal */ export const DeploymentDetailResponseRuntimeMetadata$inboundSchema: z.ZodType< DeploymentDetailResponseRuntimeMetadata, unknown > = z.object({ + initialSetupAuthority: + DeploymentDetailResponseInitialSetupAuthority$inboundSchema.optional(), lastSyncedEnvVarsHash: z.nullable(z.string()).optional(), lastSyncedSecretNames: z.array(z.string()).optional(), + pendingPreparedStack: z.nullable( + z.union([ + z.lazy(() => DeploymentDetailResponsePendingPreparedStack$inboundSchema), + z.any(), + ]), + ).optional(), + persistedGateAnswers: z.record(z.string(), z.boolean()).optional(), preparedStack: z.nullable( z.union([ z.lazy(() => DeploymentDetailResponsePreparedStack$inboundSchema), @@ -8371,6 +13106,14 @@ export const DeploymentDetailResponseRuntimeMetadata$inboundSchema: z.ZodType< ]), ).optional(), registryAccessGranted: z.boolean().optional(), + setupUpdateAuthorization: z.nullable( + z.union([ + z.lazy(() => + DeploymentDetailResponseSetupUpdateAuthorization$inboundSchema + ), + z.any(), + ]), + ).optional(), }); export function deploymentDetailResponseRuntimeMetadataFromJSON( @@ -8512,6 +13255,7 @@ export const DeploymentDetailResponse$inboundSchema: z.ZodType< currentReleaseId: z.nullable(z.string()).optional(), desiredReleaseId: z.nullable(z.string()).optional(), pinnedReleaseId: z.nullable(z.string()).optional(), + releaseChannel: z.string(), importSource: z.nullable(DeploymentDetailResponseImportSource$inboundSchema) .optional(), setupMethod: z.nullable(DeploymentDetailResponseSetupMethod$inboundSchema) diff --git a/client-sdks/platform/typescript/src/models/deploymentgroup.ts b/client-sdks/platform/typescript/src/models/deploymentgroup.ts index 5672bfbf9..172168610 100644 --- a/client-sdks/platform/typescript/src/models/deploymentgroup.ts +++ b/client-sdks/platform/typescript/src/models/deploymentgroup.ts @@ -16,6 +16,10 @@ export type DeploymentGroup = { * Deployment group name. */ name: string; + /** + * Case-sensitive, URL- and header-safe identifier from the integrating application. + */ + externalId: string | null; /** * Unique identifier for the project. */ @@ -38,6 +42,7 @@ export const DeploymentGroup$inboundSchema: z.ZodType< > = z.object({ id: z.string(), name: z.string(), + externalId: z.nullable(z.string()), projectId: z.string(), workspaceId: z.string(), maxDeployments: z.int().default(100), diff --git a/client-sdks/platform/typescript/src/models/deploymentinfo.ts b/client-sdks/platform/typescript/src/models/deploymentinfo.ts index 62fc79b19..abfc00f26 100644 --- a/client-sdks/platform/typescript/src/models/deploymentinfo.ts +++ b/client-sdks/platform/typescript/src/models/deploymentinfo.ts @@ -106,6 +106,10 @@ export type StackSummaryPlatform = ClosedEnum; export type ResourceCounts = { workers: number; containers: number; + /** + * Daemon resources that run on managed runtime machines + */ + daemons?: number | undefined; /** * Resources that declare managed public HTTPS endpoint setup */ @@ -829,6 +833,7 @@ export const ResourceCounts$inboundSchema: z.ZodType = z.object({ workers: z.int(), containers: z.int(), + daemons: z.int().optional(), publicHttpsEndpoints: z.int(), externalInfra: z.int(), total: z.int(), diff --git a/client-sdks/platform/typescript/src/models/deploymentlinksetupresponse.ts b/client-sdks/platform/typescript/src/models/deploymentlinksetupresponse.ts index 9a9b1cf5d..80b970d8f 100644 --- a/client-sdks/platform/typescript/src/models/deploymentlinksetupresponse.ts +++ b/client-sdks/platform/typescript/src/models/deploymentlinksetupresponse.ts @@ -11,10 +11,16 @@ import { DeploymentSetupMethod$inboundSchema, } from "./deploymentsetupmethod.js"; import { SDKValidationError } from "./errors/sdkvalidationerror.js"; -import { - StackByPlatform, - StackByPlatform$inboundSchema, -} from "./stackbyplatform.js"; + +export type DeploymentLinkSetupResponseStack = { + aws?: any | null | undefined; + gcp?: any | null | undefined; + azure?: any | null | undefined; + kubernetes?: any | null | undefined; + machines?: any | null | undefined; + local?: any | null | undefined; + test?: any | null | undefined; +}; export type ActiveRelease = { /** @@ -22,7 +28,7 @@ export type ActiveRelease = { */ id: string; version: string | null; - stack: StackByPlatform | null; + stack: DeploymentLinkSetupResponseStack | null; }; /** @@ -46,12 +52,38 @@ export type DeploymentLinkSetupResponse = { visibleSetupMethods: Array; }; +/** @internal */ +export const DeploymentLinkSetupResponseStack$inboundSchema: z.ZodType< + DeploymentLinkSetupResponseStack, + unknown +> = z.object({ + aws: z.nullable(z.any()).optional(), + gcp: z.nullable(z.any()).optional(), + azure: z.nullable(z.any()).optional(), + kubernetes: z.nullable(z.any()).optional(), + machines: z.nullable(z.any()).optional(), + local: z.nullable(z.any()).optional(), + test: z.nullable(z.any()).optional(), +}); + +export function deploymentLinkSetupResponseStackFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DeploymentLinkSetupResponseStack$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DeploymentLinkSetupResponseStack' from JSON`, + ); +} + /** @internal */ export const ActiveRelease$inboundSchema: z.ZodType = z .object({ id: z.string(), version: z.nullable(z.string()), - stack: z.nullable(StackByPlatform$inboundSchema), + stack: z.nullable( + z.lazy(() => DeploymentLinkSetupResponseStack$inboundSchema), + ), }); export function activeReleaseFromJSON( diff --git a/client-sdks/platform/typescript/src/models/deploymentlistitemresponse.ts b/client-sdks/platform/typescript/src/models/deploymentlistitemresponse.ts index a741f7983..8f6e6f503 100644 --- a/client-sdks/platform/typescript/src/models/deploymentlistitemresponse.ts +++ b/client-sdks/platform/typescript/src/models/deploymentlistitemresponse.ts @@ -382,6 +382,7 @@ export type DeploymentListItemResponse = { * ID of the pinned release */ pinnedReleaseId?: string | null | undefined; + releaseChannel: string; /** * Setup source that imported this deployment */ @@ -703,6 +704,7 @@ export const DeploymentListItemResponse$inboundSchema: z.ZodType< currentReleaseId: z.nullable(z.string()).optional(), desiredReleaseId: z.nullable(z.string()).optional(), pinnedReleaseId: z.nullable(z.string()).optional(), + releaseChannel: z.string(), importSource: z.nullable(DeploymentListItemResponseImportSource$inboundSchema) .optional(), setupMethod: z.nullable(DeploymentListItemResponseSetupMethod$inboundSchema) diff --git a/client-sdks/platform/typescript/src/models/deploymentsetupstacksettingspolicy.ts b/client-sdks/platform/typescript/src/models/deploymentsetupstacksettingspolicy.ts index 8eca47b0e..5a7ee31f0 100644 --- a/client-sdks/platform/typescript/src/models/deploymentsetupstacksettingspolicy.ts +++ b/client-sdks/platform/typescript/src/models/deploymentsetupstacksettingspolicy.ts @@ -9,7 +9,33 @@ import { ClosedEnum } from "../types/enums.js"; import { Result as SafeParseResult } from "../types/fp.js"; import { SDKValidationError } from "./errors/sdkvalidationerror.js"; +/** + * Failure-domain policy selected for a compute pool. + */ +export type DeploymentSetupStackSettingsPolicyFailureDomains2 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type DeploymentSetupStackSettingsPolicyFailureDomainsUnion2 = + | DeploymentSetupStackSettingsPolicyFailureDomains2 + | any; + export type DeploymentSetupStackSettingsPolicyPoolsAutoscale = { + failureDomains?: + | DeploymentSetupStackSettingsPolicyFailureDomains2 + | any + | null + | undefined; /** * Provider machine type selected for this deployment. */ @@ -25,7 +51,33 @@ export type DeploymentSetupStackSettingsPolicyPoolsAutoscale = { mode: "autoscale"; }; +/** + * Failure-domain policy selected for a compute pool. + */ +export type DeploymentSetupStackSettingsPolicyFailureDomains1 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type DeploymentSetupStackSettingsPolicyFailureDomainsUnion1 = + | DeploymentSetupStackSettingsPolicyFailureDomains1 + | any; + export type DeploymentSetupStackSettingsPolicyPoolsFixed = { + failureDomains?: + | DeploymentSetupStackSettingsPolicyFailureDomains1 + | any + | null + | undefined; /** * Provider machine type selected for this deployment. */ @@ -1225,17 +1277,134 @@ export type DeploymentSetupStackSettingsPolicy = { allowCustomRegistry?: boolean | undefined; }; +/** @internal */ +export const DeploymentSetupStackSettingsPolicyFailureDomains2$inboundSchema: + z.ZodType = z + .object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), + }); +/** @internal */ +export type DeploymentSetupStackSettingsPolicyFailureDomains2$Outbound = { + selectedFailureDomains?: Array | undefined; + spread: number; +}; + +/** @internal */ +export const DeploymentSetupStackSettingsPolicyFailureDomains2$outboundSchema: + z.ZodType< + DeploymentSetupStackSettingsPolicyFailureDomains2$Outbound, + DeploymentSetupStackSettingsPolicyFailureDomains2 + > = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), + }); + +export function deploymentSetupStackSettingsPolicyFailureDomains2ToJSON( + deploymentSetupStackSettingsPolicyFailureDomains2: + DeploymentSetupStackSettingsPolicyFailureDomains2, +): string { + return JSON.stringify( + DeploymentSetupStackSettingsPolicyFailureDomains2$outboundSchema.parse( + deploymentSetupStackSettingsPolicyFailureDomains2, + ), + ); +} +export function deploymentSetupStackSettingsPolicyFailureDomains2FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentSetupStackSettingsPolicyFailureDomains2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentSetupStackSettingsPolicyFailureDomains2$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentSetupStackSettingsPolicyFailureDomains2' from JSON`, + ); +} + +/** @internal */ +export const DeploymentSetupStackSettingsPolicyFailureDomainsUnion2$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => + DeploymentSetupStackSettingsPolicyFailureDomains2$inboundSchema + ), + z.any(), + ]); +/** @internal */ +export type DeploymentSetupStackSettingsPolicyFailureDomainsUnion2$Outbound = + | DeploymentSetupStackSettingsPolicyFailureDomains2$Outbound + | any; + +/** @internal */ +export const DeploymentSetupStackSettingsPolicyFailureDomainsUnion2$outboundSchema: + z.ZodType< + DeploymentSetupStackSettingsPolicyFailureDomainsUnion2$Outbound, + DeploymentSetupStackSettingsPolicyFailureDomainsUnion2 + > = z.union([ + z.lazy(() => + DeploymentSetupStackSettingsPolicyFailureDomains2$outboundSchema + ), + z.any(), + ]); + +export function deploymentSetupStackSettingsPolicyFailureDomainsUnion2ToJSON( + deploymentSetupStackSettingsPolicyFailureDomainsUnion2: + DeploymentSetupStackSettingsPolicyFailureDomainsUnion2, +): string { + return JSON.stringify( + DeploymentSetupStackSettingsPolicyFailureDomainsUnion2$outboundSchema.parse( + deploymentSetupStackSettingsPolicyFailureDomainsUnion2, + ), + ); +} +export function deploymentSetupStackSettingsPolicyFailureDomainsUnion2FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentSetupStackSettingsPolicyFailureDomainsUnion2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentSetupStackSettingsPolicyFailureDomainsUnion2$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentSetupStackSettingsPolicyFailureDomainsUnion2' from JSON`, + ); +} + /** @internal */ export const DeploymentSetupStackSettingsPolicyPoolsAutoscale$inboundSchema: z.ZodType = z .object({ + failure_domains: z.nullable( + z.union([ + z.lazy(() => + DeploymentSetupStackSettingsPolicyFailureDomains2$inboundSchema + ), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), max: z.int(), min: z.int(), mode: z.literal("autoscale"), + }).transform((v) => { + return remap$(v, { + "failure_domains": "failureDomains", + }); }); /** @internal */ export type DeploymentSetupStackSettingsPolicyPoolsAutoscale$Outbound = { + failure_domains?: + | DeploymentSetupStackSettingsPolicyFailureDomains2$Outbound + | any + | null + | undefined; machine?: string | null | undefined; max: number; min: number; @@ -1248,10 +1417,22 @@ export const DeploymentSetupStackSettingsPolicyPoolsAutoscale$outboundSchema: DeploymentSetupStackSettingsPolicyPoolsAutoscale$Outbound, DeploymentSetupStackSettingsPolicyPoolsAutoscale > = z.object({ + failureDomains: z.nullable( + z.union([ + z.lazy(() => + DeploymentSetupStackSettingsPolicyFailureDomains2$outboundSchema + ), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), max: z.int(), min: z.int(), mode: z.literal("autoscale"), + }).transform((v) => { + return remap$(v, { + failureDomains: "failure_domains", + }); }); export function deploymentSetupStackSettingsPolicyPoolsAutoscaleToJSON( @@ -1280,15 +1461,132 @@ export function deploymentSetupStackSettingsPolicyPoolsAutoscaleFromJSON( ); } +/** @internal */ +export const DeploymentSetupStackSettingsPolicyFailureDomains1$inboundSchema: + z.ZodType = z + .object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), + }); +/** @internal */ +export type DeploymentSetupStackSettingsPolicyFailureDomains1$Outbound = { + selectedFailureDomains?: Array | undefined; + spread: number; +}; + +/** @internal */ +export const DeploymentSetupStackSettingsPolicyFailureDomains1$outboundSchema: + z.ZodType< + DeploymentSetupStackSettingsPolicyFailureDomains1$Outbound, + DeploymentSetupStackSettingsPolicyFailureDomains1 + > = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), + }); + +export function deploymentSetupStackSettingsPolicyFailureDomains1ToJSON( + deploymentSetupStackSettingsPolicyFailureDomains1: + DeploymentSetupStackSettingsPolicyFailureDomains1, +): string { + return JSON.stringify( + DeploymentSetupStackSettingsPolicyFailureDomains1$outboundSchema.parse( + deploymentSetupStackSettingsPolicyFailureDomains1, + ), + ); +} +export function deploymentSetupStackSettingsPolicyFailureDomains1FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentSetupStackSettingsPolicyFailureDomains1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentSetupStackSettingsPolicyFailureDomains1$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'DeploymentSetupStackSettingsPolicyFailureDomains1' from JSON`, + ); +} + +/** @internal */ +export const DeploymentSetupStackSettingsPolicyFailureDomainsUnion1$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => + DeploymentSetupStackSettingsPolicyFailureDomains1$inboundSchema + ), + z.any(), + ]); +/** @internal */ +export type DeploymentSetupStackSettingsPolicyFailureDomainsUnion1$Outbound = + | DeploymentSetupStackSettingsPolicyFailureDomains1$Outbound + | any; + +/** @internal */ +export const DeploymentSetupStackSettingsPolicyFailureDomainsUnion1$outboundSchema: + z.ZodType< + DeploymentSetupStackSettingsPolicyFailureDomainsUnion1$Outbound, + DeploymentSetupStackSettingsPolicyFailureDomainsUnion1 + > = z.union([ + z.lazy(() => + DeploymentSetupStackSettingsPolicyFailureDomains1$outboundSchema + ), + z.any(), + ]); + +export function deploymentSetupStackSettingsPolicyFailureDomainsUnion1ToJSON( + deploymentSetupStackSettingsPolicyFailureDomainsUnion1: + DeploymentSetupStackSettingsPolicyFailureDomainsUnion1, +): string { + return JSON.stringify( + DeploymentSetupStackSettingsPolicyFailureDomainsUnion1$outboundSchema.parse( + deploymentSetupStackSettingsPolicyFailureDomainsUnion1, + ), + ); +} +export function deploymentSetupStackSettingsPolicyFailureDomainsUnion1FromJSON( + jsonString: string, +): SafeParseResult< + DeploymentSetupStackSettingsPolicyFailureDomainsUnion1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + DeploymentSetupStackSettingsPolicyFailureDomainsUnion1$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'DeploymentSetupStackSettingsPolicyFailureDomainsUnion1' from JSON`, + ); +} + /** @internal */ export const DeploymentSetupStackSettingsPolicyPoolsFixed$inboundSchema: z.ZodType = z.object({ + failure_domains: z.nullable( + z.union([ + z.lazy(() => + DeploymentSetupStackSettingsPolicyFailureDomains1$inboundSchema + ), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), machines: z.int(), mode: z.literal("fixed"), + }).transform((v) => { + return remap$(v, { + "failure_domains": "failureDomains", + }); }); /** @internal */ export type DeploymentSetupStackSettingsPolicyPoolsFixed$Outbound = { + failure_domains?: + | DeploymentSetupStackSettingsPolicyFailureDomains1$Outbound + | any + | null + | undefined; machine?: string | null | undefined; machines: number; mode: "fixed"; @@ -1300,9 +1598,21 @@ export const DeploymentSetupStackSettingsPolicyPoolsFixed$outboundSchema: DeploymentSetupStackSettingsPolicyPoolsFixed$Outbound, DeploymentSetupStackSettingsPolicyPoolsFixed > = z.object({ + failureDomains: z.nullable( + z.union([ + z.lazy(() => + DeploymentSetupStackSettingsPolicyFailureDomains1$outboundSchema + ), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), machines: z.int(), mode: z.literal("fixed"), + }).transform((v) => { + return remap$(v, { + failureDomains: "failure_domains", + }); }); export function deploymentSetupStackSettingsPolicyPoolsFixedToJSON( diff --git a/client-sdks/platform/typescript/src/models/ensuredeploymentgroupbyexternalidrequest.ts b/client-sdks/platform/typescript/src/models/ensuredeploymentgroupbyexternalidrequest.ts new file mode 100644 index 000000000..91be79b98 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/ensuredeploymentgroupbyexternalidrequest.ts @@ -0,0 +1,54 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; + +export type EnsureDeploymentGroupByExternalIdRequest = { + /** + * Case-sensitive, URL- and header-safe identifier from the integrating application. + */ + externalId: string; + /** + * Deployment group name. + */ + name: string; + /** + * Project ID or name this deployment group belongs to + */ + project: string; + /** + * Maximum number of deployments for newly created groups + */ + maxDeployments?: number | undefined; +}; + +/** @internal */ +export type EnsureDeploymentGroupByExternalIdRequest$Outbound = { + externalId: string; + name: string; + project: string; + maxDeployments: number; +}; + +/** @internal */ +export const EnsureDeploymentGroupByExternalIdRequest$outboundSchema: z.ZodType< + EnsureDeploymentGroupByExternalIdRequest$Outbound, + EnsureDeploymentGroupByExternalIdRequest +> = z.object({ + externalId: z.string(), + name: z.string(), + project: z.string(), + maxDeployments: z.int().default(100), +}); + +export function ensureDeploymentGroupByExternalIdRequestToJSON( + ensureDeploymentGroupByExternalIdRequest: + EnsureDeploymentGroupByExternalIdRequest, +): string { + return JSON.stringify( + EnsureDeploymentGroupByExternalIdRequest$outboundSchema.parse( + ensureDeploymentGroupByExternalIdRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/event.ts b/client-sdks/platform/typescript/src/models/event.ts index 856e8086b..4cf075193 100644 --- a/client-sdks/platform/typescript/src/models/event.ts +++ b/client-sdks/platform/typescript/src/models/event.ts @@ -12,7 +12,7 @@ import { ClosedEnum } from "../types/enums.js"; import { Result as SafeParseResult } from "../types/fp.js"; import { SDKValidationError } from "./errors/sdkvalidationerror.js"; -export type DataDeploymentDeletionRequested = { +export type EventDataDeploymentDeletionRequested = { /** * ID of the deployment */ @@ -23,19 +23,19 @@ export type DataDeploymentDeletionRequested = { /** * Type of authenticated principal that requested an event. */ -export const EventKind2 = { +export const EventKind4 = { User: "user", ServiceAccount: "serviceAccount", } as const; /** * Type of authenticated principal that requested an event. */ -export type EventKind2 = ClosedEnum; +export type EventKind4 = ClosedEnum; /** * Authenticated principal that requested a deployment intent event. */ -export type Actor2 = { +export type EventActor4 = { /** * User email when the principal is a user. */ @@ -47,13 +47,13 @@ export type Actor2 = { /** * Type of authenticated principal that requested an event. */ - kind: EventKind2; + kind: EventKind4; }; -export type ActorUnion2 = Actor2 | any; +export type EventActorUnion4 = EventActor4 | any; -export type DataDeploymentEnvironmentUpdated = { - actor?: Actor2 | any | null | undefined; +export type EventDataDeploymentEnvironmentUpdated = { + actor?: EventActor4 | any | null | undefined; /** * Names of the environment variables that changed (added, removed, or modified) */ @@ -65,7 +65,7 @@ export type DataDeploymentEnvironmentUpdated = { type: "DeploymentEnvironmentUpdated"; }; -export type DataDeploymentReleaseUnpinned = { +export type EventDataDeploymentReleaseUnpinned = { /** * ID of the deployment */ @@ -77,7 +77,7 @@ export type DataDeploymentReleaseUnpinned = { type: "DeploymentReleaseUnpinned"; }; -export type DataDeploymentReleasePinned = { +export type EventDataDeploymentReleasePinned = { /** * ID of the deployment */ @@ -93,7 +93,7 @@ export type DataDeploymentReleasePinned = { type: "DeploymentReleasePinned"; }; -export type DataDeploymentRedeployRequested = { +export type EventDataDeploymentRedeployRequested = { /** * ID of the deployment */ @@ -108,19 +108,19 @@ export type DataDeploymentRedeployRequested = { /** * Type of authenticated principal that requested an event. */ -export const EventKind1 = { +export const EventKind3 = { User: "user", ServiceAccount: "serviceAccount", } as const; /** * Type of authenticated principal that requested an event. */ -export type EventKind1 = ClosedEnum; +export type EventKind3 = ClosedEnum; /** * Authenticated principal that requested a deployment intent event. */ -export type Actor1 = { +export type EventActor3 = { /** * User email when the principal is a user. */ @@ -132,10 +132,10 @@ export type Actor1 = { /** * Type of authenticated principal that requested an event. */ - kind: EventKind1; + kind: EventKind3; }; -export type ActorUnion1 = Actor1 | any; +export type EventActorUnion3 = EventActor3 | any; /** * Canonical error container that provides a structured way to represent errors @@ -148,7 +148,7 @@ export type ActorUnion1 = Actor1 | any; * supporting serialization for API responses and detailed error reporting * in distributed systems. */ -export type PreviousError = { +export type EventPreviousError = { /** * A unique identifier for the type of error. * @@ -223,10 +223,10 @@ export type PreviousError = { source?: any | null | undefined; }; -export type PreviousErrorUnion = PreviousError | any; +export type EventPreviousErrorUnion = EventPreviousError | any; -export type DataDeploymentRetryRequested = { - actor?: Actor1 | any | null | undefined; +export type EventDataDeploymentRetryRequested = { + actor?: EventActor3 | any | null | undefined; /** * ID of the release that the failed attempt was targeting, if known */ @@ -235,11 +235,109 @@ export type DataDeploymentRetryRequested = { * ID of the deployment */ deploymentId: string; - previousError?: PreviousError | any | null | undefined; + previousError?: EventPreviousError | any | null | undefined; type: "DeploymentRetryRequested"; }; -export type DataDeploymentDeleted = { +/** + * Type of authenticated principal that requested an event. + */ +export const EventKind2 = { + User: "user", + ServiceAccount: "serviceAccount", +} as const; +/** + * Type of authenticated principal that requested an event. + */ +export type EventKind2 = ClosedEnum; + +/** + * Authenticated principal that requested a deployment intent event. + */ +export type EventActor2 = { + /** + * User email when the principal is a user. + */ + email?: string | null | undefined; + /** + * Stable user or service-account identifier. + */ + id: string; + /** + * Type of authenticated principal that requested an event. + */ + kind: EventKind2; +}; + +export type EventActorUnion2 = EventActor2 | any; + +export type EventDataDeploymentReleaseChannelChanged = { + actor?: EventActor2 | any | null | undefined; + /** + * Newly followed channel + */ + channel: string; + /** + * ID of the deployment + */ + deploymentId: string; + /** + * Previously followed channel + */ + previousChannel: string; + type: "DeploymentReleaseChannelChanged"; +}; + +/** + * Type of authenticated principal that requested an event. + */ +export const EventKind1 = { + User: "user", + ServiceAccount: "serviceAccount", +} as const; +/** + * Type of authenticated principal that requested an event. + */ +export type EventKind1 = ClosedEnum; + +/** + * Authenticated principal that requested a deployment intent event. + */ +export type EventActor1 = { + /** + * User email when the principal is a user. + */ + email?: string | null | undefined; + /** + * Stable user or service-account identifier. + */ + id: string; + /** + * Type of authenticated principal that requested an event. + */ + kind: EventKind1; +}; + +export type EventActorUnion1 = EventActor1 | any; + +export type EventDataReleaseChannelUpdated = { + actor?: EventActor1 | any | null | undefined; + /** + * Name of the channel that moved + */ + channel: string; + /** + * ID of the release that was previously current, if any + */ + previousReleaseId?: string | null | undefined; + /** + * ID of the release that is now current + */ + releaseId: string; + type: "ReleaseChannelUpdated"; +}; + +export type EventDataDeploymentDeleted = { /** * ID of the deployment that was deleted */ @@ -247,7 +345,7 @@ export type DataDeploymentDeleted = { type: "DeploymentDeleted"; }; -export type DataDeploymentRecovered = { +export type EventDataDeploymentRecovered = { /** * ID of the deployment */ @@ -270,7 +368,7 @@ export type DataDeploymentRecovered = { * supporting serialization for API responses and detailed error reporting * in distributed systems. */ -export type DataError2 = { +export type EventDataError2 = { /** * A unique identifier for the type of error. * @@ -345,7 +443,7 @@ export type DataError2 = { source?: any | null | undefined; }; -export type DataDeploymentDegraded = { +export type EventDataDeploymentDegraded = { /** * ID of the deployment */ @@ -361,7 +459,7 @@ export type DataDeploymentDegraded = { * supporting serialization for API responses and detailed error reporting * in distributed systems. */ - error: DataError2; + error: EventDataError2; type: "DeploymentDegraded"; }; @@ -376,7 +474,7 @@ export type DataDeploymentDegraded = { * supporting serialization for API responses and detailed error reporting * in distributed systems. */ -export type DataError1 = { +export type EventDataError1 = { /** * A unique identifier for the type of error. * @@ -461,7 +559,7 @@ export type DataError1 = { * `Updating`, `delete-failed` → `Deleting`. * `refresh-failed` is modelled separately via `DeploymentDegraded`. */ -export const Phase = { +export const EventPhase = { Preflights: "preflights", Provisioning: "provisioning", Updating: "updating", @@ -477,9 +575,9 @@ export const Phase = { * `Updating`, `delete-failed` → `Deleting`. * `refresh-failed` is modelled separately via `DeploymentDegraded`. */ -export type Phase = ClosedEnum; +export type EventPhase = ClosedEnum; -export type DataDeploymentFailed = { +export type EventDataDeploymentFailed = { /** * ID of the release the platform was trying to deploy, if known */ @@ -499,7 +597,7 @@ export type DataDeploymentFailed = { * supporting serialization for API responses and detailed error reporting * in distributed systems. */ - error: DataError1; + error: EventDataError1; /** * Phase of a deployment at which a failure occurred. * @@ -510,11 +608,11 @@ export type DataDeploymentFailed = { * `Updating`, `delete-failed` → `Deleting`. * `refresh-failed` is modelled separately via `DeploymentDegraded`. */ - phase: Phase; + phase: EventPhase; type: "DeploymentFailed"; }; -export type DataDeploymentReleased = { +export type EventDataDeploymentReleased = { /** * ID of the deployment */ @@ -530,7 +628,7 @@ export type DataDeploymentReleased = { type: "DeploymentReleased"; }; -export type DataDeploymentCreated = { +export type EventDataDeploymentCreated = { /** * ID of the deployment group this slot belongs to */ @@ -546,7 +644,7 @@ export type DataDeploymentCreated = { type: "DeploymentCreated"; }; -export type DataEmptyingBuckets = { +export type EventDataEmptyingBuckets = { /** * Names of the S3 buckets being emptied */ @@ -554,7 +652,7 @@ export type DataEmptyingBuckets = { type: "EmptyingBuckets"; }; -export type DataDeletingCloudFormationStack = { +export type EventDataDeletingCloudFormationStack = { /** * Name of the CloudFormation stack */ @@ -566,7 +664,7 @@ export type DataDeletingCloudFormationStack = { type: "DeletingCloudFormationStack"; }; -export type DataImportingStackStateFromCloudFormation = { +export type EventDataImportingStackStateFromCloudFormation = { /** * Name of the CloudFormation stack */ @@ -574,7 +672,7 @@ export type DataImportingStackStateFromCloudFormation = { type: "ImportingStackStateFromCloudFormation"; }; -export type DataAssumingRole = { +export type EventDataAssumingRole = { /** * ARN of the role to assume */ @@ -582,7 +680,7 @@ export type DataAssumingRole = { type: "AssumingRole"; }; -export type DataDeployingCloudFormationStack = { +export type EventDataDeployingCloudFormationStack = { /** * Name of the CloudFormation stack */ @@ -594,7 +692,7 @@ export type DataDeployingCloudFormationStack = { type: "DeployingCloudFormationStack"; }; -export type DataEnsuringDockerRepository = { +export type EventDataEnsuringDockerRepository = { /** * Name of the docker repository */ @@ -602,7 +700,7 @@ export type DataEnsuringDockerRepository = { type: "EnsuringDockerRepository"; }; -export type DataSettingUpPlatformContext = { +export type EventDataSettingUpPlatformContext = { /** * Name of the platform (e.g., "AWS", "GCP") */ @@ -610,7 +708,7 @@ export type DataSettingUpPlatformContext = { type: "SettingUpPlatformContext"; }; -export type DataCleaningUpEnvironment = { +export type EventDataCleaningUpEnvironment = { /** * Name of the stack being cleaned up */ @@ -622,7 +720,7 @@ export type DataCleaningUpEnvironment = { type: "CleaningUpEnvironment"; }; -export type DataCleaningUpStack = { +export type EventDataCleaningUpStack = { /** * Name of the stack being cleaned up */ @@ -634,7 +732,7 @@ export type DataCleaningUpStack = { type: "CleaningUpStack"; }; -export type DataRunningTestWorker = { +export type EventDataRunningTestWorker = { /** * Name of the stack being tested */ @@ -642,7 +740,7 @@ export type DataRunningTestWorker = { type: "RunningTestWorker"; }; -export type DataDeployingStack = { +export type EventDataDeployingStack = { /** * Name of the stack being deployed */ @@ -650,7 +748,7 @@ export type DataDeployingStack = { type: "DeployingStack"; }; -export type DataPreparingEnvironment = { +export type EventDataPreparingEnvironment = { /** * Name of the deployment strategy being used */ @@ -658,7 +756,7 @@ export type DataPreparingEnvironment = { type: "PreparingEnvironment"; }; -export type DataDebuggingAgent = { +export type EventDataDebuggingAgent = { /** * ID of the agent being debugged */ @@ -670,7 +768,7 @@ export type DataDebuggingAgent = { type: "DebuggingAgent"; }; -export type DataDeletingAgent = { +export type EventDataDeletingAgent = { /** * ID of the agent being deleted */ @@ -682,7 +780,7 @@ export type DataDeletingAgent = { type: "DeletingAgent"; }; -export type DataUpdatingAgent = { +export type EventDataUpdatingAgent = { /** * ID of the agent being updated */ @@ -694,7 +792,7 @@ export type DataUpdatingAgent = { type: "UpdatingAgent"; }; -export type DataProvisioningAgent = { +export type EventDataProvisioningAgent = { /** * ID of the agent being provisioned */ @@ -706,7 +804,7 @@ export type DataProvisioningAgent = { type: "ProvisioningAgent"; }; -export type DataGeneratingTemplate = { +export type EventDataGeneratingTemplate = { /** * Platform for which the template is being generated */ @@ -714,7 +812,7 @@ export type DataGeneratingTemplate = { type: "GeneratingTemplate"; }; -export type DataGeneratingCloudFormationTemplate = { +export type EventDataGeneratingCloudFormationTemplate = { type: "GeneratingCloudFormationTemplate"; }; @@ -793,7 +891,7 @@ export type EventDependency = { * supporting serialization for API responses and detailed error reporting * in distributed systems. */ -export type ErrorNextState = { +export type EventErrorNextState = { /** * A unique identifier for the type of error. * @@ -868,7 +966,7 @@ export type ErrorNextState = { source?: any | null | undefined; }; -export type NextStateErrorUnion = ErrorNextState | any; +export type EventNextStateErrorUnion = EventErrorNextState | any; /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. @@ -959,7 +1057,7 @@ export type EventResources = { * This preserves the full dependency information from the stack definition. */ dependencies?: Array | undefined; - error?: ErrorNextState | any | null | undefined; + error?: EventErrorNextState | any | null | undefined; /** * Stores the controller state that failed, used for manual retry operations. * @@ -997,7 +1095,7 @@ export type EventResources = { /** * Represents the collective state of all resources in a stack, including platform and pending actions. */ -export type NextState = { +export type EventNextState = { /** * Represents the target cloud platform. */ @@ -1012,11 +1110,11 @@ export type NextState = { resources: { [k: string]: EventResources }; }; -export type DataStackStep = { +export type EventDataStackStep = { /** * Represents the collective state of all resources in a stack, including platform and pending actions. */ - nextState: NextState; + nextState: EventNextState; /** * An suggested duration to wait before executing the next step. */ @@ -1024,7 +1122,7 @@ export type DataStackStep = { type: "StackStep"; }; -export type DataCompilingCode = { +export type EventDataCompilingCode = { /** * Language being compiled (rust, typescript, etc.) */ @@ -1036,7 +1134,7 @@ export type DataCompilingCode = { type: "CompilingCode"; }; -export type DataCreatingRelease = { +export type EventDataCreatingRelease = { /** * Project name */ @@ -1044,7 +1142,7 @@ export type DataCreatingRelease = { type: "CreatingRelease"; }; -export type DataPushingResource = { +export type EventDataPushingResource = { /** * Name of the resource being pushed */ @@ -1056,7 +1154,7 @@ export type DataPushingResource = { type: "PushingResource"; }; -export type DataPushingStack = { +export type EventDataPushingStack = { /** * Human-readable destination for pushed images */ @@ -1075,7 +1173,7 @@ export type DataPushingStack = { /** * Progress information for image push operations */ -export type Progress = { +export type EventProgress = { /** * Bytes uploaded so far */ @@ -1098,18 +1196,18 @@ export type Progress = { totalLayers: number; }; -export type ProgressUnion = Progress | any; +export type EventProgressUnion = EventProgress | any; -export type DataPushingImage = { +export type EventDataPushingImage = { /** * Name of the image being pushed */ image: string; - progress?: Progress | any | null | undefined; + progress?: EventProgress | any | null | undefined; type: "PushingImage"; }; -export type DataBuildingImage = { +export type EventDataBuildingImage = { /** * Name of the image being built */ @@ -1117,7 +1215,7 @@ export type DataBuildingImage = { type: "BuildingImage"; }; -export type DataBuildingResource = { +export type EventDataBuildingResource = { /** * All resource names sharing this build (for deduped container groups) */ @@ -1133,7 +1231,7 @@ export type DataBuildingResource = { type: "BuildingResource"; }; -export type DataDownloadingAlienRuntime = { +export type EventDataDownloadingAlienRuntime = { /** * Target triple for the runtime */ @@ -1145,7 +1243,7 @@ export type DataDownloadingAlienRuntime = { url: string; }; -export type DataRunningPreflights = { +export type EventDataRunningPreflights = { /** * Platform being targeted */ @@ -1157,7 +1255,7 @@ export type DataRunningPreflights = { type: "RunningPreflights"; }; -export type DataBuildingStack = { +export type EventDataBuildingStack = { /** * Name of the stack being built */ @@ -1165,73 +1263,75 @@ export type DataBuildingStack = { type: "BuildingStack"; }; -export type DataFinished = { +export type EventDataFinished = { type: "Finished"; }; -export type DataLoadingConfiguration = { +export type EventDataLoadingConfiguration = { type: "LoadingConfiguration"; }; export type EventDataUnion = - | DataLoadingConfiguration - | DataFinished - | DataBuildingStack - | DataRunningPreflights - | DataDownloadingAlienRuntime - | DataBuildingResource - | DataBuildingImage - | DataPushingImage - | DataPushingStack - | DataPushingResource - | DataCreatingRelease - | DataCompilingCode - | DataStackStep - | DataGeneratingCloudFormationTemplate - | DataGeneratingTemplate - | DataProvisioningAgent - | DataUpdatingAgent - | DataDeletingAgent - | DataDebuggingAgent - | DataPreparingEnvironment - | DataDeployingStack - | DataRunningTestWorker - | DataCleaningUpStack - | DataCleaningUpEnvironment - | DataSettingUpPlatformContext - | DataEnsuringDockerRepository - | DataDeployingCloudFormationStack - | DataAssumingRole - | DataImportingStackStateFromCloudFormation - | DataDeletingCloudFormationStack - | DataEmptyingBuckets - | DataDeploymentCreated - | DataDeploymentReleased - | DataDeploymentFailed - | DataDeploymentDegraded - | DataDeploymentRecovered - | DataDeploymentDeleted - | DataDeploymentRetryRequested - | DataDeploymentRedeployRequested - | DataDeploymentReleasePinned - | DataDeploymentReleaseUnpinned - | DataDeploymentEnvironmentUpdated - | DataDeploymentDeletionRequested; - -export const StateSuccess = { + | EventDataLoadingConfiguration + | EventDataFinished + | EventDataBuildingStack + | EventDataRunningPreflights + | EventDataDownloadingAlienRuntime + | EventDataBuildingResource + | EventDataBuildingImage + | EventDataPushingImage + | EventDataPushingStack + | EventDataPushingResource + | EventDataCreatingRelease + | EventDataCompilingCode + | EventDataStackStep + | EventDataGeneratingCloudFormationTemplate + | EventDataGeneratingTemplate + | EventDataProvisioningAgent + | EventDataUpdatingAgent + | EventDataDeletingAgent + | EventDataDebuggingAgent + | EventDataPreparingEnvironment + | EventDataDeployingStack + | EventDataRunningTestWorker + | EventDataCleaningUpStack + | EventDataCleaningUpEnvironment + | EventDataSettingUpPlatformContext + | EventDataEnsuringDockerRepository + | EventDataDeployingCloudFormationStack + | EventDataAssumingRole + | EventDataImportingStackStateFromCloudFormation + | EventDataDeletingCloudFormationStack + | EventDataEmptyingBuckets + | EventDataDeploymentCreated + | EventDataDeploymentReleased + | EventDataDeploymentFailed + | EventDataDeploymentDegraded + | EventDataDeploymentRecovered + | EventDataDeploymentDeleted + | EventDataReleaseChannelUpdated + | EventDataDeploymentReleaseChannelChanged + | EventDataDeploymentRetryRequested + | EventDataDeploymentRedeployRequested + | EventDataDeploymentReleasePinned + | EventDataDeploymentReleaseUnpinned + | EventDataDeploymentEnvironmentUpdated + | EventDataDeploymentDeletionRequested; + +export const EventStateSuccess = { Success: "success", } as const; -export type StateSuccess = ClosedEnum; +export type EventStateSuccess = ClosedEnum; -export const StateStarted = { +export const EventStateStarted = { Started: "started", } as const; -export type StateStarted = ClosedEnum; +export type EventStateStarted = ClosedEnum; -export const StateNone = { +export const EventStateNone = { None: "none", } as const; -export type StateNone = ClosedEnum; +export type EventStateNone = ClosedEnum; /** * Canonical error container that provides a structured way to represent errors @@ -1244,7 +1344,7 @@ export type StateNone = ClosedEnum; * supporting serialization for API responses and detailed error reporting * in distributed systems. */ -export type ErrorFailed = { +export type EventErrorFailed = { /** * A unique identifier for the type of error. * @@ -1319,26 +1419,30 @@ export type ErrorFailed = { source?: any | null | undefined; }; -export type FailedErrorUnion = ErrorFailed | any; +export type EventFailedErrorUnion = EventErrorFailed | any; /** * Event failed with an error */ -export type Failed = { - error?: ErrorFailed | any | null | undefined; +export type EventFailed = { + error?: EventErrorFailed | any | null | undefined; }; export type EventState = { /** * Event failed with an error */ - failed: Failed; + failed: EventFailed; }; /** * Represents the state of an event */ -export type State = EventState | StateNone | StateStarted | StateSuccess; +export type EventStateUnion = + | EventState + | EventStateNone + | EventStateStarted + | EventStateSuccess; export type Event = { /** @@ -1358,53 +1462,55 @@ export type Event = { */ debugSessionId?: string | null | undefined; data: - | DataLoadingConfiguration - | DataFinished - | DataBuildingStack - | DataRunningPreflights - | DataDownloadingAlienRuntime - | DataBuildingResource - | DataBuildingImage - | DataPushingImage - | DataPushingStack - | DataPushingResource - | DataCreatingRelease - | DataCompilingCode - | DataStackStep - | DataGeneratingCloudFormationTemplate - | DataGeneratingTemplate - | DataProvisioningAgent - | DataUpdatingAgent - | DataDeletingAgent - | DataDebuggingAgent - | DataPreparingEnvironment - | DataDeployingStack - | DataRunningTestWorker - | DataCleaningUpStack - | DataCleaningUpEnvironment - | DataSettingUpPlatformContext - | DataEnsuringDockerRepository - | DataDeployingCloudFormationStack - | DataAssumingRole - | DataImportingStackStateFromCloudFormation - | DataDeletingCloudFormationStack - | DataEmptyingBuckets - | DataDeploymentCreated - | DataDeploymentReleased - | DataDeploymentFailed - | DataDeploymentDegraded - | DataDeploymentRecovered - | DataDeploymentDeleted - | DataDeploymentRetryRequested - | DataDeploymentRedeployRequested - | DataDeploymentReleasePinned - | DataDeploymentReleaseUnpinned - | DataDeploymentEnvironmentUpdated - | DataDeploymentDeletionRequested; + | EventDataLoadingConfiguration + | EventDataFinished + | EventDataBuildingStack + | EventDataRunningPreflights + | EventDataDownloadingAlienRuntime + | EventDataBuildingResource + | EventDataBuildingImage + | EventDataPushingImage + | EventDataPushingStack + | EventDataPushingResource + | EventDataCreatingRelease + | EventDataCompilingCode + | EventDataStackStep + | EventDataGeneratingCloudFormationTemplate + | EventDataGeneratingTemplate + | EventDataProvisioningAgent + | EventDataUpdatingAgent + | EventDataDeletingAgent + | EventDataDebuggingAgent + | EventDataPreparingEnvironment + | EventDataDeployingStack + | EventDataRunningTestWorker + | EventDataCleaningUpStack + | EventDataCleaningUpEnvironment + | EventDataSettingUpPlatformContext + | EventDataEnsuringDockerRepository + | EventDataDeployingCloudFormationStack + | EventDataAssumingRole + | EventDataImportingStackStateFromCloudFormation + | EventDataDeletingCloudFormationStack + | EventDataEmptyingBuckets + | EventDataDeploymentCreated + | EventDataDeploymentReleased + | EventDataDeploymentFailed + | EventDataDeploymentDegraded + | EventDataDeploymentRecovered + | EventDataDeploymentDeleted + | EventDataReleaseChannelUpdated + | EventDataDeploymentReleaseChannelChanged + | EventDataDeploymentRetryRequested + | EventDataDeploymentRedeployRequested + | EventDataDeploymentReleasePinned + | EventDataDeploymentReleaseUnpinned + | EventDataDeploymentEnvironmentUpdated + | EventDataDeploymentDeletionRequested; /** * Represents the state of an event */ - state: EventState | StateNone | StateStarted | StateSuccess; + state: EventState | EventStateNone | EventStateStarted | EventStateSuccess; /** * Unique identifier for the project. */ @@ -1417,85 +1523,90 @@ export type Event = { }; /** @internal */ -export const DataDeploymentDeletionRequested$inboundSchema: z.ZodType< - DataDeploymentDeletionRequested, +export const EventDataDeploymentDeletionRequested$inboundSchema: z.ZodType< + EventDataDeploymentDeletionRequested, unknown > = z.object({ deploymentId: z.string(), type: z.literal("DeploymentDeletionRequested"), }); -export function dataDeploymentDeletionRequestedFromJSON( +export function eventDataDeploymentDeletionRequestedFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataDeploymentDeletionRequested$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataDeploymentDeletionRequested' from JSON`, + (x) => + EventDataDeploymentDeletionRequested$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataDeploymentDeletionRequested' from JSON`, ); } /** @internal */ -export const EventKind2$inboundSchema: z.ZodEnum = z.enum( - EventKind2, +export const EventKind4$inboundSchema: z.ZodEnum = z.enum( + EventKind4, ); /** @internal */ -export const Actor2$inboundSchema: z.ZodType = z.object({ - email: z.nullable(z.string()).optional(), - id: z.string(), - kind: EventKind2$inboundSchema, -}); +export const EventActor4$inboundSchema: z.ZodType = z + .object({ + email: z.nullable(z.string()).optional(), + id: z.string(), + kind: EventKind4$inboundSchema, + }); -export function actor2FromJSON( +export function eventActor4FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => Actor2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'Actor2' from JSON`, + (x) => EventActor4$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventActor4' from JSON`, ); } /** @internal */ -export const ActorUnion2$inboundSchema: z.ZodType = z - .union([z.lazy(() => Actor2$inboundSchema), z.any()]); +export const EventActorUnion4$inboundSchema: z.ZodType< + EventActorUnion4, + unknown +> = z.union([z.lazy(() => EventActor4$inboundSchema), z.any()]); -export function actorUnion2FromJSON( +export function eventActorUnion4FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => ActorUnion2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'ActorUnion2' from JSON`, + (x) => EventActorUnion4$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventActorUnion4' from JSON`, ); } /** @internal */ -export const DataDeploymentEnvironmentUpdated$inboundSchema: z.ZodType< - DataDeploymentEnvironmentUpdated, +export const EventDataDeploymentEnvironmentUpdated$inboundSchema: z.ZodType< + EventDataDeploymentEnvironmentUpdated, unknown > = z.object({ - actor: z.nullable(z.union([z.lazy(() => Actor2$inboundSchema), z.any()])) + actor: z.nullable(z.union([z.lazy(() => EventActor4$inboundSchema), z.any()])) .optional(), changedKeys: z.array(z.string()), deploymentId: z.string(), type: z.literal("DeploymentEnvironmentUpdated"), }); -export function dataDeploymentEnvironmentUpdatedFromJSON( +export function eventDataDeploymentEnvironmentUpdatedFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataDeploymentEnvironmentUpdated$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataDeploymentEnvironmentUpdated' from JSON`, + (x) => + EventDataDeploymentEnvironmentUpdated$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataDeploymentEnvironmentUpdated' from JSON`, ); } /** @internal */ -export const DataDeploymentReleaseUnpinned$inboundSchema: z.ZodType< - DataDeploymentReleaseUnpinned, +export const EventDataDeploymentReleaseUnpinned$inboundSchema: z.ZodType< + EventDataDeploymentReleaseUnpinned, unknown > = z.object({ deploymentId: z.string(), @@ -1503,19 +1614,20 @@ export const DataDeploymentReleaseUnpinned$inboundSchema: z.ZodType< type: z.literal("DeploymentReleaseUnpinned"), }); -export function dataDeploymentReleaseUnpinnedFromJSON( +export function eventDataDeploymentReleaseUnpinnedFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataDeploymentReleaseUnpinned$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataDeploymentReleaseUnpinned' from JSON`, + (x) => + EventDataDeploymentReleaseUnpinned$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataDeploymentReleaseUnpinned' from JSON`, ); } /** @internal */ -export const DataDeploymentReleasePinned$inboundSchema: z.ZodType< - DataDeploymentReleasePinned, +export const EventDataDeploymentReleasePinned$inboundSchema: z.ZodType< + EventDataDeploymentReleasePinned, unknown > = z.object({ deploymentId: z.string(), @@ -1524,19 +1636,19 @@ export const DataDeploymentReleasePinned$inboundSchema: z.ZodType< type: z.literal("DeploymentReleasePinned"), }); -export function dataDeploymentReleasePinnedFromJSON( +export function eventDataDeploymentReleasePinnedFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataDeploymentReleasePinned$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataDeploymentReleasePinned' from JSON`, + (x) => EventDataDeploymentReleasePinned$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataDeploymentReleasePinned' from JSON`, ); } /** @internal */ -export const DataDeploymentRedeployRequested$inboundSchema: z.ZodType< - DataDeploymentRedeployRequested, +export const EventDataDeploymentRedeployRequested$inboundSchema: z.ZodType< + EventDataDeploymentRedeployRequested, unknown > = z.object({ deploymentId: z.string(), @@ -1544,138 +1656,274 @@ export const DataDeploymentRedeployRequested$inboundSchema: z.ZodType< type: z.literal("DeploymentRedeployRequested"), }); -export function dataDeploymentRedeployRequestedFromJSON( +export function eventDataDeploymentRedeployRequestedFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataDeploymentRedeployRequested$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataDeploymentRedeployRequested' from JSON`, + (x) => + EventDataDeploymentRedeployRequested$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataDeploymentRedeployRequested' from JSON`, ); } /** @internal */ -export const EventKind1$inboundSchema: z.ZodEnum = z.enum( - EventKind1, +export const EventKind3$inboundSchema: z.ZodEnum = z.enum( + EventKind3, ); /** @internal */ -export const Actor1$inboundSchema: z.ZodType = z.object({ - email: z.nullable(z.string()).optional(), - id: z.string(), - kind: EventKind1$inboundSchema, -}); +export const EventActor3$inboundSchema: z.ZodType = z + .object({ + email: z.nullable(z.string()).optional(), + id: z.string(), + kind: EventKind3$inboundSchema, + }); -export function actor1FromJSON( +export function eventActor3FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => Actor1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'Actor1' from JSON`, + (x) => EventActor3$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventActor3' from JSON`, ); } /** @internal */ -export const ActorUnion1$inboundSchema: z.ZodType = z - .union([z.lazy(() => Actor1$inboundSchema), z.any()]); +export const EventActorUnion3$inboundSchema: z.ZodType< + EventActorUnion3, + unknown +> = z.union([z.lazy(() => EventActor3$inboundSchema), z.any()]); -export function actorUnion1FromJSON( +export function eventActorUnion3FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => ActorUnion1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'ActorUnion1' from JSON`, + (x) => EventActorUnion3$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventActorUnion3' from JSON`, ); } /** @internal */ -export const PreviousError$inboundSchema: z.ZodType = z - .object({ - code: z.string(), - context: z.nullable(z.any()).optional(), - hint: z.nullable(z.string()).optional(), - httpStatusCode: z.nullable(z.int()).optional(), - internal: z.boolean(), - message: z.string(), - retryable: z.boolean().default(false), - source: z.nullable(z.any()).optional(), - }); +export const EventPreviousError$inboundSchema: z.ZodType< + EventPreviousError, + unknown +> = z.object({ + code: z.string(), + context: z.nullable(z.any()).optional(), + hint: z.nullable(z.string()).optional(), + httpStatusCode: z.nullable(z.int()).optional(), + internal: z.boolean(), + message: z.string(), + retryable: z.boolean().default(false), + source: z.nullable(z.any()).optional(), +}); -export function previousErrorFromJSON( +export function eventPreviousErrorFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => PreviousError$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'PreviousError' from JSON`, + (x) => EventPreviousError$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventPreviousError' from JSON`, ); } /** @internal */ -export const PreviousErrorUnion$inboundSchema: z.ZodType< - PreviousErrorUnion, +export const EventPreviousErrorUnion$inboundSchema: z.ZodType< + EventPreviousErrorUnion, unknown -> = z.union([z.lazy(() => PreviousError$inboundSchema), z.any()]); +> = z.union([z.lazy(() => EventPreviousError$inboundSchema), z.any()]); -export function previousErrorUnionFromJSON( +export function eventPreviousErrorUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => PreviousErrorUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'PreviousErrorUnion' from JSON`, + (x) => EventPreviousErrorUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventPreviousErrorUnion' from JSON`, ); } /** @internal */ -export const DataDeploymentRetryRequested$inboundSchema: z.ZodType< - DataDeploymentRetryRequested, +export const EventDataDeploymentRetryRequested$inboundSchema: z.ZodType< + EventDataDeploymentRetryRequested, unknown > = z.object({ - actor: z.nullable(z.union([z.lazy(() => Actor1$inboundSchema), z.any()])) + actor: z.nullable(z.union([z.lazy(() => EventActor3$inboundSchema), z.any()])) .optional(), attemptedReleaseId: z.nullable(z.string()).optional(), deploymentId: z.string(), previousError: z.nullable( - z.union([z.lazy(() => PreviousError$inboundSchema), z.any()]), + z.union([z.lazy(() => EventPreviousError$inboundSchema), z.any()]), ).optional(), type: z.literal("DeploymentRetryRequested"), }); -export function dataDeploymentRetryRequestedFromJSON( +export function eventDataDeploymentRetryRequestedFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventDataDeploymentRetryRequested$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataDeploymentRetryRequested' from JSON`, + ); +} + +/** @internal */ +export const EventKind2$inboundSchema: z.ZodEnum = z.enum( + EventKind2, +); + +/** @internal */ +export const EventActor2$inboundSchema: z.ZodType = z + .object({ + email: z.nullable(z.string()).optional(), + id: z.string(), + kind: EventKind2$inboundSchema, + }); + +export function eventActor2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventActor2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventActor2' from JSON`, + ); +} + +/** @internal */ +export const EventActorUnion2$inboundSchema: z.ZodType< + EventActorUnion2, + unknown +> = z.union([z.lazy(() => EventActor2$inboundSchema), z.any()]); + +export function eventActorUnion2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventActorUnion2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventActorUnion2' from JSON`, + ); +} + +/** @internal */ +export const EventDataDeploymentReleaseChannelChanged$inboundSchema: z.ZodType< + EventDataDeploymentReleaseChannelChanged, + unknown +> = z.object({ + actor: z.nullable(z.union([z.lazy(() => EventActor2$inboundSchema), z.any()])) + .optional(), + channel: z.string(), + deploymentId: z.string(), + previousChannel: z.string(), + type: z.literal("DeploymentReleaseChannelChanged"), +}); + +export function eventDataDeploymentReleaseChannelChangedFromJSON( + jsonString: string, +): SafeParseResult< + EventDataDeploymentReleaseChannelChanged, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventDataDeploymentReleaseChannelChanged$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventDataDeploymentReleaseChannelChanged' from JSON`, + ); +} + +/** @internal */ +export const EventKind1$inboundSchema: z.ZodEnum = z.enum( + EventKind1, +); + +/** @internal */ +export const EventActor1$inboundSchema: z.ZodType = z + .object({ + email: z.nullable(z.string()).optional(), + id: z.string(), + kind: EventKind1$inboundSchema, + }); + +export function eventActor1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventActor1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventActor1' from JSON`, + ); +} + +/** @internal */ +export const EventActorUnion1$inboundSchema: z.ZodType< + EventActorUnion1, + unknown +> = z.union([z.lazy(() => EventActor1$inboundSchema), z.any()]); + +export function eventActorUnion1FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataDeploymentRetryRequested$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataDeploymentRetryRequested' from JSON`, + (x) => EventActorUnion1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventActorUnion1' from JSON`, ); } /** @internal */ -export const DataDeploymentDeleted$inboundSchema: z.ZodType< - DataDeploymentDeleted, +export const EventDataReleaseChannelUpdated$inboundSchema: z.ZodType< + EventDataReleaseChannelUpdated, + unknown +> = z.object({ + actor: z.nullable(z.union([z.lazy(() => EventActor1$inboundSchema), z.any()])) + .optional(), + channel: z.string(), + previousReleaseId: z.nullable(z.string()).optional(), + releaseId: z.string(), + type: z.literal("ReleaseChannelUpdated"), +}); + +export function eventDataReleaseChannelUpdatedFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventDataReleaseChannelUpdated$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataReleaseChannelUpdated' from JSON`, + ); +} + +/** @internal */ +export const EventDataDeploymentDeleted$inboundSchema: z.ZodType< + EventDataDeploymentDeleted, unknown > = z.object({ deploymentId: z.string(), type: z.literal("DeploymentDeleted"), }); -export function dataDeploymentDeletedFromJSON( +export function eventDataDeploymentDeletedFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataDeploymentDeleted$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataDeploymentDeleted' from JSON`, + (x) => EventDataDeploymentDeleted$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataDeploymentDeleted' from JSON`, ); } /** @internal */ -export const DataDeploymentRecovered$inboundSchema: z.ZodType< - DataDeploymentRecovered, +export const EventDataDeploymentRecovered$inboundSchema: z.ZodType< + EventDataDeploymentRecovered, unknown > = z.object({ deploymentId: z.string(), @@ -1683,110 +1931,116 @@ export const DataDeploymentRecovered$inboundSchema: z.ZodType< type: z.literal("DeploymentRecovered"), }); -export function dataDeploymentRecoveredFromJSON( +export function eventDataDeploymentRecoveredFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataDeploymentRecovered$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataDeploymentRecovered' from JSON`, + (x) => EventDataDeploymentRecovered$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataDeploymentRecovered' from JSON`, ); } /** @internal */ -export const DataError2$inboundSchema: z.ZodType = z - .object({ - code: z.string(), - context: z.nullable(z.any()).optional(), - hint: z.nullable(z.string()).optional(), - httpStatusCode: z.nullable(z.int()).optional(), - internal: z.boolean(), - message: z.string(), - retryable: z.boolean().default(false), - source: z.nullable(z.any()).optional(), - }); +export const EventDataError2$inboundSchema: z.ZodType< + EventDataError2, + unknown +> = z.object({ + code: z.string(), + context: z.nullable(z.any()).optional(), + hint: z.nullable(z.string()).optional(), + httpStatusCode: z.nullable(z.int()).optional(), + internal: z.boolean(), + message: z.string(), + retryable: z.boolean().default(false), + source: z.nullable(z.any()).optional(), +}); -export function dataError2FromJSON( +export function eventDataError2FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataError2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataError2' from JSON`, + (x) => EventDataError2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataError2' from JSON`, ); } /** @internal */ -export const DataDeploymentDegraded$inboundSchema: z.ZodType< - DataDeploymentDegraded, +export const EventDataDeploymentDegraded$inboundSchema: z.ZodType< + EventDataDeploymentDegraded, unknown > = z.object({ deploymentId: z.string(), - error: z.lazy(() => DataError2$inboundSchema), + error: z.lazy(() => EventDataError2$inboundSchema), type: z.literal("DeploymentDegraded"), }); -export function dataDeploymentDegradedFromJSON( +export function eventDataDeploymentDegradedFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataDeploymentDegraded$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataDeploymentDegraded' from JSON`, + (x) => EventDataDeploymentDegraded$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataDeploymentDegraded' from JSON`, ); } /** @internal */ -export const DataError1$inboundSchema: z.ZodType = z - .object({ - code: z.string(), - context: z.nullable(z.any()).optional(), - hint: z.nullable(z.string()).optional(), - httpStatusCode: z.nullable(z.int()).optional(), - internal: z.boolean(), - message: z.string(), - retryable: z.boolean().default(false), - source: z.nullable(z.any()).optional(), - }); +export const EventDataError1$inboundSchema: z.ZodType< + EventDataError1, + unknown +> = z.object({ + code: z.string(), + context: z.nullable(z.any()).optional(), + hint: z.nullable(z.string()).optional(), + httpStatusCode: z.nullable(z.int()).optional(), + internal: z.boolean(), + message: z.string(), + retryable: z.boolean().default(false), + source: z.nullable(z.any()).optional(), +}); -export function dataError1FromJSON( +export function eventDataError1FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataError1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataError1' from JSON`, + (x) => EventDataError1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataError1' from JSON`, ); } /** @internal */ -export const Phase$inboundSchema: z.ZodEnum = z.enum(Phase); +export const EventPhase$inboundSchema: z.ZodEnum = z.enum( + EventPhase, +); /** @internal */ -export const DataDeploymentFailed$inboundSchema: z.ZodType< - DataDeploymentFailed, +export const EventDataDeploymentFailed$inboundSchema: z.ZodType< + EventDataDeploymentFailed, unknown > = z.object({ attemptedReleaseId: z.nullable(z.string()).optional(), deploymentId: z.string(), - error: z.lazy(() => DataError1$inboundSchema), - phase: Phase$inboundSchema, + error: z.lazy(() => EventDataError1$inboundSchema), + phase: EventPhase$inboundSchema, type: z.literal("DeploymentFailed"), }); -export function dataDeploymentFailedFromJSON( +export function eventDataDeploymentFailedFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataDeploymentFailed$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataDeploymentFailed' from JSON`, + (x) => EventDataDeploymentFailed$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataDeploymentFailed' from JSON`, ); } /** @internal */ -export const DataDeploymentReleased$inboundSchema: z.ZodType< - DataDeploymentReleased, +export const EventDataDeploymentReleased$inboundSchema: z.ZodType< + EventDataDeploymentReleased, unknown > = z.object({ deploymentId: z.string(), @@ -1795,19 +2049,19 @@ export const DataDeploymentReleased$inboundSchema: z.ZodType< type: z.literal("DeploymentReleased"), }); -export function dataDeploymentReleasedFromJSON( +export function eventDataDeploymentReleasedFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataDeploymentReleased$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataDeploymentReleased' from JSON`, + (x) => EventDataDeploymentReleased$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataDeploymentReleased' from JSON`, ); } /** @internal */ -export const DataDeploymentCreated$inboundSchema: z.ZodType< - DataDeploymentCreated, +export const EventDataDeploymentCreated$inboundSchema: z.ZodType< + EventDataDeploymentCreated, unknown > = z.object({ deploymentGroupId: z.string(), @@ -1816,38 +2070,38 @@ export const DataDeploymentCreated$inboundSchema: z.ZodType< type: z.literal("DeploymentCreated"), }); -export function dataDeploymentCreatedFromJSON( +export function eventDataDeploymentCreatedFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataDeploymentCreated$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataDeploymentCreated' from JSON`, + (x) => EventDataDeploymentCreated$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataDeploymentCreated' from JSON`, ); } /** @internal */ -export const DataEmptyingBuckets$inboundSchema: z.ZodType< - DataEmptyingBuckets, +export const EventDataEmptyingBuckets$inboundSchema: z.ZodType< + EventDataEmptyingBuckets, unknown > = z.object({ bucketNames: z.array(z.string()), type: z.literal("EmptyingBuckets"), }); -export function dataEmptyingBucketsFromJSON( +export function eventDataEmptyingBucketsFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataEmptyingBuckets$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataEmptyingBuckets' from JSON`, + (x) => EventDataEmptyingBuckets$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataEmptyingBuckets' from JSON`, ); } /** @internal */ -export const DataDeletingCloudFormationStack$inboundSchema: z.ZodType< - DataDeletingCloudFormationStack, +export const EventDataDeletingCloudFormationStack$inboundSchema: z.ZodType< + EventDataDeletingCloudFormationStack, unknown > = z.object({ cfnStackName: z.string(), @@ -1855,63 +2109,64 @@ export const DataDeletingCloudFormationStack$inboundSchema: z.ZodType< type: z.literal("DeletingCloudFormationStack"), }); -export function dataDeletingCloudFormationStackFromJSON( +export function eventDataDeletingCloudFormationStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataDeletingCloudFormationStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataDeletingCloudFormationStack' from JSON`, + (x) => + EventDataDeletingCloudFormationStack$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataDeletingCloudFormationStack' from JSON`, ); } /** @internal */ -export const DataImportingStackStateFromCloudFormation$inboundSchema: z.ZodType< - DataImportingStackStateFromCloudFormation, - unknown -> = z.object({ - cfnStackName: z.string(), - type: z.literal("ImportingStackStateFromCloudFormation"), -}); +export const EventDataImportingStackStateFromCloudFormation$inboundSchema: + z.ZodType = z.object( + { + cfnStackName: z.string(), + type: z.literal("ImportingStackStateFromCloudFormation"), + }, + ); -export function dataImportingStackStateFromCloudFormationFromJSON( +export function eventDataImportingStackStateFromCloudFormationFromJSON( jsonString: string, ): SafeParseResult< - DataImportingStackStateFromCloudFormation, + EventDataImportingStackStateFromCloudFormation, SDKValidationError > { return safeParse( jsonString, (x) => - DataImportingStackStateFromCloudFormation$inboundSchema.parse( + EventDataImportingStackStateFromCloudFormation$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'DataImportingStackStateFromCloudFormation' from JSON`, + `Failed to parse 'EventDataImportingStackStateFromCloudFormation' from JSON`, ); } /** @internal */ -export const DataAssumingRole$inboundSchema: z.ZodType< - DataAssumingRole, +export const EventDataAssumingRole$inboundSchema: z.ZodType< + EventDataAssumingRole, unknown > = z.object({ roleArn: z.string(), type: z.literal("AssumingRole"), }); -export function dataAssumingRoleFromJSON( +export function eventDataAssumingRoleFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataAssumingRole$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataAssumingRole' from JSON`, + (x) => EventDataAssumingRole$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataAssumingRole' from JSON`, ); } /** @internal */ -export const DataDeployingCloudFormationStack$inboundSchema: z.ZodType< - DataDeployingCloudFormationStack, +export const EventDataDeployingCloudFormationStack$inboundSchema: z.ZodType< + EventDataDeployingCloudFormationStack, unknown > = z.object({ cfnStackName: z.string(), @@ -1919,57 +2174,58 @@ export const DataDeployingCloudFormationStack$inboundSchema: z.ZodType< type: z.literal("DeployingCloudFormationStack"), }); -export function dataDeployingCloudFormationStackFromJSON( +export function eventDataDeployingCloudFormationStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataDeployingCloudFormationStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataDeployingCloudFormationStack' from JSON`, + (x) => + EventDataDeployingCloudFormationStack$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataDeployingCloudFormationStack' from JSON`, ); } /** @internal */ -export const DataEnsuringDockerRepository$inboundSchema: z.ZodType< - DataEnsuringDockerRepository, +export const EventDataEnsuringDockerRepository$inboundSchema: z.ZodType< + EventDataEnsuringDockerRepository, unknown > = z.object({ repositoryName: z.string(), type: z.literal("EnsuringDockerRepository"), }); -export function dataEnsuringDockerRepositoryFromJSON( +export function eventDataEnsuringDockerRepositoryFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataEnsuringDockerRepository$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataEnsuringDockerRepository' from JSON`, + (x) => EventDataEnsuringDockerRepository$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataEnsuringDockerRepository' from JSON`, ); } /** @internal */ -export const DataSettingUpPlatformContext$inboundSchema: z.ZodType< - DataSettingUpPlatformContext, +export const EventDataSettingUpPlatformContext$inboundSchema: z.ZodType< + EventDataSettingUpPlatformContext, unknown > = z.object({ platformName: z.string(), type: z.literal("SettingUpPlatformContext"), }); -export function dataSettingUpPlatformContextFromJSON( +export function eventDataSettingUpPlatformContextFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataSettingUpPlatformContext$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataSettingUpPlatformContext' from JSON`, + (x) => EventDataSettingUpPlatformContext$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataSettingUpPlatformContext' from JSON`, ); } /** @internal */ -export const DataCleaningUpEnvironment$inboundSchema: z.ZodType< - DataCleaningUpEnvironment, +export const EventDataCleaningUpEnvironment$inboundSchema: z.ZodType< + EventDataCleaningUpEnvironment, unknown > = z.object({ stackName: z.string(), @@ -1977,19 +2233,19 @@ export const DataCleaningUpEnvironment$inboundSchema: z.ZodType< type: z.literal("CleaningUpEnvironment"), }); -export function dataCleaningUpEnvironmentFromJSON( +export function eventDataCleaningUpEnvironmentFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataCleaningUpEnvironment$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataCleaningUpEnvironment' from JSON`, + (x) => EventDataCleaningUpEnvironment$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataCleaningUpEnvironment' from JSON`, ); } /** @internal */ -export const DataCleaningUpStack$inboundSchema: z.ZodType< - DataCleaningUpStack, +export const EventDataCleaningUpStack$inboundSchema: z.ZodType< + EventDataCleaningUpStack, unknown > = z.object({ stackName: z.string(), @@ -1997,76 +2253,76 @@ export const DataCleaningUpStack$inboundSchema: z.ZodType< type: z.literal("CleaningUpStack"), }); -export function dataCleaningUpStackFromJSON( +export function eventDataCleaningUpStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataCleaningUpStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataCleaningUpStack' from JSON`, + (x) => EventDataCleaningUpStack$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataCleaningUpStack' from JSON`, ); } /** @internal */ -export const DataRunningTestWorker$inboundSchema: z.ZodType< - DataRunningTestWorker, +export const EventDataRunningTestWorker$inboundSchema: z.ZodType< + EventDataRunningTestWorker, unknown > = z.object({ stackName: z.string(), type: z.literal("RunningTestWorker"), }); -export function dataRunningTestWorkerFromJSON( +export function eventDataRunningTestWorkerFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataRunningTestWorker$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataRunningTestWorker' from JSON`, + (x) => EventDataRunningTestWorker$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataRunningTestWorker' from JSON`, ); } /** @internal */ -export const DataDeployingStack$inboundSchema: z.ZodType< - DataDeployingStack, +export const EventDataDeployingStack$inboundSchema: z.ZodType< + EventDataDeployingStack, unknown > = z.object({ stackName: z.string(), type: z.literal("DeployingStack"), }); -export function dataDeployingStackFromJSON( +export function eventDataDeployingStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataDeployingStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataDeployingStack' from JSON`, + (x) => EventDataDeployingStack$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataDeployingStack' from JSON`, ); } /** @internal */ -export const DataPreparingEnvironment$inboundSchema: z.ZodType< - DataPreparingEnvironment, +export const EventDataPreparingEnvironment$inboundSchema: z.ZodType< + EventDataPreparingEnvironment, unknown > = z.object({ strategyName: z.string(), type: z.literal("PreparingEnvironment"), }); -export function dataPreparingEnvironmentFromJSON( +export function eventDataPreparingEnvironmentFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataPreparingEnvironment$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataPreparingEnvironment' from JSON`, + (x) => EventDataPreparingEnvironment$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataPreparingEnvironment' from JSON`, ); } /** @internal */ -export const DataDebuggingAgent$inboundSchema: z.ZodType< - DataDebuggingAgent, +export const EventDataDebuggingAgent$inboundSchema: z.ZodType< + EventDataDebuggingAgent, unknown > = z.object({ agentId: z.string(), @@ -2074,19 +2330,19 @@ export const DataDebuggingAgent$inboundSchema: z.ZodType< type: z.literal("DebuggingAgent"), }); -export function dataDebuggingAgentFromJSON( +export function eventDataDebuggingAgentFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataDebuggingAgent$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataDebuggingAgent' from JSON`, + (x) => EventDataDebuggingAgent$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataDebuggingAgent' from JSON`, ); } /** @internal */ -export const DataDeletingAgent$inboundSchema: z.ZodType< - DataDeletingAgent, +export const EventDataDeletingAgent$inboundSchema: z.ZodType< + EventDataDeletingAgent, unknown > = z.object({ agentId: z.string(), @@ -2094,19 +2350,19 @@ export const DataDeletingAgent$inboundSchema: z.ZodType< type: z.literal("DeletingAgent"), }); -export function dataDeletingAgentFromJSON( +export function eventDataDeletingAgentFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataDeletingAgent$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataDeletingAgent' from JSON`, + (x) => EventDataDeletingAgent$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataDeletingAgent' from JSON`, ); } /** @internal */ -export const DataUpdatingAgent$inboundSchema: z.ZodType< - DataUpdatingAgent, +export const EventDataUpdatingAgent$inboundSchema: z.ZodType< + EventDataUpdatingAgent, unknown > = z.object({ agentId: z.string(), @@ -2114,19 +2370,19 @@ export const DataUpdatingAgent$inboundSchema: z.ZodType< type: z.literal("UpdatingAgent"), }); -export function dataUpdatingAgentFromJSON( +export function eventDataUpdatingAgentFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataUpdatingAgent$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataUpdatingAgent' from JSON`, + (x) => EventDataUpdatingAgent$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataUpdatingAgent' from JSON`, ); } /** @internal */ -export const DataProvisioningAgent$inboundSchema: z.ZodType< - DataProvisioningAgent, +export const EventDataProvisioningAgent$inboundSchema: z.ZodType< + EventDataProvisioningAgent, unknown > = z.object({ agentId: z.string(), @@ -2134,51 +2390,56 @@ export const DataProvisioningAgent$inboundSchema: z.ZodType< type: z.literal("ProvisioningAgent"), }); -export function dataProvisioningAgentFromJSON( +export function eventDataProvisioningAgentFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataProvisioningAgent$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataProvisioningAgent' from JSON`, + (x) => EventDataProvisioningAgent$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataProvisioningAgent' from JSON`, ); } /** @internal */ -export const DataGeneratingTemplate$inboundSchema: z.ZodType< - DataGeneratingTemplate, +export const EventDataGeneratingTemplate$inboundSchema: z.ZodType< + EventDataGeneratingTemplate, unknown > = z.object({ platform: z.string(), type: z.literal("GeneratingTemplate"), }); -export function dataGeneratingTemplateFromJSON( +export function eventDataGeneratingTemplateFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataGeneratingTemplate$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataGeneratingTemplate' from JSON`, + (x) => EventDataGeneratingTemplate$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataGeneratingTemplate' from JSON`, ); } /** @internal */ -export const DataGeneratingCloudFormationTemplate$inboundSchema: z.ZodType< - DataGeneratingCloudFormationTemplate, +export const EventDataGeneratingCloudFormationTemplate$inboundSchema: z.ZodType< + EventDataGeneratingCloudFormationTemplate, unknown > = z.object({ type: z.literal("GeneratingCloudFormationTemplate"), }); -export function dataGeneratingCloudFormationTemplateFromJSON( +export function eventDataGeneratingCloudFormationTemplateFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + EventDataGeneratingCloudFormationTemplate, + SDKValidationError +> { return safeParse( jsonString, (x) => - DataGeneratingCloudFormationTemplate$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataGeneratingCloudFormationTemplate' from JSON`, + EventDataGeneratingCloudFormationTemplate$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventDataGeneratingCloudFormationTemplate' from JSON`, ); } @@ -2248,41 +2509,43 @@ export function eventDependencyFromJSON( } /** @internal */ -export const ErrorNextState$inboundSchema: z.ZodType = - z.object({ - code: z.string(), - context: z.nullable(z.any()).optional(), - hint: z.nullable(z.string()).optional(), - httpStatusCode: z.nullable(z.int()).optional(), - internal: z.boolean(), - message: z.string(), - retryable: z.boolean().default(false), - source: z.nullable(z.any()).optional(), - }); +export const EventErrorNextState$inboundSchema: z.ZodType< + EventErrorNextState, + unknown +> = z.object({ + code: z.string(), + context: z.nullable(z.any()).optional(), + hint: z.nullable(z.string()).optional(), + httpStatusCode: z.nullable(z.int()).optional(), + internal: z.boolean(), + message: z.string(), + retryable: z.boolean().default(false), + source: z.nullable(z.any()).optional(), +}); -export function errorNextStateFromJSON( +export function eventErrorNextStateFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => ErrorNextState$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'ErrorNextState' from JSON`, + (x) => EventErrorNextState$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventErrorNextState' from JSON`, ); } /** @internal */ -export const NextStateErrorUnion$inboundSchema: z.ZodType< - NextStateErrorUnion, +export const EventNextStateErrorUnion$inboundSchema: z.ZodType< + EventNextStateErrorUnion, unknown -> = z.union([z.lazy(() => ErrorNextState$inboundSchema), z.any()]); +> = z.union([z.lazy(() => EventErrorNextState$inboundSchema), z.any()]); -export function nextStateErrorUnionFromJSON( +export function eventNextStateErrorUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => NextStateErrorUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'NextStateErrorUnion' from JSON`, + (x) => EventNextStateErrorUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventNextStateErrorUnion' from JSON`, ); } @@ -2398,7 +2661,7 @@ export const EventResources$inboundSchema: z.ZodType = dependencies: z.array(z.lazy(() => EventDependency$inboundSchema)) .optional(), error: z.nullable( - z.union([z.lazy(() => ErrorNextState$inboundSchema), z.any()]), + z.union([z.lazy(() => EventErrorNextState$inboundSchema), z.any()]), ).optional(), lastFailedState: z.nullable(z.any()).optional(), lifecycle: z.nullable(z.union([EventLifecycleEnum$inboundSchema, z.any()])) @@ -2430,43 +2693,46 @@ export function eventResourcesFromJSON( } /** @internal */ -export const NextState$inboundSchema: z.ZodType = z.object({ - platform: EventPlatform$inboundSchema, - resourcePrefix: z.string(), - resources: z.record(z.string(), z.lazy(() => EventResources$inboundSchema)), -}); +export const EventNextState$inboundSchema: z.ZodType = + z.object({ + platform: EventPlatform$inboundSchema, + resourcePrefix: z.string(), + resources: z.record(z.string(), z.lazy(() => EventResources$inboundSchema)), + }); -export function nextStateFromJSON( +export function eventNextStateFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => NextState$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'NextState' from JSON`, + (x) => EventNextState$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventNextState' from JSON`, ); } /** @internal */ -export const DataStackStep$inboundSchema: z.ZodType = z - .object({ - nextState: z.lazy(() => NextState$inboundSchema), - suggestedDelayMs: z.nullable(z.int()).optional(), - type: z.literal("StackStep"), - }); +export const EventDataStackStep$inboundSchema: z.ZodType< + EventDataStackStep, + unknown +> = z.object({ + nextState: z.lazy(() => EventNextState$inboundSchema), + suggestedDelayMs: z.nullable(z.int()).optional(), + type: z.literal("StackStep"), +}); -export function dataStackStepFromJSON( +export function eventDataStackStepFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataStackStep$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataStackStep' from JSON`, + (x) => EventDataStackStep$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataStackStep' from JSON`, ); } /** @internal */ -export const DataCompilingCode$inboundSchema: z.ZodType< - DataCompilingCode, +export const EventDataCompilingCode$inboundSchema: z.ZodType< + EventDataCompilingCode, unknown > = z.object({ language: z.string(), @@ -2474,38 +2740,38 @@ export const DataCompilingCode$inboundSchema: z.ZodType< type: z.literal("CompilingCode"), }); -export function dataCompilingCodeFromJSON( +export function eventDataCompilingCodeFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataCompilingCode$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataCompilingCode' from JSON`, + (x) => EventDataCompilingCode$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataCompilingCode' from JSON`, ); } /** @internal */ -export const DataCreatingRelease$inboundSchema: z.ZodType< - DataCreatingRelease, +export const EventDataCreatingRelease$inboundSchema: z.ZodType< + EventDataCreatingRelease, unknown > = z.object({ project: z.string(), type: z.literal("CreatingRelease"), }); -export function dataCreatingReleaseFromJSON( +export function eventDataCreatingReleaseFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataCreatingRelease$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataCreatingRelease' from JSON`, + (x) => EventDataCreatingRelease$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataCreatingRelease' from JSON`, ); } /** @internal */ -export const DataPushingResource$inboundSchema: z.ZodType< - DataPushingResource, +export const EventDataPushingResource$inboundSchema: z.ZodType< + EventDataPushingResource, unknown > = z.object({ resourceName: z.string(), @@ -2513,19 +2779,19 @@ export const DataPushingResource$inboundSchema: z.ZodType< type: z.literal("PushingResource"), }); -export function dataPushingResourceFromJSON( +export function eventDataPushingResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataPushingResource$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataPushingResource' from JSON`, + (x) => EventDataPushingResource$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataPushingResource' from JSON`, ); } /** @internal */ -export const DataPushingStack$inboundSchema: z.ZodType< - DataPushingStack, +export const EventDataPushingStack$inboundSchema: z.ZodType< + EventDataPushingStack, unknown > = z.object({ destination: z.nullable(z.string()).optional(), @@ -2534,92 +2800,96 @@ export const DataPushingStack$inboundSchema: z.ZodType< type: z.literal("PushingStack"), }); -export function dataPushingStackFromJSON( +export function eventDataPushingStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataPushingStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataPushingStack' from JSON`, + (x) => EventDataPushingStack$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataPushingStack' from JSON`, ); } /** @internal */ -export const Progress$inboundSchema: z.ZodType = z.object({ - bytesUploaded: z.int(), - layersUploaded: z.int(), - operation: z.string(), - totalBytes: z.int(), - totalLayers: z.int(), -}); +export const EventProgress$inboundSchema: z.ZodType = z + .object({ + bytesUploaded: z.int(), + layersUploaded: z.int(), + operation: z.string(), + totalBytes: z.int(), + totalLayers: z.int(), + }); -export function progressFromJSON( +export function eventProgressFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => Progress$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'Progress' from JSON`, + (x) => EventProgress$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventProgress' from JSON`, ); } /** @internal */ -export const ProgressUnion$inboundSchema: z.ZodType = z - .union([z.lazy(() => Progress$inboundSchema), z.any()]); +export const EventProgressUnion$inboundSchema: z.ZodType< + EventProgressUnion, + unknown +> = z.union([z.lazy(() => EventProgress$inboundSchema), z.any()]); -export function progressUnionFromJSON( +export function eventProgressUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => ProgressUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'ProgressUnion' from JSON`, + (x) => EventProgressUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventProgressUnion' from JSON`, ); } /** @internal */ -export const DataPushingImage$inboundSchema: z.ZodType< - DataPushingImage, +export const EventDataPushingImage$inboundSchema: z.ZodType< + EventDataPushingImage, unknown > = z.object({ image: z.string(), - progress: z.nullable(z.union([z.lazy(() => Progress$inboundSchema), z.any()])) - .optional(), + progress: z.nullable( + z.union([z.lazy(() => EventProgress$inboundSchema), z.any()]), + ).optional(), type: z.literal("PushingImage"), }); -export function dataPushingImageFromJSON( +export function eventDataPushingImageFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataPushingImage$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataPushingImage' from JSON`, + (x) => EventDataPushingImage$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataPushingImage' from JSON`, ); } /** @internal */ -export const DataBuildingImage$inboundSchema: z.ZodType< - DataBuildingImage, +export const EventDataBuildingImage$inboundSchema: z.ZodType< + EventDataBuildingImage, unknown > = z.object({ image: z.string(), type: z.literal("BuildingImage"), }); -export function dataBuildingImageFromJSON( +export function eventDataBuildingImageFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataBuildingImage$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataBuildingImage' from JSON`, + (x) => EventDataBuildingImage$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataBuildingImage' from JSON`, ); } /** @internal */ -export const DataBuildingResource$inboundSchema: z.ZodType< - DataBuildingResource, +export const EventDataBuildingResource$inboundSchema: z.ZodType< + EventDataBuildingResource, unknown > = z.object({ relatedResources: z.array(z.string()).optional(), @@ -2628,19 +2898,19 @@ export const DataBuildingResource$inboundSchema: z.ZodType< type: z.literal("BuildingResource"), }); -export function dataBuildingResourceFromJSON( +export function eventDataBuildingResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataBuildingResource$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataBuildingResource' from JSON`, + (x) => EventDataBuildingResource$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataBuildingResource' from JSON`, ); } /** @internal */ -export const DataDownloadingAlienRuntime$inboundSchema: z.ZodType< - DataDownloadingAlienRuntime, +export const EventDataDownloadingAlienRuntime$inboundSchema: z.ZodType< + EventDataDownloadingAlienRuntime, unknown > = z.object({ targetTriple: z.string(), @@ -2648,19 +2918,19 @@ export const DataDownloadingAlienRuntime$inboundSchema: z.ZodType< url: z.string(), }); -export function dataDownloadingAlienRuntimeFromJSON( +export function eventDataDownloadingAlienRuntimeFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataDownloadingAlienRuntime$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataDownloadingAlienRuntime' from JSON`, + (x) => EventDataDownloadingAlienRuntime$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataDownloadingAlienRuntime' from JSON`, ); } /** @internal */ -export const DataRunningPreflights$inboundSchema: z.ZodType< - DataRunningPreflights, +export const EventDataRunningPreflights$inboundSchema: z.ZodType< + EventDataRunningPreflights, unknown > = z.object({ platform: z.string(), @@ -2668,115 +2938,119 @@ export const DataRunningPreflights$inboundSchema: z.ZodType< type: z.literal("RunningPreflights"), }); -export function dataRunningPreflightsFromJSON( +export function eventDataRunningPreflightsFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataRunningPreflights$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataRunningPreflights' from JSON`, + (x) => EventDataRunningPreflights$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataRunningPreflights' from JSON`, ); } /** @internal */ -export const DataBuildingStack$inboundSchema: z.ZodType< - DataBuildingStack, +export const EventDataBuildingStack$inboundSchema: z.ZodType< + EventDataBuildingStack, unknown > = z.object({ stack: z.string(), type: z.literal("BuildingStack"), }); -export function dataBuildingStackFromJSON( +export function eventDataBuildingStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataBuildingStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataBuildingStack' from JSON`, + (x) => EventDataBuildingStack$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataBuildingStack' from JSON`, ); } /** @internal */ -export const DataFinished$inboundSchema: z.ZodType = z - .object({ - type: z.literal("Finished"), - }); +export const EventDataFinished$inboundSchema: z.ZodType< + EventDataFinished, + unknown +> = z.object({ + type: z.literal("Finished"), +}); -export function dataFinishedFromJSON( +export function eventDataFinishedFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataFinished$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataFinished' from JSON`, + (x) => EventDataFinished$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataFinished' from JSON`, ); } /** @internal */ -export const DataLoadingConfiguration$inboundSchema: z.ZodType< - DataLoadingConfiguration, +export const EventDataLoadingConfiguration$inboundSchema: z.ZodType< + EventDataLoadingConfiguration, unknown > = z.object({ type: z.literal("LoadingConfiguration"), }); -export function dataLoadingConfigurationFromJSON( +export function eventDataLoadingConfigurationFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataLoadingConfiguration$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataLoadingConfiguration' from JSON`, + (x) => EventDataLoadingConfiguration$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventDataLoadingConfiguration' from JSON`, ); } /** @internal */ export const EventDataUnion$inboundSchema: z.ZodType = z.union([ - z.lazy(() => DataLoadingConfiguration$inboundSchema), - z.lazy(() => DataFinished$inboundSchema), - z.lazy(() => DataBuildingStack$inboundSchema), - z.lazy(() => DataRunningPreflights$inboundSchema), - z.lazy(() => DataDownloadingAlienRuntime$inboundSchema), - z.lazy(() => DataBuildingResource$inboundSchema), - z.lazy(() => DataBuildingImage$inboundSchema), - z.lazy(() => DataPushingImage$inboundSchema), - z.lazy(() => DataPushingStack$inboundSchema), - z.lazy(() => DataPushingResource$inboundSchema), - z.lazy(() => DataCreatingRelease$inboundSchema), - z.lazy(() => DataCompilingCode$inboundSchema), - z.lazy(() => DataStackStep$inboundSchema), - z.lazy(() => DataGeneratingCloudFormationTemplate$inboundSchema), - z.lazy(() => DataGeneratingTemplate$inboundSchema), - z.lazy(() => DataProvisioningAgent$inboundSchema), - z.lazy(() => DataUpdatingAgent$inboundSchema), - z.lazy(() => DataDeletingAgent$inboundSchema), - z.lazy(() => DataDebuggingAgent$inboundSchema), - z.lazy(() => DataPreparingEnvironment$inboundSchema), - z.lazy(() => DataDeployingStack$inboundSchema), - z.lazy(() => DataRunningTestWorker$inboundSchema), - z.lazy(() => DataCleaningUpStack$inboundSchema), - z.lazy(() => DataCleaningUpEnvironment$inboundSchema), - z.lazy(() => DataSettingUpPlatformContext$inboundSchema), - z.lazy(() => DataEnsuringDockerRepository$inboundSchema), - z.lazy(() => DataDeployingCloudFormationStack$inboundSchema), - z.lazy(() => DataAssumingRole$inboundSchema), - z.lazy(() => DataImportingStackStateFromCloudFormation$inboundSchema), - z.lazy(() => DataDeletingCloudFormationStack$inboundSchema), - z.lazy(() => DataEmptyingBuckets$inboundSchema), - z.lazy(() => DataDeploymentCreated$inboundSchema), - z.lazy(() => DataDeploymentReleased$inboundSchema), - z.lazy(() => DataDeploymentFailed$inboundSchema), - z.lazy(() => DataDeploymentDegraded$inboundSchema), - z.lazy(() => DataDeploymentRecovered$inboundSchema), - z.lazy(() => DataDeploymentDeleted$inboundSchema), - z.lazy(() => DataDeploymentRetryRequested$inboundSchema), - z.lazy(() => DataDeploymentRedeployRequested$inboundSchema), - z.lazy(() => DataDeploymentReleasePinned$inboundSchema), - z.lazy(() => DataDeploymentReleaseUnpinned$inboundSchema), - z.lazy(() => DataDeploymentEnvironmentUpdated$inboundSchema), - z.lazy(() => DataDeploymentDeletionRequested$inboundSchema), + z.lazy(() => EventDataLoadingConfiguration$inboundSchema), + z.lazy(() => EventDataFinished$inboundSchema), + z.lazy(() => EventDataBuildingStack$inboundSchema), + z.lazy(() => EventDataRunningPreflights$inboundSchema), + z.lazy(() => EventDataDownloadingAlienRuntime$inboundSchema), + z.lazy(() => EventDataBuildingResource$inboundSchema), + z.lazy(() => EventDataBuildingImage$inboundSchema), + z.lazy(() => EventDataPushingImage$inboundSchema), + z.lazy(() => EventDataPushingStack$inboundSchema), + z.lazy(() => EventDataPushingResource$inboundSchema), + z.lazy(() => EventDataCreatingRelease$inboundSchema), + z.lazy(() => EventDataCompilingCode$inboundSchema), + z.lazy(() => EventDataStackStep$inboundSchema), + z.lazy(() => EventDataGeneratingCloudFormationTemplate$inboundSchema), + z.lazy(() => EventDataGeneratingTemplate$inboundSchema), + z.lazy(() => EventDataProvisioningAgent$inboundSchema), + z.lazy(() => EventDataUpdatingAgent$inboundSchema), + z.lazy(() => EventDataDeletingAgent$inboundSchema), + z.lazy(() => EventDataDebuggingAgent$inboundSchema), + z.lazy(() => EventDataPreparingEnvironment$inboundSchema), + z.lazy(() => EventDataDeployingStack$inboundSchema), + z.lazy(() => EventDataRunningTestWorker$inboundSchema), + z.lazy(() => EventDataCleaningUpStack$inboundSchema), + z.lazy(() => EventDataCleaningUpEnvironment$inboundSchema), + z.lazy(() => EventDataSettingUpPlatformContext$inboundSchema), + z.lazy(() => EventDataEnsuringDockerRepository$inboundSchema), + z.lazy(() => EventDataDeployingCloudFormationStack$inboundSchema), + z.lazy(() => EventDataAssumingRole$inboundSchema), + z.lazy(() => EventDataImportingStackStateFromCloudFormation$inboundSchema), + z.lazy(() => EventDataDeletingCloudFormationStack$inboundSchema), + z.lazy(() => EventDataEmptyingBuckets$inboundSchema), + z.lazy(() => EventDataDeploymentCreated$inboundSchema), + z.lazy(() => EventDataDeploymentReleased$inboundSchema), + z.lazy(() => EventDataDeploymentFailed$inboundSchema), + z.lazy(() => EventDataDeploymentDegraded$inboundSchema), + z.lazy(() => EventDataDeploymentRecovered$inboundSchema), + z.lazy(() => EventDataDeploymentDeleted$inboundSchema), + z.lazy(() => EventDataReleaseChannelUpdated$inboundSchema), + z.lazy(() => EventDataDeploymentReleaseChannelChanged$inboundSchema), + z.lazy(() => EventDataDeploymentRetryRequested$inboundSchema), + z.lazy(() => EventDataDeploymentRedeployRequested$inboundSchema), + z.lazy(() => EventDataDeploymentReleasePinned$inboundSchema), + z.lazy(() => EventDataDeploymentReleaseUnpinned$inboundSchema), + z.lazy(() => EventDataDeploymentEnvironmentUpdated$inboundSchema), + z.lazy(() => EventDataDeploymentDeletionRequested$inboundSchema), ]); export function eventDataUnionFromJSON( @@ -2790,77 +3064,82 @@ export function eventDataUnionFromJSON( } /** @internal */ -export const StateSuccess$inboundSchema: z.ZodEnum = z - .enum(StateSuccess); +export const EventStateSuccess$inboundSchema: z.ZodEnum< + typeof EventStateSuccess +> = z.enum(EventStateSuccess); /** @internal */ -export const StateStarted$inboundSchema: z.ZodEnum = z - .enum(StateStarted); +export const EventStateStarted$inboundSchema: z.ZodEnum< + typeof EventStateStarted +> = z.enum(EventStateStarted); /** @internal */ -export const StateNone$inboundSchema: z.ZodEnum = z.enum( - StateNone, -); +export const EventStateNone$inboundSchema: z.ZodEnum = z + .enum(EventStateNone); /** @internal */ -export const ErrorFailed$inboundSchema: z.ZodType = z - .object({ - code: z.string(), - context: z.nullable(z.any()).optional(), - hint: z.nullable(z.string()).optional(), - httpStatusCode: z.nullable(z.int()).optional(), - internal: z.boolean(), - message: z.string(), - retryable: z.boolean().default(false), - source: z.nullable(z.any()).optional(), - }); +export const EventErrorFailed$inboundSchema: z.ZodType< + EventErrorFailed, + unknown +> = z.object({ + code: z.string(), + context: z.nullable(z.any()).optional(), + hint: z.nullable(z.string()).optional(), + httpStatusCode: z.nullable(z.int()).optional(), + internal: z.boolean(), + message: z.string(), + retryable: z.boolean().default(false), + source: z.nullable(z.any()).optional(), +}); -export function errorFailedFromJSON( +export function eventErrorFailedFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => ErrorFailed$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'ErrorFailed' from JSON`, + (x) => EventErrorFailed$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventErrorFailed' from JSON`, ); } /** @internal */ -export const FailedErrorUnion$inboundSchema: z.ZodType< - FailedErrorUnion, +export const EventFailedErrorUnion$inboundSchema: z.ZodType< + EventFailedErrorUnion, unknown -> = z.union([z.lazy(() => ErrorFailed$inboundSchema), z.any()]); +> = z.union([z.lazy(() => EventErrorFailed$inboundSchema), z.any()]); -export function failedErrorUnionFromJSON( +export function eventFailedErrorUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => FailedErrorUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'FailedErrorUnion' from JSON`, + (x) => EventFailedErrorUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventFailedErrorUnion' from JSON`, ); } /** @internal */ -export const Failed$inboundSchema: z.ZodType = z.object({ - error: z.nullable(z.union([z.lazy(() => ErrorFailed$inboundSchema), z.any()])) - .optional(), -}); +export const EventFailed$inboundSchema: z.ZodType = z + .object({ + error: z.nullable( + z.union([z.lazy(() => EventErrorFailed$inboundSchema), z.any()]), + ).optional(), + }); -export function failedFromJSON( +export function eventFailedFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => Failed$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'Failed' from JSON`, + (x) => EventFailed$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventFailed' from JSON`, ); } /** @internal */ export const EventState$inboundSchema: z.ZodType = z .object({ - failed: z.lazy(() => Failed$inboundSchema), + failed: z.lazy(() => EventFailed$inboundSchema), }); export function eventStateFromJSON( @@ -2874,20 +3153,23 @@ export function eventStateFromJSON( } /** @internal */ -export const State$inboundSchema: z.ZodType = z.union([ +export const EventStateUnion$inboundSchema: z.ZodType< + EventStateUnion, + unknown +> = z.union([ z.lazy(() => EventState$inboundSchema), - StateNone$inboundSchema, - StateStarted$inboundSchema, - StateSuccess$inboundSchema, + EventStateNone$inboundSchema, + EventStateStarted$inboundSchema, + EventStateSuccess$inboundSchema, ]); -export function stateFromJSON( +export function eventStateUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => State$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'State' from JSON`, + (x) => EventStateUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventStateUnion' from JSON`, ); } @@ -2898,55 +3180,57 @@ export const Event$inboundSchema: z.ZodType = z.object({ releaseId: z.nullable(z.string()).optional(), debugSessionId: z.nullable(z.string()).optional(), data: z.union([ - z.lazy(() => DataLoadingConfiguration$inboundSchema), - z.lazy(() => DataFinished$inboundSchema), - z.lazy(() => DataBuildingStack$inboundSchema), - z.lazy(() => DataRunningPreflights$inboundSchema), - z.lazy(() => DataDownloadingAlienRuntime$inboundSchema), - z.lazy(() => DataBuildingResource$inboundSchema), - z.lazy(() => DataBuildingImage$inboundSchema), - z.lazy(() => DataPushingImage$inboundSchema), - z.lazy(() => DataPushingStack$inboundSchema), - z.lazy(() => DataPushingResource$inboundSchema), - z.lazy(() => DataCreatingRelease$inboundSchema), - z.lazy(() => DataCompilingCode$inboundSchema), - z.lazy(() => DataStackStep$inboundSchema), - z.lazy(() => DataGeneratingCloudFormationTemplate$inboundSchema), - z.lazy(() => DataGeneratingTemplate$inboundSchema), - z.lazy(() => DataProvisioningAgent$inboundSchema), - z.lazy(() => DataUpdatingAgent$inboundSchema), - z.lazy(() => DataDeletingAgent$inboundSchema), - z.lazy(() => DataDebuggingAgent$inboundSchema), - z.lazy(() => DataPreparingEnvironment$inboundSchema), - z.lazy(() => DataDeployingStack$inboundSchema), - z.lazy(() => DataRunningTestWorker$inboundSchema), - z.lazy(() => DataCleaningUpStack$inboundSchema), - z.lazy(() => DataCleaningUpEnvironment$inboundSchema), - z.lazy(() => DataSettingUpPlatformContext$inboundSchema), - z.lazy(() => DataEnsuringDockerRepository$inboundSchema), - z.lazy(() => DataDeployingCloudFormationStack$inboundSchema), - z.lazy(() => DataAssumingRole$inboundSchema), - z.lazy(() => DataImportingStackStateFromCloudFormation$inboundSchema), - z.lazy(() => DataDeletingCloudFormationStack$inboundSchema), - z.lazy(() => DataEmptyingBuckets$inboundSchema), - z.lazy(() => DataDeploymentCreated$inboundSchema), - z.lazy(() => DataDeploymentReleased$inboundSchema), - z.lazy(() => DataDeploymentFailed$inboundSchema), - z.lazy(() => DataDeploymentDegraded$inboundSchema), - z.lazy(() => DataDeploymentRecovered$inboundSchema), - z.lazy(() => DataDeploymentDeleted$inboundSchema), - z.lazy(() => DataDeploymentRetryRequested$inboundSchema), - z.lazy(() => DataDeploymentRedeployRequested$inboundSchema), - z.lazy(() => DataDeploymentReleasePinned$inboundSchema), - z.lazy(() => DataDeploymentReleaseUnpinned$inboundSchema), - z.lazy(() => DataDeploymentEnvironmentUpdated$inboundSchema), - z.lazy(() => DataDeploymentDeletionRequested$inboundSchema), + z.lazy(() => EventDataLoadingConfiguration$inboundSchema), + z.lazy(() => EventDataFinished$inboundSchema), + z.lazy(() => EventDataBuildingStack$inboundSchema), + z.lazy(() => EventDataRunningPreflights$inboundSchema), + z.lazy(() => EventDataDownloadingAlienRuntime$inboundSchema), + z.lazy(() => EventDataBuildingResource$inboundSchema), + z.lazy(() => EventDataBuildingImage$inboundSchema), + z.lazy(() => EventDataPushingImage$inboundSchema), + z.lazy(() => EventDataPushingStack$inboundSchema), + z.lazy(() => EventDataPushingResource$inboundSchema), + z.lazy(() => EventDataCreatingRelease$inboundSchema), + z.lazy(() => EventDataCompilingCode$inboundSchema), + z.lazy(() => EventDataStackStep$inboundSchema), + z.lazy(() => EventDataGeneratingCloudFormationTemplate$inboundSchema), + z.lazy(() => EventDataGeneratingTemplate$inboundSchema), + z.lazy(() => EventDataProvisioningAgent$inboundSchema), + z.lazy(() => EventDataUpdatingAgent$inboundSchema), + z.lazy(() => EventDataDeletingAgent$inboundSchema), + z.lazy(() => EventDataDebuggingAgent$inboundSchema), + z.lazy(() => EventDataPreparingEnvironment$inboundSchema), + z.lazy(() => EventDataDeployingStack$inboundSchema), + z.lazy(() => EventDataRunningTestWorker$inboundSchema), + z.lazy(() => EventDataCleaningUpStack$inboundSchema), + z.lazy(() => EventDataCleaningUpEnvironment$inboundSchema), + z.lazy(() => EventDataSettingUpPlatformContext$inboundSchema), + z.lazy(() => EventDataEnsuringDockerRepository$inboundSchema), + z.lazy(() => EventDataDeployingCloudFormationStack$inboundSchema), + z.lazy(() => EventDataAssumingRole$inboundSchema), + z.lazy(() => EventDataImportingStackStateFromCloudFormation$inboundSchema), + z.lazy(() => EventDataDeletingCloudFormationStack$inboundSchema), + z.lazy(() => EventDataEmptyingBuckets$inboundSchema), + z.lazy(() => EventDataDeploymentCreated$inboundSchema), + z.lazy(() => EventDataDeploymentReleased$inboundSchema), + z.lazy(() => EventDataDeploymentFailed$inboundSchema), + z.lazy(() => EventDataDeploymentDegraded$inboundSchema), + z.lazy(() => EventDataDeploymentRecovered$inboundSchema), + z.lazy(() => EventDataDeploymentDeleted$inboundSchema), + z.lazy(() => EventDataReleaseChannelUpdated$inboundSchema), + z.lazy(() => EventDataDeploymentReleaseChannelChanged$inboundSchema), + z.lazy(() => EventDataDeploymentRetryRequested$inboundSchema), + z.lazy(() => EventDataDeploymentRedeployRequested$inboundSchema), + z.lazy(() => EventDataDeploymentReleasePinned$inboundSchema), + z.lazy(() => EventDataDeploymentReleaseUnpinned$inboundSchema), + z.lazy(() => EventDataDeploymentEnvironmentUpdated$inboundSchema), + z.lazy(() => EventDataDeploymentDeletionRequested$inboundSchema), ]), state: z.union([ z.lazy(() => EventState$inboundSchema), - StateNone$inboundSchema, - StateStarted$inboundSchema, - StateSuccess$inboundSchema, + EventStateNone$inboundSchema, + EventStateStarted$inboundSchema, + EventStateSuccess$inboundSchema, ]), projectId: z.string(), createdAt: z.iso.datetime({ offset: true }).transform(v => new Date(v)), diff --git a/client-sdks/platform/typescript/src/models/eventlistitemresponse.ts b/client-sdks/platform/typescript/src/models/eventlistitemresponse.ts new file mode 100644 index 000000000..7236bd17e --- /dev/null +++ b/client-sdks/platform/typescript/src/models/eventlistitemresponse.ts @@ -0,0 +1,3634 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { remap as remap$ } from "../lib/primitives.js"; +import { + collectExtraKeys as collectExtraKeys$, + safeParse, +} from "../lib/schemas.js"; +import { ClosedEnum } from "../types/enums.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export type EventListItemResponseDataDeploymentDeletionRequested = { + /** + * ID of the deployment + */ + deploymentId: string; + type: "DeploymentDeletionRequested"; +}; + +/** + * Type of authenticated principal that requested an event. + */ +export const EventListItemResponseKind4 = { + User: "user", + ServiceAccount: "serviceAccount", +} as const; +/** + * Type of authenticated principal that requested an event. + */ +export type EventListItemResponseKind4 = ClosedEnum< + typeof EventListItemResponseKind4 +>; + +/** + * Authenticated principal that requested a deployment intent event. + */ +export type EventListItemResponseActor4 = { + /** + * User email when the principal is a user. + */ + email?: string | null | undefined; + /** + * Stable user or service-account identifier. + */ + id: string; + /** + * Type of authenticated principal that requested an event. + */ + kind: EventListItemResponseKind4; +}; + +export type EventListItemResponseActorUnion4 = + | EventListItemResponseActor4 + | any; + +export type EventListItemResponseDataDeploymentEnvironmentUpdated = { + actor?: EventListItemResponseActor4 | any | null | undefined; + /** + * Names of the environment variables that changed (added, removed, or modified) + */ + changedKeys: Array; + /** + * ID of the deployment + */ + deploymentId: string; + type: "DeploymentEnvironmentUpdated"; +}; + +export type EventListItemResponseDataDeploymentReleaseUnpinned = { + /** + * ID of the deployment + */ + deploymentId: string; + /** + * ID of the release that was previously pinned + */ + previousPinnedReleaseId: string; + type: "DeploymentReleaseUnpinned"; +}; + +export type EventListItemResponseDataDeploymentReleasePinned = { + /** + * ID of the deployment + */ + deploymentId: string; + /** + * ID of the release that is now pinned + */ + pinnedReleaseId: string; + /** + * ID of the previously pinned release, if any + */ + previousPinnedReleaseId?: string | null | undefined; + type: "DeploymentReleasePinned"; +}; + +export type EventListItemResponseDataDeploymentRedeployRequested = { + /** + * ID of the deployment + */ + deploymentId: string; + /** + * ID of the release being redeployed + */ + releaseId: string; + type: "DeploymentRedeployRequested"; +}; + +/** + * Type of authenticated principal that requested an event. + */ +export const EventListItemResponseKind3 = { + User: "user", + ServiceAccount: "serviceAccount", +} as const; +/** + * Type of authenticated principal that requested an event. + */ +export type EventListItemResponseKind3 = ClosedEnum< + typeof EventListItemResponseKind3 +>; + +/** + * Authenticated principal that requested a deployment intent event. + */ +export type EventListItemResponseActor3 = { + /** + * User email when the principal is a user. + */ + email?: string | null | undefined; + /** + * Stable user or service-account identifier. + */ + id: string; + /** + * Type of authenticated principal that requested an event. + */ + kind: EventListItemResponseKind3; +}; + +export type EventListItemResponseActorUnion3 = + | EventListItemResponseActor3 + | any; + +/** + * Canonical error container that provides a structured way to represent errors + * + * @remarks + * with rich metadata including error codes, human-readable messages, context, + * and chaining capabilities for error propagation. + * + * This struct is designed to be both machine-readable and user-friendly, + * supporting serialization for API responses and detailed error reporting + * in distributed systems. + */ +export type EventListItemResponsePreviousError = { + /** + * A unique identifier for the type of error. + * + * @remarks + * + * This should be a short, machine-readable string that can be used + * by clients to programmatically handle different error types. + * Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" + */ + code: string; + /** + * Additional diagnostic information about the error context. + * + * @remarks + * + * This optional field can contain structured data providing more details + * about the error, such as validation errors, request parameters that + * caused the issue, or other relevant context information. + */ + context?: any | null | undefined; + /** + * Optional human-facing remediation hint. + */ + hint?: string | null | undefined; + /** + * HTTP status code for this error. + * + * @remarks + * + * Used when converting the error to an HTTP response. If None, falls back to + * the error type's default status code or 500. + */ + httpStatusCode?: number | null | undefined; + /** + * Indicates if this is an internal error that should not be exposed to users. + * + * @remarks + * + * When `true`, this error contains sensitive information or implementation + * details that should not be shown to end-users. Such errors should be + * logged for debugging but replaced with generic error messages in responses. + */ + internal: boolean; + /** + * Human-readable error message. + * + * @remarks + * + * This message should be clear and actionable for developers or end-users, + * providing context about what went wrong and potentially how to fix it. + */ + message: string; + /** + * Indicates whether the operation that caused the error should be retried. + * + * @remarks + * + * When `true`, the error is transient and the operation might succeed + * if attempted again. When `false`, retrying the same operation is + * unlikely to succeed without changes. + */ + retryable: boolean; + /** + * The underlying error that caused this error, creating an error chain. + * + * @remarks + * + * This allows for proper error propagation and debugging by maintaining + * the full context of how an error occurred through multiple layers + * of an application. + */ + source?: any | null | undefined; +}; + +export type EventListItemResponsePreviousErrorUnion = + | EventListItemResponsePreviousError + | any; + +export type EventListItemResponseDataDeploymentRetryRequested = { + actor?: EventListItemResponseActor3 | any | null | undefined; + /** + * ID of the release that the failed attempt was targeting, if known + */ + attemptedReleaseId?: string | null | undefined; + /** + * ID of the deployment + */ + deploymentId: string; + previousError?: EventListItemResponsePreviousError | any | null | undefined; + type: "DeploymentRetryRequested"; +}; + +/** + * Type of authenticated principal that requested an event. + */ +export const EventListItemResponseKind2 = { + User: "user", + ServiceAccount: "serviceAccount", +} as const; +/** + * Type of authenticated principal that requested an event. + */ +export type EventListItemResponseKind2 = ClosedEnum< + typeof EventListItemResponseKind2 +>; + +/** + * Authenticated principal that requested a deployment intent event. + */ +export type EventListItemResponseActor2 = { + /** + * User email when the principal is a user. + */ + email?: string | null | undefined; + /** + * Stable user or service-account identifier. + */ + id: string; + /** + * Type of authenticated principal that requested an event. + */ + kind: EventListItemResponseKind2; +}; + +export type EventListItemResponseActorUnion2 = + | EventListItemResponseActor2 + | any; + +export type EventListItemResponseDataDeploymentReleaseChannelChanged = { + actor?: EventListItemResponseActor2 | any | null | undefined; + /** + * Newly followed channel + */ + channel: string; + /** + * ID of the deployment + */ + deploymentId: string; + /** + * Previously followed channel + */ + previousChannel: string; + type: "DeploymentReleaseChannelChanged"; +}; + +/** + * Type of authenticated principal that requested an event. + */ +export const EventListItemResponseKind1 = { + User: "user", + ServiceAccount: "serviceAccount", +} as const; +/** + * Type of authenticated principal that requested an event. + */ +export type EventListItemResponseKind1 = ClosedEnum< + typeof EventListItemResponseKind1 +>; + +/** + * Authenticated principal that requested a deployment intent event. + */ +export type EventListItemResponseActor1 = { + /** + * User email when the principal is a user. + */ + email?: string | null | undefined; + /** + * Stable user or service-account identifier. + */ + id: string; + /** + * Type of authenticated principal that requested an event. + */ + kind: EventListItemResponseKind1; +}; + +export type EventListItemResponseActorUnion1 = + | EventListItemResponseActor1 + | any; + +export type EventListItemResponseDataReleaseChannelUpdated = { + actor?: EventListItemResponseActor1 | any | null | undefined; + /** + * Name of the channel that moved + */ + channel: string; + /** + * ID of the release that was previously current, if any + */ + previousReleaseId?: string | null | undefined; + /** + * ID of the release that is now current + */ + releaseId: string; + type: "ReleaseChannelUpdated"; +}; + +export type EventListItemResponseDataDeploymentDeleted = { + /** + * ID of the deployment that was deleted + */ + deploymentId: string; + type: "DeploymentDeleted"; +}; + +export type EventListItemResponseDataDeploymentRecovered = { + /** + * ID of the deployment + */ + deploymentId: string; + /** + * ID of the release that is now live + */ + releaseId: string; + type: "DeploymentRecovered"; +}; + +/** + * Canonical error container that provides a structured way to represent errors + * + * @remarks + * with rich metadata including error codes, human-readable messages, context, + * and chaining capabilities for error propagation. + * + * This struct is designed to be both machine-readable and user-friendly, + * supporting serialization for API responses and detailed error reporting + * in distributed systems. + */ +export type EventListItemResponseDataError2 = { + /** + * A unique identifier for the type of error. + * + * @remarks + * + * This should be a short, machine-readable string that can be used + * by clients to programmatically handle different error types. + * Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" + */ + code: string; + /** + * Additional diagnostic information about the error context. + * + * @remarks + * + * This optional field can contain structured data providing more details + * about the error, such as validation errors, request parameters that + * caused the issue, or other relevant context information. + */ + context?: any | null | undefined; + /** + * Optional human-facing remediation hint. + */ + hint?: string | null | undefined; + /** + * HTTP status code for this error. + * + * @remarks + * + * Used when converting the error to an HTTP response. If None, falls back to + * the error type's default status code or 500. + */ + httpStatusCode?: number | null | undefined; + /** + * Indicates if this is an internal error that should not be exposed to users. + * + * @remarks + * + * When `true`, this error contains sensitive information or implementation + * details that should not be shown to end-users. Such errors should be + * logged for debugging but replaced with generic error messages in responses. + */ + internal: boolean; + /** + * Human-readable error message. + * + * @remarks + * + * This message should be clear and actionable for developers or end-users, + * providing context about what went wrong and potentially how to fix it. + */ + message: string; + /** + * Indicates whether the operation that caused the error should be retried. + * + * @remarks + * + * When `true`, the error is transient and the operation might succeed + * if attempted again. When `false`, retrying the same operation is + * unlikely to succeed without changes. + */ + retryable: boolean; + /** + * The underlying error that caused this error, creating an error chain. + * + * @remarks + * + * This allows for proper error propagation and debugging by maintaining + * the full context of how an error occurred through multiple layers + * of an application. + */ + source?: any | null | undefined; +}; + +export type EventListItemResponseDataDeploymentDegraded = { + /** + * ID of the deployment + */ + deploymentId: string; + /** + * Canonical error container that provides a structured way to represent errors + * + * @remarks + * with rich metadata including error codes, human-readable messages, context, + * and chaining capabilities for error propagation. + * + * This struct is designed to be both machine-readable and user-friendly, + * supporting serialization for API responses and detailed error reporting + * in distributed systems. + */ + error: EventListItemResponseDataError2; + type: "DeploymentDegraded"; +}; + +/** + * Canonical error container that provides a structured way to represent errors + * + * @remarks + * with rich metadata including error codes, human-readable messages, context, + * and chaining capabilities for error propagation. + * + * This struct is designed to be both machine-readable and user-friendly, + * supporting serialization for API responses and detailed error reporting + * in distributed systems. + */ +export type EventListItemResponseDataError1 = { + /** + * A unique identifier for the type of error. + * + * @remarks + * + * This should be a short, machine-readable string that can be used + * by clients to programmatically handle different error types. + * Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" + */ + code: string; + /** + * Additional diagnostic information about the error context. + * + * @remarks + * + * This optional field can contain structured data providing more details + * about the error, such as validation errors, request parameters that + * caused the issue, or other relevant context information. + */ + context?: any | null | undefined; + /** + * Optional human-facing remediation hint. + */ + hint?: string | null | undefined; + /** + * HTTP status code for this error. + * + * @remarks + * + * Used when converting the error to an HTTP response. If None, falls back to + * the error type's default status code or 500. + */ + httpStatusCode?: number | null | undefined; + /** + * Indicates if this is an internal error that should not be exposed to users. + * + * @remarks + * + * When `true`, this error contains sensitive information or implementation + * details that should not be shown to end-users. Such errors should be + * logged for debugging but replaced with generic error messages in responses. + */ + internal: boolean; + /** + * Human-readable error message. + * + * @remarks + * + * This message should be clear and actionable for developers or end-users, + * providing context about what went wrong and potentially how to fix it. + */ + message: string; + /** + * Indicates whether the operation that caused the error should be retried. + * + * @remarks + * + * When `true`, the error is transient and the operation might succeed + * if attempted again. When `false`, retrying the same operation is + * unlikely to succeed without changes. + */ + retryable: boolean; + /** + * The underlying error that caused this error, creating an error chain. + * + * @remarks + * + * This allows for proper error propagation and debugging by maintaining + * the full context of how an error occurred through multiple layers + * of an application. + */ + source?: any | null | undefined; +}; + +/** + * Phase of a deployment at which a failure occurred. + * + * @remarks + * + * Derived from the source deployment status: `preflights-failed` → + * `Preflights`, `provisioning-failed` → `Provisioning`, `update-failed` → + * `Updating`, `delete-failed` → `Deleting`. + * `refresh-failed` is modelled separately via `DeploymentDegraded`. + */ +export const EventListItemResponsePhase = { + Preflights: "preflights", + Provisioning: "provisioning", + Updating: "updating", + Deleting: "deleting", +} as const; +/** + * Phase of a deployment at which a failure occurred. + * + * @remarks + * + * Derived from the source deployment status: `preflights-failed` → + * `Preflights`, `provisioning-failed` → `Provisioning`, `update-failed` → + * `Updating`, `delete-failed` → `Deleting`. + * `refresh-failed` is modelled separately via `DeploymentDegraded`. + */ +export type EventListItemResponsePhase = ClosedEnum< + typeof EventListItemResponsePhase +>; + +export type EventListItemResponseDataDeploymentFailed = { + /** + * ID of the release the platform was trying to deploy, if known + */ + attemptedReleaseId?: string | null | undefined; + /** + * ID of the deployment + */ + deploymentId: string; + /** + * Canonical error container that provides a structured way to represent errors + * + * @remarks + * with rich metadata including error codes, human-readable messages, context, + * and chaining capabilities for error propagation. + * + * This struct is designed to be both machine-readable and user-friendly, + * supporting serialization for API responses and detailed error reporting + * in distributed systems. + */ + error: EventListItemResponseDataError1; + /** + * Phase of a deployment at which a failure occurred. + * + * @remarks + * + * Derived from the source deployment status: `preflights-failed` → + * `Preflights`, `provisioning-failed` → `Provisioning`, `update-failed` → + * `Updating`, `delete-failed` → `Deleting`. + * `refresh-failed` is modelled separately via `DeploymentDegraded`. + */ + phase: EventListItemResponsePhase; + type: "DeploymentFailed"; +}; + +export type EventListItemResponseDataDeploymentReleased = { + /** + * ID of the deployment + */ + deploymentId: string; + /** + * ID of the release that was previously live, if any + */ + previousReleaseId?: string | null | undefined; + /** + * ID of the release that is now live + */ + releaseId: string; + type: "DeploymentReleased"; +}; + +export type EventListItemResponseDataDeploymentCreated = { + /** + * ID of the deployment group this slot belongs to + */ + deploymentGroupId: string; + /** + * ID of the deployment that was created + */ + deploymentId: string; + /** + * Initial release the slot was created with, if any + */ + releaseId?: string | null | undefined; + type: "DeploymentCreated"; +}; + +export type EventListItemResponseDataEmptyingBuckets = { + /** + * Names of the S3 buckets being emptied + */ + bucketNames: Array; + type: "EmptyingBuckets"; +}; + +export type EventListItemResponseDataDeletingCloudFormationStack = { + /** + * Name of the CloudFormation stack + */ + cfnStackName: string; + /** + * Current stack status + */ + currentStatus: string; + type: "DeletingCloudFormationStack"; +}; + +export type EventListItemResponseDataImportingStackStateFromCloudFormation = { + /** + * Name of the CloudFormation stack + */ + cfnStackName: string; + type: "ImportingStackStateFromCloudFormation"; +}; + +export type EventListItemResponseDataAssumingRole = { + /** + * ARN of the role to assume + */ + roleArn: string; + type: "AssumingRole"; +}; + +export type EventListItemResponseDataDeployingCloudFormationStack = { + /** + * Name of the CloudFormation stack + */ + cfnStackName: string; + /** + * Current stack status + */ + currentStatus: string; + type: "DeployingCloudFormationStack"; +}; + +export type EventListItemResponseDataEnsuringDockerRepository = { + /** + * Name of the docker repository + */ + repositoryName: string; + type: "EnsuringDockerRepository"; +}; + +export type EventListItemResponseDataSettingUpPlatformContext = { + /** + * Name of the platform (e.g., "AWS", "GCP") + */ + platformName: string; + type: "SettingUpPlatformContext"; +}; + +export type EventListItemResponseDataCleaningUpEnvironment = { + /** + * Name of the stack being cleaned up + */ + stackName: string; + /** + * Name of the deployment strategy being used for cleanup + */ + strategyName: string; + type: "CleaningUpEnvironment"; +}; + +export type EventListItemResponseDataCleaningUpStack = { + /** + * Name of the stack being cleaned up + */ + stackName: string; + /** + * Name of the deployment strategy being used for cleanup + */ + strategyName: string; + type: "CleaningUpStack"; +}; + +export type EventListItemResponseDataRunningTestWorker = { + /** + * Name of the stack being tested + */ + stackName: string; + type: "RunningTestWorker"; +}; + +export type EventListItemResponseDataDeployingStack = { + /** + * Name of the stack being deployed + */ + stackName: string; + type: "DeployingStack"; +}; + +export type EventListItemResponseDataPreparingEnvironment = { + /** + * Name of the deployment strategy being used + */ + strategyName: string; + type: "PreparingEnvironment"; +}; + +export type EventListItemResponseDataDebuggingAgent = { + /** + * ID of the agent being debugged + */ + agentId: string; + /** + * ID of the debug session + */ + debugSessionId: string; + type: "DebuggingAgent"; +}; + +export type EventListItemResponseDataDeletingAgent = { + /** + * ID of the agent being deleted + */ + agentId: string; + /** + * ID of the release that was running on the agent + */ + releaseId: string; + type: "DeletingAgent"; +}; + +export type EventListItemResponseDataUpdatingAgent = { + /** + * ID of the agent being updated + */ + agentId: string; + /** + * ID of the new release being deployed to the agent + */ + releaseId: string; + type: "UpdatingAgent"; +}; + +export type EventListItemResponseDataProvisioningAgent = { + /** + * ID of the agent being provisioned + */ + agentId: string; + /** + * ID of the release being deployed to the agent + */ + releaseId: string; + type: "ProvisioningAgent"; +}; + +export type EventListItemResponseDataGeneratingTemplate = { + /** + * Platform for which the template is being generated + */ + platform: string; + type: "GeneratingTemplate"; +}; + +export type EventListItemResponseDataGeneratingCloudFormationTemplate = { + type: "GeneratingCloudFormationTemplate"; +}; + +/** + * Represents the target cloud platform. + */ +export const EventListItemResponsePlatform = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", +} as const; +/** + * Represents the target cloud platform. + */ +export type EventListItemResponsePlatform = ClosedEnum< + typeof EventListItemResponsePlatform +>; + +/** + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + */ +export type EventListItemResponseConfig = { + /** + * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. + */ + id: string; + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + type: string; + additionalProperties?: { [k: string]: any | null } | undefined; +}; + +/** + * Represents the target cloud platform. + */ +export const EventListItemResponseControllerPlatformEnum = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", +} as const; +/** + * Represents the target cloud platform. + */ +export type EventListItemResponseControllerPlatformEnum = ClosedEnum< + typeof EventListItemResponseControllerPlatformEnum +>; + +export type EventListItemResponseControllerPlatformUnion = + | EventListItemResponseControllerPlatformEnum + | any; + +/** + * Reference to a resource by its stable id and resource type. + */ +export type EventListItemResponseDependency = { + id: string; + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + type: string; +}; + +/** + * Canonical error container that provides a structured way to represent errors + * + * @remarks + * with rich metadata including error codes, human-readable messages, context, + * and chaining capabilities for error propagation. + * + * This struct is designed to be both machine-readable and user-friendly, + * supporting serialization for API responses and detailed error reporting + * in distributed systems. + */ +export type EventListItemResponseErrorNextState = { + /** + * A unique identifier for the type of error. + * + * @remarks + * + * This should be a short, machine-readable string that can be used + * by clients to programmatically handle different error types. + * Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" + */ + code: string; + /** + * Additional diagnostic information about the error context. + * + * @remarks + * + * This optional field can contain structured data providing more details + * about the error, such as validation errors, request parameters that + * caused the issue, or other relevant context information. + */ + context?: any | null | undefined; + /** + * Optional human-facing remediation hint. + */ + hint?: string | null | undefined; + /** + * HTTP status code for this error. + * + * @remarks + * + * Used when converting the error to an HTTP response. If None, falls back to + * the error type's default status code or 500. + */ + httpStatusCode?: number | null | undefined; + /** + * Indicates if this is an internal error that should not be exposed to users. + * + * @remarks + * + * When `true`, this error contains sensitive information or implementation + * details that should not be shown to end-users. Such errors should be + * logged for debugging but replaced with generic error messages in responses. + */ + internal: boolean; + /** + * Human-readable error message. + * + * @remarks + * + * This message should be clear and actionable for developers or end-users, + * providing context about what went wrong and potentially how to fix it. + */ + message: string; + /** + * Indicates whether the operation that caused the error should be retried. + * + * @remarks + * + * When `true`, the error is transient and the operation might succeed + * if attempted again. When `false`, retrying the same operation is + * unlikely to succeed without changes. + */ + retryable: boolean; + /** + * The underlying error that caused this error, creating an error chain. + * + * @remarks + * + * This allows for proper error propagation and debugging by maintaining + * the full context of how an error occurred through multiple layers + * of an application. + */ + source?: any | null | undefined; +}; + +export type EventListItemResponseNextStateErrorUnion = + | EventListItemResponseErrorNextState + | any; + +/** + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ +export const EventListItemResponseLifecycleEnum = { + Frozen: "frozen", + Live: "live", +} as const; +/** + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ +export type EventListItemResponseLifecycleEnum = ClosedEnum< + typeof EventListItemResponseLifecycleEnum +>; + +export type EventListItemResponseLifecycleUnion = + | EventListItemResponseLifecycleEnum + | any; + +/** + * Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties. + */ +export type EventListItemResponseOutputs = { + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + type: string; + additionalProperties?: { [k: string]: any | null } | undefined; +}; + +export type EventListItemResponseOutputsUnion = + | EventListItemResponseOutputs + | any; + +/** + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + */ +export type EventListItemResponsePreviousConfig = { + /** + * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. + */ + id: string; + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + type: string; + additionalProperties?: { [k: string]: any | null } | undefined; +}; + +export type EventListItemResponsePreviousConfigUnion = + | EventListItemResponsePreviousConfig + | any; + +/** + * Represents the high-level status of a resource during its lifecycle. + */ +export const EventListItemResponseStatus = { + Pending: "pending", + Provisioning: "provisioning", + ProvisionFailed: "provision-failed", + Running: "running", + Updating: "updating", + UpdateFailed: "update-failed", + Deleting: "deleting", + DeleteFailed: "delete-failed", + TeardownRequired: "teardown-required", + Deleted: "deleted", + RefreshFailed: "refresh-failed", +} as const; +/** + * Represents the high-level status of a resource during its lifecycle. + */ +export type EventListItemResponseStatus = ClosedEnum< + typeof EventListItemResponseStatus +>; + +/** + * Represents the state of a single resource within the stack for a specific platform. + */ +export type EventListItemResponseResources = { + /** + * The platform-specific resource controller that manages this resource's lifecycle. + * + * @remarks + * This is None when the resource status is Pending. + * Stored as JSON to make the struct serializable and movable to alien-core. + */ + internal?: any | null | undefined; + /** + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + */ + config: EventListItemResponseConfig; + controllerPlatform?: + | EventListItemResponseControllerPlatformEnum + | any + | null + | undefined; + /** + * Complete list of dependencies for this resource, including infrastructure dependencies. + * + * @remarks + * This preserves the full dependency information from the stack definition. + */ + dependencies?: Array | undefined; + error?: EventListItemResponseErrorNextState | any | null | undefined; + /** + * Stores the controller state that failed, used for manual retry operations. + * + * @remarks + * This allows resuming from the exact point where the failure occurred. + * Stored as JSON to make the struct serializable and movable to alien-core. + */ + lastFailedState?: any | null | undefined; + lifecycle?: EventListItemResponseLifecycleEnum | any | null | undefined; + outputs?: EventListItemResponseOutputs | any | null | undefined; + previousConfig?: EventListItemResponsePreviousConfig | any | null | undefined; + /** + * Binding parameters for remote access. + * + * @remarks + * Only populated when the resource has `remote_access: true` in its ResourceEntry. + * This is the JSON serialization of the binding configuration (e.g., StorageBinding, VaultBinding). + * Populated by controllers during provisioning using get_binding_params(). + */ + remoteBindingParams?: any | null | undefined; + /** + * Tracks consecutive retry attempts for the current state transition. + */ + retryAttempt?: number | undefined; + /** + * Represents the high-level status of a resource during its lifecycle. + */ + status: EventListItemResponseStatus; + /** + * The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE). + */ + type: string; +}; + +/** + * Represents the collective state of all resources in a stack, including platform and pending actions. + */ +export type EventListItemResponseNextState = { + /** + * Represents the target cloud platform. + */ + platform: EventListItemResponsePlatform; + /** + * A prefix used for resource naming to ensure uniqueness across deployments. + */ + resourcePrefix: string; + /** + * The state of individual resources, keyed by resource ID. + */ + resources: { [k: string]: EventListItemResponseResources }; +}; + +export type EventListItemResponseDataStackStep = { + /** + * Represents the collective state of all resources in a stack, including platform and pending actions. + */ + nextState: EventListItemResponseNextState; + /** + * An suggested duration to wait before executing the next step. + */ + suggestedDelayMs?: number | null | undefined; + type: "StackStep"; +}; + +export type EventListItemResponseDataCompilingCode = { + /** + * Language being compiled (rust, typescript, etc.) + */ + language: string; + /** + * Current progress/status line from the build output + */ + progress?: string | null | undefined; + type: "CompilingCode"; +}; + +export type EventListItemResponseDataCreatingRelease = { + /** + * Project name + */ + project: string; + type: "CreatingRelease"; +}; + +export type EventListItemResponseDataPushingResource = { + /** + * Name of the resource being pushed + */ + resourceName: string; + /** + * Type of the resource: "worker", "container" + */ + resourceType: string; + type: "PushingResource"; +}; + +export type EventListItemResponseDataPushingStack = { + /** + * Human-readable destination for pushed images + */ + destination?: string | null | undefined; + /** + * Target platform + */ + platform: string; + /** + * Name of the stack being pushed + */ + stack: string; + type: "PushingStack"; +}; + +/** + * Progress information for image push operations + */ +export type EventListItemResponseProgress = { + /** + * Bytes uploaded so far + */ + bytesUploaded: number; + /** + * Number of layers uploaded so far + */ + layersUploaded: number; + /** + * Current operation being performed + */ + operation: string; + /** + * Total bytes to upload + */ + totalBytes: number; + /** + * Total number of layers to upload + */ + totalLayers: number; +}; + +export type EventListItemResponseProgressUnion = + | EventListItemResponseProgress + | any; + +export type EventListItemResponseDataPushingImage = { + /** + * Name of the image being pushed + */ + image: string; + progress?: EventListItemResponseProgress | any | null | undefined; + type: "PushingImage"; +}; + +export type EventListItemResponseDataBuildingImage = { + /** + * Name of the image being built + */ + image: string; + type: "BuildingImage"; +}; + +export type EventListItemResponseDataBuildingResource = { + /** + * All resource names sharing this build (for deduped container groups) + */ + relatedResources?: Array | undefined; + /** + * Name of the resource being built + */ + resourceName: string; + /** + * Type of the resource: "worker", "container" + */ + resourceType: string; + type: "BuildingResource"; +}; + +export type EventListItemResponseDataDownloadingAlienRuntime = { + /** + * Target triple for the runtime + */ + targetTriple: string; + type: "DownloadingAlienRuntime"; + /** + * URL being downloaded from + */ + url: string; +}; + +export type EventListItemResponseDataRunningPreflights = { + /** + * Platform being targeted + */ + platform: string; + /** + * Name of the stack being checked + */ + stack: string; + type: "RunningPreflights"; +}; + +export type EventListItemResponseDataBuildingStack = { + /** + * Name of the stack being built + */ + stack: string; + type: "BuildingStack"; +}; + +export type EventListItemResponseDataFinished = { + type: "Finished"; +}; + +export type EventListItemResponseDataLoadingConfiguration = { + type: "LoadingConfiguration"; +}; + +export type EventListItemResponseDataUnion = + | EventListItemResponseDataLoadingConfiguration + | EventListItemResponseDataFinished + | EventListItemResponseDataBuildingStack + | EventListItemResponseDataRunningPreflights + | EventListItemResponseDataDownloadingAlienRuntime + | EventListItemResponseDataBuildingResource + | EventListItemResponseDataBuildingImage + | EventListItemResponseDataPushingImage + | EventListItemResponseDataPushingStack + | EventListItemResponseDataPushingResource + | EventListItemResponseDataCreatingRelease + | EventListItemResponseDataCompilingCode + | EventListItemResponseDataStackStep + | EventListItemResponseDataGeneratingCloudFormationTemplate + | EventListItemResponseDataGeneratingTemplate + | EventListItemResponseDataProvisioningAgent + | EventListItemResponseDataUpdatingAgent + | EventListItemResponseDataDeletingAgent + | EventListItemResponseDataDebuggingAgent + | EventListItemResponseDataPreparingEnvironment + | EventListItemResponseDataDeployingStack + | EventListItemResponseDataRunningTestWorker + | EventListItemResponseDataCleaningUpStack + | EventListItemResponseDataCleaningUpEnvironment + | EventListItemResponseDataSettingUpPlatformContext + | EventListItemResponseDataEnsuringDockerRepository + | EventListItemResponseDataDeployingCloudFormationStack + | EventListItemResponseDataAssumingRole + | EventListItemResponseDataImportingStackStateFromCloudFormation + | EventListItemResponseDataDeletingCloudFormationStack + | EventListItemResponseDataEmptyingBuckets + | EventListItemResponseDataDeploymentCreated + | EventListItemResponseDataDeploymentReleased + | EventListItemResponseDataDeploymentFailed + | EventListItemResponseDataDeploymentDegraded + | EventListItemResponseDataDeploymentRecovered + | EventListItemResponseDataDeploymentDeleted + | EventListItemResponseDataReleaseChannelUpdated + | EventListItemResponseDataDeploymentReleaseChannelChanged + | EventListItemResponseDataDeploymentRetryRequested + | EventListItemResponseDataDeploymentRedeployRequested + | EventListItemResponseDataDeploymentReleasePinned + | EventListItemResponseDataDeploymentReleaseUnpinned + | EventListItemResponseDataDeploymentEnvironmentUpdated + | EventListItemResponseDataDeploymentDeletionRequested; + +export const EventListItemResponseStateSuccess = { + Success: "success", +} as const; +export type EventListItemResponseStateSuccess = ClosedEnum< + typeof EventListItemResponseStateSuccess +>; + +export const EventListItemResponseStateStarted = { + Started: "started", +} as const; +export type EventListItemResponseStateStarted = ClosedEnum< + typeof EventListItemResponseStateStarted +>; + +export const EventListItemResponseStateNone = { + None: "none", +} as const; +export type EventListItemResponseStateNone = ClosedEnum< + typeof EventListItemResponseStateNone +>; + +/** + * Canonical error container that provides a structured way to represent errors + * + * @remarks + * with rich metadata including error codes, human-readable messages, context, + * and chaining capabilities for error propagation. + * + * This struct is designed to be both machine-readable and user-friendly, + * supporting serialization for API responses and detailed error reporting + * in distributed systems. + */ +export type EventListItemResponseErrorFailed = { + /** + * A unique identifier for the type of error. + * + * @remarks + * + * This should be a short, machine-readable string that can be used + * by clients to programmatically handle different error types. + * Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" + */ + code: string; + /** + * Additional diagnostic information about the error context. + * + * @remarks + * + * This optional field can contain structured data providing more details + * about the error, such as validation errors, request parameters that + * caused the issue, or other relevant context information. + */ + context?: any | null | undefined; + /** + * Optional human-facing remediation hint. + */ + hint?: string | null | undefined; + /** + * HTTP status code for this error. + * + * @remarks + * + * Used when converting the error to an HTTP response. If None, falls back to + * the error type's default status code or 500. + */ + httpStatusCode?: number | null | undefined; + /** + * Indicates if this is an internal error that should not be exposed to users. + * + * @remarks + * + * When `true`, this error contains sensitive information or implementation + * details that should not be shown to end-users. Such errors should be + * logged for debugging but replaced with generic error messages in responses. + */ + internal: boolean; + /** + * Human-readable error message. + * + * @remarks + * + * This message should be clear and actionable for developers or end-users, + * providing context about what went wrong and potentially how to fix it. + */ + message: string; + /** + * Indicates whether the operation that caused the error should be retried. + * + * @remarks + * + * When `true`, the error is transient and the operation might succeed + * if attempted again. When `false`, retrying the same operation is + * unlikely to succeed without changes. + */ + retryable: boolean; + /** + * The underlying error that caused this error, creating an error chain. + * + * @remarks + * + * This allows for proper error propagation and debugging by maintaining + * the full context of how an error occurred through multiple layers + * of an application. + */ + source?: any | null | undefined; +}; + +export type EventListItemResponseFailedErrorUnion = + | EventListItemResponseErrorFailed + | any; + +/** + * Event failed with an error + */ +export type EventListItemResponseFailed = { + error?: EventListItemResponseErrorFailed | any | null | undefined; +}; + +export type EventListItemResponseState = { + /** + * Event failed with an error + */ + failed: EventListItemResponseFailed; +}; + +/** + * Represents the state of an event + */ +export type EventListItemResponseStateUnion = + | EventListItemResponseState + | EventListItemResponseStateNone + | EventListItemResponseStateStarted + | EventListItemResponseStateSuccess; + +export type EventListItemResponse = { + /** + * Unique identifier for the event. + */ + id: string; + /** + * Unique identifier for the deployment. + */ + deploymentId?: string | null | undefined; + /** + * Unique identifier for the release. + */ + releaseId?: string | null | undefined; + /** + * Unique identifier for the debug session. + */ + debugSessionId?: string | null | undefined; + data: + | EventListItemResponseDataLoadingConfiguration + | EventListItemResponseDataFinished + | EventListItemResponseDataBuildingStack + | EventListItemResponseDataRunningPreflights + | EventListItemResponseDataDownloadingAlienRuntime + | EventListItemResponseDataBuildingResource + | EventListItemResponseDataBuildingImage + | EventListItemResponseDataPushingImage + | EventListItemResponseDataPushingStack + | EventListItemResponseDataPushingResource + | EventListItemResponseDataCreatingRelease + | EventListItemResponseDataCompilingCode + | EventListItemResponseDataStackStep + | EventListItemResponseDataGeneratingCloudFormationTemplate + | EventListItemResponseDataGeneratingTemplate + | EventListItemResponseDataProvisioningAgent + | EventListItemResponseDataUpdatingAgent + | EventListItemResponseDataDeletingAgent + | EventListItemResponseDataDebuggingAgent + | EventListItemResponseDataPreparingEnvironment + | EventListItemResponseDataDeployingStack + | EventListItemResponseDataRunningTestWorker + | EventListItemResponseDataCleaningUpStack + | EventListItemResponseDataCleaningUpEnvironment + | EventListItemResponseDataSettingUpPlatformContext + | EventListItemResponseDataEnsuringDockerRepository + | EventListItemResponseDataDeployingCloudFormationStack + | EventListItemResponseDataAssumingRole + | EventListItemResponseDataImportingStackStateFromCloudFormation + | EventListItemResponseDataDeletingCloudFormationStack + | EventListItemResponseDataEmptyingBuckets + | EventListItemResponseDataDeploymentCreated + | EventListItemResponseDataDeploymentReleased + | EventListItemResponseDataDeploymentFailed + | EventListItemResponseDataDeploymentDegraded + | EventListItemResponseDataDeploymentRecovered + | EventListItemResponseDataDeploymentDeleted + | EventListItemResponseDataReleaseChannelUpdated + | EventListItemResponseDataDeploymentReleaseChannelChanged + | EventListItemResponseDataDeploymentRetryRequested + | EventListItemResponseDataDeploymentRedeployRequested + | EventListItemResponseDataDeploymentReleasePinned + | EventListItemResponseDataDeploymentReleaseUnpinned + | EventListItemResponseDataDeploymentEnvironmentUpdated + | EventListItemResponseDataDeploymentDeletionRequested; + /** + * Represents the state of an event + */ + state: + | EventListItemResponseState + | EventListItemResponseStateNone + | EventListItemResponseStateStarted + | EventListItemResponseStateSuccess; + /** + * Unique identifier for the project. + */ + projectId: string; + createdAt: Date; + /** + * Unique identifier for the workspace. + */ + workspaceId: string; + /** + * createdAt of the event's referenced release, included when ?include=releaseCreatedAt is used + */ + releaseCreatedAt?: Date | null | undefined; +}; + +/** @internal */ +export const EventListItemResponseDataDeploymentDeletionRequested$inboundSchema: + z.ZodType = z + .object({ + deploymentId: z.string(), + type: z.literal("DeploymentDeletionRequested"), + }); + +export function eventListItemResponseDataDeploymentDeletionRequestedFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataDeploymentDeletionRequested, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataDeploymentDeletionRequested$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataDeploymentDeletionRequested' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseKind4$inboundSchema: z.ZodEnum< + typeof EventListItemResponseKind4 +> = z.enum(EventListItemResponseKind4); + +/** @internal */ +export const EventListItemResponseActor4$inboundSchema: z.ZodType< + EventListItemResponseActor4, + unknown +> = z.object({ + email: z.nullable(z.string()).optional(), + id: z.string(), + kind: EventListItemResponseKind4$inboundSchema, +}); + +export function eventListItemResponseActor4FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventListItemResponseActor4$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseActor4' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseActorUnion4$inboundSchema: z.ZodType< + EventListItemResponseActorUnion4, + unknown +> = z.union([z.lazy(() => EventListItemResponseActor4$inboundSchema), z.any()]); + +export function eventListItemResponseActorUnion4FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventListItemResponseActorUnion4$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseActorUnion4' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataDeploymentEnvironmentUpdated$inboundSchema: + z.ZodType = z + .object({ + actor: z.nullable( + z.union([ + z.lazy(() => EventListItemResponseActor4$inboundSchema), + z.any(), + ]), + ).optional(), + changedKeys: z.array(z.string()), + deploymentId: z.string(), + type: z.literal("DeploymentEnvironmentUpdated"), + }); + +export function eventListItemResponseDataDeploymentEnvironmentUpdatedFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataDeploymentEnvironmentUpdated, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataDeploymentEnvironmentUpdated$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataDeploymentEnvironmentUpdated' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataDeploymentReleaseUnpinned$inboundSchema: + z.ZodType = z + .object({ + deploymentId: z.string(), + previousPinnedReleaseId: z.string(), + type: z.literal("DeploymentReleaseUnpinned"), + }); + +export function eventListItemResponseDataDeploymentReleaseUnpinnedFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataDeploymentReleaseUnpinned, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataDeploymentReleaseUnpinned$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataDeploymentReleaseUnpinned' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataDeploymentReleasePinned$inboundSchema: + z.ZodType = z + .object({ + deploymentId: z.string(), + pinnedReleaseId: z.string(), + previousPinnedReleaseId: z.nullable(z.string()).optional(), + type: z.literal("DeploymentReleasePinned"), + }); + +export function eventListItemResponseDataDeploymentReleasePinnedFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataDeploymentReleasePinned, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataDeploymentReleasePinned$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataDeploymentReleasePinned' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataDeploymentRedeployRequested$inboundSchema: + z.ZodType = z + .object({ + deploymentId: z.string(), + releaseId: z.string(), + type: z.literal("DeploymentRedeployRequested"), + }); + +export function eventListItemResponseDataDeploymentRedeployRequestedFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataDeploymentRedeployRequested, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataDeploymentRedeployRequested$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataDeploymentRedeployRequested' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseKind3$inboundSchema: z.ZodEnum< + typeof EventListItemResponseKind3 +> = z.enum(EventListItemResponseKind3); + +/** @internal */ +export const EventListItemResponseActor3$inboundSchema: z.ZodType< + EventListItemResponseActor3, + unknown +> = z.object({ + email: z.nullable(z.string()).optional(), + id: z.string(), + kind: EventListItemResponseKind3$inboundSchema, +}); + +export function eventListItemResponseActor3FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventListItemResponseActor3$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseActor3' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseActorUnion3$inboundSchema: z.ZodType< + EventListItemResponseActorUnion3, + unknown +> = z.union([z.lazy(() => EventListItemResponseActor3$inboundSchema), z.any()]); + +export function eventListItemResponseActorUnion3FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventListItemResponseActorUnion3$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseActorUnion3' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponsePreviousError$inboundSchema: z.ZodType< + EventListItemResponsePreviousError, + unknown +> = z.object({ + code: z.string(), + context: z.nullable(z.any()).optional(), + hint: z.nullable(z.string()).optional(), + httpStatusCode: z.nullable(z.int()).optional(), + internal: z.boolean(), + message: z.string(), + retryable: z.boolean().default(false), + source: z.nullable(z.any()).optional(), +}); + +export function eventListItemResponsePreviousErrorFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + EventListItemResponsePreviousError$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponsePreviousError' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponsePreviousErrorUnion$inboundSchema: z.ZodType< + EventListItemResponsePreviousErrorUnion, + unknown +> = z.union([ + z.lazy(() => EventListItemResponsePreviousError$inboundSchema), + z.any(), +]); + +export function eventListItemResponsePreviousErrorUnionFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponsePreviousErrorUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponsePreviousErrorUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponsePreviousErrorUnion' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataDeploymentRetryRequested$inboundSchema: + z.ZodType = z + .object({ + actor: z.nullable( + z.union([ + z.lazy(() => EventListItemResponseActor3$inboundSchema), + z.any(), + ]), + ).optional(), + attemptedReleaseId: z.nullable(z.string()).optional(), + deploymentId: z.string(), + previousError: z.nullable( + z.union([ + z.lazy(() => EventListItemResponsePreviousError$inboundSchema), + z.any(), + ]), + ).optional(), + type: z.literal("DeploymentRetryRequested"), + }); + +export function eventListItemResponseDataDeploymentRetryRequestedFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataDeploymentRetryRequested, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataDeploymentRetryRequested$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataDeploymentRetryRequested' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseKind2$inboundSchema: z.ZodEnum< + typeof EventListItemResponseKind2 +> = z.enum(EventListItemResponseKind2); + +/** @internal */ +export const EventListItemResponseActor2$inboundSchema: z.ZodType< + EventListItemResponseActor2, + unknown +> = z.object({ + email: z.nullable(z.string()).optional(), + id: z.string(), + kind: EventListItemResponseKind2$inboundSchema, +}); + +export function eventListItemResponseActor2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventListItemResponseActor2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseActor2' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseActorUnion2$inboundSchema: z.ZodType< + EventListItemResponseActorUnion2, + unknown +> = z.union([z.lazy(() => EventListItemResponseActor2$inboundSchema), z.any()]); + +export function eventListItemResponseActorUnion2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventListItemResponseActorUnion2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseActorUnion2' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataDeploymentReleaseChannelChanged$inboundSchema: + z.ZodType = + z.object({ + actor: z.nullable( + z.union([ + z.lazy(() => EventListItemResponseActor2$inboundSchema), + z.any(), + ]), + ).optional(), + channel: z.string(), + deploymentId: z.string(), + previousChannel: z.string(), + type: z.literal("DeploymentReleaseChannelChanged"), + }); + +export function eventListItemResponseDataDeploymentReleaseChannelChangedFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataDeploymentReleaseChannelChanged, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataDeploymentReleaseChannelChanged$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseDataDeploymentReleaseChannelChanged' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseKind1$inboundSchema: z.ZodEnum< + typeof EventListItemResponseKind1 +> = z.enum(EventListItemResponseKind1); + +/** @internal */ +export const EventListItemResponseActor1$inboundSchema: z.ZodType< + EventListItemResponseActor1, + unknown +> = z.object({ + email: z.nullable(z.string()).optional(), + id: z.string(), + kind: EventListItemResponseKind1$inboundSchema, +}); + +export function eventListItemResponseActor1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventListItemResponseActor1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseActor1' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseActorUnion1$inboundSchema: z.ZodType< + EventListItemResponseActorUnion1, + unknown +> = z.union([z.lazy(() => EventListItemResponseActor1$inboundSchema), z.any()]); + +export function eventListItemResponseActorUnion1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventListItemResponseActorUnion1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseActorUnion1' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataReleaseChannelUpdated$inboundSchema: + z.ZodType = z.object( + { + actor: z.nullable(z.union([ + z.lazy(() => EventListItemResponseActor1$inboundSchema), + z.any(), + ])).optional(), + channel: z.string(), + previousReleaseId: z.nullable(z.string()).optional(), + releaseId: z.string(), + type: z.literal("ReleaseChannelUpdated"), + }, + ); + +export function eventListItemResponseDataReleaseChannelUpdatedFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataReleaseChannelUpdated, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataReleaseChannelUpdated$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataReleaseChannelUpdated' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataDeploymentDeleted$inboundSchema: + z.ZodType = z.object({ + deploymentId: z.string(), + type: z.literal("DeploymentDeleted"), + }); + +export function eventListItemResponseDataDeploymentDeletedFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataDeploymentDeleted, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataDeploymentDeleted$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataDeploymentDeleted' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataDeploymentRecovered$inboundSchema: + z.ZodType = z.object({ + deploymentId: z.string(), + releaseId: z.string(), + type: z.literal("DeploymentRecovered"), + }); + +export function eventListItemResponseDataDeploymentRecoveredFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataDeploymentRecovered, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataDeploymentRecovered$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataDeploymentRecovered' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataError2$inboundSchema: z.ZodType< + EventListItemResponseDataError2, + unknown +> = z.object({ + code: z.string(), + context: z.nullable(z.any()).optional(), + hint: z.nullable(z.string()).optional(), + httpStatusCode: z.nullable(z.int()).optional(), + internal: z.boolean(), + message: z.string(), + retryable: z.boolean().default(false), + source: z.nullable(z.any()).optional(), +}); + +export function eventListItemResponseDataError2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventListItemResponseDataError2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseDataError2' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataDeploymentDegraded$inboundSchema: + z.ZodType = z.object({ + deploymentId: z.string(), + error: z.lazy(() => EventListItemResponseDataError2$inboundSchema), + type: z.literal("DeploymentDegraded"), + }); + +export function eventListItemResponseDataDeploymentDegradedFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataDeploymentDegraded, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataDeploymentDegraded$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataDeploymentDegraded' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataError1$inboundSchema: z.ZodType< + EventListItemResponseDataError1, + unknown +> = z.object({ + code: z.string(), + context: z.nullable(z.any()).optional(), + hint: z.nullable(z.string()).optional(), + httpStatusCode: z.nullable(z.int()).optional(), + internal: z.boolean(), + message: z.string(), + retryable: z.boolean().default(false), + source: z.nullable(z.any()).optional(), +}); + +export function eventListItemResponseDataError1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventListItemResponseDataError1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseDataError1' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponsePhase$inboundSchema: z.ZodEnum< + typeof EventListItemResponsePhase +> = z.enum(EventListItemResponsePhase); + +/** @internal */ +export const EventListItemResponseDataDeploymentFailed$inboundSchema: z.ZodType< + EventListItemResponseDataDeploymentFailed, + unknown +> = z.object({ + attemptedReleaseId: z.nullable(z.string()).optional(), + deploymentId: z.string(), + error: z.lazy(() => EventListItemResponseDataError1$inboundSchema), + phase: EventListItemResponsePhase$inboundSchema, + type: z.literal("DeploymentFailed"), +}); + +export function eventListItemResponseDataDeploymentFailedFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataDeploymentFailed, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataDeploymentFailed$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataDeploymentFailed' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataDeploymentReleased$inboundSchema: + z.ZodType = z.object({ + deploymentId: z.string(), + previousReleaseId: z.nullable(z.string()).optional(), + releaseId: z.string(), + type: z.literal("DeploymentReleased"), + }); + +export function eventListItemResponseDataDeploymentReleasedFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataDeploymentReleased, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataDeploymentReleased$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataDeploymentReleased' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataDeploymentCreated$inboundSchema: + z.ZodType = z.object({ + deploymentGroupId: z.string(), + deploymentId: z.string(), + releaseId: z.nullable(z.string()).optional(), + type: z.literal("DeploymentCreated"), + }); + +export function eventListItemResponseDataDeploymentCreatedFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataDeploymentCreated, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataDeploymentCreated$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataDeploymentCreated' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataEmptyingBuckets$inboundSchema: z.ZodType< + EventListItemResponseDataEmptyingBuckets, + unknown +> = z.object({ + bucketNames: z.array(z.string()), + type: z.literal("EmptyingBuckets"), +}); + +export function eventListItemResponseDataEmptyingBucketsFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataEmptyingBuckets, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataEmptyingBuckets$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataEmptyingBuckets' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataDeletingCloudFormationStack$inboundSchema: + z.ZodType = z + .object({ + cfnStackName: z.string(), + currentStatus: z.string(), + type: z.literal("DeletingCloudFormationStack"), + }); + +export function eventListItemResponseDataDeletingCloudFormationStackFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataDeletingCloudFormationStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataDeletingCloudFormationStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataDeletingCloudFormationStack' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataImportingStackStateFromCloudFormation$inboundSchema: + z.ZodType< + EventListItemResponseDataImportingStackStateFromCloudFormation, + unknown + > = z.object({ + cfnStackName: z.string(), + type: z.literal("ImportingStackStateFromCloudFormation"), + }); + +export function eventListItemResponseDataImportingStackStateFromCloudFormationFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataImportingStackStateFromCloudFormation, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataImportingStackStateFromCloudFormation$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseDataImportingStackStateFromCloudFormation' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataAssumingRole$inboundSchema: z.ZodType< + EventListItemResponseDataAssumingRole, + unknown +> = z.object({ + roleArn: z.string(), + type: z.literal("AssumingRole"), +}); + +export function eventListItemResponseDataAssumingRoleFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataAssumingRole$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseDataAssumingRole' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataDeployingCloudFormationStack$inboundSchema: + z.ZodType = z + .object({ + cfnStackName: z.string(), + currentStatus: z.string(), + type: z.literal("DeployingCloudFormationStack"), + }); + +export function eventListItemResponseDataDeployingCloudFormationStackFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataDeployingCloudFormationStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataDeployingCloudFormationStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataDeployingCloudFormationStack' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataEnsuringDockerRepository$inboundSchema: + z.ZodType = z + .object({ + repositoryName: z.string(), + type: z.literal("EnsuringDockerRepository"), + }); + +export function eventListItemResponseDataEnsuringDockerRepositoryFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataEnsuringDockerRepository, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataEnsuringDockerRepository$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataEnsuringDockerRepository' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataSettingUpPlatformContext$inboundSchema: + z.ZodType = z + .object({ + platformName: z.string(), + type: z.literal("SettingUpPlatformContext"), + }); + +export function eventListItemResponseDataSettingUpPlatformContextFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataSettingUpPlatformContext, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataSettingUpPlatformContext$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataSettingUpPlatformContext' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataCleaningUpEnvironment$inboundSchema: + z.ZodType = z.object( + { + stackName: z.string(), + strategyName: z.string(), + type: z.literal("CleaningUpEnvironment"), + }, + ); + +export function eventListItemResponseDataCleaningUpEnvironmentFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataCleaningUpEnvironment, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataCleaningUpEnvironment$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataCleaningUpEnvironment' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataCleaningUpStack$inboundSchema: z.ZodType< + EventListItemResponseDataCleaningUpStack, + unknown +> = z.object({ + stackName: z.string(), + strategyName: z.string(), + type: z.literal("CleaningUpStack"), +}); + +export function eventListItemResponseDataCleaningUpStackFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataCleaningUpStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataCleaningUpStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataCleaningUpStack' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataRunningTestWorker$inboundSchema: + z.ZodType = z.object({ + stackName: z.string(), + type: z.literal("RunningTestWorker"), + }); + +export function eventListItemResponseDataRunningTestWorkerFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataRunningTestWorker, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataRunningTestWorker$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataRunningTestWorker' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataDeployingStack$inboundSchema: z.ZodType< + EventListItemResponseDataDeployingStack, + unknown +> = z.object({ + stackName: z.string(), + type: z.literal("DeployingStack"), +}); + +export function eventListItemResponseDataDeployingStackFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataDeployingStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataDeployingStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataDeployingStack' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataPreparingEnvironment$inboundSchema: + z.ZodType = z.object({ + strategyName: z.string(), + type: z.literal("PreparingEnvironment"), + }); + +export function eventListItemResponseDataPreparingEnvironmentFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataPreparingEnvironment, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataPreparingEnvironment$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataPreparingEnvironment' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataDebuggingAgent$inboundSchema: z.ZodType< + EventListItemResponseDataDebuggingAgent, + unknown +> = z.object({ + agentId: z.string(), + debugSessionId: z.string(), + type: z.literal("DebuggingAgent"), +}); + +export function eventListItemResponseDataDebuggingAgentFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataDebuggingAgent, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataDebuggingAgent$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataDebuggingAgent' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataDeletingAgent$inboundSchema: z.ZodType< + EventListItemResponseDataDeletingAgent, + unknown +> = z.object({ + agentId: z.string(), + releaseId: z.string(), + type: z.literal("DeletingAgent"), +}); + +export function eventListItemResponseDataDeletingAgentFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataDeletingAgent$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseDataDeletingAgent' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataUpdatingAgent$inboundSchema: z.ZodType< + EventListItemResponseDataUpdatingAgent, + unknown +> = z.object({ + agentId: z.string(), + releaseId: z.string(), + type: z.literal("UpdatingAgent"), +}); + +export function eventListItemResponseDataUpdatingAgentFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataUpdatingAgent$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseDataUpdatingAgent' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataProvisioningAgent$inboundSchema: + z.ZodType = z.object({ + agentId: z.string(), + releaseId: z.string(), + type: z.literal("ProvisioningAgent"), + }); + +export function eventListItemResponseDataProvisioningAgentFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataProvisioningAgent, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataProvisioningAgent$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataProvisioningAgent' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataGeneratingTemplate$inboundSchema: + z.ZodType = z.object({ + platform: z.string(), + type: z.literal("GeneratingTemplate"), + }); + +export function eventListItemResponseDataGeneratingTemplateFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataGeneratingTemplate, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataGeneratingTemplate$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataGeneratingTemplate' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataGeneratingCloudFormationTemplate$inboundSchema: + z.ZodType< + EventListItemResponseDataGeneratingCloudFormationTemplate, + unknown + > = z.object({ + type: z.literal("GeneratingCloudFormationTemplate"), + }); + +export function eventListItemResponseDataGeneratingCloudFormationTemplateFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataGeneratingCloudFormationTemplate, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataGeneratingCloudFormationTemplate$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseDataGeneratingCloudFormationTemplate' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponsePlatform$inboundSchema: z.ZodEnum< + typeof EventListItemResponsePlatform +> = z.enum(EventListItemResponsePlatform); + +/** @internal */ +export const EventListItemResponseConfig$inboundSchema: z.ZodType< + EventListItemResponseConfig, + unknown +> = collectExtraKeys$( + z.object({ + id: z.string(), + type: z.string(), + }).catchall(z.any()), + "additionalProperties", + true, +); + +export function eventListItemResponseConfigFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventListItemResponseConfig$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseConfig' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseControllerPlatformEnum$inboundSchema: + z.ZodEnum = z.enum( + EventListItemResponseControllerPlatformEnum, + ); + +/** @internal */ +export const EventListItemResponseControllerPlatformUnion$inboundSchema: + z.ZodType = z.union([ + EventListItemResponseControllerPlatformEnum$inboundSchema, + z.any(), + ]); + +export function eventListItemResponseControllerPlatformUnionFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseControllerPlatformUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseControllerPlatformUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseControllerPlatformUnion' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDependency$inboundSchema: z.ZodType< + EventListItemResponseDependency, + unknown +> = z.object({ + id: z.string(), + type: z.string(), +}); + +export function eventListItemResponseDependencyFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventListItemResponseDependency$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseDependency' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseErrorNextState$inboundSchema: z.ZodType< + EventListItemResponseErrorNextState, + unknown +> = z.object({ + code: z.string(), + context: z.nullable(z.any()).optional(), + hint: z.nullable(z.string()).optional(), + httpStatusCode: z.nullable(z.int()).optional(), + internal: z.boolean(), + message: z.string(), + retryable: z.boolean().default(false), + source: z.nullable(z.any()).optional(), +}); + +export function eventListItemResponseErrorNextStateFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + EventListItemResponseErrorNextState$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseErrorNextState' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseNextStateErrorUnion$inboundSchema: z.ZodType< + EventListItemResponseNextStateErrorUnion, + unknown +> = z.union([ + z.lazy(() => EventListItemResponseErrorNextState$inboundSchema), + z.any(), +]); + +export function eventListItemResponseNextStateErrorUnionFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseNextStateErrorUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseNextStateErrorUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseNextStateErrorUnion' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseLifecycleEnum$inboundSchema: z.ZodEnum< + typeof EventListItemResponseLifecycleEnum +> = z.enum(EventListItemResponseLifecycleEnum); + +/** @internal */ +export const EventListItemResponseLifecycleUnion$inboundSchema: z.ZodType< + EventListItemResponseLifecycleUnion, + unknown +> = z.union([EventListItemResponseLifecycleEnum$inboundSchema, z.any()]); + +export function eventListItemResponseLifecycleUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + EventListItemResponseLifecycleUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseLifecycleUnion' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseOutputs$inboundSchema: z.ZodType< + EventListItemResponseOutputs, + unknown +> = collectExtraKeys$( + z.object({ + type: z.string(), + }).catchall(z.any()), + "additionalProperties", + true, +); + +export function eventListItemResponseOutputsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventListItemResponseOutputs$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseOutputs' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseOutputsUnion$inboundSchema: z.ZodType< + EventListItemResponseOutputsUnion, + unknown +> = z.union([ + z.lazy(() => EventListItemResponseOutputs$inboundSchema), + z.any(), +]); + +export function eventListItemResponseOutputsUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventListItemResponseOutputsUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseOutputsUnion' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponsePreviousConfig$inboundSchema: z.ZodType< + EventListItemResponsePreviousConfig, + unknown +> = collectExtraKeys$( + z.object({ + id: z.string(), + type: z.string(), + }).catchall(z.any()), + "additionalProperties", + true, +); + +export function eventListItemResponsePreviousConfigFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + EventListItemResponsePreviousConfig$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponsePreviousConfig' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponsePreviousConfigUnion$inboundSchema: z.ZodType< + EventListItemResponsePreviousConfigUnion, + unknown +> = z.union([ + z.lazy(() => EventListItemResponsePreviousConfig$inboundSchema), + z.any(), +]); + +export function eventListItemResponsePreviousConfigUnionFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponsePreviousConfigUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponsePreviousConfigUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponsePreviousConfigUnion' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseStatus$inboundSchema: z.ZodEnum< + typeof EventListItemResponseStatus +> = z.enum(EventListItemResponseStatus); + +/** @internal */ +export const EventListItemResponseResources$inboundSchema: z.ZodType< + EventListItemResponseResources, + unknown +> = z.object({ + _internal: z.nullable(z.any()).optional(), + config: z.lazy(() => EventListItemResponseConfig$inboundSchema), + controllerPlatform: z.nullable( + z.union([ + EventListItemResponseControllerPlatformEnum$inboundSchema, + z.any(), + ]), + ).optional(), + dependencies: z.array( + z.lazy(() => EventListItemResponseDependency$inboundSchema), + ).optional(), + error: z.nullable( + z.union([ + z.lazy(() => EventListItemResponseErrorNextState$inboundSchema), + z.any(), + ]), + ).optional(), + lastFailedState: z.nullable(z.any()).optional(), + lifecycle: z.nullable( + z.union([EventListItemResponseLifecycleEnum$inboundSchema, z.any()]), + ).optional(), + outputs: z.nullable( + z.union([ + z.lazy(() => EventListItemResponseOutputs$inboundSchema), + z.any(), + ]), + ).optional(), + previousConfig: z.nullable( + z.union([ + z.lazy(() => EventListItemResponsePreviousConfig$inboundSchema), + z.any(), + ]), + ).optional(), + remoteBindingParams: z.nullable(z.any()).optional(), + retryAttempt: z.int().optional(), + status: EventListItemResponseStatus$inboundSchema, + type: z.string(), +}).transform((v) => { + return remap$(v, { + "_internal": "internal", + }); +}); + +export function eventListItemResponseResourcesFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventListItemResponseResources$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseResources' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseNextState$inboundSchema: z.ZodType< + EventListItemResponseNextState, + unknown +> = z.object({ + platform: EventListItemResponsePlatform$inboundSchema, + resourcePrefix: z.string(), + resources: z.record( + z.string(), + z.lazy(() => EventListItemResponseResources$inboundSchema), + ), +}); + +export function eventListItemResponseNextStateFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventListItemResponseNextState$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseNextState' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataStackStep$inboundSchema: z.ZodType< + EventListItemResponseDataStackStep, + unknown +> = z.object({ + nextState: z.lazy(() => EventListItemResponseNextState$inboundSchema), + suggestedDelayMs: z.nullable(z.int()).optional(), + type: z.literal("StackStep"), +}); + +export function eventListItemResponseDataStackStepFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataStackStep$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseDataStackStep' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataCompilingCode$inboundSchema: z.ZodType< + EventListItemResponseDataCompilingCode, + unknown +> = z.object({ + language: z.string(), + progress: z.nullable(z.string()).optional(), + type: z.literal("CompilingCode"), +}); + +export function eventListItemResponseDataCompilingCodeFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataCompilingCode$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseDataCompilingCode' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataCreatingRelease$inboundSchema: z.ZodType< + EventListItemResponseDataCreatingRelease, + unknown +> = z.object({ + project: z.string(), + type: z.literal("CreatingRelease"), +}); + +export function eventListItemResponseDataCreatingReleaseFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataCreatingRelease, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataCreatingRelease$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataCreatingRelease' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataPushingResource$inboundSchema: z.ZodType< + EventListItemResponseDataPushingResource, + unknown +> = z.object({ + resourceName: z.string(), + resourceType: z.string(), + type: z.literal("PushingResource"), +}); + +export function eventListItemResponseDataPushingResourceFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataPushingResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataPushingResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataPushingResource' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataPushingStack$inboundSchema: z.ZodType< + EventListItemResponseDataPushingStack, + unknown +> = z.object({ + destination: z.nullable(z.string()).optional(), + platform: z.string(), + stack: z.string(), + type: z.literal("PushingStack"), +}); + +export function eventListItemResponseDataPushingStackFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataPushingStack$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseDataPushingStack' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseProgress$inboundSchema: z.ZodType< + EventListItemResponseProgress, + unknown +> = z.object({ + bytesUploaded: z.int(), + layersUploaded: z.int(), + operation: z.string(), + totalBytes: z.int(), + totalLayers: z.int(), +}); + +export function eventListItemResponseProgressFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventListItemResponseProgress$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseProgress' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseProgressUnion$inboundSchema: z.ZodType< + EventListItemResponseProgressUnion, + unknown +> = z.union([ + z.lazy(() => EventListItemResponseProgress$inboundSchema), + z.any(), +]); + +export function eventListItemResponseProgressUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + EventListItemResponseProgressUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseProgressUnion' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataPushingImage$inboundSchema: z.ZodType< + EventListItemResponseDataPushingImage, + unknown +> = z.object({ + image: z.string(), + progress: z.nullable( + z.union([ + z.lazy(() => EventListItemResponseProgress$inboundSchema), + z.any(), + ]), + ).optional(), + type: z.literal("PushingImage"), +}); + +export function eventListItemResponseDataPushingImageFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataPushingImage$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseDataPushingImage' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataBuildingImage$inboundSchema: z.ZodType< + EventListItemResponseDataBuildingImage, + unknown +> = z.object({ + image: z.string(), + type: z.literal("BuildingImage"), +}); + +export function eventListItemResponseDataBuildingImageFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataBuildingImage$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseDataBuildingImage' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataBuildingResource$inboundSchema: z.ZodType< + EventListItemResponseDataBuildingResource, + unknown +> = z.object({ + relatedResources: z.array(z.string()).optional(), + resourceName: z.string(), + resourceType: z.string(), + type: z.literal("BuildingResource"), +}); + +export function eventListItemResponseDataBuildingResourceFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataBuildingResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataBuildingResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataBuildingResource' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataDownloadingAlienRuntime$inboundSchema: + z.ZodType = z + .object({ + targetTriple: z.string(), + type: z.literal("DownloadingAlienRuntime"), + url: z.string(), + }); + +export function eventListItemResponseDataDownloadingAlienRuntimeFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataDownloadingAlienRuntime, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataDownloadingAlienRuntime$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataDownloadingAlienRuntime' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataRunningPreflights$inboundSchema: + z.ZodType = z.object({ + platform: z.string(), + stack: z.string(), + type: z.literal("RunningPreflights"), + }); + +export function eventListItemResponseDataRunningPreflightsFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataRunningPreflights, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataRunningPreflights$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataRunningPreflights' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataBuildingStack$inboundSchema: z.ZodType< + EventListItemResponseDataBuildingStack, + unknown +> = z.object({ + stack: z.string(), + type: z.literal("BuildingStack"), +}); + +export function eventListItemResponseDataBuildingStackFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataBuildingStack$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseDataBuildingStack' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataFinished$inboundSchema: z.ZodType< + EventListItemResponseDataFinished, + unknown +> = z.object({ + type: z.literal("Finished"), +}); + +export function eventListItemResponseDataFinishedFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventListItemResponseDataFinished$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseDataFinished' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataLoadingConfiguration$inboundSchema: + z.ZodType = z.object({ + type: z.literal("LoadingConfiguration"), + }); + +export function eventListItemResponseDataLoadingConfigurationFromJSON( + jsonString: string, +): SafeParseResult< + EventListItemResponseDataLoadingConfiguration, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + EventListItemResponseDataLoadingConfiguration$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'EventListItemResponseDataLoadingConfiguration' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseDataUnion$inboundSchema: z.ZodType< + EventListItemResponseDataUnion, + unknown +> = z.union([ + z.lazy(() => EventListItemResponseDataLoadingConfiguration$inboundSchema), + z.lazy(() => EventListItemResponseDataFinished$inboundSchema), + z.lazy(() => EventListItemResponseDataBuildingStack$inboundSchema), + z.lazy(() => EventListItemResponseDataRunningPreflights$inboundSchema), + z.lazy(() => EventListItemResponseDataDownloadingAlienRuntime$inboundSchema), + z.lazy(() => EventListItemResponseDataBuildingResource$inboundSchema), + z.lazy(() => EventListItemResponseDataBuildingImage$inboundSchema), + z.lazy(() => EventListItemResponseDataPushingImage$inboundSchema), + z.lazy(() => EventListItemResponseDataPushingStack$inboundSchema), + z.lazy(() => EventListItemResponseDataPushingResource$inboundSchema), + z.lazy(() => EventListItemResponseDataCreatingRelease$inboundSchema), + z.lazy(() => EventListItemResponseDataCompilingCode$inboundSchema), + z.lazy(() => EventListItemResponseDataStackStep$inboundSchema), + z.lazy(() => + EventListItemResponseDataGeneratingCloudFormationTemplate$inboundSchema + ), + z.lazy(() => EventListItemResponseDataGeneratingTemplate$inboundSchema), + z.lazy(() => EventListItemResponseDataProvisioningAgent$inboundSchema), + z.lazy(() => EventListItemResponseDataUpdatingAgent$inboundSchema), + z.lazy(() => EventListItemResponseDataDeletingAgent$inboundSchema), + z.lazy(() => EventListItemResponseDataDebuggingAgent$inboundSchema), + z.lazy(() => EventListItemResponseDataPreparingEnvironment$inboundSchema), + z.lazy(() => EventListItemResponseDataDeployingStack$inboundSchema), + z.lazy(() => EventListItemResponseDataRunningTestWorker$inboundSchema), + z.lazy(() => EventListItemResponseDataCleaningUpStack$inboundSchema), + z.lazy(() => EventListItemResponseDataCleaningUpEnvironment$inboundSchema), + z.lazy(() => EventListItemResponseDataSettingUpPlatformContext$inboundSchema), + z.lazy(() => EventListItemResponseDataEnsuringDockerRepository$inboundSchema), + z.lazy(() => + EventListItemResponseDataDeployingCloudFormationStack$inboundSchema + ), + z.lazy(() => EventListItemResponseDataAssumingRole$inboundSchema), + z.lazy(() => + EventListItemResponseDataImportingStackStateFromCloudFormation$inboundSchema + ), + z.lazy(() => + EventListItemResponseDataDeletingCloudFormationStack$inboundSchema + ), + z.lazy(() => EventListItemResponseDataEmptyingBuckets$inboundSchema), + z.lazy(() => EventListItemResponseDataDeploymentCreated$inboundSchema), + z.lazy(() => EventListItemResponseDataDeploymentReleased$inboundSchema), + z.lazy(() => EventListItemResponseDataDeploymentFailed$inboundSchema), + z.lazy(() => EventListItemResponseDataDeploymentDegraded$inboundSchema), + z.lazy(() => EventListItemResponseDataDeploymentRecovered$inboundSchema), + z.lazy(() => EventListItemResponseDataDeploymentDeleted$inboundSchema), + z.lazy(() => EventListItemResponseDataReleaseChannelUpdated$inboundSchema), + z.lazy(() => + EventListItemResponseDataDeploymentReleaseChannelChanged$inboundSchema + ), + z.lazy(() => EventListItemResponseDataDeploymentRetryRequested$inboundSchema), + z.lazy(() => + EventListItemResponseDataDeploymentRedeployRequested$inboundSchema + ), + z.lazy(() => EventListItemResponseDataDeploymentReleasePinned$inboundSchema), + z.lazy(() => + EventListItemResponseDataDeploymentReleaseUnpinned$inboundSchema + ), + z.lazy(() => + EventListItemResponseDataDeploymentEnvironmentUpdated$inboundSchema + ), + z.lazy(() => + EventListItemResponseDataDeploymentDeletionRequested$inboundSchema + ), +]); + +export function eventListItemResponseDataUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventListItemResponseDataUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseDataUnion' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseStateSuccess$inboundSchema: z.ZodEnum< + typeof EventListItemResponseStateSuccess +> = z.enum(EventListItemResponseStateSuccess); + +/** @internal */ +export const EventListItemResponseStateStarted$inboundSchema: z.ZodEnum< + typeof EventListItemResponseStateStarted +> = z.enum(EventListItemResponseStateStarted); + +/** @internal */ +export const EventListItemResponseStateNone$inboundSchema: z.ZodEnum< + typeof EventListItemResponseStateNone +> = z.enum(EventListItemResponseStateNone); + +/** @internal */ +export const EventListItemResponseErrorFailed$inboundSchema: z.ZodType< + EventListItemResponseErrorFailed, + unknown +> = z.object({ + code: z.string(), + context: z.nullable(z.any()).optional(), + hint: z.nullable(z.string()).optional(), + httpStatusCode: z.nullable(z.int()).optional(), + internal: z.boolean(), + message: z.string(), + retryable: z.boolean().default(false), + source: z.nullable(z.any()).optional(), +}); + +export function eventListItemResponseErrorFailedFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventListItemResponseErrorFailed$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseErrorFailed' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseFailedErrorUnion$inboundSchema: z.ZodType< + EventListItemResponseFailedErrorUnion, + unknown +> = z.union([ + z.lazy(() => EventListItemResponseErrorFailed$inboundSchema), + z.any(), +]); + +export function eventListItemResponseFailedErrorUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + EventListItemResponseFailedErrorUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseFailedErrorUnion' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseFailed$inboundSchema: z.ZodType< + EventListItemResponseFailed, + unknown +> = z.object({ + error: z.nullable( + z.union([ + z.lazy(() => EventListItemResponseErrorFailed$inboundSchema), + z.any(), + ]), + ).optional(), +}); + +export function eventListItemResponseFailedFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventListItemResponseFailed$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseFailed' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseState$inboundSchema: z.ZodType< + EventListItemResponseState, + unknown +> = z.object({ + failed: z.lazy(() => EventListItemResponseFailed$inboundSchema), +}); + +export function eventListItemResponseStateFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventListItemResponseState$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseState' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponseStateUnion$inboundSchema: z.ZodType< + EventListItemResponseStateUnion, + unknown +> = z.union([ + z.lazy(() => EventListItemResponseState$inboundSchema), + EventListItemResponseStateNone$inboundSchema, + EventListItemResponseStateStarted$inboundSchema, + EventListItemResponseStateSuccess$inboundSchema, +]); + +export function eventListItemResponseStateUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventListItemResponseStateUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponseStateUnion' from JSON`, + ); +} + +/** @internal */ +export const EventListItemResponse$inboundSchema: z.ZodType< + EventListItemResponse, + unknown +> = z.object({ + id: z.string(), + deploymentId: z.nullable(z.string()).optional(), + releaseId: z.nullable(z.string()).optional(), + debugSessionId: z.nullable(z.string()).optional(), + data: z.union([ + z.lazy(() => EventListItemResponseDataLoadingConfiguration$inboundSchema), + z.lazy(() => EventListItemResponseDataFinished$inboundSchema), + z.lazy(() => EventListItemResponseDataBuildingStack$inboundSchema), + z.lazy(() => EventListItemResponseDataRunningPreflights$inboundSchema), + z.lazy(() => + EventListItemResponseDataDownloadingAlienRuntime$inboundSchema + ), + z.lazy(() => EventListItemResponseDataBuildingResource$inboundSchema), + z.lazy(() => EventListItemResponseDataBuildingImage$inboundSchema), + z.lazy(() => EventListItemResponseDataPushingImage$inboundSchema), + z.lazy(() => EventListItemResponseDataPushingStack$inboundSchema), + z.lazy(() => EventListItemResponseDataPushingResource$inboundSchema), + z.lazy(() => EventListItemResponseDataCreatingRelease$inboundSchema), + z.lazy(() => EventListItemResponseDataCompilingCode$inboundSchema), + z.lazy(() => EventListItemResponseDataStackStep$inboundSchema), + z.lazy(() => + EventListItemResponseDataGeneratingCloudFormationTemplate$inboundSchema + ), + z.lazy(() => EventListItemResponseDataGeneratingTemplate$inboundSchema), + z.lazy(() => EventListItemResponseDataProvisioningAgent$inboundSchema), + z.lazy(() => EventListItemResponseDataUpdatingAgent$inboundSchema), + z.lazy(() => EventListItemResponseDataDeletingAgent$inboundSchema), + z.lazy(() => EventListItemResponseDataDebuggingAgent$inboundSchema), + z.lazy(() => EventListItemResponseDataPreparingEnvironment$inboundSchema), + z.lazy(() => EventListItemResponseDataDeployingStack$inboundSchema), + z.lazy(() => EventListItemResponseDataRunningTestWorker$inboundSchema), + z.lazy(() => EventListItemResponseDataCleaningUpStack$inboundSchema), + z.lazy(() => EventListItemResponseDataCleaningUpEnvironment$inboundSchema), + z.lazy(() => + EventListItemResponseDataSettingUpPlatformContext$inboundSchema + ), + z.lazy(() => + EventListItemResponseDataEnsuringDockerRepository$inboundSchema + ), + z.lazy(() => + EventListItemResponseDataDeployingCloudFormationStack$inboundSchema + ), + z.lazy(() => EventListItemResponseDataAssumingRole$inboundSchema), + z.lazy(() => + EventListItemResponseDataImportingStackStateFromCloudFormation$inboundSchema + ), + z.lazy(() => + EventListItemResponseDataDeletingCloudFormationStack$inboundSchema + ), + z.lazy(() => EventListItemResponseDataEmptyingBuckets$inboundSchema), + z.lazy(() => EventListItemResponseDataDeploymentCreated$inboundSchema), + z.lazy(() => EventListItemResponseDataDeploymentReleased$inboundSchema), + z.lazy(() => EventListItemResponseDataDeploymentFailed$inboundSchema), + z.lazy(() => EventListItemResponseDataDeploymentDegraded$inboundSchema), + z.lazy(() => EventListItemResponseDataDeploymentRecovered$inboundSchema), + z.lazy(() => EventListItemResponseDataDeploymentDeleted$inboundSchema), + z.lazy(() => EventListItemResponseDataReleaseChannelUpdated$inboundSchema), + z.lazy(() => + EventListItemResponseDataDeploymentReleaseChannelChanged$inboundSchema + ), + z.lazy(() => + EventListItemResponseDataDeploymentRetryRequested$inboundSchema + ), + z.lazy(() => + EventListItemResponseDataDeploymentRedeployRequested$inboundSchema + ), + z.lazy(() => + EventListItemResponseDataDeploymentReleasePinned$inboundSchema + ), + z.lazy(() => + EventListItemResponseDataDeploymentReleaseUnpinned$inboundSchema + ), + z.lazy(() => + EventListItemResponseDataDeploymentEnvironmentUpdated$inboundSchema + ), + z.lazy(() => + EventListItemResponseDataDeploymentDeletionRequested$inboundSchema + ), + ]), + state: z.union([ + z.lazy(() => EventListItemResponseState$inboundSchema), + EventListItemResponseStateNone$inboundSchema, + EventListItemResponseStateStarted$inboundSchema, + EventListItemResponseStateSuccess$inboundSchema, + ]), + projectId: z.string(), + createdAt: z.iso.datetime({ offset: true }).transform(v => new Date(v)), + workspaceId: z.string(), + releaseCreatedAt: z.nullable( + z.iso.datetime({ offset: true }).transform(v => new Date(v)), + ).optional(), +}); + +export function eventListItemResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => EventListItemResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'EventListItemResponse' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/generatemanagerbindingtokenrequest.ts b/client-sdks/platform/typescript/src/models/generatemanagerbindingtokenrequest.ts new file mode 100644 index 000000000..e105be593 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/generatemanagerbindingtokenrequest.ts @@ -0,0 +1,35 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; + +export type GenerateManagerBindingTokenRequest = { + /** + * Unique identifier for the deployment. + */ + deploymentId: string; +}; + +/** @internal */ +export type GenerateManagerBindingTokenRequest$Outbound = { + deploymentId: string; +}; + +/** @internal */ +export const GenerateManagerBindingTokenRequest$outboundSchema: z.ZodType< + GenerateManagerBindingTokenRequest$Outbound, + GenerateManagerBindingTokenRequest +> = z.object({ + deploymentId: z.string(), +}); + +export function generateManagerBindingTokenRequestToJSON( + generateManagerBindingTokenRequest: GenerateManagerBindingTokenRequest, +): string { + return JSON.stringify( + GenerateManagerBindingTokenRequest$outboundSchema.parse( + generateManagerBindingTokenRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/generatemanagerbindingtokenresponse.ts b/client-sdks/platform/typescript/src/models/generatemanagerbindingtokenresponse.ts new file mode 100644 index 000000000..b975aad84 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/generatemanagerbindingtokenresponse.ts @@ -0,0 +1,51 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { ClosedEnum } from "../types/enums.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export const GenerateManagerBindingTokenResponseTokenType = { + Bearer: "Bearer", +} as const; +export type GenerateManagerBindingTokenResponseTokenType = ClosedEnum< + typeof GenerateManagerBindingTokenResponseTokenType +>; + +export type GenerateManagerBindingTokenResponse = { + accessToken: string; + expiresIn: number | null; + tokenType: GenerateManagerBindingTokenResponseTokenType; + managerUrl: string; +}; + +/** @internal */ +export const GenerateManagerBindingTokenResponseTokenType$inboundSchema: + z.ZodEnum = z.enum( + GenerateManagerBindingTokenResponseTokenType, + ); + +/** @internal */ +export const GenerateManagerBindingTokenResponse$inboundSchema: z.ZodType< + GenerateManagerBindingTokenResponse, + unknown +> = z.object({ + accessToken: z.string(), + expiresIn: z.nullable(z.number()), + tokenType: GenerateManagerBindingTokenResponseTokenType$inboundSchema, + managerUrl: z.string(), +}); + +export function generateManagerBindingTokenResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + GenerateManagerBindingTokenResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'GenerateManagerBindingTokenResponse' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/importsource.ts b/client-sdks/platform/typescript/src/models/importsource.ts index 296afaf1c..bfa7668d8 100644 --- a/client-sdks/platform/typescript/src/models/importsource.ts +++ b/client-sdks/platform/typescript/src/models/importsource.ts @@ -36,7 +36,29 @@ export const ImportSourcePlatform = { */ export type ImportSourcePlatform = ClosedEnum; +/** + * Failure-domain policy selected for a compute pool. + */ +export type ImportSourceFailureDomains2 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type ImportSourceFailureDomainsUnion2 = + | ImportSourceFailureDomains2 + | any; + export type ImportSourcePoolsAutoscale = { + failureDomains?: ImportSourceFailureDomains2 | any | null | undefined; /** * Provider machine type selected for this deployment. */ @@ -52,7 +74,29 @@ export type ImportSourcePoolsAutoscale = { mode: "autoscale"; }; +/** + * Failure-domain policy selected for a compute pool. + */ +export type ImportSourceFailureDomains1 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type ImportSourceFailureDomainsUnion1 = + | ImportSourceFailureDomains1 + | any; + export type ImportSourcePoolsFixed = { + failureDomains?: ImportSourceFailureDomains1 | any | null | undefined; /** * Provider machine type selected for this deployment. */ @@ -1293,8 +1337,62 @@ export const ImportSourcePlatform$outboundSchema: z.ZodEnum< typeof ImportSourcePlatform > = z.enum(ImportSourcePlatform); +/** @internal */ +export type ImportSourceFailureDomains2$Outbound = { + selectedFailureDomains?: Array | undefined; + spread: number; +}; + +/** @internal */ +export const ImportSourceFailureDomains2$outboundSchema: z.ZodType< + ImportSourceFailureDomains2$Outbound, + ImportSourceFailureDomains2 +> = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), +}); + +export function importSourceFailureDomains2ToJSON( + importSourceFailureDomains2: ImportSourceFailureDomains2, +): string { + return JSON.stringify( + ImportSourceFailureDomains2$outboundSchema.parse( + importSourceFailureDomains2, + ), + ); +} + +/** @internal */ +export type ImportSourceFailureDomainsUnion2$Outbound = + | ImportSourceFailureDomains2$Outbound + | any; + +/** @internal */ +export const ImportSourceFailureDomainsUnion2$outboundSchema: z.ZodType< + ImportSourceFailureDomainsUnion2$Outbound, + ImportSourceFailureDomainsUnion2 +> = z.union([ + z.lazy(() => ImportSourceFailureDomains2$outboundSchema), + z.any(), +]); + +export function importSourceFailureDomainsUnion2ToJSON( + importSourceFailureDomainsUnion2: ImportSourceFailureDomainsUnion2, +): string { + return JSON.stringify( + ImportSourceFailureDomainsUnion2$outboundSchema.parse( + importSourceFailureDomainsUnion2, + ), + ); +} + /** @internal */ export type ImportSourcePoolsAutoscale$Outbound = { + failure_domains?: + | ImportSourceFailureDomains2$Outbound + | any + | null + | undefined; machine?: string | null | undefined; max: number; min: number; @@ -1306,10 +1404,20 @@ export const ImportSourcePoolsAutoscale$outboundSchema: z.ZodType< ImportSourcePoolsAutoscale$Outbound, ImportSourcePoolsAutoscale > = z.object({ + failureDomains: z.nullable( + z.union([ + z.lazy(() => ImportSourceFailureDomains2$outboundSchema), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), max: z.int(), min: z.int(), mode: z.literal("autoscale"), +}).transform((v) => { + return remap$(v, { + failureDomains: "failure_domains", + }); }); export function importSourcePoolsAutoscaleToJSON( @@ -1320,8 +1428,62 @@ export function importSourcePoolsAutoscaleToJSON( ); } +/** @internal */ +export type ImportSourceFailureDomains1$Outbound = { + selectedFailureDomains?: Array | undefined; + spread: number; +}; + +/** @internal */ +export const ImportSourceFailureDomains1$outboundSchema: z.ZodType< + ImportSourceFailureDomains1$Outbound, + ImportSourceFailureDomains1 +> = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), +}); + +export function importSourceFailureDomains1ToJSON( + importSourceFailureDomains1: ImportSourceFailureDomains1, +): string { + return JSON.stringify( + ImportSourceFailureDomains1$outboundSchema.parse( + importSourceFailureDomains1, + ), + ); +} + +/** @internal */ +export type ImportSourceFailureDomainsUnion1$Outbound = + | ImportSourceFailureDomains1$Outbound + | any; + +/** @internal */ +export const ImportSourceFailureDomainsUnion1$outboundSchema: z.ZodType< + ImportSourceFailureDomainsUnion1$Outbound, + ImportSourceFailureDomainsUnion1 +> = z.union([ + z.lazy(() => ImportSourceFailureDomains1$outboundSchema), + z.any(), +]); + +export function importSourceFailureDomainsUnion1ToJSON( + importSourceFailureDomainsUnion1: ImportSourceFailureDomainsUnion1, +): string { + return JSON.stringify( + ImportSourceFailureDomainsUnion1$outboundSchema.parse( + importSourceFailureDomainsUnion1, + ), + ); +} + /** @internal */ export type ImportSourcePoolsFixed$Outbound = { + failure_domains?: + | ImportSourceFailureDomains1$Outbound + | any + | null + | undefined; machine?: string | null | undefined; machines: number; mode: "fixed"; @@ -1332,9 +1494,19 @@ export const ImportSourcePoolsFixed$outboundSchema: z.ZodType< ImportSourcePoolsFixed$Outbound, ImportSourcePoolsFixed > = z.object({ + failureDomains: z.nullable( + z.union([ + z.lazy(() => ImportSourceFailureDomains1$outboundSchema), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), machines: z.int(), mode: z.literal("fixed"), +}).transform((v) => { + return remap$(v, { + failureDomains: "failure_domains", + }); }); export function importSourcePoolsFixedToJSON( diff --git a/client-sdks/platform/typescript/src/models/index.ts b/client-sdks/platform/typescript/src/models/index.ts index 1ac5d670d..af568076e 100644 --- a/client-sdks/platform/typescript/src/models/index.ts +++ b/client-sdks/platform/typescript/src/models/index.ts @@ -2,6 +2,25 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +export * from "./acceptworkspaceinvitationresponse.js"; +export * from "./agentsessionapprovalgrantedevent.js"; +export * from "./agentsessionapprovalrequestedevent.js"; +export * from "./agentsessionapproveresponse.js"; +export * from "./agentsessiondetail.js"; +export * from "./agentsessionevent.js"; +export * from "./agentsessioneventsresponse.js"; +export * from "./agentsessioneventstruncatedevent.js"; +export * from "./agentsessionlistitem.js"; +export * from "./agentsessionlistresponse.js"; +export * from "./agentsessionmarkdownevent.js"; +export * from "./agentsessionrestartedevent.js"; +export * from "./agentsessionstatusevent.js"; +export * from "./agentsessionstepevent.js"; +export * from "./agentsessionstopresponse.js"; +export * from "./agentsessionsubject.js"; +export * from "./agentsessiontoolcallevent.js"; +export * from "./agentsessiontoolresultevent.js"; +export * from "./agentsettings.js"; export * from "./apierror.js"; export * from "./apikey.js"; export * from "./apikeydeploymentsetupconfig.js"; @@ -81,11 +100,15 @@ export * from "./domainwithusage.js"; export * from "./drainmachinesmachinerequest.js"; export * from "./drainmachinesmachineresponse.js"; export * from "./encryptedstackinputvalue.js"; +export * from "./ensuredeploymentgroupbyexternalidrequest.js"; export * from "./ensuredeploymentgroupbynamerequest.js"; export * from "./environmentvariableconfig.js"; export * from "./environmentvariabletype.js"; export * from "./event.js"; +export * from "./eventlistitemresponse.js"; export * from "./forwardimportrequest.js"; +export * from "./generatemanagerbindingtokenrequest.js"; +export * from "./generatemanagerbindingtokenresponse.js"; export * from "./generatemanagertokenrequest.js"; export * from "./generatemanagertokenresponse.js"; export * from "./githubprovider.js"; @@ -143,7 +166,12 @@ export * from "./projectrole.js"; export * from "./projectscope.js"; export * from "./release.js"; export * from "./releaseauthorfilteritem.js"; +export * from "./releasechannel.js"; +export * from "./releasedeploymentitem.js"; +export * from "./releasedeploymentsresponse.js"; export * from "./releaselistitemresponse.js"; +export * from "./releaserolloutstate.js"; +export * from "./releaserolloutstatecounts.js"; export * from "./removemachinesmachineresponse.js"; export * from "./renderoperatormanifestrequest.js"; export * from "./renderoperatormanifestresponse.js"; @@ -158,6 +186,7 @@ export * from "./rotatemachinesjointokenresponse.js"; export * from "./scope.js"; export * from "./security.js"; export * from "./serviceaccountsubject.js"; +export * from "./setdeploymentgroupexternalidrequest.js"; export * from "./setfirstpartydeploymentinputsrequest.js"; export * from "./setfirstpartydeploymentinputsresponse.js"; export * from "./setupfingerprintinfo.js"; @@ -166,6 +195,12 @@ export * from "./setupregistrationcloudformationtarget.js"; export * from "./setupregistrationoperationresponse.js"; export * from "./setupregistrationoperationresult.js"; export * from "./setupregistrationoperationstatus.js"; +export * from "./slackchannel.js"; +export * from "./slackchannelsresponse.js"; +export * from "./slackinstallurlresponse.js"; +export * from "./slackintegrationstatus.js"; +export * from "./slacknotificationchannelrequest.js"; +export * from "./slacknotificationchannelresponse.js"; export * from "./stackbyplatform.js"; export * from "./stackinputvaluerequest.js"; export * from "./subject.js"; @@ -180,6 +215,7 @@ export * from "./synclistresponse.js"; export * from "./syncreconcilerequest.js"; export * from "./syncreconcileresponse.js"; export * from "./syncreleaserequest.js"; +export * from "./syncrenewrequest.js"; export * from "./updateapikeyrequest.js"; export * from "./updatecommandrequest.js"; export * from "./updatedebugsessionrequest.js"; @@ -192,12 +228,16 @@ export * from "./updatemanagerdomainbinding.js"; export * from "./updatemanagerrequest.js"; export * from "./updateproject.js"; export * from "./updateprojectgcpoauthprovider.js"; +export * from "./updateworkspacesettingsrequest.js"; export * from "./userprofile.js"; export * from "./userprofilesetuprequest.js"; export * from "./userrole.js"; export * from "./usersubject.js"; export * from "./workspace.js"; export * from "./workspacebillingentitlements.js"; +export * from "./workspaceinvitation.js"; +export * from "./workspaceinvitationpreview.js"; +export * from "./workspaceinvitelink.js"; export * from "./workspacemember.js"; export * from "./workspacerole.js"; export * from "./workspacescope.js"; diff --git a/client-sdks/platform/typescript/src/models/managerretryresponse.ts b/client-sdks/platform/typescript/src/models/managerretryresponse.ts index 843f325f6..54b3e0163 100644 --- a/client-sdks/platform/typescript/src/models/managerretryresponse.ts +++ b/client-sdks/platform/typescript/src/models/managerretryresponse.ts @@ -46,7 +46,29 @@ export type ManagerRetryResponseSetupConfig = { environmentVariables: Array; }; +/** + * Failure-domain policy selected for a compute pool. + */ +export type ManagerRetryResponseFailureDomains6 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type ManagerRetryResponseFailureDomainsUnion6 = + | ManagerRetryResponseFailureDomains6 + | any; + export type ManagerRetryResponsePoolsAutoscale3 = { + failureDomains?: ManagerRetryResponseFailureDomains6 | any | null | undefined; /** * Provider machine type selected for this deployment. */ @@ -62,7 +84,29 @@ export type ManagerRetryResponsePoolsAutoscale3 = { mode: "autoscale"; }; +/** + * Failure-domain policy selected for a compute pool. + */ +export type ManagerRetryResponseFailureDomains5 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type ManagerRetryResponseFailureDomainsUnion5 = + | ManagerRetryResponseFailureDomains5 + | any; + export type ManagerRetryResponsePoolsFixed3 = { + failureDomains?: ManagerRetryResponseFailureDomains5 | any | null | undefined; /** * Provider machine type selected for this deployment. */ @@ -1208,7 +1252,29 @@ export type ManagerRetryResponseSetupTerraform = { stackSettings: ManagerRetryResponseStackSettings3; }; +/** + * Failure-domain policy selected for a compute pool. + */ +export type ManagerRetryResponseFailureDomains4 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type ManagerRetryResponseFailureDomainsUnion4 = + | ManagerRetryResponseFailureDomains4 + | any; + export type ManagerRetryResponsePoolsAutoscale2 = { + failureDomains?: ManagerRetryResponseFailureDomains4 | any | null | undefined; /** * Provider machine type selected for this deployment. */ @@ -1224,7 +1290,29 @@ export type ManagerRetryResponsePoolsAutoscale2 = { mode: "autoscale"; }; +/** + * Failure-domain policy selected for a compute pool. + */ +export type ManagerRetryResponseFailureDomains3 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type ManagerRetryResponseFailureDomainsUnion3 = + | ManagerRetryResponseFailureDomains3 + | any; + export type ManagerRetryResponsePoolsFixed2 = { + failureDomains?: ManagerRetryResponseFailureDomains3 | any | null | undefined; /** * Provider machine type selected for this deployment. */ @@ -2365,7 +2453,29 @@ export type ManagerRetryResponseSetupGoogleOauth = { stackSettings: ManagerRetryResponseStackSettings2; }; +/** + * Failure-domain policy selected for a compute pool. + */ +export type ManagerRetryResponseFailureDomains2 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type ManagerRetryResponseFailureDomainsUnion2 = + | ManagerRetryResponseFailureDomains2 + | any; + export type ManagerRetryResponsePoolsAutoscale1 = { + failureDomains?: ManagerRetryResponseFailureDomains2 | any | null | undefined; /** * Provider machine type selected for this deployment. */ @@ -2381,7 +2491,29 @@ export type ManagerRetryResponsePoolsAutoscale1 = { mode: "autoscale"; }; +/** + * Failure-domain policy selected for a compute pool. + */ +export type ManagerRetryResponseFailureDomains1 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type ManagerRetryResponseFailureDomainsUnion1 = + | ManagerRetryResponseFailureDomains1 + | any; + export type ManagerRetryResponsePoolsFixed1 = { + failureDomains?: ManagerRetryResponseFailureDomains1 | any | null | undefined; /** * Provider machine type selected for this deployment. */ @@ -3608,15 +3740,70 @@ export function managerRetryResponseSetupConfigFromJSON( ); } +/** @internal */ +export const ManagerRetryResponseFailureDomains6$inboundSchema: z.ZodType< + ManagerRetryResponseFailureDomains6, + unknown +> = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), +}); + +export function managerRetryResponseFailureDomains6FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + ManagerRetryResponseFailureDomains6$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ManagerRetryResponseFailureDomains6' from JSON`, + ); +} + +/** @internal */ +export const ManagerRetryResponseFailureDomainsUnion6$inboundSchema: z.ZodType< + ManagerRetryResponseFailureDomainsUnion6, + unknown +> = z.union([ + z.lazy(() => ManagerRetryResponseFailureDomains6$inboundSchema), + z.any(), +]); + +export function managerRetryResponseFailureDomainsUnion6FromJSON( + jsonString: string, +): SafeParseResult< + ManagerRetryResponseFailureDomainsUnion6, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + ManagerRetryResponseFailureDomainsUnion6$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'ManagerRetryResponseFailureDomainsUnion6' from JSON`, + ); +} + /** @internal */ export const ManagerRetryResponsePoolsAutoscale3$inboundSchema: z.ZodType< ManagerRetryResponsePoolsAutoscale3, unknown > = z.object({ + failure_domains: z.nullable( + z.union([ + z.lazy(() => ManagerRetryResponseFailureDomains6$inboundSchema), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), max: z.int(), min: z.int(), mode: z.literal("autoscale"), +}).transform((v) => { + return remap$(v, { + "failure_domains": "failureDomains", + }); }); export function managerRetryResponsePoolsAutoscale3FromJSON( @@ -3630,14 +3817,69 @@ export function managerRetryResponsePoolsAutoscale3FromJSON( ); } +/** @internal */ +export const ManagerRetryResponseFailureDomains5$inboundSchema: z.ZodType< + ManagerRetryResponseFailureDomains5, + unknown +> = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), +}); + +export function managerRetryResponseFailureDomains5FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + ManagerRetryResponseFailureDomains5$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ManagerRetryResponseFailureDomains5' from JSON`, + ); +} + +/** @internal */ +export const ManagerRetryResponseFailureDomainsUnion5$inboundSchema: z.ZodType< + ManagerRetryResponseFailureDomainsUnion5, + unknown +> = z.union([ + z.lazy(() => ManagerRetryResponseFailureDomains5$inboundSchema), + z.any(), +]); + +export function managerRetryResponseFailureDomainsUnion5FromJSON( + jsonString: string, +): SafeParseResult< + ManagerRetryResponseFailureDomainsUnion5, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + ManagerRetryResponseFailureDomainsUnion5$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'ManagerRetryResponseFailureDomainsUnion5' from JSON`, + ); +} + /** @internal */ export const ManagerRetryResponsePoolsFixed3$inboundSchema: z.ZodType< ManagerRetryResponsePoolsFixed3, unknown > = z.object({ + failure_domains: z.nullable( + z.union([ + z.lazy(() => ManagerRetryResponseFailureDomains5$inboundSchema), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), machines: z.int(), mode: z.literal("fixed"), +}).transform((v) => { + return remap$(v, { + "failure_domains": "failureDomains", + }); }); export function managerRetryResponsePoolsFixed3FromJSON( @@ -5567,15 +5809,70 @@ export function managerRetryResponseSetupTerraformFromJSON( ); } +/** @internal */ +export const ManagerRetryResponseFailureDomains4$inboundSchema: z.ZodType< + ManagerRetryResponseFailureDomains4, + unknown +> = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), +}); + +export function managerRetryResponseFailureDomains4FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + ManagerRetryResponseFailureDomains4$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ManagerRetryResponseFailureDomains4' from JSON`, + ); +} + +/** @internal */ +export const ManagerRetryResponseFailureDomainsUnion4$inboundSchema: z.ZodType< + ManagerRetryResponseFailureDomainsUnion4, + unknown +> = z.union([ + z.lazy(() => ManagerRetryResponseFailureDomains4$inboundSchema), + z.any(), +]); + +export function managerRetryResponseFailureDomainsUnion4FromJSON( + jsonString: string, +): SafeParseResult< + ManagerRetryResponseFailureDomainsUnion4, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + ManagerRetryResponseFailureDomainsUnion4$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'ManagerRetryResponseFailureDomainsUnion4' from JSON`, + ); +} + /** @internal */ export const ManagerRetryResponsePoolsAutoscale2$inboundSchema: z.ZodType< ManagerRetryResponsePoolsAutoscale2, unknown > = z.object({ + failure_domains: z.nullable( + z.union([ + z.lazy(() => ManagerRetryResponseFailureDomains4$inboundSchema), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), max: z.int(), min: z.int(), mode: z.literal("autoscale"), +}).transform((v) => { + return remap$(v, { + "failure_domains": "failureDomains", + }); }); export function managerRetryResponsePoolsAutoscale2FromJSON( @@ -5589,14 +5886,69 @@ export function managerRetryResponsePoolsAutoscale2FromJSON( ); } +/** @internal */ +export const ManagerRetryResponseFailureDomains3$inboundSchema: z.ZodType< + ManagerRetryResponseFailureDomains3, + unknown +> = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), +}); + +export function managerRetryResponseFailureDomains3FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + ManagerRetryResponseFailureDomains3$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ManagerRetryResponseFailureDomains3' from JSON`, + ); +} + +/** @internal */ +export const ManagerRetryResponseFailureDomainsUnion3$inboundSchema: z.ZodType< + ManagerRetryResponseFailureDomainsUnion3, + unknown +> = z.union([ + z.lazy(() => ManagerRetryResponseFailureDomains3$inboundSchema), + z.any(), +]); + +export function managerRetryResponseFailureDomainsUnion3FromJSON( + jsonString: string, +): SafeParseResult< + ManagerRetryResponseFailureDomainsUnion3, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + ManagerRetryResponseFailureDomainsUnion3$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'ManagerRetryResponseFailureDomainsUnion3' from JSON`, + ); +} + /** @internal */ export const ManagerRetryResponsePoolsFixed2$inboundSchema: z.ZodType< ManagerRetryResponsePoolsFixed2, unknown > = z.object({ + failure_domains: z.nullable( + z.union([ + z.lazy(() => ManagerRetryResponseFailureDomains3$inboundSchema), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), machines: z.int(), mode: z.literal("fixed"), +}).transform((v) => { + return remap$(v, { + "failure_domains": "failureDomains", + }); }); export function managerRetryResponsePoolsFixed2FromJSON( @@ -7521,15 +7873,70 @@ export function managerRetryResponseSetupGoogleOauthFromJSON( ); } +/** @internal */ +export const ManagerRetryResponseFailureDomains2$inboundSchema: z.ZodType< + ManagerRetryResponseFailureDomains2, + unknown +> = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), +}); + +export function managerRetryResponseFailureDomains2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + ManagerRetryResponseFailureDomains2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ManagerRetryResponseFailureDomains2' from JSON`, + ); +} + +/** @internal */ +export const ManagerRetryResponseFailureDomainsUnion2$inboundSchema: z.ZodType< + ManagerRetryResponseFailureDomainsUnion2, + unknown +> = z.union([ + z.lazy(() => ManagerRetryResponseFailureDomains2$inboundSchema), + z.any(), +]); + +export function managerRetryResponseFailureDomainsUnion2FromJSON( + jsonString: string, +): SafeParseResult< + ManagerRetryResponseFailureDomainsUnion2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + ManagerRetryResponseFailureDomainsUnion2$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'ManagerRetryResponseFailureDomainsUnion2' from JSON`, + ); +} + /** @internal */ export const ManagerRetryResponsePoolsAutoscale1$inboundSchema: z.ZodType< ManagerRetryResponsePoolsAutoscale1, unknown > = z.object({ + failure_domains: z.nullable( + z.union([ + z.lazy(() => ManagerRetryResponseFailureDomains2$inboundSchema), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), max: z.int(), min: z.int(), mode: z.literal("autoscale"), +}).transform((v) => { + return remap$(v, { + "failure_domains": "failureDomains", + }); }); export function managerRetryResponsePoolsAutoscale1FromJSON( @@ -7543,14 +7950,69 @@ export function managerRetryResponsePoolsAutoscale1FromJSON( ); } +/** @internal */ +export const ManagerRetryResponseFailureDomains1$inboundSchema: z.ZodType< + ManagerRetryResponseFailureDomains1, + unknown +> = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), +}); + +export function managerRetryResponseFailureDomains1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + ManagerRetryResponseFailureDomains1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ManagerRetryResponseFailureDomains1' from JSON`, + ); +} + +/** @internal */ +export const ManagerRetryResponseFailureDomainsUnion1$inboundSchema: z.ZodType< + ManagerRetryResponseFailureDomainsUnion1, + unknown +> = z.union([ + z.lazy(() => ManagerRetryResponseFailureDomains1$inboundSchema), + z.any(), +]); + +export function managerRetryResponseFailureDomainsUnion1FromJSON( + jsonString: string, +): SafeParseResult< + ManagerRetryResponseFailureDomainsUnion1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + ManagerRetryResponseFailureDomainsUnion1$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'ManagerRetryResponseFailureDomainsUnion1' from JSON`, + ); +} + /** @internal */ export const ManagerRetryResponsePoolsFixed1$inboundSchema: z.ZodType< ManagerRetryResponsePoolsFixed1, unknown > = z.object({ + failure_domains: z.nullable( + z.union([ + z.lazy(() => ManagerRetryResponseFailureDomains1$inboundSchema), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), machines: z.int(), mode: z.literal("fixed"), +}).transform((v) => { + return remap$(v, { + "failure_domains": "failureDomains", + }); }); export function managerRetryResponsePoolsFixed1FromJSON( diff --git a/client-sdks/platform/typescript/src/models/newdeploymentrequest.ts b/client-sdks/platform/typescript/src/models/newdeploymentrequest.ts index e3ac6e076..1912a70aa 100644 --- a/client-sdks/platform/typescript/src/models/newdeploymentrequest.ts +++ b/client-sdks/platform/typescript/src/models/newdeploymentrequest.ts @@ -168,7 +168,29 @@ export type NewDeploymentRequestEnvironmentInfoUnion = | NewDeploymentRequestEnvironmentInfoTest | any; +/** + * Failure-domain policy selected for a compute pool. + */ +export type NewDeploymentRequestFailureDomains2 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type NewDeploymentRequestFailureDomainsUnion2 = + | NewDeploymentRequestFailureDomains2 + | any; + export type NewDeploymentRequestPoolsAutoscale = { + failureDomains?: NewDeploymentRequestFailureDomains2 | any | null | undefined; /** * Provider machine type selected for this deployment. */ @@ -184,7 +206,29 @@ export type NewDeploymentRequestPoolsAutoscale = { mode: "autoscale"; }; +/** + * Failure-domain policy selected for a compute pool. + */ +export type NewDeploymentRequestFailureDomains1 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type NewDeploymentRequestFailureDomainsUnion1 = + | NewDeploymentRequestFailureDomains1 + | any; + export type NewDeploymentRequestPoolsFixed = { + failureDomains?: NewDeploymentRequestFailureDomains1 | any | null | undefined; /** * Provider machine type selected for this deployment. */ @@ -1378,6 +1422,10 @@ export type NewDeploymentRequest = { * Desired-release selection for a new deployment. Use none to register an environment without initially requesting a release; later updates can assign one. */ initialDesiredRelease?: InitialDesiredRelease | undefined; + /** + * Release channel followed while this deployment is not pinned. + */ + releaseChannel?: string | undefined; }; /** @internal */ @@ -1587,8 +1635,63 @@ export function newDeploymentRequestEnvironmentInfoUnionToJSON( ); } +/** @internal */ +export type NewDeploymentRequestFailureDomains2$Outbound = { + selectedFailureDomains?: Array | undefined; + spread: number; +}; + +/** @internal */ +export const NewDeploymentRequestFailureDomains2$outboundSchema: z.ZodType< + NewDeploymentRequestFailureDomains2$Outbound, + NewDeploymentRequestFailureDomains2 +> = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), +}); + +export function newDeploymentRequestFailureDomains2ToJSON( + newDeploymentRequestFailureDomains2: NewDeploymentRequestFailureDomains2, +): string { + return JSON.stringify( + NewDeploymentRequestFailureDomains2$outboundSchema.parse( + newDeploymentRequestFailureDomains2, + ), + ); +} + +/** @internal */ +export type NewDeploymentRequestFailureDomainsUnion2$Outbound = + | NewDeploymentRequestFailureDomains2$Outbound + | any; + +/** @internal */ +export const NewDeploymentRequestFailureDomainsUnion2$outboundSchema: z.ZodType< + NewDeploymentRequestFailureDomainsUnion2$Outbound, + NewDeploymentRequestFailureDomainsUnion2 +> = z.union([ + z.lazy(() => NewDeploymentRequestFailureDomains2$outboundSchema), + z.any(), +]); + +export function newDeploymentRequestFailureDomainsUnion2ToJSON( + newDeploymentRequestFailureDomainsUnion2: + NewDeploymentRequestFailureDomainsUnion2, +): string { + return JSON.stringify( + NewDeploymentRequestFailureDomainsUnion2$outboundSchema.parse( + newDeploymentRequestFailureDomainsUnion2, + ), + ); +} + /** @internal */ export type NewDeploymentRequestPoolsAutoscale$Outbound = { + failure_domains?: + | NewDeploymentRequestFailureDomains2$Outbound + | any + | null + | undefined; machine?: string | null | undefined; max: number; min: number; @@ -1600,10 +1703,20 @@ export const NewDeploymentRequestPoolsAutoscale$outboundSchema: z.ZodType< NewDeploymentRequestPoolsAutoscale$Outbound, NewDeploymentRequestPoolsAutoscale > = z.object({ + failureDomains: z.nullable( + z.union([ + z.lazy(() => NewDeploymentRequestFailureDomains2$outboundSchema), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), max: z.int(), min: z.int(), mode: z.literal("autoscale"), +}).transform((v) => { + return remap$(v, { + failureDomains: "failure_domains", + }); }); export function newDeploymentRequestPoolsAutoscaleToJSON( @@ -1616,8 +1729,63 @@ export function newDeploymentRequestPoolsAutoscaleToJSON( ); } +/** @internal */ +export type NewDeploymentRequestFailureDomains1$Outbound = { + selectedFailureDomains?: Array | undefined; + spread: number; +}; + +/** @internal */ +export const NewDeploymentRequestFailureDomains1$outboundSchema: z.ZodType< + NewDeploymentRequestFailureDomains1$Outbound, + NewDeploymentRequestFailureDomains1 +> = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), +}); + +export function newDeploymentRequestFailureDomains1ToJSON( + newDeploymentRequestFailureDomains1: NewDeploymentRequestFailureDomains1, +): string { + return JSON.stringify( + NewDeploymentRequestFailureDomains1$outboundSchema.parse( + newDeploymentRequestFailureDomains1, + ), + ); +} + +/** @internal */ +export type NewDeploymentRequestFailureDomainsUnion1$Outbound = + | NewDeploymentRequestFailureDomains1$Outbound + | any; + +/** @internal */ +export const NewDeploymentRequestFailureDomainsUnion1$outboundSchema: z.ZodType< + NewDeploymentRequestFailureDomainsUnion1$Outbound, + NewDeploymentRequestFailureDomainsUnion1 +> = z.union([ + z.lazy(() => NewDeploymentRequestFailureDomains1$outboundSchema), + z.any(), +]); + +export function newDeploymentRequestFailureDomainsUnion1ToJSON( + newDeploymentRequestFailureDomainsUnion1: + NewDeploymentRequestFailureDomainsUnion1, +): string { + return JSON.stringify( + NewDeploymentRequestFailureDomainsUnion1$outboundSchema.parse( + newDeploymentRequestFailureDomainsUnion1, + ), + ); +} + /** @internal */ export type NewDeploymentRequestPoolsFixed$Outbound = { + failure_domains?: + | NewDeploymentRequestFailureDomains1$Outbound + | any + | null + | undefined; machine?: string | null | undefined; machines: number; mode: "fixed"; @@ -1628,9 +1796,19 @@ export const NewDeploymentRequestPoolsFixed$outboundSchema: z.ZodType< NewDeploymentRequestPoolsFixed$Outbound, NewDeploymentRequestPoolsFixed > = z.object({ + failureDomains: z.nullable( + z.union([ + z.lazy(() => NewDeploymentRequestFailureDomains1$outboundSchema), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), machines: z.int(), mode: z.literal("fixed"), +}).transform((v) => { + return remap$(v, { + failureDomains: "failure_domains", + }); }); export function newDeploymentRequestPoolsFixedToJSON( @@ -4007,6 +4185,7 @@ export type NewDeploymentRequest$Outbound = { operatorScope?: string | undefined; operatorPermission?: string | undefined; initialDesiredRelease: string; + releaseChannel: string; }; /** @internal */ @@ -4044,6 +4223,7 @@ export const NewDeploymentRequest$outboundSchema: z.ZodType< operatorScope: z.string().optional(), operatorPermission: z.string().optional(), initialDesiredRelease: InitialDesiredRelease$outboundSchema.default("active"), + releaseChannel: z.string().default("production"), }); export function newDeploymentRequestToJSON( diff --git a/client-sdks/platform/typescript/src/models/operations/acceptworkspaceinvitation.ts b/client-sdks/platform/typescript/src/models/operations/acceptworkspaceinvitation.ts new file mode 100644 index 000000000..dc1d35fd7 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/acceptworkspaceinvitation.ts @@ -0,0 +1,32 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; + +export type AcceptWorkspaceInvitationRequest = { + token: string; +}; + +/** @internal */ +export type AcceptWorkspaceInvitationRequest$Outbound = { + token: string; +}; + +/** @internal */ +export const AcceptWorkspaceInvitationRequest$outboundSchema: z.ZodType< + AcceptWorkspaceInvitationRequest$Outbound, + AcceptWorkspaceInvitationRequest +> = z.object({ + token: z.string(), +}); + +export function acceptWorkspaceInvitationRequestToJSON( + acceptWorkspaceInvitationRequest: AcceptWorkspaceInvitationRequest, +): string { + return JSON.stringify( + AcceptWorkspaceInvitationRequest$outboundSchema.parse( + acceptWorkspaceInvitationRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/approveagentsession.ts b/client-sdks/platform/typescript/src/models/operations/approveagentsession.ts new file mode 100644 index 000000000..7e82a03d2 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/approveagentsession.ts @@ -0,0 +1,36 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; + +export type ApproveAgentSessionRequest = { + id: string; + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; +}; + +/** @internal */ +export type ApproveAgentSessionRequest$Outbound = { + id: string; + workspace?: string | undefined; +}; + +/** @internal */ +export const ApproveAgentSessionRequest$outboundSchema: z.ZodType< + ApproveAgentSessionRequest$Outbound, + ApproveAgentSessionRequest +> = z.object({ + id: z.string(), + workspace: z.string().optional(), +}); + +export function approveAgentSessionRequestToJSON( + approveAgentSessionRequest: ApproveAgentSessionRequest, +): string { + return JSON.stringify( + ApproveAgentSessionRequest$outboundSchema.parse(approveAgentSessionRequest), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/createreleasechannel.ts b/client-sdks/platform/typescript/src/models/operations/createreleasechannel.ts new file mode 100644 index 000000000..7eca0eec3 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/createreleasechannel.ts @@ -0,0 +1,83 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { remap as remap$ } from "../../lib/primitives.js"; + +export type CreateReleaseChannelRequestBody = { + name: string; + /** + * Unique identifier for the release. + */ + releaseId?: string | undefined; +}; + +export type CreateReleaseChannelRequest = { + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; + /** + * Filter by project ID or name. + */ + project: string; + requestBody?: CreateReleaseChannelRequestBody | undefined; +}; + +/** @internal */ +export type CreateReleaseChannelRequestBody$Outbound = { + name: string; + releaseId?: string | undefined; +}; + +/** @internal */ +export const CreateReleaseChannelRequestBody$outboundSchema: z.ZodType< + CreateReleaseChannelRequestBody$Outbound, + CreateReleaseChannelRequestBody +> = z.object({ + name: z.string(), + releaseId: z.string().optional(), +}); + +export function createReleaseChannelRequestBodyToJSON( + createReleaseChannelRequestBody: CreateReleaseChannelRequestBody, +): string { + return JSON.stringify( + CreateReleaseChannelRequestBody$outboundSchema.parse( + createReleaseChannelRequestBody, + ), + ); +} + +/** @internal */ +export type CreateReleaseChannelRequest$Outbound = { + workspace?: string | undefined; + project: string; + RequestBody?: CreateReleaseChannelRequestBody$Outbound | undefined; +}; + +/** @internal */ +export const CreateReleaseChannelRequest$outboundSchema: z.ZodType< + CreateReleaseChannelRequest$Outbound, + CreateReleaseChannelRequest +> = z.object({ + workspace: z.string().optional(), + project: z.string(), + requestBody: z.lazy(() => CreateReleaseChannelRequestBody$outboundSchema) + .optional(), +}).transform((v) => { + return remap$(v, { + requestBody: "RequestBody", + }); +}); + +export function createReleaseChannelRequestToJSON( + createReleaseChannelRequest: CreateReleaseChannelRequest, +): string { + return JSON.stringify( + CreateReleaseChannelRequest$outboundSchema.parse( + createReleaseChannelRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/createworkspaceinvitation.ts b/client-sdks/platform/typescript/src/models/operations/createworkspaceinvitation.ts new file mode 100644 index 000000000..1aff892b1 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/createworkspaceinvitation.ts @@ -0,0 +1,84 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { remap as remap$ } from "../../lib/primitives.js"; +import * as models from "../index.js"; + +export type CreateWorkspaceInvitationRequestBody = { + email: string; + /** + * Role for workspace-scoped service accounts + */ + role: models.WorkspaceRole; +}; + +export type CreateWorkspaceInvitationRequest = { + /** + * Unique identifier for the workspace. + */ + id: string; + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; + requestBody?: CreateWorkspaceInvitationRequestBody | undefined; +}; + +/** @internal */ +export type CreateWorkspaceInvitationRequestBody$Outbound = { + email: string; + role: string; +}; + +/** @internal */ +export const CreateWorkspaceInvitationRequestBody$outboundSchema: z.ZodType< + CreateWorkspaceInvitationRequestBody$Outbound, + CreateWorkspaceInvitationRequestBody +> = z.object({ + email: z.string(), + role: models.WorkspaceRole$outboundSchema, +}); + +export function createWorkspaceInvitationRequestBodyToJSON( + createWorkspaceInvitationRequestBody: CreateWorkspaceInvitationRequestBody, +): string { + return JSON.stringify( + CreateWorkspaceInvitationRequestBody$outboundSchema.parse( + createWorkspaceInvitationRequestBody, + ), + ); +} + +/** @internal */ +export type CreateWorkspaceInvitationRequest$Outbound = { + id: string; + workspace?: string | undefined; + RequestBody?: CreateWorkspaceInvitationRequestBody$Outbound | undefined; +}; + +/** @internal */ +export const CreateWorkspaceInvitationRequest$outboundSchema: z.ZodType< + CreateWorkspaceInvitationRequest$Outbound, + CreateWorkspaceInvitationRequest +> = z.object({ + id: z.string(), + workspace: z.string().optional(), + requestBody: z.lazy(() => CreateWorkspaceInvitationRequestBody$outboundSchema) + .optional(), +}).transform((v) => { + return remap$(v, { + requestBody: "RequestBody", + }); +}); + +export function createWorkspaceInvitationRequestToJSON( + createWorkspaceInvitationRequest: CreateWorkspaceInvitationRequest, +): string { + return JSON.stringify( + CreateWorkspaceInvitationRequest$outboundSchema.parse( + createWorkspaceInvitationRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/createworkspaceinvitelink.ts b/client-sdks/platform/typescript/src/models/operations/createworkspaceinvitelink.ts new file mode 100644 index 000000000..18dab5428 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/createworkspaceinvitelink.ts @@ -0,0 +1,81 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { remap as remap$ } from "../../lib/primitives.js"; +import * as models from "../index.js"; + +export type CreateWorkspaceInviteLinkRequestBody = { + /** + * Role for workspace-scoped service accounts + */ + role: models.WorkspaceRole; +}; + +export type CreateWorkspaceInviteLinkRequest = { + /** + * Unique identifier for the workspace. + */ + id: string; + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; + requestBody?: CreateWorkspaceInviteLinkRequestBody | undefined; +}; + +/** @internal */ +export type CreateWorkspaceInviteLinkRequestBody$Outbound = { + role: string; +}; + +/** @internal */ +export const CreateWorkspaceInviteLinkRequestBody$outboundSchema: z.ZodType< + CreateWorkspaceInviteLinkRequestBody$Outbound, + CreateWorkspaceInviteLinkRequestBody +> = z.object({ + role: models.WorkspaceRole$outboundSchema, +}); + +export function createWorkspaceInviteLinkRequestBodyToJSON( + createWorkspaceInviteLinkRequestBody: CreateWorkspaceInviteLinkRequestBody, +): string { + return JSON.stringify( + CreateWorkspaceInviteLinkRequestBody$outboundSchema.parse( + createWorkspaceInviteLinkRequestBody, + ), + ); +} + +/** @internal */ +export type CreateWorkspaceInviteLinkRequest$Outbound = { + id: string; + workspace?: string | undefined; + RequestBody?: CreateWorkspaceInviteLinkRequestBody$Outbound | undefined; +}; + +/** @internal */ +export const CreateWorkspaceInviteLinkRequest$outboundSchema: z.ZodType< + CreateWorkspaceInviteLinkRequest$Outbound, + CreateWorkspaceInviteLinkRequest +> = z.object({ + id: z.string(), + workspace: z.string().optional(), + requestBody: z.lazy(() => CreateWorkspaceInviteLinkRequestBody$outboundSchema) + .optional(), +}).transform((v) => { + return remap$(v, { + requestBody: "RequestBody", + }); +}); + +export function createWorkspaceInviteLinkRequestToJSON( + createWorkspaceInviteLinkRequest: CreateWorkspaceInviteLinkRequest, +): string { + return JSON.stringify( + CreateWorkspaceInviteLinkRequest$outboundSchema.parse( + createWorkspaceInviteLinkRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/deletereleasechannel.ts b/client-sdks/platform/typescript/src/models/operations/deletereleasechannel.ts new file mode 100644 index 000000000..5ba96cd7a --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/deletereleasechannel.ts @@ -0,0 +1,44 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; + +export type DeleteReleaseChannelRequest = { + name: string; + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; + /** + * Filter by project ID or name. + */ + project: string; +}; + +/** @internal */ +export type DeleteReleaseChannelRequest$Outbound = { + name: string; + workspace?: string | undefined; + project: string; +}; + +/** @internal */ +export const DeleteReleaseChannelRequest$outboundSchema: z.ZodType< + DeleteReleaseChannelRequest$Outbound, + DeleteReleaseChannelRequest +> = z.object({ + name: z.string(), + workspace: z.string().optional(), + project: z.string(), +}); + +export function deleteReleaseChannelRequestToJSON( + deleteReleaseChannelRequest: DeleteReleaseChannelRequest, +): string { + return JSON.stringify( + DeleteReleaseChannelRequest$outboundSchema.parse( + deleteReleaseChannelRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/ensuredeploymentgroupbyexternalid.ts b/client-sdks/platform/typescript/src/models/operations/ensuredeploymentgroupbyexternalid.ts new file mode 100644 index 000000000..6b1fdd5f2 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/ensuredeploymentgroupbyexternalid.ts @@ -0,0 +1,49 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { remap as remap$ } from "../../lib/primitives.js"; +import * as models from "../index.js"; + +export type EnsureDeploymentGroupByExternalIdRequest = { + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; + ensureDeploymentGroupByExternalIdRequest: + models.EnsureDeploymentGroupByExternalIdRequest; +}; + +/** @internal */ +export type EnsureDeploymentGroupByExternalIdRequest$Outbound = { + workspace?: string | undefined; + EnsureDeploymentGroupByExternalIdRequest: + models.EnsureDeploymentGroupByExternalIdRequest$Outbound; +}; + +/** @internal */ +export const EnsureDeploymentGroupByExternalIdRequest$outboundSchema: z.ZodType< + EnsureDeploymentGroupByExternalIdRequest$Outbound, + EnsureDeploymentGroupByExternalIdRequest +> = z.object({ + workspace: z.string().optional(), + ensureDeploymentGroupByExternalIdRequest: + models.EnsureDeploymentGroupByExternalIdRequest$outboundSchema, +}).transform((v) => { + return remap$(v, { + ensureDeploymentGroupByExternalIdRequest: + "EnsureDeploymentGroupByExternalIdRequest", + }); +}); + +export function ensureDeploymentGroupByExternalIdRequestToJSON( + ensureDeploymentGroupByExternalIdRequest: + EnsureDeploymentGroupByExternalIdRequest, +): string { + return JSON.stringify( + EnsureDeploymentGroupByExternalIdRequest$outboundSchema.parse( + ensureDeploymentGroupByExternalIdRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/generatemanagerbindingtoken.ts b/client-sdks/platform/typescript/src/models/operations/generatemanagerbindingtoken.ts new file mode 100644 index 000000000..926182b93 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/generatemanagerbindingtoken.ts @@ -0,0 +1,52 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { remap as remap$ } from "../../lib/primitives.js"; +import * as models from "../index.js"; + +export type GenerateManagerBindingTokenRequest = { + /** + * Unique identifier for a manager. + */ + id: string; + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; + generateManagerBindingTokenRequest: models.GenerateManagerBindingTokenRequest; +}; + +/** @internal */ +export type GenerateManagerBindingTokenRequest$Outbound = { + id: string; + workspace?: string | undefined; + GenerateManagerBindingTokenRequest: + models.GenerateManagerBindingTokenRequest$Outbound; +}; + +/** @internal */ +export const GenerateManagerBindingTokenRequest$outboundSchema: z.ZodType< + GenerateManagerBindingTokenRequest$Outbound, + GenerateManagerBindingTokenRequest +> = z.object({ + id: z.string(), + workspace: z.string().optional(), + generateManagerBindingTokenRequest: + models.GenerateManagerBindingTokenRequest$outboundSchema, +}).transform((v) => { + return remap$(v, { + generateManagerBindingTokenRequest: "GenerateManagerBindingTokenRequest", + }); +}); + +export function generateManagerBindingTokenRequestToJSON( + generateManagerBindingTokenRequest: GenerateManagerBindingTokenRequest, +): string { + return JSON.stringify( + GenerateManagerBindingTokenRequest$outboundSchema.parse( + generateManagerBindingTokenRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/getagentsession.ts b/client-sdks/platform/typescript/src/models/operations/getagentsession.ts new file mode 100644 index 000000000..e59752a58 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/getagentsession.ts @@ -0,0 +1,36 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; + +export type GetAgentSessionRequest = { + id: string; + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; +}; + +/** @internal */ +export type GetAgentSessionRequest$Outbound = { + id: string; + workspace?: string | undefined; +}; + +/** @internal */ +export const GetAgentSessionRequest$outboundSchema: z.ZodType< + GetAgentSessionRequest$Outbound, + GetAgentSessionRequest +> = z.object({ + id: z.string(), + workspace: z.string().optional(), +}); + +export function getAgentSessionRequestToJSON( + getAgentSessionRequest: GetAgentSessionRequest, +): string { + return JSON.stringify( + GetAgentSessionRequest$outboundSchema.parse(getAgentSessionRequest), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/getdeploymentgroup.ts b/client-sdks/platform/typescript/src/models/operations/getdeploymentgroup.ts index 76d9620f5..cf49b1ffd 100644 --- a/client-sdks/platform/typescript/src/models/operations/getdeploymentgroup.ts +++ b/client-sdks/platform/typescript/src/models/operations/getdeploymentgroup.ts @@ -56,6 +56,10 @@ export type GetDeploymentGroupResponse = { * Deployment group name. */ name: string; + /** + * Case-sensitive, URL- and header-safe identifier from the integrating application. + */ + externalId: string | null; /** * Unique identifier for the project. */ @@ -135,6 +139,7 @@ export const GetDeploymentGroupResponse$inboundSchema: z.ZodType< > = z.object({ id: z.string(), name: z.string(), + externalId: z.nullable(z.string()), projectId: z.string(), workspaceId: z.string(), maxDeployments: z.int().default(100), diff --git a/client-sdks/platform/typescript/src/models/operations/getdeploymentgroupbyexternalid.ts b/client-sdks/platform/typescript/src/models/operations/getdeploymentgroupbyexternalid.ts new file mode 100644 index 000000000..9aa50a02a --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/getdeploymentgroupbyexternalid.ts @@ -0,0 +1,47 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; + +export type GetDeploymentGroupByExternalIdRequest = { + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; + /** + * Project ID or name. Optional for project-scoped API keys. + */ + project?: string | undefined; + /** + * Case-sensitive, URL- and header-safe identifier from the integrating application. + */ + externalId: string; +}; + +/** @internal */ +export type GetDeploymentGroupByExternalIdRequest$Outbound = { + workspace?: string | undefined; + project?: string | undefined; + externalId: string; +}; + +/** @internal */ +export const GetDeploymentGroupByExternalIdRequest$outboundSchema: z.ZodType< + GetDeploymentGroupByExternalIdRequest$Outbound, + GetDeploymentGroupByExternalIdRequest +> = z.object({ + workspace: z.string().optional(), + project: z.string().optional(), + externalId: z.string(), +}); + +export function getDeploymentGroupByExternalIdRequestToJSON( + getDeploymentGroupByExternalIdRequest: GetDeploymentGroupByExternalIdRequest, +): string { + return JSON.stringify( + GetDeploymentGroupByExternalIdRequest$outboundSchema.parse( + getDeploymentGroupByExternalIdRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/getrelease.ts b/client-sdks/platform/typescript/src/models/operations/getrelease.ts index 4f2edd99c..0354c4d7a 100644 --- a/client-sdks/platform/typescript/src/models/operations/getrelease.ts +++ b/client-sdks/platform/typescript/src/models/operations/getrelease.ts @@ -7,6 +7,8 @@ import { ClosedEnum } from "../../types/enums.js"; export const GetReleaseInclude = { Project: "project", + Rollout: "rollout", + CreatedBy: "createdBy", } as const; export type GetReleaseInclude = ClosedEnum; @@ -20,7 +22,7 @@ export type GetReleaseRequest = { */ workspace?: string | undefined; /** - * Optional fields to include: project + * Optional fields to include: project, rollout */ include?: Array | undefined; }; diff --git a/client-sdks/platform/typescript/src/models/operations/getresourcedeploymentdetail.ts b/client-sdks/platform/typescript/src/models/operations/getresourcedeploymentdetail.ts index fe30cfdc6..8505b9933 100644 --- a/client-sdks/platform/typescript/src/models/operations/getresourcedeploymentdetail.ts +++ b/client-sdks/platform/typescript/src/models/operations/getresourcedeploymentdetail.ts @@ -89,40 +89,15 @@ export const ControllerPlatform = { */ export type ControllerPlatform = ClosedEnum; -export const Reason65 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", -} as const; -export type Reason65 = ClosedEnum; - -export const CollectionIssueSeverity65 = { - Info: "info", - Warning: "warning", - Error: "error", -} as const; -export type CollectionIssueSeverity65 = ClosedEnum< - typeof CollectionIssueSeverity65 ->; - -export type CollectionIssue65 = { - message: string; - reason: Reason65; - severity: CollectionIssueSeverity65; - source: string; -}; - -export const Health65 = { +export const Health72 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health65 = ClosedEnum; +export type Health72 = ClosedEnum; -export const Lifecycle65 = { +export const Lifecycle72 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -134,79 +109,79 @@ export const Lifecycle65 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle65 = ClosedEnum; +export type Lifecycle72 = ClosedEnum; -export type DataStatus65 = { - collectionIssues: Array; - health: Health65; - lifecycle: Lifecycle65; +export type DataStatus72 = { + health: Health72; + lifecycle: Lifecycle72; message?: string | null | undefined; - partial: boolean; - stale: boolean; }; -export type Data5 = { - createdAt?: string | null | undefined; - disableLocalAuth?: boolean | null | undefined; - location?: string | null | undefined; - metricId?: string | null | undefined; - minimumTlsVersion?: string | null | undefined; - name: string; - namespaceStatus?: string | null | undefined; - premiumMessagingPartitions?: number | null | undefined; - privateEndpointConnectionCount: number; - provisioningState?: string | null | undefined; - publicNetworkAccess?: string | null | undefined; - resourceGroup?: string | null | undefined; - resourceId?: string | null | undefined; - serviceBusEndpoint?: string | null | undefined; - skuCapacity?: number | null | undefined; - skuName?: string | null | undefined; - skuTier?: string | null | undefined; - status: DataStatus65; - updatedAt?: string | null | undefined; - zoneRedundant?: boolean | null | undefined; +export type Data8 = { + enabled?: boolean | null | undefined; + keyId: string; + keyOperations: Array; + keyType: string; + recoveryLevel?: string | null | undefined; + status: DataStatus72; }; -export type DataAzureServiceBusNamespace = { - data: Data5; - resourceType: "azure_service_bus_namespace"; +export type DataAzureKeyVault2 = { + data: Data8; + provider: "azure-key-vault"; }; -export const Reason64 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", +export const Health71 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", } as const; -export type Reason64 = ClosedEnum; +export type Health71 = ClosedEnum; -export const CollectionIssueSeverity64 = { - Info: "info", - Warning: "warning", - Error: "error", +export const Lifecycle71 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", } as const; -export type CollectionIssueSeverity64 = ClosedEnum< - typeof CollectionIssueSeverity64 ->; +export type Lifecycle71 = ClosedEnum; -export type CollectionIssue64 = { - message: string; - reason: Reason64; - severity: CollectionIssueSeverity64; - source: string; +export type DataStatus71 = { + health: Health71; + lifecycle: Lifecycle71; + message?: string | null | undefined; }; -export const Health64 = { +export type Data7 = { + algorithm?: string | null | undefined; + cryptoKeyName: string; + primaryState?: string | null | undefined; + primaryVersion?: string | null | undefined; + purpose: string; + status: DataStatus71; +}; + +export type DataGcpCloudKms = { + data: Data7; + provider: "gcp-cloud-kms"; +}; + +export const Health70 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health64 = ClosedEnum; +export type Health70 = ClosedEnum; -export const Lifecycle64 = { +export const Lifecycle70 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -218,99 +193,153 @@ export const Lifecycle64 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle64 = ClosedEnum; +export type Lifecycle70 = ClosedEnum; -export type DataStatus64 = { - collectionIssues: Array; - health: Health64; - lifecycle: Lifecycle64; +export type DataStatus70 = { + health: Health70; + lifecycle: Lifecycle70; message?: string | null | undefined; - partial: boolean; - stale: boolean; }; -export type WorkloadProfile = { - maximumCount?: number | null | undefined; - minimumCount?: number | null | undefined; - name: string; - workloadProfileType: string; +export type Data6 = { + enabled: boolean; + keyArn: string; + keySpec: string; + keyState: string; + keyUsage: string; + status: DataStatus70; }; -export type Data4 = { - customDomainVerificationId?: string | null | undefined; - defaultDomain?: string | null | undefined; - eventStreamEndpoint?: string | null | undefined; - infrastructureResourceGroup?: string | null | undefined; - kind?: string | null | undefined; - location?: string | null | undefined; - name: string; - provisioningState?: string | null | undefined; - resourceGroup?: string | null | undefined; - resourceId?: string | null | undefined; - staticIp?: string | null | undefined; - status: DataStatus64; - workloadProfileCount: number; - workloadProfiles: Array; - zoneRedundant?: boolean | null | undefined; +export type DataAwsKms = { + data: Data6; + provider: "aws-kms"; }; -export type DataAzureContainerAppsEnvironment = { - data: Data4; - resourceType: "azure_container_apps_environment"; +export type DataUnion17 = DataAwsKms | DataGcpCloudKms | DataAzureKeyVault2; + +export type DataKey = { + data: DataAwsKms | DataGcpCloudKms | DataAzureKeyVault2; + resourceType: "key"; }; -export type PrimaryEndpoints = { - blob?: string | null | undefined; - dfs?: string | null | undefined; - file?: string | null | undefined; - queue?: string | null | undefined; - table?: string | null | undefined; - web?: string | null | undefined; +export const AccessTest4 = { + Verified: "verified", + Failed: "failed", + NotChecked: "not-checked", +} as const; +export type AccessTest4 = ClosedEnum; + +export const AvailabilityEnum4 = { + Available: "available", + Blocked: "blocked", + Unknown: "unknown", +} as const; +export type AvailabilityEnum4 = ClosedEnum; + +export const BlockerEnum4 = { + AgreementRequired: "agreement-required", + EntitlementRequired: "entitlement-required", + ModelActivationRequired: "model-activation-required", + DeploymentRequired: "deployment-required", + QuotaConfigurationRequired: "quota-configuration-required", + RegionUnavailable: "region-unavailable", + AccessDenied: "access-denied", + ObservationFailed: "observation-failed", +} as const; +export type BlockerEnum4 = ClosedEnum; + +/** + * A public API accepted from an application client. + */ +export const ClientApi4 = { + OpenAiChatCompletions: "open-ai-chat-completions", + OpenAiResponses: "open-ai-responses", + AnthropicMessages: "anthropic-messages", +} as const; +/** + * A public API accepted from an application client. + */ +export type ClientApi4 = ClosedEnum; + +export type Model4 = { + accessTest: AccessTest4; + availability: AvailabilityEnum4; + blockers: Array; + clientApis: Array; + errorCode?: string | null | undefined; + publicModelId: string; + testedAt?: Date | null | undefined; }; -export type SecondaryEndpoints = { - blob?: string | null | undefined; - dfs?: string | null | undefined; - file?: string | null | undefined; - queue?: string | null | undefined; - table?: string | null | undefined; - web?: string | null | undefined; +/** + * Provider control plane used to observe model availability without invoking + * + * @remarks + * a model, spending customer quota, or accepting provider terms. + */ +export const SourceEnum4 = { + AwsBedrock: "aws-bedrock", + GcpVertex: "gcp-vertex", + AzureFoundry: "azure-foundry", + Anthropic: "anthropic", +} as const; +/** + * Provider control plane used to observe model availability without invoking + * + * @remarks + * a model, spending customer quota, or accepting provider terms. + */ +export type SourceEnum4 = ClosedEnum; + +export type Availability4 = { + catalogRevision: string; + location?: string | null | undefined; + models: Array; + /** + * Provider control plane used to observe model availability without invoking + * + * @remarks + * a model, spending customer quota, or accepting provider terms. + */ + source: SourceEnum4; }; -export const Reason63 = { +export type AvailabilityUnion = Availability4 | any; + +export const Reason69 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason63 = ClosedEnum; +export type Reason69 = ClosedEnum; -export const CollectionIssueSeverity63 = { +export const CollectionIssueSeverity69 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity63 = ClosedEnum< - typeof CollectionIssueSeverity63 +export type CollectionIssueSeverity69 = ClosedEnum< + typeof CollectionIssueSeverity69 >; -export type CollectionIssue63 = { +export type CollectionIssue69 = { message: string; - reason: Reason63; - severity: CollectionIssueSeverity63; + reason: Reason69; + severity: CollectionIssueSeverity69; source: string; }; -export const Health63 = { +export const Health69 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health63 = ClosedEnum; +export type Health69 = ClosedEnum; -export const Lifecycle63 = { +export const Lifecycle69 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -322,82 +351,146 @@ export const Lifecycle63 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle63 = ClosedEnum; +export type Lifecycle69 = ClosedEnum; -export type DataStatus63 = { - collectionIssues: Array; - health: Health63; - lifecycle: Lifecycle63; +export type DataStatus69 = { + collectionIssues: Array; + health: Health69; + lifecycle: Lifecycle69; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type Data3 = { - allowBlobPublicAccess?: boolean | null | undefined; - allowSharedKeyAccess?: boolean | null | undefined; - encryptionKeySource?: string | null | undefined; - kind?: string | null | undefined; - location?: string | null | undefined; - minimumTlsVersion?: string | null | undefined; - name: string; - networkBypass?: string | null | undefined; - networkDefaultAction?: string | null | undefined; - networkIpRuleCount?: number | null | undefined; - networkResourceAccessRuleCount?: number | null | undefined; - networkVirtualNetworkRuleCount?: number | null | undefined; - primaryEndpoints: PrimaryEndpoints; - provisioningState?: string | null | undefined; - publicNetworkAccess?: string | null | undefined; - requireInfrastructureEncryption?: boolean | null | undefined; - resourceGroup?: string | null | undefined; - resourceId?: string | null | undefined; - secondaryEndpoints: SecondaryEndpoints; - skuName?: string | null | undefined; - skuTier?: string | null | undefined; - status: DataStatus63; - supportsHttpsTrafficOnly?: boolean | null | undefined; +export type DataExternal = { + availability?: Availability4 | any | null | undefined; + /** + * The BYO-key provider serving this binding (e.g. "openai"). Used on the Local + * + * @remarks + * platform, where the app brings its own provider key instead of an ambient cloud. + */ + provider: string; + status: DataStatus69; + backend: "external"; }; -export type DataAzureStorageAccount = { - data: Data3; - resourceType: "azure_storage_account"; +export const AccessTest3 = { + Verified: "verified", + Failed: "failed", + NotChecked: "not-checked", +} as const; +export type AccessTest3 = ClosedEnum; + +export const AvailabilityEnum3 = { + Available: "available", + Blocked: "blocked", + Unknown: "unknown", +} as const; +export type AvailabilityEnum3 = ClosedEnum; + +export const BlockerEnum3 = { + AgreementRequired: "agreement-required", + EntitlementRequired: "entitlement-required", + ModelActivationRequired: "model-activation-required", + DeploymentRequired: "deployment-required", + QuotaConfigurationRequired: "quota-configuration-required", + RegionUnavailable: "region-unavailable", + AccessDenied: "access-denied", + ObservationFailed: "observation-failed", +} as const; +export type BlockerEnum3 = ClosedEnum; + +/** + * A public API accepted from an application client. + */ +export const ClientApi3 = { + OpenAiChatCompletions: "open-ai-chat-completions", + OpenAiResponses: "open-ai-responses", + AnthropicMessages: "anthropic-messages", +} as const; +/** + * A public API accepted from an application client. + */ +export type ClientApi3 = ClosedEnum; + +export type Model3 = { + accessTest: AccessTest3; + availability: AvailabilityEnum3; + blockers: Array; + clientApis: Array; + errorCode?: string | null | undefined; + publicModelId: string; + testedAt?: Date | null | undefined; }; -export const Reason62 = { +/** + * Provider control plane used to observe model availability without invoking + * + * @remarks + * a model, spending customer quota, or accepting provider terms. + */ +export const SourceEnum3 = { + AwsBedrock: "aws-bedrock", + GcpVertex: "gcp-vertex", + AzureFoundry: "azure-foundry", + Anthropic: "anthropic", +} as const; +/** + * Provider control plane used to observe model availability without invoking + * + * @remarks + * a model, spending customer quota, or accepting provider terms. + */ +export type SourceEnum3 = ClosedEnum; + +export type Availability3 = { + catalogRevision: string; + location?: string | null | undefined; + models: Array; + /** + * Provider control plane used to observe model availability without invoking + * + * @remarks + * a model, spending customer quota, or accepting provider terms. + */ + source: SourceEnum3; +}; + +export const Reason68 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason62 = ClosedEnum; +export type Reason68 = ClosedEnum; -export const CollectionIssueSeverity62 = { +export const CollectionIssueSeverity68 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity62 = ClosedEnum< - typeof CollectionIssueSeverity62 +export type CollectionIssueSeverity68 = ClosedEnum< + typeof CollectionIssueSeverity68 >; -export type CollectionIssue62 = { +export type CollectionIssue68 = { message: string; - reason: Reason62; - severity: CollectionIssueSeverity62; + reason: Reason68; + severity: CollectionIssueSeverity68; source: string; }; -export const Health62 = { +export const Health68 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health62 = ClosedEnum; +export type Health68 = ClosedEnum; -export const Lifecycle62 = { +export const Lifecycle68 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -409,65 +502,143 @@ export const Lifecycle62 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle62 = ClosedEnum; +export type Lifecycle68 = ClosedEnum; -export type DataStatus62 = { - collectionIssues: Array; - health: Health62; - lifecycle: Lifecycle62; +export type DataStatus68 = { + collectionIssues: Array; + health: Health68; + lifecycle: Lifecycle68; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type Data2 = { +export type DataAzureFoundry = { + accountName: string; + availability: Availability3; + endpoint?: string | null | undefined; location?: string | null | undefined; - managedTags: { [k: string]: string }; - name: string; - provisioningState?: string | null | undefined; - resourceId?: string | null | undefined; - status: DataStatus62; + resourceGroup?: string | null | undefined; + status: DataStatus68; + backend: "azureFoundry"; }; -export type DataAzureResourceGroup = { - data: Data2; - resourceType: "azure_resource_group"; +export const AccessTest2 = { + Verified: "verified", + Failed: "failed", + NotChecked: "not-checked", +} as const; +export type AccessTest2 = ClosedEnum; + +export const AvailabilityEnum2 = { + Available: "available", + Blocked: "blocked", + Unknown: "unknown", +} as const; +export type AvailabilityEnum2 = ClosedEnum; + +export const BlockerEnum2 = { + AgreementRequired: "agreement-required", + EntitlementRequired: "entitlement-required", + ModelActivationRequired: "model-activation-required", + DeploymentRequired: "deployment-required", + QuotaConfigurationRequired: "quota-configuration-required", + RegionUnavailable: "region-unavailable", + AccessDenied: "access-denied", + ObservationFailed: "observation-failed", +} as const; +export type BlockerEnum2 = ClosedEnum; + +/** + * A public API accepted from an application client. + */ +export const ClientApi2 = { + OpenAiChatCompletions: "open-ai-chat-completions", + OpenAiResponses: "open-ai-responses", + AnthropicMessages: "anthropic-messages", +} as const; +/** + * A public API accepted from an application client. + */ +export type ClientApi2 = ClosedEnum; + +export type Model2 = { + accessTest: AccessTest2; + availability: AvailabilityEnum2; + blockers: Array; + clientApis: Array; + errorCode?: string | null | undefined; + publicModelId: string; + testedAt?: Date | null | undefined; }; -export const Reason61 = { +/** + * Provider control plane used to observe model availability without invoking + * + * @remarks + * a model, spending customer quota, or accepting provider terms. + */ +export const SourceEnum2 = { + AwsBedrock: "aws-bedrock", + GcpVertex: "gcp-vertex", + AzureFoundry: "azure-foundry", + Anthropic: "anthropic", +} as const; +/** + * Provider control plane used to observe model availability without invoking + * + * @remarks + * a model, spending customer quota, or accepting provider terms. + */ +export type SourceEnum2 = ClosedEnum; + +export type Availability2 = { + catalogRevision: string; + location?: string | null | undefined; + models: Array; + /** + * Provider control plane used to observe model availability without invoking + * + * @remarks + * a model, spending customer quota, or accepting provider terms. + */ + source: SourceEnum2; +}; + +export const Reason67 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason61 = ClosedEnum; +export type Reason67 = ClosedEnum; -export const CollectionIssueSeverity61 = { +export const CollectionIssueSeverity67 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity61 = ClosedEnum< - typeof CollectionIssueSeverity61 +export type CollectionIssueSeverity67 = ClosedEnum< + typeof CollectionIssueSeverity67 >; -export type CollectionIssue61 = { +export type CollectionIssue67 = { message: string; - reason: Reason61; - severity: CollectionIssueSeverity61; + reason: Reason67; + severity: CollectionIssueSeverity67; source: string; }; -export const Health61 = { +export const Health67 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health61 = ClosedEnum; +export type Health67 = ClosedEnum; -export const Lifecycle61 = { +export const Lifecycle67 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -479,62 +650,141 @@ export const Lifecycle61 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle61 = ClosedEnum; +export type Lifecycle67 = ClosedEnum; -export type DataStatus61 = { - collectionIssues: Array; - health: Health61; - lifecycle: Lifecycle61; +export type DataStatus67 = { + collectionIssues: Array; + health: Health67; + lifecycle: Lifecycle67; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAzureResourceProvider = { - namespace: string; - providerId?: string | null | undefined; - registered: boolean; - registrationPolicy?: string | null | undefined; - registrationState?: string | null | undefined; - resourceTypeCount: number; - status: DataStatus61; - backend: "azureResourceProvider"; +export type DataGcpVertex = { + availability: Availability2; + location: string; + project: string; + status: DataStatus67; + backend: "gcpVertex"; }; -export const Reason60 = { +export const AccessTest1 = { + Verified: "verified", + Failed: "failed", + NotChecked: "not-checked", +} as const; +export type AccessTest1 = ClosedEnum; + +export const AvailabilityEnum1 = { + Available: "available", + Blocked: "blocked", + Unknown: "unknown", +} as const; +export type AvailabilityEnum1 = ClosedEnum; + +export const BlockerEnum1 = { + AgreementRequired: "agreement-required", + EntitlementRequired: "entitlement-required", + ModelActivationRequired: "model-activation-required", + DeploymentRequired: "deployment-required", + QuotaConfigurationRequired: "quota-configuration-required", + RegionUnavailable: "region-unavailable", + AccessDenied: "access-denied", + ObservationFailed: "observation-failed", +} as const; +export type BlockerEnum1 = ClosedEnum; + +/** + * A public API accepted from an application client. + */ +export const ClientApi1 = { + OpenAiChatCompletions: "open-ai-chat-completions", + OpenAiResponses: "open-ai-responses", + AnthropicMessages: "anthropic-messages", +} as const; +/** + * A public API accepted from an application client. + */ +export type ClientApi1 = ClosedEnum; + +export type Model1 = { + accessTest: AccessTest1; + availability: AvailabilityEnum1; + blockers: Array; + clientApis: Array; + errorCode?: string | null | undefined; + publicModelId: string; + testedAt?: Date | null | undefined; +}; + +/** + * Provider control plane used to observe model availability without invoking + * + * @remarks + * a model, spending customer quota, or accepting provider terms. + */ +export const SourceEnum1 = { + AwsBedrock: "aws-bedrock", + GcpVertex: "gcp-vertex", + AzureFoundry: "azure-foundry", + Anthropic: "anthropic", +} as const; +/** + * Provider control plane used to observe model availability without invoking + * + * @remarks + * a model, spending customer quota, or accepting provider terms. + */ +export type SourceEnum1 = ClosedEnum; + +export type Availability1 = { + catalogRevision: string; + location?: string | null | undefined; + models: Array; + /** + * Provider control plane used to observe model availability without invoking + * + * @remarks + * a model, spending customer quota, or accepting provider terms. + */ + source: SourceEnum1; +}; + +export const Reason66 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason60 = ClosedEnum; +export type Reason66 = ClosedEnum; -export const CollectionIssueSeverity60 = { +export const CollectionIssueSeverity66 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity60 = ClosedEnum< - typeof CollectionIssueSeverity60 +export type CollectionIssueSeverity66 = ClosedEnum< + typeof CollectionIssueSeverity66 >; -export type CollectionIssue60 = { +export type CollectionIssue66 = { message: string; - reason: Reason60; - severity: CollectionIssueSeverity60; + reason: Reason66; + severity: CollectionIssueSeverity66; source: string; }; -export const Health60 = { +export const Health66 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health60 = ClosedEnum; +export type Health66 = ClosedEnum; -export const Lifecycle60 = { +export const Lifecycle66 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -546,102 +796,69 @@ export const Lifecycle60 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle60 = ClosedEnum; +export type Lifecycle66 = ClosedEnum; -export type DataStatus60 = { - collectionIssues: Array; - health: Health60; - lifecycle: Lifecycle60; +export type DataStatus66 = { + collectionIssues: Array; + health: Health66; + lifecycle: Lifecycle66; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataGcpServiceUsage = { - enabled: boolean; - lastOperationName?: string | null | undefined; - projectId: string; - serviceName: string; - serviceResourceName?: string | null | undefined; - state?: string | null | undefined; - status: DataStatus60; - title?: string | null | undefined; - backend: "gcpServiceUsage"; -}; - -export type DataUnion15 = DataGcpServiceUsage | DataAzureResourceProvider; - -export type DataServiceActivation = { - data: DataGcpServiceUsage | DataAzureResourceProvider; - resourceType: "service_activation"; -}; - -export type InvolvedObject10 = { - apiVersion?: string | null | undefined; - fieldPath?: string | null | undefined; - kind?: string | null | undefined; - name?: string | null | undefined; - namespace?: string | null | undefined; - resourceVersion?: string | null | undefined; - uid?: string | null | undefined; -}; - -export type InvolvedObjectUnion10 = InvolvedObject10 | any; - -export type GetResourceDeploymentDetailSource10 = { - component?: string | null | undefined; - host?: string | null | undefined; +export type DataAwsBedrock = { + availability: Availability1; + region: string; + status: DataStatus66; + backend: "awsBedrock"; }; -export type SourceUnion10 = GetResourceDeploymentDetailSource10 | any; +export type DataUnion16 = + | DataAwsBedrock + | DataGcpVertex + | DataAzureFoundry + | DataExternal; -export type Event13 = { - count?: number | null | undefined; - eventTime?: Date | null | undefined; - firstTimestamp?: Date | null | undefined; - involvedObject?: InvolvedObject10 | any | null | undefined; - lastTimestamp?: Date | null | undefined; - message: string; - raw?: any | null | undefined; - reason: string; - source?: GetResourceDeploymentDetailSource10 | any | null | undefined; - type?: string | null | undefined; +export type DataAi = { + data: DataAwsBedrock | DataGcpVertex | DataAzureFoundry | DataExternal; + resourceType: "ai"; }; -export const Reason59 = { +export const Reason65 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason59 = ClosedEnum; +export type Reason65 = ClosedEnum; -export const CollectionIssueSeverity59 = { +export const CollectionIssueSeverity65 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity59 = ClosedEnum< - typeof CollectionIssueSeverity59 +export type CollectionIssueSeverity65 = ClosedEnum< + typeof CollectionIssueSeverity65 >; -export type CollectionIssue59 = { +export type CollectionIssue65 = { message: string; - reason: Reason59; - severity: CollectionIssueSeverity59; + reason: Reason65; + severity: CollectionIssueSeverity65; source: string; }; -export const Health59 = { +export const Health65 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health59 = ClosedEnum; +export type Health65 = ClosedEnum; -export const Lifecycle59 = { +export const Lifecycle65 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -653,66 +870,79 @@ export const Lifecycle59 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle59 = ClosedEnum; +export type Lifecycle65 = ClosedEnum; -export type DataStatus59 = { - collectionIssues: Array; - health: Health59; - lifecycle: Lifecycle59; +export type DataStatus65 = { + collectionIssues: Array; + health: Health65; + lifecycle: Lifecycle65; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataKubernetesJob = { - active?: number | null | undefined; - completionTime?: Date | null | undefined; - conditionCount: number; - events: Array; - failed?: number | null | undefined; - imageDigest?: string | null | undefined; - jobName: string; - namespace: string; - startTime?: Date | null | undefined; - status: DataStatus59; - succeeded?: number | null | undefined; - backend: "kubernetesJob"; +export type Data5 = { + createdAt?: string | null | undefined; + disableLocalAuth?: boolean | null | undefined; + location?: string | null | undefined; + metricId?: string | null | undefined; + minimumTlsVersion?: string | null | undefined; + name: string; + namespaceStatus?: string | null | undefined; + premiumMessagingPartitions?: number | null | undefined; + privateEndpointConnectionCount: number; + provisioningState?: string | null | undefined; + publicNetworkAccess?: string | null | undefined; + resourceGroup?: string | null | undefined; + resourceId?: string | null | undefined; + serviceBusEndpoint?: string | null | undefined; + skuCapacity?: number | null | undefined; + skuName?: string | null | undefined; + skuTier?: string | null | undefined; + status: DataStatus65; + updatedAt?: string | null | undefined; + zoneRedundant?: boolean | null | undefined; }; -export const Reason58 = { +export type DataAzureServiceBusNamespace = { + data: Data5; + resourceType: "azure_service_bus_namespace"; +}; + +export const Reason64 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason58 = ClosedEnum; +export type Reason64 = ClosedEnum; -export const CollectionIssueSeverity58 = { +export const CollectionIssueSeverity64 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity58 = ClosedEnum< - typeof CollectionIssueSeverity58 +export type CollectionIssueSeverity64 = ClosedEnum< + typeof CollectionIssueSeverity64 >; -export type CollectionIssue58 = { +export type CollectionIssue64 = { message: string; - reason: Reason58; - severity: CollectionIssueSeverity58; + reason: Reason64; + severity: CollectionIssueSeverity64; source: string; }; -export const Health58 = { +export const Health64 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health58 = ClosedEnum; +export type Health64 = ClosedEnum; -export const Lifecycle58 = { +export const Lifecycle64 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -724,61 +954,99 @@ export const Lifecycle58 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle58 = ClosedEnum; +export type Lifecycle64 = ClosedEnum; -export type DataStatus58 = { - collectionIssues: Array; - health: Health58; - lifecycle: Lifecycle58; +export type DataStatus64 = { + collectionIssues: Array; + health: Health64; + lifecycle: Lifecycle64; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAzureContainerApps2 = { - environmentVariableCount: number; - managedEnvironmentId: string; - managedIdentityId?: string | null | undefined; - resourceGroupName: string; - resourcePrefix?: string | null | undefined; - status: DataStatus58; - backend: "azureContainerApps"; +export type WorkloadProfile = { + maximumCount?: number | null | undefined; + minimumCount?: number | null | undefined; + name: string; + workloadProfileType: string; }; -export const Reason57 = { +export type Data4 = { + customDomainVerificationId?: string | null | undefined; + defaultDomain?: string | null | undefined; + eventStreamEndpoint?: string | null | undefined; + infrastructureResourceGroup?: string | null | undefined; + kind?: string | null | undefined; + location?: string | null | undefined; + name: string; + provisioningState?: string | null | undefined; + resourceGroup?: string | null | undefined; + resourceId?: string | null | undefined; + staticIp?: string | null | undefined; + status: DataStatus64; + workloadProfileCount: number; + workloadProfiles: Array; + zoneRedundant?: boolean | null | undefined; +}; + +export type DataAzureContainerAppsEnvironment = { + data: Data4; + resourceType: "azure_container_apps_environment"; +}; + +export type PrimaryEndpoints = { + blob?: string | null | undefined; + dfs?: string | null | undefined; + file?: string | null | undefined; + queue?: string | null | undefined; + table?: string | null | undefined; + web?: string | null | undefined; +}; + +export type SecondaryEndpoints = { + blob?: string | null | undefined; + dfs?: string | null | undefined; + file?: string | null | undefined; + queue?: string | null | undefined; + table?: string | null | undefined; + web?: string | null | undefined; +}; + +export const Reason63 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason57 = ClosedEnum; +export type Reason63 = ClosedEnum; -export const CollectionIssueSeverity57 = { +export const CollectionIssueSeverity63 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity57 = ClosedEnum< - typeof CollectionIssueSeverity57 +export type CollectionIssueSeverity63 = ClosedEnum< + typeof CollectionIssueSeverity63 >; -export type CollectionIssue57 = { +export type CollectionIssue63 = { message: string; - reason: Reason57; - severity: CollectionIssueSeverity57; + reason: Reason63; + severity: CollectionIssueSeverity63; source: string; }; -export const Health57 = { +export const Health63 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health57 = ClosedEnum; +export type Health63 = ClosedEnum; -export const Lifecycle57 = { +export const Lifecycle63 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -790,61 +1058,82 @@ export const Lifecycle57 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle57 = ClosedEnum; +export type Lifecycle63 = ClosedEnum; -export type DataStatus57 = { - collectionIssues: Array; - health: Health57; - lifecycle: Lifecycle57; +export type DataStatus63 = { + collectionIssues: Array; + health: Health63; + lifecycle: Lifecycle63; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataGcpCloudBuild = { - buildConfigId: string; - environmentVariableCount: number; - location: string; - projectId: string; - serviceAccount?: string | null | undefined; - status: DataStatus57; - backend: "gcpCloudBuild"; +export type Data3 = { + allowBlobPublicAccess?: boolean | null | undefined; + allowSharedKeyAccess?: boolean | null | undefined; + encryptionKeySource?: string | null | undefined; + kind?: string | null | undefined; + location?: string | null | undefined; + minimumTlsVersion?: string | null | undefined; + name: string; + networkBypass?: string | null | undefined; + networkDefaultAction?: string | null | undefined; + networkIpRuleCount?: number | null | undefined; + networkResourceAccessRuleCount?: number | null | undefined; + networkVirtualNetworkRuleCount?: number | null | undefined; + primaryEndpoints: PrimaryEndpoints; + provisioningState?: string | null | undefined; + publicNetworkAccess?: string | null | undefined; + requireInfrastructureEncryption?: boolean | null | undefined; + resourceGroup?: string | null | undefined; + resourceId?: string | null | undefined; + secondaryEndpoints: SecondaryEndpoints; + skuName?: string | null | undefined; + skuTier?: string | null | undefined; + status: DataStatus63; + supportsHttpsTrafficOnly?: boolean | null | undefined; }; -export const Reason56 = { +export type DataAzureStorageAccount = { + data: Data3; + resourceType: "azure_storage_account"; +}; + +export const Reason62 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason56 = ClosedEnum; +export type Reason62 = ClosedEnum; -export const CollectionIssueSeverity56 = { +export const CollectionIssueSeverity62 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity56 = ClosedEnum< - typeof CollectionIssueSeverity56 +export type CollectionIssueSeverity62 = ClosedEnum< + typeof CollectionIssueSeverity62 >; -export type CollectionIssue56 = { +export type CollectionIssue62 = { message: string; - reason: Reason56; - severity: CollectionIssueSeverity56; + reason: Reason62; + severity: CollectionIssueSeverity62; source: string; }; -export const Health56 = { +export const Health62 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health56 = ClosedEnum; +export type Health62 = ClosedEnum; -export const Lifecycle56 = { +export const Lifecycle62 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -856,91 +1145,65 @@ export const Lifecycle56 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle56 = ClosedEnum; +export type Lifecycle62 = ClosedEnum; -export type DataStatus56 = { - collectionIssues: Array; - health: Health56; - lifecycle: Lifecycle56; +export type DataStatus62 = { + collectionIssues: Array; + health: Health62; + lifecycle: Lifecycle62; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAwsCodeBuild = { - artifactsEncryptionDisabled?: boolean | null | undefined; - artifactsType?: string | null | undefined; - cloudWatchLogsStatus?: string | null | undefined; - computeType?: string | null | undefined; - created?: number | null | undefined; - description?: string | null | undefined; - encryptionKeyPresent: boolean; - environmentImage?: string | null | undefined; - environmentType?: string | null | undefined; - environmentVariableCount: number; - imagePullCredentialsType?: string | null | undefined; - lastModified?: number | null | undefined; - privilegedMode?: boolean | null | undefined; - projectArn?: string | null | undefined; - projectName: string; - queuedTimeoutInMinutes?: number | null | undefined; - s3LogsStatus?: string | null | undefined; - serviceRolePresent: boolean; - sourceType?: string | null | undefined; - status: DataStatus56; - timeoutInMinutes?: number | null | undefined; - backend: "awsCodeBuild"; +export type Data2 = { + location?: string | null | undefined; + managedTags: { [k: string]: string }; + name: string; + provisioningState?: string | null | undefined; + resourceId?: string | null | undefined; + status: DataStatus62; }; -export type DataUnion14 = - | DataAwsCodeBuild - | DataGcpCloudBuild - | DataAzureContainerApps2 - | DataKubernetesJob; - -export type DataBuild = { - data: - | DataAwsCodeBuild - | DataGcpCloudBuild - | DataAzureContainerApps2 - | DataKubernetesJob; - resourceType: "build"; +export type DataAzureResourceGroup = { + data: Data2; + resourceType: "azure_resource_group"; }; -export const Reason55 = { +export const Reason61 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason55 = ClosedEnum; +export type Reason61 = ClosedEnum; -export const CollectionIssueSeverity55 = { +export const CollectionIssueSeverity61 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity55 = ClosedEnum< - typeof CollectionIssueSeverity55 +export type CollectionIssueSeverity61 = ClosedEnum< + typeof CollectionIssueSeverity61 >; -export type CollectionIssue55 = { +export type CollectionIssue61 = { message: string; - reason: Reason55; - severity: CollectionIssueSeverity55; + reason: Reason61; + severity: CollectionIssueSeverity61; source: string; }; -export const Health55 = { +export const Health61 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health55 = ClosedEnum; +export type Health61 = ClosedEnum; -export const Lifecycle55 = { +export const Lifecycle61 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -952,58 +1215,62 @@ export const Lifecycle55 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle55 = ClosedEnum; +export type Lifecycle61 = ClosedEnum; -export type DataStatus55 = { - collectionIssues: Array; - health: Health55; - lifecycle: Lifecycle55; +export type DataStatus61 = { + collectionIssues: Array; + health: Health61; + lifecycle: Lifecycle61; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataLocal11 = { - reachable: boolean; - registryUrl: string; - status: DataStatus55; - backend: "local"; -}; - -export const Reason54 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", +export type DataAzureResourceProvider = { + namespace: string; + providerId?: string | null | undefined; + registered: boolean; + registrationPolicy?: string | null | undefined; + registrationState?: string | null | undefined; + resourceTypeCount: number; + status: DataStatus61; + backend: "azureResourceProvider"; +}; + +export const Reason60 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", } as const; -export type Reason54 = ClosedEnum; +export type Reason60 = ClosedEnum; -export const CollectionIssueSeverity54 = { +export const CollectionIssueSeverity60 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity54 = ClosedEnum< - typeof CollectionIssueSeverity54 +export type CollectionIssueSeverity60 = ClosedEnum< + typeof CollectionIssueSeverity60 >; -export type CollectionIssue54 = { +export type CollectionIssue60 = { message: string; - reason: Reason54; - severity: CollectionIssueSeverity54; + reason: Reason60; + severity: CollectionIssueSeverity60; source: string; }; -export const Health54 = { +export const Health60 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health54 = ClosedEnum; +export type Health60 = ClosedEnum; -export const Lifecycle54 = { +export const Lifecycle60 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -1015,82 +1282,102 @@ export const Lifecycle54 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle54 = ClosedEnum; +export type Lifecycle60 = ClosedEnum; -export type DataStatus54 = { - collectionIssues: Array; - health: Health54; - lifecycle: Lifecycle54; +export type DataStatus60 = { + collectionIssues: Array; + health: Health60; + lifecycle: Lifecycle60; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAzureContainerRegistry = { - adminUserEnabled: boolean; - anonymousPullEnabled: boolean; - creationDate?: string | null | undefined; - dataEndpointEnabled?: boolean | null | undefined; - dataEndpointHostNames: Array; - encryptionKeyIdentifierPresent: boolean; - encryptionKeyVaultUriPresent: boolean; - encryptionStatus?: string | null | undefined; - ipRuleCount: number; - location: string; - loginServer?: string | null | undefined; - managedTagCount: number; - name: string; - networkRuleBypassOptions: string; - networkRuleDefaultAction?: string | null | undefined; - policiesPresent: boolean; - policyCount: number; - privateEndpointConnectionCount: number; - provisioningState?: string | null | undefined; - publicNetworkAccess: string; - resourceGroup: string; - resourceId?: string | null | undefined; - skuName: string; - skuTier?: string | null | undefined; - status: DataStatus54; +export type DataGcpServiceUsage = { + enabled: boolean; + lastOperationName?: string | null | undefined; + projectId: string; + serviceName: string; + serviceResourceName?: string | null | undefined; + state?: string | null | undefined; + status: DataStatus60; + title?: string | null | undefined; + backend: "gcpServiceUsage"; +}; + +export type DataUnion15 = DataGcpServiceUsage | DataAzureResourceProvider; + +export type DataServiceActivation = { + data: DataGcpServiceUsage | DataAzureResourceProvider; + resourceType: "service_activation"; +}; + +export type InvolvedObject10 = { + apiVersion?: string | null | undefined; + fieldPath?: string | null | undefined; + kind?: string | null | undefined; + name?: string | null | undefined; + namespace?: string | null | undefined; + resourceVersion?: string | null | undefined; + uid?: string | null | undefined; +}; + +export type InvolvedObjectUnion10 = InvolvedObject10 | any; + +export type SourceEvent10 = { + component?: string | null | undefined; + host?: string | null | undefined; +}; + +export type SourceUnion10 = SourceEvent10 | any; + +export type Event13 = { + count?: number | null | undefined; + eventTime?: Date | null | undefined; + firstTimestamp?: Date | null | undefined; + involvedObject?: InvolvedObject10 | any | null | undefined; + lastTimestamp?: Date | null | undefined; + message: string; + raw?: any | null | undefined; + reason: string; + source?: SourceEvent10 | any | null | undefined; type?: string | null | undefined; - zoneRedundancy: string; - backend: "azureContainerRegistry"; }; -export const Reason53 = { +export const Reason59 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason53 = ClosedEnum; +export type Reason59 = ClosedEnum; -export const CollectionIssueSeverity53 = { +export const CollectionIssueSeverity59 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity53 = ClosedEnum< - typeof CollectionIssueSeverity53 +export type CollectionIssueSeverity59 = ClosedEnum< + typeof CollectionIssueSeverity59 >; -export type CollectionIssue53 = { +export type CollectionIssue59 = { message: string; - reason: Reason53; - severity: CollectionIssueSeverity53; + reason: Reason59; + severity: CollectionIssueSeverity59; source: string; }; -export const Health53 = { +export const Health59 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health53 = ClosedEnum; +export type Health59 = ClosedEnum; -export const Lifecycle53 = { +export const Lifecycle59 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -1102,88 +1389,66 @@ export const Lifecycle53 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle53 = ClosedEnum; +export type Lifecycle59 = ClosedEnum; -export type DataStatus53 = { - collectionIssues: Array; - health: Health53; - lifecycle: Lifecycle53; +export type DataStatus59 = { + collectionIssues: Array; + health: Health59; + lifecycle: Lifecycle59; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataGcpArtifactRegistry = { - cleanupPolicyCount: number; - cleanupPolicyDryRun?: boolean | null | undefined; - createTime?: string | null | undefined; - description?: string | null | undefined; - format?: string | null | undefined; - iamBindingCount: number; - iamPolicyEtagPresent: boolean; - iamRoles: Array; - kmsKeyNamePresent: boolean; - labelCount: number; - location: string; - mode?: string | null | undefined; - name?: string | null | undefined; - projectId: string; - pullServiceAccountEmail?: string | null | undefined; - pushServiceAccountEmail?: string | null | undefined; - repositoryId: string; - satisfiesPzs?: boolean | null | undefined; - sizeBytes?: string | null | undefined; - status: DataStatus53; - updateTime?: string | null | undefined; - backend: "gcpArtifactRegistry"; -}; - -export type Repository = { - createdAt: number; - encryptionType?: string | null | undefined; - imageTagMutability?: string | null | undefined; - kmsKeyPresent: boolean; - registryId: string; - repositoryArn: string; - repositoryName: string; - repositoryUri: string; - scanOnPush?: boolean | null | undefined; +export type DataKubernetesJob = { + active?: number | null | undefined; + completionTime?: Date | null | undefined; + conditionCount: number; + events: Array; + failed?: number | null | undefined; + imageDigest?: string | null | undefined; + jobName: string; + namespace: string; + startTime?: Date | null | undefined; + status: DataStatus59; + succeeded?: number | null | undefined; + backend: "kubernetesJob"; }; -export const Reason52 = { +export const Reason58 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason52 = ClosedEnum; +export type Reason58 = ClosedEnum; -export const CollectionIssueSeverity52 = { +export const CollectionIssueSeverity58 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity52 = ClosedEnum< - typeof CollectionIssueSeverity52 +export type CollectionIssueSeverity58 = ClosedEnum< + typeof CollectionIssueSeverity58 >; -export type CollectionIssue52 = { +export type CollectionIssue58 = { message: string; - reason: Reason52; - severity: CollectionIssueSeverity52; + reason: Reason58; + severity: CollectionIssueSeverity58; source: string; }; -export const Health52 = { +export const Health58 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health52 = ClosedEnum; +export type Health58 = ClosedEnum; -export const Lifecycle52 = { +export const Lifecycle58 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -1195,80 +1460,61 @@ export const Lifecycle52 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle52 = ClosedEnum; +export type Lifecycle58 = ClosedEnum; -export type DataStatus52 = { - collectionIssues: Array; - health: Health52; - lifecycle: Lifecycle52; +export type DataStatus58 = { + collectionIssues: Array; + health: Health58; + lifecycle: Lifecycle58; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAwsEcr = { - pullRoleArn?: string | null | undefined; - pushRoleArn?: string | null | undefined; - region: string; - registryId: string; - registryUri: string; - repositories: Array; - repositoriesTruncated: boolean; - repositoryCount: number; - repositoryPrefix: string; - status: DataStatus52; - backend: "awsEcr"; +export type DataAzureContainerApps2 = { + environmentVariableCount: number; + managedEnvironmentId: string; + managedIdentityId?: string | null | undefined; + resourceGroupName: string; + resourcePrefix?: string | null | undefined; + status: DataStatus58; + backend: "azureContainerApps"; }; -export type DataUnion13 = - | DataAwsEcr - | DataGcpArtifactRegistry - | DataAzureContainerRegistry - | DataLocal11; - -export type DataArtifactRegistry = { - data: - | DataAwsEcr - | DataGcpArtifactRegistry - | DataAzureContainerRegistry - | DataLocal11; - resourceType: "artifact-registry"; -}; - -export const Reason51 = { +export const Reason57 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason51 = ClosedEnum; +export type Reason57 = ClosedEnum; -export const CollectionIssueSeverity51 = { +export const CollectionIssueSeverity57 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity51 = ClosedEnum< - typeof CollectionIssueSeverity51 +export type CollectionIssueSeverity57 = ClosedEnum< + typeof CollectionIssueSeverity57 >; -export type CollectionIssue51 = { +export type CollectionIssue57 = { message: string; - reason: Reason51; - severity: CollectionIssueSeverity51; + reason: Reason57; + severity: CollectionIssueSeverity57; source: string; }; -export const Health51 = { +export const Health57 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health51 = ClosedEnum; +export type Health57 = ClosedEnum; -export const Lifecycle51 = { +export const Lifecycle57 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -1280,63 +1526,61 @@ export const Lifecycle51 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle51 = ClosedEnum; +export type Lifecycle57 = ClosedEnum; -export type DataStatus51 = { - collectionIssues: Array; - health: Health51; - lifecycle: Lifecycle51; +export type DataStatus57 = { + collectionIssues: Array; + health: Health57; + lifecycle: Lifecycle57; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAzureManagedIdentity2 = { - ficName?: string | null | undefined; - roleAssignmentIds: Array; - roleDefinitionId?: string | null | undefined; - status: DataStatus51; - tenantId?: string | null | undefined; - uamiClientId?: string | null | undefined; - uamiPrincipalId?: string | null | undefined; - uamiResourceId?: string | null | undefined; - backend: "azureManagedIdentity"; +export type DataGcpCloudBuild = { + buildConfigId: string; + environmentVariableCount: number; + location: string; + projectId: string; + serviceAccount?: string | null | undefined; + status: DataStatus57; + backend: "gcpCloudBuild"; }; -export const Reason50 = { +export const Reason56 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason50 = ClosedEnum; +export type Reason56 = ClosedEnum; -export const CollectionIssueSeverity50 = { +export const CollectionIssueSeverity56 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity50 = ClosedEnum< - typeof CollectionIssueSeverity50 +export type CollectionIssueSeverity56 = ClosedEnum< + typeof CollectionIssueSeverity56 >; -export type CollectionIssue50 = { +export type CollectionIssue56 = { message: string; - reason: Reason50; - severity: CollectionIssueSeverity50; + reason: Reason56; + severity: CollectionIssueSeverity56; source: string; }; -export const Health50 = { +export const Health56 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health50 = ClosedEnum; +export type Health56 = ClosedEnum; -export const Lifecycle50 = { +export const Lifecycle56 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -1348,60 +1592,91 @@ export const Lifecycle50 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle50 = ClosedEnum; +export type Lifecycle56 = ClosedEnum; -export type DataStatus50 = { - collectionIssues: Array; - health: Health50; - lifecycle: Lifecycle50; +export type DataStatus56 = { + collectionIssues: Array; + health: Health56; + lifecycle: Lifecycle56; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataGcpServiceAccount2 = { - impersonationGranted: boolean; - roleBound: boolean; - serviceAccountEmail?: string | null | undefined; - serviceAccountUniqueId?: string | null | undefined; - status: DataStatus50; - backend: "gcpServiceAccount"; +export type DataAwsCodeBuild = { + artifactsEncryptionDisabled?: boolean | null | undefined; + artifactsType?: string | null | undefined; + cloudWatchLogsStatus?: string | null | undefined; + computeType?: string | null | undefined; + created?: number | null | undefined; + description?: string | null | undefined; + encryptionKeyPresent: boolean; + environmentImage?: string | null | undefined; + environmentType?: string | null | undefined; + environmentVariableCount: number; + imagePullCredentialsType?: string | null | undefined; + lastModified?: number | null | undefined; + privilegedMode?: boolean | null | undefined; + projectArn?: string | null | undefined; + projectName: string; + queuedTimeoutInMinutes?: number | null | undefined; + s3LogsStatus?: string | null | undefined; + serviceRolePresent: boolean; + sourceType?: string | null | undefined; + status: DataStatus56; + timeoutInMinutes?: number | null | undefined; + backend: "awsCodeBuild"; }; -export const Reason49 = { +export type DataUnion14 = + | DataAwsCodeBuild + | DataGcpCloudBuild + | DataAzureContainerApps2 + | DataKubernetesJob; + +export type DataBuild = { + data: + | DataAwsCodeBuild + | DataGcpCloudBuild + | DataAzureContainerApps2 + | DataKubernetesJob; + resourceType: "build"; +}; + +export const Reason55 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason49 = ClosedEnum; +export type Reason55 = ClosedEnum; -export const CollectionIssueSeverity49 = { +export const CollectionIssueSeverity55 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity49 = ClosedEnum< - typeof CollectionIssueSeverity49 +export type CollectionIssueSeverity55 = ClosedEnum< + typeof CollectionIssueSeverity55 >; -export type CollectionIssue49 = { +export type CollectionIssue55 = { message: string; - reason: Reason49; - severity: CollectionIssueSeverity49; + reason: Reason55; + severity: CollectionIssueSeverity55; source: string; }; -export const Health49 = { +export const Health55 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health49 = ClosedEnum; +export type Health55 = ClosedEnum; -export const Lifecycle49 = { +export const Lifecycle55 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -1413,69 +1688,58 @@ export const Lifecycle49 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle49 = ClosedEnum; +export type Lifecycle55 = ClosedEnum; -export type DataStatus49 = { - collectionIssues: Array; - health: Health49; - lifecycle: Lifecycle49; +export type DataStatus55 = { + collectionIssues: Array; + health: Health55; + lifecycle: Lifecycle55; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAwsIamRole2 = { - managementPermissionsApplied: boolean; - roleArn?: string | null | undefined; - roleName?: string | null | undefined; - status: DataStatus49; - backend: "awsIamRole"; -}; - -export type DataUnion12 = - | DataAwsIamRole2 - | DataGcpServiceAccount2 - | DataAzureManagedIdentity2; - -export type DataRemoteStackManagement = { - data: DataAwsIamRole2 | DataGcpServiceAccount2 | DataAzureManagedIdentity2; - resourceType: "remote-stack-management"; +export type DataLocal11 = { + reachable: boolean; + registryUrl: string; + status: DataStatus55; + backend: "local"; }; -export const Reason48 = { +export const Reason54 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason48 = ClosedEnum; +export type Reason54 = ClosedEnum; -export const CollectionIssueSeverity48 = { +export const CollectionIssueSeverity54 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity48 = ClosedEnum< - typeof CollectionIssueSeverity48 +export type CollectionIssueSeverity54 = ClosedEnum< + typeof CollectionIssueSeverity54 >; -export type CollectionIssue48 = { +export type CollectionIssue54 = { message: string; - reason: Reason48; - severity: CollectionIssueSeverity48; + reason: Reason54; + severity: CollectionIssueSeverity54; source: string; }; -export const Health48 = { +export const Health54 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health48 = ClosedEnum; +export type Health54 = ClosedEnum; -export const Lifecycle48 = { +export const Lifecycle54 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -1487,70 +1751,82 @@ export const Lifecycle48 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle48 = ClosedEnum; +export type Lifecycle54 = ClosedEnum; -export type DataStatus48 = { - collectionIssues: Array; - health: Health48; - lifecycle: Lifecycle48; +export type DataStatus54 = { + collectionIssues: Array; + health: Health54; + lifecycle: Lifecycle54; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAzureVnet = { - applicationGatewaySubnetName?: string | null | undefined; - cidrBlock?: string | null | undefined; - isByoVnet: boolean; - lastByoVnetVerificationErrorCode?: string | null | undefined; - location?: string | null | undefined; - natGatewayId?: string | null | undefined; - nsgId?: string | null | undefined; - privateEndpointSubnetName?: string | null | undefined; - privateSubnetName?: string | null | undefined; - publicIpId?: string | null | undefined; - publicSubnetName?: string | null | undefined; - resourceGroup?: string | null | undefined; - status: DataStatus48; - vnetName?: string | null | undefined; - vnetResourceId?: string | null | undefined; - backend: "azureVnet"; -}; - -export const Reason47 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", -} as const; -export type Reason47 = ClosedEnum; - -export const CollectionIssueSeverity47 = { - Info: "info", - Warning: "warning", - Error: "error", -} as const; -export type CollectionIssueSeverity47 = ClosedEnum< - typeof CollectionIssueSeverity47 +export type DataAzureContainerRegistry = { + adminUserEnabled: boolean; + anonymousPullEnabled: boolean; + creationDate?: string | null | undefined; + dataEndpointEnabled?: boolean | null | undefined; + dataEndpointHostNames: Array; + encryptionKeyIdentifierPresent: boolean; + encryptionKeyVaultUriPresent: boolean; + encryptionStatus?: string | null | undefined; + ipRuleCount: number; + location: string; + loginServer?: string | null | undefined; + managedTagCount: number; + name: string; + networkRuleBypassOptions: string; + networkRuleDefaultAction?: string | null | undefined; + policiesPresent: boolean; + policyCount: number; + privateEndpointConnectionCount: number; + provisioningState?: string | null | undefined; + publicNetworkAccess: string; + resourceGroup: string; + resourceId?: string | null | undefined; + skuName: string; + skuTier?: string | null | undefined; + status: DataStatus54; + type?: string | null | undefined; + zoneRedundancy: string; + backend: "azureContainerRegistry"; +}; + +export const Reason53 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type Reason53 = ClosedEnum; + +export const CollectionIssueSeverity53 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type CollectionIssueSeverity53 = ClosedEnum< + typeof CollectionIssueSeverity53 >; -export type CollectionIssue47 = { +export type CollectionIssue53 = { message: string; - reason: Reason47; - severity: CollectionIssueSeverity47; + reason: Reason53; + severity: CollectionIssueSeverity53; source: string; }; -export const Health47 = { +export const Health53 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health47 = ClosedEnum; +export type Health53 = ClosedEnum; -export const Lifecycle47 = { +export const Lifecycle53 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -1562,66 +1838,88 @@ export const Lifecycle47 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle47 = ClosedEnum; +export type Lifecycle53 = ClosedEnum; -export type DataStatus47 = { - collectionIssues: Array; - health: Health47; - lifecycle: Lifecycle47; +export type DataStatus53 = { + collectionIssues: Array; + health: Health53; + lifecycle: Lifecycle53; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataGcpVpc = { - cidrBlock?: string | null | undefined; - cloudNatName?: string | null | undefined; - firewallName?: string | null | undefined; - isByoVpc: boolean; - networkName?: string | null | undefined; - networkSelfLink?: string | null | undefined; - region?: string | null | undefined; - routerName?: string | null | undefined; - status: DataStatus47; - subnetworkName?: string | null | undefined; - subnetworkSelfLink?: string | null | undefined; - backend: "gcpVpc"; +export type DataGcpArtifactRegistry = { + cleanupPolicyCount: number; + cleanupPolicyDryRun?: boolean | null | undefined; + createTime?: string | null | undefined; + description?: string | null | undefined; + format?: string | null | undefined; + iamBindingCount: number; + iamPolicyEtagPresent: boolean; + iamRoles: Array; + kmsKeyNamePresent: boolean; + labelCount: number; + location: string; + mode?: string | null | undefined; + name?: string | null | undefined; + projectId: string; + pullServiceAccountEmail?: string | null | undefined; + pushServiceAccountEmail?: string | null | undefined; + repositoryId: string; + satisfiesPzs?: boolean | null | undefined; + sizeBytes?: string | null | undefined; + status: DataStatus53; + updateTime?: string | null | undefined; + backend: "gcpArtifactRegistry"; }; -export const Reason46 = { +export type Repository = { + createdAt: number; + encryptionType?: string | null | undefined; + imageTagMutability?: string | null | undefined; + kmsKeyPresent: boolean; + registryId: string; + repositoryArn: string; + repositoryName: string; + repositoryUri: string; + scanOnPush?: boolean | null | undefined; +}; + +export const Reason52 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason46 = ClosedEnum; +export type Reason52 = ClosedEnum; -export const CollectionIssueSeverity46 = { +export const CollectionIssueSeverity52 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity46 = ClosedEnum< - typeof CollectionIssueSeverity46 +export type CollectionIssueSeverity52 = ClosedEnum< + typeof CollectionIssueSeverity52 >; -export type CollectionIssue46 = { +export type CollectionIssue52 = { message: string; - reason: Reason46; - severity: CollectionIssueSeverity46; + reason: Reason52; + severity: CollectionIssueSeverity52; source: string; }; -export const Health46 = { +export const Health52 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health46 = ClosedEnum; +export type Health52 = ClosedEnum; -export const Lifecycle46 = { +export const Lifecycle52 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -1633,74 +1931,80 @@ export const Lifecycle46 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle46 = ClosedEnum; +export type Lifecycle52 = ClosedEnum; -export type DataStatus46 = { - collectionIssues: Array; - health: Health46; - lifecycle: Lifecycle46; +export type DataStatus52 = { + collectionIssues: Array; + health: Health52; + lifecycle: Lifecycle52; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAwsVpc = { - availabilityZones: Array; - cidrBlock?: string | null | undefined; - internetGatewayId?: string | null | undefined; - isByoVpc: boolean; - natGatewayId?: string | null | undefined; - privateSubnetIds: Array; - publicSubnetIds: Array; - routeTableCount: number; - securityGroupId?: string | null | undefined; - status: DataStatus46; - vpcId?: string | null | undefined; - vpcState?: string | null | undefined; - backend: "awsVpc"; +export type DataAwsEcr = { + pullRoleArn?: string | null | undefined; + pushRoleArn?: string | null | undefined; + region: string; + registryId: string; + registryUri: string; + repositories: Array; + repositoriesTruncated: boolean; + repositoryCount: number; + repositoryPrefix: string; + status: DataStatus52; + backend: "awsEcr"; }; -export type DataUnion11 = DataAwsVpc | DataGcpVpc | DataAzureVnet; +export type DataUnion13 = + | DataAwsEcr + | DataGcpArtifactRegistry + | DataAzureContainerRegistry + | DataLocal11; -export type DataNetwork = { - data: DataAwsVpc | DataGcpVpc | DataAzureVnet; - resourceType: "network"; +export type DataArtifactRegistry = { + data: + | DataAwsEcr + | DataGcpArtifactRegistry + | DataAzureContainerRegistry + | DataLocal11; + resourceType: "artifact-registry"; }; -export const Reason45 = { +export const Reason51 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason45 = ClosedEnum; +export type Reason51 = ClosedEnum; -export const CollectionIssueSeverity45 = { +export const CollectionIssueSeverity51 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity45 = ClosedEnum< - typeof CollectionIssueSeverity45 +export type CollectionIssueSeverity51 = ClosedEnum< + typeof CollectionIssueSeverity51 >; -export type CollectionIssue45 = { +export type CollectionIssue51 = { message: string; - reason: Reason45; - severity: CollectionIssueSeverity45; + reason: Reason51; + severity: CollectionIssueSeverity51; source: string; }; -export const Health45 = { +export const Health51 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health45 = ClosedEnum; +export type Health51 = ClosedEnum; -export const Lifecycle45 = { +export const Lifecycle51 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -1712,58 +2016,63 @@ export const Lifecycle45 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle45 = ClosedEnum; +export type Lifecycle51 = ClosedEnum; -export type DataStatus45 = { - collectionIssues: Array; - health: Health45; - lifecycle: Lifecycle45; +export type DataStatus51 = { + collectionIssues: Array; + health: Health51; + lifecycle: Lifecycle51; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataLocal10 = { - configured: boolean; - identity: string; - status: DataStatus45; - backend: "local"; +export type DataAzureManagedIdentity2 = { + ficName?: string | null | undefined; + roleAssignmentIds: Array; + roleDefinitionId?: string | null | undefined; + status: DataStatus51; + tenantId?: string | null | undefined; + uamiClientId?: string | null | undefined; + uamiPrincipalId?: string | null | undefined; + uamiResourceId?: string | null | undefined; + backend: "azureManagedIdentity"; }; -export const Reason44 = { +export const Reason50 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason44 = ClosedEnum; +export type Reason50 = ClosedEnum; -export const CollectionIssueSeverity44 = { +export const CollectionIssueSeverity50 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity44 = ClosedEnum< - typeof CollectionIssueSeverity44 +export type CollectionIssueSeverity50 = ClosedEnum< + typeof CollectionIssueSeverity50 >; -export type CollectionIssue44 = { +export type CollectionIssue50 = { message: string; - reason: Reason44; - severity: CollectionIssueSeverity44; + reason: Reason50; + severity: CollectionIssueSeverity50; source: string; }; -export const Health44 = { +export const Health50 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health44 = ClosedEnum; +export type Health50 = ClosedEnum; -export const Lifecycle44 = { +export const Lifecycle50 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -1775,71 +2084,60 @@ export const Lifecycle44 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle44 = ClosedEnum; +export type Lifecycle50 = ClosedEnum; -export type DataStatus44 = { - collectionIssues: Array; - health: Health44; - lifecycle: Lifecycle44; +export type DataStatus50 = { + collectionIssues: Array; + health: Health50; + lifecycle: Lifecycle50; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAzureManagedIdentity1 = { - clientId?: string | null | undefined; - customRoleDefinitionCount: number; - customRoleDefinitionIds: Array; - isolationScope?: string | null | undefined; - location: string; - managedTagCount: number; - name: string; - principalId?: string | null | undefined; - resourceGroup: string; - resourceId: string; - roleAssignmentCount: number; - roleAssignmentIds: Array; - stackPermissionsApplied: boolean; - status: DataStatus44; - tenantId?: string | null | undefined; - type?: string | null | undefined; - backend: "azureManagedIdentity"; +export type DataGcpServiceAccount2 = { + impersonationGranted: boolean; + roleBound: boolean; + serviceAccountEmail?: string | null | undefined; + serviceAccountUniqueId?: string | null | undefined; + status: DataStatus50; + backend: "gcpServiceAccount"; }; -export const Reason43 = { +export const Reason49 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason43 = ClosedEnum; +export type Reason49 = ClosedEnum; -export const CollectionIssueSeverity43 = { +export const CollectionIssueSeverity49 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity43 = ClosedEnum< - typeof CollectionIssueSeverity43 +export type CollectionIssueSeverity49 = ClosedEnum< + typeof CollectionIssueSeverity49 >; -export type CollectionIssue43 = { +export type CollectionIssue49 = { message: string; - reason: Reason43; - severity: CollectionIssueSeverity43; + reason: Reason49; + severity: CollectionIssueSeverity49; source: string; }; -export const Health43 = { +export const Health49 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health43 = ClosedEnum; +export type Health49 = ClosedEnum; -export const Lifecycle43 = { +export const Lifecycle49 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -1851,69 +2149,69 @@ export const Lifecycle43 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle43 = ClosedEnum; +export type Lifecycle49 = ClosedEnum; -export type DataStatus43 = { - collectionIssues: Array; - health: Health43; - lifecycle: Lifecycle43; +export type DataStatus49 = { + collectionIssues: Array; + health: Health49; + lifecycle: Lifecycle49; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataGcpServiceAccount1 = { - description?: string | null | undefined; - disabled?: boolean | null | undefined; - displayName?: string | null | undefined; - email: string; - etag?: string | null | undefined; - name?: string | null | undefined; - oauth2ClientId?: string | null | undefined; - projectBindingCount: number; - projectId?: string | null | undefined; - projectRoles: Array; - serviceAccountBindingCount: number; - serviceAccountRoles: Array; - status: DataStatus43; - uniqueId?: string | null | undefined; - backend: "gcpServiceAccount"; +export type DataAwsIamRole2 = { + managementPermissionsApplied: boolean; + roleArn?: string | null | undefined; + roleName?: string | null | undefined; + status: DataStatus49; + backend: "awsIamRole"; }; -export const Reason42 = { +export type DataUnion12 = + | DataAwsIamRole2 + | DataGcpServiceAccount2 + | DataAzureManagedIdentity2; + +export type DataRemoteStackManagement = { + data: DataAwsIamRole2 | DataGcpServiceAccount2 | DataAzureManagedIdentity2; + resourceType: "remote-stack-management"; +}; + +export const Reason48 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason42 = ClosedEnum; +export type Reason48 = ClosedEnum; -export const CollectionIssueSeverity42 = { +export const CollectionIssueSeverity48 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity42 = ClosedEnum< - typeof CollectionIssueSeverity42 +export type CollectionIssueSeverity48 = ClosedEnum< + typeof CollectionIssueSeverity48 >; -export type CollectionIssue42 = { +export type CollectionIssue48 = { message: string; - reason: Reason42; - severity: CollectionIssueSeverity42; + reason: Reason48; + severity: CollectionIssueSeverity48; source: string; }; -export const Health42 = { +export const Health48 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health42 = ClosedEnum; +export type Health48 = ClosedEnum; -export const Lifecycle42 = { +export const Lifecycle48 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -1925,90 +2223,70 @@ export const Lifecycle42 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle42 = ClosedEnum; +export type Lifecycle48 = ClosedEnum; -export type DataStatus42 = { - collectionIssues: Array; - health: Health42; - lifecycle: Lifecycle42; +export type DataStatus48 = { + collectionIssues: Array; + health: Health48; + lifecycle: Lifecycle48; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAwsIamRole1 = { - assumeRolePolicyPresent: boolean; - attachedPolicyCount: number; - attachedPolicyNames: Array; - createDate: string; - description?: string | null | undefined; - inlinePolicyCount: number; - inlinePolicyNames: Array; - lastUsedDate?: string | null | undefined; - lastUsedRegion?: string | null | undefined; - managedTagCount: number; - maxSessionDuration?: number | null | undefined; - path: string; - permissionsBoundaryArn?: string | null | undefined; - permissionsBoundaryType?: string | null | undefined; - roleArn: string; - roleId: string; - roleName: string; - stackPermissionsApplied: boolean; - status: DataStatus42; - tagCount: number; - backend: "awsIamRole"; -}; - -export type DataUnion10 = - | DataAwsIamRole1 - | DataGcpServiceAccount1 - | DataAzureManagedIdentity1 - | DataLocal10; - -export type DataServiceAccount = { - data: - | DataAwsIamRole1 - | DataGcpServiceAccount1 - | DataAzureManagedIdentity1 - | DataLocal10; - resourceType: "service-account"; +export type DataAzureVnet = { + applicationGatewaySubnetName?: string | null | undefined; + cidrBlock?: string | null | undefined; + isByoVnet: boolean; + lastByoVnetVerificationErrorCode?: string | null | undefined; + location?: string | null | undefined; + natGatewayId?: string | null | undefined; + nsgId?: string | null | undefined; + privateEndpointSubnetName?: string | null | undefined; + privateSubnetName?: string | null | undefined; + publicIpId?: string | null | undefined; + publicSubnetName?: string | null | undefined; + resourceGroup?: string | null | undefined; + status: DataStatus48; + vnetName?: string | null | undefined; + vnetResourceId?: string | null | undefined; + backend: "azureVnet"; }; -export const Reason41 = { +export const Reason47 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason41 = ClosedEnum; +export type Reason47 = ClosedEnum; -export const CollectionIssueSeverity41 = { +export const CollectionIssueSeverity47 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity41 = ClosedEnum< - typeof CollectionIssueSeverity41 +export type CollectionIssueSeverity47 = ClosedEnum< + typeof CollectionIssueSeverity47 >; -export type CollectionIssue41 = { +export type CollectionIssue47 = { message: string; - reason: Reason41; - severity: CollectionIssueSeverity41; + reason: Reason47; + severity: CollectionIssueSeverity47; source: string; }; -export const Health41 = { +export const Health47 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health41 = ClosedEnum; +export type Health47 = ClosedEnum; -export const Lifecycle41 = { +export const Lifecycle47 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -2020,62 +2298,66 @@ export const Lifecycle41 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle41 = ClosedEnum; +export type Lifecycle47 = ClosedEnum; -export type DataStatus41 = { - collectionIssues: Array; - health: Health41; - lifecycle: Lifecycle41; +export type DataStatus47 = { + collectionIssues: Array; + health: Health47; + lifecycle: Lifecycle47; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataLocal9 = { - isDirectory?: boolean | null | undefined; - modifiedAt?: Date | null | undefined; - path: string; - pathExists: boolean; - readonly?: boolean | null | undefined; - secretMetadataListed: boolean; - status: DataStatus41; - backend: "local"; +export type DataGcpVpc = { + cidrBlock?: string | null | undefined; + cloudNatName?: string | null | undefined; + firewallName?: string | null | undefined; + isByoVpc: boolean; + networkName?: string | null | undefined; + networkSelfLink?: string | null | undefined; + region?: string | null | undefined; + routerName?: string | null | undefined; + status: DataStatus47; + subnetworkName?: string | null | undefined; + subnetworkSelfLink?: string | null | undefined; + backend: "gcpVpc"; }; -export const Reason40 = { +export const Reason46 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason40 = ClosedEnum; +export type Reason46 = ClosedEnum; -export const CollectionIssueSeverity40 = { +export const CollectionIssueSeverity46 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity40 = ClosedEnum< - typeof CollectionIssueSeverity40 +export type CollectionIssueSeverity46 = ClosedEnum< + typeof CollectionIssueSeverity46 >; -export type CollectionIssue40 = { +export type CollectionIssue46 = { message: string; - reason: Reason40; - severity: CollectionIssueSeverity40; + reason: Reason46; + severity: CollectionIssueSeverity46; source: string; }; -export const Health40 = { +export const Health46 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health40 = ClosedEnum; +export type Health46 = ClosedEnum; -export const Lifecycle40 = { +export const Lifecycle46 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -2087,59 +2369,74 @@ export const Lifecycle40 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle40 = ClosedEnum; +export type Lifecycle46 = ClosedEnum; -export type DataStatus40 = { - collectionIssues: Array; - health: Health40; - lifecycle: Lifecycle40; +export type DataStatus46 = { + collectionIssues: Array; + health: Health46; + lifecycle: Lifecycle46; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataKubernetesSecret = { - namespace: string; - prefix: string; - secretMetadataListed: boolean; - status: DataStatus40; - backend: "kubernetesSecret"; +export type DataAwsVpc = { + availabilityZones: Array; + cidrBlock?: string | null | undefined; + internetGatewayId?: string | null | undefined; + isByoVpc: boolean; + natGatewayId?: string | null | undefined; + privateSubnetIds: Array; + publicSubnetIds: Array; + routeTableCount: number; + securityGroupId?: string | null | undefined; + status: DataStatus46; + vpcId?: string | null | undefined; + vpcState?: string | null | undefined; + backend: "awsVpc"; }; -export const Reason39 = { +export type DataUnion11 = DataAwsVpc | DataGcpVpc | DataAzureVnet; + +export type DataNetwork = { + data: DataAwsVpc | DataGcpVpc | DataAzureVnet; + resourceType: "network"; +}; + +export const Reason45 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason39 = ClosedEnum; +export type Reason45 = ClosedEnum; -export const CollectionIssueSeverity39 = { +export const CollectionIssueSeverity45 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity39 = ClosedEnum< - typeof CollectionIssueSeverity39 +export type CollectionIssueSeverity45 = ClosedEnum< + typeof CollectionIssueSeverity45 >; -export type CollectionIssue39 = { +export type CollectionIssue45 = { message: string; - reason: Reason39; - severity: CollectionIssueSeverity39; + reason: Reason45; + severity: CollectionIssueSeverity45; source: string; }; -export const Health39 = { +export const Health45 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health39 = ClosedEnum; +export type Health45 = ClosedEnum; -export const Lifecycle39 = { +export const Lifecycle45 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -2151,72 +2448,58 @@ export const Lifecycle39 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle39 = ClosedEnum; +export type Lifecycle45 = ClosedEnum; -export type DataStatus39 = { - collectionIssues: Array; - health: Health39; - lifecycle: Lifecycle39; +export type DataStatus45 = { + collectionIssues: Array; + health: Health45; + lifecycle: Lifecycle45; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAzureKeyVault = { - accessPolicyCount: number; - location?: string | null | undefined; - name: string; - privateEndpointConnectionCount: number; - provisioningState?: string | null | undefined; - publicNetworkAccess: string; - purgeProtectionEnabled?: boolean | null | undefined; - rbacAuthorizationEnabled: boolean; - resourceGroup?: string | null | undefined; - resourceId?: string | null | undefined; - secretMetadataListed: boolean; - skuFamily?: string | null | undefined; - skuName?: string | null | undefined; - softDeleteEnabled: boolean; - softDeleteRetentionDays: number; - status: DataStatus39; - vaultUri?: string | null | undefined; - backend: "azureKeyVault"; +export type DataLocal10 = { + configured: boolean; + identity: string; + status: DataStatus45; + backend: "local"; }; -export const Reason38 = { +export const Reason44 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason38 = ClosedEnum; +export type Reason44 = ClosedEnum; -export const CollectionIssueSeverity38 = { +export const CollectionIssueSeverity44 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity38 = ClosedEnum< - typeof CollectionIssueSeverity38 +export type CollectionIssueSeverity44 = ClosedEnum< + typeof CollectionIssueSeverity44 >; -export type CollectionIssue38 = { +export type CollectionIssue44 = { message: string; - reason: Reason38; - severity: CollectionIssueSeverity38; + reason: Reason44; + severity: CollectionIssueSeverity44; source: string; }; -export const Health38 = { +export const Health44 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health38 = ClosedEnum; +export type Health44 = ClosedEnum; -export const Lifecycle38 = { +export const Lifecycle44 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -2228,60 +2511,71 @@ export const Lifecycle38 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle38 = ClosedEnum; +export type Lifecycle44 = ClosedEnum; -export type DataStatus38 = { - collectionIssues: Array; - health: Health38; - lifecycle: Lifecycle38; +export type DataStatus44 = { + collectionIssues: Array; + health: Health44; + lifecycle: Lifecycle44; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataGcpSecretManager = { +export type DataAzureManagedIdentity1 = { + clientId?: string | null | undefined; + customRoleDefinitionCount: number; + customRoleDefinitionIds: Array; + isolationScope?: string | null | undefined; location: string; - prefix: string; - projectId: string; - secretMetadataListed: boolean; - status: DataStatus38; - backend: "gcpSecretManager"; + managedTagCount: number; + name: string; + principalId?: string | null | undefined; + resourceGroup: string; + resourceId: string; + roleAssignmentCount: number; + roleAssignmentIds: Array; + stackPermissionsApplied: boolean; + status: DataStatus44; + tenantId?: string | null | undefined; + type?: string | null | undefined; + backend: "azureManagedIdentity"; }; -export const Reason37 = { +export const Reason43 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason37 = ClosedEnum; +export type Reason43 = ClosedEnum; -export const CollectionIssueSeverity37 = { +export const CollectionIssueSeverity43 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity37 = ClosedEnum< - typeof CollectionIssueSeverity37 +export type CollectionIssueSeverity43 = ClosedEnum< + typeof CollectionIssueSeverity43 >; -export type CollectionIssue37 = { +export type CollectionIssue43 = { message: string; - reason: Reason37; - severity: CollectionIssueSeverity37; + reason: Reason43; + severity: CollectionIssueSeverity43; source: string; }; -export const Health37 = { +export const Health43 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health37 = ClosedEnum; +export type Health43 = ClosedEnum; -export const Lifecycle37 = { +export const Lifecycle43 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -2293,85 +2587,69 @@ export const Lifecycle37 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle37 = ClosedEnum; +export type Lifecycle43 = ClosedEnum; -export type DataStatus37 = { - collectionIssues: Array; - health: Health37; - lifecycle: Lifecycle37; +export type DataStatus43 = { + collectionIssues: Array; + health: Health43; + lifecycle: Lifecycle43; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAwsParameterStore = { - accountId: string; - hasMoreParameters?: boolean | null | undefined; - latestModifiedAt?: Date | null | undefined; - parameterMetadataSampled: boolean; - prefix: string; - region: string; - sampledAdvancedTierCount?: number | null | undefined; - sampledKmsKeyMetadataPresentCount?: number | null | undefined; - sampledParameterCount?: number | null | undefined; - sampledSecureStringCount?: number | null | undefined; - sampledStringCount?: number | null | undefined; - sampledStringListCount?: number | null | undefined; - status: DataStatus37; - backend: "awsParameterStore"; -}; - -export type DataUnion9 = - | DataAwsParameterStore - | DataGcpSecretManager - | DataAzureKeyVault - | DataKubernetesSecret - | DataLocal9; - -export type DataVault = { - data: - | DataAwsParameterStore - | DataGcpSecretManager - | DataAzureKeyVault - | DataKubernetesSecret - | DataLocal9; - resourceType: "vault"; +export type DataGcpServiceAccount1 = { + description?: string | null | undefined; + disabled?: boolean | null | undefined; + displayName?: string | null | undefined; + email: string; + etag?: string | null | undefined; + name?: string | null | undefined; + oauth2ClientId?: string | null | undefined; + projectBindingCount: number; + projectId?: string | null | undefined; + projectRoles: Array; + serviceAccountBindingCount: number; + serviceAccountRoles: Array; + status: DataStatus43; + uniqueId?: string | null | undefined; + backend: "gcpServiceAccount"; }; -export const Reason36 = { +export const Reason42 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason36 = ClosedEnum; +export type Reason42 = ClosedEnum; -export const CollectionIssueSeverity36 = { +export const CollectionIssueSeverity42 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity36 = ClosedEnum< - typeof CollectionIssueSeverity36 +export type CollectionIssueSeverity42 = ClosedEnum< + typeof CollectionIssueSeverity42 >; -export type CollectionIssue36 = { +export type CollectionIssue42 = { message: string; - reason: Reason36; - severity: CollectionIssueSeverity36; + reason: Reason42; + severity: CollectionIssueSeverity42; source: string; }; -export const Health36 = { +export const Health42 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health36 = ClosedEnum; +export type Health42 = ClosedEnum; -export const Lifecycle36 = { +export const Lifecycle42 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -2383,60 +2661,90 @@ export const Lifecycle36 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle36 = ClosedEnum; +export type Lifecycle42 = ClosedEnum; -export type DataStatus36 = { - collectionIssues: Array; - health: Health36; - lifecycle: Lifecycle36; +export type DataStatus42 = { + collectionIssues: Array; + health: Health42; + lifecycle: Lifecycle42; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataLocal8 = { - name: string; - port?: number | null | undefined; - processRunning: boolean; - status: DataStatus36; - version: string; - backend: "local"; +export type DataAwsIamRole1 = { + assumeRolePolicyPresent: boolean; + attachedPolicyCount: number; + attachedPolicyNames: Array; + createDate: string; + description?: string | null | undefined; + inlinePolicyCount: number; + inlinePolicyNames: Array; + lastUsedDate?: string | null | undefined; + lastUsedRegion?: string | null | undefined; + managedTagCount: number; + maxSessionDuration?: number | null | undefined; + path: string; + permissionsBoundaryArn?: string | null | undefined; + permissionsBoundaryType?: string | null | undefined; + roleArn: string; + roleId: string; + roleName: string; + stackPermissionsApplied: boolean; + status: DataStatus42; + tagCount: number; + backend: "awsIamRole"; }; -export const Reason35 = { +export type DataUnion10 = + | DataAwsIamRole1 + | DataGcpServiceAccount1 + | DataAzureManagedIdentity1 + | DataLocal10; + +export type DataServiceAccount = { + data: + | DataAwsIamRole1 + | DataGcpServiceAccount1 + | DataAzureManagedIdentity1 + | DataLocal10; + resourceType: "service-account"; +}; + +export const Reason41 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason35 = ClosedEnum; +export type Reason41 = ClosedEnum; -export const CollectionIssueSeverity35 = { +export const CollectionIssueSeverity41 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity35 = ClosedEnum< - typeof CollectionIssueSeverity35 +export type CollectionIssueSeverity41 = ClosedEnum< + typeof CollectionIssueSeverity41 >; -export type CollectionIssue35 = { +export type CollectionIssue41 = { message: string; - reason: Reason35; - severity: CollectionIssueSeverity35; + reason: Reason41; + severity: CollectionIssueSeverity41; source: string; }; -export const Health35 = { +export const Health41 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health35 = ClosedEnum; +export type Health41 = ClosedEnum; -export const Lifecycle35 = { +export const Lifecycle41 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -2448,59 +2756,62 @@ export const Lifecycle35 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle35 = ClosedEnum; +export type Lifecycle41 = ClosedEnum; -export type DataStatus35 = { - collectionIssues: Array; - health: Health35; - lifecycle: Lifecycle35; +export type DataStatus41 = { + collectionIssues: Array; + health: Health41; + lifecycle: Lifecycle41; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataFlexibleServer = { - serverName: string; - state?: string | null | undefined; - status: DataStatus35; - version?: string | null | undefined; - backend: "flexibleServer"; +export type DataLocal9 = { + isDirectory?: boolean | null | undefined; + modifiedAt?: Date | null | undefined; + path: string; + pathExists: boolean; + readonly?: boolean | null | undefined; + secretMetadataListed: boolean; + status: DataStatus41; + backend: "local"; }; -export const Reason34 = { +export const Reason40 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason34 = ClosedEnum; +export type Reason40 = ClosedEnum; -export const CollectionIssueSeverity34 = { +export const CollectionIssueSeverity40 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity34 = ClosedEnum< - typeof CollectionIssueSeverity34 +export type CollectionIssueSeverity40 = ClosedEnum< + typeof CollectionIssueSeverity40 >; -export type CollectionIssue34 = { +export type CollectionIssue40 = { message: string; - reason: Reason34; - severity: CollectionIssueSeverity34; + reason: Reason40; + severity: CollectionIssueSeverity40; source: string; }; -export const Health34 = { +export const Health40 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health34 = ClosedEnum; +export type Health40 = ClosedEnum; -export const Lifecycle34 = { +export const Lifecycle40 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -2512,59 +2823,59 @@ export const Lifecycle34 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle34 = ClosedEnum; +export type Lifecycle40 = ClosedEnum; -export type DataStatus34 = { - collectionIssues: Array; - health: Health34; - lifecycle: Lifecycle34; +export type DataStatus40 = { + collectionIssues: Array; + health: Health40; + lifecycle: Lifecycle40; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataCloudSQL = { - databaseVersion?: string | null | undefined; - instanceName: string; - state?: string | null | undefined; - status: DataStatus34; - backend: "cloudSql"; +export type DataKubernetesSecret = { + namespace: string; + prefix: string; + secretMetadataListed: boolean; + status: DataStatus40; + backend: "kubernetesSecret"; }; -export const Reason33 = { +export const Reason39 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason33 = ClosedEnum; +export type Reason39 = ClosedEnum; -export const CollectionIssueSeverity33 = { +export const CollectionIssueSeverity39 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity33 = ClosedEnum< - typeof CollectionIssueSeverity33 +export type CollectionIssueSeverity39 = ClosedEnum< + typeof CollectionIssueSeverity39 >; -export type CollectionIssue33 = { +export type CollectionIssue39 = { message: string; - reason: Reason33; - severity: CollectionIssueSeverity33; + reason: Reason39; + severity: CollectionIssueSeverity39; source: string; }; -export const Health33 = { +export const Health39 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health33 = ClosedEnum; +export type Health39 = ClosedEnum; -export const Lifecycle33 = { +export const Lifecycle39 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -2576,81 +2887,72 @@ export const Lifecycle33 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle33 = ClosedEnum; +export type Lifecycle39 = ClosedEnum; -export type DataStatus33 = { - collectionIssues: Array; - health: Health33; - lifecycle: Lifecycle33; +export type DataStatus39 = { + collectionIssues: Array; + health: Health39; + lifecycle: Lifecycle39; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAurora = { - clusterIdentifier: string; - endpoint?: string | null | undefined; - engineVersion?: string | null | undefined; - /** - * True when a `minCapacity: 0` instance has not reached 0 ACU over the observation - * - * @remarks - * window — it is silently paying always-on prices (auto-pause verification). - */ - neverPauses: boolean; - /** - * Latest sampled `ServerlessDatabaseCapacity` (ACU). - */ - serverlessCapacity?: number | null | undefined; - status: DataStatus33; - backend: "aurora"; -}; - -export type DataUnion8 = - | DataAurora - | DataCloudSQL - | DataFlexibleServer - | DataLocal8; - -export type DataPostgres = { - data: DataAurora | DataCloudSQL | DataFlexibleServer | DataLocal8; - resourceType: "postgres"; +export type DataAzureKeyVault1 = { + accessPolicyCount: number; + location?: string | null | undefined; + name: string; + privateEndpointConnectionCount: number; + provisioningState?: string | null | undefined; + publicNetworkAccess: string; + purgeProtectionEnabled?: boolean | null | undefined; + rbacAuthorizationEnabled: boolean; + resourceGroup?: string | null | undefined; + resourceId?: string | null | undefined; + secretMetadataListed: boolean; + skuFamily?: string | null | undefined; + skuName?: string | null | undefined; + softDeleteEnabled: boolean; + softDeleteRetentionDays: number; + status: DataStatus39; + vaultUri?: string | null | undefined; + backend: "azureKeyVault"; }; -export const Reason32 = { +export const Reason38 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason32 = ClosedEnum; +export type Reason38 = ClosedEnum; -export const CollectionIssueSeverity32 = { +export const CollectionIssueSeverity38 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity32 = ClosedEnum< - typeof CollectionIssueSeverity32 +export type CollectionIssueSeverity38 = ClosedEnum< + typeof CollectionIssueSeverity38 >; -export type CollectionIssue32 = { +export type CollectionIssue38 = { message: string; - reason: Reason32; - severity: CollectionIssueSeverity32; + reason: Reason38; + severity: CollectionIssueSeverity38; source: string; }; -export const Health32 = { +export const Health38 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health32 = ClosedEnum; +export type Health38 = ClosedEnum; -export const Lifecycle32 = { +export const Lifecycle38 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -2662,61 +2964,60 @@ export const Lifecycle32 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle32 = ClosedEnum; +export type Lifecycle38 = ClosedEnum; -export type DataStatus32 = { - collectionIssues: Array; - health: Health32; - lifecycle: Lifecycle32; - message?: string | null | undefined; - partial: boolean; - stale: boolean; +export type DataStatus38 = { + collectionIssues: Array; + health: Health38; + lifecycle: Lifecycle38; + message?: string | null | undefined; + partial: boolean; + stale: boolean; }; -export type DataLocal7 = { - cloudMetadataSupported: boolean; - isDirectory?: boolean | null | undefined; - name: string; - path: string; - pathExists: boolean; - status: DataStatus32; - backend: "local"; +export type DataGcpSecretManager = { + location: string; + prefix: string; + projectId: string; + secretMetadataListed: boolean; + status: DataStatus38; + backend: "gcpSecretManager"; }; -export const Reason31 = { +export const Reason37 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason31 = ClosedEnum; +export type Reason37 = ClosedEnum; -export const CollectionIssueSeverity31 = { +export const CollectionIssueSeverity37 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity31 = ClosedEnum< - typeof CollectionIssueSeverity31 +export type CollectionIssueSeverity37 = ClosedEnum< + typeof CollectionIssueSeverity37 >; -export type CollectionIssue31 = { +export type CollectionIssue37 = { message: string; - reason: Reason31; - severity: CollectionIssueSeverity31; + reason: Reason37; + severity: CollectionIssueSeverity37; source: string; }; -export const Health31 = { +export const Health37 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health31 = ClosedEnum; +export type Health37 = ClosedEnum; -export const Lifecycle31 = { +export const Lifecycle37 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -2728,67 +3029,85 @@ export const Lifecycle31 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle31 = ClosedEnum; +export type Lifecycle37 = ClosedEnum; -export type DataStatus31 = { - collectionIssues: Array; - health: Health31; - lifecycle: Lifecycle31; +export type DataStatus37 = { + collectionIssues: Array; + health: Health37; + lifecycle: Lifecycle37; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAzureTable = { - endpoint?: string | null | undefined; - resourceGroup?: string | null | undefined; - signedIdentifierCount?: number | null | undefined; - status: DataStatus31; - storageAccountKind?: string | null | undefined; - storageAccountLocation?: string | null | undefined; - storageAccountName: string; - storageAccountPrimaryStatus?: string | null | undefined; - storageAccountProvisioningState?: string | null | undefined; - storageAccountResourceId?: string | null | undefined; - tableExists: boolean; - tableName: string; - backend: "azureTable"; +export type DataAwsParameterStore = { + accountId: string; + hasMoreParameters?: boolean | null | undefined; + latestModifiedAt?: Date | null | undefined; + parameterMetadataSampled: boolean; + prefix: string; + region: string; + sampledAdvancedTierCount?: number | null | undefined; + sampledKmsKeyMetadataPresentCount?: number | null | undefined; + sampledParameterCount?: number | null | undefined; + sampledSecureStringCount?: number | null | undefined; + sampledStringCount?: number | null | undefined; + sampledStringListCount?: number | null | undefined; + status: DataStatus37; + backend: "awsParameterStore"; }; -export const Reason30 = { +export type DataUnion9 = + | DataAwsParameterStore + | DataGcpSecretManager + | DataAzureKeyVault1 + | DataKubernetesSecret + | DataLocal9; + +export type DataVault = { + data: + | DataAwsParameterStore + | DataGcpSecretManager + | DataAzureKeyVault1 + | DataKubernetesSecret + | DataLocal9; + resourceType: "vault"; +}; + +export const Reason36 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason30 = ClosedEnum; +export type Reason36 = ClosedEnum; -export const CollectionIssueSeverity30 = { +export const CollectionIssueSeverity36 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity30 = ClosedEnum< - typeof CollectionIssueSeverity30 +export type CollectionIssueSeverity36 = ClosedEnum< + typeof CollectionIssueSeverity36 >; -export type CollectionIssue30 = { +export type CollectionIssue36 = { message: string; - reason: Reason30; - severity: CollectionIssueSeverity30; + reason: Reason36; + severity: CollectionIssueSeverity36; source: string; }; -export const Health30 = { +export const Health36 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health30 = ClosedEnum; +export type Health36 = ClosedEnum; -export const Lifecycle30 = { +export const Lifecycle36 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -2800,78 +3119,60 @@ export const Lifecycle30 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle30 = ClosedEnum; +export type Lifecycle36 = ClosedEnum; -export type DataStatus30 = { - collectionIssues: Array; - health: Health30; - lifecycle: Lifecycle30; +export type DataStatus36 = { + collectionIssues: Array; + health: Health36; + lifecycle: Lifecycle36; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataGcpFirestore = { - appEngineIntegrationMode?: string | null | undefined; - cmekEnabled: boolean; - concurrencyMode?: string | null | undefined; - createTime?: string | null | undefined; - databaseEdition?: string | null | undefined; - databaseName: string; - databaseType?: string | null | undefined; - deleteProtectionState?: string | null | undefined; - deleteTime?: string | null | undefined; - earliestVersionTime?: string | null | undefined; - endpoint?: string | null | undefined; - locationId?: string | null | undefined; - pointInTimeRecoveryEnablement?: string | null | undefined; - projectId?: string | null | undefined; - sourceInfoPresent: boolean; - status: DataStatus30; - updateTime?: string | null | undefined; - versionRetentionPeriod?: string | null | undefined; - backend: "gcpFirestore"; -}; - -export type KeySchema = { - attributeName: string; - keyType: string; +export type DataLocal8 = { + name: string; + port?: number | null | undefined; + processRunning: boolean; + status: DataStatus36; + version: string; + backend: "local"; }; -export const Reason29 = { +export const Reason35 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason29 = ClosedEnum; +export type Reason35 = ClosedEnum; -export const CollectionIssueSeverity29 = { +export const CollectionIssueSeverity35 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity29 = ClosedEnum< - typeof CollectionIssueSeverity29 +export type CollectionIssueSeverity35 = ClosedEnum< + typeof CollectionIssueSeverity35 >; -export type CollectionIssue29 = { +export type CollectionIssue35 = { message: string; - reason: Reason29; - severity: CollectionIssueSeverity29; + reason: Reason35; + severity: CollectionIssueSeverity35; source: string; }; -export const Health29 = { +export const Health35 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health29 = ClosedEnum; +export type Health35 = ClosedEnum; -export const Lifecycle29 = { +export const Lifecycle35 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -2883,87 +3184,59 @@ export const Lifecycle29 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle29 = ClosedEnum; +export type Lifecycle35 = ClosedEnum; -export type DataStatus29 = { - collectionIssues: Array; - health: Health29; - lifecycle: Lifecycle29; +export type DataStatus35 = { + collectionIssues: Array; + health: Health35; + lifecycle: Lifecycle35; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAwsDynamoDb = { - billingMode?: string | null | undefined; - deletionProtectionEnabled?: boolean | null | undefined; - globalSecondaryIndexCount?: number | null | undefined; - itemCount?: number | null | undefined; - keySchema: Array; - localSecondaryIndexCount?: number | null | undefined; - name: string; - region?: string | null | undefined; - replicaCount?: number | null | undefined; - restoreInProgress?: boolean | null | undefined; - sseStatus?: string | null | undefined; - sseType?: string | null | undefined; - status: DataStatus29; - streamEnabled?: boolean | null | undefined; - streamViewType?: string | null | undefined; - tableArn?: string | null | undefined; - tableClass?: string | null | undefined; - tableSizeBytes?: number | null | undefined; - tableStatus?: string | null | undefined; - ttlAttributeName?: string | null | undefined; - ttlStatus?: string | null | undefined; - backend: "awsDynamoDb"; -}; - -export type DataUnion7 = - | DataAwsDynamoDb - | DataGcpFirestore - | DataAzureTable - | DataLocal7; - -export type DataKv = { - data: DataAwsDynamoDb | DataGcpFirestore | DataAzureTable | DataLocal7; - resourceType: "kv"; +export type DataFlexibleServer = { + serverName: string; + state?: string | null | undefined; + status: DataStatus35; + version?: string | null | undefined; + backend: "flexibleServer"; }; -export const Reason28 = { +export const Reason34 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason28 = ClosedEnum; +export type Reason34 = ClosedEnum; -export const CollectionIssueSeverity28 = { +export const CollectionIssueSeverity34 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity28 = ClosedEnum< - typeof CollectionIssueSeverity28 +export type CollectionIssueSeverity34 = ClosedEnum< + typeof CollectionIssueSeverity34 >; -export type CollectionIssue28 = { +export type CollectionIssue34 = { message: string; - reason: Reason28; - severity: CollectionIssueSeverity28; + reason: Reason34; + severity: CollectionIssueSeverity34; source: string; }; -export const Health28 = { +export const Health34 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health28 = ClosedEnum; +export type Health34 = ClosedEnum; -export const Lifecycle28 = { +export const Lifecycle34 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -2975,59 +3248,59 @@ export const Lifecycle28 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle28 = ClosedEnum; +export type Lifecycle34 = ClosedEnum; -export type DataStatus28 = { - collectionIssues: Array; - health: Health28; - lifecycle: Lifecycle28; +export type DataStatus34 = { + collectionIssues: Array; + health: Health34; + lifecycle: Lifecycle34; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataLocal6 = { - name: string; - path?: string | null | undefined; - serviceStatus?: string | null | undefined; - status: DataStatus28; - backend: "local"; +export type DataCloudSQL = { + databaseVersion?: string | null | undefined; + instanceName: string; + state?: string | null | undefined; + status: DataStatus34; + backend: "cloudSql"; }; -export const Reason27 = { +export const Reason33 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason27 = ClosedEnum; +export type Reason33 = ClosedEnum; -export const CollectionIssueSeverity27 = { +export const CollectionIssueSeverity33 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity27 = ClosedEnum< - typeof CollectionIssueSeverity27 +export type CollectionIssueSeverity33 = ClosedEnum< + typeof CollectionIssueSeverity33 >; -export type CollectionIssue27 = { +export type CollectionIssue33 = { message: string; - reason: Reason27; - severity: CollectionIssueSeverity27; + reason: Reason33; + severity: CollectionIssueSeverity33; source: string; }; -export const Health27 = { +export const Health33 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health27 = ClosedEnum; +export type Health33 = ClosedEnum; -export const Lifecycle27 = { +export const Lifecycle33 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -3039,87 +3312,81 @@ export const Lifecycle27 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle27 = ClosedEnum; +export type Lifecycle33 = ClosedEnum; -export type DataStatus27 = { - collectionIssues: Array; - health: Health27; - lifecycle: Lifecycle27; +export type DataStatus33 = { + collectionIssues: Array; + health: Health33; + lifecycle: Lifecycle33; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAzureServiceBus = { - accessedAt?: string | null | undefined; - activeMessageCount?: number | null | undefined; - autoDeleteOnIdle?: string | null | undefined; - createdAt?: string | null | undefined; - deadLetterMessageCount?: number | null | undefined; - deadLetteringOnMessageExpiration?: boolean | null | undefined; - defaultMessageTimeToLive?: string | null | undefined; - duplicateDetectionHistoryTimeWindow?: string | null | undefined; - enableBatchedOperations?: boolean | null | undefined; - enableExpress?: boolean | null | undefined; - enablePartitioning?: boolean | null | undefined; +export type DataAurora = { + clusterIdentifier: string; endpoint?: string | null | undefined; - forwardDeadLetteredMessagesTo?: string | null | undefined; - forwardTo?: string | null | undefined; - lockDuration?: string | null | undefined; - maxDeliveryCount?: number | null | undefined; - maxMessageSizeInKilobytes?: number | null | undefined; - maxSizeInMegabytes?: number | null | undefined; - messageCount?: number | null | undefined; - name: string; - namespaceName: string; - queueStatus?: string | null | undefined; - requiresDuplicateDetection?: boolean | null | undefined; - requiresSession?: boolean | null | undefined; - resourceGroup?: string | null | undefined; - resourceId?: string | null | undefined; - scheduledMessageCount?: number | null | undefined; - sizeInBytes?: number | null | undefined; - status: DataStatus27; - transferDeadLetterMessageCount?: number | null | undefined; - transferMessageCount?: number | null | undefined; - updatedAt?: string | null | undefined; - backend: "azureServiceBus"; + engineVersion?: string | null | undefined; + /** + * True when a `minCapacity: 0` instance has not reached 0 ACU over the observation + * + * @remarks + * window — it is silently paying always-on prices (auto-pause verification). + */ + neverPauses: boolean; + /** + * Latest sampled `ServerlessDatabaseCapacity` (ACU). + */ + serverlessCapacity?: number | null | undefined; + status: DataStatus33; + backend: "aurora"; }; -export const Reason26 = { +export type DataUnion8 = + | DataAurora + | DataCloudSQL + | DataFlexibleServer + | DataLocal8; + +export type DataPostgres = { + data: DataAurora | DataCloudSQL | DataFlexibleServer | DataLocal8; + resourceType: "postgres"; +}; + +export const Reason32 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason26 = ClosedEnum; +export type Reason32 = ClosedEnum; -export const CollectionIssueSeverity26 = { +export const CollectionIssueSeverity32 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity26 = ClosedEnum< - typeof CollectionIssueSeverity26 +export type CollectionIssueSeverity32 = ClosedEnum< + typeof CollectionIssueSeverity32 >; -export type CollectionIssue26 = { +export type CollectionIssue32 = { message: string; - reason: Reason26; - severity: CollectionIssueSeverity26; + reason: Reason32; + severity: CollectionIssueSeverity32; source: string; }; -export const Health26 = { +export const Health32 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health26 = ClosedEnum; +export type Health32 = ClosedEnum; -export const Lifecycle26 = { +export const Lifecycle32 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -3131,89 +3398,61 @@ export const Lifecycle26 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle26 = ClosedEnum; +export type Lifecycle32 = ClosedEnum; -export type DataStatus26 = { - collectionIssues: Array; - health: Health26; - lifecycle: Lifecycle26; +export type DataStatus32 = { + collectionIssues: Array; + health: Health32; + lifecycle: Lifecycle32; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataGcpPubSub = { - endpoint?: string | null | undefined; - kmsKeyName?: string | null | undefined; - messageStorageAllowedPersistenceRegions: Array; - messageStorageEnforceInTransit?: boolean | null | undefined; - projectId?: string | null | undefined; - schemaEncoding?: string | null | undefined; - schemaFirstRevisionId?: string | null | undefined; - schemaLastRevisionId?: string | null | undefined; - schemaName?: string | null | undefined; - status: DataStatus26; - subscriptionAckDeadlineSeconds?: number | null | undefined; - subscriptionDeadLetterMaxDeliveryAttempts?: number | null | undefined; - subscriptionDeadLetterTopic?: string | null | undefined; - subscriptionDetached?: boolean | null | undefined; - subscriptionEnableMessageOrdering?: boolean | null | undefined; - subscriptionFilter?: string | null | undefined; - subscriptionFullName?: string | null | undefined; - subscriptionLabels: { [k: string]: string }; - subscriptionMessageRetentionDuration?: string | null | undefined; - subscriptionName?: string | null | undefined; - subscriptionPushAttributes: { [k: string]: string }; - subscriptionPushConfigPresent?: boolean | null | undefined; - subscriptionPushEndpoint?: string | null | undefined; - subscriptionPushNoWrapperWriteMetadata?: boolean | null | undefined; - subscriptionPushOidcAudience?: string | null | undefined; - subscriptionPushOidcServiceAccountEmail?: string | null | undefined; - subscriptionPushPubsubWrapperWriteMetadata?: boolean | null | undefined; - subscriptionRetainAckedMessages?: boolean | null | undefined; - subscriptionState?: string | null | undefined; - topicFullName?: string | null | undefined; - topicLabels: { [k: string]: string }; - topicMessageRetentionDuration?: string | null | undefined; - topicName: string; - topicState?: string | null | undefined; - backend: "gcpPubSub"; +export type DataLocal7 = { + cloudMetadataSupported: boolean; + isDirectory?: boolean | null | undefined; + name: string; + path: string; + pathExists: boolean; + status: DataStatus32; + backend: "local"; }; -export const Reason25 = { +export const Reason31 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason25 = ClosedEnum; +export type Reason31 = ClosedEnum; -export const CollectionIssueSeverity25 = { +export const CollectionIssueSeverity31 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity25 = ClosedEnum< - typeof CollectionIssueSeverity25 +export type CollectionIssueSeverity31 = ClosedEnum< + typeof CollectionIssueSeverity31 >; -export type CollectionIssue25 = { +export type CollectionIssue31 = { message: string; - reason: Reason25; - severity: CollectionIssueSeverity25; + reason: Reason31; + severity: CollectionIssueSeverity31; source: string; }; -export const Health25 = { +export const Health31 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health25 = ClosedEnum; +export type Health31 = ClosedEnum; -export const Lifecycle25 = { +export const Lifecycle31 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -3225,310 +3464,67 @@ export const Lifecycle25 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle25 = ClosedEnum; +export type Lifecycle31 = ClosedEnum; -export type DataStatus25 = { - collectionIssues: Array; - health: Health25; - lifecycle: Lifecycle25; +export type DataStatus31 = { + collectionIssues: Array; + health: Health31; + lifecycle: Lifecycle31; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAwsSqs = { - approximateCounts: boolean; - approximateDelayedMessages?: number | null | undefined; - approximateInFlightMessages?: number | null | undefined; - approximateVisibleMessages?: number | null | undefined; - contentBasedDeduplication?: boolean | null | undefined; - deduplicationScope?: string | null | undefined; - delaySeconds?: number | null | undefined; - fifoQueue?: boolean | null | undefined; - fifoThroughputLimit?: string | null | undefined; - kmsDataKeyReusePeriodSeconds?: number | null | undefined; - kmsMasterKeyId?: string | null | undefined; - maximumMessageSize?: number | null | undefined; - messageRetentionPeriodSeconds?: number | null | undefined; - name: string; - queueArn?: string | null | undefined; - queueUrl?: string | null | undefined; - receiveMessageWaitTimeSeconds?: number | null | undefined; - redriveAllowPolicy?: string | null | undefined; - redrivePolicy?: string | null | undefined; - region?: string | null | undefined; - sqsManagedSseEnabled?: boolean | null | undefined; - sseEnabled?: boolean | null | undefined; - status: DataStatus25; - visibilityTimeoutSeconds?: number | null | undefined; - backend: "awsSqs"; -}; - -export type DataUnion6 = - | DataAwsSqs - | DataGcpPubSub - | DataAzureServiceBus - | DataLocal6; - -export type DataQueue = { - data: DataAwsSqs | DataGcpPubSub | DataAzureServiceBus | DataLocal6; - resourceType: "queue"; -}; - -export const CpuUnit11 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type CpuUnit11 = ClosedEnum; - -export type Cpu11 = { - unit: CpuUnit11; - value: number; -}; - -export type CpuUnion11 = Cpu11 | any; - -export type InvolvedObject9 = { - apiVersion?: string | null | undefined; - fieldPath?: string | null | undefined; - kind?: string | null | undefined; - name?: string | null | undefined; - namespace?: string | null | undefined; - resourceVersion?: string | null | undefined; - uid?: string | null | undefined; -}; - -export type InvolvedObjectUnion9 = InvolvedObject9 | any; - -export type GetResourceDeploymentDetailSource9 = { - component?: string | null | undefined; - host?: string | null | undefined; -}; - -export type SourceUnion9 = GetResourceDeploymentDetailSource9 | any; - -export type Event12 = { - count?: number | null | undefined; - eventTime?: Date | null | undefined; - firstTimestamp?: Date | null | undefined; - involvedObject?: InvolvedObject9 | any | null | undefined; - lastTimestamp?: Date | null | undefined; - message: string; - raw?: any | null | undefined; - reason: string; - source?: GetResourceDeploymentDetailSource9 | any | null | undefined; - type?: string | null | undefined; -}; - -export const MemoryUnit11 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type MemoryUnit11 = ClosedEnum; - -export type Memory11 = { - unit: MemoryUnit11; - value: number; -}; - -export type MemoryUnion11 = Memory11 | any; - -export type NodeCounts = { - current?: number | null | undefined; - desired?: number | null | undefined; - ready?: number | null | undefined; -}; - -export const CpuAllocatableUnit = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type CpuAllocatableUnit = ClosedEnum; - -export type CpuAllocatable = { - unit: CpuAllocatableUnit; - value: number; -}; - -export type AllocatableCpuUnion = CpuAllocatable | any; - -export const MemoryAllocatableUnit = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type MemoryAllocatableUnit = ClosedEnum; - -export type MemoryAllocatable = { - unit: MemoryAllocatableUnit; - value: number; -}; - -export type AllocatableMemoryUnion = MemoryAllocatable | any; - -export type Allocatable = { - cpu?: CpuAllocatable | any | null | undefined; - memory?: MemoryAllocatable | any | null | undefined; - pods?: number | null | undefined; -}; - -export const CpuCapacityUnit = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type CpuCapacityUnit = ClosedEnum; - -export type CpuCapacity = { - unit: CpuCapacityUnit; - value: number; -}; - -export type CapacityCpuUnion = CpuCapacity | any; - -export const MemoryCapacityUnit = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type MemoryCapacityUnit = ClosedEnum; - -export type MemoryCapacity = { - unit: MemoryCapacityUnit; - value: number; -}; - -export type CapacityMemoryUnion = MemoryCapacity | any; - -export type Capacity = { - cpu?: CpuCapacity | any | null | undefined; - memory?: MemoryCapacity | any | null | undefined; - pods?: number | null | undefined; -}; - -export type NodeStatusCondition = { - message?: string | null | undefined; - reason?: string | null | undefined; - status: string; - type: string; -}; - -export const UsageCpuUnit = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type UsageCpuUnit = ClosedEnum; - -export type UsageCpu = { - unit: UsageCpuUnit; - value: number; -}; - -export type UsageCpuUnion = UsageCpu | any; - -export const UsageMemoryUnit = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type UsageMemoryUnit = ClosedEnum; - -export type UsageMemory = { - unit: UsageMemoryUnit; - value: number; -}; - -export type UsageMemoryUnion = UsageMemory | any; - -export type Usage = { - cpu?: UsageCpu | any | null | undefined; - memory?: UsageMemory | any | null | undefined; -}; - -export type UsageUnion = Usage | any; - -export type NodeStatus = { - allocatable: Allocatable; - capacity: Capacity; - conditions?: Array | undefined; - containerRuntimeVersion?: string | null | undefined; - kubeletVersion?: string | null | undefined; - labels: { [k: string]: string }; - name: string; - ready: boolean; - roles: Array; - uid?: string | null | undefined; - usage?: Usage | any | null | undefined; -}; - -export type PodCounts = { - current?: number | null | undefined; - desired?: number | null | undefined; - ready?: number | null | undefined; +export type DataAzureTable = { + endpoint?: string | null | undefined; + resourceGroup?: string | null | undefined; + signedIdentifierCount?: number | null | undefined; + status: DataStatus31; + storageAccountKind?: string | null | undefined; + storageAccountLocation?: string | null | undefined; + storageAccountName: string; + storageAccountPrimaryStatus?: string | null | undefined; + storageAccountProvisioningState?: string | null | undefined; + storageAccountResourceId?: string | null | undefined; + tableExists: boolean; + tableName: string; + backend: "azureTable"; }; -export const Reason24 = { +export const Reason30 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason24 = ClosedEnum; +export type Reason30 = ClosedEnum; -export const CollectionIssueSeverity24 = { +export const CollectionIssueSeverity30 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity24 = ClosedEnum< - typeof CollectionIssueSeverity24 +export type CollectionIssueSeverity30 = ClosedEnum< + typeof CollectionIssueSeverity30 >; -export type CollectionIssue24 = { +export type CollectionIssue30 = { message: string; - reason: Reason24; - severity: CollectionIssueSeverity24; + reason: Reason30; + severity: CollectionIssueSeverity30; source: string; }; -export const Health24 = { +export const Health30 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health24 = ClosedEnum; +export type Health30 = ClosedEnum; -export const Lifecycle24 = { +export const Lifecycle30 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -3540,76 +3536,78 @@ export const Lifecycle24 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle24 = ClosedEnum; +export type Lifecycle30 = ClosedEnum; -export type DataStatus24 = { - collectionIssues: Array; - health: Health24; - lifecycle: Lifecycle24; +export type DataStatus30 = { + collectionIssues: Array; + health: Health30; + lifecycle: Lifecycle30; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type Data1 = { - cpu?: Cpu11 | any | null | undefined; - events: Array; - memory?: Memory11 | any | null | undefined; - name: string; - namespace?: string | null | undefined; - nodeCounts: NodeCounts; - nodeStatuses?: Array | undefined; - podCounts: PodCounts; - region?: string | null | undefined; - status: DataStatus24; - version?: string | null | undefined; -}; - -export type DataKubernetesCluster = { - data: Data1; - resourceType: "kubernetes-cluster"; +export type DataGcpFirestore = { + appEngineIntegrationMode?: string | null | undefined; + cmekEnabled: boolean; + concurrencyMode?: string | null | undefined; + createTime?: string | null | undefined; + databaseEdition?: string | null | undefined; + databaseName: string; + databaseType?: string | null | undefined; + deleteProtectionState?: string | null | undefined; + deleteTime?: string | null | undefined; + earliestVersionTime?: string | null | undefined; + endpoint?: string | null | undefined; + locationId?: string | null | undefined; + pointInTimeRecoveryEnablement?: string | null | undefined; + projectId?: string | null | undefined; + sourceInfoPresent: boolean; + status: DataStatus30; + updateTime?: string | null | undefined; + versionRetentionPeriod?: string | null | undefined; + backend: "gcpFirestore"; }; -export type Nodes5 = { - current?: number | null | undefined; - desired?: number | null | undefined; - ready?: number | null | undefined; +export type KeySchema = { + attributeName: string; + keyType: string; }; -export const Reason23 = { +export const Reason29 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason23 = ClosedEnum; +export type Reason29 = ClosedEnum; -export const CollectionIssueSeverity23 = { +export const CollectionIssueSeverity29 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity23 = ClosedEnum< - typeof CollectionIssueSeverity23 +export type CollectionIssueSeverity29 = ClosedEnum< + typeof CollectionIssueSeverity29 >; -export type CollectionIssue23 = { +export type CollectionIssue29 = { message: string; - reason: Reason23; - severity: CollectionIssueSeverity23; + reason: Reason29; + severity: CollectionIssueSeverity29; source: string; }; -export const Health23 = { +export const Health29 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health23 = ClosedEnum; +export type Health29 = ClosedEnum; -export const Lifecycle23 = { +export const Lifecycle29 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -3621,220 +3619,243 @@ export const Lifecycle23 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle23 = ClosedEnum; +export type Lifecycle29 = ClosedEnum; -export type DataStatus23 = { - collectionIssues: Array; - health: Health23; - lifecycle: Lifecycle23; +export type DataStatus29 = { + collectionIssues: Array; + health: Health29; + lifecycle: Lifecycle29; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataLocal5 = { - dockerApiVersion?: string | null | undefined; - dockerArch?: string | null | undefined; - dockerAvailable: boolean; - dockerOs?: string | null | undefined; - dockerVersion?: string | null | undefined; - hostIdentifier?: string | null | undefined; +export type DataAwsDynamoDb = { + billingMode?: string | null | undefined; + deletionProtectionEnabled?: boolean | null | undefined; + globalSecondaryIndexCount?: number | null | undefined; + itemCount?: number | null | undefined; + keySchema: Array; + localSecondaryIndexCount?: number | null | undefined; name: string; - networkAvailable: boolean; - networkName?: string | null | undefined; - nodes: Nodes5; - runningContainers?: number | null | undefined; - status: DataStatus23; - trackedContainers?: number | null | undefined; - backend: "local"; + region?: string | null | undefined; + replicaCount?: number | null | undefined; + restoreInProgress?: boolean | null | undefined; + sseStatus?: string | null | undefined; + sseType?: string | null | undefined; + status: DataStatus29; + streamEnabled?: boolean | null | undefined; + streamViewType?: string | null | undefined; + tableArn?: string | null | undefined; + tableClass?: string | null | undefined; + tableSizeBytes?: number | null | undefined; + tableStatus?: string | null | undefined; + ttlAttributeName?: string | null | undefined; + ttlStatus?: string | null | undefined; + backend: "awsDynamoDb"; }; -export const Category4 = { - Quota: "quota", - Capacity: "capacity", - Allocation: "allocation", - Other: "other", -} as const; -export type Category4 = ClosedEnum; +export type DataUnion7 = + | DataAwsDynamoDb + | DataGcpFirestore + | DataAzureTable + | DataLocal7; -export type CapacityBlocker4 = { - category: Category4; - message: string; - observedAt: Date; - providerCode?: string | null | undefined; - providerReference?: string | null | undefined; +export type DataKv = { + data: DataAwsDynamoDb | DataGcpFirestore | DataAzureTable | DataLocal7; + resourceType: "kv"; }; -export type CapacityBlockerUnion4 = CapacityBlocker4 | any; - -export type Blocker4 = { - reason: string; - replicaId: string; - schedulingMode: string; - state: string; - workloadName: string; -}; +export const Reason28 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type Reason28 = ClosedEnum; -export const DrainProgressStatus4 = { - Draining: "draining", - Drained: "drained", - Terminating: "terminating", +export const CollectionIssueSeverity28 = { + Info: "info", + Warning: "warning", + Error: "error", } as const; -export type DrainProgressStatus4 = ClosedEnum; +export type CollectionIssueSeverity28 = ClosedEnum< + typeof CollectionIssueSeverity28 +>; -export type DrainProgress4 = { - blockers?: Array | undefined; - drainDeadlineAt?: string | null | undefined; - drainRequestedAt?: string | null | undefined; - drainedAt?: string | null | undefined; - force: boolean; - machineId: string; - replicaCount: number; - stalled: boolean; - status: DrainProgressStatus4; +export type CollectionIssue28 = { + message: string; + reason: Reason28; + severity: CollectionIssueSeverity28; + source: string; }; -export type DrainProgressUnion4 = DrainProgress4 | any; +export const Health28 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type Health28 = ClosedEnum; -export const UtilizationUnit4 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const Lifecycle28 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", } as const; -export type UtilizationUnit4 = ClosedEnum; +export type Lifecycle28 = ClosedEnum; -export type Utilization4 = { - unit: UtilizationUnit4; - value: number; +export type DataStatus28 = { + collectionIssues: Array; + health: Health28; + lifecycle: Lifecycle28; + message?: string | null | undefined; + partial: boolean; + stale: boolean; }; -export type UtilizationUnion4 = Utilization4 | any; - -export type Recommendation4 = { - desiredMachines: number; - reason?: string | null | undefined; - unschedulableReplicas?: number | null | undefined; - utilization?: Utilization4 | any | null | undefined; +export type DataLocal6 = { + name: string; + path?: string | null | undefined; + serviceStatus?: string | null | undefined; + status: DataStatus28; + backend: "local"; }; -export type RecommendationUnion4 = Recommendation4 | any; +export const Reason27 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type Reason27 = ClosedEnum; -export type CapacityGroup4 = { - capacityBlocker?: CapacityBlocker4 | any | null | undefined; - currentMachines: number; - desiredMachines: number; - drainProgress?: DrainProgress4 | any | null | undefined; - groupId: string; - instanceType?: string | null | undefined; - maxMachines?: number | null | undefined; - minMachines?: number | null | undefined; - recommendation?: Recommendation4 | any | null | undefined; -}; - -export const CpuUnit10 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const CollectionIssueSeverity27 = { + Info: "info", + Warning: "warning", + Error: "error", } as const; -export type CpuUnit10 = ClosedEnum; - -export type Cpu10 = { - unit: CpuUnit10; - value: number; -}; - -export type CpuUnion10 = Cpu10 | any; +export type CollectionIssueSeverity27 = ClosedEnum< + typeof CollectionIssueSeverity27 +>; -export type DrainBlocker = { - reason: string; - replicaId: string; - schedulingMode: string; - state: string; - workloadName: string; +export type CollectionIssue27 = { + message: string; + reason: Reason27; + severity: CollectionIssueSeverity27; + source: string; }; -export type Machine = { - capacityGroup: string; - cpuCores?: number | null | undefined; - drainBlockers?: Array | undefined; - drainDeadlineAt?: string | null | undefined; - drainForce: boolean; - drainRequestedAt?: string | null | undefined; - drainedAt?: string | null | undefined; - horizondVersion?: string | null | undefined; - lastHeartbeat: string; - machineId: string; - memoryBytes?: number | null | undefined; - overlayIp?: string | null | undefined; - publicIp?: string | null | undefined; - replicaCount: number; - status: string; - zone: string; -}; +export const Health27 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type Health27 = ClosedEnum; -export const MemoryUnit10 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const Lifecycle27 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", } as const; -export type MemoryUnit10 = ClosedEnum; +export type Lifecycle27 = ClosedEnum; -export type Memory10 = { - unit: MemoryUnit10; - value: number; +export type DataStatus27 = { + collectionIssues: Array; + health: Health27; + lifecycle: Lifecycle27; + message?: string | null | undefined; + partial: boolean; + stale: boolean; }; -export type MemoryUnion10 = Memory10 | any; - -export type Nodes4 = { - current?: number | null | undefined; - desired?: number | null | undefined; - ready?: number | null | undefined; +export type DataAzureServiceBus = { + accessedAt?: string | null | undefined; + activeMessageCount?: number | null | undefined; + autoDeleteOnIdle?: string | null | undefined; + createdAt?: string | null | undefined; + deadLetterMessageCount?: number | null | undefined; + deadLetteringOnMessageExpiration?: boolean | null | undefined; + defaultMessageTimeToLive?: string | null | undefined; + duplicateDetectionHistoryTimeWindow?: string | null | undefined; + enableBatchedOperations?: boolean | null | undefined; + enableExpress?: boolean | null | undefined; + enablePartitioning?: boolean | null | undefined; + endpoint?: string | null | undefined; + forwardDeadLetteredMessagesTo?: string | null | undefined; + forwardTo?: string | null | undefined; + lockDuration?: string | null | undefined; + maxDeliveryCount?: number | null | undefined; + maxMessageSizeInKilobytes?: number | null | undefined; + maxSizeInMegabytes?: number | null | undefined; + messageCount?: number | null | undefined; + name: string; + namespaceName: string; + queueStatus?: string | null | undefined; + requiresDuplicateDetection?: boolean | null | undefined; + requiresSession?: boolean | null | undefined; + resourceGroup?: string | null | undefined; + resourceId?: string | null | undefined; + scheduledMessageCount?: number | null | undefined; + sizeInBytes?: number | null | undefined; + status: DataStatus27; + transferDeadLetterMessageCount?: number | null | undefined; + transferMessageCount?: number | null | undefined; + updatedAt?: string | null | undefined; + backend: "azureServiceBus"; }; -export const Reason22 = { +export const Reason26 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason22 = ClosedEnum; +export type Reason26 = ClosedEnum; -export const CollectionIssueSeverity22 = { +export const CollectionIssueSeverity26 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity22 = ClosedEnum< - typeof CollectionIssueSeverity22 +export type CollectionIssueSeverity26 = ClosedEnum< + typeof CollectionIssueSeverity26 >; -export type CollectionIssue22 = { +export type CollectionIssue26 = { message: string; - reason: Reason22; - severity: CollectionIssueSeverity22; + reason: Reason26; + severity: CollectionIssueSeverity26; source: string; }; -export const Health22 = { +export const Health26 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health22 = ClosedEnum; +export type Health26 = ClosedEnum; -export const Lifecycle22 = { +export const Lifecycle26 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -3846,77 +3867,151 @@ export const Lifecycle22 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle22 = ClosedEnum; +export type Lifecycle26 = ClosedEnum; -export type DataStatus22 = { - collectionIssues: Array; - health: Health22; - lifecycle: Lifecycle22; +export type DataStatus26 = { + collectionIssues: Array; + health: Health26; + lifecycle: Lifecycle26; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataMachines2 = { - backendClusterId?: string | null | undefined; - capacityGroups: Array; - cpu?: Cpu10 | any | null | undefined; - machines: Array; - memory?: Memory10 | any | null | undefined; - name: string; - nodes: Nodes4; - status: DataStatus22; - backend: "machines"; +export type DataGcpPubSub = { + endpoint?: string | null | undefined; + kmsKeyName?: string | null | undefined; + messageStorageAllowedPersistenceRegions: Array; + messageStorageEnforceInTransit?: boolean | null | undefined; + projectId?: string | null | undefined; + schemaEncoding?: string | null | undefined; + schemaFirstRevisionId?: string | null | undefined; + schemaLastRevisionId?: string | null | undefined; + schemaName?: string | null | undefined; + status: DataStatus26; + subscriptionAckDeadlineSeconds?: number | null | undefined; + subscriptionDeadLetterMaxDeliveryAttempts?: number | null | undefined; + subscriptionDeadLetterTopic?: string | null | undefined; + subscriptionDetached?: boolean | null | undefined; + subscriptionEnableMessageOrdering?: boolean | null | undefined; + subscriptionFilter?: string | null | undefined; + subscriptionFullName?: string | null | undefined; + subscriptionLabels: { [k: string]: string }; + subscriptionMessageRetentionDuration?: string | null | undefined; + subscriptionName?: string | null | undefined; + subscriptionPushAttributes: { [k: string]: string }; + subscriptionPushConfigPresent?: boolean | null | undefined; + subscriptionPushEndpoint?: string | null | undefined; + subscriptionPushNoWrapperWriteMetadata?: boolean | null | undefined; + subscriptionPushOidcAudience?: string | null | undefined; + subscriptionPushOidcServiceAccountEmail?: string | null | undefined; + subscriptionPushPubsubWrapperWriteMetadata?: boolean | null | undefined; + subscriptionRetainAckedMessages?: boolean | null | undefined; + subscriptionState?: string | null | undefined; + topicFullName?: string | null | undefined; + topicLabels: { [k: string]: string }; + topicMessageRetentionDuration?: string | null | undefined; + topicName: string; + topicState?: string | null | undefined; + backend: "gcpPubSub"; }; -export const Category3 = { - Quota: "quota", - Capacity: "capacity", - Allocation: "allocation", - Other: "other", +export const Reason25 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", } as const; -export type Category3 = ClosedEnum; - -export type CapacityBlocker3 = { - category: Category3; - message: string; - observedAt: Date; - providerCode?: string | null | undefined; - providerReference?: string | null | undefined; -}; +export type Reason25 = ClosedEnum; -export type CapacityBlockerUnion3 = CapacityBlocker3 | any; +export const CollectionIssueSeverity25 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type CollectionIssueSeverity25 = ClosedEnum< + typeof CollectionIssueSeverity25 +>; -export type Blocker3 = { - reason: string; - replicaId: string; - schedulingMode: string; - state: string; - workloadName: string; +export type CollectionIssue25 = { + message: string; + reason: Reason25; + severity: CollectionIssueSeverity25; + source: string; }; -export const DrainProgressStatus3 = { - Draining: "draining", - Drained: "drained", - Terminating: "terminating", +export const Health25 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", } as const; -export type DrainProgressStatus3 = ClosedEnum; +export type Health25 = ClosedEnum; -export type DrainProgress3 = { - blockers?: Array | undefined; - drainDeadlineAt?: string | null | undefined; - drainRequestedAt?: string | null | undefined; - drainedAt?: string | null | undefined; - force: boolean; - machineId: string; - replicaCount: number; - stalled: boolean; - status: DrainProgressStatus3; +export const Lifecycle25 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type Lifecycle25 = ClosedEnum; + +export type DataStatus25 = { + collectionIssues: Array; + health: Health25; + lifecycle: Lifecycle25; + message?: string | null | undefined; + partial: boolean; + stale: boolean; }; -export type DrainProgressUnion3 = DrainProgress3 | any; +export type DataAwsSqs = { + approximateCounts: boolean; + approximateDelayedMessages?: number | null | undefined; + approximateInFlightMessages?: number | null | undefined; + approximateVisibleMessages?: number | null | undefined; + contentBasedDeduplication?: boolean | null | undefined; + deduplicationScope?: string | null | undefined; + delaySeconds?: number | null | undefined; + fifoQueue?: boolean | null | undefined; + fifoThroughputLimit?: string | null | undefined; + kmsDataKeyReusePeriodSeconds?: number | null | undefined; + kmsMasterKeyId?: string | null | undefined; + maximumMessageSize?: number | null | undefined; + messageRetentionPeriodSeconds?: number | null | undefined; + name: string; + queueArn?: string | null | undefined; + queueUrl?: string | null | undefined; + receiveMessageWaitTimeSeconds?: number | null | undefined; + redriveAllowPolicy?: string | null | undefined; + redrivePolicy?: string | null | undefined; + region?: string | null | undefined; + sqsManagedSseEnabled?: boolean | null | undefined; + sseEnabled?: boolean | null | undefined; + status: DataStatus25; + visibilityTimeoutSeconds?: number | null | undefined; + backend: "awsSqs"; +}; -export const UtilizationUnit3 = { +export type DataUnion6 = + | DataAwsSqs + | DataGcpPubSub + | DataAzureServiceBus + | DataLocal6; + +export type DataQueue = { + data: DataAwsSqs | DataGcpPubSub | DataAzureServiceBus | DataLocal6; + resourceType: "queue"; +}; + +export const CpuUnit11 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -3924,37 +4019,48 @@ export const UtilizationUnit3 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type UtilizationUnit3 = ClosedEnum; +export type CpuUnit11 = ClosedEnum; -export type Utilization3 = { - unit: UtilizationUnit3; +export type Cpu11 = { + unit: CpuUnit11; value: number; }; -export type UtilizationUnion3 = Utilization3 | any; +export type CpuUnion11 = Cpu11 | any; -export type Recommendation3 = { - desiredMachines: number; - reason?: string | null | undefined; - unschedulableReplicas?: number | null | undefined; - utilization?: Utilization3 | any | null | undefined; +export type InvolvedObject9 = { + apiVersion?: string | null | undefined; + fieldPath?: string | null | undefined; + kind?: string | null | undefined; + name?: string | null | undefined; + namespace?: string | null | undefined; + resourceVersion?: string | null | undefined; + uid?: string | null | undefined; }; -export type RecommendationUnion3 = Recommendation3 | any; +export type InvolvedObjectUnion9 = InvolvedObject9 | any; -export type CapacityGroup3 = { - capacityBlocker?: CapacityBlocker3 | any | null | undefined; - currentMachines: number; - desiredMachines: number; - drainProgress?: DrainProgress3 | any | null | undefined; - groupId: string; - instanceType?: string | null | undefined; - maxMachines?: number | null | undefined; - minMachines?: number | null | undefined; - recommendation?: Recommendation3 | any | null | undefined; +export type SourceEvent9 = { + component?: string | null | undefined; + host?: string | null | undefined; }; -export const CpuUnit9 = { +export type SourceUnion9 = SourceEvent9 | any; + +export type Event12 = { + count?: number | null | undefined; + eventTime?: Date | null | undefined; + firstTimestamp?: Date | null | undefined; + involvedObject?: InvolvedObject9 | any | null | undefined; + lastTimestamp?: Date | null | undefined; + message: string; + raw?: any | null | undefined; + reason: string; + source?: SourceEvent9 | any | null | undefined; + type?: string | null | undefined; +}; + +export const MemoryUnit11 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -3962,16 +4068,22 @@ export const CpuUnit9 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type CpuUnit9 = ClosedEnum; +export type MemoryUnit11 = ClosedEnum; -export type Cpu9 = { - unit: CpuUnit9; +export type Memory11 = { + unit: MemoryUnit11; value: number; }; -export type CpuUnion9 = Cpu9 | any; +export type MemoryUnion11 = Memory11 | any; -export const MemoryUnit9 = { +export type NodeCounts = { + current?: number | null | undefined; + desired?: number | null | undefined; + ready?: number | null | undefined; +}; + +export const CpuAllocatableUnit = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -3979,146 +4091,86 @@ export const MemoryUnit9 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type MemoryUnit9 = ClosedEnum; +export type CpuAllocatableUnit = ClosedEnum; -export type Memory9 = { - unit: MemoryUnit9; +export type CpuAllocatable = { + unit: CpuAllocatableUnit; value: number; }; -export type MemoryUnion9 = Memory9 | any; +export type AllocatableCpuUnion = CpuAllocatable | any; -export type Nodes3 = { - current?: number | null | undefined; - desired?: number | null | undefined; - ready?: number | null | undefined; -}; +export const MemoryAllocatableUnit = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type MemoryAllocatableUnit = ClosedEnum; -export type ProviderFleet3 = { - currentMachines: number; - desiredMachines: number; - groupId: string; - location?: string | null | undefined; - providerId: string; +export type MemoryAllocatable = { + unit: MemoryAllocatableUnit; + value: number; }; -export const Reason21 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", -} as const; -export type Reason21 = ClosedEnum; +export type AllocatableMemoryUnion = MemoryAllocatable | any; -export const CollectionIssueSeverity21 = { - Info: "info", - Warning: "warning", - Error: "error", +export type Allocatable = { + cpu?: CpuAllocatable | any | null | undefined; + memory?: MemoryAllocatable | any | null | undefined; + pods?: number | null | undefined; +}; + +export const CpuCapacityUnit = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", } as const; -export type CollectionIssueSeverity21 = ClosedEnum< - typeof CollectionIssueSeverity21 ->; +export type CpuCapacityUnit = ClosedEnum; -export type CollectionIssue21 = { - message: string; - reason: Reason21; - severity: CollectionIssueSeverity21; - source: string; +export type CpuCapacity = { + unit: CpuCapacityUnit; + value: number; }; -export const Health21 = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", -} as const; -export type Health21 = ClosedEnum; +export type CapacityCpuUnion = CpuCapacity | any; -export const Lifecycle21 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", +export const MemoryCapacityUnit = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", } as const; -export type Lifecycle21 = ClosedEnum; +export type MemoryCapacityUnit = ClosedEnum; -export type DataStatus21 = { - collectionIssues: Array; - health: Health21; - lifecycle: Lifecycle21; - message?: string | null | undefined; - partial: boolean; - stale: boolean; +export type MemoryCapacity = { + unit: MemoryCapacityUnit; + value: number; }; -export type DataAzure2 = { - backendClusterId?: string | null | undefined; - capacityGroups: Array; - cpu?: Cpu9 | any | null | undefined; - memory?: Memory9 | any | null | undefined; - name: string; - nodes: Nodes3; - providerFleets: Array; - region?: string | null | undefined; - status: DataStatus21; - backend: "azure"; -}; - -export const Category2 = { - Quota: "quota", - Capacity: "capacity", - Allocation: "allocation", - Other: "other", -} as const; -export type Category2 = ClosedEnum; - -export type CapacityBlocker2 = { - category: Category2; - message: string; - observedAt: Date; - providerCode?: string | null | undefined; - providerReference?: string | null | undefined; -}; - -export type CapacityBlockerUnion2 = CapacityBlocker2 | any; +export type CapacityMemoryUnion = MemoryCapacity | any; -export type Blocker2 = { - reason: string; - replicaId: string; - schedulingMode: string; - state: string; - workloadName: string; +export type Capacity = { + cpu?: CpuCapacity | any | null | undefined; + memory?: MemoryCapacity | any | null | undefined; + pods?: number | null | undefined; }; -export const DrainProgressStatus2 = { - Draining: "draining", - Drained: "drained", - Terminating: "terminating", -} as const; -export type DrainProgressStatus2 = ClosedEnum; - -export type DrainProgress2 = { - blockers?: Array | undefined; - drainDeadlineAt?: string | null | undefined; - drainRequestedAt?: string | null | undefined; - drainedAt?: string | null | undefined; - force: boolean; - machineId: string; - replicaCount: number; - stalled: boolean; - status: DrainProgressStatus2; +export type NodeStatusCondition = { + message?: string | null | undefined; + reason?: string | null | undefined; + status: string; + type: string; }; -export type DrainProgressUnion2 = DrainProgress2 | any; - -export const UtilizationUnit2 = { +export const UsageCpuUnit = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -4126,37 +4178,16 @@ export const UtilizationUnit2 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type UtilizationUnit2 = ClosedEnum; +export type UsageCpuUnit = ClosedEnum; -export type Utilization2 = { - unit: UtilizationUnit2; +export type UsageCpu = { + unit: UsageCpuUnit; value: number; }; -export type UtilizationUnion2 = Utilization2 | any; - -export type Recommendation2 = { - desiredMachines: number; - reason?: string | null | undefined; - unschedulableReplicas?: number | null | undefined; - utilization?: Utilization2 | any | null | undefined; -}; - -export type RecommendationUnion2 = Recommendation2 | any; - -export type CapacityGroup2 = { - capacityBlocker?: CapacityBlocker2 | any | null | undefined; - currentMachines: number; - desiredMachines: number; - drainProgress?: DrainProgress2 | any | null | undefined; - groupId: string; - instanceType?: string | null | undefined; - maxMachines?: number | null | undefined; - minMachines?: number | null | undefined; - recommendation?: Recommendation2 | any | null | undefined; -}; +export type UsageCpuUnion = UsageCpu | any; -export const CpuUnit8 = { +export const UsageMemoryUnit = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -4164,80 +4195,76 @@ export const CpuUnit8 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type CpuUnit8 = ClosedEnum; +export type UsageMemoryUnit = ClosedEnum; -export type Cpu8 = { - unit: CpuUnit8; +export type UsageMemory = { + unit: UsageMemoryUnit; value: number; }; -export type CpuUnion8 = Cpu8 | any; - -export const MemoryUnit8 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type MemoryUnit8 = ClosedEnum; +export type UsageMemoryUnion = UsageMemory | any; -export type Memory8 = { - unit: MemoryUnit8; - value: number; +export type Usage = { + cpu?: UsageCpu | any | null | undefined; + memory?: UsageMemory | any | null | undefined; }; -export type MemoryUnion8 = Memory8 | any; +export type UsageUnion = Usage | any; -export type Nodes2 = { +export type NodeStatus = { + allocatable: Allocatable; + capacity: Capacity; + conditions?: Array | undefined; + containerRuntimeVersion?: string | null | undefined; + kubeletVersion?: string | null | undefined; + labels: { [k: string]: string }; + name: string; + ready: boolean; + roles: Array; + uid?: string | null | undefined; + usage?: Usage | any | null | undefined; +}; + +export type PodCounts = { current?: number | null | undefined; desired?: number | null | undefined; ready?: number | null | undefined; }; -export type ProviderFleet2 = { - currentMachines: number; - desiredMachines: number; - groupId: string; - location?: string | null | undefined; - providerId: string; -}; - -export const Reason20 = { +export const Reason24 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason20 = ClosedEnum; +export type Reason24 = ClosedEnum; -export const CollectionIssueSeverity20 = { +export const CollectionIssueSeverity24 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity20 = ClosedEnum< - typeof CollectionIssueSeverity20 +export type CollectionIssueSeverity24 = ClosedEnum< + typeof CollectionIssueSeverity24 >; -export type CollectionIssue20 = { +export type CollectionIssue24 = { message: string; - reason: Reason20; - severity: CollectionIssueSeverity20; + reason: Reason24; + severity: CollectionIssueSeverity24; source: string; }; -export const Health20 = { +export const Health24 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health20 = ClosedEnum; +export type Health24 = ClosedEnum; -export const Lifecycle20 = { +export const Lifecycle24 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -4249,116 +4276,201 @@ export const Lifecycle20 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle20 = ClosedEnum; +export type Lifecycle24 = ClosedEnum; -export type DataStatus20 = { - collectionIssues: Array; - health: Health20; - lifecycle: Lifecycle20; +export type DataStatus24 = { + collectionIssues: Array; + health: Health24; + lifecycle: Lifecycle24; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataGcp2 = { - backendClusterId?: string | null | undefined; - capacityGroups: Array; - cpu?: Cpu8 | any | null | undefined; - memory?: Memory8 | any | null | undefined; +export type Data1 = { + cpu?: Cpu11 | any | null | undefined; + events: Array; + memory?: Memory11 | any | null | undefined; name: string; - nodes: Nodes2; - providerFleets: Array; + namespace?: string | null | undefined; + nodeCounts: NodeCounts; + nodeStatuses?: Array | undefined; + podCounts: PodCounts; region?: string | null | undefined; - status: DataStatus20; - backend: "gcp"; + status: DataStatus24; + version?: string | null | undefined; }; -export const Category1 = { - Quota: "quota", - Capacity: "capacity", - Allocation: "allocation", - Other: "other", -} as const; -export type Category1 = ClosedEnum; - -export type CapacityBlocker1 = { - category: Category1; - message: string; - observedAt: Date; - providerCode?: string | null | undefined; - providerReference?: string | null | undefined; +export type DataKubernetesCluster = { + data: Data1; + resourceType: "kubernetes-cluster"; }; -export type CapacityBlockerUnion1 = CapacityBlocker1 | any; - -export type Blocker1 = { - reason: string; - replicaId: string; - schedulingMode: string; - state: string; - workloadName: string; +export type Nodes5 = { + current?: number | null | undefined; + desired?: number | null | undefined; + ready?: number | null | undefined; }; -export const DrainProgressStatus1 = { - Draining: "draining", - Drained: "drained", - Terminating: "terminating", +export const Reason23 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", } as const; -export type DrainProgressStatus1 = ClosedEnum; - -export type DrainProgress1 = { - blockers?: Array | undefined; - drainDeadlineAt?: string | null | undefined; - drainRequestedAt?: string | null | undefined; - drainedAt?: string | null | undefined; - force: boolean; - machineId: string; - replicaCount: number; - stalled: boolean; - status: DrainProgressStatus1; -}; - -export type DrainProgressUnion1 = DrainProgress1 | any; +export type Reason23 = ClosedEnum; -export const UtilizationUnit1 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const CollectionIssueSeverity23 = { + Info: "info", + Warning: "warning", + Error: "error", } as const; -export type UtilizationUnit1 = ClosedEnum; +export type CollectionIssueSeverity23 = ClosedEnum< + typeof CollectionIssueSeverity23 +>; -export type Utilization1 = { - unit: UtilizationUnit1; +export type CollectionIssue23 = { + message: string; + reason: Reason23; + severity: CollectionIssueSeverity23; + source: string; +}; + +export const Health23 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type Health23 = ClosedEnum; + +export const Lifecycle23 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type Lifecycle23 = ClosedEnum; + +export type DataStatus23 = { + collectionIssues: Array; + health: Health23; + lifecycle: Lifecycle23; + message?: string | null | undefined; + partial: boolean; + stale: boolean; +}; + +export type DataLocal5 = { + dockerApiVersion?: string | null | undefined; + dockerArch?: string | null | undefined; + dockerAvailable: boolean; + dockerOs?: string | null | undefined; + dockerVersion?: string | null | undefined; + hostIdentifier?: string | null | undefined; + name: string; + networkAvailable: boolean; + networkName?: string | null | undefined; + nodes: Nodes5; + runningContainers?: number | null | undefined; + status: DataStatus23; + trackedContainers?: number | null | undefined; + backend: "local"; +}; + +export const Category4 = { + Quota: "quota", + Capacity: "capacity", + Allocation: "allocation", + Other: "other", +} as const; +export type Category4 = ClosedEnum; + +export type CapacityBlocker4 = { + category: Category4; + message: string; + observedAt: Date; + providerCode?: string | null | undefined; + providerReference?: string | null | undefined; +}; + +export type CapacityBlockerUnion4 = CapacityBlocker4 | any; + +export type DrainProgressBlocker4 = { + reason: string; + replicaId: string; + schedulingMode: string; + state: string; + workloadName: string; +}; + +export const DrainProgressStatus4 = { + Draining: "draining", + Drained: "drained", + Terminating: "terminating", +} as const; +export type DrainProgressStatus4 = ClosedEnum; + +export type DrainProgress4 = { + blockers?: Array | undefined; + drainDeadlineAt?: string | null | undefined; + drainRequestedAt?: string | null | undefined; + drainedAt?: string | null | undefined; + force: boolean; + machineId: string; + replicaCount: number; + stalled: boolean; + status: DrainProgressStatus4; +}; + +export type DrainProgressUnion4 = DrainProgress4 | any; + +export const UtilizationUnit4 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type UtilizationUnit4 = ClosedEnum; + +export type Utilization4 = { + unit: UtilizationUnit4; value: number; }; -export type UtilizationUnion1 = Utilization1 | any; +export type UtilizationUnion4 = Utilization4 | any; -export type Recommendation1 = { +export type Recommendation4 = { desiredMachines: number; reason?: string | null | undefined; unschedulableReplicas?: number | null | undefined; - utilization?: Utilization1 | any | null | undefined; + utilization?: Utilization4 | any | null | undefined; }; -export type RecommendationUnion1 = Recommendation1 | any; +export type RecommendationUnion4 = Recommendation4 | any; -export type CapacityGroup1 = { - capacityBlocker?: CapacityBlocker1 | any | null | undefined; +export type CapacityGroup4 = { + capacityBlocker?: CapacityBlocker4 | any | null | undefined; currentMachines: number; desiredMachines: number; - drainProgress?: DrainProgress1 | any | null | undefined; + drainProgress?: DrainProgress4 | any | null | undefined; groupId: string; instanceType?: string | null | undefined; maxMachines?: number | null | undefined; minMachines?: number | null | undefined; - recommendation?: Recommendation1 | any | null | undefined; + recommendation?: Recommendation4 | any | null | undefined; }; -export const CpuUnit7 = { +export const CpuUnit10 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -4366,16 +4478,43 @@ export const CpuUnit7 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type CpuUnit7 = ClosedEnum; +export type CpuUnit10 = ClosedEnum; -export type Cpu7 = { - unit: CpuUnit7; +export type Cpu10 = { + unit: CpuUnit10; value: number; }; -export type CpuUnion7 = Cpu7 | any; +export type CpuUnion10 = Cpu10 | any; -export const MemoryUnit7 = { +export type DrainBlocker = { + reason: string; + replicaId: string; + schedulingMode: string; + state: string; + workloadName: string; +}; + +export type Machine = { + capacityGroup: string; + cpuCores?: number | null | undefined; + drainBlockers?: Array | undefined; + drainDeadlineAt?: string | null | undefined; + drainForce: boolean; + drainRequestedAt?: string | null | undefined; + drainedAt?: string | null | undefined; + horizondVersion?: string | null | undefined; + lastHeartbeat: string; + machineId: string; + memoryBytes?: number | null | undefined; + overlayIp?: string | null | undefined; + publicIp?: string | null | undefined; + replicaCount: number; + status: string; + zone: string; +}; + +export const MemoryUnit10 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -4383,63 +4522,55 @@ export const MemoryUnit7 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type MemoryUnit7 = ClosedEnum; +export type MemoryUnit10 = ClosedEnum; -export type Memory7 = { - unit: MemoryUnit7; +export type Memory10 = { + unit: MemoryUnit10; value: number; }; -export type MemoryUnion7 = Memory7 | any; +export type MemoryUnion10 = Memory10 | any; -export type Nodes1 = { +export type Nodes4 = { current?: number | null | undefined; desired?: number | null | undefined; ready?: number | null | undefined; }; -export type ProviderFleet1 = { - currentMachines: number; - desiredMachines: number; - groupId: string; - location?: string | null | undefined; - providerId: string; -}; - -export const Reason19 = { +export const Reason22 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason19 = ClosedEnum; +export type Reason22 = ClosedEnum; -export const CollectionIssueSeverity19 = { +export const CollectionIssueSeverity22 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity19 = ClosedEnum< - typeof CollectionIssueSeverity19 +export type CollectionIssueSeverity22 = ClosedEnum< + typeof CollectionIssueSeverity22 >; -export type CollectionIssue19 = { +export type CollectionIssue22 = { message: string; - reason: Reason19; - severity: CollectionIssueSeverity19; + reason: Reason22; + severity: CollectionIssueSeverity22; source: string; }; -export const Health19 = { +export const Health22 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health19 = ClosedEnum; +export type Health22 = ClosedEnum; -export const Lifecycle19 = { +export const Lifecycle22 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -4451,67 +4582,115 @@ export const Lifecycle19 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle19 = ClosedEnum; +export type Lifecycle22 = ClosedEnum; -export type DataStatus19 = { - collectionIssues: Array; - health: Health19; - lifecycle: Lifecycle19; +export type DataStatus22 = { + collectionIssues: Array; + health: Health22; + lifecycle: Lifecycle22; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAws2 = { +export type DataMachines2 = { backendClusterId?: string | null | undefined; - capacityGroups: Array; - cpu?: Cpu7 | any | null | undefined; - memory?: Memory7 | any | null | undefined; + capacityGroups: Array; + cpu?: Cpu10 | any | null | undefined; + machines: Array; + memory?: Memory10 | any | null | undefined; name: string; - nodes: Nodes1; - providerFleets: Array; - region?: string | null | undefined; - status: DataStatus19; - backend: "aws"; + nodes: Nodes4; + status: DataStatus22; + backend: "machines"; }; -export type DataUnion5 = - | DataAws2 - | DataGcp2 - | DataAzure2 - | DataMachines2 - | DataLocal5; - -export type DataComputeCluster = { - data: DataAws2 | DataGcp2 | DataAzure2 | DataMachines2 | DataLocal5; - resourceType: "compute-cluster"; -}; +export const Category3 = { + Quota: "quota", + Capacity: "capacity", + Allocation: "allocation", + Other: "other", +} as const; +export type Category3 = ClosedEnum; -export const DaemonInstanceCpuUnit = { - Count: "count", - Percent: "percent", +export type CapacityBlocker3 = { + category: Category3; + message: string; + observedAt: Date; + providerCode?: string | null | undefined; + providerReference?: string | null | undefined; +}; + +export type CapacityBlockerUnion3 = CapacityBlocker3 | any; + +export type DrainProgressBlocker3 = { + reason: string; + replicaId: string; + schedulingMode: string; + state: string; + workloadName: string; +}; + +export const DrainProgressStatus3 = { + Draining: "draining", + Drained: "drained", + Terminating: "terminating", +} as const; +export type DrainProgressStatus3 = ClosedEnum; + +export type DrainProgress3 = { + blockers?: Array | undefined; + drainDeadlineAt?: string | null | undefined; + drainRequestedAt?: string | null | undefined; + drainedAt?: string | null | undefined; + force: boolean; + machineId: string; + replicaCount: number; + stalled: boolean; + status: DrainProgressStatus3; +}; + +export type DrainProgressUnion3 = DrainProgress3 | any; + +export const UtilizationUnit3 = { + Count: "count", + Percent: "percent", Bytes: "bytes", Cores: "cores", Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type DaemonInstanceCpuUnit = ClosedEnum; +export type UtilizationUnit3 = ClosedEnum; -export type DaemonInstanceCpu = { - unit: DaemonInstanceCpuUnit; +export type Utilization3 = { + unit: UtilizationUnit3; value: number; }; -export type DaemonInstanceCpuUnion5 = DaemonInstanceCpu | any; +export type UtilizationUnion3 = Utilization3 | any; -export const DaemonInstanceKind = { - Container: "container", - Process: "process", - Daemon: "daemon", -} as const; -export type DaemonInstanceKind = ClosedEnum; +export type Recommendation3 = { + desiredMachines: number; + reason?: string | null | undefined; + unschedulableReplicas?: number | null | undefined; + utilization?: Utilization3 | any | null | undefined; +}; -export const DaemonInstanceMemoryUnit = { +export type RecommendationUnion3 = Recommendation3 | any; + +export type CapacityGroup3 = { + capacityBlocker?: CapacityBlocker3 | any | null | undefined; + currentMachines: number; + desiredMachines: number; + drainProgress?: DrainProgress3 | any | null | undefined; + groupId: string; + instanceType?: string | null | undefined; + maxMachines?: number | null | undefined; + minMachines?: number | null | undefined; + recommendation?: Recommendation3 | any | null | undefined; +}; + +export const CpuUnit9 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -4519,89 +4698,80 @@ export const DaemonInstanceMemoryUnit = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type DaemonInstanceMemoryUnit = ClosedEnum< - typeof DaemonInstanceMemoryUnit ->; +export type CpuUnit9 = ClosedEnum; -export type DaemonInstanceMemory = { - unit: DaemonInstanceMemoryUnit; +export type Cpu9 = { + unit: CpuUnit9; value: number; }; -export type DaemonInstanceMemoryUnion5 = DaemonInstanceMemory | any; - -export type DaemonInstance5 = { - cpu?: DaemonInstanceCpu | any | null | undefined; - kind: DaemonInstanceKind; - memory?: DaemonInstanceMemory | any | null | undefined; - name: string; - phase?: string | null | undefined; - pid?: number | null | undefined; - ready: boolean; - restartCount?: number | null | undefined; - unitId: string; -}; - -export type DaemonInstanceUnion = DaemonInstance5 | any; +export type CpuUnion9 = Cpu9 | any; -export const EventSeverity3 = { - Info: "info", - Warning: "warning", - Error: "error", +export const MemoryUnit9 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", } as const; -export type EventSeverity3 = ClosedEnum; +export type MemoryUnit9 = ClosedEnum; -export type Subject3 = { - id?: string | null | undefined; - kind: string; - name?: string | null | undefined; +export type Memory9 = { + unit: MemoryUnit9; + value: number; }; -export type SubjectUnion3 = Subject3 | any; +export type MemoryUnion9 = Memory9 | any; -export type Event11 = { - kind: string; - message: string; - raw?: any | null | undefined; - severity: EventSeverity3; - subject?: Subject3 | any | null | undefined; - timestamp: Date; +export type Nodes3 = { + current?: number | null | undefined; + desired?: number | null | undefined; + ready?: number | null | undefined; }; -export const Reason18 = { +export type ProviderFleet3 = { + currentMachines: number; + desiredMachines: number; + groupId: string; + location?: string | null | undefined; + providerId: string; +}; + +export const Reason21 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason18 = ClosedEnum; +export type Reason21 = ClosedEnum; -export const CollectionIssueSeverity18 = { +export const CollectionIssueSeverity21 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity18 = ClosedEnum< - typeof CollectionIssueSeverity18 +export type CollectionIssueSeverity21 = ClosedEnum< + typeof CollectionIssueSeverity21 >; -export type CollectionIssue18 = { +export type CollectionIssue21 = { message: string; - reason: Reason18; - severity: CollectionIssueSeverity18; + reason: Reason21; + severity: CollectionIssueSeverity21; source: string; }; -export const Health18 = { +export const Health21 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health18 = ClosedEnum; +export type Health21 = ClosedEnum; -export const Lifecycle18 = { +export const Lifecycle21 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -4613,32 +4783,78 @@ export const Lifecycle18 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle18 = ClosedEnum; +export type Lifecycle21 = ClosedEnum; -export type DataStatus18 = { - collectionIssues: Array; - health: Health18; - lifecycle: Lifecycle18; +export type DataStatus21 = { + collectionIssues: Array; + health: Health21; + lifecycle: Lifecycle21; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataLocal4 = { - commandSupported: boolean; - daemonInstance?: DaemonInstance5 | any | null | undefined; - daemonName?: string | undefined; - events: Array; - exitReason?: string | null | undefined; - imagePathPresent: boolean; - pid?: number | null | undefined; - restartCount?: number | null | undefined; - runtimeId: string; - status: DataStatus18; - backend: "local"; +export type DataAzure2 = { + backendClusterId?: string | null | undefined; + capacityGroups: Array; + cpu?: Cpu9 | any | null | undefined; + memory?: Memory9 | any | null | undefined; + name: string; + nodes: Nodes3; + providerFleets: Array; + region?: string | null | undefined; + status: DataStatus21; + backend: "azure"; }; -export const CpuUnit6 = { +export const Category2 = { + Quota: "quota", + Capacity: "capacity", + Allocation: "allocation", + Other: "other", +} as const; +export type Category2 = ClosedEnum; + +export type CapacityBlocker2 = { + category: Category2; + message: string; + observedAt: Date; + providerCode?: string | null | undefined; + providerReference?: string | null | undefined; +}; + +export type CapacityBlockerUnion2 = CapacityBlocker2 | any; + +export type DrainProgressBlocker2 = { + reason: string; + replicaId: string; + schedulingMode: string; + state: string; + workloadName: string; +}; + +export const DrainProgressStatus2 = { + Draining: "draining", + Drained: "drained", + Terminating: "terminating", +} as const; +export type DrainProgressStatus2 = ClosedEnum; + +export type DrainProgress2 = { + blockers?: Array | undefined; + drainDeadlineAt?: string | null | undefined; + drainRequestedAt?: string | null | undefined; + drainedAt?: string | null | undefined; + force: boolean; + machineId: string; + replicaCount: number; + stalled: boolean; + status: DrainProgressStatus2; +}; + +export type DrainProgressUnion2 = DrainProgress2 | any; + +export const UtilizationUnit2 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -4646,65 +4862,37 @@ export const CpuUnit6 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type CpuUnit6 = ClosedEnum; +export type UtilizationUnit2 = ClosedEnum; -export type Cpu6 = { - unit: CpuUnit6; +export type Utilization2 = { + unit: UtilizationUnit2; value: number; }; -export type CpuUnion6 = Cpu6 | any; +export type UtilizationUnion2 = Utilization2 | any; -export type InvolvedObject8 = { - apiVersion?: string | null | undefined; - fieldPath?: string | null | undefined; - kind?: string | null | undefined; - name?: string | null | undefined; - namespace?: string | null | undefined; - resourceVersion?: string | null | undefined; - uid?: string | null | undefined; -}; - -export type InvolvedObjectUnion8 = InvolvedObject8 | any; - -export type GetResourceDeploymentDetailSource8 = { - component?: string | null | undefined; - host?: string | null | undefined; -}; - -export type SourceUnion8 = GetResourceDeploymentDetailSource8 | any; - -export type Event10 = { - count?: number | null | undefined; - eventTime?: Date | null | undefined; - firstTimestamp?: Date | null | undefined; - involvedObject?: InvolvedObject8 | any | null | undefined; - lastTimestamp?: Date | null | undefined; - message: string; - raw?: any | null | undefined; - reason: string; - source?: GetResourceDeploymentDetailSource8 | any | null | undefined; - type?: string | null | undefined; +export type Recommendation2 = { + desiredMachines: number; + reason?: string | null | undefined; + unschedulableReplicas?: number | null | undefined; + utilization?: Utilization2 | any | null | undefined; }; -export const MemoryUnit6 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type MemoryUnit6 = ClosedEnum; +export type RecommendationUnion2 = Recommendation2 | any; -export type Memory6 = { - unit: MemoryUnit6; - value: number; +export type CapacityGroup2 = { + capacityBlocker?: CapacityBlocker2 | any | null | undefined; + currentMachines: number; + desiredMachines: number; + drainProgress?: DrainProgress2 | any | null | undefined; + groupId: string; + instanceType?: string | null | undefined; + maxMachines?: number | null | undefined; + minMachines?: number | null | undefined; + recommendation?: Recommendation2 | any | null | undefined; }; -export type MemoryUnion6 = Memory6 | any; - -export const CpuPodUnit3 = { +export const CpuUnit8 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -4712,16 +4900,16 @@ export const CpuPodUnit3 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type CpuPodUnit3 = ClosedEnum; +export type CpuUnit8 = ClosedEnum; -export type CpuPod3 = { - unit: CpuPodUnit3; +export type Cpu8 = { + unit: CpuUnit8; value: number; }; -export type PodCpuUnion3 = CpuPod3 | any; +export type CpuUnion8 = Cpu8 | any; -export const MemoryPodUnit3 = { +export const MemoryUnit8 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -4729,80 +4917,63 @@ export const MemoryPodUnit3 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type MemoryPodUnit3 = ClosedEnum; +export type MemoryUnit8 = ClosedEnum; -export type MemoryPod3 = { - unit: MemoryPodUnit3; +export type Memory8 = { + unit: MemoryUnit8; value: number; }; -export type PodMemoryUnion3 = MemoryPod3 | any; - -export type OwnerReference3 = { - controller: boolean; - kind: string; - name: string; - uid: string; -}; - -export type Pod3 = { - cpu?: CpuPod3 | any | null | undefined; - memory?: MemoryPod3 | any | null | undefined; - name: string; - nodeName?: string | null | undefined; - ownerReferences: Array; - phase?: string | null | undefined; - podIp?: string | null | undefined; - ready: boolean; - restartCount: number; - terminatedReason?: string | null | undefined; - uid?: string | null | undefined; - waitingReason?: string | null | undefined; -}; +export type MemoryUnion8 = Memory8 | any; -export type Replicas4 = { - available?: number | null | undefined; +export type Nodes2 = { current?: number | null | undefined; desired?: number | null | undefined; - misscheduled?: number | null | undefined; ready?: number | null | undefined; - updated?: number | null | undefined; }; -export const Reason17 = { +export type ProviderFleet2 = { + currentMachines: number; + desiredMachines: number; + groupId: string; + location?: string | null | undefined; + providerId: string; +}; + +export const Reason20 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason17 = ClosedEnum; +export type Reason20 = ClosedEnum; -export const CollectionIssueSeverity17 = { +export const CollectionIssueSeverity20 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity17 = ClosedEnum< - typeof CollectionIssueSeverity17 +export type CollectionIssueSeverity20 = ClosedEnum< + typeof CollectionIssueSeverity20 >; -export type CollectionIssue17 = { +export type CollectionIssue20 = { message: string; - reason: Reason17; - severity: CollectionIssueSeverity17; + reason: Reason20; + severity: CollectionIssueSeverity20; source: string; }; -export const Health17 = { +export const Health20 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health17 = ClosedEnum; +export type Health20 = ClosedEnum; -export const Lifecycle17 = { +export const Lifecycle20 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -4814,54 +4985,78 @@ export const Lifecycle17 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle17 = ClosedEnum; +export type Lifecycle20 = ClosedEnum; -export type DataStatus17 = { - collectionIssues: Array; - health: Health17; - lifecycle: Lifecycle17; +export type DataStatus20 = { + collectionIssues: Array; + health: Health20; + lifecycle: Lifecycle20; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type WorkloadCondition3 = { - lastTransitionTime?: Date | null | undefined; - message?: string | null | undefined; - reason?: string | null | undefined; - status: string; - type: string; +export type DataGcp2 = { + backendClusterId?: string | null | undefined; + capacityGroups: Array; + cpu?: Cpu8 | any | null | undefined; + memory?: Memory8 | any | null | undefined; + name: string; + nodes: Nodes2; + providerFleets: Array; + region?: string | null | undefined; + status: DataStatus20; + backend: "gcp"; }; -export type Workload3 = { - availableReplicas?: number | null | undefined; - conditions: Array; - desiredGeneration?: number | null | undefined; - desiredReplicas?: number | null | undefined; - observedGeneration?: number | null | undefined; - readyReplicas?: number | null | undefined; - rolloutReason?: string | null | undefined; - updatedReplicas?: number | null | undefined; +export const Category1 = { + Quota: "quota", + Capacity: "capacity", + Allocation: "allocation", + Other: "other", +} as const; +export type Category1 = ClosedEnum; + +export type CapacityBlocker1 = { + category: Category1; + message: string; + observedAt: Date; + providerCode?: string | null | undefined; + providerReference?: string | null | undefined; }; -export type WorkloadUnion3 = Workload3 | any; +export type CapacityBlockerUnion1 = CapacityBlocker1 | any; -export type DataKubernetes3 = { - commandSupported: boolean; - cpu?: Cpu6 | any | null | undefined; - events: Array; - memory?: Memory6 | any | null | undefined; - name: string; - namespace: string; - pods: Array; - replicas: Replicas4; - restarts?: number | null | undefined; - status: DataStatus17; - workload?: Workload3 | any | null | undefined; - backend: "kubernetes"; +export type DrainProgressBlocker1 = { + reason: string; + replicaId: string; + schedulingMode: string; + state: string; + workloadName: string; }; -export const CpuDaemonInstanceUnit4 = { +export const DrainProgressStatus1 = { + Draining: "draining", + Drained: "drained", + Terminating: "terminating", +} as const; +export type DrainProgressStatus1 = ClosedEnum; + +export type DrainProgress1 = { + blockers?: Array | undefined; + drainDeadlineAt?: string | null | undefined; + drainRequestedAt?: string | null | undefined; + drainedAt?: string | null | undefined; + force: boolean; + machineId: string; + replicaCount: number; + stalled: boolean; + status: DrainProgressStatus1; +}; + +export type DrainProgressUnion1 = DrainProgress1 | any; + +export const UtilizationUnit1 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -4869,16 +5064,37 @@ export const CpuDaemonInstanceUnit4 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type CpuDaemonInstanceUnit4 = ClosedEnum; +export type UtilizationUnit1 = ClosedEnum; -export type CpuDaemonInstance4 = { - unit: CpuDaemonInstanceUnit4; +export type Utilization1 = { + unit: UtilizationUnit1; value: number; }; -export type DaemonInstanceCpuUnion4 = CpuDaemonInstance4 | any; +export type UtilizationUnion1 = Utilization1 | any; -export const MemoryDaemonInstanceUnit4 = { +export type Recommendation1 = { + desiredMachines: number; + reason?: string | null | undefined; + unschedulableReplicas?: number | null | undefined; + utilization?: Utilization1 | any | null | undefined; +}; + +export type RecommendationUnion1 = Recommendation1 | any; + +export type CapacityGroup1 = { + capacityBlocker?: CapacityBlocker1 | any | null | undefined; + currentMachines: number; + desiredMachines: number; + drainProgress?: DrainProgress1 | any | null | undefined; + groupId: string; + instanceType?: string | null | undefined; + maxMachines?: number | null | undefined; + minMachines?: number | null | undefined; + recommendation?: Recommendation1 | any | null | undefined; +}; + +export const CpuUnit7 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -4886,105 +5102,80 @@ export const MemoryDaemonInstanceUnit4 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type MemoryDaemonInstanceUnit4 = ClosedEnum< - typeof MemoryDaemonInstanceUnit4 ->; +export type CpuUnit7 = ClosedEnum; -export type MemoryDaemonInstance4 = { - unit: MemoryDaemonInstanceUnit4; +export type Cpu7 = { + unit: CpuUnit7; value: number; }; -export type DaemonInstanceMemoryUnion4 = MemoryDaemonInstance4 | any; +export type CpuUnion7 = Cpu7 | any; -export type DaemonInstance4 = { - cpu?: CpuDaemonInstance4 | any | null | undefined; - ip?: string | null | undefined; - machineId?: string | null | undefined; - memory?: MemoryDaemonInstance4 | any | null | undefined; - message?: string | null | undefined; - metricsHealthy?: boolean | null | undefined; - metricsLastUpdated?: string | null | undefined; - metricsStatus?: string | null | undefined; - name: string; - nodeName?: string | null | undefined; - phase?: string | null | undefined; - ready: boolean; - reason?: string | null | undefined; - replicaId: string; - restartCount?: number | null | undefined; - status?: string | null | undefined; - terminatedReason?: string | null | undefined; - waitingReason?: string | null | undefined; -}; +export const MemoryUnit7 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type MemoryUnit7 = ClosedEnum; -export type InvolvedObject7 = { - details?: any | null | undefined; - id?: string | null | undefined; - kind?: string | null | undefined; - machineId?: string | null | undefined; - name?: string | null | undefined; - replicaId?: string | null | undefined; +export type Memory7 = { + unit: MemoryUnit7; + value: number; }; -export type InvolvedObjectUnion7 = InvolvedObject7 | any; +export type MemoryUnion7 = Memory7 | any; -export type GetResourceDeploymentDetailSource7 = { - component?: string | null | undefined; - host?: string | null | undefined; +export type Nodes1 = { + current?: number | null | undefined; + desired?: number | null | undefined; + ready?: number | null | undefined; }; -export type SourceUnion7 = GetResourceDeploymentDetailSource7 | any; - -export type Event9 = { - count?: number | null | undefined; - details?: any | null | undefined; - eventId?: string | null | undefined; - eventTime?: Date | null | undefined; - firstTimestamp?: Date | null | undefined; - involvedObject?: InvolvedObject7 | any | null | undefined; - lastTimestamp?: Date | null | undefined; - message: string; - raw?: any | null | undefined; - reason: string; - source?: GetResourceDeploymentDetailSource7 | any | null | undefined; - type?: string | null | undefined; +export type ProviderFleet1 = { + currentMachines: number; + desiredMachines: number; + groupId: string; + location?: string | null | undefined; + providerId: string; }; -export const Reason16 = { +export const Reason19 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason16 = ClosedEnum; +export type Reason19 = ClosedEnum; -export const CollectionIssueSeverity16 = { +export const CollectionIssueSeverity19 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity16 = ClosedEnum< - typeof CollectionIssueSeverity16 +export type CollectionIssueSeverity19 = ClosedEnum< + typeof CollectionIssueSeverity19 >; -export type CollectionIssue16 = { +export type CollectionIssue19 = { message: string; - reason: Reason16; - severity: CollectionIssueSeverity16; + reason: Reason19; + severity: CollectionIssueSeverity19; source: string; }; -export const Health16 = { +export const Health19 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health16 = ClosedEnum; +export type Health19 = ClosedEnum; -export const Lifecycle16 = { +export const Lifecycle19 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -4996,37 +5187,43 @@ export const Lifecycle16 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle16 = ClosedEnum; +export type Lifecycle19 = ClosedEnum; -export type DataStatus16 = { - collectionIssues: Array; - health: Health16; - lifecycle: Lifecycle16; +export type DataStatus19 = { + collectionIssues: Array; + health: Health19; + lifecycle: Lifecycle19; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataMachines1 = { - assignedMachines: number; - capacityGroup: string; - commandSupported: boolean; - daemonInstances: Array; - daemonName?: string | undefined; - desiredMachines: number; - events: Array; - healthyInstances: number; - horizonClusterId: string; - horizonStatus: string; - horizonStatusMessage?: string | null | undefined; - horizonStatusReason?: string | null | undefined; - latestUpdateTimestamp: string; - status: DataStatus16; - unavailableInstances: number; - backend: "machines"; +export type DataAws2 = { + backendClusterId?: string | null | undefined; + capacityGroups: Array; + cpu?: Cpu7 | any | null | undefined; + memory?: Memory7 | any | null | undefined; + name: string; + nodes: Nodes1; + providerFleets: Array; + region?: string | null | undefined; + status: DataStatus19; + backend: "aws"; }; -export const CpuDaemonInstanceUnit3 = { +export type DataUnion5 = + | DataAws2 + | DataGcp2 + | DataAzure2 + | DataMachines2 + | DataLocal5; + +export type DataComputeCluster = { + data: DataAws2 | DataGcp2 | DataAzure2 | DataMachines2 | DataLocal5; + resourceType: "compute-cluster"; +}; + +export const DaemonInstanceCpuUnit = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -5034,16 +5231,23 @@ export const CpuDaemonInstanceUnit3 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type CpuDaemonInstanceUnit3 = ClosedEnum; +export type DaemonInstanceCpuUnit = ClosedEnum; -export type CpuDaemonInstance3 = { - unit: CpuDaemonInstanceUnit3; +export type DaemonInstanceCpu = { + unit: DaemonInstanceCpuUnit; value: number; }; -export type DaemonInstanceCpuUnion3 = CpuDaemonInstance3 | any; +export type DaemonInstanceCpuUnion5 = DaemonInstanceCpu | any; -export const MemoryDaemonInstanceUnit3 = { +export const DaemonInstanceKind = { + Container: "container", + Process: "process", + Daemon: "daemon", +} as const; +export type DaemonInstanceKind = ClosedEnum; + +export const DaemonInstanceMemoryUnit = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -5051,105 +5255,89 @@ export const MemoryDaemonInstanceUnit3 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type MemoryDaemonInstanceUnit3 = ClosedEnum< - typeof MemoryDaemonInstanceUnit3 +export type DaemonInstanceMemoryUnit = ClosedEnum< + typeof DaemonInstanceMemoryUnit >; -export type MemoryDaemonInstance3 = { - unit: MemoryDaemonInstanceUnit3; +export type DaemonInstanceMemory = { + unit: DaemonInstanceMemoryUnit; value: number; }; -export type DaemonInstanceMemoryUnion3 = MemoryDaemonInstance3 | any; +export type DaemonInstanceMemoryUnion5 = DaemonInstanceMemory | any; -export type DaemonInstance3 = { - cpu?: CpuDaemonInstance3 | any | null | undefined; - ip?: string | null | undefined; - machineId?: string | null | undefined; - memory?: MemoryDaemonInstance3 | any | null | undefined; - message?: string | null | undefined; - metricsHealthy?: boolean | null | undefined; - metricsLastUpdated?: string | null | undefined; - metricsStatus?: string | null | undefined; +export type DaemonInstance5 = { + cpu?: DaemonInstanceCpu | any | null | undefined; + kind: DaemonInstanceKind; + memory?: DaemonInstanceMemory | any | null | undefined; name: string; - nodeName?: string | null | undefined; phase?: string | null | undefined; + pid?: number | null | undefined; ready: boolean; - reason?: string | null | undefined; - replicaId: string; restartCount?: number | null | undefined; - status?: string | null | undefined; - terminatedReason?: string | null | undefined; - waitingReason?: string | null | undefined; + unitId: string; }; -export type InvolvedObject6 = { - details?: any | null | undefined; - id?: string | null | undefined; - kind?: string | null | undefined; - machineId?: string | null | undefined; - name?: string | null | undefined; - replicaId?: string | null | undefined; -}; +export type DaemonInstanceUnion = DaemonInstance5 | any; -export type InvolvedObjectUnion6 = InvolvedObject6 | any; +export const EventSeverity3 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type EventSeverity3 = ClosedEnum; -export type GetResourceDeploymentDetailSource6 = { - component?: string | null | undefined; - host?: string | null | undefined; +export type Subject3 = { + id?: string | null | undefined; + kind: string; + name?: string | null | undefined; }; -export type SourceUnion6 = GetResourceDeploymentDetailSource6 | any; +export type SubjectUnion3 = Subject3 | any; -export type Event8 = { - count?: number | null | undefined; - details?: any | null | undefined; - eventId?: string | null | undefined; - eventTime?: Date | null | undefined; - firstTimestamp?: Date | null | undefined; - involvedObject?: InvolvedObject6 | any | null | undefined; - lastTimestamp?: Date | null | undefined; +export type Event11 = { + kind: string; message: string; raw?: any | null | undefined; - reason: string; - source?: GetResourceDeploymentDetailSource6 | any | null | undefined; - type?: string | null | undefined; + severity: EventSeverity3; + subject?: Subject3 | any | null | undefined; + timestamp: Date; }; -export const Reason15 = { +export const Reason18 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason15 = ClosedEnum; +export type Reason18 = ClosedEnum; -export const CollectionIssueSeverity15 = { +export const CollectionIssueSeverity18 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity15 = ClosedEnum< - typeof CollectionIssueSeverity15 +export type CollectionIssueSeverity18 = ClosedEnum< + typeof CollectionIssueSeverity18 >; -export type CollectionIssue15 = { +export type CollectionIssue18 = { message: string; - reason: Reason15; - severity: CollectionIssueSeverity15; + reason: Reason18; + severity: CollectionIssueSeverity18; source: string; }; -export const Health15 = { +export const Health18 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health15 = ClosedEnum; +export type Health18 = ClosedEnum; -export const Lifecycle15 = { +export const Lifecycle18 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -5161,37 +5349,32 @@ export const Lifecycle15 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle15 = ClosedEnum; +export type Lifecycle18 = ClosedEnum; -export type DataStatus15 = { - collectionIssues: Array; - health: Health15; - lifecycle: Lifecycle15; +export type DataStatus18 = { + collectionIssues: Array; + health: Health18; + lifecycle: Lifecycle18; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAzure1 = { - assignedMachines: number; - capacityGroup: string; +export type DataLocal4 = { commandSupported: boolean; - daemonInstances: Array; + daemonInstance?: DaemonInstance5 | any | null | undefined; daemonName?: string | undefined; - desiredMachines: number; - events: Array; - healthyInstances: number; - horizonClusterId: string; - horizonStatus: string; - horizonStatusMessage?: string | null | undefined; - horizonStatusReason?: string | null | undefined; - latestUpdateTimestamp: string; - status: DataStatus15; - unavailableInstances: number; - backend: "azure"; + events: Array; + exitReason?: string | null | undefined; + imagePathPresent: boolean; + pid?: number | null | undefined; + restartCount?: number | null | undefined; + runtimeId: string; + status: DataStatus18; + backend: "local"; }; -export const CpuDaemonInstanceUnit2 = { +export const CpuUnit6 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -5199,16 +5382,48 @@ export const CpuDaemonInstanceUnit2 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type CpuDaemonInstanceUnit2 = ClosedEnum; +export type CpuUnit6 = ClosedEnum; -export type CpuDaemonInstance2 = { - unit: CpuDaemonInstanceUnit2; +export type Cpu6 = { + unit: CpuUnit6; value: number; }; -export type DaemonInstanceCpuUnion2 = CpuDaemonInstance2 | any; +export type CpuUnion6 = Cpu6 | any; -export const MemoryDaemonInstanceUnit2 = { +export type InvolvedObject8 = { + apiVersion?: string | null | undefined; + fieldPath?: string | null | undefined; + kind?: string | null | undefined; + name?: string | null | undefined; + namespace?: string | null | undefined; + resourceVersion?: string | null | undefined; + uid?: string | null | undefined; +}; + +export type InvolvedObjectUnion8 = InvolvedObject8 | any; + +export type SourceEvent8 = { + component?: string | null | undefined; + host?: string | null | undefined; +}; + +export type SourceUnion8 = SourceEvent8 | any; + +export type Event10 = { + count?: number | null | undefined; + eventTime?: Date | null | undefined; + firstTimestamp?: Date | null | undefined; + involvedObject?: InvolvedObject8 | any | null | undefined; + lastTimestamp?: Date | null | undefined; + message: string; + raw?: any | null | undefined; + reason: string; + source?: SourceEvent8 | any | null | undefined; + type?: string | null | undefined; +}; + +export const MemoryUnit6 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -5216,105 +5431,114 @@ export const MemoryDaemonInstanceUnit2 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type MemoryDaemonInstanceUnit2 = ClosedEnum< - typeof MemoryDaemonInstanceUnit2 ->; +export type MemoryUnit6 = ClosedEnum; -export type MemoryDaemonInstance2 = { - unit: MemoryDaemonInstanceUnit2; +export type Memory6 = { + unit: MemoryUnit6; value: number; }; -export type DaemonInstanceMemoryUnion2 = MemoryDaemonInstance2 | any; +export type MemoryUnion6 = Memory6 | any; -export type DaemonInstance2 = { - cpu?: CpuDaemonInstance2 | any | null | undefined; - ip?: string | null | undefined; - machineId?: string | null | undefined; - memory?: MemoryDaemonInstance2 | any | null | undefined; - message?: string | null | undefined; - metricsHealthy?: boolean | null | undefined; - metricsLastUpdated?: string | null | undefined; - metricsStatus?: string | null | undefined; - name: string; - nodeName?: string | null | undefined; - phase?: string | null | undefined; - ready: boolean; - reason?: string | null | undefined; - replicaId: string; - restartCount?: number | null | undefined; - status?: string | null | undefined; - terminatedReason?: string | null | undefined; - waitingReason?: string | null | undefined; +export const CpuPodUnit3 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type CpuPodUnit3 = ClosedEnum; + +export type CpuPod3 = { + unit: CpuPodUnit3; + value: number; }; -export type InvolvedObject5 = { - details?: any | null | undefined; - id?: string | null | undefined; - kind?: string | null | undefined; - machineId?: string | null | undefined; - name?: string | null | undefined; - replicaId?: string | null | undefined; +export type PodCpuUnion3 = CpuPod3 | any; + +export const MemoryPodUnit3 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type MemoryPodUnit3 = ClosedEnum; + +export type MemoryPod3 = { + unit: MemoryPodUnit3; + value: number; }; -export type InvolvedObjectUnion5 = InvolvedObject5 | any; +export type PodMemoryUnion3 = MemoryPod3 | any; -export type GetResourceDeploymentDetailSource5 = { - component?: string | null | undefined; - host?: string | null | undefined; +export type OwnerReference3 = { + controller: boolean; + kind: string; + name: string; + uid: string; }; -export type SourceUnion5 = GetResourceDeploymentDetailSource5 | any; +export type Pod3 = { + cpu?: CpuPod3 | any | null | undefined; + memory?: MemoryPod3 | any | null | undefined; + name: string; + nodeName?: string | null | undefined; + ownerReferences: Array; + phase?: string | null | undefined; + podIp?: string | null | undefined; + ready: boolean; + restartCount: number; + terminatedReason?: string | null | undefined; + uid?: string | null | undefined; + waitingReason?: string | null | undefined; +}; -export type Event7 = { - count?: number | null | undefined; - details?: any | null | undefined; - eventId?: string | null | undefined; - eventTime?: Date | null | undefined; - firstTimestamp?: Date | null | undefined; - involvedObject?: InvolvedObject5 | any | null | undefined; - lastTimestamp?: Date | null | undefined; - message: string; - raw?: any | null | undefined; - reason: string; - source?: GetResourceDeploymentDetailSource5 | any | null | undefined; - type?: string | null | undefined; +export type Replicas4 = { + available?: number | null | undefined; + current?: number | null | undefined; + desired?: number | null | undefined; + misscheduled?: number | null | undefined; + ready?: number | null | undefined; + updated?: number | null | undefined; }; -export const Reason14 = { +export const Reason17 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason14 = ClosedEnum; +export type Reason17 = ClosedEnum; -export const CollectionIssueSeverity14 = { +export const CollectionIssueSeverity17 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity14 = ClosedEnum< - typeof CollectionIssueSeverity14 +export type CollectionIssueSeverity17 = ClosedEnum< + typeof CollectionIssueSeverity17 >; -export type CollectionIssue14 = { +export type CollectionIssue17 = { message: string; - reason: Reason14; - severity: CollectionIssueSeverity14; + reason: Reason17; + severity: CollectionIssueSeverity17; source: string; }; -export const Health14 = { +export const Health17 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health14 = ClosedEnum; +export type Health17 = ClosedEnum; -export const Lifecycle14 = { +export const Lifecycle17 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -5326,54 +5550,71 @@ export const Lifecycle14 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle14 = ClosedEnum; +export type Lifecycle17 = ClosedEnum; -export type DataStatus14 = { - collectionIssues: Array; - health: Health14; - lifecycle: Lifecycle14; +export type DataStatus17 = { + collectionIssues: Array; + health: Health17; + lifecycle: Lifecycle17; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataGcp1 = { - assignedMachines: number; - capacityGroup: string; - commandSupported: boolean; - daemonInstances: Array; - daemonName?: string | undefined; - desiredMachines: number; - events: Array; - healthyInstances: number; - horizonClusterId: string; - horizonStatus: string; - horizonStatusMessage?: string | null | undefined; - horizonStatusReason?: string | null | undefined; - latestUpdateTimestamp: string; - status: DataStatus14; - unavailableInstances: number; - backend: "gcp"; +export type WorkloadCondition3 = { + lastTransitionTime?: Date | null | undefined; + message?: string | null | undefined; + reason?: string | null | undefined; + status: string; + type: string; }; -export const CpuDaemonInstanceUnit1 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type CpuDaemonInstanceUnit1 = ClosedEnum; +export type Workload3 = { + availableReplicas?: number | null | undefined; + conditions: Array; + desiredGeneration?: number | null | undefined; + desiredReplicas?: number | null | undefined; + observedGeneration?: number | null | undefined; + readyReplicas?: number | null | undefined; + rolloutReason?: string | null | undefined; + updatedReplicas?: number | null | undefined; +}; -export type CpuDaemonInstance1 = { - unit: CpuDaemonInstanceUnit1; +export type WorkloadUnion3 = Workload3 | any; + +export type DataKubernetes3 = { + commandSupported: boolean; + cpu?: Cpu6 | any | null | undefined; + events: Array; + memory?: Memory6 | any | null | undefined; + name: string; + namespace: string; + pods: Array; + replicas: Replicas4; + restarts?: number | null | undefined; + status: DataStatus17; + workload?: Workload3 | any | null | undefined; + backend: "kubernetes"; +}; + +export const CpuDaemonInstanceUnit4 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type CpuDaemonInstanceUnit4 = ClosedEnum; + +export type CpuDaemonInstance4 = { + unit: CpuDaemonInstanceUnit4; value: number; }; -export type DaemonInstanceCpuUnion1 = CpuDaemonInstance1 | any; +export type DaemonInstanceCpuUnion4 = CpuDaemonInstance4 | any; -export const MemoryDaemonInstanceUnit1 = { +export const MemoryDaemonInstanceUnit4 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -5381,22 +5622,22 @@ export const MemoryDaemonInstanceUnit1 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type MemoryDaemonInstanceUnit1 = ClosedEnum< - typeof MemoryDaemonInstanceUnit1 +export type MemoryDaemonInstanceUnit4 = ClosedEnum< + typeof MemoryDaemonInstanceUnit4 >; -export type MemoryDaemonInstance1 = { - unit: MemoryDaemonInstanceUnit1; +export type MemoryDaemonInstance4 = { + unit: MemoryDaemonInstanceUnit4; value: number; }; -export type DaemonInstanceMemoryUnion1 = MemoryDaemonInstance1 | any; +export type DaemonInstanceMemoryUnion4 = MemoryDaemonInstance4 | any; -export type DaemonInstance1 = { - cpu?: CpuDaemonInstance1 | any | null | undefined; +export type DaemonInstance4 = { + cpu?: CpuDaemonInstance4 | any | null | undefined; ip?: string | null | undefined; machineId?: string | null | undefined; - memory?: MemoryDaemonInstance1 | any | null | undefined; + memory?: MemoryDaemonInstance4 | any | null | undefined; message?: string | null | undefined; metricsHealthy?: boolean | null | undefined; metricsLastUpdated?: string | null | undefined; @@ -5413,7 +5654,7 @@ export type DaemonInstance1 = { waitingReason?: string | null | undefined; }; -export type InvolvedObject4 = { +export type InvolvedObject7 = { details?: any | null | undefined; id?: string | null | undefined; kind?: string | null | undefined; @@ -5422,64 +5663,64 @@ export type InvolvedObject4 = { replicaId?: string | null | undefined; }; -export type InvolvedObjectUnion4 = InvolvedObject4 | any; +export type InvolvedObjectUnion7 = InvolvedObject7 | any; -export type GetResourceDeploymentDetailSource4 = { +export type SourceEvent7 = { component?: string | null | undefined; host?: string | null | undefined; }; -export type SourceUnion4 = GetResourceDeploymentDetailSource4 | any; +export type SourceUnion7 = SourceEvent7 | any; -export type Event6 = { +export type Event9 = { count?: number | null | undefined; details?: any | null | undefined; eventId?: string | null | undefined; eventTime?: Date | null | undefined; firstTimestamp?: Date | null | undefined; - involvedObject?: InvolvedObject4 | any | null | undefined; + involvedObject?: InvolvedObject7 | any | null | undefined; lastTimestamp?: Date | null | undefined; message: string; raw?: any | null | undefined; reason: string; - source?: GetResourceDeploymentDetailSource4 | any | null | undefined; + source?: SourceEvent7 | any | null | undefined; type?: string | null | undefined; }; -export const Reason13 = { +export const Reason16 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason13 = ClosedEnum; +export type Reason16 = ClosedEnum; -export const CollectionIssueSeverity13 = { +export const CollectionIssueSeverity16 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity13 = ClosedEnum< - typeof CollectionIssueSeverity13 +export type CollectionIssueSeverity16 = ClosedEnum< + typeof CollectionIssueSeverity16 >; -export type CollectionIssue13 = { +export type CollectionIssue16 = { message: string; - reason: Reason13; - severity: CollectionIssueSeverity13; + reason: Reason16; + severity: CollectionIssueSeverity16; source: string; }; -export const Health13 = { +export const Health16 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health13 = ClosedEnum; +export type Health16 = ClosedEnum; -export const Lifecycle13 = { +export const Lifecycle16 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -5491,56 +5732,38 @@ export const Lifecycle13 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle13 = ClosedEnum; +export type Lifecycle16 = ClosedEnum; -export type DataStatus13 = { - collectionIssues: Array; - health: Health13; - lifecycle: Lifecycle13; +export type DataStatus16 = { + collectionIssues: Array; + health: Health16; + lifecycle: Lifecycle16; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAws1 = { +export type DataMachines1 = { assignedMachines: number; capacityGroup: string; commandSupported: boolean; - daemonInstances: Array; + daemonInstances: Array; daemonName?: string | undefined; desiredMachines: number; - events: Array; + events: Array; healthyInstances: number; horizonClusterId: string; horizonStatus: string; horizonStatusMessage?: string | null | undefined; horizonStatusReason?: string | null | undefined; latestUpdateTimestamp: string; - status: DataStatus13; + observedImage?: string | null | undefined; + status: DataStatus16; unavailableInstances: number; - backend: "aws"; -}; - -export type DataUnion4 = - | DataAws1 - | DataGcp1 - | DataAzure1 - | DataMachines1 - | DataKubernetes3 - | DataLocal4; - -export type DataDaemon = { - data: - | DataAws1 - | DataGcp1 - | DataAzure1 - | DataMachines1 - | DataKubernetes3 - | DataLocal4; - resourceType: "daemon"; + backend: "machines"; }; -export const ContainerUnitCpuUnit = { +export const CpuDaemonInstanceUnit3 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -5548,23 +5771,16 @@ export const ContainerUnitCpuUnit = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type ContainerUnitCpuUnit = ClosedEnum; +export type CpuDaemonInstanceUnit3 = ClosedEnum; -export type ContainerUnitCpu = { - unit: ContainerUnitCpuUnit; +export type CpuDaemonInstance3 = { + unit: CpuDaemonInstanceUnit3; value: number; }; -export type ContainerUnitCpuUnion = ContainerUnitCpu | any; - -export const ContainerUnitKind = { - Container: "container", - Process: "process", - Daemon: "daemon", -} as const; -export type ContainerUnitKind = ClosedEnum; +export type DaemonInstanceCpuUnion3 = CpuDaemonInstance3 | any; -export const ContainerUnitMemoryUnit = { +export const MemoryDaemonInstanceUnit3 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -5572,123 +5788,105 @@ export const ContainerUnitMemoryUnit = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type ContainerUnitMemoryUnit = ClosedEnum< - typeof ContainerUnitMemoryUnit +export type MemoryDaemonInstanceUnit3 = ClosedEnum< + typeof MemoryDaemonInstanceUnit3 >; -export type ContainerUnitMemory = { - unit: ContainerUnitMemoryUnit; +export type MemoryDaemonInstance3 = { + unit: MemoryDaemonInstanceUnit3; value: number; }; -export type ContainerUnitMemoryUnion = ContainerUnitMemory | any; +export type DaemonInstanceMemoryUnion3 = MemoryDaemonInstance3 | any; -export type ContainerUnit = { - cpu?: ContainerUnitCpu | any | null | undefined; - kind: ContainerUnitKind; - memory?: ContainerUnitMemory | any | null | undefined; +export type DaemonInstance3 = { + cpu?: CpuDaemonInstance3 | any | null | undefined; + ip?: string | null | undefined; + machineId?: string | null | undefined; + memory?: MemoryDaemonInstance3 | any | null | undefined; + message?: string | null | undefined; + metricsHealthy?: boolean | null | undefined; + metricsLastUpdated?: string | null | undefined; + metricsStatus?: string | null | undefined; name: string; + nodeName?: string | null | undefined; phase?: string | null | undefined; - pid?: number | null | undefined; ready: boolean; + reason?: string | null | undefined; + replicaId: string; restartCount?: number | null | undefined; - unitId: string; -}; - -export type ContainerUnitUnion = ContainerUnit | any; - -export const CpuUnit5 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type CpuUnit5 = ClosedEnum; - -export type Cpu5 = { - unit: CpuUnit5; - value: number; + status?: string | null | undefined; + terminatedReason?: string | null | undefined; + waitingReason?: string | null | undefined; }; -export type CpuUnion5 = Cpu5 | any; - -export const EventSeverity2 = { - Info: "info", - Warning: "warning", - Error: "error", -} as const; -export type EventSeverity2 = ClosedEnum; - -export type Subject2 = { +export type InvolvedObject6 = { + details?: any | null | undefined; id?: string | null | undefined; - kind: string; + kind?: string | null | undefined; + machineId?: string | null | undefined; name?: string | null | undefined; + replicaId?: string | null | undefined; }; -export type SubjectUnion2 = Subject2 | any; +export type InvolvedObjectUnion6 = InvolvedObject6 | any; -export type Event5 = { - kind: string; - message: string; - raw?: any | null | undefined; - severity: EventSeverity2; - subject?: Subject2 | any | null | undefined; - timestamp: Date; +export type SourceEvent6 = { + component?: string | null | undefined; + host?: string | null | undefined; }; -export const MemoryUnit5 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type MemoryUnit5 = ClosedEnum; +export type SourceUnion6 = SourceEvent6 | any; -export type Memory5 = { - unit: MemoryUnit5; - value: number; +export type Event8 = { + count?: number | null | undefined; + details?: any | null | undefined; + eventId?: string | null | undefined; + eventTime?: Date | null | undefined; + firstTimestamp?: Date | null | undefined; + involvedObject?: InvolvedObject6 | any | null | undefined; + lastTimestamp?: Date | null | undefined; + message: string; + raw?: any | null | undefined; + reason: string; + source?: SourceEvent6 | any | null | undefined; + type?: string | null | undefined; }; -export type MemoryUnion5 = Memory5 | any; - -export const Reason12 = { +export const Reason15 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason12 = ClosedEnum; +export type Reason15 = ClosedEnum; -export const CollectionIssueSeverity12 = { +export const CollectionIssueSeverity15 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity12 = ClosedEnum< - typeof CollectionIssueSeverity12 +export type CollectionIssueSeverity15 = ClosedEnum< + typeof CollectionIssueSeverity15 >; -export type CollectionIssue12 = { +export type CollectionIssue15 = { message: string; - reason: Reason12; - severity: CollectionIssueSeverity12; + reason: Reason15; + severity: CollectionIssueSeverity15; source: string; }; -export const Health12 = { +export const Health15 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health12 = ClosedEnum; +export type Health15 = ClosedEnum; -export const Lifecycle12 = { +export const Lifecycle15 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -5700,102 +5898,38 @@ export const Lifecycle12 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle12 = ClosedEnum; +export type Lifecycle15 = ClosedEnum; -export type DataStatus12 = { - collectionIssues: Array; - health: Health12; - lifecycle: Lifecycle12; +export type DataStatus15 = { + collectionIssues: Array; + health: Health15; + lifecycle: Lifecycle15; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataLocal3 = { - bindMountCount: number; - containerId?: string | null | undefined; - containerUnit?: ContainerUnit | any | null | undefined; - cpu?: Cpu5 | any | null | undefined; - events: Array; - image?: string | null | undefined; - localUrl?: string | null | undefined; - memory?: Memory5 | any | null | undefined; - name?: string | null | undefined; - portCount: number; - restartCount?: number | null | undefined; - runtimeReachable: boolean; - runtimeStatus?: string | null | undefined; - status: DataStatus12; - backend: "local"; -}; - -export const CpuUnit4 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type CpuUnit4 = ClosedEnum; - -export type Cpu4 = { - unit: CpuUnit4; - value: number; -}; - -export type CpuUnion4 = Cpu4 | any; - -export type InvolvedObject3 = { - apiVersion?: string | null | undefined; - fieldPath?: string | null | undefined; - kind?: string | null | undefined; - name?: string | null | undefined; - namespace?: string | null | undefined; - resourceVersion?: string | null | undefined; - uid?: string | null | undefined; -}; - -export type InvolvedObjectUnion3 = InvolvedObject3 | any; - -export type GetResourceDeploymentDetailSource3 = { - component?: string | null | undefined; - host?: string | null | undefined; -}; - -export type SourceUnion3 = GetResourceDeploymentDetailSource3 | any; - -export type Event4 = { - count?: number | null | undefined; - eventTime?: Date | null | undefined; - firstTimestamp?: Date | null | undefined; - involvedObject?: InvolvedObject3 | any | null | undefined; - lastTimestamp?: Date | null | undefined; - message: string; - raw?: any | null | undefined; - reason: string; - source?: GetResourceDeploymentDetailSource3 | any | null | undefined; - type?: string | null | undefined; -}; - -export const MemoryUnit4 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type MemoryUnit4 = ClosedEnum; - -export type Memory4 = { - unit: MemoryUnit4; - value: number; +export type DataAzure1 = { + assignedMachines: number; + capacityGroup: string; + commandSupported: boolean; + daemonInstances: Array; + daemonName?: string | undefined; + desiredMachines: number; + events: Array; + healthyInstances: number; + horizonClusterId: string; + horizonStatus: string; + horizonStatusMessage?: string | null | undefined; + horizonStatusReason?: string | null | undefined; + latestUpdateTimestamp: string; + observedImage?: string | null | undefined; + status: DataStatus15; + unavailableInstances: number; + backend: "azure"; }; -export type MemoryUnion4 = Memory4 | any; - -export const CpuPodUnit2 = { +export const CpuDaemonInstanceUnit2 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -5803,16 +5937,16 @@ export const CpuPodUnit2 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type CpuPodUnit2 = ClosedEnum; +export type CpuDaemonInstanceUnit2 = ClosedEnum; -export type CpuPod2 = { - unit: CpuPodUnit2; +export type CpuDaemonInstance2 = { + unit: CpuDaemonInstanceUnit2; value: number; }; -export type PodCpuUnion2 = CpuPod2 | any; +export type DaemonInstanceCpuUnion2 = CpuDaemonInstance2 | any; -export const MemoryPodUnit2 = { +export const MemoryDaemonInstanceUnit2 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -5820,80 +5954,105 @@ export const MemoryPodUnit2 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type MemoryPodUnit2 = ClosedEnum; +export type MemoryDaemonInstanceUnit2 = ClosedEnum< + typeof MemoryDaemonInstanceUnit2 +>; -export type MemoryPod2 = { - unit: MemoryPodUnit2; +export type MemoryDaemonInstance2 = { + unit: MemoryDaemonInstanceUnit2; value: number; }; -export type PodMemoryUnion2 = MemoryPod2 | any; - -export type OwnerReference2 = { - controller: boolean; - kind: string; - name: string; - uid: string; -}; +export type DaemonInstanceMemoryUnion2 = MemoryDaemonInstance2 | any; -export type Pod2 = { - cpu?: CpuPod2 | any | null | undefined; - memory?: MemoryPod2 | any | null | undefined; +export type DaemonInstance2 = { + cpu?: CpuDaemonInstance2 | any | null | undefined; + ip?: string | null | undefined; + machineId?: string | null | undefined; + memory?: MemoryDaemonInstance2 | any | null | undefined; + message?: string | null | undefined; + metricsHealthy?: boolean | null | undefined; + metricsLastUpdated?: string | null | undefined; + metricsStatus?: string | null | undefined; name: string; nodeName?: string | null | undefined; - ownerReferences: Array; phase?: string | null | undefined; - podIp?: string | null | undefined; ready: boolean; - restartCount: number; + reason?: string | null | undefined; + replicaId: string; + restartCount?: number | null | undefined; + status?: string | null | undefined; terminatedReason?: string | null | undefined; - uid?: string | null | undefined; waitingReason?: string | null | undefined; }; -export type Replicas3 = { - available?: number | null | undefined; - current?: number | null | undefined; - desired?: number | null | undefined; - misscheduled?: number | null | undefined; - ready?: number | null | undefined; - updated?: number | null | undefined; +export type InvolvedObject5 = { + details?: any | null | undefined; + id?: string | null | undefined; + kind?: string | null | undefined; + machineId?: string | null | undefined; + name?: string | null | undefined; + replicaId?: string | null | undefined; }; -export const Reason11 = { +export type InvolvedObjectUnion5 = InvolvedObject5 | any; + +export type SourceEvent5 = { + component?: string | null | undefined; + host?: string | null | undefined; +}; + +export type SourceUnion5 = SourceEvent5 | any; + +export type Event7 = { + count?: number | null | undefined; + details?: any | null | undefined; + eventId?: string | null | undefined; + eventTime?: Date | null | undefined; + firstTimestamp?: Date | null | undefined; + involvedObject?: InvolvedObject5 | any | null | undefined; + lastTimestamp?: Date | null | undefined; + message: string; + raw?: any | null | undefined; + reason: string; + source?: SourceEvent5 | any | null | undefined; + type?: string | null | undefined; +}; + +export const Reason14 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason11 = ClosedEnum; +export type Reason14 = ClosedEnum; -export const CollectionIssueSeverity11 = { +export const CollectionIssueSeverity14 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity11 = ClosedEnum< - typeof CollectionIssueSeverity11 +export type CollectionIssueSeverity14 = ClosedEnum< + typeof CollectionIssueSeverity14 >; -export type CollectionIssue11 = { +export type CollectionIssue14 = { message: string; - reason: Reason11; - severity: CollectionIssueSeverity11; + reason: Reason14; + severity: CollectionIssueSeverity14; source: string; }; -export const Health11 = { +export const Health14 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health11 = ClosedEnum; +export type Health14 = ClosedEnum; -export const Lifecycle11 = { +export const Lifecycle14 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -5905,130 +6064,38 @@ export const Lifecycle11 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle11 = ClosedEnum; +export type Lifecycle14 = ClosedEnum; -export type DataStatus11 = { - collectionIssues: Array; - health: Health11; - lifecycle: Lifecycle11; +export type DataStatus14 = { + collectionIssues: Array; + health: Health14; + lifecycle: Lifecycle14; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type WorkloadCondition2 = { - lastTransitionTime?: Date | null | undefined; - message?: string | null | undefined; - reason?: string | null | undefined; - status: string; - type: string; +export type DataGcp1 = { + assignedMachines: number; + capacityGroup: string; + commandSupported: boolean; + daemonInstances: Array; + daemonName?: string | undefined; + desiredMachines: number; + events: Array; + healthyInstances: number; + horizonClusterId: string; + horizonStatus: string; + horizonStatusMessage?: string | null | undefined; + horizonStatusReason?: string | null | undefined; + latestUpdateTimestamp: string; + observedImage?: string | null | undefined; + status: DataStatus14; + unavailableInstances: number; + backend: "gcp"; }; -export type Workload2 = { - availableReplicas?: number | null | undefined; - conditions: Array; - desiredGeneration?: number | null | undefined; - desiredReplicas?: number | null | undefined; - observedGeneration?: number | null | undefined; - readyReplicas?: number | null | undefined; - rolloutReason?: string | null | undefined; - updatedReplicas?: number | null | undefined; -}; - -export type WorkloadUnion2 = Workload2 | any; - -export const WorkloadKind2 = { - Deployment: "deployment", - StatefulSet: "statefulSet", - DaemonSet: "daemonSet", - ReplicaSet: "replicaSet", - Pod: "pod", -} as const; -export type WorkloadKind2 = ClosedEnum; - -export type DataKubernetes2 = { - cpu?: Cpu4 | any | null | undefined; - events: Array; - memory?: Memory4 | any | null | undefined; - name: string; - namespace: string; - pods: Array; - replicas: Replicas3; - restarts?: number | null | undefined; - status: DataStatus11; - workload?: Workload2 | any | null | undefined; - workloadKind: WorkloadKind2; - backend: "kubernetes"; -}; - -export const CpuUnit3 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type CpuUnit3 = ClosedEnum; - -export type Cpu3 = { - unit: CpuUnit3; - value: number; -}; - -export type CpuUnion3 = Cpu3 | any; - -export type InvolvedObject2 = { - details?: any | null | undefined; - id?: string | null | undefined; - kind?: string | null | undefined; - machineId?: string | null | undefined; - name?: string | null | undefined; - replicaId?: string | null | undefined; -}; - -export type InvolvedObjectUnion2 = InvolvedObject2 | any; - -export type GetResourceDeploymentDetailSource2 = { - component?: string | null | undefined; - host?: string | null | undefined; -}; - -export type SourceUnion2 = GetResourceDeploymentDetailSource2 | any; - -export type Event3 = { - count?: number | null | undefined; - details?: any | null | undefined; - eventId?: string | null | undefined; - eventTime?: Date | null | undefined; - firstTimestamp?: Date | null | undefined; - involvedObject?: InvolvedObject2 | any | null | undefined; - lastTimestamp?: Date | null | undefined; - message: string; - raw?: any | null | undefined; - reason: string; - source?: GetResourceDeploymentDetailSource2 | any | null | undefined; - type?: string | null | undefined; -}; - -export const MemoryUnit3 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type MemoryUnit3 = ClosedEnum; - -export type Memory3 = { - unit: MemoryUnit3; - value: number; -}; - -export type MemoryUnion3 = Memory3 | any; - -export const CpuReplicaUnitUnit = { +export const CpuDaemonInstanceUnit1 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -6036,16 +6103,16 @@ export const CpuReplicaUnitUnit = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type CpuReplicaUnitUnit = ClosedEnum; +export type CpuDaemonInstanceUnit1 = ClosedEnum; -export type CpuReplicaUnit = { - unit: CpuReplicaUnitUnit; +export type CpuDaemonInstance1 = { + unit: CpuDaemonInstanceUnit1; value: number; }; -export type ReplicaUnitCpuUnion = CpuReplicaUnit | any; +export type DaemonInstanceCpuUnion1 = CpuDaemonInstance1 | any; -export const MemoryReplicaUnitUnit = { +export const MemoryDaemonInstanceUnit1 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -6053,20 +6120,22 @@ export const MemoryReplicaUnitUnit = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type MemoryReplicaUnitUnit = ClosedEnum; +export type MemoryDaemonInstanceUnit1 = ClosedEnum< + typeof MemoryDaemonInstanceUnit1 +>; -export type MemoryReplicaUnit = { - unit: MemoryReplicaUnitUnit; +export type MemoryDaemonInstance1 = { + unit: MemoryDaemonInstanceUnit1; value: number; }; -export type ReplicaUnitMemoryUnion = MemoryReplicaUnit | any; +export type DaemonInstanceMemoryUnion1 = MemoryDaemonInstance1 | any; -export type ReplicaUnit = { - cpu?: CpuReplicaUnit | any | null | undefined; +export type DaemonInstance1 = { + cpu?: CpuDaemonInstance1 | any | null | undefined; ip?: string | null | undefined; machineId?: string | null | undefined; - memory?: MemoryReplicaUnit | any | null | undefined; + memory?: MemoryDaemonInstance1 | any | null | undefined; message?: string | null | undefined; metricsHealthy?: boolean | null | undefined; metricsLastUpdated?: string | null | undefined; @@ -6083,56 +6152,73 @@ export type ReplicaUnit = { waitingReason?: string | null | undefined; }; -export type Replicas2 = { - available?: number | null | undefined; - current?: number | null | undefined; - desired?: number | null | undefined; - misscheduled?: number | null | undefined; - ready?: number | null | undefined; - updated?: number | null | undefined; +export type InvolvedObject4 = { + details?: any | null | undefined; + id?: string | null | undefined; + kind?: string | null | undefined; + machineId?: string | null | undefined; + name?: string | null | undefined; + replicaId?: string | null | undefined; }; -export const SchedulingMode = { - Replicated: "replicated", - Stateful: "stateful", - Daemon: "daemon", -} as const; -export type SchedulingMode = ClosedEnum; +export type InvolvedObjectUnion4 = InvolvedObject4 | any; -export const Reason10 = { +export type SourceEvent4 = { + component?: string | null | undefined; + host?: string | null | undefined; +}; + +export type SourceUnion4 = SourceEvent4 | any; + +export type Event6 = { + count?: number | null | undefined; + details?: any | null | undefined; + eventId?: string | null | undefined; + eventTime?: Date | null | undefined; + firstTimestamp?: Date | null | undefined; + involvedObject?: InvolvedObject4 | any | null | undefined; + lastTimestamp?: Date | null | undefined; + message: string; + raw?: any | null | undefined; + reason: string; + source?: SourceEvent4 | any | null | undefined; + type?: string | null | undefined; +}; + +export const Reason13 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason10 = ClosedEnum; +export type Reason13 = ClosedEnum; -export const CollectionIssueSeverity10 = { +export const CollectionIssueSeverity13 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity10 = ClosedEnum< - typeof CollectionIssueSeverity10 +export type CollectionIssueSeverity13 = ClosedEnum< + typeof CollectionIssueSeverity13 >; -export type CollectionIssue10 = { +export type CollectionIssue13 = { message: string; - reason: Reason10; - severity: CollectionIssueSeverity10; + reason: Reason13; + severity: CollectionIssueSeverity13; source: string; }; -export const Health10 = { +export const Health13 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health10 = ClosedEnum; +export type Health13 = ClosedEnum; -export const Lifecycle10 = { +export const Lifecycle13 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -6144,39 +6230,57 @@ export const Lifecycle10 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle10 = ClosedEnum; +export type Lifecycle13 = ClosedEnum; -export type DataStatus10 = { - collectionIssues: Array; - health: Health10; - lifecycle: Lifecycle10; +export type DataStatus13 = { + collectionIssues: Array; + health: Health13; + lifecycle: Lifecycle13; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataHorizonPlatform = { - attentionCount: number; - containerId: string; - cpu?: Cpu3 | any | null | undefined; - events: Array; - image?: string | null | undefined; - memory?: Memory3 | any | null | undefined; - replicaUnits: Array; - replicas: Replicas2; - schedulingMode: SchedulingMode; - status: DataStatus10; - backend: "horizonPlatform"; +export type DataAws1 = { + assignedMachines: number; + capacityGroup: string; + commandSupported: boolean; + daemonInstances: Array; + daemonName?: string | undefined; + desiredMachines: number; + events: Array; + healthyInstances: number; + horizonClusterId: string; + horizonStatus: string; + horizonStatusMessage?: string | null | undefined; + horizonStatusReason?: string | null | undefined; + latestUpdateTimestamp: string; + observedImage?: string | null | undefined; + status: DataStatus13; + unavailableInstances: number; + backend: "aws"; }; -export type DataUnion3 = DataHorizonPlatform | DataKubernetes2 | DataLocal3; +export type DataUnion4 = + | DataAws1 + | DataGcp1 + | DataAzure1 + | DataMachines1 + | DataKubernetes3 + | DataLocal4; -export type DataContainer = { - data: DataHorizonPlatform | DataKubernetes2 | DataLocal3; - resourceType: "container"; +export type DataDaemon = { + data: + | DataAws1 + | DataGcp1 + | DataAzure1 + | DataMachines1 + | DataKubernetes3 + | DataLocal4; + resourceType: "daemon"; }; -export const CpuUnit2 = { +export const ContainerUnitCpuUnit = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -6184,40 +6288,23 @@ export const CpuUnit2 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type CpuUnit2 = ClosedEnum; +export type ContainerUnitCpuUnit = ClosedEnum; -export type Cpu2 = { - unit: CpuUnit2; +export type ContainerUnitCpu = { + unit: ContainerUnitCpuUnit; value: number; }; -export type CpuUnion2 = Cpu2 | any; +export type ContainerUnitCpuUnion = ContainerUnitCpu | any; -export const EventSeverity1 = { - Info: "info", - Warning: "warning", - Error: "error", +export const ContainerUnitKind = { + Container: "container", + Process: "process", + Daemon: "daemon", } as const; -export type EventSeverity1 = ClosedEnum; - -export type Subject1 = { - id?: string | null | undefined; - kind: string; - name?: string | null | undefined; -}; - -export type SubjectUnion1 = Subject1 | any; - -export type Event2 = { - kind: string; - message: string; - raw?: any | null | undefined; - severity: EventSeverity1; - subject?: Subject1 | any | null | undefined; - timestamp: Date; -}; +export type ContainerUnitKind = ClosedEnum; -export const MemoryUnit2 = { +export const ContainerUnitMemoryUnit = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -6225,16 +6312,32 @@ export const MemoryUnit2 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type MemoryUnit2 = ClosedEnum; +export type ContainerUnitMemoryUnit = ClosedEnum< + typeof ContainerUnitMemoryUnit +>; -export type Memory2 = { - unit: MemoryUnit2; +export type ContainerUnitMemory = { + unit: ContainerUnitMemoryUnit; value: number; }; -export type MemoryUnion2 = Memory2 | any; +export type ContainerUnitMemoryUnion = ContainerUnitMemory | any; -export const ProcessCpuUnit = { +export type ContainerUnit = { + cpu?: ContainerUnitCpu | any | null | undefined; + kind: ContainerUnitKind; + memory?: ContainerUnitMemory | any | null | undefined; + name: string; + phase?: string | null | undefined; + pid?: number | null | undefined; + ready: boolean; + restartCount?: number | null | undefined; + unitId: string; +}; + +export type ContainerUnitUnion = ContainerUnit | any; + +export const CpuUnit5 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -6242,23 +6345,40 @@ export const ProcessCpuUnit = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type ProcessCpuUnit = ClosedEnum; +export type CpuUnit5 = ClosedEnum; -export type ProcessCpu = { - unit: ProcessCpuUnit; +export type Cpu5 = { + unit: CpuUnit5; value: number; }; -export type ProcessCpuUnion = ProcessCpu | any; +export type CpuUnion5 = Cpu5 | any; -export const ProcessKind = { - Container: "container", - Process: "process", - Daemon: "daemon", +export const EventSeverity2 = { + Info: "info", + Warning: "warning", + Error: "error", } as const; -export type ProcessKind = ClosedEnum; +export type EventSeverity2 = ClosedEnum; -export const ProcessMemoryUnit = { +export type Subject2 = { + id?: string | null | undefined; + kind: string; + name?: string | null | undefined; +}; + +export type SubjectUnion2 = Subject2 | any; + +export type Event5 = { + kind: string; + message: string; + raw?: any | null | undefined; + severity: EventSeverity2; + subject?: Subject2 | any | null | undefined; + timestamp: Date; +}; + +export const MemoryUnit5 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -6266,63 +6386,49 @@ export const ProcessMemoryUnit = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type ProcessMemoryUnit = ClosedEnum; +export type MemoryUnit5 = ClosedEnum; -export type ProcessMemory = { - unit: ProcessMemoryUnit; +export type Memory5 = { + unit: MemoryUnit5; value: number; }; -export type ProcessMemoryUnion = ProcessMemory | any; - -export type Process = { - cpu?: ProcessCpu | any | null | undefined; - kind: ProcessKind; - memory?: ProcessMemory | any | null | undefined; - name: string; - phase?: string | null | undefined; - pid?: number | null | undefined; - ready: boolean; - restartCount?: number | null | undefined; - unitId: string; -}; - -export type ProcessUnion = Process | any; +export type MemoryUnion5 = Memory5 | any; -export const Reason9 = { +export const Reason12 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason9 = ClosedEnum; +export type Reason12 = ClosedEnum; -export const CollectionIssueSeverity9 = { +export const CollectionIssueSeverity12 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity9 = ClosedEnum< - typeof CollectionIssueSeverity9 +export type CollectionIssueSeverity12 = ClosedEnum< + typeof CollectionIssueSeverity12 >; -export type CollectionIssue9 = { +export type CollectionIssue12 = { message: string; - reason: Reason9; - severity: CollectionIssueSeverity9; + reason: Reason12; + severity: CollectionIssueSeverity12; source: string; }; -export const Health9 = { +export const Health12 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health9 = ClosedEnum; +export type Health12 = ClosedEnum; -export const Lifecycle9 = { +export const Lifecycle12 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -6334,32 +6440,36 @@ export const Lifecycle9 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle9 = ClosedEnum; +export type Lifecycle12 = ClosedEnum; -export type DataStatus9 = { - collectionIssues: Array; - health: Health9; - lifecycle: Lifecycle9; +export type DataStatus12 = { + collectionIssues: Array; + health: Health12; + lifecycle: Lifecycle12; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataLocal2 = { - commandSupported: boolean; - cpu?: Cpu2 | any | null | undefined; - events: Array; - imagePathPresent: boolean; - memory?: Memory2 | any | null | undefined; - pid?: number | null | undefined; - process?: Process | any | null | undefined; - readinessProbeOk?: boolean | null | undefined; - status: DataStatus9; - triggerCount: number; +export type DataLocal3 = { + bindMountCount: number; + containerId?: string | null | undefined; + containerUnit?: ContainerUnit | any | null | undefined; + cpu?: Cpu5 | any | null | undefined; + events: Array; + image?: string | null | undefined; + localUrl?: string | null | undefined; + memory?: Memory5 | any | null | undefined; + name?: string | null | undefined; + portCount: number; + restartCount?: number | null | undefined; + runtimeReachable: boolean; + runtimeStatus?: string | null | undefined; + status: DataStatus12; backend: "local"; }; -export const CpuUnit1 = { +export const CpuUnit4 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -6367,16 +6477,16 @@ export const CpuUnit1 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type CpuUnit1 = ClosedEnum; +export type CpuUnit4 = ClosedEnum; -export type Cpu1 = { - unit: CpuUnit1; +export type Cpu4 = { + unit: CpuUnit4; value: number; }; -export type CpuUnion1 = Cpu1 | any; +export type CpuUnion4 = Cpu4 | any; -export type InvolvedObject1 = { +export type InvolvedObject3 = { apiVersion?: string | null | undefined; fieldPath?: string | null | undefined; kind?: string | null | undefined; @@ -6386,29 +6496,29 @@ export type InvolvedObject1 = { uid?: string | null | undefined; }; -export type InvolvedObjectUnion1 = InvolvedObject1 | any; +export type InvolvedObjectUnion3 = InvolvedObject3 | any; -export type GetResourceDeploymentDetailSource1 = { +export type SourceEvent3 = { component?: string | null | undefined; host?: string | null | undefined; }; -export type SourceUnion1 = GetResourceDeploymentDetailSource1 | any; +export type SourceUnion3 = SourceEvent3 | any; -export type Event1 = { +export type Event4 = { count?: number | null | undefined; eventTime?: Date | null | undefined; firstTimestamp?: Date | null | undefined; - involvedObject?: InvolvedObject1 | any | null | undefined; + involvedObject?: InvolvedObject3 | any | null | undefined; lastTimestamp?: Date | null | undefined; message: string; raw?: any | null | undefined; reason: string; - source?: GetResourceDeploymentDetailSource1 | any | null | undefined; + source?: SourceEvent3 | any | null | undefined; type?: string | null | undefined; }; -export const MemoryUnit1 = { +export const MemoryUnit4 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -6416,16 +6526,16 @@ export const MemoryUnit1 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type MemoryUnit1 = ClosedEnum; +export type MemoryUnit4 = ClosedEnum; -export type Memory1 = { - unit: MemoryUnit1; +export type Memory4 = { + unit: MemoryUnit4; value: number; }; -export type MemoryUnion1 = Memory1 | any; +export type MemoryUnion4 = Memory4 | any; -export const CpuPodUnit1 = { +export const CpuPodUnit2 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -6433,16 +6543,16 @@ export const CpuPodUnit1 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type CpuPodUnit1 = ClosedEnum; +export type CpuPodUnit2 = ClosedEnum; -export type CpuPod1 = { - unit: CpuPodUnit1; +export type CpuPod2 = { + unit: CpuPodUnit2; value: number; }; -export type PodCpuUnion1 = CpuPod1 | any; +export type PodCpuUnion2 = CpuPod2 | any; -export const MemoryPodUnit1 = { +export const MemoryPodUnit2 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -6450,28 +6560,28 @@ export const MemoryPodUnit1 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type MemoryPodUnit1 = ClosedEnum; +export type MemoryPodUnit2 = ClosedEnum; -export type MemoryPod1 = { - unit: MemoryPodUnit1; +export type MemoryPod2 = { + unit: MemoryPodUnit2; value: number; }; -export type PodMemoryUnion1 = MemoryPod1 | any; +export type PodMemoryUnion2 = MemoryPod2 | any; -export type OwnerReference1 = { +export type OwnerReference2 = { controller: boolean; kind: string; name: string; uid: string; }; -export type Pod1 = { - cpu?: CpuPod1 | any | null | undefined; - memory?: MemoryPod1 | any | null | undefined; +export type Pod2 = { + cpu?: CpuPod2 | any | null | undefined; + memory?: MemoryPod2 | any | null | undefined; name: string; nodeName?: string | null | undefined; - ownerReferences: Array; + ownerReferences: Array; phase?: string | null | undefined; podIp?: string | null | undefined; ready: boolean; @@ -6481,7 +6591,7 @@ export type Pod1 = { waitingReason?: string | null | undefined; }; -export type Replicas1 = { +export type Replicas3 = { available?: number | null | undefined; current?: number | null | undefined; desired?: number | null | undefined; @@ -6490,40 +6600,40 @@ export type Replicas1 = { updated?: number | null | undefined; }; -export const Reason8 = { +export const Reason11 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason8 = ClosedEnum; +export type Reason11 = ClosedEnum; -export const CollectionIssueSeverity8 = { +export const CollectionIssueSeverity11 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity8 = ClosedEnum< - typeof CollectionIssueSeverity8 +export type CollectionIssueSeverity11 = ClosedEnum< + typeof CollectionIssueSeverity11 >; -export type CollectionIssue8 = { +export type CollectionIssue11 = { message: string; - reason: Reason8; - severity: CollectionIssueSeverity8; + reason: Reason11; + severity: CollectionIssueSeverity11; source: string; }; -export const Health8 = { +export const Health11 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health8 = ClosedEnum; +export type Health11 = ClosedEnum; -export const Lifecycle8 = { +export const Lifecycle11 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -6535,18 +6645,18 @@ export const Lifecycle8 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle8 = ClosedEnum; +export type Lifecycle11 = ClosedEnum; -export type DataStatus8 = { - collectionIssues: Array; - health: Health8; - lifecycle: Lifecycle8; +export type DataStatus11 = { + collectionIssues: Array; + health: Health11; + lifecycle: Lifecycle11; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type WorkloadCondition1 = { +export type WorkloadCondition2 = { lastTransitionTime?: Date | null | undefined; message?: string | null | undefined; reason?: string | null | undefined; @@ -6554,9 +6664,9 @@ export type WorkloadCondition1 = { type: string; }; -export type Workload1 = { +export type Workload2 = { availableReplicas?: number | null | undefined; - conditions: Array; + conditions: Array; desiredGeneration?: number | null | undefined; desiredReplicas?: number | null | undefined; observedGeneration?: number | null | undefined; @@ -6565,138 +6675,204 @@ export type Workload1 = { updatedReplicas?: number | null | undefined; }; -export type WorkloadUnion1 = Workload1 | any; +export type WorkloadUnion2 = Workload2 | any; -export const WorkloadKind1 = { +export const WorkloadKind2 = { Deployment: "deployment", StatefulSet: "statefulSet", DaemonSet: "daemonSet", ReplicaSet: "replicaSet", Pod: "pod", } as const; -export type WorkloadKind1 = ClosedEnum; +export type WorkloadKind2 = ClosedEnum; -export type DataKubernetes1 = { - cpu?: Cpu1 | any | null | undefined; - events: Array; - memory?: Memory1 | any | null | undefined; +export type DataKubernetes2 = { + cpu?: Cpu4 | any | null | undefined; + events: Array; + memory?: Memory4 | any | null | undefined; name: string; namespace: string; - pods: Array; - replicas: Replicas1; + pods: Array; + replicas: Replicas3; restarts?: number | null | undefined; - status: DataStatus8; - triggerCount: number; - workload?: Workload1 | any | null | undefined; - workloadKind: WorkloadKind1; + status: DataStatus11; + workload?: Workload2 | any | null | undefined; + workloadKind: WorkloadKind2; backend: "kubernetes"; }; -export const Reason7 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", +export const CpuUnit3 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", } as const; -export type Reason7 = ClosedEnum; +export type CpuUnit3 = ClosedEnum; -export const CollectionIssueSeverity7 = { - Info: "info", - Warning: "warning", - Error: "error", -} as const; -export type CollectionIssueSeverity7 = ClosedEnum< - typeof CollectionIssueSeverity7 ->; +export type Cpu3 = { + unit: CpuUnit3; + value: number; +}; -export type CollectionIssue7 = { +export type CpuUnion3 = Cpu3 | any; + +export type InvolvedObject2 = { + details?: any | null | undefined; + id?: string | null | undefined; + kind?: string | null | undefined; + machineId?: string | null | undefined; + name?: string | null | undefined; + replicaId?: string | null | undefined; +}; + +export type InvolvedObjectUnion2 = InvolvedObject2 | any; + +export type SourceEvent2 = { + component?: string | null | undefined; + host?: string | null | undefined; +}; + +export type SourceUnion2 = SourceEvent2 | any; + +export type Event3 = { + count?: number | null | undefined; + details?: any | null | undefined; + eventId?: string | null | undefined; + eventTime?: Date | null | undefined; + firstTimestamp?: Date | null | undefined; + involvedObject?: InvolvedObject2 | any | null | undefined; + lastTimestamp?: Date | null | undefined; message: string; - reason: Reason7; - severity: CollectionIssueSeverity7; - source: string; + raw?: any | null | undefined; + reason: string; + source?: SourceEvent2 | any | null | undefined; + type?: string | null | undefined; }; -export const Health7 = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", +export const MemoryUnit3 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", } as const; -export type Health7 = ClosedEnum; +export type MemoryUnit3 = ClosedEnum; -export const Lifecycle7 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", +export type Memory3 = { + unit: MemoryUnit3; + value: number; +}; + +export type MemoryUnion3 = Memory3 | any; + +export const CpuReplicaUnitUnit = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", } as const; -export type Lifecycle7 = ClosedEnum; +export type CpuReplicaUnitUnit = ClosedEnum; -export type DataStatus7 = { - collectionIssues: Array; - health: Health7; - lifecycle: Lifecycle7; +export type CpuReplicaUnit = { + unit: CpuReplicaUnitUnit; + value: number; +}; + +export type ReplicaUnitCpuUnion = CpuReplicaUnit | any; + +export const MemoryReplicaUnitUnit = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type MemoryReplicaUnitUnit = ClosedEnum; + +export type MemoryReplicaUnit = { + unit: MemoryReplicaUnitUnit; + value: number; +}; + +export type ReplicaUnitMemoryUnion = MemoryReplicaUnit | any; + +export type ReplicaUnit = { + cpu?: CpuReplicaUnit | any | null | undefined; + ip?: string | null | undefined; + machineId?: string | null | undefined; + memory?: MemoryReplicaUnit | any | null | undefined; message?: string | null | undefined; - partial: boolean; - stale: boolean; + metricsHealthy?: boolean | null | undefined; + metricsLastUpdated?: string | null | undefined; + metricsStatus?: string | null | undefined; + name: string; + nodeName?: string | null | undefined; + phase?: string | null | undefined; + ready: boolean; + reason?: string | null | undefined; + replicaId: string; + restartCount?: number | null | undefined; + status?: string | null | undefined; + terminatedReason?: string | null | undefined; + waitingReason?: string | null | undefined; }; -export type DataAzureContainerApps1 = { - appName: string; - cpu?: number | null | undefined; - environmentName?: string | null | undefined; - ingressFqdn?: string | null | undefined; - maxReplicas?: number | null | undefined; - memory?: string | null | undefined; - minReplicas?: number | null | undefined; - provisioningState?: string | null | undefined; - revision?: string | null | undefined; - runningStatus?: string | null | undefined; - status: DataStatus7; - backend: "azureContainerApps"; +export type Replicas2 = { + available?: number | null | undefined; + current?: number | null | undefined; + desired?: number | null | undefined; + misscheduled?: number | null | undefined; + ready?: number | null | undefined; + updated?: number | null | undefined; }; -export const Reason6 = { +export const SchedulingMode = { + Replicated: "replicated", + Stateful: "stateful", + Daemon: "daemon", +} as const; +export type SchedulingMode = ClosedEnum; + +export const Reason10 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason6 = ClosedEnum; +export type Reason10 = ClosedEnum; -export const CollectionIssueSeverity6 = { +export const CollectionIssueSeverity10 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity6 = ClosedEnum< - typeof CollectionIssueSeverity6 +export type CollectionIssueSeverity10 = ClosedEnum< + typeof CollectionIssueSeverity10 >; -export type CollectionIssue6 = { +export type CollectionIssue10 = { message: string; - reason: Reason6; - severity: CollectionIssueSeverity6; + reason: Reason10; + severity: CollectionIssueSeverity10; source: string; }; -export const Health6 = { +export const Health10 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health6 = ClosedEnum; +export type Health10 = ClosedEnum; -export const Lifecycle6 = { +export const Lifecycle10 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -6708,167 +6884,187 @@ export const Lifecycle6 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle6 = ClosedEnum; +export type Lifecycle10 = ClosedEnum; -export type DataStatus6 = { - collectionIssues: Array; - health: Health6; - lifecycle: Lifecycle6; +export type DataStatus10 = { + collectionIssues: Array; + health: Health10; + lifecycle: Lifecycle10; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataGcpCloudRun = { - containerImage?: string | null | undefined; - cpuLimit?: string | null | undefined; - generation?: number | null | undefined; - latestCreatedRevision?: string | null | undefined; - latestReadyRevision?: string | null | undefined; - maxInstanceCount?: number | null | undefined; - memoryLimit?: string | null | undefined; - minInstanceCount?: number | null | undefined; - observedGeneration?: number | null | undefined; - region?: string | null | undefined; - service: string; - status: DataStatus6; - trafficCount: number; - uri?: string | null | undefined; - urls: Array; - backend: "gcpCloudRun"; +export type DataHorizonPlatform = { + attentionCount: number; + containerId: string; + cpu?: Cpu3 | any | null | undefined; + events: Array; + image?: string | null | undefined; + latestUpdateTimestamp?: string | null | undefined; + memory?: Memory3 | any | null | undefined; + observedImage?: string | null | undefined; + replicaUnits: Array; + replicas: Replicas2; + schedulingMode: SchedulingMode; + status: DataStatus10; + backend: "horizonPlatform"; }; -export const Reason5 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", +export type DataUnion3 = DataHorizonPlatform | DataKubernetes2 | DataLocal3; + +export type DataContainer = { + data: DataHorizonPlatform | DataKubernetes2 | DataLocal3; + resourceType: "container"; +}; + +export const CpuUnit2 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", } as const; -export type Reason5 = ClosedEnum; +export type CpuUnit2 = ClosedEnum; -export const CollectionIssueSeverity5 = { +export type Cpu2 = { + unit: CpuUnit2; + value: number; +}; + +export type CpuUnion2 = Cpu2 | any; + +export const EventSeverity1 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity5 = ClosedEnum< - typeof CollectionIssueSeverity5 ->; +export type EventSeverity1 = ClosedEnum; -export type CollectionIssue5 = { +export type Subject1 = { + id?: string | null | undefined; + kind: string; + name?: string | null | undefined; +}; + +export type SubjectUnion1 = Subject1 | any; + +export type Event2 = { + kind: string; message: string; - reason: Reason5; - severity: CollectionIssueSeverity5; - source: string; + raw?: any | null | undefined; + severity: EventSeverity1; + subject?: Subject1 | any | null | undefined; + timestamp: Date; }; -export const Health5 = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", +export const MemoryUnit2 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", } as const; -export type Health5 = ClosedEnum; +export type MemoryUnit2 = ClosedEnum; -export const Lifecycle5 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", +export type Memory2 = { + unit: MemoryUnit2; + value: number; +}; + +export type MemoryUnion2 = Memory2 | any; + +export const ProcessCpuUnit = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", } as const; -export type Lifecycle5 = ClosedEnum; +export type ProcessCpuUnit = ClosedEnum; -export type DataStatus5 = { - collectionIssues: Array; - health: Health5; - lifecycle: Lifecycle5; - message?: string | null | undefined; - partial: boolean; - stale: boolean; +export type ProcessCpu = { + unit: ProcessCpuUnit; + value: number; }; -export type DataAwsLambda = { - codeSha256?: string | null | undefined; - functionName: string; - functionUrlAuthType?: string | null | undefined; - functionUrlCorsPresent: boolean; - lastModified?: string | null | undefined; - lastUpdateStatus?: string | null | undefined; - lastUpdateStatusReason?: string | null | undefined; - lastUpdateStatusReasonCode?: string | null | undefined; - layerCount: number; - memorySizeMb?: number | null | undefined; - packageType?: string | null | undefined; - revisionId?: string | null | undefined; - runtime?: string | null | undefined; - state?: string | null | undefined; - stateReason?: string | null | undefined; - stateReasonCode?: string | null | undefined; - status: DataStatus5; - timeoutSeconds?: number | null | undefined; - triggerCount: number; - version?: string | null | undefined; - backend: "awsLambda"; +export type ProcessCpuUnion = ProcessCpu | any; + +export const ProcessKind = { + Container: "container", + Process: "process", + Daemon: "daemon", +} as const; +export type ProcessKind = ClosedEnum; + +export const ProcessMemoryUnit = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type ProcessMemoryUnit = ClosedEnum; + +export type ProcessMemory = { + unit: ProcessMemoryUnit; + value: number; }; -export type DataUnion2 = - | DataAwsLambda - | DataGcpCloudRun - | DataAzureContainerApps1 - | DataKubernetes1 - | DataLocal2; +export type ProcessMemoryUnion = ProcessMemory | any; -export type DataWorker = { - data: - | DataAwsLambda - | DataGcpCloudRun - | DataAzureContainerApps1 - | DataKubernetes1 - | DataLocal2; - resourceType: "worker"; +export type Process = { + cpu?: ProcessCpu | any | null | undefined; + kind: ProcessKind; + memory?: ProcessMemory | any | null | undefined; + name: string; + phase?: string | null | undefined; + pid?: number | null | undefined; + ready: boolean; + restartCount?: number | null | undefined; + unitId: string; }; -export const Reason4 = { +export type ProcessUnion = Process | any; + +export const Reason9 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason4 = ClosedEnum; +export type Reason9 = ClosedEnum; -export const CollectionIssueSeverity4 = { +export const CollectionIssueSeverity9 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity4 = ClosedEnum< - typeof CollectionIssueSeverity4 +export type CollectionIssueSeverity9 = ClosedEnum< + typeof CollectionIssueSeverity9 >; -export type CollectionIssue4 = { +export type CollectionIssue9 = { message: string; - reason: Reason4; - severity: CollectionIssueSeverity4; + reason: Reason9; + severity: CollectionIssueSeverity9; source: string; }; -export const Health4 = { +export const Health9 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health4 = ClosedEnum; +export type Health9 = ClosedEnum; -export const Lifecycle4 = { +export const Lifecycle9 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -6880,61 +7076,196 @@ export const Lifecycle4 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle4 = ClosedEnum; +export type Lifecycle9 = ClosedEnum; -export type DataStatus4 = { - collectionIssues: Array; - health: Health4; - lifecycle: Lifecycle4; +export type DataStatus9 = { + collectionIssues: Array; + health: Health9; + lifecycle: Lifecycle9; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataLocal1 = { - isDirectory?: boolean | null | undefined; - modifiedAt?: Date | null | undefined; - path: string; - pathExists: boolean; - readonly?: boolean | null | undefined; - status: DataStatus4; +export type DataLocal2 = { + commandSupported: boolean; + cpu?: Cpu2 | any | null | undefined; + events: Array; + imagePathPresent: boolean; + memory?: Memory2 | any | null | undefined; + pid?: number | null | undefined; + process?: Process | any | null | undefined; + readinessProbeOk?: boolean | null | undefined; + status: DataStatus9; + triggerCount: number; backend: "local"; }; -export const Reason3 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", +export const CpuUnit1 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", } as const; -export type Reason3 = ClosedEnum; +export type CpuUnit1 = ClosedEnum; -export const CollectionIssueSeverity3 = { +export type Cpu1 = { + unit: CpuUnit1; + value: number; +}; + +export type CpuUnion1 = Cpu1 | any; + +export type InvolvedObject1 = { + apiVersion?: string | null | undefined; + fieldPath?: string | null | undefined; + kind?: string | null | undefined; + name?: string | null | undefined; + namespace?: string | null | undefined; + resourceVersion?: string | null | undefined; + uid?: string | null | undefined; +}; + +export type InvolvedObjectUnion1 = InvolvedObject1 | any; + +export type SourceEvent1 = { + component?: string | null | undefined; + host?: string | null | undefined; +}; + +export type SourceUnion1 = SourceEvent1 | any; + +export type Event1 = { + count?: number | null | undefined; + eventTime?: Date | null | undefined; + firstTimestamp?: Date | null | undefined; + involvedObject?: InvolvedObject1 | any | null | undefined; + lastTimestamp?: Date | null | undefined; + message: string; + raw?: any | null | undefined; + reason: string; + source?: SourceEvent1 | any | null | undefined; + type?: string | null | undefined; +}; + +export const MemoryUnit1 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type MemoryUnit1 = ClosedEnum; + +export type Memory1 = { + unit: MemoryUnit1; + value: number; +}; + +export type MemoryUnion1 = Memory1 | any; + +export const CpuPodUnit1 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type CpuPodUnit1 = ClosedEnum; + +export type CpuPod1 = { + unit: CpuPodUnit1; + value: number; +}; + +export type PodCpuUnion1 = CpuPod1 | any; + +export const MemoryPodUnit1 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type MemoryPodUnit1 = ClosedEnum; + +export type MemoryPod1 = { + unit: MemoryPodUnit1; + value: number; +}; + +export type PodMemoryUnion1 = MemoryPod1 | any; + +export type OwnerReference1 = { + controller: boolean; + kind: string; + name: string; + uid: string; +}; + +export type Pod1 = { + cpu?: CpuPod1 | any | null | undefined; + memory?: MemoryPod1 | any | null | undefined; + name: string; + nodeName?: string | null | undefined; + ownerReferences: Array; + phase?: string | null | undefined; + podIp?: string | null | undefined; + ready: boolean; + restartCount: number; + terminatedReason?: string | null | undefined; + uid?: string | null | undefined; + waitingReason?: string | null | undefined; +}; + +export type Replicas1 = { + available?: number | null | undefined; + current?: number | null | undefined; + desired?: number | null | undefined; + misscheduled?: number | null | undefined; + ready?: number | null | undefined; + updated?: number | null | undefined; +}; + +export const Reason8 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type Reason8 = ClosedEnum; + +export const CollectionIssueSeverity8 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity3 = ClosedEnum< - typeof CollectionIssueSeverity3 +export type CollectionIssueSeverity8 = ClosedEnum< + typeof CollectionIssueSeverity8 >; -export type CollectionIssue3 = { +export type CollectionIssue8 = { message: string; - reason: Reason3; - severity: CollectionIssueSeverity3; + reason: Reason8; + severity: CollectionIssueSeverity8; source: string; }; -export const Health3 = { +export const Health8 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health3 = ClosedEnum; +export type Health8 = ClosedEnum; -export const Lifecycle3 = { +export const Lifecycle8 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -6946,84 +7277,97 @@ export const Lifecycle3 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle3 = ClosedEnum; +export type Lifecycle8 = ClosedEnum; -export type DataStatus3 = { - collectionIssues: Array; - health: Health3; - lifecycle: Lifecycle3; +export type DataStatus8 = { + collectionIssues: Array; + health: Health8; + lifecycle: Lifecycle8; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAzureBlob = { - accessTier?: string | null | undefined; - accountKind?: string | null | undefined; - allowBlobPublicAccess?: boolean | null | undefined; - blobDeleteRetentionDays?: number | null | undefined; - blobDeleteRetentionEnabled?: boolean | null | undefined; - blobEncryptionEnabled?: boolean | null | undefined; - blobVersioningEnabled?: boolean | null | undefined; - changeFeedEnabled?: boolean | null | undefined; - changeFeedRetentionDays?: number | null | undefined; - containerDeleteRetentionDays?: number | null | undefined; - containerDeleteRetentionEnabled?: boolean | null | undefined; - containerPublicAccess?: string | null | undefined; - encryptionKeySource?: string | null | undefined; - fileEncryptionEnabled?: boolean | null | undefined; - location?: string | null | undefined; +export type WorkloadCondition1 = { + lastTransitionTime?: Date | null | undefined; + message?: string | null | undefined; + reason?: string | null | undefined; + status: string; + type: string; +}; + +export type Workload1 = { + availableReplicas?: number | null | undefined; + conditions: Array; + desiredGeneration?: number | null | undefined; + desiredReplicas?: number | null | undefined; + observedGeneration?: number | null | undefined; + readyReplicas?: number | null | undefined; + rolloutReason?: string | null | undefined; + updatedReplicas?: number | null | undefined; +}; + +export type WorkloadUnion1 = Workload1 | any; + +export const WorkloadKind1 = { + Deployment: "deployment", + StatefulSet: "statefulSet", + DaemonSet: "daemonSet", + ReplicaSet: "replicaSet", + Pod: "pod", +} as const; +export type WorkloadKind1 = ClosedEnum; + +export type DataKubernetes1 = { + cpu?: Cpu1 | any | null | undefined; + events: Array; + memory?: Memory1 | any | null | undefined; name: string; - primaryLocation?: string | null | undefined; - provisioningState?: string | null | undefined; - publicNetworkAccess?: string | null | undefined; - queueEncryptionEnabled?: boolean | null | undefined; - resourceGroup?: string | null | undefined; - secondaryLocation?: string | null | undefined; - skuName?: string | null | undefined; - skuTier?: string | null | undefined; - status: DataStatus3; - statusOfPrimary?: string | null | undefined; - statusOfSecondary?: string | null | undefined; - storageAccountName?: string | null | undefined; - tableEncryptionEnabled?: boolean | null | undefined; - backend: "azureBlob"; + namespace: string; + pods: Array; + replicas: Replicas1; + restarts?: number | null | undefined; + status: DataStatus8; + triggerCount: number; + workload?: Workload1 | any | null | undefined; + workloadKind: WorkloadKind1; + backend: "kubernetes"; }; -export const Reason2 = { +export const Reason7 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason2 = ClosedEnum; +export type Reason7 = ClosedEnum; -export const CollectionIssueSeverity2 = { +export const CollectionIssueSeverity7 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity2 = ClosedEnum< - typeof CollectionIssueSeverity2 +export type CollectionIssueSeverity7 = ClosedEnum< + typeof CollectionIssueSeverity7 >; -export type CollectionIssue2 = { +export type CollectionIssue7 = { message: string; - reason: Reason2; - severity: CollectionIssueSeverity2; + reason: Reason7; + severity: CollectionIssueSeverity7; source: string; }; -export const Health2 = { +export const Health7 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health2 = ClosedEnum; +export type Health7 = ClosedEnum; -export const Lifecycle2 = { +export const Lifecycle7 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -7035,74 +7379,66 @@ export const Lifecycle2 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle2 = ClosedEnum; +export type Lifecycle7 = ClosedEnum; -export type DataStatus2 = { - collectionIssues: Array; - health: Health2; - lifecycle: Lifecycle2; +export type DataStatus7 = { + collectionIssues: Array; + health: Health7; + lifecycle: Lifecycle7; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataGcpCloudStorage = { - bucketId?: string | null | undefined; - defaultKmsKeyName?: string | null | undefined; - encryptionConfigPresent: boolean; - lifecyclePresent: boolean; - lifecycleRuleCount?: number | null | undefined; - location?: string | null | undefined; - locationType?: string | null | undefined; - name: string; - publicAccessPrevention?: string | null | undefined; - retentionPeriod?: string | null | undefined; - retentionPolicyEffectiveTime?: string | null | undefined; - retentionPolicyIsLocked?: boolean | null | undefined; - softDeleteEffectiveTime?: string | null | undefined; - softDeleteRetentionDurationSeconds?: string | null | undefined; - status: DataStatus2; - storageClass?: string | null | undefined; - uniformBucketLevelAccessEnabled?: boolean | null | undefined; - uniformBucketLevelAccessLockedTime?: string | null | undefined; - versioningEnabled?: boolean | null | undefined; - backend: "gcpCloudStorage"; +export type DataAzureContainerApps1 = { + appName: string; + cpu?: number | null | undefined; + environmentName?: string | null | undefined; + ingressFqdn?: string | null | undefined; + maxReplicas?: number | null | undefined; + memory?: string | null | undefined; + minReplicas?: number | null | undefined; + provisioningState?: string | null | undefined; + revision?: string | null | undefined; + runningStatus?: string | null | undefined; + status: DataStatus7; + backend: "azureContainerApps"; }; -export const Reason1 = { +export const Reason6 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type Reason1 = ClosedEnum; +export type Reason6 = ClosedEnum; -export const CollectionIssueSeverity1 = { +export const CollectionIssueSeverity6 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type CollectionIssueSeverity1 = ClosedEnum< - typeof CollectionIssueSeverity1 +export type CollectionIssueSeverity6 = ClosedEnum< + typeof CollectionIssueSeverity6 >; -export type CollectionIssue1 = { +export type CollectionIssue6 = { message: string; - reason: Reason1; - severity: CollectionIssueSeverity1; + reason: Reason6; + severity: CollectionIssueSeverity6; source: string; }; -export const Health1 = { +export const Health6 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type Health1 = ClosedEnum; +export type Health6 = ClosedEnum; -export const Lifecycle1 = { +export const Lifecycle6 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -7114,256 +7450,1555 @@ export const Lifecycle1 = { Deleted: "deleted", Failed: "failed", } as const; -export type Lifecycle1 = ClosedEnum; +export type Lifecycle6 = ClosedEnum; -export type DataStatus1 = { - collectionIssues: Array; - health: Health1; - lifecycle: Lifecycle1; +export type DataStatus6 = { + collectionIssues: Array; + health: Health6; + lifecycle: Lifecycle6; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAwsS3 = { - blockPublicAcls?: boolean | null | undefined; - blockPublicPolicy?: boolean | null | undefined; - bucketAclPresent?: boolean | null | undefined; - bucketLocation?: string | null | undefined; - bucketPolicyPresent?: boolean | null | undefined; - encryptionConfigPresent: boolean; - encryptionEnabled?: boolean | null | undefined; - ignorePublicAcls?: boolean | null | undefined; - lifecyclePresent: boolean; - lifecycleRuleCount?: number | null | undefined; - name: string; - publicAccessBlockPresent: boolean; +export type DataGcpCloudRun = { + containerImage?: string | null | undefined; + cpuLimit?: string | null | undefined; + generation?: number | null | undefined; + latestCreatedRevision?: string | null | undefined; + latestReadyRevision?: string | null | undefined; + maxInstanceCount?: number | null | undefined; + memoryLimit?: string | null | undefined; + minInstanceCount?: number | null | undefined; + observedGeneration?: number | null | undefined; region?: string | null | undefined; - restrictPublicBuckets?: boolean | null | undefined; - status: DataStatus1; - versioningEnabled?: boolean | null | undefined; - versioningStatus?: string | null | undefined; - backend: "awsS3"; + service: string; + status: DataStatus6; + trafficCount: number; + uri?: string | null | undefined; + urls: Array; + backend: "gcpCloudRun"; }; -export type DataUnion1 = - | DataAwsS3 - | DataGcpCloudStorage - | DataAzureBlob - | DataLocal1; +export const Reason5 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type Reason5 = ClosedEnum; -export type DataStorage = { - data: DataAwsS3 | DataGcpCloudStorage | DataAzureBlob | DataLocal1; - resourceType: "storage"; +export const CollectionIssueSeverity5 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type CollectionIssueSeverity5 = ClosedEnum< + typeof CollectionIssueSeverity5 +>; + +export type CollectionIssue5 = { + message: string; + reason: Reason5; + severity: CollectionIssueSeverity5; + source: string; }; -export type DataUnion16 = - | DataStorage - | DataWorker - | DataContainer - | DataDaemon - | DataComputeCluster - | DataKubernetesCluster - | DataQueue - | DataKv - | DataPostgres - | DataVault - | DataServiceAccount - | DataNetwork - | DataRemoteStackManagement - | DataArtifactRegistry - | DataBuild - | DataServiceActivation - | DataAzureResourceGroup - | DataAzureStorageAccount - | DataAzureContainerAppsEnvironment - | DataAzureServiceBusNamespace; +export const Health5 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type Health5 = ClosedEnum; -export const Format = { - Json: "json", - Yaml: "yaml", - Text: "text", +export const Lifecycle5 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", } as const; -export type Format = ClosedEnum; +export type Lifecycle5 = ClosedEnum; -export type Raw = { - body: string; - collectedAt: Date; - format: Format; - source: string; - truncated: boolean; +export type DataStatus5 = { + collectionIssues: Array; + health: Health5; + lifecycle: Lifecycle5; + message?: string | null | undefined; + partial: boolean; + stale: boolean; }; -export type Heartbeat = { - backend: BackendEnum; - /** - * Represents the target cloud platform. - */ - controllerPlatform: ControllerPlatform; - data: - | DataStorage - | DataWorker - | DataContainer - | DataDaemon - | DataComputeCluster - | DataKubernetesCluster - | DataQueue - | DataKv - | DataPostgres - | DataVault - | DataServiceAccount - | DataNetwork - | DataRemoteStackManagement - | DataArtifactRegistry - | DataBuild - | DataServiceActivation - | DataAzureResourceGroup - | DataAzureStorageAccount - | DataAzureContainerAppsEnvironment - | DataAzureServiceBusNamespace; - deploymentId?: string | null | undefined; - observedAt: Date; - raw: Array; - /** - * Alien resource id, such as the `alien.Container` or `alien.Storage` - * - * @remarks - * resource id from the stack. - */ - resourceId: string; - /** - * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. - */ - resourceType: string; +export type DataAwsLambda = { + codeSha256?: string | null | undefined; + functionName: string; + functionUrlAuthType?: string | null | undefined; + functionUrlCorsPresent: boolean; + lastModified?: string | null | undefined; + lastUpdateStatus?: string | null | undefined; + lastUpdateStatusReason?: string | null | undefined; + lastUpdateStatusReasonCode?: string | null | undefined; + layerCount: number; + memorySizeMb?: number | null | undefined; + packageType?: string | null | undefined; + revisionId?: string | null | undefined; + runtime?: string | null | undefined; + state?: string | null | undefined; + stateReason?: string | null | undefined; + stateReasonCode?: string | null | undefined; + status: DataStatus5; + timeoutSeconds?: number | null | undefined; + triggerCount: number; + version?: string | null | undefined; + backend: "awsLambda"; }; -export type HeartbeatAvailable = { - status: "available"; - deploymentId: string; - resourceId: string; - resourceType: string; - backend: string; - controllerPlatform: string; - observedAt: Date; - staleAt: Date; - platformStale: boolean; - heartbeat: Heartbeat; - raw: Array; +export type DataUnion2 = + | DataAwsLambda + | DataGcpCloudRun + | DataAzureContainerApps1 + | DataKubernetes1 + | DataLocal2; + +export type DataWorker = { + data: + | DataAwsLambda + | DataGcpCloudRun + | DataAzureContainerApps1 + | DataKubernetes1 + | DataLocal2; + resourceType: "worker"; }; -export type HeartbeatUnion = HeartbeatAvailable | HeartbeatMissing; +export const Reason4 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type Reason4 = ClosedEnum; + +export const CollectionIssueSeverity4 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type CollectionIssueSeverity4 = ClosedEnum< + typeof CollectionIssueSeverity4 +>; + +export type CollectionIssue4 = { + message: string; + reason: Reason4; + severity: CollectionIssueSeverity4; + source: string; +}; + +export const Health4 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type Health4 = ClosedEnum; + +export const Lifecycle4 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type Lifecycle4 = ClosedEnum; + +export type DataStatus4 = { + collectionIssues: Array; + health: Health4; + lifecycle: Lifecycle4; + message?: string | null | undefined; + partial: boolean; + stale: boolean; +}; + +export type DataLocal1 = { + isDirectory?: boolean | null | undefined; + modifiedAt?: Date | null | undefined; + path: string; + pathExists: boolean; + readonly?: boolean | null | undefined; + status: DataStatus4; + backend: "local"; +}; + +export const Reason3 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type Reason3 = ClosedEnum; + +export const CollectionIssueSeverity3 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type CollectionIssueSeverity3 = ClosedEnum< + typeof CollectionIssueSeverity3 +>; + +export type CollectionIssue3 = { + message: string; + reason: Reason3; + severity: CollectionIssueSeverity3; + source: string; +}; + +export const Health3 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type Health3 = ClosedEnum; + +export const Lifecycle3 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type Lifecycle3 = ClosedEnum; + +export type DataStatus3 = { + collectionIssues: Array; + health: Health3; + lifecycle: Lifecycle3; + message?: string | null | undefined; + partial: boolean; + stale: boolean; +}; + +export type DataAzureBlob = { + accessTier?: string | null | undefined; + accountKind?: string | null | undefined; + allowBlobPublicAccess?: boolean | null | undefined; + blobDeleteRetentionDays?: number | null | undefined; + blobDeleteRetentionEnabled?: boolean | null | undefined; + blobEncryptionEnabled?: boolean | null | undefined; + blobVersioningEnabled?: boolean | null | undefined; + changeFeedEnabled?: boolean | null | undefined; + changeFeedRetentionDays?: number | null | undefined; + containerDeleteRetentionDays?: number | null | undefined; + containerDeleteRetentionEnabled?: boolean | null | undefined; + containerPublicAccess?: string | null | undefined; + encryptionKeySource?: string | null | undefined; + fileEncryptionEnabled?: boolean | null | undefined; + location?: string | null | undefined; + name: string; + primaryLocation?: string | null | undefined; + provisioningState?: string | null | undefined; + publicNetworkAccess?: string | null | undefined; + queueEncryptionEnabled?: boolean | null | undefined; + resourceGroup?: string | null | undefined; + secondaryLocation?: string | null | undefined; + skuName?: string | null | undefined; + skuTier?: string | null | undefined; + status: DataStatus3; + statusOfPrimary?: string | null | undefined; + statusOfSecondary?: string | null | undefined; + storageAccountName?: string | null | undefined; + tableEncryptionEnabled?: boolean | null | undefined; + backend: "azureBlob"; +}; + +export const Reason2 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type Reason2 = ClosedEnum; + +export const CollectionIssueSeverity2 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type CollectionIssueSeverity2 = ClosedEnum< + typeof CollectionIssueSeverity2 +>; + +export type CollectionIssue2 = { + message: string; + reason: Reason2; + severity: CollectionIssueSeverity2; + source: string; +}; + +export const Health2 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type Health2 = ClosedEnum; + +export const Lifecycle2 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type Lifecycle2 = ClosedEnum; + +export type DataStatus2 = { + collectionIssues: Array; + health: Health2; + lifecycle: Lifecycle2; + message?: string | null | undefined; + partial: boolean; + stale: boolean; +}; + +export type DataGcpCloudStorage = { + bucketId?: string | null | undefined; + defaultKmsKeyName?: string | null | undefined; + encryptionConfigPresent: boolean; + lifecyclePresent: boolean; + lifecycleRuleCount?: number | null | undefined; + location?: string | null | undefined; + locationType?: string | null | undefined; + name: string; + publicAccessPrevention?: string | null | undefined; + retentionPeriod?: string | null | undefined; + retentionPolicyEffectiveTime?: string | null | undefined; + retentionPolicyIsLocked?: boolean | null | undefined; + softDeleteEffectiveTime?: string | null | undefined; + softDeleteRetentionDurationSeconds?: string | null | undefined; + status: DataStatus2; + storageClass?: string | null | undefined; + uniformBucketLevelAccessEnabled?: boolean | null | undefined; + uniformBucketLevelAccessLockedTime?: string | null | undefined; + versioningEnabled?: boolean | null | undefined; + backend: "gcpCloudStorage"; +}; + +export const Reason1 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type Reason1 = ClosedEnum; + +export const CollectionIssueSeverity1 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type CollectionIssueSeverity1 = ClosedEnum< + typeof CollectionIssueSeverity1 +>; + +export type CollectionIssue1 = { + message: string; + reason: Reason1; + severity: CollectionIssueSeverity1; + source: string; +}; + +export const Health1 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type Health1 = ClosedEnum; + +export const Lifecycle1 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type Lifecycle1 = ClosedEnum; + +export type DataStatus1 = { + collectionIssues: Array; + health: Health1; + lifecycle: Lifecycle1; + message?: string | null | undefined; + partial: boolean; + stale: boolean; +}; + +export type DataAwsS3 = { + blockPublicAcls?: boolean | null | undefined; + blockPublicPolicy?: boolean | null | undefined; + bucketAclPresent?: boolean | null | undefined; + bucketLocation?: string | null | undefined; + bucketPolicyPresent?: boolean | null | undefined; + encryptionConfigPresent: boolean; + encryptionEnabled?: boolean | null | undefined; + ignorePublicAcls?: boolean | null | undefined; + lifecyclePresent: boolean; + lifecycleRuleCount?: number | null | undefined; + name: string; + publicAccessBlockPresent: boolean; + region?: string | null | undefined; + restrictPublicBuckets?: boolean | null | undefined; + status: DataStatus1; + versioningEnabled?: boolean | null | undefined; + versioningStatus?: string | null | undefined; + backend: "awsS3"; +}; + +export type DataUnion1 = + | DataAwsS3 + | DataGcpCloudStorage + | DataAzureBlob + | DataLocal1; + +export type DataStorage = { + data: DataAwsS3 | DataGcpCloudStorage | DataAzureBlob | DataLocal1; + resourceType: "storage"; +}; + +export type DataUnion18 = + | DataStorage + | DataWorker + | DataContainer + | DataDaemon + | DataComputeCluster + | DataKubernetesCluster + | DataQueue + | DataKv + | DataPostgres + | DataVault + | DataServiceAccount + | DataNetwork + | DataRemoteStackManagement + | DataArtifactRegistry + | DataBuild + | DataServiceActivation + | DataAzureResourceGroup + | DataAzureStorageAccount + | DataAzureContainerAppsEnvironment + | DataAzureServiceBusNamespace + | DataAi + | DataKey; + +export const Format = { + Json: "json", + Yaml: "yaml", + Text: "text", +} as const; +export type Format = ClosedEnum; + +export type Raw = { + body: string; + collectedAt: Date; + format: Format; + source: string; + truncated: boolean; +}; + +export type Heartbeat = { + backend: BackendEnum; + /** + * Represents the target cloud platform. + */ + controllerPlatform: ControllerPlatform; + data: + | DataStorage + | DataWorker + | DataContainer + | DataDaemon + | DataComputeCluster + | DataKubernetesCluster + | DataQueue + | DataKv + | DataPostgres + | DataVault + | DataServiceAccount + | DataNetwork + | DataRemoteStackManagement + | DataArtifactRegistry + | DataBuild + | DataServiceActivation + | DataAzureResourceGroup + | DataAzureStorageAccount + | DataAzureContainerAppsEnvironment + | DataAzureServiceBusNamespace + | DataAi + | DataKey; + deploymentId?: string | null | undefined; + observedAt: Date; + raw: Array; + /** + * Alien resource id, such as the `alien.Container` or `alien.Storage` + * + * @remarks + * resource id from the stack. + */ + resourceId: string; + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + resourceType: string; +}; + +export type HeartbeatAvailable = { + status: "available"; + deploymentId: string; + resourceId: string; + resourceType: string; + backend: string; + controllerPlatform: string; + observedAt: Date; + staleAt: Date; + platformStale: boolean; + heartbeat: Heartbeat; + raw: Array; +}; + +export type HeartbeatUnion = HeartbeatAvailable | HeartbeatMissing; + +/** + * Latest heartbeat detail for one compute resource deployment. + */ +export type GetResourceDeploymentDetailResponse = { + deployment: GetResourceDeploymentDetailDeployment; + heartbeat: HeartbeatAvailable | HeartbeatMissing; +}; + +/** @internal */ +export const GetResourceDeploymentDetailArea$outboundSchema: z.ZodEnum< + typeof GetResourceDeploymentDetailArea +> = z.enum(GetResourceDeploymentDetailArea); + +/** @internal */ +export type GetResourceDeploymentDetailRequest$Outbound = { + area: string; + deploymentId: string; + resourceId: string; + workspace?: string | undefined; + project: string; +}; + +/** @internal */ +export const GetResourceDeploymentDetailRequest$outboundSchema: z.ZodType< + GetResourceDeploymentDetailRequest$Outbound, + GetResourceDeploymentDetailRequest +> = z.object({ + area: GetResourceDeploymentDetailArea$outboundSchema, + deploymentId: z.string(), + resourceId: z.string(), + workspace: z.string().optional(), + project: z.string(), +}); + +export function getResourceDeploymentDetailRequestToJSON( + getResourceDeploymentDetailRequest: GetResourceDeploymentDetailRequest, +): string { + return JSON.stringify( + GetResourceDeploymentDetailRequest$outboundSchema.parse( + getResourceDeploymentDetailRequest, + ), + ); +} + +/** @internal */ +export const GetResourceDeploymentDetailDeployment$inboundSchema: z.ZodType< + GetResourceDeploymentDetailDeployment, + unknown +> = z.object({ + deploymentId: z.string(), + deploymentName: z.string(), + deploymentGroupId: z.nullable(z.string()), + deploymentGroupName: z.nullable(z.string()), + resourceType: z.string(), + resourceId: z.string(), + backend: z.string(), + controllerPlatform: z.string(), + health: z.string(), + lifecycle: z.string(), + message: z.nullable(z.string()), + partial: z.boolean(), + providerStale: z.boolean(), + platformStale: z.boolean(), + desiredCount: z.nullable(z.int()), + currentCount: z.nullable(z.int()), + readyCount: z.nullable(z.int()), + observedAt: z.iso.datetime({ offset: true }).transform(v => new Date(v)), + desiredImage: z.nullable(z.string()), +}); + +export function getResourceDeploymentDetailDeploymentFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + GetResourceDeploymentDetailDeployment$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'GetResourceDeploymentDetailDeployment' from JSON`, + ); +} + +/** @internal */ +export const HeartbeatMissing$inboundSchema: z.ZodType< + HeartbeatMissing, + unknown +> = z.object({ + status: z.literal("missing"), + deploymentId: z.string(), + resourceId: z.string(), + resourceType: z.string(), +}); + +export function heartbeatMissingFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => HeartbeatMissing$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'HeartbeatMissing' from JSON`, + ); +} + +/** @internal */ +export const BackendEnum$inboundSchema: z.ZodEnum = z.enum( + BackendEnum, +); + +/** @internal */ +export const ControllerPlatform$inboundSchema: z.ZodEnum< + typeof ControllerPlatform +> = z.enum(ControllerPlatform); + +/** @internal */ +export const Health72$inboundSchema: z.ZodEnum = z.enum( + Health72, +); + +/** @internal */ +export const Lifecycle72$inboundSchema: z.ZodEnum = z.enum( + Lifecycle72, +); + +/** @internal */ +export const DataStatus72$inboundSchema: z.ZodType = z + .object({ + health: Health72$inboundSchema, + lifecycle: Lifecycle72$inboundSchema, + message: z.nullable(z.string()).optional(), + }); + +export function dataStatus72FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DataStatus72$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DataStatus72' from JSON`, + ); +} + +/** @internal */ +export const Data8$inboundSchema: z.ZodType = z.object({ + enabled: z.nullable(z.boolean()).optional(), + keyId: z.string(), + keyOperations: z.array(z.string()), + keyType: z.string(), + recoveryLevel: z.nullable(z.string()).optional(), + status: z.lazy(() => DataStatus72$inboundSchema), +}); + +export function data8FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Data8$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Data8' from JSON`, + ); +} + +/** @internal */ +export const DataAzureKeyVault2$inboundSchema: z.ZodType< + DataAzureKeyVault2, + unknown +> = z.object({ + data: z.lazy(() => Data8$inboundSchema), + provider: z.literal("azure-key-vault"), +}); + +export function dataAzureKeyVault2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DataAzureKeyVault2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DataAzureKeyVault2' from JSON`, + ); +} + +/** @internal */ +export const Health71$inboundSchema: z.ZodEnum = z.enum( + Health71, +); + +/** @internal */ +export const Lifecycle71$inboundSchema: z.ZodEnum = z.enum( + Lifecycle71, +); + +/** @internal */ +export const DataStatus71$inboundSchema: z.ZodType = z + .object({ + health: Health71$inboundSchema, + lifecycle: Lifecycle71$inboundSchema, + message: z.nullable(z.string()).optional(), + }); + +export function dataStatus71FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DataStatus71$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DataStatus71' from JSON`, + ); +} + +/** @internal */ +export const Data7$inboundSchema: z.ZodType = z.object({ + algorithm: z.nullable(z.string()).optional(), + cryptoKeyName: z.string(), + primaryState: z.nullable(z.string()).optional(), + primaryVersion: z.nullable(z.string()).optional(), + purpose: z.string(), + status: z.lazy(() => DataStatus71$inboundSchema), +}); + +export function data7FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Data7$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Data7' from JSON`, + ); +} + +/** @internal */ +export const DataGcpCloudKms$inboundSchema: z.ZodType< + DataGcpCloudKms, + unknown +> = z.object({ + data: z.lazy(() => Data7$inboundSchema), + provider: z.literal("gcp-cloud-kms"), +}); + +export function dataGcpCloudKmsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DataGcpCloudKms$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DataGcpCloudKms' from JSON`, + ); +} + +/** @internal */ +export const Health70$inboundSchema: z.ZodEnum = z.enum( + Health70, +); + +/** @internal */ +export const Lifecycle70$inboundSchema: z.ZodEnum = z.enum( + Lifecycle70, +); + +/** @internal */ +export const DataStatus70$inboundSchema: z.ZodType = z + .object({ + health: Health70$inboundSchema, + lifecycle: Lifecycle70$inboundSchema, + message: z.nullable(z.string()).optional(), + }); + +export function dataStatus70FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DataStatus70$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DataStatus70' from JSON`, + ); +} + +/** @internal */ +export const Data6$inboundSchema: z.ZodType = z.object({ + enabled: z.boolean(), + keyArn: z.string(), + keySpec: z.string(), + keyState: z.string(), + keyUsage: z.string(), + status: z.lazy(() => DataStatus70$inboundSchema), +}); + +export function data6FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Data6$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Data6' from JSON`, + ); +} + +/** @internal */ +export const DataAwsKms$inboundSchema: z.ZodType = z + .object({ + data: z.lazy(() => Data6$inboundSchema), + provider: z.literal("aws-kms"), + }); + +export function dataAwsKmsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DataAwsKms$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DataAwsKms' from JSON`, + ); +} + +/** @internal */ +export const DataUnion17$inboundSchema: z.ZodType = z + .union([ + z.lazy(() => DataAwsKms$inboundSchema), + z.lazy(() => DataGcpCloudKms$inboundSchema), + z.lazy(() => DataAzureKeyVault2$inboundSchema), + ]); + +export function dataUnion17FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DataUnion17$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DataUnion17' from JSON`, + ); +} + +/** @internal */ +export const DataKey$inboundSchema: z.ZodType = z.object({ + data: z.union([ + z.lazy(() => DataAwsKms$inboundSchema), + z.lazy(() => DataGcpCloudKms$inboundSchema), + z.lazy(() => DataAzureKeyVault2$inboundSchema), + ]), + resourceType: z.literal("key"), +}); + +export function dataKeyFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DataKey$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DataKey' from JSON`, + ); +} + +/** @internal */ +export const AccessTest4$inboundSchema: z.ZodEnum = z.enum( + AccessTest4, +); + +/** @internal */ +export const AvailabilityEnum4$inboundSchema: z.ZodEnum< + typeof AvailabilityEnum4 +> = z.enum(AvailabilityEnum4); + +/** @internal */ +export const BlockerEnum4$inboundSchema: z.ZodEnum = z + .enum(BlockerEnum4); + +/** @internal */ +export const ClientApi4$inboundSchema: z.ZodEnum = z.enum( + ClientApi4, +); + +/** @internal */ +export const Model4$inboundSchema: z.ZodType = z.object({ + accessTest: AccessTest4$inboundSchema, + availability: AvailabilityEnum4$inboundSchema, + blockers: z.array(BlockerEnum4$inboundSchema), + clientApis: z.array(ClientApi4$inboundSchema), + errorCode: z.nullable(z.string()).optional(), + publicModelId: z.string(), + testedAt: z.nullable( + z.iso.datetime({ offset: true }).transform(v => new Date(v)), + ).optional(), +}); + +export function model4FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Model4$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Model4' from JSON`, + ); +} + +/** @internal */ +export const SourceEnum4$inboundSchema: z.ZodEnum = z.enum( + SourceEnum4, +); + +/** @internal */ +export const Availability4$inboundSchema: z.ZodType = z + .object({ + catalogRevision: z.string(), + location: z.nullable(z.string()).optional(), + models: z.array(z.lazy(() => Model4$inboundSchema)), + source: SourceEnum4$inboundSchema, + }); + +export function availability4FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Availability4$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Availability4' from JSON`, + ); +} + +/** @internal */ +export const AvailabilityUnion$inboundSchema: z.ZodType< + AvailabilityUnion, + unknown +> = z.union([z.lazy(() => Availability4$inboundSchema), z.any()]); + +export function availabilityUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => AvailabilityUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'AvailabilityUnion' from JSON`, + ); +} + +/** @internal */ +export const Reason69$inboundSchema: z.ZodEnum = z.enum( + Reason69, +); + +/** @internal */ +export const CollectionIssueSeverity69$inboundSchema: z.ZodEnum< + typeof CollectionIssueSeverity69 +> = z.enum(CollectionIssueSeverity69); + +/** @internal */ +export const CollectionIssue69$inboundSchema: z.ZodType< + CollectionIssue69, + unknown +> = z.object({ + message: z.string(), + reason: Reason69$inboundSchema, + severity: CollectionIssueSeverity69$inboundSchema, + source: z.string(), +}); + +export function collectionIssue69FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => CollectionIssue69$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CollectionIssue69' from JSON`, + ); +} + +/** @internal */ +export const Health69$inboundSchema: z.ZodEnum = z.enum( + Health69, +); + +/** @internal */ +export const Lifecycle69$inboundSchema: z.ZodEnum = z.enum( + Lifecycle69, +); + +/** @internal */ +export const DataStatus69$inboundSchema: z.ZodType = z + .object({ + collectionIssues: z.array(z.lazy(() => CollectionIssue69$inboundSchema)), + health: Health69$inboundSchema, + lifecycle: Lifecycle69$inboundSchema, + message: z.nullable(z.string()).optional(), + partial: z.boolean(), + stale: z.boolean(), + }); + +export function dataStatus69FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DataStatus69$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DataStatus69' from JSON`, + ); +} + +/** @internal */ +export const DataExternal$inboundSchema: z.ZodType = z + .object({ + availability: z.nullable( + z.union([z.lazy(() => Availability4$inboundSchema), z.any()]), + ).optional(), + provider: z.string(), + status: z.lazy(() => DataStatus69$inboundSchema), + backend: z.literal("external"), + }); + +export function dataExternalFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DataExternal$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DataExternal' from JSON`, + ); +} + +/** @internal */ +export const AccessTest3$inboundSchema: z.ZodEnum = z.enum( + AccessTest3, +); + +/** @internal */ +export const AvailabilityEnum3$inboundSchema: z.ZodEnum< + typeof AvailabilityEnum3 +> = z.enum(AvailabilityEnum3); + +/** @internal */ +export const BlockerEnum3$inboundSchema: z.ZodEnum = z + .enum(BlockerEnum3); + +/** @internal */ +export const ClientApi3$inboundSchema: z.ZodEnum = z.enum( + ClientApi3, +); + +/** @internal */ +export const Model3$inboundSchema: z.ZodType = z.object({ + accessTest: AccessTest3$inboundSchema, + availability: AvailabilityEnum3$inboundSchema, + blockers: z.array(BlockerEnum3$inboundSchema), + clientApis: z.array(ClientApi3$inboundSchema), + errorCode: z.nullable(z.string()).optional(), + publicModelId: z.string(), + testedAt: z.nullable( + z.iso.datetime({ offset: true }).transform(v => new Date(v)), + ).optional(), +}); + +export function model3FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Model3$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Model3' from JSON`, + ); +} + +/** @internal */ +export const SourceEnum3$inboundSchema: z.ZodEnum = z.enum( + SourceEnum3, +); + +/** @internal */ +export const Availability3$inboundSchema: z.ZodType = z + .object({ + catalogRevision: z.string(), + location: z.nullable(z.string()).optional(), + models: z.array(z.lazy(() => Model3$inboundSchema)), + source: SourceEnum3$inboundSchema, + }); + +export function availability3FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Availability3$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Availability3' from JSON`, + ); +} + +/** @internal */ +export const Reason68$inboundSchema: z.ZodEnum = z.enum( + Reason68, +); + +/** @internal */ +export const CollectionIssueSeverity68$inboundSchema: z.ZodEnum< + typeof CollectionIssueSeverity68 +> = z.enum(CollectionIssueSeverity68); + +/** @internal */ +export const CollectionIssue68$inboundSchema: z.ZodType< + CollectionIssue68, + unknown +> = z.object({ + message: z.string(), + reason: Reason68$inboundSchema, + severity: CollectionIssueSeverity68$inboundSchema, + source: z.string(), +}); + +export function collectionIssue68FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => CollectionIssue68$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CollectionIssue68' from JSON`, + ); +} + +/** @internal */ +export const Health68$inboundSchema: z.ZodEnum = z.enum( + Health68, +); + +/** @internal */ +export const Lifecycle68$inboundSchema: z.ZodEnum = z.enum( + Lifecycle68, +); + +/** @internal */ +export const DataStatus68$inboundSchema: z.ZodType = z + .object({ + collectionIssues: z.array(z.lazy(() => CollectionIssue68$inboundSchema)), + health: Health68$inboundSchema, + lifecycle: Lifecycle68$inboundSchema, + message: z.nullable(z.string()).optional(), + partial: z.boolean(), + stale: z.boolean(), + }); + +export function dataStatus68FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DataStatus68$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DataStatus68' from JSON`, + ); +} + +/** @internal */ +export const DataAzureFoundry$inboundSchema: z.ZodType< + DataAzureFoundry, + unknown +> = z.object({ + accountName: z.string(), + availability: z.lazy(() => Availability3$inboundSchema), + endpoint: z.nullable(z.string()).optional(), + location: z.nullable(z.string()).optional(), + resourceGroup: z.nullable(z.string()).optional(), + status: z.lazy(() => DataStatus68$inboundSchema), + backend: z.literal("azureFoundry"), +}); + +export function dataAzureFoundryFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DataAzureFoundry$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DataAzureFoundry' from JSON`, + ); +} + +/** @internal */ +export const AccessTest2$inboundSchema: z.ZodEnum = z.enum( + AccessTest2, +); + +/** @internal */ +export const AvailabilityEnum2$inboundSchema: z.ZodEnum< + typeof AvailabilityEnum2 +> = z.enum(AvailabilityEnum2); + +/** @internal */ +export const BlockerEnum2$inboundSchema: z.ZodEnum = z + .enum(BlockerEnum2); + +/** @internal */ +export const ClientApi2$inboundSchema: z.ZodEnum = z.enum( + ClientApi2, +); + +/** @internal */ +export const Model2$inboundSchema: z.ZodType = z.object({ + accessTest: AccessTest2$inboundSchema, + availability: AvailabilityEnum2$inboundSchema, + blockers: z.array(BlockerEnum2$inboundSchema), + clientApis: z.array(ClientApi2$inboundSchema), + errorCode: z.nullable(z.string()).optional(), + publicModelId: z.string(), + testedAt: z.nullable( + z.iso.datetime({ offset: true }).transform(v => new Date(v)), + ).optional(), +}); + +export function model2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Model2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Model2' from JSON`, + ); +} + +/** @internal */ +export const SourceEnum2$inboundSchema: z.ZodEnum = z.enum( + SourceEnum2, +); + +/** @internal */ +export const Availability2$inboundSchema: z.ZodType = z + .object({ + catalogRevision: z.string(), + location: z.nullable(z.string()).optional(), + models: z.array(z.lazy(() => Model2$inboundSchema)), + source: SourceEnum2$inboundSchema, + }); + +export function availability2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Availability2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Availability2' from JSON`, + ); +} + +/** @internal */ +export const Reason67$inboundSchema: z.ZodEnum = z.enum( + Reason67, +); + +/** @internal */ +export const CollectionIssueSeverity67$inboundSchema: z.ZodEnum< + typeof CollectionIssueSeverity67 +> = z.enum(CollectionIssueSeverity67); + +/** @internal */ +export const CollectionIssue67$inboundSchema: z.ZodType< + CollectionIssue67, + unknown +> = z.object({ + message: z.string(), + reason: Reason67$inboundSchema, + severity: CollectionIssueSeverity67$inboundSchema, + source: z.string(), +}); + +export function collectionIssue67FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => CollectionIssue67$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CollectionIssue67' from JSON`, + ); +} + +/** @internal */ +export const Health67$inboundSchema: z.ZodEnum = z.enum( + Health67, +); + +/** @internal */ +export const Lifecycle67$inboundSchema: z.ZodEnum = z.enum( + Lifecycle67, +); + +/** @internal */ +export const DataStatus67$inboundSchema: z.ZodType = z + .object({ + collectionIssues: z.array(z.lazy(() => CollectionIssue67$inboundSchema)), + health: Health67$inboundSchema, + lifecycle: Lifecycle67$inboundSchema, + message: z.nullable(z.string()).optional(), + partial: z.boolean(), + stale: z.boolean(), + }); + +export function dataStatus67FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DataStatus67$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DataStatus67' from JSON`, + ); +} + +/** @internal */ +export const DataGcpVertex$inboundSchema: z.ZodType = z + .object({ + availability: z.lazy(() => Availability2$inboundSchema), + location: z.string(), + project: z.string(), + status: z.lazy(() => DataStatus67$inboundSchema), + backend: z.literal("gcpVertex"), + }); + +export function dataGcpVertexFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DataGcpVertex$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DataGcpVertex' from JSON`, + ); +} + +/** @internal */ +export const AccessTest1$inboundSchema: z.ZodEnum = z.enum( + AccessTest1, +); -/** - * Latest heartbeat detail for one compute resource deployment. - */ -export type GetResourceDeploymentDetailResponse = { - deployment: GetResourceDeploymentDetailDeployment; - heartbeat: HeartbeatAvailable | HeartbeatMissing; -}; +/** @internal */ +export const AvailabilityEnum1$inboundSchema: z.ZodEnum< + typeof AvailabilityEnum1 +> = z.enum(AvailabilityEnum1); /** @internal */ -export const GetResourceDeploymentDetailArea$outboundSchema: z.ZodEnum< - typeof GetResourceDeploymentDetailArea -> = z.enum(GetResourceDeploymentDetailArea); +export const BlockerEnum1$inboundSchema: z.ZodEnum = z + .enum(BlockerEnum1); /** @internal */ -export type GetResourceDeploymentDetailRequest$Outbound = { - area: string; - deploymentId: string; - resourceId: string; - workspace?: string | undefined; - project: string; -}; +export const ClientApi1$inboundSchema: z.ZodEnum = z.enum( + ClientApi1, +); /** @internal */ -export const GetResourceDeploymentDetailRequest$outboundSchema: z.ZodType< - GetResourceDeploymentDetailRequest$Outbound, - GetResourceDeploymentDetailRequest -> = z.object({ - area: GetResourceDeploymentDetailArea$outboundSchema, - deploymentId: z.string(), - resourceId: z.string(), - workspace: z.string().optional(), - project: z.string(), +export const Model1$inboundSchema: z.ZodType = z.object({ + accessTest: AccessTest1$inboundSchema, + availability: AvailabilityEnum1$inboundSchema, + blockers: z.array(BlockerEnum1$inboundSchema), + clientApis: z.array(ClientApi1$inboundSchema), + errorCode: z.nullable(z.string()).optional(), + publicModelId: z.string(), + testedAt: z.nullable( + z.iso.datetime({ offset: true }).transform(v => new Date(v)), + ).optional(), }); -export function getResourceDeploymentDetailRequestToJSON( - getResourceDeploymentDetailRequest: GetResourceDeploymentDetailRequest, -): string { - return JSON.stringify( - GetResourceDeploymentDetailRequest$outboundSchema.parse( - getResourceDeploymentDetailRequest, - ), +export function model1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Model1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Model1' from JSON`, ); } /** @internal */ -export const GetResourceDeploymentDetailDeployment$inboundSchema: z.ZodType< - GetResourceDeploymentDetailDeployment, - unknown -> = z.object({ - deploymentId: z.string(), - deploymentName: z.string(), - deploymentGroupId: z.nullable(z.string()), - deploymentGroupName: z.nullable(z.string()), - resourceType: z.string(), - resourceId: z.string(), - backend: z.string(), - controllerPlatform: z.string(), - health: z.string(), - lifecycle: z.string(), - message: z.nullable(z.string()), - partial: z.boolean(), - providerStale: z.boolean(), - platformStale: z.boolean(), - desiredCount: z.nullable(z.int()), - currentCount: z.nullable(z.int()), - readyCount: z.nullable(z.int()), - observedAt: z.iso.datetime({ offset: true }).transform(v => new Date(v)), - desiredImage: z.nullable(z.string()), -}); +export const SourceEnum1$inboundSchema: z.ZodEnum = z.enum( + SourceEnum1, +); -export function getResourceDeploymentDetailDeploymentFromJSON( +/** @internal */ +export const Availability1$inboundSchema: z.ZodType = z + .object({ + catalogRevision: z.string(), + location: z.nullable(z.string()).optional(), + models: z.array(z.lazy(() => Model1$inboundSchema)), + source: SourceEnum1$inboundSchema, + }); + +export function availability1FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => - GetResourceDeploymentDetailDeployment$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'GetResourceDeploymentDetailDeployment' from JSON`, + (x) => Availability1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Availability1' from JSON`, ); } /** @internal */ -export const HeartbeatMissing$inboundSchema: z.ZodType< - HeartbeatMissing, +export const Reason66$inboundSchema: z.ZodEnum = z.enum( + Reason66, +); + +/** @internal */ +export const CollectionIssueSeverity66$inboundSchema: z.ZodEnum< + typeof CollectionIssueSeverity66 +> = z.enum(CollectionIssueSeverity66); + +/** @internal */ +export const CollectionIssue66$inboundSchema: z.ZodType< + CollectionIssue66, unknown > = z.object({ - status: z.literal("missing"), - deploymentId: z.string(), - resourceId: z.string(), - resourceType: z.string(), + message: z.string(), + reason: Reason66$inboundSchema, + severity: CollectionIssueSeverity66$inboundSchema, + source: z.string(), }); -export function heartbeatMissingFromJSON( +export function collectionIssue66FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => HeartbeatMissing$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'HeartbeatMissing' from JSON`, + (x) => CollectionIssue66$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CollectionIssue66' from JSON`, ); } /** @internal */ -export const BackendEnum$inboundSchema: z.ZodEnum = z.enum( - BackendEnum, +export const Health66$inboundSchema: z.ZodEnum = z.enum( + Health66, ); /** @internal */ -export const ControllerPlatform$inboundSchema: z.ZodEnum< - typeof ControllerPlatform -> = z.enum(ControllerPlatform); +export const Lifecycle66$inboundSchema: z.ZodEnum = z.enum( + Lifecycle66, +); + +/** @internal */ +export const DataStatus66$inboundSchema: z.ZodType = z + .object({ + collectionIssues: z.array(z.lazy(() => CollectionIssue66$inboundSchema)), + health: Health66$inboundSchema, + lifecycle: Lifecycle66$inboundSchema, + message: z.nullable(z.string()).optional(), + partial: z.boolean(), + stale: z.boolean(), + }); + +export function dataStatus66FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DataStatus66$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DataStatus66' from JSON`, + ); +} + +/** @internal */ +export const DataAwsBedrock$inboundSchema: z.ZodType = + z.object({ + availability: z.lazy(() => Availability1$inboundSchema), + region: z.string(), + status: z.lazy(() => DataStatus66$inboundSchema), + backend: z.literal("awsBedrock"), + }); + +export function dataAwsBedrockFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DataAwsBedrock$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DataAwsBedrock' from JSON`, + ); +} + +/** @internal */ +export const DataUnion16$inboundSchema: z.ZodType = z + .union([ + z.lazy(() => DataAwsBedrock$inboundSchema), + z.lazy(() => DataGcpVertex$inboundSchema), + z.lazy(() => DataAzureFoundry$inboundSchema), + z.lazy(() => DataExternal$inboundSchema), + ]); + +export function dataUnion16FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DataUnion16$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DataUnion16' from JSON`, + ); +} + +/** @internal */ +export const DataAi$inboundSchema: z.ZodType = z.object({ + data: z.union([ + z.lazy(() => DataAwsBedrock$inboundSchema), + z.lazy(() => DataGcpVertex$inboundSchema), + z.lazy(() => DataAzureFoundry$inboundSchema), + z.lazy(() => DataExternal$inboundSchema), + ]), + resourceType: z.literal("ai"), +}); + +export function dataAiFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => DataAi$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DataAi' from JSON`, + ); +} /** @internal */ export const Reason65$inboundSchema: z.ZodEnum = z.enum( @@ -8131,31 +9766,25 @@ export function involvedObjectUnion10FromJSON( } /** @internal */ -export const GetResourceDeploymentDetailSource10$inboundSchema: z.ZodType< - GetResourceDeploymentDetailSource10, - unknown -> = z.object({ - component: z.nullable(z.string()).optional(), - host: z.nullable(z.string()).optional(), -}); +export const SourceEvent10$inboundSchema: z.ZodType = z + .object({ + component: z.nullable(z.string()).optional(), + host: z.nullable(z.string()).optional(), + }); -export function getResourceDeploymentDetailSource10FromJSON( +export function sourceEvent10FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => - GetResourceDeploymentDetailSource10$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'GetResourceDeploymentDetailSource10' from JSON`, + (x) => SourceEvent10$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SourceEvent10' from JSON`, ); } /** @internal */ export const SourceUnion10$inboundSchema: z.ZodType = z - .union([ - z.lazy(() => GetResourceDeploymentDetailSource10$inboundSchema), - z.any(), - ]); + .union([z.lazy(() => SourceEvent10$inboundSchema), z.any()]); export function sourceUnion10FromJSON( jsonString: string, @@ -8186,10 +9815,7 @@ export const Event13$inboundSchema: z.ZodType = z.object({ raw: z.nullable(z.any()).optional(), reason: z.string(), source: z.nullable( - z.union([ - z.lazy(() => GetResourceDeploymentDetailSource10$inboundSchema), - z.any(), - ]), + z.union([z.lazy(() => SourceEvent10$inboundSchema), z.any()]), ).optional(), type: z.nullable(z.string()).optional(), }); @@ -10313,8 +11939,8 @@ export function dataStatus39FromJSON( } /** @internal */ -export const DataAzureKeyVault$inboundSchema: z.ZodType< - DataAzureKeyVault, +export const DataAzureKeyVault1$inboundSchema: z.ZodType< + DataAzureKeyVault1, unknown > = z.object({ accessPolicyCount: z.int(), @@ -10337,13 +11963,13 @@ export const DataAzureKeyVault$inboundSchema: z.ZodType< backend: z.literal("azureKeyVault"), }); -export function dataAzureKeyVaultFromJSON( +export function dataAzureKeyVault1FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataAzureKeyVault$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataAzureKeyVault' from JSON`, + (x) => DataAzureKeyVault1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DataAzureKeyVault1' from JSON`, ); } @@ -10532,7 +12158,7 @@ export const DataUnion9$inboundSchema: z.ZodType = z.union( [ z.lazy(() => DataAwsParameterStore$inboundSchema), z.lazy(() => DataGcpSecretManager$inboundSchema), - z.lazy(() => DataAzureKeyVault$inboundSchema), + z.lazy(() => DataAzureKeyVault1$inboundSchema), z.lazy(() => DataKubernetesSecret$inboundSchema), z.lazy(() => DataLocal9$inboundSchema), ], @@ -10553,7 +12179,7 @@ export const DataVault$inboundSchema: z.ZodType = z.object({ data: z.union([ z.lazy(() => DataAwsParameterStore$inboundSchema), z.lazy(() => DataGcpSecretManager$inboundSchema), - z.lazy(() => DataAzureKeyVault$inboundSchema), + z.lazy(() => DataAzureKeyVault1$inboundSchema), z.lazy(() => DataKubernetesSecret$inboundSchema), z.lazy(() => DataLocal9$inboundSchema), ]), @@ -11902,31 +13528,25 @@ export function involvedObjectUnion9FromJSON( } /** @internal */ -export const GetResourceDeploymentDetailSource9$inboundSchema: z.ZodType< - GetResourceDeploymentDetailSource9, - unknown -> = z.object({ - component: z.nullable(z.string()).optional(), - host: z.nullable(z.string()).optional(), -}); +export const SourceEvent9$inboundSchema: z.ZodType = z + .object({ + component: z.nullable(z.string()).optional(), + host: z.nullable(z.string()).optional(), + }); -export function getResourceDeploymentDetailSource9FromJSON( +export function sourceEvent9FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => - GetResourceDeploymentDetailSource9$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'GetResourceDeploymentDetailSource9' from JSON`, + (x) => SourceEvent9$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SourceEvent9' from JSON`, ); } /** @internal */ export const SourceUnion9$inboundSchema: z.ZodType = z - .union([ - z.lazy(() => GetResourceDeploymentDetailSource9$inboundSchema), - z.any(), - ]); + .union([z.lazy(() => SourceEvent9$inboundSchema), z.any()]); export function sourceUnion9FromJSON( jsonString: string, @@ -11957,10 +13577,7 @@ export const Event12$inboundSchema: z.ZodType = z.object({ raw: z.nullable(z.any()).optional(), reason: z.string(), source: z.nullable( - z.union([ - z.lazy(() => GetResourceDeploymentDetailSource9$inboundSchema), - z.any(), - ]), + z.union([z.lazy(() => SourceEvent9$inboundSchema), z.any()]), ).optional(), type: z.nullable(z.string()).optional(), }); @@ -12653,7 +14270,10 @@ export function capacityBlockerUnion4FromJSON( } /** @internal */ -export const Blocker4$inboundSchema: z.ZodType = z.object({ +export const DrainProgressBlocker4$inboundSchema: z.ZodType< + DrainProgressBlocker4, + unknown +> = z.object({ reason: z.string(), replicaId: z.string(), schedulingMode: z.string(), @@ -12661,13 +14281,13 @@ export const Blocker4$inboundSchema: z.ZodType = z.object({ workloadName: z.string(), }); -export function blocker4FromJSON( +export function drainProgressBlocker4FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => Blocker4$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'Blocker4' from JSON`, + (x) => DrainProgressBlocker4$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DrainProgressBlocker4' from JSON`, ); } @@ -12679,7 +14299,8 @@ export const DrainProgressStatus4$inboundSchema: z.ZodEnum< /** @internal */ export const DrainProgress4$inboundSchema: z.ZodType = z.object({ - blockers: z.array(z.lazy(() => Blocker4$inboundSchema)).optional(), + blockers: z.array(z.lazy(() => DrainProgressBlocker4$inboundSchema)) + .optional(), drainDeadlineAt: z.nullable(z.string()).optional(), drainRequestedAt: z.nullable(z.string()).optional(), drainedAt: z.nullable(z.string()).optional(), @@ -13092,7 +14713,10 @@ export function capacityBlockerUnion3FromJSON( } /** @internal */ -export const Blocker3$inboundSchema: z.ZodType = z.object({ +export const DrainProgressBlocker3$inboundSchema: z.ZodType< + DrainProgressBlocker3, + unknown +> = z.object({ reason: z.string(), replicaId: z.string(), schedulingMode: z.string(), @@ -13100,13 +14724,13 @@ export const Blocker3$inboundSchema: z.ZodType = z.object({ workloadName: z.string(), }); -export function blocker3FromJSON( +export function drainProgressBlocker3FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => Blocker3$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'Blocker3' from JSON`, + (x) => DrainProgressBlocker3$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DrainProgressBlocker3' from JSON`, ); } @@ -13118,7 +14742,8 @@ export const DrainProgressStatus3$inboundSchema: z.ZodEnum< /** @internal */ export const DrainProgress3$inboundSchema: z.ZodType = z.object({ - blockers: z.array(z.lazy(() => Blocker3$inboundSchema)).optional(), + blockers: z.array(z.lazy(() => DrainProgressBlocker3$inboundSchema)) + .optional(), drainDeadlineAt: z.nullable(z.string()).optional(), drainRequestedAt: z.nullable(z.string()).optional(), drainedAt: z.nullable(z.string()).optional(), @@ -13504,7 +15129,10 @@ export function capacityBlockerUnion2FromJSON( } /** @internal */ -export const Blocker2$inboundSchema: z.ZodType = z.object({ +export const DrainProgressBlocker2$inboundSchema: z.ZodType< + DrainProgressBlocker2, + unknown +> = z.object({ reason: z.string(), replicaId: z.string(), schedulingMode: z.string(), @@ -13512,13 +15140,13 @@ export const Blocker2$inboundSchema: z.ZodType = z.object({ workloadName: z.string(), }); -export function blocker2FromJSON( +export function drainProgressBlocker2FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => Blocker2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'Blocker2' from JSON`, + (x) => DrainProgressBlocker2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DrainProgressBlocker2' from JSON`, ); } @@ -13530,7 +15158,8 @@ export const DrainProgressStatus2$inboundSchema: z.ZodEnum< /** @internal */ export const DrainProgress2$inboundSchema: z.ZodType = z.object({ - blockers: z.array(z.lazy(() => Blocker2$inboundSchema)).optional(), + blockers: z.array(z.lazy(() => DrainProgressBlocker2$inboundSchema)) + .optional(), drainDeadlineAt: z.nullable(z.string()).optional(), drainRequestedAt: z.nullable(z.string()).optional(), drainedAt: z.nullable(z.string()).optional(), @@ -13915,7 +15544,10 @@ export function capacityBlockerUnion1FromJSON( } /** @internal */ -export const Blocker1$inboundSchema: z.ZodType = z.object({ +export const DrainProgressBlocker1$inboundSchema: z.ZodType< + DrainProgressBlocker1, + unknown +> = z.object({ reason: z.string(), replicaId: z.string(), schedulingMode: z.string(), @@ -13923,13 +15555,13 @@ export const Blocker1$inboundSchema: z.ZodType = z.object({ workloadName: z.string(), }); -export function blocker1FromJSON( +export function drainProgressBlocker1FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => Blocker1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'Blocker1' from JSON`, + (x) => DrainProgressBlocker1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DrainProgressBlocker1' from JSON`, ); } @@ -13941,7 +15573,8 @@ export const DrainProgressStatus1$inboundSchema: z.ZodEnum< /** @internal */ export const DrainProgress1$inboundSchema: z.ZodType = z.object({ - blockers: z.array(z.lazy(() => Blocker1$inboundSchema)).optional(), + blockers: z.array(z.lazy(() => DrainProgressBlocker1$inboundSchema)) + .optional(), drainDeadlineAt: z.nullable(z.string()).optional(), drainRequestedAt: z.nullable(z.string()).optional(), drainedAt: z.nullable(z.string()).optional(), @@ -14683,31 +16316,25 @@ export function involvedObjectUnion8FromJSON( } /** @internal */ -export const GetResourceDeploymentDetailSource8$inboundSchema: z.ZodType< - GetResourceDeploymentDetailSource8, - unknown -> = z.object({ - component: z.nullable(z.string()).optional(), - host: z.nullable(z.string()).optional(), -}); +export const SourceEvent8$inboundSchema: z.ZodType = z + .object({ + component: z.nullable(z.string()).optional(), + host: z.nullable(z.string()).optional(), + }); -export function getResourceDeploymentDetailSource8FromJSON( +export function sourceEvent8FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => - GetResourceDeploymentDetailSource8$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'GetResourceDeploymentDetailSource8' from JSON`, + (x) => SourceEvent8$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SourceEvent8' from JSON`, ); } /** @internal */ export const SourceUnion8$inboundSchema: z.ZodType = z - .union([ - z.lazy(() => GetResourceDeploymentDetailSource8$inboundSchema), - z.any(), - ]); + .union([z.lazy(() => SourceEvent8$inboundSchema), z.any()]); export function sourceUnion8FromJSON( jsonString: string, @@ -14738,10 +16365,7 @@ export const Event10$inboundSchema: z.ZodType = z.object({ raw: z.nullable(z.any()).optional(), reason: z.string(), source: z.nullable( - z.union([ - z.lazy(() => GetResourceDeploymentDetailSource8$inboundSchema), - z.any(), - ]), + z.union([z.lazy(() => SourceEvent8$inboundSchema), z.any()]), ).optional(), type: z.nullable(z.string()).optional(), }); @@ -15246,31 +16870,25 @@ export function involvedObjectUnion7FromJSON( } /** @internal */ -export const GetResourceDeploymentDetailSource7$inboundSchema: z.ZodType< - GetResourceDeploymentDetailSource7, - unknown -> = z.object({ - component: z.nullable(z.string()).optional(), - host: z.nullable(z.string()).optional(), -}); +export const SourceEvent7$inboundSchema: z.ZodType = z + .object({ + component: z.nullable(z.string()).optional(), + host: z.nullable(z.string()).optional(), + }); -export function getResourceDeploymentDetailSource7FromJSON( +export function sourceEvent7FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => - GetResourceDeploymentDetailSource7$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'GetResourceDeploymentDetailSource7' from JSON`, + (x) => SourceEvent7$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SourceEvent7' from JSON`, ); } /** @internal */ export const SourceUnion7$inboundSchema: z.ZodType = z - .union([ - z.lazy(() => GetResourceDeploymentDetailSource7$inboundSchema), - z.any(), - ]); + .union([z.lazy(() => SourceEvent7$inboundSchema), z.any()]); export function sourceUnion7FromJSON( jsonString: string, @@ -15303,10 +16921,7 @@ export const Event9$inboundSchema: z.ZodType = z.object({ raw: z.nullable(z.any()).optional(), reason: z.string(), source: z.nullable( - z.union([ - z.lazy(() => GetResourceDeploymentDetailSource7$inboundSchema), - z.any(), - ]), + z.union([z.lazy(() => SourceEvent7$inboundSchema), z.any()]), ).optional(), type: z.nullable(z.string()).optional(), }); @@ -15399,6 +17014,7 @@ export const DataMachines1$inboundSchema: z.ZodType = z horizonStatusMessage: z.nullable(z.string()).optional(), horizonStatusReason: z.nullable(z.string()).optional(), latestUpdateTimestamp: z.string(), + observedImage: z.nullable(z.string()).optional(), status: z.lazy(() => DataStatus16$inboundSchema), unavailableInstances: z.int(), backend: z.literal("machines"), @@ -15573,31 +17189,25 @@ export function involvedObjectUnion6FromJSON( } /** @internal */ -export const GetResourceDeploymentDetailSource6$inboundSchema: z.ZodType< - GetResourceDeploymentDetailSource6, - unknown -> = z.object({ - component: z.nullable(z.string()).optional(), - host: z.nullable(z.string()).optional(), -}); +export const SourceEvent6$inboundSchema: z.ZodType = z + .object({ + component: z.nullable(z.string()).optional(), + host: z.nullable(z.string()).optional(), + }); -export function getResourceDeploymentDetailSource6FromJSON( +export function sourceEvent6FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => - GetResourceDeploymentDetailSource6$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'GetResourceDeploymentDetailSource6' from JSON`, + (x) => SourceEvent6$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SourceEvent6' from JSON`, ); } /** @internal */ export const SourceUnion6$inboundSchema: z.ZodType = z - .union([ - z.lazy(() => GetResourceDeploymentDetailSource6$inboundSchema), - z.any(), - ]); + .union([z.lazy(() => SourceEvent6$inboundSchema), z.any()]); export function sourceUnion6FromJSON( jsonString: string, @@ -15630,10 +17240,7 @@ export const Event8$inboundSchema: z.ZodType = z.object({ raw: z.nullable(z.any()).optional(), reason: z.string(), source: z.nullable( - z.union([ - z.lazy(() => GetResourceDeploymentDetailSource6$inboundSchema), - z.any(), - ]), + z.union([z.lazy(() => SourceEvent6$inboundSchema), z.any()]), ).optional(), type: z.nullable(z.string()).optional(), }); @@ -15726,6 +17333,7 @@ export const DataAzure1$inboundSchema: z.ZodType = z horizonStatusMessage: z.nullable(z.string()).optional(), horizonStatusReason: z.nullable(z.string()).optional(), latestUpdateTimestamp: z.string(), + observedImage: z.nullable(z.string()).optional(), status: z.lazy(() => DataStatus15$inboundSchema), unavailableInstances: z.int(), backend: z.literal("azure"), @@ -15900,31 +17508,25 @@ export function involvedObjectUnion5FromJSON( } /** @internal */ -export const GetResourceDeploymentDetailSource5$inboundSchema: z.ZodType< - GetResourceDeploymentDetailSource5, - unknown -> = z.object({ - component: z.nullable(z.string()).optional(), - host: z.nullable(z.string()).optional(), -}); +export const SourceEvent5$inboundSchema: z.ZodType = z + .object({ + component: z.nullable(z.string()).optional(), + host: z.nullable(z.string()).optional(), + }); -export function getResourceDeploymentDetailSource5FromJSON( +export function sourceEvent5FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => - GetResourceDeploymentDetailSource5$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'GetResourceDeploymentDetailSource5' from JSON`, + (x) => SourceEvent5$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SourceEvent5' from JSON`, ); } /** @internal */ export const SourceUnion5$inboundSchema: z.ZodType = z - .union([ - z.lazy(() => GetResourceDeploymentDetailSource5$inboundSchema), - z.any(), - ]); + .union([z.lazy(() => SourceEvent5$inboundSchema), z.any()]); export function sourceUnion5FromJSON( jsonString: string, @@ -15957,10 +17559,7 @@ export const Event7$inboundSchema: z.ZodType = z.object({ raw: z.nullable(z.any()).optional(), reason: z.string(), source: z.nullable( - z.union([ - z.lazy(() => GetResourceDeploymentDetailSource5$inboundSchema), - z.any(), - ]), + z.union([z.lazy(() => SourceEvent5$inboundSchema), z.any()]), ).optional(), type: z.nullable(z.string()).optional(), }); @@ -16052,6 +17651,7 @@ export const DataGcp1$inboundSchema: z.ZodType = z.object({ horizonStatusMessage: z.nullable(z.string()).optional(), horizonStatusReason: z.nullable(z.string()).optional(), latestUpdateTimestamp: z.string(), + observedImage: z.nullable(z.string()).optional(), status: z.lazy(() => DataStatus14$inboundSchema), unavailableInstances: z.int(), backend: z.literal("gcp"), @@ -16226,31 +17826,25 @@ export function involvedObjectUnion4FromJSON( } /** @internal */ -export const GetResourceDeploymentDetailSource4$inboundSchema: z.ZodType< - GetResourceDeploymentDetailSource4, - unknown -> = z.object({ - component: z.nullable(z.string()).optional(), - host: z.nullable(z.string()).optional(), -}); +export const SourceEvent4$inboundSchema: z.ZodType = z + .object({ + component: z.nullable(z.string()).optional(), + host: z.nullable(z.string()).optional(), + }); -export function getResourceDeploymentDetailSource4FromJSON( +export function sourceEvent4FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => - GetResourceDeploymentDetailSource4$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'GetResourceDeploymentDetailSource4' from JSON`, + (x) => SourceEvent4$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SourceEvent4' from JSON`, ); } /** @internal */ export const SourceUnion4$inboundSchema: z.ZodType = z - .union([ - z.lazy(() => GetResourceDeploymentDetailSource4$inboundSchema), - z.any(), - ]); + .union([z.lazy(() => SourceEvent4$inboundSchema), z.any()]); export function sourceUnion4FromJSON( jsonString: string, @@ -16283,10 +17877,7 @@ export const Event6$inboundSchema: z.ZodType = z.object({ raw: z.nullable(z.any()).optional(), reason: z.string(), source: z.nullable( - z.union([ - z.lazy(() => GetResourceDeploymentDetailSource4$inboundSchema), - z.any(), - ]), + z.union([z.lazy(() => SourceEvent4$inboundSchema), z.any()]), ).optional(), type: z.nullable(z.string()).optional(), }); @@ -16378,6 +17969,7 @@ export const DataAws1$inboundSchema: z.ZodType = z.object({ horizonStatusMessage: z.nullable(z.string()).optional(), horizonStatusReason: z.nullable(z.string()).optional(), latestUpdateTimestamp: z.string(), + observedImage: z.nullable(z.string()).optional(), status: z.lazy(() => DataStatus13$inboundSchema), unavailableInstances: z.int(), backend: z.literal("aws"), @@ -16870,31 +18462,25 @@ export function involvedObjectUnion3FromJSON( } /** @internal */ -export const GetResourceDeploymentDetailSource3$inboundSchema: z.ZodType< - GetResourceDeploymentDetailSource3, - unknown -> = z.object({ - component: z.nullable(z.string()).optional(), - host: z.nullable(z.string()).optional(), -}); +export const SourceEvent3$inboundSchema: z.ZodType = z + .object({ + component: z.nullable(z.string()).optional(), + host: z.nullable(z.string()).optional(), + }); -export function getResourceDeploymentDetailSource3FromJSON( +export function sourceEvent3FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => - GetResourceDeploymentDetailSource3$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'GetResourceDeploymentDetailSource3' from JSON`, + (x) => SourceEvent3$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SourceEvent3' from JSON`, ); } /** @internal */ export const SourceUnion3$inboundSchema: z.ZodType = z - .union([ - z.lazy(() => GetResourceDeploymentDetailSource3$inboundSchema), - z.any(), - ]); + .union([z.lazy(() => SourceEvent3$inboundSchema), z.any()]); export function sourceUnion3FromJSON( jsonString: string, @@ -16925,10 +18511,7 @@ export const Event4$inboundSchema: z.ZodType = z.object({ raw: z.nullable(z.any()).optional(), reason: z.string(), source: z.nullable( - z.union([ - z.lazy(() => GetResourceDeploymentDetailSource3$inboundSchema), - z.any(), - ]), + z.union([z.lazy(() => SourceEvent3$inboundSchema), z.any()]), ).optional(), type: z.nullable(z.string()).optional(), }); @@ -17355,31 +18938,25 @@ export function involvedObjectUnion2FromJSON( } /** @internal */ -export const GetResourceDeploymentDetailSource2$inboundSchema: z.ZodType< - GetResourceDeploymentDetailSource2, - unknown -> = z.object({ - component: z.nullable(z.string()).optional(), - host: z.nullable(z.string()).optional(), -}); +export const SourceEvent2$inboundSchema: z.ZodType = z + .object({ + component: z.nullable(z.string()).optional(), + host: z.nullable(z.string()).optional(), + }); -export function getResourceDeploymentDetailSource2FromJSON( +export function sourceEvent2FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => - GetResourceDeploymentDetailSource2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'GetResourceDeploymentDetailSource2' from JSON`, + (x) => SourceEvent2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SourceEvent2' from JSON`, ); } /** @internal */ export const SourceUnion2$inboundSchema: z.ZodType = z - .union([ - z.lazy(() => GetResourceDeploymentDetailSource2$inboundSchema), - z.any(), - ]); + .union([z.lazy(() => SourceEvent2$inboundSchema), z.any()]); export function sourceUnion2FromJSON( jsonString: string, @@ -17412,10 +18989,7 @@ export const Event3$inboundSchema: z.ZodType = z.object({ raw: z.nullable(z.any()).optional(), reason: z.string(), source: z.nullable( - z.union([ - z.lazy(() => GetResourceDeploymentDetailSource2$inboundSchema), - z.any(), - ]), + z.union([z.lazy(() => SourceEvent2$inboundSchema), z.any()]), ).optional(), type: z.nullable(z.string()).optional(), }); @@ -17677,8 +19251,10 @@ export const DataHorizonPlatform$inboundSchema: z.ZodType< .optional(), events: z.array(z.lazy(() => Event3$inboundSchema)), image: z.nullable(z.string()).optional(), + latestUpdateTimestamp: z.nullable(z.string()).optional(), memory: z.nullable(z.union([z.lazy(() => Memory3$inboundSchema), z.any()])) .optional(), + observedImage: z.nullable(z.string()).optional(), replicaUnits: z.array(z.lazy(() => ReplicaUnit$inboundSchema)), replicas: z.lazy(() => Replicas2$inboundSchema), schedulingMode: SchedulingMode$inboundSchema, @@ -18149,31 +19725,25 @@ export function involvedObjectUnion1FromJSON( } /** @internal */ -export const GetResourceDeploymentDetailSource1$inboundSchema: z.ZodType< - GetResourceDeploymentDetailSource1, - unknown -> = z.object({ - component: z.nullable(z.string()).optional(), - host: z.nullable(z.string()).optional(), -}); +export const SourceEvent1$inboundSchema: z.ZodType = z + .object({ + component: z.nullable(z.string()).optional(), + host: z.nullable(z.string()).optional(), + }); -export function getResourceDeploymentDetailSource1FromJSON( +export function sourceEvent1FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => - GetResourceDeploymentDetailSource1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'GetResourceDeploymentDetailSource1' from JSON`, + (x) => SourceEvent1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SourceEvent1' from JSON`, ); } /** @internal */ export const SourceUnion1$inboundSchema: z.ZodType = z - .union([ - z.lazy(() => GetResourceDeploymentDetailSource1$inboundSchema), - z.any(), - ]); + .union([z.lazy(() => SourceEvent1$inboundSchema), z.any()]); export function sourceUnion1FromJSON( jsonString: string, @@ -18204,10 +19774,7 @@ export const Event1$inboundSchema: z.ZodType = z.object({ raw: z.nullable(z.any()).optional(), reason: z.string(), source: z.nullable( - z.union([ - z.lazy(() => GetResourceDeploymentDetailSource1$inboundSchema), - z.any(), - ]), + z.union([z.lazy(() => SourceEvent1$inboundSchema), z.any()]), ).optional(), type: z.nullable(z.string()).optional(), }); @@ -19283,7 +20850,7 @@ export function dataStorageFromJSON( } /** @internal */ -export const DataUnion16$inboundSchema: z.ZodType = z +export const DataUnion18$inboundSchema: z.ZodType = z .union([ z.lazy(() => DataStorage$inboundSchema), z.lazy(() => DataWorker$inboundSchema), @@ -19305,15 +20872,17 @@ export const DataUnion16$inboundSchema: z.ZodType = z z.lazy(() => DataAzureStorageAccount$inboundSchema), z.lazy(() => DataAzureContainerAppsEnvironment$inboundSchema), z.lazy(() => DataAzureServiceBusNamespace$inboundSchema), + z.lazy(() => DataAi$inboundSchema), + z.lazy(() => DataKey$inboundSchema), ]); -export function dataUnion16FromJSON( +export function dataUnion18FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => DataUnion16$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'DataUnion16' from JSON`, + (x) => DataUnion18$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'DataUnion18' from JSON`, ); } @@ -19364,6 +20933,8 @@ export const Heartbeat$inboundSchema: z.ZodType = z.object({ z.lazy(() => DataAzureStorageAccount$inboundSchema), z.lazy(() => DataAzureContainerAppsEnvironment$inboundSchema), z.lazy(() => DataAzureServiceBusNamespace$inboundSchema), + z.lazy(() => DataAi$inboundSchema), + z.lazy(() => DataKey$inboundSchema), ]), deploymentId: z.nullable(z.string()).optional(), observedAt: z.iso.datetime({ offset: true }).transform(v => new Date(v)), diff --git a/client-sdks/platform/typescript/src/models/operations/getworkspaceinvitationpreview.ts b/client-sdks/platform/typescript/src/models/operations/getworkspaceinvitationpreview.ts new file mode 100644 index 000000000..bce40bbf3 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/getworkspaceinvitationpreview.ts @@ -0,0 +1,32 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; + +export type GetWorkspaceInvitationPreviewRequest = { + token: string; +}; + +/** @internal */ +export type GetWorkspaceInvitationPreviewRequest$Outbound = { + token: string; +}; + +/** @internal */ +export const GetWorkspaceInvitationPreviewRequest$outboundSchema: z.ZodType< + GetWorkspaceInvitationPreviewRequest$Outbound, + GetWorkspaceInvitationPreviewRequest +> = z.object({ + token: z.string(), +}); + +export function getWorkspaceInvitationPreviewRequestToJSON( + getWorkspaceInvitationPreviewRequest: GetWorkspaceInvitationPreviewRequest, +): string { + return JSON.stringify( + GetWorkspaceInvitationPreviewRequest$outboundSchema.parse( + getWorkspaceInvitationPreviewRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/getworkspaceinvitelink.ts b/client-sdks/platform/typescript/src/models/operations/getworkspaceinvitelink.ts new file mode 100644 index 000000000..8c4a2fb77 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/getworkspaceinvitelink.ts @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; + +export type GetWorkspaceInviteLinkRequest = { + /** + * Unique identifier for the workspace. + */ + id: string; + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; +}; + +/** @internal */ +export type GetWorkspaceInviteLinkRequest$Outbound = { + id: string; + workspace?: string | undefined; +}; + +/** @internal */ +export const GetWorkspaceInviteLinkRequest$outboundSchema: z.ZodType< + GetWorkspaceInviteLinkRequest$Outbound, + GetWorkspaceInviteLinkRequest +> = z.object({ + id: z.string(), + workspace: z.string().optional(), +}); + +export function getWorkspaceInviteLinkRequestToJSON( + getWorkspaceInviteLinkRequest: GetWorkspaceInviteLinkRequest, +): string { + return JSON.stringify( + GetWorkspaceInviteLinkRequest$outboundSchema.parse( + getWorkspaceInviteLinkRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/getworkspacesettings.ts b/client-sdks/platform/typescript/src/models/operations/getworkspacesettings.ts new file mode 100644 index 000000000..dcb559b97 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/getworkspacesettings.ts @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; + +export type GetWorkspaceSettingsRequest = { + /** + * Unique identifier for the workspace. + */ + id: string; + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; +}; + +/** @internal */ +export type GetWorkspaceSettingsRequest$Outbound = { + id: string; + workspace?: string | undefined; +}; + +/** @internal */ +export const GetWorkspaceSettingsRequest$outboundSchema: z.ZodType< + GetWorkspaceSettingsRequest$Outbound, + GetWorkspaceSettingsRequest +> = z.object({ + id: z.string(), + workspace: z.string().optional(), +}); + +export function getWorkspaceSettingsRequestToJSON( + getWorkspaceSettingsRequest: GetWorkspaceSettingsRequest, +): string { + return JSON.stringify( + GetWorkspaceSettingsRequest$outboundSchema.parse( + getWorkspaceSettingsRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/index.ts b/client-sdks/platform/typescript/src/models/operations/index.ts index 4c6420234..477160ff3 100644 --- a/client-sdks/platform/typescript/src/models/operations/index.ts +++ b/client-sdks/platform/typescript/src/models/operations/index.ts @@ -2,7 +2,9 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ +export * from "./acceptworkspaceinvitation.js"; export * from "./addworkspacemember.js"; +export * from "./approveagentsession.js"; export * from "./cancelmachinesmachinedrain.js"; export * from "./cancelmanagersetup.js"; export * from "./cancelpackage.js"; @@ -22,20 +24,27 @@ export * from "./createmanager.js"; export * from "./createproject.js"; export * from "./createprojectfromtemplate.js"; export * from "./createrelease.js"; +export * from "./createreleasechannel.js"; export * from "./createsetupregistrationoperation.js"; export * from "./createworkspace.js"; +export * from "./createworkspaceinvitation.js"; +export * from "./createworkspaceinvitelink.js"; export * from "./deleteapikeys.js"; export * from "./deletedeployment.js"; export * from "./deletedeploymentgroup.js"; export * from "./deletedomain.js"; export * from "./deletemanager.js"; export * from "./deleteproject.js"; +export * from "./deletereleasechannel.js"; export * from "./deleteworkspace.js"; export * from "./dismissworkspaceonboarding.js"; export * from "./dispatchcommand.js"; export * from "./drainmachinesmachine.js"; +export * from "./ensuredeploymentgroupbyexternalid.js"; export * from "./ensuredeploymentgroupbyname.js"; +export * from "./generatemanagerbindingtoken.js"; export * from "./generatemanagertoken.js"; +export * from "./getagentsession.js"; export * from "./getapikey.js"; export * from "./getcloudregions.js"; export * from "./getcommand.js"; @@ -43,6 +52,7 @@ export * from "./getdebugsession.js"; export * from "./getdeployment.js"; export * from "./getdeploymentconnectioninfo.js"; export * from "./getdeploymentgroup.js"; +export * from "./getdeploymentgroupbyexternalid.js"; export * from "./getdeploymentinfo.js"; export * from "./getdeploymentinputs.js"; export * from "./getdeploymentstats.js"; @@ -64,8 +74,13 @@ export * from "./getresourcedeploymentdetail.js"; export * from "./getsetupregistrationoperation.js"; export * from "./getworkspace.js"; export * from "./getworkspacebillingentitlements.js"; +export * from "./getworkspaceinvitationpreview.js"; +export * from "./getworkspaceinvitelink.js"; +export * from "./getworkspacesettings.js"; export * from "./importdeployment.js"; export * from "./incrementcommandattempt.js"; +export * from "./listagentsessionevents.js"; +export * from "./listagentsessions.js"; export * from "./listapikeys.js"; export * from "./listbillingauditlog.js"; export * from "./listcommanddeployments.js"; @@ -90,15 +105,19 @@ export * from "./listpackages.js"; export * from "./listprojects.js"; export * from "./listreleaseauthors.js"; export * from "./listreleasebranches.js"; +export * from "./listreleasechannels.js"; +export * from "./listreleasedeployments.js"; export * from "./listreleases.js"; export * from "./listresourcedeployments.js"; export * from "./listresourceoverview.js"; +export * from "./listworkspaceinvitations.js"; export * from "./listworkspacemembers.js"; export * from "./listworkspaces.js"; export * from "./pindeploymentrelease.js"; export * from "./plandeploymentcompute.js"; export * from "./preparedeploymentstack.js"; export * from "./prepareoperatormanifestpackage.js"; +export * from "./promoterelease.js"; export * from "./provisionmanager.js"; export * from "./rebuildpackages.js"; export * from "./redeploydeployment.js"; @@ -107,6 +126,7 @@ export * from "./removemachinesmachine.js"; export * from "./removeworkspacemember.js"; export * from "./renderoperatormanifest.js"; export * from "./reportmanagerheartbeat.js"; +export * from "./resendworkspaceinvitation.js"; export * from "./resolve.js"; export * from "./resolvecommandtarget.js"; export * from "./resolvemanagergcpoauthprovider.js"; @@ -115,13 +135,24 @@ export * from "./retrymanager.js"; export * from "./retrymanagersetup.js"; export * from "./revokeapikey.js"; export * from "./revokemachinesjointoken.js"; +export * from "./revokeworkspaceinvitation.js"; +export * from "./revokeworkspaceinvitelink.js"; export * from "./rotatemachinesjointoken.js"; +export * from "./setdeploymentgroupexternalid.js"; +export * from "./setdeploymentreleasechannel.js"; +export * from "./slackintegrationchannels.js"; +export * from "./slackintegrationinstallurl.js"; +export * from "./slackintegrationsetnotificationchannel.js"; +export * from "./slackintegrationstatus.js"; +export * from "./slackintegrationuninstall.js"; +export * from "./stopagentsession.js"; export * from "./syncacquire.js"; export * from "./synccontext.js"; export * from "./syncgitnamespaces.js"; export * from "./synclist.js"; export * from "./syncreconcile.js"; export * from "./syncrelease.js"; +export * from "./syncrenew.js"; export * from "./updateapikey.js"; export * from "./updatecommand.js"; export * from "./updatedebugsession.js"; @@ -135,4 +166,5 @@ export * from "./updateprojectgcpoauthprovider.js"; export * from "./updateuserprofile.js"; export * from "./updateworkspace.js"; export * from "./updateworkspacemember.js"; +export * from "./updateworkspacesettings.js"; export * from "./whoami.js"; diff --git a/client-sdks/platform/typescript/src/models/operations/listagentsessionevents.ts b/client-sdks/platform/typescript/src/models/operations/listagentsessionevents.ts new file mode 100644 index 000000000..356ffeb6a --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/listagentsessionevents.ts @@ -0,0 +1,44 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; + +export type ListAgentSessionEventsRequest = { + id: string; + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; + after?: number | null | undefined; + limit?: number | undefined; +}; + +/** @internal */ +export type ListAgentSessionEventsRequest$Outbound = { + id: string; + workspace?: string | undefined; + after: number | null; + limit: number; +}; + +/** @internal */ +export const ListAgentSessionEventsRequest$outboundSchema: z.ZodType< + ListAgentSessionEventsRequest$Outbound, + ListAgentSessionEventsRequest +> = z.object({ + id: z.string(), + workspace: z.string().optional(), + after: z.nullable(z.int().default(0)), + limit: z.int().default(200), +}); + +export function listAgentSessionEventsRequestToJSON( + listAgentSessionEventsRequest: ListAgentSessionEventsRequest, +): string { + return JSON.stringify( + ListAgentSessionEventsRequest$outboundSchema.parse( + listAgentSessionEventsRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/listagentsessions.ts b/client-sdks/platform/typescript/src/models/operations/listagentsessions.ts new file mode 100644 index 000000000..54005b43d --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/listagentsessions.ts @@ -0,0 +1,33 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; + +export type ListAgentSessionsRequest = { + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; +}; + +/** @internal */ +export type ListAgentSessionsRequest$Outbound = { + workspace?: string | undefined; +}; + +/** @internal */ +export const ListAgentSessionsRequest$outboundSchema: z.ZodType< + ListAgentSessionsRequest$Outbound, + ListAgentSessionsRequest +> = z.object({ + workspace: z.string().optional(), +}); + +export function listAgentSessionsRequestToJSON( + listAgentSessionsRequest: ListAgentSessionsRequest, +): string { + return JSON.stringify( + ListAgentSessionsRequest$outboundSchema.parse(listAgentSessionsRequest), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/listdeploymentgroups.ts b/client-sdks/platform/typescript/src/models/operations/listdeploymentgroups.ts index b5c68052c..9e37f8d09 100644 --- a/client-sdks/platform/typescript/src/models/operations/listdeploymentgroups.ts +++ b/client-sdks/platform/typescript/src/models/operations/listdeploymentgroups.ts @@ -65,6 +65,10 @@ export type ListDeploymentGroupsItem = { * Deployment group name. */ name: string; + /** + * Case-sensitive, URL- and header-safe identifier from the integrating application. + */ + externalId: string | null; /** * Unique identifier for the project. */ @@ -162,6 +166,7 @@ export const ListDeploymentGroupsItem$inboundSchema: z.ZodType< > = z.object({ id: z.string(), name: z.string(), + externalId: z.nullable(z.string()), projectId: z.string(), workspaceId: z.string(), maxDeployments: z.int().default(100), diff --git a/client-sdks/platform/typescript/src/models/operations/listevents.ts b/client-sdks/platform/typescript/src/models/operations/listevents.ts index 7b5a0a39c..bdb930ce9 100644 --- a/client-sdks/platform/typescript/src/models/operations/listevents.ts +++ b/client-sdks/platform/typescript/src/models/operations/listevents.ts @@ -4,10 +4,16 @@ import * as z from "zod/v4"; import { safeParse } from "../../lib/schemas.js"; +import { ClosedEnum } from "../../types/enums.js"; import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import * as models from "../index.js"; +export const ListEventsInclude = { + ReleaseCreatedAt: "releaseCreatedAt", +} as const; +export type ListEventsInclude = ClosedEnum; + export type ListEventsRequest = { /** * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. @@ -21,6 +27,14 @@ export type ListEventsRequest = { * Filter events to a single deployment. */ deploymentId?: string | undefined; + /** + * Filter events to a single release. + */ + releaseId?: string | undefined; + /** + * Optional fields to include: releaseCreatedAt + */ + include?: Array | undefined; /** * Maximum number of items to return per page */ @@ -38,18 +52,25 @@ export type ListEventsResponse = { /** * Items in this page */ - items: Array; + items: Array; /** * Cursor for the next page, null if last page */ nextCursor: string | null; }; +/** @internal */ +export const ListEventsInclude$outboundSchema: z.ZodEnum< + typeof ListEventsInclude +> = z.enum(ListEventsInclude); + /** @internal */ export type ListEventsRequest$Outbound = { workspace?: string | undefined; project?: string | undefined; deploymentId?: string | undefined; + releaseId?: string | undefined; + include?: Array | undefined; limit: number; cursor?: string | undefined; }; @@ -62,6 +83,8 @@ export const ListEventsRequest$outboundSchema: z.ZodType< workspace: z.string().optional(), project: z.string().optional(), deploymentId: z.string().optional(), + releaseId: z.string().optional(), + include: z.array(ListEventsInclude$outboundSchema).optional(), limit: z.int().default(20), cursor: z.string().optional(), }); @@ -79,7 +102,7 @@ export const ListEventsResponse$inboundSchema: z.ZodType< ListEventsResponse, unknown > = z.object({ - items: z.array(models.Event$inboundSchema), + items: z.array(models.EventListItemResponse$inboundSchema), nextCursor: z.nullable(z.string()), }); diff --git a/client-sdks/platform/typescript/src/models/operations/listreleasechannels.ts b/client-sdks/platform/typescript/src/models/operations/listreleasechannels.ts new file mode 100644 index 000000000..567cd0021 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/listreleasechannels.ts @@ -0,0 +1,68 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import * as models from "../index.js"; + +export type ListReleaseChannelsRequest = { + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; + /** + * Filter by project ID or name. + */ + project: string; +}; + +/** + * Project release channels. + */ +export type ListReleaseChannelsResponse = { + items: Array; +}; + +/** @internal */ +export type ListReleaseChannelsRequest$Outbound = { + workspace?: string | undefined; + project: string; +}; + +/** @internal */ +export const ListReleaseChannelsRequest$outboundSchema: z.ZodType< + ListReleaseChannelsRequest$Outbound, + ListReleaseChannelsRequest +> = z.object({ + workspace: z.string().optional(), + project: z.string(), +}); + +export function listReleaseChannelsRequestToJSON( + listReleaseChannelsRequest: ListReleaseChannelsRequest, +): string { + return JSON.stringify( + ListReleaseChannelsRequest$outboundSchema.parse(listReleaseChannelsRequest), + ); +} + +/** @internal */ +export const ListReleaseChannelsResponse$inboundSchema: z.ZodType< + ListReleaseChannelsResponse, + unknown +> = z.object({ + items: z.array(models.ReleaseChannel$inboundSchema), +}); + +export function listReleaseChannelsResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ListReleaseChannelsResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ListReleaseChannelsResponse' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/listreleasedeployments.ts b/client-sdks/platform/typescript/src/models/operations/listreleasedeployments.ts new file mode 100644 index 000000000..9e8cbb9d1 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/listreleasedeployments.ts @@ -0,0 +1,66 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import * as models from "../index.js"; + +export type ListReleaseDeploymentsRequest = { + /** + * Unique identifier for the release. + */ + id: string; + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; + /** + * Filter deployments by rollout state + */ + state?: Array | undefined; + /** + * Filter by deployment group ID or name + */ + deploymentGroup?: string | undefined; + /** + * Maximum number of items to return per page + */ + limit?: number | undefined; + /** + * Cursor for pagination - omit for first page + */ + cursor?: string | undefined; +}; + +/** @internal */ +export type ListReleaseDeploymentsRequest$Outbound = { + id: string; + workspace?: string | undefined; + state?: Array | undefined; + deploymentGroup?: string | undefined; + limit: number; + cursor?: string | undefined; +}; + +/** @internal */ +export const ListReleaseDeploymentsRequest$outboundSchema: z.ZodType< + ListReleaseDeploymentsRequest$Outbound, + ListReleaseDeploymentsRequest +> = z.object({ + id: z.string(), + workspace: z.string().optional(), + state: z.array(models.ReleaseRolloutState$outboundSchema).optional(), + deploymentGroup: z.string().optional(), + limit: z.int().default(20), + cursor: z.string().optional(), +}); + +export function listReleaseDeploymentsRequestToJSON( + listReleaseDeploymentsRequest: ListReleaseDeploymentsRequest, +): string { + return JSON.stringify( + ListReleaseDeploymentsRequest$outboundSchema.parse( + listReleaseDeploymentsRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/listreleases.ts b/client-sdks/platform/typescript/src/models/operations/listreleases.ts index e2040f83f..aea70ecb8 100644 --- a/client-sdks/platform/typescript/src/models/operations/listreleases.ts +++ b/client-sdks/platform/typescript/src/models/operations/listreleases.ts @@ -9,8 +9,16 @@ import { Result as SafeParseResult } from "../../types/fp.js"; import { SDKValidationError } from "../errors/sdkvalidationerror.js"; import * as models from "../index.js"; +export const AllChannels = { + True: "true", + False: "false", +} as const; +export type AllChannels = ClosedEnum; + export const ListReleasesInclude = { Project: "project", + Rollout: "rollout", + CreatedBy: "createdBy", } as const; export type ListReleasesInclude = ClosedEnum; @@ -19,12 +27,17 @@ export type ListReleasesRequest = { * Filter by project ID or name. */ project?: string | null | undefined; + /** + * Filter to releases promoted to this channel. Defaults to production. + */ + channel?: string | null | undefined; + allChannels?: AllChannels | undefined; /** * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. */ workspace?: string | undefined; /** - * Optional fields to include: project + * Optional fields to include: project, rollout */ include?: Array | undefined; /** @@ -71,6 +84,11 @@ export type ListReleasesResponse = { nextCursor: string | null; }; +/** @internal */ +export const AllChannels$outboundSchema: z.ZodEnum = z.enum( + AllChannels, +); + /** @internal */ export const ListReleasesInclude$outboundSchema: z.ZodEnum< typeof ListReleasesInclude @@ -79,6 +97,8 @@ export const ListReleasesInclude$outboundSchema: z.ZodEnum< /** @internal */ export type ListReleasesRequest$Outbound = { project?: string | null | undefined; + channel?: string | null | undefined; + allChannels: string; workspace?: string | undefined; include?: Array | undefined; search?: string | null | undefined; @@ -96,6 +116,8 @@ export const ListReleasesRequest$outboundSchema: z.ZodType< ListReleasesRequest > = z.object({ project: z.nullable(z.string()).optional(), + channel: z.nullable(z.string()).optional(), + allChannels: AllChannels$outboundSchema.default("false"), workspace: z.string().optional(), include: z.array(ListReleasesInclude$outboundSchema).optional(), search: z.nullable(z.string()).optional(), diff --git a/client-sdks/platform/typescript/src/models/operations/listworkspaceinvitations.ts b/client-sdks/platform/typescript/src/models/operations/listworkspaceinvitations.ts new file mode 100644 index 000000000..9ff549c33 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/listworkspaceinvitations.ts @@ -0,0 +1,70 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import * as models from "../index.js"; + +export type ListWorkspaceInvitationsRequest = { + /** + * Unique identifier for the workspace. + */ + id: string; + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; +}; + +/** + * Pending invitations. + */ +export type ListWorkspaceInvitationsResponse = { + items: Array; +}; + +/** @internal */ +export type ListWorkspaceInvitationsRequest$Outbound = { + id: string; + workspace?: string | undefined; +}; + +/** @internal */ +export const ListWorkspaceInvitationsRequest$outboundSchema: z.ZodType< + ListWorkspaceInvitationsRequest$Outbound, + ListWorkspaceInvitationsRequest +> = z.object({ + id: z.string(), + workspace: z.string().optional(), +}); + +export function listWorkspaceInvitationsRequestToJSON( + listWorkspaceInvitationsRequest: ListWorkspaceInvitationsRequest, +): string { + return JSON.stringify( + ListWorkspaceInvitationsRequest$outboundSchema.parse( + listWorkspaceInvitationsRequest, + ), + ); +} + +/** @internal */ +export const ListWorkspaceInvitationsResponse$inboundSchema: z.ZodType< + ListWorkspaceInvitationsResponse, + unknown +> = z.object({ + items: z.array(models.WorkspaceInvitation$inboundSchema), +}); + +export function listWorkspaceInvitationsResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ListWorkspaceInvitationsResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ListWorkspaceInvitationsResponse' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/promoterelease.ts b/client-sdks/platform/typescript/src/models/operations/promoterelease.ts new file mode 100644 index 000000000..fab97ef61 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/promoterelease.ts @@ -0,0 +1,85 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { remap as remap$ } from "../../lib/primitives.js"; + +export type PromoteReleaseRequestBody = { + /** + * Unique identifier for the release. + */ + releaseId: string; + /** + * Unique identifier for the release. + */ + expectedReleaseId?: string | null | undefined; +}; + +export type PromoteReleaseRequest = { + name: string; + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; + /** + * Filter by project ID or name. + */ + project: string; + requestBody?: PromoteReleaseRequestBody | undefined; +}; + +/** @internal */ +export type PromoteReleaseRequestBody$Outbound = { + releaseId: string; + expectedReleaseId?: string | null | undefined; +}; + +/** @internal */ +export const PromoteReleaseRequestBody$outboundSchema: z.ZodType< + PromoteReleaseRequestBody$Outbound, + PromoteReleaseRequestBody +> = z.object({ + releaseId: z.string(), + expectedReleaseId: z.nullable(z.string()).optional(), +}); + +export function promoteReleaseRequestBodyToJSON( + promoteReleaseRequestBody: PromoteReleaseRequestBody, +): string { + return JSON.stringify( + PromoteReleaseRequestBody$outboundSchema.parse(promoteReleaseRequestBody), + ); +} + +/** @internal */ +export type PromoteReleaseRequest$Outbound = { + name: string; + workspace?: string | undefined; + project: string; + RequestBody?: PromoteReleaseRequestBody$Outbound | undefined; +}; + +/** @internal */ +export const PromoteReleaseRequest$outboundSchema: z.ZodType< + PromoteReleaseRequest$Outbound, + PromoteReleaseRequest +> = z.object({ + name: z.string(), + workspace: z.string().optional(), + project: z.string(), + requestBody: z.lazy(() => PromoteReleaseRequestBody$outboundSchema) + .optional(), +}).transform((v) => { + return remap$(v, { + requestBody: "RequestBody", + }); +}); + +export function promoteReleaseRequestToJSON( + promoteReleaseRequest: PromoteReleaseRequest, +): string { + return JSON.stringify( + PromoteReleaseRequest$outboundSchema.parse(promoteReleaseRequest), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/resendworkspaceinvitation.ts b/client-sdks/platform/typescript/src/models/operations/resendworkspaceinvitation.ts new file mode 100644 index 000000000..3948c657e --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/resendworkspaceinvitation.ts @@ -0,0 +1,44 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; + +export type ResendWorkspaceInvitationRequest = { + /** + * Unique identifier for the workspace. + */ + id: string; + invitationId: string; + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; +}; + +/** @internal */ +export type ResendWorkspaceInvitationRequest$Outbound = { + id: string; + invitationId: string; + workspace?: string | undefined; +}; + +/** @internal */ +export const ResendWorkspaceInvitationRequest$outboundSchema: z.ZodType< + ResendWorkspaceInvitationRequest$Outbound, + ResendWorkspaceInvitationRequest +> = z.object({ + id: z.string(), + invitationId: z.string(), + workspace: z.string().optional(), +}); + +export function resendWorkspaceInvitationRequestToJSON( + resendWorkspaceInvitationRequest: ResendWorkspaceInvitationRequest, +): string { + return JSON.stringify( + ResendWorkspaceInvitationRequest$outboundSchema.parse( + resendWorkspaceInvitationRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/revokeworkspaceinvitation.ts b/client-sdks/platform/typescript/src/models/operations/revokeworkspaceinvitation.ts new file mode 100644 index 000000000..6d59366a6 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/revokeworkspaceinvitation.ts @@ -0,0 +1,44 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; + +export type RevokeWorkspaceInvitationRequest = { + /** + * Unique identifier for the workspace. + */ + id: string; + invitationId: string; + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; +}; + +/** @internal */ +export type RevokeWorkspaceInvitationRequest$Outbound = { + id: string; + invitationId: string; + workspace?: string | undefined; +}; + +/** @internal */ +export const RevokeWorkspaceInvitationRequest$outboundSchema: z.ZodType< + RevokeWorkspaceInvitationRequest$Outbound, + RevokeWorkspaceInvitationRequest +> = z.object({ + id: z.string(), + invitationId: z.string(), + workspace: z.string().optional(), +}); + +export function revokeWorkspaceInvitationRequestToJSON( + revokeWorkspaceInvitationRequest: RevokeWorkspaceInvitationRequest, +): string { + return JSON.stringify( + RevokeWorkspaceInvitationRequest$outboundSchema.parse( + revokeWorkspaceInvitationRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/revokeworkspaceinvitelink.ts b/client-sdks/platform/typescript/src/models/operations/revokeworkspaceinvitelink.ts new file mode 100644 index 000000000..9627c742b --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/revokeworkspaceinvitelink.ts @@ -0,0 +1,41 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; + +export type RevokeWorkspaceInviteLinkRequest = { + /** + * Unique identifier for the workspace. + */ + id: string; + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; +}; + +/** @internal */ +export type RevokeWorkspaceInviteLinkRequest$Outbound = { + id: string; + workspace?: string | undefined; +}; + +/** @internal */ +export const RevokeWorkspaceInviteLinkRequest$outboundSchema: z.ZodType< + RevokeWorkspaceInviteLinkRequest$Outbound, + RevokeWorkspaceInviteLinkRequest +> = z.object({ + id: z.string(), + workspace: z.string().optional(), +}); + +export function revokeWorkspaceInviteLinkRequestToJSON( + revokeWorkspaceInviteLinkRequest: RevokeWorkspaceInviteLinkRequest, +): string { + return JSON.stringify( + RevokeWorkspaceInviteLinkRequest$outboundSchema.parse( + revokeWorkspaceInviteLinkRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/setdeploymentgroupexternalid.ts b/client-sdks/platform/typescript/src/models/operations/setdeploymentgroupexternalid.ts new file mode 100644 index 000000000..f88b55a29 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/setdeploymentgroupexternalid.ts @@ -0,0 +1,53 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { remap as remap$ } from "../../lib/primitives.js"; +import * as models from "../index.js"; + +export type SetDeploymentGroupExternalIdRequest = { + /** + * Unique identifier for the deployment group. + */ + id: string; + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; + setDeploymentGroupExternalIdRequest: + models.SetDeploymentGroupExternalIdRequest; +}; + +/** @internal */ +export type SetDeploymentGroupExternalIdRequest$Outbound = { + id: string; + workspace?: string | undefined; + SetDeploymentGroupExternalIdRequest: + models.SetDeploymentGroupExternalIdRequest$Outbound; +}; + +/** @internal */ +export const SetDeploymentGroupExternalIdRequest$outboundSchema: z.ZodType< + SetDeploymentGroupExternalIdRequest$Outbound, + SetDeploymentGroupExternalIdRequest +> = z.object({ + id: z.string(), + workspace: z.string().optional(), + setDeploymentGroupExternalIdRequest: + models.SetDeploymentGroupExternalIdRequest$outboundSchema, +}).transform((v) => { + return remap$(v, { + setDeploymentGroupExternalIdRequest: "SetDeploymentGroupExternalIdRequest", + }); +}); + +export function setDeploymentGroupExternalIdRequestToJSON( + setDeploymentGroupExternalIdRequest: SetDeploymentGroupExternalIdRequest, +): string { + return JSON.stringify( + SetDeploymentGroupExternalIdRequest$outboundSchema.parse( + setDeploymentGroupExternalIdRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/setdeploymentreleasechannel.ts b/client-sdks/platform/typescript/src/models/operations/setdeploymentreleasechannel.ts new file mode 100644 index 000000000..30b8bc5e9 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/setdeploymentreleasechannel.ts @@ -0,0 +1,79 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { remap as remap$ } from "../../lib/primitives.js"; + +export type SetDeploymentReleaseChannelRequestBody = { + channel: string; +}; + +export type SetDeploymentReleaseChannelRequest = { + /** + * Unique identifier for the deployment. + */ + id: string; + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; + requestBody?: SetDeploymentReleaseChannelRequestBody | undefined; +}; + +/** @internal */ +export type SetDeploymentReleaseChannelRequestBody$Outbound = { + channel: string; +}; + +/** @internal */ +export const SetDeploymentReleaseChannelRequestBody$outboundSchema: z.ZodType< + SetDeploymentReleaseChannelRequestBody$Outbound, + SetDeploymentReleaseChannelRequestBody +> = z.object({ + channel: z.string(), +}); + +export function setDeploymentReleaseChannelRequestBodyToJSON( + setDeploymentReleaseChannelRequestBody: + SetDeploymentReleaseChannelRequestBody, +): string { + return JSON.stringify( + SetDeploymentReleaseChannelRequestBody$outboundSchema.parse( + setDeploymentReleaseChannelRequestBody, + ), + ); +} + +/** @internal */ +export type SetDeploymentReleaseChannelRequest$Outbound = { + id: string; + workspace?: string | undefined; + RequestBody?: SetDeploymentReleaseChannelRequestBody$Outbound | undefined; +}; + +/** @internal */ +export const SetDeploymentReleaseChannelRequest$outboundSchema: z.ZodType< + SetDeploymentReleaseChannelRequest$Outbound, + SetDeploymentReleaseChannelRequest +> = z.object({ + id: z.string(), + workspace: z.string().optional(), + requestBody: z.lazy(() => + SetDeploymentReleaseChannelRequestBody$outboundSchema + ).optional(), +}).transform((v) => { + return remap$(v, { + requestBody: "RequestBody", + }); +}); + +export function setDeploymentReleaseChannelRequestToJSON( + setDeploymentReleaseChannelRequest: SetDeploymentReleaseChannelRequest, +): string { + return JSON.stringify( + SetDeploymentReleaseChannelRequest$outboundSchema.parse( + setDeploymentReleaseChannelRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/slackintegrationchannels.ts b/client-sdks/platform/typescript/src/models/operations/slackintegrationchannels.ts new file mode 100644 index 000000000..da4ff22ae --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/slackintegrationchannels.ts @@ -0,0 +1,35 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; + +export type SlackIntegrationChannelsRequest = { + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; +}; + +/** @internal */ +export type SlackIntegrationChannelsRequest$Outbound = { + workspace?: string | undefined; +}; + +/** @internal */ +export const SlackIntegrationChannelsRequest$outboundSchema: z.ZodType< + SlackIntegrationChannelsRequest$Outbound, + SlackIntegrationChannelsRequest +> = z.object({ + workspace: z.string().optional(), +}); + +export function slackIntegrationChannelsRequestToJSON( + slackIntegrationChannelsRequest: SlackIntegrationChannelsRequest, +): string { + return JSON.stringify( + SlackIntegrationChannelsRequest$outboundSchema.parse( + slackIntegrationChannelsRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/slackintegrationinstallurl.ts b/client-sdks/platform/typescript/src/models/operations/slackintegrationinstallurl.ts new file mode 100644 index 000000000..1c95f45da --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/slackintegrationinstallurl.ts @@ -0,0 +1,35 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; + +export type SlackIntegrationInstallUrlRequest = { + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; +}; + +/** @internal */ +export type SlackIntegrationInstallUrlRequest$Outbound = { + workspace?: string | undefined; +}; + +/** @internal */ +export const SlackIntegrationInstallUrlRequest$outboundSchema: z.ZodType< + SlackIntegrationInstallUrlRequest$Outbound, + SlackIntegrationInstallUrlRequest +> = z.object({ + workspace: z.string().optional(), +}); + +export function slackIntegrationInstallUrlRequestToJSON( + slackIntegrationInstallUrlRequest: SlackIntegrationInstallUrlRequest, +): string { + return JSON.stringify( + SlackIntegrationInstallUrlRequest$outboundSchema.parse( + slackIntegrationInstallUrlRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/slackintegrationsetnotificationchannel.ts b/client-sdks/platform/typescript/src/models/operations/slackintegrationsetnotificationchannel.ts new file mode 100644 index 000000000..ef7e48066 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/slackintegrationsetnotificationchannel.ts @@ -0,0 +1,51 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { remap as remap$ } from "../../lib/primitives.js"; +import * as models from "../index.js"; + +export type SlackIntegrationSetNotificationChannelRequest = { + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; + slackNotificationChannelRequest?: + | models.SlackNotificationChannelRequest + | undefined; +}; + +/** @internal */ +export type SlackIntegrationSetNotificationChannelRequest$Outbound = { + workspace?: string | undefined; + SlackNotificationChannelRequest?: + | models.SlackNotificationChannelRequest$Outbound + | undefined; +}; + +/** @internal */ +export const SlackIntegrationSetNotificationChannelRequest$outboundSchema: + z.ZodType< + SlackIntegrationSetNotificationChannelRequest$Outbound, + SlackIntegrationSetNotificationChannelRequest + > = z.object({ + workspace: z.string().optional(), + slackNotificationChannelRequest: models + .SlackNotificationChannelRequest$outboundSchema.optional(), + }).transform((v) => { + return remap$(v, { + slackNotificationChannelRequest: "SlackNotificationChannelRequest", + }); + }); + +export function slackIntegrationSetNotificationChannelRequestToJSON( + slackIntegrationSetNotificationChannelRequest: + SlackIntegrationSetNotificationChannelRequest, +): string { + return JSON.stringify( + SlackIntegrationSetNotificationChannelRequest$outboundSchema.parse( + slackIntegrationSetNotificationChannelRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/slackintegrationstatus.ts b/client-sdks/platform/typescript/src/models/operations/slackintegrationstatus.ts new file mode 100644 index 000000000..a38984abf --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/slackintegrationstatus.ts @@ -0,0 +1,35 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; + +export type SlackIntegrationStatusRequest = { + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; +}; + +/** @internal */ +export type SlackIntegrationStatusRequest$Outbound = { + workspace?: string | undefined; +}; + +/** @internal */ +export const SlackIntegrationStatusRequest$outboundSchema: z.ZodType< + SlackIntegrationStatusRequest$Outbound, + SlackIntegrationStatusRequest +> = z.object({ + workspace: z.string().optional(), +}); + +export function slackIntegrationStatusRequestToJSON( + slackIntegrationStatusRequest: SlackIntegrationStatusRequest, +): string { + return JSON.stringify( + SlackIntegrationStatusRequest$outboundSchema.parse( + slackIntegrationStatusRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/slackintegrationuninstall.ts b/client-sdks/platform/typescript/src/models/operations/slackintegrationuninstall.ts new file mode 100644 index 000000000..190f0d14c --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/slackintegrationuninstall.ts @@ -0,0 +1,35 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; + +export type SlackIntegrationUninstallRequest = { + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; +}; + +/** @internal */ +export type SlackIntegrationUninstallRequest$Outbound = { + workspace?: string | undefined; +}; + +/** @internal */ +export const SlackIntegrationUninstallRequest$outboundSchema: z.ZodType< + SlackIntegrationUninstallRequest$Outbound, + SlackIntegrationUninstallRequest +> = z.object({ + workspace: z.string().optional(), +}); + +export function slackIntegrationUninstallRequestToJSON( + slackIntegrationUninstallRequest: SlackIntegrationUninstallRequest, +): string { + return JSON.stringify( + SlackIntegrationUninstallRequest$outboundSchema.parse( + slackIntegrationUninstallRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/stopagentsession.ts b/client-sdks/platform/typescript/src/models/operations/stopagentsession.ts new file mode 100644 index 000000000..a0ba6d4b1 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/stopagentsession.ts @@ -0,0 +1,36 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; + +export type StopAgentSessionRequest = { + id: string; + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; +}; + +/** @internal */ +export type StopAgentSessionRequest$Outbound = { + id: string; + workspace?: string | undefined; +}; + +/** @internal */ +export const StopAgentSessionRequest$outboundSchema: z.ZodType< + StopAgentSessionRequest$Outbound, + StopAgentSessionRequest +> = z.object({ + id: z.string(), + workspace: z.string().optional(), +}); + +export function stopAgentSessionRequestToJSON( + stopAgentSessionRequest: StopAgentSessionRequest, +): string { + return JSON.stringify( + StopAgentSessionRequest$outboundSchema.parse(stopAgentSessionRequest), + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/syncrenew.ts b/client-sdks/platform/typescript/src/models/operations/syncrenew.ts new file mode 100644 index 000000000..11cb233a0 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/syncrenew.ts @@ -0,0 +1,109 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { remap as remap$ } from "../../lib/primitives.js"; +import { safeParse } from "../../lib/schemas.js"; +import { Result as SafeParseResult } from "../../types/fp.js"; +import { SDKValidationError } from "../errors/sdkvalidationerror.js"; +import * as models from "../index.js"; + +export type SyncRenewRequest = { + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; + syncRenewRequest: models.SyncRenewRequest; +}; + +export type Lease = { + /** + * Unique identifier for the deployment. + */ + deploymentId: string; + /** + * False when this session no longer holds a live lease. + */ + renewed: boolean; + leaseExpiresAt: Date | null; +}; + +/** + * Renewal processed. Inspect `leases` for per-deployment outcomes; a lost lease is reported there rather than failing the whole batch. + */ +export type SyncRenewResponse = { + /** + * True when every requested deployment was renewed. + */ + success: boolean; + /** + * Per-deployment renewal outcome. + */ + leases: Array; +}; + +/** @internal */ +export type SyncRenewRequest$Outbound = { + workspace?: string | undefined; + SyncRenewRequest: models.SyncRenewRequest$Outbound; +}; + +/** @internal */ +export const SyncRenewRequest$outboundSchema: z.ZodType< + SyncRenewRequest$Outbound, + SyncRenewRequest +> = z.object({ + workspace: z.string().optional(), + syncRenewRequest: models.SyncRenewRequest$outboundSchema, +}).transform((v) => { + return remap$(v, { + syncRenewRequest: "SyncRenewRequest", + }); +}); + +export function syncRenewRequestToJSON( + syncRenewRequest: SyncRenewRequest, +): string { + return JSON.stringify( + SyncRenewRequest$outboundSchema.parse(syncRenewRequest), + ); +} + +/** @internal */ +export const Lease$inboundSchema: z.ZodType = z.object({ + deploymentId: z.string(), + renewed: z.boolean(), + leaseExpiresAt: z.nullable( + z.iso.datetime({ offset: true }).transform(v => new Date(v)), + ), +}); + +export function leaseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Lease$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Lease' from JSON`, + ); +} + +/** @internal */ +export const SyncRenewResponse$inboundSchema: z.ZodType< + SyncRenewResponse, + unknown +> = z.object({ + success: z.boolean(), + leases: z.array(z.lazy(() => Lease$inboundSchema)), +}); + +export function syncRenewResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncRenewResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncRenewResponse' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/operations/updateworkspacesettings.ts b/client-sdks/platform/typescript/src/models/operations/updateworkspacesettings.ts new file mode 100644 index 000000000..45ae5bb2a --- /dev/null +++ b/client-sdks/platform/typescript/src/models/operations/updateworkspacesettings.ts @@ -0,0 +1,55 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { remap as remap$ } from "../../lib/primitives.js"; +import * as models from "../index.js"; + +export type UpdateWorkspaceSettingsRequest = { + /** + * Unique identifier for the workspace. + */ + id: string; + /** + * Workspace name. Required for user/session/OAuth requests. Optional for API keys because API keys are workspace-scoped; if provided with an API key, it must match the key's workspace. + */ + workspace?: string | undefined; + updateWorkspaceSettingsRequest?: + | models.UpdateWorkspaceSettingsRequest + | undefined; +}; + +/** @internal */ +export type UpdateWorkspaceSettingsRequest$Outbound = { + id: string; + workspace?: string | undefined; + UpdateWorkspaceSettingsRequest?: + | models.UpdateWorkspaceSettingsRequest$Outbound + | undefined; +}; + +/** @internal */ +export const UpdateWorkspaceSettingsRequest$outboundSchema: z.ZodType< + UpdateWorkspaceSettingsRequest$Outbound, + UpdateWorkspaceSettingsRequest +> = z.object({ + id: z.string(), + workspace: z.string().optional(), + updateWorkspaceSettingsRequest: models + .UpdateWorkspaceSettingsRequest$outboundSchema.optional(), +}).transform((v) => { + return remap$(v, { + updateWorkspaceSettingsRequest: "UpdateWorkspaceSettingsRequest", + }); +}); + +export function updateWorkspaceSettingsRequestToJSON( + updateWorkspaceSettingsRequest: UpdateWorkspaceSettingsRequest, +): string { + return JSON.stringify( + UpdateWorkspaceSettingsRequest$outboundSchema.parse( + updateWorkspaceSettingsRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/persistimporteddeploymentrequest.ts b/client-sdks/platform/typescript/src/models/persistimporteddeploymentrequest.ts index 62bb91cac..a2471bc8f 100644 --- a/client-sdks/platform/typescript/src/models/persistimporteddeploymentrequest.ts +++ b/client-sdks/platform/typescript/src/models/persistimporteddeploymentrequest.ts @@ -43,7 +43,33 @@ export type PersistImportedDeploymentRequestPlatformEnum = ClosedEnum< typeof PersistImportedDeploymentRequestPlatformEnum >; +/** + * Failure-domain policy selected for a compute pool. + */ +export type PersistImportedDeploymentRequestFailureDomains2 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type PersistImportedDeploymentRequestFailureDomainsUnion2 = + | PersistImportedDeploymentRequestFailureDomains2 + | any; + export type PersistImportedDeploymentRequestPoolsAutoscale = { + failureDomains?: + | PersistImportedDeploymentRequestFailureDomains2 + | any + | null + | undefined; /** * Provider machine type selected for this deployment. */ @@ -59,7 +85,33 @@ export type PersistImportedDeploymentRequestPoolsAutoscale = { mode: "autoscale"; }; +/** + * Failure-domain policy selected for a compute pool. + */ +export type PersistImportedDeploymentRequestFailureDomains1 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type PersistImportedDeploymentRequestFailureDomainsUnion1 = + | PersistImportedDeploymentRequestFailureDomains1 + | any; + export type PersistImportedDeploymentRequestPoolsFixed = { + failureDomains?: + | PersistImportedDeploymentRequestFailureDomains1 + | any + | null + | undefined; /** * Provider machine type selected for this deployment. */ @@ -1335,95 +1387,119 @@ export type PersistImportedDeploymentRequestEnvironmentInfoUnion = | PersistImportedDeploymentRequestEnvironmentInfoTest | any; -export const PersistImportedDeploymentRequestTypeStringList = { - StringList: "stringList", +/** + * Actor that owns structural work during the initial setup phase. + */ +export const PersistImportedDeploymentRequestInitialSetupAuthority = { + ImportedHandoff: "importedHandoff", + DirectSetup: "directSetup", } as const; -export type PersistImportedDeploymentRequestTypeStringList = ClosedEnum< - typeof PersistImportedDeploymentRequestTypeStringList +/** + * Actor that owns structural work during the initial setup phase. + */ +export type PersistImportedDeploymentRequestInitialSetupAuthority = ClosedEnum< + typeof PersistImportedDeploymentRequestInitialSetupAuthority >; -export type PersistImportedDeploymentRequestDefaultStringList = { - type: PersistImportedDeploymentRequestTypeStringList; - /** - * String list default. - */ - value: Array; -}; +export const PersistImportedDeploymentRequestPendingPreparedStackTypeStringList = + { + StringList: "stringList", + } as const; +export type PersistImportedDeploymentRequestPendingPreparedStackTypeStringList = + ClosedEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackTypeStringList + >; + +export type PersistImportedDeploymentRequestPendingPreparedStackDefaultStringList = + { + type: PersistImportedDeploymentRequestPendingPreparedStackTypeStringList; + /** + * String list default. + */ + value: Array; + }; -export const PersistImportedDeploymentRequestTypeBoolean = { +export const PersistImportedDeploymentRequestPendingPreparedStackTypeBoolean = { Boolean: "boolean", } as const; -export type PersistImportedDeploymentRequestTypeBoolean = ClosedEnum< - typeof PersistImportedDeploymentRequestTypeBoolean ->; +export type PersistImportedDeploymentRequestPendingPreparedStackTypeBoolean = + ClosedEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackTypeBoolean + >; -export type PersistImportedDeploymentRequestDefaultBoolean = { - type: PersistImportedDeploymentRequestTypeBoolean; - /** - * Boolean default. - */ - value: boolean; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackDefaultBoolean = + { + type: PersistImportedDeploymentRequestPendingPreparedStackTypeBoolean; + /** + * Boolean default. + */ + value: boolean; + }; -export const PersistImportedDeploymentRequestTypeNumber = { +export const PersistImportedDeploymentRequestPendingPreparedStackTypeNumber = { Number: "number", } as const; -export type PersistImportedDeploymentRequestTypeNumber = ClosedEnum< - typeof PersistImportedDeploymentRequestTypeNumber ->; +export type PersistImportedDeploymentRequestPendingPreparedStackTypeNumber = + ClosedEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackTypeNumber + >; -export type PersistImportedDeploymentRequestDefaultNumber = { - type: PersistImportedDeploymentRequestTypeNumber; - /** - * Number default. - */ - value: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackDefaultNumber = + { + type: PersistImportedDeploymentRequestPendingPreparedStackTypeNumber; + /** + * Number default. + */ + value: string; + }; -export const PersistImportedDeploymentRequestTypeString = { +export const PersistImportedDeploymentRequestPendingPreparedStackTypeString = { String: "string", } as const; -export type PersistImportedDeploymentRequestTypeString = ClosedEnum< - typeof PersistImportedDeploymentRequestTypeString ->; +export type PersistImportedDeploymentRequestPendingPreparedStackTypeString = + ClosedEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackTypeString + >; -export type PersistImportedDeploymentRequestDefaultString = { - type: PersistImportedDeploymentRequestTypeString; - /** - * String default. - */ - value: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackDefaultString = + { + type: PersistImportedDeploymentRequestPendingPreparedStackTypeString; + /** + * String default. + */ + value: string; + }; -export type PersistImportedDeploymentRequestDefaultUnion = - | PersistImportedDeploymentRequestDefaultString - | PersistImportedDeploymentRequestDefaultNumber - | PersistImportedDeploymentRequestDefaultBoolean - | PersistImportedDeploymentRequestDefaultStringList +export type PersistImportedDeploymentRequestPendingPreparedStackDefaultUnion = + | PersistImportedDeploymentRequestPendingPreparedStackDefaultString + | PersistImportedDeploymentRequestPendingPreparedStackDefaultNumber + | PersistImportedDeploymentRequestPendingPreparedStackDefaultBoolean + | PersistImportedDeploymentRequestPendingPreparedStackDefaultStringList | any; /** * Environment variable handling for a stack input mapping. */ -export const PersistImportedDeploymentRequestTypeEnvEnum = { +export const PersistImportedDeploymentRequestPendingPreparedStackTypeEnvEnum = { Plain: "plain", Secret: "secret", } as const; /** * Environment variable handling for a stack input mapping. */ -export type PersistImportedDeploymentRequestTypeEnvEnum = ClosedEnum< - typeof PersistImportedDeploymentRequestTypeEnvEnum ->; +export type PersistImportedDeploymentRequestPendingPreparedStackTypeEnvEnum = + ClosedEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackTypeEnvEnum + >; -export type PersistImportedDeploymentRequestTypeUnion = - | PersistImportedDeploymentRequestTypeEnvEnum +export type PersistImportedDeploymentRequestPendingPreparedStackTypeUnion = + | PersistImportedDeploymentRequestPendingPreparedStackTypeEnvEnum | any; /** * How a resolved stack input is injected into runtime environment variables. */ -export type PersistImportedDeploymentRequestEnv = { +export type PersistImportedDeploymentRequestPendingPreparedStackEnv = { /** * Environment variable name. */ @@ -1432,13 +1508,17 @@ export type PersistImportedDeploymentRequestEnv = { * Target resource IDs or patterns. None means every env-capable resource. */ targetResources?: Array | null | undefined; - type?: PersistImportedDeploymentRequestTypeEnvEnum | any | null | undefined; + type?: + | PersistImportedDeploymentRequestPendingPreparedStackTypeEnvEnum + | any + | null + | undefined; }; /** * Primitive stack input kind. */ -export const PersistImportedDeploymentRequestKind = { +export const PersistImportedDeploymentRequestPendingPreparedStackKind = { String: "string", Secret: "secret", Number: "number", @@ -1450,14 +1530,13 @@ export const PersistImportedDeploymentRequestKind = { /** * Primitive stack input kind. */ -export type PersistImportedDeploymentRequestKind = ClosedEnum< - typeof PersistImportedDeploymentRequestKind ->; +export type PersistImportedDeploymentRequestPendingPreparedStackKind = + ClosedEnum; /** * Represents the target cloud platform. */ -export const PersistImportedDeploymentRequestPreparedStackPlatform = { +export const PersistImportedDeploymentRequestPendingPreparedStackPlatform = { Aws: "aws", Gcp: "gcp", Azure: "azure", @@ -1469,28 +1548,30 @@ export const PersistImportedDeploymentRequestPreparedStackPlatform = { /** * Represents the target cloud platform. */ -export type PersistImportedDeploymentRequestPreparedStackPlatform = ClosedEnum< - typeof PersistImportedDeploymentRequestPreparedStackPlatform ->; +export type PersistImportedDeploymentRequestPendingPreparedStackPlatform = + ClosedEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackPlatform + >; /** * Who can provide a stack input value. */ -export const PersistImportedDeploymentRequestProvidedBy = { +export const PersistImportedDeploymentRequestPendingPreparedStackProvidedBy = { Developer: "developer", Deployer: "deployer", } as const; /** * Who can provide a stack input value. */ -export type PersistImportedDeploymentRequestProvidedBy = ClosedEnum< - typeof PersistImportedDeploymentRequestProvidedBy ->; +export type PersistImportedDeploymentRequestPendingPreparedStackProvidedBy = + ClosedEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackProvidedBy + >; /** * Portable stack input validation constraints. */ -export type PersistImportedDeploymentRequestValidation = { +export type PersistImportedDeploymentRequestPendingPreparedStackValidation = { /** * Semantic format hint such as url. */ @@ -1529,19 +1610,19 @@ export type PersistImportedDeploymentRequestValidation = { values?: Array | null | undefined; }; -export type PersistImportedDeploymentRequestValidationUnion = - | PersistImportedDeploymentRequestValidation +export type PersistImportedDeploymentRequestPendingPreparedStackValidationUnion = + | PersistImportedDeploymentRequestPendingPreparedStackValidation | any; /** * Stack input definition serialized into a release stack. */ -export type PersistImportedDeploymentRequestInput = { +export type PersistImportedDeploymentRequestPendingPreparedStackInput = { default?: - | PersistImportedDeploymentRequestDefaultString - | PersistImportedDeploymentRequestDefaultNumber - | PersistImportedDeploymentRequestDefaultBoolean - | PersistImportedDeploymentRequestDefaultStringList + | PersistImportedDeploymentRequestPendingPreparedStackDefaultString + | PersistImportedDeploymentRequestPendingPreparedStackDefaultNumber + | PersistImportedDeploymentRequestPendingPreparedStackDefaultBoolean + | PersistImportedDeploymentRequestPendingPreparedStackDefaultStringList | any | null | undefined; @@ -1552,7 +1633,9 @@ export type PersistImportedDeploymentRequestInput = { /** * Runtime env-var mappings for v1 input resolution. */ - env?: Array | undefined; + env?: + | Array + | undefined; /** * Stable input ID used by CLI/API calls. */ @@ -1560,7 +1643,7 @@ export type PersistImportedDeploymentRequestInput = { /** * Primitive stack input kind. */ - kind: PersistImportedDeploymentRequestKind; + kind: PersistImportedDeploymentRequestPendingPreparedStackKind; /** * Human-facing field label. */ @@ -1573,121 +1656,136 @@ export type PersistImportedDeploymentRequestInput = { * Platforms where this input applies. */ platforms?: - | Array + | Array | null | undefined; /** * Who can provide this value. */ - providedBy: Array; + providedBy: Array< + PersistImportedDeploymentRequestPendingPreparedStackProvidedBy + >; /** * Whether a resolved value is required before deployment can proceed. */ required: boolean; validation?: - | PersistImportedDeploymentRequestValidation + | PersistImportedDeploymentRequestPendingPreparedStackValidation | any | null | undefined; }; -export const PersistImportedDeploymentRequestManagementEnum = { - Auto: "auto", -} as const; -export type PersistImportedDeploymentRequestManagementEnum = ClosedEnum< - typeof PersistImportedDeploymentRequestManagementEnum ->; +export const PersistImportedDeploymentRequestPendingPreparedStackManagementEnum = + { + Auto: "auto", + } as const; +export type PersistImportedDeploymentRequestPendingPreparedStackManagementEnum = + ClosedEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackManagementEnum + >; /** * AWS-specific binding specification */ -export type PersistImportedDeploymentRequestOverrideAwResource = { - /** - * Optional condition for additional filtering (rare) - */ - condition?: { [k: string]: { [k: string]: string } } | null | undefined; - /** - * Resource ARNs to bind to - */ - resources: Array; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideAwResource = + { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; + }; /** * AWS-specific binding specification */ -export type PersistImportedDeploymentRequestOverrideAwStack = { - /** - * Optional condition for additional filtering (rare) - */ - condition?: { [k: string]: { [k: string]: string } } | null | undefined; - /** - * Resource ARNs to bind to - */ - resources: Array; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideAwStack = + { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; + }; /** * Generic binding configuration for permissions */ -export type PersistImportedDeploymentRequestOverrideAwBinding = { - /** - * AWS-specific binding specification - */ - resource?: PersistImportedDeploymentRequestOverrideAwResource | undefined; - /** - * AWS-specific binding specification - */ - stack?: PersistImportedDeploymentRequestOverrideAwStack | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideAwBinding = + { + /** + * AWS-specific binding specification + */ + resource?: + | PersistImportedDeploymentRequestPendingPreparedStackOverrideAwResource + | undefined; + /** + * AWS-specific binding specification + */ + stack?: + | PersistImportedDeploymentRequestPendingPreparedStackOverrideAwStack + | undefined; + }; /** * IAM effect. Defaults to Allow. */ -export const PersistImportedDeploymentRequestOverrideEffect = { - Allow: "Allow", - Deny: "Deny", -} as const; +export const PersistImportedDeploymentRequestPendingPreparedStackOverrideEffect = + { + Allow: "Allow", + Deny: "Deny", + } as const; /** * IAM effect. Defaults to Allow. */ -export type PersistImportedDeploymentRequestOverrideEffect = ClosedEnum< - typeof PersistImportedDeploymentRequestOverrideEffect ->; +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideEffect = + ClosedEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackOverrideEffect + >; /** * Grant permissions for a specific cloud platform */ -export type PersistImportedDeploymentRequestOverrideAwGrant = { - /** - * AWS IAM actions (only for AWS) - */ - actions?: Array | null | undefined; - /** - * Azure actions (only for Azure) - */ - dataActions?: Array | null | undefined; - /** - * GCP permissions that require an exact residual custom role. - */ - permissions?: Array | null | undefined; - /** - * Provider predefined roles to bind directly. - */ - predefinedRoles?: Array | null | undefined; - /** - * GCP residual custom permissions to pair with predefined roles. - */ - residualPermissions?: Array | null | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideAwGrant = + { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; + }; /** * AWS-specific platform permission configuration */ -export type PersistImportedDeploymentRequestOverrideAw = { +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideAw = { /** * Generic binding configuration for permissions */ - binding: PersistImportedDeploymentRequestOverrideAwBinding; + binding: + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -1695,11 +1793,13 @@ export type PersistImportedDeploymentRequestOverrideAw = { /** * IAM effect. Defaults to Allow. */ - effect?: PersistImportedDeploymentRequestOverrideEffect | undefined; + effect?: + | PersistImportedDeploymentRequestPendingPreparedStackOverrideEffect + | undefined; /** * Grant permissions for a specific cloud platform */ - grant: PersistImportedDeploymentRequestOverrideAwGrant; + grant: PersistImportedDeploymentRequestPendingPreparedStackOverrideAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -1709,187 +1809,209 @@ export type PersistImportedDeploymentRequestOverrideAw = { /** * Azure-specific binding specification */ -export type PersistImportedDeploymentRequestOverrideAzureResource = { - /** - * Scope (subscription/resource group/resource level) - */ - scope: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureResource = + { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; + }; /** * Azure-specific binding specification */ -export type PersistImportedDeploymentRequestOverrideAzureStack = { - /** - * Scope (subscription/resource group/resource level) - */ - scope: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureStack = + { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; + }; /** * Generic binding configuration for permissions */ -export type PersistImportedDeploymentRequestOverrideAzureBinding = { - /** - * Azure-specific binding specification - */ - resource?: PersistImportedDeploymentRequestOverrideAzureResource | undefined; - /** - * Azure-specific binding specification - */ - stack?: PersistImportedDeploymentRequestOverrideAzureStack | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureBinding = + { + /** + * Azure-specific binding specification + */ + resource?: + | PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureResource + | undefined; + /** + * Azure-specific binding specification + */ + stack?: + | PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureStack + | undefined; + }; /** * Grant permissions for a specific cloud platform */ -export type PersistImportedDeploymentRequestOverrideAzureGrant = { - /** - * AWS IAM actions (only for AWS) - */ - actions?: Array | null | undefined; - /** - * Azure actions (only for Azure) - */ - dataActions?: Array | null | undefined; - /** - * GCP permissions that require an exact residual custom role. - */ - permissions?: Array | null | undefined; - /** - * Provider predefined roles to bind directly. - */ - predefinedRoles?: Array | null | undefined; - /** - * GCP residual custom permissions to pair with predefined roles. - */ - residualPermissions?: Array | null | undefined; -}; - -/** - * Azure-specific platform permission configuration - */ -export type PersistImportedDeploymentRequestOverrideAzure = { - /** - * Generic binding configuration for permissions - */ - binding: PersistImportedDeploymentRequestOverrideAzureBinding; - /** - * Short admin-facing description of why this entry exists. - */ - description?: string | null | undefined; - /** - * Grant permissions for a specific cloud platform - */ - grant: PersistImportedDeploymentRequestOverrideAzureGrant; - /** - * Stable admin-facing label for this permission entry. - */ - label?: string | null | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureGrant = + { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; + }; + +/** + * Azure-specific platform permission configuration + */ +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideAzure = + { + /** + * Generic binding configuration for permissions + */ + binding: + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; + }; /** * GCP IAM condition */ -export type PersistImportedDeploymentRequestOverrideConditionResource = { - expression: string; - title: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionResource = + { + expression: string; + title: string; + }; -export type PersistImportedDeploymentRequestOverrideResourceConditionUnion = - | PersistImportedDeploymentRequestOverrideConditionResource +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideResourceConditionUnion = + | PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionResource | any; /** * GCP-specific binding specification */ -export type PersistImportedDeploymentRequestOverrideGcpResource = { - condition?: - | PersistImportedDeploymentRequestOverrideConditionResource - | any - | null - | undefined; - /** - * Scope (project/resource level) - */ - scope: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpResource = + { + condition?: + | PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionResource + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; + }; /** * GCP IAM condition */ -export type PersistImportedDeploymentRequestOverrideConditionStack = { - expression: string; - title: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionStack = + { + expression: string; + title: string; + }; -export type PersistImportedDeploymentRequestOverrideStackConditionUnion = - | PersistImportedDeploymentRequestOverrideConditionStack +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideStackConditionUnion = + | PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionStack | any; /** * GCP-specific binding specification */ -export type PersistImportedDeploymentRequestOverrideGcpStack = { - condition?: - | PersistImportedDeploymentRequestOverrideConditionStack - | any - | null - | undefined; - /** - * Scope (project/resource level) - */ - scope: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpStack = + { + condition?: + | PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionStack + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; + }; /** * Generic binding configuration for permissions */ -export type PersistImportedDeploymentRequestOverrideGcpBinding = { - /** - * GCP-specific binding specification - */ - resource?: PersistImportedDeploymentRequestOverrideGcpResource | undefined; - /** - * GCP-specific binding specification - */ - stack?: PersistImportedDeploymentRequestOverrideGcpStack | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpBinding = + { + /** + * GCP-specific binding specification + */ + resource?: + | PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpResource + | undefined; + /** + * GCP-specific binding specification + */ + stack?: + | PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpStack + | undefined; + }; /** * Grant permissions for a specific cloud platform */ -export type PersistImportedDeploymentRequestOverrideGcpGrant = { - /** - * AWS IAM actions (only for AWS) - */ - actions?: Array | null | undefined; - /** - * Azure actions (only for Azure) - */ - dataActions?: Array | null | undefined; - /** - * GCP permissions that require an exact residual custom role. - */ - permissions?: Array | null | undefined; - /** - * Provider predefined roles to bind directly. - */ - predefinedRoles?: Array | null | undefined; - /** - * GCP residual custom permissions to pair with predefined roles. - */ - residualPermissions?: Array | null | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpGrant = + { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; + }; /** * GCP-specific platform permission configuration */ -export type PersistImportedDeploymentRequestOverrideGcp = { +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideGcp = { /** * Generic binding configuration for permissions */ - binding: PersistImportedDeploymentRequestOverrideGcpBinding; + binding: + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -1897,7 +2019,7 @@ export type PersistImportedDeploymentRequestOverrideGcp = { /** * Grant permissions for a specific cloud platform */ - grant: PersistImportedDeploymentRequestOverrideGcpGrant; + grant: PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -1907,28 +2029,35 @@ export type PersistImportedDeploymentRequestOverrideGcp = { /** * Platform-specific permission configurations */ -export type PersistImportedDeploymentRequestOverridePlatforms = { - /** - * AWS permission configurations - */ - aws?: Array | null | undefined; - /** - * Azure permission configurations - */ - azure?: - | Array - | null - | undefined; - /** - * GCP permission configurations - */ - gcp?: Array | null | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackOverridePlatforms = + { + /** + * AWS permission configurations + */ + aws?: + | Array + | null + | undefined; + /** + * Azure permission configurations + */ + azure?: + | Array + | null + | undefined; + /** + * GCP permission configurations + */ + gcp?: + | Array + | null + | undefined; + }; /** * A permission set that can be applied across different cloud platforms */ -export type PersistImportedDeploymentRequestOverride = { +export type PersistImportedDeploymentRequestPendingPreparedStackOverride = { /** * Human-readable description of what this permission set allows */ @@ -1940,17 +2069,18 @@ export type PersistImportedDeploymentRequestOverride = { /** * Platform-specific permission configurations */ - platforms: PersistImportedDeploymentRequestOverridePlatforms; + platforms: + PersistImportedDeploymentRequestPendingPreparedStackOverridePlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type PersistImportedDeploymentRequestOverrideUnion = - | PersistImportedDeploymentRequestOverride +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideUnion = + | PersistImportedDeploymentRequestPendingPreparedStackOverride | string; -export type PersistImportedDeploymentRequestManagement2 = { +export type PersistImportedDeploymentRequestPendingPreparedStackManagement2 = { /** * Permission profile that maps resources to permission sets * @@ -1958,100 +2088,112 @@ export type PersistImportedDeploymentRequestManagement2 = { * Key can be "*" for all resources or resource name for specific resource */ override: { - [k: string]: Array; + [k: string]: Array< + PersistImportedDeploymentRequestPendingPreparedStackOverride | string + >; }; }; /** * AWS-specific binding specification */ -export type PersistImportedDeploymentRequestExtendAwResource = { - /** - * Optional condition for additional filtering (rare) - */ - condition?: { [k: string]: { [k: string]: string } } | null | undefined; - /** - * Resource ARNs to bind to - */ - resources: Array; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendAwResource = + { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; + }; /** * AWS-specific binding specification */ -export type PersistImportedDeploymentRequestExtendAwStack = { - /** - * Optional condition for additional filtering (rare) - */ - condition?: { [k: string]: { [k: string]: string } } | null | undefined; - /** - * Resource ARNs to bind to - */ - resources: Array; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendAwStack = + { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; + }; /** * Generic binding configuration for permissions */ -export type PersistImportedDeploymentRequestExtendAwBinding = { - /** - * AWS-specific binding specification - */ - resource?: PersistImportedDeploymentRequestExtendAwResource | undefined; - /** - * AWS-specific binding specification - */ - stack?: PersistImportedDeploymentRequestExtendAwStack | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendAwBinding = + { + /** + * AWS-specific binding specification + */ + resource?: + | PersistImportedDeploymentRequestPendingPreparedStackExtendAwResource + | undefined; + /** + * AWS-specific binding specification + */ + stack?: + | PersistImportedDeploymentRequestPendingPreparedStackExtendAwStack + | undefined; + }; /** * IAM effect. Defaults to Allow. */ -export const PersistImportedDeploymentRequestExtendEffect = { - Allow: "Allow", - Deny: "Deny", -} as const; +export const PersistImportedDeploymentRequestPendingPreparedStackExtendEffect = + { + Allow: "Allow", + Deny: "Deny", + } as const; /** * IAM effect. Defaults to Allow. */ -export type PersistImportedDeploymentRequestExtendEffect = ClosedEnum< - typeof PersistImportedDeploymentRequestExtendEffect ->; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendEffect = + ClosedEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackExtendEffect + >; /** * Grant permissions for a specific cloud platform */ -export type PersistImportedDeploymentRequestExtendAwGrant = { - /** - * AWS IAM actions (only for AWS) - */ - actions?: Array | null | undefined; - /** - * Azure actions (only for Azure) - */ - dataActions?: Array | null | undefined; - /** - * GCP permissions that require an exact residual custom role. - */ - permissions?: Array | null | undefined; - /** - * Provider predefined roles to bind directly. - */ - predefinedRoles?: Array | null | undefined; - /** - * GCP residual custom permissions to pair with predefined roles. - */ - residualPermissions?: Array | null | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendAwGrant = + { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; + }; /** * AWS-specific platform permission configuration */ -export type PersistImportedDeploymentRequestExtendAw = { +export type PersistImportedDeploymentRequestPendingPreparedStackExtendAw = { /** * Generic binding configuration for permissions */ - binding: PersistImportedDeploymentRequestExtendAwBinding; + binding: PersistImportedDeploymentRequestPendingPreparedStackExtendAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2059,11 +2201,13 @@ export type PersistImportedDeploymentRequestExtendAw = { /** * IAM effect. Defaults to Allow. */ - effect?: PersistImportedDeploymentRequestExtendEffect | undefined; + effect?: + | PersistImportedDeploymentRequestPendingPreparedStackExtendEffect + | undefined; /** * Grant permissions for a specific cloud platform */ - grant: PersistImportedDeploymentRequestExtendAwGrant; + grant: PersistImportedDeploymentRequestPendingPreparedStackExtendAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2073,71 +2217,80 @@ export type PersistImportedDeploymentRequestExtendAw = { /** * Azure-specific binding specification */ -export type PersistImportedDeploymentRequestExtendAzureResource = { - /** - * Scope (subscription/resource group/resource level) - */ - scope: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendAzureResource = + { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; + }; /** * Azure-specific binding specification */ -export type PersistImportedDeploymentRequestExtendAzureStack = { - /** - * Scope (subscription/resource group/resource level) - */ - scope: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendAzureStack = + { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; + }; /** * Generic binding configuration for permissions */ -export type PersistImportedDeploymentRequestExtendAzureBinding = { - /** - * Azure-specific binding specification - */ - resource?: PersistImportedDeploymentRequestExtendAzureResource | undefined; - /** - * Azure-specific binding specification - */ - stack?: PersistImportedDeploymentRequestExtendAzureStack | undefined; -}; - -/** - * Grant permissions for a specific cloud platform - */ -export type PersistImportedDeploymentRequestExtendAzureGrant = { - /** - * AWS IAM actions (only for AWS) - */ - actions?: Array | null | undefined; - /** - * Azure actions (only for Azure) - */ - dataActions?: Array | null | undefined; - /** - * GCP permissions that require an exact residual custom role. - */ - permissions?: Array | null | undefined; - /** - * Provider predefined roles to bind directly. - */ - predefinedRoles?: Array | null | undefined; - /** - * GCP residual custom permissions to pair with predefined roles. - */ - residualPermissions?: Array | null | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendAzureBinding = + { + /** + * Azure-specific binding specification + */ + resource?: + | PersistImportedDeploymentRequestPendingPreparedStackExtendAzureResource + | undefined; + /** + * Azure-specific binding specification + */ + stack?: + | PersistImportedDeploymentRequestPendingPreparedStackExtendAzureStack + | undefined; + }; + +/** + * Grant permissions for a specific cloud platform + */ +export type PersistImportedDeploymentRequestPendingPreparedStackExtendAzureGrant = + { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; + }; /** * Azure-specific platform permission configuration */ -export type PersistImportedDeploymentRequestExtendAzure = { +export type PersistImportedDeploymentRequestPendingPreparedStackExtendAzure = { /** * Generic binding configuration for permissions */ - binding: PersistImportedDeploymentRequestExtendAzureBinding; + binding: + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2145,7 +2298,7 @@ export type PersistImportedDeploymentRequestExtendAzure = { /** * Grant permissions for a specific cloud platform */ - grant: PersistImportedDeploymentRequestExtendAzureGrant; + grant: PersistImportedDeploymentRequestPendingPreparedStackExtendAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2155,105 +2308,115 @@ export type PersistImportedDeploymentRequestExtendAzure = { /** * GCP IAM condition */ -export type PersistImportedDeploymentRequestExtendConditionResource = { - expression: string; - title: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendConditionResource = + { + expression: string; + title: string; + }; -export type PersistImportedDeploymentRequestExtendResourceConditionUnion = - | PersistImportedDeploymentRequestExtendConditionResource +export type PersistImportedDeploymentRequestPendingPreparedStackExtendResourceConditionUnion = + | PersistImportedDeploymentRequestPendingPreparedStackExtendConditionResource | any; /** * GCP-specific binding specification */ -export type PersistImportedDeploymentRequestExtendGcpResource = { - condition?: - | PersistImportedDeploymentRequestExtendConditionResource - | any - | null - | undefined; - /** - * Scope (project/resource level) - */ - scope: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendGcpResource = + { + condition?: + | PersistImportedDeploymentRequestPendingPreparedStackExtendConditionResource + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; + }; /** * GCP IAM condition */ -export type PersistImportedDeploymentRequestExtendConditionStack = { - expression: string; - title: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendConditionStack = + { + expression: string; + title: string; + }; -export type PersistImportedDeploymentRequestExtendStackConditionUnion = - | PersistImportedDeploymentRequestExtendConditionStack +export type PersistImportedDeploymentRequestPendingPreparedStackExtendStackConditionUnion = + | PersistImportedDeploymentRequestPendingPreparedStackExtendConditionStack | any; /** * GCP-specific binding specification */ -export type PersistImportedDeploymentRequestExtendGcpStack = { - condition?: - | PersistImportedDeploymentRequestExtendConditionStack - | any - | null - | undefined; - /** - * Scope (project/resource level) - */ - scope: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendGcpStack = + { + condition?: + | PersistImportedDeploymentRequestPendingPreparedStackExtendConditionStack + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; + }; /** * Generic binding configuration for permissions */ -export type PersistImportedDeploymentRequestExtendGcpBinding = { - /** - * GCP-specific binding specification - */ - resource?: PersistImportedDeploymentRequestExtendGcpResource | undefined; - /** - * GCP-specific binding specification - */ - stack?: PersistImportedDeploymentRequestExtendGcpStack | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendGcpBinding = + { + /** + * GCP-specific binding specification + */ + resource?: + | PersistImportedDeploymentRequestPendingPreparedStackExtendGcpResource + | undefined; + /** + * GCP-specific binding specification + */ + stack?: + | PersistImportedDeploymentRequestPendingPreparedStackExtendGcpStack + | undefined; + }; /** * Grant permissions for a specific cloud platform */ -export type PersistImportedDeploymentRequestExtendGcpGrant = { - /** - * AWS IAM actions (only for AWS) - */ - actions?: Array | null | undefined; - /** - * Azure actions (only for Azure) - */ - dataActions?: Array | null | undefined; - /** - * GCP permissions that require an exact residual custom role. - */ - permissions?: Array | null | undefined; - /** - * Provider predefined roles to bind directly. - */ - predefinedRoles?: Array | null | undefined; - /** - * GCP residual custom permissions to pair with predefined roles. - */ - residualPermissions?: Array | null | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendGcpGrant = + { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; + }; /** * GCP-specific platform permission configuration */ -export type PersistImportedDeploymentRequestExtendGcp = { +export type PersistImportedDeploymentRequestPendingPreparedStackExtendGcp = { /** * Generic binding configuration for permissions */ - binding: PersistImportedDeploymentRequestExtendGcpBinding; + binding: PersistImportedDeploymentRequestPendingPreparedStackExtendGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2261,7 +2424,7 @@ export type PersistImportedDeploymentRequestExtendGcp = { /** * Grant permissions for a specific cloud platform */ - grant: PersistImportedDeploymentRequestExtendGcpGrant; + grant: PersistImportedDeploymentRequestPendingPreparedStackExtendGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2271,25 +2434,35 @@ export type PersistImportedDeploymentRequestExtendGcp = { /** * Platform-specific permission configurations */ -export type PersistImportedDeploymentRequestExtendPlatforms = { - /** - * AWS permission configurations - */ - aws?: Array | null | undefined; - /** - * Azure permission configurations - */ - azure?: Array | null | undefined; - /** - * GCP permission configurations - */ - gcp?: Array | null | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendPlatforms = + { + /** + * AWS permission configurations + */ + aws?: + | Array + | null + | undefined; + /** + * Azure permission configurations + */ + azure?: + | Array + | null + | undefined; + /** + * GCP permission configurations + */ + gcp?: + | Array + | null + | undefined; + }; /** * A permission set that can be applied across different cloud platforms */ -export type PersistImportedDeploymentRequestExtend = { +export type PersistImportedDeploymentRequestPendingPreparedStackExtend = { /** * Human-readable description of what this permission set allows */ @@ -2301,17 +2474,18 @@ export type PersistImportedDeploymentRequestExtend = { /** * Platform-specific permission configurations */ - platforms: PersistImportedDeploymentRequestExtendPlatforms; + platforms: + PersistImportedDeploymentRequestPendingPreparedStackExtendPlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type PersistImportedDeploymentRequestExtendUnion = - | PersistImportedDeploymentRequestExtend +export type PersistImportedDeploymentRequestPendingPreparedStackExtendUnion = + | PersistImportedDeploymentRequestPendingPreparedStackExtend | string; -export type PersistImportedDeploymentRequestManagement1 = { +export type PersistImportedDeploymentRequestPendingPreparedStackManagement1 = { /** * Permission profile that maps resources to permission sets * @@ -2319,108 +2493,120 @@ export type PersistImportedDeploymentRequestManagement1 = { * Key can be "*" for all resources or resource name for specific resource */ extend: { - [k: string]: Array; + [k: string]: Array< + PersistImportedDeploymentRequestPendingPreparedStackExtend | string + >; }; }; /** * Management permissions configuration for stack management access */ -export type PersistImportedDeploymentRequestManagementUnion = - | PersistImportedDeploymentRequestManagement1 - | PersistImportedDeploymentRequestManagement2 - | PersistImportedDeploymentRequestManagementEnum; +export type PersistImportedDeploymentRequestPendingPreparedStackManagementUnion = + | PersistImportedDeploymentRequestPendingPreparedStackManagement1 + | PersistImportedDeploymentRequestPendingPreparedStackManagement2 + | PersistImportedDeploymentRequestPendingPreparedStackManagementEnum; /** * AWS-specific binding specification */ -export type PersistImportedDeploymentRequestProfileAwResource = { - /** - * Optional condition for additional filtering (rare) - */ - condition?: { [k: string]: { [k: string]: string } } | null | undefined; - /** - * Resource ARNs to bind to - */ - resources: Array; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileAwResource = + { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; + }; /** * AWS-specific binding specification */ -export type PersistImportedDeploymentRequestProfileAwStack = { - /** - * Optional condition for additional filtering (rare) - */ - condition?: { [k: string]: { [k: string]: string } } | null | undefined; - /** - * Resource ARNs to bind to - */ - resources: Array; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileAwStack = + { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; + }; /** * Generic binding configuration for permissions */ -export type PersistImportedDeploymentRequestProfileAwBinding = { - /** - * AWS-specific binding specification - */ - resource?: PersistImportedDeploymentRequestProfileAwResource | undefined; - /** - * AWS-specific binding specification - */ - stack?: PersistImportedDeploymentRequestProfileAwStack | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileAwBinding = + { + /** + * AWS-specific binding specification + */ + resource?: + | PersistImportedDeploymentRequestPendingPreparedStackProfileAwResource + | undefined; + /** + * AWS-specific binding specification + */ + stack?: + | PersistImportedDeploymentRequestPendingPreparedStackProfileAwStack + | undefined; + }; /** * IAM effect. Defaults to Allow. */ -export const PersistImportedDeploymentRequestProfileEffect = { - Allow: "Allow", - Deny: "Deny", -} as const; +export const PersistImportedDeploymentRequestPendingPreparedStackProfileEffect = + { + Allow: "Allow", + Deny: "Deny", + } as const; /** * IAM effect. Defaults to Allow. */ -export type PersistImportedDeploymentRequestProfileEffect = ClosedEnum< - typeof PersistImportedDeploymentRequestProfileEffect ->; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileEffect = + ClosedEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackProfileEffect + >; /** * Grant permissions for a specific cloud platform */ -export type PersistImportedDeploymentRequestProfileAwGrant = { - /** - * AWS IAM actions (only for AWS) - */ - actions?: Array | null | undefined; - /** - * Azure actions (only for Azure) - */ - dataActions?: Array | null | undefined; - /** - * GCP permissions that require an exact residual custom role. - */ - permissions?: Array | null | undefined; - /** - * Provider predefined roles to bind directly. - */ - predefinedRoles?: Array | null | undefined; - /** - * GCP residual custom permissions to pair with predefined roles. - */ - residualPermissions?: Array | null | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileAwGrant = + { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; + }; /** * AWS-specific platform permission configuration */ -export type PersistImportedDeploymentRequestProfileAw = { +export type PersistImportedDeploymentRequestPendingPreparedStackProfileAw = { /** * Generic binding configuration for permissions */ - binding: PersistImportedDeploymentRequestProfileAwBinding; + binding: PersistImportedDeploymentRequestPendingPreparedStackProfileAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2428,11 +2614,13 @@ export type PersistImportedDeploymentRequestProfileAw = { /** * IAM effect. Defaults to Allow. */ - effect?: PersistImportedDeploymentRequestProfileEffect | undefined; + effect?: + | PersistImportedDeploymentRequestPendingPreparedStackProfileEffect + | undefined; /** * Grant permissions for a specific cloud platform */ - grant: PersistImportedDeploymentRequestProfileAwGrant; + grant: PersistImportedDeploymentRequestPendingPreparedStackProfileAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2442,71 +2630,80 @@ export type PersistImportedDeploymentRequestProfileAw = { /** * Azure-specific binding specification */ -export type PersistImportedDeploymentRequestProfileAzureResource = { - /** - * Scope (subscription/resource group/resource level) - */ - scope: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileAzureResource = + { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; + }; /** * Azure-specific binding specification */ -export type PersistImportedDeploymentRequestProfileAzureStack = { - /** - * Scope (subscription/resource group/resource level) - */ - scope: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileAzureStack = + { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; + }; /** * Generic binding configuration for permissions */ -export type PersistImportedDeploymentRequestProfileAzureBinding = { - /** - * Azure-specific binding specification - */ - resource?: PersistImportedDeploymentRequestProfileAzureResource | undefined; - /** - * Azure-specific binding specification - */ - stack?: PersistImportedDeploymentRequestProfileAzureStack | undefined; -}; - +export type PersistImportedDeploymentRequestPendingPreparedStackProfileAzureBinding = + { + /** + * Azure-specific binding specification + */ + resource?: + | PersistImportedDeploymentRequestPendingPreparedStackProfileAzureResource + | undefined; + /** + * Azure-specific binding specification + */ + stack?: + | PersistImportedDeploymentRequestPendingPreparedStackProfileAzureStack + | undefined; + }; + /** * Grant permissions for a specific cloud platform */ -export type PersistImportedDeploymentRequestProfileAzureGrant = { - /** - * AWS IAM actions (only for AWS) - */ - actions?: Array | null | undefined; - /** - * Azure actions (only for Azure) - */ - dataActions?: Array | null | undefined; - /** - * GCP permissions that require an exact residual custom role. - */ - permissions?: Array | null | undefined; - /** - * Provider predefined roles to bind directly. - */ - predefinedRoles?: Array | null | undefined; - /** - * GCP residual custom permissions to pair with predefined roles. - */ - residualPermissions?: Array | null | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileAzureGrant = + { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; + }; /** * Azure-specific platform permission configuration */ -export type PersistImportedDeploymentRequestProfileAzure = { +export type PersistImportedDeploymentRequestPendingPreparedStackProfileAzure = { /** * Generic binding configuration for permissions */ - binding: PersistImportedDeploymentRequestProfileAzureBinding; + binding: + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2514,7 +2711,7 @@ export type PersistImportedDeploymentRequestProfileAzure = { /** * Grant permissions for a specific cloud platform */ - grant: PersistImportedDeploymentRequestProfileAzureGrant; + grant: PersistImportedDeploymentRequestPendingPreparedStackProfileAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2524,105 +2721,116 @@ export type PersistImportedDeploymentRequestProfileAzure = { /** * GCP IAM condition */ -export type PersistImportedDeploymentRequestProfileConditionResource = { - expression: string; - title: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileConditionResource = + { + expression: string; + title: string; + }; -export type PersistImportedDeploymentRequestProfileResourceConditionUnion = - | PersistImportedDeploymentRequestProfileConditionResource +export type PersistImportedDeploymentRequestPendingPreparedStackProfileResourceConditionUnion = + | PersistImportedDeploymentRequestPendingPreparedStackProfileConditionResource | any; /** * GCP-specific binding specification */ -export type PersistImportedDeploymentRequestProfileGcpResource = { - condition?: - | PersistImportedDeploymentRequestProfileConditionResource - | any - | null - | undefined; - /** - * Scope (project/resource level) - */ - scope: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileGcpResource = + { + condition?: + | PersistImportedDeploymentRequestPendingPreparedStackProfileConditionResource + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; + }; /** * GCP IAM condition */ -export type PersistImportedDeploymentRequestProfileConditionStack = { - expression: string; - title: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileConditionStack = + { + expression: string; + title: string; + }; -export type PersistImportedDeploymentRequestProfileStackConditionUnion = - | PersistImportedDeploymentRequestProfileConditionStack +export type PersistImportedDeploymentRequestPendingPreparedStackProfileStackConditionUnion = + | PersistImportedDeploymentRequestPendingPreparedStackProfileConditionStack | any; /** * GCP-specific binding specification */ -export type PersistImportedDeploymentRequestProfileGcpStack = { - condition?: - | PersistImportedDeploymentRequestProfileConditionStack - | any - | null - | undefined; - /** - * Scope (project/resource level) - */ - scope: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileGcpStack = + { + condition?: + | PersistImportedDeploymentRequestPendingPreparedStackProfileConditionStack + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; + }; /** * Generic binding configuration for permissions */ -export type PersistImportedDeploymentRequestProfileGcpBinding = { - /** - * GCP-specific binding specification - */ - resource?: PersistImportedDeploymentRequestProfileGcpResource | undefined; - /** - * GCP-specific binding specification - */ - stack?: PersistImportedDeploymentRequestProfileGcpStack | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileGcpBinding = + { + /** + * GCP-specific binding specification + */ + resource?: + | PersistImportedDeploymentRequestPendingPreparedStackProfileGcpResource + | undefined; + /** + * GCP-specific binding specification + */ + stack?: + | PersistImportedDeploymentRequestPendingPreparedStackProfileGcpStack + | undefined; + }; /** * Grant permissions for a specific cloud platform */ -export type PersistImportedDeploymentRequestProfileGcpGrant = { - /** - * AWS IAM actions (only for AWS) - */ - actions?: Array | null | undefined; - /** - * Azure actions (only for Azure) - */ - dataActions?: Array | null | undefined; - /** - * GCP permissions that require an exact residual custom role. - */ - permissions?: Array | null | undefined; - /** - * Provider predefined roles to bind directly. - */ - predefinedRoles?: Array | null | undefined; - /** - * GCP residual custom permissions to pair with predefined roles. - */ - residualPermissions?: Array | null | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileGcpGrant = + { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; + }; /** * GCP-specific platform permission configuration */ -export type PersistImportedDeploymentRequestProfileGcp = { +export type PersistImportedDeploymentRequestPendingPreparedStackProfileGcp = { /** * Generic binding configuration for permissions */ - binding: PersistImportedDeploymentRequestProfileGcpBinding; + binding: + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2630,7 +2838,7 @@ export type PersistImportedDeploymentRequestProfileGcp = { /** * Grant permissions for a specific cloud platform */ - grant: PersistImportedDeploymentRequestProfileGcpGrant; + grant: PersistImportedDeploymentRequestPendingPreparedStackProfileGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2640,28 +2848,35 @@ export type PersistImportedDeploymentRequestProfileGcp = { /** * Platform-specific permission configurations */ -export type PersistImportedDeploymentRequestProfilePlatforms = { - /** - * AWS permission configurations - */ - aws?: Array | null | undefined; - /** - * Azure permission configurations - */ - azure?: - | Array - | null - | undefined; - /** - * GCP permission configurations - */ - gcp?: Array | null | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfilePlatforms = + { + /** + * AWS permission configurations + */ + aws?: + | Array + | null + | undefined; + /** + * Azure permission configurations + */ + azure?: + | Array + | null + | undefined; + /** + * GCP permission configurations + */ + gcp?: + | Array + | null + | undefined; + }; /** * A permission set that can be applied across different cloud platforms */ -export type PersistImportedDeploymentRequestProfile = { +export type PersistImportedDeploymentRequestPendingPreparedStackProfile = { /** * Human-readable description of what this permission set allows */ @@ -2673,27 +2888,28 @@ export type PersistImportedDeploymentRequestProfile = { /** * Platform-specific permission configurations */ - platforms: PersistImportedDeploymentRequestProfilePlatforms; + platforms: + PersistImportedDeploymentRequestPendingPreparedStackProfilePlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type PersistImportedDeploymentRequestProfileUnion = - | PersistImportedDeploymentRequestProfile +export type PersistImportedDeploymentRequestPendingPreparedStackProfileUnion = + | PersistImportedDeploymentRequestPendingPreparedStackProfile | string; /** * Combined permissions configuration that contains both profiles and management */ -export type PersistImportedDeploymentRequestPermissions = { +export type PersistImportedDeploymentRequestPendingPreparedStackPermissions = { /** * Management permissions configuration for stack management access */ management?: - | PersistImportedDeploymentRequestManagement1 - | PersistImportedDeploymentRequestManagement2 - | PersistImportedDeploymentRequestManagementEnum + | PersistImportedDeploymentRequestPendingPreparedStackManagement1 + | PersistImportedDeploymentRequestPendingPreparedStackManagement2 + | PersistImportedDeploymentRequestPendingPreparedStackManagementEnum | undefined; /** * Permission profiles that define access control for compute services @@ -2703,7 +2919,9 @@ export type PersistImportedDeploymentRequestPermissions = { */ profiles: { [k: string]: { - [k: string]: Array; + [k: string]: Array< + PersistImportedDeploymentRequestPendingPreparedStackProfile | string + >; }; }; }; @@ -2711,7 +2929,7 @@ export type PersistImportedDeploymentRequestPermissions = { /** * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ -export type PersistImportedDeploymentRequestConfig = { +export type PersistImportedDeploymentRequestPendingPreparedStackConfig = { /** * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. */ @@ -2726,7 +2944,7 @@ export type PersistImportedDeploymentRequestConfig = { /** * Reference to a resource by its stable id and resource type. */ -export type PersistImportedDeploymentRequestDependency = { +export type PersistImportedDeploymentRequestPendingPreparedStackDependency = { id: string; /** * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. @@ -2737,33 +2955,47 @@ export type PersistImportedDeploymentRequestDependency = { /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export const PersistImportedDeploymentRequestLifecycle = { +export const PersistImportedDeploymentRequestPendingPreparedStackLifecycle = { Frozen: "frozen", Live: "live", } as const; /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export type PersistImportedDeploymentRequestLifecycle = ClosedEnum< - typeof PersistImportedDeploymentRequestLifecycle ->; +export type PersistImportedDeploymentRequestPendingPreparedStackLifecycle = + ClosedEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackLifecycle + >; -export type PersistImportedDeploymentRequestResources = { +export type PersistImportedDeploymentRequestPendingPreparedStackResources = { /** * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ - config: PersistImportedDeploymentRequestConfig; + config: PersistImportedDeploymentRequestPendingPreparedStackConfig; /** * Additional dependencies for this resource beyond those defined in the resource itself. * * @remarks * The total dependencies are: resource.get_dependencies() + this list */ - dependencies: Array; + dependencies: Array< + PersistImportedDeploymentRequestPendingPreparedStackDependency + >; + /** + * Id of the boolean stack input that decides whether this resource is + * + * @remarks + * created at all. `None` means always create it. + * + * Set by `.enabled(input)` in the SDK. Setup emitters render the resource + * conditionally on the matching template variable, so a deployer who says no + * never gets the resource, its outputs, or anything derived from it. + */ + enabledWhen?: string | null | undefined; /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ - lifecycle: PersistImportedDeploymentRequestLifecycle; + lifecycle: PersistImportedDeploymentRequestPendingPreparedStackLifecycle; /** * Enable remote bindings for this resource (BYOB use case). * @@ -2777,26 +3009,28 @@ export type PersistImportedDeploymentRequestResources = { /** * Represents the target cloud platform. */ -export const PersistImportedDeploymentRequestSupportedPlatform = { - Aws: "aws", - Gcp: "gcp", - Azure: "azure", - Kubernetes: "kubernetes", - Machines: "machines", - Local: "local", - Test: "test", -} as const; +export const PersistImportedDeploymentRequestPendingPreparedStackSupportedPlatform = + { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", + } as const; /** * Represents the target cloud platform. */ -export type PersistImportedDeploymentRequestSupportedPlatform = ClosedEnum< - typeof PersistImportedDeploymentRequestSupportedPlatform ->; +export type PersistImportedDeploymentRequestPendingPreparedStackSupportedPlatform = + ClosedEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackSupportedPlatform + >; /** * A bag of resources, unaware of any cloud. */ -export type PersistImportedDeploymentRequestPreparedStack = { +export type PersistImportedDeploymentRequestPendingPreparedStack = { /** * Unique identifier for the stack */ @@ -2804,3437 +3038,8355 @@ export type PersistImportedDeploymentRequestPreparedStack = { /** * Input definitions required before setup or deployment can proceed. */ - inputs?: Array | undefined; + inputs?: + | Array + | undefined; /** * Combined permissions configuration that contains both profiles and management */ - permissions?: PersistImportedDeploymentRequestPermissions | undefined; + permissions?: + | PersistImportedDeploymentRequestPendingPreparedStackPermissions + | undefined; /** * Map of resource IDs to their configurations and lifecycle settings */ - resources: { [k: string]: PersistImportedDeploymentRequestResources }; + resources: { + [k: string]: PersistImportedDeploymentRequestPendingPreparedStackResources; + }; /** * Which platforms this stack supports. When None, all platforms are supported. */ supportedPlatforms?: - | Array + | Array< + PersistImportedDeploymentRequestPendingPreparedStackSupportedPlatform + > | null | undefined; }; -export type PersistImportedDeploymentRequestPreparedStackUnion = - | PersistImportedDeploymentRequestPreparedStack +export type PersistImportedDeploymentRequestPendingPreparedStackUnion = + | PersistImportedDeploymentRequestPendingPreparedStack | any; -/** - * Runtime metadata for deployment - * - * @remarks - * - * Stores deployment state that needs to persist across step calls. - */ -export type PersistImportedDeploymentRequestRuntimeMetadata = { +export const PersistImportedDeploymentRequestPreparedStackTypeStringList = { + StringList: "stringList", +} as const; +export type PersistImportedDeploymentRequestPreparedStackTypeStringList = + ClosedEnum< + typeof PersistImportedDeploymentRequestPreparedStackTypeStringList + >; + +export type PersistImportedDeploymentRequestPreparedStackDefaultStringList = { + type: PersistImportedDeploymentRequestPreparedStackTypeStringList; /** - * Hash of the environment variables snapshot that was last synced to the vault - * - * @remarks - * Used to avoid redundant sync operations during incremental deployment + * String list default. */ - lastSyncedEnvVarsHash?: string | null | undefined; + value: Array; +}; + +export const PersistImportedDeploymentRequestPreparedStackTypeBoolean = { + Boolean: "boolean", +} as const; +export type PersistImportedDeploymentRequestPreparedStackTypeBoolean = + ClosedEnum; + +export type PersistImportedDeploymentRequestPreparedStackDefaultBoolean = { + type: PersistImportedDeploymentRequestPreparedStackTypeBoolean; /** - * Exact vault keys owned by the deployment secret synchronizer. This - * - * @remarks - * inventory lets a later snapshot delete removed keys without listing or - * touching unrelated values in the same vault. + * Boolean default. */ - lastSyncedSecretNames?: Array | undefined; - preparedStack?: - | PersistImportedDeploymentRequestPreparedStack - | any - | null - | undefined; + value: boolean; +}; + +export const PersistImportedDeploymentRequestPreparedStackTypeNumber = { + Number: "number", +} as const; +export type PersistImportedDeploymentRequestPreparedStackTypeNumber = + ClosedEnum; + +export type PersistImportedDeploymentRequestPreparedStackDefaultNumber = { + type: PersistImportedDeploymentRequestPreparedStackTypeNumber; /** - * Whether cross-account registry access has been successfully granted. - * - * @remarks - * Set to true after the manager successfully sets the ECR/GAR repo policy - * for this deployment's target account. Prevents redundant API calls on - * every reconcile tick. + * Number default. */ - registryAccessGranted?: boolean | undefined; + value: string; +}; + +export const PersistImportedDeploymentRequestPreparedStackTypeString = { + String: "string", +} as const; +export type PersistImportedDeploymentRequestPreparedStackTypeString = + ClosedEnum; + +export type PersistImportedDeploymentRequestPreparedStackDefaultString = { + type: PersistImportedDeploymentRequestPreparedStackTypeString; + /** + * String default. + */ + value: string; }; +export type PersistImportedDeploymentRequestPreparedStackDefaultUnion = + | PersistImportedDeploymentRequestPreparedStackDefaultString + | PersistImportedDeploymentRequestPreparedStackDefaultNumber + | PersistImportedDeploymentRequestPreparedStackDefaultBoolean + | PersistImportedDeploymentRequestPreparedStackDefaultStringList + | any; + /** - * Deployment status in the deployment lifecycle. - * - * @remarks - * - * For observe-only deployments with no release or stack state, `Running` - * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; - * resource health comes from inventory and resource heartbeat data. + * Environment variable handling for a stack input mapping. */ -export const PersistImportedDeploymentRequestStatus = { - Pending: "pending", - PreflightsFailed: "preflights-failed", - InitialSetup: "initial-setup", - InitialSetupFailed: "initial-setup-failed", - Provisioning: "provisioning", - WaitingForMachines: "waiting-for-machines", - ProvisioningFailed: "provisioning-failed", - Running: "running", - RefreshFailed: "refresh-failed", - UpdatePending: "update-pending", - Updating: "updating", - UpdateFailed: "update-failed", - DeletePending: "delete-pending", - Deleting: "deleting", - DeleteFailed: "delete-failed", - TeardownRequired: "teardown-required", - TeardownFailed: "teardown-failed", - Deleted: "deleted", - Error: "error", +export const PersistImportedDeploymentRequestPreparedStackTypeEnvEnum = { + Plain: "plain", + Secret: "secret", } as const; /** - * Deployment status in the deployment lifecycle. - * - * @remarks - * - * For observe-only deployments with no release or stack state, `Running` - * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; - * resource health comes from inventory and resource heartbeat data. + * Environment variable handling for a stack input mapping. */ -export type PersistImportedDeploymentRequestStatus = ClosedEnum< - typeof PersistImportedDeploymentRequestStatus ->; +export type PersistImportedDeploymentRequestPreparedStackTypeEnvEnum = + ClosedEnum; -export type PersistImportedDeploymentRequestManagementConfigKubernetes = { - platform: "kubernetes"; -}; +export type PersistImportedDeploymentRequestPreparedStackTypeUnion = + | PersistImportedDeploymentRequestPreparedStackTypeEnvEnum + | any; /** - * Azure management configuration extracted from stack settings + * How a resolved stack input is injected into runtime environment variables. */ -export type PersistImportedDeploymentRequestManagementConfigAzure = { - /** - * The managing Azure Tenant ID for cross-tenant access - */ - managingTenantId: string; +export type PersistImportedDeploymentRequestPreparedStackEnv = { /** - * OIDC issuer URL trusted by the target-side managed identity. + * Environment variable name. */ - oidcIssuer: string; + name: string; /** - * OIDC subject claim trusted by the target-side managed identity. + * Target resource IDs or patterns. None means every env-capable resource. */ - oidcSubject: string; - platform: "azure"; + targetResources?: Array | null | undefined; + type?: + | PersistImportedDeploymentRequestPreparedStackTypeEnvEnum + | any + | null + | undefined; }; /** - * GCP management configuration extracted from stack settings + * Primitive stack input kind. */ -export type PersistImportedDeploymentRequestManagementConfigGcp = { - /** - * Service account email for management roles - */ - serviceAccountEmail: string; - platform: "gcp"; -}; +export const PersistImportedDeploymentRequestPreparedStackKind = { + String: "string", + Secret: "secret", + Number: "number", + Integer: "integer", + Boolean: "boolean", + Enum: "enum", + StringList: "stringList", +} as const; +/** + * Primitive stack input kind. + */ +export type PersistImportedDeploymentRequestPreparedStackKind = ClosedEnum< + typeof PersistImportedDeploymentRequestPreparedStackKind +>; /** - * AWS management configuration extracted from stack settings + * Represents the target cloud platform. */ -export type PersistImportedDeploymentRequestManagementConfigAws = { - /** - * The managing AWS IAM role ARN that can assume cross-account roles - */ - managingRoleArn: string; - platform: "aws"; -}; +export const PersistImportedDeploymentRequestPreparedStackPlatform = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", +} as const; +/** + * Represents the target cloud platform. + */ +export type PersistImportedDeploymentRequestPreparedStackPlatform = ClosedEnum< + typeof PersistImportedDeploymentRequestPreparedStackPlatform +>; /** - * Management configuration for different cloud platforms. - * - * @remarks - * - * Platform-derived configuration for cross-account/cross-tenant access. - * This is NOT user-specified - it's derived from the Manager's ServiceAccount. + * Who can provide a stack input value. */ -export type PersistImportedDeploymentRequestManagementConfigUnion = - | PersistImportedDeploymentRequestManagementConfigAws - | PersistImportedDeploymentRequestManagementConfigGcp - | PersistImportedDeploymentRequestManagementConfigAzure - | PersistImportedDeploymentRequestManagementConfigKubernetes; +export const PersistImportedDeploymentRequestPreparedStackProvidedBy = { + Developer: "developer", + Deployer: "deployer", +} as const; +/** + * Who can provide a stack input value. + */ +export type PersistImportedDeploymentRequestPreparedStackProvidedBy = + ClosedEnum; -export type PersistImportedDeploymentRequest = { - mode: ModePersist; +/** + * Portable stack input validation constraints. + */ +export type PersistImportedDeploymentRequestPreparedStackValidation = { /** - * Deployment name. Must be unique within the deployment group. + * Semantic format hint such as url. */ - name: string; + format?: string | null | undefined; /** - * Unique identifier for the deployment group. + * Maximum number. */ - deploymentGroupId: string; - managerId: string; + max?: string | null | undefined; /** - * Optional deployment subdomain under the project's generated-domain parent. Operator-only and requires a custom project domain; customer deploy-link tokens and the shared system domain are rejected. Omit to generate a random subdomain. + * Maximum string-list items. */ - publicSubdomain?: string | undefined; + maxItems?: number | null | undefined; /** - * Represents the target cloud platform. + * Maximum string length. */ - platform: PersistImportedDeploymentRequestPlatformEnum; + maxLength?: number | null | undefined; /** - * Base cloud platform for cloud-backed Kubernetes imports. + * Minimum number. */ - basePlatform?: KubernetesBasePlatform | undefined; + min?: string | null | undefined; /** - * User-customizable deployment settings specified at deploy time. - * - * @remarks - * - * These settings are provided by the customer via CloudFormation parameters, - * Terraform attributes, CLI flags, or Helm values. They customize how the - * deployment runs and what capabilities are enabled. - * - * **Key distinction**: StackSettings is user-customizable, while ManagementConfig - * is platform-derived (from the Manager's ServiceAccount). + * Minimum string-list items. */ - stackSettings: PersistImportedDeploymentRequestStackSettings; - stackState?: any | null | undefined; + minItems?: number | null | undefined; /** - * Platform-specific environment information + * Minimum string length. */ - environmentInfo?: - | PersistImportedDeploymentRequestEnvironmentInfoGcp - | PersistImportedDeploymentRequestEnvironmentInfoAzure - | PersistImportedDeploymentRequestEnvironmentInfoLocal - | PersistImportedDeploymentRequestEnvironmentInfoAws - | PersistImportedDeploymentRequestEnvironmentInfoTest + minLength?: number | null | undefined; + /** + * Portable whole-value regex pattern. + */ + pattern?: string | null | undefined; + /** + * Allowed string enum values. + */ + values?: Array | null | undefined; +}; + +export type PersistImportedDeploymentRequestPreparedStackValidationUnion = + | PersistImportedDeploymentRequestPreparedStackValidation + | any; + +/** + * Stack input definition serialized into a release stack. + */ +export type PersistImportedDeploymentRequestPreparedStackInput = { + default?: + | PersistImportedDeploymentRequestPreparedStackDefaultString + | PersistImportedDeploymentRequestPreparedStackDefaultNumber + | PersistImportedDeploymentRequestPreparedStackDefaultBoolean + | PersistImportedDeploymentRequestPreparedStackDefaultStringList | any | null | undefined; /** - * Runtime metadata for deployment - * - * @remarks - * - * Stores deployment state that needs to persist across step calls. + * Human-facing helper text. */ - runtimeMetadata: PersistImportedDeploymentRequestRuntimeMetadata; + description: string; /** - * DeploymentState protocol version owned by the runtime/manager + * Runtime env-var mappings for v1 input resolution. */ - deploymentProtocolVersion: number; + env?: Array | undefined; /** - * Deployment status in the deployment lifecycle. - * - * @remarks - * - * For observe-only deployments with no release or stack state, `Running` - * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; - * resource health comes from inventory and resource heartbeat data. + * Stable input ID used by CLI/API calls. */ - status?: PersistImportedDeploymentRequestStatus | undefined; + id: string; /** - * Unique identifier for the release. + * Primitive stack input kind. */ - currentReleaseId?: string | undefined; + kind: PersistImportedDeploymentRequestPreparedStackKind; /** - * Unique identifier for the release. + * Human-facing field label. */ - desiredReleaseId?: string | undefined; - importSource?: ImportSourceKind | undefined; - setupMetadata?: { [k: string]: any | null } | undefined; + label: string; /** - * Stable target key for the setup contract, e.g. aws/us-east-1 + * Example placeholder shown in UI. */ - setupTarget: string; + placeholder?: string | null | undefined; /** - * Deterministic setup contract fingerprint for one setup target + * Platforms where this input applies. */ - setupFingerprint: string; + platforms?: + | Array + | null + | undefined; /** - * Setup fingerprint algorithm version + * Who can provide this value. */ - setupFingerprintVersion: number; - deploymentToken?: string | undefined; + providedBy: Array; /** - * Management configuration for different cloud platforms. - * - * @remarks - * - * Platform-derived configuration for cross-account/cross-tenant access. - * This is NOT user-specified - it's derived from the Manager's ServiceAccount. + * Whether a resolved value is required before deployment can proceed. */ - managementConfig?: - | PersistImportedDeploymentRequestManagementConfigAws - | PersistImportedDeploymentRequestManagementConfigGcp - | PersistImportedDeploymentRequestManagementConfigAzure - | PersistImportedDeploymentRequestManagementConfigKubernetes + required: boolean; + validation?: + | PersistImportedDeploymentRequestPreparedStackValidation + | any + | null | undefined; - inputValues?: { [k: string]: StackInputValueRequest } | undefined; }; -/** @internal */ -export const ModePersist$outboundSchema: z.ZodEnum = z.enum( - ModePersist, -); - -/** @internal */ -export const PersistImportedDeploymentRequestPlatformEnum$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestPlatformEnum, - ); +export const PersistImportedDeploymentRequestPreparedStackManagementEnum = { + Auto: "auto", +} as const; +export type PersistImportedDeploymentRequestPreparedStackManagementEnum = + ClosedEnum< + typeof PersistImportedDeploymentRequestPreparedStackManagementEnum + >; -/** @internal */ -export type PersistImportedDeploymentRequestPoolsAutoscale$Outbound = { - machine?: string | null | undefined; - max: number; - min: number; - mode: "autoscale"; +/** + * AWS-specific binding specification + */ +export type PersistImportedDeploymentRequestPreparedStackOverrideAwResource = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; + +/** + * AWS-specific binding specification + */ +export type PersistImportedDeploymentRequestPreparedStackOverrideAwStack = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; + +/** + * Generic binding configuration for permissions + */ +export type PersistImportedDeploymentRequestPreparedStackOverrideAwBinding = { + /** + * AWS-specific binding specification + */ + resource?: + | PersistImportedDeploymentRequestPreparedStackOverrideAwResource + | undefined; + /** + * AWS-specific binding specification + */ + stack?: + | PersistImportedDeploymentRequestPreparedStackOverrideAwStack + | undefined; +}; + +/** + * IAM effect. Defaults to Allow. + */ +export const PersistImportedDeploymentRequestPreparedStackOverrideEffect = { + Allow: "Allow", + Deny: "Deny", +} as const; +/** + * IAM effect. Defaults to Allow. + */ +export type PersistImportedDeploymentRequestPreparedStackOverrideEffect = + ClosedEnum< + typeof PersistImportedDeploymentRequestPreparedStackOverrideEffect + >; + +/** + * Grant permissions for a specific cloud platform + */ +export type PersistImportedDeploymentRequestPreparedStackOverrideAwGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * AWS-specific platform permission configuration + */ +export type PersistImportedDeploymentRequestPreparedStackOverrideAw = { + /** + * Generic binding configuration for permissions + */ + binding: PersistImportedDeploymentRequestPreparedStackOverrideAwBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * IAM effect. Defaults to Allow. + */ + effect?: + | PersistImportedDeploymentRequestPreparedStackOverrideEffect + | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: PersistImportedDeploymentRequestPreparedStackOverrideAwGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Azure-specific binding specification + */ +export type PersistImportedDeploymentRequestPreparedStackOverrideAzureResource = + { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; + }; + +/** + * Azure-specific binding specification + */ +export type PersistImportedDeploymentRequestPreparedStackOverrideAzureStack = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type PersistImportedDeploymentRequestPreparedStackOverrideAzureBinding = + { + /** + * Azure-specific binding specification + */ + resource?: + | PersistImportedDeploymentRequestPreparedStackOverrideAzureResource + | undefined; + /** + * Azure-specific binding specification + */ + stack?: + | PersistImportedDeploymentRequestPreparedStackOverrideAzureStack + | undefined; + }; + +/** + * Grant permissions for a specific cloud platform + */ +export type PersistImportedDeploymentRequestPreparedStackOverrideAzureGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * Azure-specific platform permission configuration + */ +export type PersistImportedDeploymentRequestPreparedStackOverrideAzure = { + /** + * Generic binding configuration for permissions + */ + binding: PersistImportedDeploymentRequestPreparedStackOverrideAzureBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: PersistImportedDeploymentRequestPreparedStackOverrideAzureGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * GCP IAM condition + */ +export type PersistImportedDeploymentRequestPreparedStackOverrideConditionResource = + { + expression: string; + title: string; + }; + +export type PersistImportedDeploymentRequestPreparedStackOverrideResourceConditionUnion = + | PersistImportedDeploymentRequestPreparedStackOverrideConditionResource + | any; + +/** + * GCP-specific binding specification + */ +export type PersistImportedDeploymentRequestPreparedStackOverrideGcpResource = { + condition?: + | PersistImportedDeploymentRequestPreparedStackOverrideConditionResource + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + +/** + * GCP IAM condition + */ +export type PersistImportedDeploymentRequestPreparedStackOverrideConditionStack = + { + expression: string; + title: string; + }; + +export type PersistImportedDeploymentRequestPreparedStackOverrideStackConditionUnion = + | PersistImportedDeploymentRequestPreparedStackOverrideConditionStack + | any; + +/** + * GCP-specific binding specification + */ +export type PersistImportedDeploymentRequestPreparedStackOverrideGcpStack = { + condition?: + | PersistImportedDeploymentRequestPreparedStackOverrideConditionStack + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type PersistImportedDeploymentRequestPreparedStackOverrideGcpBinding = { + /** + * GCP-specific binding specification + */ + resource?: + | PersistImportedDeploymentRequestPreparedStackOverrideGcpResource + | undefined; + /** + * GCP-specific binding specification + */ + stack?: + | PersistImportedDeploymentRequestPreparedStackOverrideGcpStack + | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type PersistImportedDeploymentRequestPreparedStackOverrideGcpGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * GCP-specific platform permission configuration + */ +export type PersistImportedDeploymentRequestPreparedStackOverrideGcp = { + /** + * Generic binding configuration for permissions + */ + binding: PersistImportedDeploymentRequestPreparedStackOverrideGcpBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: PersistImportedDeploymentRequestPreparedStackOverrideGcpGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Platform-specific permission configurations + */ +export type PersistImportedDeploymentRequestPreparedStackOverridePlatforms = { + /** + * AWS permission configurations + */ + aws?: + | Array + | null + | undefined; + /** + * Azure permission configurations + */ + azure?: + | Array + | null + | undefined; + /** + * GCP permission configurations + */ + gcp?: + | Array + | null + | undefined; +}; + +/** + * A permission set that can be applied across different cloud platforms + */ +export type PersistImportedDeploymentRequestPreparedStackOverride = { + /** + * Human-readable description of what this permission set allows + */ + description: string; + /** + * Unique identifier for the permission set (e.g., "storage/data-read") + */ + id: string; + /** + * Platform-specific permission configurations + */ + platforms: PersistImportedDeploymentRequestPreparedStackOverridePlatforms; +}; + +/** + * Reference to a permission set - either by name or inline definition + */ +export type PersistImportedDeploymentRequestPreparedStackOverrideUnion = + | PersistImportedDeploymentRequestPreparedStackOverride + | string; + +export type PersistImportedDeploymentRequestPreparedStackManagement2 = { + /** + * Permission profile that maps resources to permission sets + * + * @remarks + * Key can be "*" for all resources or resource name for specific resource + */ + override: { + [k: string]: Array< + PersistImportedDeploymentRequestPreparedStackOverride | string + >; + }; +}; + +/** + * AWS-specific binding specification + */ +export type PersistImportedDeploymentRequestPreparedStackExtendAwResource = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; + +/** + * AWS-specific binding specification + */ +export type PersistImportedDeploymentRequestPreparedStackExtendAwStack = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; + +/** + * Generic binding configuration for permissions + */ +export type PersistImportedDeploymentRequestPreparedStackExtendAwBinding = { + /** + * AWS-specific binding specification + */ + resource?: + | PersistImportedDeploymentRequestPreparedStackExtendAwResource + | undefined; + /** + * AWS-specific binding specification + */ + stack?: + | PersistImportedDeploymentRequestPreparedStackExtendAwStack + | undefined; +}; + +/** + * IAM effect. Defaults to Allow. + */ +export const PersistImportedDeploymentRequestPreparedStackExtendEffect = { + Allow: "Allow", + Deny: "Deny", +} as const; +/** + * IAM effect. Defaults to Allow. + */ +export type PersistImportedDeploymentRequestPreparedStackExtendEffect = + ClosedEnum; + +/** + * Grant permissions for a specific cloud platform + */ +export type PersistImportedDeploymentRequestPreparedStackExtendAwGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * AWS-specific platform permission configuration + */ +export type PersistImportedDeploymentRequestPreparedStackExtendAw = { + /** + * Generic binding configuration for permissions + */ + binding: PersistImportedDeploymentRequestPreparedStackExtendAwBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * IAM effect. Defaults to Allow. + */ + effect?: + | PersistImportedDeploymentRequestPreparedStackExtendEffect + | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: PersistImportedDeploymentRequestPreparedStackExtendAwGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Azure-specific binding specification + */ +export type PersistImportedDeploymentRequestPreparedStackExtendAzureResource = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; + +/** + * Azure-specific binding specification + */ +export type PersistImportedDeploymentRequestPreparedStackExtendAzureStack = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type PersistImportedDeploymentRequestPreparedStackExtendAzureBinding = { + /** + * Azure-specific binding specification + */ + resource?: + | PersistImportedDeploymentRequestPreparedStackExtendAzureResource + | undefined; + /** + * Azure-specific binding specification + */ + stack?: + | PersistImportedDeploymentRequestPreparedStackExtendAzureStack + | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type PersistImportedDeploymentRequestPreparedStackExtendAzureGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * Azure-specific platform permission configuration + */ +export type PersistImportedDeploymentRequestPreparedStackExtendAzure = { + /** + * Generic binding configuration for permissions + */ + binding: PersistImportedDeploymentRequestPreparedStackExtendAzureBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: PersistImportedDeploymentRequestPreparedStackExtendAzureGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * GCP IAM condition + */ +export type PersistImportedDeploymentRequestPreparedStackExtendConditionResource = + { + expression: string; + title: string; + }; + +export type PersistImportedDeploymentRequestPreparedStackExtendResourceConditionUnion = + | PersistImportedDeploymentRequestPreparedStackExtendConditionResource + | any; + +/** + * GCP-specific binding specification + */ +export type PersistImportedDeploymentRequestPreparedStackExtendGcpResource = { + condition?: + | PersistImportedDeploymentRequestPreparedStackExtendConditionResource + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + +/** + * GCP IAM condition + */ +export type PersistImportedDeploymentRequestPreparedStackExtendConditionStack = + { + expression: string; + title: string; + }; + +export type PersistImportedDeploymentRequestPreparedStackExtendStackConditionUnion = + | PersistImportedDeploymentRequestPreparedStackExtendConditionStack + | any; + +/** + * GCP-specific binding specification + */ +export type PersistImportedDeploymentRequestPreparedStackExtendGcpStack = { + condition?: + | PersistImportedDeploymentRequestPreparedStackExtendConditionStack + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type PersistImportedDeploymentRequestPreparedStackExtendGcpBinding = { + /** + * GCP-specific binding specification + */ + resource?: + | PersistImportedDeploymentRequestPreparedStackExtendGcpResource + | undefined; + /** + * GCP-specific binding specification + */ + stack?: + | PersistImportedDeploymentRequestPreparedStackExtendGcpStack + | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type PersistImportedDeploymentRequestPreparedStackExtendGcpGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * GCP-specific platform permission configuration + */ +export type PersistImportedDeploymentRequestPreparedStackExtendGcp = { + /** + * Generic binding configuration for permissions + */ + binding: PersistImportedDeploymentRequestPreparedStackExtendGcpBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: PersistImportedDeploymentRequestPreparedStackExtendGcpGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Platform-specific permission configurations + */ +export type PersistImportedDeploymentRequestPreparedStackExtendPlatforms = { + /** + * AWS permission configurations + */ + aws?: + | Array + | null + | undefined; + /** + * Azure permission configurations + */ + azure?: + | Array + | null + | undefined; + /** + * GCP permission configurations + */ + gcp?: + | Array + | null + | undefined; +}; + +/** + * A permission set that can be applied across different cloud platforms + */ +export type PersistImportedDeploymentRequestPreparedStackExtend = { + /** + * Human-readable description of what this permission set allows + */ + description: string; + /** + * Unique identifier for the permission set (e.g., "storage/data-read") + */ + id: string; + /** + * Platform-specific permission configurations + */ + platforms: PersistImportedDeploymentRequestPreparedStackExtendPlatforms; +}; + +/** + * Reference to a permission set - either by name or inline definition + */ +export type PersistImportedDeploymentRequestPreparedStackExtendUnion = + | PersistImportedDeploymentRequestPreparedStackExtend + | string; + +export type PersistImportedDeploymentRequestPreparedStackManagement1 = { + /** + * Permission profile that maps resources to permission sets + * + * @remarks + * Key can be "*" for all resources or resource name for specific resource + */ + extend: { + [k: string]: Array< + PersistImportedDeploymentRequestPreparedStackExtend | string + >; + }; +}; + +/** + * Management permissions configuration for stack management access + */ +export type PersistImportedDeploymentRequestPreparedStackManagementUnion = + | PersistImportedDeploymentRequestPreparedStackManagement1 + | PersistImportedDeploymentRequestPreparedStackManagement2 + | PersistImportedDeploymentRequestPreparedStackManagementEnum; + +/** + * AWS-specific binding specification + */ +export type PersistImportedDeploymentRequestPreparedStackProfileAwResource = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; + +/** + * AWS-specific binding specification + */ +export type PersistImportedDeploymentRequestPreparedStackProfileAwStack = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; + +/** + * Generic binding configuration for permissions + */ +export type PersistImportedDeploymentRequestPreparedStackProfileAwBinding = { + /** + * AWS-specific binding specification + */ + resource?: + | PersistImportedDeploymentRequestPreparedStackProfileAwResource + | undefined; + /** + * AWS-specific binding specification + */ + stack?: + | PersistImportedDeploymentRequestPreparedStackProfileAwStack + | undefined; +}; + +/** + * IAM effect. Defaults to Allow. + */ +export const PersistImportedDeploymentRequestPreparedStackProfileEffect = { + Allow: "Allow", + Deny: "Deny", +} as const; +/** + * IAM effect. Defaults to Allow. + */ +export type PersistImportedDeploymentRequestPreparedStackProfileEffect = + ClosedEnum; + +/** + * Grant permissions for a specific cloud platform + */ +export type PersistImportedDeploymentRequestPreparedStackProfileAwGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * AWS-specific platform permission configuration + */ +export type PersistImportedDeploymentRequestPreparedStackProfileAw = { + /** + * Generic binding configuration for permissions + */ + binding: PersistImportedDeploymentRequestPreparedStackProfileAwBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * IAM effect. Defaults to Allow. + */ + effect?: + | PersistImportedDeploymentRequestPreparedStackProfileEffect + | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: PersistImportedDeploymentRequestPreparedStackProfileAwGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Azure-specific binding specification + */ +export type PersistImportedDeploymentRequestPreparedStackProfileAzureResource = + { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; + }; + +/** + * Azure-specific binding specification + */ +export type PersistImportedDeploymentRequestPreparedStackProfileAzureStack = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type PersistImportedDeploymentRequestPreparedStackProfileAzureBinding = { + /** + * Azure-specific binding specification + */ + resource?: + | PersistImportedDeploymentRequestPreparedStackProfileAzureResource + | undefined; + /** + * Azure-specific binding specification + */ + stack?: + | PersistImportedDeploymentRequestPreparedStackProfileAzureStack + | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type PersistImportedDeploymentRequestPreparedStackProfileAzureGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * Azure-specific platform permission configuration + */ +export type PersistImportedDeploymentRequestPreparedStackProfileAzure = { + /** + * Generic binding configuration for permissions + */ + binding: PersistImportedDeploymentRequestPreparedStackProfileAzureBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: PersistImportedDeploymentRequestPreparedStackProfileAzureGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * GCP IAM condition + */ +export type PersistImportedDeploymentRequestPreparedStackProfileConditionResource = + { + expression: string; + title: string; + }; + +export type PersistImportedDeploymentRequestPreparedStackProfileResourceConditionUnion = + | PersistImportedDeploymentRequestPreparedStackProfileConditionResource + | any; + +/** + * GCP-specific binding specification + */ +export type PersistImportedDeploymentRequestPreparedStackProfileGcpResource = { + condition?: + | PersistImportedDeploymentRequestPreparedStackProfileConditionResource + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + +/** + * GCP IAM condition + */ +export type PersistImportedDeploymentRequestPreparedStackProfileConditionStack = + { + expression: string; + title: string; + }; + +export type PersistImportedDeploymentRequestPreparedStackProfileStackConditionUnion = + | PersistImportedDeploymentRequestPreparedStackProfileConditionStack + | any; + +/** + * GCP-specific binding specification + */ +export type PersistImportedDeploymentRequestPreparedStackProfileGcpStack = { + condition?: + | PersistImportedDeploymentRequestPreparedStackProfileConditionStack + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type PersistImportedDeploymentRequestPreparedStackProfileGcpBinding = { + /** + * GCP-specific binding specification + */ + resource?: + | PersistImportedDeploymentRequestPreparedStackProfileGcpResource + | undefined; + /** + * GCP-specific binding specification + */ + stack?: + | PersistImportedDeploymentRequestPreparedStackProfileGcpStack + | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type PersistImportedDeploymentRequestPreparedStackProfileGcpGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * GCP-specific platform permission configuration + */ +export type PersistImportedDeploymentRequestPreparedStackProfileGcp = { + /** + * Generic binding configuration for permissions + */ + binding: PersistImportedDeploymentRequestPreparedStackProfileGcpBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: PersistImportedDeploymentRequestPreparedStackProfileGcpGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Platform-specific permission configurations + */ +export type PersistImportedDeploymentRequestPreparedStackProfilePlatforms = { + /** + * AWS permission configurations + */ + aws?: + | Array + | null + | undefined; + /** + * Azure permission configurations + */ + azure?: + | Array + | null + | undefined; + /** + * GCP permission configurations + */ + gcp?: + | Array + | null + | undefined; +}; + +/** + * A permission set that can be applied across different cloud platforms + */ +export type PersistImportedDeploymentRequestPreparedStackProfile = { + /** + * Human-readable description of what this permission set allows + */ + description: string; + /** + * Unique identifier for the permission set (e.g., "storage/data-read") + */ + id: string; + /** + * Platform-specific permission configurations + */ + platforms: PersistImportedDeploymentRequestPreparedStackProfilePlatforms; +}; + +/** + * Reference to a permission set - either by name or inline definition + */ +export type PersistImportedDeploymentRequestPreparedStackProfileUnion = + | PersistImportedDeploymentRequestPreparedStackProfile + | string; + +/** + * Combined permissions configuration that contains both profiles and management + */ +export type PersistImportedDeploymentRequestPreparedStackPermissions = { + /** + * Management permissions configuration for stack management access + */ + management?: + | PersistImportedDeploymentRequestPreparedStackManagement1 + | PersistImportedDeploymentRequestPreparedStackManagement2 + | PersistImportedDeploymentRequestPreparedStackManagementEnum + | undefined; + /** + * Permission profiles that define access control for compute services + * + * @remarks + * Key is the profile name, value is the permission configuration + */ + profiles: { + [k: string]: { + [k: string]: Array< + PersistImportedDeploymentRequestPreparedStackProfile | string + >; + }; + }; +}; + +/** + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + */ +export type PersistImportedDeploymentRequestPreparedStackConfig = { + /** + * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. + */ + id: string; + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + type: string; + additionalProperties?: { [k: string]: any | null } | undefined; +}; + +/** + * Reference to a resource by its stable id and resource type. + */ +export type PersistImportedDeploymentRequestPreparedStackDependency = { + id: string; + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + type: string; +}; + +/** + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ +export const PersistImportedDeploymentRequestPreparedStackLifecycle = { + Frozen: "frozen", + Live: "live", +} as const; +/** + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ +export type PersistImportedDeploymentRequestPreparedStackLifecycle = ClosedEnum< + typeof PersistImportedDeploymentRequestPreparedStackLifecycle +>; + +export type PersistImportedDeploymentRequestPreparedStackResources = { + /** + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + */ + config: PersistImportedDeploymentRequestPreparedStackConfig; + /** + * Additional dependencies for this resource beyond those defined in the resource itself. + * + * @remarks + * The total dependencies are: resource.get_dependencies() + this list + */ + dependencies: Array; + /** + * Id of the boolean stack input that decides whether this resource is + * + * @remarks + * created at all. `None` means always create it. + * + * Set by `.enabled(input)` in the SDK. Setup emitters render the resource + * conditionally on the matching template variable, so a deployer who says no + * never gets the resource, its outputs, or anything derived from it. + */ + enabledWhen?: string | null | undefined; + /** + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ + lifecycle: PersistImportedDeploymentRequestPreparedStackLifecycle; + /** + * Enable remote bindings for this resource (BYOB use case). + * + * @remarks + * When true, binding params are synced to StackState's `remote_binding_params`. + * Default: false (prevents sensitive data in synced state). + */ + remoteAccess?: boolean | undefined; +}; + +/** + * Represents the target cloud platform. + */ +export const PersistImportedDeploymentRequestPreparedStackSupportedPlatform = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", +} as const; +/** + * Represents the target cloud platform. + */ +export type PersistImportedDeploymentRequestPreparedStackSupportedPlatform = + ClosedEnum< + typeof PersistImportedDeploymentRequestPreparedStackSupportedPlatform + >; + +/** + * A bag of resources, unaware of any cloud. + */ +export type PersistImportedDeploymentRequestPreparedStack = { + /** + * Unique identifier for the stack + */ + id: string; + /** + * Input definitions required before setup or deployment can proceed. + */ + inputs?: + | Array + | undefined; + /** + * Combined permissions configuration that contains both profiles and management + */ + permissions?: + | PersistImportedDeploymentRequestPreparedStackPermissions + | undefined; + /** + * Map of resource IDs to their configurations and lifecycle settings + */ + resources: { + [k: string]: PersistImportedDeploymentRequestPreparedStackResources; + }; + /** + * Which platforms this stack supports. When None, all platforms are supported. + */ + supportedPlatforms?: + | Array + | null + | undefined; +}; + +export type PersistImportedDeploymentRequestPreparedStackUnion = + | PersistImportedDeploymentRequestPreparedStack + | any; + +/** + * One-shot authority for a setup re-import to replace setup-owned resources. + */ +export type PersistImportedDeploymentRequestSetupUpdateAuthorization = { + /** + * Frozen resource projection from the last successful deployment. + */ + baselineFrozenDigest: string; + /** + * Unique revision used by persistence layers for compare-and-swap updates. + */ + nonce: string; + /** + * Release whose stack was prepared by setup. + */ + releaseId: string; + /** + * Exact setup artifact revision that authored this authority. + */ + setupFingerprint: string; + /** + * Setup fingerprint contract version. + */ + setupFingerprintVersion: number; + /** + * Stable setup target recorded on the imported deployment. + */ + setupTarget: string; + /** + * Frozen resource projection prepared by the setup re-import. + */ + targetFrozenDigest: string; +}; + +export type PersistImportedDeploymentRequestSetupUpdateAuthorizationUnion = + | PersistImportedDeploymentRequestSetupUpdateAuthorization + | any; + +/** + * Runtime metadata for deployment + * + * @remarks + * + * Stores deployment state that needs to persist across step calls. + */ +export type PersistImportedDeploymentRequestRuntimeMetadata = { + /** + * Actor that owns structural work during the initial setup phase. + */ + initialSetupAuthority?: + | PersistImportedDeploymentRequestInitialSetupAuthority + | undefined; + /** + * Hash of the environment variables snapshot that was last synced to the vault + * + * @remarks + * Used to avoid redundant sync operations during incremental deployment + */ + lastSyncedEnvVarsHash?: string | null | undefined; + /** + * Exact vault keys owned by the deployment secret synchronizer. This + * + * @remarks + * inventory lets a later snapshot delete removed keys without listing or + * touching unrelated values in the same vault. + */ + lastSyncedSecretNames?: Array | undefined; + pendingPreparedStack?: + | PersistImportedDeploymentRequestPendingPreparedStack + | any + | null + | undefined; + /** + * Canonical resolved answers for inputs that gate Frozen resources, + * + * @remarks + * keyed by input id, recorded when the deployment is created or its + * setup import registers. + * + * A frozen gate's answer is fixed for the deployment's lifetime: the + * update path refuses input values that conflict with these, and a Live + * resource sharing such an input resolves the persisted answer forever. + */ + persistedGateAnswers?: { [k: string]: boolean } | undefined; + preparedStack?: + | PersistImportedDeploymentRequestPreparedStack + | any + | null + | undefined; + /** + * Whether cross-account registry access has been successfully granted. + * + * @remarks + * Set to true after the manager successfully sets the ECR/GAR repo policy + * for this deployment's target account. Prevents redundant API calls on + * every reconcile tick. + */ + registryAccessGranted?: boolean | undefined; + setupUpdateAuthorization?: + | PersistImportedDeploymentRequestSetupUpdateAuthorization + | any + | null + | undefined; +}; + +/** + * Deployment status in the deployment lifecycle. + * + * @remarks + * + * For observe-only deployments with no release or stack state, `Running` + * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; + * resource health comes from inventory and resource heartbeat data. + */ +export const PersistImportedDeploymentRequestStatus = { + Pending: "pending", + PreflightsFailed: "preflights-failed", + InitialSetup: "initial-setup", + InitialSetupFailed: "initial-setup-failed", + Provisioning: "provisioning", + WaitingForMachines: "waiting-for-machines", + ProvisioningFailed: "provisioning-failed", + Running: "running", + RefreshFailed: "refresh-failed", + UpdatePending: "update-pending", + Updating: "updating", + UpdateFailed: "update-failed", + DeletePending: "delete-pending", + Deleting: "deleting", + DeleteFailed: "delete-failed", + TeardownRequired: "teardown-required", + TeardownFailed: "teardown-failed", + Deleted: "deleted", + Error: "error", +} as const; +/** + * Deployment status in the deployment lifecycle. + * + * @remarks + * + * For observe-only deployments with no release or stack state, `Running` + * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; + * resource health comes from inventory and resource heartbeat data. + */ +export type PersistImportedDeploymentRequestStatus = ClosedEnum< + typeof PersistImportedDeploymentRequestStatus +>; + +export type PersistImportedDeploymentRequestManagementConfigKubernetes = { + platform: "kubernetes"; +}; + +/** + * Azure management configuration extracted from stack settings + */ +export type PersistImportedDeploymentRequestManagementConfigAzure = { + /** + * The managing Azure Tenant ID for cross-tenant access + */ + managingTenantId: string; + /** + * OIDC issuer URL trusted by the target-side managed identity. + */ + oidcIssuer: string; + /** + * OIDC subject claim trusted by the target-side managed identity. + */ + oidcSubject: string; + platform: "azure"; +}; + +/** + * GCP management configuration extracted from stack settings + */ +export type PersistImportedDeploymentRequestManagementConfigGcp = { + /** + * Service account email for management roles + */ + serviceAccountEmail: string; + platform: "gcp"; +}; + +/** + * AWS management configuration extracted from stack settings + */ +export type PersistImportedDeploymentRequestManagementConfigAws = { + /** + * The managing AWS IAM role ARN that can assume cross-account roles + */ + managingRoleArn: string; + platform: "aws"; +}; + +/** + * Management configuration for different cloud platforms. + * + * @remarks + * + * Platform-derived configuration for cross-account/cross-tenant access. + * This is NOT user-specified - it's derived from the Manager's ServiceAccount. + */ +export type PersistImportedDeploymentRequestManagementConfigUnion = + | PersistImportedDeploymentRequestManagementConfigAws + | PersistImportedDeploymentRequestManagementConfigGcp + | PersistImportedDeploymentRequestManagementConfigAzure + | PersistImportedDeploymentRequestManagementConfigKubernetes; + +export type PersistImportedDeploymentRequest = { + mode: ModePersist; + /** + * Deployment name. Must be unique within the deployment group. + */ + name: string; + /** + * Unique identifier for the deployment group. + */ + deploymentGroupId: string; + managerId: string; + /** + * Optional deployment subdomain under the project's generated-domain parent. Operator-only and requires a custom project domain; customer deploy-link tokens and the shared system domain are rejected. Omit to generate a random subdomain. + */ + publicSubdomain?: string | undefined; + /** + * Represents the target cloud platform. + */ + platform: PersistImportedDeploymentRequestPlatformEnum; + /** + * Base cloud platform for cloud-backed Kubernetes imports. + */ + basePlatform?: KubernetesBasePlatform | undefined; + /** + * User-customizable deployment settings specified at deploy time. + * + * @remarks + * + * These settings are provided by the customer via CloudFormation parameters, + * Terraform attributes, CLI flags, or Helm values. They customize how the + * deployment runs and what capabilities are enabled. + * + * **Key distinction**: StackSettings is user-customizable, while ManagementConfig + * is platform-derived (from the Manager's ServiceAccount). + */ + stackSettings: PersistImportedDeploymentRequestStackSettings; + stackState?: any | null | undefined; + /** + * Platform-specific environment information + */ + environmentInfo?: + | PersistImportedDeploymentRequestEnvironmentInfoGcp + | PersistImportedDeploymentRequestEnvironmentInfoAzure + | PersistImportedDeploymentRequestEnvironmentInfoLocal + | PersistImportedDeploymentRequestEnvironmentInfoAws + | PersistImportedDeploymentRequestEnvironmentInfoTest + | any + | null + | undefined; + /** + * Runtime metadata for deployment + * + * @remarks + * + * Stores deployment state that needs to persist across step calls. + */ + runtimeMetadata: PersistImportedDeploymentRequestRuntimeMetadata; + scheduleReconciliation?: boolean | undefined; + /** + * DeploymentState protocol version owned by the runtime/manager + */ + deploymentProtocolVersion: number; + /** + * Deployment status in the deployment lifecycle. + * + * @remarks + * + * For observe-only deployments with no release or stack state, `Running` + * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; + * resource health comes from inventory and resource heartbeat data. + */ + status?: PersistImportedDeploymentRequestStatus | undefined; + /** + * Unique identifier for the release. + */ + currentReleaseId?: string | undefined; + /** + * Unique identifier for the release. + */ + desiredReleaseId?: string | undefined; + importSource?: ImportSourceKind | undefined; + setupMetadata?: { [k: string]: any | null } | undefined; + /** + * Stable target key for the setup contract, e.g. aws/us-east-1 + */ + setupTarget: string; + /** + * Deterministic setup contract fingerprint for one setup target + */ + setupFingerprint: string; + /** + * Setup fingerprint algorithm version + */ + setupFingerprintVersion: number; + deploymentToken?: string | undefined; + /** + * Management configuration for different cloud platforms. + * + * @remarks + * + * Platform-derived configuration for cross-account/cross-tenant access. + * This is NOT user-specified - it's derived from the Manager's ServiceAccount. + */ + managementConfig?: + | PersistImportedDeploymentRequestManagementConfigAws + | PersistImportedDeploymentRequestManagementConfigGcp + | PersistImportedDeploymentRequestManagementConfigAzure + | PersistImportedDeploymentRequestManagementConfigKubernetes + | undefined; + inputValues?: { [k: string]: StackInputValueRequest } | undefined; +}; + +/** @internal */ +export const ModePersist$outboundSchema: z.ZodEnum = z.enum( + ModePersist, +); + +/** @internal */ +export const PersistImportedDeploymentRequestPlatformEnum$outboundSchema: + z.ZodEnum = z.enum( + PersistImportedDeploymentRequestPlatformEnum, + ); + +/** @internal */ +export type PersistImportedDeploymentRequestFailureDomains2$Outbound = { + selectedFailureDomains?: Array | undefined; + spread: number; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestFailureDomains2$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestFailureDomains2$Outbound, + PersistImportedDeploymentRequestFailureDomains2 + > = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), + }); + +export function persistImportedDeploymentRequestFailureDomains2ToJSON( + persistImportedDeploymentRequestFailureDomains2: + PersistImportedDeploymentRequestFailureDomains2, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestFailureDomains2$outboundSchema.parse( + persistImportedDeploymentRequestFailureDomains2, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestFailureDomainsUnion2$Outbound = + | PersistImportedDeploymentRequestFailureDomains2$Outbound + | any; + +/** @internal */ +export const PersistImportedDeploymentRequestFailureDomainsUnion2$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestFailureDomainsUnion2$Outbound, + PersistImportedDeploymentRequestFailureDomainsUnion2 + > = z.union([ + z.lazy(() => + PersistImportedDeploymentRequestFailureDomains2$outboundSchema + ), + z.any(), + ]); + +export function persistImportedDeploymentRequestFailureDomainsUnion2ToJSON( + persistImportedDeploymentRequestFailureDomainsUnion2: + PersistImportedDeploymentRequestFailureDomainsUnion2, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestFailureDomainsUnion2$outboundSchema.parse( + persistImportedDeploymentRequestFailureDomainsUnion2, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestPoolsAutoscale$Outbound = { + failure_domains?: + | PersistImportedDeploymentRequestFailureDomains2$Outbound + | any + | null + | undefined; + machine?: string | null | undefined; + max: number; + min: number; + mode: "autoscale"; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestPoolsAutoscale$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPoolsAutoscale$Outbound, + PersistImportedDeploymentRequestPoolsAutoscale + > = z.object({ + failureDomains: z.nullable( + z.union([ + z.lazy(() => + PersistImportedDeploymentRequestFailureDomains2$outboundSchema + ), + z.any(), + ]), + ).optional(), + machine: z.nullable(z.string()).optional(), + max: z.int(), + min: z.int(), + mode: z.literal("autoscale"), + }).transform((v) => { + return remap$(v, { + failureDomains: "failure_domains", + }); + }); + +export function persistImportedDeploymentRequestPoolsAutoscaleToJSON( + persistImportedDeploymentRequestPoolsAutoscale: + PersistImportedDeploymentRequestPoolsAutoscale, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestPoolsAutoscale$outboundSchema.parse( + persistImportedDeploymentRequestPoolsAutoscale, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestFailureDomains1$Outbound = { + selectedFailureDomains?: Array | undefined; + spread: number; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestFailureDomains1$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestFailureDomains1$Outbound, + PersistImportedDeploymentRequestFailureDomains1 + > = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), + }); + +export function persistImportedDeploymentRequestFailureDomains1ToJSON( + persistImportedDeploymentRequestFailureDomains1: + PersistImportedDeploymentRequestFailureDomains1, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestFailureDomains1$outboundSchema.parse( + persistImportedDeploymentRequestFailureDomains1, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestFailureDomainsUnion1$Outbound = + | PersistImportedDeploymentRequestFailureDomains1$Outbound + | any; + +/** @internal */ +export const PersistImportedDeploymentRequestFailureDomainsUnion1$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestFailureDomainsUnion1$Outbound, + PersistImportedDeploymentRequestFailureDomainsUnion1 + > = z.union([ + z.lazy(() => + PersistImportedDeploymentRequestFailureDomains1$outboundSchema + ), + z.any(), + ]); + +export function persistImportedDeploymentRequestFailureDomainsUnion1ToJSON( + persistImportedDeploymentRequestFailureDomainsUnion1: + PersistImportedDeploymentRequestFailureDomainsUnion1, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestFailureDomainsUnion1$outboundSchema.parse( + persistImportedDeploymentRequestFailureDomainsUnion1, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestPoolsFixed$Outbound = { + failure_domains?: + | PersistImportedDeploymentRequestFailureDomains1$Outbound + | any + | null + | undefined; + machine?: string | null | undefined; + machines: number; + mode: "fixed"; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestPoolsFixed$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPoolsFixed$Outbound, + PersistImportedDeploymentRequestPoolsFixed + > = z.object({ + failureDomains: z.nullable( + z.union([ + z.lazy(() => + PersistImportedDeploymentRequestFailureDomains1$outboundSchema + ), + z.any(), + ]), + ).optional(), + machine: z.nullable(z.string()).optional(), + machines: z.int(), + mode: z.literal("fixed"), + }).transform((v) => { + return remap$(v, { + failureDomains: "failure_domains", + }); + }); + +export function persistImportedDeploymentRequestPoolsFixedToJSON( + persistImportedDeploymentRequestPoolsFixed: + PersistImportedDeploymentRequestPoolsFixed, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestPoolsFixed$outboundSchema.parse( + persistImportedDeploymentRequestPoolsFixed, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestPoolsUnion$Outbound = + | PersistImportedDeploymentRequestPoolsFixed$Outbound + | PersistImportedDeploymentRequestPoolsAutoscale$Outbound; + +/** @internal */ +export const PersistImportedDeploymentRequestPoolsUnion$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPoolsUnion$Outbound, + PersistImportedDeploymentRequestPoolsUnion + > = z.union([ + z.lazy(() => PersistImportedDeploymentRequestPoolsFixed$outboundSchema), + z.lazy(() => PersistImportedDeploymentRequestPoolsAutoscale$outboundSchema), + ]); + +export function persistImportedDeploymentRequestPoolsUnionToJSON( + persistImportedDeploymentRequestPoolsUnion: + PersistImportedDeploymentRequestPoolsUnion, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestPoolsUnion$outboundSchema.parse( + persistImportedDeploymentRequestPoolsUnion, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestCompute$Outbound = { + pools?: { + [k: string]: + | PersistImportedDeploymentRequestPoolsFixed$Outbound + | PersistImportedDeploymentRequestPoolsAutoscale$Outbound; + } | undefined; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestCompute$outboundSchema: z.ZodType< + PersistImportedDeploymentRequestCompute$Outbound, + PersistImportedDeploymentRequestCompute +> = z.object({ + pools: z.record( + z.string(), + z.union([ + z.lazy(() => PersistImportedDeploymentRequestPoolsFixed$outboundSchema), + z.lazy(() => + PersistImportedDeploymentRequestPoolsAutoscale$outboundSchema + ), + ]), + ).optional(), +}); + +export function persistImportedDeploymentRequestComputeToJSON( + persistImportedDeploymentRequestCompute: + PersistImportedDeploymentRequestCompute, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestCompute$outboundSchema.parse( + persistImportedDeploymentRequestCompute, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestComputeUnion$Outbound = + | PersistImportedDeploymentRequestCompute$Outbound + | any; + +/** @internal */ +export const PersistImportedDeploymentRequestComputeUnion$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestComputeUnion$Outbound, + PersistImportedDeploymentRequestComputeUnion + > = z.union([ + z.lazy(() => PersistImportedDeploymentRequestCompute$outboundSchema), + z.any(), + ]); + +export function persistImportedDeploymentRequestComputeUnionToJSON( + persistImportedDeploymentRequestComputeUnion: + PersistImportedDeploymentRequestComputeUnion, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestComputeUnion$outboundSchema.parse( + persistImportedDeploymentRequestComputeUnion, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestDeploymentModel$outboundSchema: + z.ZodEnum = z.enum( + PersistImportedDeploymentRequestDeploymentModel, + ); + +/** @internal */ +export type PersistImportedDeploymentRequestAws$Outbound = { + certificateArn: string; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestAws$outboundSchema: z.ZodType< + PersistImportedDeploymentRequestAws$Outbound, + PersistImportedDeploymentRequestAws +> = z.object({ + certificateArn: z.string(), +}); + +export function persistImportedDeploymentRequestAwsToJSON( + persistImportedDeploymentRequestAws: PersistImportedDeploymentRequestAws, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestAws$outboundSchema.parse( + persistImportedDeploymentRequestAws, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestAwsUnion$Outbound = + | PersistImportedDeploymentRequestAws$Outbound + | any; + +/** @internal */ +export const PersistImportedDeploymentRequestAwsUnion$outboundSchema: z.ZodType< + PersistImportedDeploymentRequestAwsUnion$Outbound, + PersistImportedDeploymentRequestAwsUnion +> = z.union([ + z.lazy(() => PersistImportedDeploymentRequestAws$outboundSchema), + z.any(), +]); + +export function persistImportedDeploymentRequestAwsUnionToJSON( + persistImportedDeploymentRequestAwsUnion: + PersistImportedDeploymentRequestAwsUnion, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestAwsUnion$outboundSchema.parse( + persistImportedDeploymentRequestAwsUnion, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestAzureStackSettings$Outbound = { + keyVaultCertificateId: string; + keyVaultResourceId?: string | null | undefined; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestAzureStackSettings$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestAzureStackSettings$Outbound, + PersistImportedDeploymentRequestAzureStackSettings + > = z.object({ + keyVaultCertificateId: z.string(), + keyVaultResourceId: z.nullable(z.string()).optional(), + }); + +export function persistImportedDeploymentRequestAzureStackSettingsToJSON( + persistImportedDeploymentRequestAzureStackSettings: + PersistImportedDeploymentRequestAzureStackSettings, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestAzureStackSettings$outboundSchema.parse( + persistImportedDeploymentRequestAzureStackSettings, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestAzureUnion$Outbound = + | PersistImportedDeploymentRequestAzureStackSettings$Outbound + | any; + +/** @internal */ +export const PersistImportedDeploymentRequestAzureUnion$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestAzureUnion$Outbound, + PersistImportedDeploymentRequestAzureUnion + > = z.union([ + z.lazy(() => + PersistImportedDeploymentRequestAzureStackSettings$outboundSchema + ), + z.any(), + ]); + +export function persistImportedDeploymentRequestAzureUnionToJSON( + persistImportedDeploymentRequestAzureUnion: + PersistImportedDeploymentRequestAzureUnion, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestAzureUnion$outboundSchema.parse( + persistImportedDeploymentRequestAzureUnion, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestGcpStackSettings$Outbound = { + certificateName: string; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestGcpStackSettings$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestGcpStackSettings$Outbound, + PersistImportedDeploymentRequestGcpStackSettings + > = z.object({ + certificateName: z.string(), + }); + +export function persistImportedDeploymentRequestGcpStackSettingsToJSON( + persistImportedDeploymentRequestGcpStackSettings: + PersistImportedDeploymentRequestGcpStackSettings, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestGcpStackSettings$outboundSchema.parse( + persistImportedDeploymentRequestGcpStackSettings, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestGcpUnion$Outbound = + | PersistImportedDeploymentRequestGcpStackSettings$Outbound + | any; + +/** @internal */ +export const PersistImportedDeploymentRequestGcpUnion$outboundSchema: z.ZodType< + PersistImportedDeploymentRequestGcpUnion$Outbound, + PersistImportedDeploymentRequestGcpUnion +> = z.union([ + z.lazy(() => PersistImportedDeploymentRequestGcpStackSettings$outboundSchema), + z.any(), +]); + +export function persistImportedDeploymentRequestGcpUnionToJSON( + persistImportedDeploymentRequestGcpUnion: + PersistImportedDeploymentRequestGcpUnion, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestGcpUnion$outboundSchema.parse( + persistImportedDeploymentRequestGcpUnion, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestTlsSecretRef$Outbound = { + namespace?: string | null | undefined; + secretName: string; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestTlsSecretRef$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestTlsSecretRef$Outbound, + PersistImportedDeploymentRequestTlsSecretRef + > = z.object({ + namespace: z.nullable(z.string()).optional(), + secretName: z.string(), + }); + +export function persistImportedDeploymentRequestTlsSecretRefToJSON( + persistImportedDeploymentRequestTlsSecretRef: + PersistImportedDeploymentRequestTlsSecretRef, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestTlsSecretRef$outboundSchema.parse( + persistImportedDeploymentRequestTlsSecretRef, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestDomainsKubernetes$Outbound = { + tlsSecretRef: PersistImportedDeploymentRequestTlsSecretRef$Outbound; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestDomainsKubernetes$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestDomainsKubernetes$Outbound, + PersistImportedDeploymentRequestDomainsKubernetes + > = z.object({ + tlsSecretRef: z.lazy(() => + PersistImportedDeploymentRequestTlsSecretRef$outboundSchema + ), + }); + +export function persistImportedDeploymentRequestDomainsKubernetesToJSON( + persistImportedDeploymentRequestDomainsKubernetes: + PersistImportedDeploymentRequestDomainsKubernetes, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestDomainsKubernetes$outboundSchema.parse( + persistImportedDeploymentRequestDomainsKubernetes, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestDomainsKubernetesUnion$Outbound = + | PersistImportedDeploymentRequestDomainsKubernetes$Outbound + | any; + +/** @internal */ +export const PersistImportedDeploymentRequestDomainsKubernetesUnion$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestDomainsKubernetesUnion$Outbound, + PersistImportedDeploymentRequestDomainsKubernetesUnion + > = z.union([ + z.lazy(() => + PersistImportedDeploymentRequestDomainsKubernetes$outboundSchema + ), + z.any(), + ]); + +export function persistImportedDeploymentRequestDomainsKubernetesUnionToJSON( + persistImportedDeploymentRequestDomainsKubernetesUnion: + PersistImportedDeploymentRequestDomainsKubernetesUnion, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestDomainsKubernetesUnion$outboundSchema.parse( + persistImportedDeploymentRequestDomainsKubernetesUnion, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestDomainsCertificate$Outbound = { + aws?: PersistImportedDeploymentRequestAws$Outbound | any | null | undefined; + azure?: + | PersistImportedDeploymentRequestAzureStackSettings$Outbound + | any + | null + | undefined; + gcp?: + | PersistImportedDeploymentRequestGcpStackSettings$Outbound + | any + | null + | undefined; + kubernetes?: + | PersistImportedDeploymentRequestDomainsKubernetes$Outbound + | any + | null + | undefined; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestDomainsCertificate$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestDomainsCertificate$Outbound, + PersistImportedDeploymentRequestDomainsCertificate + > = z.object({ + aws: z.nullable( + z.union([ + z.lazy(() => PersistImportedDeploymentRequestAws$outboundSchema), + z.any(), + ]), + ).optional(), + azure: z.nullable( + z.union([ + z.lazy(() => + PersistImportedDeploymentRequestAzureStackSettings$outboundSchema + ), + z.any(), + ]), + ).optional(), + gcp: z.nullable( + z.union([ + z.lazy(() => + PersistImportedDeploymentRequestGcpStackSettings$outboundSchema + ), + z.any(), + ]), + ).optional(), + kubernetes: z.nullable( + z.union([ + z.lazy(() => + PersistImportedDeploymentRequestDomainsKubernetes$outboundSchema + ), + z.any(), + ]), + ).optional(), + }); + +export function persistImportedDeploymentRequestDomainsCertificateToJSON( + persistImportedDeploymentRequestDomainsCertificate: + PersistImportedDeploymentRequestDomainsCertificate, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestDomainsCertificate$outboundSchema.parse( + persistImportedDeploymentRequestDomainsCertificate, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestCustomDomains$Outbound = { + certificate: PersistImportedDeploymentRequestDomainsCertificate$Outbound; + domain: string; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestCustomDomains$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestCustomDomains$Outbound, + PersistImportedDeploymentRequestCustomDomains + > = z.object({ + certificate: z.lazy(() => + PersistImportedDeploymentRequestDomainsCertificate$outboundSchema + ), + domain: z.string(), + }); + +export function persistImportedDeploymentRequestCustomDomainsToJSON( + persistImportedDeploymentRequestCustomDomains: + PersistImportedDeploymentRequestCustomDomains, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestCustomDomains$outboundSchema.parse( + persistImportedDeploymentRequestCustomDomains, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestModeLoadBalancer$outboundSchema: + z.ZodEnum = z.enum( + PersistImportedDeploymentRequestModeLoadBalancer, + ); + +/** @internal */ +export type PersistImportedDeploymentRequestPublicEndpointTargetLoadBalancer$Outbound = + { + cnameTarget: string; + mode: string; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestPublicEndpointTargetLoadBalancer$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPublicEndpointTargetLoadBalancer$Outbound, + PersistImportedDeploymentRequestPublicEndpointTargetLoadBalancer + > = z.object({ + cnameTarget: z.string(), + mode: PersistImportedDeploymentRequestModeLoadBalancer$outboundSchema, + }); + +export function persistImportedDeploymentRequestPublicEndpointTargetLoadBalancerToJSON( + persistImportedDeploymentRequestPublicEndpointTargetLoadBalancer: + PersistImportedDeploymentRequestPublicEndpointTargetLoadBalancer, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestPublicEndpointTargetLoadBalancer$outboundSchema + .parse(persistImportedDeploymentRequestPublicEndpointTargetLoadBalancer), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestModeMachineAddresses$outboundSchema: + z.ZodEnum = z + .enum(PersistImportedDeploymentRequestModeMachineAddresses); + +/** @internal */ +export type PersistImportedDeploymentRequestPublicEndpointTargetMachineAddresses$Outbound = + { + mode: string; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestPublicEndpointTargetMachineAddresses$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPublicEndpointTargetMachineAddresses$Outbound, + PersistImportedDeploymentRequestPublicEndpointTargetMachineAddresses + > = z.object({ + mode: PersistImportedDeploymentRequestModeMachineAddresses$outboundSchema, + }); + +export function persistImportedDeploymentRequestPublicEndpointTargetMachineAddressesToJSON( + persistImportedDeploymentRequestPublicEndpointTargetMachineAddresses: + PersistImportedDeploymentRequestPublicEndpointTargetMachineAddresses, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestPublicEndpointTargetMachineAddresses$outboundSchema + .parse( + persistImportedDeploymentRequestPublicEndpointTargetMachineAddresses, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestPublicEndpointTargetUnion$Outbound = + | PersistImportedDeploymentRequestPublicEndpointTargetLoadBalancer$Outbound + | PersistImportedDeploymentRequestPublicEndpointTargetMachineAddresses$Outbound + | any; + +/** @internal */ +export const PersistImportedDeploymentRequestPublicEndpointTargetUnion$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPublicEndpointTargetUnion$Outbound, + PersistImportedDeploymentRequestPublicEndpointTargetUnion + > = z.union([ + z.lazy(() => + PersistImportedDeploymentRequestPublicEndpointTargetLoadBalancer$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestPublicEndpointTargetMachineAddresses$outboundSchema + ), + z.any(), + ]); + +export function persistImportedDeploymentRequestPublicEndpointTargetUnionToJSON( + persistImportedDeploymentRequestPublicEndpointTargetUnion: + PersistImportedDeploymentRequestPublicEndpointTargetUnion, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestPublicEndpointTargetUnion$outboundSchema + .parse(persistImportedDeploymentRequestPublicEndpointTargetUnion), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestDomains$Outbound = { + customDomains?: + | { [k: string]: PersistImportedDeploymentRequestCustomDomains$Outbound } + | null + | undefined; + publicEndpointTarget?: + | PersistImportedDeploymentRequestPublicEndpointTargetLoadBalancer$Outbound + | PersistImportedDeploymentRequestPublicEndpointTargetMachineAddresses$Outbound + | any + | null + | undefined; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestDomains$outboundSchema: z.ZodType< + PersistImportedDeploymentRequestDomains$Outbound, + PersistImportedDeploymentRequestDomains +> = z.object({ + customDomains: z.nullable( + z.record( + z.string(), + z.lazy(() => + PersistImportedDeploymentRequestCustomDomains$outboundSchema + ), + ), + ).optional(), + publicEndpointTarget: z.nullable( + z.union([ + z.lazy(() => + PersistImportedDeploymentRequestPublicEndpointTargetLoadBalancer$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestPublicEndpointTargetMachineAddresses$outboundSchema + ), + z.any(), + ]), + ).optional(), +}); + +export function persistImportedDeploymentRequestDomainsToJSON( + persistImportedDeploymentRequestDomains: + PersistImportedDeploymentRequestDomains, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestDomains$outboundSchema.parse( + persistImportedDeploymentRequestDomains, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestDomainsUnion$Outbound = + | PersistImportedDeploymentRequestDomains$Outbound + | any; + +/** @internal */ +export const PersistImportedDeploymentRequestDomainsUnion$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestDomainsUnion$Outbound, + PersistImportedDeploymentRequestDomainsUnion + > = z.union([ + z.lazy(() => PersistImportedDeploymentRequestDomains$outboundSchema), + z.any(), + ]); + +export function persistImportedDeploymentRequestDomainsUnionToJSON( + persistImportedDeploymentRequestDomainsUnion: + PersistImportedDeploymentRequestDomainsUnion, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestDomainsUnion$outboundSchema.parse( + persistImportedDeploymentRequestDomainsUnion, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestExternalBindings$Outbound = {}; + +/** @internal */ +export const PersistImportedDeploymentRequestExternalBindings$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestExternalBindings$Outbound, + PersistImportedDeploymentRequestExternalBindings + > = z.object({}); + +export function persistImportedDeploymentRequestExternalBindingsToJSON( + persistImportedDeploymentRequestExternalBindings: + PersistImportedDeploymentRequestExternalBindings, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestExternalBindings$outboundSchema.parse( + persistImportedDeploymentRequestExternalBindings, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestHeartbeats$outboundSchema: + z.ZodEnum = z.enum( + PersistImportedDeploymentRequestHeartbeats, + ); + +/** @internal */ +export type PersistImportedDeploymentRequestCloud$Outbound = { + accountId?: string | null | undefined; + clusterId?: string | null | undefined; + clusterName?: string | null | undefined; + projectId?: string | null | undefined; + region?: string | null | undefined; + resourceGroup?: string | null | undefined; + subscriptionId?: string | null | undefined; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestCloud$outboundSchema: z.ZodType< + PersistImportedDeploymentRequestCloud$Outbound, + PersistImportedDeploymentRequestCloud +> = z.object({ + accountId: z.nullable(z.string()).optional(), + clusterId: z.nullable(z.string()).optional(), + clusterName: z.nullable(z.string()).optional(), + projectId: z.nullable(z.string()).optional(), + region: z.nullable(z.string()).optional(), + resourceGroup: z.nullable(z.string()).optional(), + subscriptionId: z.nullable(z.string()).optional(), +}); + +export function persistImportedDeploymentRequestCloudToJSON( + persistImportedDeploymentRequestCloud: PersistImportedDeploymentRequestCloud, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestCloud$outboundSchema.parse( + persistImportedDeploymentRequestCloud, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestCloudUnion$Outbound = + | PersistImportedDeploymentRequestCloud$Outbound + | any; + +/** @internal */ +export const PersistImportedDeploymentRequestCloudUnion$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestCloudUnion$Outbound, + PersistImportedDeploymentRequestCloudUnion + > = z.union([ + z.lazy(() => PersistImportedDeploymentRequestCloud$outboundSchema), + z.any(), + ]); + +export function persistImportedDeploymentRequestCloudUnionToJSON( + persistImportedDeploymentRequestCloudUnion: + PersistImportedDeploymentRequestCloudUnion, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestCloudUnion$outboundSchema.parse( + persistImportedDeploymentRequestCloudUnion, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestOwnership$outboundSchema: + z.ZodEnum = z.enum( + PersistImportedDeploymentRequestOwnership, + ); + +/** @internal */ +export type PersistImportedDeploymentRequestCluster$Outbound = { + cloud?: + | PersistImportedDeploymentRequestCloud$Outbound + | any + | null + | undefined; + namespace?: string | null | undefined; + ownership: string; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestCluster$outboundSchema: z.ZodType< + PersistImportedDeploymentRequestCluster$Outbound, + PersistImportedDeploymentRequestCluster +> = z.object({ + cloud: z.nullable( + z.union([ + z.lazy(() => PersistImportedDeploymentRequestCloud$outboundSchema), + z.any(), + ]), + ).optional(), + namespace: z.nullable(z.string()).optional(), + ownership: PersistImportedDeploymentRequestOwnership$outboundSchema, +}); + +export function persistImportedDeploymentRequestClusterToJSON( + persistImportedDeploymentRequestCluster: + PersistImportedDeploymentRequestCluster, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestCluster$outboundSchema.parse( + persistImportedDeploymentRequestCluster, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestClusterUnion$Outbound = + | PersistImportedDeploymentRequestCluster$Outbound + | any; + +/** @internal */ +export const PersistImportedDeploymentRequestClusterUnion$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestClusterUnion$Outbound, + PersistImportedDeploymentRequestClusterUnion + > = z.union([ + z.lazy(() => PersistImportedDeploymentRequestCluster$outboundSchema), + z.any(), + ]); + +export function persistImportedDeploymentRequestClusterUnionToJSON( + persistImportedDeploymentRequestClusterUnion: + PersistImportedDeploymentRequestClusterUnion, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestClusterUnion$outboundSchema.parse( + persistImportedDeploymentRequestClusterUnion, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestCertificateNone2$Outbound = { + mode: "none"; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestCertificateNone2$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestCertificateNone2$Outbound, + PersistImportedDeploymentRequestCertificateNone2 + > = z.object({ + mode: z.literal("none"), + }); + +export function persistImportedDeploymentRequestCertificateNone2ToJSON( + persistImportedDeploymentRequestCertificateNone2: + PersistImportedDeploymentRequestCertificateNone2, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestCertificateNone2$outboundSchema.parse( + persistImportedDeploymentRequestCertificateNone2, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestCertificateManagedTLSSecret2$Outbound = + { + mode: "managedTlsSecret"; + secretNameTemplate: string; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestCertificateManagedTLSSecret2$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestCertificateManagedTLSSecret2$Outbound, + PersistImportedDeploymentRequestCertificateManagedTLSSecret2 + > = z.object({ + mode: z.literal("managedTlsSecret"), + secretNameTemplate: z.string(), + }); + +export function persistImportedDeploymentRequestCertificateManagedTLSSecret2ToJSON( + persistImportedDeploymentRequestCertificateManagedTLSSecret2: + PersistImportedDeploymentRequestCertificateManagedTLSSecret2, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestCertificateManagedTLSSecret2$outboundSchema + .parse(persistImportedDeploymentRequestCertificateManagedTLSSecret2), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestCertificateAwsAcmArn2$Outbound = { + certificateArn: string; + mode: "awsAcmArn"; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestCertificateAwsAcmArn2$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestCertificateAwsAcmArn2$Outbound, + PersistImportedDeploymentRequestCertificateAwsAcmArn2 + > = z.object({ + certificateArn: z.string(), + mode: z.literal("awsAcmArn"), + }); + +export function persistImportedDeploymentRequestCertificateAwsAcmArn2ToJSON( + persistImportedDeploymentRequestCertificateAwsAcmArn2: + PersistImportedDeploymentRequestCertificateAwsAcmArn2, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestCertificateAwsAcmArn2$outboundSchema.parse( + persistImportedDeploymentRequestCertificateAwsAcmArn2, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestCertificateManagedAcmImport2$Outbound = + { + mode: "managedAcmImport"; + region?: string | null | undefined; + tags?: { [k: string]: string } | undefined; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestCertificateManagedAcmImport2$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestCertificateManagedAcmImport2$Outbound, + PersistImportedDeploymentRequestCertificateManagedAcmImport2 + > = z.object({ + mode: z.literal("managedAcmImport"), + region: z.nullable(z.string()).optional(), + tags: z.record(z.string(), z.string()).optional(), + }); + +export function persistImportedDeploymentRequestCertificateManagedAcmImport2ToJSON( + persistImportedDeploymentRequestCertificateManagedAcmImport2: + PersistImportedDeploymentRequestCertificateManagedAcmImport2, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestCertificateManagedAcmImport2$outboundSchema + .parse(persistImportedDeploymentRequestCertificateManagedAcmImport2), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestCertificateTLSSecretRef2$Outbound = + { + namespace?: string | null | undefined; + secretName: string; + mode: "tlsSecretRef"; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestCertificateTLSSecretRef2$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestCertificateTLSSecretRef2$Outbound, + PersistImportedDeploymentRequestCertificateTLSSecretRef2 + > = z.object({ + namespace: z.nullable(z.string()).optional(), + secretName: z.string(), + mode: z.literal("tlsSecretRef"), + }); + +export function persistImportedDeploymentRequestCertificateTLSSecretRef2ToJSON( + persistImportedDeploymentRequestCertificateTLSSecretRef2: + PersistImportedDeploymentRequestCertificateTLSSecretRef2, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestCertificateTLSSecretRef2$outboundSchema + .parse(persistImportedDeploymentRequestCertificateTLSSecretRef2), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestCertificateUnion2$Outbound = + | PersistImportedDeploymentRequestCertificateTLSSecretRef2$Outbound + | PersistImportedDeploymentRequestCertificateManagedAcmImport2$Outbound + | PersistImportedDeploymentRequestCertificateAwsAcmArn2$Outbound + | PersistImportedDeploymentRequestCertificateManagedTLSSecret2$Outbound + | PersistImportedDeploymentRequestCertificateNone2$Outbound; + +/** @internal */ +export const PersistImportedDeploymentRequestCertificateUnion2$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestCertificateUnion2$Outbound, + PersistImportedDeploymentRequestCertificateUnion2 + > = z.union([ + z.lazy(() => + PersistImportedDeploymentRequestCertificateTLSSecretRef2$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestCertificateManagedAcmImport2$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestCertificateAwsAcmArn2$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestCertificateManagedTLSSecret2$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestCertificateNone2$outboundSchema + ), + ]); + +export function persistImportedDeploymentRequestCertificateUnion2ToJSON( + persistImportedDeploymentRequestCertificateUnion2: + PersistImportedDeploymentRequestCertificateUnion2, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestCertificateUnion2$outboundSchema.parse( + persistImportedDeploymentRequestCertificateUnion2, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestModeCustom$outboundSchema: + z.ZodEnum = z.enum( + PersistImportedDeploymentRequestModeCustom, + ); + +/** @internal */ +export const PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum4$outboundSchema: + z.ZodEnum< + typeof PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum4 + > = z.enum( + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum4, + ); + +/** @internal */ +export type PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4$Outbound = + { + albName?: string | null | undefined; + albNamespace?: string | null | undefined; + frontend: string; + provider: string; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4$Outbound, + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4 + > = z.object({ + albName: z.nullable(z.string()).optional(), + albNamespace: z.nullable(z.string()).optional(), + frontend: z.string(), + provider: + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum4$outboundSchema, + }); + +export function persistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4ToJSON( + persistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4: + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4$outboundSchema + .parse( + persistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestProviderGkeGatewayEnum4$outboundSchema: + z.ZodEnum = z + .enum(PersistImportedDeploymentRequestProviderGkeGatewayEnum4); + +/** @internal */ +export type PersistImportedDeploymentRequestProviderGkeGateway4$Outbound = { + provider: string; + staticAddressName?: string | null | undefined; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestProviderGkeGateway4$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestProviderGkeGateway4$Outbound, + PersistImportedDeploymentRequestProviderGkeGateway4 + > = z.object({ + provider: + PersistImportedDeploymentRequestProviderGkeGatewayEnum4$outboundSchema, + staticAddressName: z.nullable(z.string()).optional(), + }); + +export function persistImportedDeploymentRequestProviderGkeGateway4ToJSON( + persistImportedDeploymentRequestProviderGkeGateway4: + PersistImportedDeploymentRequestProviderGkeGateway4, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestProviderGkeGateway4$outboundSchema.parse( + persistImportedDeploymentRequestProviderGkeGateway4, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestProviderAwsAlbEnum4$outboundSchema: + z.ZodEnum = z + .enum(PersistImportedDeploymentRequestProviderAwsAlbEnum4); + +/** @internal */ +export type PersistImportedDeploymentRequestProviderAwsAlb4$Outbound = { + ipAddressType?: string | null | undefined; + provider: string; + scheme: string; + subnetIds?: Array | undefined; + targetType: string; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestProviderAwsAlb4$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestProviderAwsAlb4$Outbound, + PersistImportedDeploymentRequestProviderAwsAlb4 + > = z.object({ + ipAddressType: z.nullable(z.string()).optional(), + provider: + PersistImportedDeploymentRequestProviderAwsAlbEnum4$outboundSchema, + scheme: z.string(), + subnetIds: z.array(z.string()).optional(), + targetType: z.string(), + }); + +export function persistImportedDeploymentRequestProviderAwsAlb4ToJSON( + persistImportedDeploymentRequestProviderAwsAlb4: + PersistImportedDeploymentRequestProviderAwsAlb4, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestProviderAwsAlb4$outboundSchema.parse( + persistImportedDeploymentRequestProviderAwsAlb4, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestProviderUnion4$Outbound = + | PersistImportedDeploymentRequestProviderAwsAlb4$Outbound + | PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4$Outbound + | PersistImportedDeploymentRequestProviderGkeGateway4$Outbound + | any; + +/** @internal */ +export const PersistImportedDeploymentRequestProviderUnion4$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestProviderUnion4$Outbound, + PersistImportedDeploymentRequestProviderUnion4 + > = z.union([ + z.lazy(() => + PersistImportedDeploymentRequestProviderAwsAlb4$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestProviderGkeGateway4$outboundSchema + ), + z.any(), + ]); + +export function persistImportedDeploymentRequestProviderUnion4ToJSON( + persistImportedDeploymentRequestProviderUnion4: + PersistImportedDeploymentRequestProviderUnion4, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestProviderUnion4$outboundSchema.parse( + persistImportedDeploymentRequestProviderUnion4, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestRouteGateway2$Outbound = { + annotations?: { [k: string]: string } | undefined; + controller?: string | null | undefined; + gatewayClassName: string; + labels?: { [k: string]: string } | undefined; + listenerPort: number; + provider?: + | PersistImportedDeploymentRequestProviderAwsAlb4$Outbound + | PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4$Outbound + | PersistImportedDeploymentRequestProviderGkeGateway4$Outbound + | any + | null + | undefined; + routeApi: "gateway"; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestRouteGateway2$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestRouteGateway2$Outbound, + PersistImportedDeploymentRequestRouteGateway2 + > = z.object({ + annotations: z.record(z.string(), z.string()).optional(), + controller: z.nullable(z.string()).optional(), + gatewayClassName: z.string(), + labels: z.record(z.string(), z.string()).optional(), + listenerPort: z.int(), + provider: z.nullable( + z.union([ + z.lazy(() => + PersistImportedDeploymentRequestProviderAwsAlb4$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestProviderGkeGateway4$outboundSchema + ), + z.any(), + ]), + ).optional(), + routeApi: z.literal("gateway"), + }); + +export function persistImportedDeploymentRequestRouteGateway2ToJSON( + persistImportedDeploymentRequestRouteGateway2: + PersistImportedDeploymentRequestRouteGateway2, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestRouteGateway2$outboundSchema.parse( + persistImportedDeploymentRequestRouteGateway2, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum3$outboundSchema: + z.ZodEnum< + typeof PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum3 + > = z.enum( + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum3, + ); + +/** @internal */ +export type PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3$Outbound = + { + albName?: string | null | undefined; + albNamespace?: string | null | undefined; + frontend: string; + provider: string; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3$Outbound, + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3 + > = z.object({ + albName: z.nullable(z.string()).optional(), + albNamespace: z.nullable(z.string()).optional(), + frontend: z.string(), + provider: + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum3$outboundSchema, + }); + +export function persistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3ToJSON( + persistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3: + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3$outboundSchema + .parse( + persistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestProviderGkeGatewayEnum3$outboundSchema: + z.ZodEnum = z + .enum(PersistImportedDeploymentRequestProviderGkeGatewayEnum3); + +/** @internal */ +export type PersistImportedDeploymentRequestProviderGkeGateway3$Outbound = { + provider: string; + staticAddressName?: string | null | undefined; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestProviderGkeGateway3$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestProviderGkeGateway3$Outbound, + PersistImportedDeploymentRequestProviderGkeGateway3 + > = z.object({ + provider: + PersistImportedDeploymentRequestProviderGkeGatewayEnum3$outboundSchema, + staticAddressName: z.nullable(z.string()).optional(), + }); + +export function persistImportedDeploymentRequestProviderGkeGateway3ToJSON( + persistImportedDeploymentRequestProviderGkeGateway3: + PersistImportedDeploymentRequestProviderGkeGateway3, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestProviderGkeGateway3$outboundSchema.parse( + persistImportedDeploymentRequestProviderGkeGateway3, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestProviderAwsAlbEnum3$outboundSchema: + z.ZodEnum = z + .enum(PersistImportedDeploymentRequestProviderAwsAlbEnum3); + +/** @internal */ +export type PersistImportedDeploymentRequestProviderAwsAlb3$Outbound = { + ipAddressType?: string | null | undefined; + provider: string; + scheme: string; + subnetIds?: Array | undefined; + targetType: string; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestProviderAwsAlb3$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestProviderAwsAlb3$Outbound, + PersistImportedDeploymentRequestProviderAwsAlb3 + > = z.object({ + ipAddressType: z.nullable(z.string()).optional(), + provider: + PersistImportedDeploymentRequestProviderAwsAlbEnum3$outboundSchema, + scheme: z.string(), + subnetIds: z.array(z.string()).optional(), + targetType: z.string(), + }); + +export function persistImportedDeploymentRequestProviderAwsAlb3ToJSON( + persistImportedDeploymentRequestProviderAwsAlb3: + PersistImportedDeploymentRequestProviderAwsAlb3, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestProviderAwsAlb3$outboundSchema.parse( + persistImportedDeploymentRequestProviderAwsAlb3, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestProviderUnion3$Outbound = + | PersistImportedDeploymentRequestProviderAwsAlb3$Outbound + | PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3$Outbound + | PersistImportedDeploymentRequestProviderGkeGateway3$Outbound + | any; + +/** @internal */ +export const PersistImportedDeploymentRequestProviderUnion3$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestProviderUnion3$Outbound, + PersistImportedDeploymentRequestProviderUnion3 + > = z.union([ + z.lazy(() => + PersistImportedDeploymentRequestProviderAwsAlb3$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestProviderGkeGateway3$outboundSchema + ), + z.any(), + ]); + +export function persistImportedDeploymentRequestProviderUnion3ToJSON( + persistImportedDeploymentRequestProviderUnion3: + PersistImportedDeploymentRequestProviderUnion3, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestProviderUnion3$outboundSchema.parse( + persistImportedDeploymentRequestProviderUnion3, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestRouteIngress2$Outbound = { + annotations?: { [k: string]: string } | undefined; + controller?: string | null | undefined; + ingressClassName: string; + labels?: { [k: string]: string } | undefined; + provider?: + | PersistImportedDeploymentRequestProviderAwsAlb3$Outbound + | PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3$Outbound + | PersistImportedDeploymentRequestProviderGkeGateway3$Outbound + | any + | null + | undefined; + routeApi: "ingress"; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestRouteIngress2$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestRouteIngress2$Outbound, + PersistImportedDeploymentRequestRouteIngress2 + > = z.object({ + annotations: z.record(z.string(), z.string()).optional(), + controller: z.nullable(z.string()).optional(), + ingressClassName: z.string(), + labels: z.record(z.string(), z.string()).optional(), + provider: z.nullable( + z.union([ + z.lazy(() => + PersistImportedDeploymentRequestProviderAwsAlb3$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestProviderGkeGateway3$outboundSchema + ), + z.any(), + ]), + ).optional(), + routeApi: z.literal("ingress"), + }); + +export function persistImportedDeploymentRequestRouteIngress2ToJSON( + persistImportedDeploymentRequestRouteIngress2: + PersistImportedDeploymentRequestRouteIngress2, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestRouteIngress2$outboundSchema.parse( + persistImportedDeploymentRequestRouteIngress2, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestRouteUnion2$Outbound = + | PersistImportedDeploymentRequestRouteIngress2$Outbound + | PersistImportedDeploymentRequestRouteGateway2$Outbound; + +/** @internal */ +export const PersistImportedDeploymentRequestRouteUnion2$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestRouteUnion2$Outbound, + PersistImportedDeploymentRequestRouteUnion2 + > = z.union([ + z.lazy(() => PersistImportedDeploymentRequestRouteIngress2$outboundSchema), + z.lazy(() => PersistImportedDeploymentRequestRouteGateway2$outboundSchema), + ]); + +export function persistImportedDeploymentRequestRouteUnion2ToJSON( + persistImportedDeploymentRequestRouteUnion2: + PersistImportedDeploymentRequestRouteUnion2, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestRouteUnion2$outboundSchema.parse( + persistImportedDeploymentRequestRouteUnion2, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestExposureCustom$Outbound = { + certificate: + | PersistImportedDeploymentRequestCertificateTLSSecretRef2$Outbound + | PersistImportedDeploymentRequestCertificateManagedAcmImport2$Outbound + | PersistImportedDeploymentRequestCertificateAwsAcmArn2$Outbound + | PersistImportedDeploymentRequestCertificateManagedTLSSecret2$Outbound + | PersistImportedDeploymentRequestCertificateNone2$Outbound; + domain: string; + mode: string; + route: + | PersistImportedDeploymentRequestRouteIngress2$Outbound + | PersistImportedDeploymentRequestRouteGateway2$Outbound; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestExposureCustom$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestExposureCustom$Outbound, + PersistImportedDeploymentRequestExposureCustom + > = z.object({ + certificate: z.union([ + z.lazy(() => + PersistImportedDeploymentRequestCertificateTLSSecretRef2$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestCertificateManagedAcmImport2$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestCertificateAwsAcmArn2$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestCertificateManagedTLSSecret2$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestCertificateNone2$outboundSchema + ), + ]), + domain: z.string(), + mode: PersistImportedDeploymentRequestModeCustom$outboundSchema, + route: z.union([ + z.lazy(() => + PersistImportedDeploymentRequestRouteIngress2$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestRouteGateway2$outboundSchema + ), + ]), + }); + +export function persistImportedDeploymentRequestExposureCustomToJSON( + persistImportedDeploymentRequestExposureCustom: + PersistImportedDeploymentRequestExposureCustom, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestExposureCustom$outboundSchema.parse( + persistImportedDeploymentRequestExposureCustom, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestCertificateNone1$Outbound = { + mode: "none"; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestCertificateNone1$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestCertificateNone1$Outbound, + PersistImportedDeploymentRequestCertificateNone1 + > = z.object({ + mode: z.literal("none"), + }); + +export function persistImportedDeploymentRequestCertificateNone1ToJSON( + persistImportedDeploymentRequestCertificateNone1: + PersistImportedDeploymentRequestCertificateNone1, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestCertificateNone1$outboundSchema.parse( + persistImportedDeploymentRequestCertificateNone1, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestCertificateManagedTLSSecret1$Outbound = + { + mode: "managedTlsSecret"; + secretNameTemplate: string; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestCertificateManagedTLSSecret1$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestCertificateManagedTLSSecret1$Outbound, + PersistImportedDeploymentRequestCertificateManagedTLSSecret1 + > = z.object({ + mode: z.literal("managedTlsSecret"), + secretNameTemplate: z.string(), + }); + +export function persistImportedDeploymentRequestCertificateManagedTLSSecret1ToJSON( + persistImportedDeploymentRequestCertificateManagedTLSSecret1: + PersistImportedDeploymentRequestCertificateManagedTLSSecret1, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestCertificateManagedTLSSecret1$outboundSchema + .parse(persistImportedDeploymentRequestCertificateManagedTLSSecret1), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestCertificateAwsAcmArn1$Outbound = { + certificateArn: string; + mode: "awsAcmArn"; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestCertificateAwsAcmArn1$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestCertificateAwsAcmArn1$Outbound, + PersistImportedDeploymentRequestCertificateAwsAcmArn1 + > = z.object({ + certificateArn: z.string(), + mode: z.literal("awsAcmArn"), + }); + +export function persistImportedDeploymentRequestCertificateAwsAcmArn1ToJSON( + persistImportedDeploymentRequestCertificateAwsAcmArn1: + PersistImportedDeploymentRequestCertificateAwsAcmArn1, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestCertificateAwsAcmArn1$outboundSchema.parse( + persistImportedDeploymentRequestCertificateAwsAcmArn1, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestCertificateManagedAcmImport1$Outbound = + { + mode: "managedAcmImport"; + region?: string | null | undefined; + tags?: { [k: string]: string } | undefined; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestCertificateManagedAcmImport1$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestCertificateManagedAcmImport1$Outbound, + PersistImportedDeploymentRequestCertificateManagedAcmImport1 + > = z.object({ + mode: z.literal("managedAcmImport"), + region: z.nullable(z.string()).optional(), + tags: z.record(z.string(), z.string()).optional(), + }); + +export function persistImportedDeploymentRequestCertificateManagedAcmImport1ToJSON( + persistImportedDeploymentRequestCertificateManagedAcmImport1: + PersistImportedDeploymentRequestCertificateManagedAcmImport1, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestCertificateManagedAcmImport1$outboundSchema + .parse(persistImportedDeploymentRequestCertificateManagedAcmImport1), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestCertificateTLSSecretRef1$Outbound = + { + namespace?: string | null | undefined; + secretName: string; + mode: "tlsSecretRef"; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestCertificateTLSSecretRef1$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestCertificateTLSSecretRef1$Outbound, + PersistImportedDeploymentRequestCertificateTLSSecretRef1 + > = z.object({ + namespace: z.nullable(z.string()).optional(), + secretName: z.string(), + mode: z.literal("tlsSecretRef"), + }); + +export function persistImportedDeploymentRequestCertificateTLSSecretRef1ToJSON( + persistImportedDeploymentRequestCertificateTLSSecretRef1: + PersistImportedDeploymentRequestCertificateTLSSecretRef1, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestCertificateTLSSecretRef1$outboundSchema + .parse(persistImportedDeploymentRequestCertificateTLSSecretRef1), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestCertificateUnion1$Outbound = + | PersistImportedDeploymentRequestCertificateTLSSecretRef1$Outbound + | PersistImportedDeploymentRequestCertificateManagedAcmImport1$Outbound + | PersistImportedDeploymentRequestCertificateAwsAcmArn1$Outbound + | PersistImportedDeploymentRequestCertificateManagedTLSSecret1$Outbound + | PersistImportedDeploymentRequestCertificateNone1$Outbound; + +/** @internal */ +export const PersistImportedDeploymentRequestCertificateUnion1$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestCertificateUnion1$Outbound, + PersistImportedDeploymentRequestCertificateUnion1 + > = z.union([ + z.lazy(() => + PersistImportedDeploymentRequestCertificateTLSSecretRef1$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestCertificateManagedAcmImport1$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestCertificateAwsAcmArn1$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestCertificateManagedTLSSecret1$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestCertificateNone1$outboundSchema + ), + ]); + +export function persistImportedDeploymentRequestCertificateUnion1ToJSON( + persistImportedDeploymentRequestCertificateUnion1: + PersistImportedDeploymentRequestCertificateUnion1, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestCertificateUnion1$outboundSchema.parse( + persistImportedDeploymentRequestCertificateUnion1, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestModeGenerated$outboundSchema: + z.ZodEnum = z.enum( + PersistImportedDeploymentRequestModeGenerated, + ); + +/** @internal */ +export const PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum2$outboundSchema: + z.ZodEnum< + typeof PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum2 + > = z.enum( + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum2, + ); + +/** @internal */ +export type PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2$Outbound = + { + albName?: string | null | undefined; + albNamespace?: string | null | undefined; + frontend: string; + provider: string; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2$Outbound, + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2 + > = z.object({ + albName: z.nullable(z.string()).optional(), + albNamespace: z.nullable(z.string()).optional(), + frontend: z.string(), + provider: + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum2$outboundSchema, + }); + +export function persistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2ToJSON( + persistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2: + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2$outboundSchema + .parse( + persistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestProviderGkeGatewayEnum2$outboundSchema: + z.ZodEnum = z + .enum(PersistImportedDeploymentRequestProviderGkeGatewayEnum2); + +/** @internal */ +export type PersistImportedDeploymentRequestProviderGkeGateway2$Outbound = { + provider: string; + staticAddressName?: string | null | undefined; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestProviderGkeGateway2$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestProviderGkeGateway2$Outbound, + PersistImportedDeploymentRequestProviderGkeGateway2 + > = z.object({ + provider: + PersistImportedDeploymentRequestProviderGkeGatewayEnum2$outboundSchema, + staticAddressName: z.nullable(z.string()).optional(), + }); + +export function persistImportedDeploymentRequestProviderGkeGateway2ToJSON( + persistImportedDeploymentRequestProviderGkeGateway2: + PersistImportedDeploymentRequestProviderGkeGateway2, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestProviderGkeGateway2$outboundSchema.parse( + persistImportedDeploymentRequestProviderGkeGateway2, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestProviderAwsAlbEnum2$outboundSchema: + z.ZodEnum = z + .enum(PersistImportedDeploymentRequestProviderAwsAlbEnum2); + +/** @internal */ +export type PersistImportedDeploymentRequestProviderAwsAlb2$Outbound = { + ipAddressType?: string | null | undefined; + provider: string; + scheme: string; + subnetIds?: Array | undefined; + targetType: string; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestProviderAwsAlb2$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestProviderAwsAlb2$Outbound, + PersistImportedDeploymentRequestProviderAwsAlb2 + > = z.object({ + ipAddressType: z.nullable(z.string()).optional(), + provider: + PersistImportedDeploymentRequestProviderAwsAlbEnum2$outboundSchema, + scheme: z.string(), + subnetIds: z.array(z.string()).optional(), + targetType: z.string(), + }); + +export function persistImportedDeploymentRequestProviderAwsAlb2ToJSON( + persistImportedDeploymentRequestProviderAwsAlb2: + PersistImportedDeploymentRequestProviderAwsAlb2, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestProviderAwsAlb2$outboundSchema.parse( + persistImportedDeploymentRequestProviderAwsAlb2, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestProviderUnion2$Outbound = + | PersistImportedDeploymentRequestProviderAwsAlb2$Outbound + | PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2$Outbound + | PersistImportedDeploymentRequestProviderGkeGateway2$Outbound + | any; + +/** @internal */ +export const PersistImportedDeploymentRequestProviderUnion2$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestProviderUnion2$Outbound, + PersistImportedDeploymentRequestProviderUnion2 + > = z.union([ + z.lazy(() => + PersistImportedDeploymentRequestProviderAwsAlb2$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestProviderGkeGateway2$outboundSchema + ), + z.any(), + ]); + +export function persistImportedDeploymentRequestProviderUnion2ToJSON( + persistImportedDeploymentRequestProviderUnion2: + PersistImportedDeploymentRequestProviderUnion2, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestProviderUnion2$outboundSchema.parse( + persistImportedDeploymentRequestProviderUnion2, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestRouteGateway1$Outbound = { + annotations?: { [k: string]: string } | undefined; + controller?: string | null | undefined; + gatewayClassName: string; + labels?: { [k: string]: string } | undefined; + listenerPort: number; + provider?: + | PersistImportedDeploymentRequestProviderAwsAlb2$Outbound + | PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2$Outbound + | PersistImportedDeploymentRequestProviderGkeGateway2$Outbound + | any + | null + | undefined; + routeApi: "gateway"; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestRouteGateway1$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestRouteGateway1$Outbound, + PersistImportedDeploymentRequestRouteGateway1 + > = z.object({ + annotations: z.record(z.string(), z.string()).optional(), + controller: z.nullable(z.string()).optional(), + gatewayClassName: z.string(), + labels: z.record(z.string(), z.string()).optional(), + listenerPort: z.int(), + provider: z.nullable( + z.union([ + z.lazy(() => + PersistImportedDeploymentRequestProviderAwsAlb2$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestProviderGkeGateway2$outboundSchema + ), + z.any(), + ]), + ).optional(), + routeApi: z.literal("gateway"), + }); + +export function persistImportedDeploymentRequestRouteGateway1ToJSON( + persistImportedDeploymentRequestRouteGateway1: + PersistImportedDeploymentRequestRouteGateway1, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestRouteGateway1$outboundSchema.parse( + persistImportedDeploymentRequestRouteGateway1, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum1$outboundSchema: + z.ZodEnum< + typeof PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum1 + > = z.enum( + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum1, + ); + +/** @internal */ +export type PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1$Outbound = + { + albName?: string | null | undefined; + albNamespace?: string | null | undefined; + frontend: string; + provider: string; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1$Outbound, + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1 + > = z.object({ + albName: z.nullable(z.string()).optional(), + albNamespace: z.nullable(z.string()).optional(), + frontend: z.string(), + provider: + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum1$outboundSchema, + }); + +export function persistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1ToJSON( + persistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1: + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1$outboundSchema + .parse( + persistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestProviderGkeGatewayEnum1$outboundSchema: + z.ZodEnum = z + .enum(PersistImportedDeploymentRequestProviderGkeGatewayEnum1); + +/** @internal */ +export type PersistImportedDeploymentRequestProviderGkeGateway1$Outbound = { + provider: string; + staticAddressName?: string | null | undefined; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestProviderGkeGateway1$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestProviderGkeGateway1$Outbound, + PersistImportedDeploymentRequestProviderGkeGateway1 + > = z.object({ + provider: + PersistImportedDeploymentRequestProviderGkeGatewayEnum1$outboundSchema, + staticAddressName: z.nullable(z.string()).optional(), + }); + +export function persistImportedDeploymentRequestProviderGkeGateway1ToJSON( + persistImportedDeploymentRequestProviderGkeGateway1: + PersistImportedDeploymentRequestProviderGkeGateway1, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestProviderGkeGateway1$outboundSchema.parse( + persistImportedDeploymentRequestProviderGkeGateway1, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestProviderAwsAlbEnum1$outboundSchema: + z.ZodEnum = z + .enum(PersistImportedDeploymentRequestProviderAwsAlbEnum1); + +/** @internal */ +export type PersistImportedDeploymentRequestProviderAwsAlb1$Outbound = { + ipAddressType?: string | null | undefined; + provider: string; + scheme: string; + subnetIds?: Array | undefined; + targetType: string; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestProviderAwsAlb1$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestProviderAwsAlb1$Outbound, + PersistImportedDeploymentRequestProviderAwsAlb1 + > = z.object({ + ipAddressType: z.nullable(z.string()).optional(), + provider: + PersistImportedDeploymentRequestProviderAwsAlbEnum1$outboundSchema, + scheme: z.string(), + subnetIds: z.array(z.string()).optional(), + targetType: z.string(), + }); + +export function persistImportedDeploymentRequestProviderAwsAlb1ToJSON( + persistImportedDeploymentRequestProviderAwsAlb1: + PersistImportedDeploymentRequestProviderAwsAlb1, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestProviderAwsAlb1$outboundSchema.parse( + persistImportedDeploymentRequestProviderAwsAlb1, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestProviderUnion1$Outbound = + | PersistImportedDeploymentRequestProviderAwsAlb1$Outbound + | PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1$Outbound + | PersistImportedDeploymentRequestProviderGkeGateway1$Outbound + | any; + +/** @internal */ +export const PersistImportedDeploymentRequestProviderUnion1$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestProviderUnion1$Outbound, + PersistImportedDeploymentRequestProviderUnion1 + > = z.union([ + z.lazy(() => + PersistImportedDeploymentRequestProviderAwsAlb1$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestProviderGkeGateway1$outboundSchema + ), + z.any(), + ]); + +export function persistImportedDeploymentRequestProviderUnion1ToJSON( + persistImportedDeploymentRequestProviderUnion1: + PersistImportedDeploymentRequestProviderUnion1, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestProviderUnion1$outboundSchema.parse( + persistImportedDeploymentRequestProviderUnion1, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestRouteIngress1$Outbound = { + annotations?: { [k: string]: string } | undefined; + controller?: string | null | undefined; + ingressClassName: string; + labels?: { [k: string]: string } | undefined; + provider?: + | PersistImportedDeploymentRequestProviderAwsAlb1$Outbound + | PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1$Outbound + | PersistImportedDeploymentRequestProviderGkeGateway1$Outbound + | any + | null + | undefined; + routeApi: "ingress"; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestRouteIngress1$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestRouteIngress1$Outbound, + PersistImportedDeploymentRequestRouteIngress1 + > = z.object({ + annotations: z.record(z.string(), z.string()).optional(), + controller: z.nullable(z.string()).optional(), + ingressClassName: z.string(), + labels: z.record(z.string(), z.string()).optional(), + provider: z.nullable( + z.union([ + z.lazy(() => + PersistImportedDeploymentRequestProviderAwsAlb1$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestProviderGkeGateway1$outboundSchema + ), + z.any(), + ]), + ).optional(), + routeApi: z.literal("ingress"), + }); + +export function persistImportedDeploymentRequestRouteIngress1ToJSON( + persistImportedDeploymentRequestRouteIngress1: + PersistImportedDeploymentRequestRouteIngress1, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestRouteIngress1$outboundSchema.parse( + persistImportedDeploymentRequestRouteIngress1, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestRouteUnion1$Outbound = + | PersistImportedDeploymentRequestRouteIngress1$Outbound + | PersistImportedDeploymentRequestRouteGateway1$Outbound; + +/** @internal */ +export const PersistImportedDeploymentRequestRouteUnion1$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestRouteUnion1$Outbound, + PersistImportedDeploymentRequestRouteUnion1 + > = z.union([ + z.lazy(() => PersistImportedDeploymentRequestRouteIngress1$outboundSchema), + z.lazy(() => PersistImportedDeploymentRequestRouteGateway1$outboundSchema), + ]); + +export function persistImportedDeploymentRequestRouteUnion1ToJSON( + persistImportedDeploymentRequestRouteUnion1: + PersistImportedDeploymentRequestRouteUnion1, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestRouteUnion1$outboundSchema.parse( + persistImportedDeploymentRequestRouteUnion1, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestExposureGenerated$Outbound = { + certificate: + | PersistImportedDeploymentRequestCertificateTLSSecretRef1$Outbound + | PersistImportedDeploymentRequestCertificateManagedAcmImport1$Outbound + | PersistImportedDeploymentRequestCertificateAwsAcmArn1$Outbound + | PersistImportedDeploymentRequestCertificateManagedTLSSecret1$Outbound + | PersistImportedDeploymentRequestCertificateNone1$Outbound; + mode: string; + route: + | PersistImportedDeploymentRequestRouteIngress1$Outbound + | PersistImportedDeploymentRequestRouteGateway1$Outbound; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestExposureGenerated$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestExposureGenerated$Outbound, + PersistImportedDeploymentRequestExposureGenerated + > = z.object({ + certificate: z.union([ + z.lazy(() => + PersistImportedDeploymentRequestCertificateTLSSecretRef1$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestCertificateManagedAcmImport1$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestCertificateAwsAcmArn1$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestCertificateManagedTLSSecret1$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestCertificateNone1$outboundSchema + ), + ]), + mode: PersistImportedDeploymentRequestModeGenerated$outboundSchema, + route: z.union([ + z.lazy(() => + PersistImportedDeploymentRequestRouteIngress1$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestRouteGateway1$outboundSchema + ), + ]), + }); + +export function persistImportedDeploymentRequestExposureGeneratedToJSON( + persistImportedDeploymentRequestExposureGenerated: + PersistImportedDeploymentRequestExposureGenerated, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestExposureGenerated$outboundSchema.parse( + persistImportedDeploymentRequestExposureGenerated, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestModeDisabled$outboundSchema: + z.ZodEnum = z.enum( + PersistImportedDeploymentRequestModeDisabled, + ); + +/** @internal */ +export type PersistImportedDeploymentRequestExposureDisabled$Outbound = { + mode: string; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestExposureDisabled$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestExposureDisabled$Outbound, + PersistImportedDeploymentRequestExposureDisabled + > = z.object({ + mode: PersistImportedDeploymentRequestModeDisabled$outboundSchema, + }); + +export function persistImportedDeploymentRequestExposureDisabledToJSON( + persistImportedDeploymentRequestExposureDisabled: + PersistImportedDeploymentRequestExposureDisabled, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestExposureDisabled$outboundSchema.parse( + persistImportedDeploymentRequestExposureDisabled, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestExposureUnion$Outbound = + | PersistImportedDeploymentRequestExposureCustom$Outbound + | PersistImportedDeploymentRequestExposureGenerated$Outbound + | PersistImportedDeploymentRequestExposureDisabled$Outbound + | any; + +/** @internal */ +export const PersistImportedDeploymentRequestExposureUnion$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestExposureUnion$Outbound, + PersistImportedDeploymentRequestExposureUnion + > = z.union([ + z.lazy(() => PersistImportedDeploymentRequestExposureCustom$outboundSchema), + z.lazy(() => + PersistImportedDeploymentRequestExposureGenerated$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestExposureDisabled$outboundSchema + ), + z.any(), + ]); + +export function persistImportedDeploymentRequestExposureUnionToJSON( + persistImportedDeploymentRequestExposureUnion: + PersistImportedDeploymentRequestExposureUnion, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestExposureUnion$outboundSchema.parse( + persistImportedDeploymentRequestExposureUnion, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestKubernetes$Outbound = { + cluster?: + | PersistImportedDeploymentRequestCluster$Outbound + | any + | null + | undefined; + exposure?: + | PersistImportedDeploymentRequestExposureCustom$Outbound + | PersistImportedDeploymentRequestExposureGenerated$Outbound + | PersistImportedDeploymentRequestExposureDisabled$Outbound + | any + | null + | undefined; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestKubernetes$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestKubernetes$Outbound, + PersistImportedDeploymentRequestKubernetes + > = z.object({ + cluster: z.nullable( + z.union([ + z.lazy(() => PersistImportedDeploymentRequestCluster$outboundSchema), + z.any(), + ]), + ).optional(), + exposure: z.nullable( + z.union([ + z.lazy(() => + PersistImportedDeploymentRequestExposureCustom$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestExposureGenerated$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestExposureDisabled$outboundSchema + ), + z.any(), + ]), + ).optional(), + }); + +export function persistImportedDeploymentRequestKubernetesToJSON( + persistImportedDeploymentRequestKubernetes: + PersistImportedDeploymentRequestKubernetes, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestKubernetes$outboundSchema.parse( + persistImportedDeploymentRequestKubernetes, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestKubernetesUnion$Outbound = + | PersistImportedDeploymentRequestKubernetes$Outbound + | any; + +/** @internal */ +export const PersistImportedDeploymentRequestKubernetesUnion$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestKubernetesUnion$Outbound, + PersistImportedDeploymentRequestKubernetesUnion + > = z.union([ + z.lazy(() => PersistImportedDeploymentRequestKubernetes$outboundSchema), + z.any(), + ]); + +export function persistImportedDeploymentRequestKubernetesUnionToJSON( + persistImportedDeploymentRequestKubernetesUnion: + PersistImportedDeploymentRequestKubernetesUnion, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestKubernetesUnion$outboundSchema.parse( + persistImportedDeploymentRequestKubernetesUnion, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestTypeByoVnetAzure$outboundSchema: + z.ZodEnum = z.enum( + PersistImportedDeploymentRequestTypeByoVnetAzure, + ); + +/** @internal */ +export type PersistImportedDeploymentRequestNetworkByoVnetAzure$Outbound = { + application_gateway_subnet_name?: string | null | undefined; + private_endpoint_subnet_name?: string | null | undefined; + private_subnet_name: string; + public_subnet_name: string; + type: string; + vnet_resource_id: string; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestNetworkByoVnetAzure$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestNetworkByoVnetAzure$Outbound, + PersistImportedDeploymentRequestNetworkByoVnetAzure + > = z.object({ + applicationGatewaySubnetName: z.nullable(z.string()).optional(), + privateEndpointSubnetName: z.nullable(z.string()).optional(), + privateSubnetName: z.string(), + publicSubnetName: z.string(), + type: PersistImportedDeploymentRequestTypeByoVnetAzure$outboundSchema, + vnetResourceId: z.string(), + }).transform((v) => { + return remap$(v, { + applicationGatewaySubnetName: "application_gateway_subnet_name", + privateEndpointSubnetName: "private_endpoint_subnet_name", + privateSubnetName: "private_subnet_name", + publicSubnetName: "public_subnet_name", + vnetResourceId: "vnet_resource_id", + }); + }); + +export function persistImportedDeploymentRequestNetworkByoVnetAzureToJSON( + persistImportedDeploymentRequestNetworkByoVnetAzure: + PersistImportedDeploymentRequestNetworkByoVnetAzure, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestNetworkByoVnetAzure$outboundSchema.parse( + persistImportedDeploymentRequestNetworkByoVnetAzure, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestTypeByoVpcGcp$outboundSchema: + z.ZodEnum = z.enum( + PersistImportedDeploymentRequestTypeByoVpcGcp, + ); + +/** @internal */ +export type PersistImportedDeploymentRequestNetworkByoVpcGcp$Outbound = { + network_name: string; + region: string; + subnet_name: string; + type: string; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestNetworkByoVpcGcp$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestNetworkByoVpcGcp$Outbound, + PersistImportedDeploymentRequestNetworkByoVpcGcp + > = z.object({ + networkName: z.string(), + region: z.string(), + subnetName: z.string(), + type: PersistImportedDeploymentRequestTypeByoVpcGcp$outboundSchema, + }).transform((v) => { + return remap$(v, { + networkName: "network_name", + subnetName: "subnet_name", + }); + }); + +export function persistImportedDeploymentRequestNetworkByoVpcGcpToJSON( + persistImportedDeploymentRequestNetworkByoVpcGcp: + PersistImportedDeploymentRequestNetworkByoVpcGcp, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestNetworkByoVpcGcp$outboundSchema.parse( + persistImportedDeploymentRequestNetworkByoVpcGcp, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestTypeByoVpcAws$outboundSchema: + z.ZodEnum = z.enum( + PersistImportedDeploymentRequestTypeByoVpcAws, + ); + +/** @internal */ +export type PersistImportedDeploymentRequestNetworkByoVpcAws$Outbound = { + private_subnet_ids: Array; + public_subnet_ids: Array; + security_group_ids?: Array | undefined; + type: string; + vpc_id: string; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestNetworkByoVpcAws$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestNetworkByoVpcAws$Outbound, + PersistImportedDeploymentRequestNetworkByoVpcAws + > = z.object({ + privateSubnetIds: z.array(z.string()), + publicSubnetIds: z.array(z.string()), + securityGroupIds: z.array(z.string()).optional(), + type: PersistImportedDeploymentRequestTypeByoVpcAws$outboundSchema, + vpcId: z.string(), + }).transform((v) => { + return remap$(v, { + privateSubnetIds: "private_subnet_ids", + publicSubnetIds: "public_subnet_ids", + securityGroupIds: "security_group_ids", + vpcId: "vpc_id", + }); + }); + +export function persistImportedDeploymentRequestNetworkByoVpcAwsToJSON( + persistImportedDeploymentRequestNetworkByoVpcAws: + PersistImportedDeploymentRequestNetworkByoVpcAws, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestNetworkByoVpcAws$outboundSchema.parse( + persistImportedDeploymentRequestNetworkByoVpcAws, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestTypeCreate$outboundSchema: + z.ZodEnum = z.enum( + PersistImportedDeploymentRequestTypeCreate, + ); + +/** @internal */ +export type PersistImportedDeploymentRequestNetworkCreate$Outbound = { + availability_zones?: number | undefined; + cidr?: string | null | undefined; + type: string; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestNetworkCreate$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestNetworkCreate$Outbound, + PersistImportedDeploymentRequestNetworkCreate + > = z.object({ + availabilityZones: z.int().optional(), + cidr: z.nullable(z.string()).optional(), + type: PersistImportedDeploymentRequestTypeCreate$outboundSchema, + }).transform((v) => { + return remap$(v, { + availabilityZones: "availability_zones", + }); + }); + +export function persistImportedDeploymentRequestNetworkCreateToJSON( + persistImportedDeploymentRequestNetworkCreate: + PersistImportedDeploymentRequestNetworkCreate, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestNetworkCreate$outboundSchema.parse( + persistImportedDeploymentRequestNetworkCreate, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestTypeUseDefault$outboundSchema: + z.ZodEnum = z.enum( + PersistImportedDeploymentRequestTypeUseDefault, + ); + +/** @internal */ +export type PersistImportedDeploymentRequestNetworkUseDefault$Outbound = { + type: string; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestNetworkUseDefault$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestNetworkUseDefault$Outbound, + PersistImportedDeploymentRequestNetworkUseDefault + > = z.object({ + type: PersistImportedDeploymentRequestTypeUseDefault$outboundSchema, + }); + +export function persistImportedDeploymentRequestNetworkUseDefaultToJSON( + persistImportedDeploymentRequestNetworkUseDefault: + PersistImportedDeploymentRequestNetworkUseDefault, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestNetworkUseDefault$outboundSchema.parse( + persistImportedDeploymentRequestNetworkUseDefault, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestNetworkUnion$Outbound = + | PersistImportedDeploymentRequestNetworkByoVpcAws$Outbound + | PersistImportedDeploymentRequestNetworkByoVpcGcp$Outbound + | PersistImportedDeploymentRequestNetworkByoVnetAzure$Outbound + | PersistImportedDeploymentRequestNetworkUseDefault$Outbound + | PersistImportedDeploymentRequestNetworkCreate$Outbound + | any; + +/** @internal */ +export const PersistImportedDeploymentRequestNetworkUnion$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestNetworkUnion$Outbound, + PersistImportedDeploymentRequestNetworkUnion + > = z.union([ + z.lazy(() => + PersistImportedDeploymentRequestNetworkByoVpcAws$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestNetworkByoVpcGcp$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestNetworkByoVnetAzure$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestNetworkUseDefault$outboundSchema + ), + z.lazy(() => PersistImportedDeploymentRequestNetworkCreate$outboundSchema), + z.any(), + ]); + +export function persistImportedDeploymentRequestNetworkUnionToJSON( + persistImportedDeploymentRequestNetworkUnion: + PersistImportedDeploymentRequestNetworkUnion, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestNetworkUnion$outboundSchema.parse( + persistImportedDeploymentRequestNetworkUnion, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestTelemetry$outboundSchema: + z.ZodEnum = z.enum( + PersistImportedDeploymentRequestTelemetry, + ); + +/** @internal */ +export const PersistImportedDeploymentRequestUpdates$outboundSchema: z.ZodEnum< + typeof PersistImportedDeploymentRequestUpdates +> = z.enum(PersistImportedDeploymentRequestUpdates); + +/** @internal */ +export type PersistImportedDeploymentRequestStackSettings$Outbound = { + compute?: + | PersistImportedDeploymentRequestCompute$Outbound + | any + | null + | undefined; + deploymentModel?: string | undefined; + domains?: + | PersistImportedDeploymentRequestDomains$Outbound + | any + | null + | undefined; + externalBindings?: + | PersistImportedDeploymentRequestExternalBindings$Outbound + | null + | undefined; + heartbeats?: string | undefined; + kubernetes?: + | PersistImportedDeploymentRequestKubernetes$Outbound + | any + | null + | undefined; + network?: + | PersistImportedDeploymentRequestNetworkByoVpcAws$Outbound + | PersistImportedDeploymentRequestNetworkByoVpcGcp$Outbound + | PersistImportedDeploymentRequestNetworkByoVnetAzure$Outbound + | PersistImportedDeploymentRequestNetworkUseDefault$Outbound + | PersistImportedDeploymentRequestNetworkCreate$Outbound + | any + | null + | undefined; + telemetry?: string | undefined; + updates?: string | undefined; }; /** @internal */ -export const PersistImportedDeploymentRequestPoolsAutoscale$outboundSchema: +export const PersistImportedDeploymentRequestStackSettings$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestPoolsAutoscale$Outbound, - PersistImportedDeploymentRequestPoolsAutoscale + PersistImportedDeploymentRequestStackSettings$Outbound, + PersistImportedDeploymentRequestStackSettings > = z.object({ - machine: z.nullable(z.string()).optional(), - max: z.int(), - min: z.int(), - mode: z.literal("autoscale"), + compute: z.nullable( + z.union([ + z.lazy(() => PersistImportedDeploymentRequestCompute$outboundSchema), + z.any(), + ]), + ).optional(), + deploymentModel: + PersistImportedDeploymentRequestDeploymentModel$outboundSchema.optional(), + domains: z.nullable( + z.union([ + z.lazy(() => PersistImportedDeploymentRequestDomains$outboundSchema), + z.any(), + ]), + ).optional(), + externalBindings: z.nullable( + z.lazy(() => + PersistImportedDeploymentRequestExternalBindings$outboundSchema + ), + ).optional(), + heartbeats: PersistImportedDeploymentRequestHeartbeats$outboundSchema + .optional(), + kubernetes: z.nullable( + z.union([ + z.lazy(() => PersistImportedDeploymentRequestKubernetes$outboundSchema), + z.any(), + ]), + ).optional(), + network: z.nullable( + z.union([ + z.lazy(() => + PersistImportedDeploymentRequestNetworkByoVpcAws$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestNetworkByoVpcGcp$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestNetworkByoVnetAzure$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestNetworkUseDefault$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestNetworkCreate$outboundSchema + ), + z.any(), + ]), + ).optional(), + telemetry: PersistImportedDeploymentRequestTelemetry$outboundSchema + .optional(), + updates: PersistImportedDeploymentRequestUpdates$outboundSchema.optional(), }); -export function persistImportedDeploymentRequestPoolsAutoscaleToJSON( - persistImportedDeploymentRequestPoolsAutoscale: - PersistImportedDeploymentRequestPoolsAutoscale, +export function persistImportedDeploymentRequestStackSettingsToJSON( + persistImportedDeploymentRequestStackSettings: + PersistImportedDeploymentRequestStackSettings, ): string { return JSON.stringify( - PersistImportedDeploymentRequestPoolsAutoscale$outboundSchema.parse( - persistImportedDeploymentRequestPoolsAutoscale, + PersistImportedDeploymentRequestStackSettings$outboundSchema.parse( + persistImportedDeploymentRequestStackSettings, ), ); } /** @internal */ -export type PersistImportedDeploymentRequestPoolsFixed$Outbound = { - machine?: string | null | undefined; - machines: number; - mode: "fixed"; +export const PersistImportedDeploymentRequestPlatformTest$outboundSchema: + z.ZodEnum = z.enum( + PersistImportedDeploymentRequestPlatformTest, + ); + +/** @internal */ +export type PersistImportedDeploymentRequestEnvironmentInfoTest$Outbound = { + testId: string; + platform: string; }; /** @internal */ -export const PersistImportedDeploymentRequestPoolsFixed$outboundSchema: +export const PersistImportedDeploymentRequestEnvironmentInfoTest$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestPoolsFixed$Outbound, - PersistImportedDeploymentRequestPoolsFixed + PersistImportedDeploymentRequestEnvironmentInfoTest$Outbound, + PersistImportedDeploymentRequestEnvironmentInfoTest > = z.object({ - machine: z.nullable(z.string()).optional(), - machines: z.int(), - mode: z.literal("fixed"), + testId: z.string(), + platform: PersistImportedDeploymentRequestPlatformTest$outboundSchema, }); -export function persistImportedDeploymentRequestPoolsFixedToJSON( - persistImportedDeploymentRequestPoolsFixed: - PersistImportedDeploymentRequestPoolsFixed, +export function persistImportedDeploymentRequestEnvironmentInfoTestToJSON( + persistImportedDeploymentRequestEnvironmentInfoTest: + PersistImportedDeploymentRequestEnvironmentInfoTest, ): string { return JSON.stringify( - PersistImportedDeploymentRequestPoolsFixed$outboundSchema.parse( - persistImportedDeploymentRequestPoolsFixed, + PersistImportedDeploymentRequestEnvironmentInfoTest$outboundSchema.parse( + persistImportedDeploymentRequestEnvironmentInfoTest, ), ); } /** @internal */ -export type PersistImportedDeploymentRequestPoolsUnion$Outbound = - | PersistImportedDeploymentRequestPoolsFixed$Outbound - | PersistImportedDeploymentRequestPoolsAutoscale$Outbound; +export const PersistImportedDeploymentRequestPlatformLocal$outboundSchema: + z.ZodEnum = z.enum( + PersistImportedDeploymentRequestPlatformLocal, + ); /** @internal */ -export const PersistImportedDeploymentRequestPoolsUnion$outboundSchema: +export type PersistImportedDeploymentRequestEnvironmentInfoLocal$Outbound = { + arch: string; + hostname: string; + os: string; + platform: string; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestEnvironmentInfoLocal$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestPoolsUnion$Outbound, - PersistImportedDeploymentRequestPoolsUnion - > = z.union([ - z.lazy(() => PersistImportedDeploymentRequestPoolsFixed$outboundSchema), - z.lazy(() => PersistImportedDeploymentRequestPoolsAutoscale$outboundSchema), - ]); + PersistImportedDeploymentRequestEnvironmentInfoLocal$Outbound, + PersistImportedDeploymentRequestEnvironmentInfoLocal + > = z.object({ + arch: z.string(), + hostname: z.string(), + os: z.string(), + platform: PersistImportedDeploymentRequestPlatformLocal$outboundSchema, + }); -export function persistImportedDeploymentRequestPoolsUnionToJSON( - persistImportedDeploymentRequestPoolsUnion: - PersistImportedDeploymentRequestPoolsUnion, +export function persistImportedDeploymentRequestEnvironmentInfoLocalToJSON( + persistImportedDeploymentRequestEnvironmentInfoLocal: + PersistImportedDeploymentRequestEnvironmentInfoLocal, ): string { return JSON.stringify( - PersistImportedDeploymentRequestPoolsUnion$outboundSchema.parse( - persistImportedDeploymentRequestPoolsUnion, + PersistImportedDeploymentRequestEnvironmentInfoLocal$outboundSchema.parse( + persistImportedDeploymentRequestEnvironmentInfoLocal, ), ); } /** @internal */ -export type PersistImportedDeploymentRequestCompute$Outbound = { - pools?: { - [k: string]: - | PersistImportedDeploymentRequestPoolsFixed$Outbound - | PersistImportedDeploymentRequestPoolsAutoscale$Outbound; - } | undefined; +export const PersistImportedDeploymentRequestEnvironmentInfoPlatformAzure$outboundSchema: + z.ZodEnum< + typeof PersistImportedDeploymentRequestEnvironmentInfoPlatformAzure + > = z.enum(PersistImportedDeploymentRequestEnvironmentInfoPlatformAzure); + +/** @internal */ +export type PersistImportedDeploymentRequestEnvironmentInfoAzure$Outbound = { + location: string; + subscriptionId: string; + tenantId: string; + platform: string; }; /** @internal */ -export const PersistImportedDeploymentRequestCompute$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestCompute$Outbound, - PersistImportedDeploymentRequestCompute -> = z.object({ - pools: z.record( - z.string(), - z.union([ - z.lazy(() => PersistImportedDeploymentRequestPoolsFixed$outboundSchema), - z.lazy(() => - PersistImportedDeploymentRequestPoolsAutoscale$outboundSchema - ), - ]), - ).optional(), -}); +export const PersistImportedDeploymentRequestEnvironmentInfoAzure$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestEnvironmentInfoAzure$Outbound, + PersistImportedDeploymentRequestEnvironmentInfoAzure + > = z.object({ + location: z.string(), + subscriptionId: z.string(), + tenantId: z.string(), + platform: + PersistImportedDeploymentRequestEnvironmentInfoPlatformAzure$outboundSchema, + }); + +export function persistImportedDeploymentRequestEnvironmentInfoAzureToJSON( + persistImportedDeploymentRequestEnvironmentInfoAzure: + PersistImportedDeploymentRequestEnvironmentInfoAzure, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestEnvironmentInfoAzure$outboundSchema.parse( + persistImportedDeploymentRequestEnvironmentInfoAzure, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestEnvironmentInfoPlatformGcp$outboundSchema: + z.ZodEnum = + z.enum(PersistImportedDeploymentRequestEnvironmentInfoPlatformGcp); + +/** @internal */ +export type PersistImportedDeploymentRequestEnvironmentInfoGcp$Outbound = { + projectId: string; + projectNumber: string; + region: string; + platform: string; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestEnvironmentInfoGcp$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestEnvironmentInfoGcp$Outbound, + PersistImportedDeploymentRequestEnvironmentInfoGcp + > = z.object({ + projectId: z.string(), + projectNumber: z.string(), + region: z.string(), + platform: + PersistImportedDeploymentRequestEnvironmentInfoPlatformGcp$outboundSchema, + }); + +export function persistImportedDeploymentRequestEnvironmentInfoGcpToJSON( + persistImportedDeploymentRequestEnvironmentInfoGcp: + PersistImportedDeploymentRequestEnvironmentInfoGcp, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestEnvironmentInfoGcp$outboundSchema.parse( + persistImportedDeploymentRequestEnvironmentInfoGcp, + ), + ); +} + +/** @internal */ +export const PersistImportedDeploymentRequestEnvironmentInfoPlatformAws$outboundSchema: + z.ZodEnum = + z.enum(PersistImportedDeploymentRequestEnvironmentInfoPlatformAws); + +/** @internal */ +export type PersistImportedDeploymentRequestEnvironmentInfoAws$Outbound = { + accountId: string; + region: string; + platform: string; +}; + +/** @internal */ +export const PersistImportedDeploymentRequestEnvironmentInfoAws$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestEnvironmentInfoAws$Outbound, + PersistImportedDeploymentRequestEnvironmentInfoAws + > = z.object({ + accountId: z.string(), + region: z.string(), + platform: + PersistImportedDeploymentRequestEnvironmentInfoPlatformAws$outboundSchema, + }); -export function persistImportedDeploymentRequestComputeToJSON( - persistImportedDeploymentRequestCompute: - PersistImportedDeploymentRequestCompute, +export function persistImportedDeploymentRequestEnvironmentInfoAwsToJSON( + persistImportedDeploymentRequestEnvironmentInfoAws: + PersistImportedDeploymentRequestEnvironmentInfoAws, ): string { return JSON.stringify( - PersistImportedDeploymentRequestCompute$outboundSchema.parse( - persistImportedDeploymentRequestCompute, + PersistImportedDeploymentRequestEnvironmentInfoAws$outboundSchema.parse( + persistImportedDeploymentRequestEnvironmentInfoAws, ), ); } /** @internal */ -export type PersistImportedDeploymentRequestComputeUnion$Outbound = - | PersistImportedDeploymentRequestCompute$Outbound +export type PersistImportedDeploymentRequestEnvironmentInfoUnion$Outbound = + | PersistImportedDeploymentRequestEnvironmentInfoGcp$Outbound + | PersistImportedDeploymentRequestEnvironmentInfoAzure$Outbound + | PersistImportedDeploymentRequestEnvironmentInfoLocal$Outbound + | PersistImportedDeploymentRequestEnvironmentInfoAws$Outbound + | PersistImportedDeploymentRequestEnvironmentInfoTest$Outbound | any; /** @internal */ -export const PersistImportedDeploymentRequestComputeUnion$outboundSchema: +export const PersistImportedDeploymentRequestEnvironmentInfoUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestComputeUnion$Outbound, - PersistImportedDeploymentRequestComputeUnion + PersistImportedDeploymentRequestEnvironmentInfoUnion$Outbound, + PersistImportedDeploymentRequestEnvironmentInfoUnion > = z.union([ - z.lazy(() => PersistImportedDeploymentRequestCompute$outboundSchema), + z.lazy(() => + PersistImportedDeploymentRequestEnvironmentInfoGcp$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestEnvironmentInfoAzure$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestEnvironmentInfoLocal$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestEnvironmentInfoAws$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestEnvironmentInfoTest$outboundSchema + ), z.any(), ]); -export function persistImportedDeploymentRequestComputeUnionToJSON( - persistImportedDeploymentRequestComputeUnion: - PersistImportedDeploymentRequestComputeUnion, +export function persistImportedDeploymentRequestEnvironmentInfoUnionToJSON( + persistImportedDeploymentRequestEnvironmentInfoUnion: + PersistImportedDeploymentRequestEnvironmentInfoUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestComputeUnion$outboundSchema.parse( - persistImportedDeploymentRequestComputeUnion, + PersistImportedDeploymentRequestEnvironmentInfoUnion$outboundSchema.parse( + persistImportedDeploymentRequestEnvironmentInfoUnion, ), ); } /** @internal */ -export const PersistImportedDeploymentRequestDeploymentModel$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestDeploymentModel, +export const PersistImportedDeploymentRequestInitialSetupAuthority$outboundSchema: + z.ZodEnum = z + .enum(PersistImportedDeploymentRequestInitialSetupAuthority); + +/** @internal */ +export const PersistImportedDeploymentRequestPendingPreparedStackTypeStringList$outboundSchema: + z.ZodEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackTypeStringList + > = z.enum( + PersistImportedDeploymentRequestPendingPreparedStackTypeStringList, ); /** @internal */ -export type PersistImportedDeploymentRequestAws$Outbound = { - certificateArn: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackDefaultStringList$Outbound = + { + type: string; + value: Array; + }; /** @internal */ -export const PersistImportedDeploymentRequestAws$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestAws$Outbound, - PersistImportedDeploymentRequestAws -> = z.object({ - certificateArn: z.string(), -}); +export const PersistImportedDeploymentRequestPendingPreparedStackDefaultStringList$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPendingPreparedStackDefaultStringList$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackDefaultStringList + > = z.object({ + type: + PersistImportedDeploymentRequestPendingPreparedStackTypeStringList$outboundSchema, + value: z.array(z.string()), + }); -export function persistImportedDeploymentRequestAwsToJSON( - persistImportedDeploymentRequestAws: PersistImportedDeploymentRequestAws, +export function persistImportedDeploymentRequestPendingPreparedStackDefaultStringListToJSON( + persistImportedDeploymentRequestPendingPreparedStackDefaultStringList: + PersistImportedDeploymentRequestPendingPreparedStackDefaultStringList, ): string { return JSON.stringify( - PersistImportedDeploymentRequestAws$outboundSchema.parse( - persistImportedDeploymentRequestAws, - ), + PersistImportedDeploymentRequestPendingPreparedStackDefaultStringList$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackDefaultStringList, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestAwsUnion$Outbound = - | PersistImportedDeploymentRequestAws$Outbound - | any; +export const PersistImportedDeploymentRequestPendingPreparedStackTypeBoolean$outboundSchema: + z.ZodEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackTypeBoolean + > = z.enum(PersistImportedDeploymentRequestPendingPreparedStackTypeBoolean); /** @internal */ -export const PersistImportedDeploymentRequestAwsUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestAwsUnion$Outbound, - PersistImportedDeploymentRequestAwsUnion -> = z.union([ - z.lazy(() => PersistImportedDeploymentRequestAws$outboundSchema), - z.any(), -]); +export type PersistImportedDeploymentRequestPendingPreparedStackDefaultBoolean$Outbound = + { + type: string; + value: boolean; + }; -export function persistImportedDeploymentRequestAwsUnionToJSON( - persistImportedDeploymentRequestAwsUnion: - PersistImportedDeploymentRequestAwsUnion, +/** @internal */ +export const PersistImportedDeploymentRequestPendingPreparedStackDefaultBoolean$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPendingPreparedStackDefaultBoolean$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackDefaultBoolean + > = z.object({ + type: + PersistImportedDeploymentRequestPendingPreparedStackTypeBoolean$outboundSchema, + value: z.boolean(), + }); + +export function persistImportedDeploymentRequestPendingPreparedStackDefaultBooleanToJSON( + persistImportedDeploymentRequestPendingPreparedStackDefaultBoolean: + PersistImportedDeploymentRequestPendingPreparedStackDefaultBoolean, ): string { return JSON.stringify( - PersistImportedDeploymentRequestAwsUnion$outboundSchema.parse( - persistImportedDeploymentRequestAwsUnion, - ), + PersistImportedDeploymentRequestPendingPreparedStackDefaultBoolean$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackDefaultBoolean, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestAzureStackSettings$Outbound = { - keyVaultCertificateId: string; - keyVaultResourceId?: string | null | undefined; -}; +export const PersistImportedDeploymentRequestPendingPreparedStackTypeNumber$outboundSchema: + z.ZodEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackTypeNumber + > = z.enum(PersistImportedDeploymentRequestPendingPreparedStackTypeNumber); /** @internal */ -export const PersistImportedDeploymentRequestAzureStackSettings$outboundSchema: +export type PersistImportedDeploymentRequestPendingPreparedStackDefaultNumber$Outbound = + { + type: string; + value: string; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestPendingPreparedStackDefaultNumber$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestAzureStackSettings$Outbound, - PersistImportedDeploymentRequestAzureStackSettings + PersistImportedDeploymentRequestPendingPreparedStackDefaultNumber$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackDefaultNumber > = z.object({ - keyVaultCertificateId: z.string(), - keyVaultResourceId: z.nullable(z.string()).optional(), + type: + PersistImportedDeploymentRequestPendingPreparedStackTypeNumber$outboundSchema, + value: z.string(), }); -export function persistImportedDeploymentRequestAzureStackSettingsToJSON( - persistImportedDeploymentRequestAzureStackSettings: - PersistImportedDeploymentRequestAzureStackSettings, +export function persistImportedDeploymentRequestPendingPreparedStackDefaultNumberToJSON( + persistImportedDeploymentRequestPendingPreparedStackDefaultNumber: + PersistImportedDeploymentRequestPendingPreparedStackDefaultNumber, ): string { return JSON.stringify( - PersistImportedDeploymentRequestAzureStackSettings$outboundSchema.parse( - persistImportedDeploymentRequestAzureStackSettings, - ), + PersistImportedDeploymentRequestPendingPreparedStackDefaultNumber$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackDefaultNumber), ); } /** @internal */ -export type PersistImportedDeploymentRequestAzureUnion$Outbound = - | PersistImportedDeploymentRequestAzureStackSettings$Outbound - | any; +export const PersistImportedDeploymentRequestPendingPreparedStackTypeString$outboundSchema: + z.ZodEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackTypeString + > = z.enum(PersistImportedDeploymentRequestPendingPreparedStackTypeString); /** @internal */ -export const PersistImportedDeploymentRequestAzureUnion$outboundSchema: +export type PersistImportedDeploymentRequestPendingPreparedStackDefaultString$Outbound = + { + type: string; + value: string; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestPendingPreparedStackDefaultString$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestAzureUnion$Outbound, - PersistImportedDeploymentRequestAzureUnion - > = z.union([ - z.lazy(() => - PersistImportedDeploymentRequestAzureStackSettings$outboundSchema - ), - z.any(), - ]); + PersistImportedDeploymentRequestPendingPreparedStackDefaultString$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackDefaultString + > = z.object({ + type: + PersistImportedDeploymentRequestPendingPreparedStackTypeString$outboundSchema, + value: z.string(), + }); -export function persistImportedDeploymentRequestAzureUnionToJSON( - persistImportedDeploymentRequestAzureUnion: - PersistImportedDeploymentRequestAzureUnion, +export function persistImportedDeploymentRequestPendingPreparedStackDefaultStringToJSON( + persistImportedDeploymentRequestPendingPreparedStackDefaultString: + PersistImportedDeploymentRequestPendingPreparedStackDefaultString, ): string { return JSON.stringify( - PersistImportedDeploymentRequestAzureUnion$outboundSchema.parse( - persistImportedDeploymentRequestAzureUnion, - ), + PersistImportedDeploymentRequestPendingPreparedStackDefaultString$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackDefaultString), ); } /** @internal */ -export type PersistImportedDeploymentRequestGcpStackSettings$Outbound = { - certificateName: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackDefaultUnion$Outbound = + | PersistImportedDeploymentRequestPendingPreparedStackDefaultString$Outbound + | PersistImportedDeploymentRequestPendingPreparedStackDefaultNumber$Outbound + | PersistImportedDeploymentRequestPendingPreparedStackDefaultBoolean$Outbound + | PersistImportedDeploymentRequestPendingPreparedStackDefaultStringList$Outbound + | any; /** @internal */ -export const PersistImportedDeploymentRequestGcpStackSettings$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackDefaultUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestGcpStackSettings$Outbound, - PersistImportedDeploymentRequestGcpStackSettings - > = z.object({ - certificateName: z.string(), - }); + PersistImportedDeploymentRequestPendingPreparedStackDefaultUnion$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackDefaultUnion + > = z.union([ + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackDefaultString$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackDefaultNumber$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackDefaultBoolean$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackDefaultStringList$outboundSchema + ), + z.any(), + ]); -export function persistImportedDeploymentRequestGcpStackSettingsToJSON( - persistImportedDeploymentRequestGcpStackSettings: - PersistImportedDeploymentRequestGcpStackSettings, +export function persistImportedDeploymentRequestPendingPreparedStackDefaultUnionToJSON( + persistImportedDeploymentRequestPendingPreparedStackDefaultUnion: + PersistImportedDeploymentRequestPendingPreparedStackDefaultUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestGcpStackSettings$outboundSchema.parse( - persistImportedDeploymentRequestGcpStackSettings, - ), + PersistImportedDeploymentRequestPendingPreparedStackDefaultUnion$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackDefaultUnion), ); } /** @internal */ -export type PersistImportedDeploymentRequestGcpUnion$Outbound = - | PersistImportedDeploymentRequestGcpStackSettings$Outbound +export const PersistImportedDeploymentRequestPendingPreparedStackTypeEnvEnum$outboundSchema: + z.ZodEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackTypeEnvEnum + > = z.enum(PersistImportedDeploymentRequestPendingPreparedStackTypeEnvEnum); + +/** @internal */ +export type PersistImportedDeploymentRequestPendingPreparedStackTypeUnion$Outbound = + | string | any; /** @internal */ -export const PersistImportedDeploymentRequestGcpUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestGcpUnion$Outbound, - PersistImportedDeploymentRequestGcpUnion -> = z.union([ - z.lazy(() => PersistImportedDeploymentRequestGcpStackSettings$outboundSchema), - z.any(), -]); +export const PersistImportedDeploymentRequestPendingPreparedStackTypeUnion$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPendingPreparedStackTypeUnion$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackTypeUnion + > = z.union([ + PersistImportedDeploymentRequestPendingPreparedStackTypeEnvEnum$outboundSchema, + z.any(), + ]); -export function persistImportedDeploymentRequestGcpUnionToJSON( - persistImportedDeploymentRequestGcpUnion: - PersistImportedDeploymentRequestGcpUnion, +export function persistImportedDeploymentRequestPendingPreparedStackTypeUnionToJSON( + persistImportedDeploymentRequestPendingPreparedStackTypeUnion: + PersistImportedDeploymentRequestPendingPreparedStackTypeUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestGcpUnion$outboundSchema.parse( - persistImportedDeploymentRequestGcpUnion, - ), + PersistImportedDeploymentRequestPendingPreparedStackTypeUnion$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackTypeUnion), ); } /** @internal */ -export type PersistImportedDeploymentRequestTlsSecretRef$Outbound = { - namespace?: string | null | undefined; - secretName: string; +export type PersistImportedDeploymentRequestPendingPreparedStackEnv$Outbound = { + name: string; + targetResources?: Array | null | undefined; + type?: string | any | null | undefined; }; /** @internal */ -export const PersistImportedDeploymentRequestTlsSecretRef$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackEnv$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestTlsSecretRef$Outbound, - PersistImportedDeploymentRequestTlsSecretRef + PersistImportedDeploymentRequestPendingPreparedStackEnv$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackEnv > = z.object({ - namespace: z.nullable(z.string()).optional(), - secretName: z.string(), + name: z.string(), + targetResources: z.nullable(z.array(z.string())).optional(), + type: z.nullable( + z.union([ + PersistImportedDeploymentRequestPendingPreparedStackTypeEnvEnum$outboundSchema, + z.any(), + ]), + ).optional(), }); -export function persistImportedDeploymentRequestTlsSecretRefToJSON( - persistImportedDeploymentRequestTlsSecretRef: - PersistImportedDeploymentRequestTlsSecretRef, +export function persistImportedDeploymentRequestPendingPreparedStackEnvToJSON( + persistImportedDeploymentRequestPendingPreparedStackEnv: + PersistImportedDeploymentRequestPendingPreparedStackEnv, ): string { return JSON.stringify( - PersistImportedDeploymentRequestTlsSecretRef$outboundSchema.parse( - persistImportedDeploymentRequestTlsSecretRef, - ), + PersistImportedDeploymentRequestPendingPreparedStackEnv$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackEnv), ); } /** @internal */ -export type PersistImportedDeploymentRequestDomainsKubernetes$Outbound = { - tlsSecretRef: PersistImportedDeploymentRequestTlsSecretRef$Outbound; -}; +export const PersistImportedDeploymentRequestPendingPreparedStackKind$outboundSchema: + z.ZodEnum = z + .enum(PersistImportedDeploymentRequestPendingPreparedStackKind); /** @internal */ -export const PersistImportedDeploymentRequestDomainsKubernetes$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackPlatform$outboundSchema: + z.ZodEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackPlatform + > = z.enum(PersistImportedDeploymentRequestPendingPreparedStackPlatform); + +/** @internal */ +export const PersistImportedDeploymentRequestPendingPreparedStackProvidedBy$outboundSchema: + z.ZodEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackProvidedBy + > = z.enum(PersistImportedDeploymentRequestPendingPreparedStackProvidedBy); + +/** @internal */ +export type PersistImportedDeploymentRequestPendingPreparedStackValidation$Outbound = + { + format?: string | null | undefined; + max?: string | null | undefined; + maxItems?: number | null | undefined; + maxLength?: number | null | undefined; + min?: string | null | undefined; + minItems?: number | null | undefined; + minLength?: number | null | undefined; + pattern?: string | null | undefined; + values?: Array | null | undefined; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestPendingPreparedStackValidation$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestDomainsKubernetes$Outbound, - PersistImportedDeploymentRequestDomainsKubernetes + PersistImportedDeploymentRequestPendingPreparedStackValidation$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackValidation > = z.object({ - tlsSecretRef: z.lazy(() => - PersistImportedDeploymentRequestTlsSecretRef$outboundSchema - ), + format: z.nullable(z.string()).optional(), + max: z.nullable(z.string()).optional(), + maxItems: z.nullable(z.int()).optional(), + maxLength: z.nullable(z.int()).optional(), + min: z.nullable(z.string()).optional(), + minItems: z.nullable(z.int()).optional(), + minLength: z.nullable(z.int()).optional(), + pattern: z.nullable(z.string()).optional(), + values: z.nullable(z.array(z.string())).optional(), }); -export function persistImportedDeploymentRequestDomainsKubernetesToJSON( - persistImportedDeploymentRequestDomainsKubernetes: - PersistImportedDeploymentRequestDomainsKubernetes, +export function persistImportedDeploymentRequestPendingPreparedStackValidationToJSON( + persistImportedDeploymentRequestPendingPreparedStackValidation: + PersistImportedDeploymentRequestPendingPreparedStackValidation, ): string { return JSON.stringify( - PersistImportedDeploymentRequestDomainsKubernetes$outboundSchema.parse( - persistImportedDeploymentRequestDomainsKubernetes, - ), + PersistImportedDeploymentRequestPendingPreparedStackValidation$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackValidation), ); } /** @internal */ -export type PersistImportedDeploymentRequestDomainsKubernetesUnion$Outbound = - | PersistImportedDeploymentRequestDomainsKubernetes$Outbound +export type PersistImportedDeploymentRequestPendingPreparedStackValidationUnion$Outbound = + | PersistImportedDeploymentRequestPendingPreparedStackValidation$Outbound | any; /** @internal */ -export const PersistImportedDeploymentRequestDomainsKubernetesUnion$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackValidationUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestDomainsKubernetesUnion$Outbound, - PersistImportedDeploymentRequestDomainsKubernetesUnion + PersistImportedDeploymentRequestPendingPreparedStackValidationUnion$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackValidationUnion > = z.union([ z.lazy(() => - PersistImportedDeploymentRequestDomainsKubernetes$outboundSchema + PersistImportedDeploymentRequestPendingPreparedStackValidation$outboundSchema ), z.any(), ]); -export function persistImportedDeploymentRequestDomainsKubernetesUnionToJSON( - persistImportedDeploymentRequestDomainsKubernetesUnion: - PersistImportedDeploymentRequestDomainsKubernetesUnion, +export function persistImportedDeploymentRequestPendingPreparedStackValidationUnionToJSON( + persistImportedDeploymentRequestPendingPreparedStackValidationUnion: + PersistImportedDeploymentRequestPendingPreparedStackValidationUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestDomainsKubernetesUnion$outboundSchema.parse( - persistImportedDeploymentRequestDomainsKubernetesUnion, - ), + PersistImportedDeploymentRequestPendingPreparedStackValidationUnion$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackValidationUnion, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestDomainsCertificate$Outbound = { - aws?: PersistImportedDeploymentRequestAws$Outbound | any | null | undefined; - azure?: - | PersistImportedDeploymentRequestAzureStackSettings$Outbound - | any - | null - | undefined; - gcp?: - | PersistImportedDeploymentRequestGcpStackSettings$Outbound - | any - | null - | undefined; - kubernetes?: - | PersistImportedDeploymentRequestDomainsKubernetes$Outbound - | any - | null - | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackInput$Outbound = + { + default?: + | PersistImportedDeploymentRequestPendingPreparedStackDefaultString$Outbound + | PersistImportedDeploymentRequestPendingPreparedStackDefaultNumber$Outbound + | PersistImportedDeploymentRequestPendingPreparedStackDefaultBoolean$Outbound + | PersistImportedDeploymentRequestPendingPreparedStackDefaultStringList$Outbound + | any + | null + | undefined; + description: string; + env?: + | Array + | undefined; + id: string; + kind: string; + label: string; + placeholder?: string | null | undefined; + platforms?: Array | null | undefined; + providedBy: Array; + required: boolean; + validation?: + | PersistImportedDeploymentRequestPendingPreparedStackValidation$Outbound + | any + | null + | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestDomainsCertificate$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackInput$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestDomainsCertificate$Outbound, - PersistImportedDeploymentRequestDomainsCertificate + PersistImportedDeploymentRequestPendingPreparedStackInput$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackInput > = z.object({ - aws: z.nullable( - z.union([ - z.lazy(() => PersistImportedDeploymentRequestAws$outboundSchema), - z.any(), - ]), - ).optional(), - azure: z.nullable( + default: z.nullable( z.union([ z.lazy(() => - PersistImportedDeploymentRequestAzureStackSettings$outboundSchema + PersistImportedDeploymentRequestPendingPreparedStackDefaultString$outboundSchema ), - z.any(), - ]), - ).optional(), - gcp: z.nullable( - z.union([ z.lazy(() => - PersistImportedDeploymentRequestGcpStackSettings$outboundSchema + PersistImportedDeploymentRequestPendingPreparedStackDefaultNumber$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackDefaultBoolean$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackDefaultStringList$outboundSchema ), z.any(), ]), ).optional(), - kubernetes: z.nullable( + description: z.string(), + env: z.array( + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackEnv$outboundSchema + ), + ).optional(), + id: z.string(), + kind: + PersistImportedDeploymentRequestPendingPreparedStackKind$outboundSchema, + label: z.string(), + placeholder: z.nullable(z.string()).optional(), + platforms: z.nullable( + z.array( + PersistImportedDeploymentRequestPendingPreparedStackPlatform$outboundSchema, + ), + ).optional(), + providedBy: z.array( + PersistImportedDeploymentRequestPendingPreparedStackProvidedBy$outboundSchema, + ), + required: z.boolean(), + validation: z.nullable( z.union([ z.lazy(() => - PersistImportedDeploymentRequestDomainsKubernetes$outboundSchema + PersistImportedDeploymentRequestPendingPreparedStackValidation$outboundSchema ), z.any(), ]), ).optional(), }); -export function persistImportedDeploymentRequestDomainsCertificateToJSON( - persistImportedDeploymentRequestDomainsCertificate: - PersistImportedDeploymentRequestDomainsCertificate, +export function persistImportedDeploymentRequestPendingPreparedStackInputToJSON( + persistImportedDeploymentRequestPendingPreparedStackInput: + PersistImportedDeploymentRequestPendingPreparedStackInput, ): string { return JSON.stringify( - PersistImportedDeploymentRequestDomainsCertificate$outboundSchema.parse( - persistImportedDeploymentRequestDomainsCertificate, - ), + PersistImportedDeploymentRequestPendingPreparedStackInput$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackInput), ); } /** @internal */ -export type PersistImportedDeploymentRequestCustomDomains$Outbound = { - certificate: PersistImportedDeploymentRequestDomainsCertificate$Outbound; - domain: string; -}; +export const PersistImportedDeploymentRequestPendingPreparedStackManagementEnum$outboundSchema: + z.ZodEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackManagementEnum + > = z.enum( + PersistImportedDeploymentRequestPendingPreparedStackManagementEnum, + ); /** @internal */ -export const PersistImportedDeploymentRequestCustomDomains$outboundSchema: +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideAwResource$Outbound = + { + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + resources: Array; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestPendingPreparedStackOverrideAwResource$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestCustomDomains$Outbound, - PersistImportedDeploymentRequestCustomDomains + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwResource$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwResource > = z.object({ - certificate: z.lazy(() => - PersistImportedDeploymentRequestDomainsCertificate$outboundSchema - ), - domain: z.string(), + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), }); -export function persistImportedDeploymentRequestCustomDomainsToJSON( - persistImportedDeploymentRequestCustomDomains: - PersistImportedDeploymentRequestCustomDomains, +export function persistImportedDeploymentRequestPendingPreparedStackOverrideAwResourceToJSON( + persistImportedDeploymentRequestPendingPreparedStackOverrideAwResource: + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwResource, ): string { return JSON.stringify( - PersistImportedDeploymentRequestCustomDomains$outboundSchema.parse( - persistImportedDeploymentRequestCustomDomains, - ), + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwResource$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackOverrideAwResource, + ), ); } /** @internal */ -export const PersistImportedDeploymentRequestModeLoadBalancer$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestModeLoadBalancer, +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideAwStack$Outbound = + { + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + resources: Array; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestPendingPreparedStackOverrideAwStack$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwStack$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwStack + > = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); + +export function persistImportedDeploymentRequestPendingPreparedStackOverrideAwStackToJSON( + persistImportedDeploymentRequestPendingPreparedStackOverrideAwStack: + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwStack, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwStack$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackOverrideAwStack, + ), ); +} /** @internal */ -export type PersistImportedDeploymentRequestPublicEndpointTargetLoadBalancer$Outbound = +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideAwBinding$Outbound = { - cnameTarget: string; - mode: string; + resource?: + | PersistImportedDeploymentRequestPendingPreparedStackOverrideAwResource$Outbound + | undefined; + stack?: + | PersistImportedDeploymentRequestPendingPreparedStackOverrideAwStack$Outbound + | undefined; }; /** @internal */ -export const PersistImportedDeploymentRequestPublicEndpointTargetLoadBalancer$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackOverrideAwBinding$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestPublicEndpointTargetLoadBalancer$Outbound, - PersistImportedDeploymentRequestPublicEndpointTargetLoadBalancer + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwBinding$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwBinding > = z.object({ - cnameTarget: z.string(), - mode: PersistImportedDeploymentRequestModeLoadBalancer$outboundSchema, + resource: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwResource$outboundSchema + ).optional(), + stack: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwStack$outboundSchema + ).optional(), }); -export function persistImportedDeploymentRequestPublicEndpointTargetLoadBalancerToJSON( - persistImportedDeploymentRequestPublicEndpointTargetLoadBalancer: - PersistImportedDeploymentRequestPublicEndpointTargetLoadBalancer, +export function persistImportedDeploymentRequestPendingPreparedStackOverrideAwBindingToJSON( + persistImportedDeploymentRequestPendingPreparedStackOverrideAwBinding: + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwBinding, ): string { return JSON.stringify( - PersistImportedDeploymentRequestPublicEndpointTargetLoadBalancer$outboundSchema - .parse(persistImportedDeploymentRequestPublicEndpointTargetLoadBalancer), + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwBinding$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackOverrideAwBinding, + ), ); } /** @internal */ -export const PersistImportedDeploymentRequestModeMachineAddresses$outboundSchema: - z.ZodEnum = z - .enum(PersistImportedDeploymentRequestModeMachineAddresses); +export const PersistImportedDeploymentRequestPendingPreparedStackOverrideEffect$outboundSchema: + z.ZodEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackOverrideEffect + > = z.enum( + PersistImportedDeploymentRequestPendingPreparedStackOverrideEffect, + ); /** @internal */ -export type PersistImportedDeploymentRequestPublicEndpointTargetMachineAddresses$Outbound = +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideAwGrant$Outbound = { - mode: string; + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; }; /** @internal */ -export const PersistImportedDeploymentRequestPublicEndpointTargetMachineAddresses$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackOverrideAwGrant$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestPublicEndpointTargetMachineAddresses$Outbound, - PersistImportedDeploymentRequestPublicEndpointTargetMachineAddresses + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwGrant$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwGrant > = z.object({ - mode: PersistImportedDeploymentRequestModeMachineAddresses$outboundSchema, + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function persistImportedDeploymentRequestPublicEndpointTargetMachineAddressesToJSON( - persistImportedDeploymentRequestPublicEndpointTargetMachineAddresses: - PersistImportedDeploymentRequestPublicEndpointTargetMachineAddresses, +export function persistImportedDeploymentRequestPendingPreparedStackOverrideAwGrantToJSON( + persistImportedDeploymentRequestPendingPreparedStackOverrideAwGrant: + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwGrant, ): string { return JSON.stringify( - PersistImportedDeploymentRequestPublicEndpointTargetMachineAddresses$outboundSchema + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwGrant$outboundSchema .parse( - persistImportedDeploymentRequestPublicEndpointTargetMachineAddresses, + persistImportedDeploymentRequestPendingPreparedStackOverrideAwGrant, ), ); } /** @internal */ -export type PersistImportedDeploymentRequestPublicEndpointTargetUnion$Outbound = - | PersistImportedDeploymentRequestPublicEndpointTargetLoadBalancer$Outbound - | PersistImportedDeploymentRequestPublicEndpointTargetMachineAddresses$Outbound - | any; +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideAw$Outbound = + { + binding: + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwBinding$Outbound; + description?: string | null | undefined; + effect?: string | undefined; + grant: + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwGrant$Outbound; + label?: string | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestPublicEndpointTargetUnion$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackOverrideAw$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestPublicEndpointTargetUnion$Outbound, - PersistImportedDeploymentRequestPublicEndpointTargetUnion - > = z.union([ - z.lazy(() => - PersistImportedDeploymentRequestPublicEndpointTargetLoadBalancer$outboundSchema + PersistImportedDeploymentRequestPendingPreparedStackOverrideAw$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackOverrideAw + > = z.object({ + binding: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwBinding$outboundSchema ), - z.lazy(() => - PersistImportedDeploymentRequestPublicEndpointTargetMachineAddresses$outboundSchema + description: z.nullable(z.string()).optional(), + effect: + PersistImportedDeploymentRequestPendingPreparedStackOverrideEffect$outboundSchema + .optional(), + grant: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackOverrideAwGrant$outboundSchema ), - z.any(), - ]); + label: z.nullable(z.string()).optional(), + }); -export function persistImportedDeploymentRequestPublicEndpointTargetUnionToJSON( - persistImportedDeploymentRequestPublicEndpointTargetUnion: - PersistImportedDeploymentRequestPublicEndpointTargetUnion, +export function persistImportedDeploymentRequestPendingPreparedStackOverrideAwToJSON( + persistImportedDeploymentRequestPendingPreparedStackOverrideAw: + PersistImportedDeploymentRequestPendingPreparedStackOverrideAw, ): string { return JSON.stringify( - PersistImportedDeploymentRequestPublicEndpointTargetUnion$outboundSchema - .parse(persistImportedDeploymentRequestPublicEndpointTargetUnion), + PersistImportedDeploymentRequestPendingPreparedStackOverrideAw$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackOverrideAw), ); } /** @internal */ -export type PersistImportedDeploymentRequestDomains$Outbound = { - customDomains?: - | { [k: string]: PersistImportedDeploymentRequestCustomDomains$Outbound } - | null - | undefined; - publicEndpointTarget?: - | PersistImportedDeploymentRequestPublicEndpointTargetLoadBalancer$Outbound - | PersistImportedDeploymentRequestPublicEndpointTargetMachineAddresses$Outbound - | any - | null - | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureResource$Outbound = + { + scope: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestDomains$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestDomains$Outbound, - PersistImportedDeploymentRequestDomains -> = z.object({ - customDomains: z.nullable( - z.record( - z.string(), - z.lazy(() => - PersistImportedDeploymentRequestCustomDomains$outboundSchema - ), - ), - ).optional(), - publicEndpointTarget: z.nullable( - z.union([ - z.lazy(() => - PersistImportedDeploymentRequestPublicEndpointTargetLoadBalancer$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestPublicEndpointTargetMachineAddresses$outboundSchema +export const PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureResource$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureResource$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureResource + > = z.object({ + scope: z.string(), + }); + +export function persistImportedDeploymentRequestPendingPreparedStackOverrideAzureResourceToJSON( + persistImportedDeploymentRequestPendingPreparedStackOverrideAzureResource: + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureResource, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureResource$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackOverrideAzureResource, ), - z.any(), - ]), - ).optional(), -}); + ); +} -export function persistImportedDeploymentRequestDomainsToJSON( - persistImportedDeploymentRequestDomains: - PersistImportedDeploymentRequestDomains, +/** @internal */ +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureStack$Outbound = + { + scope: string; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureStack$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureStack$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureStack + > = z.object({ + scope: z.string(), + }); + +export function persistImportedDeploymentRequestPendingPreparedStackOverrideAzureStackToJSON( + persistImportedDeploymentRequestPendingPreparedStackOverrideAzureStack: + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureStack, ): string { return JSON.stringify( - PersistImportedDeploymentRequestDomains$outboundSchema.parse( - persistImportedDeploymentRequestDomains, - ), + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureStack$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackOverrideAzureStack, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestDomainsUnion$Outbound = - | PersistImportedDeploymentRequestDomains$Outbound - | any; +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureBinding$Outbound = + { + resource?: + | PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureResource$Outbound + | undefined; + stack?: + | PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureStack$Outbound + | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestDomainsUnion$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureBinding$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestDomainsUnion$Outbound, - PersistImportedDeploymentRequestDomainsUnion - > = z.union([ - z.lazy(() => PersistImportedDeploymentRequestDomains$outboundSchema), - z.any(), - ]); + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureBinding$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureBinding + > = z.object({ + resource: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureResource$outboundSchema + ).optional(), + stack: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureStack$outboundSchema + ).optional(), + }); -export function persistImportedDeploymentRequestDomainsUnionToJSON( - persistImportedDeploymentRequestDomainsUnion: - PersistImportedDeploymentRequestDomainsUnion, +export function persistImportedDeploymentRequestPendingPreparedStackOverrideAzureBindingToJSON( + persistImportedDeploymentRequestPendingPreparedStackOverrideAzureBinding: + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureBinding, ): string { return JSON.stringify( - PersistImportedDeploymentRequestDomainsUnion$outboundSchema.parse( - persistImportedDeploymentRequestDomainsUnion, - ), + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureBinding$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackOverrideAzureBinding, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestExternalBindings$Outbound = {}; +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureGrant$Outbound = + { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestExternalBindings$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureGrant$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExternalBindings$Outbound, - PersistImportedDeploymentRequestExternalBindings - > = z.object({}); + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureGrant$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureGrant + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function persistImportedDeploymentRequestExternalBindingsToJSON( - persistImportedDeploymentRequestExternalBindings: - PersistImportedDeploymentRequestExternalBindings, +export function persistImportedDeploymentRequestPendingPreparedStackOverrideAzureGrantToJSON( + persistImportedDeploymentRequestPendingPreparedStackOverrideAzureGrant: + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureGrant, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExternalBindings$outboundSchema.parse( - persistImportedDeploymentRequestExternalBindings, - ), + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureGrant$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackOverrideAzureGrant, + ), ); } /** @internal */ -export const PersistImportedDeploymentRequestHeartbeats$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestHeartbeats, +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideAzure$Outbound = + { + binding: + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureBinding$Outbound; + description?: string | null | undefined; + grant: + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureGrant$Outbound; + label?: string | null | undefined; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestPendingPreparedStackOverrideAzure$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzure$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzure + > = z.object({ + binding: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzureGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function persistImportedDeploymentRequestPendingPreparedStackOverrideAzureToJSON( + persistImportedDeploymentRequestPendingPreparedStackOverrideAzure: + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzure, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzure$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackOverrideAzure), ); +} /** @internal */ -export type PersistImportedDeploymentRequestCloud$Outbound = { - accountId?: string | null | undefined; - clusterId?: string | null | undefined; - clusterName?: string | null | undefined; - projectId?: string | null | undefined; - region?: string | null | undefined; - resourceGroup?: string | null | undefined; - subscriptionId?: string | null | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionResource$Outbound = + { + expression: string; + title: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestCloud$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestCloud$Outbound, - PersistImportedDeploymentRequestCloud -> = z.object({ - accountId: z.nullable(z.string()).optional(), - clusterId: z.nullable(z.string()).optional(), - clusterName: z.nullable(z.string()).optional(), - projectId: z.nullable(z.string()).optional(), - region: z.nullable(z.string()).optional(), - resourceGroup: z.nullable(z.string()).optional(), - subscriptionId: z.nullable(z.string()).optional(), -}); +export const PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionResource$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionResource$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionResource + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function persistImportedDeploymentRequestCloudToJSON( - persistImportedDeploymentRequestCloud: PersistImportedDeploymentRequestCloud, +export function persistImportedDeploymentRequestPendingPreparedStackOverrideConditionResourceToJSON( + persistImportedDeploymentRequestPendingPreparedStackOverrideConditionResource: + PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionResource, ): string { return JSON.stringify( - PersistImportedDeploymentRequestCloud$outboundSchema.parse( - persistImportedDeploymentRequestCloud, - ), + PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionResource$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackOverrideConditionResource, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestCloudUnion$Outbound = - | PersistImportedDeploymentRequestCloud$Outbound +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideResourceConditionUnion$Outbound = + | PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionResource$Outbound | any; /** @internal */ -export const PersistImportedDeploymentRequestCloudUnion$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackOverrideResourceConditionUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestCloudUnion$Outbound, - PersistImportedDeploymentRequestCloudUnion + PersistImportedDeploymentRequestPendingPreparedStackOverrideResourceConditionUnion$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackOverrideResourceConditionUnion > = z.union([ - z.lazy(() => PersistImportedDeploymentRequestCloud$outboundSchema), + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionResource$outboundSchema + ), z.any(), ]); -export function persistImportedDeploymentRequestCloudUnionToJSON( - persistImportedDeploymentRequestCloudUnion: - PersistImportedDeploymentRequestCloudUnion, +export function persistImportedDeploymentRequestPendingPreparedStackOverrideResourceConditionUnionToJSON( + persistImportedDeploymentRequestPendingPreparedStackOverrideResourceConditionUnion: + PersistImportedDeploymentRequestPendingPreparedStackOverrideResourceConditionUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestCloudUnion$outboundSchema.parse( - persistImportedDeploymentRequestCloudUnion, - ), + PersistImportedDeploymentRequestPendingPreparedStackOverrideResourceConditionUnion$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackOverrideResourceConditionUnion, + ), ); } /** @internal */ -export const PersistImportedDeploymentRequestOwnership$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestOwnership, +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpResource$Outbound = + { + condition?: + | PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionResource$Outbound + | any + | null + | undefined; + scope: string; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpResource$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpResource$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpResource + > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionResource$outboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); + +export function persistImportedDeploymentRequestPendingPreparedStackOverrideGcpResourceToJSON( + persistImportedDeploymentRequestPendingPreparedStackOverrideGcpResource: + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpResource, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpResource$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackOverrideGcpResource, + ), ); +} /** @internal */ -export type PersistImportedDeploymentRequestCluster$Outbound = { - cloud?: - | PersistImportedDeploymentRequestCloud$Outbound - | any - | null - | undefined; - namespace?: string | null | undefined; - ownership: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionStack$Outbound = + { + expression: string; + title: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestCluster$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestCluster$Outbound, - PersistImportedDeploymentRequestCluster -> = z.object({ - cloud: z.nullable( - z.union([ - z.lazy(() => PersistImportedDeploymentRequestCloud$outboundSchema), - z.any(), - ]), - ).optional(), - namespace: z.nullable(z.string()).optional(), - ownership: PersistImportedDeploymentRequestOwnership$outboundSchema, -}); +export const PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionStack$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionStack$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionStack + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function persistImportedDeploymentRequestClusterToJSON( - persistImportedDeploymentRequestCluster: - PersistImportedDeploymentRequestCluster, +export function persistImportedDeploymentRequestPendingPreparedStackOverrideConditionStackToJSON( + persistImportedDeploymentRequestPendingPreparedStackOverrideConditionStack: + PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionStack, ): string { return JSON.stringify( - PersistImportedDeploymentRequestCluster$outboundSchema.parse( - persistImportedDeploymentRequestCluster, - ), + PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionStack$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackOverrideConditionStack, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestClusterUnion$Outbound = - | PersistImportedDeploymentRequestCluster$Outbound +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideStackConditionUnion$Outbound = + | PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionStack$Outbound | any; /** @internal */ -export const PersistImportedDeploymentRequestClusterUnion$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackOverrideStackConditionUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestClusterUnion$Outbound, - PersistImportedDeploymentRequestClusterUnion + PersistImportedDeploymentRequestPendingPreparedStackOverrideStackConditionUnion$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackOverrideStackConditionUnion > = z.union([ - z.lazy(() => PersistImportedDeploymentRequestCluster$outboundSchema), + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionStack$outboundSchema + ), z.any(), ]); -export function persistImportedDeploymentRequestClusterUnionToJSON( - persistImportedDeploymentRequestClusterUnion: - PersistImportedDeploymentRequestClusterUnion, +export function persistImportedDeploymentRequestPendingPreparedStackOverrideStackConditionUnionToJSON( + persistImportedDeploymentRequestPendingPreparedStackOverrideStackConditionUnion: + PersistImportedDeploymentRequestPendingPreparedStackOverrideStackConditionUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestClusterUnion$outboundSchema.parse( - persistImportedDeploymentRequestClusterUnion, - ), + PersistImportedDeploymentRequestPendingPreparedStackOverrideStackConditionUnion$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackOverrideStackConditionUnion, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestCertificateNone2$Outbound = { - mode: "none"; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpStack$Outbound = + { + condition?: + | PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionStack$Outbound + | any + | null + | undefined; + scope: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestCertificateNone2$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpStack$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestCertificateNone2$Outbound, - PersistImportedDeploymentRequestCertificateNone2 + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpStack$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpStack > = z.object({ - mode: z.literal("none"), + condition: z.nullable( + z.union([ + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackOverrideConditionStack$outboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), }); -export function persistImportedDeploymentRequestCertificateNone2ToJSON( - persistImportedDeploymentRequestCertificateNone2: - PersistImportedDeploymentRequestCertificateNone2, +export function persistImportedDeploymentRequestPendingPreparedStackOverrideGcpStackToJSON( + persistImportedDeploymentRequestPendingPreparedStackOverrideGcpStack: + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpStack, ): string { return JSON.stringify( - PersistImportedDeploymentRequestCertificateNone2$outboundSchema.parse( - persistImportedDeploymentRequestCertificateNone2, - ), + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpStack$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackOverrideGcpStack, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestCertificateManagedTLSSecret2$Outbound = +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpBinding$Outbound = { - mode: "managedTlsSecret"; - secretNameTemplate: string; + resource?: + | PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpResource$Outbound + | undefined; + stack?: + | PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpStack$Outbound + | undefined; }; /** @internal */ -export const PersistImportedDeploymentRequestCertificateManagedTLSSecret2$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpBinding$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpBinding$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpBinding + > = z.object({ + resource: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpResource$outboundSchema + ).optional(), + stack: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpStack$outboundSchema + ).optional(), + }); + +export function persistImportedDeploymentRequestPendingPreparedStackOverrideGcpBindingToJSON( + persistImportedDeploymentRequestPendingPreparedStackOverrideGcpBinding: + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpBinding, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpBinding$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackOverrideGcpBinding, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpGrant$Outbound = + { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpGrant$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestCertificateManagedTLSSecret2$Outbound, - PersistImportedDeploymentRequestCertificateManagedTLSSecret2 + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpGrant$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpGrant > = z.object({ - mode: z.literal("managedTlsSecret"), - secretNameTemplate: z.string(), + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function persistImportedDeploymentRequestCertificateManagedTLSSecret2ToJSON( - persistImportedDeploymentRequestCertificateManagedTLSSecret2: - PersistImportedDeploymentRequestCertificateManagedTLSSecret2, +export function persistImportedDeploymentRequestPendingPreparedStackOverrideGcpGrantToJSON( + persistImportedDeploymentRequestPendingPreparedStackOverrideGcpGrant: + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpGrant, ): string { return JSON.stringify( - PersistImportedDeploymentRequestCertificateManagedTLSSecret2$outboundSchema - .parse(persistImportedDeploymentRequestCertificateManagedTLSSecret2), + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpGrant$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackOverrideGcpGrant, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestCertificateAwsAcmArn2$Outbound = { - certificateArn: string; - mode: "awsAcmArn"; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideGcp$Outbound = + { + binding: + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpBinding$Outbound; + description?: string | null | undefined; + grant: + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpGrant$Outbound; + label?: string | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestCertificateAwsAcmArn2$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackOverrideGcp$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestCertificateAwsAcmArn2$Outbound, - PersistImportedDeploymentRequestCertificateAwsAcmArn2 + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcp$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcp > = z.object({ - certificateArn: z.string(), - mode: z.literal("awsAcmArn"), + binding: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcpGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), }); -export function persistImportedDeploymentRequestCertificateAwsAcmArn2ToJSON( - persistImportedDeploymentRequestCertificateAwsAcmArn2: - PersistImportedDeploymentRequestCertificateAwsAcmArn2, +export function persistImportedDeploymentRequestPendingPreparedStackOverrideGcpToJSON( + persistImportedDeploymentRequestPendingPreparedStackOverrideGcp: + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcp, ): string { return JSON.stringify( - PersistImportedDeploymentRequestCertificateAwsAcmArn2$outboundSchema.parse( - persistImportedDeploymentRequestCertificateAwsAcmArn2, - ), + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcp$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackOverrideGcp), ); } /** @internal */ -export type PersistImportedDeploymentRequestCertificateManagedAcmImport2$Outbound = +export type PersistImportedDeploymentRequestPendingPreparedStackOverridePlatforms$Outbound = { - mode: "managedAcmImport"; - region?: string | null | undefined; - tags?: { [k: string]: string } | undefined; + aws?: + | Array< + PersistImportedDeploymentRequestPendingPreparedStackOverrideAw$Outbound + > + | null + | undefined; + azure?: + | Array< + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzure$Outbound + > + | null + | undefined; + gcp?: + | Array< + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcp$Outbound + > + | null + | undefined; }; /** @internal */ -export const PersistImportedDeploymentRequestCertificateManagedAcmImport2$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackOverridePlatforms$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestCertificateManagedAcmImport2$Outbound, - PersistImportedDeploymentRequestCertificateManagedAcmImport2 + PersistImportedDeploymentRequestPendingPreparedStackOverridePlatforms$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackOverridePlatforms > = z.object({ - mode: z.literal("managedAcmImport"), - region: z.nullable(z.string()).optional(), - tags: z.record(z.string(), z.string()).optional(), + aws: z.nullable( + z.array(z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackOverrideAw$outboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackOverrideAzure$outboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackOverrideGcp$outboundSchema + )), + ).optional(), }); -export function persistImportedDeploymentRequestCertificateManagedAcmImport2ToJSON( - persistImportedDeploymentRequestCertificateManagedAcmImport2: - PersistImportedDeploymentRequestCertificateManagedAcmImport2, +export function persistImportedDeploymentRequestPendingPreparedStackOverridePlatformsToJSON( + persistImportedDeploymentRequestPendingPreparedStackOverridePlatforms: + PersistImportedDeploymentRequestPendingPreparedStackOverridePlatforms, ): string { return JSON.stringify( - PersistImportedDeploymentRequestCertificateManagedAcmImport2$outboundSchema - .parse(persistImportedDeploymentRequestCertificateManagedAcmImport2), + PersistImportedDeploymentRequestPendingPreparedStackOverridePlatforms$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackOverridePlatforms, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestCertificateTLSSecretRef2$Outbound = +export type PersistImportedDeploymentRequestPendingPreparedStackOverride$Outbound = { - namespace?: string | null | undefined; - secretName: string; - mode: "tlsSecretRef"; + description: string; + id: string; + platforms: + PersistImportedDeploymentRequestPendingPreparedStackOverridePlatforms$Outbound; }; /** @internal */ -export const PersistImportedDeploymentRequestCertificateTLSSecretRef2$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackOverride$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestCertificateTLSSecretRef2$Outbound, - PersistImportedDeploymentRequestCertificateTLSSecretRef2 + PersistImportedDeploymentRequestPendingPreparedStackOverride$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackOverride > = z.object({ - namespace: z.nullable(z.string()).optional(), - secretName: z.string(), - mode: z.literal("tlsSecretRef"), + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackOverridePlatforms$outboundSchema + ), }); -export function persistImportedDeploymentRequestCertificateTLSSecretRef2ToJSON( - persistImportedDeploymentRequestCertificateTLSSecretRef2: - PersistImportedDeploymentRequestCertificateTLSSecretRef2, +export function persistImportedDeploymentRequestPendingPreparedStackOverrideToJSON( + persistImportedDeploymentRequestPendingPreparedStackOverride: + PersistImportedDeploymentRequestPendingPreparedStackOverride, ): string { return JSON.stringify( - PersistImportedDeploymentRequestCertificateTLSSecretRef2$outboundSchema - .parse(persistImportedDeploymentRequestCertificateTLSSecretRef2), + PersistImportedDeploymentRequestPendingPreparedStackOverride$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackOverride), ); } /** @internal */ -export type PersistImportedDeploymentRequestCertificateUnion2$Outbound = - | PersistImportedDeploymentRequestCertificateTLSSecretRef2$Outbound - | PersistImportedDeploymentRequestCertificateManagedAcmImport2$Outbound - | PersistImportedDeploymentRequestCertificateAwsAcmArn2$Outbound - | PersistImportedDeploymentRequestCertificateManagedTLSSecret2$Outbound - | PersistImportedDeploymentRequestCertificateNone2$Outbound; +export type PersistImportedDeploymentRequestPendingPreparedStackOverrideUnion$Outbound = + | PersistImportedDeploymentRequestPendingPreparedStackOverride$Outbound + | string; /** @internal */ -export const PersistImportedDeploymentRequestCertificateUnion2$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackOverrideUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestCertificateUnion2$Outbound, - PersistImportedDeploymentRequestCertificateUnion2 + PersistImportedDeploymentRequestPendingPreparedStackOverrideUnion$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackOverrideUnion > = z.union([ z.lazy(() => - PersistImportedDeploymentRequestCertificateTLSSecretRef2$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestCertificateManagedAcmImport2$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestCertificateAwsAcmArn2$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestCertificateManagedTLSSecret2$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestCertificateNone2$outboundSchema + PersistImportedDeploymentRequestPendingPreparedStackOverride$outboundSchema ), + z.string(), ]); -export function persistImportedDeploymentRequestCertificateUnion2ToJSON( - persistImportedDeploymentRequestCertificateUnion2: - PersistImportedDeploymentRequestCertificateUnion2, +export function persistImportedDeploymentRequestPendingPreparedStackOverrideUnionToJSON( + persistImportedDeploymentRequestPendingPreparedStackOverrideUnion: + PersistImportedDeploymentRequestPendingPreparedStackOverrideUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestCertificateUnion2$outboundSchema.parse( - persistImportedDeploymentRequestCertificateUnion2, - ), + PersistImportedDeploymentRequestPendingPreparedStackOverrideUnion$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackOverrideUnion), ); } /** @internal */ -export const PersistImportedDeploymentRequestModeCustom$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestModeCustom, - ); +export type PersistImportedDeploymentRequestPendingPreparedStackManagement2$Outbound = + { + override: { + [k: string]: Array< + | PersistImportedDeploymentRequestPendingPreparedStackOverride$Outbound + | string + >; + }; + }; /** @internal */ -export const PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum4$outboundSchema: - z.ZodEnum< - typeof PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum4 - > = z.enum( - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum4, +export const PersistImportedDeploymentRequestPendingPreparedStackManagement2$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPendingPreparedStackManagement2$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackManagement2 + > = z.object({ + override: z.record( + z.string(), + z.array(z.union([ + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackOverride$outboundSchema + ), + z.string(), + ])), + ), + }); + +export function persistImportedDeploymentRequestPendingPreparedStackManagement2ToJSON( + persistImportedDeploymentRequestPendingPreparedStackManagement2: + PersistImportedDeploymentRequestPendingPreparedStackManagement2, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestPendingPreparedStackManagement2$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackManagement2), ); +} /** @internal */ -export type PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4$Outbound = +export type PersistImportedDeploymentRequestPendingPreparedStackExtendAwResource$Outbound = { - albName?: string | null | undefined; - albNamespace?: string | null | undefined; - frontend: string; - provider: string; + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + resources: Array; }; /** @internal */ -export const PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackExtendAwResource$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4$Outbound, - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4 + PersistImportedDeploymentRequestPendingPreparedStackExtendAwResource$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackExtendAwResource > = z.object({ - albName: z.nullable(z.string()).optional(), - albNamespace: z.nullable(z.string()).optional(), - frontend: z.string(), - provider: - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum4$outboundSchema, + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), }); -export function persistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4ToJSON( - persistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4: - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4, +export function persistImportedDeploymentRequestPendingPreparedStackExtendAwResourceToJSON( + persistImportedDeploymentRequestPendingPreparedStackExtendAwResource: + PersistImportedDeploymentRequestPendingPreparedStackExtendAwResource, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4$outboundSchema + PersistImportedDeploymentRequestPendingPreparedStackExtendAwResource$outboundSchema .parse( - persistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4, + persistImportedDeploymentRequestPendingPreparedStackExtendAwResource, ), ); } /** @internal */ -export const PersistImportedDeploymentRequestProviderGkeGatewayEnum4$outboundSchema: - z.ZodEnum = z - .enum(PersistImportedDeploymentRequestProviderGkeGatewayEnum4); - -/** @internal */ -export type PersistImportedDeploymentRequestProviderGkeGateway4$Outbound = { - provider: string; - staticAddressName?: string | null | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendAwStack$Outbound = + { + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + resources: Array; + }; /** @internal */ -export const PersistImportedDeploymentRequestProviderGkeGateway4$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackExtendAwStack$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProviderGkeGateway4$Outbound, - PersistImportedDeploymentRequestProviderGkeGateway4 + PersistImportedDeploymentRequestPendingPreparedStackExtendAwStack$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackExtendAwStack > = z.object({ - provider: - PersistImportedDeploymentRequestProviderGkeGatewayEnum4$outboundSchema, - staticAddressName: z.nullable(z.string()).optional(), + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), }); -export function persistImportedDeploymentRequestProviderGkeGateway4ToJSON( - persistImportedDeploymentRequestProviderGkeGateway4: - PersistImportedDeploymentRequestProviderGkeGateway4, +export function persistImportedDeploymentRequestPendingPreparedStackExtendAwStackToJSON( + persistImportedDeploymentRequestPendingPreparedStackExtendAwStack: + PersistImportedDeploymentRequestPendingPreparedStackExtendAwStack, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProviderGkeGateway4$outboundSchema.parse( - persistImportedDeploymentRequestProviderGkeGateway4, - ), + PersistImportedDeploymentRequestPendingPreparedStackExtendAwStack$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackExtendAwStack), ); } /** @internal */ -export const PersistImportedDeploymentRequestProviderAwsAlbEnum4$outboundSchema: - z.ZodEnum = z - .enum(PersistImportedDeploymentRequestProviderAwsAlbEnum4); - -/** @internal */ -export type PersistImportedDeploymentRequestProviderAwsAlb4$Outbound = { - ipAddressType?: string | null | undefined; - provider: string; - scheme: string; - subnetIds?: Array | undefined; - targetType: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendAwBinding$Outbound = + { + resource?: + | PersistImportedDeploymentRequestPendingPreparedStackExtendAwResource$Outbound + | undefined; + stack?: + | PersistImportedDeploymentRequestPendingPreparedStackExtendAwStack$Outbound + | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestProviderAwsAlb4$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackExtendAwBinding$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProviderAwsAlb4$Outbound, - PersistImportedDeploymentRequestProviderAwsAlb4 + PersistImportedDeploymentRequestPendingPreparedStackExtendAwBinding$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackExtendAwBinding > = z.object({ - ipAddressType: z.nullable(z.string()).optional(), - provider: - PersistImportedDeploymentRequestProviderAwsAlbEnum4$outboundSchema, - scheme: z.string(), - subnetIds: z.array(z.string()).optional(), - targetType: z.string(), + resource: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackExtendAwResource$outboundSchema + ).optional(), + stack: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackExtendAwStack$outboundSchema + ).optional(), }); -export function persistImportedDeploymentRequestProviderAwsAlb4ToJSON( - persistImportedDeploymentRequestProviderAwsAlb4: - PersistImportedDeploymentRequestProviderAwsAlb4, +export function persistImportedDeploymentRequestPendingPreparedStackExtendAwBindingToJSON( + persistImportedDeploymentRequestPendingPreparedStackExtendAwBinding: + PersistImportedDeploymentRequestPendingPreparedStackExtendAwBinding, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProviderAwsAlb4$outboundSchema.parse( - persistImportedDeploymentRequestProviderAwsAlb4, - ), + PersistImportedDeploymentRequestPendingPreparedStackExtendAwBinding$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackExtendAwBinding, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestProviderUnion4$Outbound = - | PersistImportedDeploymentRequestProviderAwsAlb4$Outbound - | PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4$Outbound - | PersistImportedDeploymentRequestProviderGkeGateway4$Outbound - | any; +export const PersistImportedDeploymentRequestPendingPreparedStackExtendEffect$outboundSchema: + z.ZodEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackExtendEffect + > = z.enum(PersistImportedDeploymentRequestPendingPreparedStackExtendEffect); /** @internal */ -export const PersistImportedDeploymentRequestProviderUnion4$outboundSchema: +export type PersistImportedDeploymentRequestPendingPreparedStackExtendAwGrant$Outbound = + { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestPendingPreparedStackExtendAwGrant$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProviderUnion4$Outbound, - PersistImportedDeploymentRequestProviderUnion4 - > = z.union([ - z.lazy(() => - PersistImportedDeploymentRequestProviderAwsAlb4$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestProviderGkeGateway4$outboundSchema - ), - z.any(), - ]); + PersistImportedDeploymentRequestPendingPreparedStackExtendAwGrant$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackExtendAwGrant + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function persistImportedDeploymentRequestProviderUnion4ToJSON( - persistImportedDeploymentRequestProviderUnion4: - PersistImportedDeploymentRequestProviderUnion4, +export function persistImportedDeploymentRequestPendingPreparedStackExtendAwGrantToJSON( + persistImportedDeploymentRequestPendingPreparedStackExtendAwGrant: + PersistImportedDeploymentRequestPendingPreparedStackExtendAwGrant, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProviderUnion4$outboundSchema.parse( - persistImportedDeploymentRequestProviderUnion4, - ), + PersistImportedDeploymentRequestPendingPreparedStackExtendAwGrant$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackExtendAwGrant), ); } /** @internal */ -export type PersistImportedDeploymentRequestRouteGateway2$Outbound = { - annotations?: { [k: string]: string } | undefined; - controller?: string | null | undefined; - gatewayClassName: string; - labels?: { [k: string]: string } | undefined; - listenerPort: number; - provider?: - | PersistImportedDeploymentRequestProviderAwsAlb4$Outbound - | PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4$Outbound - | PersistImportedDeploymentRequestProviderGkeGateway4$Outbound - | any - | null - | undefined; - routeApi: "gateway"; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendAw$Outbound = + { + binding: + PersistImportedDeploymentRequestPendingPreparedStackExtendAwBinding$Outbound; + description?: string | null | undefined; + effect?: string | undefined; + grant: + PersistImportedDeploymentRequestPendingPreparedStackExtendAwGrant$Outbound; + label?: string | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestRouteGateway2$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackExtendAw$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestRouteGateway2$Outbound, - PersistImportedDeploymentRequestRouteGateway2 + PersistImportedDeploymentRequestPendingPreparedStackExtendAw$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackExtendAw > = z.object({ - annotations: z.record(z.string(), z.string()).optional(), - controller: z.nullable(z.string()).optional(), - gatewayClassName: z.string(), - labels: z.record(z.string(), z.string()).optional(), - listenerPort: z.int(), - provider: z.nullable( - z.union([ - z.lazy(() => - PersistImportedDeploymentRequestProviderAwsAlb4$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers4$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestProviderGkeGateway4$outboundSchema - ), - z.any(), - ]), - ).optional(), - routeApi: z.literal("gateway"), + binding: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackExtendAwBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: + PersistImportedDeploymentRequestPendingPreparedStackExtendEffect$outboundSchema + .optional(), + grant: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackExtendAwGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), }); -export function persistImportedDeploymentRequestRouteGateway2ToJSON( - persistImportedDeploymentRequestRouteGateway2: - PersistImportedDeploymentRequestRouteGateway2, +export function persistImportedDeploymentRequestPendingPreparedStackExtendAwToJSON( + persistImportedDeploymentRequestPendingPreparedStackExtendAw: + PersistImportedDeploymentRequestPendingPreparedStackExtendAw, ): string { return JSON.stringify( - PersistImportedDeploymentRequestRouteGateway2$outboundSchema.parse( - persistImportedDeploymentRequestRouteGateway2, - ), + PersistImportedDeploymentRequestPendingPreparedStackExtendAw$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackExtendAw), ); } /** @internal */ -export const PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum3$outboundSchema: - z.ZodEnum< - typeof PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum3 - > = z.enum( - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum3, +export type PersistImportedDeploymentRequestPendingPreparedStackExtendAzureResource$Outbound = + { + scope: string; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestPendingPreparedStackExtendAzureResource$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureResource$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureResource + > = z.object({ + scope: z.string(), + }); + +export function persistImportedDeploymentRequestPendingPreparedStackExtendAzureResourceToJSON( + persistImportedDeploymentRequestPendingPreparedStackExtendAzureResource: + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureResource, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureResource$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackExtendAzureResource, + ), ); +} /** @internal */ -export type PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3$Outbound = +export type PersistImportedDeploymentRequestPendingPreparedStackExtendAzureStack$Outbound = { - albName?: string | null | undefined; - albNamespace?: string | null | undefined; - frontend: string; - provider: string; + scope: string; }; /** @internal */ -export const PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackExtendAzureStack$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3$Outbound, - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3 + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureStack$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureStack > = z.object({ - albName: z.nullable(z.string()).optional(), - albNamespace: z.nullable(z.string()).optional(), - frontend: z.string(), - provider: - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum3$outboundSchema, + scope: z.string(), }); -export function persistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3ToJSON( - persistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3: - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3, +export function persistImportedDeploymentRequestPendingPreparedStackExtendAzureStackToJSON( + persistImportedDeploymentRequestPendingPreparedStackExtendAzureStack: + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureStack, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3$outboundSchema + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureStack$outboundSchema .parse( - persistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3, + persistImportedDeploymentRequestPendingPreparedStackExtendAzureStack, ), ); } /** @internal */ -export const PersistImportedDeploymentRequestProviderGkeGatewayEnum3$outboundSchema: - z.ZodEnum = z - .enum(PersistImportedDeploymentRequestProviderGkeGatewayEnum3); - -/** @internal */ -export type PersistImportedDeploymentRequestProviderGkeGateway3$Outbound = { - provider: string; - staticAddressName?: string | null | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendAzureBinding$Outbound = + { + resource?: + | PersistImportedDeploymentRequestPendingPreparedStackExtendAzureResource$Outbound + | undefined; + stack?: + | PersistImportedDeploymentRequestPendingPreparedStackExtendAzureStack$Outbound + | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestProviderGkeGateway3$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackExtendAzureBinding$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProviderGkeGateway3$Outbound, - PersistImportedDeploymentRequestProviderGkeGateway3 + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureBinding$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureBinding > = z.object({ - provider: - PersistImportedDeploymentRequestProviderGkeGatewayEnum3$outboundSchema, - staticAddressName: z.nullable(z.string()).optional(), + resource: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureResource$outboundSchema + ).optional(), + stack: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureStack$outboundSchema + ).optional(), }); -export function persistImportedDeploymentRequestProviderGkeGateway3ToJSON( - persistImportedDeploymentRequestProviderGkeGateway3: - PersistImportedDeploymentRequestProviderGkeGateway3, +export function persistImportedDeploymentRequestPendingPreparedStackExtendAzureBindingToJSON( + persistImportedDeploymentRequestPendingPreparedStackExtendAzureBinding: + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureBinding, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProviderGkeGateway3$outboundSchema.parse( - persistImportedDeploymentRequestProviderGkeGateway3, - ), + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureBinding$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackExtendAzureBinding, + ), ); } /** @internal */ -export const PersistImportedDeploymentRequestProviderAwsAlbEnum3$outboundSchema: - z.ZodEnum = z - .enum(PersistImportedDeploymentRequestProviderAwsAlbEnum3); - -/** @internal */ -export type PersistImportedDeploymentRequestProviderAwsAlb3$Outbound = { - ipAddressType?: string | null | undefined; - provider: string; - scheme: string; - subnetIds?: Array | undefined; - targetType: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendAzureGrant$Outbound = + { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestProviderAwsAlb3$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackExtendAzureGrant$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProviderAwsAlb3$Outbound, - PersistImportedDeploymentRequestProviderAwsAlb3 + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureGrant$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureGrant > = z.object({ - ipAddressType: z.nullable(z.string()).optional(), - provider: - PersistImportedDeploymentRequestProviderAwsAlbEnum3$outboundSchema, - scheme: z.string(), - subnetIds: z.array(z.string()).optional(), - targetType: z.string(), + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function persistImportedDeploymentRequestProviderAwsAlb3ToJSON( - persistImportedDeploymentRequestProviderAwsAlb3: - PersistImportedDeploymentRequestProviderAwsAlb3, +export function persistImportedDeploymentRequestPendingPreparedStackExtendAzureGrantToJSON( + persistImportedDeploymentRequestPendingPreparedStackExtendAzureGrant: + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureGrant, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProviderAwsAlb3$outboundSchema.parse( - persistImportedDeploymentRequestProviderAwsAlb3, - ), + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureGrant$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackExtendAzureGrant, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestProviderUnion3$Outbound = - | PersistImportedDeploymentRequestProviderAwsAlb3$Outbound - | PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3$Outbound - | PersistImportedDeploymentRequestProviderGkeGateway3$Outbound - | any; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendAzure$Outbound = + { + binding: + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureBinding$Outbound; + description?: string | null | undefined; + grant: + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureGrant$Outbound; + label?: string | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestProviderUnion3$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackExtendAzure$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProviderUnion3$Outbound, - PersistImportedDeploymentRequestProviderUnion3 - > = z.union([ - z.lazy(() => - PersistImportedDeploymentRequestProviderAwsAlb3$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3$outboundSchema + PersistImportedDeploymentRequestPendingPreparedStackExtendAzure$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackExtendAzure + > = z.object({ + binding: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureBinding$outboundSchema ), - z.lazy(() => - PersistImportedDeploymentRequestProviderGkeGateway3$outboundSchema + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackExtendAzureGrant$outboundSchema ), - z.any(), - ]); + label: z.nullable(z.string()).optional(), + }); -export function persistImportedDeploymentRequestProviderUnion3ToJSON( - persistImportedDeploymentRequestProviderUnion3: - PersistImportedDeploymentRequestProviderUnion3, +export function persistImportedDeploymentRequestPendingPreparedStackExtendAzureToJSON( + persistImportedDeploymentRequestPendingPreparedStackExtendAzure: + PersistImportedDeploymentRequestPendingPreparedStackExtendAzure, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProviderUnion3$outboundSchema.parse( - persistImportedDeploymentRequestProviderUnion3, - ), + PersistImportedDeploymentRequestPendingPreparedStackExtendAzure$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackExtendAzure), ); } /** @internal */ -export type PersistImportedDeploymentRequestRouteIngress2$Outbound = { - annotations?: { [k: string]: string } | undefined; - controller?: string | null | undefined; - ingressClassName: string; - labels?: { [k: string]: string } | undefined; - provider?: - | PersistImportedDeploymentRequestProviderAwsAlb3$Outbound - | PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3$Outbound - | PersistImportedDeploymentRequestProviderGkeGateway3$Outbound - | any - | null - | undefined; - routeApi: "ingress"; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendConditionResource$Outbound = + { + expression: string; + title: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestRouteIngress2$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackExtendConditionResource$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestRouteIngress2$Outbound, - PersistImportedDeploymentRequestRouteIngress2 + PersistImportedDeploymentRequestPendingPreparedStackExtendConditionResource$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackExtendConditionResource > = z.object({ - annotations: z.record(z.string(), z.string()).optional(), - controller: z.nullable(z.string()).optional(), - ingressClassName: z.string(), - labels: z.record(z.string(), z.string()).optional(), - provider: z.nullable( - z.union([ - z.lazy(() => - PersistImportedDeploymentRequestProviderAwsAlb3$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers3$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestProviderGkeGateway3$outboundSchema - ), - z.any(), - ]), - ).optional(), - routeApi: z.literal("ingress"), + expression: z.string(), + title: z.string(), }); -export function persistImportedDeploymentRequestRouteIngress2ToJSON( - persistImportedDeploymentRequestRouteIngress2: - PersistImportedDeploymentRequestRouteIngress2, +export function persistImportedDeploymentRequestPendingPreparedStackExtendConditionResourceToJSON( + persistImportedDeploymentRequestPendingPreparedStackExtendConditionResource: + PersistImportedDeploymentRequestPendingPreparedStackExtendConditionResource, ): string { return JSON.stringify( - PersistImportedDeploymentRequestRouteIngress2$outboundSchema.parse( - persistImportedDeploymentRequestRouteIngress2, - ), + PersistImportedDeploymentRequestPendingPreparedStackExtendConditionResource$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackExtendConditionResource, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestRouteUnion2$Outbound = - | PersistImportedDeploymentRequestRouteIngress2$Outbound - | PersistImportedDeploymentRequestRouteGateway2$Outbound; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendResourceConditionUnion$Outbound = + | PersistImportedDeploymentRequestPendingPreparedStackExtendConditionResource$Outbound + | any; /** @internal */ -export const PersistImportedDeploymentRequestRouteUnion2$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackExtendResourceConditionUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestRouteUnion2$Outbound, - PersistImportedDeploymentRequestRouteUnion2 + PersistImportedDeploymentRequestPendingPreparedStackExtendResourceConditionUnion$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackExtendResourceConditionUnion > = z.union([ - z.lazy(() => PersistImportedDeploymentRequestRouteIngress2$outboundSchema), - z.lazy(() => PersistImportedDeploymentRequestRouteGateway2$outboundSchema), + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackExtendConditionResource$outboundSchema + ), + z.any(), ]); -export function persistImportedDeploymentRequestRouteUnion2ToJSON( - persistImportedDeploymentRequestRouteUnion2: - PersistImportedDeploymentRequestRouteUnion2, +export function persistImportedDeploymentRequestPendingPreparedStackExtendResourceConditionUnionToJSON( + persistImportedDeploymentRequestPendingPreparedStackExtendResourceConditionUnion: + PersistImportedDeploymentRequestPendingPreparedStackExtendResourceConditionUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestRouteUnion2$outboundSchema.parse( - persistImportedDeploymentRequestRouteUnion2, - ), + PersistImportedDeploymentRequestPendingPreparedStackExtendResourceConditionUnion$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackExtendResourceConditionUnion, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestExposureCustom$Outbound = { - certificate: - | PersistImportedDeploymentRequestCertificateTLSSecretRef2$Outbound - | PersistImportedDeploymentRequestCertificateManagedAcmImport2$Outbound - | PersistImportedDeploymentRequestCertificateAwsAcmArn2$Outbound - | PersistImportedDeploymentRequestCertificateManagedTLSSecret2$Outbound - | PersistImportedDeploymentRequestCertificateNone2$Outbound; - domain: string; - mode: string; - route: - | PersistImportedDeploymentRequestRouteIngress2$Outbound - | PersistImportedDeploymentRequestRouteGateway2$Outbound; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendGcpResource$Outbound = + { + condition?: + | PersistImportedDeploymentRequestPendingPreparedStackExtendConditionResource$Outbound + | any + | null + | undefined; + scope: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestExposureCustom$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackExtendGcpResource$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExposureCustom$Outbound, - PersistImportedDeploymentRequestExposureCustom + PersistImportedDeploymentRequestPendingPreparedStackExtendGcpResource$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackExtendGcpResource > = z.object({ - certificate: z.union([ - z.lazy(() => - PersistImportedDeploymentRequestCertificateTLSSecretRef2$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestCertificateManagedAcmImport2$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestCertificateAwsAcmArn2$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestCertificateManagedTLSSecret2$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestCertificateNone2$outboundSchema - ), - ]), - domain: z.string(), - mode: PersistImportedDeploymentRequestModeCustom$outboundSchema, - route: z.union([ - z.lazy(() => - PersistImportedDeploymentRequestRouteIngress2$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestRouteGateway2$outboundSchema - ), - ]), + condition: z.nullable( + z.union([ + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackExtendConditionResource$outboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), }); -export function persistImportedDeploymentRequestExposureCustomToJSON( - persistImportedDeploymentRequestExposureCustom: - PersistImportedDeploymentRequestExposureCustom, +export function persistImportedDeploymentRequestPendingPreparedStackExtendGcpResourceToJSON( + persistImportedDeploymentRequestPendingPreparedStackExtendGcpResource: + PersistImportedDeploymentRequestPendingPreparedStackExtendGcpResource, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExposureCustom$outboundSchema.parse( - persistImportedDeploymentRequestExposureCustom, - ), + PersistImportedDeploymentRequestPendingPreparedStackExtendGcpResource$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackExtendGcpResource, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestCertificateNone1$Outbound = { - mode: "none"; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendConditionStack$Outbound = + { + expression: string; + title: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestCertificateNone1$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackExtendConditionStack$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestCertificateNone1$Outbound, - PersistImportedDeploymentRequestCertificateNone1 + PersistImportedDeploymentRequestPendingPreparedStackExtendConditionStack$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackExtendConditionStack > = z.object({ - mode: z.literal("none"), + expression: z.string(), + title: z.string(), }); -export function persistImportedDeploymentRequestCertificateNone1ToJSON( - persistImportedDeploymentRequestCertificateNone1: - PersistImportedDeploymentRequestCertificateNone1, +export function persistImportedDeploymentRequestPendingPreparedStackExtendConditionStackToJSON( + persistImportedDeploymentRequestPendingPreparedStackExtendConditionStack: + PersistImportedDeploymentRequestPendingPreparedStackExtendConditionStack, ): string { return JSON.stringify( - PersistImportedDeploymentRequestCertificateNone1$outboundSchema.parse( - persistImportedDeploymentRequestCertificateNone1, - ), + PersistImportedDeploymentRequestPendingPreparedStackExtendConditionStack$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackExtendConditionStack, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestCertificateManagedTLSSecret1$Outbound = - { - mode: "managedTlsSecret"; - secretNameTemplate: string; - }; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendStackConditionUnion$Outbound = + | PersistImportedDeploymentRequestPendingPreparedStackExtendConditionStack$Outbound + | any; /** @internal */ -export const PersistImportedDeploymentRequestCertificateManagedTLSSecret1$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackExtendStackConditionUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestCertificateManagedTLSSecret1$Outbound, - PersistImportedDeploymentRequestCertificateManagedTLSSecret1 - > = z.object({ - mode: z.literal("managedTlsSecret"), - secretNameTemplate: z.string(), - }); + PersistImportedDeploymentRequestPendingPreparedStackExtendStackConditionUnion$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackExtendStackConditionUnion + > = z.union([ + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackExtendConditionStack$outboundSchema + ), + z.any(), + ]); -export function persistImportedDeploymentRequestCertificateManagedTLSSecret1ToJSON( - persistImportedDeploymentRequestCertificateManagedTLSSecret1: - PersistImportedDeploymentRequestCertificateManagedTLSSecret1, +export function persistImportedDeploymentRequestPendingPreparedStackExtendStackConditionUnionToJSON( + persistImportedDeploymentRequestPendingPreparedStackExtendStackConditionUnion: + PersistImportedDeploymentRequestPendingPreparedStackExtendStackConditionUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestCertificateManagedTLSSecret1$outboundSchema - .parse(persistImportedDeploymentRequestCertificateManagedTLSSecret1), + PersistImportedDeploymentRequestPendingPreparedStackExtendStackConditionUnion$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackExtendStackConditionUnion, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestCertificateAwsAcmArn1$Outbound = { - certificateArn: string; - mode: "awsAcmArn"; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendGcpStack$Outbound = + { + condition?: + | PersistImportedDeploymentRequestPendingPreparedStackExtendConditionStack$Outbound + | any + | null + | undefined; + scope: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestCertificateAwsAcmArn1$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackExtendGcpStack$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestCertificateAwsAcmArn1$Outbound, - PersistImportedDeploymentRequestCertificateAwsAcmArn1 + PersistImportedDeploymentRequestPendingPreparedStackExtendGcpStack$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackExtendGcpStack > = z.object({ - certificateArn: z.string(), - mode: z.literal("awsAcmArn"), + condition: z.nullable( + z.union([ + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackExtendConditionStack$outboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), }); -export function persistImportedDeploymentRequestCertificateAwsAcmArn1ToJSON( - persistImportedDeploymentRequestCertificateAwsAcmArn1: - PersistImportedDeploymentRequestCertificateAwsAcmArn1, +export function persistImportedDeploymentRequestPendingPreparedStackExtendGcpStackToJSON( + persistImportedDeploymentRequestPendingPreparedStackExtendGcpStack: + PersistImportedDeploymentRequestPendingPreparedStackExtendGcpStack, ): string { return JSON.stringify( - PersistImportedDeploymentRequestCertificateAwsAcmArn1$outboundSchema.parse( - persistImportedDeploymentRequestCertificateAwsAcmArn1, - ), + PersistImportedDeploymentRequestPendingPreparedStackExtendGcpStack$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackExtendGcpStack, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestCertificateManagedAcmImport1$Outbound = +export type PersistImportedDeploymentRequestPendingPreparedStackExtendGcpBinding$Outbound = { - mode: "managedAcmImport"; - region?: string | null | undefined; - tags?: { [k: string]: string } | undefined; + resource?: + | PersistImportedDeploymentRequestPendingPreparedStackExtendGcpResource$Outbound + | undefined; + stack?: + | PersistImportedDeploymentRequestPendingPreparedStackExtendGcpStack$Outbound + | undefined; }; /** @internal */ -export const PersistImportedDeploymentRequestCertificateManagedAcmImport1$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackExtendGcpBinding$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestCertificateManagedAcmImport1$Outbound, - PersistImportedDeploymentRequestCertificateManagedAcmImport1 + PersistImportedDeploymentRequestPendingPreparedStackExtendGcpBinding$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackExtendGcpBinding > = z.object({ - mode: z.literal("managedAcmImport"), - region: z.nullable(z.string()).optional(), - tags: z.record(z.string(), z.string()).optional(), + resource: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackExtendGcpResource$outboundSchema + ).optional(), + stack: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackExtendGcpStack$outboundSchema + ).optional(), }); -export function persistImportedDeploymentRequestCertificateManagedAcmImport1ToJSON( - persistImportedDeploymentRequestCertificateManagedAcmImport1: - PersistImportedDeploymentRequestCertificateManagedAcmImport1, +export function persistImportedDeploymentRequestPendingPreparedStackExtendGcpBindingToJSON( + persistImportedDeploymentRequestPendingPreparedStackExtendGcpBinding: + PersistImportedDeploymentRequestPendingPreparedStackExtendGcpBinding, ): string { return JSON.stringify( - PersistImportedDeploymentRequestCertificateManagedAcmImport1$outboundSchema - .parse(persistImportedDeploymentRequestCertificateManagedAcmImport1), + PersistImportedDeploymentRequestPendingPreparedStackExtendGcpBinding$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackExtendGcpBinding, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestCertificateTLSSecretRef1$Outbound = +export type PersistImportedDeploymentRequestPendingPreparedStackExtendGcpGrant$Outbound = { - namespace?: string | null | undefined; - secretName: string; - mode: "tlsSecretRef"; + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; }; /** @internal */ -export const PersistImportedDeploymentRequestCertificateTLSSecretRef1$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackExtendGcpGrant$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestCertificateTLSSecretRef1$Outbound, - PersistImportedDeploymentRequestCertificateTLSSecretRef1 + PersistImportedDeploymentRequestPendingPreparedStackExtendGcpGrant$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackExtendGcpGrant > = z.object({ - namespace: z.nullable(z.string()).optional(), - secretName: z.string(), - mode: z.literal("tlsSecretRef"), + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function persistImportedDeploymentRequestCertificateTLSSecretRef1ToJSON( - persistImportedDeploymentRequestCertificateTLSSecretRef1: - PersistImportedDeploymentRequestCertificateTLSSecretRef1, +export function persistImportedDeploymentRequestPendingPreparedStackExtendGcpGrantToJSON( + persistImportedDeploymentRequestPendingPreparedStackExtendGcpGrant: + PersistImportedDeploymentRequestPendingPreparedStackExtendGcpGrant, ): string { return JSON.stringify( - PersistImportedDeploymentRequestCertificateTLSSecretRef1$outboundSchema - .parse(persistImportedDeploymentRequestCertificateTLSSecretRef1), + PersistImportedDeploymentRequestPendingPreparedStackExtendGcpGrant$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackExtendGcpGrant, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestCertificateUnion1$Outbound = - | PersistImportedDeploymentRequestCertificateTLSSecretRef1$Outbound - | PersistImportedDeploymentRequestCertificateManagedAcmImport1$Outbound - | PersistImportedDeploymentRequestCertificateAwsAcmArn1$Outbound - | PersistImportedDeploymentRequestCertificateManagedTLSSecret1$Outbound - | PersistImportedDeploymentRequestCertificateNone1$Outbound; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendGcp$Outbound = + { + binding: + PersistImportedDeploymentRequestPendingPreparedStackExtendGcpBinding$Outbound; + description?: string | null | undefined; + grant: + PersistImportedDeploymentRequestPendingPreparedStackExtendGcpGrant$Outbound; + label?: string | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestCertificateUnion1$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackExtendGcp$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestCertificateUnion1$Outbound, - PersistImportedDeploymentRequestCertificateUnion1 - > = z.union([ - z.lazy(() => - PersistImportedDeploymentRequestCertificateTLSSecretRef1$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestCertificateManagedAcmImport1$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestCertificateAwsAcmArn1$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestCertificateManagedTLSSecret1$outboundSchema + PersistImportedDeploymentRequestPendingPreparedStackExtendGcp$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackExtendGcp + > = z.object({ + binding: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackExtendGcpBinding$outboundSchema ), - z.lazy(() => - PersistImportedDeploymentRequestCertificateNone1$outboundSchema + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackExtendGcpGrant$outboundSchema ), - ]); + label: z.nullable(z.string()).optional(), + }); -export function persistImportedDeploymentRequestCertificateUnion1ToJSON( - persistImportedDeploymentRequestCertificateUnion1: - PersistImportedDeploymentRequestCertificateUnion1, +export function persistImportedDeploymentRequestPendingPreparedStackExtendGcpToJSON( + persistImportedDeploymentRequestPendingPreparedStackExtendGcp: + PersistImportedDeploymentRequestPendingPreparedStackExtendGcp, ): string { return JSON.stringify( - PersistImportedDeploymentRequestCertificateUnion1$outboundSchema.parse( - persistImportedDeploymentRequestCertificateUnion1, - ), + PersistImportedDeploymentRequestPendingPreparedStackExtendGcp$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackExtendGcp), ); } /** @internal */ -export const PersistImportedDeploymentRequestModeGenerated$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestModeGenerated, - ); +export type PersistImportedDeploymentRequestPendingPreparedStackExtendPlatforms$Outbound = + { + aws?: + | Array< + PersistImportedDeploymentRequestPendingPreparedStackExtendAw$Outbound + > + | null + | undefined; + azure?: + | Array< + PersistImportedDeploymentRequestPendingPreparedStackExtendAzure$Outbound + > + | null + | undefined; + gcp?: + | Array< + PersistImportedDeploymentRequestPendingPreparedStackExtendGcp$Outbound + > + | null + | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum2$outboundSchema: - z.ZodEnum< - typeof PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum2 - > = z.enum( - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum2, +export const PersistImportedDeploymentRequestPendingPreparedStackExtendPlatforms$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPendingPreparedStackExtendPlatforms$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackExtendPlatforms + > = z.object({ + aws: z.nullable( + z.array(z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackExtendAw$outboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackExtendAzure$outboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackExtendGcp$outboundSchema + )), + ).optional(), + }); + +export function persistImportedDeploymentRequestPendingPreparedStackExtendPlatformsToJSON( + persistImportedDeploymentRequestPendingPreparedStackExtendPlatforms: + PersistImportedDeploymentRequestPendingPreparedStackExtendPlatforms, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestPendingPreparedStackExtendPlatforms$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackExtendPlatforms, + ), ); +} /** @internal */ -export type PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2$Outbound = +export type PersistImportedDeploymentRequestPendingPreparedStackExtend$Outbound = { - albName?: string | null | undefined; - albNamespace?: string | null | undefined; - frontend: string; - provider: string; + description: string; + id: string; + platforms: + PersistImportedDeploymentRequestPendingPreparedStackExtendPlatforms$Outbound; }; /** @internal */ -export const PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackExtend$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2$Outbound, - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2 + PersistImportedDeploymentRequestPendingPreparedStackExtend$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackExtend > = z.object({ - albName: z.nullable(z.string()).optional(), - albNamespace: z.nullable(z.string()).optional(), - frontend: z.string(), - provider: - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum2$outboundSchema, + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackExtendPlatforms$outboundSchema + ), }); -export function persistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2ToJSON( - persistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2: - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2, +export function persistImportedDeploymentRequestPendingPreparedStackExtendToJSON( + persistImportedDeploymentRequestPendingPreparedStackExtend: + PersistImportedDeploymentRequestPendingPreparedStackExtend, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2$outboundSchema - .parse( - persistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2, - ), + PersistImportedDeploymentRequestPendingPreparedStackExtend$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackExtend), ); } /** @internal */ -export const PersistImportedDeploymentRequestProviderGkeGatewayEnum2$outboundSchema: - z.ZodEnum = z - .enum(PersistImportedDeploymentRequestProviderGkeGatewayEnum2); - -/** @internal */ -export type PersistImportedDeploymentRequestProviderGkeGateway2$Outbound = { - provider: string; - staticAddressName?: string | null | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackExtendUnion$Outbound = + | PersistImportedDeploymentRequestPendingPreparedStackExtend$Outbound + | string; /** @internal */ -export const PersistImportedDeploymentRequestProviderGkeGateway2$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackExtendUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProviderGkeGateway2$Outbound, - PersistImportedDeploymentRequestProviderGkeGateway2 - > = z.object({ - provider: - PersistImportedDeploymentRequestProviderGkeGatewayEnum2$outboundSchema, - staticAddressName: z.nullable(z.string()).optional(), - }); + PersistImportedDeploymentRequestPendingPreparedStackExtendUnion$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackExtendUnion + > = z.union([ + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackExtend$outboundSchema + ), + z.string(), + ]); -export function persistImportedDeploymentRequestProviderGkeGateway2ToJSON( - persistImportedDeploymentRequestProviderGkeGateway2: - PersistImportedDeploymentRequestProviderGkeGateway2, +export function persistImportedDeploymentRequestPendingPreparedStackExtendUnionToJSON( + persistImportedDeploymentRequestPendingPreparedStackExtendUnion: + PersistImportedDeploymentRequestPendingPreparedStackExtendUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProviderGkeGateway2$outboundSchema.parse( - persistImportedDeploymentRequestProviderGkeGateway2, - ), + PersistImportedDeploymentRequestPendingPreparedStackExtendUnion$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackExtendUnion), ); } /** @internal */ -export const PersistImportedDeploymentRequestProviderAwsAlbEnum2$outboundSchema: - z.ZodEnum = z - .enum(PersistImportedDeploymentRequestProviderAwsAlbEnum2); - -/** @internal */ -export type PersistImportedDeploymentRequestProviderAwsAlb2$Outbound = { - ipAddressType?: string | null | undefined; - provider: string; - scheme: string; - subnetIds?: Array | undefined; - targetType: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackManagement1$Outbound = + { + extend: { + [k: string]: Array< + | PersistImportedDeploymentRequestPendingPreparedStackExtend$Outbound + | string + >; + }; + }; /** @internal */ -export const PersistImportedDeploymentRequestProviderAwsAlb2$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackManagement1$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProviderAwsAlb2$Outbound, - PersistImportedDeploymentRequestProviderAwsAlb2 + PersistImportedDeploymentRequestPendingPreparedStackManagement1$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackManagement1 > = z.object({ - ipAddressType: z.nullable(z.string()).optional(), - provider: - PersistImportedDeploymentRequestProviderAwsAlbEnum2$outboundSchema, - scheme: z.string(), - subnetIds: z.array(z.string()).optional(), - targetType: z.string(), + extend: z.record( + z.string(), + z.array(z.union([ + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackExtend$outboundSchema + ), + z.string(), + ])), + ), }); -export function persistImportedDeploymentRequestProviderAwsAlb2ToJSON( - persistImportedDeploymentRequestProviderAwsAlb2: - PersistImportedDeploymentRequestProviderAwsAlb2, +export function persistImportedDeploymentRequestPendingPreparedStackManagement1ToJSON( + persistImportedDeploymentRequestPendingPreparedStackManagement1: + PersistImportedDeploymentRequestPendingPreparedStackManagement1, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProviderAwsAlb2$outboundSchema.parse( - persistImportedDeploymentRequestProviderAwsAlb2, - ), + PersistImportedDeploymentRequestPendingPreparedStackManagement1$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackManagement1), ); } /** @internal */ -export type PersistImportedDeploymentRequestProviderUnion2$Outbound = - | PersistImportedDeploymentRequestProviderAwsAlb2$Outbound - | PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2$Outbound - | PersistImportedDeploymentRequestProviderGkeGateway2$Outbound - | any; +export type PersistImportedDeploymentRequestPendingPreparedStackManagementUnion$Outbound = + | PersistImportedDeploymentRequestPendingPreparedStackManagement1$Outbound + | PersistImportedDeploymentRequestPendingPreparedStackManagement2$Outbound + | string; /** @internal */ -export const PersistImportedDeploymentRequestProviderUnion2$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackManagementUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProviderUnion2$Outbound, - PersistImportedDeploymentRequestProviderUnion2 + PersistImportedDeploymentRequestPendingPreparedStackManagementUnion$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackManagementUnion > = z.union([ z.lazy(() => - PersistImportedDeploymentRequestProviderAwsAlb2$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2$outboundSchema + PersistImportedDeploymentRequestPendingPreparedStackManagement1$outboundSchema ), z.lazy(() => - PersistImportedDeploymentRequestProviderGkeGateway2$outboundSchema + PersistImportedDeploymentRequestPendingPreparedStackManagement2$outboundSchema ), - z.any(), + PersistImportedDeploymentRequestPendingPreparedStackManagementEnum$outboundSchema, ]); -export function persistImportedDeploymentRequestProviderUnion2ToJSON( - persistImportedDeploymentRequestProviderUnion2: - PersistImportedDeploymentRequestProviderUnion2, +export function persistImportedDeploymentRequestPendingPreparedStackManagementUnionToJSON( + persistImportedDeploymentRequestPendingPreparedStackManagementUnion: + PersistImportedDeploymentRequestPendingPreparedStackManagementUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProviderUnion2$outboundSchema.parse( - persistImportedDeploymentRequestProviderUnion2, - ), + PersistImportedDeploymentRequestPendingPreparedStackManagementUnion$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackManagementUnion, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestRouteGateway1$Outbound = { - annotations?: { [k: string]: string } | undefined; - controller?: string | null | undefined; - gatewayClassName: string; - labels?: { [k: string]: string } | undefined; - listenerPort: number; - provider?: - | PersistImportedDeploymentRequestProviderAwsAlb2$Outbound - | PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2$Outbound - | PersistImportedDeploymentRequestProviderGkeGateway2$Outbound - | any - | null - | undefined; - routeApi: "gateway"; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileAwResource$Outbound = + { + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + resources: Array; + }; /** @internal */ -export const PersistImportedDeploymentRequestRouteGateway1$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackProfileAwResource$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestRouteGateway1$Outbound, - PersistImportedDeploymentRequestRouteGateway1 + PersistImportedDeploymentRequestPendingPreparedStackProfileAwResource$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackProfileAwResource > = z.object({ - annotations: z.record(z.string(), z.string()).optional(), - controller: z.nullable(z.string()).optional(), - gatewayClassName: z.string(), - labels: z.record(z.string(), z.string()).optional(), - listenerPort: z.int(), - provider: z.nullable( - z.union([ - z.lazy(() => - PersistImportedDeploymentRequestProviderAwsAlb2$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers2$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestProviderGkeGateway2$outboundSchema - ), - z.any(), - ]), + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), ).optional(), - routeApi: z.literal("gateway"), + resources: z.array(z.string()), }); -export function persistImportedDeploymentRequestRouteGateway1ToJSON( - persistImportedDeploymentRequestRouteGateway1: - PersistImportedDeploymentRequestRouteGateway1, +export function persistImportedDeploymentRequestPendingPreparedStackProfileAwResourceToJSON( + persistImportedDeploymentRequestPendingPreparedStackProfileAwResource: + PersistImportedDeploymentRequestPendingPreparedStackProfileAwResource, ): string { return JSON.stringify( - PersistImportedDeploymentRequestRouteGateway1$outboundSchema.parse( - persistImportedDeploymentRequestRouteGateway1, - ), + PersistImportedDeploymentRequestPendingPreparedStackProfileAwResource$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackProfileAwResource, + ), ); } /** @internal */ -export const PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum1$outboundSchema: - z.ZodEnum< - typeof PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum1 - > = z.enum( - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum1, +export type PersistImportedDeploymentRequestPendingPreparedStackProfileAwStack$Outbound = + { + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + resources: Array; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestPendingPreparedStackProfileAwStack$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPendingPreparedStackProfileAwStack$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackProfileAwStack + > = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); + +export function persistImportedDeploymentRequestPendingPreparedStackProfileAwStackToJSON( + persistImportedDeploymentRequestPendingPreparedStackProfileAwStack: + PersistImportedDeploymentRequestPendingPreparedStackProfileAwStack, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestPendingPreparedStackProfileAwStack$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackProfileAwStack, + ), ); +} /** @internal */ -export type PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1$Outbound = +export type PersistImportedDeploymentRequestPendingPreparedStackProfileAwBinding$Outbound = { - albName?: string | null | undefined; - albNamespace?: string | null | undefined; - frontend: string; - provider: string; + resource?: + | PersistImportedDeploymentRequestPendingPreparedStackProfileAwResource$Outbound + | undefined; + stack?: + | PersistImportedDeploymentRequestPendingPreparedStackProfileAwStack$Outbound + | undefined; }; /** @internal */ -export const PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackProfileAwBinding$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1$Outbound, - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1 + PersistImportedDeploymentRequestPendingPreparedStackProfileAwBinding$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackProfileAwBinding > = z.object({ - albName: z.nullable(z.string()).optional(), - albNamespace: z.nullable(z.string()).optional(), - frontend: z.string(), - provider: - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainersEnum1$outboundSchema, + resource: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackProfileAwResource$outboundSchema + ).optional(), + stack: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackProfileAwStack$outboundSchema + ).optional(), }); -export function persistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1ToJSON( - persistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1: - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1, +export function persistImportedDeploymentRequestPendingPreparedStackProfileAwBindingToJSON( + persistImportedDeploymentRequestPendingPreparedStackProfileAwBinding: + PersistImportedDeploymentRequestPendingPreparedStackProfileAwBinding, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1$outboundSchema + PersistImportedDeploymentRequestPendingPreparedStackProfileAwBinding$outboundSchema .parse( - persistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1, + persistImportedDeploymentRequestPendingPreparedStackProfileAwBinding, ), ); } /** @internal */ -export const PersistImportedDeploymentRequestProviderGkeGatewayEnum1$outboundSchema: - z.ZodEnum = z - .enum(PersistImportedDeploymentRequestProviderGkeGatewayEnum1); +export const PersistImportedDeploymentRequestPendingPreparedStackProfileEffect$outboundSchema: + z.ZodEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackProfileEffect + > = z.enum(PersistImportedDeploymentRequestPendingPreparedStackProfileEffect); /** @internal */ -export type PersistImportedDeploymentRequestProviderGkeGateway1$Outbound = { - provider: string; - staticAddressName?: string | null | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileAwGrant$Outbound = + { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestProviderGkeGateway1$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackProfileAwGrant$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProviderGkeGateway1$Outbound, - PersistImportedDeploymentRequestProviderGkeGateway1 + PersistImportedDeploymentRequestPendingPreparedStackProfileAwGrant$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackProfileAwGrant > = z.object({ - provider: - PersistImportedDeploymentRequestProviderGkeGatewayEnum1$outboundSchema, - staticAddressName: z.nullable(z.string()).optional(), + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function persistImportedDeploymentRequestProviderGkeGateway1ToJSON( - persistImportedDeploymentRequestProviderGkeGateway1: - PersistImportedDeploymentRequestProviderGkeGateway1, +export function persistImportedDeploymentRequestPendingPreparedStackProfileAwGrantToJSON( + persistImportedDeploymentRequestPendingPreparedStackProfileAwGrant: + PersistImportedDeploymentRequestPendingPreparedStackProfileAwGrant, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProviderGkeGateway1$outboundSchema.parse( - persistImportedDeploymentRequestProviderGkeGateway1, - ), + PersistImportedDeploymentRequestPendingPreparedStackProfileAwGrant$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackProfileAwGrant, + ), ); } /** @internal */ -export const PersistImportedDeploymentRequestProviderAwsAlbEnum1$outboundSchema: - z.ZodEnum = z - .enum(PersistImportedDeploymentRequestProviderAwsAlbEnum1); +export type PersistImportedDeploymentRequestPendingPreparedStackProfileAw$Outbound = + { + binding: + PersistImportedDeploymentRequestPendingPreparedStackProfileAwBinding$Outbound; + description?: string | null | undefined; + effect?: string | undefined; + grant: + PersistImportedDeploymentRequestPendingPreparedStackProfileAwGrant$Outbound; + label?: string | null | undefined; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestPendingPreparedStackProfileAw$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPendingPreparedStackProfileAw$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackProfileAw + > = z.object({ + binding: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackProfileAwBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: + PersistImportedDeploymentRequestPendingPreparedStackProfileEffect$outboundSchema + .optional(), + grant: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackProfileAwGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function persistImportedDeploymentRequestPendingPreparedStackProfileAwToJSON( + persistImportedDeploymentRequestPendingPreparedStackProfileAw: + PersistImportedDeploymentRequestPendingPreparedStackProfileAw, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestPendingPreparedStackProfileAw$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackProfileAw), + ); +} /** @internal */ -export type PersistImportedDeploymentRequestProviderAwsAlb1$Outbound = { - ipAddressType?: string | null | undefined; - provider: string; - scheme: string; - subnetIds?: Array | undefined; - targetType: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileAzureResource$Outbound = + { + scope: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestProviderAwsAlb1$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackProfileAzureResource$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProviderAwsAlb1$Outbound, - PersistImportedDeploymentRequestProviderAwsAlb1 + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureResource$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureResource > = z.object({ - ipAddressType: z.nullable(z.string()).optional(), - provider: - PersistImportedDeploymentRequestProviderAwsAlbEnum1$outboundSchema, - scheme: z.string(), - subnetIds: z.array(z.string()).optional(), - targetType: z.string(), + scope: z.string(), }); -export function persistImportedDeploymentRequestProviderAwsAlb1ToJSON( - persistImportedDeploymentRequestProviderAwsAlb1: - PersistImportedDeploymentRequestProviderAwsAlb1, +export function persistImportedDeploymentRequestPendingPreparedStackProfileAzureResourceToJSON( + persistImportedDeploymentRequestPendingPreparedStackProfileAzureResource: + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureResource, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProviderAwsAlb1$outboundSchema.parse( - persistImportedDeploymentRequestProviderAwsAlb1, - ), + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureResource$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackProfileAzureResource, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestProviderUnion1$Outbound = - | PersistImportedDeploymentRequestProviderAwsAlb1$Outbound - | PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1$Outbound - | PersistImportedDeploymentRequestProviderGkeGateway1$Outbound - | any; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileAzureStack$Outbound = + { + scope: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestProviderUnion1$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackProfileAzureStack$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProviderUnion1$Outbound, - PersistImportedDeploymentRequestProviderUnion1 - > = z.union([ - z.lazy(() => - PersistImportedDeploymentRequestProviderAwsAlb1$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestProviderGkeGateway1$outboundSchema - ), - z.any(), - ]); + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureStack$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureStack + > = z.object({ + scope: z.string(), + }); -export function persistImportedDeploymentRequestProviderUnion1ToJSON( - persistImportedDeploymentRequestProviderUnion1: - PersistImportedDeploymentRequestProviderUnion1, +export function persistImportedDeploymentRequestPendingPreparedStackProfileAzureStackToJSON( + persistImportedDeploymentRequestPendingPreparedStackProfileAzureStack: + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureStack, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProviderUnion1$outboundSchema.parse( - persistImportedDeploymentRequestProviderUnion1, - ), + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureStack$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackProfileAzureStack, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestRouteIngress1$Outbound = { - annotations?: { [k: string]: string } | undefined; - controller?: string | null | undefined; - ingressClassName: string; - labels?: { [k: string]: string } | undefined; - provider?: - | PersistImportedDeploymentRequestProviderAwsAlb1$Outbound - | PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1$Outbound - | PersistImportedDeploymentRequestProviderGkeGateway1$Outbound - | any - | null - | undefined; - routeApi: "ingress"; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileAzureBinding$Outbound = + { + resource?: + | PersistImportedDeploymentRequestPendingPreparedStackProfileAzureResource$Outbound + | undefined; + stack?: + | PersistImportedDeploymentRequestPendingPreparedStackProfileAzureStack$Outbound + | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestRouteIngress1$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackProfileAzureBinding$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestRouteIngress1$Outbound, - PersistImportedDeploymentRequestRouteIngress1 + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureBinding$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureBinding > = z.object({ - annotations: z.record(z.string(), z.string()).optional(), - controller: z.nullable(z.string()).optional(), - ingressClassName: z.string(), - labels: z.record(z.string(), z.string()).optional(), - provider: z.nullable( - z.union([ - z.lazy(() => - PersistImportedDeploymentRequestProviderAwsAlb1$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestProviderAzureApplicationGatewayForContainers1$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestProviderGkeGateway1$outboundSchema - ), - z.any(), - ]), + resource: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureResource$outboundSchema + ).optional(), + stack: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureStack$outboundSchema ).optional(), - routeApi: z.literal("ingress"), }); -export function persistImportedDeploymentRequestRouteIngress1ToJSON( - persistImportedDeploymentRequestRouteIngress1: - PersistImportedDeploymentRequestRouteIngress1, +export function persistImportedDeploymentRequestPendingPreparedStackProfileAzureBindingToJSON( + persistImportedDeploymentRequestPendingPreparedStackProfileAzureBinding: + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureBinding, ): string { return JSON.stringify( - PersistImportedDeploymentRequestRouteIngress1$outboundSchema.parse( - persistImportedDeploymentRequestRouteIngress1, - ), + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureBinding$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackProfileAzureBinding, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestRouteUnion1$Outbound = - | PersistImportedDeploymentRequestRouteIngress1$Outbound - | PersistImportedDeploymentRequestRouteGateway1$Outbound; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileAzureGrant$Outbound = + { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestRouteUnion1$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackProfileAzureGrant$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestRouteUnion1$Outbound, - PersistImportedDeploymentRequestRouteUnion1 - > = z.union([ - z.lazy(() => PersistImportedDeploymentRequestRouteIngress1$outboundSchema), - z.lazy(() => PersistImportedDeploymentRequestRouteGateway1$outboundSchema), - ]); + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureGrant$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureGrant + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function persistImportedDeploymentRequestRouteUnion1ToJSON( - persistImportedDeploymentRequestRouteUnion1: - PersistImportedDeploymentRequestRouteUnion1, +export function persistImportedDeploymentRequestPendingPreparedStackProfileAzureGrantToJSON( + persistImportedDeploymentRequestPendingPreparedStackProfileAzureGrant: + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureGrant, ): string { return JSON.stringify( - PersistImportedDeploymentRequestRouteUnion1$outboundSchema.parse( - persistImportedDeploymentRequestRouteUnion1, - ), + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureGrant$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackProfileAzureGrant, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestExposureGenerated$Outbound = { - certificate: - | PersistImportedDeploymentRequestCertificateTLSSecretRef1$Outbound - | PersistImportedDeploymentRequestCertificateManagedAcmImport1$Outbound - | PersistImportedDeploymentRequestCertificateAwsAcmArn1$Outbound - | PersistImportedDeploymentRequestCertificateManagedTLSSecret1$Outbound - | PersistImportedDeploymentRequestCertificateNone1$Outbound; - mode: string; - route: - | PersistImportedDeploymentRequestRouteIngress1$Outbound - | PersistImportedDeploymentRequestRouteGateway1$Outbound; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileAzure$Outbound = + { + binding: + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureBinding$Outbound; + description?: string | null | undefined; + grant: + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureGrant$Outbound; + label?: string | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestExposureGenerated$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackProfileAzure$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExposureGenerated$Outbound, - PersistImportedDeploymentRequestExposureGenerated + PersistImportedDeploymentRequestPendingPreparedStackProfileAzure$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackProfileAzure > = z.object({ - certificate: z.union([ - z.lazy(() => - PersistImportedDeploymentRequestCertificateTLSSecretRef1$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestCertificateManagedAcmImport1$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestCertificateAwsAcmArn1$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestCertificateManagedTLSSecret1$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestCertificateNone1$outboundSchema - ), - ]), - mode: PersistImportedDeploymentRequestModeGenerated$outboundSchema, - route: z.union([ - z.lazy(() => - PersistImportedDeploymentRequestRouteIngress1$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestRouteGateway1$outboundSchema - ), - ]), + binding: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackProfileAzureGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), }); -export function persistImportedDeploymentRequestExposureGeneratedToJSON( - persistImportedDeploymentRequestExposureGenerated: - PersistImportedDeploymentRequestExposureGenerated, +export function persistImportedDeploymentRequestPendingPreparedStackProfileAzureToJSON( + persistImportedDeploymentRequestPendingPreparedStackProfileAzure: + PersistImportedDeploymentRequestPendingPreparedStackProfileAzure, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExposureGenerated$outboundSchema.parse( - persistImportedDeploymentRequestExposureGenerated, - ), + PersistImportedDeploymentRequestPendingPreparedStackProfileAzure$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackProfileAzure), ); } /** @internal */ -export const PersistImportedDeploymentRequestModeDisabled$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestModeDisabled, - ); - -/** @internal */ -export type PersistImportedDeploymentRequestExposureDisabled$Outbound = { - mode: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileConditionResource$Outbound = + { + expression: string; + title: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestExposureDisabled$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackProfileConditionResource$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExposureDisabled$Outbound, - PersistImportedDeploymentRequestExposureDisabled + PersistImportedDeploymentRequestPendingPreparedStackProfileConditionResource$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackProfileConditionResource > = z.object({ - mode: PersistImportedDeploymentRequestModeDisabled$outboundSchema, + expression: z.string(), + title: z.string(), }); -export function persistImportedDeploymentRequestExposureDisabledToJSON( - persistImportedDeploymentRequestExposureDisabled: - PersistImportedDeploymentRequestExposureDisabled, +export function persistImportedDeploymentRequestPendingPreparedStackProfileConditionResourceToJSON( + persistImportedDeploymentRequestPendingPreparedStackProfileConditionResource: + PersistImportedDeploymentRequestPendingPreparedStackProfileConditionResource, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExposureDisabled$outboundSchema.parse( - persistImportedDeploymentRequestExposureDisabled, - ), + PersistImportedDeploymentRequestPendingPreparedStackProfileConditionResource$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackProfileConditionResource, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestExposureUnion$Outbound = - | PersistImportedDeploymentRequestExposureCustom$Outbound - | PersistImportedDeploymentRequestExposureGenerated$Outbound - | PersistImportedDeploymentRequestExposureDisabled$Outbound +export type PersistImportedDeploymentRequestPendingPreparedStackProfileResourceConditionUnion$Outbound = + | PersistImportedDeploymentRequestPendingPreparedStackProfileConditionResource$Outbound | any; /** @internal */ -export const PersistImportedDeploymentRequestExposureUnion$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackProfileResourceConditionUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExposureUnion$Outbound, - PersistImportedDeploymentRequestExposureUnion + PersistImportedDeploymentRequestPendingPreparedStackProfileResourceConditionUnion$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackProfileResourceConditionUnion > = z.union([ - z.lazy(() => PersistImportedDeploymentRequestExposureCustom$outboundSchema), - z.lazy(() => - PersistImportedDeploymentRequestExposureGenerated$outboundSchema - ), z.lazy(() => - PersistImportedDeploymentRequestExposureDisabled$outboundSchema + PersistImportedDeploymentRequestPendingPreparedStackProfileConditionResource$outboundSchema ), z.any(), ]); -export function persistImportedDeploymentRequestExposureUnionToJSON( - persistImportedDeploymentRequestExposureUnion: - PersistImportedDeploymentRequestExposureUnion, +export function persistImportedDeploymentRequestPendingPreparedStackProfileResourceConditionUnionToJSON( + persistImportedDeploymentRequestPendingPreparedStackProfileResourceConditionUnion: + PersistImportedDeploymentRequestPendingPreparedStackProfileResourceConditionUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExposureUnion$outboundSchema.parse( - persistImportedDeploymentRequestExposureUnion, - ), + PersistImportedDeploymentRequestPendingPreparedStackProfileResourceConditionUnion$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackProfileResourceConditionUnion, + ), ); } -/** @internal */ -export type PersistImportedDeploymentRequestKubernetes$Outbound = { - cluster?: - | PersistImportedDeploymentRequestCluster$Outbound - | any - | null - | undefined; - exposure?: - | PersistImportedDeploymentRequestExposureCustom$Outbound - | PersistImportedDeploymentRequestExposureGenerated$Outbound - | PersistImportedDeploymentRequestExposureDisabled$Outbound - | any - | null - | undefined; -}; +/** @internal */ +export type PersistImportedDeploymentRequestPendingPreparedStackProfileGcpResource$Outbound = + { + condition?: + | PersistImportedDeploymentRequestPendingPreparedStackProfileConditionResource$Outbound + | any + | null + | undefined; + scope: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestKubernetes$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackProfileGcpResource$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestKubernetes$Outbound, - PersistImportedDeploymentRequestKubernetes + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpResource$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpResource > = z.object({ - cluster: z.nullable( - z.union([ - z.lazy(() => PersistImportedDeploymentRequestCluster$outboundSchema), - z.any(), - ]), - ).optional(), - exposure: z.nullable( + condition: z.nullable( z.union([ z.lazy(() => - PersistImportedDeploymentRequestExposureCustom$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestExposureGenerated$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestExposureDisabled$outboundSchema + PersistImportedDeploymentRequestPendingPreparedStackProfileConditionResource$outboundSchema ), z.any(), ]), ).optional(), + scope: z.string(), }); -export function persistImportedDeploymentRequestKubernetesToJSON( - persistImportedDeploymentRequestKubernetes: - PersistImportedDeploymentRequestKubernetes, +export function persistImportedDeploymentRequestPendingPreparedStackProfileGcpResourceToJSON( + persistImportedDeploymentRequestPendingPreparedStackProfileGcpResource: + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpResource, ): string { return JSON.stringify( - PersistImportedDeploymentRequestKubernetes$outboundSchema.parse( - persistImportedDeploymentRequestKubernetes, - ), + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpResource$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackProfileGcpResource, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestKubernetesUnion$Outbound = - | PersistImportedDeploymentRequestKubernetes$Outbound +export type PersistImportedDeploymentRequestPendingPreparedStackProfileConditionStack$Outbound = + { + expression: string; + title: string; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestPendingPreparedStackProfileConditionStack$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPendingPreparedStackProfileConditionStack$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackProfileConditionStack + > = z.object({ + expression: z.string(), + title: z.string(), + }); + +export function persistImportedDeploymentRequestPendingPreparedStackProfileConditionStackToJSON( + persistImportedDeploymentRequestPendingPreparedStackProfileConditionStack: + PersistImportedDeploymentRequestPendingPreparedStackProfileConditionStack, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestPendingPreparedStackProfileConditionStack$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackProfileConditionStack, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestPendingPreparedStackProfileStackConditionUnion$Outbound = + | PersistImportedDeploymentRequestPendingPreparedStackProfileConditionStack$Outbound | any; /** @internal */ -export const PersistImportedDeploymentRequestKubernetesUnion$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackProfileStackConditionUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestKubernetesUnion$Outbound, - PersistImportedDeploymentRequestKubernetesUnion + PersistImportedDeploymentRequestPendingPreparedStackProfileStackConditionUnion$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackProfileStackConditionUnion > = z.union([ - z.lazy(() => PersistImportedDeploymentRequestKubernetes$outboundSchema), + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackProfileConditionStack$outboundSchema + ), z.any(), ]); -export function persistImportedDeploymentRequestKubernetesUnionToJSON( - persistImportedDeploymentRequestKubernetesUnion: - PersistImportedDeploymentRequestKubernetesUnion, +export function persistImportedDeploymentRequestPendingPreparedStackProfileStackConditionUnionToJSON( + persistImportedDeploymentRequestPendingPreparedStackProfileStackConditionUnion: + PersistImportedDeploymentRequestPendingPreparedStackProfileStackConditionUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestKubernetesUnion$outboundSchema.parse( - persistImportedDeploymentRequestKubernetesUnion, - ), + PersistImportedDeploymentRequestPendingPreparedStackProfileStackConditionUnion$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackProfileStackConditionUnion, + ), ); } /** @internal */ -export const PersistImportedDeploymentRequestTypeByoVnetAzure$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestTypeByoVnetAzure, - ); - -/** @internal */ -export type PersistImportedDeploymentRequestNetworkByoVnetAzure$Outbound = { - application_gateway_subnet_name?: string | null | undefined; - private_endpoint_subnet_name?: string | null | undefined; - private_subnet_name: string; - public_subnet_name: string; - type: string; - vnet_resource_id: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileGcpStack$Outbound = + { + condition?: + | PersistImportedDeploymentRequestPendingPreparedStackProfileConditionStack$Outbound + | any + | null + | undefined; + scope: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestNetworkByoVnetAzure$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackProfileGcpStack$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestNetworkByoVnetAzure$Outbound, - PersistImportedDeploymentRequestNetworkByoVnetAzure + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpStack$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpStack > = z.object({ - applicationGatewaySubnetName: z.nullable(z.string()).optional(), - privateEndpointSubnetName: z.nullable(z.string()).optional(), - privateSubnetName: z.string(), - publicSubnetName: z.string(), - type: PersistImportedDeploymentRequestTypeByoVnetAzure$outboundSchema, - vnetResourceId: z.string(), - }).transform((v) => { - return remap$(v, { - applicationGatewaySubnetName: "application_gateway_subnet_name", - privateEndpointSubnetName: "private_endpoint_subnet_name", - privateSubnetName: "private_subnet_name", - publicSubnetName: "public_subnet_name", - vnetResourceId: "vnet_resource_id", - }); + condition: z.nullable( + z.union([ + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackProfileConditionStack$outboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), }); -export function persistImportedDeploymentRequestNetworkByoVnetAzureToJSON( - persistImportedDeploymentRequestNetworkByoVnetAzure: - PersistImportedDeploymentRequestNetworkByoVnetAzure, +export function persistImportedDeploymentRequestPendingPreparedStackProfileGcpStackToJSON( + persistImportedDeploymentRequestPendingPreparedStackProfileGcpStack: + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpStack, ): string { return JSON.stringify( - PersistImportedDeploymentRequestNetworkByoVnetAzure$outboundSchema.parse( - persistImportedDeploymentRequestNetworkByoVnetAzure, - ), + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpStack$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackProfileGcpStack, + ), ); } /** @internal */ -export const PersistImportedDeploymentRequestTypeByoVpcGcp$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestTypeByoVpcGcp, - ); - -/** @internal */ -export type PersistImportedDeploymentRequestNetworkByoVpcGcp$Outbound = { - network_name: string; - region: string; - subnet_name: string; - type: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileGcpBinding$Outbound = + { + resource?: + | PersistImportedDeploymentRequestPendingPreparedStackProfileGcpResource$Outbound + | undefined; + stack?: + | PersistImportedDeploymentRequestPendingPreparedStackProfileGcpStack$Outbound + | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestNetworkByoVpcGcp$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackProfileGcpBinding$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestNetworkByoVpcGcp$Outbound, - PersistImportedDeploymentRequestNetworkByoVpcGcp + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpBinding$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpBinding > = z.object({ - networkName: z.string(), - region: z.string(), - subnetName: z.string(), - type: PersistImportedDeploymentRequestTypeByoVpcGcp$outboundSchema, - }).transform((v) => { - return remap$(v, { - networkName: "network_name", - subnetName: "subnet_name", - }); + resource: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpResource$outboundSchema + ).optional(), + stack: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpStack$outboundSchema + ).optional(), }); -export function persistImportedDeploymentRequestNetworkByoVpcGcpToJSON( - persistImportedDeploymentRequestNetworkByoVpcGcp: - PersistImportedDeploymentRequestNetworkByoVpcGcp, +export function persistImportedDeploymentRequestPendingPreparedStackProfileGcpBindingToJSON( + persistImportedDeploymentRequestPendingPreparedStackProfileGcpBinding: + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpBinding, ): string { return JSON.stringify( - PersistImportedDeploymentRequestNetworkByoVpcGcp$outboundSchema.parse( - persistImportedDeploymentRequestNetworkByoVpcGcp, - ), + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpBinding$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackProfileGcpBinding, + ), ); } /** @internal */ -export const PersistImportedDeploymentRequestTypeByoVpcAws$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestTypeByoVpcAws, - ); - -/** @internal */ -export type PersistImportedDeploymentRequestNetworkByoVpcAws$Outbound = { - private_subnet_ids: Array; - public_subnet_ids: Array; - security_group_ids?: Array | undefined; - type: string; - vpc_id: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileGcpGrant$Outbound = + { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestNetworkByoVpcAws$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackProfileGcpGrant$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestNetworkByoVpcAws$Outbound, - PersistImportedDeploymentRequestNetworkByoVpcAws + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpGrant$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpGrant > = z.object({ - privateSubnetIds: z.array(z.string()), - publicSubnetIds: z.array(z.string()), - securityGroupIds: z.array(z.string()).optional(), - type: PersistImportedDeploymentRequestTypeByoVpcAws$outboundSchema, - vpcId: z.string(), - }).transform((v) => { - return remap$(v, { - privateSubnetIds: "private_subnet_ids", - publicSubnetIds: "public_subnet_ids", - securityGroupIds: "security_group_ids", - vpcId: "vpc_id", - }); + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function persistImportedDeploymentRequestNetworkByoVpcAwsToJSON( - persistImportedDeploymentRequestNetworkByoVpcAws: - PersistImportedDeploymentRequestNetworkByoVpcAws, +export function persistImportedDeploymentRequestPendingPreparedStackProfileGcpGrantToJSON( + persistImportedDeploymentRequestPendingPreparedStackProfileGcpGrant: + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpGrant, ): string { return JSON.stringify( - PersistImportedDeploymentRequestNetworkByoVpcAws$outboundSchema.parse( - persistImportedDeploymentRequestNetworkByoVpcAws, - ), + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpGrant$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackProfileGcpGrant, + ), ); } /** @internal */ -export const PersistImportedDeploymentRequestTypeCreate$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestTypeCreate, - ); - -/** @internal */ -export type PersistImportedDeploymentRequestNetworkCreate$Outbound = { - availability_zones?: number | undefined; - cidr?: string | null | undefined; - type: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileGcp$Outbound = + { + binding: + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpBinding$Outbound; + description?: string | null | undefined; + grant: + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpGrant$Outbound; + label?: string | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestNetworkCreate$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackProfileGcp$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestNetworkCreate$Outbound, - PersistImportedDeploymentRequestNetworkCreate + PersistImportedDeploymentRequestPendingPreparedStackProfileGcp$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackProfileGcp > = z.object({ - availabilityZones: z.int().optional(), - cidr: z.nullable(z.string()).optional(), - type: PersistImportedDeploymentRequestTypeCreate$outboundSchema, - }).transform((v) => { - return remap$(v, { - availabilityZones: "availability_zones", - }); + binding: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackProfileGcpGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), }); -export function persistImportedDeploymentRequestNetworkCreateToJSON( - persistImportedDeploymentRequestNetworkCreate: - PersistImportedDeploymentRequestNetworkCreate, +export function persistImportedDeploymentRequestPendingPreparedStackProfileGcpToJSON( + persistImportedDeploymentRequestPendingPreparedStackProfileGcp: + PersistImportedDeploymentRequestPendingPreparedStackProfileGcp, ): string { return JSON.stringify( - PersistImportedDeploymentRequestNetworkCreate$outboundSchema.parse( - persistImportedDeploymentRequestNetworkCreate, - ), + PersistImportedDeploymentRequestPendingPreparedStackProfileGcp$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackProfileGcp), ); } /** @internal */ -export const PersistImportedDeploymentRequestTypeUseDefault$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestTypeUseDefault, +export type PersistImportedDeploymentRequestPendingPreparedStackProfilePlatforms$Outbound = + { + aws?: + | Array< + PersistImportedDeploymentRequestPendingPreparedStackProfileAw$Outbound + > + | null + | undefined; + azure?: + | Array< + PersistImportedDeploymentRequestPendingPreparedStackProfileAzure$Outbound + > + | null + | undefined; + gcp?: + | Array< + PersistImportedDeploymentRequestPendingPreparedStackProfileGcp$Outbound + > + | null + | undefined; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestPendingPreparedStackProfilePlatforms$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPendingPreparedStackProfilePlatforms$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackProfilePlatforms + > = z.object({ + aws: z.nullable( + z.array(z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackProfileAw$outboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackProfileAzure$outboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackProfileGcp$outboundSchema + )), + ).optional(), + }); + +export function persistImportedDeploymentRequestPendingPreparedStackProfilePlatformsToJSON( + persistImportedDeploymentRequestPendingPreparedStackProfilePlatforms: + PersistImportedDeploymentRequestPendingPreparedStackProfilePlatforms, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestPendingPreparedStackProfilePlatforms$outboundSchema + .parse( + persistImportedDeploymentRequestPendingPreparedStackProfilePlatforms, + ), ); +} /** @internal */ -export type PersistImportedDeploymentRequestNetworkUseDefault$Outbound = { - type: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackProfile$Outbound = + { + description: string; + id: string; + platforms: + PersistImportedDeploymentRequestPendingPreparedStackProfilePlatforms$Outbound; + }; /** @internal */ -export const PersistImportedDeploymentRequestNetworkUseDefault$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackProfile$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestNetworkUseDefault$Outbound, - PersistImportedDeploymentRequestNetworkUseDefault + PersistImportedDeploymentRequestPendingPreparedStackProfile$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackProfile > = z.object({ - type: PersistImportedDeploymentRequestTypeUseDefault$outboundSchema, + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackProfilePlatforms$outboundSchema + ), }); -export function persistImportedDeploymentRequestNetworkUseDefaultToJSON( - persistImportedDeploymentRequestNetworkUseDefault: - PersistImportedDeploymentRequestNetworkUseDefault, +export function persistImportedDeploymentRequestPendingPreparedStackProfileToJSON( + persistImportedDeploymentRequestPendingPreparedStackProfile: + PersistImportedDeploymentRequestPendingPreparedStackProfile, ): string { return JSON.stringify( - PersistImportedDeploymentRequestNetworkUseDefault$outboundSchema.parse( - persistImportedDeploymentRequestNetworkUseDefault, - ), + PersistImportedDeploymentRequestPendingPreparedStackProfile$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackProfile), ); } /** @internal */ -export type PersistImportedDeploymentRequestNetworkUnion$Outbound = - | PersistImportedDeploymentRequestNetworkByoVpcAws$Outbound - | PersistImportedDeploymentRequestNetworkByoVpcGcp$Outbound - | PersistImportedDeploymentRequestNetworkByoVnetAzure$Outbound - | PersistImportedDeploymentRequestNetworkUseDefault$Outbound - | PersistImportedDeploymentRequestNetworkCreate$Outbound - | any; +export type PersistImportedDeploymentRequestPendingPreparedStackProfileUnion$Outbound = + | PersistImportedDeploymentRequestPendingPreparedStackProfile$Outbound + | string; /** @internal */ -export const PersistImportedDeploymentRequestNetworkUnion$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackProfileUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestNetworkUnion$Outbound, - PersistImportedDeploymentRequestNetworkUnion + PersistImportedDeploymentRequestPendingPreparedStackProfileUnion$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackProfileUnion > = z.union([ z.lazy(() => - PersistImportedDeploymentRequestNetworkByoVpcAws$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestNetworkByoVpcGcp$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestNetworkByoVnetAzure$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestNetworkUseDefault$outboundSchema + PersistImportedDeploymentRequestPendingPreparedStackProfile$outboundSchema ), - z.lazy(() => PersistImportedDeploymentRequestNetworkCreate$outboundSchema), - z.any(), + z.string(), ]); -export function persistImportedDeploymentRequestNetworkUnionToJSON( - persistImportedDeploymentRequestNetworkUnion: - PersistImportedDeploymentRequestNetworkUnion, +export function persistImportedDeploymentRequestPendingPreparedStackProfileUnionToJSON( + persistImportedDeploymentRequestPendingPreparedStackProfileUnion: + PersistImportedDeploymentRequestPendingPreparedStackProfileUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestNetworkUnion$outboundSchema.parse( - persistImportedDeploymentRequestNetworkUnion, - ), + PersistImportedDeploymentRequestPendingPreparedStackProfileUnion$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackProfileUnion), ); } /** @internal */ -export const PersistImportedDeploymentRequestTelemetry$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestTelemetry, - ); - -/** @internal */ -export const PersistImportedDeploymentRequestUpdates$outboundSchema: z.ZodEnum< - typeof PersistImportedDeploymentRequestUpdates -> = z.enum(PersistImportedDeploymentRequestUpdates); - -/** @internal */ -export type PersistImportedDeploymentRequestStackSettings$Outbound = { - compute?: - | PersistImportedDeploymentRequestCompute$Outbound - | any - | null - | undefined; - deploymentModel?: string | undefined; - domains?: - | PersistImportedDeploymentRequestDomains$Outbound - | any - | null - | undefined; - externalBindings?: - | PersistImportedDeploymentRequestExternalBindings$Outbound - | null - | undefined; - heartbeats?: string | undefined; - kubernetes?: - | PersistImportedDeploymentRequestKubernetes$Outbound - | any - | null - | undefined; - network?: - | PersistImportedDeploymentRequestNetworkByoVpcAws$Outbound - | PersistImportedDeploymentRequestNetworkByoVpcGcp$Outbound - | PersistImportedDeploymentRequestNetworkByoVnetAzure$Outbound - | PersistImportedDeploymentRequestNetworkUseDefault$Outbound - | PersistImportedDeploymentRequestNetworkCreate$Outbound - | any - | null - | undefined; - telemetry?: string | undefined; - updates?: string | undefined; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackPermissions$Outbound = + { + management?: + | PersistImportedDeploymentRequestPendingPreparedStackManagement1$Outbound + | PersistImportedDeploymentRequestPendingPreparedStackManagement2$Outbound + | string + | undefined; + profiles: { + [k: string]: { + [k: string]: Array< + | PersistImportedDeploymentRequestPendingPreparedStackProfile$Outbound + | string + >; + }; + }; + }; /** @internal */ -export const PersistImportedDeploymentRequestStackSettings$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackPermissions$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestStackSettings$Outbound, - PersistImportedDeploymentRequestStackSettings + PersistImportedDeploymentRequestPendingPreparedStackPermissions$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackPermissions > = z.object({ - compute: z.nullable( - z.union([ - z.lazy(() => PersistImportedDeploymentRequestCompute$outboundSchema), - z.any(), - ]), - ).optional(), - deploymentModel: - PersistImportedDeploymentRequestDeploymentModel$outboundSchema.optional(), - domains: z.nullable( - z.union([ - z.lazy(() => PersistImportedDeploymentRequestDomains$outboundSchema), - z.any(), - ]), - ).optional(), - externalBindings: z.nullable( + management: z.union([ z.lazy(() => - PersistImportedDeploymentRequestExternalBindings$outboundSchema + PersistImportedDeploymentRequestPendingPreparedStackManagement1$outboundSchema ), - ).optional(), - heartbeats: PersistImportedDeploymentRequestHeartbeats$outboundSchema - .optional(), - kubernetes: z.nullable( - z.union([ - z.lazy(() => PersistImportedDeploymentRequestKubernetes$outboundSchema), - z.any(), - ]), - ).optional(), - network: z.nullable( - z.union([ - z.lazy(() => - PersistImportedDeploymentRequestNetworkByoVpcAws$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestNetworkByoVpcGcp$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestNetworkByoVnetAzure$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestNetworkUseDefault$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestNetworkCreate$outboundSchema + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackManagement2$outboundSchema + ), + PersistImportedDeploymentRequestPendingPreparedStackManagementEnum$outboundSchema, + ]).optional(), + profiles: z.record( + z.string(), + z.record( + z.string(), + z.array( + z.union([ + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackProfile$outboundSchema + ), + z.string(), + ]), ), - z.any(), - ]), - ).optional(), - telemetry: PersistImportedDeploymentRequestTelemetry$outboundSchema - .optional(), - updates: PersistImportedDeploymentRequestUpdates$outboundSchema.optional(), - }); - -export function persistImportedDeploymentRequestStackSettingsToJSON( - persistImportedDeploymentRequestStackSettings: - PersistImportedDeploymentRequestStackSettings, -): string { - return JSON.stringify( - PersistImportedDeploymentRequestStackSettings$outboundSchema.parse( - persistImportedDeploymentRequestStackSettings, + ), ), - ); -} - -/** @internal */ -export const PersistImportedDeploymentRequestPlatformTest$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestPlatformTest, - ); - -/** @internal */ -export type PersistImportedDeploymentRequestEnvironmentInfoTest$Outbound = { - testId: string; - platform: string; -}; - -/** @internal */ -export const PersistImportedDeploymentRequestEnvironmentInfoTest$outboundSchema: - z.ZodType< - PersistImportedDeploymentRequestEnvironmentInfoTest$Outbound, - PersistImportedDeploymentRequestEnvironmentInfoTest - > = z.object({ - testId: z.string(), - platform: PersistImportedDeploymentRequestPlatformTest$outboundSchema, }); -export function persistImportedDeploymentRequestEnvironmentInfoTestToJSON( - persistImportedDeploymentRequestEnvironmentInfoTest: - PersistImportedDeploymentRequestEnvironmentInfoTest, +export function persistImportedDeploymentRequestPendingPreparedStackPermissionsToJSON( + persistImportedDeploymentRequestPendingPreparedStackPermissions: + PersistImportedDeploymentRequestPendingPreparedStackPermissions, ): string { return JSON.stringify( - PersistImportedDeploymentRequestEnvironmentInfoTest$outboundSchema.parse( - persistImportedDeploymentRequestEnvironmentInfoTest, - ), + PersistImportedDeploymentRequestPendingPreparedStackPermissions$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackPermissions), ); } /** @internal */ -export const PersistImportedDeploymentRequestPlatformLocal$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestPlatformLocal, - ); - -/** @internal */ -export type PersistImportedDeploymentRequestEnvironmentInfoLocal$Outbound = { - arch: string; - hostname: string; - os: string; - platform: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackConfig$Outbound = + { + id: string; + type: string; + [additionalProperties: string]: unknown; + }; /** @internal */ -export const PersistImportedDeploymentRequestEnvironmentInfoLocal$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackConfig$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestEnvironmentInfoLocal$Outbound, - PersistImportedDeploymentRequestEnvironmentInfoLocal + PersistImportedDeploymentRequestPendingPreparedStackConfig$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackConfig > = z.object({ - arch: z.string(), - hostname: z.string(), - os: z.string(), - platform: PersistImportedDeploymentRequestPlatformLocal$outboundSchema, + id: z.string(), + type: z.string(), + additionalProperties: z.record(z.string(), z.nullable(z.any())).optional(), + }).transform((v) => { + return { + ...v.additionalProperties, + ...remap$(v, { + additionalProperties: null, + }), + }; }); -export function persistImportedDeploymentRequestEnvironmentInfoLocalToJSON( - persistImportedDeploymentRequestEnvironmentInfoLocal: - PersistImportedDeploymentRequestEnvironmentInfoLocal, +export function persistImportedDeploymentRequestPendingPreparedStackConfigToJSON( + persistImportedDeploymentRequestPendingPreparedStackConfig: + PersistImportedDeploymentRequestPendingPreparedStackConfig, ): string { return JSON.stringify( - PersistImportedDeploymentRequestEnvironmentInfoLocal$outboundSchema.parse( - persistImportedDeploymentRequestEnvironmentInfoLocal, - ), + PersistImportedDeploymentRequestPendingPreparedStackConfig$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackConfig), ); } /** @internal */ -export const PersistImportedDeploymentRequestEnvironmentInfoPlatformAzure$outboundSchema: - z.ZodEnum< - typeof PersistImportedDeploymentRequestEnvironmentInfoPlatformAzure - > = z.enum(PersistImportedDeploymentRequestEnvironmentInfoPlatformAzure); - -/** @internal */ -export type PersistImportedDeploymentRequestEnvironmentInfoAzure$Outbound = { - location: string; - subscriptionId: string; - tenantId: string; - platform: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackDependency$Outbound = + { + id: string; + type: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestEnvironmentInfoAzure$outboundSchema: - z.ZodType< - PersistImportedDeploymentRequestEnvironmentInfoAzure$Outbound, - PersistImportedDeploymentRequestEnvironmentInfoAzure - > = z.object({ - location: z.string(), - subscriptionId: z.string(), - tenantId: z.string(), - platform: - PersistImportedDeploymentRequestEnvironmentInfoPlatformAzure$outboundSchema, +export const PersistImportedDeploymentRequestPendingPreparedStackDependency$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPendingPreparedStackDependency$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackDependency + > = z.object({ + id: z.string(), + type: z.string(), }); -export function persistImportedDeploymentRequestEnvironmentInfoAzureToJSON( - persistImportedDeploymentRequestEnvironmentInfoAzure: - PersistImportedDeploymentRequestEnvironmentInfoAzure, +export function persistImportedDeploymentRequestPendingPreparedStackDependencyToJSON( + persistImportedDeploymentRequestPendingPreparedStackDependency: + PersistImportedDeploymentRequestPendingPreparedStackDependency, ): string { return JSON.stringify( - PersistImportedDeploymentRequestEnvironmentInfoAzure$outboundSchema.parse( - persistImportedDeploymentRequestEnvironmentInfoAzure, - ), + PersistImportedDeploymentRequestPendingPreparedStackDependency$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackDependency), ); } /** @internal */ -export const PersistImportedDeploymentRequestEnvironmentInfoPlatformGcp$outboundSchema: - z.ZodEnum = - z.enum(PersistImportedDeploymentRequestEnvironmentInfoPlatformGcp); +export const PersistImportedDeploymentRequestPendingPreparedStackLifecycle$outboundSchema: + z.ZodEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackLifecycle + > = z.enum(PersistImportedDeploymentRequestPendingPreparedStackLifecycle); /** @internal */ -export type PersistImportedDeploymentRequestEnvironmentInfoGcp$Outbound = { - projectId: string; - projectNumber: string; - region: string; - platform: string; -}; +export type PersistImportedDeploymentRequestPendingPreparedStackResources$Outbound = + { + config: PersistImportedDeploymentRequestPendingPreparedStackConfig$Outbound; + dependencies: Array< + PersistImportedDeploymentRequestPendingPreparedStackDependency$Outbound + >; + enabledWhen?: string | null | undefined; + lifecycle: string; + remoteAccess?: boolean | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestEnvironmentInfoGcp$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackResources$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestEnvironmentInfoGcp$Outbound, - PersistImportedDeploymentRequestEnvironmentInfoGcp + PersistImportedDeploymentRequestPendingPreparedStackResources$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackResources > = z.object({ - projectId: z.string(), - projectNumber: z.string(), - region: z.string(), - platform: - PersistImportedDeploymentRequestEnvironmentInfoPlatformGcp$outboundSchema, + config: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackConfig$outboundSchema + ), + dependencies: z.array( + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackDependency$outboundSchema + ), + ), + enabledWhen: z.nullable(z.string()).optional(), + lifecycle: + PersistImportedDeploymentRequestPendingPreparedStackLifecycle$outboundSchema, + remoteAccess: z.boolean().optional(), }); -export function persistImportedDeploymentRequestEnvironmentInfoGcpToJSON( - persistImportedDeploymentRequestEnvironmentInfoGcp: - PersistImportedDeploymentRequestEnvironmentInfoGcp, +export function persistImportedDeploymentRequestPendingPreparedStackResourcesToJSON( + persistImportedDeploymentRequestPendingPreparedStackResources: + PersistImportedDeploymentRequestPendingPreparedStackResources, ): string { return JSON.stringify( - PersistImportedDeploymentRequestEnvironmentInfoGcp$outboundSchema.parse( - persistImportedDeploymentRequestEnvironmentInfoGcp, - ), + PersistImportedDeploymentRequestPendingPreparedStackResources$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackResources), ); } /** @internal */ -export const PersistImportedDeploymentRequestEnvironmentInfoPlatformAws$outboundSchema: - z.ZodEnum = - z.enum(PersistImportedDeploymentRequestEnvironmentInfoPlatformAws); +export const PersistImportedDeploymentRequestPendingPreparedStackSupportedPlatform$outboundSchema: + z.ZodEnum< + typeof PersistImportedDeploymentRequestPendingPreparedStackSupportedPlatform + > = z.enum( + PersistImportedDeploymentRequestPendingPreparedStackSupportedPlatform, + ); /** @internal */ -export type PersistImportedDeploymentRequestEnvironmentInfoAws$Outbound = { - accountId: string; - region: string; - platform: string; +export type PersistImportedDeploymentRequestPendingPreparedStack$Outbound = { + id: string; + inputs?: + | Array + | undefined; + permissions?: + | PersistImportedDeploymentRequestPendingPreparedStackPermissions$Outbound + | undefined; + resources: { + [k: string]: + PersistImportedDeploymentRequestPendingPreparedStackResources$Outbound; + }; + supportedPlatforms?: Array | null | undefined; }; /** @internal */ -export const PersistImportedDeploymentRequestEnvironmentInfoAws$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStack$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestEnvironmentInfoAws$Outbound, - PersistImportedDeploymentRequestEnvironmentInfoAws + PersistImportedDeploymentRequestPendingPreparedStack$Outbound, + PersistImportedDeploymentRequestPendingPreparedStack > = z.object({ - accountId: z.string(), - region: z.string(), - platform: - PersistImportedDeploymentRequestEnvironmentInfoPlatformAws$outboundSchema, + id: z.string(), + inputs: z.array( + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackInput$outboundSchema + ), + ).optional(), + permissions: z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackPermissions$outboundSchema + ).optional(), + resources: z.record( + z.string(), + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStackResources$outboundSchema + ), + ), + supportedPlatforms: z.nullable( + z.array( + PersistImportedDeploymentRequestPendingPreparedStackSupportedPlatform$outboundSchema, + ), + ).optional(), }); -export function persistImportedDeploymentRequestEnvironmentInfoAwsToJSON( - persistImportedDeploymentRequestEnvironmentInfoAws: - PersistImportedDeploymentRequestEnvironmentInfoAws, +export function persistImportedDeploymentRequestPendingPreparedStackToJSON( + persistImportedDeploymentRequestPendingPreparedStack: + PersistImportedDeploymentRequestPendingPreparedStack, ): string { return JSON.stringify( - PersistImportedDeploymentRequestEnvironmentInfoAws$outboundSchema.parse( - persistImportedDeploymentRequestEnvironmentInfoAws, + PersistImportedDeploymentRequestPendingPreparedStack$outboundSchema.parse( + persistImportedDeploymentRequestPendingPreparedStack, ), ); } /** @internal */ -export type PersistImportedDeploymentRequestEnvironmentInfoUnion$Outbound = - | PersistImportedDeploymentRequestEnvironmentInfoGcp$Outbound - | PersistImportedDeploymentRequestEnvironmentInfoAzure$Outbound - | PersistImportedDeploymentRequestEnvironmentInfoLocal$Outbound - | PersistImportedDeploymentRequestEnvironmentInfoAws$Outbound - | PersistImportedDeploymentRequestEnvironmentInfoTest$Outbound +export type PersistImportedDeploymentRequestPendingPreparedStackUnion$Outbound = + | PersistImportedDeploymentRequestPendingPreparedStack$Outbound | any; /** @internal */ -export const PersistImportedDeploymentRequestEnvironmentInfoUnion$outboundSchema: +export const PersistImportedDeploymentRequestPendingPreparedStackUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestEnvironmentInfoUnion$Outbound, - PersistImportedDeploymentRequestEnvironmentInfoUnion + PersistImportedDeploymentRequestPendingPreparedStackUnion$Outbound, + PersistImportedDeploymentRequestPendingPreparedStackUnion > = z.union([ z.lazy(() => - PersistImportedDeploymentRequestEnvironmentInfoGcp$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestEnvironmentInfoAzure$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestEnvironmentInfoLocal$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestEnvironmentInfoAws$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestEnvironmentInfoTest$outboundSchema + PersistImportedDeploymentRequestPendingPreparedStack$outboundSchema ), z.any(), ]); -export function persistImportedDeploymentRequestEnvironmentInfoUnionToJSON( - persistImportedDeploymentRequestEnvironmentInfoUnion: - PersistImportedDeploymentRequestEnvironmentInfoUnion, +export function persistImportedDeploymentRequestPendingPreparedStackUnionToJSON( + persistImportedDeploymentRequestPendingPreparedStackUnion: + PersistImportedDeploymentRequestPendingPreparedStackUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestEnvironmentInfoUnion$outboundSchema.parse( - persistImportedDeploymentRequestEnvironmentInfoUnion, - ), + PersistImportedDeploymentRequestPendingPreparedStackUnion$outboundSchema + .parse(persistImportedDeploymentRequestPendingPreparedStackUnion), ); } /** @internal */ -export const PersistImportedDeploymentRequestTypeStringList$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestTypeStringList, - ); +export const PersistImportedDeploymentRequestPreparedStackTypeStringList$outboundSchema: + z.ZodEnum< + typeof PersistImportedDeploymentRequestPreparedStackTypeStringList + > = z.enum(PersistImportedDeploymentRequestPreparedStackTypeStringList); /** @internal */ -export type PersistImportedDeploymentRequestDefaultStringList$Outbound = { - type: string; - value: Array; -}; +export type PersistImportedDeploymentRequestPreparedStackDefaultStringList$Outbound = + { + type: string; + value: Array; + }; /** @internal */ -export const PersistImportedDeploymentRequestDefaultStringList$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackDefaultStringList$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestDefaultStringList$Outbound, - PersistImportedDeploymentRequestDefaultStringList + PersistImportedDeploymentRequestPreparedStackDefaultStringList$Outbound, + PersistImportedDeploymentRequestPreparedStackDefaultStringList > = z.object({ - type: PersistImportedDeploymentRequestTypeStringList$outboundSchema, + type: + PersistImportedDeploymentRequestPreparedStackTypeStringList$outboundSchema, value: z.array(z.string()), }); -export function persistImportedDeploymentRequestDefaultStringListToJSON( - persistImportedDeploymentRequestDefaultStringList: - PersistImportedDeploymentRequestDefaultStringList, +export function persistImportedDeploymentRequestPreparedStackDefaultStringListToJSON( + persistImportedDeploymentRequestPreparedStackDefaultStringList: + PersistImportedDeploymentRequestPreparedStackDefaultStringList, ): string { return JSON.stringify( - PersistImportedDeploymentRequestDefaultStringList$outboundSchema.parse( - persistImportedDeploymentRequestDefaultStringList, - ), + PersistImportedDeploymentRequestPreparedStackDefaultStringList$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackDefaultStringList), ); } /** @internal */ -export const PersistImportedDeploymentRequestTypeBoolean$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestTypeBoolean, - ); +export const PersistImportedDeploymentRequestPreparedStackTypeBoolean$outboundSchema: + z.ZodEnum = z + .enum(PersistImportedDeploymentRequestPreparedStackTypeBoolean); /** @internal */ -export type PersistImportedDeploymentRequestDefaultBoolean$Outbound = { - type: string; - value: boolean; -}; +export type PersistImportedDeploymentRequestPreparedStackDefaultBoolean$Outbound = + { + type: string; + value: boolean; + }; /** @internal */ -export const PersistImportedDeploymentRequestDefaultBoolean$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackDefaultBoolean$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestDefaultBoolean$Outbound, - PersistImportedDeploymentRequestDefaultBoolean + PersistImportedDeploymentRequestPreparedStackDefaultBoolean$Outbound, + PersistImportedDeploymentRequestPreparedStackDefaultBoolean > = z.object({ - type: PersistImportedDeploymentRequestTypeBoolean$outboundSchema, + type: + PersistImportedDeploymentRequestPreparedStackTypeBoolean$outboundSchema, value: z.boolean(), }); -export function persistImportedDeploymentRequestDefaultBooleanToJSON( - persistImportedDeploymentRequestDefaultBoolean: - PersistImportedDeploymentRequestDefaultBoolean, +export function persistImportedDeploymentRequestPreparedStackDefaultBooleanToJSON( + persistImportedDeploymentRequestPreparedStackDefaultBoolean: + PersistImportedDeploymentRequestPreparedStackDefaultBoolean, ): string { return JSON.stringify( - PersistImportedDeploymentRequestDefaultBoolean$outboundSchema.parse( - persistImportedDeploymentRequestDefaultBoolean, - ), + PersistImportedDeploymentRequestPreparedStackDefaultBoolean$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackDefaultBoolean), ); } /** @internal */ -export const PersistImportedDeploymentRequestTypeNumber$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestTypeNumber, - ); +export const PersistImportedDeploymentRequestPreparedStackTypeNumber$outboundSchema: + z.ZodEnum = z + .enum(PersistImportedDeploymentRequestPreparedStackTypeNumber); /** @internal */ -export type PersistImportedDeploymentRequestDefaultNumber$Outbound = { - type: string; - value: string; -}; +export type PersistImportedDeploymentRequestPreparedStackDefaultNumber$Outbound = + { + type: string; + value: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestDefaultNumber$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackDefaultNumber$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestDefaultNumber$Outbound, - PersistImportedDeploymentRequestDefaultNumber + PersistImportedDeploymentRequestPreparedStackDefaultNumber$Outbound, + PersistImportedDeploymentRequestPreparedStackDefaultNumber > = z.object({ - type: PersistImportedDeploymentRequestTypeNumber$outboundSchema, + type: + PersistImportedDeploymentRequestPreparedStackTypeNumber$outboundSchema, value: z.string(), }); -export function persistImportedDeploymentRequestDefaultNumberToJSON( - persistImportedDeploymentRequestDefaultNumber: - PersistImportedDeploymentRequestDefaultNumber, +export function persistImportedDeploymentRequestPreparedStackDefaultNumberToJSON( + persistImportedDeploymentRequestPreparedStackDefaultNumber: + PersistImportedDeploymentRequestPreparedStackDefaultNumber, ): string { return JSON.stringify( - PersistImportedDeploymentRequestDefaultNumber$outboundSchema.parse( - persistImportedDeploymentRequestDefaultNumber, - ), + PersistImportedDeploymentRequestPreparedStackDefaultNumber$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackDefaultNumber), ); } /** @internal */ -export const PersistImportedDeploymentRequestTypeString$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestTypeString, - ); +export const PersistImportedDeploymentRequestPreparedStackTypeString$outboundSchema: + z.ZodEnum = z + .enum(PersistImportedDeploymentRequestPreparedStackTypeString); /** @internal */ -export type PersistImportedDeploymentRequestDefaultString$Outbound = { - type: string; - value: string; -}; +export type PersistImportedDeploymentRequestPreparedStackDefaultString$Outbound = + { + type: string; + value: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestDefaultString$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackDefaultString$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestDefaultString$Outbound, - PersistImportedDeploymentRequestDefaultString + PersistImportedDeploymentRequestPreparedStackDefaultString$Outbound, + PersistImportedDeploymentRequestPreparedStackDefaultString > = z.object({ - type: PersistImportedDeploymentRequestTypeString$outboundSchema, + type: + PersistImportedDeploymentRequestPreparedStackTypeString$outboundSchema, value: z.string(), }); -export function persistImportedDeploymentRequestDefaultStringToJSON( - persistImportedDeploymentRequestDefaultString: - PersistImportedDeploymentRequestDefaultString, +export function persistImportedDeploymentRequestPreparedStackDefaultStringToJSON( + persistImportedDeploymentRequestPreparedStackDefaultString: + PersistImportedDeploymentRequestPreparedStackDefaultString, ): string { return JSON.stringify( - PersistImportedDeploymentRequestDefaultString$outboundSchema.parse( - persistImportedDeploymentRequestDefaultString, - ), + PersistImportedDeploymentRequestPreparedStackDefaultString$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackDefaultString), ); } /** @internal */ -export type PersistImportedDeploymentRequestDefaultUnion$Outbound = - | PersistImportedDeploymentRequestDefaultString$Outbound - | PersistImportedDeploymentRequestDefaultNumber$Outbound - | PersistImportedDeploymentRequestDefaultBoolean$Outbound - | PersistImportedDeploymentRequestDefaultStringList$Outbound +export type PersistImportedDeploymentRequestPreparedStackDefaultUnion$Outbound = + | PersistImportedDeploymentRequestPreparedStackDefaultString$Outbound + | PersistImportedDeploymentRequestPreparedStackDefaultNumber$Outbound + | PersistImportedDeploymentRequestPreparedStackDefaultBoolean$Outbound + | PersistImportedDeploymentRequestPreparedStackDefaultStringList$Outbound | any; /** @internal */ -export const PersistImportedDeploymentRequestDefaultUnion$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackDefaultUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestDefaultUnion$Outbound, - PersistImportedDeploymentRequestDefaultUnion + PersistImportedDeploymentRequestPreparedStackDefaultUnion$Outbound, + PersistImportedDeploymentRequestPreparedStackDefaultUnion > = z.union([ - z.lazy(() => PersistImportedDeploymentRequestDefaultString$outboundSchema), - z.lazy(() => PersistImportedDeploymentRequestDefaultNumber$outboundSchema), - z.lazy(() => PersistImportedDeploymentRequestDefaultBoolean$outboundSchema), z.lazy(() => - PersistImportedDeploymentRequestDefaultStringList$outboundSchema + PersistImportedDeploymentRequestPreparedStackDefaultString$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestPreparedStackDefaultNumber$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestPreparedStackDefaultBoolean$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestPreparedStackDefaultStringList$outboundSchema ), z.any(), ]); -export function persistImportedDeploymentRequestDefaultUnionToJSON( - persistImportedDeploymentRequestDefaultUnion: - PersistImportedDeploymentRequestDefaultUnion, +export function persistImportedDeploymentRequestPreparedStackDefaultUnionToJSON( + persistImportedDeploymentRequestPreparedStackDefaultUnion: + PersistImportedDeploymentRequestPreparedStackDefaultUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestDefaultUnion$outboundSchema.parse( - persistImportedDeploymentRequestDefaultUnion, - ), + PersistImportedDeploymentRequestPreparedStackDefaultUnion$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackDefaultUnion), ); } /** @internal */ -export const PersistImportedDeploymentRequestTypeEnvEnum$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestTypeEnvEnum, - ); +export const PersistImportedDeploymentRequestPreparedStackTypeEnvEnum$outboundSchema: + z.ZodEnum = z + .enum(PersistImportedDeploymentRequestPreparedStackTypeEnvEnum); /** @internal */ -export type PersistImportedDeploymentRequestTypeUnion$Outbound = string | any; +export type PersistImportedDeploymentRequestPreparedStackTypeUnion$Outbound = + | string + | any; /** @internal */ -export const PersistImportedDeploymentRequestTypeUnion$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackTypeUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestTypeUnion$Outbound, - PersistImportedDeploymentRequestTypeUnion + PersistImportedDeploymentRequestPreparedStackTypeUnion$Outbound, + PersistImportedDeploymentRequestPreparedStackTypeUnion > = z.union([ - PersistImportedDeploymentRequestTypeEnvEnum$outboundSchema, + PersistImportedDeploymentRequestPreparedStackTypeEnvEnum$outboundSchema, z.any(), ]); -export function persistImportedDeploymentRequestTypeUnionToJSON( - persistImportedDeploymentRequestTypeUnion: - PersistImportedDeploymentRequestTypeUnion, +export function persistImportedDeploymentRequestPreparedStackTypeUnionToJSON( + persistImportedDeploymentRequestPreparedStackTypeUnion: + PersistImportedDeploymentRequestPreparedStackTypeUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestTypeUnion$outboundSchema.parse( - persistImportedDeploymentRequestTypeUnion, + PersistImportedDeploymentRequestPreparedStackTypeUnion$outboundSchema.parse( + persistImportedDeploymentRequestPreparedStackTypeUnion, ), ); } /** @internal */ -export type PersistImportedDeploymentRequestEnv$Outbound = { +export type PersistImportedDeploymentRequestPreparedStackEnv$Outbound = { name: string; targetResources?: Array | null | undefined; type?: string | any | null | undefined; }; /** @internal */ -export const PersistImportedDeploymentRequestEnv$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestEnv$Outbound, - PersistImportedDeploymentRequestEnv -> = z.object({ - name: z.string(), - targetResources: z.nullable(z.array(z.string())).optional(), - type: z.nullable( - z.union([ - PersistImportedDeploymentRequestTypeEnvEnum$outboundSchema, - z.any(), - ]), - ).optional(), -}); +export const PersistImportedDeploymentRequestPreparedStackEnv$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPreparedStackEnv$Outbound, + PersistImportedDeploymentRequestPreparedStackEnv + > = z.object({ + name: z.string(), + targetResources: z.nullable(z.array(z.string())).optional(), + type: z.nullable( + z.union([ + PersistImportedDeploymentRequestPreparedStackTypeEnvEnum$outboundSchema, + z.any(), + ]), + ).optional(), + }); -export function persistImportedDeploymentRequestEnvToJSON( - persistImportedDeploymentRequestEnv: PersistImportedDeploymentRequestEnv, +export function persistImportedDeploymentRequestPreparedStackEnvToJSON( + persistImportedDeploymentRequestPreparedStackEnv: + PersistImportedDeploymentRequestPreparedStackEnv, ): string { return JSON.stringify( - PersistImportedDeploymentRequestEnv$outboundSchema.parse( - persistImportedDeploymentRequestEnv, + PersistImportedDeploymentRequestPreparedStackEnv$outboundSchema.parse( + persistImportedDeploymentRequestPreparedStackEnv, ), ); } /** @internal */ -export const PersistImportedDeploymentRequestKind$outboundSchema: z.ZodEnum< - typeof PersistImportedDeploymentRequestKind -> = z.enum(PersistImportedDeploymentRequestKind); +export const PersistImportedDeploymentRequestPreparedStackKind$outboundSchema: + z.ZodEnum = z.enum( + PersistImportedDeploymentRequestPreparedStackKind, + ); /** @internal */ export const PersistImportedDeploymentRequestPreparedStackPlatform$outboundSchema: @@ -6242,13 +11394,12 @@ export const PersistImportedDeploymentRequestPreparedStackPlatform$outboundSchem .enum(PersistImportedDeploymentRequestPreparedStackPlatform); /** @internal */ -export const PersistImportedDeploymentRequestProvidedBy$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestProvidedBy, - ); +export const PersistImportedDeploymentRequestPreparedStackProvidedBy$outboundSchema: + z.ZodEnum = z + .enum(PersistImportedDeploymentRequestPreparedStackProvidedBy); /** @internal */ -export type PersistImportedDeploymentRequestValidation$Outbound = { +export type PersistImportedDeploymentRequestPreparedStackValidation$Outbound = { format?: string | null | undefined; max?: string | null | undefined; maxItems?: number | null | undefined; @@ -6261,10 +11412,10 @@ export type PersistImportedDeploymentRequestValidation$Outbound = { }; /** @internal */ -export const PersistImportedDeploymentRequestValidation$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackValidation$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestValidation$Outbound, - PersistImportedDeploymentRequestValidation + PersistImportedDeploymentRequestPreparedStackValidation$Outbound, + PersistImportedDeploymentRequestPreparedStackValidation > = z.object({ format: z.nullable(z.string()).optional(), max: z.nullable(z.string()).optional(), @@ -6277,55 +11428,57 @@ export const PersistImportedDeploymentRequestValidation$outboundSchema: values: z.nullable(z.array(z.string())).optional(), }); -export function persistImportedDeploymentRequestValidationToJSON( - persistImportedDeploymentRequestValidation: - PersistImportedDeploymentRequestValidation, +export function persistImportedDeploymentRequestPreparedStackValidationToJSON( + persistImportedDeploymentRequestPreparedStackValidation: + PersistImportedDeploymentRequestPreparedStackValidation, ): string { return JSON.stringify( - PersistImportedDeploymentRequestValidation$outboundSchema.parse( - persistImportedDeploymentRequestValidation, - ), + PersistImportedDeploymentRequestPreparedStackValidation$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackValidation), ); } /** @internal */ -export type PersistImportedDeploymentRequestValidationUnion$Outbound = - | PersistImportedDeploymentRequestValidation$Outbound +export type PersistImportedDeploymentRequestPreparedStackValidationUnion$Outbound = + | PersistImportedDeploymentRequestPreparedStackValidation$Outbound | any; /** @internal */ -export const PersistImportedDeploymentRequestValidationUnion$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackValidationUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestValidationUnion$Outbound, - PersistImportedDeploymentRequestValidationUnion + PersistImportedDeploymentRequestPreparedStackValidationUnion$Outbound, + PersistImportedDeploymentRequestPreparedStackValidationUnion > = z.union([ - z.lazy(() => PersistImportedDeploymentRequestValidation$outboundSchema), + z.lazy(() => + PersistImportedDeploymentRequestPreparedStackValidation$outboundSchema + ), z.any(), ]); -export function persistImportedDeploymentRequestValidationUnionToJSON( - persistImportedDeploymentRequestValidationUnion: - PersistImportedDeploymentRequestValidationUnion, +export function persistImportedDeploymentRequestPreparedStackValidationUnionToJSON( + persistImportedDeploymentRequestPreparedStackValidationUnion: + PersistImportedDeploymentRequestPreparedStackValidationUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestValidationUnion$outboundSchema.parse( - persistImportedDeploymentRequestValidationUnion, - ), + PersistImportedDeploymentRequestPreparedStackValidationUnion$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackValidationUnion), ); } /** @internal */ -export type PersistImportedDeploymentRequestInput$Outbound = { +export type PersistImportedDeploymentRequestPreparedStackInput$Outbound = { default?: - | PersistImportedDeploymentRequestDefaultString$Outbound - | PersistImportedDeploymentRequestDefaultNumber$Outbound - | PersistImportedDeploymentRequestDefaultBoolean$Outbound - | PersistImportedDeploymentRequestDefaultStringList$Outbound + | PersistImportedDeploymentRequestPreparedStackDefaultString$Outbound + | PersistImportedDeploymentRequestPreparedStackDefaultNumber$Outbound + | PersistImportedDeploymentRequestPreparedStackDefaultBoolean$Outbound + | PersistImportedDeploymentRequestPreparedStackDefaultStringList$Outbound | any | null | undefined; description: string; - env?: Array | undefined; + env?: + | Array + | undefined; id: string; kind: string; label: string; @@ -6334,85 +11487,93 @@ export type PersistImportedDeploymentRequestInput$Outbound = { providedBy: Array; required: boolean; validation?: - | PersistImportedDeploymentRequestValidation$Outbound + | PersistImportedDeploymentRequestPreparedStackValidation$Outbound | any | null | undefined; }; /** @internal */ -export const PersistImportedDeploymentRequestInput$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestInput$Outbound, - PersistImportedDeploymentRequestInput -> = z.object({ - default: z.nullable( - z.union([ - z.lazy(() => - PersistImportedDeploymentRequestDefaultString$outboundSchema - ), - z.lazy(() => - PersistImportedDeploymentRequestDefaultNumber$outboundSchema - ), +export const PersistImportedDeploymentRequestPreparedStackInput$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPreparedStackInput$Outbound, + PersistImportedDeploymentRequestPreparedStackInput + > = z.object({ + default: z.nullable( + z.union([ + z.lazy(() => + PersistImportedDeploymentRequestPreparedStackDefaultString$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestPreparedStackDefaultNumber$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestPreparedStackDefaultBoolean$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestPreparedStackDefaultStringList$outboundSchema + ), + z.any(), + ]), + ).optional(), + description: z.string(), + env: z.array( z.lazy(() => - PersistImportedDeploymentRequestDefaultBoolean$outboundSchema + PersistImportedDeploymentRequestPreparedStackEnv$outboundSchema ), - z.lazy(() => - PersistImportedDeploymentRequestDefaultStringList$outboundSchema + ).optional(), + id: z.string(), + kind: PersistImportedDeploymentRequestPreparedStackKind$outboundSchema, + label: z.string(), + placeholder: z.nullable(z.string()).optional(), + platforms: z.nullable( + z.array( + PersistImportedDeploymentRequestPreparedStackPlatform$outboundSchema, ), - z.any(), - ]), - ).optional(), - description: z.string(), - env: z.array(z.lazy(() => PersistImportedDeploymentRequestEnv$outboundSchema)) - .optional(), - id: z.string(), - kind: PersistImportedDeploymentRequestKind$outboundSchema, - label: z.string(), - placeholder: z.nullable(z.string()).optional(), - platforms: z.nullable( - z.array( - PersistImportedDeploymentRequestPreparedStackPlatform$outboundSchema, + ).optional(), + providedBy: z.array( + PersistImportedDeploymentRequestPreparedStackProvidedBy$outboundSchema, ), - ).optional(), - providedBy: z.array( - PersistImportedDeploymentRequestProvidedBy$outboundSchema, - ), - required: z.boolean(), - validation: z.nullable( - z.union([ - z.lazy(() => PersistImportedDeploymentRequestValidation$outboundSchema), - z.any(), - ]), - ).optional(), -}); + required: z.boolean(), + validation: z.nullable( + z.union([ + z.lazy(() => + PersistImportedDeploymentRequestPreparedStackValidation$outboundSchema + ), + z.any(), + ]), + ).optional(), + }); -export function persistImportedDeploymentRequestInputToJSON( - persistImportedDeploymentRequestInput: PersistImportedDeploymentRequestInput, +export function persistImportedDeploymentRequestPreparedStackInputToJSON( + persistImportedDeploymentRequestPreparedStackInput: + PersistImportedDeploymentRequestPreparedStackInput, ): string { return JSON.stringify( - PersistImportedDeploymentRequestInput$outboundSchema.parse( - persistImportedDeploymentRequestInput, + PersistImportedDeploymentRequestPreparedStackInput$outboundSchema.parse( + persistImportedDeploymentRequestPreparedStackInput, ), ); } /** @internal */ -export const PersistImportedDeploymentRequestManagementEnum$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestManagementEnum, - ); +export const PersistImportedDeploymentRequestPreparedStackManagementEnum$outboundSchema: + z.ZodEnum< + typeof PersistImportedDeploymentRequestPreparedStackManagementEnum + > = z.enum(PersistImportedDeploymentRequestPreparedStackManagementEnum); /** @internal */ -export type PersistImportedDeploymentRequestOverrideAwResource$Outbound = { - condition?: { [k: string]: { [k: string]: string } } | null | undefined; - resources: Array; -}; +export type PersistImportedDeploymentRequestPreparedStackOverrideAwResource$Outbound = + { + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + resources: Array; + }; /** @internal */ -export const PersistImportedDeploymentRequestOverrideAwResource$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackOverrideAwResource$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestOverrideAwResource$Outbound, - PersistImportedDeploymentRequestOverrideAwResource + PersistImportedDeploymentRequestPreparedStackOverrideAwResource$Outbound, + PersistImportedDeploymentRequestPreparedStackOverrideAwResource > = z.object({ condition: z.nullable( z.record(z.string(), z.record(z.string(), z.string())), @@ -6420,28 +11581,28 @@ export const PersistImportedDeploymentRequestOverrideAwResource$outboundSchema: resources: z.array(z.string()), }); -export function persistImportedDeploymentRequestOverrideAwResourceToJSON( - persistImportedDeploymentRequestOverrideAwResource: - PersistImportedDeploymentRequestOverrideAwResource, +export function persistImportedDeploymentRequestPreparedStackOverrideAwResourceToJSON( + persistImportedDeploymentRequestPreparedStackOverrideAwResource: + PersistImportedDeploymentRequestPreparedStackOverrideAwResource, ): string { return JSON.stringify( - PersistImportedDeploymentRequestOverrideAwResource$outboundSchema.parse( - persistImportedDeploymentRequestOverrideAwResource, - ), + PersistImportedDeploymentRequestPreparedStackOverrideAwResource$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackOverrideAwResource), ); } /** @internal */ -export type PersistImportedDeploymentRequestOverrideAwStack$Outbound = { - condition?: { [k: string]: { [k: string]: string } } | null | undefined; - resources: Array; -}; +export type PersistImportedDeploymentRequestPreparedStackOverrideAwStack$Outbound = + { + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + resources: Array; + }; /** @internal */ -export const PersistImportedDeploymentRequestOverrideAwStack$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackOverrideAwStack$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestOverrideAwStack$Outbound, - PersistImportedDeploymentRequestOverrideAwStack + PersistImportedDeploymentRequestPreparedStackOverrideAwStack$Outbound, + PersistImportedDeploymentRequestPreparedStackOverrideAwStack > = z.object({ condition: z.nullable( z.record(z.string(), z.record(z.string(), z.string())), @@ -6449,70 +11610,72 @@ export const PersistImportedDeploymentRequestOverrideAwStack$outboundSchema: resources: z.array(z.string()), }); -export function persistImportedDeploymentRequestOverrideAwStackToJSON( - persistImportedDeploymentRequestOverrideAwStack: - PersistImportedDeploymentRequestOverrideAwStack, +export function persistImportedDeploymentRequestPreparedStackOverrideAwStackToJSON( + persistImportedDeploymentRequestPreparedStackOverrideAwStack: + PersistImportedDeploymentRequestPreparedStackOverrideAwStack, ): string { return JSON.stringify( - PersistImportedDeploymentRequestOverrideAwStack$outboundSchema.parse( - persistImportedDeploymentRequestOverrideAwStack, - ), + PersistImportedDeploymentRequestPreparedStackOverrideAwStack$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackOverrideAwStack), ); } /** @internal */ -export type PersistImportedDeploymentRequestOverrideAwBinding$Outbound = { - resource?: - | PersistImportedDeploymentRequestOverrideAwResource$Outbound - | undefined; - stack?: PersistImportedDeploymentRequestOverrideAwStack$Outbound | undefined; -}; +export type PersistImportedDeploymentRequestPreparedStackOverrideAwBinding$Outbound = + { + resource?: + | PersistImportedDeploymentRequestPreparedStackOverrideAwResource$Outbound + | undefined; + stack?: + | PersistImportedDeploymentRequestPreparedStackOverrideAwStack$Outbound + | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestOverrideAwBinding$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackOverrideAwBinding$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestOverrideAwBinding$Outbound, - PersistImportedDeploymentRequestOverrideAwBinding + PersistImportedDeploymentRequestPreparedStackOverrideAwBinding$Outbound, + PersistImportedDeploymentRequestPreparedStackOverrideAwBinding > = z.object({ resource: z.lazy(() => - PersistImportedDeploymentRequestOverrideAwResource$outboundSchema + PersistImportedDeploymentRequestPreparedStackOverrideAwResource$outboundSchema ).optional(), stack: z.lazy(() => - PersistImportedDeploymentRequestOverrideAwStack$outboundSchema + PersistImportedDeploymentRequestPreparedStackOverrideAwStack$outboundSchema ).optional(), }); -export function persistImportedDeploymentRequestOverrideAwBindingToJSON( - persistImportedDeploymentRequestOverrideAwBinding: - PersistImportedDeploymentRequestOverrideAwBinding, +export function persistImportedDeploymentRequestPreparedStackOverrideAwBindingToJSON( + persistImportedDeploymentRequestPreparedStackOverrideAwBinding: + PersistImportedDeploymentRequestPreparedStackOverrideAwBinding, ): string { return JSON.stringify( - PersistImportedDeploymentRequestOverrideAwBinding$outboundSchema.parse( - persistImportedDeploymentRequestOverrideAwBinding, - ), + PersistImportedDeploymentRequestPreparedStackOverrideAwBinding$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackOverrideAwBinding), ); } /** @internal */ -export const PersistImportedDeploymentRequestOverrideEffect$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestOverrideEffect, - ); +export const PersistImportedDeploymentRequestPreparedStackOverrideEffect$outboundSchema: + z.ZodEnum< + typeof PersistImportedDeploymentRequestPreparedStackOverrideEffect + > = z.enum(PersistImportedDeploymentRequestPreparedStackOverrideEffect); /** @internal */ -export type PersistImportedDeploymentRequestOverrideAwGrant$Outbound = { - actions?: Array | null | undefined; - dataActions?: Array | null | undefined; - permissions?: Array | null | undefined; - predefinedRoles?: Array | null | undefined; - residualPermissions?: Array | null | undefined; -}; +export type PersistImportedDeploymentRequestPreparedStackOverrideAwGrant$Outbound = + { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestOverrideAwGrant$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackOverrideAwGrant$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestOverrideAwGrant$Outbound, - PersistImportedDeploymentRequestOverrideAwGrant + PersistImportedDeploymentRequestPreparedStackOverrideAwGrant$Outbound, + PersistImportedDeploymentRequestPreparedStackOverrideAwGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -6521,154 +11684,157 @@ export const PersistImportedDeploymentRequestOverrideAwGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function persistImportedDeploymentRequestOverrideAwGrantToJSON( - persistImportedDeploymentRequestOverrideAwGrant: - PersistImportedDeploymentRequestOverrideAwGrant, +export function persistImportedDeploymentRequestPreparedStackOverrideAwGrantToJSON( + persistImportedDeploymentRequestPreparedStackOverrideAwGrant: + PersistImportedDeploymentRequestPreparedStackOverrideAwGrant, ): string { return JSON.stringify( - PersistImportedDeploymentRequestOverrideAwGrant$outboundSchema.parse( - persistImportedDeploymentRequestOverrideAwGrant, - ), + PersistImportedDeploymentRequestPreparedStackOverrideAwGrant$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackOverrideAwGrant), ); } /** @internal */ -export type PersistImportedDeploymentRequestOverrideAw$Outbound = { - binding: PersistImportedDeploymentRequestOverrideAwBinding$Outbound; +export type PersistImportedDeploymentRequestPreparedStackOverrideAw$Outbound = { + binding: + PersistImportedDeploymentRequestPreparedStackOverrideAwBinding$Outbound; description?: string | null | undefined; effect?: string | undefined; - grant: PersistImportedDeploymentRequestOverrideAwGrant$Outbound; + grant: PersistImportedDeploymentRequestPreparedStackOverrideAwGrant$Outbound; label?: string | null | undefined; }; /** @internal */ -export const PersistImportedDeploymentRequestOverrideAw$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackOverrideAw$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestOverrideAw$Outbound, - PersistImportedDeploymentRequestOverrideAw + PersistImportedDeploymentRequestPreparedStackOverrideAw$Outbound, + PersistImportedDeploymentRequestPreparedStackOverrideAw > = z.object({ binding: z.lazy(() => - PersistImportedDeploymentRequestOverrideAwBinding$outboundSchema + PersistImportedDeploymentRequestPreparedStackOverrideAwBinding$outboundSchema ), description: z.nullable(z.string()).optional(), - effect: PersistImportedDeploymentRequestOverrideEffect$outboundSchema - .optional(), + effect: + PersistImportedDeploymentRequestPreparedStackOverrideEffect$outboundSchema + .optional(), grant: z.lazy(() => - PersistImportedDeploymentRequestOverrideAwGrant$outboundSchema + PersistImportedDeploymentRequestPreparedStackOverrideAwGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function persistImportedDeploymentRequestOverrideAwToJSON( - persistImportedDeploymentRequestOverrideAw: - PersistImportedDeploymentRequestOverrideAw, +export function persistImportedDeploymentRequestPreparedStackOverrideAwToJSON( + persistImportedDeploymentRequestPreparedStackOverrideAw: + PersistImportedDeploymentRequestPreparedStackOverrideAw, ): string { return JSON.stringify( - PersistImportedDeploymentRequestOverrideAw$outboundSchema.parse( - persistImportedDeploymentRequestOverrideAw, - ), + PersistImportedDeploymentRequestPreparedStackOverrideAw$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackOverrideAw), ); } /** @internal */ -export type PersistImportedDeploymentRequestOverrideAzureResource$Outbound = { - scope: string; -}; +export type PersistImportedDeploymentRequestPreparedStackOverrideAzureResource$Outbound = + { + scope: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestOverrideAzureResource$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackOverrideAzureResource$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestOverrideAzureResource$Outbound, - PersistImportedDeploymentRequestOverrideAzureResource + PersistImportedDeploymentRequestPreparedStackOverrideAzureResource$Outbound, + PersistImportedDeploymentRequestPreparedStackOverrideAzureResource > = z.object({ scope: z.string(), }); -export function persistImportedDeploymentRequestOverrideAzureResourceToJSON( - persistImportedDeploymentRequestOverrideAzureResource: - PersistImportedDeploymentRequestOverrideAzureResource, +export function persistImportedDeploymentRequestPreparedStackOverrideAzureResourceToJSON( + persistImportedDeploymentRequestPreparedStackOverrideAzureResource: + PersistImportedDeploymentRequestPreparedStackOverrideAzureResource, ): string { return JSON.stringify( - PersistImportedDeploymentRequestOverrideAzureResource$outboundSchema.parse( - persistImportedDeploymentRequestOverrideAzureResource, - ), + PersistImportedDeploymentRequestPreparedStackOverrideAzureResource$outboundSchema + .parse( + persistImportedDeploymentRequestPreparedStackOverrideAzureResource, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestOverrideAzureStack$Outbound = { - scope: string; -}; +export type PersistImportedDeploymentRequestPreparedStackOverrideAzureStack$Outbound = + { + scope: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestOverrideAzureStack$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackOverrideAzureStack$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestOverrideAzureStack$Outbound, - PersistImportedDeploymentRequestOverrideAzureStack + PersistImportedDeploymentRequestPreparedStackOverrideAzureStack$Outbound, + PersistImportedDeploymentRequestPreparedStackOverrideAzureStack > = z.object({ scope: z.string(), }); -export function persistImportedDeploymentRequestOverrideAzureStackToJSON( - persistImportedDeploymentRequestOverrideAzureStack: - PersistImportedDeploymentRequestOverrideAzureStack, +export function persistImportedDeploymentRequestPreparedStackOverrideAzureStackToJSON( + persistImportedDeploymentRequestPreparedStackOverrideAzureStack: + PersistImportedDeploymentRequestPreparedStackOverrideAzureStack, ): string { return JSON.stringify( - PersistImportedDeploymentRequestOverrideAzureStack$outboundSchema.parse( - persistImportedDeploymentRequestOverrideAzureStack, - ), + PersistImportedDeploymentRequestPreparedStackOverrideAzureStack$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackOverrideAzureStack), ); } /** @internal */ -export type PersistImportedDeploymentRequestOverrideAzureBinding$Outbound = { - resource?: - | PersistImportedDeploymentRequestOverrideAzureResource$Outbound - | undefined; - stack?: - | PersistImportedDeploymentRequestOverrideAzureStack$Outbound - | undefined; -}; +export type PersistImportedDeploymentRequestPreparedStackOverrideAzureBinding$Outbound = + { + resource?: + | PersistImportedDeploymentRequestPreparedStackOverrideAzureResource$Outbound + | undefined; + stack?: + | PersistImportedDeploymentRequestPreparedStackOverrideAzureStack$Outbound + | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestOverrideAzureBinding$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackOverrideAzureBinding$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestOverrideAzureBinding$Outbound, - PersistImportedDeploymentRequestOverrideAzureBinding + PersistImportedDeploymentRequestPreparedStackOverrideAzureBinding$Outbound, + PersistImportedDeploymentRequestPreparedStackOverrideAzureBinding > = z.object({ resource: z.lazy(() => - PersistImportedDeploymentRequestOverrideAzureResource$outboundSchema + PersistImportedDeploymentRequestPreparedStackOverrideAzureResource$outboundSchema ).optional(), stack: z.lazy(() => - PersistImportedDeploymentRequestOverrideAzureStack$outboundSchema + PersistImportedDeploymentRequestPreparedStackOverrideAzureStack$outboundSchema ).optional(), }); -export function persistImportedDeploymentRequestOverrideAzureBindingToJSON( - persistImportedDeploymentRequestOverrideAzureBinding: - PersistImportedDeploymentRequestOverrideAzureBinding, +export function persistImportedDeploymentRequestPreparedStackOverrideAzureBindingToJSON( + persistImportedDeploymentRequestPreparedStackOverrideAzureBinding: + PersistImportedDeploymentRequestPreparedStackOverrideAzureBinding, ): string { return JSON.stringify( - PersistImportedDeploymentRequestOverrideAzureBinding$outboundSchema.parse( - persistImportedDeploymentRequestOverrideAzureBinding, - ), + PersistImportedDeploymentRequestPreparedStackOverrideAzureBinding$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackOverrideAzureBinding), ); } /** @internal */ -export type PersistImportedDeploymentRequestOverrideAzureGrant$Outbound = { - actions?: Array | null | undefined; - dataActions?: Array | null | undefined; - permissions?: Array | null | undefined; - predefinedRoles?: Array | null | undefined; - residualPermissions?: Array | null | undefined; -}; +export type PersistImportedDeploymentRequestPreparedStackOverrideAzureGrant$Outbound = + { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestOverrideAzureGrant$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackOverrideAzureGrant$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestOverrideAzureGrant$Outbound, - PersistImportedDeploymentRequestOverrideAzureGrant + PersistImportedDeploymentRequestPreparedStackOverrideAzureGrant$Outbound, + PersistImportedDeploymentRequestPreparedStackOverrideAzureGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -6677,126 +11843,132 @@ export const PersistImportedDeploymentRequestOverrideAzureGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function persistImportedDeploymentRequestOverrideAzureGrantToJSON( - persistImportedDeploymentRequestOverrideAzureGrant: - PersistImportedDeploymentRequestOverrideAzureGrant, +export function persistImportedDeploymentRequestPreparedStackOverrideAzureGrantToJSON( + persistImportedDeploymentRequestPreparedStackOverrideAzureGrant: + PersistImportedDeploymentRequestPreparedStackOverrideAzureGrant, ): string { return JSON.stringify( - PersistImportedDeploymentRequestOverrideAzureGrant$outboundSchema.parse( - persistImportedDeploymentRequestOverrideAzureGrant, - ), + PersistImportedDeploymentRequestPreparedStackOverrideAzureGrant$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackOverrideAzureGrant), ); } /** @internal */ -export type PersistImportedDeploymentRequestOverrideAzure$Outbound = { - binding: PersistImportedDeploymentRequestOverrideAzureBinding$Outbound; - description?: string | null | undefined; - grant: PersistImportedDeploymentRequestOverrideAzureGrant$Outbound; - label?: string | null | undefined; -}; +export type PersistImportedDeploymentRequestPreparedStackOverrideAzure$Outbound = + { + binding: + PersistImportedDeploymentRequestPreparedStackOverrideAzureBinding$Outbound; + description?: string | null | undefined; + grant: + PersistImportedDeploymentRequestPreparedStackOverrideAzureGrant$Outbound; + label?: string | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestOverrideAzure$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackOverrideAzure$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestOverrideAzure$Outbound, - PersistImportedDeploymentRequestOverrideAzure + PersistImportedDeploymentRequestPreparedStackOverrideAzure$Outbound, + PersistImportedDeploymentRequestPreparedStackOverrideAzure > = z.object({ binding: z.lazy(() => - PersistImportedDeploymentRequestOverrideAzureBinding$outboundSchema + PersistImportedDeploymentRequestPreparedStackOverrideAzureBinding$outboundSchema ), description: z.nullable(z.string()).optional(), grant: z.lazy(() => - PersistImportedDeploymentRequestOverrideAzureGrant$outboundSchema + PersistImportedDeploymentRequestPreparedStackOverrideAzureGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function persistImportedDeploymentRequestOverrideAzureToJSON( - persistImportedDeploymentRequestOverrideAzure: - PersistImportedDeploymentRequestOverrideAzure, +export function persistImportedDeploymentRequestPreparedStackOverrideAzureToJSON( + persistImportedDeploymentRequestPreparedStackOverrideAzure: + PersistImportedDeploymentRequestPreparedStackOverrideAzure, ): string { return JSON.stringify( - PersistImportedDeploymentRequestOverrideAzure$outboundSchema.parse( - persistImportedDeploymentRequestOverrideAzure, - ), + PersistImportedDeploymentRequestPreparedStackOverrideAzure$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackOverrideAzure), ); } /** @internal */ -export type PersistImportedDeploymentRequestOverrideConditionResource$Outbound = +export type PersistImportedDeploymentRequestPreparedStackOverrideConditionResource$Outbound = { expression: string; title: string; }; /** @internal */ -export const PersistImportedDeploymentRequestOverrideConditionResource$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackOverrideConditionResource$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestOverrideConditionResource$Outbound, - PersistImportedDeploymentRequestOverrideConditionResource + PersistImportedDeploymentRequestPreparedStackOverrideConditionResource$Outbound, + PersistImportedDeploymentRequestPreparedStackOverrideConditionResource > = z.object({ expression: z.string(), title: z.string(), }); -export function persistImportedDeploymentRequestOverrideConditionResourceToJSON( - persistImportedDeploymentRequestOverrideConditionResource: - PersistImportedDeploymentRequestOverrideConditionResource, +export function persistImportedDeploymentRequestPreparedStackOverrideConditionResourceToJSON( + persistImportedDeploymentRequestPreparedStackOverrideConditionResource: + PersistImportedDeploymentRequestPreparedStackOverrideConditionResource, ): string { return JSON.stringify( - PersistImportedDeploymentRequestOverrideConditionResource$outboundSchema - .parse(persistImportedDeploymentRequestOverrideConditionResource), + PersistImportedDeploymentRequestPreparedStackOverrideConditionResource$outboundSchema + .parse( + persistImportedDeploymentRequestPreparedStackOverrideConditionResource, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestOverrideResourceConditionUnion$Outbound = - | PersistImportedDeploymentRequestOverrideConditionResource$Outbound +export type PersistImportedDeploymentRequestPreparedStackOverrideResourceConditionUnion$Outbound = + | PersistImportedDeploymentRequestPreparedStackOverrideConditionResource$Outbound | any; /** @internal */ -export const PersistImportedDeploymentRequestOverrideResourceConditionUnion$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackOverrideResourceConditionUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestOverrideResourceConditionUnion$Outbound, - PersistImportedDeploymentRequestOverrideResourceConditionUnion + PersistImportedDeploymentRequestPreparedStackOverrideResourceConditionUnion$Outbound, + PersistImportedDeploymentRequestPreparedStackOverrideResourceConditionUnion > = z.union([ z.lazy(() => - PersistImportedDeploymentRequestOverrideConditionResource$outboundSchema + PersistImportedDeploymentRequestPreparedStackOverrideConditionResource$outboundSchema ), z.any(), ]); -export function persistImportedDeploymentRequestOverrideResourceConditionUnionToJSON( - persistImportedDeploymentRequestOverrideResourceConditionUnion: - PersistImportedDeploymentRequestOverrideResourceConditionUnion, +export function persistImportedDeploymentRequestPreparedStackOverrideResourceConditionUnionToJSON( + persistImportedDeploymentRequestPreparedStackOverrideResourceConditionUnion: + PersistImportedDeploymentRequestPreparedStackOverrideResourceConditionUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestOverrideResourceConditionUnion$outboundSchema - .parse(persistImportedDeploymentRequestOverrideResourceConditionUnion), + PersistImportedDeploymentRequestPreparedStackOverrideResourceConditionUnion$outboundSchema + .parse( + persistImportedDeploymentRequestPreparedStackOverrideResourceConditionUnion, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestOverrideGcpResource$Outbound = { - condition?: - | PersistImportedDeploymentRequestOverrideConditionResource$Outbound - | any - | null - | undefined; - scope: string; -}; +export type PersistImportedDeploymentRequestPreparedStackOverrideGcpResource$Outbound = + { + condition?: + | PersistImportedDeploymentRequestPreparedStackOverrideConditionResource$Outbound + | any + | null + | undefined; + scope: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestOverrideGcpResource$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackOverrideGcpResource$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestOverrideGcpResource$Outbound, - PersistImportedDeploymentRequestOverrideGcpResource + PersistImportedDeploymentRequestPreparedStackOverrideGcpResource$Outbound, + PersistImportedDeploymentRequestPreparedStackOverrideGcpResource > = z.object({ condition: z.nullable( z.union([ z.lazy(() => - PersistImportedDeploymentRequestOverrideConditionResource$outboundSchema + PersistImportedDeploymentRequestPreparedStackOverrideConditionResource$outboundSchema ), z.any(), ]), @@ -6804,91 +11976,95 @@ export const PersistImportedDeploymentRequestOverrideGcpResource$outboundSchema: scope: z.string(), }); -export function persistImportedDeploymentRequestOverrideGcpResourceToJSON( - persistImportedDeploymentRequestOverrideGcpResource: - PersistImportedDeploymentRequestOverrideGcpResource, +export function persistImportedDeploymentRequestPreparedStackOverrideGcpResourceToJSON( + persistImportedDeploymentRequestPreparedStackOverrideGcpResource: + PersistImportedDeploymentRequestPreparedStackOverrideGcpResource, ): string { return JSON.stringify( - PersistImportedDeploymentRequestOverrideGcpResource$outboundSchema.parse( - persistImportedDeploymentRequestOverrideGcpResource, - ), + PersistImportedDeploymentRequestPreparedStackOverrideGcpResource$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackOverrideGcpResource), ); } /** @internal */ -export type PersistImportedDeploymentRequestOverrideConditionStack$Outbound = { - expression: string; - title: string; -}; +export type PersistImportedDeploymentRequestPreparedStackOverrideConditionStack$Outbound = + { + expression: string; + title: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestOverrideConditionStack$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackOverrideConditionStack$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestOverrideConditionStack$Outbound, - PersistImportedDeploymentRequestOverrideConditionStack + PersistImportedDeploymentRequestPreparedStackOverrideConditionStack$Outbound, + PersistImportedDeploymentRequestPreparedStackOverrideConditionStack > = z.object({ expression: z.string(), title: z.string(), }); -export function persistImportedDeploymentRequestOverrideConditionStackToJSON( - persistImportedDeploymentRequestOverrideConditionStack: - PersistImportedDeploymentRequestOverrideConditionStack, +export function persistImportedDeploymentRequestPreparedStackOverrideConditionStackToJSON( + persistImportedDeploymentRequestPreparedStackOverrideConditionStack: + PersistImportedDeploymentRequestPreparedStackOverrideConditionStack, ): string { return JSON.stringify( - PersistImportedDeploymentRequestOverrideConditionStack$outboundSchema.parse( - persistImportedDeploymentRequestOverrideConditionStack, - ), + PersistImportedDeploymentRequestPreparedStackOverrideConditionStack$outboundSchema + .parse( + persistImportedDeploymentRequestPreparedStackOverrideConditionStack, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestOverrideStackConditionUnion$Outbound = - | PersistImportedDeploymentRequestOverrideConditionStack$Outbound +export type PersistImportedDeploymentRequestPreparedStackOverrideStackConditionUnion$Outbound = + | PersistImportedDeploymentRequestPreparedStackOverrideConditionStack$Outbound | any; /** @internal */ -export const PersistImportedDeploymentRequestOverrideStackConditionUnion$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackOverrideStackConditionUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestOverrideStackConditionUnion$Outbound, - PersistImportedDeploymentRequestOverrideStackConditionUnion + PersistImportedDeploymentRequestPreparedStackOverrideStackConditionUnion$Outbound, + PersistImportedDeploymentRequestPreparedStackOverrideStackConditionUnion > = z.union([ z.lazy(() => - PersistImportedDeploymentRequestOverrideConditionStack$outboundSchema + PersistImportedDeploymentRequestPreparedStackOverrideConditionStack$outboundSchema ), z.any(), ]); -export function persistImportedDeploymentRequestOverrideStackConditionUnionToJSON( - persistImportedDeploymentRequestOverrideStackConditionUnion: - PersistImportedDeploymentRequestOverrideStackConditionUnion, +export function persistImportedDeploymentRequestPreparedStackOverrideStackConditionUnionToJSON( + persistImportedDeploymentRequestPreparedStackOverrideStackConditionUnion: + PersistImportedDeploymentRequestPreparedStackOverrideStackConditionUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestOverrideStackConditionUnion$outboundSchema - .parse(persistImportedDeploymentRequestOverrideStackConditionUnion), + PersistImportedDeploymentRequestPreparedStackOverrideStackConditionUnion$outboundSchema + .parse( + persistImportedDeploymentRequestPreparedStackOverrideStackConditionUnion, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestOverrideGcpStack$Outbound = { - condition?: - | PersistImportedDeploymentRequestOverrideConditionStack$Outbound - | any - | null - | undefined; - scope: string; -}; +export type PersistImportedDeploymentRequestPreparedStackOverrideGcpStack$Outbound = + { + condition?: + | PersistImportedDeploymentRequestPreparedStackOverrideConditionStack$Outbound + | any + | null + | undefined; + scope: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestOverrideGcpStack$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackOverrideGcpStack$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestOverrideGcpStack$Outbound, - PersistImportedDeploymentRequestOverrideGcpStack + PersistImportedDeploymentRequestPreparedStackOverrideGcpStack$Outbound, + PersistImportedDeploymentRequestPreparedStackOverrideGcpStack > = z.object({ condition: z.nullable( z.union([ z.lazy(() => - PersistImportedDeploymentRequestOverrideConditionStack$outboundSchema + PersistImportedDeploymentRequestPreparedStackOverrideConditionStack$outboundSchema ), z.any(), ]), @@ -6896,64 +12072,66 @@ export const PersistImportedDeploymentRequestOverrideGcpStack$outboundSchema: scope: z.string(), }); -export function persistImportedDeploymentRequestOverrideGcpStackToJSON( - persistImportedDeploymentRequestOverrideGcpStack: - PersistImportedDeploymentRequestOverrideGcpStack, +export function persistImportedDeploymentRequestPreparedStackOverrideGcpStackToJSON( + persistImportedDeploymentRequestPreparedStackOverrideGcpStack: + PersistImportedDeploymentRequestPreparedStackOverrideGcpStack, ): string { return JSON.stringify( - PersistImportedDeploymentRequestOverrideGcpStack$outboundSchema.parse( - persistImportedDeploymentRequestOverrideGcpStack, - ), + PersistImportedDeploymentRequestPreparedStackOverrideGcpStack$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackOverrideGcpStack), ); } /** @internal */ -export type PersistImportedDeploymentRequestOverrideGcpBinding$Outbound = { - resource?: - | PersistImportedDeploymentRequestOverrideGcpResource$Outbound - | undefined; - stack?: PersistImportedDeploymentRequestOverrideGcpStack$Outbound | undefined; -}; +export type PersistImportedDeploymentRequestPreparedStackOverrideGcpBinding$Outbound = + { + resource?: + | PersistImportedDeploymentRequestPreparedStackOverrideGcpResource$Outbound + | undefined; + stack?: + | PersistImportedDeploymentRequestPreparedStackOverrideGcpStack$Outbound + | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestOverrideGcpBinding$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackOverrideGcpBinding$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestOverrideGcpBinding$Outbound, - PersistImportedDeploymentRequestOverrideGcpBinding + PersistImportedDeploymentRequestPreparedStackOverrideGcpBinding$Outbound, + PersistImportedDeploymentRequestPreparedStackOverrideGcpBinding > = z.object({ resource: z.lazy(() => - PersistImportedDeploymentRequestOverrideGcpResource$outboundSchema + PersistImportedDeploymentRequestPreparedStackOverrideGcpResource$outboundSchema ).optional(), stack: z.lazy(() => - PersistImportedDeploymentRequestOverrideGcpStack$outboundSchema + PersistImportedDeploymentRequestPreparedStackOverrideGcpStack$outboundSchema ).optional(), }); -export function persistImportedDeploymentRequestOverrideGcpBindingToJSON( - persistImportedDeploymentRequestOverrideGcpBinding: - PersistImportedDeploymentRequestOverrideGcpBinding, +export function persistImportedDeploymentRequestPreparedStackOverrideGcpBindingToJSON( + persistImportedDeploymentRequestPreparedStackOverrideGcpBinding: + PersistImportedDeploymentRequestPreparedStackOverrideGcpBinding, ): string { return JSON.stringify( - PersistImportedDeploymentRequestOverrideGcpBinding$outboundSchema.parse( - persistImportedDeploymentRequestOverrideGcpBinding, - ), + PersistImportedDeploymentRequestPreparedStackOverrideGcpBinding$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackOverrideGcpBinding), ); } /** @internal */ -export type PersistImportedDeploymentRequestOverrideGcpGrant$Outbound = { - actions?: Array | null | undefined; - dataActions?: Array | null | undefined; - permissions?: Array | null | undefined; - predefinedRoles?: Array | null | undefined; - residualPermissions?: Array | null | undefined; -}; +export type PersistImportedDeploymentRequestPreparedStackOverrideGcpGrant$Outbound = + { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestOverrideGcpGrant$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackOverrideGcpGrant$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestOverrideGcpGrant$Outbound, - PersistImportedDeploymentRequestOverrideGcpGrant + PersistImportedDeploymentRequestPreparedStackOverrideGcpGrant$Outbound, + PersistImportedDeploymentRequestPreparedStackOverrideGcpGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -6962,204 +12140,213 @@ export const PersistImportedDeploymentRequestOverrideGcpGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function persistImportedDeploymentRequestOverrideGcpGrantToJSON( - persistImportedDeploymentRequestOverrideGcpGrant: - PersistImportedDeploymentRequestOverrideGcpGrant, +export function persistImportedDeploymentRequestPreparedStackOverrideGcpGrantToJSON( + persistImportedDeploymentRequestPreparedStackOverrideGcpGrant: + PersistImportedDeploymentRequestPreparedStackOverrideGcpGrant, ): string { return JSON.stringify( - PersistImportedDeploymentRequestOverrideGcpGrant$outboundSchema.parse( - persistImportedDeploymentRequestOverrideGcpGrant, - ), + PersistImportedDeploymentRequestPreparedStackOverrideGcpGrant$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackOverrideGcpGrant), ); } /** @internal */ -export type PersistImportedDeploymentRequestOverrideGcp$Outbound = { - binding: PersistImportedDeploymentRequestOverrideGcpBinding$Outbound; - description?: string | null | undefined; - grant: PersistImportedDeploymentRequestOverrideGcpGrant$Outbound; - label?: string | null | undefined; -}; +export type PersistImportedDeploymentRequestPreparedStackOverrideGcp$Outbound = + { + binding: + PersistImportedDeploymentRequestPreparedStackOverrideGcpBinding$Outbound; + description?: string | null | undefined; + grant: + PersistImportedDeploymentRequestPreparedStackOverrideGcpGrant$Outbound; + label?: string | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestOverrideGcp$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackOverrideGcp$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestOverrideGcp$Outbound, - PersistImportedDeploymentRequestOverrideGcp + PersistImportedDeploymentRequestPreparedStackOverrideGcp$Outbound, + PersistImportedDeploymentRequestPreparedStackOverrideGcp > = z.object({ binding: z.lazy(() => - PersistImportedDeploymentRequestOverrideGcpBinding$outboundSchema + PersistImportedDeploymentRequestPreparedStackOverrideGcpBinding$outboundSchema ), description: z.nullable(z.string()).optional(), grant: z.lazy(() => - PersistImportedDeploymentRequestOverrideGcpGrant$outboundSchema + PersistImportedDeploymentRequestPreparedStackOverrideGcpGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function persistImportedDeploymentRequestOverrideGcpToJSON( - persistImportedDeploymentRequestOverrideGcp: - PersistImportedDeploymentRequestOverrideGcp, +export function persistImportedDeploymentRequestPreparedStackOverrideGcpToJSON( + persistImportedDeploymentRequestPreparedStackOverrideGcp: + PersistImportedDeploymentRequestPreparedStackOverrideGcp, ): string { return JSON.stringify( - PersistImportedDeploymentRequestOverrideGcp$outboundSchema.parse( - persistImportedDeploymentRequestOverrideGcp, - ), + PersistImportedDeploymentRequestPreparedStackOverrideGcp$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackOverrideGcp), ); } /** @internal */ -export type PersistImportedDeploymentRequestOverridePlatforms$Outbound = { - aws?: - | Array - | null - | undefined; - azure?: - | Array - | null - | undefined; - gcp?: - | Array - | null - | undefined; -}; +export type PersistImportedDeploymentRequestPreparedStackOverridePlatforms$Outbound = + { + aws?: + | Array + | null + | undefined; + azure?: + | Array< + PersistImportedDeploymentRequestPreparedStackOverrideAzure$Outbound + > + | null + | undefined; + gcp?: + | Array + | null + | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestOverridePlatforms$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackOverridePlatforms$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestOverridePlatforms$Outbound, - PersistImportedDeploymentRequestOverridePlatforms + PersistImportedDeploymentRequestPreparedStackOverridePlatforms$Outbound, + PersistImportedDeploymentRequestPreparedStackOverridePlatforms > = z.object({ aws: z.nullable( z.array(z.lazy(() => - PersistImportedDeploymentRequestOverrideAw$outboundSchema + PersistImportedDeploymentRequestPreparedStackOverrideAw$outboundSchema )), ).optional(), azure: z.nullable( z.array(z.lazy(() => - PersistImportedDeploymentRequestOverrideAzure$outboundSchema + PersistImportedDeploymentRequestPreparedStackOverrideAzure$outboundSchema )), ).optional(), gcp: z.nullable( z.array(z.lazy(() => - PersistImportedDeploymentRequestOverrideGcp$outboundSchema + PersistImportedDeploymentRequestPreparedStackOverrideGcp$outboundSchema )), ).optional(), }); -export function persistImportedDeploymentRequestOverridePlatformsToJSON( - persistImportedDeploymentRequestOverridePlatforms: - PersistImportedDeploymentRequestOverridePlatforms, +export function persistImportedDeploymentRequestPreparedStackOverridePlatformsToJSON( + persistImportedDeploymentRequestPreparedStackOverridePlatforms: + PersistImportedDeploymentRequestPreparedStackOverridePlatforms, ): string { return JSON.stringify( - PersistImportedDeploymentRequestOverridePlatforms$outboundSchema.parse( - persistImportedDeploymentRequestOverridePlatforms, - ), + PersistImportedDeploymentRequestPreparedStackOverridePlatforms$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackOverridePlatforms), ); } /** @internal */ -export type PersistImportedDeploymentRequestOverride$Outbound = { +export type PersistImportedDeploymentRequestPreparedStackOverride$Outbound = { description: string; id: string; - platforms: PersistImportedDeploymentRequestOverridePlatforms$Outbound; + platforms: + PersistImportedDeploymentRequestPreparedStackOverridePlatforms$Outbound; }; /** @internal */ -export const PersistImportedDeploymentRequestOverride$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestOverride$Outbound, - PersistImportedDeploymentRequestOverride -> = z.object({ - description: z.string(), - id: z.string(), - platforms: z.lazy(() => - PersistImportedDeploymentRequestOverridePlatforms$outboundSchema - ), -}); +export const PersistImportedDeploymentRequestPreparedStackOverride$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPreparedStackOverride$Outbound, + PersistImportedDeploymentRequestPreparedStackOverride + > = z.object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + PersistImportedDeploymentRequestPreparedStackOverridePlatforms$outboundSchema + ), + }); -export function persistImportedDeploymentRequestOverrideToJSON( - persistImportedDeploymentRequestOverride: - PersistImportedDeploymentRequestOverride, +export function persistImportedDeploymentRequestPreparedStackOverrideToJSON( + persistImportedDeploymentRequestPreparedStackOverride: + PersistImportedDeploymentRequestPreparedStackOverride, ): string { return JSON.stringify( - PersistImportedDeploymentRequestOverride$outboundSchema.parse( - persistImportedDeploymentRequestOverride, + PersistImportedDeploymentRequestPreparedStackOverride$outboundSchema.parse( + persistImportedDeploymentRequestPreparedStackOverride, ), ); } /** @internal */ -export type PersistImportedDeploymentRequestOverrideUnion$Outbound = - | PersistImportedDeploymentRequestOverride$Outbound +export type PersistImportedDeploymentRequestPreparedStackOverrideUnion$Outbound = + | PersistImportedDeploymentRequestPreparedStackOverride$Outbound | string; /** @internal */ -export const PersistImportedDeploymentRequestOverrideUnion$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackOverrideUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestOverrideUnion$Outbound, - PersistImportedDeploymentRequestOverrideUnion + PersistImportedDeploymentRequestPreparedStackOverrideUnion$Outbound, + PersistImportedDeploymentRequestPreparedStackOverrideUnion > = z.union([ - z.lazy(() => PersistImportedDeploymentRequestOverride$outboundSchema), + z.lazy(() => + PersistImportedDeploymentRequestPreparedStackOverride$outboundSchema + ), z.string(), ]); -export function persistImportedDeploymentRequestOverrideUnionToJSON( - persistImportedDeploymentRequestOverrideUnion: - PersistImportedDeploymentRequestOverrideUnion, +export function persistImportedDeploymentRequestPreparedStackOverrideUnionToJSON( + persistImportedDeploymentRequestPreparedStackOverrideUnion: + PersistImportedDeploymentRequestPreparedStackOverrideUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestOverrideUnion$outboundSchema.parse( - persistImportedDeploymentRequestOverrideUnion, - ), + PersistImportedDeploymentRequestPreparedStackOverrideUnion$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackOverrideUnion), ); } /** @internal */ -export type PersistImportedDeploymentRequestManagement2$Outbound = { - override: { - [k: string]: Array< - PersistImportedDeploymentRequestOverride$Outbound | string - >; +export type PersistImportedDeploymentRequestPreparedStackManagement2$Outbound = + { + override: { + [k: string]: Array< + PersistImportedDeploymentRequestPreparedStackOverride$Outbound | string + >; + }; }; -}; /** @internal */ -export const PersistImportedDeploymentRequestManagement2$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackManagement2$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestManagement2$Outbound, - PersistImportedDeploymentRequestManagement2 + PersistImportedDeploymentRequestPreparedStackManagement2$Outbound, + PersistImportedDeploymentRequestPreparedStackManagement2 > = z.object({ override: z.record( z.string(), z.array(z.union([ - z.lazy(() => PersistImportedDeploymentRequestOverride$outboundSchema), + z.lazy(() => + PersistImportedDeploymentRequestPreparedStackOverride$outboundSchema + ), z.string(), ])), ), }); -export function persistImportedDeploymentRequestManagement2ToJSON( - persistImportedDeploymentRequestManagement2: - PersistImportedDeploymentRequestManagement2, +export function persistImportedDeploymentRequestPreparedStackManagement2ToJSON( + persistImportedDeploymentRequestPreparedStackManagement2: + PersistImportedDeploymentRequestPreparedStackManagement2, ): string { return JSON.stringify( - PersistImportedDeploymentRequestManagement2$outboundSchema.parse( - persistImportedDeploymentRequestManagement2, - ), + PersistImportedDeploymentRequestPreparedStackManagement2$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackManagement2), ); } /** @internal */ -export type PersistImportedDeploymentRequestExtendAwResource$Outbound = { - condition?: { [k: string]: { [k: string]: string } } | null | undefined; - resources: Array; -}; +export type PersistImportedDeploymentRequestPreparedStackExtendAwResource$Outbound = + { + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + resources: Array; + }; /** @internal */ -export const PersistImportedDeploymentRequestExtendAwResource$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackExtendAwResource$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExtendAwResource$Outbound, - PersistImportedDeploymentRequestExtendAwResource + PersistImportedDeploymentRequestPreparedStackExtendAwResource$Outbound, + PersistImportedDeploymentRequestPreparedStackExtendAwResource > = z.object({ condition: z.nullable( z.record(z.string(), z.record(z.string(), z.string())), @@ -7167,28 +12354,28 @@ export const PersistImportedDeploymentRequestExtendAwResource$outboundSchema: resources: z.array(z.string()), }); -export function persistImportedDeploymentRequestExtendAwResourceToJSON( - persistImportedDeploymentRequestExtendAwResource: - PersistImportedDeploymentRequestExtendAwResource, +export function persistImportedDeploymentRequestPreparedStackExtendAwResourceToJSON( + persistImportedDeploymentRequestPreparedStackExtendAwResource: + PersistImportedDeploymentRequestPreparedStackExtendAwResource, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExtendAwResource$outboundSchema.parse( - persistImportedDeploymentRequestExtendAwResource, - ), + PersistImportedDeploymentRequestPreparedStackExtendAwResource$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackExtendAwResource), ); } /** @internal */ -export type PersistImportedDeploymentRequestExtendAwStack$Outbound = { - condition?: { [k: string]: { [k: string]: string } } | null | undefined; - resources: Array; -}; +export type PersistImportedDeploymentRequestPreparedStackExtendAwStack$Outbound = + { + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + resources: Array; + }; /** @internal */ -export const PersistImportedDeploymentRequestExtendAwStack$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackExtendAwStack$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExtendAwStack$Outbound, - PersistImportedDeploymentRequestExtendAwStack + PersistImportedDeploymentRequestPreparedStackExtendAwStack$Outbound, + PersistImportedDeploymentRequestPreparedStackExtendAwStack > = z.object({ condition: z.nullable( z.record(z.string(), z.record(z.string(), z.string())), @@ -7196,70 +12383,71 @@ export const PersistImportedDeploymentRequestExtendAwStack$outboundSchema: resources: z.array(z.string()), }); -export function persistImportedDeploymentRequestExtendAwStackToJSON( - persistImportedDeploymentRequestExtendAwStack: - PersistImportedDeploymentRequestExtendAwStack, +export function persistImportedDeploymentRequestPreparedStackExtendAwStackToJSON( + persistImportedDeploymentRequestPreparedStackExtendAwStack: + PersistImportedDeploymentRequestPreparedStackExtendAwStack, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExtendAwStack$outboundSchema.parse( - persistImportedDeploymentRequestExtendAwStack, - ), + PersistImportedDeploymentRequestPreparedStackExtendAwStack$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackExtendAwStack), ); } /** @internal */ -export type PersistImportedDeploymentRequestExtendAwBinding$Outbound = { - resource?: - | PersistImportedDeploymentRequestExtendAwResource$Outbound - | undefined; - stack?: PersistImportedDeploymentRequestExtendAwStack$Outbound | undefined; -}; +export type PersistImportedDeploymentRequestPreparedStackExtendAwBinding$Outbound = + { + resource?: + | PersistImportedDeploymentRequestPreparedStackExtendAwResource$Outbound + | undefined; + stack?: + | PersistImportedDeploymentRequestPreparedStackExtendAwStack$Outbound + | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestExtendAwBinding$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackExtendAwBinding$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExtendAwBinding$Outbound, - PersistImportedDeploymentRequestExtendAwBinding + PersistImportedDeploymentRequestPreparedStackExtendAwBinding$Outbound, + PersistImportedDeploymentRequestPreparedStackExtendAwBinding > = z.object({ resource: z.lazy(() => - PersistImportedDeploymentRequestExtendAwResource$outboundSchema + PersistImportedDeploymentRequestPreparedStackExtendAwResource$outboundSchema ).optional(), stack: z.lazy(() => - PersistImportedDeploymentRequestExtendAwStack$outboundSchema + PersistImportedDeploymentRequestPreparedStackExtendAwStack$outboundSchema ).optional(), }); -export function persistImportedDeploymentRequestExtendAwBindingToJSON( - persistImportedDeploymentRequestExtendAwBinding: - PersistImportedDeploymentRequestExtendAwBinding, +export function persistImportedDeploymentRequestPreparedStackExtendAwBindingToJSON( + persistImportedDeploymentRequestPreparedStackExtendAwBinding: + PersistImportedDeploymentRequestPreparedStackExtendAwBinding, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExtendAwBinding$outboundSchema.parse( - persistImportedDeploymentRequestExtendAwBinding, - ), + PersistImportedDeploymentRequestPreparedStackExtendAwBinding$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackExtendAwBinding), ); } /** @internal */ -export const PersistImportedDeploymentRequestExtendEffect$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestExtendEffect, - ); +export const PersistImportedDeploymentRequestPreparedStackExtendEffect$outboundSchema: + z.ZodEnum = + z.enum(PersistImportedDeploymentRequestPreparedStackExtendEffect); /** @internal */ -export type PersistImportedDeploymentRequestExtendAwGrant$Outbound = { - actions?: Array | null | undefined; - dataActions?: Array | null | undefined; - permissions?: Array | null | undefined; - predefinedRoles?: Array | null | undefined; - residualPermissions?: Array | null | undefined; -}; +export type PersistImportedDeploymentRequestPreparedStackExtendAwGrant$Outbound = + { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestExtendAwGrant$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackExtendAwGrant$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExtendAwGrant$Outbound, - PersistImportedDeploymentRequestExtendAwGrant + PersistImportedDeploymentRequestPreparedStackExtendAwGrant$Outbound, + PersistImportedDeploymentRequestPreparedStackExtendAwGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -7268,151 +12456,156 @@ export const PersistImportedDeploymentRequestExtendAwGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function persistImportedDeploymentRequestExtendAwGrantToJSON( - persistImportedDeploymentRequestExtendAwGrant: - PersistImportedDeploymentRequestExtendAwGrant, +export function persistImportedDeploymentRequestPreparedStackExtendAwGrantToJSON( + persistImportedDeploymentRequestPreparedStackExtendAwGrant: + PersistImportedDeploymentRequestPreparedStackExtendAwGrant, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExtendAwGrant$outboundSchema.parse( - persistImportedDeploymentRequestExtendAwGrant, - ), + PersistImportedDeploymentRequestPreparedStackExtendAwGrant$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackExtendAwGrant), ); } /** @internal */ -export type PersistImportedDeploymentRequestExtendAw$Outbound = { - binding: PersistImportedDeploymentRequestExtendAwBinding$Outbound; +export type PersistImportedDeploymentRequestPreparedStackExtendAw$Outbound = { + binding: + PersistImportedDeploymentRequestPreparedStackExtendAwBinding$Outbound; description?: string | null | undefined; effect?: string | undefined; - grant: PersistImportedDeploymentRequestExtendAwGrant$Outbound; + grant: PersistImportedDeploymentRequestPreparedStackExtendAwGrant$Outbound; label?: string | null | undefined; }; /** @internal */ -export const PersistImportedDeploymentRequestExtendAw$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExtendAw$Outbound, - PersistImportedDeploymentRequestExtendAw -> = z.object({ - binding: z.lazy(() => - PersistImportedDeploymentRequestExtendAwBinding$outboundSchema - ), - description: z.nullable(z.string()).optional(), - effect: PersistImportedDeploymentRequestExtendEffect$outboundSchema - .optional(), - grant: z.lazy(() => - PersistImportedDeploymentRequestExtendAwGrant$outboundSchema - ), - label: z.nullable(z.string()).optional(), -}); +export const PersistImportedDeploymentRequestPreparedStackExtendAw$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPreparedStackExtendAw$Outbound, + PersistImportedDeploymentRequestPreparedStackExtendAw + > = z.object({ + binding: z.lazy(() => + PersistImportedDeploymentRequestPreparedStackExtendAwBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: + PersistImportedDeploymentRequestPreparedStackExtendEffect$outboundSchema + .optional(), + grant: z.lazy(() => + PersistImportedDeploymentRequestPreparedStackExtendAwGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function persistImportedDeploymentRequestExtendAwToJSON( - persistImportedDeploymentRequestExtendAw: - PersistImportedDeploymentRequestExtendAw, +export function persistImportedDeploymentRequestPreparedStackExtendAwToJSON( + persistImportedDeploymentRequestPreparedStackExtendAw: + PersistImportedDeploymentRequestPreparedStackExtendAw, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExtendAw$outboundSchema.parse( - persistImportedDeploymentRequestExtendAw, + PersistImportedDeploymentRequestPreparedStackExtendAw$outboundSchema.parse( + persistImportedDeploymentRequestPreparedStackExtendAw, ), ); } /** @internal */ -export type PersistImportedDeploymentRequestExtendAzureResource$Outbound = { - scope: string; -}; +export type PersistImportedDeploymentRequestPreparedStackExtendAzureResource$Outbound = + { + scope: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestExtendAzureResource$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackExtendAzureResource$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExtendAzureResource$Outbound, - PersistImportedDeploymentRequestExtendAzureResource + PersistImportedDeploymentRequestPreparedStackExtendAzureResource$Outbound, + PersistImportedDeploymentRequestPreparedStackExtendAzureResource > = z.object({ scope: z.string(), }); -export function persistImportedDeploymentRequestExtendAzureResourceToJSON( - persistImportedDeploymentRequestExtendAzureResource: - PersistImportedDeploymentRequestExtendAzureResource, +export function persistImportedDeploymentRequestPreparedStackExtendAzureResourceToJSON( + persistImportedDeploymentRequestPreparedStackExtendAzureResource: + PersistImportedDeploymentRequestPreparedStackExtendAzureResource, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExtendAzureResource$outboundSchema.parse( - persistImportedDeploymentRequestExtendAzureResource, - ), + PersistImportedDeploymentRequestPreparedStackExtendAzureResource$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackExtendAzureResource), ); } /** @internal */ -export type PersistImportedDeploymentRequestExtendAzureStack$Outbound = { - scope: string; -}; +export type PersistImportedDeploymentRequestPreparedStackExtendAzureStack$Outbound = + { + scope: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestExtendAzureStack$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackExtendAzureStack$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExtendAzureStack$Outbound, - PersistImportedDeploymentRequestExtendAzureStack + PersistImportedDeploymentRequestPreparedStackExtendAzureStack$Outbound, + PersistImportedDeploymentRequestPreparedStackExtendAzureStack > = z.object({ scope: z.string(), }); -export function persistImportedDeploymentRequestExtendAzureStackToJSON( - persistImportedDeploymentRequestExtendAzureStack: - PersistImportedDeploymentRequestExtendAzureStack, +export function persistImportedDeploymentRequestPreparedStackExtendAzureStackToJSON( + persistImportedDeploymentRequestPreparedStackExtendAzureStack: + PersistImportedDeploymentRequestPreparedStackExtendAzureStack, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExtendAzureStack$outboundSchema.parse( - persistImportedDeploymentRequestExtendAzureStack, - ), + PersistImportedDeploymentRequestPreparedStackExtendAzureStack$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackExtendAzureStack), ); } /** @internal */ -export type PersistImportedDeploymentRequestExtendAzureBinding$Outbound = { - resource?: - | PersistImportedDeploymentRequestExtendAzureResource$Outbound - | undefined; - stack?: PersistImportedDeploymentRequestExtendAzureStack$Outbound | undefined; -}; +export type PersistImportedDeploymentRequestPreparedStackExtendAzureBinding$Outbound = + { + resource?: + | PersistImportedDeploymentRequestPreparedStackExtendAzureResource$Outbound + | undefined; + stack?: + | PersistImportedDeploymentRequestPreparedStackExtendAzureStack$Outbound + | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestExtendAzureBinding$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackExtendAzureBinding$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExtendAzureBinding$Outbound, - PersistImportedDeploymentRequestExtendAzureBinding + PersistImportedDeploymentRequestPreparedStackExtendAzureBinding$Outbound, + PersistImportedDeploymentRequestPreparedStackExtendAzureBinding > = z.object({ resource: z.lazy(() => - PersistImportedDeploymentRequestExtendAzureResource$outboundSchema + PersistImportedDeploymentRequestPreparedStackExtendAzureResource$outboundSchema ).optional(), stack: z.lazy(() => - PersistImportedDeploymentRequestExtendAzureStack$outboundSchema + PersistImportedDeploymentRequestPreparedStackExtendAzureStack$outboundSchema ).optional(), }); -export function persistImportedDeploymentRequestExtendAzureBindingToJSON( - persistImportedDeploymentRequestExtendAzureBinding: - PersistImportedDeploymentRequestExtendAzureBinding, +export function persistImportedDeploymentRequestPreparedStackExtendAzureBindingToJSON( + persistImportedDeploymentRequestPreparedStackExtendAzureBinding: + PersistImportedDeploymentRequestPreparedStackExtendAzureBinding, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExtendAzureBinding$outboundSchema.parse( - persistImportedDeploymentRequestExtendAzureBinding, - ), + PersistImportedDeploymentRequestPreparedStackExtendAzureBinding$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackExtendAzureBinding), ); } /** @internal */ -export type PersistImportedDeploymentRequestExtendAzureGrant$Outbound = { - actions?: Array | null | undefined; - dataActions?: Array | null | undefined; - permissions?: Array | null | undefined; - predefinedRoles?: Array | null | undefined; - residualPermissions?: Array | null | undefined; -}; +export type PersistImportedDeploymentRequestPreparedStackExtendAzureGrant$Outbound = + { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestExtendAzureGrant$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackExtendAzureGrant$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExtendAzureGrant$Outbound, - PersistImportedDeploymentRequestExtendAzureGrant + PersistImportedDeploymentRequestPreparedStackExtendAzureGrant$Outbound, + PersistImportedDeploymentRequestPreparedStackExtendAzureGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -7421,125 +12614,132 @@ export const PersistImportedDeploymentRequestExtendAzureGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function persistImportedDeploymentRequestExtendAzureGrantToJSON( - persistImportedDeploymentRequestExtendAzureGrant: - PersistImportedDeploymentRequestExtendAzureGrant, +export function persistImportedDeploymentRequestPreparedStackExtendAzureGrantToJSON( + persistImportedDeploymentRequestPreparedStackExtendAzureGrant: + PersistImportedDeploymentRequestPreparedStackExtendAzureGrant, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExtendAzureGrant$outboundSchema.parse( - persistImportedDeploymentRequestExtendAzureGrant, - ), + PersistImportedDeploymentRequestPreparedStackExtendAzureGrant$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackExtendAzureGrant), ); } /** @internal */ -export type PersistImportedDeploymentRequestExtendAzure$Outbound = { - binding: PersistImportedDeploymentRequestExtendAzureBinding$Outbound; - description?: string | null | undefined; - grant: PersistImportedDeploymentRequestExtendAzureGrant$Outbound; - label?: string | null | undefined; -}; +export type PersistImportedDeploymentRequestPreparedStackExtendAzure$Outbound = + { + binding: + PersistImportedDeploymentRequestPreparedStackExtendAzureBinding$Outbound; + description?: string | null | undefined; + grant: + PersistImportedDeploymentRequestPreparedStackExtendAzureGrant$Outbound; + label?: string | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestExtendAzure$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackExtendAzure$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExtendAzure$Outbound, - PersistImportedDeploymentRequestExtendAzure + PersistImportedDeploymentRequestPreparedStackExtendAzure$Outbound, + PersistImportedDeploymentRequestPreparedStackExtendAzure > = z.object({ binding: z.lazy(() => - PersistImportedDeploymentRequestExtendAzureBinding$outboundSchema + PersistImportedDeploymentRequestPreparedStackExtendAzureBinding$outboundSchema ), description: z.nullable(z.string()).optional(), grant: z.lazy(() => - PersistImportedDeploymentRequestExtendAzureGrant$outboundSchema + PersistImportedDeploymentRequestPreparedStackExtendAzureGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function persistImportedDeploymentRequestExtendAzureToJSON( - persistImportedDeploymentRequestExtendAzure: - PersistImportedDeploymentRequestExtendAzure, +export function persistImportedDeploymentRequestPreparedStackExtendAzureToJSON( + persistImportedDeploymentRequestPreparedStackExtendAzure: + PersistImportedDeploymentRequestPreparedStackExtendAzure, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExtendAzure$outboundSchema.parse( - persistImportedDeploymentRequestExtendAzure, - ), + PersistImportedDeploymentRequestPreparedStackExtendAzure$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackExtendAzure), ); } /** @internal */ -export type PersistImportedDeploymentRequestExtendConditionResource$Outbound = { - expression: string; - title: string; -}; +export type PersistImportedDeploymentRequestPreparedStackExtendConditionResource$Outbound = + { + expression: string; + title: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestExtendConditionResource$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackExtendConditionResource$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExtendConditionResource$Outbound, - PersistImportedDeploymentRequestExtendConditionResource + PersistImportedDeploymentRequestPreparedStackExtendConditionResource$Outbound, + PersistImportedDeploymentRequestPreparedStackExtendConditionResource > = z.object({ expression: z.string(), title: z.string(), }); -export function persistImportedDeploymentRequestExtendConditionResourceToJSON( - persistImportedDeploymentRequestExtendConditionResource: - PersistImportedDeploymentRequestExtendConditionResource, +export function persistImportedDeploymentRequestPreparedStackExtendConditionResourceToJSON( + persistImportedDeploymentRequestPreparedStackExtendConditionResource: + PersistImportedDeploymentRequestPreparedStackExtendConditionResource, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExtendConditionResource$outboundSchema - .parse(persistImportedDeploymentRequestExtendConditionResource), + PersistImportedDeploymentRequestPreparedStackExtendConditionResource$outboundSchema + .parse( + persistImportedDeploymentRequestPreparedStackExtendConditionResource, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestExtendResourceConditionUnion$Outbound = - | PersistImportedDeploymentRequestExtendConditionResource$Outbound +export type PersistImportedDeploymentRequestPreparedStackExtendResourceConditionUnion$Outbound = + | PersistImportedDeploymentRequestPreparedStackExtendConditionResource$Outbound | any; /** @internal */ -export const PersistImportedDeploymentRequestExtendResourceConditionUnion$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackExtendResourceConditionUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExtendResourceConditionUnion$Outbound, - PersistImportedDeploymentRequestExtendResourceConditionUnion + PersistImportedDeploymentRequestPreparedStackExtendResourceConditionUnion$Outbound, + PersistImportedDeploymentRequestPreparedStackExtendResourceConditionUnion > = z.union([ z.lazy(() => - PersistImportedDeploymentRequestExtendConditionResource$outboundSchema + PersistImportedDeploymentRequestPreparedStackExtendConditionResource$outboundSchema ), z.any(), ]); -export function persistImportedDeploymentRequestExtendResourceConditionUnionToJSON( - persistImportedDeploymentRequestExtendResourceConditionUnion: - PersistImportedDeploymentRequestExtendResourceConditionUnion, +export function persistImportedDeploymentRequestPreparedStackExtendResourceConditionUnionToJSON( + persistImportedDeploymentRequestPreparedStackExtendResourceConditionUnion: + PersistImportedDeploymentRequestPreparedStackExtendResourceConditionUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExtendResourceConditionUnion$outboundSchema - .parse(persistImportedDeploymentRequestExtendResourceConditionUnion), + PersistImportedDeploymentRequestPreparedStackExtendResourceConditionUnion$outboundSchema + .parse( + persistImportedDeploymentRequestPreparedStackExtendResourceConditionUnion, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestExtendGcpResource$Outbound = { - condition?: - | PersistImportedDeploymentRequestExtendConditionResource$Outbound - | any - | null - | undefined; - scope: string; -}; +export type PersistImportedDeploymentRequestPreparedStackExtendGcpResource$Outbound = + { + condition?: + | PersistImportedDeploymentRequestPreparedStackExtendConditionResource$Outbound + | any + | null + | undefined; + scope: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestExtendGcpResource$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackExtendGcpResource$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExtendGcpResource$Outbound, - PersistImportedDeploymentRequestExtendGcpResource + PersistImportedDeploymentRequestPreparedStackExtendGcpResource$Outbound, + PersistImportedDeploymentRequestPreparedStackExtendGcpResource > = z.object({ condition: z.nullable( z.union([ z.lazy(() => - PersistImportedDeploymentRequestExtendConditionResource$outboundSchema + PersistImportedDeploymentRequestPreparedStackExtendConditionResource$outboundSchema ), z.any(), ]), @@ -7547,91 +12747,93 @@ export const PersistImportedDeploymentRequestExtendGcpResource$outboundSchema: scope: z.string(), }); -export function persistImportedDeploymentRequestExtendGcpResourceToJSON( - persistImportedDeploymentRequestExtendGcpResource: - PersistImportedDeploymentRequestExtendGcpResource, +export function persistImportedDeploymentRequestPreparedStackExtendGcpResourceToJSON( + persistImportedDeploymentRequestPreparedStackExtendGcpResource: + PersistImportedDeploymentRequestPreparedStackExtendGcpResource, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExtendGcpResource$outboundSchema.parse( - persistImportedDeploymentRequestExtendGcpResource, - ), + PersistImportedDeploymentRequestPreparedStackExtendGcpResource$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackExtendGcpResource), ); } /** @internal */ -export type PersistImportedDeploymentRequestExtendConditionStack$Outbound = { - expression: string; - title: string; -}; +export type PersistImportedDeploymentRequestPreparedStackExtendConditionStack$Outbound = + { + expression: string; + title: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestExtendConditionStack$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackExtendConditionStack$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExtendConditionStack$Outbound, - PersistImportedDeploymentRequestExtendConditionStack + PersistImportedDeploymentRequestPreparedStackExtendConditionStack$Outbound, + PersistImportedDeploymentRequestPreparedStackExtendConditionStack > = z.object({ expression: z.string(), title: z.string(), }); -export function persistImportedDeploymentRequestExtendConditionStackToJSON( - persistImportedDeploymentRequestExtendConditionStack: - PersistImportedDeploymentRequestExtendConditionStack, +export function persistImportedDeploymentRequestPreparedStackExtendConditionStackToJSON( + persistImportedDeploymentRequestPreparedStackExtendConditionStack: + PersistImportedDeploymentRequestPreparedStackExtendConditionStack, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExtendConditionStack$outboundSchema.parse( - persistImportedDeploymentRequestExtendConditionStack, - ), + PersistImportedDeploymentRequestPreparedStackExtendConditionStack$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackExtendConditionStack), ); } /** @internal */ -export type PersistImportedDeploymentRequestExtendStackConditionUnion$Outbound = - | PersistImportedDeploymentRequestExtendConditionStack$Outbound +export type PersistImportedDeploymentRequestPreparedStackExtendStackConditionUnion$Outbound = + | PersistImportedDeploymentRequestPreparedStackExtendConditionStack$Outbound | any; /** @internal */ -export const PersistImportedDeploymentRequestExtendStackConditionUnion$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackExtendStackConditionUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExtendStackConditionUnion$Outbound, - PersistImportedDeploymentRequestExtendStackConditionUnion + PersistImportedDeploymentRequestPreparedStackExtendStackConditionUnion$Outbound, + PersistImportedDeploymentRequestPreparedStackExtendStackConditionUnion > = z.union([ z.lazy(() => - PersistImportedDeploymentRequestExtendConditionStack$outboundSchema + PersistImportedDeploymentRequestPreparedStackExtendConditionStack$outboundSchema ), z.any(), ]); -export function persistImportedDeploymentRequestExtendStackConditionUnionToJSON( - persistImportedDeploymentRequestExtendStackConditionUnion: - PersistImportedDeploymentRequestExtendStackConditionUnion, +export function persistImportedDeploymentRequestPreparedStackExtendStackConditionUnionToJSON( + persistImportedDeploymentRequestPreparedStackExtendStackConditionUnion: + PersistImportedDeploymentRequestPreparedStackExtendStackConditionUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExtendStackConditionUnion$outboundSchema - .parse(persistImportedDeploymentRequestExtendStackConditionUnion), + PersistImportedDeploymentRequestPreparedStackExtendStackConditionUnion$outboundSchema + .parse( + persistImportedDeploymentRequestPreparedStackExtendStackConditionUnion, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestExtendGcpStack$Outbound = { - condition?: - | PersistImportedDeploymentRequestExtendConditionStack$Outbound - | any - | null - | undefined; - scope: string; -}; +export type PersistImportedDeploymentRequestPreparedStackExtendGcpStack$Outbound = + { + condition?: + | PersistImportedDeploymentRequestPreparedStackExtendConditionStack$Outbound + | any + | null + | undefined; + scope: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestExtendGcpStack$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackExtendGcpStack$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExtendGcpStack$Outbound, - PersistImportedDeploymentRequestExtendGcpStack + PersistImportedDeploymentRequestPreparedStackExtendGcpStack$Outbound, + PersistImportedDeploymentRequestPreparedStackExtendGcpStack > = z.object({ condition: z.nullable( z.union([ z.lazy(() => - PersistImportedDeploymentRequestExtendConditionStack$outboundSchema + PersistImportedDeploymentRequestPreparedStackExtendConditionStack$outboundSchema ), z.any(), ]), @@ -7639,64 +12841,66 @@ export const PersistImportedDeploymentRequestExtendGcpStack$outboundSchema: scope: z.string(), }); -export function persistImportedDeploymentRequestExtendGcpStackToJSON( - persistImportedDeploymentRequestExtendGcpStack: - PersistImportedDeploymentRequestExtendGcpStack, +export function persistImportedDeploymentRequestPreparedStackExtendGcpStackToJSON( + persistImportedDeploymentRequestPreparedStackExtendGcpStack: + PersistImportedDeploymentRequestPreparedStackExtendGcpStack, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExtendGcpStack$outboundSchema.parse( - persistImportedDeploymentRequestExtendGcpStack, - ), + PersistImportedDeploymentRequestPreparedStackExtendGcpStack$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackExtendGcpStack), ); } /** @internal */ -export type PersistImportedDeploymentRequestExtendGcpBinding$Outbound = { - resource?: - | PersistImportedDeploymentRequestExtendGcpResource$Outbound - | undefined; - stack?: PersistImportedDeploymentRequestExtendGcpStack$Outbound | undefined; -}; +export type PersistImportedDeploymentRequestPreparedStackExtendGcpBinding$Outbound = + { + resource?: + | PersistImportedDeploymentRequestPreparedStackExtendGcpResource$Outbound + | undefined; + stack?: + | PersistImportedDeploymentRequestPreparedStackExtendGcpStack$Outbound + | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestExtendGcpBinding$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackExtendGcpBinding$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExtendGcpBinding$Outbound, - PersistImportedDeploymentRequestExtendGcpBinding + PersistImportedDeploymentRequestPreparedStackExtendGcpBinding$Outbound, + PersistImportedDeploymentRequestPreparedStackExtendGcpBinding > = z.object({ resource: z.lazy(() => - PersistImportedDeploymentRequestExtendGcpResource$outboundSchema + PersistImportedDeploymentRequestPreparedStackExtendGcpResource$outboundSchema ).optional(), stack: z.lazy(() => - PersistImportedDeploymentRequestExtendGcpStack$outboundSchema + PersistImportedDeploymentRequestPreparedStackExtendGcpStack$outboundSchema ).optional(), }); -export function persistImportedDeploymentRequestExtendGcpBindingToJSON( - persistImportedDeploymentRequestExtendGcpBinding: - PersistImportedDeploymentRequestExtendGcpBinding, +export function persistImportedDeploymentRequestPreparedStackExtendGcpBindingToJSON( + persistImportedDeploymentRequestPreparedStackExtendGcpBinding: + PersistImportedDeploymentRequestPreparedStackExtendGcpBinding, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExtendGcpBinding$outboundSchema.parse( - persistImportedDeploymentRequestExtendGcpBinding, - ), + PersistImportedDeploymentRequestPreparedStackExtendGcpBinding$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackExtendGcpBinding), ); } /** @internal */ -export type PersistImportedDeploymentRequestExtendGcpGrant$Outbound = { - actions?: Array | null | undefined; - dataActions?: Array | null | undefined; - permissions?: Array | null | undefined; - predefinedRoles?: Array | null | undefined; - residualPermissions?: Array | null | undefined; -}; +export type PersistImportedDeploymentRequestPreparedStackExtendGcpGrant$Outbound = + { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestExtendGcpGrant$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackExtendGcpGrant$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExtendGcpGrant$Outbound, - PersistImportedDeploymentRequestExtendGcpGrant + PersistImportedDeploymentRequestPreparedStackExtendGcpGrant$Outbound, + PersistImportedDeploymentRequestPreparedStackExtendGcpGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -7705,232 +12909,241 @@ export const PersistImportedDeploymentRequestExtendGcpGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function persistImportedDeploymentRequestExtendGcpGrantToJSON( - persistImportedDeploymentRequestExtendGcpGrant: - PersistImportedDeploymentRequestExtendGcpGrant, +export function persistImportedDeploymentRequestPreparedStackExtendGcpGrantToJSON( + persistImportedDeploymentRequestPreparedStackExtendGcpGrant: + PersistImportedDeploymentRequestPreparedStackExtendGcpGrant, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExtendGcpGrant$outboundSchema.parse( - persistImportedDeploymentRequestExtendGcpGrant, - ), + PersistImportedDeploymentRequestPreparedStackExtendGcpGrant$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackExtendGcpGrant), ); } /** @internal */ -export type PersistImportedDeploymentRequestExtendGcp$Outbound = { - binding: PersistImportedDeploymentRequestExtendGcpBinding$Outbound; +export type PersistImportedDeploymentRequestPreparedStackExtendGcp$Outbound = { + binding: + PersistImportedDeploymentRequestPreparedStackExtendGcpBinding$Outbound; description?: string | null | undefined; - grant: PersistImportedDeploymentRequestExtendGcpGrant$Outbound; + grant: PersistImportedDeploymentRequestPreparedStackExtendGcpGrant$Outbound; label?: string | null | undefined; }; /** @internal */ -export const PersistImportedDeploymentRequestExtendGcp$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackExtendGcp$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExtendGcp$Outbound, - PersistImportedDeploymentRequestExtendGcp + PersistImportedDeploymentRequestPreparedStackExtendGcp$Outbound, + PersistImportedDeploymentRequestPreparedStackExtendGcp > = z.object({ binding: z.lazy(() => - PersistImportedDeploymentRequestExtendGcpBinding$outboundSchema + PersistImportedDeploymentRequestPreparedStackExtendGcpBinding$outboundSchema ), description: z.nullable(z.string()).optional(), grant: z.lazy(() => - PersistImportedDeploymentRequestExtendGcpGrant$outboundSchema + PersistImportedDeploymentRequestPreparedStackExtendGcpGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function persistImportedDeploymentRequestExtendGcpToJSON( - persistImportedDeploymentRequestExtendGcp: - PersistImportedDeploymentRequestExtendGcp, +export function persistImportedDeploymentRequestPreparedStackExtendGcpToJSON( + persistImportedDeploymentRequestPreparedStackExtendGcp: + PersistImportedDeploymentRequestPreparedStackExtendGcp, ): string { - return JSON.stringify( - PersistImportedDeploymentRequestExtendGcp$outboundSchema.parse( - persistImportedDeploymentRequestExtendGcp, - ), - ); -} - -/** @internal */ -export type PersistImportedDeploymentRequestExtendPlatforms$Outbound = { - aws?: - | Array - | null - | undefined; - azure?: - | Array - | null - | undefined; - gcp?: - | Array - | null - | undefined; -}; + return JSON.stringify( + PersistImportedDeploymentRequestPreparedStackExtendGcp$outboundSchema.parse( + persistImportedDeploymentRequestPreparedStackExtendGcp, + ), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestPreparedStackExtendPlatforms$Outbound = + { + aws?: + | Array + | null + | undefined; + azure?: + | Array + | null + | undefined; + gcp?: + | Array + | null + | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestExtendPlatforms$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackExtendPlatforms$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExtendPlatforms$Outbound, - PersistImportedDeploymentRequestExtendPlatforms + PersistImportedDeploymentRequestPreparedStackExtendPlatforms$Outbound, + PersistImportedDeploymentRequestPreparedStackExtendPlatforms > = z.object({ aws: z.nullable( z.array(z.lazy(() => - PersistImportedDeploymentRequestExtendAw$outboundSchema + PersistImportedDeploymentRequestPreparedStackExtendAw$outboundSchema )), ).optional(), azure: z.nullable( z.array(z.lazy(() => - PersistImportedDeploymentRequestExtendAzure$outboundSchema + PersistImportedDeploymentRequestPreparedStackExtendAzure$outboundSchema )), ).optional(), gcp: z.nullable( z.array(z.lazy(() => - PersistImportedDeploymentRequestExtendGcp$outboundSchema + PersistImportedDeploymentRequestPreparedStackExtendGcp$outboundSchema )), ).optional(), }); -export function persistImportedDeploymentRequestExtendPlatformsToJSON( - persistImportedDeploymentRequestExtendPlatforms: - PersistImportedDeploymentRequestExtendPlatforms, +export function persistImportedDeploymentRequestPreparedStackExtendPlatformsToJSON( + persistImportedDeploymentRequestPreparedStackExtendPlatforms: + PersistImportedDeploymentRequestPreparedStackExtendPlatforms, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExtendPlatforms$outboundSchema.parse( - persistImportedDeploymentRequestExtendPlatforms, - ), + PersistImportedDeploymentRequestPreparedStackExtendPlatforms$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackExtendPlatforms), ); } /** @internal */ -export type PersistImportedDeploymentRequestExtend$Outbound = { +export type PersistImportedDeploymentRequestPreparedStackExtend$Outbound = { description: string; id: string; - platforms: PersistImportedDeploymentRequestExtendPlatforms$Outbound; + platforms: + PersistImportedDeploymentRequestPreparedStackExtendPlatforms$Outbound; }; /** @internal */ -export const PersistImportedDeploymentRequestExtend$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExtend$Outbound, - PersistImportedDeploymentRequestExtend -> = z.object({ - description: z.string(), - id: z.string(), - platforms: z.lazy(() => - PersistImportedDeploymentRequestExtendPlatforms$outboundSchema - ), -}); +export const PersistImportedDeploymentRequestPreparedStackExtend$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPreparedStackExtend$Outbound, + PersistImportedDeploymentRequestPreparedStackExtend + > = z.object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + PersistImportedDeploymentRequestPreparedStackExtendPlatforms$outboundSchema + ), + }); -export function persistImportedDeploymentRequestExtendToJSON( - persistImportedDeploymentRequestExtend: - PersistImportedDeploymentRequestExtend, +export function persistImportedDeploymentRequestPreparedStackExtendToJSON( + persistImportedDeploymentRequestPreparedStackExtend: + PersistImportedDeploymentRequestPreparedStackExtend, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExtend$outboundSchema.parse( - persistImportedDeploymentRequestExtend, + PersistImportedDeploymentRequestPreparedStackExtend$outboundSchema.parse( + persistImportedDeploymentRequestPreparedStackExtend, ), ); } /** @internal */ -export type PersistImportedDeploymentRequestExtendUnion$Outbound = - | PersistImportedDeploymentRequestExtend$Outbound +export type PersistImportedDeploymentRequestPreparedStackExtendUnion$Outbound = + | PersistImportedDeploymentRequestPreparedStackExtend$Outbound | string; /** @internal */ -export const PersistImportedDeploymentRequestExtendUnion$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackExtendUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestExtendUnion$Outbound, - PersistImportedDeploymentRequestExtendUnion + PersistImportedDeploymentRequestPreparedStackExtendUnion$Outbound, + PersistImportedDeploymentRequestPreparedStackExtendUnion > = z.union([ - z.lazy(() => PersistImportedDeploymentRequestExtend$outboundSchema), + z.lazy(() => + PersistImportedDeploymentRequestPreparedStackExtend$outboundSchema + ), z.string(), ]); -export function persistImportedDeploymentRequestExtendUnionToJSON( - persistImportedDeploymentRequestExtendUnion: - PersistImportedDeploymentRequestExtendUnion, +export function persistImportedDeploymentRequestPreparedStackExtendUnionToJSON( + persistImportedDeploymentRequestPreparedStackExtendUnion: + PersistImportedDeploymentRequestPreparedStackExtendUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestExtendUnion$outboundSchema.parse( - persistImportedDeploymentRequestExtendUnion, - ), + PersistImportedDeploymentRequestPreparedStackExtendUnion$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackExtendUnion), ); } /** @internal */ -export type PersistImportedDeploymentRequestManagement1$Outbound = { - extend: { - [k: string]: Array< - PersistImportedDeploymentRequestExtend$Outbound | string - >; +export type PersistImportedDeploymentRequestPreparedStackManagement1$Outbound = + { + extend: { + [k: string]: Array< + PersistImportedDeploymentRequestPreparedStackExtend$Outbound | string + >; + }; }; -}; /** @internal */ -export const PersistImportedDeploymentRequestManagement1$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackManagement1$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestManagement1$Outbound, - PersistImportedDeploymentRequestManagement1 + PersistImportedDeploymentRequestPreparedStackManagement1$Outbound, + PersistImportedDeploymentRequestPreparedStackManagement1 > = z.object({ extend: z.record( z.string(), z.array(z.union([ - z.lazy(() => PersistImportedDeploymentRequestExtend$outboundSchema), + z.lazy(() => + PersistImportedDeploymentRequestPreparedStackExtend$outboundSchema + ), z.string(), ])), ), }); -export function persistImportedDeploymentRequestManagement1ToJSON( - persistImportedDeploymentRequestManagement1: - PersistImportedDeploymentRequestManagement1, +export function persistImportedDeploymentRequestPreparedStackManagement1ToJSON( + persistImportedDeploymentRequestPreparedStackManagement1: + PersistImportedDeploymentRequestPreparedStackManagement1, ): string { return JSON.stringify( - PersistImportedDeploymentRequestManagement1$outboundSchema.parse( - persistImportedDeploymentRequestManagement1, - ), + PersistImportedDeploymentRequestPreparedStackManagement1$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackManagement1), ); } /** @internal */ -export type PersistImportedDeploymentRequestManagementUnion$Outbound = - | PersistImportedDeploymentRequestManagement1$Outbound - | PersistImportedDeploymentRequestManagement2$Outbound +export type PersistImportedDeploymentRequestPreparedStackManagementUnion$Outbound = + | PersistImportedDeploymentRequestPreparedStackManagement1$Outbound + | PersistImportedDeploymentRequestPreparedStackManagement2$Outbound | string; /** @internal */ -export const PersistImportedDeploymentRequestManagementUnion$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackManagementUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestManagementUnion$Outbound, - PersistImportedDeploymentRequestManagementUnion + PersistImportedDeploymentRequestPreparedStackManagementUnion$Outbound, + PersistImportedDeploymentRequestPreparedStackManagementUnion > = z.union([ - z.lazy(() => PersistImportedDeploymentRequestManagement1$outboundSchema), - z.lazy(() => PersistImportedDeploymentRequestManagement2$outboundSchema), - PersistImportedDeploymentRequestManagementEnum$outboundSchema, + z.lazy(() => + PersistImportedDeploymentRequestPreparedStackManagement1$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestPreparedStackManagement2$outboundSchema + ), + PersistImportedDeploymentRequestPreparedStackManagementEnum$outboundSchema, ]); -export function persistImportedDeploymentRequestManagementUnionToJSON( - persistImportedDeploymentRequestManagementUnion: - PersistImportedDeploymentRequestManagementUnion, +export function persistImportedDeploymentRequestPreparedStackManagementUnionToJSON( + persistImportedDeploymentRequestPreparedStackManagementUnion: + PersistImportedDeploymentRequestPreparedStackManagementUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestManagementUnion$outboundSchema.parse( - persistImportedDeploymentRequestManagementUnion, - ), + PersistImportedDeploymentRequestPreparedStackManagementUnion$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackManagementUnion), ); } /** @internal */ -export type PersistImportedDeploymentRequestProfileAwResource$Outbound = { - condition?: { [k: string]: { [k: string]: string } } | null | undefined; - resources: Array; -}; +export type PersistImportedDeploymentRequestPreparedStackProfileAwResource$Outbound = + { + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + resources: Array; + }; /** @internal */ -export const PersistImportedDeploymentRequestProfileAwResource$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackProfileAwResource$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProfileAwResource$Outbound, - PersistImportedDeploymentRequestProfileAwResource + PersistImportedDeploymentRequestPreparedStackProfileAwResource$Outbound, + PersistImportedDeploymentRequestPreparedStackProfileAwResource > = z.object({ condition: z.nullable( z.record(z.string(), z.record(z.string(), z.string())), @@ -7938,28 +13151,28 @@ export const PersistImportedDeploymentRequestProfileAwResource$outboundSchema: resources: z.array(z.string()), }); -export function persistImportedDeploymentRequestProfileAwResourceToJSON( - persistImportedDeploymentRequestProfileAwResource: - PersistImportedDeploymentRequestProfileAwResource, +export function persistImportedDeploymentRequestPreparedStackProfileAwResourceToJSON( + persistImportedDeploymentRequestPreparedStackProfileAwResource: + PersistImportedDeploymentRequestPreparedStackProfileAwResource, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProfileAwResource$outboundSchema.parse( - persistImportedDeploymentRequestProfileAwResource, - ), + PersistImportedDeploymentRequestPreparedStackProfileAwResource$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackProfileAwResource), ); } /** @internal */ -export type PersistImportedDeploymentRequestProfileAwStack$Outbound = { - condition?: { [k: string]: { [k: string]: string } } | null | undefined; - resources: Array; -}; +export type PersistImportedDeploymentRequestPreparedStackProfileAwStack$Outbound = + { + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + resources: Array; + }; /** @internal */ -export const PersistImportedDeploymentRequestProfileAwStack$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackProfileAwStack$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProfileAwStack$Outbound, - PersistImportedDeploymentRequestProfileAwStack + PersistImportedDeploymentRequestPreparedStackProfileAwStack$Outbound, + PersistImportedDeploymentRequestPreparedStackProfileAwStack > = z.object({ condition: z.nullable( z.record(z.string(), z.record(z.string(), z.string())), @@ -7967,70 +13180,71 @@ export const PersistImportedDeploymentRequestProfileAwStack$outboundSchema: resources: z.array(z.string()), }); -export function persistImportedDeploymentRequestProfileAwStackToJSON( - persistImportedDeploymentRequestProfileAwStack: - PersistImportedDeploymentRequestProfileAwStack, +export function persistImportedDeploymentRequestPreparedStackProfileAwStackToJSON( + persistImportedDeploymentRequestPreparedStackProfileAwStack: + PersistImportedDeploymentRequestPreparedStackProfileAwStack, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProfileAwStack$outboundSchema.parse( - persistImportedDeploymentRequestProfileAwStack, - ), + PersistImportedDeploymentRequestPreparedStackProfileAwStack$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackProfileAwStack), ); } /** @internal */ -export type PersistImportedDeploymentRequestProfileAwBinding$Outbound = { - resource?: - | PersistImportedDeploymentRequestProfileAwResource$Outbound - | undefined; - stack?: PersistImportedDeploymentRequestProfileAwStack$Outbound | undefined; -}; +export type PersistImportedDeploymentRequestPreparedStackProfileAwBinding$Outbound = + { + resource?: + | PersistImportedDeploymentRequestPreparedStackProfileAwResource$Outbound + | undefined; + stack?: + | PersistImportedDeploymentRequestPreparedStackProfileAwStack$Outbound + | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestProfileAwBinding$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackProfileAwBinding$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProfileAwBinding$Outbound, - PersistImportedDeploymentRequestProfileAwBinding + PersistImportedDeploymentRequestPreparedStackProfileAwBinding$Outbound, + PersistImportedDeploymentRequestPreparedStackProfileAwBinding > = z.object({ resource: z.lazy(() => - PersistImportedDeploymentRequestProfileAwResource$outboundSchema + PersistImportedDeploymentRequestPreparedStackProfileAwResource$outboundSchema ).optional(), stack: z.lazy(() => - PersistImportedDeploymentRequestProfileAwStack$outboundSchema + PersistImportedDeploymentRequestPreparedStackProfileAwStack$outboundSchema ).optional(), }); -export function persistImportedDeploymentRequestProfileAwBindingToJSON( - persistImportedDeploymentRequestProfileAwBinding: - PersistImportedDeploymentRequestProfileAwBinding, +export function persistImportedDeploymentRequestPreparedStackProfileAwBindingToJSON( + persistImportedDeploymentRequestPreparedStackProfileAwBinding: + PersistImportedDeploymentRequestPreparedStackProfileAwBinding, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProfileAwBinding$outboundSchema.parse( - persistImportedDeploymentRequestProfileAwBinding, - ), + PersistImportedDeploymentRequestPreparedStackProfileAwBinding$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackProfileAwBinding), ); } /** @internal */ -export const PersistImportedDeploymentRequestProfileEffect$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestProfileEffect, - ); +export const PersistImportedDeploymentRequestPreparedStackProfileEffect$outboundSchema: + z.ZodEnum = + z.enum(PersistImportedDeploymentRequestPreparedStackProfileEffect); /** @internal */ -export type PersistImportedDeploymentRequestProfileAwGrant$Outbound = { - actions?: Array | null | undefined; - dataActions?: Array | null | undefined; - permissions?: Array | null | undefined; - predefinedRoles?: Array | null | undefined; - residualPermissions?: Array | null | undefined; -}; +export type PersistImportedDeploymentRequestPreparedStackProfileAwGrant$Outbound = + { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestProfileAwGrant$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackProfileAwGrant$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProfileAwGrant$Outbound, - PersistImportedDeploymentRequestProfileAwGrant + PersistImportedDeploymentRequestPreparedStackProfileAwGrant$Outbound, + PersistImportedDeploymentRequestPreparedStackProfileAwGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -8039,154 +13253,156 @@ export const PersistImportedDeploymentRequestProfileAwGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function persistImportedDeploymentRequestProfileAwGrantToJSON( - persistImportedDeploymentRequestProfileAwGrant: - PersistImportedDeploymentRequestProfileAwGrant, +export function persistImportedDeploymentRequestPreparedStackProfileAwGrantToJSON( + persistImportedDeploymentRequestPreparedStackProfileAwGrant: + PersistImportedDeploymentRequestPreparedStackProfileAwGrant, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProfileAwGrant$outboundSchema.parse( - persistImportedDeploymentRequestProfileAwGrant, - ), + PersistImportedDeploymentRequestPreparedStackProfileAwGrant$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackProfileAwGrant), ); } /** @internal */ -export type PersistImportedDeploymentRequestProfileAw$Outbound = { - binding: PersistImportedDeploymentRequestProfileAwBinding$Outbound; +export type PersistImportedDeploymentRequestPreparedStackProfileAw$Outbound = { + binding: + PersistImportedDeploymentRequestPreparedStackProfileAwBinding$Outbound; description?: string | null | undefined; effect?: string | undefined; - grant: PersistImportedDeploymentRequestProfileAwGrant$Outbound; + grant: PersistImportedDeploymentRequestPreparedStackProfileAwGrant$Outbound; label?: string | null | undefined; }; /** @internal */ -export const PersistImportedDeploymentRequestProfileAw$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackProfileAw$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProfileAw$Outbound, - PersistImportedDeploymentRequestProfileAw + PersistImportedDeploymentRequestPreparedStackProfileAw$Outbound, + PersistImportedDeploymentRequestPreparedStackProfileAw > = z.object({ binding: z.lazy(() => - PersistImportedDeploymentRequestProfileAwBinding$outboundSchema + PersistImportedDeploymentRequestPreparedStackProfileAwBinding$outboundSchema ), description: z.nullable(z.string()).optional(), - effect: PersistImportedDeploymentRequestProfileEffect$outboundSchema - .optional(), + effect: + PersistImportedDeploymentRequestPreparedStackProfileEffect$outboundSchema + .optional(), grant: z.lazy(() => - PersistImportedDeploymentRequestProfileAwGrant$outboundSchema + PersistImportedDeploymentRequestPreparedStackProfileAwGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function persistImportedDeploymentRequestProfileAwToJSON( - persistImportedDeploymentRequestProfileAw: - PersistImportedDeploymentRequestProfileAw, +export function persistImportedDeploymentRequestPreparedStackProfileAwToJSON( + persistImportedDeploymentRequestPreparedStackProfileAw: + PersistImportedDeploymentRequestPreparedStackProfileAw, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProfileAw$outboundSchema.parse( - persistImportedDeploymentRequestProfileAw, + PersistImportedDeploymentRequestPreparedStackProfileAw$outboundSchema.parse( + persistImportedDeploymentRequestPreparedStackProfileAw, ), ); } /** @internal */ -export type PersistImportedDeploymentRequestProfileAzureResource$Outbound = { - scope: string; -}; +export type PersistImportedDeploymentRequestPreparedStackProfileAzureResource$Outbound = + { + scope: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestProfileAzureResource$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackProfileAzureResource$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProfileAzureResource$Outbound, - PersistImportedDeploymentRequestProfileAzureResource + PersistImportedDeploymentRequestPreparedStackProfileAzureResource$Outbound, + PersistImportedDeploymentRequestPreparedStackProfileAzureResource > = z.object({ scope: z.string(), }); -export function persistImportedDeploymentRequestProfileAzureResourceToJSON( - persistImportedDeploymentRequestProfileAzureResource: - PersistImportedDeploymentRequestProfileAzureResource, +export function persistImportedDeploymentRequestPreparedStackProfileAzureResourceToJSON( + persistImportedDeploymentRequestPreparedStackProfileAzureResource: + PersistImportedDeploymentRequestPreparedStackProfileAzureResource, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProfileAzureResource$outboundSchema.parse( - persistImportedDeploymentRequestProfileAzureResource, - ), + PersistImportedDeploymentRequestPreparedStackProfileAzureResource$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackProfileAzureResource), ); } /** @internal */ -export type PersistImportedDeploymentRequestProfileAzureStack$Outbound = { - scope: string; -}; +export type PersistImportedDeploymentRequestPreparedStackProfileAzureStack$Outbound = + { + scope: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestProfileAzureStack$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackProfileAzureStack$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProfileAzureStack$Outbound, - PersistImportedDeploymentRequestProfileAzureStack + PersistImportedDeploymentRequestPreparedStackProfileAzureStack$Outbound, + PersistImportedDeploymentRequestPreparedStackProfileAzureStack > = z.object({ scope: z.string(), }); -export function persistImportedDeploymentRequestProfileAzureStackToJSON( - persistImportedDeploymentRequestProfileAzureStack: - PersistImportedDeploymentRequestProfileAzureStack, +export function persistImportedDeploymentRequestPreparedStackProfileAzureStackToJSON( + persistImportedDeploymentRequestPreparedStackProfileAzureStack: + PersistImportedDeploymentRequestPreparedStackProfileAzureStack, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProfileAzureStack$outboundSchema.parse( - persistImportedDeploymentRequestProfileAzureStack, - ), + PersistImportedDeploymentRequestPreparedStackProfileAzureStack$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackProfileAzureStack), ); } /** @internal */ -export type PersistImportedDeploymentRequestProfileAzureBinding$Outbound = { - resource?: - | PersistImportedDeploymentRequestProfileAzureResource$Outbound - | undefined; - stack?: - | PersistImportedDeploymentRequestProfileAzureStack$Outbound - | undefined; -}; +export type PersistImportedDeploymentRequestPreparedStackProfileAzureBinding$Outbound = + { + resource?: + | PersistImportedDeploymentRequestPreparedStackProfileAzureResource$Outbound + | undefined; + stack?: + | PersistImportedDeploymentRequestPreparedStackProfileAzureStack$Outbound + | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestProfileAzureBinding$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackProfileAzureBinding$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProfileAzureBinding$Outbound, - PersistImportedDeploymentRequestProfileAzureBinding + PersistImportedDeploymentRequestPreparedStackProfileAzureBinding$Outbound, + PersistImportedDeploymentRequestPreparedStackProfileAzureBinding > = z.object({ resource: z.lazy(() => - PersistImportedDeploymentRequestProfileAzureResource$outboundSchema + PersistImportedDeploymentRequestPreparedStackProfileAzureResource$outboundSchema ).optional(), stack: z.lazy(() => - PersistImportedDeploymentRequestProfileAzureStack$outboundSchema + PersistImportedDeploymentRequestPreparedStackProfileAzureStack$outboundSchema ).optional(), }); -export function persistImportedDeploymentRequestProfileAzureBindingToJSON( - persistImportedDeploymentRequestProfileAzureBinding: - PersistImportedDeploymentRequestProfileAzureBinding, +export function persistImportedDeploymentRequestPreparedStackProfileAzureBindingToJSON( + persistImportedDeploymentRequestPreparedStackProfileAzureBinding: + PersistImportedDeploymentRequestPreparedStackProfileAzureBinding, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProfileAzureBinding$outboundSchema.parse( - persistImportedDeploymentRequestProfileAzureBinding, - ), + PersistImportedDeploymentRequestPreparedStackProfileAzureBinding$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackProfileAzureBinding), ); } /** @internal */ -export type PersistImportedDeploymentRequestProfileAzureGrant$Outbound = { - actions?: Array | null | undefined; - dataActions?: Array | null | undefined; - permissions?: Array | null | undefined; - predefinedRoles?: Array | null | undefined; - residualPermissions?: Array | null | undefined; -}; +export type PersistImportedDeploymentRequestPreparedStackProfileAzureGrant$Outbound = + { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestProfileAzureGrant$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackProfileAzureGrant$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProfileAzureGrant$Outbound, - PersistImportedDeploymentRequestProfileAzureGrant + PersistImportedDeploymentRequestPreparedStackProfileAzureGrant$Outbound, + PersistImportedDeploymentRequestPreparedStackProfileAzureGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -8195,126 +13411,132 @@ export const PersistImportedDeploymentRequestProfileAzureGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function persistImportedDeploymentRequestProfileAzureGrantToJSON( - persistImportedDeploymentRequestProfileAzureGrant: - PersistImportedDeploymentRequestProfileAzureGrant, +export function persistImportedDeploymentRequestPreparedStackProfileAzureGrantToJSON( + persistImportedDeploymentRequestPreparedStackProfileAzureGrant: + PersistImportedDeploymentRequestPreparedStackProfileAzureGrant, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProfileAzureGrant$outboundSchema.parse( - persistImportedDeploymentRequestProfileAzureGrant, - ), + PersistImportedDeploymentRequestPreparedStackProfileAzureGrant$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackProfileAzureGrant), ); } /** @internal */ -export type PersistImportedDeploymentRequestProfileAzure$Outbound = { - binding: PersistImportedDeploymentRequestProfileAzureBinding$Outbound; - description?: string | null | undefined; - grant: PersistImportedDeploymentRequestProfileAzureGrant$Outbound; - label?: string | null | undefined; -}; +export type PersistImportedDeploymentRequestPreparedStackProfileAzure$Outbound = + { + binding: + PersistImportedDeploymentRequestPreparedStackProfileAzureBinding$Outbound; + description?: string | null | undefined; + grant: + PersistImportedDeploymentRequestPreparedStackProfileAzureGrant$Outbound; + label?: string | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestProfileAzure$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackProfileAzure$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProfileAzure$Outbound, - PersistImportedDeploymentRequestProfileAzure + PersistImportedDeploymentRequestPreparedStackProfileAzure$Outbound, + PersistImportedDeploymentRequestPreparedStackProfileAzure > = z.object({ binding: z.lazy(() => - PersistImportedDeploymentRequestProfileAzureBinding$outboundSchema + PersistImportedDeploymentRequestPreparedStackProfileAzureBinding$outboundSchema ), description: z.nullable(z.string()).optional(), grant: z.lazy(() => - PersistImportedDeploymentRequestProfileAzureGrant$outboundSchema + PersistImportedDeploymentRequestPreparedStackProfileAzureGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function persistImportedDeploymentRequestProfileAzureToJSON( - persistImportedDeploymentRequestProfileAzure: - PersistImportedDeploymentRequestProfileAzure, +export function persistImportedDeploymentRequestPreparedStackProfileAzureToJSON( + persistImportedDeploymentRequestPreparedStackProfileAzure: + PersistImportedDeploymentRequestPreparedStackProfileAzure, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProfileAzure$outboundSchema.parse( - persistImportedDeploymentRequestProfileAzure, - ), + PersistImportedDeploymentRequestPreparedStackProfileAzure$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackProfileAzure), ); } /** @internal */ -export type PersistImportedDeploymentRequestProfileConditionResource$Outbound = +export type PersistImportedDeploymentRequestPreparedStackProfileConditionResource$Outbound = { expression: string; title: string; }; /** @internal */ -export const PersistImportedDeploymentRequestProfileConditionResource$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackProfileConditionResource$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProfileConditionResource$Outbound, - PersistImportedDeploymentRequestProfileConditionResource + PersistImportedDeploymentRequestPreparedStackProfileConditionResource$Outbound, + PersistImportedDeploymentRequestPreparedStackProfileConditionResource > = z.object({ expression: z.string(), title: z.string(), }); -export function persistImportedDeploymentRequestProfileConditionResourceToJSON( - persistImportedDeploymentRequestProfileConditionResource: - PersistImportedDeploymentRequestProfileConditionResource, +export function persistImportedDeploymentRequestPreparedStackProfileConditionResourceToJSON( + persistImportedDeploymentRequestPreparedStackProfileConditionResource: + PersistImportedDeploymentRequestPreparedStackProfileConditionResource, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProfileConditionResource$outboundSchema - .parse(persistImportedDeploymentRequestProfileConditionResource), + PersistImportedDeploymentRequestPreparedStackProfileConditionResource$outboundSchema + .parse( + persistImportedDeploymentRequestPreparedStackProfileConditionResource, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestProfileResourceConditionUnion$Outbound = - | PersistImportedDeploymentRequestProfileConditionResource$Outbound +export type PersistImportedDeploymentRequestPreparedStackProfileResourceConditionUnion$Outbound = + | PersistImportedDeploymentRequestPreparedStackProfileConditionResource$Outbound | any; /** @internal */ -export const PersistImportedDeploymentRequestProfileResourceConditionUnion$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackProfileResourceConditionUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProfileResourceConditionUnion$Outbound, - PersistImportedDeploymentRequestProfileResourceConditionUnion + PersistImportedDeploymentRequestPreparedStackProfileResourceConditionUnion$Outbound, + PersistImportedDeploymentRequestPreparedStackProfileResourceConditionUnion > = z.union([ z.lazy(() => - PersistImportedDeploymentRequestProfileConditionResource$outboundSchema + PersistImportedDeploymentRequestPreparedStackProfileConditionResource$outboundSchema ), z.any(), ]); -export function persistImportedDeploymentRequestProfileResourceConditionUnionToJSON( - persistImportedDeploymentRequestProfileResourceConditionUnion: - PersistImportedDeploymentRequestProfileResourceConditionUnion, +export function persistImportedDeploymentRequestPreparedStackProfileResourceConditionUnionToJSON( + persistImportedDeploymentRequestPreparedStackProfileResourceConditionUnion: + PersistImportedDeploymentRequestPreparedStackProfileResourceConditionUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProfileResourceConditionUnion$outboundSchema - .parse(persistImportedDeploymentRequestProfileResourceConditionUnion), + PersistImportedDeploymentRequestPreparedStackProfileResourceConditionUnion$outboundSchema + .parse( + persistImportedDeploymentRequestPreparedStackProfileResourceConditionUnion, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestProfileGcpResource$Outbound = { - condition?: - | PersistImportedDeploymentRequestProfileConditionResource$Outbound - | any - | null - | undefined; - scope: string; -}; +export type PersistImportedDeploymentRequestPreparedStackProfileGcpResource$Outbound = + { + condition?: + | PersistImportedDeploymentRequestPreparedStackProfileConditionResource$Outbound + | any + | null + | undefined; + scope: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestProfileGcpResource$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackProfileGcpResource$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProfileGcpResource$Outbound, - PersistImportedDeploymentRequestProfileGcpResource + PersistImportedDeploymentRequestPreparedStackProfileGcpResource$Outbound, + PersistImportedDeploymentRequestPreparedStackProfileGcpResource > = z.object({ condition: z.nullable( z.union([ z.lazy(() => - PersistImportedDeploymentRequestProfileConditionResource$outboundSchema + PersistImportedDeploymentRequestPreparedStackProfileConditionResource$outboundSchema ), z.any(), ]), @@ -8322,91 +13544,95 @@ export const PersistImportedDeploymentRequestProfileGcpResource$outboundSchema: scope: z.string(), }); -export function persistImportedDeploymentRequestProfileGcpResourceToJSON( - persistImportedDeploymentRequestProfileGcpResource: - PersistImportedDeploymentRequestProfileGcpResource, +export function persistImportedDeploymentRequestPreparedStackProfileGcpResourceToJSON( + persistImportedDeploymentRequestPreparedStackProfileGcpResource: + PersistImportedDeploymentRequestPreparedStackProfileGcpResource, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProfileGcpResource$outboundSchema.parse( - persistImportedDeploymentRequestProfileGcpResource, - ), + PersistImportedDeploymentRequestPreparedStackProfileGcpResource$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackProfileGcpResource), ); } /** @internal */ -export type PersistImportedDeploymentRequestProfileConditionStack$Outbound = { - expression: string; - title: string; -}; +export type PersistImportedDeploymentRequestPreparedStackProfileConditionStack$Outbound = + { + expression: string; + title: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestProfileConditionStack$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackProfileConditionStack$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProfileConditionStack$Outbound, - PersistImportedDeploymentRequestProfileConditionStack + PersistImportedDeploymentRequestPreparedStackProfileConditionStack$Outbound, + PersistImportedDeploymentRequestPreparedStackProfileConditionStack > = z.object({ expression: z.string(), title: z.string(), }); -export function persistImportedDeploymentRequestProfileConditionStackToJSON( - persistImportedDeploymentRequestProfileConditionStack: - PersistImportedDeploymentRequestProfileConditionStack, +export function persistImportedDeploymentRequestPreparedStackProfileConditionStackToJSON( + persistImportedDeploymentRequestPreparedStackProfileConditionStack: + PersistImportedDeploymentRequestPreparedStackProfileConditionStack, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProfileConditionStack$outboundSchema.parse( - persistImportedDeploymentRequestProfileConditionStack, - ), + PersistImportedDeploymentRequestPreparedStackProfileConditionStack$outboundSchema + .parse( + persistImportedDeploymentRequestPreparedStackProfileConditionStack, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestProfileStackConditionUnion$Outbound = - | PersistImportedDeploymentRequestProfileConditionStack$Outbound +export type PersistImportedDeploymentRequestPreparedStackProfileStackConditionUnion$Outbound = + | PersistImportedDeploymentRequestPreparedStackProfileConditionStack$Outbound | any; /** @internal */ -export const PersistImportedDeploymentRequestProfileStackConditionUnion$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackProfileStackConditionUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProfileStackConditionUnion$Outbound, - PersistImportedDeploymentRequestProfileStackConditionUnion + PersistImportedDeploymentRequestPreparedStackProfileStackConditionUnion$Outbound, + PersistImportedDeploymentRequestPreparedStackProfileStackConditionUnion > = z.union([ z.lazy(() => - PersistImportedDeploymentRequestProfileConditionStack$outboundSchema + PersistImportedDeploymentRequestPreparedStackProfileConditionStack$outboundSchema ), z.any(), ]); -export function persistImportedDeploymentRequestProfileStackConditionUnionToJSON( - persistImportedDeploymentRequestProfileStackConditionUnion: - PersistImportedDeploymentRequestProfileStackConditionUnion, +export function persistImportedDeploymentRequestPreparedStackProfileStackConditionUnionToJSON( + persistImportedDeploymentRequestPreparedStackProfileStackConditionUnion: + PersistImportedDeploymentRequestPreparedStackProfileStackConditionUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProfileStackConditionUnion$outboundSchema - .parse(persistImportedDeploymentRequestProfileStackConditionUnion), + PersistImportedDeploymentRequestPreparedStackProfileStackConditionUnion$outboundSchema + .parse( + persistImportedDeploymentRequestPreparedStackProfileStackConditionUnion, + ), ); } /** @internal */ -export type PersistImportedDeploymentRequestProfileGcpStack$Outbound = { - condition?: - | PersistImportedDeploymentRequestProfileConditionStack$Outbound - | any - | null - | undefined; - scope: string; -}; +export type PersistImportedDeploymentRequestPreparedStackProfileGcpStack$Outbound = + { + condition?: + | PersistImportedDeploymentRequestPreparedStackProfileConditionStack$Outbound + | any + | null + | undefined; + scope: string; + }; /** @internal */ -export const PersistImportedDeploymentRequestProfileGcpStack$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackProfileGcpStack$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProfileGcpStack$Outbound, - PersistImportedDeploymentRequestProfileGcpStack + PersistImportedDeploymentRequestPreparedStackProfileGcpStack$Outbound, + PersistImportedDeploymentRequestPreparedStackProfileGcpStack > = z.object({ condition: z.nullable( z.union([ z.lazy(() => - PersistImportedDeploymentRequestProfileConditionStack$outboundSchema + PersistImportedDeploymentRequestPreparedStackProfileConditionStack$outboundSchema ), z.any(), ]), @@ -8414,64 +13640,66 @@ export const PersistImportedDeploymentRequestProfileGcpStack$outboundSchema: scope: z.string(), }); -export function persistImportedDeploymentRequestProfileGcpStackToJSON( - persistImportedDeploymentRequestProfileGcpStack: - PersistImportedDeploymentRequestProfileGcpStack, +export function persistImportedDeploymentRequestPreparedStackProfileGcpStackToJSON( + persistImportedDeploymentRequestPreparedStackProfileGcpStack: + PersistImportedDeploymentRequestPreparedStackProfileGcpStack, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProfileGcpStack$outboundSchema.parse( - persistImportedDeploymentRequestProfileGcpStack, - ), + PersistImportedDeploymentRequestPreparedStackProfileGcpStack$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackProfileGcpStack), ); } /** @internal */ -export type PersistImportedDeploymentRequestProfileGcpBinding$Outbound = { - resource?: - | PersistImportedDeploymentRequestProfileGcpResource$Outbound - | undefined; - stack?: PersistImportedDeploymentRequestProfileGcpStack$Outbound | undefined; -}; +export type PersistImportedDeploymentRequestPreparedStackProfileGcpBinding$Outbound = + { + resource?: + | PersistImportedDeploymentRequestPreparedStackProfileGcpResource$Outbound + | undefined; + stack?: + | PersistImportedDeploymentRequestPreparedStackProfileGcpStack$Outbound + | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestProfileGcpBinding$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackProfileGcpBinding$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProfileGcpBinding$Outbound, - PersistImportedDeploymentRequestProfileGcpBinding + PersistImportedDeploymentRequestPreparedStackProfileGcpBinding$Outbound, + PersistImportedDeploymentRequestPreparedStackProfileGcpBinding > = z.object({ resource: z.lazy(() => - PersistImportedDeploymentRequestProfileGcpResource$outboundSchema + PersistImportedDeploymentRequestPreparedStackProfileGcpResource$outboundSchema ).optional(), stack: z.lazy(() => - PersistImportedDeploymentRequestProfileGcpStack$outboundSchema + PersistImportedDeploymentRequestPreparedStackProfileGcpStack$outboundSchema ).optional(), }); -export function persistImportedDeploymentRequestProfileGcpBindingToJSON( - persistImportedDeploymentRequestProfileGcpBinding: - PersistImportedDeploymentRequestProfileGcpBinding, +export function persistImportedDeploymentRequestPreparedStackProfileGcpBindingToJSON( + persistImportedDeploymentRequestPreparedStackProfileGcpBinding: + PersistImportedDeploymentRequestPreparedStackProfileGcpBinding, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProfileGcpBinding$outboundSchema.parse( - persistImportedDeploymentRequestProfileGcpBinding, - ), + PersistImportedDeploymentRequestPreparedStackProfileGcpBinding$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackProfileGcpBinding), ); } /** @internal */ -export type PersistImportedDeploymentRequestProfileGcpGrant$Outbound = { - actions?: Array | null | undefined; - dataActions?: Array | null | undefined; - permissions?: Array | null | undefined; - predefinedRoles?: Array | null | undefined; - residualPermissions?: Array | null | undefined; -}; +export type PersistImportedDeploymentRequestPreparedStackProfileGcpGrant$Outbound = + { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestProfileGcpGrant$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackProfileGcpGrant$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProfileGcpGrant$Outbound, - PersistImportedDeploymentRequestProfileGcpGrant + PersistImportedDeploymentRequestPreparedStackProfileGcpGrant$Outbound, + PersistImportedDeploymentRequestPreparedStackProfileGcpGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -8480,184 +13708,193 @@ export const PersistImportedDeploymentRequestProfileGcpGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function persistImportedDeploymentRequestProfileGcpGrantToJSON( - persistImportedDeploymentRequestProfileGcpGrant: - PersistImportedDeploymentRequestProfileGcpGrant, +export function persistImportedDeploymentRequestPreparedStackProfileGcpGrantToJSON( + persistImportedDeploymentRequestPreparedStackProfileGcpGrant: + PersistImportedDeploymentRequestPreparedStackProfileGcpGrant, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProfileGcpGrant$outboundSchema.parse( - persistImportedDeploymentRequestProfileGcpGrant, - ), + PersistImportedDeploymentRequestPreparedStackProfileGcpGrant$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackProfileGcpGrant), ); } /** @internal */ -export type PersistImportedDeploymentRequestProfileGcp$Outbound = { - binding: PersistImportedDeploymentRequestProfileGcpBinding$Outbound; +export type PersistImportedDeploymentRequestPreparedStackProfileGcp$Outbound = { + binding: + PersistImportedDeploymentRequestPreparedStackProfileGcpBinding$Outbound; description?: string | null | undefined; - grant: PersistImportedDeploymentRequestProfileGcpGrant$Outbound; + grant: PersistImportedDeploymentRequestPreparedStackProfileGcpGrant$Outbound; label?: string | null | undefined; }; /** @internal */ -export const PersistImportedDeploymentRequestProfileGcp$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackProfileGcp$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProfileGcp$Outbound, - PersistImportedDeploymentRequestProfileGcp + PersistImportedDeploymentRequestPreparedStackProfileGcp$Outbound, + PersistImportedDeploymentRequestPreparedStackProfileGcp > = z.object({ binding: z.lazy(() => - PersistImportedDeploymentRequestProfileGcpBinding$outboundSchema + PersistImportedDeploymentRequestPreparedStackProfileGcpBinding$outboundSchema ), description: z.nullable(z.string()).optional(), grant: z.lazy(() => - PersistImportedDeploymentRequestProfileGcpGrant$outboundSchema + PersistImportedDeploymentRequestPreparedStackProfileGcpGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function persistImportedDeploymentRequestProfileGcpToJSON( - persistImportedDeploymentRequestProfileGcp: - PersistImportedDeploymentRequestProfileGcp, +export function persistImportedDeploymentRequestPreparedStackProfileGcpToJSON( + persistImportedDeploymentRequestPreparedStackProfileGcp: + PersistImportedDeploymentRequestPreparedStackProfileGcp, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProfileGcp$outboundSchema.parse( - persistImportedDeploymentRequestProfileGcp, - ), + PersistImportedDeploymentRequestPreparedStackProfileGcp$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackProfileGcp), ); } /** @internal */ -export type PersistImportedDeploymentRequestProfilePlatforms$Outbound = { - aws?: - | Array - | null - | undefined; - azure?: - | Array - | null - | undefined; - gcp?: - | Array - | null - | undefined; -}; +export type PersistImportedDeploymentRequestPreparedStackProfilePlatforms$Outbound = + { + aws?: + | Array + | null + | undefined; + azure?: + | Array< + PersistImportedDeploymentRequestPreparedStackProfileAzure$Outbound + > + | null + | undefined; + gcp?: + | Array + | null + | undefined; + }; /** @internal */ -export const PersistImportedDeploymentRequestProfilePlatforms$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackProfilePlatforms$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProfilePlatforms$Outbound, - PersistImportedDeploymentRequestProfilePlatforms + PersistImportedDeploymentRequestPreparedStackProfilePlatforms$Outbound, + PersistImportedDeploymentRequestPreparedStackProfilePlatforms > = z.object({ aws: z.nullable( z.array(z.lazy(() => - PersistImportedDeploymentRequestProfileAw$outboundSchema + PersistImportedDeploymentRequestPreparedStackProfileAw$outboundSchema )), ).optional(), azure: z.nullable( z.array(z.lazy(() => - PersistImportedDeploymentRequestProfileAzure$outboundSchema + PersistImportedDeploymentRequestPreparedStackProfileAzure$outboundSchema )), ).optional(), gcp: z.nullable( z.array(z.lazy(() => - PersistImportedDeploymentRequestProfileGcp$outboundSchema + PersistImportedDeploymentRequestPreparedStackProfileGcp$outboundSchema )), ).optional(), }); -export function persistImportedDeploymentRequestProfilePlatformsToJSON( - persistImportedDeploymentRequestProfilePlatforms: - PersistImportedDeploymentRequestProfilePlatforms, +export function persistImportedDeploymentRequestPreparedStackProfilePlatformsToJSON( + persistImportedDeploymentRequestPreparedStackProfilePlatforms: + PersistImportedDeploymentRequestPreparedStackProfilePlatforms, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProfilePlatforms$outboundSchema.parse( - persistImportedDeploymentRequestProfilePlatforms, - ), + PersistImportedDeploymentRequestPreparedStackProfilePlatforms$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackProfilePlatforms), ); } /** @internal */ -export type PersistImportedDeploymentRequestProfile$Outbound = { +export type PersistImportedDeploymentRequestPreparedStackProfile$Outbound = { description: string; id: string; - platforms: PersistImportedDeploymentRequestProfilePlatforms$Outbound; + platforms: + PersistImportedDeploymentRequestPreparedStackProfilePlatforms$Outbound; }; /** @internal */ -export const PersistImportedDeploymentRequestProfile$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProfile$Outbound, - PersistImportedDeploymentRequestProfile -> = z.object({ - description: z.string(), - id: z.string(), - platforms: z.lazy(() => - PersistImportedDeploymentRequestProfilePlatforms$outboundSchema - ), -}); +export const PersistImportedDeploymentRequestPreparedStackProfile$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPreparedStackProfile$Outbound, + PersistImportedDeploymentRequestPreparedStackProfile + > = z.object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + PersistImportedDeploymentRequestPreparedStackProfilePlatforms$outboundSchema + ), + }); -export function persistImportedDeploymentRequestProfileToJSON( - persistImportedDeploymentRequestProfile: - PersistImportedDeploymentRequestProfile, +export function persistImportedDeploymentRequestPreparedStackProfileToJSON( + persistImportedDeploymentRequestPreparedStackProfile: + PersistImportedDeploymentRequestPreparedStackProfile, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProfile$outboundSchema.parse( - persistImportedDeploymentRequestProfile, + PersistImportedDeploymentRequestPreparedStackProfile$outboundSchema.parse( + persistImportedDeploymentRequestPreparedStackProfile, ), ); } /** @internal */ -export type PersistImportedDeploymentRequestProfileUnion$Outbound = - | PersistImportedDeploymentRequestProfile$Outbound +export type PersistImportedDeploymentRequestPreparedStackProfileUnion$Outbound = + | PersistImportedDeploymentRequestPreparedStackProfile$Outbound | string; /** @internal */ -export const PersistImportedDeploymentRequestProfileUnion$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackProfileUnion$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestProfileUnion$Outbound, - PersistImportedDeploymentRequestProfileUnion + PersistImportedDeploymentRequestPreparedStackProfileUnion$Outbound, + PersistImportedDeploymentRequestPreparedStackProfileUnion > = z.union([ - z.lazy(() => PersistImportedDeploymentRequestProfile$outboundSchema), + z.lazy(() => + PersistImportedDeploymentRequestPreparedStackProfile$outboundSchema + ), z.string(), ]); -export function persistImportedDeploymentRequestProfileUnionToJSON( - persistImportedDeploymentRequestProfileUnion: - PersistImportedDeploymentRequestProfileUnion, +export function persistImportedDeploymentRequestPreparedStackProfileUnionToJSON( + persistImportedDeploymentRequestPreparedStackProfileUnion: + PersistImportedDeploymentRequestPreparedStackProfileUnion, ): string { return JSON.stringify( - PersistImportedDeploymentRequestProfileUnion$outboundSchema.parse( - persistImportedDeploymentRequestProfileUnion, - ), + PersistImportedDeploymentRequestPreparedStackProfileUnion$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackProfileUnion), ); } /** @internal */ -export type PersistImportedDeploymentRequestPermissions$Outbound = { - management?: - | PersistImportedDeploymentRequestManagement1$Outbound - | PersistImportedDeploymentRequestManagement2$Outbound - | string - | undefined; - profiles: { - [k: string]: { - [k: string]: Array< - PersistImportedDeploymentRequestProfile$Outbound | string - >; +export type PersistImportedDeploymentRequestPreparedStackPermissions$Outbound = + { + management?: + | PersistImportedDeploymentRequestPreparedStackManagement1$Outbound + | PersistImportedDeploymentRequestPreparedStackManagement2$Outbound + | string + | undefined; + profiles: { + [k: string]: { + [k: string]: Array< + PersistImportedDeploymentRequestPreparedStackProfile$Outbound | string + >; + }; }; }; -}; /** @internal */ -export const PersistImportedDeploymentRequestPermissions$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackPermissions$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestPermissions$Outbound, - PersistImportedDeploymentRequestPermissions + PersistImportedDeploymentRequestPreparedStackPermissions$Outbound, + PersistImportedDeploymentRequestPreparedStackPermissions > = z.object({ management: z.union([ - z.lazy(() => PersistImportedDeploymentRequestManagement1$outboundSchema), - z.lazy(() => PersistImportedDeploymentRequestManagement2$outboundSchema), - PersistImportedDeploymentRequestManagementEnum$outboundSchema, + z.lazy(() => + PersistImportedDeploymentRequestPreparedStackManagement1$outboundSchema + ), + z.lazy(() => + PersistImportedDeploymentRequestPreparedStackManagement2$outboundSchema + ), + PersistImportedDeploymentRequestPreparedStackManagementEnum$outboundSchema, ]).optional(), profiles: z.record( z.string(), @@ -8666,7 +13903,7 @@ export const PersistImportedDeploymentRequestPermissions$outboundSchema: z.array( z.union([ z.lazy(() => - PersistImportedDeploymentRequestProfile$outboundSchema + PersistImportedDeploymentRequestPreparedStackProfile$outboundSchema ), z.string(), ]), @@ -8675,133 +13912,143 @@ export const PersistImportedDeploymentRequestPermissions$outboundSchema: ), }); -export function persistImportedDeploymentRequestPermissionsToJSON( - persistImportedDeploymentRequestPermissions: - PersistImportedDeploymentRequestPermissions, +export function persistImportedDeploymentRequestPreparedStackPermissionsToJSON( + persistImportedDeploymentRequestPreparedStackPermissions: + PersistImportedDeploymentRequestPreparedStackPermissions, ): string { return JSON.stringify( - PersistImportedDeploymentRequestPermissions$outboundSchema.parse( - persistImportedDeploymentRequestPermissions, - ), + PersistImportedDeploymentRequestPreparedStackPermissions$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackPermissions), ); } /** @internal */ -export type PersistImportedDeploymentRequestConfig$Outbound = { +export type PersistImportedDeploymentRequestPreparedStackConfig$Outbound = { id: string; type: string; [additionalProperties: string]: unknown; }; /** @internal */ -export const PersistImportedDeploymentRequestConfig$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestConfig$Outbound, - PersistImportedDeploymentRequestConfig -> = z.object({ - id: z.string(), - type: z.string(), - additionalProperties: z.record(z.string(), z.nullable(z.any())).optional(), -}).transform((v) => { - return { - ...v.additionalProperties, - ...remap$(v, { - additionalProperties: null, - }), - }; -}); +export const PersistImportedDeploymentRequestPreparedStackConfig$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestPreparedStackConfig$Outbound, + PersistImportedDeploymentRequestPreparedStackConfig + > = z.object({ + id: z.string(), + type: z.string(), + additionalProperties: z.record(z.string(), z.nullable(z.any())).optional(), + }).transform((v) => { + return { + ...v.additionalProperties, + ...remap$(v, { + additionalProperties: null, + }), + }; + }); -export function persistImportedDeploymentRequestConfigToJSON( - persistImportedDeploymentRequestConfig: - PersistImportedDeploymentRequestConfig, +export function persistImportedDeploymentRequestPreparedStackConfigToJSON( + persistImportedDeploymentRequestPreparedStackConfig: + PersistImportedDeploymentRequestPreparedStackConfig, ): string { return JSON.stringify( - PersistImportedDeploymentRequestConfig$outboundSchema.parse( - persistImportedDeploymentRequestConfig, + PersistImportedDeploymentRequestPreparedStackConfig$outboundSchema.parse( + persistImportedDeploymentRequestPreparedStackConfig, ), ); } /** @internal */ -export type PersistImportedDeploymentRequestDependency$Outbound = { +export type PersistImportedDeploymentRequestPreparedStackDependency$Outbound = { id: string; type: string; }; /** @internal */ -export const PersistImportedDeploymentRequestDependency$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackDependency$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestDependency$Outbound, - PersistImportedDeploymentRequestDependency + PersistImportedDeploymentRequestPreparedStackDependency$Outbound, + PersistImportedDeploymentRequestPreparedStackDependency > = z.object({ id: z.string(), type: z.string(), }); -export function persistImportedDeploymentRequestDependencyToJSON( - persistImportedDeploymentRequestDependency: - PersistImportedDeploymentRequestDependency, +export function persistImportedDeploymentRequestPreparedStackDependencyToJSON( + persistImportedDeploymentRequestPreparedStackDependency: + PersistImportedDeploymentRequestPreparedStackDependency, ): string { return JSON.stringify( - PersistImportedDeploymentRequestDependency$outboundSchema.parse( - persistImportedDeploymentRequestDependency, - ), + PersistImportedDeploymentRequestPreparedStackDependency$outboundSchema + .parse(persistImportedDeploymentRequestPreparedStackDependency), ); } /** @internal */ -export const PersistImportedDeploymentRequestLifecycle$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestLifecycle, - ); +export const PersistImportedDeploymentRequestPreparedStackLifecycle$outboundSchema: + z.ZodEnum = z + .enum(PersistImportedDeploymentRequestPreparedStackLifecycle); /** @internal */ -export type PersistImportedDeploymentRequestResources$Outbound = { - config: PersistImportedDeploymentRequestConfig$Outbound; - dependencies: Array; +export type PersistImportedDeploymentRequestPreparedStackResources$Outbound = { + config: PersistImportedDeploymentRequestPreparedStackConfig$Outbound; + dependencies: Array< + PersistImportedDeploymentRequestPreparedStackDependency$Outbound + >; + enabledWhen?: string | null | undefined; lifecycle: string; remoteAccess?: boolean | undefined; }; /** @internal */ -export const PersistImportedDeploymentRequestResources$outboundSchema: +export const PersistImportedDeploymentRequestPreparedStackResources$outboundSchema: z.ZodType< - PersistImportedDeploymentRequestResources$Outbound, - PersistImportedDeploymentRequestResources + PersistImportedDeploymentRequestPreparedStackResources$Outbound, + PersistImportedDeploymentRequestPreparedStackResources > = z.object({ - config: z.lazy(() => PersistImportedDeploymentRequestConfig$outboundSchema), + config: z.lazy(() => + PersistImportedDeploymentRequestPreparedStackConfig$outboundSchema + ), dependencies: z.array( - z.lazy(() => PersistImportedDeploymentRequestDependency$outboundSchema), + z.lazy(() => + PersistImportedDeploymentRequestPreparedStackDependency$outboundSchema + ), ), - lifecycle: PersistImportedDeploymentRequestLifecycle$outboundSchema, + enabledWhen: z.nullable(z.string()).optional(), + lifecycle: + PersistImportedDeploymentRequestPreparedStackLifecycle$outboundSchema, remoteAccess: z.boolean().optional(), }); -export function persistImportedDeploymentRequestResourcesToJSON( - persistImportedDeploymentRequestResources: - PersistImportedDeploymentRequestResources, +export function persistImportedDeploymentRequestPreparedStackResourcesToJSON( + persistImportedDeploymentRequestPreparedStackResources: + PersistImportedDeploymentRequestPreparedStackResources, ): string { return JSON.stringify( - PersistImportedDeploymentRequestResources$outboundSchema.parse( - persistImportedDeploymentRequestResources, + PersistImportedDeploymentRequestPreparedStackResources$outboundSchema.parse( + persistImportedDeploymentRequestPreparedStackResources, ), ); } /** @internal */ -export const PersistImportedDeploymentRequestSupportedPlatform$outboundSchema: - z.ZodEnum = z.enum( - PersistImportedDeploymentRequestSupportedPlatform, - ); +export const PersistImportedDeploymentRequestPreparedStackSupportedPlatform$outboundSchema: + z.ZodEnum< + typeof PersistImportedDeploymentRequestPreparedStackSupportedPlatform + > = z.enum(PersistImportedDeploymentRequestPreparedStackSupportedPlatform); /** @internal */ export type PersistImportedDeploymentRequestPreparedStack$Outbound = { id: string; - inputs?: Array | undefined; + inputs?: + | Array + | undefined; permissions?: - | PersistImportedDeploymentRequestPermissions$Outbound + | PersistImportedDeploymentRequestPreparedStackPermissions$Outbound | undefined; resources: { - [k: string]: PersistImportedDeploymentRequestResources$Outbound; + [k: string]: + PersistImportedDeploymentRequestPreparedStackResources$Outbound; }; supportedPlatforms?: Array | null | undefined; }; @@ -8814,17 +14061,23 @@ export const PersistImportedDeploymentRequestPreparedStack$outboundSchema: > = z.object({ id: z.string(), inputs: z.array( - z.lazy(() => PersistImportedDeploymentRequestInput$outboundSchema), + z.lazy(() => + PersistImportedDeploymentRequestPreparedStackInput$outboundSchema + ), ).optional(), permissions: z.lazy(() => - PersistImportedDeploymentRequestPermissions$outboundSchema + PersistImportedDeploymentRequestPreparedStackPermissions$outboundSchema ).optional(), resources: z.record( z.string(), - z.lazy(() => PersistImportedDeploymentRequestResources$outboundSchema), + z.lazy(() => + PersistImportedDeploymentRequestPreparedStackResources$outboundSchema + ), ), supportedPlatforms: z.nullable( - z.array(PersistImportedDeploymentRequestSupportedPlatform$outboundSchema), + z.array( + PersistImportedDeploymentRequestPreparedStackSupportedPlatform$outboundSchema, + ), ).optional(), }); @@ -8865,16 +14118,92 @@ export function persistImportedDeploymentRequestPreparedStackUnionToJSON( ); } +/** @internal */ +export type PersistImportedDeploymentRequestSetupUpdateAuthorization$Outbound = + { + baselineFrozenDigest: string; + nonce: string; + releaseId: string; + setupFingerprint: string; + setupFingerprintVersion: number; + setupTarget: string; + targetFrozenDigest: string; + }; + +/** @internal */ +export const PersistImportedDeploymentRequestSetupUpdateAuthorization$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestSetupUpdateAuthorization$Outbound, + PersistImportedDeploymentRequestSetupUpdateAuthorization + > = z.object({ + baselineFrozenDigest: z.string(), + nonce: z.string(), + releaseId: z.string(), + setupFingerprint: z.string(), + setupFingerprintVersion: z.int(), + setupTarget: z.string(), + targetFrozenDigest: z.string(), + }); + +export function persistImportedDeploymentRequestSetupUpdateAuthorizationToJSON( + persistImportedDeploymentRequestSetupUpdateAuthorization: + PersistImportedDeploymentRequestSetupUpdateAuthorization, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestSetupUpdateAuthorization$outboundSchema + .parse(persistImportedDeploymentRequestSetupUpdateAuthorization), + ); +} + +/** @internal */ +export type PersistImportedDeploymentRequestSetupUpdateAuthorizationUnion$Outbound = + | PersistImportedDeploymentRequestSetupUpdateAuthorization$Outbound + | any; + +/** @internal */ +export const PersistImportedDeploymentRequestSetupUpdateAuthorizationUnion$outboundSchema: + z.ZodType< + PersistImportedDeploymentRequestSetupUpdateAuthorizationUnion$Outbound, + PersistImportedDeploymentRequestSetupUpdateAuthorizationUnion + > = z.union([ + z.lazy(() => + PersistImportedDeploymentRequestSetupUpdateAuthorization$outboundSchema + ), + z.any(), + ]); + +export function persistImportedDeploymentRequestSetupUpdateAuthorizationUnionToJSON( + persistImportedDeploymentRequestSetupUpdateAuthorizationUnion: + PersistImportedDeploymentRequestSetupUpdateAuthorizationUnion, +): string { + return JSON.stringify( + PersistImportedDeploymentRequestSetupUpdateAuthorizationUnion$outboundSchema + .parse(persistImportedDeploymentRequestSetupUpdateAuthorizationUnion), + ); +} + /** @internal */ export type PersistImportedDeploymentRequestRuntimeMetadata$Outbound = { + initialSetupAuthority?: string | undefined; lastSyncedEnvVarsHash?: string | null | undefined; lastSyncedSecretNames?: Array | undefined; + pendingPreparedStack?: + | PersistImportedDeploymentRequestPendingPreparedStack$Outbound + | any + | null + | undefined; + persistedGateAnswers?: { [k: string]: boolean } | undefined; preparedStack?: | PersistImportedDeploymentRequestPreparedStack$Outbound | any | null | undefined; registryAccessGranted?: boolean | undefined; + setupUpdateAuthorization?: + | PersistImportedDeploymentRequestSetupUpdateAuthorization$Outbound + | any + | null + | undefined; }; /** @internal */ @@ -8883,8 +14212,20 @@ export const PersistImportedDeploymentRequestRuntimeMetadata$outboundSchema: PersistImportedDeploymentRequestRuntimeMetadata$Outbound, PersistImportedDeploymentRequestRuntimeMetadata > = z.object({ + initialSetupAuthority: + PersistImportedDeploymentRequestInitialSetupAuthority$outboundSchema + .optional(), lastSyncedEnvVarsHash: z.nullable(z.string()).optional(), lastSyncedSecretNames: z.array(z.string()).optional(), + pendingPreparedStack: z.nullable( + z.union([ + z.lazy(() => + PersistImportedDeploymentRequestPendingPreparedStack$outboundSchema + ), + z.any(), + ]), + ).optional(), + persistedGateAnswers: z.record(z.string(), z.boolean()).optional(), preparedStack: z.nullable( z.union([ z.lazy(() => @@ -8894,6 +14235,14 @@ export const PersistImportedDeploymentRequestRuntimeMetadata$outboundSchema: ]), ).optional(), registryAccessGranted: z.boolean().optional(), + setupUpdateAuthorization: z.nullable( + z.union([ + z.lazy(() => + PersistImportedDeploymentRequestSetupUpdateAuthorization$outboundSchema + ), + z.any(), + ]), + ).optional(), }); export function persistImportedDeploymentRequestRuntimeMetadataToJSON( @@ -9081,6 +14430,7 @@ export type PersistImportedDeploymentRequest$Outbound = { | null | undefined; runtimeMetadata: PersistImportedDeploymentRequestRuntimeMetadata$Outbound; + scheduleReconciliation: boolean; deploymentProtocolVersion: number; status: string; currentReleaseId?: string | undefined; @@ -9139,6 +14489,7 @@ export const PersistImportedDeploymentRequest$outboundSchema: z.ZodType< runtimeMetadata: z.lazy(() => PersistImportedDeploymentRequestRuntimeMetadata$outboundSchema ), + scheduleReconciliation: z.boolean().default(false), deploymentProtocolVersion: z.int(), status: PersistImportedDeploymentRequestStatus$outboundSchema.default( "provisioning", diff --git a/client-sdks/platform/typescript/src/models/pinreleaserequest.ts b/client-sdks/platform/typescript/src/models/pinreleaserequest.ts index c73d70e7e..3364190e0 100644 --- a/client-sdks/platform/typescript/src/models/pinreleaserequest.ts +++ b/client-sdks/platform/typescript/src/models/pinreleaserequest.ts @@ -9,7 +9,7 @@ import * as z from "zod/v4"; */ export type PinReleaseRequest = { /** - * Release ID to pin the deployment to. Set to null to unpin and use active release. + * Release ID to pin the deployment to. Set to null to resume its followed channel. */ releaseId?: string | null | undefined; }; diff --git a/client-sdks/platform/typescript/src/models/prepareddeploymentstack.ts b/client-sdks/platform/typescript/src/models/prepareddeploymentstack.ts index 74d7aaf99..9c80a3895 100644 --- a/client-sdks/platform/typescript/src/models/prepareddeploymentstack.ts +++ b/client-sdks/platform/typescript/src/models/prepareddeploymentstack.ts @@ -1420,6 +1420,17 @@ export type PreparedDeploymentStackResources = { * The total dependencies are: resource.get_dependencies() + this list */ dependencies: Array; + /** + * Id of the boolean stack input that decides whether this resource is + * + * @remarks + * created at all. `None` means always create it. + * + * Set by `.enabled(input)` in the SDK. Setup emitters render the resource + * conditionally on the matching template variable, so a deployer who says no + * never gets the resource, its outputs, or anything derived from it. + */ + enabledWhen?: string | null | undefined; /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ @@ -3583,6 +3594,7 @@ export const PreparedDeploymentStackResources$inboundSchema: z.ZodType< dependencies: z.array( z.lazy(() => PreparedDeploymentStackDependency$inboundSchema), ), + enabledWhen: z.nullable(z.string()).optional(), lifecycle: PreparedDeploymentStackLifecycle$inboundSchema, remoteAccess: z.boolean().optional(), }); diff --git a/client-sdks/platform/typescript/src/models/release.ts b/client-sdks/platform/typescript/src/models/release.ts index 77932caaf..ae37b8ee0 100644 --- a/client-sdks/platform/typescript/src/models/release.ts +++ b/client-sdks/platform/typescript/src/models/release.ts @@ -11,10 +11,16 @@ import { SetupFingerprintInfo, SetupFingerprintInfo$inboundSchema, } from "./setupfingerprintinfo.js"; -import { - StackByPlatform, - StackByPlatform$inboundSchema, -} from "./stackbyplatform.js"; + +export type ReleaseStack = { + aws?: any | null | undefined; + gcp?: any | null | undefined; + azure?: any | null | undefined; + kubernetes?: any | null | undefined; + machines?: any | null | undefined; + local?: any | null | undefined; + test?: any | null | undefined; +}; export type Release = { /** @@ -25,12 +31,38 @@ export type Release = { version: string; gitMetadata?: GitMetadata | null | undefined; createdAt: Date; - stack?: StackByPlatform | null | undefined; + stack?: ReleaseStack | null | undefined; setupFingerprints: { [k: string]: SetupFingerprintInfo }; rootDirectory?: string | null | undefined; + /** + * ID of the platform user who created the release, if known + */ + createdByUserId?: string | null | undefined; workspaceId: string; }; +/** @internal */ +export const ReleaseStack$inboundSchema: z.ZodType = z + .object({ + aws: z.nullable(z.any()).optional(), + gcp: z.nullable(z.any()).optional(), + azure: z.nullable(z.any()).optional(), + kubernetes: z.nullable(z.any()).optional(), + machines: z.nullable(z.any()).optional(), + local: z.nullable(z.any()).optional(), + test: z.nullable(z.any()).optional(), + }); + +export function releaseStackFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ReleaseStack$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ReleaseStack' from JSON`, + ); +} + /** @internal */ export const Release$inboundSchema: z.ZodType = z.object({ id: z.string(), @@ -38,9 +70,10 @@ export const Release$inboundSchema: z.ZodType = z.object({ version: z.string(), gitMetadata: z.nullable(GitMetadata$inboundSchema).optional(), createdAt: z.iso.datetime({ offset: true }).transform(v => new Date(v)), - stack: z.nullable(StackByPlatform$inboundSchema).optional(), + stack: z.nullable(z.lazy(() => ReleaseStack$inboundSchema)).optional(), setupFingerprints: z.record(z.string(), SetupFingerprintInfo$inboundSchema), rootDirectory: z.nullable(z.string()).optional(), + createdByUserId: z.nullable(z.string()).optional(), workspaceId: z.string(), }); diff --git a/client-sdks/platform/typescript/src/models/releasechannel.ts b/client-sdks/platform/typescript/src/models/releasechannel.ts new file mode 100644 index 000000000..ed028d769 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/releasechannel.ts @@ -0,0 +1,49 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export type ReleaseChannel = { + /** + * Unique identifier for the workspace. + */ + workspaceId: string; + /** + * Unique identifier for the project. + */ + projectId: string; + name: string; + /** + * Unique identifier for the release. + */ + currentReleaseId: string | null; + deploymentCount?: number | undefined; + createdAt: Date; + updatedAt: Date; +}; + +/** @internal */ +export const ReleaseChannel$inboundSchema: z.ZodType = + z.object({ + workspaceId: z.string(), + projectId: z.string(), + name: z.string(), + currentReleaseId: z.nullable(z.string()), + deploymentCount: z.int().optional(), + createdAt: z.iso.datetime({ offset: true }).transform(v => new Date(v)), + updatedAt: z.iso.datetime({ offset: true }).transform(v => new Date(v)), + }); + +export function releaseChannelFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ReleaseChannel$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ReleaseChannel' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/releasedeploymentitem.ts b/client-sdks/platform/typescript/src/models/releasedeploymentitem.ts new file mode 100644 index 000000000..1fd667cc2 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/releasedeploymentitem.ts @@ -0,0 +1,651 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { ClosedEnum } from "../types/enums.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; +import { + ReleaseRolloutState, + ReleaseRolloutState$inboundSchema, +} from "./releaserolloutstate.js"; + +/** + * Deployment status in the deployment lifecycle. + * + * @remarks + * + * For observe-only deployments with no release or stack state, `Running` + * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; + * resource health comes from inventory and resource heartbeat data. + */ +export const ReleaseDeploymentItemStatus = { + Pending: "pending", + PreflightsFailed: "preflights-failed", + InitialSetup: "initial-setup", + InitialSetupFailed: "initial-setup-failed", + Provisioning: "provisioning", + WaitingForMachines: "waiting-for-machines", + ProvisioningFailed: "provisioning-failed", + Running: "running", + RefreshFailed: "refresh-failed", + UpdatePending: "update-pending", + Updating: "updating", + UpdateFailed: "update-failed", + DeletePending: "delete-pending", + Deleting: "deleting", + DeleteFailed: "delete-failed", + TeardownRequired: "teardown-required", + TeardownFailed: "teardown-failed", + Deleted: "deleted", + Error: "error", +} as const; +/** + * Deployment status in the deployment lifecycle. + * + * @remarks + * + * For observe-only deployments with no release or stack state, `Running` + * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; + * resource health comes from inventory and resource heartbeat data. + */ +export type ReleaseDeploymentItemStatus = ClosedEnum< + typeof ReleaseDeploymentItemStatus +>; + +/** + * Target platform for the deployment + */ +export const ReleaseDeploymentItemPlatform = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", +} as const; +/** + * Target platform for the deployment + */ +export type ReleaseDeploymentItemPlatform = ClosedEnum< + typeof ReleaseDeploymentItemPlatform +>; + +export const ReleaseDeploymentItemPlatformTest = { + Test: "test", +} as const; +export type ReleaseDeploymentItemPlatformTest = ClosedEnum< + typeof ReleaseDeploymentItemPlatformTest +>; + +/** + * Test platform environment information (mock) + */ +export type ReleaseDeploymentItemEnvironmentInfoTest = { + /** + * Test identifier for this environment + */ + testId: string; + platform: ReleaseDeploymentItemPlatformTest; +}; + +export const ReleaseDeploymentItemPlatformLocal = { + Local: "local", +} as const; +export type ReleaseDeploymentItemPlatformLocal = ClosedEnum< + typeof ReleaseDeploymentItemPlatformLocal +>; + +/** + * Local platform environment information + */ +export type ReleaseDeploymentItemEnvironmentInfoLocal = { + /** + * Architecture (e.g., "x86_64", "aarch64") + */ + arch: string; + /** + * Hostname of the machine running the deployment + */ + hostname: string; + /** + * Operating system (e.g., "linux", "macos", "windows") + */ + os: string; + platform: ReleaseDeploymentItemPlatformLocal; +}; + +export const ReleaseDeploymentItemPlatformAzure = { + Azure: "azure", +} as const; +export type ReleaseDeploymentItemPlatformAzure = ClosedEnum< + typeof ReleaseDeploymentItemPlatformAzure +>; + +/** + * Azure-specific environment information + */ +export type ReleaseDeploymentItemEnvironmentInfoAzure = { + /** + * Azure location/region + */ + location: string; + /** + * Azure subscription ID + */ + subscriptionId: string; + /** + * Azure tenant ID + */ + tenantId: string; + platform: ReleaseDeploymentItemPlatformAzure; +}; + +export const ReleaseDeploymentItemPlatformGcp = { + Gcp: "gcp", +} as const; +export type ReleaseDeploymentItemPlatformGcp = ClosedEnum< + typeof ReleaseDeploymentItemPlatformGcp +>; + +/** + * GCP-specific environment information + */ +export type ReleaseDeploymentItemEnvironmentInfoGcp = { + /** + * GCP project ID (e.g., "my-project") + */ + projectId: string; + /** + * GCP project number (e.g., "123456789012") + */ + projectNumber: string; + /** + * GCP region + */ + region: string; + platform: ReleaseDeploymentItemPlatformGcp; +}; + +export const ReleaseDeploymentItemPlatformAws = { + Aws: "aws", +} as const; +export type ReleaseDeploymentItemPlatformAws = ClosedEnum< + typeof ReleaseDeploymentItemPlatformAws +>; + +/** + * AWS-specific environment information + */ +export type ReleaseDeploymentItemEnvironmentInfoAws = { + /** + * AWS account ID + */ + accountId: string; + /** + * AWS region + */ + region: string; + platform: ReleaseDeploymentItemPlatformAws; +}; + +/** + * Cloud environment information + */ +export type ReleaseDeploymentItemEnvironmentInfoUnion = + | ReleaseDeploymentItemEnvironmentInfoGcp + | ReleaseDeploymentItemEnvironmentInfoAzure + | ReleaseDeploymentItemEnvironmentInfoLocal + | ReleaseDeploymentItemEnvironmentInfoAws + | ReleaseDeploymentItemEnvironmentInfoTest + | any; + +/** + * Deployment group this deployment belongs to + */ +export type ReleaseDeploymentItemDeploymentGroup = { + /** + * Unique identifier for the deployment group. + */ + id: string; + /** + * Deployment group name. + */ + name: string; +}; + +/** + * Latest error information if the deployment is in a failed state + */ +export type ReleaseDeploymentItemError = { + /** + * A unique identifier for the type of error. + * + * @remarks + * + * This should be a short, machine-readable string that can be used + * by clients to programmatically handle different error types. + * Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" + */ + code: string; + /** + * Additional diagnostic information about the error context. + * + * @remarks + * + * This optional field can contain structured data providing more details + * about the error, such as validation errors, request parameters that + * caused the issue, or other relevant context information. + */ + context?: any | null | undefined; + /** + * Optional human-facing remediation hint. + */ + hint?: string | null | undefined; + /** + * HTTP status code for this error. + * + * @remarks + * + * Used when converting the error to an HTTP response. If None, falls back to + * the error type's default status code or 500. + */ + httpStatusCode?: number | null | undefined; + /** + * Indicates if this is an internal error that should not be exposed to users. + * + * @remarks + * + * When `true`, this error contains sensitive information or implementation + * details that should not be shown to end-users. Such errors should be + * logged for debugging but replaced with generic error messages in responses. + */ + internal: boolean; + /** + * Human-readable error message. + * + * @remarks + * + * This message should be clear and actionable for developers or end-users, + * providing context about what went wrong and potentially how to fix it. + */ + message: string; + /** + * Indicates whether the operation that caused the error should be retried. + * + * @remarks + * + * When `true`, the error is transient and the operation might succeed + * if attempted again. When `false`, retrying the same operation is + * unlikely to succeed without changes. + */ + retryable: boolean; + /** + * The underlying error that caused this error, creating an error chain. + * + * @remarks + * + * This allows for proper error propagation and debugging by maintaining + * the full context of how an error occurred through multiple layers + * of an application. + */ + source?: any | null | undefined; +}; + +export type ReleaseDeploymentItem = { + /** + * Unique identifier for the deployment. + */ + id: string; + name: string; + /** + * Deployment status in the deployment lifecycle. + * + * @remarks + * + * For observe-only deployments with no release or stack state, `Running` + * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; + * resource health comes from inventory and resource heartbeat data. + */ + status: ReleaseDeploymentItemStatus; + /** + * Target platform for the deployment + */ + platform: ReleaseDeploymentItemPlatform; + /** + * Cloud environment information + */ + environmentInfo?: + | ReleaseDeploymentItemEnvironmentInfoGcp + | ReleaseDeploymentItemEnvironmentInfoAzure + | ReleaseDeploymentItemEnvironmentInfoLocal + | ReleaseDeploymentItemEnvironmentInfoAws + | ReleaseDeploymentItemEnvironmentInfoTest + | any + | null + | undefined; + /** + * Deployment group this deployment belongs to + */ + deploymentGroup?: ReleaseDeploymentItemDeploymentGroup | null | undefined; + /** + * ID of the currently deployed release + */ + currentReleaseId?: string | null | undefined; + /** + * ID of the desired release + */ + desiredReleaseId?: string | null | undefined; + /** + * ID of the pinned release + */ + pinnedReleaseId?: string | null | undefined; + /** + * Timestamp of the last received heartbeat + */ + lastHeartbeatAt?: Date | null | undefined; + rolloutState: ReleaseRolloutState; + /** + * When this release went live on the deployment, null if it never did + */ + releasedAt: Date | null; + /** + * Time from release creation until the deployment finished updating, in milliseconds. Null for initial provisions and deployments that never ran this release. + */ + durationMs: number | null; + /** + * Latest error information if the deployment is in a failed state + */ + error?: ReleaseDeploymentItemError | null | undefined; +}; + +/** @internal */ +export const ReleaseDeploymentItemStatus$inboundSchema: z.ZodEnum< + typeof ReleaseDeploymentItemStatus +> = z.enum(ReleaseDeploymentItemStatus); + +/** @internal */ +export const ReleaseDeploymentItemPlatform$inboundSchema: z.ZodEnum< + typeof ReleaseDeploymentItemPlatform +> = z.enum(ReleaseDeploymentItemPlatform); + +/** @internal */ +export const ReleaseDeploymentItemPlatformTest$inboundSchema: z.ZodEnum< + typeof ReleaseDeploymentItemPlatformTest +> = z.enum(ReleaseDeploymentItemPlatformTest); + +/** @internal */ +export const ReleaseDeploymentItemEnvironmentInfoTest$inboundSchema: z.ZodType< + ReleaseDeploymentItemEnvironmentInfoTest, + unknown +> = z.object({ + testId: z.string(), + platform: ReleaseDeploymentItemPlatformTest$inboundSchema, +}); + +export function releaseDeploymentItemEnvironmentInfoTestFromJSON( + jsonString: string, +): SafeParseResult< + ReleaseDeploymentItemEnvironmentInfoTest, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + ReleaseDeploymentItemEnvironmentInfoTest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'ReleaseDeploymentItemEnvironmentInfoTest' from JSON`, + ); +} + +/** @internal */ +export const ReleaseDeploymentItemPlatformLocal$inboundSchema: z.ZodEnum< + typeof ReleaseDeploymentItemPlatformLocal +> = z.enum(ReleaseDeploymentItemPlatformLocal); + +/** @internal */ +export const ReleaseDeploymentItemEnvironmentInfoLocal$inboundSchema: z.ZodType< + ReleaseDeploymentItemEnvironmentInfoLocal, + unknown +> = z.object({ + arch: z.string(), + hostname: z.string(), + os: z.string(), + platform: ReleaseDeploymentItemPlatformLocal$inboundSchema, +}); + +export function releaseDeploymentItemEnvironmentInfoLocalFromJSON( + jsonString: string, +): SafeParseResult< + ReleaseDeploymentItemEnvironmentInfoLocal, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + ReleaseDeploymentItemEnvironmentInfoLocal$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'ReleaseDeploymentItemEnvironmentInfoLocal' from JSON`, + ); +} + +/** @internal */ +export const ReleaseDeploymentItemPlatformAzure$inboundSchema: z.ZodEnum< + typeof ReleaseDeploymentItemPlatformAzure +> = z.enum(ReleaseDeploymentItemPlatformAzure); + +/** @internal */ +export const ReleaseDeploymentItemEnvironmentInfoAzure$inboundSchema: z.ZodType< + ReleaseDeploymentItemEnvironmentInfoAzure, + unknown +> = z.object({ + location: z.string(), + subscriptionId: z.string(), + tenantId: z.string(), + platform: ReleaseDeploymentItemPlatformAzure$inboundSchema, +}); + +export function releaseDeploymentItemEnvironmentInfoAzureFromJSON( + jsonString: string, +): SafeParseResult< + ReleaseDeploymentItemEnvironmentInfoAzure, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + ReleaseDeploymentItemEnvironmentInfoAzure$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'ReleaseDeploymentItemEnvironmentInfoAzure' from JSON`, + ); +} + +/** @internal */ +export const ReleaseDeploymentItemPlatformGcp$inboundSchema: z.ZodEnum< + typeof ReleaseDeploymentItemPlatformGcp +> = z.enum(ReleaseDeploymentItemPlatformGcp); + +/** @internal */ +export const ReleaseDeploymentItemEnvironmentInfoGcp$inboundSchema: z.ZodType< + ReleaseDeploymentItemEnvironmentInfoGcp, + unknown +> = z.object({ + projectId: z.string(), + projectNumber: z.string(), + region: z.string(), + platform: ReleaseDeploymentItemPlatformGcp$inboundSchema, +}); + +export function releaseDeploymentItemEnvironmentInfoGcpFromJSON( + jsonString: string, +): SafeParseResult< + ReleaseDeploymentItemEnvironmentInfoGcp, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + ReleaseDeploymentItemEnvironmentInfoGcp$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'ReleaseDeploymentItemEnvironmentInfoGcp' from JSON`, + ); +} + +/** @internal */ +export const ReleaseDeploymentItemPlatformAws$inboundSchema: z.ZodEnum< + typeof ReleaseDeploymentItemPlatformAws +> = z.enum(ReleaseDeploymentItemPlatformAws); + +/** @internal */ +export const ReleaseDeploymentItemEnvironmentInfoAws$inboundSchema: z.ZodType< + ReleaseDeploymentItemEnvironmentInfoAws, + unknown +> = z.object({ + accountId: z.string(), + region: z.string(), + platform: ReleaseDeploymentItemPlatformAws$inboundSchema, +}); + +export function releaseDeploymentItemEnvironmentInfoAwsFromJSON( + jsonString: string, +): SafeParseResult< + ReleaseDeploymentItemEnvironmentInfoAws, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + ReleaseDeploymentItemEnvironmentInfoAws$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'ReleaseDeploymentItemEnvironmentInfoAws' from JSON`, + ); +} + +/** @internal */ +export const ReleaseDeploymentItemEnvironmentInfoUnion$inboundSchema: z.ZodType< + ReleaseDeploymentItemEnvironmentInfoUnion, + unknown +> = z.union([ + z.lazy(() => ReleaseDeploymentItemEnvironmentInfoGcp$inboundSchema), + z.lazy(() => ReleaseDeploymentItemEnvironmentInfoAzure$inboundSchema), + z.lazy(() => ReleaseDeploymentItemEnvironmentInfoLocal$inboundSchema), + z.lazy(() => ReleaseDeploymentItemEnvironmentInfoAws$inboundSchema), + z.lazy(() => ReleaseDeploymentItemEnvironmentInfoTest$inboundSchema), + z.any(), +]); + +export function releaseDeploymentItemEnvironmentInfoUnionFromJSON( + jsonString: string, +): SafeParseResult< + ReleaseDeploymentItemEnvironmentInfoUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + ReleaseDeploymentItemEnvironmentInfoUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'ReleaseDeploymentItemEnvironmentInfoUnion' from JSON`, + ); +} + +/** @internal */ +export const ReleaseDeploymentItemDeploymentGroup$inboundSchema: z.ZodType< + ReleaseDeploymentItemDeploymentGroup, + unknown +> = z.object({ + id: z.string(), + name: z.string(), +}); + +export function releaseDeploymentItemDeploymentGroupFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + ReleaseDeploymentItemDeploymentGroup$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ReleaseDeploymentItemDeploymentGroup' from JSON`, + ); +} + +/** @internal */ +export const ReleaseDeploymentItemError$inboundSchema: z.ZodType< + ReleaseDeploymentItemError, + unknown +> = z.object({ + code: z.string(), + context: z.nullable(z.any()).optional(), + hint: z.nullable(z.string()).optional(), + httpStatusCode: z.nullable(z.int()).optional(), + internal: z.boolean(), + message: z.string(), + retryable: z.boolean().default(false), + source: z.nullable(z.any()).optional(), +}); + +export function releaseDeploymentItemErrorFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ReleaseDeploymentItemError$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ReleaseDeploymentItemError' from JSON`, + ); +} + +/** @internal */ +export const ReleaseDeploymentItem$inboundSchema: z.ZodType< + ReleaseDeploymentItem, + unknown +> = z.object({ + id: z.string(), + name: z.string(), + status: ReleaseDeploymentItemStatus$inboundSchema, + platform: ReleaseDeploymentItemPlatform$inboundSchema, + environmentInfo: z.nullable( + z.union([ + z.lazy(() => ReleaseDeploymentItemEnvironmentInfoGcp$inboundSchema), + z.lazy(() => ReleaseDeploymentItemEnvironmentInfoAzure$inboundSchema), + z.lazy(() => ReleaseDeploymentItemEnvironmentInfoLocal$inboundSchema), + z.lazy(() => ReleaseDeploymentItemEnvironmentInfoAws$inboundSchema), + z.lazy(() => ReleaseDeploymentItemEnvironmentInfoTest$inboundSchema), + z.any(), + ]), + ).optional(), + deploymentGroup: z.nullable( + z.lazy(() => ReleaseDeploymentItemDeploymentGroup$inboundSchema), + ).optional(), + currentReleaseId: z.nullable(z.string()).optional(), + desiredReleaseId: z.nullable(z.string()).optional(), + pinnedReleaseId: z.nullable(z.string()).optional(), + lastHeartbeatAt: z.nullable( + z.iso.datetime({ offset: true }).transform(v => new Date(v)), + ).optional(), + rolloutState: ReleaseRolloutState$inboundSchema, + releasedAt: z.nullable( + z.iso.datetime({ offset: true }).transform(v => new Date(v)), + ), + durationMs: z.nullable(z.int()), + error: z.nullable(z.lazy(() => ReleaseDeploymentItemError$inboundSchema)) + .optional(), +}); + +export function releaseDeploymentItemFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ReleaseDeploymentItem$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ReleaseDeploymentItem' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/releasedeploymentsresponse.ts b/client-sdks/platform/typescript/src/models/releasedeploymentsresponse.ts new file mode 100644 index 000000000..d2e2174cd --- /dev/null +++ b/client-sdks/platform/typescript/src/models/releasedeploymentsresponse.ts @@ -0,0 +1,51 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; +import { + ReleaseDeploymentItem, + ReleaseDeploymentItem$inboundSchema, +} from "./releasedeploymentitem.js"; +import { + ReleaseRolloutStateCounts, + ReleaseRolloutStateCounts$inboundSchema, +} from "./releaserolloutstatecounts.js"; + +export type ReleaseDeploymentsResponse = { + /** + * Items in this page + */ + items: Array; + /** + * Cursor for the next page, null if last page + */ + nextCursor: string | null; + /** + * Deployment counts per rollout state across all deployments the filters allow (ignores the state filter) + */ + stateCounts: ReleaseRolloutStateCounts; +}; + +/** @internal */ +export const ReleaseDeploymentsResponse$inboundSchema: z.ZodType< + ReleaseDeploymentsResponse, + unknown +> = z.object({ + items: z.array(ReleaseDeploymentItem$inboundSchema), + nextCursor: z.nullable(z.string()), + stateCounts: ReleaseRolloutStateCounts$inboundSchema, +}); + +export function releaseDeploymentsResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ReleaseDeploymentsResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ReleaseDeploymentsResponse' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/releaselistitemresponse.ts b/client-sdks/platform/typescript/src/models/releaselistitemresponse.ts index 5b66cd9c1..43766666b 100644 --- a/client-sdks/platform/typescript/src/models/releaselistitemresponse.ts +++ b/client-sdks/platform/typescript/src/models/releaselistitemresponse.ts @@ -11,10 +11,16 @@ import { SetupFingerprintInfo, SetupFingerprintInfo$inboundSchema, } from "./setupfingerprintinfo.js"; -import { - StackByPlatform, - StackByPlatform$inboundSchema, -} from "./stackbyplatform.js"; + +export type ReleaseListItemResponseStack = { + aws?: any | null | undefined; + gcp?: any | null | undefined; + azure?: any | null | undefined; + kubernetes?: any | null | undefined; + machines?: any | null | undefined; + local?: any | null | undefined; + test?: any | null | undefined; +}; /** * Project info, included when ?include=project is used @@ -30,6 +36,46 @@ export type ReleaseListItemResponseProject = { name: string; }; +/** + * Rollout stats, included when ?include=rollout is used + */ +export type Rollout = { + /** + * Deployments that finished updating to this release (excludes initial provisions) + */ + updatedCount: number; + /** + * Deployments currently targeting this release but not yet running it + */ + pendingCount: number; + /** + * Average time from release creation until a deployment finished updating, in milliseconds + */ + avgDurationMs: number | null; +}; + +/** + * Platform user who created the release, included when ?include=createdBy is used + */ +export type CreatedBy = { + /** + * User ID + */ + id: string; + /** + * User's display name + */ + name: string; + /** + * User's email address + */ + email: string; + /** + * User's avatar image URL + */ + image: string | null; +}; + export type ReleaseListItemResponse = { /** * Unique identifier for the release. @@ -39,16 +85,60 @@ export type ReleaseListItemResponse = { version: string; gitMetadata?: GitMetadata | null | undefined; createdAt: Date; - stack?: StackByPlatform | null | undefined; + stack?: ReleaseListItemResponseStack | null | undefined; setupFingerprints: { [k: string]: SetupFingerprintInfo }; rootDirectory?: string | null | undefined; + /** + * ID of the platform user who created the release, if known + */ + createdByUserId?: string | null | undefined; workspaceId: string; + /** + * Channels for which this release is currently selected + */ + currentChannels: Array; + /** + * Validated canonical provider URL for the exact commit + */ + commitUrl: string | null; /** * Project info, included when ?include=project is used */ project?: ReleaseListItemResponseProject | null | undefined; + /** + * Rollout stats, included when ?include=rollout is used + */ + rollout?: Rollout | null | undefined; + /** + * Platform user who created the release, included when ?include=createdBy is used + */ + createdBy?: CreatedBy | null | undefined; }; +/** @internal */ +export const ReleaseListItemResponseStack$inboundSchema: z.ZodType< + ReleaseListItemResponseStack, + unknown +> = z.object({ + aws: z.nullable(z.any()).optional(), + gcp: z.nullable(z.any()).optional(), + azure: z.nullable(z.any()).optional(), + kubernetes: z.nullable(z.any()).optional(), + machines: z.nullable(z.any()).optional(), + local: z.nullable(z.any()).optional(), + test: z.nullable(z.any()).optional(), +}); + +export function releaseListItemResponseStackFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ReleaseListItemResponseStack$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ReleaseListItemResponseStack' from JSON`, + ); +} + /** @internal */ export const ReleaseListItemResponseProject$inboundSchema: z.ZodType< ReleaseListItemResponseProject, @@ -68,6 +158,41 @@ export function releaseListItemResponseProjectFromJSON( ); } +/** @internal */ +export const Rollout$inboundSchema: z.ZodType = z.object({ + updatedCount: z.int(), + pendingCount: z.int(), + avgDurationMs: z.nullable(z.number()), +}); + +export function rolloutFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Rollout$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Rollout' from JSON`, + ); +} + +/** @internal */ +export const CreatedBy$inboundSchema: z.ZodType = z.object({ + id: z.string(), + name: z.string(), + email: z.string(), + image: z.nullable(z.string()), +}); + +export function createdByFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => CreatedBy$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'CreatedBy' from JSON`, + ); +} + /** @internal */ export const ReleaseListItemResponse$inboundSchema: z.ZodType< ReleaseListItemResponse, @@ -78,13 +203,19 @@ export const ReleaseListItemResponse$inboundSchema: z.ZodType< version: z.string(), gitMetadata: z.nullable(GitMetadata$inboundSchema).optional(), createdAt: z.iso.datetime({ offset: true }).transform(v => new Date(v)), - stack: z.nullable(StackByPlatform$inboundSchema).optional(), + stack: z.nullable(z.lazy(() => ReleaseListItemResponseStack$inboundSchema)) + .optional(), setupFingerprints: z.record(z.string(), SetupFingerprintInfo$inboundSchema), rootDirectory: z.nullable(z.string()).optional(), + createdByUserId: z.nullable(z.string()).optional(), workspaceId: z.string(), + currentChannels: z.array(z.string()), + commitUrl: z.nullable(z.string()), project: z.nullable( z.lazy(() => ReleaseListItemResponseProject$inboundSchema), ).optional(), + rollout: z.nullable(z.lazy(() => Rollout$inboundSchema)).optional(), + createdBy: z.nullable(z.lazy(() => CreatedBy$inboundSchema)).optional(), }); export function releaseListItemResponseFromJSON( diff --git a/client-sdks/platform/typescript/src/models/releaserolloutstate.ts b/client-sdks/platform/typescript/src/models/releaserolloutstate.ts new file mode 100644 index 000000000..759b1dcc6 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/releaserolloutstate.ts @@ -0,0 +1,26 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { ClosedEnum } from "../types/enums.js"; + +export const ReleaseRolloutState = { + Updated: "updated", + Updating: "updating", + Failed: "failed", + Pending: "pending", + PinnedOther: "pinned-other", + Superseded: "superseded", + OnOther: "on-other", +} as const; +export type ReleaseRolloutState = ClosedEnum; + +/** @internal */ +export const ReleaseRolloutState$inboundSchema: z.ZodEnum< + typeof ReleaseRolloutState +> = z.enum(ReleaseRolloutState); +/** @internal */ +export const ReleaseRolloutState$outboundSchema: z.ZodEnum< + typeof ReleaseRolloutState +> = ReleaseRolloutState$inboundSchema; diff --git a/client-sdks/platform/typescript/src/models/releaserolloutstatecounts.ts b/client-sdks/platform/typescript/src/models/releaserolloutstatecounts.ts new file mode 100644 index 000000000..adc311bab --- /dev/null +++ b/client-sdks/platform/typescript/src/models/releaserolloutstatecounts.ts @@ -0,0 +1,51 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { remap as remap$ } from "../lib/primitives.js"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +/** + * Deployment counts per rollout state across all deployments the filters allow (ignores the state filter) + */ +export type ReleaseRolloutStateCounts = { + updated: number; + updating: number; + failed: number; + pending: number; + pinnedOther: number; + superseded: number; + onOther: number; +}; + +/** @internal */ +export const ReleaseRolloutStateCounts$inboundSchema: z.ZodType< + ReleaseRolloutStateCounts, + unknown +> = z.object({ + updated: z.int(), + updating: z.int(), + failed: z.int(), + pending: z.int(), + "pinned-other": z.int(), + superseded: z.int(), + "on-other": z.int(), +}).transform((v) => { + return remap$(v, { + "pinned-other": "pinnedOther", + "on-other": "onOther", + }); +}); + +export function releaseRolloutStateCountsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => ReleaseRolloutStateCounts$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'ReleaseRolloutStateCounts' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/setdeploymentgroupexternalidrequest.ts b/client-sdks/platform/typescript/src/models/setdeploymentgroupexternalidrequest.ts new file mode 100644 index 000000000..935981e50 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/setdeploymentgroupexternalidrequest.ts @@ -0,0 +1,35 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; + +export type SetDeploymentGroupExternalIdRequest = { + /** + * Case-sensitive, URL- and header-safe identifier from the integrating application. + */ + externalId: string | null; +}; + +/** @internal */ +export type SetDeploymentGroupExternalIdRequest$Outbound = { + externalId: string | null; +}; + +/** @internal */ +export const SetDeploymentGroupExternalIdRequest$outboundSchema: z.ZodType< + SetDeploymentGroupExternalIdRequest$Outbound, + SetDeploymentGroupExternalIdRequest +> = z.object({ + externalId: z.nullable(z.string()), +}); + +export function setDeploymentGroupExternalIdRequestToJSON( + setDeploymentGroupExternalIdRequest: SetDeploymentGroupExternalIdRequest, +): string { + return JSON.stringify( + SetDeploymentGroupExternalIdRequest$outboundSchema.parse( + setDeploymentGroupExternalIdRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/slackchannel.ts b/client-sdks/platform/typescript/src/models/slackchannel.ts new file mode 100644 index 000000000..ed7d566af --- /dev/null +++ b/client-sdks/platform/typescript/src/models/slackchannel.ts @@ -0,0 +1,32 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export type SlackChannel = { + id: string; + name: string; + isMember: boolean; +}; + +/** @internal */ +export const SlackChannel$inboundSchema: z.ZodType = z + .object({ + id: z.string(), + name: z.string(), + isMember: z.boolean(), + }); + +export function slackChannelFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SlackChannel$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SlackChannel' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/slackchannelsresponse.ts b/client-sdks/platform/typescript/src/models/slackchannelsresponse.ts new file mode 100644 index 000000000..04ee9b4ad --- /dev/null +++ b/client-sdks/platform/typescript/src/models/slackchannelsresponse.ts @@ -0,0 +1,31 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; +import { SlackChannel, SlackChannel$inboundSchema } from "./slackchannel.js"; + +export type SlackChannelsResponse = { + channels: Array; +}; + +/** @internal */ +export const SlackChannelsResponse$inboundSchema: z.ZodType< + SlackChannelsResponse, + unknown +> = z.object({ + channels: z.array(SlackChannel$inboundSchema), +}); + +export function slackChannelsResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SlackChannelsResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SlackChannelsResponse' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/slackinstallurlresponse.ts b/client-sdks/platform/typescript/src/models/slackinstallurlresponse.ts new file mode 100644 index 000000000..8fee0e10f --- /dev/null +++ b/client-sdks/platform/typescript/src/models/slackinstallurlresponse.ts @@ -0,0 +1,30 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export type SlackInstallUrlResponse = { + url: string; +}; + +/** @internal */ +export const SlackInstallUrlResponse$inboundSchema: z.ZodType< + SlackInstallUrlResponse, + unknown +> = z.object({ + url: z.string(), +}); + +export function slackInstallUrlResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SlackInstallUrlResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SlackInstallUrlResponse' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/slackintegrationstatus.ts b/client-sdks/platform/typescript/src/models/slackintegrationstatus.ts new file mode 100644 index 000000000..6126e773f --- /dev/null +++ b/client-sdks/platform/typescript/src/models/slackintegrationstatus.ts @@ -0,0 +1,40 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export type SlackIntegrationStatus = { + connected: boolean; + slackTeamId: string | null; + slackTeamName: string | null; + installedByUserId: string | null; + installedAt: string | null; + notificationChannelId: string | null; +}; + +/** @internal */ +export const SlackIntegrationStatus$inboundSchema: z.ZodType< + SlackIntegrationStatus, + unknown +> = z.object({ + connected: z.boolean(), + slackTeamId: z.nullable(z.string()), + slackTeamName: z.nullable(z.string()), + installedByUserId: z.nullable(z.string()), + installedAt: z.nullable(z.string()), + notificationChannelId: z.nullable(z.string()), +}); + +export function slackIntegrationStatusFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SlackIntegrationStatus$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SlackIntegrationStatus' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/slacknotificationchannelrequest.ts b/client-sdks/platform/typescript/src/models/slacknotificationchannelrequest.ts new file mode 100644 index 000000000..8d675d3b2 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/slacknotificationchannelrequest.ts @@ -0,0 +1,32 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; + +export type SlackNotificationChannelRequest = { + channelId: string | null; +}; + +/** @internal */ +export type SlackNotificationChannelRequest$Outbound = { + channelId: string | null; +}; + +/** @internal */ +export const SlackNotificationChannelRequest$outboundSchema: z.ZodType< + SlackNotificationChannelRequest$Outbound, + SlackNotificationChannelRequest +> = z.object({ + channelId: z.nullable(z.string()), +}); + +export function slackNotificationChannelRequestToJSON( + slackNotificationChannelRequest: SlackNotificationChannelRequest, +): string { + return JSON.stringify( + SlackNotificationChannelRequest$outboundSchema.parse( + slackNotificationChannelRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/slacknotificationchannelresponse.ts b/client-sdks/platform/typescript/src/models/slacknotificationchannelresponse.ts new file mode 100644 index 000000000..78a07f0d1 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/slacknotificationchannelresponse.ts @@ -0,0 +1,32 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; + +export type SlackNotificationChannelResponse = { + notificationChannelId: string | null; + warning: string | null; +}; + +/** @internal */ +export const SlackNotificationChannelResponse$inboundSchema: z.ZodType< + SlackNotificationChannelResponse, + unknown +> = z.object({ + notificationChannelId: z.nullable(z.string()), + warning: z.nullable(z.string()), +}); + +export function slackNotificationChannelResponseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SlackNotificationChannelResponse$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SlackNotificationChannelResponse' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/stackbyplatform.ts b/client-sdks/platform/typescript/src/models/stackbyplatform.ts index 23ade349b..4b6448bcf 100644 --- a/client-sdks/platform/typescript/src/models/stackbyplatform.ts +++ b/client-sdks/platform/typescript/src/models/stackbyplatform.ts @@ -3,9 +3,6 @@ */ import * as z from "zod/v4"; -import { safeParse } from "../lib/schemas.js"; -import { Result as SafeParseResult } from "../types/fp.js"; -import { SDKValidationError } from "./errors/sdkvalidationerror.js"; export type StackByPlatform = { aws?: any | null | undefined; @@ -17,19 +14,6 @@ export type StackByPlatform = { test?: any | null | undefined; }; -/** @internal */ -export const StackByPlatform$inboundSchema: z.ZodType< - StackByPlatform, - unknown -> = z.object({ - aws: z.nullable(z.any()).optional(), - gcp: z.nullable(z.any()).optional(), - azure: z.nullable(z.any()).optional(), - kubernetes: z.nullable(z.any()).optional(), - machines: z.nullable(z.any()).optional(), - local: z.nullable(z.any()).optional(), - test: z.nullable(z.any()).optional(), -}); /** @internal */ export type StackByPlatform$Outbound = { aws?: any | null | undefined; @@ -60,12 +44,3 @@ export function stackByPlatformToJSON( ): string { return JSON.stringify(StackByPlatform$outboundSchema.parse(stackByPlatform)); } -export function stackByPlatformFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => StackByPlatform$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'StackByPlatform' from JSON`, - ); -} diff --git a/client-sdks/platform/typescript/src/models/syncacquireresponse.ts b/client-sdks/platform/typescript/src/models/syncacquireresponse.ts index 9bcb2ad3f..4779e3142 100644 --- a/client-sdks/platform/typescript/src/models/syncacquireresponse.ts +++ b/client-sdks/platform/typescript/src/models/syncacquireresponse.ts @@ -36,6 +36,10 @@ export type SyncAcquireResponse = { * List of deployments that failed during context building (locks already released) */ failures: Array; + /** + * When the provisional leases on the returned deployments lapse. Confirm them with sync/renew before starting work. Null when nothing was acquired. + */ + leaseExpiresAt: Date | null; }; /** @internal */ @@ -62,6 +66,9 @@ export const SyncAcquireResponse$inboundSchema: z.ZodType< > = z.object({ deployments: z.array(SyncAcquireResponseDeployment$inboundSchema), failures: z.array(z.lazy(() => Failure$inboundSchema)), + leaseExpiresAt: z.nullable( + z.iso.datetime({ offset: true }).transform(v => new Date(v)), + ), }); export function syncAcquireResponseFromJSON( diff --git a/client-sdks/platform/typescript/src/models/syncacquireresponsedeployment.ts b/client-sdks/platform/typescript/src/models/syncacquireresponsedeployment.ts index f7d4bd94d..182c41976 100644 --- a/client-sdks/platform/typescript/src/models/syncacquireresponsedeployment.ts +++ b/client-sdks/platform/typescript/src/models/syncacquireresponsedeployment.ts @@ -1502,6 +1502,17 @@ export type SyncAcquireResponseDeploymentCurrentReleaseResources = { * The total dependencies are: resource.get_dependencies() + this list */ dependencies: Array; + /** + * Id of the boolean stack input that decides whether this resource is + * + * @remarks + * created at all. `None` means always create it. + * + * Set by `.enabled(input)` in the SDK. Setup emitters render the resource + * conditionally on the matching template variable, so a deployer who says no + * never gets the resource, its outputs, or anything derived from it. + */ + enabledWhen?: string | null | undefined; /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ @@ -1839,94 +1850,115 @@ export type SyncAcquireResponseDeploymentCurrentPlatform = ClosedEnum< typeof SyncAcquireResponseDeploymentCurrentPlatform >; -export const SyncAcquireResponseDeploymentPreparedStackTypeStringList = { +/** + * Actor that owns structural work during the initial setup phase. + */ +export const SyncAcquireResponseDeploymentInitialSetupAuthority = { + ImportedHandoff: "importedHandoff", + DirectSetup: "directSetup", +} as const; +/** + * Actor that owns structural work during the initial setup phase. + */ +export type SyncAcquireResponseDeploymentInitialSetupAuthority = ClosedEnum< + typeof SyncAcquireResponseDeploymentInitialSetupAuthority +>; + +export const SyncAcquireResponseDeploymentPendingPreparedStackTypeStringList = { StringList: "stringList", } as const; -export type SyncAcquireResponseDeploymentPreparedStackTypeStringList = - ClosedEnum; +export type SyncAcquireResponseDeploymentPendingPreparedStackTypeStringList = + ClosedEnum< + typeof SyncAcquireResponseDeploymentPendingPreparedStackTypeStringList + >; -export type SyncAcquireResponseDeploymentPreparedStackDefaultStringList = { - type: SyncAcquireResponseDeploymentPreparedStackTypeStringList; - /** - * String list default. - */ - value: Array; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackDefaultStringList = + { + type: SyncAcquireResponseDeploymentPendingPreparedStackTypeStringList; + /** + * String list default. + */ + value: Array; + }; -export const SyncAcquireResponseDeploymentPreparedStackTypeBoolean = { +export const SyncAcquireResponseDeploymentPendingPreparedStackTypeBoolean = { Boolean: "boolean", } as const; -export type SyncAcquireResponseDeploymentPreparedStackTypeBoolean = ClosedEnum< - typeof SyncAcquireResponseDeploymentPreparedStackTypeBoolean ->; +export type SyncAcquireResponseDeploymentPendingPreparedStackTypeBoolean = + ClosedEnum< + typeof SyncAcquireResponseDeploymentPendingPreparedStackTypeBoolean + >; -export type SyncAcquireResponseDeploymentPreparedStackDefaultBoolean = { - type: SyncAcquireResponseDeploymentPreparedStackTypeBoolean; +export type SyncAcquireResponseDeploymentPendingPreparedStackDefaultBoolean = { + type: SyncAcquireResponseDeploymentPendingPreparedStackTypeBoolean; /** * Boolean default. */ value: boolean; }; -export const SyncAcquireResponseDeploymentPreparedStackTypeNumber = { +export const SyncAcquireResponseDeploymentPendingPreparedStackTypeNumber = { Number: "number", } as const; -export type SyncAcquireResponseDeploymentPreparedStackTypeNumber = ClosedEnum< - typeof SyncAcquireResponseDeploymentPreparedStackTypeNumber ->; +export type SyncAcquireResponseDeploymentPendingPreparedStackTypeNumber = + ClosedEnum< + typeof SyncAcquireResponseDeploymentPendingPreparedStackTypeNumber + >; -export type SyncAcquireResponseDeploymentPreparedStackDefaultNumber = { - type: SyncAcquireResponseDeploymentPreparedStackTypeNumber; +export type SyncAcquireResponseDeploymentPendingPreparedStackDefaultNumber = { + type: SyncAcquireResponseDeploymentPendingPreparedStackTypeNumber; /** * Number default. */ value: string; }; -export const SyncAcquireResponseDeploymentPreparedStackTypeString = { +export const SyncAcquireResponseDeploymentPendingPreparedStackTypeString = { String: "string", } as const; -export type SyncAcquireResponseDeploymentPreparedStackTypeString = ClosedEnum< - typeof SyncAcquireResponseDeploymentPreparedStackTypeString ->; +export type SyncAcquireResponseDeploymentPendingPreparedStackTypeString = + ClosedEnum< + typeof SyncAcquireResponseDeploymentPendingPreparedStackTypeString + >; -export type SyncAcquireResponseDeploymentPreparedStackDefaultString = { - type: SyncAcquireResponseDeploymentPreparedStackTypeString; +export type SyncAcquireResponseDeploymentPendingPreparedStackDefaultString = { + type: SyncAcquireResponseDeploymentPendingPreparedStackTypeString; /** * String default. */ value: string; }; -export type SyncAcquireResponseDeploymentPreparedStackDefaultUnion = - | SyncAcquireResponseDeploymentPreparedStackDefaultString - | SyncAcquireResponseDeploymentPreparedStackDefaultNumber - | SyncAcquireResponseDeploymentPreparedStackDefaultBoolean - | SyncAcquireResponseDeploymentPreparedStackDefaultStringList +export type SyncAcquireResponseDeploymentPendingPreparedStackDefaultUnion = + | SyncAcquireResponseDeploymentPendingPreparedStackDefaultString + | SyncAcquireResponseDeploymentPendingPreparedStackDefaultNumber + | SyncAcquireResponseDeploymentPendingPreparedStackDefaultBoolean + | SyncAcquireResponseDeploymentPendingPreparedStackDefaultStringList | any; /** * Environment variable handling for a stack input mapping. */ -export const SyncAcquireResponseDeploymentPreparedStackTypeEnvEnum = { +export const SyncAcquireResponseDeploymentPendingPreparedStackTypeEnvEnum = { Plain: "plain", Secret: "secret", } as const; /** * Environment variable handling for a stack input mapping. */ -export type SyncAcquireResponseDeploymentPreparedStackTypeEnvEnum = ClosedEnum< - typeof SyncAcquireResponseDeploymentPreparedStackTypeEnvEnum ->; +export type SyncAcquireResponseDeploymentPendingPreparedStackTypeEnvEnum = + ClosedEnum< + typeof SyncAcquireResponseDeploymentPendingPreparedStackTypeEnvEnum + >; -export type SyncAcquireResponseDeploymentPreparedStackTypeUnion = - | SyncAcquireResponseDeploymentPreparedStackTypeEnvEnum +export type SyncAcquireResponseDeploymentPendingPreparedStackTypeUnion = + | SyncAcquireResponseDeploymentPendingPreparedStackTypeEnvEnum | any; /** * How a resolved stack input is injected into runtime environment variables. */ -export type SyncAcquireResponseDeploymentPreparedStackEnv = { +export type SyncAcquireResponseDeploymentPendingPreparedStackEnv = { /** * Environment variable name. */ @@ -1936,7 +1968,7 @@ export type SyncAcquireResponseDeploymentPreparedStackEnv = { */ targetResources?: Array | null | undefined; type?: - | SyncAcquireResponseDeploymentPreparedStackTypeEnvEnum + | SyncAcquireResponseDeploymentPendingPreparedStackTypeEnvEnum | any | null | undefined; @@ -1945,7 +1977,7 @@ export type SyncAcquireResponseDeploymentPreparedStackEnv = { /** * Primitive stack input kind. */ -export const SyncAcquireResponseDeploymentPreparedStackKind = { +export const SyncAcquireResponseDeploymentPendingPreparedStackKind = { String: "string", Secret: "secret", Number: "number", @@ -1957,14 +1989,14 @@ export const SyncAcquireResponseDeploymentPreparedStackKind = { /** * Primitive stack input kind. */ -export type SyncAcquireResponseDeploymentPreparedStackKind = ClosedEnum< - typeof SyncAcquireResponseDeploymentPreparedStackKind +export type SyncAcquireResponseDeploymentPendingPreparedStackKind = ClosedEnum< + typeof SyncAcquireResponseDeploymentPendingPreparedStackKind >; /** * Represents the target cloud platform. */ -export const SyncAcquireResponseDeploymentPreparedStackPlatform = { +export const SyncAcquireResponseDeploymentPendingPreparedStackPlatform = { Aws: "aws", Gcp: "gcp", Azure: "azure", @@ -1976,28 +2008,28 @@ export const SyncAcquireResponseDeploymentPreparedStackPlatform = { /** * Represents the target cloud platform. */ -export type SyncAcquireResponseDeploymentPreparedStackPlatform = ClosedEnum< - typeof SyncAcquireResponseDeploymentPreparedStackPlatform ->; +export type SyncAcquireResponseDeploymentPendingPreparedStackPlatform = + ClosedEnum; /** * Who can provide a stack input value. */ -export const SyncAcquireResponseDeploymentPreparedStackProvidedBy = { +export const SyncAcquireResponseDeploymentPendingPreparedStackProvidedBy = { Developer: "developer", Deployer: "deployer", } as const; /** * Who can provide a stack input value. */ -export type SyncAcquireResponseDeploymentPreparedStackProvidedBy = ClosedEnum< - typeof SyncAcquireResponseDeploymentPreparedStackProvidedBy ->; +export type SyncAcquireResponseDeploymentPendingPreparedStackProvidedBy = + ClosedEnum< + typeof SyncAcquireResponseDeploymentPendingPreparedStackProvidedBy + >; /** * Portable stack input validation constraints. */ -export type SyncAcquireResponseDeploymentPreparedStackValidation = { +export type SyncAcquireResponseDeploymentPendingPreparedStackValidation = { /** * Semantic format hint such as url. */ @@ -2036,19 +2068,19 @@ export type SyncAcquireResponseDeploymentPreparedStackValidation = { values?: Array | null | undefined; }; -export type SyncAcquireResponseDeploymentPreparedStackValidationUnion = - | SyncAcquireResponseDeploymentPreparedStackValidation +export type SyncAcquireResponseDeploymentPendingPreparedStackValidationUnion = + | SyncAcquireResponseDeploymentPendingPreparedStackValidation | any; /** * Stack input definition serialized into a release stack. */ -export type SyncAcquireResponseDeploymentPreparedStackInput = { +export type SyncAcquireResponseDeploymentPendingPreparedStackInput = { default?: - | SyncAcquireResponseDeploymentPreparedStackDefaultString - | SyncAcquireResponseDeploymentPreparedStackDefaultNumber - | SyncAcquireResponseDeploymentPreparedStackDefaultBoolean - | SyncAcquireResponseDeploymentPreparedStackDefaultStringList + | SyncAcquireResponseDeploymentPendingPreparedStackDefaultString + | SyncAcquireResponseDeploymentPendingPreparedStackDefaultNumber + | SyncAcquireResponseDeploymentPendingPreparedStackDefaultBoolean + | SyncAcquireResponseDeploymentPendingPreparedStackDefaultStringList | any | null | undefined; @@ -2059,7 +2091,7 @@ export type SyncAcquireResponseDeploymentPreparedStackInput = { /** * Runtime env-var mappings for v1 input resolution. */ - env?: Array | undefined; + env?: Array | undefined; /** * Stable input ID used by CLI/API calls. */ @@ -2067,7 +2099,7 @@ export type SyncAcquireResponseDeploymentPreparedStackInput = { /** * Primitive stack input kind. */ - kind: SyncAcquireResponseDeploymentPreparedStackKind; + kind: SyncAcquireResponseDeploymentPendingPreparedStackKind; /** * Human-facing field label. */ @@ -2080,48 +2112,53 @@ export type SyncAcquireResponseDeploymentPreparedStackInput = { * Platforms where this input applies. */ platforms?: - | Array + | Array | null | undefined; /** * Who can provide this value. */ - providedBy: Array; + providedBy: Array< + SyncAcquireResponseDeploymentPendingPreparedStackProvidedBy + >; /** * Whether a resolved value is required before deployment can proceed. */ required: boolean; validation?: - | SyncAcquireResponseDeploymentPreparedStackValidation + | SyncAcquireResponseDeploymentPendingPreparedStackValidation | any | null | undefined; }; -export const SyncAcquireResponseDeploymentPreparedStackManagementEnum = { +export const SyncAcquireResponseDeploymentPendingPreparedStackManagementEnum = { Auto: "auto", } as const; -export type SyncAcquireResponseDeploymentPreparedStackManagementEnum = - ClosedEnum; +export type SyncAcquireResponseDeploymentPendingPreparedStackManagementEnum = + ClosedEnum< + typeof SyncAcquireResponseDeploymentPendingPreparedStackManagementEnum + >; /** * AWS-specific binding specification */ -export type SyncAcquireResponseDeploymentPreparedStackOverrideAwResource = { - /** - * Optional condition for additional filtering (rare) - */ - condition?: { [k: string]: { [k: string]: string } } | null | undefined; - /** - * Resource ARNs to bind to - */ - resources: Array; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwResource = + { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; + }; /** * AWS-specific binding specification */ -export type SyncAcquireResponseDeploymentPreparedStackOverrideAwStack = { +export type SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -2135,36 +2172,41 @@ export type SyncAcquireResponseDeploymentPreparedStackOverrideAwStack = { /** * Generic binding configuration for permissions */ -export type SyncAcquireResponseDeploymentPreparedStackOverrideAwBinding = { - /** - * AWS-specific binding specification - */ - resource?: - | SyncAcquireResponseDeploymentPreparedStackOverrideAwResource - | undefined; - /** - * AWS-specific binding specification - */ - stack?: SyncAcquireResponseDeploymentPreparedStackOverrideAwStack | undefined; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwBinding = + { + /** + * AWS-specific binding specification + */ + resource?: + | SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwResource + | undefined; + /** + * AWS-specific binding specification + */ + stack?: + | SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwStack + | undefined; + }; /** * IAM effect. Defaults to Allow. */ -export const SyncAcquireResponseDeploymentPreparedStackOverrideEffect = { +export const SyncAcquireResponseDeploymentPendingPreparedStackOverrideEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type SyncAcquireResponseDeploymentPreparedStackOverrideEffect = - ClosedEnum; +export type SyncAcquireResponseDeploymentPendingPreparedStackOverrideEffect = + ClosedEnum< + typeof SyncAcquireResponseDeploymentPendingPreparedStackOverrideEffect + >; /** * Grant permissions for a specific cloud platform */ -export type SyncAcquireResponseDeploymentPreparedStackOverrideAwGrant = { +export type SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2190,11 +2232,11 @@ export type SyncAcquireResponseDeploymentPreparedStackOverrideAwGrant = { /** * AWS-specific platform permission configuration */ -export type SyncAcquireResponseDeploymentPreparedStackOverrideAw = { +export type SyncAcquireResponseDeploymentPendingPreparedStackOverrideAw = { /** * Generic binding configuration for permissions */ - binding: SyncAcquireResponseDeploymentPreparedStackOverrideAwBinding; + binding: SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2202,11 +2244,13 @@ export type SyncAcquireResponseDeploymentPreparedStackOverrideAw = { /** * IAM effect. Defaults to Allow. */ - effect?: SyncAcquireResponseDeploymentPreparedStackOverrideEffect | undefined; + effect?: + | SyncAcquireResponseDeploymentPendingPreparedStackOverrideEffect + | undefined; /** * Grant permissions for a specific cloud platform */ - grant: SyncAcquireResponseDeploymentPreparedStackOverrideAwGrant; + grant: SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2216,75 +2260,80 @@ export type SyncAcquireResponseDeploymentPreparedStackOverrideAw = { /** * Azure-specific binding specification */ -export type SyncAcquireResponseDeploymentPreparedStackOverrideAzureResource = { - /** - * Scope (subscription/resource group/resource level) - */ - scope: string; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureResource = + { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; + }; /** * Azure-specific binding specification */ -export type SyncAcquireResponseDeploymentPreparedStackOverrideAzureStack = { - /** - * Scope (subscription/resource group/resource level) - */ - scope: string; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureStack = + { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; + }; /** * Generic binding configuration for permissions */ -export type SyncAcquireResponseDeploymentPreparedStackOverrideAzureBinding = { - /** - * Azure-specific binding specification - */ - resource?: - | SyncAcquireResponseDeploymentPreparedStackOverrideAzureResource - | undefined; - /** - * Azure-specific binding specification - */ - stack?: - | SyncAcquireResponseDeploymentPreparedStackOverrideAzureStack - | undefined; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureBinding = + { + /** + * Azure-specific binding specification + */ + resource?: + | SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureResource + | undefined; + /** + * Azure-specific binding specification + */ + stack?: + | SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureStack + | undefined; + }; /** * Grant permissions for a specific cloud platform */ -export type SyncAcquireResponseDeploymentPreparedStackOverrideAzureGrant = { - /** - * AWS IAM actions (only for AWS) - */ - actions?: Array | null | undefined; - /** - * Azure actions (only for Azure) - */ - dataActions?: Array | null | undefined; - /** - * GCP permissions that require an exact residual custom role. - */ - permissions?: Array | null | undefined; - /** - * Provider predefined roles to bind directly. - */ - predefinedRoles?: Array | null | undefined; - /** - * GCP residual custom permissions to pair with predefined roles. - */ - residualPermissions?: Array | null | undefined; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureGrant = + { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; + }; /** * Azure-specific platform permission configuration */ -export type SyncAcquireResponseDeploymentPreparedStackOverrideAzure = { +export type SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzure = { /** * Generic binding configuration for permissions */ - binding: SyncAcquireResponseDeploymentPreparedStackOverrideAzureBinding; + binding: + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2292,7 +2341,7 @@ export type SyncAcquireResponseDeploymentPreparedStackOverrideAzure = { /** * Grant permissions for a specific cloud platform */ - grant: SyncAcquireResponseDeploymentPreparedStackOverrideAzureGrant; + grant: SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2302,110 +2351,115 @@ export type SyncAcquireResponseDeploymentPreparedStackOverrideAzure = { /** * GCP IAM condition */ -export type SyncAcquireResponseDeploymentPreparedStackOverrideConditionResource = +export type SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionResource = { expression: string; title: string; }; -export type SyncAcquireResponseDeploymentPreparedStackOverrideResourceConditionUnion = - | SyncAcquireResponseDeploymentPreparedStackOverrideConditionResource +export type SyncAcquireResponseDeploymentPendingPreparedStackOverrideResourceConditionUnion = + | SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionResource | any; /** * GCP-specific binding specification */ -export type SyncAcquireResponseDeploymentPreparedStackOverrideGcpResource = { - condition?: - | SyncAcquireResponseDeploymentPreparedStackOverrideConditionResource - | any - | null - | undefined; - /** - * Scope (project/resource level) - */ - scope: string; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpResource = + { + condition?: + | SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionResource + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; + }; /** * GCP IAM condition */ -export type SyncAcquireResponseDeploymentPreparedStackOverrideConditionStack = { - expression: string; - title: string; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionStack = + { + expression: string; + title: string; + }; -export type SyncAcquireResponseDeploymentPreparedStackOverrideStackConditionUnion = - | SyncAcquireResponseDeploymentPreparedStackOverrideConditionStack +export type SyncAcquireResponseDeploymentPendingPreparedStackOverrideStackConditionUnion = + | SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionStack | any; /** * GCP-specific binding specification */ -export type SyncAcquireResponseDeploymentPreparedStackOverrideGcpStack = { - condition?: - | SyncAcquireResponseDeploymentPreparedStackOverrideConditionStack - | any - | null - | undefined; - /** - * Scope (project/resource level) - */ - scope: string; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpStack = + { + condition?: + | SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionStack + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; + }; /** * Generic binding configuration for permissions */ -export type SyncAcquireResponseDeploymentPreparedStackOverrideGcpBinding = { - /** - * GCP-specific binding specification - */ - resource?: - | SyncAcquireResponseDeploymentPreparedStackOverrideGcpResource - | undefined; - /** - * GCP-specific binding specification - */ - stack?: - | SyncAcquireResponseDeploymentPreparedStackOverrideGcpStack - | undefined; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpBinding = + { + /** + * GCP-specific binding specification + */ + resource?: + | SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpResource + | undefined; + /** + * GCP-specific binding specification + */ + stack?: + | SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpStack + | undefined; + }; /** * Grant permissions for a specific cloud platform */ -export type SyncAcquireResponseDeploymentPreparedStackOverrideGcpGrant = { - /** - * AWS IAM actions (only for AWS) - */ - actions?: Array | null | undefined; - /** - * Azure actions (only for Azure) - */ - dataActions?: Array | null | undefined; - /** - * GCP permissions that require an exact residual custom role. - */ - permissions?: Array | null | undefined; - /** - * Provider predefined roles to bind directly. - */ - predefinedRoles?: Array | null | undefined; - /** - * GCP residual custom permissions to pair with predefined roles. - */ - residualPermissions?: Array | null | undefined; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpGrant = + { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; + }; /** * GCP-specific platform permission configuration */ -export type SyncAcquireResponseDeploymentPreparedStackOverrideGcp = { +export type SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcp = { /** * Generic binding configuration for permissions */ - binding: SyncAcquireResponseDeploymentPreparedStackOverrideGcpBinding; + binding: SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2413,7 +2467,7 @@ export type SyncAcquireResponseDeploymentPreparedStackOverrideGcp = { /** * Grant permissions for a specific cloud platform */ - grant: SyncAcquireResponseDeploymentPreparedStackOverrideGcpGrant; + grant: SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2423,34 +2477,35 @@ export type SyncAcquireResponseDeploymentPreparedStackOverrideGcp = { /** * Platform-specific permission configurations */ -export type SyncAcquireResponseDeploymentPreparedStackOverridePlatforms = { - /** - * AWS permission configurations - */ - aws?: - | Array - | null - | undefined; - /** - * Azure permission configurations - */ - azure?: - | Array - | null - | undefined; - /** - * GCP permission configurations - */ - gcp?: - | Array - | null - | undefined; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackOverridePlatforms = + { + /** + * AWS permission configurations + */ + aws?: + | Array + | null + | undefined; + /** + * Azure permission configurations + */ + azure?: + | Array + | null + | undefined; + /** + * GCP permission configurations + */ + gcp?: + | Array + | null + | undefined; + }; /** * A permission set that can be applied across different cloud platforms */ -export type SyncAcquireResponseDeploymentPreparedStackOverride = { +export type SyncAcquireResponseDeploymentPendingPreparedStackOverride = { /** * Human-readable description of what this permission set allows */ @@ -2462,17 +2517,17 @@ export type SyncAcquireResponseDeploymentPreparedStackOverride = { /** * Platform-specific permission configurations */ - platforms: SyncAcquireResponseDeploymentPreparedStackOverridePlatforms; + platforms: SyncAcquireResponseDeploymentPendingPreparedStackOverridePlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type SyncAcquireResponseDeploymentPreparedStackOverrideUnion = - | SyncAcquireResponseDeploymentPreparedStackOverride +export type SyncAcquireResponseDeploymentPendingPreparedStackOverrideUnion = + | SyncAcquireResponseDeploymentPendingPreparedStackOverride | string; -export type SyncAcquireResponseDeploymentPreparedStackManagement2 = { +export type SyncAcquireResponseDeploymentPendingPreparedStackManagement2 = { /** * Permission profile that maps resources to permission sets * @@ -2481,7 +2536,7 @@ export type SyncAcquireResponseDeploymentPreparedStackManagement2 = { */ override: { [k: string]: Array< - SyncAcquireResponseDeploymentPreparedStackOverride | string + SyncAcquireResponseDeploymentPendingPreparedStackOverride | string >; }; }; @@ -2489,21 +2544,22 @@ export type SyncAcquireResponseDeploymentPreparedStackManagement2 = { /** * AWS-specific binding specification */ -export type SyncAcquireResponseDeploymentPreparedStackExtendAwResource = { - /** - * Optional condition for additional filtering (rare) - */ - condition?: { [k: string]: { [k: string]: string } } | null | undefined; - /** - * Resource ARNs to bind to - */ - resources: Array; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackExtendAwResource = + { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; + }; /** * AWS-specific binding specification */ -export type SyncAcquireResponseDeploymentPreparedStackExtendAwStack = { +export type SyncAcquireResponseDeploymentPendingPreparedStackExtendAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -2517,37 +2573,40 @@ export type SyncAcquireResponseDeploymentPreparedStackExtendAwStack = { /** * Generic binding configuration for permissions */ -export type SyncAcquireResponseDeploymentPreparedStackExtendAwBinding = { +export type SyncAcquireResponseDeploymentPendingPreparedStackExtendAwBinding = { /** * AWS-specific binding specification */ resource?: - | SyncAcquireResponseDeploymentPreparedStackExtendAwResource + | SyncAcquireResponseDeploymentPendingPreparedStackExtendAwResource | undefined; /** * AWS-specific binding specification */ - stack?: SyncAcquireResponseDeploymentPreparedStackExtendAwStack | undefined; + stack?: + | SyncAcquireResponseDeploymentPendingPreparedStackExtendAwStack + | undefined; }; /** * IAM effect. Defaults to Allow. */ -export const SyncAcquireResponseDeploymentPreparedStackExtendEffect = { +export const SyncAcquireResponseDeploymentPendingPreparedStackExtendEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type SyncAcquireResponseDeploymentPreparedStackExtendEffect = ClosedEnum< - typeof SyncAcquireResponseDeploymentPreparedStackExtendEffect ->; +export type SyncAcquireResponseDeploymentPendingPreparedStackExtendEffect = + ClosedEnum< + typeof SyncAcquireResponseDeploymentPendingPreparedStackExtendEffect + >; /** * Grant permissions for a specific cloud platform */ -export type SyncAcquireResponseDeploymentPreparedStackExtendAwGrant = { +export type SyncAcquireResponseDeploymentPendingPreparedStackExtendAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2573,11 +2632,11 @@ export type SyncAcquireResponseDeploymentPreparedStackExtendAwGrant = { /** * AWS-specific platform permission configuration */ -export type SyncAcquireResponseDeploymentPreparedStackExtendAw = { +export type SyncAcquireResponseDeploymentPendingPreparedStackExtendAw = { /** * Generic binding configuration for permissions */ - binding: SyncAcquireResponseDeploymentPreparedStackExtendAwBinding; + binding: SyncAcquireResponseDeploymentPendingPreparedStackExtendAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2585,11 +2644,13 @@ export type SyncAcquireResponseDeploymentPreparedStackExtendAw = { /** * IAM effect. Defaults to Allow. */ - effect?: SyncAcquireResponseDeploymentPreparedStackExtendEffect | undefined; + effect?: + | SyncAcquireResponseDeploymentPendingPreparedStackExtendEffect + | undefined; /** * Grant permissions for a specific cloud platform */ - grant: SyncAcquireResponseDeploymentPreparedStackExtendAwGrant; + grant: SyncAcquireResponseDeploymentPendingPreparedStackExtendAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2599,75 +2660,79 @@ export type SyncAcquireResponseDeploymentPreparedStackExtendAw = { /** * Azure-specific binding specification */ -export type SyncAcquireResponseDeploymentPreparedStackExtendAzureResource = { - /** - * Scope (subscription/resource group/resource level) - */ - scope: string; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureResource = + { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; + }; /** * Azure-specific binding specification */ -export type SyncAcquireResponseDeploymentPreparedStackExtendAzureStack = { - /** - * Scope (subscription/resource group/resource level) - */ - scope: string; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureStack = + { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; + }; /** * Generic binding configuration for permissions */ -export type SyncAcquireResponseDeploymentPreparedStackExtendAzureBinding = { - /** - * Azure-specific binding specification - */ - resource?: - | SyncAcquireResponseDeploymentPreparedStackExtendAzureResource - | undefined; - /** - * Azure-specific binding specification - */ - stack?: - | SyncAcquireResponseDeploymentPreparedStackExtendAzureStack - | undefined; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureBinding = + { + /** + * Azure-specific binding specification + */ + resource?: + | SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureResource + | undefined; + /** + * Azure-specific binding specification + */ + stack?: + | SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureStack + | undefined; + }; /** * Grant permissions for a specific cloud platform */ -export type SyncAcquireResponseDeploymentPreparedStackExtendAzureGrant = { - /** - * AWS IAM actions (only for AWS) - */ - actions?: Array | null | undefined; - /** - * Azure actions (only for Azure) - */ - dataActions?: Array | null | undefined; - /** - * GCP permissions that require an exact residual custom role. - */ - permissions?: Array | null | undefined; - /** - * Provider predefined roles to bind directly. - */ - predefinedRoles?: Array | null | undefined; - /** - * GCP residual custom permissions to pair with predefined roles. - */ - residualPermissions?: Array | null | undefined; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureGrant = + { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; + }; /** * Azure-specific platform permission configuration */ -export type SyncAcquireResponseDeploymentPreparedStackExtendAzure = { +export type SyncAcquireResponseDeploymentPendingPreparedStackExtendAzure = { /** * Generic binding configuration for permissions */ - binding: SyncAcquireResponseDeploymentPreparedStackExtendAzureBinding; + binding: SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2675,7 +2740,7 @@ export type SyncAcquireResponseDeploymentPreparedStackExtendAzure = { /** * Grant permissions for a specific cloud platform */ - grant: SyncAcquireResponseDeploymentPreparedStackExtendAzureGrant; + grant: SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2685,49 +2750,51 @@ export type SyncAcquireResponseDeploymentPreparedStackExtendAzure = { /** * GCP IAM condition */ -export type SyncAcquireResponseDeploymentPreparedStackExtendConditionResource = +export type SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionResource = { expression: string; title: string; }; -export type SyncAcquireResponseDeploymentPreparedStackExtendResourceConditionUnion = - | SyncAcquireResponseDeploymentPreparedStackExtendConditionResource +export type SyncAcquireResponseDeploymentPendingPreparedStackExtendResourceConditionUnion = + | SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionResource | any; /** * GCP-specific binding specification */ -export type SyncAcquireResponseDeploymentPreparedStackExtendGcpResource = { - condition?: - | SyncAcquireResponseDeploymentPreparedStackExtendConditionResource - | any - | null - | undefined; - /** - * Scope (project/resource level) - */ - scope: string; -}; - -/** - * GCP IAM condition - */ -export type SyncAcquireResponseDeploymentPreparedStackExtendConditionStack = { - expression: string; - title: string; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpResource = + { + condition?: + | SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionResource + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; + }; -export type SyncAcquireResponseDeploymentPreparedStackExtendStackConditionUnion = - | SyncAcquireResponseDeploymentPreparedStackExtendConditionStack +/** + * GCP IAM condition + */ +export type SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionStack = + { + expression: string; + title: string; + }; + +export type SyncAcquireResponseDeploymentPendingPreparedStackExtendStackConditionUnion = + | SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionStack | any; /** * GCP-specific binding specification */ -export type SyncAcquireResponseDeploymentPreparedStackExtendGcpStack = { +export type SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpStack = { condition?: - | SyncAcquireResponseDeploymentPreparedStackExtendConditionStack + | SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionStack | any | null | undefined; @@ -2740,23 +2807,26 @@ export type SyncAcquireResponseDeploymentPreparedStackExtendGcpStack = { /** * Generic binding configuration for permissions */ -export type SyncAcquireResponseDeploymentPreparedStackExtendGcpBinding = { - /** - * GCP-specific binding specification - */ - resource?: - | SyncAcquireResponseDeploymentPreparedStackExtendGcpResource - | undefined; - /** - * GCP-specific binding specification - */ - stack?: SyncAcquireResponseDeploymentPreparedStackExtendGcpStack | undefined; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpBinding = + { + /** + * GCP-specific binding specification + */ + resource?: + | SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpResource + | undefined; + /** + * GCP-specific binding specification + */ + stack?: + | SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpStack + | undefined; + }; /** * Grant permissions for a specific cloud platform */ -export type SyncAcquireResponseDeploymentPreparedStackExtendGcpGrant = { +export type SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2782,11 +2852,11 @@ export type SyncAcquireResponseDeploymentPreparedStackExtendGcpGrant = { /** * GCP-specific platform permission configuration */ -export type SyncAcquireResponseDeploymentPreparedStackExtendGcp = { +export type SyncAcquireResponseDeploymentPendingPreparedStackExtendGcp = { /** * Generic binding configuration for permissions */ - binding: SyncAcquireResponseDeploymentPreparedStackExtendGcpBinding; + binding: SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2794,7 +2864,7 @@ export type SyncAcquireResponseDeploymentPreparedStackExtendGcp = { /** * Grant permissions for a specific cloud platform */ - grant: SyncAcquireResponseDeploymentPreparedStackExtendGcpGrant; + grant: SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2804,26 +2874,26 @@ export type SyncAcquireResponseDeploymentPreparedStackExtendGcp = { /** * Platform-specific permission configurations */ -export type SyncAcquireResponseDeploymentPreparedStackExtendPlatforms = { +export type SyncAcquireResponseDeploymentPendingPreparedStackExtendPlatforms = { /** * AWS permission configurations */ aws?: - | Array + | Array | null | undefined; /** * Azure permission configurations */ azure?: - | Array + | Array | null | undefined; /** * GCP permission configurations */ gcp?: - | Array + | Array | null | undefined; }; @@ -2831,7 +2901,7 @@ export type SyncAcquireResponseDeploymentPreparedStackExtendPlatforms = { /** * A permission set that can be applied across different cloud platforms */ -export type SyncAcquireResponseDeploymentPreparedStackExtend = { +export type SyncAcquireResponseDeploymentPendingPreparedStackExtend = { /** * Human-readable description of what this permission set allows */ @@ -2843,17 +2913,17 @@ export type SyncAcquireResponseDeploymentPreparedStackExtend = { /** * Platform-specific permission configurations */ - platforms: SyncAcquireResponseDeploymentPreparedStackExtendPlatforms; + platforms: SyncAcquireResponseDeploymentPendingPreparedStackExtendPlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type SyncAcquireResponseDeploymentPreparedStackExtendUnion = - | SyncAcquireResponseDeploymentPreparedStackExtend +export type SyncAcquireResponseDeploymentPendingPreparedStackExtendUnion = + | SyncAcquireResponseDeploymentPendingPreparedStackExtend | string; -export type SyncAcquireResponseDeploymentPreparedStackManagement1 = { +export type SyncAcquireResponseDeploymentPendingPreparedStackManagement1 = { /** * Permission profile that maps resources to permission sets * @@ -2862,7 +2932,7 @@ export type SyncAcquireResponseDeploymentPreparedStackManagement1 = { */ extend: { [k: string]: Array< - SyncAcquireResponseDeploymentPreparedStackExtend | string + SyncAcquireResponseDeploymentPendingPreparedStackExtend | string >; }; }; @@ -2870,29 +2940,30 @@ export type SyncAcquireResponseDeploymentPreparedStackManagement1 = { /** * Management permissions configuration for stack management access */ -export type SyncAcquireResponseDeploymentPreparedStackManagementUnion = - | SyncAcquireResponseDeploymentPreparedStackManagement1 - | SyncAcquireResponseDeploymentPreparedStackManagement2 - | SyncAcquireResponseDeploymentPreparedStackManagementEnum; +export type SyncAcquireResponseDeploymentPendingPreparedStackManagementUnion = + | SyncAcquireResponseDeploymentPendingPreparedStackManagement1 + | SyncAcquireResponseDeploymentPendingPreparedStackManagement2 + | SyncAcquireResponseDeploymentPendingPreparedStackManagementEnum; /** * AWS-specific binding specification */ -export type SyncAcquireResponseDeploymentPreparedStackProfileAwResource = { - /** - * Optional condition for additional filtering (rare) - */ - condition?: { [k: string]: { [k: string]: string } } | null | undefined; - /** - * Resource ARNs to bind to - */ - resources: Array; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackProfileAwResource = + { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; + }; /** * AWS-specific binding specification */ -export type SyncAcquireResponseDeploymentPreparedStackProfileAwStack = { +export type SyncAcquireResponseDeploymentPendingPreparedStackProfileAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -2906,36 +2977,41 @@ export type SyncAcquireResponseDeploymentPreparedStackProfileAwStack = { /** * Generic binding configuration for permissions */ -export type SyncAcquireResponseDeploymentPreparedStackProfileAwBinding = { - /** - * AWS-specific binding specification - */ - resource?: - | SyncAcquireResponseDeploymentPreparedStackProfileAwResource - | undefined; - /** - * AWS-specific binding specification - */ - stack?: SyncAcquireResponseDeploymentPreparedStackProfileAwStack | undefined; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackProfileAwBinding = + { + /** + * AWS-specific binding specification + */ + resource?: + | SyncAcquireResponseDeploymentPendingPreparedStackProfileAwResource + | undefined; + /** + * AWS-specific binding specification + */ + stack?: + | SyncAcquireResponseDeploymentPendingPreparedStackProfileAwStack + | undefined; + }; /** * IAM effect. Defaults to Allow. */ -export const SyncAcquireResponseDeploymentPreparedStackProfileEffect = { +export const SyncAcquireResponseDeploymentPendingPreparedStackProfileEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type SyncAcquireResponseDeploymentPreparedStackProfileEffect = - ClosedEnum; +export type SyncAcquireResponseDeploymentPendingPreparedStackProfileEffect = + ClosedEnum< + typeof SyncAcquireResponseDeploymentPendingPreparedStackProfileEffect + >; /** * Grant permissions for a specific cloud platform */ -export type SyncAcquireResponseDeploymentPreparedStackProfileAwGrant = { +export type SyncAcquireResponseDeploymentPendingPreparedStackProfileAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2961,11 +3037,11 @@ export type SyncAcquireResponseDeploymentPreparedStackProfileAwGrant = { /** * AWS-specific platform permission configuration */ -export type SyncAcquireResponseDeploymentPreparedStackProfileAw = { +export type SyncAcquireResponseDeploymentPendingPreparedStackProfileAw = { /** * Generic binding configuration for permissions */ - binding: SyncAcquireResponseDeploymentPreparedStackProfileAwBinding; + binding: SyncAcquireResponseDeploymentPendingPreparedStackProfileAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2973,11 +3049,13 @@ export type SyncAcquireResponseDeploymentPreparedStackProfileAw = { /** * IAM effect. Defaults to Allow. */ - effect?: SyncAcquireResponseDeploymentPreparedStackProfileEffect | undefined; + effect?: + | SyncAcquireResponseDeploymentPendingPreparedStackProfileEffect + | undefined; /** * Grant permissions for a specific cloud platform */ - grant: SyncAcquireResponseDeploymentPreparedStackProfileAwGrant; + grant: SyncAcquireResponseDeploymentPendingPreparedStackProfileAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2987,75 +3065,79 @@ export type SyncAcquireResponseDeploymentPreparedStackProfileAw = { /** * Azure-specific binding specification */ -export type SyncAcquireResponseDeploymentPreparedStackProfileAzureResource = { - /** - * Scope (subscription/resource group/resource level) - */ - scope: string; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureResource = + { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; + }; /** * Azure-specific binding specification */ -export type SyncAcquireResponseDeploymentPreparedStackProfileAzureStack = { - /** - * Scope (subscription/resource group/resource level) - */ - scope: string; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureStack = + { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; + }; /** * Generic binding configuration for permissions */ -export type SyncAcquireResponseDeploymentPreparedStackProfileAzureBinding = { - /** - * Azure-specific binding specification - */ - resource?: - | SyncAcquireResponseDeploymentPreparedStackProfileAzureResource - | undefined; - /** - * Azure-specific binding specification - */ - stack?: - | SyncAcquireResponseDeploymentPreparedStackProfileAzureStack - | undefined; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureBinding = + { + /** + * Azure-specific binding specification + */ + resource?: + | SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureResource + | undefined; + /** + * Azure-specific binding specification + */ + stack?: + | SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureStack + | undefined; + }; /** * Grant permissions for a specific cloud platform */ -export type SyncAcquireResponseDeploymentPreparedStackProfileAzureGrant = { - /** - * AWS IAM actions (only for AWS) - */ - actions?: Array | null | undefined; - /** - * Azure actions (only for Azure) - */ - dataActions?: Array | null | undefined; - /** - * GCP permissions that require an exact residual custom role. - */ - permissions?: Array | null | undefined; - /** - * Provider predefined roles to bind directly. - */ - predefinedRoles?: Array | null | undefined; - /** - * GCP residual custom permissions to pair with predefined roles. - */ - residualPermissions?: Array | null | undefined; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureGrant = + { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; + }; /** * Azure-specific platform permission configuration */ -export type SyncAcquireResponseDeploymentPreparedStackProfileAzure = { +export type SyncAcquireResponseDeploymentPendingPreparedStackProfileAzure = { /** * Generic binding configuration for permissions */ - binding: SyncAcquireResponseDeploymentPreparedStackProfileAzureBinding; + binding: SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -3063,7 +3145,7 @@ export type SyncAcquireResponseDeploymentPreparedStackProfileAzure = { /** * Grant permissions for a specific cloud platform */ - grant: SyncAcquireResponseDeploymentPreparedStackProfileAzureGrant; + grant: SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -3073,49 +3155,51 @@ export type SyncAcquireResponseDeploymentPreparedStackProfileAzure = { /** * GCP IAM condition */ -export type SyncAcquireResponseDeploymentPreparedStackProfileConditionResource = +export type SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionResource = { expression: string; title: string; }; -export type SyncAcquireResponseDeploymentPreparedStackProfileResourceConditionUnion = - | SyncAcquireResponseDeploymentPreparedStackProfileConditionResource +export type SyncAcquireResponseDeploymentPendingPreparedStackProfileResourceConditionUnion = + | SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionResource | any; /** * GCP-specific binding specification */ -export type SyncAcquireResponseDeploymentPreparedStackProfileGcpResource = { - condition?: - | SyncAcquireResponseDeploymentPreparedStackProfileConditionResource - | any - | null - | undefined; - /** - * Scope (project/resource level) - */ - scope: string; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpResource = + { + condition?: + | SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionResource + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; + }; /** * GCP IAM condition */ -export type SyncAcquireResponseDeploymentPreparedStackProfileConditionStack = { - expression: string; - title: string; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionStack = + { + expression: string; + title: string; + }; -export type SyncAcquireResponseDeploymentPreparedStackProfileStackConditionUnion = - | SyncAcquireResponseDeploymentPreparedStackProfileConditionStack +export type SyncAcquireResponseDeploymentPendingPreparedStackProfileStackConditionUnion = + | SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionStack | any; /** * GCP-specific binding specification */ -export type SyncAcquireResponseDeploymentPreparedStackProfileGcpStack = { +export type SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpStack = { condition?: - | SyncAcquireResponseDeploymentPreparedStackProfileConditionStack + | SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionStack | any | null | undefined; @@ -3128,23 +3212,26 @@ export type SyncAcquireResponseDeploymentPreparedStackProfileGcpStack = { /** * Generic binding configuration for permissions */ -export type SyncAcquireResponseDeploymentPreparedStackProfileGcpBinding = { - /** - * GCP-specific binding specification - */ - resource?: - | SyncAcquireResponseDeploymentPreparedStackProfileGcpResource - | undefined; - /** - * GCP-specific binding specification - */ - stack?: SyncAcquireResponseDeploymentPreparedStackProfileGcpStack | undefined; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpBinding = + { + /** + * GCP-specific binding specification + */ + resource?: + | SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpResource + | undefined; + /** + * GCP-specific binding specification + */ + stack?: + | SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpStack + | undefined; + }; /** * Grant permissions for a specific cloud platform */ -export type SyncAcquireResponseDeploymentPreparedStackProfileGcpGrant = { +export type SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpGrant = { /** * AWS IAM actions (only for AWS) */ @@ -3170,11 +3257,11 @@ export type SyncAcquireResponseDeploymentPreparedStackProfileGcpGrant = { /** * GCP-specific platform permission configuration */ -export type SyncAcquireResponseDeploymentPreparedStackProfileGcp = { +export type SyncAcquireResponseDeploymentPendingPreparedStackProfileGcp = { /** * Generic binding configuration for permissions */ - binding: SyncAcquireResponseDeploymentPreparedStackProfileGcpBinding; + binding: SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -3182,7 +3269,7 @@ export type SyncAcquireResponseDeploymentPreparedStackProfileGcp = { /** * Grant permissions for a specific cloud platform */ - grant: SyncAcquireResponseDeploymentPreparedStackProfileGcpGrant; + grant: SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -3192,34 +3279,35 @@ export type SyncAcquireResponseDeploymentPreparedStackProfileGcp = { /** * Platform-specific permission configurations */ -export type SyncAcquireResponseDeploymentPreparedStackProfilePlatforms = { - /** - * AWS permission configurations - */ - aws?: - | Array - | null - | undefined; - /** - * Azure permission configurations - */ - azure?: - | Array - | null - | undefined; - /** - * GCP permission configurations - */ - gcp?: - | Array - | null - | undefined; -}; +export type SyncAcquireResponseDeploymentPendingPreparedStackProfilePlatforms = + { + /** + * AWS permission configurations + */ + aws?: + | Array + | null + | undefined; + /** + * Azure permission configurations + */ + azure?: + | Array + | null + | undefined; + /** + * GCP permission configurations + */ + gcp?: + | Array + | null + | undefined; + }; /** * A permission set that can be applied across different cloud platforms */ -export type SyncAcquireResponseDeploymentPreparedStackProfile = { +export type SyncAcquireResponseDeploymentPendingPreparedStackProfile = { /** * Human-readable description of what this permission set allows */ @@ -3231,27 +3319,27 @@ export type SyncAcquireResponseDeploymentPreparedStackProfile = { /** * Platform-specific permission configurations */ - platforms: SyncAcquireResponseDeploymentPreparedStackProfilePlatforms; + platforms: SyncAcquireResponseDeploymentPendingPreparedStackProfilePlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type SyncAcquireResponseDeploymentPreparedStackProfileUnion = - | SyncAcquireResponseDeploymentPreparedStackProfile +export type SyncAcquireResponseDeploymentPendingPreparedStackProfileUnion = + | SyncAcquireResponseDeploymentPendingPreparedStackProfile | string; /** * Combined permissions configuration that contains both profiles and management */ -export type SyncAcquireResponseDeploymentPreparedStackPermissions = { +export type SyncAcquireResponseDeploymentPendingPreparedStackPermissions = { /** * Management permissions configuration for stack management access */ management?: - | SyncAcquireResponseDeploymentPreparedStackManagement1 - | SyncAcquireResponseDeploymentPreparedStackManagement2 - | SyncAcquireResponseDeploymentPreparedStackManagementEnum + | SyncAcquireResponseDeploymentPendingPreparedStackManagement1 + | SyncAcquireResponseDeploymentPendingPreparedStackManagement2 + | SyncAcquireResponseDeploymentPendingPreparedStackManagementEnum | undefined; /** * Permission profiles that define access control for compute services @@ -3262,7 +3350,7 @@ export type SyncAcquireResponseDeploymentPreparedStackPermissions = { profiles: { [k: string]: { [k: string]: Array< - SyncAcquireResponseDeploymentPreparedStackProfile | string + SyncAcquireResponseDeploymentPendingPreparedStackProfile | string >; }; }; @@ -3271,7 +3359,7 @@ export type SyncAcquireResponseDeploymentPreparedStackPermissions = { /** * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ -export type SyncAcquireResponseDeploymentPreparedStackConfig = { +export type SyncAcquireResponseDeploymentPendingPreparedStackConfig = { /** * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. */ @@ -3286,7 +3374,7 @@ export type SyncAcquireResponseDeploymentPreparedStackConfig = { /** * Reference to a resource by its stable id and resource type. */ -export type SyncAcquireResponseDeploymentPreparedStackDependency = { +export type SyncAcquireResponseDeploymentPendingPreparedStackDependency = { id: string; /** * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. @@ -3297,33 +3385,45 @@ export type SyncAcquireResponseDeploymentPreparedStackDependency = { /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export const SyncAcquireResponseDeploymentPreparedStackLifecycle = { +export const SyncAcquireResponseDeploymentPendingPreparedStackLifecycle = { Frozen: "frozen", Live: "live", } as const; /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export type SyncAcquireResponseDeploymentPreparedStackLifecycle = ClosedEnum< - typeof SyncAcquireResponseDeploymentPreparedStackLifecycle ->; +export type SyncAcquireResponseDeploymentPendingPreparedStackLifecycle = + ClosedEnum; -export type SyncAcquireResponseDeploymentPreparedStackResources = { +export type SyncAcquireResponseDeploymentPendingPreparedStackResources = { /** * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ - config: SyncAcquireResponseDeploymentPreparedStackConfig; + config: SyncAcquireResponseDeploymentPendingPreparedStackConfig; /** * Additional dependencies for this resource beyond those defined in the resource itself. * * @remarks * The total dependencies are: resource.get_dependencies() + this list */ - dependencies: Array; + dependencies: Array< + SyncAcquireResponseDeploymentPendingPreparedStackDependency + >; + /** + * Id of the boolean stack input that decides whether this resource is + * + * @remarks + * created at all. `None` means always create it. + * + * Set by `.enabled(input)` in the SDK. Setup emitters render the resource + * conditionally on the matching template variable, so a deployer who says no + * never gets the resource, its outputs, or anything derived from it. + */ + enabledWhen?: string | null | undefined; /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ - lifecycle: SyncAcquireResponseDeploymentPreparedStackLifecycle; + lifecycle: SyncAcquireResponseDeploymentPendingPreparedStackLifecycle; /** * Enable remote bindings for this resource (BYOB use case). * @@ -3337,27 +3437,28 @@ export type SyncAcquireResponseDeploymentPreparedStackResources = { /** * Represents the target cloud platform. */ -export const SyncAcquireResponseDeploymentPreparedStackSupportedPlatform = { - Aws: "aws", - Gcp: "gcp", - Azure: "azure", - Kubernetes: "kubernetes", - Machines: "machines", - Local: "local", - Test: "test", -} as const; +export const SyncAcquireResponseDeploymentPendingPreparedStackSupportedPlatform = + { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", + } as const; /** * Represents the target cloud platform. */ -export type SyncAcquireResponseDeploymentPreparedStackSupportedPlatform = +export type SyncAcquireResponseDeploymentPendingPreparedStackSupportedPlatform = ClosedEnum< - typeof SyncAcquireResponseDeploymentPreparedStackSupportedPlatform + typeof SyncAcquireResponseDeploymentPendingPreparedStackSupportedPlatform >; /** * A bag of resources, unaware of any cloud. */ -export type SyncAcquireResponseDeploymentPreparedStack = { +export type SyncAcquireResponseDeploymentPendingPreparedStack = { /** * Unique identifier for the stack */ @@ -3365,113 +3466,160 @@ export type SyncAcquireResponseDeploymentPreparedStack = { /** * Input definitions required before setup or deployment can proceed. */ - inputs?: Array | undefined; + inputs?: + | Array + | undefined; /** * Combined permissions configuration that contains both profiles and management */ permissions?: - | SyncAcquireResponseDeploymentPreparedStackPermissions + | SyncAcquireResponseDeploymentPendingPreparedStackPermissions | undefined; /** * Map of resource IDs to their configurations and lifecycle settings */ resources: { - [k: string]: SyncAcquireResponseDeploymentPreparedStackResources; + [k: string]: SyncAcquireResponseDeploymentPendingPreparedStackResources; }; /** * Which platforms this stack supports. When None, all platforms are supported. */ supportedPlatforms?: - | Array + | Array | null | undefined; }; -export type SyncAcquireResponseDeploymentPreparedStackUnion = - | SyncAcquireResponseDeploymentPreparedStack +export type SyncAcquireResponseDeploymentPendingPreparedStackUnion = + | SyncAcquireResponseDeploymentPendingPreparedStack | any; -/** - * Runtime metadata for deployment - * - * @remarks - * - * Stores deployment state that needs to persist across step calls. - */ -export type SyncAcquireResponseDeploymentRuntimeMetadata = { +export const SyncAcquireResponseDeploymentPreparedStackTypeStringList = { + StringList: "stringList", +} as const; +export type SyncAcquireResponseDeploymentPreparedStackTypeStringList = + ClosedEnum; + +export type SyncAcquireResponseDeploymentPreparedStackDefaultStringList = { + type: SyncAcquireResponseDeploymentPreparedStackTypeStringList; /** - * Hash of the environment variables snapshot that was last synced to the vault - * - * @remarks - * Used to avoid redundant sync operations during incremental deployment + * String list default. */ - lastSyncedEnvVarsHash?: string | null | undefined; + value: Array; +}; + +export const SyncAcquireResponseDeploymentPreparedStackTypeBoolean = { + Boolean: "boolean", +} as const; +export type SyncAcquireResponseDeploymentPreparedStackTypeBoolean = ClosedEnum< + typeof SyncAcquireResponseDeploymentPreparedStackTypeBoolean +>; + +export type SyncAcquireResponseDeploymentPreparedStackDefaultBoolean = { + type: SyncAcquireResponseDeploymentPreparedStackTypeBoolean; /** - * Exact vault keys owned by the deployment secret synchronizer. This - * - * @remarks - * inventory lets a later snapshot delete removed keys without listing or - * touching unrelated values in the same vault. + * Boolean default. */ - lastSyncedSecretNames?: Array | undefined; - preparedStack?: - | SyncAcquireResponseDeploymentPreparedStack - | any - | null - | undefined; + value: boolean; +}; + +export const SyncAcquireResponseDeploymentPreparedStackTypeNumber = { + Number: "number", +} as const; +export type SyncAcquireResponseDeploymentPreparedStackTypeNumber = ClosedEnum< + typeof SyncAcquireResponseDeploymentPreparedStackTypeNumber +>; + +export type SyncAcquireResponseDeploymentPreparedStackDefaultNumber = { + type: SyncAcquireResponseDeploymentPreparedStackTypeNumber; /** - * Whether cross-account registry access has been successfully granted. - * - * @remarks - * Set to true after the manager successfully sets the ECR/GAR repo policy - * for this deployment's target account. Prevents redundant API calls on - * every reconcile tick. + * Number default. */ - registryAccessGranted?: boolean | undefined; + value: string; }; -export type SyncAcquireResponseDeploymentRuntimeMetadataUnion = - | SyncAcquireResponseDeploymentRuntimeMetadata +export const SyncAcquireResponseDeploymentPreparedStackTypeString = { + String: "string", +} as const; +export type SyncAcquireResponseDeploymentPreparedStackTypeString = ClosedEnum< + typeof SyncAcquireResponseDeploymentPreparedStackTypeString +>; + +export type SyncAcquireResponseDeploymentPreparedStackDefaultString = { + type: SyncAcquireResponseDeploymentPreparedStackTypeString; + /** + * String default. + */ + value: string; +}; + +export type SyncAcquireResponseDeploymentPreparedStackDefaultUnion = + | SyncAcquireResponseDeploymentPreparedStackDefaultString + | SyncAcquireResponseDeploymentPreparedStackDefaultNumber + | SyncAcquireResponseDeploymentPreparedStackDefaultBoolean + | SyncAcquireResponseDeploymentPreparedStackDefaultStringList | any; /** - * Represents the target cloud platform. + * Environment variable handling for a stack input mapping. */ -export const SyncAcquireResponseDeploymentStackStatePlatform = { - Aws: "aws", - Gcp: "gcp", - Azure: "azure", - Kubernetes: "kubernetes", - Machines: "machines", - Local: "local", - Test: "test", +export const SyncAcquireResponseDeploymentPreparedStackTypeEnvEnum = { + Plain: "plain", + Secret: "secret", } as const; /** - * Represents the target cloud platform. + * Environment variable handling for a stack input mapping. */ -export type SyncAcquireResponseDeploymentStackStatePlatform = ClosedEnum< - typeof SyncAcquireResponseDeploymentStackStatePlatform +export type SyncAcquireResponseDeploymentPreparedStackTypeEnvEnum = ClosedEnum< + typeof SyncAcquireResponseDeploymentPreparedStackTypeEnvEnum >; +export type SyncAcquireResponseDeploymentPreparedStackTypeUnion = + | SyncAcquireResponseDeploymentPreparedStackTypeEnvEnum + | any; + /** - * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + * How a resolved stack input is injected into runtime environment variables. */ -export type SyncAcquireResponseDeploymentStackStateConfig = { +export type SyncAcquireResponseDeploymentPreparedStackEnv = { /** - * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. + * Environment variable name. */ - id: string; + name: string; /** - * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + * Target resource IDs or patterns. None means every env-capable resource. */ - type: string; - additionalProperties?: { [k: string]: any | null } | undefined; + targetResources?: Array | null | undefined; + type?: + | SyncAcquireResponseDeploymentPreparedStackTypeEnvEnum + | any + | null + | undefined; }; +/** + * Primitive stack input kind. + */ +export const SyncAcquireResponseDeploymentPreparedStackKind = { + String: "string", + Secret: "secret", + Number: "number", + Integer: "integer", + Boolean: "boolean", + Enum: "enum", + StringList: "stringList", +} as const; +/** + * Primitive stack input kind. + */ +export type SyncAcquireResponseDeploymentPreparedStackKind = ClosedEnum< + typeof SyncAcquireResponseDeploymentPreparedStackKind +>; + /** * Represents the target cloud platform. */ -export const SyncAcquireResponseDeploymentControllerPlatformEnum = { +export const SyncAcquireResponseDeploymentPreparedStackPlatform = { Aws: "aws", Gcp: "gcp", Azure: "azure", @@ -3483,597 +3631,520 @@ export const SyncAcquireResponseDeploymentControllerPlatformEnum = { /** * Represents the target cloud platform. */ -export type SyncAcquireResponseDeploymentControllerPlatformEnum = ClosedEnum< - typeof SyncAcquireResponseDeploymentControllerPlatformEnum +export type SyncAcquireResponseDeploymentPreparedStackPlatform = ClosedEnum< + typeof SyncAcquireResponseDeploymentPreparedStackPlatform >; -export type SyncAcquireResponseDeploymentControllerPlatformUnion = - | SyncAcquireResponseDeploymentControllerPlatformEnum - | any; +/** + * Who can provide a stack input value. + */ +export const SyncAcquireResponseDeploymentPreparedStackProvidedBy = { + Developer: "developer", + Deployer: "deployer", +} as const; +/** + * Who can provide a stack input value. + */ +export type SyncAcquireResponseDeploymentPreparedStackProvidedBy = ClosedEnum< + typeof SyncAcquireResponseDeploymentPreparedStackProvidedBy +>; /** - * Reference to a resource by its stable id and resource type. + * Portable stack input validation constraints. */ -export type SyncAcquireResponseDeploymentStackStateDependency = { - id: string; +export type SyncAcquireResponseDeploymentPreparedStackValidation = { /** - * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + * Semantic format hint such as url. */ - type: string; -}; - -/** - * Canonical error container that provides a structured way to represent errors - * - * @remarks - * with rich metadata including error codes, human-readable messages, context, - * and chaining capabilities for error propagation. - * - * This struct is designed to be both machine-readable and user-friendly, - * supporting serialization for API responses and detailed error reporting - * in distributed systems. - */ -export type SyncAcquireResponseDeploymentStackStateError = { + format?: string | null | undefined; /** - * A unique identifier for the type of error. - * - * @remarks - * - * This should be a short, machine-readable string that can be used - * by clients to programmatically handle different error types. - * Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" + * Maximum number. */ - code: string; + max?: string | null | undefined; /** - * Additional diagnostic information about the error context. - * - * @remarks - * - * This optional field can contain structured data providing more details - * about the error, such as validation errors, request parameters that - * caused the issue, or other relevant context information. + * Maximum string-list items. */ - context?: any | null | undefined; + maxItems?: number | null | undefined; /** - * Optional human-facing remediation hint. + * Maximum string length. */ - hint?: string | null | undefined; + maxLength?: number | null | undefined; /** - * HTTP status code for this error. - * - * @remarks - * - * Used when converting the error to an HTTP response. If None, falls back to - * the error type's default status code or 500. + * Minimum number. */ - httpStatusCode?: number | null | undefined; + min?: string | null | undefined; /** - * Indicates if this is an internal error that should not be exposed to users. - * - * @remarks - * - * When `true`, this error contains sensitive information or implementation - * details that should not be shown to end-users. Such errors should be - * logged for debugging but replaced with generic error messages in responses. + * Minimum string-list items. */ - internal: boolean; + minItems?: number | null | undefined; /** - * Human-readable error message. - * - * @remarks - * - * This message should be clear and actionable for developers or end-users, - * providing context about what went wrong and potentially how to fix it. + * Minimum string length. */ - message: string; + minLength?: number | null | undefined; /** - * Indicates whether the operation that caused the error should be retried. - * - * @remarks - * - * When `true`, the error is transient and the operation might succeed - * if attempted again. When `false`, retrying the same operation is - * unlikely to succeed without changes. + * Portable whole-value regex pattern. */ - retryable: boolean; + pattern?: string | null | undefined; /** - * The underlying error that caused this error, creating an error chain. - * - * @remarks - * - * This allows for proper error propagation and debugging by maintaining - * the full context of how an error occurred through multiple layers - * of an application. + * Allowed string enum values. */ - source?: any | null | undefined; + values?: Array | null | undefined; }; -export type SyncAcquireResponseDeploymentStackStateErrorUnion = - | SyncAcquireResponseDeploymentStackStateError +export type SyncAcquireResponseDeploymentPreparedStackValidationUnion = + | SyncAcquireResponseDeploymentPreparedStackValidation | any; /** - * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + * Stack input definition serialized into a release stack. */ -export const SyncAcquireResponseDeploymentStackStateLifecycleEnum = { - Frozen: "frozen", - Live: "live", +export type SyncAcquireResponseDeploymentPreparedStackInput = { + default?: + | SyncAcquireResponseDeploymentPreparedStackDefaultString + | SyncAcquireResponseDeploymentPreparedStackDefaultNumber + | SyncAcquireResponseDeploymentPreparedStackDefaultBoolean + | SyncAcquireResponseDeploymentPreparedStackDefaultStringList + | any + | null + | undefined; + /** + * Human-facing helper text. + */ + description: string; + /** + * Runtime env-var mappings for v1 input resolution. + */ + env?: Array | undefined; + /** + * Stable input ID used by CLI/API calls. + */ + id: string; + /** + * Primitive stack input kind. + */ + kind: SyncAcquireResponseDeploymentPreparedStackKind; + /** + * Human-facing field label. + */ + label: string; + /** + * Example placeholder shown in UI. + */ + placeholder?: string | null | undefined; + /** + * Platforms where this input applies. + */ + platforms?: + | Array + | null + | undefined; + /** + * Who can provide this value. + */ + providedBy: Array; + /** + * Whether a resolved value is required before deployment can proceed. + */ + required: boolean; + validation?: + | SyncAcquireResponseDeploymentPreparedStackValidation + | any + | null + | undefined; +}; + +export const SyncAcquireResponseDeploymentPreparedStackManagementEnum = { + Auto: "auto", } as const; +export type SyncAcquireResponseDeploymentPreparedStackManagementEnum = + ClosedEnum; + /** - * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + * AWS-specific binding specification */ -export type SyncAcquireResponseDeploymentStackStateLifecycleEnum = ClosedEnum< - typeof SyncAcquireResponseDeploymentStackStateLifecycleEnum ->; - -export type SyncAcquireResponseDeploymentLifecycleUnion = - | SyncAcquireResponseDeploymentStackStateLifecycleEnum - | any; +export type SyncAcquireResponseDeploymentPreparedStackOverrideAwResource = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; /** - * Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties. + * AWS-specific binding specification */ -export type SyncAcquireResponseDeploymentOutputs = { +export type SyncAcquireResponseDeploymentPreparedStackOverrideAwStack = { /** - * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + * Optional condition for additional filtering (rare) */ - type: string; - additionalProperties?: { [k: string]: any | null } | undefined; + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; }; -export type SyncAcquireResponseDeploymentOutputsUnion = - | SyncAcquireResponseDeploymentOutputs - | any; - /** - * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + * Generic binding configuration for permissions */ -export type SyncAcquireResponseDeploymentPreviousConfig = { +export type SyncAcquireResponseDeploymentPreparedStackOverrideAwBinding = { /** - * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. + * AWS-specific binding specification */ - id: string; + resource?: + | SyncAcquireResponseDeploymentPreparedStackOverrideAwResource + | undefined; /** - * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + * AWS-specific binding specification */ - type: string; - additionalProperties?: { [k: string]: any | null } | undefined; + stack?: SyncAcquireResponseDeploymentPreparedStackOverrideAwStack | undefined; }; -export type SyncAcquireResponseDeploymentPreviousConfigUnion = - | SyncAcquireResponseDeploymentPreviousConfig - | any; - /** - * Represents the high-level status of a resource during its lifecycle. + * IAM effect. Defaults to Allow. */ -export const SyncAcquireResponseDeploymentStackStateStatus = { - Pending: "pending", - Provisioning: "provisioning", - ProvisionFailed: "provision-failed", - Running: "running", - Updating: "updating", - UpdateFailed: "update-failed", - Deleting: "deleting", - DeleteFailed: "delete-failed", - TeardownRequired: "teardown-required", - Deleted: "deleted", - RefreshFailed: "refresh-failed", +export const SyncAcquireResponseDeploymentPreparedStackOverrideEffect = { + Allow: "Allow", + Deny: "Deny", } as const; /** - * Represents the high-level status of a resource during its lifecycle. + * IAM effect. Defaults to Allow. */ -export type SyncAcquireResponseDeploymentStackStateStatus = ClosedEnum< - typeof SyncAcquireResponseDeploymentStackStateStatus ->; +export type SyncAcquireResponseDeploymentPreparedStackOverrideEffect = + ClosedEnum; /** - * Represents the state of a single resource within the stack for a specific platform. + * Grant permissions for a specific cloud platform */ -export type SyncAcquireResponseDeploymentStackStateResources = { +export type SyncAcquireResponseDeploymentPreparedStackOverrideAwGrant = { /** - * The platform-specific resource controller that manages this resource's lifecycle. - * - * @remarks - * This is None when the resource status is Pending. - * Stored as JSON to make the struct serializable and movable to alien-core. + * AWS IAM actions (only for AWS) */ - internal?: any | null | undefined; + actions?: Array | null | undefined; /** - * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + * Azure actions (only for Azure) */ - config: SyncAcquireResponseDeploymentStackStateConfig; - controllerPlatform?: - | SyncAcquireResponseDeploymentControllerPlatformEnum - | any - | null - | undefined; + dataActions?: Array | null | undefined; /** - * Complete list of dependencies for this resource, including infrastructure dependencies. - * - * @remarks - * This preserves the full dependency information from the stack definition. + * GCP permissions that require an exact residual custom role. */ - dependencies?: - | Array - | undefined; - error?: SyncAcquireResponseDeploymentStackStateError | any | null | undefined; - /** - * Stores the controller state that failed, used for manual retry operations. - * - * @remarks - * This allows resuming from the exact point where the failure occurred. - * Stored as JSON to make the struct serializable and movable to alien-core. - */ - lastFailedState?: any | null | undefined; - lifecycle?: - | SyncAcquireResponseDeploymentStackStateLifecycleEnum - | any - | null - | undefined; - outputs?: SyncAcquireResponseDeploymentOutputs | any | null | undefined; - previousConfig?: - | SyncAcquireResponseDeploymentPreviousConfig - | any - | null - | undefined; - /** - * Binding parameters for remote access. - * - * @remarks - * Only populated when the resource has `remote_access: true` in its ResourceEntry. - * This is the JSON serialization of the binding configuration (e.g., StorageBinding, VaultBinding). - * Populated by controllers during provisioning using get_binding_params(). - */ - remoteBindingParams?: any | null | undefined; - /** - * Tracks consecutive retry attempts for the current state transition. - */ - retryAttempt?: number | undefined; + permissions?: Array | null | undefined; /** - * Represents the high-level status of a resource during its lifecycle. + * Provider predefined roles to bind directly. */ - status: SyncAcquireResponseDeploymentStackStateStatus; + predefinedRoles?: Array | null | undefined; /** - * The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE). + * GCP residual custom permissions to pair with predefined roles. */ - type: string; + residualPermissions?: Array | null | undefined; }; /** - * Represents the collective state of all resources in a stack, including platform and pending actions. + * AWS-specific platform permission configuration */ -export type SyncAcquireResponseDeploymentStackState = { +export type SyncAcquireResponseDeploymentPreparedStackOverrideAw = { /** - * Represents the target cloud platform. + * Generic binding configuration for permissions */ - platform: SyncAcquireResponseDeploymentStackStatePlatform; + binding: SyncAcquireResponseDeploymentPreparedStackOverrideAwBinding; /** - * A prefix used for resource naming to ensure uniqueness across deployments. + * Short admin-facing description of why this entry exists. */ - resourcePrefix: string; + description?: string | null | undefined; /** - * The state of individual resources, keyed by resource ID. + * IAM effect. Defaults to Allow. */ - resources: { [k: string]: SyncAcquireResponseDeploymentStackStateResources }; + effect?: SyncAcquireResponseDeploymentPreparedStackOverrideEffect | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncAcquireResponseDeploymentPreparedStackOverrideAwGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; }; -export type SyncAcquireResponseDeploymentStackStateUnion = - | SyncAcquireResponseDeploymentStackState - | any; - -/** - * Deployment status in the deployment lifecycle. - * - * @remarks - * - * For observe-only deployments with no release or stack state, `Running` - * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; - * resource health comes from inventory and resource heartbeat data. - */ -export const SyncAcquireResponseDeploymentStatus = { - Pending: "pending", - PreflightsFailed: "preflights-failed", - InitialSetup: "initial-setup", - InitialSetupFailed: "initial-setup-failed", - Provisioning: "provisioning", - WaitingForMachines: "waiting-for-machines", - ProvisioningFailed: "provisioning-failed", - Running: "running", - RefreshFailed: "refresh-failed", - UpdatePending: "update-pending", - Updating: "updating", - UpdateFailed: "update-failed", - DeletePending: "delete-pending", - Deleting: "deleting", - DeleteFailed: "delete-failed", - TeardownRequired: "teardown-required", - TeardownFailed: "teardown-failed", - Deleted: "deleted", - Error: "error", -} as const; /** - * Deployment status in the deployment lifecycle. - * - * @remarks - * - * For observe-only deployments with no release or stack state, `Running` - * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; - * resource health comes from inventory and resource heartbeat data. + * Azure-specific binding specification */ -export type SyncAcquireResponseDeploymentStatus = ClosedEnum< - typeof SyncAcquireResponseDeploymentStatus ->; - -export const SyncAcquireResponseDeploymentTargetReleaseTypeStringList = { - StringList: "stringList", -} as const; -export type SyncAcquireResponseDeploymentTargetReleaseTypeStringList = - ClosedEnum; - -export type SyncAcquireResponseDeploymentTargetReleaseDefaultStringList = { - type: SyncAcquireResponseDeploymentTargetReleaseTypeStringList; +export type SyncAcquireResponseDeploymentPreparedStackOverrideAzureResource = { /** - * String list default. + * Scope (subscription/resource group/resource level) */ - value: Array; + scope: string; }; -export const SyncAcquireResponseDeploymentTargetReleaseTypeBoolean = { - Boolean: "boolean", -} as const; -export type SyncAcquireResponseDeploymentTargetReleaseTypeBoolean = ClosedEnum< - typeof SyncAcquireResponseDeploymentTargetReleaseTypeBoolean ->; - -export type SyncAcquireResponseDeploymentTargetReleaseDefaultBoolean = { - type: SyncAcquireResponseDeploymentTargetReleaseTypeBoolean; +/** + * Azure-specific binding specification + */ +export type SyncAcquireResponseDeploymentPreparedStackOverrideAzureStack = { /** - * Boolean default. + * Scope (subscription/resource group/resource level) */ - value: boolean; + scope: string; }; -export const SyncAcquireResponseDeploymentTargetReleaseTypeNumber = { - Number: "number", -} as const; -export type SyncAcquireResponseDeploymentTargetReleaseTypeNumber = ClosedEnum< - typeof SyncAcquireResponseDeploymentTargetReleaseTypeNumber ->; - -export type SyncAcquireResponseDeploymentTargetReleaseDefaultNumber = { - type: SyncAcquireResponseDeploymentTargetReleaseTypeNumber; +/** + * Generic binding configuration for permissions + */ +export type SyncAcquireResponseDeploymentPreparedStackOverrideAzureBinding = { /** - * Number default. + * Azure-specific binding specification */ - value: string; -}; - -export const SyncAcquireResponseDeploymentTargetReleaseTypeString = { - String: "string", -} as const; -export type SyncAcquireResponseDeploymentTargetReleaseTypeString = ClosedEnum< - typeof SyncAcquireResponseDeploymentTargetReleaseTypeString ->; - -export type SyncAcquireResponseDeploymentTargetReleaseDefaultString = { - type: SyncAcquireResponseDeploymentTargetReleaseTypeString; + resource?: + | SyncAcquireResponseDeploymentPreparedStackOverrideAzureResource + | undefined; /** - * String default. + * Azure-specific binding specification */ - value: string; + stack?: + | SyncAcquireResponseDeploymentPreparedStackOverrideAzureStack + | undefined; }; -export type SyncAcquireResponseDeploymentTargetReleaseDefaultUnion = - | SyncAcquireResponseDeploymentTargetReleaseDefaultString - | SyncAcquireResponseDeploymentTargetReleaseDefaultNumber - | SyncAcquireResponseDeploymentTargetReleaseDefaultBoolean - | SyncAcquireResponseDeploymentTargetReleaseDefaultStringList - | any; - -/** - * Environment variable handling for a stack input mapping. - */ -export const SyncAcquireResponseDeploymentTargetReleaseTypeEnvEnum = { - Plain: "plain", - Secret: "secret", -} as const; /** - * Environment variable handling for a stack input mapping. + * Grant permissions for a specific cloud platform */ -export type SyncAcquireResponseDeploymentTargetReleaseTypeEnvEnum = ClosedEnum< - typeof SyncAcquireResponseDeploymentTargetReleaseTypeEnvEnum ->; - -export type SyncAcquireResponseDeploymentTargetReleaseTypeUnion = - | SyncAcquireResponseDeploymentTargetReleaseTypeEnvEnum - | any; +export type SyncAcquireResponseDeploymentPreparedStackOverrideAzureGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; /** - * How a resolved stack input is injected into runtime environment variables. + * Azure-specific platform permission configuration */ -export type SyncAcquireResponseDeploymentTargetReleaseEnv = { +export type SyncAcquireResponseDeploymentPreparedStackOverrideAzure = { /** - * Environment variable name. + * Generic binding configuration for permissions */ - name: string; + binding: SyncAcquireResponseDeploymentPreparedStackOverrideAzureBinding; /** - * Target resource IDs or patterns. None means every env-capable resource. + * Short admin-facing description of why this entry exists. */ - targetResources?: Array | null | undefined; - type?: - | SyncAcquireResponseDeploymentTargetReleaseTypeEnvEnum - | any - | null - | undefined; + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncAcquireResponseDeploymentPreparedStackOverrideAzureGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; }; /** - * Primitive stack input kind. + * GCP IAM condition */ -export const SyncAcquireResponseDeploymentTargetReleaseKind = { - String: "string", - Secret: "secret", - Number: "number", - Integer: "integer", - Boolean: "boolean", - Enum: "enum", - StringList: "stringList", -} as const; -/** - * Primitive stack input kind. - */ -export type SyncAcquireResponseDeploymentTargetReleaseKind = ClosedEnum< - typeof SyncAcquireResponseDeploymentTargetReleaseKind ->; +export type SyncAcquireResponseDeploymentPreparedStackOverrideConditionResource = + { + expression: string; + title: string; + }; -/** - * Represents the target cloud platform. - */ -export const SyncAcquireResponseDeploymentTargetReleasePlatform = { - Aws: "aws", - Gcp: "gcp", - Azure: "azure", - Kubernetes: "kubernetes", - Machines: "machines", - Local: "local", - Test: "test", -} as const; -/** - * Represents the target cloud platform. - */ -export type SyncAcquireResponseDeploymentTargetReleasePlatform = ClosedEnum< - typeof SyncAcquireResponseDeploymentTargetReleasePlatform ->; +export type SyncAcquireResponseDeploymentPreparedStackOverrideResourceConditionUnion = + | SyncAcquireResponseDeploymentPreparedStackOverrideConditionResource + | any; /** - * Who can provide a stack input value. + * GCP-specific binding specification */ -export const SyncAcquireResponseDeploymentTargetReleaseProvidedBy = { - Developer: "developer", - Deployer: "deployer", -} as const; +export type SyncAcquireResponseDeploymentPreparedStackOverrideGcpResource = { + condition?: + | SyncAcquireResponseDeploymentPreparedStackOverrideConditionResource + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + /** - * Who can provide a stack input value. + * GCP IAM condition */ -export type SyncAcquireResponseDeploymentTargetReleaseProvidedBy = ClosedEnum< - typeof SyncAcquireResponseDeploymentTargetReleaseProvidedBy ->; +export type SyncAcquireResponseDeploymentPreparedStackOverrideConditionStack = { + expression: string; + title: string; +}; + +export type SyncAcquireResponseDeploymentPreparedStackOverrideStackConditionUnion = + | SyncAcquireResponseDeploymentPreparedStackOverrideConditionStack + | any; /** - * Portable stack input validation constraints. + * GCP-specific binding specification */ -export type SyncAcquireResponseDeploymentTargetReleaseValidation = { - /** - * Semantic format hint such as url. - */ - format?: string | null | undefined; +export type SyncAcquireResponseDeploymentPreparedStackOverrideGcpStack = { + condition?: + | SyncAcquireResponseDeploymentPreparedStackOverrideConditionStack + | any + | null + | undefined; /** - * Maximum number. + * Scope (project/resource level) */ - max?: string | null | undefined; + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type SyncAcquireResponseDeploymentPreparedStackOverrideGcpBinding = { /** - * Maximum string-list items. + * GCP-specific binding specification */ - maxItems?: number | null | undefined; + resource?: + | SyncAcquireResponseDeploymentPreparedStackOverrideGcpResource + | undefined; /** - * Maximum string length. + * GCP-specific binding specification */ - maxLength?: number | null | undefined; + stack?: + | SyncAcquireResponseDeploymentPreparedStackOverrideGcpStack + | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type SyncAcquireResponseDeploymentPreparedStackOverrideGcpGrant = { /** - * Minimum number. + * AWS IAM actions (only for AWS) */ - min?: string | null | undefined; + actions?: Array | null | undefined; /** - * Minimum string-list items. + * Azure actions (only for Azure) */ - minItems?: number | null | undefined; + dataActions?: Array | null | undefined; /** - * Minimum string length. + * GCP permissions that require an exact residual custom role. */ - minLength?: number | null | undefined; + permissions?: Array | null | undefined; /** - * Portable whole-value regex pattern. + * Provider predefined roles to bind directly. */ - pattern?: string | null | undefined; + predefinedRoles?: Array | null | undefined; /** - * Allowed string enum values. + * GCP residual custom permissions to pair with predefined roles. */ - values?: Array | null | undefined; + residualPermissions?: Array | null | undefined; }; -export type SyncAcquireResponseDeploymentTargetReleaseValidationUnion = - | SyncAcquireResponseDeploymentTargetReleaseValidation - | any; - /** - * Stack input definition serialized into a release stack. + * GCP-specific platform permission configuration */ -export type SyncAcquireResponseDeploymentTargetReleaseInput = { - default?: - | SyncAcquireResponseDeploymentTargetReleaseDefaultString - | SyncAcquireResponseDeploymentTargetReleaseDefaultNumber - | SyncAcquireResponseDeploymentTargetReleaseDefaultBoolean - | SyncAcquireResponseDeploymentTargetReleaseDefaultStringList - | any - | null - | undefined; +export type SyncAcquireResponseDeploymentPreparedStackOverrideGcp = { /** - * Human-facing helper text. + * Generic binding configuration for permissions */ - description: string; + binding: SyncAcquireResponseDeploymentPreparedStackOverrideGcpBinding; /** - * Runtime env-var mappings for v1 input resolution. + * Short admin-facing description of why this entry exists. */ - env?: Array | undefined; + description?: string | null | undefined; /** - * Stable input ID used by CLI/API calls. + * Grant permissions for a specific cloud platform */ - id: string; + grant: SyncAcquireResponseDeploymentPreparedStackOverrideGcpGrant; /** - * Primitive stack input kind. + * Stable admin-facing label for this permission entry. */ - kind: SyncAcquireResponseDeploymentTargetReleaseKind; + label?: string | null | undefined; +}; + +/** + * Platform-specific permission configurations + */ +export type SyncAcquireResponseDeploymentPreparedStackOverridePlatforms = { /** - * Human-facing field label. + * AWS permission configurations */ - label: string; + aws?: + | Array + | null + | undefined; /** - * Example placeholder shown in UI. + * Azure permission configurations */ - placeholder?: string | null | undefined; + azure?: + | Array + | null + | undefined; /** - * Platforms where this input applies. + * GCP permission configurations */ - platforms?: - | Array + gcp?: + | Array | null | undefined; +}; + +/** + * A permission set that can be applied across different cloud platforms + */ +export type SyncAcquireResponseDeploymentPreparedStackOverride = { /** - * Who can provide this value. + * Human-readable description of what this permission set allows */ - providedBy: Array; + description: string; /** - * Whether a resolved value is required before deployment can proceed. + * Unique identifier for the permission set (e.g., "storage/data-read") */ - required: boolean; - validation?: - | SyncAcquireResponseDeploymentTargetReleaseValidation - | any - | null - | undefined; + id: string; + /** + * Platform-specific permission configurations + */ + platforms: SyncAcquireResponseDeploymentPreparedStackOverridePlatforms; }; -export const SyncAcquireResponseDeploymentTargetReleaseManagementEnum = { - Auto: "auto", -} as const; -export type SyncAcquireResponseDeploymentTargetReleaseManagementEnum = - ClosedEnum; +/** + * Reference to a permission set - either by name or inline definition + */ +export type SyncAcquireResponseDeploymentPreparedStackOverrideUnion = + | SyncAcquireResponseDeploymentPreparedStackOverride + | string; + +export type SyncAcquireResponseDeploymentPreparedStackManagement2 = { + /** + * Permission profile that maps resources to permission sets + * + * @remarks + * Key can be "*" for all resources or resource name for specific resource + */ + override: { + [k: string]: Array< + SyncAcquireResponseDeploymentPreparedStackOverride | string + >; + }; +}; /** * AWS-specific binding specification */ -export type SyncAcquireResponseDeploymentTargetReleaseOverrideAwResource = { +export type SyncAcquireResponseDeploymentPreparedStackExtendAwResource = { /** * Optional condition for additional filtering (rare) */ @@ -4087,7 +4158,7 @@ export type SyncAcquireResponseDeploymentTargetReleaseOverrideAwResource = { /** * AWS-specific binding specification */ -export type SyncAcquireResponseDeploymentTargetReleaseOverrideAwStack = { +export type SyncAcquireResponseDeploymentPreparedStackExtendAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -4101,36 +4172,37 @@ export type SyncAcquireResponseDeploymentTargetReleaseOverrideAwStack = { /** * Generic binding configuration for permissions */ -export type SyncAcquireResponseDeploymentTargetReleaseOverrideAwBinding = { +export type SyncAcquireResponseDeploymentPreparedStackExtendAwBinding = { /** * AWS-specific binding specification */ resource?: - | SyncAcquireResponseDeploymentTargetReleaseOverrideAwResource + | SyncAcquireResponseDeploymentPreparedStackExtendAwResource | undefined; /** * AWS-specific binding specification */ - stack?: SyncAcquireResponseDeploymentTargetReleaseOverrideAwStack | undefined; + stack?: SyncAcquireResponseDeploymentPreparedStackExtendAwStack | undefined; }; /** * IAM effect. Defaults to Allow. */ -export const SyncAcquireResponseDeploymentTargetReleaseOverrideEffect = { +export const SyncAcquireResponseDeploymentPreparedStackExtendEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type SyncAcquireResponseDeploymentTargetReleaseOverrideEffect = - ClosedEnum; +export type SyncAcquireResponseDeploymentPreparedStackExtendEffect = ClosedEnum< + typeof SyncAcquireResponseDeploymentPreparedStackExtendEffect +>; /** * Grant permissions for a specific cloud platform */ -export type SyncAcquireResponseDeploymentTargetReleaseOverrideAwGrant = { +export type SyncAcquireResponseDeploymentPreparedStackExtendAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -4156,11 +4228,11 @@ export type SyncAcquireResponseDeploymentTargetReleaseOverrideAwGrant = { /** * AWS-specific platform permission configuration */ -export type SyncAcquireResponseDeploymentTargetReleaseOverrideAw = { +export type SyncAcquireResponseDeploymentPreparedStackExtendAw = { /** * Generic binding configuration for permissions */ - binding: SyncAcquireResponseDeploymentTargetReleaseOverrideAwBinding; + binding: SyncAcquireResponseDeploymentPreparedStackExtendAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -4168,11 +4240,11 @@ export type SyncAcquireResponseDeploymentTargetReleaseOverrideAw = { /** * IAM effect. Defaults to Allow. */ - effect?: SyncAcquireResponseDeploymentTargetReleaseOverrideEffect | undefined; + effect?: SyncAcquireResponseDeploymentPreparedStackExtendEffect | undefined; /** * Grant permissions for a specific cloud platform */ - grant: SyncAcquireResponseDeploymentTargetReleaseOverrideAwGrant; + grant: SyncAcquireResponseDeploymentPreparedStackExtendAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -4182,7 +4254,7 @@ export type SyncAcquireResponseDeploymentTargetReleaseOverrideAw = { /** * Azure-specific binding specification */ -export type SyncAcquireResponseDeploymentTargetReleaseOverrideAzureResource = { +export type SyncAcquireResponseDeploymentPreparedStackExtendAzureResource = { /** * Scope (subscription/resource group/resource level) */ @@ -4192,7 +4264,7 @@ export type SyncAcquireResponseDeploymentTargetReleaseOverrideAzureResource = { /** * Azure-specific binding specification */ -export type SyncAcquireResponseDeploymentTargetReleaseOverrideAzureStack = { +export type SyncAcquireResponseDeploymentPreparedStackExtendAzureStack = { /** * Scope (subscription/resource group/resource level) */ @@ -4202,25 +4274,25 @@ export type SyncAcquireResponseDeploymentTargetReleaseOverrideAzureStack = { /** * Generic binding configuration for permissions */ -export type SyncAcquireResponseDeploymentTargetReleaseOverrideAzureBinding = { +export type SyncAcquireResponseDeploymentPreparedStackExtendAzureBinding = { /** * Azure-specific binding specification */ resource?: - | SyncAcquireResponseDeploymentTargetReleaseOverrideAzureResource + | SyncAcquireResponseDeploymentPreparedStackExtendAzureResource | undefined; /** * Azure-specific binding specification */ stack?: - | SyncAcquireResponseDeploymentTargetReleaseOverrideAzureStack + | SyncAcquireResponseDeploymentPreparedStackExtendAzureStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncAcquireResponseDeploymentTargetReleaseOverrideAzureGrant = { +export type SyncAcquireResponseDeploymentPreparedStackExtendAzureGrant = { /** * AWS IAM actions (only for AWS) */ @@ -4246,11 +4318,11 @@ export type SyncAcquireResponseDeploymentTargetReleaseOverrideAzureGrant = { /** * Azure-specific platform permission configuration */ -export type SyncAcquireResponseDeploymentTargetReleaseOverrideAzure = { +export type SyncAcquireResponseDeploymentPreparedStackExtendAzure = { /** * Generic binding configuration for permissions */ - binding: SyncAcquireResponseDeploymentTargetReleaseOverrideAzureBinding; + binding: SyncAcquireResponseDeploymentPreparedStackExtendAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -4258,7 +4330,7 @@ export type SyncAcquireResponseDeploymentTargetReleaseOverrideAzure = { /** * Grant permissions for a specific cloud platform */ - grant: SyncAcquireResponseDeploymentTargetReleaseOverrideAzureGrant; + grant: SyncAcquireResponseDeploymentPreparedStackExtendAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -4268,22 +4340,22 @@ export type SyncAcquireResponseDeploymentTargetReleaseOverrideAzure = { /** * GCP IAM condition */ -export type SyncAcquireResponseDeploymentTargetReleaseOverrideConditionResource = +export type SyncAcquireResponseDeploymentPreparedStackExtendConditionResource = { expression: string; title: string; }; -export type SyncAcquireResponseDeploymentTargetReleaseOverrideResourceConditionUnion = - | SyncAcquireResponseDeploymentTargetReleaseOverrideConditionResource +export type SyncAcquireResponseDeploymentPreparedStackExtendResourceConditionUnion = + | SyncAcquireResponseDeploymentPreparedStackExtendConditionResource | any; /** * GCP-specific binding specification */ -export type SyncAcquireResponseDeploymentTargetReleaseOverrideGcpResource = { +export type SyncAcquireResponseDeploymentPreparedStackExtendGcpResource = { condition?: - | SyncAcquireResponseDeploymentTargetReleaseOverrideConditionResource + | SyncAcquireResponseDeploymentPreparedStackExtendConditionResource | any | null | undefined; @@ -4296,21 +4368,21 @@ export type SyncAcquireResponseDeploymentTargetReleaseOverrideGcpResource = { /** * GCP IAM condition */ -export type SyncAcquireResponseDeploymentTargetReleaseOverrideCondition = { +export type SyncAcquireResponseDeploymentPreparedStackExtendConditionStack = { expression: string; title: string; }; -export type SyncAcquireResponseDeploymentTargetReleaseOverrideConditionUnion = - | SyncAcquireResponseDeploymentTargetReleaseOverrideCondition +export type SyncAcquireResponseDeploymentPreparedStackExtendStackConditionUnion = + | SyncAcquireResponseDeploymentPreparedStackExtendConditionStack | any; /** * GCP-specific binding specification */ -export type SyncAcquireResponseDeploymentTargetReleaseOverrideGcpStack = { +export type SyncAcquireResponseDeploymentPreparedStackExtendGcpStack = { condition?: - | SyncAcquireResponseDeploymentTargetReleaseOverrideCondition + | SyncAcquireResponseDeploymentPreparedStackExtendConditionStack | any | null | undefined; @@ -4323,25 +4395,23 @@ export type SyncAcquireResponseDeploymentTargetReleaseOverrideGcpStack = { /** * Generic binding configuration for permissions */ -export type SyncAcquireResponseDeploymentTargetReleaseOverrideGcpBinding = { +export type SyncAcquireResponseDeploymentPreparedStackExtendGcpBinding = { /** * GCP-specific binding specification */ resource?: - | SyncAcquireResponseDeploymentTargetReleaseOverrideGcpResource + | SyncAcquireResponseDeploymentPreparedStackExtendGcpResource | undefined; /** * GCP-specific binding specification */ - stack?: - | SyncAcquireResponseDeploymentTargetReleaseOverrideGcpStack - | undefined; + stack?: SyncAcquireResponseDeploymentPreparedStackExtendGcpStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncAcquireResponseDeploymentTargetReleaseOverrideGcpGrant = { +export type SyncAcquireResponseDeploymentPreparedStackExtendGcpGrant = { /** * AWS IAM actions (only for AWS) */ @@ -4367,11 +4437,11 @@ export type SyncAcquireResponseDeploymentTargetReleaseOverrideGcpGrant = { /** * GCP-specific platform permission configuration */ -export type SyncAcquireResponseDeploymentTargetReleaseOverrideGcp = { +export type SyncAcquireResponseDeploymentPreparedStackExtendGcp = { /** * Generic binding configuration for permissions */ - binding: SyncAcquireResponseDeploymentTargetReleaseOverrideGcpBinding; + binding: SyncAcquireResponseDeploymentPreparedStackExtendGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -4379,7 +4449,7 @@ export type SyncAcquireResponseDeploymentTargetReleaseOverrideGcp = { /** * Grant permissions for a specific cloud platform */ - grant: SyncAcquireResponseDeploymentTargetReleaseOverrideGcpGrant; + grant: SyncAcquireResponseDeploymentPreparedStackExtendGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -4389,26 +4459,26 @@ export type SyncAcquireResponseDeploymentTargetReleaseOverrideGcp = { /** * Platform-specific permission configurations */ -export type SyncAcquireResponseDeploymentTargetReleaseOverridePlatforms = { +export type SyncAcquireResponseDeploymentPreparedStackExtendPlatforms = { /** * AWS permission configurations */ aws?: - | Array + | Array | null | undefined; /** * Azure permission configurations */ azure?: - | Array + | Array | null | undefined; /** * GCP permission configurations */ gcp?: - | Array + | Array | null | undefined; }; @@ -4416,7 +4486,7 @@ export type SyncAcquireResponseDeploymentTargetReleaseOverridePlatforms = { /** * A permission set that can be applied across different cloud platforms */ -export type SyncAcquireResponseDeploymentTargetReleaseOverride = { +export type SyncAcquireResponseDeploymentPreparedStackExtend = { /** * Human-readable description of what this permission set allows */ @@ -4428,34 +4498,42 @@ export type SyncAcquireResponseDeploymentTargetReleaseOverride = { /** * Platform-specific permission configurations */ - platforms: SyncAcquireResponseDeploymentTargetReleaseOverridePlatforms; + platforms: SyncAcquireResponseDeploymentPreparedStackExtendPlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type SyncAcquireResponseDeploymentTargetReleaseOverrideUnion = - | SyncAcquireResponseDeploymentTargetReleaseOverride +export type SyncAcquireResponseDeploymentPreparedStackExtendUnion = + | SyncAcquireResponseDeploymentPreparedStackExtend | string; -export type SyncAcquireResponseDeploymentTargetReleaseManagement2 = { +export type SyncAcquireResponseDeploymentPreparedStackManagement1 = { /** * Permission profile that maps resources to permission sets * * @remarks * Key can be "*" for all resources or resource name for specific resource */ - override: { + extend: { [k: string]: Array< - SyncAcquireResponseDeploymentTargetReleaseOverride | string + SyncAcquireResponseDeploymentPreparedStackExtend | string >; }; }; +/** + * Management permissions configuration for stack management access + */ +export type SyncAcquireResponseDeploymentPreparedStackManagementUnion = + | SyncAcquireResponseDeploymentPreparedStackManagement1 + | SyncAcquireResponseDeploymentPreparedStackManagement2 + | SyncAcquireResponseDeploymentPreparedStackManagementEnum; + /** * AWS-specific binding specification */ -export type SyncAcquireResponseDeploymentTargetReleaseExtendAwResource = { +export type SyncAcquireResponseDeploymentPreparedStackProfileAwResource = { /** * Optional condition for additional filtering (rare) */ @@ -4469,7 +4547,7 @@ export type SyncAcquireResponseDeploymentTargetReleaseExtendAwResource = { /** * AWS-specific binding specification */ -export type SyncAcquireResponseDeploymentTargetReleaseExtendAwStack = { +export type SyncAcquireResponseDeploymentPreparedStackProfileAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -4483,37 +4561,36 @@ export type SyncAcquireResponseDeploymentTargetReleaseExtendAwStack = { /** * Generic binding configuration for permissions */ -export type SyncAcquireResponseDeploymentTargetReleaseExtendAwBinding = { +export type SyncAcquireResponseDeploymentPreparedStackProfileAwBinding = { /** * AWS-specific binding specification */ resource?: - | SyncAcquireResponseDeploymentTargetReleaseExtendAwResource + | SyncAcquireResponseDeploymentPreparedStackProfileAwResource | undefined; /** * AWS-specific binding specification */ - stack?: SyncAcquireResponseDeploymentTargetReleaseExtendAwStack | undefined; + stack?: SyncAcquireResponseDeploymentPreparedStackProfileAwStack | undefined; }; /** * IAM effect. Defaults to Allow. */ -export const SyncAcquireResponseDeploymentTargetReleaseExtendEffect = { +export const SyncAcquireResponseDeploymentPreparedStackProfileEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type SyncAcquireResponseDeploymentTargetReleaseExtendEffect = ClosedEnum< - typeof SyncAcquireResponseDeploymentTargetReleaseExtendEffect ->; +export type SyncAcquireResponseDeploymentPreparedStackProfileEffect = + ClosedEnum; /** * Grant permissions for a specific cloud platform */ -export type SyncAcquireResponseDeploymentTargetReleaseExtendAwGrant = { +export type SyncAcquireResponseDeploymentPreparedStackProfileAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -4539,11 +4616,11 @@ export type SyncAcquireResponseDeploymentTargetReleaseExtendAwGrant = { /** * AWS-specific platform permission configuration */ -export type SyncAcquireResponseDeploymentTargetReleaseExtendAw = { +export type SyncAcquireResponseDeploymentPreparedStackProfileAw = { /** * Generic binding configuration for permissions */ - binding: SyncAcquireResponseDeploymentTargetReleaseExtendAwBinding; + binding: SyncAcquireResponseDeploymentPreparedStackProfileAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -4551,11 +4628,11 @@ export type SyncAcquireResponseDeploymentTargetReleaseExtendAw = { /** * IAM effect. Defaults to Allow. */ - effect?: SyncAcquireResponseDeploymentTargetReleaseExtendEffect | undefined; + effect?: SyncAcquireResponseDeploymentPreparedStackProfileEffect | undefined; /** * Grant permissions for a specific cloud platform */ - grant: SyncAcquireResponseDeploymentTargetReleaseExtendAwGrant; + grant: SyncAcquireResponseDeploymentPreparedStackProfileAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -4565,7 +4642,7 @@ export type SyncAcquireResponseDeploymentTargetReleaseExtendAw = { /** * Azure-specific binding specification */ -export type SyncAcquireResponseDeploymentTargetReleaseExtendAzureResource = { +export type SyncAcquireResponseDeploymentPreparedStackProfileAzureResource = { /** * Scope (subscription/resource group/resource level) */ @@ -4575,7 +4652,7 @@ export type SyncAcquireResponseDeploymentTargetReleaseExtendAzureResource = { /** * Azure-specific binding specification */ -export type SyncAcquireResponseDeploymentTargetReleaseExtendAzureStack = { +export type SyncAcquireResponseDeploymentPreparedStackProfileAzureStack = { /** * Scope (subscription/resource group/resource level) */ @@ -4585,25 +4662,25 @@ export type SyncAcquireResponseDeploymentTargetReleaseExtendAzureStack = { /** * Generic binding configuration for permissions */ -export type SyncAcquireResponseDeploymentTargetReleaseExtendAzureBinding = { +export type SyncAcquireResponseDeploymentPreparedStackProfileAzureBinding = { /** * Azure-specific binding specification */ resource?: - | SyncAcquireResponseDeploymentTargetReleaseExtendAzureResource + | SyncAcquireResponseDeploymentPreparedStackProfileAzureResource | undefined; /** * Azure-specific binding specification */ stack?: - | SyncAcquireResponseDeploymentTargetReleaseExtendAzureStack + | SyncAcquireResponseDeploymentPreparedStackProfileAzureStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncAcquireResponseDeploymentTargetReleaseExtendAzureGrant = { +export type SyncAcquireResponseDeploymentPreparedStackProfileAzureGrant = { /** * AWS IAM actions (only for AWS) */ @@ -4629,11 +4706,11 @@ export type SyncAcquireResponseDeploymentTargetReleaseExtendAzureGrant = { /** * Azure-specific platform permission configuration */ -export type SyncAcquireResponseDeploymentTargetReleaseExtendAzure = { +export type SyncAcquireResponseDeploymentPreparedStackProfileAzure = { /** * Generic binding configuration for permissions */ - binding: SyncAcquireResponseDeploymentTargetReleaseExtendAzureBinding; + binding: SyncAcquireResponseDeploymentPreparedStackProfileAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -4641,7 +4718,7 @@ export type SyncAcquireResponseDeploymentTargetReleaseExtendAzure = { /** * Grant permissions for a specific cloud platform */ - grant: SyncAcquireResponseDeploymentTargetReleaseExtendAzureGrant; + grant: SyncAcquireResponseDeploymentPreparedStackProfileAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -4651,22 +4728,22 @@ export type SyncAcquireResponseDeploymentTargetReleaseExtendAzure = { /** * GCP IAM condition */ -export type SyncAcquireResponseDeploymentTargetReleaseExtendConditionResource = +export type SyncAcquireResponseDeploymentPreparedStackProfileConditionResource = { expression: string; title: string; }; -export type SyncAcquireResponseDeploymentTargetReleaseExtendResourceConditionUnion = - | SyncAcquireResponseDeploymentTargetReleaseExtendConditionResource +export type SyncAcquireResponseDeploymentPreparedStackProfileResourceConditionUnion = + | SyncAcquireResponseDeploymentPreparedStackProfileConditionResource | any; /** * GCP-specific binding specification */ -export type SyncAcquireResponseDeploymentTargetReleaseExtendGcpResource = { +export type SyncAcquireResponseDeploymentPreparedStackProfileGcpResource = { condition?: - | SyncAcquireResponseDeploymentTargetReleaseExtendConditionResource + | SyncAcquireResponseDeploymentPreparedStackProfileConditionResource | any | null | undefined; @@ -4679,21 +4756,21 @@ export type SyncAcquireResponseDeploymentTargetReleaseExtendGcpResource = { /** * GCP IAM condition */ -export type SyncAcquireResponseDeploymentTargetReleaseExtendCondition = { +export type SyncAcquireResponseDeploymentPreparedStackProfileConditionStack = { expression: string; title: string; }; -export type SyncAcquireResponseDeploymentTargetReleaseExtendConditionUnion = - | SyncAcquireResponseDeploymentTargetReleaseExtendCondition +export type SyncAcquireResponseDeploymentPreparedStackProfileStackConditionUnion = + | SyncAcquireResponseDeploymentPreparedStackProfileConditionStack | any; /** * GCP-specific binding specification */ -export type SyncAcquireResponseDeploymentTargetReleaseExtendGcpStack = { +export type SyncAcquireResponseDeploymentPreparedStackProfileGcpStack = { condition?: - | SyncAcquireResponseDeploymentTargetReleaseExtendCondition + | SyncAcquireResponseDeploymentPreparedStackProfileConditionStack | any | null | undefined; @@ -4706,23 +4783,23 @@ export type SyncAcquireResponseDeploymentTargetReleaseExtendGcpStack = { /** * Generic binding configuration for permissions */ -export type SyncAcquireResponseDeploymentTargetReleaseExtendGcpBinding = { +export type SyncAcquireResponseDeploymentPreparedStackProfileGcpBinding = { /** * GCP-specific binding specification */ resource?: - | SyncAcquireResponseDeploymentTargetReleaseExtendGcpResource + | SyncAcquireResponseDeploymentPreparedStackProfileGcpResource | undefined; /** * GCP-specific binding specification */ - stack?: SyncAcquireResponseDeploymentTargetReleaseExtendGcpStack | undefined; + stack?: SyncAcquireResponseDeploymentPreparedStackProfileGcpStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncAcquireResponseDeploymentTargetReleaseExtendGcpGrant = { +export type SyncAcquireResponseDeploymentPreparedStackProfileGcpGrant = { /** * AWS IAM actions (only for AWS) */ @@ -4748,11 +4825,11 @@ export type SyncAcquireResponseDeploymentTargetReleaseExtendGcpGrant = { /** * GCP-specific platform permission configuration */ -export type SyncAcquireResponseDeploymentTargetReleaseExtendGcp = { +export type SyncAcquireResponseDeploymentPreparedStackProfileGcp = { /** * Generic binding configuration for permissions */ - binding: SyncAcquireResponseDeploymentTargetReleaseExtendGcpBinding; + binding: SyncAcquireResponseDeploymentPreparedStackProfileGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -4760,7 +4837,7 @@ export type SyncAcquireResponseDeploymentTargetReleaseExtendGcp = { /** * Grant permissions for a specific cloud platform */ - grant: SyncAcquireResponseDeploymentTargetReleaseExtendGcpGrant; + grant: SyncAcquireResponseDeploymentPreparedStackProfileGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -4770,26 +4847,26 @@ export type SyncAcquireResponseDeploymentTargetReleaseExtendGcp = { /** * Platform-specific permission configurations */ -export type SyncAcquireResponseDeploymentTargetReleaseExtendPlatforms = { +export type SyncAcquireResponseDeploymentPreparedStackProfilePlatforms = { /** * AWS permission configurations */ aws?: - | Array + | Array | null | undefined; /** * Azure permission configurations */ azure?: - | Array + | Array | null | undefined; /** * GCP permission configurations */ gcp?: - | Array + | Array | null | undefined; }; @@ -4797,7 +4874,7 @@ export type SyncAcquireResponseDeploymentTargetReleaseExtendPlatforms = { /** * A permission set that can be applied across different cloud platforms */ -export type SyncAcquireResponseDeploymentTargetReleaseExtend = { +export type SyncAcquireResponseDeploymentPreparedStackProfile = { /** * Human-readable description of what this permission set allows */ @@ -4809,435 +4886,481 @@ export type SyncAcquireResponseDeploymentTargetReleaseExtend = { /** * Platform-specific permission configurations */ - platforms: SyncAcquireResponseDeploymentTargetReleaseExtendPlatforms; + platforms: SyncAcquireResponseDeploymentPreparedStackProfilePlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type SyncAcquireResponseDeploymentTargetReleaseExtendUnion = - | SyncAcquireResponseDeploymentTargetReleaseExtend +export type SyncAcquireResponseDeploymentPreparedStackProfileUnion = + | SyncAcquireResponseDeploymentPreparedStackProfile | string; -export type SyncAcquireResponseDeploymentTargetReleaseManagement1 = { +/** + * Combined permissions configuration that contains both profiles and management + */ +export type SyncAcquireResponseDeploymentPreparedStackPermissions = { /** - * Permission profile that maps resources to permission sets + * Management permissions configuration for stack management access + */ + management?: + | SyncAcquireResponseDeploymentPreparedStackManagement1 + | SyncAcquireResponseDeploymentPreparedStackManagement2 + | SyncAcquireResponseDeploymentPreparedStackManagementEnum + | undefined; + /** + * Permission profiles that define access control for compute services * * @remarks - * Key can be "*" for all resources or resource name for specific resource + * Key is the profile name, value is the permission configuration */ - extend: { - [k: string]: Array< - SyncAcquireResponseDeploymentTargetReleaseExtend | string - >; + profiles: { + [k: string]: { + [k: string]: Array< + SyncAcquireResponseDeploymentPreparedStackProfile | string + >; + }; }; }; /** - * Management permissions configuration for stack management access - */ -export type SyncAcquireResponseDeploymentTargetReleaseManagementUnion = - | SyncAcquireResponseDeploymentTargetReleaseManagement1 - | SyncAcquireResponseDeploymentTargetReleaseManagement2 - | SyncAcquireResponseDeploymentTargetReleaseManagementEnum; - -/** - * AWS-specific binding specification + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ -export type SyncAcquireResponseDeploymentTargetReleaseProfileAwResource = { +export type SyncAcquireResponseDeploymentPreparedStackConfig = { /** - * Optional condition for additional filtering (rare) + * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. */ - condition?: { [k: string]: { [k: string]: string } } | null | undefined; + id: string; /** - * Resource ARNs to bind to + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. */ - resources: Array; + type: string; + additionalProperties?: { [k: string]: any | null } | undefined; }; /** - * AWS-specific binding specification + * Reference to a resource by its stable id and resource type. */ -export type SyncAcquireResponseDeploymentTargetReleaseProfileAwStack = { - /** - * Optional condition for additional filtering (rare) - */ - condition?: { [k: string]: { [k: string]: string } } | null | undefined; +export type SyncAcquireResponseDeploymentPreparedStackDependency = { + id: string; /** - * Resource ARNs to bind to + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. */ - resources: Array; + type: string; }; /** - * Generic binding configuration for permissions + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export type SyncAcquireResponseDeploymentTargetReleaseProfileAwBinding = { - /** - * AWS-specific binding specification - */ - resource?: - | SyncAcquireResponseDeploymentTargetReleaseProfileAwResource - | undefined; - /** - * AWS-specific binding specification - */ - stack?: SyncAcquireResponseDeploymentTargetReleaseProfileAwStack | undefined; -}; - -/** - * IAM effect. Defaults to Allow. - */ -export const SyncAcquireResponseDeploymentTargetReleaseProfileEffect = { - Allow: "Allow", - Deny: "Deny", +export const SyncAcquireResponseDeploymentPreparedStackLifecycle = { + Frozen: "frozen", + Live: "live", } as const; /** - * IAM effect. Defaults to Allow. + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export type SyncAcquireResponseDeploymentTargetReleaseProfileEffect = - ClosedEnum; +export type SyncAcquireResponseDeploymentPreparedStackLifecycle = ClosedEnum< + typeof SyncAcquireResponseDeploymentPreparedStackLifecycle +>; -/** - * Grant permissions for a specific cloud platform - */ -export type SyncAcquireResponseDeploymentTargetReleaseProfileAwGrant = { +export type SyncAcquireResponseDeploymentPreparedStackResources = { /** - * AWS IAM actions (only for AWS) + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ - actions?: Array | null | undefined; + config: SyncAcquireResponseDeploymentPreparedStackConfig; /** - * Azure actions (only for Azure) + * Additional dependencies for this resource beyond those defined in the resource itself. + * + * @remarks + * The total dependencies are: resource.get_dependencies() + this list */ - dataActions?: Array | null | undefined; + dependencies: Array; /** - * GCP permissions that require an exact residual custom role. + * Id of the boolean stack input that decides whether this resource is + * + * @remarks + * created at all. `None` means always create it. + * + * Set by `.enabled(input)` in the SDK. Setup emitters render the resource + * conditionally on the matching template variable, so a deployer who says no + * never gets the resource, its outputs, or anything derived from it. */ - permissions?: Array | null | undefined; + enabledWhen?: string | null | undefined; /** - * Provider predefined roles to bind directly. + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ - predefinedRoles?: Array | null | undefined; + lifecycle: SyncAcquireResponseDeploymentPreparedStackLifecycle; /** - * GCP residual custom permissions to pair with predefined roles. + * Enable remote bindings for this resource (BYOB use case). + * + * @remarks + * When true, binding params are synced to StackState's `remote_binding_params`. + * Default: false (prevents sensitive data in synced state). */ - residualPermissions?: Array | null | undefined; + remoteAccess?: boolean | undefined; }; /** - * AWS-specific platform permission configuration + * Represents the target cloud platform. */ -export type SyncAcquireResponseDeploymentTargetReleaseProfileAw = { - /** - * Generic binding configuration for permissions - */ - binding: SyncAcquireResponseDeploymentTargetReleaseProfileAwBinding; +export const SyncAcquireResponseDeploymentPreparedStackSupportedPlatform = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", +} as const; +/** + * Represents the target cloud platform. + */ +export type SyncAcquireResponseDeploymentPreparedStackSupportedPlatform = + ClosedEnum< + typeof SyncAcquireResponseDeploymentPreparedStackSupportedPlatform + >; + +/** + * A bag of resources, unaware of any cloud. + */ +export type SyncAcquireResponseDeploymentPreparedStack = { /** - * Short admin-facing description of why this entry exists. + * Unique identifier for the stack */ - description?: string | null | undefined; + id: string; /** - * IAM effect. Defaults to Allow. + * Input definitions required before setup or deployment can proceed. */ - effect?: SyncAcquireResponseDeploymentTargetReleaseProfileEffect | undefined; + inputs?: Array | undefined; /** - * Grant permissions for a specific cloud platform + * Combined permissions configuration that contains both profiles and management */ - grant: SyncAcquireResponseDeploymentTargetReleaseProfileAwGrant; + permissions?: + | SyncAcquireResponseDeploymentPreparedStackPermissions + | undefined; /** - * Stable admin-facing label for this permission entry. + * Map of resource IDs to their configurations and lifecycle settings */ - label?: string | null | undefined; -}; - -/** - * Azure-specific binding specification - */ -export type SyncAcquireResponseDeploymentTargetReleaseProfileAzureResource = { + resources: { + [k: string]: SyncAcquireResponseDeploymentPreparedStackResources; + }; /** - * Scope (subscription/resource group/resource level) + * Which platforms this stack supports. When None, all platforms are supported. */ - scope: string; + supportedPlatforms?: + | Array + | null + | undefined; }; -/** - * Azure-specific binding specification - */ -export type SyncAcquireResponseDeploymentTargetReleaseProfileAzureStack = { - /** - * Scope (subscription/resource group/resource level) - */ - scope: string; -}; +export type SyncAcquireResponseDeploymentPreparedStackUnion = + | SyncAcquireResponseDeploymentPreparedStack + | any; /** - * Generic binding configuration for permissions + * One-shot authority for a setup re-import to replace setup-owned resources. */ -export type SyncAcquireResponseDeploymentTargetReleaseProfileAzureBinding = { +export type SyncAcquireResponseDeploymentSetupUpdateAuthorization = { /** - * Azure-specific binding specification + * Frozen resource projection from the last successful deployment. */ - resource?: - | SyncAcquireResponseDeploymentTargetReleaseProfileAzureResource - | undefined; + baselineFrozenDigest: string; /** - * Azure-specific binding specification + * Unique revision used by persistence layers for compare-and-swap updates. */ - stack?: - | SyncAcquireResponseDeploymentTargetReleaseProfileAzureStack - | undefined; -}; - -/** - * Grant permissions for a specific cloud platform - */ -export type SyncAcquireResponseDeploymentTargetReleaseProfileAzureGrant = { + nonce: string; /** - * AWS IAM actions (only for AWS) + * Release whose stack was prepared by setup. */ - actions?: Array | null | undefined; + releaseId: string; /** - * Azure actions (only for Azure) + * Exact setup artifact revision that authored this authority. */ - dataActions?: Array | null | undefined; + setupFingerprint: string; /** - * GCP permissions that require an exact residual custom role. + * Setup fingerprint contract version. */ - permissions?: Array | null | undefined; + setupFingerprintVersion: number; /** - * Provider predefined roles to bind directly. + * Stable setup target recorded on the imported deployment. */ - predefinedRoles?: Array | null | undefined; + setupTarget: string; /** - * GCP residual custom permissions to pair with predefined roles. + * Frozen resource projection prepared by the setup re-import. */ - residualPermissions?: Array | null | undefined; + targetFrozenDigest: string; }; +export type SyncAcquireResponseDeploymentSetupUpdateAuthorizationUnion = + | SyncAcquireResponseDeploymentSetupUpdateAuthorization + | any; + /** - * Azure-specific platform permission configuration + * Runtime metadata for deployment + * + * @remarks + * + * Stores deployment state that needs to persist across step calls. */ -export type SyncAcquireResponseDeploymentTargetReleaseProfileAzure = { +export type SyncAcquireResponseDeploymentRuntimeMetadata = { /** - * Generic binding configuration for permissions + * Actor that owns structural work during the initial setup phase. */ - binding: SyncAcquireResponseDeploymentTargetReleaseProfileAzureBinding; + initialSetupAuthority?: + | SyncAcquireResponseDeploymentInitialSetupAuthority + | undefined; /** - * Short admin-facing description of why this entry exists. + * Hash of the environment variables snapshot that was last synced to the vault + * + * @remarks + * Used to avoid redundant sync operations during incremental deployment */ - description?: string | null | undefined; + lastSyncedEnvVarsHash?: string | null | undefined; /** - * Grant permissions for a specific cloud platform + * Exact vault keys owned by the deployment secret synchronizer. This + * + * @remarks + * inventory lets a later snapshot delete removed keys without listing or + * touching unrelated values in the same vault. */ - grant: SyncAcquireResponseDeploymentTargetReleaseProfileAzureGrant; + lastSyncedSecretNames?: Array | undefined; + pendingPreparedStack?: + | SyncAcquireResponseDeploymentPendingPreparedStack + | any + | null + | undefined; /** - * Stable admin-facing label for this permission entry. + * Canonical resolved answers for inputs that gate Frozen resources, + * + * @remarks + * keyed by input id, recorded when the deployment is created or its + * setup import registers. + * + * A frozen gate's answer is fixed for the deployment's lifetime: the + * update path refuses input values that conflict with these, and a Live + * resource sharing such an input resolves the persisted answer forever. */ - label?: string | null | undefined; + persistedGateAnswers?: { [k: string]: boolean } | undefined; + preparedStack?: + | SyncAcquireResponseDeploymentPreparedStack + | any + | null + | undefined; + /** + * Whether cross-account registry access has been successfully granted. + * + * @remarks + * Set to true after the manager successfully sets the ECR/GAR repo policy + * for this deployment's target account. Prevents redundant API calls on + * every reconcile tick. + */ + registryAccessGranted?: boolean | undefined; + setupUpdateAuthorization?: + | SyncAcquireResponseDeploymentSetupUpdateAuthorization + | any + | null + | undefined; }; +export type SyncAcquireResponseDeploymentRuntimeMetadataUnion = + | SyncAcquireResponseDeploymentRuntimeMetadata + | any; + /** - * GCP IAM condition + * Represents the target cloud platform. */ -export type SyncAcquireResponseDeploymentTargetReleaseProfileConditionResource = - { - expression: string; - title: string; - }; - -export type SyncAcquireResponseDeploymentTargetReleaseProfileResourceConditionUnion = - | SyncAcquireResponseDeploymentTargetReleaseProfileConditionResource - | any; +export const SyncAcquireResponseDeploymentStackStatePlatform = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", +} as const; +/** + * Represents the target cloud platform. + */ +export type SyncAcquireResponseDeploymentStackStatePlatform = ClosedEnum< + typeof SyncAcquireResponseDeploymentStackStatePlatform +>; /** - * GCP-specific binding specification + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ -export type SyncAcquireResponseDeploymentTargetReleaseProfileGcpResource = { - condition?: - | SyncAcquireResponseDeploymentTargetReleaseProfileConditionResource - | any - | null - | undefined; +export type SyncAcquireResponseDeploymentStackStateConfig = { /** - * Scope (project/resource level) + * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. */ - scope: string; + id: string; + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + type: string; + additionalProperties?: { [k: string]: any | null } | undefined; }; /** - * GCP IAM condition + * Represents the target cloud platform. */ -export type SyncAcquireResponseDeploymentTargetReleaseProfileCondition = { - expression: string; - title: string; -}; - -export type SyncAcquireResponseDeploymentTargetReleaseProfileConditionUnion = - | SyncAcquireResponseDeploymentTargetReleaseProfileCondition - | any; - +export const SyncAcquireResponseDeploymentControllerPlatformEnum = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", +} as const; /** - * GCP-specific binding specification + * Represents the target cloud platform. */ -export type SyncAcquireResponseDeploymentTargetReleaseProfileGcpStack = { - condition?: - | SyncAcquireResponseDeploymentTargetReleaseProfileCondition - | any - | null - | undefined; - /** - * Scope (project/resource level) - */ - scope: string; -}; +export type SyncAcquireResponseDeploymentControllerPlatformEnum = ClosedEnum< + typeof SyncAcquireResponseDeploymentControllerPlatformEnum +>; + +export type SyncAcquireResponseDeploymentControllerPlatformUnion = + | SyncAcquireResponseDeploymentControllerPlatformEnum + | any; /** - * Generic binding configuration for permissions + * Reference to a resource by its stable id and resource type. */ -export type SyncAcquireResponseDeploymentTargetReleaseProfileGcpBinding = { - /** - * GCP-specific binding specification - */ - resource?: - | SyncAcquireResponseDeploymentTargetReleaseProfileGcpResource - | undefined; +export type SyncAcquireResponseDeploymentStackStateDependency = { + id: string; /** - * GCP-specific binding specification + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. */ - stack?: SyncAcquireResponseDeploymentTargetReleaseProfileGcpStack | undefined; + type: string; }; /** - * Grant permissions for a specific cloud platform + * Canonical error container that provides a structured way to represent errors + * + * @remarks + * with rich metadata including error codes, human-readable messages, context, + * and chaining capabilities for error propagation. + * + * This struct is designed to be both machine-readable and user-friendly, + * supporting serialization for API responses and detailed error reporting + * in distributed systems. */ -export type SyncAcquireResponseDeploymentTargetReleaseProfileGcpGrant = { - /** - * AWS IAM actions (only for AWS) - */ - actions?: Array | null | undefined; +export type SyncAcquireResponseDeploymentStackStateError = { /** - * Azure actions (only for Azure) + * A unique identifier for the type of error. + * + * @remarks + * + * This should be a short, machine-readable string that can be used + * by clients to programmatically handle different error types. + * Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" */ - dataActions?: Array | null | undefined; + code: string; /** - * GCP permissions that require an exact residual custom role. + * Additional diagnostic information about the error context. + * + * @remarks + * + * This optional field can contain structured data providing more details + * about the error, such as validation errors, request parameters that + * caused the issue, or other relevant context information. */ - permissions?: Array | null | undefined; + context?: any | null | undefined; /** - * Provider predefined roles to bind directly. + * Optional human-facing remediation hint. */ - predefinedRoles?: Array | null | undefined; + hint?: string | null | undefined; /** - * GCP residual custom permissions to pair with predefined roles. + * HTTP status code for this error. + * + * @remarks + * + * Used when converting the error to an HTTP response. If None, falls back to + * the error type's default status code or 500. */ - residualPermissions?: Array | null | undefined; -}; - -/** - * GCP-specific platform permission configuration - */ -export type SyncAcquireResponseDeploymentTargetReleaseProfileGcp = { + httpStatusCode?: number | null | undefined; /** - * Generic binding configuration for permissions + * Indicates if this is an internal error that should not be exposed to users. + * + * @remarks + * + * When `true`, this error contains sensitive information or implementation + * details that should not be shown to end-users. Such errors should be + * logged for debugging but replaced with generic error messages in responses. */ - binding: SyncAcquireResponseDeploymentTargetReleaseProfileGcpBinding; + internal: boolean; /** - * Short admin-facing description of why this entry exists. + * Human-readable error message. + * + * @remarks + * + * This message should be clear and actionable for developers or end-users, + * providing context about what went wrong and potentially how to fix it. */ - description?: string | null | undefined; + message: string; /** - * Grant permissions for a specific cloud platform + * Indicates whether the operation that caused the error should be retried. + * + * @remarks + * + * When `true`, the error is transient and the operation might succeed + * if attempted again. When `false`, retrying the same operation is + * unlikely to succeed without changes. */ - grant: SyncAcquireResponseDeploymentTargetReleaseProfileGcpGrant; + retryable: boolean; /** - * Stable admin-facing label for this permission entry. + * The underlying error that caused this error, creating an error chain. + * + * @remarks + * + * This allows for proper error propagation and debugging by maintaining + * the full context of how an error occurred through multiple layers + * of an application. */ - label?: string | null | undefined; + source?: any | null | undefined; }; -/** - * Platform-specific permission configurations - */ -export type SyncAcquireResponseDeploymentTargetReleaseProfilePlatforms = { - /** - * AWS permission configurations - */ - aws?: - | Array - | null - | undefined; - /** - * Azure permission configurations - */ - azure?: - | Array - | null - | undefined; - /** - * GCP permission configurations - */ - gcp?: - | Array - | null - | undefined; -}; +export type SyncAcquireResponseDeploymentStackStateErrorUnion = + | SyncAcquireResponseDeploymentStackStateError + | any; /** - * A permission set that can be applied across different cloud platforms + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export type SyncAcquireResponseDeploymentTargetReleaseProfile = { - /** - * Human-readable description of what this permission set allows - */ - description: string; - /** - * Unique identifier for the permission set (e.g., "storage/data-read") - */ - id: string; - /** - * Platform-specific permission configurations - */ - platforms: SyncAcquireResponseDeploymentTargetReleaseProfilePlatforms; -}; - +export const SyncAcquireResponseDeploymentStackStateLifecycleEnum = { + Frozen: "frozen", + Live: "live", +} as const; /** - * Reference to a permission set - either by name or inline definition + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export type SyncAcquireResponseDeploymentTargetReleaseProfileUnion = - | SyncAcquireResponseDeploymentTargetReleaseProfile - | string; +export type SyncAcquireResponseDeploymentStackStateLifecycleEnum = ClosedEnum< + typeof SyncAcquireResponseDeploymentStackStateLifecycleEnum +>; + +export type SyncAcquireResponseDeploymentLifecycleUnion = + | SyncAcquireResponseDeploymentStackStateLifecycleEnum + | any; /** - * Combined permissions configuration that contains both profiles and management + * Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties. */ -export type SyncAcquireResponseDeploymentTargetReleasePermissions = { - /** - * Management permissions configuration for stack management access - */ - management?: - | SyncAcquireResponseDeploymentTargetReleaseManagement1 - | SyncAcquireResponseDeploymentTargetReleaseManagement2 - | SyncAcquireResponseDeploymentTargetReleaseManagementEnum - | undefined; +export type SyncAcquireResponseDeploymentOutputs = { /** - * Permission profiles that define access control for compute services - * - * @remarks - * Key is the profile name, value is the permission configuration + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. */ - profiles: { - [k: string]: { - [k: string]: Array< - SyncAcquireResponseDeploymentTargetReleaseProfile | string - >; - }; - }; + type: string; + additionalProperties?: { [k: string]: any | null } | undefined; }; +export type SyncAcquireResponseDeploymentOutputsUnion = + | SyncAcquireResponseDeploymentOutputs + | any; + /** * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ -export type SyncAcquireResponseDeploymentTargetReleaseConfig = { +export type SyncAcquireResponseDeploymentPreviousConfig = { /** * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. */ @@ -5249,2519 +5372,2408 @@ export type SyncAcquireResponseDeploymentTargetReleaseConfig = { additionalProperties?: { [k: string]: any | null } | undefined; }; -/** - * Reference to a resource by its stable id and resource type. - */ -export type SyncAcquireResponseDeploymentTargetReleaseDependency = { - id: string; - /** - * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. - */ - type: string; -}; +export type SyncAcquireResponseDeploymentPreviousConfigUnion = + | SyncAcquireResponseDeploymentPreviousConfig + | any; /** - * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + * Represents the high-level status of a resource during its lifecycle. */ -export const SyncAcquireResponseDeploymentTargetReleaseLifecycle = { - Frozen: "frozen", - Live: "live", +export const SyncAcquireResponseDeploymentStackStateStatus = { + Pending: "pending", + Provisioning: "provisioning", + ProvisionFailed: "provision-failed", + Running: "running", + Updating: "updating", + UpdateFailed: "update-failed", + Deleting: "deleting", + DeleteFailed: "delete-failed", + TeardownRequired: "teardown-required", + Deleted: "deleted", + RefreshFailed: "refresh-failed", } as const; /** - * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + * Represents the high-level status of a resource during its lifecycle. */ -export type SyncAcquireResponseDeploymentTargetReleaseLifecycle = ClosedEnum< - typeof SyncAcquireResponseDeploymentTargetReleaseLifecycle +export type SyncAcquireResponseDeploymentStackStateStatus = ClosedEnum< + typeof SyncAcquireResponseDeploymentStackStateStatus >; -export type SyncAcquireResponseDeploymentTargetReleaseResources = { - /** - * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. - */ - config: SyncAcquireResponseDeploymentTargetReleaseConfig; +/** + * Represents the state of a single resource within the stack for a specific platform. + */ +export type SyncAcquireResponseDeploymentStackStateResources = { /** - * Additional dependencies for this resource beyond those defined in the resource itself. + * The platform-specific resource controller that manages this resource's lifecycle. * * @remarks - * The total dependencies are: resource.get_dependencies() + this list + * This is None when the resource status is Pending. + * Stored as JSON to make the struct serializable and movable to alien-core. */ - dependencies: Array; + internal?: any | null | undefined; /** - * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ - lifecycle: SyncAcquireResponseDeploymentTargetReleaseLifecycle; + config: SyncAcquireResponseDeploymentStackStateConfig; + controllerPlatform?: + | SyncAcquireResponseDeploymentControllerPlatformEnum + | any + | null + | undefined; /** - * Enable remote bindings for this resource (BYOB use case). + * Complete list of dependencies for this resource, including infrastructure dependencies. * * @remarks - * When true, binding params are synced to StackState's `remote_binding_params`. - * Default: false (prevents sensitive data in synced state). - */ - remoteAccess?: boolean | undefined; -}; - -/** - * Represents the target cloud platform. - */ -export const SyncAcquireResponseDeploymentTargetReleaseSupportedPlatform = { - Aws: "aws", - Gcp: "gcp", - Azure: "azure", - Kubernetes: "kubernetes", - Machines: "machines", - Local: "local", - Test: "test", -} as const; -/** - * Represents the target cloud platform. - */ -export type SyncAcquireResponseDeploymentTargetReleaseSupportedPlatform = - ClosedEnum< - typeof SyncAcquireResponseDeploymentTargetReleaseSupportedPlatform - >; - -/** - * A bag of resources, unaware of any cloud. - */ -export type SyncAcquireResponseDeploymentTargetReleaseStack = { - /** - * Unique identifier for the stack - */ - id: string; - /** - * Input definitions required before setup or deployment can proceed. - */ - inputs?: Array | undefined; - /** - * Combined permissions configuration that contains both profiles and management + * This preserves the full dependency information from the stack definition. */ - permissions?: - | SyncAcquireResponseDeploymentTargetReleasePermissions + dependencies?: + | Array | undefined; + error?: SyncAcquireResponseDeploymentStackStateError | any | null | undefined; /** - * Map of resource IDs to their configurations and lifecycle settings - */ - resources: { - [k: string]: SyncAcquireResponseDeploymentTargetReleaseResources; - }; - /** - * Which platforms this stack supports. When None, all platforms are supported. + * Stores the controller state that failed, used for manual retry operations. + * + * @remarks + * This allows resuming from the exact point where the failure occurred. + * Stored as JSON to make the struct serializable and movable to alien-core. */ - supportedPlatforms?: - | Array + lastFailedState?: any | null | undefined; + lifecycle?: + | SyncAcquireResponseDeploymentStackStateLifecycleEnum + | any + | null + | undefined; + outputs?: SyncAcquireResponseDeploymentOutputs | any | null | undefined; + previousConfig?: + | SyncAcquireResponseDeploymentPreviousConfig + | any | null | undefined; -}; - -/** - * Release metadata - * - * @remarks - * - * Identifies a specific release version and includes the stack definition. - * The deployment engine uses this to track which release is currently deployed - * and which is the target. - */ -export type SyncAcquireResponseDeploymentTargetRelease = { - /** - * Short description of the release - */ - description?: string | null | undefined; /** - * Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no + * Binding parameters for remote access. * * @remarks - * Alien-assigned release — the platform resolves a release from `version`. + * Only populated when the resource has `remote_access: true` in its ResourceEntry. + * This is the JSON serialization of the binding configuration (e.g., StorageBinding, VaultBinding). + * Populated by controllers during provisioning using get_binding_params(). */ - releaseId?: string | null | undefined; + remoteBindingParams?: any | null | undefined; /** - * A bag of resources, unaware of any cloud. + * Tracks consecutive retry attempts for the current state transition. */ - stack: SyncAcquireResponseDeploymentTargetReleaseStack; + retryAttempt?: number | undefined; /** - * Version string (e.g., 2.1.0) + * Represents the high-level status of a resource during its lifecycle. */ - version?: string | null | undefined; + status: SyncAcquireResponseDeploymentStackStateStatus; + /** + * The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE). + */ + type: string; }; -export type SyncAcquireResponseDeploymentTargetReleaseUnion = - | SyncAcquireResponseDeploymentTargetRelease - | any; - /** - * Current deployment state (includes releases) + * Represents the collective state of all resources in a stack, including platform and pending actions. */ -export type SyncAcquireResponseDeploymentCurrent = { - currentRelease?: - | SyncAcquireResponseDeploymentCurrentRelease - | any - | null - | undefined; - environmentInfo?: - | SyncAcquireResponseDeploymentEnvironmentInfoGcp - | SyncAcquireResponseDeploymentEnvironmentInfoAzure - | SyncAcquireResponseDeploymentEnvironmentInfoLocal - | SyncAcquireResponseDeploymentEnvironmentInfoAws - | SyncAcquireResponseDeploymentEnvironmentInfoTest - | any - | null - | undefined; - error?: SyncAcquireResponseDeploymentError | any | null | undefined; +export type SyncAcquireResponseDeploymentStackState = { /** * Represents the target cloud platform. */ - platform: SyncAcquireResponseDeploymentCurrentPlatform; - /** - * Protocol version for cross-actor compatibility. - * - * @remarks - * All actors (manager, push client, agent) check this before stepping. - * Mismatched versions produce a clear error instead of silent corruption. - * See docs/02-manager/10-deployment-protocol.md. - */ - protocolVersion: number; + platform: SyncAcquireResponseDeploymentStackStatePlatform; /** - * Whether a retry has been requested for a failed deployment - * - * @remarks - * When true and status is a failed state, the deployment system will retry failed resources + * A prefix used for resource naming to ensure uniqueness across deployments. */ - retryRequested?: boolean | undefined; - runtimeMetadata?: - | SyncAcquireResponseDeploymentRuntimeMetadata - | any - | null - | undefined; - stackState?: SyncAcquireResponseDeploymentStackState | any | null | undefined; + resourcePrefix: string; /** - * Deployment status in the deployment lifecycle. - * - * @remarks - * - * For observe-only deployments with no release or stack state, `Running` - * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; - * resource health comes from inventory and resource heartbeat data. + * The state of individual resources, keyed by resource ID. */ - status: SyncAcquireResponseDeploymentStatus; - targetRelease?: - | SyncAcquireResponseDeploymentTargetRelease - | any - | null - | undefined; + resources: { [k: string]: SyncAcquireResponseDeploymentStackStateResources }; }; -/** - * Represents the target cloud platform. - */ -export const SyncAcquireResponseDeploymentBasePlatformEnum = { - Aws: "aws", - Gcp: "gcp", - Azure: "azure", - Kubernetes: "kubernetes", - Machines: "machines", - Local: "local", - Test: "test", -} as const; -/** - * Represents the target cloud platform. - */ -export type SyncAcquireResponseDeploymentBasePlatformEnum = ClosedEnum< - typeof SyncAcquireResponseDeploymentBasePlatformEnum ->; - -export type SyncAcquireResponseDeploymentBasePlatformUnion = - | SyncAcquireResponseDeploymentBasePlatformEnum +export type SyncAcquireResponseDeploymentStackStateUnion = + | SyncAcquireResponseDeploymentStackState | any; /** - * Configuration for a single container worker cluster. + * Deployment status in the deployment lifecycle. * * @remarks * - * Contains the cluster ID and management token needed to interact with - * the managed container control plane API for container operations. + * For observe-only deployments with no release or stack state, `Running` + * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; + * resource health comes from inventory and resource heartbeat data. */ -export type SyncAcquireResponseDeploymentClusters = { - /** - * Cluster ID (deterministic: workspace/project/deployment/resourceid) - */ - clusterId: string; - /** - * Management token for API access (hm_...) - * - * @remarks - * Used by alien-deployment controllers to create/update containers +export const SyncAcquireResponseDeploymentStatus = { + Pending: "pending", + PreflightsFailed: "preflights-failed", + InitialSetup: "initial-setup", + InitialSetupFailed: "initial-setup-failed", + Provisioning: "provisioning", + WaitingForMachines: "waiting-for-machines", + ProvisioningFailed: "provisioning-failed", + Running: "running", + RefreshFailed: "refresh-failed", + UpdatePending: "update-pending", + Updating: "updating", + UpdateFailed: "update-failed", + DeletePending: "delete-pending", + Deleting: "deleting", + DeleteFailed: "delete-failed", + TeardownRequired: "teardown-required", + TeardownFailed: "teardown-failed", + Deleted: "deleted", + Error: "error", +} as const; +/** + * Deployment status in the deployment lifecycle. + * + * @remarks + * + * For observe-only deployments with no release or stack state, `Running` + * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; + * resource health comes from inventory and resource heartbeat data. + */ +export type SyncAcquireResponseDeploymentStatus = ClosedEnum< + typeof SyncAcquireResponseDeploymentStatus +>; + +export const SyncAcquireResponseDeploymentTargetReleaseTypeStringList = { + StringList: "stringList", +} as const; +export type SyncAcquireResponseDeploymentTargetReleaseTypeStringList = + ClosedEnum; + +export type SyncAcquireResponseDeploymentTargetReleaseDefaultStringList = { + type: SyncAcquireResponseDeploymentTargetReleaseTypeStringList; + /** + * String list default. */ - managementToken: string; + value: Array; }; -/** - * AWS Horizon machine image catalog. - */ -export type SyncAcquireResponseDeploymentHorizonMachineImageAws = { +export const SyncAcquireResponseDeploymentTargetReleaseTypeBoolean = { + Boolean: "boolean", +} as const; +export type SyncAcquireResponseDeploymentTargetReleaseTypeBoolean = ClosedEnum< + typeof SyncAcquireResponseDeploymentTargetReleaseTypeBoolean +>; + +export type SyncAcquireResponseDeploymentTargetReleaseDefaultBoolean = { + type: SyncAcquireResponseDeploymentTargetReleaseTypeBoolean; /** - * AMI IDs by architecture, then AWS region. + * Boolean default. */ - amis: { [k: string]: { [k: string]: string } }; + value: boolean; }; -export type SyncAcquireResponseDeploymentHorizonMachineImageAwsUnion = - | SyncAcquireResponseDeploymentHorizonMachineImageAws - | any; +export const SyncAcquireResponseDeploymentTargetReleaseTypeNumber = { + Number: "number", +} as const; +export type SyncAcquireResponseDeploymentTargetReleaseTypeNumber = ClosedEnum< + typeof SyncAcquireResponseDeploymentTargetReleaseTypeNumber +>; -/** - * Azure Horizon machine image entry. - */ -export type SyncAcquireResponseDeploymentAzureImages = { +export type SyncAcquireResponseDeploymentTargetReleaseDefaultNumber = { + type: SyncAcquireResponseDeploymentTargetReleaseTypeNumber; /** - * Azure Compute Gallery image version ID. + * Number default. */ - imageVersionId: string; + value: string; }; -/** - * Azure Horizon machine image catalog. - */ -export type SyncAcquireResponseDeploymentHorizonMachineImageAzure = { +export const SyncAcquireResponseDeploymentTargetReleaseTypeString = { + String: "string", +} as const; +export type SyncAcquireResponseDeploymentTargetReleaseTypeString = ClosedEnum< + typeof SyncAcquireResponseDeploymentTargetReleaseTypeString +>; + +export type SyncAcquireResponseDeploymentTargetReleaseDefaultString = { + type: SyncAcquireResponseDeploymentTargetReleaseTypeString; /** - * Images by architecture. + * String default. */ - images: { [k: string]: SyncAcquireResponseDeploymentAzureImages }; + value: string; }; -export type SyncAcquireResponseDeploymentHorizonMachineImageAzureUnion = - | SyncAcquireResponseDeploymentHorizonMachineImageAzure +export type SyncAcquireResponseDeploymentTargetReleaseDefaultUnion = + | SyncAcquireResponseDeploymentTargetReleaseDefaultString + | SyncAcquireResponseDeploymentTargetReleaseDefaultNumber + | SyncAcquireResponseDeploymentTargetReleaseDefaultBoolean + | SyncAcquireResponseDeploymentTargetReleaseDefaultStringList | any; /** - * Base image metadata for the Horizon machine image. + * Environment variable handling for a stack input mapping. */ -export type SyncAcquireResponseDeploymentBaseImage = { +export const SyncAcquireResponseDeploymentTargetReleaseTypeEnvEnum = { + Plain: "plain", + Secret: "secret", +} as const; +/** + * Environment variable handling for a stack input mapping. + */ +export type SyncAcquireResponseDeploymentTargetReleaseTypeEnvEnum = ClosedEnum< + typeof SyncAcquireResponseDeploymentTargetReleaseTypeEnvEnum +>; + +export type SyncAcquireResponseDeploymentTargetReleaseTypeUnion = + | SyncAcquireResponseDeploymentTargetReleaseTypeEnvEnum + | any; + +/** + * How a resolved stack input is injected into runtime environment variables. + */ +export type SyncAcquireResponseDeploymentTargetReleaseEnv = { /** - * Base OS image name. + * Environment variable name. */ name: string; /** - * Base OS image version or channel. + * Target resource IDs or patterns. None means every env-capable resource. */ - version: string; + targetResources?: Array | null | undefined; + type?: + | SyncAcquireResponseDeploymentTargetReleaseTypeEnvEnum + | any + | null + | undefined; }; /** - * GCP Horizon machine image entry. + * Primitive stack input kind. */ -export type SyncAcquireResponseDeploymentGcpImages = { - /** - * Source image self link or image-family URL. - */ - sourceImage: string; -}; +export const SyncAcquireResponseDeploymentTargetReleaseKind = { + String: "string", + Secret: "secret", + Number: "number", + Integer: "integer", + Boolean: "boolean", + Enum: "enum", + StringList: "stringList", +} as const; +/** + * Primitive stack input kind. + */ +export type SyncAcquireResponseDeploymentTargetReleaseKind = ClosedEnum< + typeof SyncAcquireResponseDeploymentTargetReleaseKind +>; /** - * GCP Horizon machine image catalog. + * Represents the target cloud platform. */ -export type SyncAcquireResponseDeploymentHorizonMachineImageGcp = { - /** - * Images by architecture. - */ - images: { [k: string]: SyncAcquireResponseDeploymentGcpImages }; -}; +export const SyncAcquireResponseDeploymentTargetReleasePlatform = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", +} as const; +/** + * Represents the target cloud platform. + */ +export type SyncAcquireResponseDeploymentTargetReleasePlatform = ClosedEnum< + typeof SyncAcquireResponseDeploymentTargetReleasePlatform +>; -export type SyncAcquireResponseDeploymentHorizonMachineImageGcpUnion = - | SyncAcquireResponseDeploymentHorizonMachineImageGcp - | any; +/** + * Who can provide a stack input value. + */ +export const SyncAcquireResponseDeploymentTargetReleaseProvidedBy = { + Developer: "developer", + Deployer: "deployer", +} as const; +/** + * Who can provide a stack input value. + */ +export type SyncAcquireResponseDeploymentTargetReleaseProvidedBy = ClosedEnum< + typeof SyncAcquireResponseDeploymentTargetReleaseProvidedBy +>; /** - * Download artifact for one horizond release platform. + * Portable stack input validation constraints. */ -export type SyncAcquireResponseDeploymentHorizondArtifacts = { +export type SyncAcquireResponseDeploymentTargetReleaseValidation = { /** - * SHA-256 digest for the artifact payload. + * Semantic format hint such as url. */ - sha256: string; + format?: string | null | undefined; /** - * HTTPS URL for the artifact. + * Maximum number. */ - url: string; -}; - -/** - * Horizon machine image catalog. - * - * @remarks - * - * Platform resolves concrete provider images from this catalog during rollout. - */ -export type SyncAcquireResponseDeploymentHorizonMachineImage = { - aws?: - | SyncAcquireResponseDeploymentHorizonMachineImageAws - | any - | null - | undefined; - azure?: - | SyncAcquireResponseDeploymentHorizonMachineImageAzure - | any - | null - | undefined; + max?: string | null | undefined; /** - * Base image metadata for the Horizon machine image. + * Maximum string-list items. */ - baseImage: SyncAcquireResponseDeploymentBaseImage; + maxItems?: number | null | undefined; /** - * Logical image channel, such as prod, staging, or canary. + * Maximum string length. */ - channel: string; + maxLength?: number | null | undefined; /** - * Image manifest creation timestamp. + * Minimum number. */ - createdAt: string; - gcp?: - | SyncAcquireResponseDeploymentHorizonMachineImageGcp - | any - | null - | undefined; + min?: string | null | undefined; /** - * Git commit SHA used to build the image. + * Minimum string-list items. */ - gitSha: string; + minItems?: number | null | undefined; /** - * Per-architecture horizond artifacts by release-platform key. + * Minimum string length. */ - horizondArtifacts: { - [k: string]: SyncAcquireResponseDeploymentHorizondArtifacts; - }; + minLength?: number | null | undefined; /** - * horizond daemon version baked into the image. + * Portable whole-value regex pattern. */ - horizondVersion: string; + pattern?: string | null | undefined; /** - * Published immutable machine image version. + * Allowed string enum values. */ - machineImageVersion: string; + values?: Array | null | undefined; }; -export type SyncAcquireResponseDeploymentHorizonMachineImageUnion = - | SyncAcquireResponseDeploymentHorizonMachineImage +export type SyncAcquireResponseDeploymentTargetReleaseValidationUnion = + | SyncAcquireResponseDeploymentTargetReleaseValidation | any; -export const SyncAcquireResponseDeploymentComputeBackendType = { - Horizon: "horizon", -} as const; -export type SyncAcquireResponseDeploymentComputeBackendType = ClosedEnum< - typeof SyncAcquireResponseDeploymentComputeBackendType ->; - /** - * Compute backend for Container and Worker resources. - * - * @remarks - * - * Determines how compute workloads are orchestrated on cloud platforms. - * When None, the platform default is used for cloud platforms. + * Stack input definition serialized into a release stack. */ -export type SyncAcquireResponseDeploymentComputeBackendHorizon = { +export type SyncAcquireResponseDeploymentTargetReleaseInput = { + default?: + | SyncAcquireResponseDeploymentTargetReleaseDefaultString + | SyncAcquireResponseDeploymentTargetReleaseDefaultNumber + | SyncAcquireResponseDeploymentTargetReleaseDefaultBoolean + | SyncAcquireResponseDeploymentTargetReleaseDefaultStringList + | any + | null + | undefined; /** - * Cluster configurations (one per ComputeCluster resource) - * - * @remarks - * Key: ComputeCluster resource ID from stack - * Value: Cluster ID and management token for that cluster + * Human-facing helper text. */ - clusters: { [k: string]: SyncAcquireResponseDeploymentClusters }; - horizonMachineImage?: - | SyncAcquireResponseDeploymentHorizonMachineImage - | any + description: string; + /** + * Runtime env-var mappings for v1 input resolution. + */ + env?: Array | undefined; + /** + * Stable input ID used by CLI/API calls. + */ + id: string; + /** + * Primitive stack input kind. + */ + kind: SyncAcquireResponseDeploymentTargetReleaseKind; + /** + * Human-facing field label. + */ + label: string; + /** + * Example placeholder shown in UI. + */ + placeholder?: string | null | undefined; + /** + * Platforms where this input applies. + */ + platforms?: + | Array | null | undefined; /** - * Horizon control-plane API base URL. + * Who can provide this value. */ - url: string; - type: SyncAcquireResponseDeploymentComputeBackendType; + providedBy: Array; + /** + * Whether a resolved value is required before deployment can proceed. + */ + required: boolean; + validation?: + | SyncAcquireResponseDeploymentTargetReleaseValidation + | any + | null + | undefined; }; -export type SyncAcquireResponseDeploymentComputeBackendUnion = - | SyncAcquireResponseDeploymentComputeBackendHorizon - | any; +export const SyncAcquireResponseDeploymentTargetReleaseManagementEnum = { + Auto: "auto", +} as const; +export type SyncAcquireResponseDeploymentTargetReleaseManagementEnum = + ClosedEnum; /** - * Certificate status in the certificate lifecycle + * AWS-specific binding specification */ -export const SyncAcquireResponseDeploymentAliasCertificateStatus = { - Pending: "pending", - Issued: "issued", - Renewing: "renewing", - RenewalFailed: "renewal-failed", - Failed: "failed", - Deleting: "deleting", -} as const; +export type SyncAcquireResponseDeploymentTargetReleaseOverrideAwResource = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; + /** - * Certificate status in the certificate lifecycle + * AWS-specific binding specification */ -export type SyncAcquireResponseDeploymentAliasCertificateStatus = ClosedEnum< - typeof SyncAcquireResponseDeploymentAliasCertificateStatus ->; +export type SyncAcquireResponseDeploymentTargetReleaseOverrideAwStack = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; /** - * DNS record status in the DNS lifecycle + * Generic binding configuration for permissions */ -export const SyncAcquireResponseDeploymentAliasDnsStatus = { - Pending: "pending", - Active: "active", - Updating: "updating", - Deleting: "deleting", - Failed: "failed", +export type SyncAcquireResponseDeploymentTargetReleaseOverrideAwBinding = { + /** + * AWS-specific binding specification + */ + resource?: + | SyncAcquireResponseDeploymentTargetReleaseOverrideAwResource + | undefined; + /** + * AWS-specific binding specification + */ + stack?: SyncAcquireResponseDeploymentTargetReleaseOverrideAwStack | undefined; +}; + +/** + * IAM effect. Defaults to Allow. + */ +export const SyncAcquireResponseDeploymentTargetReleaseOverrideEffect = { + Allow: "Allow", + Deny: "Deny", } as const; /** - * DNS record status in the DNS lifecycle + * IAM effect. Defaults to Allow. */ -export type SyncAcquireResponseDeploymentAliasDnsStatus = ClosedEnum< - typeof SyncAcquireResponseDeploymentAliasDnsStatus ->; +export type SyncAcquireResponseDeploymentTargetReleaseOverrideEffect = + ClosedEnum; /** - * Certificate and DNS metadata for a managed hostname. - * - * @remarks - * - * Includes decrypted certificate data for issued certificates. - * Private keys are deployment-scoped secrets (like environment variables). + * Grant permissions for a specific cloud platform */ -export type SyncAcquireResponseDeploymentAlias = { +export type SyncAcquireResponseDeploymentTargetReleaseOverrideAwGrant = { /** - * Full PEM certificate chain (only present if status is "issued"). + * AWS IAM actions (only for AWS) */ - certificateChain?: string | null | undefined; + actions?: Array | null | undefined; /** - * Certificate ID (for tracking/logging). + * Azure actions (only for Azure) */ - certificateId: string; + dataActions?: Array | null | undefined; /** - * Certificate status in the certificate lifecycle + * GCP permissions that require an exact residual custom role. */ - certificateStatus: SyncAcquireResponseDeploymentAliasCertificateStatus; + permissions?: Array | null | undefined; /** - * Last DNS error message. Present when DNS previously failed, even if status - * - * @remarks - * was reset to pending for retry. Used to surface actionable error context - * in WaitingForDns failure messages. + * Provider predefined roles to bind directly. */ - dnsError?: string | null | undefined; + predefinedRoles?: Array | null | undefined; /** - * DNS record status in the DNS lifecycle + * GCP residual custom permissions to pair with predefined roles. */ - dnsStatus: SyncAcquireResponseDeploymentAliasDnsStatus; + residualPermissions?: Array | null | undefined; +}; + +/** + * AWS-specific platform permission configuration + */ +export type SyncAcquireResponseDeploymentTargetReleaseOverrideAw = { /** - * Fully qualified domain name. + * Generic binding configuration for permissions */ - fqdn: string; + binding: SyncAcquireResponseDeploymentTargetReleaseOverrideAwBinding; /** - * ISO 8601 timestamp when certificate was issued (for renewal detection). + * Short admin-facing description of why this entry exists. */ - issuedAt?: string | null | undefined; + description?: string | null | undefined; /** - * Decrypted private key (only present if status is "issued"). + * IAM effect. Defaults to Allow. */ - privateKey?: string | null | undefined; + effect?: SyncAcquireResponseDeploymentTargetReleaseOverrideEffect | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncAcquireResponseDeploymentTargetReleaseOverrideAwGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; }; /** - * Certificate status in the certificate lifecycle + * Azure-specific binding specification */ -export const SyncAcquireResponseDeploymentCertificateStatus = { - Pending: "pending", - Issued: "issued", - Renewing: "renewing", - RenewalFailed: "renewal-failed", - Failed: "failed", - Deleting: "deleting", -} as const; +export type SyncAcquireResponseDeploymentTargetReleaseOverrideAzureResource = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; + /** - * Certificate status in the certificate lifecycle + * Azure-specific binding specification */ -export type SyncAcquireResponseDeploymentCertificateStatus = ClosedEnum< - typeof SyncAcquireResponseDeploymentCertificateStatus ->; +export type SyncAcquireResponseDeploymentTargetReleaseOverrideAzureStack = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; /** - * DNS record status in the DNS lifecycle - */ -export const SyncAcquireResponseDeploymentDnsStatus = { - Pending: "pending", - Active: "active", - Updating: "updating", - Deleting: "deleting", - Failed: "failed", -} as const; -/** - * DNS record status in the DNS lifecycle - */ -export type SyncAcquireResponseDeploymentDnsStatus = ClosedEnum< - typeof SyncAcquireResponseDeploymentDnsStatus ->; - -/** - * Certificate status in the certificate lifecycle - */ -export const SyncAcquireResponseDeploymentEndpointsCertificateStatus = { - Pending: "pending", - Issued: "issued", - Renewing: "renewing", - RenewalFailed: "renewal-failed", - Failed: "failed", - Deleting: "deleting", -} as const; -/** - * Certificate status in the certificate lifecycle - */ -export type SyncAcquireResponseDeploymentEndpointsCertificateStatus = - ClosedEnum; - -/** - * DNS record status in the DNS lifecycle - */ -export const SyncAcquireResponseDeploymentEndpointsDnsStatus = { - Pending: "pending", - Active: "active", - Updating: "updating", - Deleting: "deleting", - Failed: "failed", -} as const; -/** - * DNS record status in the DNS lifecycle + * Generic binding configuration for permissions */ -export type SyncAcquireResponseDeploymentEndpointsDnsStatus = ClosedEnum< - typeof SyncAcquireResponseDeploymentEndpointsDnsStatus ->; +export type SyncAcquireResponseDeploymentTargetReleaseOverrideAzureBinding = { + /** + * Azure-specific binding specification + */ + resource?: + | SyncAcquireResponseDeploymentTargetReleaseOverrideAzureResource + | undefined; + /** + * Azure-specific binding specification + */ + stack?: + | SyncAcquireResponseDeploymentTargetReleaseOverrideAzureStack + | undefined; +}; /** - * Certificate and DNS metadata for a managed hostname. - * - * @remarks - * - * Includes decrypted certificate data for issued certificates. - * Private keys are deployment-scoped secrets (like environment variables). + * Grant permissions for a specific cloud platform */ -export type SyncAcquireResponseDeploymentEndpoints = { +export type SyncAcquireResponseDeploymentTargetReleaseOverrideAzureGrant = { /** - * Full PEM certificate chain (only present if status is "issued"). + * AWS IAM actions (only for AWS) */ - certificateChain?: string | null | undefined; + actions?: Array | null | undefined; /** - * Certificate ID (for tracking/logging). + * Azure actions (only for Azure) */ - certificateId: string; + dataActions?: Array | null | undefined; /** - * Certificate status in the certificate lifecycle + * GCP permissions that require an exact residual custom role. */ - certificateStatus: SyncAcquireResponseDeploymentEndpointsCertificateStatus; + permissions?: Array | null | undefined; /** - * Last DNS error message. Present when DNS previously failed, even if status - * - * @remarks - * was reset to pending for retry. Used to surface actionable error context - * in WaitingForDns failure messages. + * Provider predefined roles to bind directly. */ - dnsError?: string | null | undefined; + predefinedRoles?: Array | null | undefined; /** - * DNS record status in the DNS lifecycle + * GCP residual custom permissions to pair with predefined roles. */ - dnsStatus: SyncAcquireResponseDeploymentEndpointsDnsStatus; + residualPermissions?: Array | null | undefined; +}; + +/** + * Azure-specific platform permission configuration + */ +export type SyncAcquireResponseDeploymentTargetReleaseOverrideAzure = { /** - * Fully qualified domain name. + * Generic binding configuration for permissions */ - fqdn: string; + binding: SyncAcquireResponseDeploymentTargetReleaseOverrideAzureBinding; /** - * ISO 8601 timestamp when certificate was issued (for renewal detection). + * Short admin-facing description of why this entry exists. */ - issuedAt?: string | null | undefined; + description?: string | null | undefined; /** - * Decrypted private key (only present if status is "issued"). + * Grant permissions for a specific cloud platform */ - privateKey?: string | null | undefined; + grant: SyncAcquireResponseDeploymentTargetReleaseOverrideAzureGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; }; /** - * Certificate and DNS metadata for a public resource. - * - * @remarks - * - * The direct fields describe the primary endpoint hostname. `endpoints` - * contains endpoint-scoped metadata keyed by endpoint name. `aliases` contains - * additional managed hostnames that route directly to the primary endpoint. + * GCP IAM condition */ -export type SyncAcquireResponseDeploymentDomainMetadataResources = { - /** - * Additional managed hostnames for the resource. - */ - aliases?: Array | undefined; +export type SyncAcquireResponseDeploymentTargetReleaseOverrideConditionResource = + { + expression: string; + title: string; + }; + +export type SyncAcquireResponseDeploymentTargetReleaseOverrideResourceConditionUnion = + | SyncAcquireResponseDeploymentTargetReleaseOverrideConditionResource + | any; + +/** + * GCP-specific binding specification + */ +export type SyncAcquireResponseDeploymentTargetReleaseOverrideGcpResource = { + condition?: + | SyncAcquireResponseDeploymentTargetReleaseOverrideConditionResource + | any + | null + | undefined; /** - * Full PEM certificate chain (only present if status is "issued"). + * Scope (project/resource level) */ - certificateChain?: string | null | undefined; + scope: string; +}; + +/** + * GCP IAM condition + */ +export type SyncAcquireResponseDeploymentTargetReleaseOverrideCondition = { + expression: string; + title: string; +}; + +export type SyncAcquireResponseDeploymentTargetReleaseOverrideConditionUnion = + | SyncAcquireResponseDeploymentTargetReleaseOverrideCondition + | any; + +/** + * GCP-specific binding specification + */ +export type SyncAcquireResponseDeploymentTargetReleaseOverrideGcpStack = { + condition?: + | SyncAcquireResponseDeploymentTargetReleaseOverrideCondition + | any + | null + | undefined; /** - * Certificate ID (for tracking/logging). + * Scope (project/resource level) */ - certificateId: string; + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type SyncAcquireResponseDeploymentTargetReleaseOverrideGcpBinding = { /** - * Certificate status in the certificate lifecycle + * GCP-specific binding specification */ - certificateStatus: SyncAcquireResponseDeploymentCertificateStatus; + resource?: + | SyncAcquireResponseDeploymentTargetReleaseOverrideGcpResource + | undefined; /** - * Last DNS error message. + * GCP-specific binding specification */ - dnsError?: string | null | undefined; + stack?: + | SyncAcquireResponseDeploymentTargetReleaseOverrideGcpStack + | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type SyncAcquireResponseDeploymentTargetReleaseOverrideGcpGrant = { /** - * DNS record status in the DNS lifecycle + * AWS IAM actions (only for AWS) */ - dnsStatus: SyncAcquireResponseDeploymentDnsStatus; + actions?: Array | null | undefined; /** - * Endpoint-scoped metadata keyed by endpoint name. + * Azure actions (only for Azure) */ - endpoints?: - | { [k: string]: SyncAcquireResponseDeploymentEndpoints } - | undefined; + dataActions?: Array | null | undefined; /** - * Fully qualified domain name. + * GCP permissions that require an exact residual custom role. */ - fqdn: string; + permissions?: Array | null | undefined; /** - * ISO 8601 timestamp when certificate was issued (for renewal detection). + * Provider predefined roles to bind directly. */ - issuedAt?: string | null | undefined; + predefinedRoles?: Array | null | undefined; /** - * Decrypted private key (only present if status is "issued"). + * GCP residual custom permissions to pair with predefined roles. */ - privateKey?: string | null | undefined; + residualPermissions?: Array | null | undefined; }; /** - * Domain metadata for auto-managed public resources (no private keys). + * GCP-specific platform permission configuration */ -export type SyncAcquireResponseDeploymentDomainMetadata = { +export type SyncAcquireResponseDeploymentTargetReleaseOverrideGcp = { /** - * Base domain for auto-generated domains (e.g., "vpc.direct"). + * Generic binding configuration for permissions */ - baseDomain: string; + binding: SyncAcquireResponseDeploymentTargetReleaseOverrideGcpBinding; /** - * Hosted zone ID for DNS records. + * Short admin-facing description of why this entry exists. */ - hostedZoneId: string; + description?: string | null | undefined; /** - * Deployment public subdomain (e.g., "k8f2j3"). + * Grant permissions for a specific cloud platform */ - publicSubdomain: string; + grant: SyncAcquireResponseDeploymentTargetReleaseOverrideGcpGrant; /** - * Metadata per resource ID. + * Stable admin-facing label for this permission entry. */ - resources: { - [k: string]: SyncAcquireResponseDeploymentDomainMetadataResources; - }; + label?: string | null | undefined; }; -export type SyncAcquireResponseDeploymentDomainMetadataUnion = - | SyncAcquireResponseDeploymentDomainMetadata - | any; - /** - * Type of environment variable + * Platform-specific permission configurations */ -export const SyncAcquireResponseDeploymentEnvironmentVariablesType = { - Plain: "plain", - Secret: "secret", -} as const; -/** - * Type of environment variable - */ -export type SyncAcquireResponseDeploymentEnvironmentVariablesType = ClosedEnum< - typeof SyncAcquireResponseDeploymentEnvironmentVariablesType ->; - -/** - * Environment variable for deployment - */ -export type SyncAcquireResponseDeploymentVariable = { - /** - * Variable name - */ - name: string; +export type SyncAcquireResponseDeploymentTargetReleaseOverridePlatforms = { /** - * Target resource patterns (null = all resources, Some = wildcard patterns) + * AWS permission configurations */ - targetResources?: Array | null | undefined; + aws?: + | Array + | null + | undefined; /** - * Type of environment variable + * Azure permission configurations */ - type: SyncAcquireResponseDeploymentEnvironmentVariablesType; + azure?: + | Array + | null + | undefined; /** - * Variable value (decrypted - deployment has access to decryption keys) + * GCP permission configurations */ - value: string; + gcp?: + | Array + | null + | undefined; }; /** - * Snapshot of environment variables at a point in time + * A permission set that can be applied across different cloud platforms */ -export type SyncAcquireResponseDeploymentEnvironmentVariables = { +export type SyncAcquireResponseDeploymentTargetReleaseOverride = { /** - * ISO 8601 timestamp when snapshot was created + * Human-readable description of what this permission set allows */ - createdAt: string; + description: string; /** - * Deterministic hash of all variables (for change detection) + * Unique identifier for the permission set (e.g., "storage/data-read") */ - hash: string; + id: string; /** - * Environment variables in the snapshot + * Platform-specific permission configurations */ - variables: Array; + platforms: SyncAcquireResponseDeploymentTargetReleaseOverridePlatforms; }; /** - * Reference to a Kubernetes Secret + * Reference to a permission set - either by name or inline definition */ -export type SyncAcquireResponseDeploymentDatabaseSecretRef6 = { - key: string; - name: string; -}; +export type SyncAcquireResponseDeploymentTargetReleaseOverrideUnion = + | SyncAcquireResponseDeploymentTargetReleaseOverride + | string; -export type SyncAcquireResponseDeploymentDatabase6 = { +export type SyncAcquireResponseDeploymentTargetReleaseManagement2 = { /** - * Reference to a Kubernetes Secret + * Permission profile that maps resources to permission sets + * + * @remarks + * Key can be "*" for all resources or resource name for specific resource */ - secretRef: SyncAcquireResponseDeploymentDatabaseSecretRef6; + override: { + [k: string]: Array< + SyncAcquireResponseDeploymentTargetReleaseOverride | string + >; + }; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentDatabaseUnion5 = - | SyncAcquireResponseDeploymentDatabase6 - | any - | string; - -/** - * Reference to a Kubernetes Secret + * AWS-specific binding specification */ -export type SyncAcquireResponseDeploymentHostSecretRef4 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentHost4 = { +export type SyncAcquireResponseDeploymentTargetReleaseExtendAwResource = { /** - * Reference to a Kubernetes Secret + * Optional condition for additional filtering (rare) */ - secretRef: SyncAcquireResponseDeploymentHostSecretRef4; + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentHostUnion4 = - | SyncAcquireResponseDeploymentHost4 - | any - | string; - -/** - * Reference to a Kubernetes Secret + * AWS-specific binding specification */ -export type SyncAcquireResponseDeploymentPortSecretRef5 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentPort5 = { +export type SyncAcquireResponseDeploymentTargetReleaseExtendAwStack = { /** - * Reference to a Kubernetes Secret + * Optional condition for additional filtering (rare) */ - secretRef: SyncAcquireResponseDeploymentPortSecretRef5; + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentPortUnion5 = - | SyncAcquireResponseDeploymentPort5 - | number - | any; - -/** - * Reference to a Kubernetes Secret + * Generic binding configuration for permissions */ -export type SyncAcquireResponseDeploymentUsernameSecretRef5 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentUsername5 = { +export type SyncAcquireResponseDeploymentTargetReleaseExtendAwBinding = { /** - * Reference to a Kubernetes Secret + * AWS-specific binding specification */ - secretRef: SyncAcquireResponseDeploymentUsernameSecretRef5; + resource?: + | SyncAcquireResponseDeploymentTargetReleaseExtendAwResource + | undefined; + /** + * AWS-specific binding specification + */ + stack?: SyncAcquireResponseDeploymentTargetReleaseExtendAwStack | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * IAM effect. Defaults to Allow. */ -export type SyncAcquireResponseDeploymentUsernameUnion5 = - | SyncAcquireResponseDeploymentUsername5 - | any - | string; - -export const SyncAcquireResponseDeploymentTypePostgres5 = { - Postgres: "postgres", +export const SyncAcquireResponseDeploymentTargetReleaseExtendEffect = { + Allow: "Allow", + Deny: "Deny", } as const; -export type SyncAcquireResponseDeploymentTypePostgres5 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypePostgres5 +/** + * IAM effect. Defaults to Allow. + */ +export type SyncAcquireResponseDeploymentTargetReleaseExtendEffect = ClosedEnum< + typeof SyncAcquireResponseDeploymentTargetReleaseExtendEffect >; /** - * Local embedded Postgres binding. + * Grant permissions for a specific cloud platform */ -export type SyncAcquireResponseDeploymentExternalBindingsLocalPostgres = { +export type SyncAcquireResponseDeploymentTargetReleaseExtendAwGrant = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * AWS IAM actions (only for AWS) */ - database?: - | SyncAcquireResponseDeploymentDatabase6 - | any - | string - | null - | undefined; + actions?: Array | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Azure actions (only for Azure) */ - host?: SyncAcquireResponseDeploymentHost4 | any | string | null | undefined; - password: string; + dataActions?: Array | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * GCP permissions that require an exact residual custom role. */ - port?: SyncAcquireResponseDeploymentPort5 | number | any | null | undefined; + permissions?: Array | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Provider predefined roles to bind directly. */ - username?: - | SyncAcquireResponseDeploymentUsername5 - | any - | string - | null - | undefined; - service: "local-postgres"; - type: SyncAcquireResponseDeploymentTypePostgres5; -}; - -/** - * Reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentDatabaseSecretRef5 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentDatabase5 = { + predefinedRoles?: Array | null | undefined; /** - * Reference to a Kubernetes Secret + * GCP residual custom permissions to pair with predefined roles. */ - secretRef: SyncAcquireResponseDeploymentDatabaseSecretRef5; + residualPermissions?: Array | null | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * AWS-specific platform permission configuration */ -export type SyncAcquireResponseDeploymentDatabaseUnion4 = - | SyncAcquireResponseDeploymentDatabase5 - | any - | string; - -/** - * Reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentHostSecretRef3 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentHost3 = { +export type SyncAcquireResponseDeploymentTargetReleaseExtendAw = { /** - * Reference to a Kubernetes Secret + * Generic binding configuration for permissions */ - secretRef: SyncAcquireResponseDeploymentHostSecretRef3; + binding: SyncAcquireResponseDeploymentTargetReleaseExtendAwBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * IAM effect. Defaults to Allow. + */ + effect?: SyncAcquireResponseDeploymentTargetReleaseExtendEffect | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncAcquireResponseDeploymentTargetReleaseExtendAwGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentHostUnion3 = - | SyncAcquireResponseDeploymentHost3 - | any - | string; - -/** - * Reference to a Kubernetes Secret + * Azure-specific binding specification */ -export type SyncAcquireResponseDeploymentPortSecretRef4 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentPort4 = { +export type SyncAcquireResponseDeploymentTargetReleaseExtendAzureResource = { /** - * Reference to a Kubernetes Secret + * Scope (subscription/resource group/resource level) */ - secretRef: SyncAcquireResponseDeploymentPortSecretRef4; + scope: string; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentPortUnion4 = - | SyncAcquireResponseDeploymentPort4 - | number - | any; - -/** - * Reference to a Kubernetes Secret + * Azure-specific binding specification */ -export type SyncAcquireResponseDeploymentUsernameSecretRef4 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentUsername4 = { +export type SyncAcquireResponseDeploymentTargetReleaseExtendAzureStack = { /** - * Reference to a Kubernetes Secret + * Scope (subscription/resource group/resource level) */ - secretRef: SyncAcquireResponseDeploymentUsernameSecretRef4; + scope: string; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Generic binding configuration for permissions */ -export type SyncAcquireResponseDeploymentUsernameUnion4 = - | SyncAcquireResponseDeploymentUsername4 - | any - | string; - -export const SyncAcquireResponseDeploymentTypePostgres4 = { - Postgres: "postgres", -} as const; -export type SyncAcquireResponseDeploymentTypePostgres4 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypePostgres4 ->; +export type SyncAcquireResponseDeploymentTargetReleaseExtendAzureBinding = { + /** + * Azure-specific binding specification + */ + resource?: + | SyncAcquireResponseDeploymentTargetReleaseExtendAzureResource + | undefined; + /** + * Azure-specific binding specification + */ + stack?: + | SyncAcquireResponseDeploymentTargetReleaseExtendAzureStack + | undefined; +}; /** - * Operator-provided / BYO database binding. + * Grant permissions for a specific cloud platform */ -export type SyncAcquireResponseDeploymentExternalBindingsExternal = { +export type SyncAcquireResponseDeploymentTargetReleaseExtendAzureGrant = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * AWS IAM actions (only for AWS) */ - database?: - | SyncAcquireResponseDeploymentDatabase5 - | any - | string - | null - | undefined; + actions?: Array | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Azure actions (only for Azure) */ - host?: SyncAcquireResponseDeploymentHost3 | any | string | null | undefined; + dataActions?: Array | null | undefined; /** - * Connection password as a concrete value, never an unresolved `SecretRef`: the platform - * - * @remarks - * materializes the Kubernetes secret into the pod env. The cloud variants carry a secret - * locator instead. + * GCP permissions that require an exact residual custom role. */ - password: string; + permissions?: Array | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Provider predefined roles to bind directly. */ - port?: SyncAcquireResponseDeploymentPort4 | number | any | null | undefined; + predefinedRoles?: Array | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * GCP residual custom permissions to pair with predefined roles. */ - username?: - | SyncAcquireResponseDeploymentUsername4 - | any - | string - | null - | undefined; - service: "external"; - type: SyncAcquireResponseDeploymentTypePostgres4; + residualPermissions?: Array | null | undefined; }; /** - * Reference to a Kubernetes Secret + * Azure-specific platform permission configuration */ -export type SyncAcquireResponseDeploymentDatabaseSecretRef4 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentDatabase4 = { +export type SyncAcquireResponseDeploymentTargetReleaseExtendAzure = { /** - * Reference to a Kubernetes Secret + * Generic binding configuration for permissions */ - secretRef: SyncAcquireResponseDeploymentDatabaseSecretRef4; + binding: SyncAcquireResponseDeploymentTargetReleaseExtendAzureBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncAcquireResponseDeploymentTargetReleaseExtendAzureGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * GCP IAM condition */ -export type SyncAcquireResponseDeploymentDatabaseUnion3 = - | SyncAcquireResponseDeploymentDatabase4 - | any - | string; +export type SyncAcquireResponseDeploymentTargetReleaseExtendConditionResource = + { + expression: string; + title: string; + }; + +export type SyncAcquireResponseDeploymentTargetReleaseExtendResourceConditionUnion = + | SyncAcquireResponseDeploymentTargetReleaseExtendConditionResource + | any; /** - * Reference to a Kubernetes Secret + * GCP-specific binding specification */ -export type SyncAcquireResponseDeploymentHostSecretRef2 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentHost2 = { +export type SyncAcquireResponseDeploymentTargetReleaseExtendGcpResource = { + condition?: + | SyncAcquireResponseDeploymentTargetReleaseExtendConditionResource + | any + | null + | undefined; /** - * Reference to a Kubernetes Secret + * Scope (project/resource level) */ - secretRef: SyncAcquireResponseDeploymentHostSecretRef2; + scope: string; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * GCP IAM condition */ -export type SyncAcquireResponseDeploymentHostUnion2 = - | SyncAcquireResponseDeploymentHost2 - | any - | string; +export type SyncAcquireResponseDeploymentTargetReleaseExtendCondition = { + expression: string; + title: string; +}; + +export type SyncAcquireResponseDeploymentTargetReleaseExtendConditionUnion = + | SyncAcquireResponseDeploymentTargetReleaseExtendCondition + | any; /** - * Reference to a Kubernetes Secret + * GCP-specific binding specification */ -export type SyncAcquireResponseDeploymentPasswordSecretUriSecretRef = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentPasswordSecretUri = { +export type SyncAcquireResponseDeploymentTargetReleaseExtendGcpStack = { + condition?: + | SyncAcquireResponseDeploymentTargetReleaseExtendCondition + | any + | null + | undefined; /** - * Reference to a Kubernetes Secret + * Scope (project/resource level) */ - secretRef: SyncAcquireResponseDeploymentPasswordSecretUriSecretRef; + scope: string; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentPasswordSecretUriUnion = - | SyncAcquireResponseDeploymentPasswordSecretUri - | any - | string; - -/** - * Reference to a Kubernetes Secret + * Generic binding configuration for permissions */ -export type SyncAcquireResponseDeploymentPortSecretRef3 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentPort3 = { +export type SyncAcquireResponseDeploymentTargetReleaseExtendGcpBinding = { /** - * Reference to a Kubernetes Secret + * GCP-specific binding specification */ - secretRef: SyncAcquireResponseDeploymentPortSecretRef3; + resource?: + | SyncAcquireResponseDeploymentTargetReleaseExtendGcpResource + | undefined; + /** + * GCP-specific binding specification + */ + stack?: SyncAcquireResponseDeploymentTargetReleaseExtendGcpStack | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentPortUnion3 = - | SyncAcquireResponseDeploymentPort3 - | number - | any; - -/** - * Reference to a Kubernetes Secret + * Grant permissions for a specific cloud platform */ -export type SyncAcquireResponseDeploymentUsernameSecretRef3 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentUsername3 = { +export type SyncAcquireResponseDeploymentTargetReleaseExtendGcpGrant = { /** - * Reference to a Kubernetes Secret + * AWS IAM actions (only for AWS) */ - secretRef: SyncAcquireResponseDeploymentUsernameSecretRef3; + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * GCP-specific platform permission configuration */ -export type SyncAcquireResponseDeploymentUsernameUnion3 = - | SyncAcquireResponseDeploymentUsername3 - | any - | string; - -export const SyncAcquireResponseDeploymentTypePostgres3 = { - Postgres: "postgres", -} as const; -export type SyncAcquireResponseDeploymentTypePostgres3 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypePostgres3 ->; +export type SyncAcquireResponseDeploymentTargetReleaseExtendGcp = { + /** + * Generic binding configuration for permissions + */ + binding: SyncAcquireResponseDeploymentTargetReleaseExtendGcpBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncAcquireResponseDeploymentTargetReleaseExtendGcpGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; /** - * Azure Flexible Server binding. + * Platform-specific permission configurations */ -export type SyncAcquireResponseDeploymentExternalBindingsFlexibleServer = { +export type SyncAcquireResponseDeploymentTargetReleaseExtendPlatforms = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * AWS permission configurations */ - database?: - | SyncAcquireResponseDeploymentDatabase4 - | any - | string + aws?: + | Array | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ - host?: SyncAcquireResponseDeploymentHost2 | any | string | null | undefined; - /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Azure permission configurations */ - passwordSecretUri?: - | SyncAcquireResponseDeploymentPasswordSecretUri - | any - | string + azure?: + | Array | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ - port?: SyncAcquireResponseDeploymentPort3 | number | any | null | undefined; - /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * GCP permission configurations */ - username?: - | SyncAcquireResponseDeploymentUsername3 - | any - | string + gcp?: + | Array | null | undefined; - service: "flexible-server"; - type: SyncAcquireResponseDeploymentTypePostgres3; }; /** - * Reference to a Kubernetes Secret + * A permission set that can be applied across different cloud platforms */ -export type SyncAcquireResponseDeploymentDatabaseSecretRef3 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentDatabase3 = { +export type SyncAcquireResponseDeploymentTargetReleaseExtend = { /** - * Reference to a Kubernetes Secret + * Human-readable description of what this permission set allows */ - secretRef: SyncAcquireResponseDeploymentDatabaseSecretRef3; + description: string; + /** + * Unique identifier for the permission set (e.g., "storage/data-read") + */ + id: string; + /** + * Platform-specific permission configurations + */ + platforms: SyncAcquireResponseDeploymentTargetReleaseExtendPlatforms; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Reference to a permission set - either by name or inline definition */ -export type SyncAcquireResponseDeploymentDatabaseUnion2 = - | SyncAcquireResponseDeploymentDatabase3 - | any +export type SyncAcquireResponseDeploymentTargetReleaseExtendUnion = + | SyncAcquireResponseDeploymentTargetReleaseExtend | string; -/** - * Reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentHostSecretRef1 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentHost1 = { +export type SyncAcquireResponseDeploymentTargetReleaseManagement1 = { /** - * Reference to a Kubernetes Secret + * Permission profile that maps resources to permission sets + * + * @remarks + * Key can be "*" for all resources or resource name for specific resource */ - secretRef: SyncAcquireResponseDeploymentHostSecretRef1; + extend: { + [k: string]: Array< + SyncAcquireResponseDeploymentTargetReleaseExtend | string + >; + }; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Management permissions configuration for stack management access */ -export type SyncAcquireResponseDeploymentHostUnion1 = - | SyncAcquireResponseDeploymentHost1 - | any - | string; +export type SyncAcquireResponseDeploymentTargetReleaseManagementUnion = + | SyncAcquireResponseDeploymentTargetReleaseManagement1 + | SyncAcquireResponseDeploymentTargetReleaseManagement2 + | SyncAcquireResponseDeploymentTargetReleaseManagementEnum; /** - * Reference to a Kubernetes Secret + * AWS-specific binding specification */ -export type SyncAcquireResponseDeploymentPasswordSecretNameSecretRef = { - key: string; - name: string; +export type SyncAcquireResponseDeploymentTargetReleaseProfileAwResource = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; }; -export type SyncAcquireResponseDeploymentPasswordSecretName = { +/** + * AWS-specific binding specification + */ +export type SyncAcquireResponseDeploymentTargetReleaseProfileAwStack = { /** - * Reference to a Kubernetes Secret + * Optional condition for additional filtering (rare) */ - secretRef: SyncAcquireResponseDeploymentPasswordSecretNameSecretRef; + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Generic binding configuration for permissions */ -export type SyncAcquireResponseDeploymentPasswordSecretNameUnion = - | SyncAcquireResponseDeploymentPasswordSecretName - | any - | string; - -/** - * Reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentPortSecretRef2 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentPort2 = { +export type SyncAcquireResponseDeploymentTargetReleaseProfileAwBinding = { /** - * Reference to a Kubernetes Secret + * AWS-specific binding specification */ - secretRef: SyncAcquireResponseDeploymentPortSecretRef2; + resource?: + | SyncAcquireResponseDeploymentTargetReleaseProfileAwResource + | undefined; + /** + * AWS-specific binding specification + */ + stack?: SyncAcquireResponseDeploymentTargetReleaseProfileAwStack | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * IAM effect. Defaults to Allow. */ -export type SyncAcquireResponseDeploymentPortUnion2 = - | SyncAcquireResponseDeploymentPort2 - | number - | any; - +export const SyncAcquireResponseDeploymentTargetReleaseProfileEffect = { + Allow: "Allow", + Deny: "Deny", +} as const; /** - * Reference to a Kubernetes Secret + * IAM effect. Defaults to Allow. */ -export type SyncAcquireResponseDeploymentUsernameSecretRef2 = { - key: string; - name: string; -}; +export type SyncAcquireResponseDeploymentTargetReleaseProfileEffect = + ClosedEnum; -export type SyncAcquireResponseDeploymentUsername2 = { +/** + * Grant permissions for a specific cloud platform + */ +export type SyncAcquireResponseDeploymentTargetReleaseProfileAwGrant = { /** - * Reference to a Kubernetes Secret + * AWS IAM actions (only for AWS) */ - secretRef: SyncAcquireResponseDeploymentUsernameSecretRef2; + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentUsernameUnion2 = - | SyncAcquireResponseDeploymentUsername2 - | any - | string; - -export const SyncAcquireResponseDeploymentTypePostgres2 = { - Postgres: "postgres", -} as const; -export type SyncAcquireResponseDeploymentTypePostgres2 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypePostgres2 ->; - -/** - * GCP Cloud SQL binding. + * AWS-specific platform permission configuration */ -export type SyncAcquireResponseDeploymentExternalBindingsCloudSQL = { +export type SyncAcquireResponseDeploymentTargetReleaseProfileAw = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Generic binding configuration for permissions */ - database?: - | SyncAcquireResponseDeploymentDatabase3 - | any - | string - | null - | undefined; + binding: SyncAcquireResponseDeploymentTargetReleaseProfileAwBinding; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Short admin-facing description of why this entry exists. */ - host?: SyncAcquireResponseDeploymentHost1 | any | string | null | undefined; + description?: string | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * IAM effect. Defaults to Allow. */ - passwordSecretName?: - | SyncAcquireResponseDeploymentPasswordSecretName - | any - | string - | null - | undefined; + effect?: SyncAcquireResponseDeploymentTargetReleaseProfileEffect | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Grant permissions for a specific cloud platform */ - port?: SyncAcquireResponseDeploymentPort2 | number | any | null | undefined; + grant: SyncAcquireResponseDeploymentTargetReleaseProfileAwGrant; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Stable admin-facing label for this permission entry. */ - username?: - | SyncAcquireResponseDeploymentUsername2 - | any - | string - | null - | undefined; - service: "cloud-sql"; - type: SyncAcquireResponseDeploymentTypePostgres2; + label?: string | null | undefined; }; /** - * Reference to a Kubernetes Secret + * Azure-specific binding specification */ -export type SyncAcquireResponseDeploymentClusterEndpointSecretRef = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentClusterEndpoint = { +export type SyncAcquireResponseDeploymentTargetReleaseProfileAzureResource = { /** - * Reference to a Kubernetes Secret + * Scope (subscription/resource group/resource level) */ - secretRef: SyncAcquireResponseDeploymentClusterEndpointSecretRef; + scope: string; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Azure-specific binding specification */ -export type SyncAcquireResponseDeploymentClusterEndpointUnion = - | SyncAcquireResponseDeploymentClusterEndpoint - | any - | string; +export type SyncAcquireResponseDeploymentTargetReleaseProfileAzureStack = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; /** - * Reference to a Kubernetes Secret + * Generic binding configuration for permissions */ -export type SyncAcquireResponseDeploymentDatabaseSecretRef2 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentDatabase2 = { +export type SyncAcquireResponseDeploymentTargetReleaseProfileAzureBinding = { /** - * Reference to a Kubernetes Secret + * Azure-specific binding specification */ - secretRef: SyncAcquireResponseDeploymentDatabaseSecretRef2; + resource?: + | SyncAcquireResponseDeploymentTargetReleaseProfileAzureResource + | undefined; + /** + * Azure-specific binding specification + */ + stack?: + | SyncAcquireResponseDeploymentTargetReleaseProfileAzureStack + | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Grant permissions for a specific cloud platform */ -export type SyncAcquireResponseDeploymentDatabaseUnion1 = - | SyncAcquireResponseDeploymentDatabase2 - | any - | string; +export type SyncAcquireResponseDeploymentTargetReleaseProfileAzureGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; /** - * Reference to a Kubernetes Secret + * Azure-specific platform permission configuration */ -export type SyncAcquireResponseDeploymentPasswordSecretArnSecretRef = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentPasswordSecretArn = { +export type SyncAcquireResponseDeploymentTargetReleaseProfileAzure = { /** - * Reference to a Kubernetes Secret + * Generic binding configuration for permissions */ - secretRef: SyncAcquireResponseDeploymentPasswordSecretArnSecretRef; + binding: SyncAcquireResponseDeploymentTargetReleaseProfileAzureBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncAcquireResponseDeploymentTargetReleaseProfileAzureGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * GCP IAM condition */ -export type SyncAcquireResponseDeploymentPasswordSecretArnUnion = - | SyncAcquireResponseDeploymentPasswordSecretArn - | any - | string; +export type SyncAcquireResponseDeploymentTargetReleaseProfileConditionResource = + { + expression: string; + title: string; + }; + +export type SyncAcquireResponseDeploymentTargetReleaseProfileResourceConditionUnion = + | SyncAcquireResponseDeploymentTargetReleaseProfileConditionResource + | any; /** - * Reference to a Kubernetes Secret + * GCP-specific binding specification */ -export type SyncAcquireResponseDeploymentPortSecretRef1 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentPort1 = { +export type SyncAcquireResponseDeploymentTargetReleaseProfileGcpResource = { + condition?: + | SyncAcquireResponseDeploymentTargetReleaseProfileConditionResource + | any + | null + | undefined; /** - * Reference to a Kubernetes Secret + * Scope (project/resource level) */ - secretRef: SyncAcquireResponseDeploymentPortSecretRef1; + scope: string; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * GCP IAM condition */ -export type SyncAcquireResponseDeploymentPortUnion1 = - | SyncAcquireResponseDeploymentPort1 - | number +export type SyncAcquireResponseDeploymentTargetReleaseProfileCondition = { + expression: string; + title: string; +}; + +export type SyncAcquireResponseDeploymentTargetReleaseProfileConditionUnion = + | SyncAcquireResponseDeploymentTargetReleaseProfileCondition | any; /** - * Reference to a Kubernetes Secret + * GCP-specific binding specification */ -export type SyncAcquireResponseDeploymentUsernameSecretRef1 = { - key: string; - name: string; +export type SyncAcquireResponseDeploymentTargetReleaseProfileGcpStack = { + condition?: + | SyncAcquireResponseDeploymentTargetReleaseProfileCondition + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; }; -export type SyncAcquireResponseDeploymentUsername1 = { +/** + * Generic binding configuration for permissions + */ +export type SyncAcquireResponseDeploymentTargetReleaseProfileGcpBinding = { /** - * Reference to a Kubernetes Secret + * GCP-specific binding specification */ - secretRef: SyncAcquireResponseDeploymentUsernameSecretRef1; + resource?: + | SyncAcquireResponseDeploymentTargetReleaseProfileGcpResource + | undefined; + /** + * GCP-specific binding specification + */ + stack?: SyncAcquireResponseDeploymentTargetReleaseProfileGcpStack | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Grant permissions for a specific cloud platform */ -export type SyncAcquireResponseDeploymentUsernameUnion1 = - | SyncAcquireResponseDeploymentUsername1 - | any - | string; +export type SyncAcquireResponseDeploymentTargetReleaseProfileGcpGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; -export const SyncAcquireResponseDeploymentTypePostgres1 = { - Postgres: "postgres", -} as const; -export type SyncAcquireResponseDeploymentTypePostgres1 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypePostgres1 ->; +/** + * GCP-specific platform permission configuration + */ +export type SyncAcquireResponseDeploymentTargetReleaseProfileGcp = { + /** + * Generic binding configuration for permissions + */ + binding: SyncAcquireResponseDeploymentTargetReleaseProfileGcpBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncAcquireResponseDeploymentTargetReleaseProfileGcpGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; /** - * AWS Aurora Serverless v2 binding. + * Platform-specific permission configurations */ -export type SyncAcquireResponseDeploymentExternalBindingsAurora = { +export type SyncAcquireResponseDeploymentTargetReleaseProfilePlatforms = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * AWS permission configurations */ - clusterEndpoint?: - | SyncAcquireResponseDeploymentClusterEndpoint - | any - | string + aws?: + | Array | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Azure permission configurations */ - database?: - | SyncAcquireResponseDeploymentDatabase2 - | any - | string + azure?: + | Array | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * GCP permission configurations */ - passwordSecretArn?: - | SyncAcquireResponseDeploymentPasswordSecretArn - | any - | string + gcp?: + | Array | null | undefined; +}; + +/** + * A permission set that can be applied across different cloud platforms + */ +export type SyncAcquireResponseDeploymentTargetReleaseProfile = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Human-readable description of what this permission set allows */ - port?: SyncAcquireResponseDeploymentPort1 | number | any | null | undefined; + description: string; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Unique identifier for the permission set (e.g., "storage/data-read") */ - username?: - | SyncAcquireResponseDeploymentUsername1 - | any - | string - | null - | undefined; - service: "aurora"; - type: SyncAcquireResponseDeploymentTypePostgres1; + id: string; + /** + * Platform-specific permission configurations + */ + platforms: SyncAcquireResponseDeploymentTargetReleaseProfilePlatforms; }; /** - * Connection details for a Postgres database, one variant per backend. + * Reference to a permission set - either by name or inline definition */ -export type SyncAcquireResponseDeploymentExternalBindingsUnion6 = - | SyncAcquireResponseDeploymentExternalBindingsAurora - | SyncAcquireResponseDeploymentExternalBindingsCloudSQL - | SyncAcquireResponseDeploymentExternalBindingsFlexibleServer - | SyncAcquireResponseDeploymentExternalBindingsExternal - | SyncAcquireResponseDeploymentExternalBindingsLocalPostgres; +export type SyncAcquireResponseDeploymentTargetReleaseProfileUnion = + | SyncAcquireResponseDeploymentTargetReleaseProfile + | string; /** - * Reference to a Kubernetes Secret + * Combined permissions configuration that contains both profiles and management */ -export type SyncAcquireResponseDeploymentDefaultDomainSecretRef = { - key: string; - name: string; +export type SyncAcquireResponseDeploymentTargetReleasePermissions = { + /** + * Management permissions configuration for stack management access + */ + management?: + | SyncAcquireResponseDeploymentTargetReleaseManagement1 + | SyncAcquireResponseDeploymentTargetReleaseManagement2 + | SyncAcquireResponseDeploymentTargetReleaseManagementEnum + | undefined; + /** + * Permission profiles that define access control for compute services + * + * @remarks + * Key is the profile name, value is the permission configuration + */ + profiles: { + [k: string]: { + [k: string]: Array< + SyncAcquireResponseDeploymentTargetReleaseProfile | string + >; + }; + }; }; -export type SyncAcquireResponseDeploymentDefaultDomain = { +/** + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + */ +export type SyncAcquireResponseDeploymentTargetReleaseConfig = { /** - * Reference to a Kubernetes Secret + * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. */ - secretRef: SyncAcquireResponseDeploymentDefaultDomainSecretRef; + id: string; + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + type: string; + additionalProperties?: { [k: string]: any | null } | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Reference to a resource by its stable id and resource type. */ -export type SyncAcquireResponseDeploymentDefaultDomainUnion = - | SyncAcquireResponseDeploymentDefaultDomain - | any - | string; - -/** - * Reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentEnvironmentNameSecretRef = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentEnvironmentName = { +export type SyncAcquireResponseDeploymentTargetReleaseDependency = { + id: string; /** - * Reference to a Kubernetes Secret + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. */ - secretRef: SyncAcquireResponseDeploymentEnvironmentNameSecretRef; + type: string; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export type SyncAcquireResponseDeploymentEnvironmentNameUnion = - | SyncAcquireResponseDeploymentEnvironmentName - | any - | string; - +export const SyncAcquireResponseDeploymentTargetReleaseLifecycle = { + Frozen: "frozen", + Live: "live", +} as const; /** - * Reference to a Kubernetes Secret + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export type SyncAcquireResponseDeploymentResourceGroupNameSecretRef3 = { - key: string; - name: string; -}; +export type SyncAcquireResponseDeploymentTargetReleaseLifecycle = ClosedEnum< + typeof SyncAcquireResponseDeploymentTargetReleaseLifecycle +>; -export type SyncAcquireResponseDeploymentResourceGroupName3 = { +export type SyncAcquireResponseDeploymentTargetReleaseResources = { /** - * Reference to a Kubernetes Secret + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ - secretRef: SyncAcquireResponseDeploymentResourceGroupNameSecretRef3; + config: SyncAcquireResponseDeploymentTargetReleaseConfig; + /** + * Additional dependencies for this resource beyond those defined in the resource itself. + * + * @remarks + * The total dependencies are: resource.get_dependencies() + this list + */ + dependencies: Array; + /** + * Id of the boolean stack input that decides whether this resource is + * + * @remarks + * created at all. `None` means always create it. + * + * Set by `.enabled(input)` in the SDK. Setup emitters render the resource + * conditionally on the matching template variable, so a deployer who says no + * never gets the resource, its outputs, or anything derived from it. + */ + enabledWhen?: string | null | undefined; + /** + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ + lifecycle: SyncAcquireResponseDeploymentTargetReleaseLifecycle; + /** + * Enable remote bindings for this resource (BYOB use case). + * + * @remarks + * When true, binding params are synced to StackState's `remote_binding_params`. + * Default: false (prevents sensitive data in synced state). + */ + remoteAccess?: boolean | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Represents the target cloud platform. */ -export type SyncAcquireResponseDeploymentResourceGroupNameUnion3 = - | SyncAcquireResponseDeploymentResourceGroupName3 - | any - | string; - +export const SyncAcquireResponseDeploymentTargetReleaseSupportedPlatform = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", +} as const; /** - * Reference to a Kubernetes Secret + * Represents the target cloud platform. */ -export type SyncAcquireResponseDeploymentResourceIdSecretRef = { - key: string; - name: string; -}; +export type SyncAcquireResponseDeploymentTargetReleaseSupportedPlatform = + ClosedEnum< + typeof SyncAcquireResponseDeploymentTargetReleaseSupportedPlatform + >; -export type SyncAcquireResponseDeploymentResourceId = { +/** + * A bag of resources, unaware of any cloud. + */ +export type SyncAcquireResponseDeploymentTargetReleaseStack = { /** - * Reference to a Kubernetes Secret + * Unique identifier for the stack */ - secretRef: SyncAcquireResponseDeploymentResourceIdSecretRef; + id: string; + /** + * Input definitions required before setup or deployment can proceed. + */ + inputs?: Array | undefined; + /** + * Combined permissions configuration that contains both profiles and management + */ + permissions?: + | SyncAcquireResponseDeploymentTargetReleasePermissions + | undefined; + /** + * Map of resource IDs to their configurations and lifecycle settings + */ + resources: { + [k: string]: SyncAcquireResponseDeploymentTargetReleaseResources; + }; + /** + * Which platforms this stack supports. When None, all platforms are supported. + */ + supportedPlatforms?: + | Array + | null + | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, + * Release metadata * * @remarks - * or a reference to a Kubernetes Secret + * + * Identifies a specific release version and includes the stack definition. + * The deployment engine uses this to track which release is currently deployed + * and which is the target. */ -export type SyncAcquireResponseDeploymentResourceIdUnion = - | SyncAcquireResponseDeploymentResourceId - | any - | string; +export type SyncAcquireResponseDeploymentTargetRelease = { + /** + * Short description of the release + */ + description?: string | null | undefined; + /** + * Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no + * + * @remarks + * Alien-assigned release — the platform resolves a release from `version`. + */ + releaseId?: string | null | undefined; + /** + * A bag of resources, unaware of any cloud. + */ + stack: SyncAcquireResponseDeploymentTargetReleaseStack; + /** + * Version string (e.g., 2.1.0) + */ + version?: string | null | undefined; +}; + +export type SyncAcquireResponseDeploymentTargetReleaseUnion = + | SyncAcquireResponseDeploymentTargetRelease + | any; /** - * Reference to a Kubernetes Secret + * Current deployment state (includes releases) */ -export type SyncAcquireResponseDeploymentStaticIpSecretRef = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentStaticIp = { +export type SyncAcquireResponseDeploymentCurrent = { + currentRelease?: + | SyncAcquireResponseDeploymentCurrentRelease + | any + | null + | undefined; + environmentInfo?: + | SyncAcquireResponseDeploymentEnvironmentInfoGcp + | SyncAcquireResponseDeploymentEnvironmentInfoAzure + | SyncAcquireResponseDeploymentEnvironmentInfoLocal + | SyncAcquireResponseDeploymentEnvironmentInfoAws + | SyncAcquireResponseDeploymentEnvironmentInfoTest + | any + | null + | undefined; + error?: SyncAcquireResponseDeploymentError | any | null | undefined; /** - * Reference to a Kubernetes Secret + * Represents the target cloud platform. */ - secretRef: SyncAcquireResponseDeploymentStaticIpSecretRef; + platform: SyncAcquireResponseDeploymentCurrentPlatform; + /** + * Protocol version for cross-actor compatibility. + * + * @remarks + * All actors (manager, push client, agent) check this before stepping. + * Mismatched versions produce a clear error instead of silent corruption. + * See docs/02-manager/10-deployment-protocol.md. + */ + protocolVersion: number; + /** + * Whether a retry has been requested for a failed deployment + * + * @remarks + * When true and status is a failed state, the deployment system will retry failed resources + */ + retryRequested?: boolean | undefined; + runtimeMetadata?: + | SyncAcquireResponseDeploymentRuntimeMetadata + | any + | null + | undefined; + stackState?: SyncAcquireResponseDeploymentStackState | any | null | undefined; + /** + * Deployment status in the deployment lifecycle. + * + * @remarks + * + * For observe-only deployments with no release or stack state, `Running` + * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; + * resource health comes from inventory and resource heartbeat data. + */ + status: SyncAcquireResponseDeploymentStatus; + targetRelease?: + | SyncAcquireResponseDeploymentTargetRelease + | any + | null + | undefined; }; -export const SyncAcquireResponseDeploymentTypeContainerAppsEnvironment = { - ContainerAppsEnvironment: "container_apps_environment", -} as const; -export type SyncAcquireResponseDeploymentTypeContainerAppsEnvironment = - ClosedEnum; - /** - * Binding configuration for a pre-existing Azure Container Apps Environment. - * - * @remarks - * - * Used when deploying to an existing environment instead of having Alien provision one. - * This is useful for shared environments (e.g., test infrastructure) or enterprise - * setups where environments are managed by a separate team. + * Represents the target cloud platform. */ -export type SyncAcquireResponseDeploymentExternalBindingsContainerAppsEnvironment = - { - /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ - defaultDomain?: - | SyncAcquireResponseDeploymentDefaultDomain - | any - | string - | null - | undefined; - /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ - environmentName?: - | SyncAcquireResponseDeploymentEnvironmentName - | any - | string - | null - | undefined; - /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ - resourceGroupName?: - | SyncAcquireResponseDeploymentResourceGroupName3 - | any - | string - | null - | undefined; - /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ - resourceId?: - | SyncAcquireResponseDeploymentResourceId - | any - | string - | null - | undefined; - staticIp?: any | null | undefined; - type: SyncAcquireResponseDeploymentTypeContainerAppsEnvironment; - }; - +export const SyncAcquireResponseDeploymentBasePlatformEnum = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", +} as const; /** - * Reference to a Kubernetes Secret + * Represents the target cloud platform. */ -export type SyncAcquireResponseDeploymentDataDirSecretRef3 = { - key: string; - name: string; -}; +export type SyncAcquireResponseDeploymentBasePlatformEnum = ClosedEnum< + typeof SyncAcquireResponseDeploymentBasePlatformEnum +>; -export type SyncAcquireResponseDeploymentDataDir3 = { - /** - * Reference to a Kubernetes Secret - */ - secretRef: SyncAcquireResponseDeploymentDataDirSecretRef3; -}; +export type SyncAcquireResponseDeploymentBasePlatformUnion = + | SyncAcquireResponseDeploymentBasePlatformEnum + | any; /** - * Represents a value that can be either a concrete value, a template expression, + * Configuration for a single container worker cluster. * * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentDataDirUnion2 = - | SyncAcquireResponseDeploymentDataDir3 - | any - | string; - -export const SyncAcquireResponseDeploymentTypeVault5 = { - Vault: "vault", -} as const; -export type SyncAcquireResponseDeploymentTypeVault5 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeVault5 ->; - -/** - * Local development vault binding (for testing/development) + * + * Contains the cluster ID and management token needed to interact with + * the managed container control plane API for container operations. */ -export type SyncAcquireResponseDeploymentExternalBindingsLocalVault = { +export type SyncAcquireResponseDeploymentClusters = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Cluster ID (deterministic: workspace/project/deployment/resourceid) */ - dataDir?: - | SyncAcquireResponseDeploymentDataDir3 - | any - | string - | null - | undefined; + clusterId: string; /** - * The vault name for local storage + * Management token for API access (hm_...) + * + * @remarks + * Used by alien-deployment controllers to create/update containers */ - vaultName: string; - service: "local-vault"; - type: SyncAcquireResponseDeploymentTypeVault5; + managementToken: string; }; /** - * Reference to a Kubernetes Secret + * AWS Horizon machine image catalog. */ -export type SyncAcquireResponseDeploymentNamespaceSecretRef2 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentNamespace2 = { +export type SyncAcquireResponseDeploymentHorizonMachineImageAws = { /** - * Reference to a Kubernetes Secret + * AMI IDs by architecture, then AWS region. */ - secretRef: SyncAcquireResponseDeploymentNamespaceSecretRef2; + amis: { [k: string]: { [k: string]: string } }; }; -/** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentNamespaceUnion2 = - | SyncAcquireResponseDeploymentNamespace2 - | any - | string; +export type SyncAcquireResponseDeploymentHorizonMachineImageAwsUnion = + | SyncAcquireResponseDeploymentHorizonMachineImageAws + | any; /** - * Reference to a Kubernetes Secret + * Azure Horizon machine image entry. */ -export type SyncAcquireResponseDeploymentVaultPrefixSecretRef3 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentVaultPrefix3 = { +export type SyncAcquireResponseDeploymentAzureImages = { /** - * Reference to a Kubernetes Secret + * Azure Compute Gallery image version ID. */ - secretRef: SyncAcquireResponseDeploymentVaultPrefixSecretRef3; + imageVersionId: string; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Azure Horizon machine image catalog. */ -export type SyncAcquireResponseDeploymentVaultPrefixUnion3 = - | SyncAcquireResponseDeploymentVaultPrefix3 - | any - | string; +export type SyncAcquireResponseDeploymentHorizonMachineImageAzure = { + /** + * Images by architecture. + */ + images: { [k: string]: SyncAcquireResponseDeploymentAzureImages }; +}; -export const SyncAcquireResponseDeploymentTypeVault4 = { - Vault: "vault", -} as const; -export type SyncAcquireResponseDeploymentTypeVault4 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeVault4 ->; +export type SyncAcquireResponseDeploymentHorizonMachineImageAzureUnion = + | SyncAcquireResponseDeploymentHorizonMachineImageAzure + | any; /** - * Kubernetes Secrets vault binding configuration + * Base image metadata for the Horizon machine image. */ -export type SyncAcquireResponseDeploymentExternalBindingsKubernetesSecret = { +export type SyncAcquireResponseDeploymentBaseImage = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Base OS image name. */ - namespace?: - | SyncAcquireResponseDeploymentNamespace2 - | any - | string - | null - | undefined; + name: string; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Base OS image version or channel. */ - vaultPrefix?: - | SyncAcquireResponseDeploymentVaultPrefix3 - | any - | string - | null - | undefined; - service: "kubernetes-secret"; - type: SyncAcquireResponseDeploymentTypeVault4; + version: string; }; /** - * Reference to a Kubernetes Secret + * GCP Horizon machine image entry. */ -export type SyncAcquireResponseDeploymentVaultNameSecretRef = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentVaultName = { +export type SyncAcquireResponseDeploymentGcpImages = { /** - * Reference to a Kubernetes Secret + * Source image self link or image-family URL. */ - secretRef: SyncAcquireResponseDeploymentVaultNameSecretRef; + sourceImage: string; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * GCP Horizon machine image catalog. */ -export type SyncAcquireResponseDeploymentVaultNameUnion = - | SyncAcquireResponseDeploymentVaultName - | any - | string; +export type SyncAcquireResponseDeploymentHorizonMachineImageGcp = { + /** + * Images by architecture. + */ + images: { [k: string]: SyncAcquireResponseDeploymentGcpImages }; +}; -export const SyncAcquireResponseDeploymentTypeVault3 = { - Vault: "vault", -} as const; -export type SyncAcquireResponseDeploymentTypeVault3 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeVault3 ->; +export type SyncAcquireResponseDeploymentHorizonMachineImageGcpUnion = + | SyncAcquireResponseDeploymentHorizonMachineImageGcp + | any; /** - * Azure Key Vault binding configuration + * Download artifact for one horizond release platform. */ -export type SyncAcquireResponseDeploymentExternalBindingsKeyVault = { +export type SyncAcquireResponseDeploymentHorizondArtifacts = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * SHA-256 digest for the artifact payload. */ - vaultName?: - | SyncAcquireResponseDeploymentVaultName - | any - | string - | null - | undefined; - service: "key-vault"; - type: SyncAcquireResponseDeploymentTypeVault3; -}; - -/** - * Reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentVaultPrefixSecretRef2 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentVaultPrefix2 = { + sha256: string; /** - * Reference to a Kubernetes Secret + * HTTPS URL for the artifact. */ - secretRef: SyncAcquireResponseDeploymentVaultPrefixSecretRef2; + url: string; }; /** - * Represents a value that can be either a concrete value, a template expression, + * Horizon machine image catalog. * * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentVaultPrefixUnion2 = - | SyncAcquireResponseDeploymentVaultPrefix2 - | any - | string; - -export const SyncAcquireResponseDeploymentTypeVault2 = { - Vault: "vault", -} as const; -export type SyncAcquireResponseDeploymentTypeVault2 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeVault2 ->; - -/** - * GCP Secret Manager vault binding configuration + * + * Platform resolves concrete provider images from this catalog during rollout. */ -export type SyncAcquireResponseDeploymentExternalBindingsSecretManager = { +export type SyncAcquireResponseDeploymentHorizonMachineImage = { + aws?: + | SyncAcquireResponseDeploymentHorizonMachineImageAws + | any + | null + | undefined; + azure?: + | SyncAcquireResponseDeploymentHorizonMachineImageAzure + | any + | null + | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Base image metadata for the Horizon machine image. */ - vaultPrefix?: - | SyncAcquireResponseDeploymentVaultPrefix2 + baseImage: SyncAcquireResponseDeploymentBaseImage; + /** + * Logical image channel, such as prod, staging, or canary. + */ + channel: string; + /** + * Image manifest creation timestamp. + */ + createdAt: string; + gcp?: + | SyncAcquireResponseDeploymentHorizonMachineImageGcp | any - | string | null | undefined; - service: "secret-manager"; - type: SyncAcquireResponseDeploymentTypeVault2; -}; - -/** - * Reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentVaultPrefixSecretRef1 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentVaultPrefix1 = { /** - * Reference to a Kubernetes Secret + * Git commit SHA used to build the image. */ - secretRef: SyncAcquireResponseDeploymentVaultPrefixSecretRef1; + gitSha: string; + /** + * Per-architecture horizond artifacts by release-platform key. + */ + horizondArtifacts: { + [k: string]: SyncAcquireResponseDeploymentHorizondArtifacts; + }; + /** + * horizond daemon version baked into the image. + */ + horizondVersion: string; + /** + * Published immutable machine image version. + */ + machineImageVersion: string; }; -/** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentVaultPrefixUnion1 = - | SyncAcquireResponseDeploymentVaultPrefix1 - | any - | string; +export type SyncAcquireResponseDeploymentHorizonMachineImageUnion = + | SyncAcquireResponseDeploymentHorizonMachineImage + | any; -export const SyncAcquireResponseDeploymentTypeVault1 = { - Vault: "vault", +export const SyncAcquireResponseDeploymentComputeBackendType = { + Horizon: "horizon", } as const; -export type SyncAcquireResponseDeploymentTypeVault1 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeVault1 +export type SyncAcquireResponseDeploymentComputeBackendType = ClosedEnum< + typeof SyncAcquireResponseDeploymentComputeBackendType >; /** - * AWS SSM Parameter Store vault binding configuration + * Compute backend for Container and Worker resources. + * + * @remarks + * + * Determines how compute workloads are orchestrated on cloud platforms. + * When None, the platform default is used for cloud platforms. */ -export type SyncAcquireResponseDeploymentExternalBindingsParameterStore = { +export type SyncAcquireResponseDeploymentComputeBackendHorizon = { /** - * Represents a value that can be either a concrete value, a template expression, + * Cluster configurations (one per ComputeCluster resource) * * @remarks - * or a reference to a Kubernetes Secret + * Key: ComputeCluster resource ID from stack + * Value: Cluster ID and management token for that cluster */ - vaultPrefix?: - | SyncAcquireResponseDeploymentVaultPrefix1 + clusters: { [k: string]: SyncAcquireResponseDeploymentClusters }; + horizonMachineImage?: + | SyncAcquireResponseDeploymentHorizonMachineImage | any - | string | null | undefined; - service: "parameter-store"; - type: SyncAcquireResponseDeploymentTypeVault1; + /** + * Horizon control-plane API base URL. + */ + url: string; + type: SyncAcquireResponseDeploymentComputeBackendType; }; -/** - * Represents a vault binding for secure secret management - */ -export type SyncAcquireResponseDeploymentExternalBindingsUnion5 = - | SyncAcquireResponseDeploymentExternalBindingsParameterStore - | SyncAcquireResponseDeploymentExternalBindingsSecretManager - | SyncAcquireResponseDeploymentExternalBindingsKeyVault - | SyncAcquireResponseDeploymentExternalBindingsKubernetesSecret - | SyncAcquireResponseDeploymentExternalBindingsLocalVault; +export type SyncAcquireResponseDeploymentComputeBackendUnion = + | SyncAcquireResponseDeploymentComputeBackendHorizon + | any; /** - * Reference to a Kubernetes Secret + * Certificate status in the certificate lifecycle */ -export type SyncAcquireResponseDeploymentDataDirSecretRef2 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentDataDir2 = { - /** - * Reference to a Kubernetes Secret - */ - secretRef: SyncAcquireResponseDeploymentDataDirSecretRef2; -}; - +export const SyncAcquireResponseDeploymentAliasCertificateStatus = { + Pending: "pending", + Issued: "issued", + Renewing: "renewing", + RenewalFailed: "renewal-failed", + Failed: "failed", + Deleting: "deleting", +} as const; /** - * Reference to a Kubernetes Secret + * Certificate status in the certificate lifecycle */ -export type SyncAcquireResponseDeploymentRegistryUrlSecretRef = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentRegistryUrl = { - /** - * Reference to a Kubernetes Secret - */ - secretRef: SyncAcquireResponseDeploymentRegistryUrlSecretRef; -}; +export type SyncAcquireResponseDeploymentAliasCertificateStatus = ClosedEnum< + typeof SyncAcquireResponseDeploymentAliasCertificateStatus +>; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * DNS record status in the DNS lifecycle */ -export type SyncAcquireResponseDeploymentRegistryUrlUnion = - | SyncAcquireResponseDeploymentRegistryUrl - | any - | string; - -export const SyncAcquireResponseDeploymentTypeArtifactRegistry4 = { - ArtifactRegistry: "artifact_registry", +export const SyncAcquireResponseDeploymentAliasDnsStatus = { + Pending: "pending", + Active: "active", + Updating: "updating", + Deleting: "deleting", + Failed: "failed", } as const; -export type SyncAcquireResponseDeploymentTypeArtifactRegistry4 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeArtifactRegistry4 +/** + * DNS record status in the DNS lifecycle + */ +export type SyncAcquireResponseDeploymentAliasDnsStatus = ClosedEnum< + typeof SyncAcquireResponseDeploymentAliasDnsStatus >; /** - * Local container registry binding configuration. + * Certificate and DNS metadata for a managed hostname. * * @remarks * - * The local registry runs on localhost only and does not require authentication. - * Security boundary is the OS process isolation on the customer's machine. - * External image access is secured by the manager's registry proxy (deployment tokens). + * Includes decrypted certificate data for issued certificates. + * Private keys are deployment-scoped secrets (like environment variables). */ -export type SyncAcquireResponseDeploymentExternalBindingsLocal = { +export type SyncAcquireResponseDeploymentAlias = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Full PEM certificate chain (only present if status is "issued"). */ - dataDir?: any | null | undefined; + certificateChain?: string | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, + * Certificate ID (for tracking/logging). + */ + certificateId: string; + /** + * Certificate status in the certificate lifecycle + */ + certificateStatus: SyncAcquireResponseDeploymentAliasCertificateStatus; + /** + * Last DNS error message. Present when DNS previously failed, even if status * * @remarks - * or a reference to a Kubernetes Secret + * was reset to pending for retry. Used to surface actionable error context + * in WaitingForDns failure messages. */ - registryUrl?: - | SyncAcquireResponseDeploymentRegistryUrl - | any - | string - | null - | undefined; - service: "local"; - type: SyncAcquireResponseDeploymentTypeArtifactRegistry4; -}; - -/** - * Reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentPullServiceAccountEmailSecretRef = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentPullServiceAccountEmail = { + dnsError?: string | null | undefined; /** - * Reference to a Kubernetes Secret + * DNS record status in the DNS lifecycle */ - secretRef: SyncAcquireResponseDeploymentPullServiceAccountEmailSecretRef; -}; - -/** - * Reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentPushServiceAccountEmailSecretRef = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentPushServiceAccountEmail = { + dnsStatus: SyncAcquireResponseDeploymentAliasDnsStatus; /** - * Reference to a Kubernetes Secret + * Fully qualified domain name. */ - secretRef: SyncAcquireResponseDeploymentPushServiceAccountEmailSecretRef; -}; - -/** - * Reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentRepositoryNameSecretRef = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentRepositoryName = { + fqdn: string; /** - * Reference to a Kubernetes Secret + * ISO 8601 timestamp when certificate was issued (for renewal detection). */ - secretRef: SyncAcquireResponseDeploymentRepositoryNameSecretRef; + issuedAt?: string | null | undefined; + /** + * Decrypted private key (only present if status is "issued"). + */ + privateKey?: string | null | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Certificate status in the certificate lifecycle */ -export type SyncAcquireResponseDeploymentRepositoryNameUnion = - | SyncAcquireResponseDeploymentRepositoryName - | any - | string; - -export const SyncAcquireResponseDeploymentTypeArtifactRegistry3 = { - ArtifactRegistry: "artifact_registry", +export const SyncAcquireResponseDeploymentCertificateStatus = { + Pending: "pending", + Issued: "issued", + Renewing: "renewing", + RenewalFailed: "renewal-failed", + Failed: "failed", + Deleting: "deleting", } as const; -export type SyncAcquireResponseDeploymentTypeArtifactRegistry3 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeArtifactRegistry3 ->; - /** - * Google Artifact Registry binding configuration + * Certificate status in the certificate lifecycle */ -export type SyncAcquireResponseDeploymentExternalBindingsGar = { - pullServiceAccountEmail?: any | null | undefined; - pushServiceAccountEmail?: any | null | undefined; - /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ - repositoryName?: - | SyncAcquireResponseDeploymentRepositoryName - | any - | string - | null - | undefined; - service: "gar"; - type: SyncAcquireResponseDeploymentTypeArtifactRegistry3; -}; +export type SyncAcquireResponseDeploymentCertificateStatus = ClosedEnum< + typeof SyncAcquireResponseDeploymentCertificateStatus +>; /** - * Reference to a Kubernetes Secret + * DNS record status in the DNS lifecycle */ -export type SyncAcquireResponseDeploymentRegistryNameSecretRef = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentRegistryName = { - /** - * Reference to a Kubernetes Secret - */ - secretRef: SyncAcquireResponseDeploymentRegistryNameSecretRef; -}; - +export const SyncAcquireResponseDeploymentDnsStatus = { + Pending: "pending", + Active: "active", + Updating: "updating", + Deleting: "deleting", + Failed: "failed", +} as const; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * DNS record status in the DNS lifecycle */ -export type SyncAcquireResponseDeploymentRegistryNameUnion = - | SyncAcquireResponseDeploymentRegistryName - | any - | string; +export type SyncAcquireResponseDeploymentDnsStatus = ClosedEnum< + typeof SyncAcquireResponseDeploymentDnsStatus +>; /** - * Reference to a Kubernetes Secret + * Certificate status in the certificate lifecycle */ -export type SyncAcquireResponseDeploymentRepositoryPrefixSecretRef2 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentRepositoryPrefix2 = { - /** - * Reference to a Kubernetes Secret - */ - secretRef: SyncAcquireResponseDeploymentRepositoryPrefixSecretRef2; -}; - +export const SyncAcquireResponseDeploymentEndpointsCertificateStatus = { + Pending: "pending", + Issued: "issued", + Renewing: "renewing", + RenewalFailed: "renewal-failed", + Failed: "failed", + Deleting: "deleting", +} as const; /** - * Reference to a Kubernetes Secret + * Certificate status in the certificate lifecycle */ -export type SyncAcquireResponseDeploymentResourceGroupNameSecretRef2 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentResourceGroupName2 = { - /** - * Reference to a Kubernetes Secret - */ - secretRef: SyncAcquireResponseDeploymentResourceGroupNameSecretRef2; -}; +export type SyncAcquireResponseDeploymentEndpointsCertificateStatus = + ClosedEnum; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * DNS record status in the DNS lifecycle */ -export type SyncAcquireResponseDeploymentResourceGroupNameUnion2 = - | SyncAcquireResponseDeploymentResourceGroupName2 - | any - | string; - -export const SyncAcquireResponseDeploymentTypeArtifactRegistry2 = { - ArtifactRegistry: "artifact_registry", +export const SyncAcquireResponseDeploymentEndpointsDnsStatus = { + Pending: "pending", + Active: "active", + Updating: "updating", + Deleting: "deleting", + Failed: "failed", } as const; -export type SyncAcquireResponseDeploymentTypeArtifactRegistry2 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeArtifactRegistry2 +/** + * DNS record status in the DNS lifecycle + */ +export type SyncAcquireResponseDeploymentEndpointsDnsStatus = ClosedEnum< + typeof SyncAcquireResponseDeploymentEndpointsDnsStatus >; /** - * Azure Container Registry binding configuration + * Certificate and DNS metadata for a managed hostname. + * + * @remarks + * + * Includes decrypted certificate data for issued certificates. + * Private keys are deployment-scoped secrets (like environment variables). */ -export type SyncAcquireResponseDeploymentExternalBindingsAcr = { +export type SyncAcquireResponseDeploymentEndpoints = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Full PEM certificate chain (only present if status is "issued"). */ - registryName?: - | SyncAcquireResponseDeploymentRegistryName - | any - | string - | null - | undefined; - repositoryPrefix?: any | null | undefined; + certificateChain?: string | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Certificate ID (for tracking/logging). */ - resourceGroupName?: - | SyncAcquireResponseDeploymentResourceGroupName2 - | any - | string - | null - | undefined; - service: "acr"; - type: SyncAcquireResponseDeploymentTypeArtifactRegistry2; -}; - -/** - * Reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentPullRoleArnSecretRef = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentPullRoleArn = { + certificateId: string; /** - * Reference to a Kubernetes Secret + * Certificate status in the certificate lifecycle */ - secretRef: SyncAcquireResponseDeploymentPullRoleArnSecretRef; -}; - -/** - * Reference to a Kubernetes Secret + certificateStatus: SyncAcquireResponseDeploymentEndpointsCertificateStatus; + /** + * Last DNS error message. Present when DNS previously failed, even if status + * + * @remarks + * was reset to pending for retry. Used to surface actionable error context + * in WaitingForDns failure messages. + */ + dnsError?: string | null | undefined; + /** + * DNS record status in the DNS lifecycle + */ + dnsStatus: SyncAcquireResponseDeploymentEndpointsDnsStatus; + /** + * Fully qualified domain name. + */ + fqdn: string; + /** + * ISO 8601 timestamp when certificate was issued (for renewal detection). + */ + issuedAt?: string | null | undefined; + /** + * Decrypted private key (only present if status is "issued"). + */ + privateKey?: string | null | undefined; +}; + +/** + * Certificate and DNS metadata for a public resource. + * + * @remarks + * + * The direct fields describe the primary endpoint hostname. `endpoints` + * contains endpoint-scoped metadata keyed by endpoint name. `aliases` contains + * additional managed hostnames that route directly to the primary endpoint. */ -export type SyncAcquireResponseDeploymentPushRoleArnSecretRef = { - key: string; +export type SyncAcquireResponseDeploymentDomainMetadataResources = { + /** + * Additional managed hostnames for the resource. + */ + aliases?: Array | undefined; + /** + * Full PEM certificate chain (only present if status is "issued"). + */ + certificateChain?: string | null | undefined; + /** + * Certificate ID (for tracking/logging). + */ + certificateId: string; + /** + * Certificate status in the certificate lifecycle + */ + certificateStatus: SyncAcquireResponseDeploymentCertificateStatus; + /** + * Last DNS error message. + */ + dnsError?: string | null | undefined; + /** + * DNS record status in the DNS lifecycle + */ + dnsStatus: SyncAcquireResponseDeploymentDnsStatus; + /** + * Endpoint-scoped metadata keyed by endpoint name. + */ + endpoints?: + | { [k: string]: SyncAcquireResponseDeploymentEndpoints } + | undefined; + /** + * Fully qualified domain name. + */ + fqdn: string; + /** + * ISO 8601 timestamp when certificate was issued (for renewal detection). + */ + issuedAt?: string | null | undefined; + /** + * Decrypted private key (only present if status is "issued"). + */ + privateKey?: string | null | undefined; +}; + +/** + * Domain metadata for auto-managed public resources (no private keys). + */ +export type SyncAcquireResponseDeploymentDomainMetadata = { + /** + * Base domain for auto-generated domains (e.g., "vpc.direct"). + */ + baseDomain: string; + /** + * Hosted zone ID for DNS records. + */ + hostedZoneId: string; + /** + * Deployment public subdomain (e.g., "k8f2j3"). + */ + publicSubdomain: string; + /** + * Metadata per resource ID. + */ + resources: { + [k: string]: SyncAcquireResponseDeploymentDomainMetadataResources; + }; +}; + +export type SyncAcquireResponseDeploymentDomainMetadataUnion = + | SyncAcquireResponseDeploymentDomainMetadata + | any; + +/** + * Type of environment variable + */ +export const SyncAcquireResponseDeploymentEnvironmentVariablesType = { + Plain: "plain", + Secret: "secret", +} as const; +/** + * Type of environment variable + */ +export type SyncAcquireResponseDeploymentEnvironmentVariablesType = ClosedEnum< + typeof SyncAcquireResponseDeploymentEnvironmentVariablesType +>; + +/** + * Environment variable for deployment + */ +export type SyncAcquireResponseDeploymentVariable = { + /** + * Variable name + */ name: string; + /** + * Target resource patterns (null = all resources, Some = wildcard patterns) + */ + targetResources?: Array | null | undefined; + /** + * Type of environment variable + */ + type: SyncAcquireResponseDeploymentEnvironmentVariablesType; + /** + * Variable value (decrypted - deployment has access to decryption keys) + */ + value: string; }; -export type SyncAcquireResponseDeploymentPushRoleArn = { +/** + * Snapshot of environment variables at a point in time + */ +export type SyncAcquireResponseDeploymentEnvironmentVariables = { /** - * Reference to a Kubernetes Secret + * ISO 8601 timestamp when snapshot was created */ - secretRef: SyncAcquireResponseDeploymentPushRoleArnSecretRef; + createdAt: string; + /** + * Deterministic hash of all variables (for change detection) + */ + hash: string; + /** + * Environment variables in the snapshot + */ + variables: Array; }; /** * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentRepositoryPrefixSecretRef1 = { +export type SyncAcquireResponseDeploymentApiKeySecretRef = { key: string; name: string; }; -export type SyncAcquireResponseDeploymentRepositoryPrefix1 = { +export type SyncAcquireResponseDeploymentApiKey = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncAcquireResponseDeploymentRepositoryPrefixSecretRef1; + secretRef: SyncAcquireResponseDeploymentApiKeySecretRef; }; /** @@ -7770,62 +7782,61 @@ export type SyncAcquireResponseDeploymentRepositoryPrefix1 = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentRepositoryPrefixUnion = - | SyncAcquireResponseDeploymentRepositoryPrefix1 +export type SyncAcquireResponseDeploymentApiKeyUnion = + | SyncAcquireResponseDeploymentApiKey | any | string; -export const SyncAcquireResponseDeploymentTypeArtifactRegistry1 = { - ArtifactRegistry: "artifact_registry", +export const SyncAcquireResponseDeploymentTypeAi = { + Ai: "ai", } as const; -export type SyncAcquireResponseDeploymentTypeArtifactRegistry1 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeArtifactRegistry1 +export type SyncAcquireResponseDeploymentTypeAi = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeAi >; /** - * AWS ECR (Elastic Container Registry) binding configuration + * External AI provider binding configuration (BYO-key). + * + * @remarks + * + * The operator-supplied secret rides inside the binding via + * `BindingValue`, so it is a literal on cloud platforms and gains + * Kubernetes SecretRef resolution for free (`extract_binding_secrets` walks + * the binding JSON for `secretRef`). */ -export type SyncAcquireResponseDeploymentExternalBindingsEcr = { - pullRoleArn?: any | null | undefined; - pushRoleArn?: any | null | undefined; +export type SyncAcquireResponseDeploymentExternalBindingsAi = { /** * Represents a value that can be either a concrete value, a template expression, * * @remarks * or a reference to a Kubernetes Secret */ - repositoryPrefix?: - | SyncAcquireResponseDeploymentRepositoryPrefix1 + apiKey?: + | SyncAcquireResponseDeploymentApiKey | any | string | null | undefined; - service: "ecr"; - type: SyncAcquireResponseDeploymentTypeArtifactRegistry1; + /** + * The external AI provider name (e.g., "openai", "anthropic") + */ + provider: string; + type: SyncAcquireResponseDeploymentTypeAi; }; -/** - * Service-type based artifact registry binding that supports multiple registry providers - */ -export type SyncAcquireResponseDeploymentExternalBindingsUnion4 = - | SyncAcquireResponseDeploymentExternalBindingsEcr - | SyncAcquireResponseDeploymentExternalBindingsAcr - | SyncAcquireResponseDeploymentExternalBindingsGar - | SyncAcquireResponseDeploymentExternalBindingsLocal; - /** * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentDataDirSecretRef1 = { +export type SyncAcquireResponseDeploymentDatabaseSecretRef6 = { key: string; name: string; }; -export type SyncAcquireResponseDeploymentDataDir1 = { +export type SyncAcquireResponseDeploymentDatabase6 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncAcquireResponseDeploymentDataDirSecretRef1; + secretRef: SyncAcquireResponseDeploymentDatabaseSecretRef6; }; /** @@ -7834,67 +7845,50 @@ export type SyncAcquireResponseDeploymentDataDir1 = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentDataDirUnion1 = - | SyncAcquireResponseDeploymentDataDir1 +export type SyncAcquireResponseDeploymentDatabaseUnion5 = + | SyncAcquireResponseDeploymentDatabase6 | any | string; /** * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentKeyPrefixSecretRef2 = { +export type SyncAcquireResponseDeploymentHostSecretRef4 = { key: string; name: string; }; -export type SyncAcquireResponseDeploymentKeyPrefix2 = { +export type SyncAcquireResponseDeploymentHost4 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncAcquireResponseDeploymentKeyPrefixSecretRef2; + secretRef: SyncAcquireResponseDeploymentHostSecretRef4; }; -export const SyncAcquireResponseDeploymentTypeKv5 = { - Kv: "kv", -} as const; -export type SyncAcquireResponseDeploymentTypeKv5 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeKv5 ->; - /** - * Local development KV binding configuration + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentExternalBindingsLocalKv = { - /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ - dataDir?: - | SyncAcquireResponseDeploymentDataDir1 - | any - | string - | null - | undefined; - keyPrefix?: any | null | undefined; - service: "local-kv"; - type: SyncAcquireResponseDeploymentTypeKv5; -}; +export type SyncAcquireResponseDeploymentHostUnion4 = + | SyncAcquireResponseDeploymentHost4 + | any + | string; /** * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentConnectionUrlSecretRef = { +export type SyncAcquireResponseDeploymentPortSecretRef5 = { key: string; name: string; }; -export type SyncAcquireResponseDeploymentConnectionUrl = { +export type SyncAcquireResponseDeploymentPort5 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncAcquireResponseDeploymentConnectionUrlSecretRef; + secretRef: SyncAcquireResponseDeploymentPortSecretRef5; }; /** @@ -7903,83 +7897,104 @@ export type SyncAcquireResponseDeploymentConnectionUrl = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentConnectionUrlUnion = - | SyncAcquireResponseDeploymentConnectionUrl - | any - | string; +export type SyncAcquireResponseDeploymentPortUnion5 = + | SyncAcquireResponseDeploymentPort5 + | number + | any; /** * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentDatabaseSecretRef1 = { +export type SyncAcquireResponseDeploymentUsernameSecretRef5 = { key: string; name: string; }; -export type SyncAcquireResponseDeploymentDatabase1 = { +export type SyncAcquireResponseDeploymentUsername5 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncAcquireResponseDeploymentDatabaseSecretRef1; + secretRef: SyncAcquireResponseDeploymentUsernameSecretRef5; }; /** - * Reference to a Kubernetes Secret + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentKeyPrefixSecretRef1 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentKeyPrefix1 = { - /** - * Reference to a Kubernetes Secret - */ - secretRef: SyncAcquireResponseDeploymentKeyPrefixSecretRef1; -}; +export type SyncAcquireResponseDeploymentUsernameUnion5 = + | SyncAcquireResponseDeploymentUsername5 + | any + | string; -export const SyncAcquireResponseDeploymentTypeKv4 = { - Kv: "kv", +export const SyncAcquireResponseDeploymentTypePostgres5 = { + Postgres: "postgres", } as const; -export type SyncAcquireResponseDeploymentTypeKv4 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeKv4 +export type SyncAcquireResponseDeploymentTypePostgres5 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypePostgres5 >; /** - * Redis KV binding configuration + * Local embedded Postgres binding. */ -export type SyncAcquireResponseDeploymentExternalBindingsRedis = { +export type SyncAcquireResponseDeploymentExternalBindingsLocalPostgres = { /** * Represents a value that can be either a concrete value, a template expression, * * @remarks * or a reference to a Kubernetes Secret */ - connectionUrl?: - | SyncAcquireResponseDeploymentConnectionUrl + database?: + | SyncAcquireResponseDeploymentDatabase6 | any | string | null | undefined; - database?: any | null | undefined; - keyPrefix?: any | null | undefined; - service: "redis"; - type: SyncAcquireResponseDeploymentTypeKv4; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + host?: SyncAcquireResponseDeploymentHost4 | any | string | null | undefined; + password: string; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + port?: SyncAcquireResponseDeploymentPort5 | number | any | null | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + username?: + | SyncAcquireResponseDeploymentUsername5 + | any + | string + | null + | undefined; + service: "local-postgres"; + type: SyncAcquireResponseDeploymentTypePostgres5; }; /** * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentAccountNameSecretRef2 = { +export type SyncAcquireResponseDeploymentDatabaseSecretRef5 = { key: string; name: string; }; -export type SyncAcquireResponseDeploymentAccountName2 = { +export type SyncAcquireResponseDeploymentDatabase5 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncAcquireResponseDeploymentAccountNameSecretRef2; + secretRef: SyncAcquireResponseDeploymentDatabaseSecretRef5; }; /** @@ -7988,24 +8003,24 @@ export type SyncAcquireResponseDeploymentAccountName2 = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentAccountNameUnion2 = - | SyncAcquireResponseDeploymentAccountName2 +export type SyncAcquireResponseDeploymentDatabaseUnion4 = + | SyncAcquireResponseDeploymentDatabase5 | any | string; /** * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentResourceGroupNameSecretRef1 = { +export type SyncAcquireResponseDeploymentHostSecretRef3 = { key: string; name: string; }; -export type SyncAcquireResponseDeploymentResourceGroupName1 = { +export type SyncAcquireResponseDeploymentHost3 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncAcquireResponseDeploymentResourceGroupNameSecretRef1; + secretRef: SyncAcquireResponseDeploymentHostSecretRef3; }; /** @@ -8014,24 +8029,24 @@ export type SyncAcquireResponseDeploymentResourceGroupName1 = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentResourceGroupNameUnion1 = - | SyncAcquireResponseDeploymentResourceGroupName1 +export type SyncAcquireResponseDeploymentHostUnion3 = + | SyncAcquireResponseDeploymentHost3 | any | string; /** * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentTableNameSecretRef2 = { +export type SyncAcquireResponseDeploymentPortSecretRef4 = { key: string; name: string; }; -export type SyncAcquireResponseDeploymentTableName2 = { +export type SyncAcquireResponseDeploymentPort4 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncAcquireResponseDeploymentTableNameSecretRef2; + secretRef: SyncAcquireResponseDeploymentPortSecretRef4; }; /** @@ -8040,30 +8055,80 @@ export type SyncAcquireResponseDeploymentTableName2 = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentTableNameUnion2 = - | SyncAcquireResponseDeploymentTableName2 +export type SyncAcquireResponseDeploymentPortUnion4 = + | SyncAcquireResponseDeploymentPort4 + | number + | any; + +/** + * TLS policy for an operator-provided / BYO Postgres database. + * + * @remarks + * + * Unlike libpq's ambiguous `prefer` mode, both choices map exactly to the + * connection settings exposed by every supported SDK. + */ +export const SyncAcquireResponseDeploymentSslMode = { + VerifyFull: "verify-full", + Disable: "disable", +} as const; +/** + * TLS policy for an operator-provided / BYO Postgres database. + * + * @remarks + * + * Unlike libpq's ambiguous `prefer` mode, both choices map exactly to the + * connection settings exposed by every supported SDK. + */ +export type SyncAcquireResponseDeploymentSslMode = ClosedEnum< + typeof SyncAcquireResponseDeploymentSslMode +>; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentUsernameSecretRef4 = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentUsername4 = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncAcquireResponseDeploymentUsernameSecretRef4; +}; + +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentUsernameUnion4 = + | SyncAcquireResponseDeploymentUsername4 | any | string; -export const SyncAcquireResponseDeploymentTypeKv3 = { - Kv: "kv", +export const SyncAcquireResponseDeploymentTypePostgres4 = { + Postgres: "postgres", } as const; -export type SyncAcquireResponseDeploymentTypeKv3 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeKv3 +export type SyncAcquireResponseDeploymentTypePostgres4 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypePostgres4 >; /** - * Azure Table Storage KV binding configuration + * Operator-provided / BYO database binding. */ -export type SyncAcquireResponseDeploymentExternalBindingsTablestorage = { +export type SyncAcquireResponseDeploymentExternalBindingsExternal = { /** * Represents a value that can be either a concrete value, a template expression, * * @remarks * or a reference to a Kubernetes Secret */ - accountName?: - | SyncAcquireResponseDeploymentAccountName2 + database?: + | SyncAcquireResponseDeploymentDatabase5 | any | string | null @@ -8074,41 +8139,60 @@ export type SyncAcquireResponseDeploymentExternalBindingsTablestorage = { * @remarks * or a reference to a Kubernetes Secret */ - resourceGroupName?: - | SyncAcquireResponseDeploymentResourceGroupName1 - | any - | string - | null - | undefined; + host?: SyncAcquireResponseDeploymentHost3 | any | string | null | undefined; + /** + * Connection password as a concrete value, never an unresolved `SecretRef`: the platform + * + * @remarks + * materializes the Kubernetes secret into the pod env. The cloud variants carry a secret + * locator instead. + */ + password: string; /** * Represents a value that can be either a concrete value, a template expression, * * @remarks * or a reference to a Kubernetes Secret */ - tableName?: - | SyncAcquireResponseDeploymentTableName2 + port?: SyncAcquireResponseDeploymentPort4 | number | any | null | undefined; + /** + * TLS policy for an operator-provided / BYO Postgres database. + * + * @remarks + * + * Unlike libpq's ambiguous `prefer` mode, both choices map exactly to the + * connection settings exposed by every supported SDK. + */ + sslMode?: SyncAcquireResponseDeploymentSslMode | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + username?: + | SyncAcquireResponseDeploymentUsername4 | any | string | null | undefined; - service: "tablestorage"; - type: SyncAcquireResponseDeploymentTypeKv3; + service: "external"; + type: SyncAcquireResponseDeploymentTypePostgres4; }; /** * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentCollectionNameSecretRef = { +export type SyncAcquireResponseDeploymentDatabaseSecretRef4 = { key: string; name: string; }; -export type SyncAcquireResponseDeploymentCollectionName = { +export type SyncAcquireResponseDeploymentDatabase4 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncAcquireResponseDeploymentCollectionNameSecretRef; + secretRef: SyncAcquireResponseDeploymentDatabaseSecretRef4; }; /** @@ -8117,24 +8201,24 @@ export type SyncAcquireResponseDeploymentCollectionName = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentCollectionNameUnion = - | SyncAcquireResponseDeploymentCollectionName +export type SyncAcquireResponseDeploymentDatabaseUnion3 = + | SyncAcquireResponseDeploymentDatabase4 | any | string; /** * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentDatabaseIdSecretRef = { +export type SyncAcquireResponseDeploymentHostSecretRef2 = { key: string; name: string; }; -export type SyncAcquireResponseDeploymentDatabaseId = { +export type SyncAcquireResponseDeploymentHost2 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncAcquireResponseDeploymentDatabaseIdSecretRef; + secretRef: SyncAcquireResponseDeploymentHostSecretRef2; }; /** @@ -8143,24 +8227,24 @@ export type SyncAcquireResponseDeploymentDatabaseId = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentDatabaseIdUnion = - | SyncAcquireResponseDeploymentDatabaseId +export type SyncAcquireResponseDeploymentHostUnion2 = + | SyncAcquireResponseDeploymentHost2 | any | string; /** * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentProjectIdSecretRef = { +export type SyncAcquireResponseDeploymentPasswordSecretUriSecretRef = { key: string; name: string; }; -export type SyncAcquireResponseDeploymentProjectId = { +export type SyncAcquireResponseDeploymentPasswordSecretUri = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncAcquireResponseDeploymentProjectIdSecretRef; + secretRef: SyncAcquireResponseDeploymentPasswordSecretUriSecretRef; }; /** @@ -8169,90 +8253,24 @@ export type SyncAcquireResponseDeploymentProjectId = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentProjectIdUnion = - | SyncAcquireResponseDeploymentProjectId +export type SyncAcquireResponseDeploymentPasswordSecretUriUnion = + | SyncAcquireResponseDeploymentPasswordSecretUri | any | string; -export const SyncAcquireResponseDeploymentTypeKv2 = { - Kv: "kv", -} as const; -export type SyncAcquireResponseDeploymentTypeKv2 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeKv2 ->; - /** - * GCP Firestore KV binding configuration + * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentExternalBindingsFirestore = { - /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ - collectionName?: - | SyncAcquireResponseDeploymentCollectionName - | any - | string - | null - | undefined; +export type SyncAcquireResponseDeploymentPortSecretRef3 = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentPort3 = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Reference to a Kubernetes Secret */ - databaseId?: - | SyncAcquireResponseDeploymentDatabaseId - | any - | string - | null - | undefined; - /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ - projectId?: - | SyncAcquireResponseDeploymentProjectId - | any - | string - | null - | undefined; - service: "firestore"; - type: SyncAcquireResponseDeploymentTypeKv2; -}; - -/** - * Reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentEndpointUrlSecretRef = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentEndpointUrl = { - /** - * Reference to a Kubernetes Secret - */ - secretRef: SyncAcquireResponseDeploymentEndpointUrlSecretRef; -}; - -/** - * Reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentRegionSecretRef = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentRegion = { - /** - * Reference to a Kubernetes Secret - */ - secretRef: SyncAcquireResponseDeploymentRegionSecretRef; + secretRef: SyncAcquireResponseDeploymentPortSecretRef3; }; /** @@ -8261,24 +8279,24 @@ export type SyncAcquireResponseDeploymentRegion = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentRegionUnion = - | SyncAcquireResponseDeploymentRegion - | any - | string; +export type SyncAcquireResponseDeploymentPortUnion3 = + | SyncAcquireResponseDeploymentPort3 + | number + | any; /** * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentTableNameSecretRef1 = { +export type SyncAcquireResponseDeploymentUsernameSecretRef3 = { key: string; name: string; }; -export type SyncAcquireResponseDeploymentTableName1 = { +export type SyncAcquireResponseDeploymentUsername3 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncAcquireResponseDeploymentTableNameSecretRef1; + secretRef: SyncAcquireResponseDeploymentUsernameSecretRef3; }; /** @@ -8287,31 +8305,30 @@ export type SyncAcquireResponseDeploymentTableName1 = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentTableNameUnion1 = - | SyncAcquireResponseDeploymentTableName1 +export type SyncAcquireResponseDeploymentUsernameUnion3 = + | SyncAcquireResponseDeploymentUsername3 | any | string; -export const SyncAcquireResponseDeploymentTypeKv1 = { - Kv: "kv", +export const SyncAcquireResponseDeploymentTypePostgres3 = { + Postgres: "postgres", } as const; -export type SyncAcquireResponseDeploymentTypeKv1 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeKv1 +export type SyncAcquireResponseDeploymentTypePostgres3 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypePostgres3 >; /** - * AWS DynamoDB KV binding configuration + * Azure Flexible Server binding. */ -export type SyncAcquireResponseDeploymentExternalBindingsDynamodb = { - endpointUrl?: any | null | undefined; +export type SyncAcquireResponseDeploymentExternalBindingsFlexibleServer = { /** * Represents a value that can be either a concrete value, a template expression, * * @remarks * or a reference to a Kubernetes Secret */ - region?: - | SyncAcquireResponseDeploymentRegion + database?: + | SyncAcquireResponseDeploymentDatabase4 | any | string | null @@ -8322,39 +8339,55 @@ export type SyncAcquireResponseDeploymentExternalBindingsDynamodb = { * @remarks * or a reference to a Kubernetes Secret */ - tableName?: - | SyncAcquireResponseDeploymentTableName1 + host?: SyncAcquireResponseDeploymentHost2 | any | string | null | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + passwordSecretUri?: + | SyncAcquireResponseDeploymentPasswordSecretUri | any | string | null | undefined; - service: "dynamodb"; - type: SyncAcquireResponseDeploymentTypeKv1; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + port?: SyncAcquireResponseDeploymentPort3 | number | any | null | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + username?: + | SyncAcquireResponseDeploymentUsername3 + | any + | string + | null + | undefined; + service: "flexible-server"; + type: SyncAcquireResponseDeploymentTypePostgres3; }; -/** - * Represents a KV binding for key-value storage across platforms - */ -export type SyncAcquireResponseDeploymentExternalBindingsUnion3 = - | SyncAcquireResponseDeploymentExternalBindingsDynamodb - | SyncAcquireResponseDeploymentExternalBindingsFirestore - | SyncAcquireResponseDeploymentExternalBindingsTablestorage - | SyncAcquireResponseDeploymentExternalBindingsRedis - | SyncAcquireResponseDeploymentExternalBindingsLocalKv; - /** * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentQueuePathSecretRef = { +export type SyncAcquireResponseDeploymentDatabaseSecretRef3 = { key: string; name: string; }; -export type SyncAcquireResponseDeploymentQueuePath = { +export type SyncAcquireResponseDeploymentDatabase3 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncAcquireResponseDeploymentQueuePathSecretRef; + secretRef: SyncAcquireResponseDeploymentDatabaseSecretRef3; }; /** @@ -8363,51 +8396,24 @@ export type SyncAcquireResponseDeploymentQueuePath = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentQueuePathUnion = - | SyncAcquireResponseDeploymentQueuePath +export type SyncAcquireResponseDeploymentDatabaseUnion2 = + | SyncAcquireResponseDeploymentDatabase3 | any | string; -export const SyncAcquireResponseDeploymentTypeQueue4 = { - Queue: "queue", -} as const; -export type SyncAcquireResponseDeploymentTypeQueue4 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeQueue4 ->; - -/** - * Local queue parameters - */ -export type SyncAcquireResponseDeploymentExternalBindingsLocalQueue = { - /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ - queuePath?: - | SyncAcquireResponseDeploymentQueuePath - | any - | string - | null - | undefined; - service: "local-queue"; - type: SyncAcquireResponseDeploymentTypeQueue4; -}; - /** * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentNamespaceSecretRef1 = { +export type SyncAcquireResponseDeploymentHostSecretRef1 = { key: string; name: string; }; -export type SyncAcquireResponseDeploymentNamespace1 = { +export type SyncAcquireResponseDeploymentHost1 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncAcquireResponseDeploymentNamespaceSecretRef1; + secretRef: SyncAcquireResponseDeploymentHostSecretRef1; }; /** @@ -8416,24 +8422,24 @@ export type SyncAcquireResponseDeploymentNamespace1 = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentNamespaceUnion1 = - | SyncAcquireResponseDeploymentNamespace1 +export type SyncAcquireResponseDeploymentHostUnion1 = + | SyncAcquireResponseDeploymentHost1 | any | string; /** * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentQueueNameSecretRef = { +export type SyncAcquireResponseDeploymentPasswordSecretNameSecretRef = { key: string; name: string; }; -export type SyncAcquireResponseDeploymentQueueName = { +export type SyncAcquireResponseDeploymentPasswordSecretName = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncAcquireResponseDeploymentQueueNameSecretRef; + secretRef: SyncAcquireResponseDeploymentPasswordSecretNameSecretRef; }; /** @@ -8442,63 +8448,50 @@ export type SyncAcquireResponseDeploymentQueueName = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentQueueNameUnion = - | SyncAcquireResponseDeploymentQueueName +export type SyncAcquireResponseDeploymentPasswordSecretNameUnion = + | SyncAcquireResponseDeploymentPasswordSecretName | any | string; -export const SyncAcquireResponseDeploymentTypeQueue3 = { - Queue: "queue", -} as const; -export type SyncAcquireResponseDeploymentTypeQueue3 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeQueue3 ->; - /** - * Azure Service Bus parameters + * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentExternalBindingsServicebus = { - /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ - namespace?: - | SyncAcquireResponseDeploymentNamespace1 - | any - | string - | null - | undefined; +export type SyncAcquireResponseDeploymentPortSecretRef2 = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentPort2 = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Reference to a Kubernetes Secret */ - queueName?: - | SyncAcquireResponseDeploymentQueueName - | any - | string - | null - | undefined; - service: "servicebus"; - type: SyncAcquireResponseDeploymentTypeQueue3; + secretRef: SyncAcquireResponseDeploymentPortSecretRef2; }; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentPortUnion2 = + | SyncAcquireResponseDeploymentPort2 + | number + | any; + /** * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentSubscriptionSecretRef = { +export type SyncAcquireResponseDeploymentServerCaCertificatesSecretRef = { key: string; name: string; }; -export type SyncAcquireResponseDeploymentSubscription = { +export type SyncAcquireResponseDeploymentServerCaCertificates = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncAcquireResponseDeploymentSubscriptionSecretRef; + secretRef: SyncAcquireResponseDeploymentServerCaCertificatesSecretRef; }; /** @@ -8507,24 +8500,24 @@ export type SyncAcquireResponseDeploymentSubscription = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentSubscriptionUnion = - | SyncAcquireResponseDeploymentSubscription - | any - | string; +export type SyncAcquireResponseDeploymentServerCaCertificatesUnion = + | SyncAcquireResponseDeploymentServerCaCertificates + | Array + | any; /** * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentTopicSecretRef = { +export type SyncAcquireResponseDeploymentUsernameSecretRef2 = { key: string; name: string; }; -export type SyncAcquireResponseDeploymentTopic = { +export type SyncAcquireResponseDeploymentUsername2 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncAcquireResponseDeploymentTopicSecretRef; + secretRef: SyncAcquireResponseDeploymentUsernameSecretRef2; }; /** @@ -8533,30 +8526,30 @@ export type SyncAcquireResponseDeploymentTopic = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentTopicUnion = - | SyncAcquireResponseDeploymentTopic +export type SyncAcquireResponseDeploymentUsernameUnion2 = + | SyncAcquireResponseDeploymentUsername2 | any | string; -export const SyncAcquireResponseDeploymentTypeQueue2 = { - Queue: "queue", +export const SyncAcquireResponseDeploymentTypePostgres2 = { + Postgres: "postgres", } as const; -export type SyncAcquireResponseDeploymentTypeQueue2 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeQueue2 +export type SyncAcquireResponseDeploymentTypePostgres2 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypePostgres2 >; /** - * GCP Pub/Sub parameters + * GCP Cloud SQL binding. */ -export type SyncAcquireResponseDeploymentExternalBindingsPubsub = { +export type SyncAcquireResponseDeploymentExternalBindingsCloudSQL = { /** * Represents a value that can be either a concrete value, a template expression, * * @remarks * or a reference to a Kubernetes Secret */ - subscription?: - | SyncAcquireResponseDeploymentSubscription + database?: + | SyncAcquireResponseDeploymentDatabase3 | any | string | null @@ -8567,24 +8560,67 @@ export type SyncAcquireResponseDeploymentExternalBindingsPubsub = { * @remarks * or a reference to a Kubernetes Secret */ - topic?: SyncAcquireResponseDeploymentTopic | any | string | null | undefined; - service: "pubsub"; - type: SyncAcquireResponseDeploymentTypeQueue2; + host?: SyncAcquireResponseDeploymentHost1 | any | string | null | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + passwordSecretName?: + | SyncAcquireResponseDeploymentPasswordSecretName + | any + | string + | null + | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + port?: SyncAcquireResponseDeploymentPort2 | number | any | null | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + serverCaCertificates?: + | SyncAcquireResponseDeploymentServerCaCertificates + | Array + | any + | null + | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + username?: + | SyncAcquireResponseDeploymentUsername2 + | any + | string + | null + | undefined; + service: "cloud-sql"; + type: SyncAcquireResponseDeploymentTypePostgres2; }; /** * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentQueueUrlSecretRef = { +export type SyncAcquireResponseDeploymentClusterEndpointSecretRef = { key: string; name: string; }; -export type SyncAcquireResponseDeploymentQueueUrl = { +export type SyncAcquireResponseDeploymentClusterEndpoint = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncAcquireResponseDeploymentQueueUrlSecretRef; + secretRef: SyncAcquireResponseDeploymentClusterEndpointSecretRef; }; /** @@ -8593,60 +8629,24 @@ export type SyncAcquireResponseDeploymentQueueUrl = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentQueueUrlUnion = - | SyncAcquireResponseDeploymentQueueUrl +export type SyncAcquireResponseDeploymentClusterEndpointUnion = + | SyncAcquireResponseDeploymentClusterEndpoint | any | string; -export const SyncAcquireResponseDeploymentTypeQueue1 = { - Queue: "queue", -} as const; -export type SyncAcquireResponseDeploymentTypeQueue1 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeQueue1 ->; - -/** - * AWS SQS queue parameters - */ -export type SyncAcquireResponseDeploymentExternalBindingsSqs = { - /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ - queueUrl?: - | SyncAcquireResponseDeploymentQueueUrl - | any - | string - | null - | undefined; - service: "sqs"; - type: SyncAcquireResponseDeploymentTypeQueue1; -}; - -/** - * Binding parameters for Queue at runtime or in templates. - */ -export type SyncAcquireResponseDeploymentExternalBindingsUnion2 = - | SyncAcquireResponseDeploymentExternalBindingsSqs - | SyncAcquireResponseDeploymentExternalBindingsPubsub - | SyncAcquireResponseDeploymentExternalBindingsServicebus - | SyncAcquireResponseDeploymentExternalBindingsLocalQueue; - /** * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentStoragePathSecretRef = { +export type SyncAcquireResponseDeploymentDatabaseSecretRef2 = { key: string; name: string; }; -export type SyncAcquireResponseDeploymentStoragePath = { +export type SyncAcquireResponseDeploymentDatabase2 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncAcquireResponseDeploymentStoragePathSecretRef; + secretRef: SyncAcquireResponseDeploymentDatabaseSecretRef2; }; /** @@ -8655,51 +8655,24 @@ export type SyncAcquireResponseDeploymentStoragePath = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentStoragePathUnion = - | SyncAcquireResponseDeploymentStoragePath +export type SyncAcquireResponseDeploymentDatabaseUnion1 = + | SyncAcquireResponseDeploymentDatabase2 | any | string; -export const SyncAcquireResponseDeploymentTypeStorage4 = { - Storage: "storage", -} as const; -export type SyncAcquireResponseDeploymentTypeStorage4 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeStorage4 ->; - -/** - * Local filesystem storage binding configuration - */ -export type SyncAcquireResponseDeploymentExternalBindingsLocalStorage = { - /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ - storagePath?: - | SyncAcquireResponseDeploymentStoragePath - | any - | string - | null - | undefined; - service: "local-storage"; - type: SyncAcquireResponseDeploymentTypeStorage4; -}; - /** * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentBucketNameSecretRef2 = { +export type SyncAcquireResponseDeploymentPasswordSecretArnSecretRef = { key: string; name: string; }; -export type SyncAcquireResponseDeploymentBucketName2 = { +export type SyncAcquireResponseDeploymentPasswordSecretArn = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncAcquireResponseDeploymentBucketNameSecretRef2; + secretRef: SyncAcquireResponseDeploymentPasswordSecretArnSecretRef; }; /** @@ -8708,51 +8681,24 @@ export type SyncAcquireResponseDeploymentBucketName2 = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentBucketNameUnion2 = - | SyncAcquireResponseDeploymentBucketName2 +export type SyncAcquireResponseDeploymentPasswordSecretArnUnion = + | SyncAcquireResponseDeploymentPasswordSecretArn | any | string; -export const SyncAcquireResponseDeploymentTypeStorage3 = { - Storage: "storage", -} as const; -export type SyncAcquireResponseDeploymentTypeStorage3 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeStorage3 ->; - -/** - * Google Cloud Storage binding configuration - */ -export type SyncAcquireResponseDeploymentExternalBindingsGcs = { - /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ - bucketName?: - | SyncAcquireResponseDeploymentBucketName2 - | any - | string - | null - | undefined; - service: "gcs"; - type: SyncAcquireResponseDeploymentTypeStorage3; -}; - /** * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentAccountNameSecretRef1 = { +export type SyncAcquireResponseDeploymentPortSecretRef1 = { key: string; name: string; }; -export type SyncAcquireResponseDeploymentAccountName1 = { +export type SyncAcquireResponseDeploymentPort1 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncAcquireResponseDeploymentAccountNameSecretRef1; + secretRef: SyncAcquireResponseDeploymentPortSecretRef1; }; /** @@ -8761,24 +8707,24 @@ export type SyncAcquireResponseDeploymentAccountName1 = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentAccountNameUnion1 = - | SyncAcquireResponseDeploymentAccountName1 - | any - | string; +export type SyncAcquireResponseDeploymentPortUnion1 = + | SyncAcquireResponseDeploymentPort1 + | number + | any; /** * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentContainerNameSecretRef = { +export type SyncAcquireResponseDeploymentUsernameSecretRef1 = { key: string; name: string; }; -export type SyncAcquireResponseDeploymentContainerName = { +export type SyncAcquireResponseDeploymentUsername1 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncAcquireResponseDeploymentContainerNameSecretRef; + secretRef: SyncAcquireResponseDeploymentUsernameSecretRef1; }; /** @@ -8787,30 +8733,30 @@ export type SyncAcquireResponseDeploymentContainerName = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentContainerNameUnion = - | SyncAcquireResponseDeploymentContainerName +export type SyncAcquireResponseDeploymentUsernameUnion1 = + | SyncAcquireResponseDeploymentUsername1 | any | string; -export const SyncAcquireResponseDeploymentTypeStorage2 = { - Storage: "storage", +export const SyncAcquireResponseDeploymentTypePostgres1 = { + Postgres: "postgres", } as const; -export type SyncAcquireResponseDeploymentTypeStorage2 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeStorage2 +export type SyncAcquireResponseDeploymentTypePostgres1 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypePostgres1 >; /** - * Azure Blob Storage binding configuration + * AWS Aurora Serverless v2 binding. */ -export type SyncAcquireResponseDeploymentExternalBindingsBlob = { +export type SyncAcquireResponseDeploymentExternalBindingsAurora = { /** * Represents a value that can be either a concrete value, a template expression, * * @remarks * or a reference to a Kubernetes Secret */ - accountName?: - | SyncAcquireResponseDeploymentAccountName1 + clusterEndpoint?: + | SyncAcquireResponseDeploymentClusterEndpoint | any | string | null @@ -8821,2467 +8767,7041 @@ export type SyncAcquireResponseDeploymentExternalBindingsBlob = { * @remarks * or a reference to a Kubernetes Secret */ - containerName?: - | SyncAcquireResponseDeploymentContainerName + database?: + | SyncAcquireResponseDeploymentDatabase2 | any | string | null | undefined; - service: "blob"; - type: SyncAcquireResponseDeploymentTypeStorage2; -}; - -/** - * Reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentBucketNameSecretRef1 = { - key: string; - name: string; -}; - -export type SyncAcquireResponseDeploymentBucketName1 = { /** - * Reference to a Kubernetes Secret + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - secretRef: SyncAcquireResponseDeploymentBucketNameSecretRef1; -}; - -/** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncAcquireResponseDeploymentBucketNameUnion1 = - | SyncAcquireResponseDeploymentBucketName1 - | any - | string; - -export const SyncAcquireResponseDeploymentTypeStorage1 = { - Storage: "storage", -} as const; -export type SyncAcquireResponseDeploymentTypeStorage1 = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeStorage1 ->; - -/** - * AWS S3 storage binding configuration - */ -export type SyncAcquireResponseDeploymentExternalBindingsS3 = { + passwordSecretArn?: + | SyncAcquireResponseDeploymentPasswordSecretArn + | any + | string + | null + | undefined; /** * Represents a value that can be either a concrete value, a template expression, * * @remarks * or a reference to a Kubernetes Secret */ - bucketName?: - | SyncAcquireResponseDeploymentBucketName1 + port?: SyncAcquireResponseDeploymentPort1 | number | any | null | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + username?: + | SyncAcquireResponseDeploymentUsername1 | any | string | null | undefined; - service: "s3"; - type: SyncAcquireResponseDeploymentTypeStorage1; + service: "aurora"; + type: SyncAcquireResponseDeploymentTypePostgres1; }; /** - * Service-type based storage binding that supports multiple storage providers - */ -export type SyncAcquireResponseDeploymentExternalBindingsUnion1 = - | SyncAcquireResponseDeploymentExternalBindingsS3 - | SyncAcquireResponseDeploymentExternalBindingsBlob - | SyncAcquireResponseDeploymentExternalBindingsGcs - | SyncAcquireResponseDeploymentExternalBindingsLocalStorage; - -/** - * Represents a binding to pre-existing infrastructure. - * - * @remarks - * - * The binding type must match the resource type it's applied to. - * Validated at runtime by the executor. + * Connection details for a Postgres database, one variant per backend. */ -export type SyncAcquireResponseDeploymentExternalBindingsUnion7 = - | SyncAcquireResponseDeploymentExternalBindingsContainerAppsEnvironment - | SyncAcquireResponseDeploymentExternalBindingsS3 - | SyncAcquireResponseDeploymentExternalBindingsBlob - | SyncAcquireResponseDeploymentExternalBindingsGcs - | SyncAcquireResponseDeploymentExternalBindingsLocalStorage - | SyncAcquireResponseDeploymentExternalBindingsSqs - | SyncAcquireResponseDeploymentExternalBindingsPubsub - | SyncAcquireResponseDeploymentExternalBindingsServicebus - | SyncAcquireResponseDeploymentExternalBindingsLocalQueue - | SyncAcquireResponseDeploymentExternalBindingsDynamodb - | SyncAcquireResponseDeploymentExternalBindingsFirestore - | SyncAcquireResponseDeploymentExternalBindingsTablestorage - | SyncAcquireResponseDeploymentExternalBindingsRedis - | SyncAcquireResponseDeploymentExternalBindingsLocalKv - | SyncAcquireResponseDeploymentExternalBindingsEcr - | SyncAcquireResponseDeploymentExternalBindingsAcr - | SyncAcquireResponseDeploymentExternalBindingsGar - | SyncAcquireResponseDeploymentExternalBindingsLocal - | SyncAcquireResponseDeploymentExternalBindingsParameterStore - | SyncAcquireResponseDeploymentExternalBindingsSecretManager - | SyncAcquireResponseDeploymentExternalBindingsKeyVault - | SyncAcquireResponseDeploymentExternalBindingsKubernetesSecret - | SyncAcquireResponseDeploymentExternalBindingsLocalVault +export type SyncAcquireResponseDeploymentExternalBindingsUnion6 = | SyncAcquireResponseDeploymentExternalBindingsAurora | SyncAcquireResponseDeploymentExternalBindingsCloudSQL | SyncAcquireResponseDeploymentExternalBindingsFlexibleServer | SyncAcquireResponseDeploymentExternalBindingsExternal | SyncAcquireResponseDeploymentExternalBindingsLocalPostgres; -export const SyncAcquireResponseDeploymentPlatformKubernetes = { - Kubernetes: "kubernetes", -} as const; -export type SyncAcquireResponseDeploymentPlatformKubernetes = ClosedEnum< - typeof SyncAcquireResponseDeploymentPlatformKubernetes ->; +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentDefaultDomainSecretRef = { + key: string; + name: string; +}; -export type SyncAcquireResponseDeploymentManagementConfigKubernetes = { - platform: SyncAcquireResponseDeploymentPlatformKubernetes; +export type SyncAcquireResponseDeploymentDefaultDomain = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncAcquireResponseDeploymentDefaultDomainSecretRef; }; -export const SyncAcquireResponseDeploymentConfigPlatformAzure = { - Azure: "azure", -} as const; -export type SyncAcquireResponseDeploymentConfigPlatformAzure = ClosedEnum< - typeof SyncAcquireResponseDeploymentConfigPlatformAzure ->; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentDefaultDomainUnion = + | SyncAcquireResponseDeploymentDefaultDomain + | any + | string; /** - * Azure management configuration extracted from stack settings + * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentManagementConfigAzure = { - /** - * The managing Azure Tenant ID for cross-tenant access - */ - managingTenantId: string; +export type SyncAcquireResponseDeploymentEnvironmentNameSecretRef = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentEnvironmentName = { /** - * OIDC issuer URL trusted by the target-side managed identity. + * Reference to a Kubernetes Secret */ - oidcIssuer: string; + secretRef: SyncAcquireResponseDeploymentEnvironmentNameSecretRef; +}; + +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentEnvironmentNameUnion = + | SyncAcquireResponseDeploymentEnvironmentName + | any + | string; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentResourceGroupNameSecretRef3 = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentResourceGroupName3 = { /** - * OIDC subject claim trusted by the target-side managed identity. + * Reference to a Kubernetes Secret */ - oidcSubject: string; - platform: SyncAcquireResponseDeploymentConfigPlatformAzure; + secretRef: SyncAcquireResponseDeploymentResourceGroupNameSecretRef3; }; -export const SyncAcquireResponseDeploymentConfigPlatformGcp = { - Gcp: "gcp", -} as const; -export type SyncAcquireResponseDeploymentConfigPlatformGcp = ClosedEnum< - typeof SyncAcquireResponseDeploymentConfigPlatformGcp ->; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentResourceGroupNameUnion3 = + | SyncAcquireResponseDeploymentResourceGroupName3 + | any + | string; /** - * GCP management configuration extracted from stack settings + * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentManagementConfigGcp = { +export type SyncAcquireResponseDeploymentResourceIdSecretRef = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentResourceId = { /** - * Service account email for management roles + * Reference to a Kubernetes Secret */ - serviceAccountEmail: string; - platform: SyncAcquireResponseDeploymentConfigPlatformGcp; + secretRef: SyncAcquireResponseDeploymentResourceIdSecretRef; }; -export const SyncAcquireResponseDeploymentConfigPlatformAws = { - Aws: "aws", -} as const; -export type SyncAcquireResponseDeploymentConfigPlatformAws = ClosedEnum< - typeof SyncAcquireResponseDeploymentConfigPlatformAws ->; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentResourceIdUnion = + | SyncAcquireResponseDeploymentResourceId + | any + | string; /** - * AWS management configuration extracted from stack settings + * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentManagementConfigAws = { +export type SyncAcquireResponseDeploymentStaticIpSecretRef = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentStaticIp = { /** - * The managing AWS IAM role ARN that can assume cross-account roles + * Reference to a Kubernetes Secret */ - managingRoleArn: string; - platform: SyncAcquireResponseDeploymentConfigPlatformAws; + secretRef: SyncAcquireResponseDeploymentStaticIpSecretRef; }; -export type SyncAcquireResponseDeploymentManagementConfigUnion = - | SyncAcquireResponseDeploymentManagementConfigAzure - | SyncAcquireResponseDeploymentManagementConfigAws - | SyncAcquireResponseDeploymentManagementConfigGcp - | SyncAcquireResponseDeploymentManagementConfigKubernetes - | any; +export const SyncAcquireResponseDeploymentTypeContainerAppsEnvironment = { + ContainerAppsEnvironment: "container_apps_environment", +} as const; +export type SyncAcquireResponseDeploymentTypeContainerAppsEnvironment = + ClosedEnum; /** - * OTLP log export configuration for a deployment. + * Binding configuration for a pre-existing Azure Container Apps Environment. * * @remarks * - * When set, injected compute runtimes export captured application logs - * through the given endpoint via OTLP/HTTP; which resources are injected - * is platform-dependent. Workers read auth headers from a runtime-only - * secret. Runtime-less Containers and Daemons receive standard OTEL auth - * variables only at the final hosting boundary: Local passes them directly - * to the process and Kubernetes projects them from a per-workload Secret. + * Used when deploying to an existing environment instead of having Alien provision one. + * This is useful for shared environments (e.g., test infrastructure) or enterprise + * setups where environments are managed by a separate team. */ -export type SyncAcquireResponseDeploymentMonitoring = { - /** - * Auth header value in "key=value,..." format. - * - * @remarks - * Example: "authorization=Bearer " - */ - logsAuthHeader: string; - /** - * Full OTLP logs endpoint URL. - * - * @remarks - * Example: "https:///v1/logs" - */ - logsEndpoint: string; - /** - * Auth header value for the metrics endpoint in "key=value,..." format (optional). - * - * @remarks - * - * When absent, `logs_auth_header` is reused for metrics -- suitable when the same - * credential covers both signals. When present (e.g. Axiom with separate datasets), - * this value is used exclusively for metrics. - * - * Example: "authorization=Bearer ,x-axiom-dataset=" - */ - metricsAuthHeader?: string | null | undefined; - /** - * Full OTLP metrics endpoint URL (optional). - * - * @remarks - * When set, the worker runtime exports its own VM/container orchestration metrics here. - * Example: "https://api.axiom.co/v1/metrics" - */ - metricsEndpoint?: string | null | undefined; - /** - * Resource attributes attached to every OTLP signal emitted for this deployment. - * - * @remarks - * - * Platform managers use this for stable identity such as `alien.workspace_id`, - * `alien.project_id`, `alien.deployment_group_id`, and `alien.deployment_id`. - * Runtime-specific resource attributes such as `service.name` remain owned by - * the runtime/exporter. - */ - resourceAttributes?: { [k: string]: string } | undefined; -}; - -export type SyncAcquireResponseDeploymentMonitoringUnion = - | SyncAcquireResponseDeploymentMonitoring - | any; +export type SyncAcquireResponseDeploymentExternalBindingsContainerAppsEnvironment = + { + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + defaultDomain?: + | SyncAcquireResponseDeploymentDefaultDomain + | any + | string + | null + | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + environmentName?: + | SyncAcquireResponseDeploymentEnvironmentName + | any + | string + | null + | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + resourceGroupName?: + | SyncAcquireResponseDeploymentResourceGroupName3 + | any + | string + | null + | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + resourceId?: + | SyncAcquireResponseDeploymentResourceId + | any + | string + | null + | undefined; + staticIp?: any | null | undefined; + type: SyncAcquireResponseDeploymentTypeContainerAppsEnvironment; + }; -export type SyncAcquireResponseDeploymentPoolsAutoscale = { - /** - * Provider machine type selected for this deployment. - */ - machine?: string | null | undefined; - /** - * Maximum machine count. - */ - max: number; - /** - * Minimum machine count. - */ - min: number; - mode: "autoscale"; +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentDataDirSecretRef3 = { + key: string; + name: string; }; -export type SyncAcquireResponseDeploymentPoolsFixed = { - /** - * Provider machine type selected for this deployment. - */ - machine?: string | null | undefined; +export type SyncAcquireResponseDeploymentDataDir3 = { /** - * Number of machines to run. + * Reference to a Kubernetes Secret */ - machines: number; - mode: "fixed"; + secretRef: SyncAcquireResponseDeploymentDataDirSecretRef3; }; /** - * User-selected deployment settings for one compute pool. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentPoolsUnion = - | SyncAcquireResponseDeploymentPoolsFixed - | SyncAcquireResponseDeploymentPoolsAutoscale; +export type SyncAcquireResponseDeploymentDataDirUnion2 = + | SyncAcquireResponseDeploymentDataDir3 + | any + | string; + +export const SyncAcquireResponseDeploymentTypeVault5 = { + Vault: "vault", +} as const; +export type SyncAcquireResponseDeploymentTypeVault5 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeVault5 +>; /** - * Deployment-time compute choices for Alien-managed compute pools. - * - * @remarks - * - * Application source declares portable pool requirements. This settings - * object stores the concrete choices made for one deployment, such as the - * provider machine type and selected machine counts. + * Local development vault binding (for testing/development) */ -export type SyncAcquireResponseDeploymentCompute = { +export type SyncAcquireResponseDeploymentExternalBindingsLocalVault = { /** - * Selected compute choices keyed by pool ID. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - pools?: { - [k: string]: - | SyncAcquireResponseDeploymentPoolsFixed - | SyncAcquireResponseDeploymentPoolsAutoscale; - } | undefined; + dataDir?: + | SyncAcquireResponseDeploymentDataDir3 + | any + | string + | null + | undefined; + /** + * The vault name for local storage + */ + vaultName: string; + service: "local-vault"; + type: SyncAcquireResponseDeploymentTypeVault5; }; -export type SyncAcquireResponseDeploymentComputeUnion = - | SyncAcquireResponseDeploymentCompute - | any; - -/** - * Deployment model: how updates are delivered to the remote environment. - */ -export const SyncAcquireResponseDeploymentDeploymentModel = { - Push: "push", - Pull: "pull", -} as const; /** - * Deployment model: how updates are delivered to the remote environment. + * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentDeploymentModel = ClosedEnum< - typeof SyncAcquireResponseDeploymentDeploymentModel ->; - -export type SyncAcquireResponseDeploymentAwsStackSettings = { - certificateArn: string; -}; - -export type SyncAcquireResponseDeploymentStackSettingsAwsUnion = - | SyncAcquireResponseDeploymentAwsStackSettings - | any; - -export type SyncAcquireResponseDeploymentAzureStackSettings = { - keyVaultCertificateId: string; - keyVaultResourceId?: string | null | undefined; +export type SyncAcquireResponseDeploymentNamespaceSecretRef2 = { + key: string; + name: string; }; -export type SyncAcquireResponseDeploymentStackSettingsAzureUnion = - | SyncAcquireResponseDeploymentAzureStackSettings - | any; - -export type SyncAcquireResponseDeploymentGcpStackSettings = { - certificateName: string; +export type SyncAcquireResponseDeploymentNamespace2 = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncAcquireResponseDeploymentNamespaceSecretRef2; }; -export type SyncAcquireResponseDeploymentStackSettingsGcpUnion = - | SyncAcquireResponseDeploymentGcpStackSettings - | any; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentNamespaceUnion2 = + | SyncAcquireResponseDeploymentNamespace2 + | any + | string; /** - * Namespace-scoped Kubernetes TLS Secret reference. + * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentTlsSecretRef = { - /** - * Secret namespace. Defaults to the release namespace when omitted. - */ - namespace?: string | null | undefined; - /** - * Secret name. - */ - secretName: string; +export type SyncAcquireResponseDeploymentVaultPrefixSecretRef3 = { + key: string; + name: string; }; -export type SyncAcquireResponseDeploymentDomainsKubernetes = { +export type SyncAcquireResponseDeploymentVaultPrefix3 = { /** - * Namespace-scoped Kubernetes TLS Secret reference. + * Reference to a Kubernetes Secret */ - tlsSecretRef: SyncAcquireResponseDeploymentTlsSecretRef; + secretRef: SyncAcquireResponseDeploymentVaultPrefixSecretRef3; }; -export type SyncAcquireResponseDeploymentDomainsKubernetesUnion = - | SyncAcquireResponseDeploymentDomainsKubernetes - | any; - /** - * Platform-specific certificate references for custom domains. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentDomainsCertificate = { - aws?: SyncAcquireResponseDeploymentAwsStackSettings | any | null | undefined; - azure?: - | SyncAcquireResponseDeploymentAzureStackSettings +export type SyncAcquireResponseDeploymentVaultPrefixUnion3 = + | SyncAcquireResponseDeploymentVaultPrefix3 + | any + | string; + +export const SyncAcquireResponseDeploymentTypeVault4 = { + Vault: "vault", +} as const; +export type SyncAcquireResponseDeploymentTypeVault4 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeVault4 +>; + +/** + * Kubernetes Secrets vault binding configuration + */ +export type SyncAcquireResponseDeploymentExternalBindingsKubernetesSecret = { + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + namespace?: + | SyncAcquireResponseDeploymentNamespace2 | any + | string | null | undefined; - gcp?: SyncAcquireResponseDeploymentGcpStackSettings | any | null | undefined; - kubernetes?: - | SyncAcquireResponseDeploymentDomainsKubernetes + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + vaultPrefix?: + | SyncAcquireResponseDeploymentVaultPrefix3 | any + | string | null | undefined; + service: "kubernetes-secret"; + type: SyncAcquireResponseDeploymentTypeVault4; }; /** - * Custom domain configuration for a single resource. + * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentCustomDomains = { - /** - * Platform-specific certificate references for custom domains. - */ - certificate: SyncAcquireResponseDeploymentDomainsCertificate; - /** - * Fully qualified domain name to use. - */ - domain: string; +export type SyncAcquireResponseDeploymentVaultNameSecretRef = { + key: string; + name: string; }; -export const SyncAcquireResponseDeploymentModeLoadBalancer = { - LoadBalancer: "loadBalancer", -} as const; -export type SyncAcquireResponseDeploymentModeLoadBalancer = ClosedEnum< - typeof SyncAcquireResponseDeploymentModeLoadBalancer ->; - -export type SyncAcquireResponseDeploymentPublicEndpointTargetLoadBalancer = { +export type SyncAcquireResponseDeploymentVaultName = { /** - * DNS name or URL for the external load balancer. + * Reference to a Kubernetes Secret */ - cnameTarget: string; - mode: SyncAcquireResponseDeploymentModeLoadBalancer; + secretRef: SyncAcquireResponseDeploymentVaultNameSecretRef; }; -export const SyncAcquireResponseDeploymentModeMachineAddresses = { - MachineAddresses: "machineAddresses", +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentVaultNameUnion = + | SyncAcquireResponseDeploymentVaultName + | any + | string; + +export const SyncAcquireResponseDeploymentTypeVault3 = { + Vault: "vault", } as const; -export type SyncAcquireResponseDeploymentModeMachineAddresses = ClosedEnum< - typeof SyncAcquireResponseDeploymentModeMachineAddresses +export type SyncAcquireResponseDeploymentTypeVault3 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeVault3 >; -export type SyncAcquireResponseDeploymentPublicEndpointTargetMachineAddresses = - { - mode: SyncAcquireResponseDeploymentModeMachineAddresses; - }; - -export type SyncAcquireResponseDeploymentPublicEndpointTargetUnion = - | SyncAcquireResponseDeploymentPublicEndpointTargetLoadBalancer - | SyncAcquireResponseDeploymentPublicEndpointTargetMachineAddresses - | any; - /** - * Domain configuration for the stack. - * - * @remarks - * - * When `custom_domains` is set, the specified resources use customer-provided - * domains and certificates. Otherwise, Alien auto-generates domains. + * Azure Key Vault binding configuration */ -export type SyncAcquireResponseDeploymentDomains = { +export type SyncAcquireResponseDeploymentExternalBindingsKeyVault = { /** - * Custom domain configuration per resource ID. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - customDomains?: - | { [k: string]: SyncAcquireResponseDeploymentCustomDomains } - | null - | undefined; - publicEndpointTarget?: - | SyncAcquireResponseDeploymentPublicEndpointTargetLoadBalancer - | SyncAcquireResponseDeploymentPublicEndpointTargetMachineAddresses + vaultName?: + | SyncAcquireResponseDeploymentVaultName | any + | string | null | undefined; + service: "key-vault"; + type: SyncAcquireResponseDeploymentTypeVault3; }; -export type SyncAcquireResponseDeploymentDomainsUnion = - | SyncAcquireResponseDeploymentDomains - | any; +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentVaultPrefixSecretRef2 = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentVaultPrefix2 = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncAcquireResponseDeploymentVaultPrefixSecretRef2; +}; /** - * External bindings for pre-existing infrastructure. + * Represents a value that can be either a concrete value, a template expression, * * @remarks - * Allows using existing resources (MinIO, Redis, shared Container Apps - * Environment, etc.) instead of having Alien provision them. - * Required for Kubernetes platform, optional for cloud platforms. + * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentStackSettingsExternalBindings = {}; +export type SyncAcquireResponseDeploymentVaultPrefixUnion2 = + | SyncAcquireResponseDeploymentVaultPrefix2 + | any + | string; -/** - * How heartbeat health checks are handled. - */ -export const SyncAcquireResponseDeploymentHeartbeats = { - Off: "off", - On: "on", +export const SyncAcquireResponseDeploymentTypeVault2 = { + Vault: "vault", } as const; +export type SyncAcquireResponseDeploymentTypeVault2 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeVault2 +>; + /** - * How heartbeat health checks are handled. + * GCP Secret Manager vault binding configuration */ -export type SyncAcquireResponseDeploymentHeartbeats = ClosedEnum< - typeof SyncAcquireResponseDeploymentHeartbeats ->; +export type SyncAcquireResponseDeploymentExternalBindingsSecretManager = { + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + vaultPrefix?: + | SyncAcquireResponseDeploymentVaultPrefix2 + | any + | string + | null + | undefined; + service: "secret-manager"; + type: SyncAcquireResponseDeploymentTypeVault2; +}; /** - * Optional provider-specific identity for a cloud-backed Kubernetes cluster. + * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentCloud = { - accountId?: string | null | undefined; - clusterId?: string | null | undefined; - clusterName?: string | null | undefined; - projectId?: string | null | undefined; - region?: string | null | undefined; - resourceGroup?: string | null | undefined; - subscriptionId?: string | null | undefined; +export type SyncAcquireResponseDeploymentVaultPrefixSecretRef1 = { + key: string; + name: string; }; -export type SyncAcquireResponseDeploymentCloudUnion = - | SyncAcquireResponseDeploymentCloud - | any; +export type SyncAcquireResponseDeploymentVaultPrefix1 = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncAcquireResponseDeploymentVaultPrefixSecretRef1; +}; /** - * Ownership model for the Kubernetes cluster. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ -export const SyncAcquireResponseDeploymentOwnership = { - Managed: "managed", - Existing: "existing", - External: "external", +export type SyncAcquireResponseDeploymentVaultPrefixUnion1 = + | SyncAcquireResponseDeploymentVaultPrefix1 + | any + | string; + +export const SyncAcquireResponseDeploymentTypeVault1 = { + Vault: "vault", } as const; -/** - * Ownership model for the Kubernetes cluster. - */ -export type SyncAcquireResponseDeploymentOwnership = ClosedEnum< - typeof SyncAcquireResponseDeploymentOwnership +export type SyncAcquireResponseDeploymentTypeVault1 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeVault1 >; /** - * Kubernetes cluster setup settings. + * AWS SSM Parameter Store vault binding configuration */ -export type SyncAcquireResponseDeploymentCluster = { - cloud?: SyncAcquireResponseDeploymentCloud | any | null | undefined; - /** - * Namespace where the Alien chart and application resources run. - */ - namespace?: string | null | undefined; +export type SyncAcquireResponseDeploymentExternalBindingsParameterStore = { /** - * Ownership model for the Kubernetes cluster. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - ownership: SyncAcquireResponseDeploymentOwnership; + vaultPrefix?: + | SyncAcquireResponseDeploymentVaultPrefix1 + | any + | string + | null + | undefined; + service: "parameter-store"; + type: SyncAcquireResponseDeploymentTypeVault1; }; -export type SyncAcquireResponseDeploymentClusterUnion = - | SyncAcquireResponseDeploymentCluster - | any; - -export type SyncAcquireResponseDeploymentCertificateNone2 = { - mode: "none"; +/** + * Represents a vault binding for secure secret management + */ +export type SyncAcquireResponseDeploymentExternalBindingsUnion5 = + | SyncAcquireResponseDeploymentExternalBindingsParameterStore + | SyncAcquireResponseDeploymentExternalBindingsSecretManager + | SyncAcquireResponseDeploymentExternalBindingsKeyVault + | SyncAcquireResponseDeploymentExternalBindingsKubernetesSecret + | SyncAcquireResponseDeploymentExternalBindingsLocalVault; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentDataDirSecretRef2 = { + key: string; + name: string; }; -export type SyncAcquireResponseDeploymentCertificateManagedTLSSecret2 = { - mode: "managedTlsSecret"; +export type SyncAcquireResponseDeploymentDataDir2 = { /** - * Secret name template. Runtime may substitute resource/deployment tokens. + * Reference to a Kubernetes Secret */ - secretNameTemplate: string; + secretRef: SyncAcquireResponseDeploymentDataDirSecretRef2; }; -export type SyncAcquireResponseDeploymentCertificateAwsAcmArn2 = { +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentRegistryUrlSecretRef = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentRegistryUrl = { /** - * Existing ACM certificate ARN. + * Reference to a Kubernetes Secret */ - certificateArn: string; - mode: "awsAcmArn"; + secretRef: SyncAcquireResponseDeploymentRegistryUrlSecretRef; }; -export type SyncAcquireResponseDeploymentCertificateManagedAcmImport2 = { - mode: "managedAcmImport"; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentRegistryUrlUnion = + | SyncAcquireResponseDeploymentRegistryUrl + | any + | string; + +export const SyncAcquireResponseDeploymentTypeArtifactRegistry4 = { + ArtifactRegistry: "artifact_registry", +} as const; +export type SyncAcquireResponseDeploymentTypeArtifactRegistry4 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeArtifactRegistry4 +>; + +/** + * Local container registry binding configuration. + * + * @remarks + * + * The local registry runs on localhost only and does not require authentication. + * Security boundary is the OS process isolation on the customer's machine. + * External image access is secured by the manager's registry proxy (deployment tokens). + */ +export type SyncAcquireResponseDeploymentExternalBindingsLocal = { /** - * ACM region. Defaults to the deployment region when omitted. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - region?: string | null | undefined; + dataDir?: any | null | undefined; /** - * Tags applied to runtime-imported ACM certificates. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - tags?: { [k: string]: string } | undefined; + registryUrl?: + | SyncAcquireResponseDeploymentRegistryUrl + | any + | string + | null + | undefined; + service: "local"; + type: SyncAcquireResponseDeploymentTypeArtifactRegistry4; }; /** - * Namespace-scoped Kubernetes TLS Secret reference. + * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentCertificateTLSSecretRef2 = { +export type SyncAcquireResponseDeploymentPullServiceAccountEmailSecretRef = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentPullServiceAccountEmail = { /** - * Secret namespace. Defaults to the release namespace when omitted. + * Reference to a Kubernetes Secret */ - namespace?: string | null | undefined; + secretRef: SyncAcquireResponseDeploymentPullServiceAccountEmailSecretRef; +}; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentPushServiceAccountEmailSecretRef = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentPushServiceAccountEmail = { /** - * Secret name. + * Reference to a Kubernetes Secret */ - secretName: string; - mode: "tlsSecretRef"; + secretRef: SyncAcquireResponseDeploymentPushServiceAccountEmailSecretRef; }; /** - * Certificate publication or reference mode for Kubernetes public endpoints. + * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentCertificateUnion2 = - | SyncAcquireResponseDeploymentCertificateTLSSecretRef2 - | SyncAcquireResponseDeploymentCertificateManagedAcmImport2 - | SyncAcquireResponseDeploymentCertificateAwsAcmArn2 - | SyncAcquireResponseDeploymentCertificateManagedTLSSecret2 - | SyncAcquireResponseDeploymentCertificateNone2; - -export const SyncAcquireResponseDeploymentModeCustom = { - Custom: "custom", -} as const; -export type SyncAcquireResponseDeploymentModeCustom = ClosedEnum< - typeof SyncAcquireResponseDeploymentModeCustom ->; +export type SyncAcquireResponseDeploymentRepositoryNameSecretRef = { + key: string; + name: string; +}; -export const SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum4 = - { - AzureApplicationGatewayForContainers: - "azureApplicationGatewayForContainers", - } as const; -export type SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum4 = - ClosedEnum< - typeof SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum4 - >; +export type SyncAcquireResponseDeploymentRepositoryName = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncAcquireResponseDeploymentRepositoryNameSecretRef; +}; -export type SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainers4 = - { - /** - * Optional ALB name when using BYO Application Gateway resources. - */ - albName?: string | null | undefined; - /** - * Optional ALB namespace when using BYO Application Gateway resources. - */ - albNamespace?: string | null | undefined; - /** - * Public or internal frontend exposure. - */ - frontend: string; - provider: - SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum4; - }; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentRepositoryNameUnion = + | SyncAcquireResponseDeploymentRepositoryName + | any + | string; -export const SyncAcquireResponseDeploymentProviderGkeGatewayEnum4 = { - GkeGateway: "gkeGateway", +export const SyncAcquireResponseDeploymentTypeArtifactRegistry3 = { + ArtifactRegistry: "artifact_registry", } as const; -export type SyncAcquireResponseDeploymentProviderGkeGatewayEnum4 = ClosedEnum< - typeof SyncAcquireResponseDeploymentProviderGkeGatewayEnum4 +export type SyncAcquireResponseDeploymentTypeArtifactRegistry3 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeArtifactRegistry3 >; -export type SyncAcquireResponseDeploymentProviderGkeGateway4 = { - provider: SyncAcquireResponseDeploymentProviderGkeGatewayEnum4; +/** + * Google Artifact Registry binding configuration + */ +export type SyncAcquireResponseDeploymentExternalBindingsGar = { + pullServiceAccountEmail?: any | null | undefined; + pushServiceAccountEmail?: any | null | undefined; /** - * Optional static address name for the Gateway frontend. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - staticAddressName?: string | null | undefined; + repositoryName?: + | SyncAcquireResponseDeploymentRepositoryName + | any + | string + | null + | undefined; + service: "gar"; + type: SyncAcquireResponseDeploymentTypeArtifactRegistry3; }; -export const SyncAcquireResponseDeploymentProviderAwsAlbEnum4 = { - AwsAlb: "awsAlb", -} as const; -export type SyncAcquireResponseDeploymentProviderAwsAlbEnum4 = ClosedEnum< - typeof SyncAcquireResponseDeploymentProviderAwsAlbEnum4 ->; +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentRegistryNameSecretRef = { + key: string; + name: string; +}; -export type SyncAcquireResponseDeploymentProviderAwsAlb4 = { - /** - * Optional ALB IP address type, such as `dualstack`. - */ - ipAddressType?: string | null | undefined; - provider: SyncAcquireResponseDeploymentProviderAwsAlbEnum4; - /** - * Internet-facing or internal ALB scheme. - */ - scheme: string; - /** - * Explicit subnet IDs when the profile cannot rely on controller discovery. - */ - subnetIds?: Array | undefined; +export type SyncAcquireResponseDeploymentRegistryName = { /** - * ALB target type, usually `ip`. + * Reference to a Kubernetes Secret */ - targetType: string; + secretRef: SyncAcquireResponseDeploymentRegistryNameSecretRef; }; -export type SyncAcquireResponseDeploymentProviderUnion4 = - | SyncAcquireResponseDeploymentProviderAwsAlb4 - | SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainers4 - | SyncAcquireResponseDeploymentProviderGkeGateway4 - | any; - /** - * Shared Gateway API route profile values. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentRouteGateway2 = { - /** - * Annotations applied to route objects. - */ - annotations?: { [k: string]: string } | undefined; - /** - * Route controller identifier, for example a cloud Gateway controller. - */ - controller?: string | null | undefined; - /** - * GatewayClass selected for generated Gateways. - */ - gatewayClassName: string; - /** - * Labels applied to route objects. - */ - labels?: { [k: string]: string } | undefined; - /** - * Listener port, usually 443. - */ - listenerPort: number; - provider?: - | SyncAcquireResponseDeploymentProviderAwsAlb4 - | SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainers4 - | SyncAcquireResponseDeploymentProviderGkeGateway4 - | any - | null - | undefined; - routeApi: "gateway"; -}; - -export const SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum3 = - { - AzureApplicationGatewayForContainers: - "azureApplicationGatewayForContainers", - } as const; -export type SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum3 = - ClosedEnum< - typeof SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum3 - >; - -export type SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainers3 = - { - /** - * Optional ALB name when using BYO Application Gateway resources. - */ - albName?: string | null | undefined; - /** - * Optional ALB namespace when using BYO Application Gateway resources. - */ - albNamespace?: string | null | undefined; - /** - * Public or internal frontend exposure. - */ - frontend: string; - provider: - SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum3; - }; +export type SyncAcquireResponseDeploymentRegistryNameUnion = + | SyncAcquireResponseDeploymentRegistryName + | any + | string; -export const SyncAcquireResponseDeploymentProviderGkeGatewayEnum3 = { - GkeGateway: "gkeGateway", -} as const; -export type SyncAcquireResponseDeploymentProviderGkeGatewayEnum3 = ClosedEnum< - typeof SyncAcquireResponseDeploymentProviderGkeGatewayEnum3 ->; +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentRepositoryPrefixSecretRef2 = { + key: string; + name: string; +}; -export type SyncAcquireResponseDeploymentProviderGkeGateway3 = { - provider: SyncAcquireResponseDeploymentProviderGkeGatewayEnum3; +export type SyncAcquireResponseDeploymentRepositoryPrefix2 = { /** - * Optional static address name for the Gateway frontend. + * Reference to a Kubernetes Secret */ - staticAddressName?: string | null | undefined; + secretRef: SyncAcquireResponseDeploymentRepositoryPrefixSecretRef2; }; -export const SyncAcquireResponseDeploymentProviderAwsAlbEnum3 = { - AwsAlb: "awsAlb", -} as const; -export type SyncAcquireResponseDeploymentProviderAwsAlbEnum3 = ClosedEnum< - typeof SyncAcquireResponseDeploymentProviderAwsAlbEnum3 ->; +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentResourceGroupNameSecretRef2 = { + key: string; + name: string; +}; -export type SyncAcquireResponseDeploymentProviderAwsAlb3 = { - /** - * Optional ALB IP address type, such as `dualstack`. - */ - ipAddressType?: string | null | undefined; - provider: SyncAcquireResponseDeploymentProviderAwsAlbEnum3; - /** - * Internet-facing or internal ALB scheme. - */ - scheme: string; - /** - * Explicit subnet IDs when the profile cannot rely on controller discovery. - */ - subnetIds?: Array | undefined; +export type SyncAcquireResponseDeploymentResourceGroupName2 = { /** - * ALB target type, usually `ip`. + * Reference to a Kubernetes Secret */ - targetType: string; + secretRef: SyncAcquireResponseDeploymentResourceGroupNameSecretRef2; }; -export type SyncAcquireResponseDeploymentProviderUnion3 = - | SyncAcquireResponseDeploymentProviderAwsAlb3 - | SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainers3 - | SyncAcquireResponseDeploymentProviderGkeGateway3 - | any; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentResourceGroupNameUnion2 = + | SyncAcquireResponseDeploymentResourceGroupName2 + | any + | string; + +export const SyncAcquireResponseDeploymentTypeArtifactRegistry2 = { + ArtifactRegistry: "artifact_registry", +} as const; +export type SyncAcquireResponseDeploymentTypeArtifactRegistry2 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeArtifactRegistry2 +>; /** - * Shared Ingress route profile values. + * Azure Container Registry binding configuration */ -export type SyncAcquireResponseDeploymentRouteIngress2 = { - /** - * Annotations applied to route objects. - */ - annotations?: { [k: string]: string } | undefined; - /** - * Route controller identifier, for example `eks.amazonaws.com/alb`. - */ - controller?: string | null | undefined; +export type SyncAcquireResponseDeploymentExternalBindingsAcr = { /** - * `spec.ingressClassName` for generated Ingresses. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - ingressClassName: string; + registryName?: + | SyncAcquireResponseDeploymentRegistryName + | any + | string + | null + | undefined; + repositoryPrefix?: any | null | undefined; /** - * Labels applied to route objects. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - labels?: { [k: string]: string } | undefined; - provider?: - | SyncAcquireResponseDeploymentProviderAwsAlb3 - | SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainers3 - | SyncAcquireResponseDeploymentProviderGkeGateway3 + resourceGroupName?: + | SyncAcquireResponseDeploymentResourceGroupName2 | any + | string | null | undefined; - routeApi: "ingress"; + service: "acr"; + type: SyncAcquireResponseDeploymentTypeArtifactRegistry2; }; /** - * Kubernetes route API selected for public endpoints. + * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentRouteUnion2 = - | SyncAcquireResponseDeploymentRouteIngress2 - | SyncAcquireResponseDeploymentRouteGateway2; +export type SyncAcquireResponseDeploymentPullRoleArnSecretRef = { + key: string; + name: string; +}; -export type SyncAcquireResponseDeploymentExposureCustom = { - /** - * Certificate publication or reference mode for Kubernetes public endpoints. - */ - certificate: - | SyncAcquireResponseDeploymentCertificateTLSSecretRef2 - | SyncAcquireResponseDeploymentCertificateManagedAcmImport2 - | SyncAcquireResponseDeploymentCertificateAwsAcmArn2 - | SyncAcquireResponseDeploymentCertificateManagedTLSSecret2 - | SyncAcquireResponseDeploymentCertificateNone2; - /** - * Hostname routed by the Kubernetes public endpoint. - */ - domain: string; - mode: SyncAcquireResponseDeploymentModeCustom; +export type SyncAcquireResponseDeploymentPullRoleArn = { /** - * Kubernetes route API selected for public endpoints. + * Reference to a Kubernetes Secret */ - route: - | SyncAcquireResponseDeploymentRouteIngress2 - | SyncAcquireResponseDeploymentRouteGateway2; + secretRef: SyncAcquireResponseDeploymentPullRoleArnSecretRef; }; -export type SyncAcquireResponseDeploymentCertificateNone1 = { - mode: "none"; +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentPushRoleArnSecretRef = { + key: string; + name: string; }; -export type SyncAcquireResponseDeploymentCertificateManagedTLSSecret1 = { - mode: "managedTlsSecret"; +export type SyncAcquireResponseDeploymentPushRoleArn = { /** - * Secret name template. Runtime may substitute resource/deployment tokens. + * Reference to a Kubernetes Secret */ - secretNameTemplate: string; + secretRef: SyncAcquireResponseDeploymentPushRoleArnSecretRef; }; -export type SyncAcquireResponseDeploymentCertificateAwsAcmArn1 = { - /** - * Existing ACM certificate ARN. - */ - certificateArn: string; - mode: "awsAcmArn"; +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentRepositoryPrefixSecretRef1 = { + key: string; + name: string; }; -export type SyncAcquireResponseDeploymentCertificateManagedAcmImport1 = { - mode: "managedAcmImport"; - /** - * ACM region. Defaults to the deployment region when omitted. - */ - region?: string | null | undefined; +export type SyncAcquireResponseDeploymentRepositoryPrefix1 = { /** - * Tags applied to runtime-imported ACM certificates. + * Reference to a Kubernetes Secret */ - tags?: { [k: string]: string } | undefined; + secretRef: SyncAcquireResponseDeploymentRepositoryPrefixSecretRef1; }; /** - * Namespace-scoped Kubernetes TLS Secret reference. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentCertificateTLSSecretRef1 = { - /** - * Secret namespace. Defaults to the release namespace when omitted. - */ - namespace?: string | null | undefined; - /** - * Secret name. +export type SyncAcquireResponseDeploymentRepositoryPrefixUnion = + | SyncAcquireResponseDeploymentRepositoryPrefix1 + | any + | string; + +export const SyncAcquireResponseDeploymentTypeArtifactRegistry1 = { + ArtifactRegistry: "artifact_registry", +} as const; +export type SyncAcquireResponseDeploymentTypeArtifactRegistry1 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeArtifactRegistry1 +>; + +/** + * AWS ECR (Elastic Container Registry) binding configuration + */ +export type SyncAcquireResponseDeploymentExternalBindingsEcr = { + pullRoleArn?: any | null | undefined; + pushRoleArn?: any | null | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - secretName: string; - mode: "tlsSecretRef"; + repositoryPrefix?: + | SyncAcquireResponseDeploymentRepositoryPrefix1 + | any + | string + | null + | undefined; + service: "ecr"; + type: SyncAcquireResponseDeploymentTypeArtifactRegistry1; }; /** - * Certificate publication or reference mode for Kubernetes public endpoints. + * Service-type based artifact registry binding that supports multiple registry providers */ -export type SyncAcquireResponseDeploymentCertificateUnion1 = - | SyncAcquireResponseDeploymentCertificateTLSSecretRef1 - | SyncAcquireResponseDeploymentCertificateManagedAcmImport1 - | SyncAcquireResponseDeploymentCertificateAwsAcmArn1 - | SyncAcquireResponseDeploymentCertificateManagedTLSSecret1 - | SyncAcquireResponseDeploymentCertificateNone1; +export type SyncAcquireResponseDeploymentExternalBindingsUnion4 = + | SyncAcquireResponseDeploymentExternalBindingsEcr + | SyncAcquireResponseDeploymentExternalBindingsAcr + | SyncAcquireResponseDeploymentExternalBindingsGar + | SyncAcquireResponseDeploymentExternalBindingsLocal; -export const SyncAcquireResponseDeploymentModeGenerated = { - Generated: "generated", -} as const; -export type SyncAcquireResponseDeploymentModeGenerated = ClosedEnum< - typeof SyncAcquireResponseDeploymentModeGenerated ->; +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentDataDirSecretRef1 = { + key: string; + name: string; +}; -export const SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum2 = - { - AzureApplicationGatewayForContainers: - "azureApplicationGatewayForContainers", - } as const; -export type SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum2 = - ClosedEnum< - typeof SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum2 - >; +export type SyncAcquireResponseDeploymentDataDir1 = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncAcquireResponseDeploymentDataDirSecretRef1; +}; -export type SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainers2 = - { - /** - * Optional ALB name when using BYO Application Gateway resources. - */ - albName?: string | null | undefined; - /** - * Optional ALB namespace when using BYO Application Gateway resources. - */ - albNamespace?: string | null | undefined; - /** - * Public or internal frontend exposure. - */ - frontend: string; - provider: - SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum2; - }; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentDataDirUnion1 = + | SyncAcquireResponseDeploymentDataDir1 + | any + | string; -export const SyncAcquireResponseDeploymentProviderGkeGatewayEnum2 = { - GkeGateway: "gkeGateway", -} as const; -export type SyncAcquireResponseDeploymentProviderGkeGatewayEnum2 = ClosedEnum< - typeof SyncAcquireResponseDeploymentProviderGkeGatewayEnum2 ->; +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentKeyPrefixSecretRef2 = { + key: string; + name: string; +}; -export type SyncAcquireResponseDeploymentProviderGkeGateway2 = { - provider: SyncAcquireResponseDeploymentProviderGkeGatewayEnum2; +export type SyncAcquireResponseDeploymentKeyPrefix2 = { /** - * Optional static address name for the Gateway frontend. + * Reference to a Kubernetes Secret */ - staticAddressName?: string | null | undefined; + secretRef: SyncAcquireResponseDeploymentKeyPrefixSecretRef2; }; -export const SyncAcquireResponseDeploymentProviderAwsAlbEnum2 = { - AwsAlb: "awsAlb", +export const SyncAcquireResponseDeploymentTypeKv5 = { + Kv: "kv", } as const; -export type SyncAcquireResponseDeploymentProviderAwsAlbEnum2 = ClosedEnum< - typeof SyncAcquireResponseDeploymentProviderAwsAlbEnum2 +export type SyncAcquireResponseDeploymentTypeKv5 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeKv5 >; -export type SyncAcquireResponseDeploymentProviderAwsAlb2 = { - /** - * Optional ALB IP address type, such as `dualstack`. - */ - ipAddressType?: string | null | undefined; - provider: SyncAcquireResponseDeploymentProviderAwsAlbEnum2; - /** - * Internet-facing or internal ALB scheme. - */ - scheme: string; +/** + * Local development KV binding configuration + */ +export type SyncAcquireResponseDeploymentExternalBindingsLocalKv = { /** - * Explicit subnet IDs when the profile cannot rely on controller discovery. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - subnetIds?: Array | undefined; + dataDir?: + | SyncAcquireResponseDeploymentDataDir1 + | any + | string + | null + | undefined; + keyPrefix?: any | null | undefined; + service: "local-kv"; + type: SyncAcquireResponseDeploymentTypeKv5; +}; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentConnectionUrlSecretRef = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentConnectionUrl = { /** - * ALB target type, usually `ip`. + * Reference to a Kubernetes Secret */ - targetType: string; + secretRef: SyncAcquireResponseDeploymentConnectionUrlSecretRef; }; -export type SyncAcquireResponseDeploymentProviderUnion2 = - | SyncAcquireResponseDeploymentProviderAwsAlb2 - | SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainers2 - | SyncAcquireResponseDeploymentProviderGkeGateway2 - | any; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentConnectionUrlUnion = + | SyncAcquireResponseDeploymentConnectionUrl + | any + | string; /** - * Shared Gateway API route profile values. + * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentRouteGateway1 = { - /** - * Annotations applied to route objects. - */ - annotations?: { [k: string]: string } | undefined; - /** - * Route controller identifier, for example a cloud Gateway controller. - */ - controller?: string | null | undefined; +export type SyncAcquireResponseDeploymentDatabaseSecretRef1 = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentDatabase1 = { /** - * GatewayClass selected for generated Gateways. + * Reference to a Kubernetes Secret */ - gatewayClassName: string; + secretRef: SyncAcquireResponseDeploymentDatabaseSecretRef1; +}; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentKeyPrefixSecretRef1 = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentKeyPrefix1 = { /** - * Labels applied to route objects. + * Reference to a Kubernetes Secret */ - labels?: { [k: string]: string } | undefined; + secretRef: SyncAcquireResponseDeploymentKeyPrefixSecretRef1; +}; + +export const SyncAcquireResponseDeploymentTypeKv4 = { + Kv: "kv", +} as const; +export type SyncAcquireResponseDeploymentTypeKv4 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeKv4 +>; + +/** + * Redis KV binding configuration + */ +export type SyncAcquireResponseDeploymentExternalBindingsRedis = { /** - * Listener port, usually 443. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - listenerPort: number; - provider?: - | SyncAcquireResponseDeploymentProviderAwsAlb2 - | SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainers2 - | SyncAcquireResponseDeploymentProviderGkeGateway2 + connectionUrl?: + | SyncAcquireResponseDeploymentConnectionUrl | any + | string | null | undefined; - routeApi: "gateway"; + database?: any | null | undefined; + keyPrefix?: any | null | undefined; + service: "redis"; + type: SyncAcquireResponseDeploymentTypeKv4; }; -export const SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum1 = - { - AzureApplicationGatewayForContainers: - "azureApplicationGatewayForContainers", - } as const; -export type SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum1 = - ClosedEnum< - typeof SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum1 - >; - -export type SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainers1 = - { - /** - * Optional ALB name when using BYO Application Gateway resources. - */ - albName?: string | null | undefined; - /** - * Optional ALB namespace when using BYO Application Gateway resources. - */ - albNamespace?: string | null | undefined; - /** - * Public or internal frontend exposure. - */ - frontend: string; - provider: - SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum1; - }; - -export const SyncAcquireResponseDeploymentProviderGkeGatewayEnum1 = { - GkeGateway: "gkeGateway", -} as const; -export type SyncAcquireResponseDeploymentProviderGkeGatewayEnum1 = ClosedEnum< - typeof SyncAcquireResponseDeploymentProviderGkeGatewayEnum1 ->; +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentAccountNameSecretRef2 = { + key: string; + name: string; +}; -export type SyncAcquireResponseDeploymentProviderGkeGateway1 = { - provider: SyncAcquireResponseDeploymentProviderGkeGatewayEnum1; +export type SyncAcquireResponseDeploymentAccountName2 = { /** - * Optional static address name for the Gateway frontend. + * Reference to a Kubernetes Secret */ - staticAddressName?: string | null | undefined; + secretRef: SyncAcquireResponseDeploymentAccountNameSecretRef2; }; -export const SyncAcquireResponseDeploymentProviderAwsAlbEnum1 = { - AwsAlb: "awsAlb", -} as const; -export type SyncAcquireResponseDeploymentProviderAwsAlbEnum1 = ClosedEnum< - typeof SyncAcquireResponseDeploymentProviderAwsAlbEnum1 ->; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentAccountNameUnion2 = + | SyncAcquireResponseDeploymentAccountName2 + | any + | string; -export type SyncAcquireResponseDeploymentProviderAwsAlb1 = { - /** - * Optional ALB IP address type, such as `dualstack`. - */ - ipAddressType?: string | null | undefined; - provider: SyncAcquireResponseDeploymentProviderAwsAlbEnum1; - /** - * Internet-facing or internal ALB scheme. - */ - scheme: string; - /** - * Explicit subnet IDs when the profile cannot rely on controller discovery. - */ - subnetIds?: Array | undefined; +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentResourceGroupNameSecretRef1 = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentResourceGroupName1 = { /** - * ALB target type, usually `ip`. + * Reference to a Kubernetes Secret */ - targetType: string; + secretRef: SyncAcquireResponseDeploymentResourceGroupNameSecretRef1; }; -export type SyncAcquireResponseDeploymentProviderUnion1 = - | SyncAcquireResponseDeploymentProviderAwsAlb1 - | SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainers1 - | SyncAcquireResponseDeploymentProviderGkeGateway1 - | any; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentResourceGroupNameUnion1 = + | SyncAcquireResponseDeploymentResourceGroupName1 + | any + | string; /** - * Shared Ingress route profile values. + * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentRouteIngress1 = { +export type SyncAcquireResponseDeploymentTableNameSecretRef2 = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentTableName2 = { /** - * Annotations applied to route objects. + * Reference to a Kubernetes Secret */ - annotations?: { [k: string]: string } | undefined; + secretRef: SyncAcquireResponseDeploymentTableNameSecretRef2; +}; + +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentTableNameUnion2 = + | SyncAcquireResponseDeploymentTableName2 + | any + | string; + +export const SyncAcquireResponseDeploymentTypeKv3 = { + Kv: "kv", +} as const; +export type SyncAcquireResponseDeploymentTypeKv3 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeKv3 +>; + +/** + * Azure Table Storage KV binding configuration + */ +export type SyncAcquireResponseDeploymentExternalBindingsTablestorage = { /** - * Route controller identifier, for example `eks.amazonaws.com/alb`. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - controller?: string | null | undefined; + accountName?: + | SyncAcquireResponseDeploymentAccountName2 + | any + | string + | null + | undefined; /** - * `spec.ingressClassName` for generated Ingresses. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - ingressClassName: string; + resourceGroupName?: + | SyncAcquireResponseDeploymentResourceGroupName1 + | any + | string + | null + | undefined; /** - * Labels applied to route objects. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - labels?: { [k: string]: string } | undefined; - provider?: - | SyncAcquireResponseDeploymentProviderAwsAlb1 - | SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainers1 - | SyncAcquireResponseDeploymentProviderGkeGateway1 + tableName?: + | SyncAcquireResponseDeploymentTableName2 | any + | string | null | undefined; - routeApi: "ingress"; + service: "tablestorage"; + type: SyncAcquireResponseDeploymentTypeKv3; }; /** - * Kubernetes route API selected for public endpoints. + * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentRouteUnion1 = - | SyncAcquireResponseDeploymentRouteIngress1 - | SyncAcquireResponseDeploymentRouteGateway1; +export type SyncAcquireResponseDeploymentCollectionNameSecretRef = { + key: string; + name: string; +}; -export type SyncAcquireResponseDeploymentExposureGenerated = { - /** - * Certificate publication or reference mode for Kubernetes public endpoints. - */ - certificate: - | SyncAcquireResponseDeploymentCertificateTLSSecretRef1 - | SyncAcquireResponseDeploymentCertificateManagedAcmImport1 - | SyncAcquireResponseDeploymentCertificateAwsAcmArn1 - | SyncAcquireResponseDeploymentCertificateManagedTLSSecret1 - | SyncAcquireResponseDeploymentCertificateNone1; - mode: SyncAcquireResponseDeploymentModeGenerated; +export type SyncAcquireResponseDeploymentCollectionName = { /** - * Kubernetes route API selected for public endpoints. + * Reference to a Kubernetes Secret */ - route: - | SyncAcquireResponseDeploymentRouteIngress1 - | SyncAcquireResponseDeploymentRouteGateway1; + secretRef: SyncAcquireResponseDeploymentCollectionNameSecretRef; }; -export const SyncAcquireResponseDeploymentModeDisabled = { - Disabled: "disabled", -} as const; -export type SyncAcquireResponseDeploymentModeDisabled = ClosedEnum< - typeof SyncAcquireResponseDeploymentModeDisabled ->; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentCollectionNameUnion = + | SyncAcquireResponseDeploymentCollectionName + | any + | string; -export type SyncAcquireResponseDeploymentExposureDisabled = { - mode: SyncAcquireResponseDeploymentModeDisabled; +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentDatabaseIdSecretRef = { + key: string; + name: string; }; -export type SyncAcquireResponseDeploymentExposureUnion = - | SyncAcquireResponseDeploymentExposureCustom - | SyncAcquireResponseDeploymentExposureGenerated - | SyncAcquireResponseDeploymentExposureDisabled - | any; +export type SyncAcquireResponseDeploymentDatabaseId = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncAcquireResponseDeploymentDatabaseIdSecretRef; +}; /** - * Kubernetes runtime substrate configuration. + * Represents a value that can be either a concrete value, a template expression, * * @remarks - * - * This controls how setup chooses the cluster backing `Platform::Kubernetes` - * deployments. When omitted, cloud-backed Kubernetes deployments default to a - * managed cluster and generic/on-prem Kubernetes defaults to an external - * cluster. + * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentKubernetes = { - cluster?: SyncAcquireResponseDeploymentCluster | any | null | undefined; - exposure?: - | SyncAcquireResponseDeploymentExposureCustom - | SyncAcquireResponseDeploymentExposureGenerated - | SyncAcquireResponseDeploymentExposureDisabled - | any - | null - | undefined; +export type SyncAcquireResponseDeploymentDatabaseIdUnion = + | SyncAcquireResponseDeploymentDatabaseId + | any + | string; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentProjectIdSecretRef = { + key: string; + name: string; }; -export type SyncAcquireResponseDeploymentKubernetesUnion = - | SyncAcquireResponseDeploymentKubernetes - | any; +export type SyncAcquireResponseDeploymentProjectId = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncAcquireResponseDeploymentProjectIdSecretRef; +}; -export const SyncAcquireResponseDeploymentTypeByoVnetAzure = { - ByoVnetAzure: "byo-vnet-azure", +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentProjectIdUnion = + | SyncAcquireResponseDeploymentProjectId + | any + | string; + +export const SyncAcquireResponseDeploymentTypeKv2 = { + Kv: "kv", } as const; -export type SyncAcquireResponseDeploymentTypeByoVnetAzure = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeByoVnetAzure +export type SyncAcquireResponseDeploymentTypeKv2 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeKv2 >; -export type SyncAcquireResponseDeploymentNetworkByoVnetAzure = { - /** - * Name of the dedicated classic Application Gateway subnet within the VNet. - */ - applicationGatewaySubnetName?: string | null | undefined; +/** + * GCP Firestore KV binding configuration + */ +export type SyncAcquireResponseDeploymentExternalBindingsFirestore = { /** - * Name of the dedicated subnet that hosts Private Endpoints (e.g. for a + * Represents a value that can be either a concrete value, a template expression, * * @remarks - * Postgres Flexible Server). A Private Endpoint must not share the private - * subnet, which is already claimed by the Container Apps environment's - * `infrastructure_subnet_id`. Required only when the stack contains a - * Postgres resource; otherwise unused. - */ - privateEndpointSubnetName?: string | null | undefined; - /** - * Name of the private subnet within the VNet + * or a reference to a Kubernetes Secret */ - privateSubnetName: string; + collectionName?: + | SyncAcquireResponseDeploymentCollectionName + | any + | string + | null + | undefined; /** - * Name of the public subnet within the VNet + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - publicSubnetName: string; - type: SyncAcquireResponseDeploymentTypeByoVnetAzure; + databaseId?: + | SyncAcquireResponseDeploymentDatabaseId + | any + | string + | null + | undefined; /** - * The full resource ID of the existing VNet + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - vnetResourceId: string; + projectId?: + | SyncAcquireResponseDeploymentProjectId + | any + | string + | null + | undefined; + service: "firestore"; + type: SyncAcquireResponseDeploymentTypeKv2; }; -export const SyncAcquireResponseDeploymentTypeByoVpcGcp = { - ByoVpcGcp: "byo-vpc-gcp", -} as const; -export type SyncAcquireResponseDeploymentTypeByoVpcGcp = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeByoVpcGcp ->; +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentEndpointUrlSecretRef = { + key: string; + name: string; +}; -export type SyncAcquireResponseDeploymentNetworkByoVpcGcp = { - /** - * The name of the existing VPC network - */ - networkName: string; - /** - * The region of the subnet - */ - region: string; +export type SyncAcquireResponseDeploymentEndpointUrl = { /** - * The name of the subnet to use + * Reference to a Kubernetes Secret */ - subnetName: string; - type: SyncAcquireResponseDeploymentTypeByoVpcGcp; + secretRef: SyncAcquireResponseDeploymentEndpointUrlSecretRef; }; -export const SyncAcquireResponseDeploymentTypeByoVpcAws = { - ByoVpcAws: "byo-vpc-aws", -} as const; -export type SyncAcquireResponseDeploymentTypeByoVpcAws = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeByoVpcAws ->; +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentRegionSecretRef = { + key: string; + name: string; +}; -export type SyncAcquireResponseDeploymentNetworkByoVpcAws = { - /** - * IDs of private subnets - */ - privateSubnetIds: Array; - /** - * IDs of public subnets (required for public ingress) - */ - publicSubnetIds: Array; +export type SyncAcquireResponseDeploymentRegion = { /** - * Optional security group IDs to use + * Reference to a Kubernetes Secret */ - securityGroupIds?: Array | undefined; - type: SyncAcquireResponseDeploymentTypeByoVpcAws; + secretRef: SyncAcquireResponseDeploymentRegionSecretRef; +}; + +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentRegionUnion = + | SyncAcquireResponseDeploymentRegion + | any + | string; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentTableNameSecretRef1 = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentTableName1 = { /** - * The ID of the existing VPC + * Reference to a Kubernetes Secret */ - vpcId: string; + secretRef: SyncAcquireResponseDeploymentTableNameSecretRef1; }; -export const SyncAcquireResponseDeploymentTypeCreate = { - Create: "create", +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentTableNameUnion1 = + | SyncAcquireResponseDeploymentTableName1 + | any + | string; + +export const SyncAcquireResponseDeploymentTypeKv1 = { + Kv: "kv", } as const; -export type SyncAcquireResponseDeploymentTypeCreate = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeCreate +export type SyncAcquireResponseDeploymentTypeKv1 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeKv1 >; -export type SyncAcquireResponseDeploymentNetworkCreate = { +/** + * AWS DynamoDB KV binding configuration + */ +export type SyncAcquireResponseDeploymentExternalBindingsDynamodb = { + endpointUrl?: any | null | undefined; /** - * Number of availability zones (default: 2). + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - availabilityZones?: number | undefined; + region?: + | SyncAcquireResponseDeploymentRegion + | any + | string + | null + | undefined; /** - * VPC/VNet CIDR block. If not specified, auto-generated from stack ID + * Represents a value that can be either a concrete value, a template expression, * * @remarks - * to reduce conflicts (e.g., "10.{hash}.0.0/16"). + * or a reference to a Kubernetes Secret */ - cidr?: string | null | undefined; - type: SyncAcquireResponseDeploymentTypeCreate; + tableName?: + | SyncAcquireResponseDeploymentTableName1 + | any + | string + | null + | undefined; + service: "dynamodb"; + type: SyncAcquireResponseDeploymentTypeKv1; }; -export const SyncAcquireResponseDeploymentTypeUseDefault = { - UseDefault: "use-default", -} as const; -export type SyncAcquireResponseDeploymentTypeUseDefault = ClosedEnum< - typeof SyncAcquireResponseDeploymentTypeUseDefault ->; +/** + * Represents a KV binding for key-value storage across platforms + */ +export type SyncAcquireResponseDeploymentExternalBindingsUnion3 = + | SyncAcquireResponseDeploymentExternalBindingsDynamodb + | SyncAcquireResponseDeploymentExternalBindingsFirestore + | SyncAcquireResponseDeploymentExternalBindingsTablestorage + | SyncAcquireResponseDeploymentExternalBindingsRedis + | SyncAcquireResponseDeploymentExternalBindingsLocalKv; -export type SyncAcquireResponseDeploymentNetworkUseDefault = { - type: SyncAcquireResponseDeploymentTypeUseDefault; +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentQueuePathSecretRef = { + key: string; + name: string; }; -export type SyncAcquireResponseDeploymentNetworkUnion = - | SyncAcquireResponseDeploymentNetworkByoVpcAws - | SyncAcquireResponseDeploymentNetworkByoVpcGcp - | SyncAcquireResponseDeploymentNetworkByoVnetAzure - | SyncAcquireResponseDeploymentNetworkUseDefault - | SyncAcquireResponseDeploymentNetworkCreate - | any; +export type SyncAcquireResponseDeploymentQueuePath = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncAcquireResponseDeploymentQueuePathSecretRef; +}; /** - * How telemetry (logs, metrics, traces) is handled. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ -export const SyncAcquireResponseDeploymentTelemetry = { - Off: "off", - Auto: "auto", - ApprovalRequired: "approval-required", +export type SyncAcquireResponseDeploymentQueuePathUnion = + | SyncAcquireResponseDeploymentQueuePath + | any + | string; + +export const SyncAcquireResponseDeploymentTypeQueue4 = { + Queue: "queue", } as const; -/** - * How telemetry (logs, metrics, traces) is handled. - */ -export type SyncAcquireResponseDeploymentTelemetry = ClosedEnum< - typeof SyncAcquireResponseDeploymentTelemetry +export type SyncAcquireResponseDeploymentTypeQueue4 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeQueue4 >; /** - * How updates are delivered to the deployment. + * Local queue parameters */ -export const SyncAcquireResponseDeploymentUpdates = { - Auto: "auto", - ApprovalRequired: "approval-required", -} as const; +export type SyncAcquireResponseDeploymentExternalBindingsLocalQueue = { + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + queuePath?: + | SyncAcquireResponseDeploymentQueuePath + | any + | string + | null + | undefined; + service: "local-queue"; + type: SyncAcquireResponseDeploymentTypeQueue4; +}; + /** - * How updates are delivered to the deployment. + * Reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentUpdates = ClosedEnum< - typeof SyncAcquireResponseDeploymentUpdates ->; +export type SyncAcquireResponseDeploymentNamespaceSecretRef1 = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentNamespace1 = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncAcquireResponseDeploymentNamespaceSecretRef1; +}; /** - * User-customizable deployment settings specified at deploy time. + * Represents a value that can be either a concrete value, a template expression, * * @remarks - * - * These settings are provided by the customer via CloudFormation parameters, - * Terraform attributes, CLI flags, or Helm values. They customize how the - * deployment runs and what capabilities are enabled. - * - * **Key distinction**: StackSettings is user-customizable, while ManagementConfig - * is platform-derived (from the Manager's ServiceAccount). + * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentStackSettings = { - compute?: SyncAcquireResponseDeploymentCompute | any | null | undefined; +export type SyncAcquireResponseDeploymentNamespaceUnion1 = + | SyncAcquireResponseDeploymentNamespace1 + | any + | string; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentQueueNameSecretRef = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentQueueName = { /** - * Deployment model: how updates are delivered to the remote environment. + * Reference to a Kubernetes Secret */ - deploymentModel?: SyncAcquireResponseDeploymentDeploymentModel | undefined; - domains?: SyncAcquireResponseDeploymentDomains | any | null | undefined; + secretRef: SyncAcquireResponseDeploymentQueueNameSecretRef; +}; + +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentQueueNameUnion = + | SyncAcquireResponseDeploymentQueueName + | any + | string; + +export const SyncAcquireResponseDeploymentTypeQueue3 = { + Queue: "queue", +} as const; +export type SyncAcquireResponseDeploymentTypeQueue3 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeQueue3 +>; + +/** + * Azure Service Bus parameters + */ +export type SyncAcquireResponseDeploymentExternalBindingsServicebus = { /** - * External bindings for pre-existing infrastructure. + * Represents a value that can be either a concrete value, a template expression, * * @remarks - * Allows using existing resources (MinIO, Redis, shared Container Apps - * Environment, etc.) instead of having Alien provision them. - * Required for Kubernetes platform, optional for cloud platforms. + * or a reference to a Kubernetes Secret */ - externalBindings?: - | SyncAcquireResponseDeploymentStackSettingsExternalBindings + namespace?: + | SyncAcquireResponseDeploymentNamespace1 + | any + | string | null | undefined; /** - * How heartbeat health checks are handled. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - heartbeats?: SyncAcquireResponseDeploymentHeartbeats | undefined; - kubernetes?: SyncAcquireResponseDeploymentKubernetes | any | null | undefined; - network?: - | SyncAcquireResponseDeploymentNetworkByoVpcAws - | SyncAcquireResponseDeploymentNetworkByoVpcGcp - | SyncAcquireResponseDeploymentNetworkByoVnetAzure - | SyncAcquireResponseDeploymentNetworkUseDefault - | SyncAcquireResponseDeploymentNetworkCreate + queueName?: + | SyncAcquireResponseDeploymentQueueName | any + | string | null | undefined; + service: "servicebus"; + type: SyncAcquireResponseDeploymentTypeQueue3; +}; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentSubscriptionSecretRef = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentSubscription = { /** - * How telemetry (logs, metrics, traces) is handled. + * Reference to a Kubernetes Secret */ - telemetry?: SyncAcquireResponseDeploymentTelemetry | undefined; + secretRef: SyncAcquireResponseDeploymentSubscriptionSecretRef; +}; + +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentSubscriptionUnion = + | SyncAcquireResponseDeploymentSubscription + | any + | string; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentTopicSecretRef = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentTopic = { /** - * How updates are delivered to the deployment. + * Reference to a Kubernetes Secret */ - updates?: SyncAcquireResponseDeploymentUpdates | undefined; + secretRef: SyncAcquireResponseDeploymentTopicSecretRef; }; /** - * Deployment configuration + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ -export type SyncAcquireResponseDeploymentConfig = { +export type SyncAcquireResponseDeploymentTopicUnion = + | SyncAcquireResponseDeploymentTopic + | any + | string; + +export const SyncAcquireResponseDeploymentTypeQueue2 = { + Queue: "queue", +} as const; +export type SyncAcquireResponseDeploymentTypeQueue2 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeQueue2 +>; + +/** + * GCP Pub/Sub parameters + */ +export type SyncAcquireResponseDeploymentExternalBindingsPubsub = { /** - * Allow frozen resource changes during updates + * Represents a value that can be either a concrete value, a template expression, * * @remarks - * When true, skips the frozen resources compatibility check. - * This requires running with elevated cloud credentials. + * or a reference to a Kubernetes Secret */ - allowFrozenChanges?: boolean | undefined; - basePlatform?: - | SyncAcquireResponseDeploymentBasePlatformEnum - | any - | null - | undefined; - computeBackend?: - | SyncAcquireResponseDeploymentComputeBackendHorizon + subscription?: + | SyncAcquireResponseDeploymentSubscription | any + | string | null | undefined; /** - * Human-readable deployment name for cloud console metadata. - * - * @remarks - * - * This is separate from the physical resource prefix in StackState. It is - * used only for display text such as IAM role descriptions, service - * account descriptions, and custom role titles. - */ - deploymentName?: string | null | undefined; - /** - * Deployment token for pull authentication with the manager's registry. + * Represents a value that can be either a concrete value, a template expression, * * @remarks - * - * Used by controllers to configure registry credentials so cloud platforms - * and K8s can pull images from the manager's `/v2/` endpoint. + * or a reference to a Kubernetes Secret */ - deploymentToken?: string | null | undefined; - domainMetadata?: - | SyncAcquireResponseDeploymentDomainMetadata - | any - | null - | undefined; - /** - * Snapshot of environment variables at a point in time - */ - environmentVariables: SyncAcquireResponseDeploymentEnvironmentVariables; + topic?: SyncAcquireResponseDeploymentTopic | any | string | null | undefined; + service: "pubsub"; + type: SyncAcquireResponseDeploymentTypeQueue2; +}; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentQueueUrlSecretRef = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentQueueUrl = { /** - * Map from resource ID to external binding. - * - * @remarks - * - * Validated at runtime: binding type must match resource type. + * Reference to a Kubernetes Secret */ - externalBindings?: { - [k: string]: - | SyncAcquireResponseDeploymentExternalBindingsContainerAppsEnvironment - | SyncAcquireResponseDeploymentExternalBindingsS3 - | SyncAcquireResponseDeploymentExternalBindingsBlob - | SyncAcquireResponseDeploymentExternalBindingsGcs - | SyncAcquireResponseDeploymentExternalBindingsLocalStorage - | SyncAcquireResponseDeploymentExternalBindingsSqs - | SyncAcquireResponseDeploymentExternalBindingsPubsub - | SyncAcquireResponseDeploymentExternalBindingsServicebus - | SyncAcquireResponseDeploymentExternalBindingsLocalQueue - | SyncAcquireResponseDeploymentExternalBindingsDynamodb - | SyncAcquireResponseDeploymentExternalBindingsFirestore - | SyncAcquireResponseDeploymentExternalBindingsTablestorage - | SyncAcquireResponseDeploymentExternalBindingsRedis - | SyncAcquireResponseDeploymentExternalBindingsLocalKv - | SyncAcquireResponseDeploymentExternalBindingsEcr - | SyncAcquireResponseDeploymentExternalBindingsAcr - | SyncAcquireResponseDeploymentExternalBindingsGar - | SyncAcquireResponseDeploymentExternalBindingsLocal - | SyncAcquireResponseDeploymentExternalBindingsParameterStore - | SyncAcquireResponseDeploymentExternalBindingsSecretManager - | SyncAcquireResponseDeploymentExternalBindingsKeyVault - | SyncAcquireResponseDeploymentExternalBindingsKubernetesSecret - | SyncAcquireResponseDeploymentExternalBindingsLocalVault - | SyncAcquireResponseDeploymentExternalBindingsAurora - | SyncAcquireResponseDeploymentExternalBindingsCloudSQL - | SyncAcquireResponseDeploymentExternalBindingsFlexibleServer - | SyncAcquireResponseDeploymentExternalBindingsExternal - | SyncAcquireResponseDeploymentExternalBindingsLocalPostgres; - } | undefined; + secretRef: SyncAcquireResponseDeploymentQueueUrlSecretRef; +}; + +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentQueueUrlUnion = + | SyncAcquireResponseDeploymentQueueUrl + | any + | string; + +export const SyncAcquireResponseDeploymentTypeQueue1 = { + Queue: "queue", +} as const; +export type SyncAcquireResponseDeploymentTypeQueue1 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeQueue1 +>; + +/** + * AWS SQS queue parameters + */ +export type SyncAcquireResponseDeploymentExternalBindingsSqs = { /** - * DNS-style label domain used for Kubernetes resource ownership labels. + * Represents a value that can be either a concrete value, a template expression, * * @remarks - * - * Defaults to `alien.dev` when absent. Whitelabeled Operator builds set this - * so generated workloads and optional log collectors share the same label - * namespace. + * or a reference to a Kubernetes Secret */ - labelDomain?: string | null | undefined; - managementConfig?: - | SyncAcquireResponseDeploymentManagementConfigAzure - | SyncAcquireResponseDeploymentManagementConfigAws - | SyncAcquireResponseDeploymentManagementConfigGcp - | SyncAcquireResponseDeploymentManagementConfigKubernetes + queueUrl?: + | SyncAcquireResponseDeploymentQueueUrl | any + | string | null | undefined; + service: "sqs"; + type: SyncAcquireResponseDeploymentTypeQueue1; +}; + +/** + * Binding parameters for Queue at runtime or in templates. + */ +export type SyncAcquireResponseDeploymentExternalBindingsUnion2 = + | SyncAcquireResponseDeploymentExternalBindingsSqs + | SyncAcquireResponseDeploymentExternalBindingsPubsub + | SyncAcquireResponseDeploymentExternalBindingsServicebus + | SyncAcquireResponseDeploymentExternalBindingsLocalQueue; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentStoragePathSecretRef = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentStoragePath = { /** - * Manager base URL (e.g., "https://manager.alien.dev"). - * - * @remarks - * - * The manager IS the container registry — its `/v2/` endpoint serves as - * the OCI Distribution API. Controllers derive the proxy host from this - * to configure pull auth (RegistryCredentials, imagePullSecrets). - * - * When None (e.g., `alien dev`), controllers use image URIs as-is. + * Reference to a Kubernetes Secret */ - managerUrl?: string | null | undefined; - monitoring?: SyncAcquireResponseDeploymentMonitoring | any | null | undefined; + secretRef: SyncAcquireResponseDeploymentStoragePathSecretRef; +}; + +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentStoragePathUnion = + | SyncAcquireResponseDeploymentStoragePath + | any + | string; + +export const SyncAcquireResponseDeploymentTypeStorage4 = { + Storage: "storage", +} as const; +export type SyncAcquireResponseDeploymentTypeStorage4 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeStorage4 +>; + +/** + * Local filesystem storage binding configuration + */ +export type SyncAcquireResponseDeploymentExternalBindingsLocalStorage = { /** - * Native image registry host+prefix for platforms that require it. + * Represents a value that can be either a concrete value, a template expression, * * @remarks - * - * Lambda (ECR) and Cloud Run (GAR) require native registry URIs. Other - * runtimes, including Azure Container Apps, pull through the manager's - * registry proxy. - * - * Derived by the manager from the artifact registry binding: - * - ECR: `{account_id}.dkr.ecr.{region}.amazonaws.com/{repository_prefix}` - * - GAR: `{region}-docker.pkg.dev/{project_id}/{repository_name}` + * or a reference to a Kubernetes Secret */ - nativeImageHost?: string | null | undefined; + storagePath?: + | SyncAcquireResponseDeploymentStoragePath + | any + | string + | null + | undefined; + service: "local-storage"; + type: SyncAcquireResponseDeploymentTypeStorage4; +}; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentBucketNameSecretRef2 = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentBucketName2 = { /** - * When true the observe pass reports raw resources across every namespace - * - * @remarks - * (cluster scope); otherwise it stays within the operator's own namespace. - * The label selector, if any, still filters within whichever scope applies. - * Ignored by cloud observers. + * Reference to a Kubernetes Secret */ - observeAllNamespaces?: boolean | undefined; + secretRef: SyncAcquireResponseDeploymentBucketNameSecretRef2; +}; + +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentBucketNameUnion2 = + | SyncAcquireResponseDeploymentBucketName2 + | any + | string; + +export const SyncAcquireResponseDeploymentTypeStorage3 = { + Storage: "storage", +} as const; +export type SyncAcquireResponseDeploymentTypeStorage3 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeStorage3 +>; + +/** + * Google Cloud Storage binding configuration + */ +export type SyncAcquireResponseDeploymentExternalBindingsGcs = { /** - * Kubernetes label selector that narrows which raw resources the observe + * Represents a value that can be either a concrete value, a template expression, * * @remarks - * pass reports (e.g. `app.kubernetes.io/part-of=my-app`). `None` observes - * everything in the namespace. Ignored by cloud observers. + * or a reference to a Kubernetes Secret */ - observeLabelSelector?: string | null | undefined; + bucketName?: + | SyncAcquireResponseDeploymentBucketName2 + | any + | string + | null + | undefined; + service: "gcs"; + type: SyncAcquireResponseDeploymentTypeStorage3; +}; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentAccountNameSecretRef1 = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentAccountName1 = { /** - * Public endpoint URLs for exposed resources (optional override). - * - * @remarks - * - * Use this only when a caller already knows the public URL. Managed public - * endpoint flows should prefer `domain_metadata` plus controller-reported - * load balancer outputs so DNS, certificate renewal, and route readiness - * stay tied to the resource state. - * - * If not set, platforms determine public endpoint URLs from other sources: - * - Managed DNS/TLS flows: `domain_metadata` FQDN or load balancer DNS - * - Local: `http://localhost:{allocated_port}` - * - Custom or disabled exposure: no public endpoint URL unless a controller reports one - * - * Outer key: resource ID. Inner key: endpoint name. Value: public URL. + * Reference to a Kubernetes Secret */ - publicEndpoints?: { [k: string]: { [k: string]: string } } | null | undefined; + secretRef: SyncAcquireResponseDeploymentAccountNameSecretRef1; +}; + +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentAccountNameUnion1 = + | SyncAcquireResponseDeploymentAccountName1 + | any + | string; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentContainerNameSecretRef = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentContainerName = { /** - * User-customizable deployment settings specified at deploy time. + * Reference to a Kubernetes Secret + */ + secretRef: SyncAcquireResponseDeploymentContainerNameSecretRef; +}; + +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentContainerNameUnion = + | SyncAcquireResponseDeploymentContainerName + | any + | string; + +export const SyncAcquireResponseDeploymentTypeStorage2 = { + Storage: "storage", +} as const; +export type SyncAcquireResponseDeploymentTypeStorage2 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeStorage2 +>; + +/** + * Azure Blob Storage binding configuration + */ +export type SyncAcquireResponseDeploymentExternalBindingsBlob = { + /** + * Represents a value that can be either a concrete value, a template expression, * * @remarks + * or a reference to a Kubernetes Secret + */ + accountName?: + | SyncAcquireResponseDeploymentAccountName1 + | any + | string + | null + | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, * - * These settings are provided by the customer via CloudFormation parameters, - * Terraform attributes, CLI flags, or Helm values. They customize how the - * deployment runs and what capabilities are enabled. + * @remarks + * or a reference to a Kubernetes Secret + */ + containerName?: + | SyncAcquireResponseDeploymentContainerName + | any + | string + | null + | undefined; + service: "blob"; + type: SyncAcquireResponseDeploymentTypeStorage2; +}; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentBucketNameSecretRef1 = { + key: string; + name: string; +}; + +export type SyncAcquireResponseDeploymentBucketName1 = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncAcquireResponseDeploymentBucketNameSecretRef1; +}; + +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncAcquireResponseDeploymentBucketNameUnion1 = + | SyncAcquireResponseDeploymentBucketName1 + | any + | string; + +export const SyncAcquireResponseDeploymentTypeStorage1 = { + Storage: "storage", +} as const; +export type SyncAcquireResponseDeploymentTypeStorage1 = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeStorage1 +>; + +/** + * AWS S3 storage binding configuration + */ +export type SyncAcquireResponseDeploymentExternalBindingsS3 = { + /** + * Represents a value that can be either a concrete value, a template expression, * - * **Key distinction**: StackSettings is user-customizable, while ManagementConfig - * is platform-derived (from the Manager's ServiceAccount). + * @remarks + * or a reference to a Kubernetes Secret */ - stackSettings?: SyncAcquireResponseDeploymentStackSettings | undefined; + bucketName?: + | SyncAcquireResponseDeploymentBucketName1 + | any + | string + | null + | undefined; + service: "s3"; + type: SyncAcquireResponseDeploymentTypeStorage1; +}; + +/** + * Service-type based storage binding that supports multiple storage providers + */ +export type SyncAcquireResponseDeploymentExternalBindingsUnion1 = + | SyncAcquireResponseDeploymentExternalBindingsS3 + | SyncAcquireResponseDeploymentExternalBindingsBlob + | SyncAcquireResponseDeploymentExternalBindingsGcs + | SyncAcquireResponseDeploymentExternalBindingsLocalStorage; + +/** + * Represents a binding to pre-existing infrastructure. + * + * @remarks + * + * The binding type must match the resource type it's applied to. + * Validated at runtime by the executor. + */ +export type SyncAcquireResponseDeploymentExternalBindingsUnion7 = + | SyncAcquireResponseDeploymentExternalBindingsAi + | SyncAcquireResponseDeploymentExternalBindingsContainerAppsEnvironment + | SyncAcquireResponseDeploymentExternalBindingsS3 + | SyncAcquireResponseDeploymentExternalBindingsBlob + | SyncAcquireResponseDeploymentExternalBindingsGcs + | SyncAcquireResponseDeploymentExternalBindingsLocalStorage + | SyncAcquireResponseDeploymentExternalBindingsSqs + | SyncAcquireResponseDeploymentExternalBindingsPubsub + | SyncAcquireResponseDeploymentExternalBindingsServicebus + | SyncAcquireResponseDeploymentExternalBindingsLocalQueue + | SyncAcquireResponseDeploymentExternalBindingsDynamodb + | SyncAcquireResponseDeploymentExternalBindingsFirestore + | SyncAcquireResponseDeploymentExternalBindingsTablestorage + | SyncAcquireResponseDeploymentExternalBindingsRedis + | SyncAcquireResponseDeploymentExternalBindingsLocalKv + | SyncAcquireResponseDeploymentExternalBindingsEcr + | SyncAcquireResponseDeploymentExternalBindingsAcr + | SyncAcquireResponseDeploymentExternalBindingsGar + | SyncAcquireResponseDeploymentExternalBindingsLocal + | SyncAcquireResponseDeploymentExternalBindingsParameterStore + | SyncAcquireResponseDeploymentExternalBindingsSecretManager + | SyncAcquireResponseDeploymentExternalBindingsKeyVault + | SyncAcquireResponseDeploymentExternalBindingsKubernetesSecret + | SyncAcquireResponseDeploymentExternalBindingsLocalVault + | SyncAcquireResponseDeploymentExternalBindingsAurora + | SyncAcquireResponseDeploymentExternalBindingsCloudSQL + | SyncAcquireResponseDeploymentExternalBindingsFlexibleServer + | SyncAcquireResponseDeploymentExternalBindingsExternal + | SyncAcquireResponseDeploymentExternalBindingsLocalPostgres; + +export const SyncAcquireResponseDeploymentPlatformKubernetes = { + Kubernetes: "kubernetes", +} as const; +export type SyncAcquireResponseDeploymentPlatformKubernetes = ClosedEnum< + typeof SyncAcquireResponseDeploymentPlatformKubernetes +>; + +export type SyncAcquireResponseDeploymentManagementConfigKubernetes = { + platform: SyncAcquireResponseDeploymentPlatformKubernetes; +}; + +export const SyncAcquireResponseDeploymentConfigPlatformAzure = { + Azure: "azure", +} as const; +export type SyncAcquireResponseDeploymentConfigPlatformAzure = ClosedEnum< + typeof SyncAcquireResponseDeploymentConfigPlatformAzure +>; + +/** + * Azure management configuration extracted from stack settings + */ +export type SyncAcquireResponseDeploymentManagementConfigAzure = { + /** + * The managing Azure Tenant ID for cross-tenant access + */ + managingTenantId: string; + /** + * OIDC issuer URL trusted by the target-side managed identity. + */ + oidcIssuer: string; + /** + * OIDC subject claim trusted by the target-side managed identity. + */ + oidcSubject: string; + platform: SyncAcquireResponseDeploymentConfigPlatformAzure; +}; + +export const SyncAcquireResponseDeploymentConfigPlatformGcp = { + Gcp: "gcp", +} as const; +export type SyncAcquireResponseDeploymentConfigPlatformGcp = ClosedEnum< + typeof SyncAcquireResponseDeploymentConfigPlatformGcp +>; + +/** + * GCP management configuration extracted from stack settings + */ +export type SyncAcquireResponseDeploymentManagementConfigGcp = { + /** + * Service account email for management roles + */ + serviceAccountEmail: string; + platform: SyncAcquireResponseDeploymentConfigPlatformGcp; }; -export type SyncAcquireResponseDeployment = { - /** - * ID of the deployment - */ - deploymentId: string; - /** - * Project ID the deployment belongs to - */ - projectId: string; - /** - * Deployment group ID the deployment belongs to - */ - deploymentGroupId: string; - setupMethod?: DeploymentSetupMethod | undefined; - /** - * Current deployment state (includes releases) - */ - current: SyncAcquireResponseDeploymentCurrent; - /** - * Deployment configuration - */ - config: SyncAcquireResponseDeploymentConfig; -}; +export const SyncAcquireResponseDeploymentConfigPlatformAws = { + Aws: "aws", +} as const; +export type SyncAcquireResponseDeploymentConfigPlatformAws = ClosedEnum< + typeof SyncAcquireResponseDeploymentConfigPlatformAws +>; + +/** + * AWS management configuration extracted from stack settings + */ +export type SyncAcquireResponseDeploymentManagementConfigAws = { + /** + * The managing AWS IAM role ARN that can assume cross-account roles + */ + managingRoleArn: string; + platform: SyncAcquireResponseDeploymentConfigPlatformAws; +}; + +export type SyncAcquireResponseDeploymentManagementConfigUnion = + | SyncAcquireResponseDeploymentManagementConfigAzure + | SyncAcquireResponseDeploymentManagementConfigAws + | SyncAcquireResponseDeploymentManagementConfigGcp + | SyncAcquireResponseDeploymentManagementConfigKubernetes + | any; + +/** + * OTLP log export configuration for a deployment. + * + * @remarks + * + * When set, injected compute runtimes export captured application logs + * through the given endpoint via OTLP/HTTP; which resources are injected + * is platform-dependent. Workers read auth headers from a runtime-only + * secret. Runtime-less Containers and Daemons receive standard OTEL auth + * variables only at the final hosting boundary: Local passes them directly + * to the process and Kubernetes projects them from a per-workload Secret. + */ +export type SyncAcquireResponseDeploymentMonitoring = { + /** + * Auth header value in "key=value,..." format. + * + * @remarks + * Example: "authorization=Bearer " + */ + logsAuthHeader: string; + /** + * Full OTLP logs endpoint URL. + * + * @remarks + * Example: "https:///v1/logs" + */ + logsEndpoint: string; + /** + * Auth header value for the metrics endpoint in "key=value,..." format (optional). + * + * @remarks + * + * When absent, `logs_auth_header` is reused for metrics -- suitable when the same + * credential covers both signals. When present (e.g. Axiom with separate datasets), + * this value is used exclusively for metrics. + * + * Example: "authorization=Bearer ,x-axiom-dataset=" + */ + metricsAuthHeader?: string | null | undefined; + /** + * Full OTLP metrics endpoint URL (optional). + * + * @remarks + * When set, the worker runtime exports its own VM/container orchestration metrics here. + * Example: "https://api.axiom.co/v1/metrics" + */ + metricsEndpoint?: string | null | undefined; + /** + * Resource attributes attached to every OTLP signal emitted for this deployment. + * + * @remarks + * + * Platform managers use this for stable identity such as `alien.workspace_id`, + * `alien.project_id`, `alien.deployment_group_id`, and `alien.deployment_id`. + * Runtime-specific resource attributes such as `service.name` remain owned by + * the runtime/exporter. + */ + resourceAttributes?: { [k: string]: string } | undefined; +}; + +export type SyncAcquireResponseDeploymentMonitoringUnion = + | SyncAcquireResponseDeploymentMonitoring + | any; + +/** + * Failure-domain policy selected for a compute pool. + */ +export type SyncAcquireResponseDeploymentFailureDomains2 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type SyncAcquireResponseDeploymentFailureDomainsUnion2 = + | SyncAcquireResponseDeploymentFailureDomains2 + | any; + +export type SyncAcquireResponseDeploymentPoolsAutoscale = { + failureDomains?: + | SyncAcquireResponseDeploymentFailureDomains2 + | any + | null + | undefined; + /** + * Provider machine type selected for this deployment. + */ + machine?: string | null | undefined; + /** + * Maximum machine count. + */ + max: number; + /** + * Minimum machine count. + */ + min: number; + mode: "autoscale"; +}; + +/** + * Failure-domain policy selected for a compute pool. + */ +export type SyncAcquireResponseDeploymentFailureDomains1 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type SyncAcquireResponseDeploymentFailureDomainsUnion1 = + | SyncAcquireResponseDeploymentFailureDomains1 + | any; + +export type SyncAcquireResponseDeploymentPoolsFixed = { + failureDomains?: + | SyncAcquireResponseDeploymentFailureDomains1 + | any + | null + | undefined; + /** + * Provider machine type selected for this deployment. + */ + machine?: string | null | undefined; + /** + * Number of machines to run. + */ + machines: number; + mode: "fixed"; +}; + +/** + * User-selected deployment settings for one compute pool. + */ +export type SyncAcquireResponseDeploymentPoolsUnion = + | SyncAcquireResponseDeploymentPoolsFixed + | SyncAcquireResponseDeploymentPoolsAutoscale; + +/** + * Deployment-time compute choices for Alien-managed compute pools. + * + * @remarks + * + * Application source declares portable pool requirements. This settings + * object stores the concrete choices made for one deployment, such as the + * provider machine type and selected machine counts. + */ +export type SyncAcquireResponseDeploymentCompute = { + /** + * Selected compute choices keyed by pool ID. + */ + pools?: { + [k: string]: + | SyncAcquireResponseDeploymentPoolsFixed + | SyncAcquireResponseDeploymentPoolsAutoscale; + } | undefined; +}; + +export type SyncAcquireResponseDeploymentComputeUnion = + | SyncAcquireResponseDeploymentCompute + | any; + +/** + * Deployment model: how updates are delivered to the remote environment. + */ +export const SyncAcquireResponseDeploymentDeploymentModel = { + Push: "push", + Pull: "pull", +} as const; +/** + * Deployment model: how updates are delivered to the remote environment. + */ +export type SyncAcquireResponseDeploymentDeploymentModel = ClosedEnum< + typeof SyncAcquireResponseDeploymentDeploymentModel +>; + +export type SyncAcquireResponseDeploymentAwsStackSettings = { + certificateArn: string; +}; + +export type SyncAcquireResponseDeploymentStackSettingsAwsUnion = + | SyncAcquireResponseDeploymentAwsStackSettings + | any; + +export type SyncAcquireResponseDeploymentAzureStackSettings = { + keyVaultCertificateId: string; + keyVaultResourceId?: string | null | undefined; +}; + +export type SyncAcquireResponseDeploymentStackSettingsAzureUnion = + | SyncAcquireResponseDeploymentAzureStackSettings + | any; + +export type SyncAcquireResponseDeploymentGcpStackSettings = { + certificateName: string; +}; + +export type SyncAcquireResponseDeploymentStackSettingsGcpUnion = + | SyncAcquireResponseDeploymentGcpStackSettings + | any; + +/** + * Namespace-scoped Kubernetes TLS Secret reference. + */ +export type SyncAcquireResponseDeploymentTlsSecretRef = { + /** + * Secret namespace. Defaults to the release namespace when omitted. + */ + namespace?: string | null | undefined; + /** + * Secret name. + */ + secretName: string; +}; + +export type SyncAcquireResponseDeploymentDomainsKubernetes = { + /** + * Namespace-scoped Kubernetes TLS Secret reference. + */ + tlsSecretRef: SyncAcquireResponseDeploymentTlsSecretRef; +}; + +export type SyncAcquireResponseDeploymentDomainsKubernetesUnion = + | SyncAcquireResponseDeploymentDomainsKubernetes + | any; + +/** + * Platform-specific certificate references for custom domains. + */ +export type SyncAcquireResponseDeploymentDomainsCertificate = { + aws?: SyncAcquireResponseDeploymentAwsStackSettings | any | null | undefined; + azure?: + | SyncAcquireResponseDeploymentAzureStackSettings + | any + | null + | undefined; + gcp?: SyncAcquireResponseDeploymentGcpStackSettings | any | null | undefined; + kubernetes?: + | SyncAcquireResponseDeploymentDomainsKubernetes + | any + | null + | undefined; +}; + +/** + * Custom domain configuration for a single resource. + */ +export type SyncAcquireResponseDeploymentCustomDomains = { + /** + * Platform-specific certificate references for custom domains. + */ + certificate: SyncAcquireResponseDeploymentDomainsCertificate; + /** + * Fully qualified domain name to use. + */ + domain: string; +}; + +export const SyncAcquireResponseDeploymentModeLoadBalancer = { + LoadBalancer: "loadBalancer", +} as const; +export type SyncAcquireResponseDeploymentModeLoadBalancer = ClosedEnum< + typeof SyncAcquireResponseDeploymentModeLoadBalancer +>; + +export type SyncAcquireResponseDeploymentPublicEndpointTargetLoadBalancer = { + /** + * DNS name or URL for the external load balancer. + */ + cnameTarget: string; + mode: SyncAcquireResponseDeploymentModeLoadBalancer; +}; + +export const SyncAcquireResponseDeploymentModeMachineAddresses = { + MachineAddresses: "machineAddresses", +} as const; +export type SyncAcquireResponseDeploymentModeMachineAddresses = ClosedEnum< + typeof SyncAcquireResponseDeploymentModeMachineAddresses +>; + +export type SyncAcquireResponseDeploymentPublicEndpointTargetMachineAddresses = + { + mode: SyncAcquireResponseDeploymentModeMachineAddresses; + }; + +export type SyncAcquireResponseDeploymentPublicEndpointTargetUnion = + | SyncAcquireResponseDeploymentPublicEndpointTargetLoadBalancer + | SyncAcquireResponseDeploymentPublicEndpointTargetMachineAddresses + | any; + +/** + * Domain configuration for the stack. + * + * @remarks + * + * When `custom_domains` is set, the specified resources use customer-provided + * domains and certificates. Otherwise, Alien auto-generates domains. + */ +export type SyncAcquireResponseDeploymentDomains = { + /** + * Custom domain configuration per resource ID. + */ + customDomains?: + | { [k: string]: SyncAcquireResponseDeploymentCustomDomains } + | null + | undefined; + publicEndpointTarget?: + | SyncAcquireResponseDeploymentPublicEndpointTargetLoadBalancer + | SyncAcquireResponseDeploymentPublicEndpointTargetMachineAddresses + | any + | null + | undefined; +}; + +export type SyncAcquireResponseDeploymentDomainsUnion = + | SyncAcquireResponseDeploymentDomains + | any; + +/** + * External bindings for pre-existing infrastructure. + * + * @remarks + * Allows using existing resources (MinIO, Redis, shared Container Apps + * Environment, etc.) instead of having Alien provision them. + * Required for Kubernetes platform, optional for cloud platforms. + */ +export type SyncAcquireResponseDeploymentStackSettingsExternalBindings = {}; + +/** + * How heartbeat health checks are handled. + */ +export const SyncAcquireResponseDeploymentHeartbeats = { + Off: "off", + On: "on", +} as const; +/** + * How heartbeat health checks are handled. + */ +export type SyncAcquireResponseDeploymentHeartbeats = ClosedEnum< + typeof SyncAcquireResponseDeploymentHeartbeats +>; + +/** + * Optional provider-specific identity for a cloud-backed Kubernetes cluster. + */ +export type SyncAcquireResponseDeploymentCloud = { + accountId?: string | null | undefined; + clusterId?: string | null | undefined; + clusterName?: string | null | undefined; + projectId?: string | null | undefined; + region?: string | null | undefined; + resourceGroup?: string | null | undefined; + subscriptionId?: string | null | undefined; +}; + +export type SyncAcquireResponseDeploymentCloudUnion = + | SyncAcquireResponseDeploymentCloud + | any; + +/** + * Ownership model for the Kubernetes cluster. + */ +export const SyncAcquireResponseDeploymentOwnership = { + Managed: "managed", + Existing: "existing", + External: "external", +} as const; +/** + * Ownership model for the Kubernetes cluster. + */ +export type SyncAcquireResponseDeploymentOwnership = ClosedEnum< + typeof SyncAcquireResponseDeploymentOwnership +>; + +/** + * Kubernetes cluster setup settings. + */ +export type SyncAcquireResponseDeploymentCluster = { + cloud?: SyncAcquireResponseDeploymentCloud | any | null | undefined; + /** + * Namespace where the Alien chart and application resources run. + */ + namespace?: string | null | undefined; + /** + * Ownership model for the Kubernetes cluster. + */ + ownership: SyncAcquireResponseDeploymentOwnership; +}; + +export type SyncAcquireResponseDeploymentClusterUnion = + | SyncAcquireResponseDeploymentCluster + | any; + +export type SyncAcquireResponseDeploymentCertificateNone2 = { + mode: "none"; +}; + +export type SyncAcquireResponseDeploymentCertificateManagedTLSSecret2 = { + mode: "managedTlsSecret"; + /** + * Secret name template. Runtime may substitute resource/deployment tokens. + */ + secretNameTemplate: string; +}; + +export type SyncAcquireResponseDeploymentCertificateAwsAcmArn2 = { + /** + * Existing ACM certificate ARN. + */ + certificateArn: string; + mode: "awsAcmArn"; +}; + +export type SyncAcquireResponseDeploymentCertificateManagedAcmImport2 = { + mode: "managedAcmImport"; + /** + * ACM region. Defaults to the deployment region when omitted. + */ + region?: string | null | undefined; + /** + * Tags applied to runtime-imported ACM certificates. + */ + tags?: { [k: string]: string } | undefined; +}; + +/** + * Namespace-scoped Kubernetes TLS Secret reference. + */ +export type SyncAcquireResponseDeploymentCertificateTLSSecretRef2 = { + /** + * Secret namespace. Defaults to the release namespace when omitted. + */ + namespace?: string | null | undefined; + /** + * Secret name. + */ + secretName: string; + mode: "tlsSecretRef"; +}; + +/** + * Certificate publication or reference mode for Kubernetes public endpoints. + */ +export type SyncAcquireResponseDeploymentCertificateUnion2 = + | SyncAcquireResponseDeploymentCertificateTLSSecretRef2 + | SyncAcquireResponseDeploymentCertificateManagedAcmImport2 + | SyncAcquireResponseDeploymentCertificateAwsAcmArn2 + | SyncAcquireResponseDeploymentCertificateManagedTLSSecret2 + | SyncAcquireResponseDeploymentCertificateNone2; + +export const SyncAcquireResponseDeploymentModeCustom = { + Custom: "custom", +} as const; +export type SyncAcquireResponseDeploymentModeCustom = ClosedEnum< + typeof SyncAcquireResponseDeploymentModeCustom +>; + +export const SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum4 = + { + AzureApplicationGatewayForContainers: + "azureApplicationGatewayForContainers", + } as const; +export type SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum4 = + ClosedEnum< + typeof SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum4 + >; + +export type SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainers4 = + { + /** + * Optional ALB name when using BYO Application Gateway resources. + */ + albName?: string | null | undefined; + /** + * Optional ALB namespace when using BYO Application Gateway resources. + */ + albNamespace?: string | null | undefined; + /** + * Public or internal frontend exposure. + */ + frontend: string; + provider: + SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum4; + }; + +export const SyncAcquireResponseDeploymentProviderGkeGatewayEnum4 = { + GkeGateway: "gkeGateway", +} as const; +export type SyncAcquireResponseDeploymentProviderGkeGatewayEnum4 = ClosedEnum< + typeof SyncAcquireResponseDeploymentProviderGkeGatewayEnum4 +>; + +export type SyncAcquireResponseDeploymentProviderGkeGateway4 = { + provider: SyncAcquireResponseDeploymentProviderGkeGatewayEnum4; + /** + * Optional static address name for the Gateway frontend. + */ + staticAddressName?: string | null | undefined; +}; + +export const SyncAcquireResponseDeploymentProviderAwsAlbEnum4 = { + AwsAlb: "awsAlb", +} as const; +export type SyncAcquireResponseDeploymentProviderAwsAlbEnum4 = ClosedEnum< + typeof SyncAcquireResponseDeploymentProviderAwsAlbEnum4 +>; + +export type SyncAcquireResponseDeploymentProviderAwsAlb4 = { + /** + * Optional ALB IP address type, such as `dualstack`. + */ + ipAddressType?: string | null | undefined; + provider: SyncAcquireResponseDeploymentProviderAwsAlbEnum4; + /** + * Internet-facing or internal ALB scheme. + */ + scheme: string; + /** + * Explicit subnet IDs when the profile cannot rely on controller discovery. + */ + subnetIds?: Array | undefined; + /** + * ALB target type, usually `ip`. + */ + targetType: string; +}; + +export type SyncAcquireResponseDeploymentProviderUnion4 = + | SyncAcquireResponseDeploymentProviderAwsAlb4 + | SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainers4 + | SyncAcquireResponseDeploymentProviderGkeGateway4 + | any; + +/** + * Shared Gateway API route profile values. + */ +export type SyncAcquireResponseDeploymentRouteGateway2 = { + /** + * Annotations applied to route objects. + */ + annotations?: { [k: string]: string } | undefined; + /** + * Route controller identifier, for example a cloud Gateway controller. + */ + controller?: string | null | undefined; + /** + * GatewayClass selected for generated Gateways. + */ + gatewayClassName: string; + /** + * Labels applied to route objects. + */ + labels?: { [k: string]: string } | undefined; + /** + * Listener port, usually 443. + */ + listenerPort: number; + provider?: + | SyncAcquireResponseDeploymentProviderAwsAlb4 + | SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainers4 + | SyncAcquireResponseDeploymentProviderGkeGateway4 + | any + | null + | undefined; + routeApi: "gateway"; +}; + +export const SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum3 = + { + AzureApplicationGatewayForContainers: + "azureApplicationGatewayForContainers", + } as const; +export type SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum3 = + ClosedEnum< + typeof SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum3 + >; + +export type SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainers3 = + { + /** + * Optional ALB name when using BYO Application Gateway resources. + */ + albName?: string | null | undefined; + /** + * Optional ALB namespace when using BYO Application Gateway resources. + */ + albNamespace?: string | null | undefined; + /** + * Public or internal frontend exposure. + */ + frontend: string; + provider: + SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum3; + }; + +export const SyncAcquireResponseDeploymentProviderGkeGatewayEnum3 = { + GkeGateway: "gkeGateway", +} as const; +export type SyncAcquireResponseDeploymentProviderGkeGatewayEnum3 = ClosedEnum< + typeof SyncAcquireResponseDeploymentProviderGkeGatewayEnum3 +>; + +export type SyncAcquireResponseDeploymentProviderGkeGateway3 = { + provider: SyncAcquireResponseDeploymentProviderGkeGatewayEnum3; + /** + * Optional static address name for the Gateway frontend. + */ + staticAddressName?: string | null | undefined; +}; + +export const SyncAcquireResponseDeploymentProviderAwsAlbEnum3 = { + AwsAlb: "awsAlb", +} as const; +export type SyncAcquireResponseDeploymentProviderAwsAlbEnum3 = ClosedEnum< + typeof SyncAcquireResponseDeploymentProviderAwsAlbEnum3 +>; + +export type SyncAcquireResponseDeploymentProviderAwsAlb3 = { + /** + * Optional ALB IP address type, such as `dualstack`. + */ + ipAddressType?: string | null | undefined; + provider: SyncAcquireResponseDeploymentProviderAwsAlbEnum3; + /** + * Internet-facing or internal ALB scheme. + */ + scheme: string; + /** + * Explicit subnet IDs when the profile cannot rely on controller discovery. + */ + subnetIds?: Array | undefined; + /** + * ALB target type, usually `ip`. + */ + targetType: string; +}; + +export type SyncAcquireResponseDeploymentProviderUnion3 = + | SyncAcquireResponseDeploymentProviderAwsAlb3 + | SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainers3 + | SyncAcquireResponseDeploymentProviderGkeGateway3 + | any; + +/** + * Shared Ingress route profile values. + */ +export type SyncAcquireResponseDeploymentRouteIngress2 = { + /** + * Annotations applied to route objects. + */ + annotations?: { [k: string]: string } | undefined; + /** + * Route controller identifier, for example `eks.amazonaws.com/alb`. + */ + controller?: string | null | undefined; + /** + * `spec.ingressClassName` for generated Ingresses. + */ + ingressClassName: string; + /** + * Labels applied to route objects. + */ + labels?: { [k: string]: string } | undefined; + provider?: + | SyncAcquireResponseDeploymentProviderAwsAlb3 + | SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainers3 + | SyncAcquireResponseDeploymentProviderGkeGateway3 + | any + | null + | undefined; + routeApi: "ingress"; +}; + +/** + * Kubernetes route API selected for public endpoints. + */ +export type SyncAcquireResponseDeploymentRouteUnion2 = + | SyncAcquireResponseDeploymentRouteIngress2 + | SyncAcquireResponseDeploymentRouteGateway2; + +export type SyncAcquireResponseDeploymentExposureCustom = { + /** + * Certificate publication or reference mode for Kubernetes public endpoints. + */ + certificate: + | SyncAcquireResponseDeploymentCertificateTLSSecretRef2 + | SyncAcquireResponseDeploymentCertificateManagedAcmImport2 + | SyncAcquireResponseDeploymentCertificateAwsAcmArn2 + | SyncAcquireResponseDeploymentCertificateManagedTLSSecret2 + | SyncAcquireResponseDeploymentCertificateNone2; + /** + * Hostname routed by the Kubernetes public endpoint. + */ + domain: string; + mode: SyncAcquireResponseDeploymentModeCustom; + /** + * Kubernetes route API selected for public endpoints. + */ + route: + | SyncAcquireResponseDeploymentRouteIngress2 + | SyncAcquireResponseDeploymentRouteGateway2; +}; + +export type SyncAcquireResponseDeploymentCertificateNone1 = { + mode: "none"; +}; + +export type SyncAcquireResponseDeploymentCertificateManagedTLSSecret1 = { + mode: "managedTlsSecret"; + /** + * Secret name template. Runtime may substitute resource/deployment tokens. + */ + secretNameTemplate: string; +}; + +export type SyncAcquireResponseDeploymentCertificateAwsAcmArn1 = { + /** + * Existing ACM certificate ARN. + */ + certificateArn: string; + mode: "awsAcmArn"; +}; + +export type SyncAcquireResponseDeploymentCertificateManagedAcmImport1 = { + mode: "managedAcmImport"; + /** + * ACM region. Defaults to the deployment region when omitted. + */ + region?: string | null | undefined; + /** + * Tags applied to runtime-imported ACM certificates. + */ + tags?: { [k: string]: string } | undefined; +}; + +/** + * Namespace-scoped Kubernetes TLS Secret reference. + */ +export type SyncAcquireResponseDeploymentCertificateTLSSecretRef1 = { + /** + * Secret namespace. Defaults to the release namespace when omitted. + */ + namespace?: string | null | undefined; + /** + * Secret name. + */ + secretName: string; + mode: "tlsSecretRef"; +}; + +/** + * Certificate publication or reference mode for Kubernetes public endpoints. + */ +export type SyncAcquireResponseDeploymentCertificateUnion1 = + | SyncAcquireResponseDeploymentCertificateTLSSecretRef1 + | SyncAcquireResponseDeploymentCertificateManagedAcmImport1 + | SyncAcquireResponseDeploymentCertificateAwsAcmArn1 + | SyncAcquireResponseDeploymentCertificateManagedTLSSecret1 + | SyncAcquireResponseDeploymentCertificateNone1; + +export const SyncAcquireResponseDeploymentModeGenerated = { + Generated: "generated", +} as const; +export type SyncAcquireResponseDeploymentModeGenerated = ClosedEnum< + typeof SyncAcquireResponseDeploymentModeGenerated +>; + +export const SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum2 = + { + AzureApplicationGatewayForContainers: + "azureApplicationGatewayForContainers", + } as const; +export type SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum2 = + ClosedEnum< + typeof SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum2 + >; + +export type SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainers2 = + { + /** + * Optional ALB name when using BYO Application Gateway resources. + */ + albName?: string | null | undefined; + /** + * Optional ALB namespace when using BYO Application Gateway resources. + */ + albNamespace?: string | null | undefined; + /** + * Public or internal frontend exposure. + */ + frontend: string; + provider: + SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum2; + }; + +export const SyncAcquireResponseDeploymentProviderGkeGatewayEnum2 = { + GkeGateway: "gkeGateway", +} as const; +export type SyncAcquireResponseDeploymentProviderGkeGatewayEnum2 = ClosedEnum< + typeof SyncAcquireResponseDeploymentProviderGkeGatewayEnum2 +>; + +export type SyncAcquireResponseDeploymentProviderGkeGateway2 = { + provider: SyncAcquireResponseDeploymentProviderGkeGatewayEnum2; + /** + * Optional static address name for the Gateway frontend. + */ + staticAddressName?: string | null | undefined; +}; + +export const SyncAcquireResponseDeploymentProviderAwsAlbEnum2 = { + AwsAlb: "awsAlb", +} as const; +export type SyncAcquireResponseDeploymentProviderAwsAlbEnum2 = ClosedEnum< + typeof SyncAcquireResponseDeploymentProviderAwsAlbEnum2 +>; + +export type SyncAcquireResponseDeploymentProviderAwsAlb2 = { + /** + * Optional ALB IP address type, such as `dualstack`. + */ + ipAddressType?: string | null | undefined; + provider: SyncAcquireResponseDeploymentProviderAwsAlbEnum2; + /** + * Internet-facing or internal ALB scheme. + */ + scheme: string; + /** + * Explicit subnet IDs when the profile cannot rely on controller discovery. + */ + subnetIds?: Array | undefined; + /** + * ALB target type, usually `ip`. + */ + targetType: string; +}; + +export type SyncAcquireResponseDeploymentProviderUnion2 = + | SyncAcquireResponseDeploymentProviderAwsAlb2 + | SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainers2 + | SyncAcquireResponseDeploymentProviderGkeGateway2 + | any; + +/** + * Shared Gateway API route profile values. + */ +export type SyncAcquireResponseDeploymentRouteGateway1 = { + /** + * Annotations applied to route objects. + */ + annotations?: { [k: string]: string } | undefined; + /** + * Route controller identifier, for example a cloud Gateway controller. + */ + controller?: string | null | undefined; + /** + * GatewayClass selected for generated Gateways. + */ + gatewayClassName: string; + /** + * Labels applied to route objects. + */ + labels?: { [k: string]: string } | undefined; + /** + * Listener port, usually 443. + */ + listenerPort: number; + provider?: + | SyncAcquireResponseDeploymentProviderAwsAlb2 + | SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainers2 + | SyncAcquireResponseDeploymentProviderGkeGateway2 + | any + | null + | undefined; + routeApi: "gateway"; +}; + +export const SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum1 = + { + AzureApplicationGatewayForContainers: + "azureApplicationGatewayForContainers", + } as const; +export type SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum1 = + ClosedEnum< + typeof SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum1 + >; + +export type SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainers1 = + { + /** + * Optional ALB name when using BYO Application Gateway resources. + */ + albName?: string | null | undefined; + /** + * Optional ALB namespace when using BYO Application Gateway resources. + */ + albNamespace?: string | null | undefined; + /** + * Public or internal frontend exposure. + */ + frontend: string; + provider: + SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainersEnum1; + }; + +export const SyncAcquireResponseDeploymentProviderGkeGatewayEnum1 = { + GkeGateway: "gkeGateway", +} as const; +export type SyncAcquireResponseDeploymentProviderGkeGatewayEnum1 = ClosedEnum< + typeof SyncAcquireResponseDeploymentProviderGkeGatewayEnum1 +>; + +export type SyncAcquireResponseDeploymentProviderGkeGateway1 = { + provider: SyncAcquireResponseDeploymentProviderGkeGatewayEnum1; + /** + * Optional static address name for the Gateway frontend. + */ + staticAddressName?: string | null | undefined; +}; + +export const SyncAcquireResponseDeploymentProviderAwsAlbEnum1 = { + AwsAlb: "awsAlb", +} as const; +export type SyncAcquireResponseDeploymentProviderAwsAlbEnum1 = ClosedEnum< + typeof SyncAcquireResponseDeploymentProviderAwsAlbEnum1 +>; + +export type SyncAcquireResponseDeploymentProviderAwsAlb1 = { + /** + * Optional ALB IP address type, such as `dualstack`. + */ + ipAddressType?: string | null | undefined; + provider: SyncAcquireResponseDeploymentProviderAwsAlbEnum1; + /** + * Internet-facing or internal ALB scheme. + */ + scheme: string; + /** + * Explicit subnet IDs when the profile cannot rely on controller discovery. + */ + subnetIds?: Array | undefined; + /** + * ALB target type, usually `ip`. + */ + targetType: string; +}; + +export type SyncAcquireResponseDeploymentProviderUnion1 = + | SyncAcquireResponseDeploymentProviderAwsAlb1 + | SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainers1 + | SyncAcquireResponseDeploymentProviderGkeGateway1 + | any; + +/** + * Shared Ingress route profile values. + */ +export type SyncAcquireResponseDeploymentRouteIngress1 = { + /** + * Annotations applied to route objects. + */ + annotations?: { [k: string]: string } | undefined; + /** + * Route controller identifier, for example `eks.amazonaws.com/alb`. + */ + controller?: string | null | undefined; + /** + * `spec.ingressClassName` for generated Ingresses. + */ + ingressClassName: string; + /** + * Labels applied to route objects. + */ + labels?: { [k: string]: string } | undefined; + provider?: + | SyncAcquireResponseDeploymentProviderAwsAlb1 + | SyncAcquireResponseDeploymentProviderAzureApplicationGatewayForContainers1 + | SyncAcquireResponseDeploymentProviderGkeGateway1 + | any + | null + | undefined; + routeApi: "ingress"; +}; + +/** + * Kubernetes route API selected for public endpoints. + */ +export type SyncAcquireResponseDeploymentRouteUnion1 = + | SyncAcquireResponseDeploymentRouteIngress1 + | SyncAcquireResponseDeploymentRouteGateway1; + +export type SyncAcquireResponseDeploymentExposureGenerated = { + /** + * Certificate publication or reference mode for Kubernetes public endpoints. + */ + certificate: + | SyncAcquireResponseDeploymentCertificateTLSSecretRef1 + | SyncAcquireResponseDeploymentCertificateManagedAcmImport1 + | SyncAcquireResponseDeploymentCertificateAwsAcmArn1 + | SyncAcquireResponseDeploymentCertificateManagedTLSSecret1 + | SyncAcquireResponseDeploymentCertificateNone1; + mode: SyncAcquireResponseDeploymentModeGenerated; + /** + * Kubernetes route API selected for public endpoints. + */ + route: + | SyncAcquireResponseDeploymentRouteIngress1 + | SyncAcquireResponseDeploymentRouteGateway1; +}; + +export const SyncAcquireResponseDeploymentModeDisabled = { + Disabled: "disabled", +} as const; +export type SyncAcquireResponseDeploymentModeDisabled = ClosedEnum< + typeof SyncAcquireResponseDeploymentModeDisabled +>; + +export type SyncAcquireResponseDeploymentExposureDisabled = { + mode: SyncAcquireResponseDeploymentModeDisabled; +}; + +export type SyncAcquireResponseDeploymentExposureUnion = + | SyncAcquireResponseDeploymentExposureCustom + | SyncAcquireResponseDeploymentExposureGenerated + | SyncAcquireResponseDeploymentExposureDisabled + | any; + +/** + * Kubernetes runtime substrate configuration. + * + * @remarks + * + * This controls how setup chooses the cluster backing `Platform::Kubernetes` + * deployments. When omitted, cloud-backed Kubernetes deployments default to a + * managed cluster and generic/on-prem Kubernetes defaults to an external + * cluster. + */ +export type SyncAcquireResponseDeploymentKubernetes = { + cluster?: SyncAcquireResponseDeploymentCluster | any | null | undefined; + exposure?: + | SyncAcquireResponseDeploymentExposureCustom + | SyncAcquireResponseDeploymentExposureGenerated + | SyncAcquireResponseDeploymentExposureDisabled + | any + | null + | undefined; +}; + +export type SyncAcquireResponseDeploymentKubernetesUnion = + | SyncAcquireResponseDeploymentKubernetes + | any; + +export const SyncAcquireResponseDeploymentTypeByoVnetAzure = { + ByoVnetAzure: "byo-vnet-azure", +} as const; +export type SyncAcquireResponseDeploymentTypeByoVnetAzure = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeByoVnetAzure +>; + +export type SyncAcquireResponseDeploymentNetworkByoVnetAzure = { + /** + * Name of the dedicated classic Application Gateway subnet within the VNet. + */ + applicationGatewaySubnetName?: string | null | undefined; + /** + * Name of the dedicated subnet that hosts Private Endpoints (e.g. for a + * + * @remarks + * Postgres Flexible Server). A Private Endpoint must not share the private + * subnet, which is already claimed by the Container Apps environment's + * `infrastructure_subnet_id`. Required only when the stack contains a + * Postgres resource; otherwise unused. + */ + privateEndpointSubnetName?: string | null | undefined; + /** + * Name of the private subnet within the VNet + */ + privateSubnetName: string; + /** + * Name of the public subnet within the VNet + */ + publicSubnetName: string; + type: SyncAcquireResponseDeploymentTypeByoVnetAzure; + /** + * The full resource ID of the existing VNet + */ + vnetResourceId: string; +}; + +export const SyncAcquireResponseDeploymentTypeByoVpcGcp = { + ByoVpcGcp: "byo-vpc-gcp", +} as const; +export type SyncAcquireResponseDeploymentTypeByoVpcGcp = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeByoVpcGcp +>; + +export type SyncAcquireResponseDeploymentNetworkByoVpcGcp = { + /** + * The name of the existing VPC network + */ + networkName: string; + /** + * The region of the subnet + */ + region: string; + /** + * The name of the subnet to use + */ + subnetName: string; + type: SyncAcquireResponseDeploymentTypeByoVpcGcp; +}; + +export const SyncAcquireResponseDeploymentTypeByoVpcAws = { + ByoVpcAws: "byo-vpc-aws", +} as const; +export type SyncAcquireResponseDeploymentTypeByoVpcAws = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeByoVpcAws +>; + +export type SyncAcquireResponseDeploymentNetworkByoVpcAws = { + /** + * IDs of private subnets + */ + privateSubnetIds: Array; + /** + * IDs of public subnets (required for public ingress) + */ + publicSubnetIds: Array; + /** + * Optional security group IDs to use + */ + securityGroupIds?: Array | undefined; + type: SyncAcquireResponseDeploymentTypeByoVpcAws; + /** + * The ID of the existing VPC + */ + vpcId: string; +}; + +export const SyncAcquireResponseDeploymentTypeCreate = { + Create: "create", +} as const; +export type SyncAcquireResponseDeploymentTypeCreate = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeCreate +>; + +export type SyncAcquireResponseDeploymentNetworkCreate = { + /** + * Number of availability zones (default: 2). + */ + availabilityZones?: number | undefined; + /** + * VPC/VNet CIDR block. If not specified, auto-generated from stack ID + * + * @remarks + * to reduce conflicts (e.g., "10.{hash}.0.0/16"). + */ + cidr?: string | null | undefined; + type: SyncAcquireResponseDeploymentTypeCreate; +}; + +export const SyncAcquireResponseDeploymentTypeUseDefault = { + UseDefault: "use-default", +} as const; +export type SyncAcquireResponseDeploymentTypeUseDefault = ClosedEnum< + typeof SyncAcquireResponseDeploymentTypeUseDefault +>; + +export type SyncAcquireResponseDeploymentNetworkUseDefault = { + type: SyncAcquireResponseDeploymentTypeUseDefault; +}; + +export type SyncAcquireResponseDeploymentNetworkUnion = + | SyncAcquireResponseDeploymentNetworkByoVpcAws + | SyncAcquireResponseDeploymentNetworkByoVpcGcp + | SyncAcquireResponseDeploymentNetworkByoVnetAzure + | SyncAcquireResponseDeploymentNetworkUseDefault + | SyncAcquireResponseDeploymentNetworkCreate + | any; + +/** + * How telemetry (logs, metrics, traces) is handled. + */ +export const SyncAcquireResponseDeploymentTelemetry = { + Off: "off", + Auto: "auto", + ApprovalRequired: "approval-required", +} as const; +/** + * How telemetry (logs, metrics, traces) is handled. + */ +export type SyncAcquireResponseDeploymentTelemetry = ClosedEnum< + typeof SyncAcquireResponseDeploymentTelemetry +>; + +/** + * How updates are delivered to the deployment. + */ +export const SyncAcquireResponseDeploymentUpdates = { + Auto: "auto", + ApprovalRequired: "approval-required", +} as const; +/** + * How updates are delivered to the deployment. + */ +export type SyncAcquireResponseDeploymentUpdates = ClosedEnum< + typeof SyncAcquireResponseDeploymentUpdates +>; + +/** + * User-customizable deployment settings specified at deploy time. + * + * @remarks + * + * These settings are provided by the customer via CloudFormation parameters, + * Terraform attributes, CLI flags, or Helm values. They customize how the + * deployment runs and what capabilities are enabled. + * + * **Key distinction**: StackSettings is user-customizable, while ManagementConfig + * is platform-derived (from the Manager's ServiceAccount). + */ +export type SyncAcquireResponseDeploymentStackSettings = { + compute?: SyncAcquireResponseDeploymentCompute | any | null | undefined; + /** + * Deployment model: how updates are delivered to the remote environment. + */ + deploymentModel?: SyncAcquireResponseDeploymentDeploymentModel | undefined; + domains?: SyncAcquireResponseDeploymentDomains | any | null | undefined; + /** + * External bindings for pre-existing infrastructure. + * + * @remarks + * Allows using existing resources (MinIO, Redis, shared Container Apps + * Environment, etc.) instead of having Alien provision them. + * Required for Kubernetes platform, optional for cloud platforms. + */ + externalBindings?: + | SyncAcquireResponseDeploymentStackSettingsExternalBindings + | null + | undefined; + /** + * How heartbeat health checks are handled. + */ + heartbeats?: SyncAcquireResponseDeploymentHeartbeats | undefined; + kubernetes?: SyncAcquireResponseDeploymentKubernetes | any | null | undefined; + network?: + | SyncAcquireResponseDeploymentNetworkByoVpcAws + | SyncAcquireResponseDeploymentNetworkByoVpcGcp + | SyncAcquireResponseDeploymentNetworkByoVnetAzure + | SyncAcquireResponseDeploymentNetworkUseDefault + | SyncAcquireResponseDeploymentNetworkCreate + | any + | null + | undefined; + /** + * How telemetry (logs, metrics, traces) is handled. + */ + telemetry?: SyncAcquireResponseDeploymentTelemetry | undefined; + /** + * How updates are delivered to the deployment. + */ + updates?: SyncAcquireResponseDeploymentUpdates | undefined; +}; + +/** + * Deployment configuration + */ +export type SyncAcquireResponseDeploymentConfig = { + /** + * Allow frozen resource changes during updates + * + * @remarks + * When true, skips the frozen resources compatibility check. + * This requires running with elevated cloud credentials. + */ + allowFrozenChanges?: boolean | undefined; + basePlatform?: + | SyncAcquireResponseDeploymentBasePlatformEnum + | any + | null + | undefined; + computeBackend?: + | SyncAcquireResponseDeploymentComputeBackendHorizon + | any + | null + | undefined; + /** + * Human-readable deployment name for cloud console metadata. + * + * @remarks + * + * This is separate from the physical resource prefix in StackState. It is + * used only for display text such as IAM role descriptions, service + * account descriptions, and custom role titles. + */ + deploymentName?: string | null | undefined; + /** + * Deployment token for pull authentication with the manager's registry. + * + * @remarks + * + * Used by controllers to configure registry credentials so cloud platforms + * and K8s can pull images from the manager's `/v2/` endpoint. + */ + deploymentToken?: string | null | undefined; + domainMetadata?: + | SyncAcquireResponseDeploymentDomainMetadata + | any + | null + | undefined; + /** + * Snapshot of environment variables at a point in time + */ + environmentVariables: SyncAcquireResponseDeploymentEnvironmentVariables; + /** + * Map from resource ID to external binding. + * + * @remarks + * + * Validated at runtime: binding type must match resource type. + */ + externalBindings?: { + [k: string]: + | SyncAcquireResponseDeploymentExternalBindingsAi + | SyncAcquireResponseDeploymentExternalBindingsContainerAppsEnvironment + | SyncAcquireResponseDeploymentExternalBindingsS3 + | SyncAcquireResponseDeploymentExternalBindingsBlob + | SyncAcquireResponseDeploymentExternalBindingsGcs + | SyncAcquireResponseDeploymentExternalBindingsLocalStorage + | SyncAcquireResponseDeploymentExternalBindingsSqs + | SyncAcquireResponseDeploymentExternalBindingsPubsub + | SyncAcquireResponseDeploymentExternalBindingsServicebus + | SyncAcquireResponseDeploymentExternalBindingsLocalQueue + | SyncAcquireResponseDeploymentExternalBindingsDynamodb + | SyncAcquireResponseDeploymentExternalBindingsFirestore + | SyncAcquireResponseDeploymentExternalBindingsTablestorage + | SyncAcquireResponseDeploymentExternalBindingsRedis + | SyncAcquireResponseDeploymentExternalBindingsLocalKv + | SyncAcquireResponseDeploymentExternalBindingsEcr + | SyncAcquireResponseDeploymentExternalBindingsAcr + | SyncAcquireResponseDeploymentExternalBindingsGar + | SyncAcquireResponseDeploymentExternalBindingsLocal + | SyncAcquireResponseDeploymentExternalBindingsParameterStore + | SyncAcquireResponseDeploymentExternalBindingsSecretManager + | SyncAcquireResponseDeploymentExternalBindingsKeyVault + | SyncAcquireResponseDeploymentExternalBindingsKubernetesSecret + | SyncAcquireResponseDeploymentExternalBindingsLocalVault + | SyncAcquireResponseDeploymentExternalBindingsAurora + | SyncAcquireResponseDeploymentExternalBindingsCloudSQL + | SyncAcquireResponseDeploymentExternalBindingsFlexibleServer + | SyncAcquireResponseDeploymentExternalBindingsExternal + | SyncAcquireResponseDeploymentExternalBindingsLocalPostgres; + } | undefined; + /** + * Deployer-provided stack input values, keyed by input id. A resource + * + * @remarks + * gated with `.enabled(input)` and a Live lifecycle follows these + * values; a missing key falls back to the input's declared boolean + * default. Suppliers must not place secret-kind input values here: + * this map serializes and debug-prints unredacted. + */ + inputValues?: { [k: string]: any | null } | undefined; + /** + * DNS-style label domain used for Kubernetes resource ownership labels. + * + * @remarks + * + * Defaults to `alien.dev` when absent. Whitelabeled Operator builds set this + * so generated workloads and optional log collectors share the same label + * namespace. + */ + labelDomain?: string | null | undefined; + managementConfig?: + | SyncAcquireResponseDeploymentManagementConfigAzure + | SyncAcquireResponseDeploymentManagementConfigAws + | SyncAcquireResponseDeploymentManagementConfigGcp + | SyncAcquireResponseDeploymentManagementConfigKubernetes + | any + | null + | undefined; + /** + * Manager base URL (e.g., "https://manager.alien.dev"). + * + * @remarks + * + * The manager IS the container registry — its `/v2/` endpoint serves as + * the OCI Distribution API. Controllers derive the proxy host from this + * to configure pull auth (RegistryCredentials, imagePullSecrets). + * + * When None (e.g., `alien dev`), controllers use image URIs as-is. + */ + managerUrl?: string | null | undefined; + monitoring?: SyncAcquireResponseDeploymentMonitoring | any | null | undefined; + /** + * Native image registry host+prefix for platforms that require it. + * + * @remarks + * + * Lambda (ECR) and Cloud Run (GAR) require native registry URIs. Other + * runtimes, including Azure Container Apps, pull through the manager's + * registry proxy. + * + * Derived by the manager from the artifact registry binding: + * - ECR: `{account_id}.dkr.ecr.{region}.amazonaws.com/{repository_prefix}` + * - GAR: `{region}-docker.pkg.dev/{project_id}/{repository_name}` + */ + nativeImageHost?: string | null | undefined; + /** + * When true the observe pass reports raw resources across every namespace + * + * @remarks + * (cluster scope); otherwise it stays within the operator's own namespace. + * The label selector, if any, still filters within whichever scope applies. + * Ignored by cloud observers. + */ + observeAllNamespaces?: boolean | undefined; + /** + * Kubernetes label selector that narrows which raw resources the observe + * + * @remarks + * pass reports (e.g. `app.kubernetes.io/part-of=my-app`). `None` observes + * everything in the namespace. Ignored by cloud observers. + */ + observeLabelSelector?: string | null | undefined; + /** + * Public endpoint URLs for exposed resources (optional override). + * + * @remarks + * + * Use this only when a caller already knows the public URL. Managed public + * endpoint flows should prefer `domain_metadata` plus controller-reported + * load balancer outputs so DNS, certificate renewal, and route readiness + * stay tied to the resource state. + * + * If not set, platforms determine public endpoint URLs from other sources: + * - Managed DNS/TLS flows: `domain_metadata` FQDN or load balancer DNS + * - Local: `http://localhost:{allocated_port}` + * - Custom or disabled exposure: no public endpoint URL unless a controller reports one + * + * Outer key: resource ID. Inner key: endpoint name. Value: public URL. + */ + publicEndpoints?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * User-customizable deployment settings specified at deploy time. + * + * @remarks + * + * These settings are provided by the customer via CloudFormation parameters, + * Terraform attributes, CLI flags, or Helm values. They customize how the + * deployment runs and what capabilities are enabled. + * + * **Key distinction**: StackSettings is user-customizable, while ManagementConfig + * is platform-derived (from the Manager's ServiceAccount). + */ + stackSettings?: SyncAcquireResponseDeploymentStackSettings | undefined; +}; + +export type SyncAcquireResponseDeployment = { + /** + * ID of the deployment + */ + deploymentId: string; + /** + * Project ID the deployment belongs to + */ + projectId: string; + /** + * Deployment group ID the deployment belongs to + */ + deploymentGroupId: string; + setupMethod?: DeploymentSetupMethod | undefined; + /** + * Current deployment state (includes releases) + */ + current: SyncAcquireResponseDeploymentCurrent; + /** + * Deployment configuration + */ + config: SyncAcquireResponseDeploymentConfig; +}; + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseTypeStringList$inboundSchema: + z.ZodEnum = + z.enum(SyncAcquireResponseDeploymentCurrentReleaseTypeStringList); + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseDefaultStringList$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseDefaultStringList, + unknown + > = z.object({ + type: + SyncAcquireResponseDeploymentCurrentReleaseTypeStringList$inboundSchema, + value: z.array(z.string()), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseDefaultStringListFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseDefaultStringList, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseDefaultStringList$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseDefaultStringList' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseTypeBoolean$inboundSchema: + z.ZodEnum = z + .enum(SyncAcquireResponseDeploymentCurrentReleaseTypeBoolean); + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseDefaultBoolean$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseDefaultBoolean, + unknown + > = z.object({ + type: SyncAcquireResponseDeploymentCurrentReleaseTypeBoolean$inboundSchema, + value: z.boolean(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseDefaultBooleanFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseDefaultBoolean, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseDefaultBoolean$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseDefaultBoolean' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseTypeNumber$inboundSchema: + z.ZodEnum = z + .enum(SyncAcquireResponseDeploymentCurrentReleaseTypeNumber); + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseDefaultNumber$inboundSchema: + z.ZodType = + z.object({ + type: SyncAcquireResponseDeploymentCurrentReleaseTypeNumber$inboundSchema, + value: z.string(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseDefaultNumberFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseDefaultNumber, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseDefaultNumber$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseDefaultNumber' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseTypeString$inboundSchema: + z.ZodEnum = z + .enum(SyncAcquireResponseDeploymentCurrentReleaseTypeString); + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseDefaultString$inboundSchema: + z.ZodType = + z.object({ + type: SyncAcquireResponseDeploymentCurrentReleaseTypeString$inboundSchema, + value: z.string(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseDefaultStringFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseDefaultString, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseDefaultString$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseDefaultString' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseDefaultUnion$inboundSchema: + z.ZodType = + z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseDefaultString$inboundSchema + ), + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseDefaultNumber$inboundSchema + ), + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseDefaultBoolean$inboundSchema + ), + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseDefaultStringList$inboundSchema + ), + z.any(), + ]); + +export function syncAcquireResponseDeploymentCurrentReleaseDefaultUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseDefaultUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseDefaultUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseDefaultUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseTypeEnvEnum$inboundSchema: + z.ZodEnum = z + .enum(SyncAcquireResponseDeploymentCurrentReleaseTypeEnvEnum); + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseTypeUnion$inboundSchema: + z.ZodType = z + .union([ + SyncAcquireResponseDeploymentCurrentReleaseTypeEnvEnum$inboundSchema, + z.any(), + ]); + +export function syncAcquireResponseDeploymentCurrentReleaseTypeUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseTypeUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseTypeUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseTypeUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseEnv$inboundSchema: + z.ZodType = z.object( + { + name: z.string(), + targetResources: z.nullable(z.array(z.string())).optional(), + type: z.nullable( + z.union([ + SyncAcquireResponseDeploymentCurrentReleaseTypeEnvEnum$inboundSchema, + z.any(), + ]), + ).optional(), + }, + ); + +export function syncAcquireResponseDeploymentCurrentReleaseEnvFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseEnv, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseEnv$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseEnv' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseKind$inboundSchema: + z.ZodEnum = z.enum( + SyncAcquireResponseDeploymentCurrentReleaseKind, + ); + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleasePlatform$inboundSchema: + z.ZodEnum = z + .enum(SyncAcquireResponseDeploymentCurrentReleasePlatform); + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseProvidedBy$inboundSchema: + z.ZodEnum = z + .enum(SyncAcquireResponseDeploymentCurrentReleaseProvidedBy); + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseValidation$inboundSchema: + z.ZodType = z + .object({ + format: z.nullable(z.string()).optional(), + max: z.nullable(z.string()).optional(), + maxItems: z.nullable(z.int()).optional(), + maxLength: z.nullable(z.int()).optional(), + min: z.nullable(z.string()).optional(), + minItems: z.nullable(z.int()).optional(), + minLength: z.nullable(z.int()).optional(), + pattern: z.nullable(z.string()).optional(), + values: z.nullable(z.array(z.string())).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseValidationFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseValidation, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseValidation$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseValidation' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseValidationUnion$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseValidationUnion, + unknown + > = z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseValidation$inboundSchema + ), + z.any(), + ]); + +export function syncAcquireResponseDeploymentCurrentReleaseValidationUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseValidationUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseValidationUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseValidationUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseInput$inboundSchema: + z.ZodType = z + .object({ + default: z.nullable( + z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseDefaultString$inboundSchema + ), + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseDefaultNumber$inboundSchema + ), + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseDefaultBoolean$inboundSchema + ), + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseDefaultStringList$inboundSchema + ), + z.any(), + ]), + ).optional(), + description: z.string(), + env: z.array( + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseEnv$inboundSchema + ), + ).optional(), + id: z.string(), + kind: SyncAcquireResponseDeploymentCurrentReleaseKind$inboundSchema, + label: z.string(), + placeholder: z.nullable(z.string()).optional(), + platforms: z.nullable( + z.array( + SyncAcquireResponseDeploymentCurrentReleasePlatform$inboundSchema, + ), + ).optional(), + providedBy: z.array( + SyncAcquireResponseDeploymentCurrentReleaseProvidedBy$inboundSchema, + ), + required: z.boolean(), + validation: z.nullable( + z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseValidation$inboundSchema + ), + z.any(), + ]), + ).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseInputFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseInput, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseInput$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseInput' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseManagementEnum$inboundSchema: + z.ZodEnum = + z.enum(SyncAcquireResponseDeploymentCurrentReleaseManagementEnum); + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseOverrideAwResource$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseOverrideAwResource, + unknown + > = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseOverrideAwResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseOverrideAwResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseOverrideAwResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideAwResource' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseOverrideAwStack$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseOverrideAwStack, + unknown + > = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseOverrideAwStackFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseOverrideAwStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseOverrideAwStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideAwStack' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseOverrideAwBinding$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseOverrideAwBinding, + unknown + > = z.object({ + resource: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseOverrideAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseOverrideAwStack$inboundSchema + ).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseOverrideAwBindingFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseOverrideAwBinding, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseOverrideAwBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideAwBinding' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseOverrideEffect$inboundSchema: + z.ZodEnum = + z.enum(SyncAcquireResponseDeploymentCurrentReleaseOverrideEffect); + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseOverrideAwGrant$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseOverrideAwGrant, + unknown + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseOverrideAwGrantFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseOverrideAwGrant, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseOverrideAwGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideAwGrant' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseOverrideAw$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseOverrideAwBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: + SyncAcquireResponseDeploymentCurrentReleaseOverrideEffect$inboundSchema + .optional(), + grant: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseOverrideAwGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseOverrideAwFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseOverrideAw, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseOverrideAw$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideAw' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureResource$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureResource, + unknown + > = z.object({ + scope: z.string(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseOverrideAzureResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureResource' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureStack$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureStack, + unknown + > = z.object({ + scope: z.string(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseOverrideAzureStackFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureStack' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureBinding$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureBinding, + unknown + > = z.object({ + resource: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureStack$inboundSchema + ).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseOverrideAzureBindingFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureBinding, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureBinding' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureGrant$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureGrant, + unknown + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseOverrideAzureGrantFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureGrant, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureGrant' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseOverrideAzure$inboundSchema: + z.ZodType = + z.object({ + binding: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseOverrideAzureFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseOverrideAzure, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseOverrideAzure$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideAzure' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseOverrideConditionResource$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseOverrideConditionResource, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseOverrideConditionResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseOverrideConditionResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseOverrideConditionResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideConditionResource' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseOverrideResourceConditionUnion$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseOverrideResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseOverrideConditionResource$inboundSchema + ), + z.any(), + ]); + +export function syncAcquireResponseDeploymentCurrentReleaseOverrideResourceConditionUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseOverrideResourceConditionUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseOverrideResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideResourceConditionUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpResource$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpResource, + unknown + > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseOverrideConditionResource$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseOverrideGcpResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpResource' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseOverrideCondition$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseOverrideCondition, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseOverrideConditionFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseOverrideCondition, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseOverrideCondition$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideCondition' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseOverrideConditionUnion$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseOverrideConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseOverrideCondition$inboundSchema + ), + z.any(), + ]); + +export function syncAcquireResponseDeploymentCurrentReleaseOverrideConditionUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseOverrideConditionUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseOverrideConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideConditionUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpStack$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpStack, + unknown + > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseOverrideCondition$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseOverrideGcpStackFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpStack' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpBinding$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpBinding, + unknown + > = z.object({ + resource: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpStack$inboundSchema + ).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseOverrideGcpBindingFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpBinding, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpBinding' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpGrant$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpGrant, + unknown + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseOverrideGcpGrantFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpGrant, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpGrant' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseOverrideGcp$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseOverrideGcpFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseOverrideGcp, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseOverrideGcp$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideGcp' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseOverridePlatforms$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseOverridePlatforms, + unknown + > = z.object({ + aws: z.nullable( + z.array(z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseOverrideAw$inboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseOverrideAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseOverrideGcp$inboundSchema + )), + ).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseOverridePlatformsFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseOverridePlatforms, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseOverridePlatforms$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverridePlatforms' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseOverride$inboundSchema: + z.ZodType = z + .object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseOverridePlatforms$inboundSchema + ), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseOverrideFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseOverride, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseOverride$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverride' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseOverrideUnion$inboundSchema: + z.ZodType = + z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseOverride$inboundSchema + ), + z.string(), + ]); + +export function syncAcquireResponseDeploymentCurrentReleaseOverrideUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseOverrideUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseOverrideUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseManagement2$inboundSchema: + z.ZodType = z + .object({ + override: z.record( + z.string(), + z.array(z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseOverride$inboundSchema + ), + z.string(), + ])), + ), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseManagement2FromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseManagement2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseManagement2$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseManagement2' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseExtendAwResource$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseExtendAwResource, + unknown + > = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseExtendAwResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseExtendAwResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseExtendAwResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendAwResource' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseExtendAwStack$inboundSchema: + z.ZodType = + z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseExtendAwStackFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseExtendAwStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseExtendAwStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendAwStack' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseExtendAwBinding$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseExtendAwBinding, + unknown + > = z.object({ + resource: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseExtendAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseExtendAwStack$inboundSchema + ).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseExtendAwBindingFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseExtendAwBinding, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseExtendAwBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendAwBinding' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseExtendEffect$inboundSchema: + z.ZodEnum = z + .enum(SyncAcquireResponseDeploymentCurrentReleaseExtendEffect); + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseExtendAwGrant$inboundSchema: + z.ZodType = + z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseExtendAwGrantFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseExtendAwGrant, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseExtendAwGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendAwGrant' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseExtendAw$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseExtendAwBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: + SyncAcquireResponseDeploymentCurrentReleaseExtendEffect$inboundSchema + .optional(), + grant: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseExtendAwGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseExtendAwFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseExtendAw, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseExtendAw$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendAw' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseExtendAzureResource$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseExtendAzureResource, + unknown + > = z.object({ + scope: z.string(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseExtendAzureResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseExtendAzureResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseExtendAzureResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendAzureResource' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseExtendAzureStack$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseExtendAzureStack, + unknown + > = z.object({ + scope: z.string(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseExtendAzureStackFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseExtendAzureStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseExtendAzureStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendAzureStack' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseExtendAzureBinding$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseExtendAzureBinding, + unknown + > = z.object({ + resource: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseExtendAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseExtendAzureStack$inboundSchema + ).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseExtendAzureBindingFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseExtendAzureBinding, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseExtendAzureBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendAzureBinding' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseExtendAzureGrant$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseExtendAzureGrant, + unknown + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseExtendAzureGrantFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseExtendAzureGrant, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseExtendAzureGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendAzureGrant' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseExtendAzure$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseExtendAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseExtendAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseExtendAzureFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseExtendAzure, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseExtendAzure$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendAzure' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseExtendConditionResource$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseExtendConditionResource, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseExtendConditionResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseExtendConditionResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseExtendConditionResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendConditionResource' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseExtendResourceConditionUnion$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseExtendResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseExtendConditionResource$inboundSchema + ), + z.any(), + ]); + +export function syncAcquireResponseDeploymentCurrentReleaseExtendResourceConditionUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseExtendResourceConditionUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseExtendResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendResourceConditionUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseExtendGcpResource$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseExtendGcpResource, + unknown + > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseExtendConditionResource$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseExtendGcpResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseExtendGcpResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseExtendGcpResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendGcpResource' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseExtendCondition$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseExtendCondition, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseExtendConditionFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseExtendCondition, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseExtendCondition$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendCondition' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseExtendConditionUnion$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseExtendConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseExtendCondition$inboundSchema + ), + z.any(), + ]); + +export function syncAcquireResponseDeploymentCurrentReleaseExtendConditionUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseExtendConditionUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseExtendConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendConditionUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseExtendGcpStack$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseExtendGcpStack, + unknown + > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseExtendCondition$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseExtendGcpStackFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseExtendGcpStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseExtendGcpStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendGcpStack' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseExtendGcpBinding$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseExtendGcpBinding, + unknown + > = z.object({ + resource: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseExtendGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseExtendGcpStack$inboundSchema + ).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseExtendGcpBindingFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseExtendGcpBinding, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseExtendGcpBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendGcpBinding' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseExtendGcpGrant$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseExtendGcpGrant, + unknown + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseExtendGcpGrantFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseExtendGcpGrant, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseExtendGcpGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendGcpGrant' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseExtendGcp$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseExtendGcpBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseExtendGcpGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseExtendGcpFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseExtendGcp, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseExtendGcp$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendGcp' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseExtendPlatforms$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseExtendPlatforms, + unknown + > = z.object({ + aws: z.nullable( + z.array(z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseExtendAw$inboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseExtendAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseExtendGcp$inboundSchema + )), + ).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseExtendPlatformsFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseExtendPlatforms, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseExtendPlatforms$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendPlatforms' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseExtend$inboundSchema: + z.ZodType = z + .object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseExtendPlatforms$inboundSchema + ), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseExtendFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseExtend, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseExtend$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtend' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseExtendUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseExtend$inboundSchema + ), + z.string(), + ]); + +export function syncAcquireResponseDeploymentCurrentReleaseExtendUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseExtendUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseExtendUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseManagement1$inboundSchema: + z.ZodType = z + .object({ + extend: z.record( + z.string(), + z.array(z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseExtend$inboundSchema + ), + z.string(), + ])), + ), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseManagement1FromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseManagement1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseManagement1$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseManagement1' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseManagementUnion$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseManagementUnion, + unknown + > = z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseManagement1$inboundSchema + ), + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseManagement2$inboundSchema + ), + SyncAcquireResponseDeploymentCurrentReleaseManagementEnum$inboundSchema, + ]); + +export function syncAcquireResponseDeploymentCurrentReleaseManagementUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseManagementUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseManagementUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseManagementUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseProfileAwResource$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseProfileAwResource, + unknown + > = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseProfileAwResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseProfileAwResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseProfileAwResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileAwResource' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseProfileAwStack$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseProfileAwStack, + unknown + > = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseProfileAwStackFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseProfileAwStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseProfileAwStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileAwStack' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseProfileAwBinding$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseProfileAwBinding, + unknown + > = z.object({ + resource: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseProfileAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseProfileAwStack$inboundSchema + ).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseProfileAwBindingFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseProfileAwBinding, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseProfileAwBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileAwBinding' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseProfileEffect$inboundSchema: + z.ZodEnum = z + .enum(SyncAcquireResponseDeploymentCurrentReleaseProfileEffect); + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseProfileAwGrant$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseProfileAwGrant, + unknown + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseProfileAwGrantFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseProfileAwGrant, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseProfileAwGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileAwGrant' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseProfileAw$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseProfileAwBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: + SyncAcquireResponseDeploymentCurrentReleaseProfileEffect$inboundSchema + .optional(), + grant: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseProfileAwGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseProfileAwFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseProfileAw, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseProfileAw$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileAw' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseProfileAzureResource$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseProfileAzureResource, + unknown + > = z.object({ + scope: z.string(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseProfileAzureResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseProfileAzureResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseProfileAzureResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileAzureResource' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseProfileAzureStack$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseProfileAzureStack, + unknown + > = z.object({ + scope: z.string(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseProfileAzureStackFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseProfileAzureStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseProfileAzureStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileAzureStack' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseProfileAzureBinding$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseProfileAzureBinding, + unknown + > = z.object({ + resource: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseProfileAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseProfileAzureStack$inboundSchema + ).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseProfileAzureBindingFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseProfileAzureBinding, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseProfileAzureBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileAzureBinding' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseProfileAzureGrant$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseProfileAzureGrant, + unknown + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseProfileAzureGrantFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseProfileAzureGrant, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseProfileAzureGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileAzureGrant' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseProfileAzure$inboundSchema: + z.ZodType = + z.object({ + binding: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseProfileAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseProfileAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseProfileAzureFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseProfileAzure, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseProfileAzure$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileAzure' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseProfileConditionResource$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseProfileConditionResource, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseProfileConditionResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseProfileConditionResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseProfileConditionResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileConditionResource' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseProfileResourceConditionUnion$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseProfileResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseProfileConditionResource$inboundSchema + ), + z.any(), + ]); + +export function syncAcquireResponseDeploymentCurrentReleaseProfileResourceConditionUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseProfileResourceConditionUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseProfileResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileResourceConditionUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseProfileGcpResource$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseProfileGcpResource, + unknown + > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseProfileConditionResource$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseProfileGcpResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseProfileGcpResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseProfileGcpResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileGcpResource' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseProfileCondition$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseProfileCondition, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseProfileConditionFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseProfileCondition, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseProfileCondition$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileCondition' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseProfileConditionUnion$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseProfileConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseProfileCondition$inboundSchema + ), + z.any(), + ]); + +export function syncAcquireResponseDeploymentCurrentReleaseProfileConditionUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseProfileConditionUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseProfileConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileConditionUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseProfileGcpStack$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseProfileGcpStack, + unknown + > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseProfileCondition$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseProfileGcpStackFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseProfileGcpStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseProfileGcpStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileGcpStack' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseProfileGcpBinding$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseProfileGcpBinding, + unknown + > = z.object({ + resource: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseProfileGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseProfileGcpStack$inboundSchema + ).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseProfileGcpBindingFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseProfileGcpBinding, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseProfileGcpBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileGcpBinding' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseProfileGcpGrant$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseProfileGcpGrant, + unknown + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseProfileGcpGrantFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseProfileGcpGrant, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseProfileGcpGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileGcpGrant' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseProfileGcp$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseProfileGcpBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseProfileGcpGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseProfileGcpFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseProfileGcp, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseProfileGcp$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileGcp' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseProfilePlatforms$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentCurrentReleaseProfilePlatforms, + unknown + > = z.object({ + aws: z.nullable( + z.array(z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseProfileAw$inboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseProfileAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseProfileGcp$inboundSchema + )), + ).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseProfilePlatformsFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseProfilePlatforms, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseProfilePlatforms$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfilePlatforms' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseProfile$inboundSchema: + z.ZodType = z + .object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseProfilePlatforms$inboundSchema + ), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseProfileFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseProfile, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseProfile$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfile' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseProfileUnion$inboundSchema: + z.ZodType = + z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseProfile$inboundSchema + ), + z.string(), + ]); + +export function syncAcquireResponseDeploymentCurrentReleaseProfileUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseProfileUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseProfileUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleasePermissions$inboundSchema: + z.ZodType = z + .object({ + management: z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseManagement1$inboundSchema + ), + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseManagement2$inboundSchema + ), + SyncAcquireResponseDeploymentCurrentReleaseManagementEnum$inboundSchema, + ]).optional(), + profiles: z.record( + z.string(), + z.record( + z.string(), + z.array( + z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseProfile$inboundSchema + ), + z.string(), + ]), + ), + ), + ), + }); + +export function syncAcquireResponseDeploymentCurrentReleasePermissionsFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleasePermissions, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleasePermissions$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleasePermissions' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseConfig$inboundSchema: + z.ZodType = + collectExtraKeys$( + z.object({ + id: z.string(), + type: z.string(), + }).catchall(z.any()), + "additionalProperties", + true, + ); + +export function syncAcquireResponseDeploymentCurrentReleaseConfigFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseConfig, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseConfig$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseConfig' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseDependency$inboundSchema: + z.ZodType = z + .object({ + id: z.string(), + type: z.string(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseDependencyFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseDependency, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseDependency$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseDependency' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseLifecycle$inboundSchema: + z.ZodEnum = z + .enum(SyncAcquireResponseDeploymentCurrentReleaseLifecycle); + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseResources$inboundSchema: + z.ZodType = z + .object({ + config: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseConfig$inboundSchema + ), + dependencies: z.array( + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseDependency$inboundSchema + ), + ), + enabledWhen: z.nullable(z.string()).optional(), + lifecycle: + SyncAcquireResponseDeploymentCurrentReleaseLifecycle$inboundSchema, + remoteAccess: z.boolean().optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseResourcesFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseResources, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseResources$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseResources' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentReleaseSupportedPlatform$inboundSchema: + z.ZodEnum< + typeof SyncAcquireResponseDeploymentCurrentReleaseSupportedPlatform + > = z.enum(SyncAcquireResponseDeploymentCurrentReleaseSupportedPlatform); /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseTypeStringList$inboundSchema: - z.ZodEnum = - z.enum(SyncAcquireResponseDeploymentCurrentReleaseTypeStringList); +export const SyncAcquireResponseDeploymentCurrentReleaseStack$inboundSchema: + z.ZodType = z + .object({ + id: z.string(), + inputs: z.array( + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseInput$inboundSchema + ), + ).optional(), + permissions: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleasePermissions$inboundSchema + ).optional(), + resources: z.record( + z.string(), + z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseResources$inboundSchema + ), + ), + supportedPlatforms: z.nullable( + z.array( + SyncAcquireResponseDeploymentCurrentReleaseSupportedPlatform$inboundSchema, + ), + ).optional(), + }); + +export function syncAcquireResponseDeploymentCurrentReleaseStackFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseStack' from JSON`, + ); +} /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseDefaultStringList$inboundSchema: - z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseDefaultStringList, - unknown - > = z.object({ - type: - SyncAcquireResponseDeploymentCurrentReleaseTypeStringList$inboundSchema, - value: z.array(z.string()), +export const SyncAcquireResponseDeploymentCurrentRelease$inboundSchema: + z.ZodType = z.object({ + description: z.nullable(z.string()).optional(), + releaseId: z.nullable(z.string()).optional(), + stack: z.lazy(() => + SyncAcquireResponseDeploymentCurrentReleaseStack$inboundSchema + ), + version: z.nullable(z.string()).optional(), }); -export function syncAcquireResponseDeploymentCurrentReleaseDefaultStringListFromJSON( +export function syncAcquireResponseDeploymentCurrentReleaseFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseDefaultStringList, + SyncAcquireResponseDeploymentCurrentRelease, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseDefaultStringList$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseDefaultStringList' from JSON`, + SyncAcquireResponseDeploymentCurrentRelease$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentRelease' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseTypeBoolean$inboundSchema: - z.ZodEnum = z - .enum(SyncAcquireResponseDeploymentCurrentReleaseTypeBoolean); +export const SyncAcquireResponseDeploymentCurrentReleaseUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => SyncAcquireResponseDeploymentCurrentRelease$inboundSchema), + z.any(), + ]); + +export function syncAcquireResponseDeploymentCurrentReleaseUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentCurrentReleaseUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentCurrentReleaseUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseUnion' from JSON`, + ); +} /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseDefaultBoolean$inboundSchema: - z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseDefaultBoolean, - unknown - > = z.object({ - type: SyncAcquireResponseDeploymentCurrentReleaseTypeBoolean$inboundSchema, - value: z.boolean(), - }); +export const SyncAcquireResponseDeploymentPlatformTest$inboundSchema: z.ZodEnum< + typeof SyncAcquireResponseDeploymentPlatformTest +> = z.enum(SyncAcquireResponseDeploymentPlatformTest); -export function syncAcquireResponseDeploymentCurrentReleaseDefaultBooleanFromJSON( +/** @internal */ +export const SyncAcquireResponseDeploymentEnvironmentInfoTest$inboundSchema: + z.ZodType = z + .object({ + testId: z.string(), + platform: SyncAcquireResponseDeploymentPlatformTest$inboundSchema, + }); + +export function syncAcquireResponseDeploymentEnvironmentInfoTestFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseDefaultBoolean, + SyncAcquireResponseDeploymentEnvironmentInfoTest, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseDefaultBoolean$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseDefaultBoolean' from JSON`, + SyncAcquireResponseDeploymentEnvironmentInfoTest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentEnvironmentInfoTest' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseTypeNumber$inboundSchema: - z.ZodEnum = z - .enum(SyncAcquireResponseDeploymentCurrentReleaseTypeNumber); +export const SyncAcquireResponseDeploymentPlatformLocal$inboundSchema: + z.ZodEnum = z.enum( + SyncAcquireResponseDeploymentPlatformLocal, + ); /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseDefaultNumber$inboundSchema: - z.ZodType = - z.object({ - type: SyncAcquireResponseDeploymentCurrentReleaseTypeNumber$inboundSchema, - value: z.string(), +export const SyncAcquireResponseDeploymentEnvironmentInfoLocal$inboundSchema: + z.ZodType = z + .object({ + arch: z.string(), + hostname: z.string(), + os: z.string(), + platform: SyncAcquireResponseDeploymentPlatformLocal$inboundSchema, }); -export function syncAcquireResponseDeploymentCurrentReleaseDefaultNumberFromJSON( +export function syncAcquireResponseDeploymentEnvironmentInfoLocalFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseDefaultNumber, + SyncAcquireResponseDeploymentEnvironmentInfoLocal, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseDefaultNumber$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseDefaultNumber' from JSON`, + SyncAcquireResponseDeploymentEnvironmentInfoLocal$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentEnvironmentInfoLocal' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentPlatformAzure$inboundSchema: + z.ZodEnum = z.enum( + SyncAcquireResponseDeploymentCurrentPlatformAzure, + ); + +/** @internal */ +export const SyncAcquireResponseDeploymentEnvironmentInfoAzure$inboundSchema: + z.ZodType = z + .object({ + location: z.string(), + subscriptionId: z.string(), + tenantId: z.string(), + platform: SyncAcquireResponseDeploymentCurrentPlatformAzure$inboundSchema, + }); + +export function syncAcquireResponseDeploymentEnvironmentInfoAzureFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentEnvironmentInfoAzure, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentEnvironmentInfoAzure$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentEnvironmentInfoAzure' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentCurrentPlatformGcp$inboundSchema: + z.ZodEnum = z.enum( + SyncAcquireResponseDeploymentCurrentPlatformGcp, + ); + +/** @internal */ +export const SyncAcquireResponseDeploymentEnvironmentInfoGcp$inboundSchema: + z.ZodType = z + .object({ + projectId: z.string(), + projectNumber: z.string(), + region: z.string(), + platform: SyncAcquireResponseDeploymentCurrentPlatformGcp$inboundSchema, + }); + +export function syncAcquireResponseDeploymentEnvironmentInfoGcpFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentEnvironmentInfoGcp, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentEnvironmentInfoGcp$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentEnvironmentInfoGcp' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseTypeString$inboundSchema: - z.ZodEnum = z - .enum(SyncAcquireResponseDeploymentCurrentReleaseTypeString); +export const SyncAcquireResponseDeploymentCurrentPlatformAws$inboundSchema: + z.ZodEnum = z.enum( + SyncAcquireResponseDeploymentCurrentPlatformAws, + ); /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseDefaultString$inboundSchema: - z.ZodType = - z.object({ - type: SyncAcquireResponseDeploymentCurrentReleaseTypeString$inboundSchema, - value: z.string(), +export const SyncAcquireResponseDeploymentEnvironmentInfoAws$inboundSchema: + z.ZodType = z + .object({ + accountId: z.string(), + region: z.string(), + platform: SyncAcquireResponseDeploymentCurrentPlatformAws$inboundSchema, }); -export function syncAcquireResponseDeploymentCurrentReleaseDefaultStringFromJSON( +export function syncAcquireResponseDeploymentEnvironmentInfoAwsFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseDefaultString, + SyncAcquireResponseDeploymentEnvironmentInfoAws, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseDefaultString$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseDefaultString' from JSON`, + SyncAcquireResponseDeploymentEnvironmentInfoAws$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentEnvironmentInfoAws' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseDefaultUnion$inboundSchema: - z.ZodType = - z.union([ +export const SyncAcquireResponseDeploymentEnvironmentInfoUnion$inboundSchema: + z.ZodType = z + .union([ z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseDefaultString$inboundSchema + SyncAcquireResponseDeploymentEnvironmentInfoGcp$inboundSchema ), z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseDefaultNumber$inboundSchema + SyncAcquireResponseDeploymentEnvironmentInfoAzure$inboundSchema ), z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseDefaultBoolean$inboundSchema + SyncAcquireResponseDeploymentEnvironmentInfoLocal$inboundSchema ), z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseDefaultStringList$inboundSchema + SyncAcquireResponseDeploymentEnvironmentInfoAws$inboundSchema + ), + z.lazy(() => + SyncAcquireResponseDeploymentEnvironmentInfoTest$inboundSchema ), z.any(), ]); -export function syncAcquireResponseDeploymentCurrentReleaseDefaultUnionFromJSON( +export function syncAcquireResponseDeploymentEnvironmentInfoUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseDefaultUnion, + SyncAcquireResponseDeploymentEnvironmentInfoUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseDefaultUnion$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseDefaultUnion' from JSON`, + SyncAcquireResponseDeploymentEnvironmentInfoUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentEnvironmentInfoUnion' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseTypeEnvEnum$inboundSchema: - z.ZodEnum = z - .enum(SyncAcquireResponseDeploymentCurrentReleaseTypeEnvEnum); - -/** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseTypeUnion$inboundSchema: - z.ZodType = z - .union([ - SyncAcquireResponseDeploymentCurrentReleaseTypeEnvEnum$inboundSchema, - z.any(), - ]); +export const SyncAcquireResponseDeploymentError$inboundSchema: z.ZodType< + SyncAcquireResponseDeploymentError, + unknown +> = z.object({ + code: z.string(), + context: z.nullable(z.any()).optional(), + hint: z.nullable(z.string()).optional(), + httpStatusCode: z.nullable(z.int()).optional(), + internal: z.boolean(), + message: z.string(), + retryable: z.boolean().default(false), + source: z.nullable(z.any()).optional(), +}); -export function syncAcquireResponseDeploymentCurrentReleaseTypeUnionFromJSON( +export function syncAcquireResponseDeploymentErrorFromJSON( jsonString: string, -): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseTypeUnion, - SDKValidationError -> { +): SafeParseResult { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseTypeUnion$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseTypeUnion' from JSON`, + SyncAcquireResponseDeploymentError$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentError' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseEnv$inboundSchema: - z.ZodType = z.object( - { - name: z.string(), - targetResources: z.nullable(z.array(z.string())).optional(), - type: z.nullable( - z.union([ - SyncAcquireResponseDeploymentCurrentReleaseTypeEnvEnum$inboundSchema, - z.any(), - ]), - ).optional(), - }, - ); +export const SyncAcquireResponseDeploymentErrorUnion$inboundSchema: z.ZodType< + SyncAcquireResponseDeploymentErrorUnion, + unknown +> = z.union([ + z.lazy(() => SyncAcquireResponseDeploymentError$inboundSchema), + z.any(), +]); -export function syncAcquireResponseDeploymentCurrentReleaseEnvFromJSON( +export function syncAcquireResponseDeploymentErrorUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseEnv, + SyncAcquireResponseDeploymentErrorUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseEnv$inboundSchema.parse( + SyncAcquireResponseDeploymentErrorUnion$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseEnv' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentErrorUnion' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseKind$inboundSchema: - z.ZodEnum = z.enum( - SyncAcquireResponseDeploymentCurrentReleaseKind, +export const SyncAcquireResponseDeploymentCurrentPlatform$inboundSchema: + z.ZodEnum = z.enum( + SyncAcquireResponseDeploymentCurrentPlatform, ); /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleasePlatform$inboundSchema: - z.ZodEnum = z - .enum(SyncAcquireResponseDeploymentCurrentReleasePlatform); - -/** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseProvidedBy$inboundSchema: - z.ZodEnum = z - .enum(SyncAcquireResponseDeploymentCurrentReleaseProvidedBy); +export const SyncAcquireResponseDeploymentInitialSetupAuthority$inboundSchema: + z.ZodEnum = z.enum( + SyncAcquireResponseDeploymentInitialSetupAuthority, + ); /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseValidation$inboundSchema: - z.ZodType = z - .object({ - format: z.nullable(z.string()).optional(), - max: z.nullable(z.string()).optional(), - maxItems: z.nullable(z.int()).optional(), - maxLength: z.nullable(z.int()).optional(), - min: z.nullable(z.string()).optional(), - minItems: z.nullable(z.int()).optional(), - minLength: z.nullable(z.int()).optional(), - pattern: z.nullable(z.string()).optional(), - values: z.nullable(z.array(z.string())).optional(), - }); - -export function syncAcquireResponseDeploymentCurrentReleaseValidationFromJSON( - jsonString: string, -): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseValidation, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SyncAcquireResponseDeploymentCurrentReleaseValidation$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseValidation' from JSON`, - ); -} +export const SyncAcquireResponseDeploymentPendingPreparedStackTypeStringList$inboundSchema: + z.ZodEnum< + typeof SyncAcquireResponseDeploymentPendingPreparedStackTypeStringList + > = z.enum(SyncAcquireResponseDeploymentPendingPreparedStackTypeStringList); /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseValidationUnion$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackDefaultStringList$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseValidationUnion, + SyncAcquireResponseDeploymentPendingPreparedStackDefaultStringList, unknown - > = z.union([ - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseValidation$inboundSchema - ), - z.any(), - ]); + > = z.object({ + type: + SyncAcquireResponseDeploymentPendingPreparedStackTypeStringList$inboundSchema, + value: z.array(z.string()), + }); -export function syncAcquireResponseDeploymentCurrentReleaseValidationUnionFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackDefaultStringListFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseValidationUnion, + SyncAcquireResponseDeploymentPendingPreparedStackDefaultStringList, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseValidationUnion$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackDefaultStringList$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseValidationUnion' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackDefaultStringList' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseInput$inboundSchema: - z.ZodType = z - .object({ - default: z.nullable( - z.union([ - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseDefaultString$inboundSchema - ), - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseDefaultNumber$inboundSchema - ), - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseDefaultBoolean$inboundSchema - ), - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseDefaultStringList$inboundSchema - ), - z.any(), - ]), - ).optional(), - description: z.string(), - env: z.array( - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseEnv$inboundSchema - ), - ).optional(), - id: z.string(), - kind: SyncAcquireResponseDeploymentCurrentReleaseKind$inboundSchema, - label: z.string(), - placeholder: z.nullable(z.string()).optional(), - platforms: z.nullable( - z.array( - SyncAcquireResponseDeploymentCurrentReleasePlatform$inboundSchema, - ), - ).optional(), - providedBy: z.array( - SyncAcquireResponseDeploymentCurrentReleaseProvidedBy$inboundSchema, - ), - required: z.boolean(), - validation: z.nullable( - z.union([ - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseValidation$inboundSchema - ), - z.any(), - ]), - ).optional(), - }); +export const SyncAcquireResponseDeploymentPendingPreparedStackTypeBoolean$inboundSchema: + z.ZodEnum< + typeof SyncAcquireResponseDeploymentPendingPreparedStackTypeBoolean + > = z.enum(SyncAcquireResponseDeploymentPendingPreparedStackTypeBoolean); -export function syncAcquireResponseDeploymentCurrentReleaseInputFromJSON( +/** @internal */ +export const SyncAcquireResponseDeploymentPendingPreparedStackDefaultBoolean$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackDefaultBoolean, + unknown + > = z.object({ + type: + SyncAcquireResponseDeploymentPendingPreparedStackTypeBoolean$inboundSchema, + value: z.boolean(), + }); + +export function syncAcquireResponseDeploymentPendingPreparedStackDefaultBooleanFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseInput, + SyncAcquireResponseDeploymentPendingPreparedStackDefaultBoolean, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseInput$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseInput' from JSON`, + SyncAcquireResponseDeploymentPendingPreparedStackDefaultBoolean$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackDefaultBoolean' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseManagementEnum$inboundSchema: - z.ZodEnum = - z.enum(SyncAcquireResponseDeploymentCurrentReleaseManagementEnum); +export const SyncAcquireResponseDeploymentPendingPreparedStackTypeNumber$inboundSchema: + z.ZodEnum< + typeof SyncAcquireResponseDeploymentPendingPreparedStackTypeNumber + > = z.enum(SyncAcquireResponseDeploymentPendingPreparedStackTypeNumber); /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseOverrideAwResource$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackDefaultNumber$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseOverrideAwResource, + SyncAcquireResponseDeploymentPendingPreparedStackDefaultNumber, unknown > = z.object({ - condition: z.nullable( - z.record(z.string(), z.record(z.string(), z.string())), - ).optional(), - resources: z.array(z.string()), + type: + SyncAcquireResponseDeploymentPendingPreparedStackTypeNumber$inboundSchema, + value: z.string(), }); -export function syncAcquireResponseDeploymentCurrentReleaseOverrideAwResourceFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackDefaultNumberFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseOverrideAwResource, + SyncAcquireResponseDeploymentPendingPreparedStackDefaultNumber, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseOverrideAwResource$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackDefaultNumber$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideAwResource' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackDefaultNumber' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseOverrideAwStack$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackTypeString$inboundSchema: + z.ZodEnum< + typeof SyncAcquireResponseDeploymentPendingPreparedStackTypeString + > = z.enum(SyncAcquireResponseDeploymentPendingPreparedStackTypeString); + +/** @internal */ +export const SyncAcquireResponseDeploymentPendingPreparedStackDefaultString$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseOverrideAwStack, + SyncAcquireResponseDeploymentPendingPreparedStackDefaultString, unknown > = z.object({ - condition: z.nullable( - z.record(z.string(), z.record(z.string(), z.string())), - ).optional(), - resources: z.array(z.string()), + type: + SyncAcquireResponseDeploymentPendingPreparedStackTypeString$inboundSchema, + value: z.string(), }); -export function syncAcquireResponseDeploymentCurrentReleaseOverrideAwStackFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackDefaultStringFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseOverrideAwStack, + SyncAcquireResponseDeploymentPendingPreparedStackDefaultString, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseOverrideAwStack$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackDefaultString$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideAwStack' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackDefaultString' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseOverrideAwBinding$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackDefaultUnion$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseOverrideAwBinding, + SyncAcquireResponseDeploymentPendingPreparedStackDefaultUnion, unknown - > = z.object({ - resource: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseOverrideAwResource$inboundSchema - ).optional(), - stack: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseOverrideAwStack$inboundSchema - ).optional(), - }); + > = z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackDefaultString$inboundSchema + ), + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackDefaultNumber$inboundSchema + ), + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackDefaultBoolean$inboundSchema + ), + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackDefaultStringList$inboundSchema + ), + z.any(), + ]); -export function syncAcquireResponseDeploymentCurrentReleaseOverrideAwBindingFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackDefaultUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseOverrideAwBinding, + SyncAcquireResponseDeploymentPendingPreparedStackDefaultUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseOverrideAwBinding$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackDefaultUnion$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideAwBinding' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackDefaultUnion' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseOverrideEffect$inboundSchema: - z.ZodEnum = - z.enum(SyncAcquireResponseDeploymentCurrentReleaseOverrideEffect); +export const SyncAcquireResponseDeploymentPendingPreparedStackTypeEnvEnum$inboundSchema: + z.ZodEnum< + typeof SyncAcquireResponseDeploymentPendingPreparedStackTypeEnvEnum + > = z.enum(SyncAcquireResponseDeploymentPendingPreparedStackTypeEnvEnum); /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseOverrideAwGrant$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackTypeUnion$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseOverrideAwGrant, + SyncAcquireResponseDeploymentPendingPreparedStackTypeUnion, unknown - > = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), - }); + > = z.union([ + SyncAcquireResponseDeploymentPendingPreparedStackTypeEnvEnum$inboundSchema, + z.any(), + ]); -export function syncAcquireResponseDeploymentCurrentReleaseOverrideAwGrantFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackTypeUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseOverrideAwGrant, + SyncAcquireResponseDeploymentPendingPreparedStackTypeUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseOverrideAwGrant$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackTypeUnion$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideAwGrant' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackTypeUnion' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseOverrideAw$inboundSchema: - z.ZodType = z +export const SyncAcquireResponseDeploymentPendingPreparedStackEnv$inboundSchema: + z.ZodType = z .object({ - binding: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseOverrideAwBinding$inboundSchema - ), - description: z.nullable(z.string()).optional(), - effect: - SyncAcquireResponseDeploymentCurrentReleaseOverrideEffect$inboundSchema - .optional(), - grant: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseOverrideAwGrant$inboundSchema - ), - label: z.nullable(z.string()).optional(), + name: z.string(), + targetResources: z.nullable(z.array(z.string())).optional(), + type: z.nullable( + z.union([ + SyncAcquireResponseDeploymentPendingPreparedStackTypeEnvEnum$inboundSchema, + z.any(), + ]), + ).optional(), }); -export function syncAcquireResponseDeploymentCurrentReleaseOverrideAwFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackEnvFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseOverrideAw, + SyncAcquireResponseDeploymentPendingPreparedStackEnv, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseOverrideAw$inboundSchema.parse( + SyncAcquireResponseDeploymentPendingPreparedStackEnv$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideAw' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackEnv' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureResource$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackKind$inboundSchema: + z.ZodEnum = z + .enum(SyncAcquireResponseDeploymentPendingPreparedStackKind); + +/** @internal */ +export const SyncAcquireResponseDeploymentPendingPreparedStackPlatform$inboundSchema: + z.ZodEnum = + z.enum(SyncAcquireResponseDeploymentPendingPreparedStackPlatform); + +/** @internal */ +export const SyncAcquireResponseDeploymentPendingPreparedStackProvidedBy$inboundSchema: + z.ZodEnum< + typeof SyncAcquireResponseDeploymentPendingPreparedStackProvidedBy + > = z.enum(SyncAcquireResponseDeploymentPendingPreparedStackProvidedBy); + +/** @internal */ +export const SyncAcquireResponseDeploymentPendingPreparedStackValidation$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureResource, + SyncAcquireResponseDeploymentPendingPreparedStackValidation, unknown > = z.object({ - scope: z.string(), + format: z.nullable(z.string()).optional(), + max: z.nullable(z.string()).optional(), + maxItems: z.nullable(z.int()).optional(), + maxLength: z.nullable(z.int()).optional(), + min: z.nullable(z.string()).optional(), + minItems: z.nullable(z.int()).optional(), + minLength: z.nullable(z.int()).optional(), + pattern: z.nullable(z.string()).optional(), + values: z.nullable(z.array(z.string())).optional(), }); -export function syncAcquireResponseDeploymentCurrentReleaseOverrideAzureResourceFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackValidationFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureResource, + SyncAcquireResponseDeploymentPendingPreparedStackValidation, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureResource$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackValidation$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureResource' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackValidation' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureStack$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackValidationUnion$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureStack, + SyncAcquireResponseDeploymentPendingPreparedStackValidationUnion, unknown - > = z.object({ - scope: z.string(), - }); + > = z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackValidation$inboundSchema + ), + z.any(), + ]); -export function syncAcquireResponseDeploymentCurrentReleaseOverrideAzureStackFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackValidationUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureStack, + SyncAcquireResponseDeploymentPendingPreparedStackValidationUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureStack$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackValidationUnion$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureStack' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackValidationUnion' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureBinding$inboundSchema: - z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureBinding, - unknown - > = z.object({ - resource: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureResource$inboundSchema - ).optional(), - stack: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureStack$inboundSchema - ).optional(), - }); +export const SyncAcquireResponseDeploymentPendingPreparedStackInput$inboundSchema: + z.ZodType = z + .object({ + default: z.nullable( + z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackDefaultString$inboundSchema + ), + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackDefaultNumber$inboundSchema + ), + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackDefaultBoolean$inboundSchema + ), + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackDefaultStringList$inboundSchema + ), + z.any(), + ]), + ).optional(), + description: z.string(), + env: z.array( + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackEnv$inboundSchema + ), + ).optional(), + id: z.string(), + kind: SyncAcquireResponseDeploymentPendingPreparedStackKind$inboundSchema, + label: z.string(), + placeholder: z.nullable(z.string()).optional(), + platforms: z.nullable( + z.array( + SyncAcquireResponseDeploymentPendingPreparedStackPlatform$inboundSchema, + ), + ).optional(), + providedBy: z.array( + SyncAcquireResponseDeploymentPendingPreparedStackProvidedBy$inboundSchema, + ), + required: z.boolean(), + validation: z.nullable( + z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackValidation$inboundSchema + ), + z.any(), + ]), + ).optional(), + }); -export function syncAcquireResponseDeploymentCurrentReleaseOverrideAzureBindingFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackInputFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureBinding, + SyncAcquireResponseDeploymentPendingPreparedStackInput, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureBinding$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackInput$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureBinding' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackInput' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureGrant$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackManagementEnum$inboundSchema: + z.ZodEnum< + typeof SyncAcquireResponseDeploymentPendingPreparedStackManagementEnum + > = z.enum(SyncAcquireResponseDeploymentPendingPreparedStackManagementEnum); + +/** @internal */ +export const SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwResource$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureGrant, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwResource, unknown > = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), }); -export function syncAcquireResponseDeploymentCurrentReleaseOverrideAzureGrantFromJSON( - jsonString: string, -): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureGrant, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureGrant$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureGrant' from JSON`, - ); -} - -/** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseOverrideAzure$inboundSchema: - z.ZodType = - z.object({ - binding: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureBinding$inboundSchema - ), - description: z.nullable(z.string()).optional(), - grant: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseOverrideAzureGrant$inboundSchema - ), - label: z.nullable(z.string()).optional(), - }); - -export function syncAcquireResponseDeploymentCurrentReleaseOverrideAzureFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackOverrideAwResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseOverrideAzure, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseOverrideAzure$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwResource$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideAzure' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwResource' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseOverrideConditionResource$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwStack$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseOverrideConditionResource, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwStack, unknown > = z.object({ - expression: z.string(), - title: z.string(), + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), }); -export function syncAcquireResponseDeploymentCurrentReleaseOverrideConditionResourceFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackOverrideAwStackFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseOverrideConditionResource, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseOverrideConditionResource$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwStack$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideConditionResource' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwStack' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseOverrideResourceConditionUnion$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwBinding$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseOverrideResourceConditionUnion, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwBinding, unknown - > = z.union([ - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseOverrideConditionResource$inboundSchema - ), - z.any(), - ]); + > = z.object({ + resource: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwStack$inboundSchema + ).optional(), + }); -export function syncAcquireResponseDeploymentCurrentReleaseOverrideResourceConditionUnionFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackOverrideAwBindingFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseOverrideResourceConditionUnion, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwBinding, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseOverrideResourceConditionUnion$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwBinding$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideResourceConditionUnion' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwBinding' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpResource$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackOverrideEffect$inboundSchema: + z.ZodEnum< + typeof SyncAcquireResponseDeploymentPendingPreparedStackOverrideEffect + > = z.enum(SyncAcquireResponseDeploymentPendingPreparedStackOverrideEffect); + +/** @internal */ +export const SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwGrant$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpResource, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwGrant, unknown > = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseOverrideConditionResource$inboundSchema - ), - z.any(), - ]), - ).optional(), - scope: z.string(), + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncAcquireResponseDeploymentCurrentReleaseOverrideGcpResourceFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackOverrideAwGrantFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpResource, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwGrant, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpResource$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwGrant$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpResource' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwGrant' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseOverrideCondition$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackOverrideAw$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseOverrideCondition, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAw, unknown > = z.object({ - expression: z.string(), - title: z.string(), + binding: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: + SyncAcquireResponseDeploymentPendingPreparedStackOverrideEffect$inboundSchema + .optional(), + grant: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAwGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), }); -export function syncAcquireResponseDeploymentCurrentReleaseOverrideConditionFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackOverrideAwFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseOverrideCondition, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAw, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseOverrideCondition$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAw$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideCondition' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackOverrideAw' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseOverrideConditionUnion$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureResource$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseOverrideConditionUnion, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureResource, unknown - > = z.union([ - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseOverrideCondition$inboundSchema - ), - z.any(), - ]); + > = z.object({ + scope: z.string(), + }); -export function syncAcquireResponseDeploymentCurrentReleaseOverrideConditionUnionFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackOverrideAzureResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseOverrideConditionUnion, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseOverrideConditionUnion$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureResource$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideConditionUnion' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureResource' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpStack$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureStack$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpStack, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureStack, unknown > = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseOverrideCondition$inboundSchema - ), - z.any(), - ]), - ).optional(), scope: z.string(), }); -export function syncAcquireResponseDeploymentCurrentReleaseOverrideGcpStackFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackOverrideAzureStackFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpStack, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpStack$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureStack$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpStack' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureStack' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpBinding$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureBinding$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpBinding, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureBinding, unknown > = z.object({ resource: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpResource$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureResource$inboundSchema ).optional(), stack: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpStack$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureStack$inboundSchema ).optional(), }); -export function syncAcquireResponseDeploymentCurrentReleaseOverrideGcpBindingFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackOverrideAzureBindingFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpBinding, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureBinding, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpBinding$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureBinding$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpBinding' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureBinding' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpGrant$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureGrant$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpGrant, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureGrant, unknown > = z.object({ actions: z.nullable(z.array(z.string())).optional(), @@ -11291,650 +15811,665 @@ export const SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpGrant$inbound residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncAcquireResponseDeploymentCurrentReleaseOverrideGcpGrantFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackOverrideAzureGrantFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpGrant, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureGrant, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpGrant$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureGrant$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpGrant' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureGrant' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseOverrideGcp$inboundSchema: - z.ZodType = z - .object({ - binding: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpBinding$inboundSchema - ), - description: z.nullable(z.string()).optional(), - grant: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseOverrideGcpGrant$inboundSchema - ), - label: z.nullable(z.string()).optional(), - }); +export const SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzure$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzure, + unknown + > = z.object({ + binding: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function syncAcquireResponseDeploymentCurrentReleaseOverrideGcpFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackOverrideAzureFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseOverrideGcp, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzure, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseOverrideGcp$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzure$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideGcp' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzure' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseOverridePlatforms$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionResource$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseOverridePlatforms, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionResource, unknown > = z.object({ - aws: z.nullable( - z.array(z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseOverrideAw$inboundSchema - )), - ).optional(), - azure: z.nullable( - z.array(z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseOverrideAzure$inboundSchema - )), - ).optional(), - gcp: z.nullable( - z.array(z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseOverrideGcp$inboundSchema - )), - ).optional(), + expression: z.string(), + title: z.string(), }); -export function syncAcquireResponseDeploymentCurrentReleaseOverridePlatformsFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackOverrideConditionResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseOverridePlatforms, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseOverridePlatforms$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionResource$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverridePlatforms' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionResource' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseOverride$inboundSchema: - z.ZodType = z - .object({ - description: z.string(), - id: z.string(), - platforms: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseOverridePlatforms$inboundSchema - ), - }); +export const SyncAcquireResponseDeploymentPendingPreparedStackOverrideResourceConditionUnion$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackOverrideResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionResource$inboundSchema + ), + z.any(), + ]); -export function syncAcquireResponseDeploymentCurrentReleaseOverrideFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackOverrideResourceConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseOverride, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideResourceConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseOverride$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverride' from JSON`, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackOverrideResourceConditionUnion' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseOverrideUnion$inboundSchema: - z.ZodType = - z.union([ - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseOverride$inboundSchema - ), - z.string(), - ]); +export const SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpResource$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpResource, + unknown + > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionResource$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function syncAcquireResponseDeploymentCurrentReleaseOverrideUnionFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackOverrideGcpResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseOverrideUnion, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseOverrideUnion$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpResource$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseOverrideUnion' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpResource' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseManagement2$inboundSchema: - z.ZodType = z - .object({ - override: z.record( - z.string(), - z.array(z.union([ - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseOverride$inboundSchema - ), - z.string(), - ])), - ), - }); +export const SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionStack$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionStack, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function syncAcquireResponseDeploymentCurrentReleaseManagement2FromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackOverrideConditionStackFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseManagement2, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseManagement2$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionStack$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseManagement2' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionStack' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseExtendAwResource$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackOverrideStackConditionUnion$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseExtendAwResource, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideStackConditionUnion, unknown - > = z.object({ - condition: z.nullable( - z.record(z.string(), z.record(z.string(), z.string())), - ).optional(), - resources: z.array(z.string()), - }); + > = z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionStack$inboundSchema + ), + z.any(), + ]); -export function syncAcquireResponseDeploymentCurrentReleaseExtendAwResourceFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackOverrideStackConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseExtendAwResource, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideStackConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseExtendAwResource$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackOverrideStackConditionUnion$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendAwResource' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackOverrideStackConditionUnion' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseExtendAwStack$inboundSchema: - z.ZodType = - z.object({ - condition: z.nullable( - z.record(z.string(), z.record(z.string(), z.string())), - ).optional(), - resources: z.array(z.string()), - }); +export const SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpStack$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpStack, + unknown + > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackOverrideConditionStack$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function syncAcquireResponseDeploymentCurrentReleaseExtendAwStackFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackOverrideGcpStackFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseExtendAwStack, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseExtendAwStack$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpStack$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendAwStack' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpStack' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseExtendAwBinding$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpBinding$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseExtendAwBinding, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpBinding, unknown > = z.object({ resource: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseExtendAwResource$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpResource$inboundSchema ).optional(), stack: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseExtendAwStack$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpStack$inboundSchema ).optional(), }); -export function syncAcquireResponseDeploymentCurrentReleaseExtendAwBindingFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackOverrideGcpBindingFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseExtendAwBinding, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpBinding, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseExtendAwBinding$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendAwBinding' from JSON`, - ); -} - -/** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseExtendEffect$inboundSchema: - z.ZodEnum = z - .enum(SyncAcquireResponseDeploymentCurrentReleaseExtendEffect); - -/** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseExtendAwGrant$inboundSchema: - z.ZodType = - z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), - }); + SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpBinding' from JSON`, + ); +} -export function syncAcquireResponseDeploymentCurrentReleaseExtendAwGrantFromJSON( +/** @internal */ +export const SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpGrant$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpGrant, + unknown + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncAcquireResponseDeploymentPendingPreparedStackOverrideGcpGrantFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseExtendAwGrant, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpGrant, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseExtendAwGrant$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpGrant$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendAwGrant' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpGrant' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseExtendAw$inboundSchema: - z.ZodType = z - .object({ - binding: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseExtendAwBinding$inboundSchema - ), - description: z.nullable(z.string()).optional(), - effect: - SyncAcquireResponseDeploymentCurrentReleaseExtendEffect$inboundSchema - .optional(), - grant: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseExtendAwGrant$inboundSchema - ), - label: z.nullable(z.string()).optional(), - }); +export const SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcp$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcp, + unknown + > = z.object({ + binding: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcpGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function syncAcquireResponseDeploymentCurrentReleaseExtendAwFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackOverrideGcpFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseExtendAw, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcp, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseExtendAw$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendAw' from JSON`, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcp$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcp' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseExtendAzureResource$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackOverridePlatforms$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseExtendAzureResource, + SyncAcquireResponseDeploymentPendingPreparedStackOverridePlatforms, unknown > = z.object({ - scope: z.string(), + aws: z.nullable( + z.array(z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAw$inboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackOverrideAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackOverrideGcp$inboundSchema + )), + ).optional(), }); -export function syncAcquireResponseDeploymentCurrentReleaseExtendAzureResourceFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackOverridePlatformsFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseExtendAzureResource, + SyncAcquireResponseDeploymentPendingPreparedStackOverridePlatforms, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseExtendAzureResource$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackOverridePlatforms$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendAzureResource' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackOverridePlatforms' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseExtendAzureStack$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackOverride$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseExtendAzureStack, + SyncAcquireResponseDeploymentPendingPreparedStackOverride, unknown > = z.object({ - scope: z.string(), + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackOverridePlatforms$inboundSchema + ), }); -export function syncAcquireResponseDeploymentCurrentReleaseExtendAzureStackFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackOverrideFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseExtendAzureStack, + SyncAcquireResponseDeploymentPendingPreparedStackOverride, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseExtendAzureStack$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackOverride$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendAzureStack' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackOverride' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseExtendAzureBinding$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackOverrideUnion$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseExtendAzureBinding, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideUnion, unknown - > = z.object({ - resource: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseExtendAzureResource$inboundSchema - ).optional(), - stack: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseExtendAzureStack$inboundSchema - ).optional(), - }); + > = z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackOverride$inboundSchema + ), + z.string(), + ]); -export function syncAcquireResponseDeploymentCurrentReleaseExtendAzureBindingFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackOverrideUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseExtendAzureBinding, + SyncAcquireResponseDeploymentPendingPreparedStackOverrideUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseExtendAzureBinding$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackOverrideUnion$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendAzureBinding' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackOverrideUnion' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseExtendAzureGrant$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackManagement2$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseExtendAzureGrant, + SyncAcquireResponseDeploymentPendingPreparedStackManagement2, unknown > = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), + override: z.record( + z.string(), + z.array(z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackOverride$inboundSchema + ), + z.string(), + ])), + ), }); -export function syncAcquireResponseDeploymentCurrentReleaseExtendAzureGrantFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackManagement2FromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseExtendAzureGrant, + SyncAcquireResponseDeploymentPendingPreparedStackManagement2, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseExtendAzureGrant$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackManagement2$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendAzureGrant' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackManagement2' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseExtendAzure$inboundSchema: - z.ZodType = z - .object({ - binding: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseExtendAzureBinding$inboundSchema - ), - description: z.nullable(z.string()).optional(), - grant: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseExtendAzureGrant$inboundSchema - ), - label: z.nullable(z.string()).optional(), - }); +export const SyncAcquireResponseDeploymentPendingPreparedStackExtendAwResource$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackExtendAwResource, + unknown + > = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function syncAcquireResponseDeploymentCurrentReleaseExtendAzureFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackExtendAwResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseExtendAzure, + SyncAcquireResponseDeploymentPendingPreparedStackExtendAwResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseExtendAzure$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackExtendAwResource$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendAzure' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackExtendAwResource' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseExtendConditionResource$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackExtendAwStack$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseExtendConditionResource, + SyncAcquireResponseDeploymentPendingPreparedStackExtendAwStack, unknown > = z.object({ - expression: z.string(), - title: z.string(), + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), }); -export function syncAcquireResponseDeploymentCurrentReleaseExtendConditionResourceFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackExtendAwStackFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseExtendConditionResource, + SyncAcquireResponseDeploymentPendingPreparedStackExtendAwStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseExtendConditionResource$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackExtendAwStack$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendConditionResource' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackExtendAwStack' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseExtendResourceConditionUnion$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackExtendAwBinding$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseExtendResourceConditionUnion, + SyncAcquireResponseDeploymentPendingPreparedStackExtendAwBinding, unknown - > = z.union([ - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseExtendConditionResource$inboundSchema - ), - z.any(), - ]); + > = z.object({ + resource: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackExtendAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackExtendAwStack$inboundSchema + ).optional(), + }); -export function syncAcquireResponseDeploymentCurrentReleaseExtendResourceConditionUnionFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackExtendAwBindingFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseExtendResourceConditionUnion, + SyncAcquireResponseDeploymentPendingPreparedStackExtendAwBinding, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseExtendResourceConditionUnion$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackExtendAwBinding$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendResourceConditionUnion' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackExtendAwBinding' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseExtendGcpResource$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackExtendEffect$inboundSchema: + z.ZodEnum< + typeof SyncAcquireResponseDeploymentPendingPreparedStackExtendEffect + > = z.enum(SyncAcquireResponseDeploymentPendingPreparedStackExtendEffect); + +/** @internal */ +export const SyncAcquireResponseDeploymentPendingPreparedStackExtendAwGrant$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseExtendGcpResource, + SyncAcquireResponseDeploymentPendingPreparedStackExtendAwGrant, unknown > = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseExtendConditionResource$inboundSchema - ), - z.any(), - ]), - ).optional(), - scope: z.string(), + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncAcquireResponseDeploymentCurrentReleaseExtendGcpResourceFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackExtendAwGrantFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseExtendGcpResource, + SyncAcquireResponseDeploymentPendingPreparedStackExtendAwGrant, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseExtendGcpResource$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackExtendAwGrant$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendGcpResource' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackExtendAwGrant' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseExtendCondition$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackExtendAw$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseExtendCondition, + SyncAcquireResponseDeploymentPendingPreparedStackExtendAw, unknown > = z.object({ - expression: z.string(), - title: z.string(), + binding: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackExtendAwBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: + SyncAcquireResponseDeploymentPendingPreparedStackExtendEffect$inboundSchema + .optional(), + grant: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackExtendAwGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), }); -export function syncAcquireResponseDeploymentCurrentReleaseExtendConditionFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackExtendAwFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseExtendCondition, + SyncAcquireResponseDeploymentPendingPreparedStackExtendAw, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseExtendCondition$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackExtendAw$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendCondition' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackExtendAw' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseExtendConditionUnion$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureResource$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseExtendConditionUnion, + SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureResource, unknown - > = z.union([ - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseExtendCondition$inboundSchema - ), - z.any(), - ]); + > = z.object({ + scope: z.string(), + }); -export function syncAcquireResponseDeploymentCurrentReleaseExtendConditionUnionFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackExtendAzureResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseExtendConditionUnion, + SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseExtendConditionUnion$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureResource$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendConditionUnion' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureResource' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseExtendGcpStack$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureStack$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseExtendGcpStack, + SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureStack, unknown > = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseExtendCondition$inboundSchema - ), - z.any(), - ]), - ).optional(), scope: z.string(), }); -export function syncAcquireResponseDeploymentCurrentReleaseExtendGcpStackFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackExtendAzureStackFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseExtendGcpStack, + SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseExtendGcpStack$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureStack$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendGcpStack' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureStack' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseExtendGcpBinding$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureBinding$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseExtendGcpBinding, + SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureBinding, unknown > = z.object({ resource: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseExtendGcpResource$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureResource$inboundSchema ).optional(), stack: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseExtendGcpStack$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureStack$inboundSchema ).optional(), }); -export function syncAcquireResponseDeploymentCurrentReleaseExtendGcpBindingFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackExtendAzureBindingFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseExtendGcpBinding, + SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureBinding, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseExtendGcpBinding$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureBinding$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendGcpBinding' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureBinding' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseExtendGcpGrant$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureGrant$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseExtendGcpGrant, + SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureGrant, unknown > = z.object({ actions: z.nullable(z.array(z.string())).optional(), @@ -11944,1313 +16479,1308 @@ export const SyncAcquireResponseDeploymentCurrentReleaseExtendGcpGrant$inboundSc residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncAcquireResponseDeploymentCurrentReleaseExtendGcpGrantFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackExtendAzureGrantFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseExtendGcpGrant, + SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureGrant, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseExtendGcpGrant$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureGrant$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendGcpGrant' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureGrant' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseExtendGcp$inboundSchema: - z.ZodType = z - .object({ - binding: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseExtendGcpBinding$inboundSchema - ), - description: z.nullable(z.string()).optional(), - grant: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseExtendGcpGrant$inboundSchema - ), - label: z.nullable(z.string()).optional(), - }); +export const SyncAcquireResponseDeploymentPendingPreparedStackExtendAzure$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackExtendAzure, + unknown + > = z.object({ + binding: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackExtendAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function syncAcquireResponseDeploymentCurrentReleaseExtendGcpFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackExtendAzureFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseExtendGcp, + SyncAcquireResponseDeploymentPendingPreparedStackExtendAzure, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseExtendGcp$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendGcp' from JSON`, + SyncAcquireResponseDeploymentPendingPreparedStackExtendAzure$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackExtendAzure' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseExtendPlatforms$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionResource$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseExtendPlatforms, + SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionResource, unknown > = z.object({ - aws: z.nullable( - z.array(z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseExtendAw$inboundSchema - )), - ).optional(), - azure: z.nullable( - z.array(z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseExtendAzure$inboundSchema - )), - ).optional(), - gcp: z.nullable( - z.array(z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseExtendGcp$inboundSchema - )), - ).optional(), + expression: z.string(), + title: z.string(), }); -export function syncAcquireResponseDeploymentCurrentReleaseExtendPlatformsFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackExtendConditionResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseExtendPlatforms, + SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseExtendPlatforms$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionResource$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendPlatforms' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionResource' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseExtend$inboundSchema: - z.ZodType = z - .object({ - description: z.string(), - id: z.string(), - platforms: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseExtendPlatforms$inboundSchema - ), - }); +export const SyncAcquireResponseDeploymentPendingPreparedStackExtendResourceConditionUnion$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackExtendResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionResource$inboundSchema + ), + z.any(), + ]); -export function syncAcquireResponseDeploymentCurrentReleaseExtendFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackExtendResourceConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseExtend, + SyncAcquireResponseDeploymentPendingPreparedStackExtendResourceConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseExtend$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtend' from JSON`, + SyncAcquireResponseDeploymentPendingPreparedStackExtendResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackExtendResourceConditionUnion' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseExtendUnion$inboundSchema: - z.ZodType = z - .union([ - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseExtend$inboundSchema - ), - z.string(), - ]); +export const SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpResource$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpResource, + unknown + > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionResource$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function syncAcquireResponseDeploymentCurrentReleaseExtendUnionFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackExtendGcpResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseExtendUnion, + SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseExtendUnion$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpResource$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseExtendUnion' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpResource' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseManagement1$inboundSchema: - z.ZodType = z - .object({ - extend: z.record( - z.string(), - z.array(z.union([ - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseExtend$inboundSchema - ), - z.string(), - ])), - ), - }); +export const SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionStack$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionStack, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function syncAcquireResponseDeploymentCurrentReleaseManagement1FromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackExtendConditionStackFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseManagement1, + SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseManagement1$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionStack$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseManagement1' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionStack' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseManagementUnion$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackExtendStackConditionUnion$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseManagementUnion, + SyncAcquireResponseDeploymentPendingPreparedStackExtendStackConditionUnion, unknown > = z.union([ z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseManagement1$inboundSchema - ), - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseManagement2$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionStack$inboundSchema ), - SyncAcquireResponseDeploymentCurrentReleaseManagementEnum$inboundSchema, + z.any(), ]); -export function syncAcquireResponseDeploymentCurrentReleaseManagementUnionFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackExtendStackConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseManagementUnion, + SyncAcquireResponseDeploymentPendingPreparedStackExtendStackConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseManagementUnion$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackExtendStackConditionUnion$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseManagementUnion' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackExtendStackConditionUnion' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseProfileAwResource$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpStack$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseProfileAwResource, + SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpStack, unknown > = z.object({ condition: z.nullable( - z.record(z.string(), z.record(z.string(), z.string())), + z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackExtendConditionStack$inboundSchema + ), + z.any(), + ]), ).optional(), - resources: z.array(z.string()), + scope: z.string(), }); -export function syncAcquireResponseDeploymentCurrentReleaseProfileAwResourceFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackExtendGcpStackFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseProfileAwResource, + SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseProfileAwResource$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpStack$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileAwResource' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpStack' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseProfileAwStack$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpBinding$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseProfileAwStack, + SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpBinding, unknown > = z.object({ - condition: z.nullable( - z.record(z.string(), z.record(z.string(), z.string())), + resource: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpStack$inboundSchema ).optional(), - resources: z.array(z.string()), }); -export function syncAcquireResponseDeploymentCurrentReleaseProfileAwStackFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackExtendGcpBindingFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseProfileAwStack, + SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpBinding, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseProfileAwStack$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpBinding$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileAwStack' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpBinding' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseProfileAwBinding$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpGrant$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseProfileAwBinding, + SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpGrant, unknown > = z.object({ - resource: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseProfileAwResource$inboundSchema - ).optional(), - stack: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseProfileAwStack$inboundSchema - ).optional(), + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncAcquireResponseDeploymentCurrentReleaseProfileAwBindingFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackExtendGcpGrantFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseProfileAwBinding, + SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpGrant, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseProfileAwBinding$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpGrant$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileAwBinding' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpGrant' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseProfileEffect$inboundSchema: - z.ZodEnum = z - .enum(SyncAcquireResponseDeploymentCurrentReleaseProfileEffect); +export const SyncAcquireResponseDeploymentPendingPreparedStackExtendGcp$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackExtendGcp, + unknown + > = z.object({ + binding: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackExtendGcpGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncAcquireResponseDeploymentPendingPreparedStackExtendGcpFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentPendingPreparedStackExtendGcp, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentPendingPreparedStackExtendGcp$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackExtendGcp' from JSON`, + ); +} /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseProfileAwGrant$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackExtendPlatforms$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseProfileAwGrant, + SyncAcquireResponseDeploymentPendingPreparedStackExtendPlatforms, unknown > = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), + aws: z.nullable( + z.array(z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackExtendAw$inboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackExtendAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackExtendGcp$inboundSchema + )), + ).optional(), }); -export function syncAcquireResponseDeploymentCurrentReleaseProfileAwGrantFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackExtendPlatformsFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseProfileAwGrant, + SyncAcquireResponseDeploymentPendingPreparedStackExtendPlatforms, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseProfileAwGrant$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackExtendPlatforms$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileAwGrant' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackExtendPlatforms' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseProfileAw$inboundSchema: - z.ZodType = z - .object({ - binding: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseProfileAwBinding$inboundSchema - ), - description: z.nullable(z.string()).optional(), - effect: - SyncAcquireResponseDeploymentCurrentReleaseProfileEffect$inboundSchema - .optional(), - grant: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseProfileAwGrant$inboundSchema +export const SyncAcquireResponseDeploymentPendingPreparedStackExtend$inboundSchema: + z.ZodType = + z.object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackExtendPlatforms$inboundSchema ), - label: z.nullable(z.string()).optional(), }); -export function syncAcquireResponseDeploymentCurrentReleaseProfileAwFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackExtendFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseProfileAw, + SyncAcquireResponseDeploymentPendingPreparedStackExtend, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseProfileAw$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileAw' from JSON`, + SyncAcquireResponseDeploymentPendingPreparedStackExtend$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackExtend' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseProfileAzureResource$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackExtendUnion$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseProfileAzureResource, + SyncAcquireResponseDeploymentPendingPreparedStackExtendUnion, + unknown + > = z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackExtend$inboundSchema + ), + z.string(), + ]); + +export function syncAcquireResponseDeploymentPendingPreparedStackExtendUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentPendingPreparedStackExtendUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentPendingPreparedStackExtendUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackExtendUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentPendingPreparedStackManagement1$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackManagement1, unknown > = z.object({ - scope: z.string(), + extend: z.record( + z.string(), + z.array(z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackExtend$inboundSchema + ), + z.string(), + ])), + ), }); -export function syncAcquireResponseDeploymentCurrentReleaseProfileAzureResourceFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackManagement1FromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseProfileAzureResource, + SyncAcquireResponseDeploymentPendingPreparedStackManagement1, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseProfileAzureResource$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackManagement1$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileAzureResource' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackManagement1' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseProfileAzureStack$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackManagementUnion$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseProfileAzureStack, + SyncAcquireResponseDeploymentPendingPreparedStackManagementUnion, unknown - > = z.object({ - scope: z.string(), - }); + > = z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackManagement1$inboundSchema + ), + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackManagement2$inboundSchema + ), + SyncAcquireResponseDeploymentPendingPreparedStackManagementEnum$inboundSchema, + ]); -export function syncAcquireResponseDeploymentCurrentReleaseProfileAzureStackFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackManagementUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseProfileAzureStack, + SyncAcquireResponseDeploymentPendingPreparedStackManagementUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseProfileAzureStack$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackManagementUnion$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileAzureStack' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackManagementUnion' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseProfileAzureBinding$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackProfileAwResource$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseProfileAzureBinding, + SyncAcquireResponseDeploymentPendingPreparedStackProfileAwResource, unknown > = z.object({ - resource: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseProfileAzureResource$inboundSchema - ).optional(), - stack: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseProfileAzureStack$inboundSchema + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), ).optional(), + resources: z.array(z.string()), }); -export function syncAcquireResponseDeploymentCurrentReleaseProfileAzureBindingFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackProfileAwResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseProfileAzureBinding, + SyncAcquireResponseDeploymentPendingPreparedStackProfileAwResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseProfileAzureBinding$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackProfileAwResource$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileAzureBinding' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackProfileAwResource' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseProfileAzureGrant$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackProfileAwStack$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseProfileAzureGrant, + SyncAcquireResponseDeploymentPendingPreparedStackProfileAwStack, unknown > = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), }); -export function syncAcquireResponseDeploymentCurrentReleaseProfileAzureGrantFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackProfileAwStackFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseProfileAzureGrant, + SyncAcquireResponseDeploymentPendingPreparedStackProfileAwStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseProfileAzureGrant$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackProfileAwStack$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileAzureGrant' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackProfileAwStack' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseProfileAzure$inboundSchema: - z.ZodType = - z.object({ - binding: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseProfileAzureBinding$inboundSchema - ), - description: z.nullable(z.string()).optional(), - grant: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseProfileAzureGrant$inboundSchema - ), - label: z.nullable(z.string()).optional(), - }); +export const SyncAcquireResponseDeploymentPendingPreparedStackProfileAwBinding$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackProfileAwBinding, + unknown + > = z.object({ + resource: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackProfileAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackProfileAwStack$inboundSchema + ).optional(), + }); -export function syncAcquireResponseDeploymentCurrentReleaseProfileAzureFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackProfileAwBindingFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseProfileAzure, + SyncAcquireResponseDeploymentPendingPreparedStackProfileAwBinding, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseProfileAzure$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackProfileAwBinding$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileAzure' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackProfileAwBinding' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseProfileConditionResource$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackProfileEffect$inboundSchema: + z.ZodEnum< + typeof SyncAcquireResponseDeploymentPendingPreparedStackProfileEffect + > = z.enum(SyncAcquireResponseDeploymentPendingPreparedStackProfileEffect); + +/** @internal */ +export const SyncAcquireResponseDeploymentPendingPreparedStackProfileAwGrant$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseProfileConditionResource, + SyncAcquireResponseDeploymentPendingPreparedStackProfileAwGrant, unknown > = z.object({ - expression: z.string(), - title: z.string(), + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncAcquireResponseDeploymentCurrentReleaseProfileConditionResourceFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackProfileAwGrantFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseProfileConditionResource, + SyncAcquireResponseDeploymentPendingPreparedStackProfileAwGrant, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseProfileConditionResource$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackProfileAwGrant$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileConditionResource' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackProfileAwGrant' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseProfileResourceConditionUnion$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackProfileAw$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseProfileResourceConditionUnion, + SyncAcquireResponseDeploymentPendingPreparedStackProfileAw, unknown - > = z.union([ - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseProfileConditionResource$inboundSchema + > = z.object({ + binding: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackProfileAwBinding$inboundSchema ), - z.any(), - ]); + description: z.nullable(z.string()).optional(), + effect: + SyncAcquireResponseDeploymentPendingPreparedStackProfileEffect$inboundSchema + .optional(), + grant: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackProfileAwGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function syncAcquireResponseDeploymentCurrentReleaseProfileResourceConditionUnionFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackProfileAwFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseProfileResourceConditionUnion, + SyncAcquireResponseDeploymentPendingPreparedStackProfileAw, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseProfileResourceConditionUnion$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackProfileAw$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileResourceConditionUnion' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackProfileAw' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseProfileGcpResource$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureResource$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseProfileGcpResource, + SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureResource, unknown > = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseProfileConditionResource$inboundSchema - ), - z.any(), - ]), - ).optional(), scope: z.string(), }); -export function syncAcquireResponseDeploymentCurrentReleaseProfileGcpResourceFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackProfileAzureResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseProfileGcpResource, + SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseProfileGcpResource$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureResource$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileGcpResource' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureResource' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseProfileCondition$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureStack$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseProfileCondition, + SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureStack, unknown > = z.object({ - expression: z.string(), - title: z.string(), + scope: z.string(), }); -export function syncAcquireResponseDeploymentCurrentReleaseProfileConditionFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackProfileAzureStackFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseProfileCondition, + SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseProfileCondition$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureStack$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileCondition' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureStack' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseProfileConditionUnion$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureBinding$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseProfileConditionUnion, + SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureBinding, unknown - > = z.union([ - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseProfileCondition$inboundSchema - ), - z.any(), - ]); + > = z.object({ + resource: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureStack$inboundSchema + ).optional(), + }); -export function syncAcquireResponseDeploymentCurrentReleaseProfileConditionUnionFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackProfileAzureBindingFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseProfileConditionUnion, + SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureBinding, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseProfileConditionUnion$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureBinding$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileConditionUnion' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureBinding' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseProfileGcpStack$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureGrant$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseProfileGcpStack, + SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureGrant, unknown > = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseProfileCondition$inboundSchema - ), - z.any(), - ]), - ).optional(), - scope: z.string(), + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncAcquireResponseDeploymentCurrentReleaseProfileGcpStackFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackProfileAzureGrantFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseProfileGcpStack, + SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureGrant, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseProfileGcpStack$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureGrant$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileGcpStack' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureGrant' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseProfileGcpBinding$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackProfileAzure$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseProfileGcpBinding, + SyncAcquireResponseDeploymentPendingPreparedStackProfileAzure, unknown > = z.object({ - resource: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseProfileGcpResource$inboundSchema - ).optional(), - stack: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseProfileGcpStack$inboundSchema - ).optional(), + binding: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackProfileAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), }); -export function syncAcquireResponseDeploymentCurrentReleaseProfileGcpBindingFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackProfileAzureFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseProfileGcpBinding, + SyncAcquireResponseDeploymentPendingPreparedStackProfileAzure, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseProfileGcpBinding$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackProfileAzure$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileGcpBinding' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackProfileAzure' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseProfileGcpGrant$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionResource$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseProfileGcpGrant, + SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionResource, unknown > = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), + expression: z.string(), + title: z.string(), }); -export function syncAcquireResponseDeploymentCurrentReleaseProfileGcpGrantFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackProfileConditionResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseProfileGcpGrant, + SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseProfileGcpGrant$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionResource$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileGcpGrant' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionResource' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseProfileGcp$inboundSchema: - z.ZodType = z - .object({ - binding: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseProfileGcpBinding$inboundSchema - ), - description: z.nullable(z.string()).optional(), - grant: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseProfileGcpGrant$inboundSchema - ), - label: z.nullable(z.string()).optional(), - }); +export const SyncAcquireResponseDeploymentPendingPreparedStackProfileResourceConditionUnion$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackProfileResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionResource$inboundSchema + ), + z.any(), + ]); -export function syncAcquireResponseDeploymentCurrentReleaseProfileGcpFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackProfileResourceConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseProfileGcp, + SyncAcquireResponseDeploymentPendingPreparedStackProfileResourceConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseProfileGcp$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileGcp' from JSON`, + SyncAcquireResponseDeploymentPendingPreparedStackProfileResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackProfileResourceConditionUnion' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseProfilePlatforms$inboundSchema: +export const SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpResource$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentCurrentReleaseProfilePlatforms, + SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpResource, unknown > = z.object({ - aws: z.nullable( - z.array(z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseProfileAw$inboundSchema - )), - ).optional(), - azure: z.nullable( - z.array(z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseProfileAzure$inboundSchema - )), - ).optional(), - gcp: z.nullable( - z.array(z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseProfileGcp$inboundSchema - )), + condition: z.nullable( + z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionResource$inboundSchema + ), + z.any(), + ]), ).optional(), + scope: z.string(), }); -export function syncAcquireResponseDeploymentCurrentReleaseProfilePlatformsFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackProfileGcpResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseProfilePlatforms, + SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseProfilePlatforms$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpResource$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfilePlatforms' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpResource' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseProfile$inboundSchema: - z.ZodType = z - .object({ - description: z.string(), - id: z.string(), - platforms: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseProfilePlatforms$inboundSchema - ), - }); +export const SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionStack$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionStack, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function syncAcquireResponseDeploymentCurrentReleaseProfileFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackProfileConditionStackFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseProfile, + SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseProfile$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfile' from JSON`, + SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionStack' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseProfileUnion$inboundSchema: - z.ZodType = - z.union([ - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseProfile$inboundSchema - ), - z.string(), - ]); +export const SyncAcquireResponseDeploymentPendingPreparedStackProfileStackConditionUnion$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackProfileStackConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionStack$inboundSchema + ), + z.any(), + ]); -export function syncAcquireResponseDeploymentCurrentReleaseProfileUnionFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackProfileStackConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseProfileUnion, + SyncAcquireResponseDeploymentPendingPreparedStackProfileStackConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseProfileUnion$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackProfileStackConditionUnion$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseProfileUnion' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackProfileStackConditionUnion' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleasePermissions$inboundSchema: - z.ZodType = z - .object({ - management: z.union([ - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseManagement1$inboundSchema - ), +export const SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpStack$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpStack, + unknown + > = z.object({ + condition: z.nullable( + z.union([ z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseManagement2$inboundSchema - ), - SyncAcquireResponseDeploymentCurrentReleaseManagementEnum$inboundSchema, - ]).optional(), - profiles: z.record( - z.string(), - z.record( - z.string(), - z.array( - z.union([ - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseProfile$inboundSchema - ), - z.string(), - ]), - ), + SyncAcquireResponseDeploymentPendingPreparedStackProfileConditionStack$inboundSchema ), - ), - }); + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function syncAcquireResponseDeploymentCurrentReleasePermissionsFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackProfileGcpStackFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleasePermissions, + SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleasePermissions$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpStack$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleasePermissions' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpStack' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseConfig$inboundSchema: - z.ZodType = - collectExtraKeys$( - z.object({ - id: z.string(), - type: z.string(), - }).catchall(z.any()), - "additionalProperties", - true, - ); +export const SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpBinding$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpBinding, + unknown + > = z.object({ + resource: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpStack$inboundSchema + ).optional(), + }); -export function syncAcquireResponseDeploymentCurrentReleaseConfigFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackProfileGcpBindingFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseConfig, + SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpBinding, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseConfig$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseConfig' from JSON`, + SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpBinding' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseDependency$inboundSchema: - z.ZodType = z - .object({ - id: z.string(), - type: z.string(), - }); +export const SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpGrant$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpGrant, + unknown + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function syncAcquireResponseDeploymentCurrentReleaseDependencyFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackProfileGcpGrantFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseDependency, + SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpGrant, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseDependency$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseDependency' from JSON`, + SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpGrant' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseLifecycle$inboundSchema: - z.ZodEnum = z - .enum(SyncAcquireResponseDeploymentCurrentReleaseLifecycle); - -/** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseResources$inboundSchema: - z.ZodType = z - .object({ - config: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseConfig$inboundSchema - ), - dependencies: z.array( - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseDependency$inboundSchema - ), - ), - lifecycle: - SyncAcquireResponseDeploymentCurrentReleaseLifecycle$inboundSchema, - remoteAccess: z.boolean().optional(), - }); +export const SyncAcquireResponseDeploymentPendingPreparedStackProfileGcp$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackProfileGcp, + unknown + > = z.object({ + binding: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackProfileGcpGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function syncAcquireResponseDeploymentCurrentReleaseResourcesFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackProfileGcpFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseResources, + SyncAcquireResponseDeploymentPendingPreparedStackProfileGcp, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseResources$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseResources' from JSON`, + SyncAcquireResponseDeploymentPendingPreparedStackProfileGcp$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackProfileGcp' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseSupportedPlatform$inboundSchema: - z.ZodEnum< - typeof SyncAcquireResponseDeploymentCurrentReleaseSupportedPlatform - > = z.enum(SyncAcquireResponseDeploymentCurrentReleaseSupportedPlatform); - -/** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseStack$inboundSchema: - z.ZodType = z - .object({ - id: z.string(), - inputs: z.array( - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseInput$inboundSchema - ), - ).optional(), - permissions: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleasePermissions$inboundSchema - ).optional(), - resources: z.record( - z.string(), - z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseResources$inboundSchema - ), - ), - supportedPlatforms: z.nullable( - z.array( - SyncAcquireResponseDeploymentCurrentReleaseSupportedPlatform$inboundSchema, - ), - ).optional(), - }); +export const SyncAcquireResponseDeploymentPendingPreparedStackProfilePlatforms$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackProfilePlatforms, + unknown + > = z.object({ + aws: z.nullable( + z.array(z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackProfileAw$inboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackProfileAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackProfileGcp$inboundSchema + )), + ).optional(), + }); -export function syncAcquireResponseDeploymentCurrentReleaseStackFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackProfilePlatformsFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseStack, + SyncAcquireResponseDeploymentPendingPreparedStackProfilePlatforms, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseStack$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseStack' from JSON`, + SyncAcquireResponseDeploymentPendingPreparedStackProfilePlatforms$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackProfilePlatforms' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentRelease$inboundSchema: - z.ZodType = z.object({ - description: z.nullable(z.string()).optional(), - releaseId: z.nullable(z.string()).optional(), - stack: z.lazy(() => - SyncAcquireResponseDeploymentCurrentReleaseStack$inboundSchema - ), - version: z.nullable(z.string()).optional(), - }); +export const SyncAcquireResponseDeploymentPendingPreparedStackProfile$inboundSchema: + z.ZodType = + z.object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackProfilePlatforms$inboundSchema + ), + }); -export function syncAcquireResponseDeploymentCurrentReleaseFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackProfileFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentRelease, + SyncAcquireResponseDeploymentPendingPreparedStackProfile, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentRelease$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentRelease' from JSON`, + SyncAcquireResponseDeploymentPendingPreparedStackProfile$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackProfile' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentReleaseUnion$inboundSchema: - z.ZodType = z - .union([ - z.lazy(() => SyncAcquireResponseDeploymentCurrentRelease$inboundSchema), - z.any(), - ]); +export const SyncAcquireResponseDeploymentPendingPreparedStackProfileUnion$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackProfileUnion, + unknown + > = z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackProfile$inboundSchema + ), + z.string(), + ]); -export function syncAcquireResponseDeploymentCurrentReleaseUnionFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackProfileUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentCurrentReleaseUnion, + SyncAcquireResponseDeploymentPendingPreparedStackProfileUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentCurrentReleaseUnion$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncAcquireResponseDeploymentCurrentReleaseUnion' from JSON`, + SyncAcquireResponseDeploymentPendingPreparedStackProfileUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackProfileUnion' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentPlatformTest$inboundSchema: z.ZodEnum< - typeof SyncAcquireResponseDeploymentPlatformTest -> = z.enum(SyncAcquireResponseDeploymentPlatformTest); - -/** @internal */ -export const SyncAcquireResponseDeploymentEnvironmentInfoTest$inboundSchema: - z.ZodType = z - .object({ - testId: z.string(), - platform: SyncAcquireResponseDeploymentPlatformTest$inboundSchema, - }); +export const SyncAcquireResponseDeploymentPendingPreparedStackPermissions$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackPermissions, + unknown + > = z.object({ + management: z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackManagement1$inboundSchema + ), + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackManagement2$inboundSchema + ), + SyncAcquireResponseDeploymentPendingPreparedStackManagementEnum$inboundSchema, + ]).optional(), + profiles: z.record( + z.string(), + z.record( + z.string(), + z.array( + z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackProfile$inboundSchema + ), + z.string(), + ]), + ), + ), + ), + }); -export function syncAcquireResponseDeploymentEnvironmentInfoTestFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackPermissionsFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentEnvironmentInfoTest, + SyncAcquireResponseDeploymentPendingPreparedStackPermissions, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentEnvironmentInfoTest$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncAcquireResponseDeploymentEnvironmentInfoTest' from JSON`, + SyncAcquireResponseDeploymentPendingPreparedStackPermissions$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackPermissions' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentPlatformLocal$inboundSchema: - z.ZodEnum = z.enum( - SyncAcquireResponseDeploymentPlatformLocal, - ); - -/** @internal */ -export const SyncAcquireResponseDeploymentEnvironmentInfoLocal$inboundSchema: - z.ZodType = z - .object({ - arch: z.string(), - hostname: z.string(), - os: z.string(), - platform: SyncAcquireResponseDeploymentPlatformLocal$inboundSchema, - }); +export const SyncAcquireResponseDeploymentPendingPreparedStackConfig$inboundSchema: + z.ZodType = + collectExtraKeys$( + z.object({ + id: z.string(), + type: z.string(), + }).catchall(z.any()), + "additionalProperties", + true, + ); -export function syncAcquireResponseDeploymentEnvironmentInfoLocalFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackConfigFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentEnvironmentInfoLocal, + SyncAcquireResponseDeploymentPendingPreparedStackConfig, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentEnvironmentInfoLocal$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncAcquireResponseDeploymentEnvironmentInfoLocal' from JSON`, + SyncAcquireResponseDeploymentPendingPreparedStackConfig$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackConfig' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentPlatformAzure$inboundSchema: - z.ZodEnum = z.enum( - SyncAcquireResponseDeploymentCurrentPlatformAzure, - ); - -/** @internal */ -export const SyncAcquireResponseDeploymentEnvironmentInfoAzure$inboundSchema: - z.ZodType = z - .object({ - location: z.string(), - subscriptionId: z.string(), - tenantId: z.string(), - platform: SyncAcquireResponseDeploymentCurrentPlatformAzure$inboundSchema, - }); +export const SyncAcquireResponseDeploymentPendingPreparedStackDependency$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackDependency, + unknown + > = z.object({ + id: z.string(), + type: z.string(), + }); -export function syncAcquireResponseDeploymentEnvironmentInfoAzureFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackDependencyFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentEnvironmentInfoAzure, + SyncAcquireResponseDeploymentPendingPreparedStackDependency, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentEnvironmentInfoAzure$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncAcquireResponseDeploymentEnvironmentInfoAzure' from JSON`, + SyncAcquireResponseDeploymentPendingPreparedStackDependency$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackDependency' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentPlatformGcp$inboundSchema: - z.ZodEnum = z.enum( - SyncAcquireResponseDeploymentCurrentPlatformGcp, - ); +export const SyncAcquireResponseDeploymentPendingPreparedStackLifecycle$inboundSchema: + z.ZodEnum = + z.enum(SyncAcquireResponseDeploymentPendingPreparedStackLifecycle); /** @internal */ -export const SyncAcquireResponseDeploymentEnvironmentInfoGcp$inboundSchema: - z.ZodType = z - .object({ - projectId: z.string(), - projectNumber: z.string(), - region: z.string(), - platform: SyncAcquireResponseDeploymentCurrentPlatformGcp$inboundSchema, - }); +export const SyncAcquireResponseDeploymentPendingPreparedStackResources$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentPendingPreparedStackResources, + unknown + > = z.object({ + config: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackConfig$inboundSchema + ), + dependencies: z.array( + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackDependency$inboundSchema + ), + ), + enabledWhen: z.nullable(z.string()).optional(), + lifecycle: + SyncAcquireResponseDeploymentPendingPreparedStackLifecycle$inboundSchema, + remoteAccess: z.boolean().optional(), + }); -export function syncAcquireResponseDeploymentEnvironmentInfoGcpFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackResourcesFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentEnvironmentInfoGcp, + SyncAcquireResponseDeploymentPendingPreparedStackResources, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentEnvironmentInfoGcp$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncAcquireResponseDeploymentEnvironmentInfoGcp' from JSON`, + SyncAcquireResponseDeploymentPendingPreparedStackResources$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackResources' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentCurrentPlatformAws$inboundSchema: - z.ZodEnum = z.enum( - SyncAcquireResponseDeploymentCurrentPlatformAws, +export const SyncAcquireResponseDeploymentPendingPreparedStackSupportedPlatform$inboundSchema: + z.ZodEnum< + typeof SyncAcquireResponseDeploymentPendingPreparedStackSupportedPlatform + > = z.enum( + SyncAcquireResponseDeploymentPendingPreparedStackSupportedPlatform, ); /** @internal */ -export const SyncAcquireResponseDeploymentEnvironmentInfoAws$inboundSchema: - z.ZodType = z +export const SyncAcquireResponseDeploymentPendingPreparedStack$inboundSchema: + z.ZodType = z .object({ - accountId: z.string(), - region: z.string(), - platform: SyncAcquireResponseDeploymentCurrentPlatformAws$inboundSchema, + id: z.string(), + inputs: z.array( + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackInput$inboundSchema + ), + ).optional(), + permissions: z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackPermissions$inboundSchema + ).optional(), + resources: z.record( + z.string(), + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStackResources$inboundSchema + ), + ), + supportedPlatforms: z.nullable( + z.array( + SyncAcquireResponseDeploymentPendingPreparedStackSupportedPlatform$inboundSchema, + ), + ).optional(), }); -export function syncAcquireResponseDeploymentEnvironmentInfoAwsFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentEnvironmentInfoAws, + SyncAcquireResponseDeploymentPendingPreparedStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentEnvironmentInfoAws$inboundSchema.parse( + SyncAcquireResponseDeploymentPendingPreparedStack$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncAcquireResponseDeploymentEnvironmentInfoAws' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStack' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentEnvironmentInfoUnion$inboundSchema: - z.ZodType = z +export const SyncAcquireResponseDeploymentPendingPreparedStackUnion$inboundSchema: + z.ZodType = z .union([ z.lazy(() => - SyncAcquireResponseDeploymentEnvironmentInfoGcp$inboundSchema - ), - z.lazy(() => - SyncAcquireResponseDeploymentEnvironmentInfoAzure$inboundSchema - ), - z.lazy(() => - SyncAcquireResponseDeploymentEnvironmentInfoLocal$inboundSchema - ), - z.lazy(() => - SyncAcquireResponseDeploymentEnvironmentInfoAws$inboundSchema - ), - z.lazy(() => - SyncAcquireResponseDeploymentEnvironmentInfoTest$inboundSchema + SyncAcquireResponseDeploymentPendingPreparedStack$inboundSchema ), z.any(), ]); -export function syncAcquireResponseDeploymentEnvironmentInfoUnionFromJSON( - jsonString: string, -): SafeParseResult< - SyncAcquireResponseDeploymentEnvironmentInfoUnion, - SDKValidationError -> { - return safeParse( - jsonString, - (x) => - SyncAcquireResponseDeploymentEnvironmentInfoUnion$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncAcquireResponseDeploymentEnvironmentInfoUnion' from JSON`, - ); -} - -/** @internal */ -export const SyncAcquireResponseDeploymentError$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentError, - unknown -> = z.object({ - code: z.string(), - context: z.nullable(z.any()).optional(), - hint: z.nullable(z.string()).optional(), - httpStatusCode: z.nullable(z.int()).optional(), - internal: z.boolean(), - message: z.string(), - retryable: z.boolean().default(false), - source: z.nullable(z.any()).optional(), -}); - -export function syncAcquireResponseDeploymentErrorFromJSON( - jsonString: string, -): SafeParseResult { - return safeParse( - jsonString, - (x) => - SyncAcquireResponseDeploymentError$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncAcquireResponseDeploymentError' from JSON`, - ); -} - -/** @internal */ -export const SyncAcquireResponseDeploymentErrorUnion$inboundSchema: z.ZodType< - SyncAcquireResponseDeploymentErrorUnion, - unknown -> = z.union([ - z.lazy(() => SyncAcquireResponseDeploymentError$inboundSchema), - z.any(), -]); - -export function syncAcquireResponseDeploymentErrorUnionFromJSON( +export function syncAcquireResponseDeploymentPendingPreparedStackUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentErrorUnion, + SyncAcquireResponseDeploymentPendingPreparedStackUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentErrorUnion$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncAcquireResponseDeploymentErrorUnion' from JSON`, + SyncAcquireResponseDeploymentPendingPreparedStackUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentPendingPreparedStackUnion' from JSON`, ); } -/** @internal */ -export const SyncAcquireResponseDeploymentCurrentPlatform$inboundSchema: - z.ZodEnum = z.enum( - SyncAcquireResponseDeploymentCurrentPlatform, - ); - /** @internal */ export const SyncAcquireResponseDeploymentPreparedStackTypeStringList$inboundSchema: z.ZodEnum = z @@ -15684,6 +20214,7 @@ export const SyncAcquireResponseDeploymentPreparedStackResources$inboundSchema: SyncAcquireResponseDeploymentPreparedStackDependency$inboundSchema ), ), + enabledWhen: z.nullable(z.string()).optional(), lifecycle: SyncAcquireResponseDeploymentPreparedStackLifecycle$inboundSchema, remoteAccess: z.boolean().optional(), @@ -15736,52 +20267,120 @@ export const SyncAcquireResponseDeploymentPreparedStack$inboundSchema: ).optional(), }); -export function syncAcquireResponseDeploymentPreparedStackFromJSON( +export function syncAcquireResponseDeploymentPreparedStackFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentPreparedStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentPreparedStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentPreparedStack' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentPreparedStackUnion$inboundSchema: + z.ZodType = z.union( + [ + z.lazy(() => SyncAcquireResponseDeploymentPreparedStack$inboundSchema), + z.any(), + ], + ); + +export function syncAcquireResponseDeploymentPreparedStackUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentPreparedStackUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentPreparedStackUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentPreparedStackUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentSetupUpdateAuthorization$inboundSchema: + z.ZodType = z + .object({ + baselineFrozenDigest: z.string(), + nonce: z.string(), + releaseId: z.string(), + setupFingerprint: z.string(), + setupFingerprintVersion: z.int(), + setupTarget: z.string(), + targetFrozenDigest: z.string(), + }); + +export function syncAcquireResponseDeploymentSetupUpdateAuthorizationFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentPreparedStack, + SyncAcquireResponseDeploymentSetupUpdateAuthorization, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentPreparedStack$inboundSchema.parse( + SyncAcquireResponseDeploymentSetupUpdateAuthorization$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncAcquireResponseDeploymentPreparedStack' from JSON`, + `Failed to parse 'SyncAcquireResponseDeploymentSetupUpdateAuthorization' from JSON`, ); } /** @internal */ -export const SyncAcquireResponseDeploymentPreparedStackUnion$inboundSchema: - z.ZodType = z.union( - [ - z.lazy(() => SyncAcquireResponseDeploymentPreparedStack$inboundSchema), - z.any(), - ], - ); +export const SyncAcquireResponseDeploymentSetupUpdateAuthorizationUnion$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentSetupUpdateAuthorizationUnion, + unknown + > = z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentSetupUpdateAuthorization$inboundSchema + ), + z.any(), + ]); -export function syncAcquireResponseDeploymentPreparedStackUnionFromJSON( +export function syncAcquireResponseDeploymentSetupUpdateAuthorizationUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncAcquireResponseDeploymentPreparedStackUnion, + SyncAcquireResponseDeploymentSetupUpdateAuthorizationUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncAcquireResponseDeploymentPreparedStackUnion$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncAcquireResponseDeploymentPreparedStackUnion' from JSON`, + SyncAcquireResponseDeploymentSetupUpdateAuthorizationUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentSetupUpdateAuthorizationUnion' from JSON`, ); } /** @internal */ export const SyncAcquireResponseDeploymentRuntimeMetadata$inboundSchema: z.ZodType = z.object({ + initialSetupAuthority: + SyncAcquireResponseDeploymentInitialSetupAuthority$inboundSchema + .optional(), lastSyncedEnvVarsHash: z.nullable(z.string()).optional(), lastSyncedSecretNames: z.array(z.string()).optional(), + pendingPreparedStack: z.nullable( + z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentPendingPreparedStack$inboundSchema + ), + z.any(), + ]), + ).optional(), + persistedGateAnswers: z.record(z.string(), z.boolean()).optional(), preparedStack: z.nullable( z.union([ z.lazy(() => SyncAcquireResponseDeploymentPreparedStack$inboundSchema), @@ -15789,6 +20388,14 @@ export const SyncAcquireResponseDeploymentRuntimeMetadata$inboundSchema: ]), ).optional(), registryAccessGranted: z.boolean().optional(), + setupUpdateAuthorization: z.nullable( + z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentSetupUpdateAuthorization$inboundSchema + ), + z.any(), + ]), + ).optional(), }); export function syncAcquireResponseDeploymentRuntimeMetadataFromJSON( @@ -18671,6 +23278,7 @@ export const SyncAcquireResponseDeploymentTargetReleaseResources$inboundSchema: SyncAcquireResponseDeploymentTargetReleaseDependency$inboundSchema ), ), + enabledWhen: z.nullable(z.string()).optional(), lifecycle: SyncAcquireResponseDeploymentTargetReleaseLifecycle$inboundSchema, remoteAccess: z.boolean().optional(), @@ -19540,6 +24148,112 @@ export function syncAcquireResponseDeploymentEnvironmentVariablesFromJSON( ); } +/** @internal */ +export const SyncAcquireResponseDeploymentApiKeySecretRef$inboundSchema: + z.ZodType = z.object({ + key: z.string(), + name: z.string(), + }); + +export function syncAcquireResponseDeploymentApiKeySecretRefFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentApiKeySecretRef, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentApiKeySecretRef$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentApiKeySecretRef' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentApiKey$inboundSchema: z.ZodType< + SyncAcquireResponseDeploymentApiKey, + unknown +> = z.object({ + secretRef: z.lazy(() => + SyncAcquireResponseDeploymentApiKeySecretRef$inboundSchema + ), +}); + +export function syncAcquireResponseDeploymentApiKeyFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentApiKey$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentApiKey' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentApiKeyUnion$inboundSchema: z.ZodType< + SyncAcquireResponseDeploymentApiKeyUnion, + unknown +> = z.union([ + z.lazy(() => SyncAcquireResponseDeploymentApiKey$inboundSchema), + z.any(), + z.string(), +]); + +export function syncAcquireResponseDeploymentApiKeyUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentApiKeyUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentApiKeyUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentApiKeyUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentTypeAi$inboundSchema: z.ZodEnum< + typeof SyncAcquireResponseDeploymentTypeAi +> = z.enum(SyncAcquireResponseDeploymentTypeAi); + +/** @internal */ +export const SyncAcquireResponseDeploymentExternalBindingsAi$inboundSchema: + z.ZodType = z + .object({ + apiKey: z.nullable( + z.union([ + z.lazy(() => SyncAcquireResponseDeploymentApiKey$inboundSchema), + z.any(), + z.string(), + ]), + ).optional(), + provider: z.string(), + type: SyncAcquireResponseDeploymentTypeAi$inboundSchema, + }); + +export function syncAcquireResponseDeploymentExternalBindingsAiFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentExternalBindingsAi, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentExternalBindingsAi$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentExternalBindingsAi' from JSON`, + ); +} + /** @internal */ export const SyncAcquireResponseDeploymentDatabaseSecretRef6$inboundSchema: z.ZodType = z @@ -20087,6 +24801,11 @@ export function syncAcquireResponseDeploymentPortUnion4FromJSON( ); } +/** @internal */ +export const SyncAcquireResponseDeploymentSslMode$inboundSchema: z.ZodEnum< + typeof SyncAcquireResponseDeploymentSslMode +> = z.enum(SyncAcquireResponseDeploymentSslMode); + /** @internal */ export const SyncAcquireResponseDeploymentUsernameSecretRef4$inboundSchema: z.ZodType = z @@ -20188,6 +24907,7 @@ export const SyncAcquireResponseDeploymentExternalBindingsExternal$inboundSchema z.any(), ]), ).optional(), + sslMode: SyncAcquireResponseDeploymentSslMode$inboundSchema.optional(), username: z.nullable( z.union([ z.lazy(() => SyncAcquireResponseDeploymentUsername4$inboundSchema), @@ -20921,6 +25641,82 @@ export function syncAcquireResponseDeploymentPortUnion2FromJSON( ); } +/** @internal */ +export const SyncAcquireResponseDeploymentServerCaCertificatesSecretRef$inboundSchema: + z.ZodType< + SyncAcquireResponseDeploymentServerCaCertificatesSecretRef, + unknown + > = z.object({ + key: z.string(), + name: z.string(), + }); + +export function syncAcquireResponseDeploymentServerCaCertificatesSecretRefFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentServerCaCertificatesSecretRef, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentServerCaCertificatesSecretRef$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentServerCaCertificatesSecretRef' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentServerCaCertificates$inboundSchema: + z.ZodType = z + .object({ + secretRef: z.lazy(() => + SyncAcquireResponseDeploymentServerCaCertificatesSecretRef$inboundSchema + ), + }); + +export function syncAcquireResponseDeploymentServerCaCertificatesFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentServerCaCertificates, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentServerCaCertificates$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentServerCaCertificates' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentServerCaCertificatesUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => + SyncAcquireResponseDeploymentServerCaCertificates$inboundSchema + ), + z.array(z.string()), + z.any(), + ]); + +export function syncAcquireResponseDeploymentServerCaCertificatesUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentServerCaCertificatesUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentServerCaCertificatesUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncAcquireResponseDeploymentServerCaCertificatesUnion' from JSON`, + ); +} + /** @internal */ export const SyncAcquireResponseDeploymentUsernameSecretRef2$inboundSchema: z.ZodType = z @@ -21030,6 +25826,15 @@ export const SyncAcquireResponseDeploymentExternalBindingsCloudSQL$inboundSchema z.any(), ]), ).optional(), + serverCaCertificates: z.nullable( + z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentServerCaCertificates$inboundSchema + ), + z.array(z.string()), + z.any(), + ]), + ).optional(), username: z.nullable( z.union([ z.lazy(() => SyncAcquireResponseDeploymentUsername2$inboundSchema), @@ -25817,6 +30622,9 @@ export function syncAcquireResponseDeploymentExternalBindingsUnion1FromJSON( export const SyncAcquireResponseDeploymentExternalBindingsUnion7$inboundSchema: z.ZodType = z .union([ + z.lazy(() => + SyncAcquireResponseDeploymentExternalBindingsAi$inboundSchema + ), z.lazy(() => SyncAcquireResponseDeploymentExternalBindingsContainerAppsEnvironment$inboundSchema ), @@ -26137,13 +30945,72 @@ export function syncAcquireResponseDeploymentMonitoringUnionFromJSON( ); } +/** @internal */ +export const SyncAcquireResponseDeploymentFailureDomains2$inboundSchema: + z.ZodType = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), + }); + +export function syncAcquireResponseDeploymentFailureDomains2FromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentFailureDomains2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentFailureDomains2$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentFailureDomains2' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentFailureDomainsUnion2$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => SyncAcquireResponseDeploymentFailureDomains2$inboundSchema), + z.any(), + ]); + +export function syncAcquireResponseDeploymentFailureDomainsUnion2FromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentFailureDomainsUnion2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentFailureDomainsUnion2$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentFailureDomainsUnion2' from JSON`, + ); +} + /** @internal */ export const SyncAcquireResponseDeploymentPoolsAutoscale$inboundSchema: z.ZodType = z.object({ + failure_domains: z.nullable( + z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentFailureDomains2$inboundSchema + ), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), max: z.int(), min: z.int(), mode: z.literal("autoscale"), + }).transform((v) => { + return remap$(v, { + "failure_domains": "failureDomains", + }); }); export function syncAcquireResponseDeploymentPoolsAutoscaleFromJSON( @@ -26162,14 +31029,71 @@ export function syncAcquireResponseDeploymentPoolsAutoscaleFromJSON( ); } +/** @internal */ +export const SyncAcquireResponseDeploymentFailureDomains1$inboundSchema: + z.ZodType = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), + }); + +export function syncAcquireResponseDeploymentFailureDomains1FromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentFailureDomains1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentFailureDomains1$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentFailureDomains1' from JSON`, + ); +} + +/** @internal */ +export const SyncAcquireResponseDeploymentFailureDomainsUnion1$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => SyncAcquireResponseDeploymentFailureDomains1$inboundSchema), + z.any(), + ]); + +export function syncAcquireResponseDeploymentFailureDomainsUnion1FromJSON( + jsonString: string, +): SafeParseResult< + SyncAcquireResponseDeploymentFailureDomainsUnion1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncAcquireResponseDeploymentFailureDomainsUnion1$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncAcquireResponseDeploymentFailureDomainsUnion1' from JSON`, + ); +} + /** @internal */ export const SyncAcquireResponseDeploymentPoolsFixed$inboundSchema: z.ZodType< SyncAcquireResponseDeploymentPoolsFixed, unknown > = z.object({ + failure_domains: z.nullable( + z.union([ + z.lazy(() => SyncAcquireResponseDeploymentFailureDomains1$inboundSchema), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), machines: z.int(), mode: z.literal("fixed"), +}).transform((v) => { + return remap$(v, { + "failure_domains": "failureDomains", + }); }); export function syncAcquireResponseDeploymentPoolsFixedFromJSON( @@ -28416,6 +33340,9 @@ export const SyncAcquireResponseDeploymentConfig$inboundSchema: z.ZodType< externalBindings: z.record( z.string(), z.union([ + z.lazy(() => + SyncAcquireResponseDeploymentExternalBindingsAi$inboundSchema + ), z.lazy(() => SyncAcquireResponseDeploymentExternalBindingsContainerAppsEnvironment$inboundSchema ), @@ -28514,6 +33441,7 @@ export const SyncAcquireResponseDeploymentConfig$inboundSchema: z.ZodType< ]), ]), ).optional(), + inputValues: z.record(z.string(), z.nullable(z.any())).optional(), labelDomain: z.nullable(z.string()).optional(), managementConfig: z.nullable( z.union([ diff --git a/client-sdks/platform/typescript/src/models/synclistresponse.ts b/client-sdks/platform/typescript/src/models/synclistresponse.ts index 8723b78ab..b340e5551 100644 --- a/client-sdks/platform/typescript/src/models/synclistresponse.ts +++ b/client-sdks/platform/typescript/src/models/synclistresponse.ts @@ -224,7 +224,29 @@ export type SyncListResponseEnvironmentInfoUnion = | SyncListResponseEnvironmentInfoTest | any; +/** + * Failure-domain policy selected for a compute pool. + */ +export type SyncListResponseFailureDomains2 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type SyncListResponseFailureDomainsUnion2 = + | SyncListResponseFailureDomains2 + | any; + export type SyncListResponsePoolsAutoscale = { + failureDomains?: SyncListResponseFailureDomains2 | any | null | undefined; /** * Provider machine type selected for this deployment. */ @@ -240,7 +262,29 @@ export type SyncListResponsePoolsAutoscale = { mode: "autoscale"; }; +/** + * Failure-domain policy selected for a compute pool. + */ +export type SyncListResponseFailureDomains1 = { + /** + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. + */ + selectedFailureDomains?: Array | undefined; + /** + * Number of distinct failure domains across which new stateful replicas may be spread. + */ + spread: number; +}; + +export type SyncListResponseFailureDomainsUnion1 = + | SyncListResponseFailureDomains1 + | any; + export type SyncListResponsePoolsFixed = { + failureDomains?: SyncListResponseFailureDomains1 | any | null | undefined; /** * Provider machine type selected for this deployment. */ @@ -1645,93 +1689,109 @@ export type SyncListResponseStackState = { resources: { [k: string]: SyncListResponseStackStateResources }; }; -export const SyncListResponseTypeStringList = { +/** + * Actor that owns structural work during the initial setup phase. + */ +export const SyncListResponseInitialSetupAuthority = { + ImportedHandoff: "importedHandoff", + DirectSetup: "directSetup", +} as const; +/** + * Actor that owns structural work during the initial setup phase. + */ +export type SyncListResponseInitialSetupAuthority = ClosedEnum< + typeof SyncListResponseInitialSetupAuthority +>; + +export const SyncListResponsePendingPreparedStackTypeStringList = { StringList: "stringList", } as const; -export type SyncListResponseTypeStringList = ClosedEnum< - typeof SyncListResponseTypeStringList +export type SyncListResponsePendingPreparedStackTypeStringList = ClosedEnum< + typeof SyncListResponsePendingPreparedStackTypeStringList >; -export type SyncListResponseDefaultStringList = { - type: SyncListResponseTypeStringList; +export type SyncListResponsePendingPreparedStackDefaultStringList = { + type: SyncListResponsePendingPreparedStackTypeStringList; /** * String list default. */ value: Array; }; -export const SyncListResponseTypeBoolean = { +export const SyncListResponsePendingPreparedStackTypeBoolean = { Boolean: "boolean", } as const; -export type SyncListResponseTypeBoolean = ClosedEnum< - typeof SyncListResponseTypeBoolean +export type SyncListResponsePendingPreparedStackTypeBoolean = ClosedEnum< + typeof SyncListResponsePendingPreparedStackTypeBoolean >; -export type SyncListResponseDefaultBoolean = { - type: SyncListResponseTypeBoolean; +export type SyncListResponsePendingPreparedStackDefaultBoolean = { + type: SyncListResponsePendingPreparedStackTypeBoolean; /** * Boolean default. */ value: boolean; }; -export const SyncListResponseTypeNumber = { +export const SyncListResponsePendingPreparedStackTypeNumber = { Number: "number", } as const; -export type SyncListResponseTypeNumber = ClosedEnum< - typeof SyncListResponseTypeNumber +export type SyncListResponsePendingPreparedStackTypeNumber = ClosedEnum< + typeof SyncListResponsePendingPreparedStackTypeNumber >; -export type SyncListResponseDefaultNumber = { - type: SyncListResponseTypeNumber; +export type SyncListResponsePendingPreparedStackDefaultNumber = { + type: SyncListResponsePendingPreparedStackTypeNumber; /** * Number default. */ value: string; }; -export const SyncListResponseTypeString = { +export const SyncListResponsePendingPreparedStackTypeString = { String: "string", } as const; -export type SyncListResponseTypeString = ClosedEnum< - typeof SyncListResponseTypeString +export type SyncListResponsePendingPreparedStackTypeString = ClosedEnum< + typeof SyncListResponsePendingPreparedStackTypeString >; -export type SyncListResponseDefaultString = { - type: SyncListResponseTypeString; +export type SyncListResponsePendingPreparedStackDefaultString = { + type: SyncListResponsePendingPreparedStackTypeString; /** * String default. */ value: string; }; -export type SyncListResponseDefaultUnion = - | SyncListResponseDefaultString - | SyncListResponseDefaultNumber - | SyncListResponseDefaultBoolean - | SyncListResponseDefaultStringList +export type SyncListResponsePendingPreparedStackDefaultUnion = + | SyncListResponsePendingPreparedStackDefaultString + | SyncListResponsePendingPreparedStackDefaultNumber + | SyncListResponsePendingPreparedStackDefaultBoolean + | SyncListResponsePendingPreparedStackDefaultStringList | any; /** * Environment variable handling for a stack input mapping. */ -export const SyncListResponseTypeEnvEnum = { +export const SyncListResponsePendingPreparedStackTypeEnvEnum = { Plain: "plain", Secret: "secret", } as const; /** * Environment variable handling for a stack input mapping. */ -export type SyncListResponseTypeEnvEnum = ClosedEnum< - typeof SyncListResponseTypeEnvEnum +export type SyncListResponsePendingPreparedStackTypeEnvEnum = ClosedEnum< + typeof SyncListResponsePendingPreparedStackTypeEnvEnum >; -export type SyncListResponseTypeUnion = SyncListResponseTypeEnvEnum | any; +export type SyncListResponsePendingPreparedStackTypeUnion = + | SyncListResponsePendingPreparedStackTypeEnvEnum + | any; /** * How a resolved stack input is injected into runtime environment variables. */ -export type SyncListResponseEnv = { +export type SyncListResponsePendingPreparedStackEnv = { /** * Environment variable name. */ @@ -1740,13 +1800,17 @@ export type SyncListResponseEnv = { * Target resource IDs or patterns. None means every env-capable resource. */ targetResources?: Array | null | undefined; - type?: SyncListResponseTypeEnvEnum | any | null | undefined; + type?: + | SyncListResponsePendingPreparedStackTypeEnvEnum + | any + | null + | undefined; }; /** * Primitive stack input kind. */ -export const SyncListResponseKind = { +export const SyncListResponsePendingPreparedStackKind = { String: "string", Secret: "secret", Number: "number", @@ -1758,12 +1822,14 @@ export const SyncListResponseKind = { /** * Primitive stack input kind. */ -export type SyncListResponseKind = ClosedEnum; +export type SyncListResponsePendingPreparedStackKind = ClosedEnum< + typeof SyncListResponsePendingPreparedStackKind +>; /** * Represents the target cloud platform. */ -export const SyncListResponsePreparedStackPlatform = { +export const SyncListResponsePendingPreparedStackPlatform = { Aws: "aws", Gcp: "gcp", Azure: "azure", @@ -1775,28 +1841,28 @@ export const SyncListResponsePreparedStackPlatform = { /** * Represents the target cloud platform. */ -export type SyncListResponsePreparedStackPlatform = ClosedEnum< - typeof SyncListResponsePreparedStackPlatform +export type SyncListResponsePendingPreparedStackPlatform = ClosedEnum< + typeof SyncListResponsePendingPreparedStackPlatform >; /** * Who can provide a stack input value. */ -export const SyncListResponseProvidedBy = { +export const SyncListResponsePendingPreparedStackProvidedBy = { Developer: "developer", Deployer: "deployer", } as const; /** * Who can provide a stack input value. */ -export type SyncListResponseProvidedBy = ClosedEnum< - typeof SyncListResponseProvidedBy +export type SyncListResponsePendingPreparedStackProvidedBy = ClosedEnum< + typeof SyncListResponsePendingPreparedStackProvidedBy >; /** * Portable stack input validation constraints. */ -export type SyncListResponseValidation = { +export type SyncListResponsePendingPreparedStackValidation = { /** * Semantic format hint such as url. */ @@ -1835,17 +1901,19 @@ export type SyncListResponseValidation = { values?: Array | null | undefined; }; -export type SyncListResponseValidationUnion = SyncListResponseValidation | any; +export type SyncListResponsePendingPreparedStackValidationUnion = + | SyncListResponsePendingPreparedStackValidation + | any; /** * Stack input definition serialized into a release stack. */ -export type SyncListResponseInput = { +export type SyncListResponsePendingPreparedStackInput = { default?: - | SyncListResponseDefaultString - | SyncListResponseDefaultNumber - | SyncListResponseDefaultBoolean - | SyncListResponseDefaultStringList + | SyncListResponsePendingPreparedStackDefaultString + | SyncListResponsePendingPreparedStackDefaultNumber + | SyncListResponsePendingPreparedStackDefaultBoolean + | SyncListResponsePendingPreparedStackDefaultStringList | any | null | undefined; @@ -1856,7 +1924,7 @@ export type SyncListResponseInput = { /** * Runtime env-var mappings for v1 input resolution. */ - env?: Array | undefined; + env?: Array | undefined; /** * Stable input ID used by CLI/API calls. */ @@ -1864,7 +1932,7 @@ export type SyncListResponseInput = { /** * Primitive stack input kind. */ - kind: SyncListResponseKind; + kind: SyncListResponsePendingPreparedStackKind; /** * Human-facing field label. */ @@ -1876,29 +1944,36 @@ export type SyncListResponseInput = { /** * Platforms where this input applies. */ - platforms?: Array | null | undefined; + platforms?: + | Array + | null + | undefined; /** * Who can provide this value. */ - providedBy: Array; + providedBy: Array; /** * Whether a resolved value is required before deployment can proceed. */ required: boolean; - validation?: SyncListResponseValidation | any | null | undefined; + validation?: + | SyncListResponsePendingPreparedStackValidation + | any + | null + | undefined; }; -export const SyncListResponseManagementEnum = { +export const SyncListResponsePendingPreparedStackManagementEnum = { Auto: "auto", } as const; -export type SyncListResponseManagementEnum = ClosedEnum< - typeof SyncListResponseManagementEnum +export type SyncListResponsePendingPreparedStackManagementEnum = ClosedEnum< + typeof SyncListResponsePendingPreparedStackManagementEnum >; /** * AWS-specific binding specification */ -export type SyncListResponseOverrideAwResource = { +export type SyncListResponsePendingPreparedStackOverrideAwResource = { /** * Optional condition for additional filtering (rare) */ @@ -1912,7 +1987,7 @@ export type SyncListResponseOverrideAwResource = { /** * AWS-specific binding specification */ -export type SyncListResponseOverrideAwStack = { +export type SyncListResponsePendingPreparedStackOverrideAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -1926,35 +2001,35 @@ export type SyncListResponseOverrideAwStack = { /** * Generic binding configuration for permissions */ -export type SyncListResponseOverrideAwBinding = { +export type SyncListResponsePendingPreparedStackOverrideAwBinding = { /** * AWS-specific binding specification */ - resource?: SyncListResponseOverrideAwResource | undefined; + resource?: SyncListResponsePendingPreparedStackOverrideAwResource | undefined; /** * AWS-specific binding specification */ - stack?: SyncListResponseOverrideAwStack | undefined; + stack?: SyncListResponsePendingPreparedStackOverrideAwStack | undefined; }; /** * IAM effect. Defaults to Allow. */ -export const SyncListResponseOverrideEffect = { +export const SyncListResponsePendingPreparedStackOverrideEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type SyncListResponseOverrideEffect = ClosedEnum< - typeof SyncListResponseOverrideEffect +export type SyncListResponsePendingPreparedStackOverrideEffect = ClosedEnum< + typeof SyncListResponsePendingPreparedStackOverrideEffect >; /** * Grant permissions for a specific cloud platform */ -export type SyncListResponseOverrideAwGrant = { +export type SyncListResponsePendingPreparedStackOverrideAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -1980,11 +2055,11 @@ export type SyncListResponseOverrideAwGrant = { /** * AWS-specific platform permission configuration */ -export type SyncListResponseOverrideAw = { +export type SyncListResponsePendingPreparedStackOverrideAw = { /** * Generic binding configuration for permissions */ - binding: SyncListResponseOverrideAwBinding; + binding: SyncListResponsePendingPreparedStackOverrideAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -1992,11 +2067,11 @@ export type SyncListResponseOverrideAw = { /** * IAM effect. Defaults to Allow. */ - effect?: SyncListResponseOverrideEffect | undefined; + effect?: SyncListResponsePendingPreparedStackOverrideEffect | undefined; /** * Grant permissions for a specific cloud platform */ - grant: SyncListResponseOverrideAwGrant; + grant: SyncListResponsePendingPreparedStackOverrideAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2006,7 +2081,7 @@ export type SyncListResponseOverrideAw = { /** * Azure-specific binding specification */ -export type SyncListResponseOverrideAzureResource = { +export type SyncListResponsePendingPreparedStackOverrideAzureResource = { /** * Scope (subscription/resource group/resource level) */ @@ -2016,7 +2091,7 @@ export type SyncListResponseOverrideAzureResource = { /** * Azure-specific binding specification */ -export type SyncListResponseOverrideAzureStack = { +export type SyncListResponsePendingPreparedStackOverrideAzureStack = { /** * Scope (subscription/resource group/resource level) */ @@ -2026,21 +2101,23 @@ export type SyncListResponseOverrideAzureStack = { /** * Generic binding configuration for permissions */ -export type SyncListResponseOverrideAzureBinding = { +export type SyncListResponsePendingPreparedStackOverrideAzureBinding = { /** * Azure-specific binding specification */ - resource?: SyncListResponseOverrideAzureResource | undefined; + resource?: + | SyncListResponsePendingPreparedStackOverrideAzureResource + | undefined; /** * Azure-specific binding specification */ - stack?: SyncListResponseOverrideAzureStack | undefined; + stack?: SyncListResponsePendingPreparedStackOverrideAzureStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncListResponseOverrideAzureGrant = { +export type SyncListResponsePendingPreparedStackOverrideAzureGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2066,11 +2143,11 @@ export type SyncListResponseOverrideAzureGrant = { /** * Azure-specific platform permission configuration */ -export type SyncListResponseOverrideAzure = { +export type SyncListResponsePendingPreparedStackOverrideAzure = { /** * Generic binding configuration for permissions */ - binding: SyncListResponseOverrideAzureBinding; + binding: SyncListResponsePendingPreparedStackOverrideAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2078,7 +2155,7 @@ export type SyncListResponseOverrideAzure = { /** * Grant permissions for a specific cloud platform */ - grant: SyncListResponseOverrideAzureGrant; + grant: SyncListResponsePendingPreparedStackOverrideAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2088,21 +2165,21 @@ export type SyncListResponseOverrideAzure = { /** * GCP IAM condition */ -export type SyncListResponseOverrideConditionResource = { +export type SyncListResponsePendingPreparedStackOverrideConditionResource = { expression: string; title: string; }; -export type SyncListResponseOverrideResourceConditionUnion = - | SyncListResponseOverrideConditionResource +export type SyncListResponsePendingPreparedStackOverrideResourceConditionUnion = + | SyncListResponsePendingPreparedStackOverrideConditionResource | any; /** * GCP-specific binding specification */ -export type SyncListResponseOverrideGcpResource = { +export type SyncListResponsePendingPreparedStackOverrideGcpResource = { condition?: - | SyncListResponseOverrideConditionResource + | SyncListResponsePendingPreparedStackOverrideConditionResource | any | null | undefined; @@ -2115,20 +2192,24 @@ export type SyncListResponseOverrideGcpResource = { /** * GCP IAM condition */ -export type SyncListResponseOverrideConditionStack = { +export type SyncListResponsePendingPreparedStackOverrideConditionStack = { expression: string; title: string; }; -export type SyncListResponseOverrideStackConditionUnion = - | SyncListResponseOverrideConditionStack +export type SyncListResponsePendingPreparedStackOverrideStackConditionUnion = + | SyncListResponsePendingPreparedStackOverrideConditionStack | any; /** * GCP-specific binding specification */ -export type SyncListResponseOverrideGcpStack = { - condition?: SyncListResponseOverrideConditionStack | any | null | undefined; +export type SyncListResponsePendingPreparedStackOverrideGcpStack = { + condition?: + | SyncListResponsePendingPreparedStackOverrideConditionStack + | any + | null + | undefined; /** * Scope (project/resource level) */ @@ -2138,21 +2219,23 @@ export type SyncListResponseOverrideGcpStack = { /** * Generic binding configuration for permissions */ -export type SyncListResponseOverrideGcpBinding = { +export type SyncListResponsePendingPreparedStackOverrideGcpBinding = { /** * GCP-specific binding specification */ - resource?: SyncListResponseOverrideGcpResource | undefined; + resource?: + | SyncListResponsePendingPreparedStackOverrideGcpResource + | undefined; /** * GCP-specific binding specification */ - stack?: SyncListResponseOverrideGcpStack | undefined; + stack?: SyncListResponsePendingPreparedStackOverrideGcpStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncListResponseOverrideGcpGrant = { +export type SyncListResponsePendingPreparedStackOverrideGcpGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2178,11 +2261,11 @@ export type SyncListResponseOverrideGcpGrant = { /** * GCP-specific platform permission configuration */ -export type SyncListResponseOverrideGcp = { +export type SyncListResponsePendingPreparedStackOverrideGcp = { /** * Generic binding configuration for permissions */ - binding: SyncListResponseOverrideGcpBinding; + binding: SyncListResponsePendingPreparedStackOverrideGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2190,7 +2273,7 @@ export type SyncListResponseOverrideGcp = { /** * Grant permissions for a specific cloud platform */ - grant: SyncListResponseOverrideGcpGrant; + grant: SyncListResponsePendingPreparedStackOverrideGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2200,25 +2283,34 @@ export type SyncListResponseOverrideGcp = { /** * Platform-specific permission configurations */ -export type SyncListResponseOverridePlatforms = { +export type SyncListResponsePendingPreparedStackOverridePlatforms = { /** * AWS permission configurations */ - aws?: Array | null | undefined; + aws?: + | Array + | null + | undefined; /** * Azure permission configurations */ - azure?: Array | null | undefined; + azure?: + | Array + | null + | undefined; /** * GCP permission configurations */ - gcp?: Array | null | undefined; + gcp?: + | Array + | null + | undefined; }; /** * A permission set that can be applied across different cloud platforms */ -export type SyncListResponseOverride = { +export type SyncListResponsePendingPreparedStackOverride = { /** * Human-readable description of what this permission set allows */ @@ -2230,28 +2322,32 @@ export type SyncListResponseOverride = { /** * Platform-specific permission configurations */ - platforms: SyncListResponseOverridePlatforms; + platforms: SyncListResponsePendingPreparedStackOverridePlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type SyncListResponseOverrideUnion = SyncListResponseOverride | string; +export type SyncListResponsePendingPreparedStackOverrideUnion = + | SyncListResponsePendingPreparedStackOverride + | string; -export type SyncListResponseManagement2 = { +export type SyncListResponsePendingPreparedStackManagement2 = { /** * Permission profile that maps resources to permission sets * * @remarks * Key can be "*" for all resources or resource name for specific resource */ - override: { [k: string]: Array }; + override: { + [k: string]: Array; + }; }; /** * AWS-specific binding specification */ -export type SyncListResponseExtendAwResource = { +export type SyncListResponsePendingPreparedStackExtendAwResource = { /** * Optional condition for additional filtering (rare) */ @@ -2265,7 +2361,7 @@ export type SyncListResponseExtendAwResource = { /** * AWS-specific binding specification */ -export type SyncListResponseExtendAwStack = { +export type SyncListResponsePendingPreparedStackExtendAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -2279,35 +2375,35 @@ export type SyncListResponseExtendAwStack = { /** * Generic binding configuration for permissions */ -export type SyncListResponseExtendAwBinding = { +export type SyncListResponsePendingPreparedStackExtendAwBinding = { /** * AWS-specific binding specification */ - resource?: SyncListResponseExtendAwResource | undefined; + resource?: SyncListResponsePendingPreparedStackExtendAwResource | undefined; /** * AWS-specific binding specification */ - stack?: SyncListResponseExtendAwStack | undefined; + stack?: SyncListResponsePendingPreparedStackExtendAwStack | undefined; }; /** * IAM effect. Defaults to Allow. */ -export const SyncListResponseExtendEffect = { +export const SyncListResponsePendingPreparedStackExtendEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type SyncListResponseExtendEffect = ClosedEnum< - typeof SyncListResponseExtendEffect +export type SyncListResponsePendingPreparedStackExtendEffect = ClosedEnum< + typeof SyncListResponsePendingPreparedStackExtendEffect >; /** * Grant permissions for a specific cloud platform */ -export type SyncListResponseExtendAwGrant = { +export type SyncListResponsePendingPreparedStackExtendAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2333,11 +2429,11 @@ export type SyncListResponseExtendAwGrant = { /** * AWS-specific platform permission configuration */ -export type SyncListResponseExtendAw = { +export type SyncListResponsePendingPreparedStackExtendAw = { /** * Generic binding configuration for permissions */ - binding: SyncListResponseExtendAwBinding; + binding: SyncListResponsePendingPreparedStackExtendAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2345,11 +2441,11 @@ export type SyncListResponseExtendAw = { /** * IAM effect. Defaults to Allow. */ - effect?: SyncListResponseExtendEffect | undefined; + effect?: SyncListResponsePendingPreparedStackExtendEffect | undefined; /** * Grant permissions for a specific cloud platform */ - grant: SyncListResponseExtendAwGrant; + grant: SyncListResponsePendingPreparedStackExtendAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2359,7 +2455,7 @@ export type SyncListResponseExtendAw = { /** * Azure-specific binding specification */ -export type SyncListResponseExtendAzureResource = { +export type SyncListResponsePendingPreparedStackExtendAzureResource = { /** * Scope (subscription/resource group/resource level) */ @@ -2369,7 +2465,7 @@ export type SyncListResponseExtendAzureResource = { /** * Azure-specific binding specification */ -export type SyncListResponseExtendAzureStack = { +export type SyncListResponsePendingPreparedStackExtendAzureStack = { /** * Scope (subscription/resource group/resource level) */ @@ -2379,21 +2475,23 @@ export type SyncListResponseExtendAzureStack = { /** * Generic binding configuration for permissions */ -export type SyncListResponseExtendAzureBinding = { +export type SyncListResponsePendingPreparedStackExtendAzureBinding = { /** * Azure-specific binding specification */ - resource?: SyncListResponseExtendAzureResource | undefined; + resource?: + | SyncListResponsePendingPreparedStackExtendAzureResource + | undefined; /** * Azure-specific binding specification */ - stack?: SyncListResponseExtendAzureStack | undefined; + stack?: SyncListResponsePendingPreparedStackExtendAzureStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncListResponseExtendAzureGrant = { +export type SyncListResponsePendingPreparedStackExtendAzureGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2419,11 +2517,11 @@ export type SyncListResponseExtendAzureGrant = { /** * Azure-specific platform permission configuration */ -export type SyncListResponseExtendAzure = { +export type SyncListResponsePendingPreparedStackExtendAzure = { /** * Generic binding configuration for permissions */ - binding: SyncListResponseExtendAzureBinding; + binding: SyncListResponsePendingPreparedStackExtendAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2431,7 +2529,7 @@ export type SyncListResponseExtendAzure = { /** * Grant permissions for a specific cloud platform */ - grant: SyncListResponseExtendAzureGrant; + grant: SyncListResponsePendingPreparedStackExtendAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2441,20 +2539,24 @@ export type SyncListResponseExtendAzure = { /** * GCP IAM condition */ -export type SyncListResponseExtendConditionResource = { +export type SyncListResponsePendingPreparedStackExtendConditionResource = { expression: string; title: string; }; -export type SyncListResponseExtendResourceConditionUnion = - | SyncListResponseExtendConditionResource +export type SyncListResponsePendingPreparedStackExtendResourceConditionUnion = + | SyncListResponsePendingPreparedStackExtendConditionResource | any; /** * GCP-specific binding specification */ -export type SyncListResponseExtendGcpResource = { - condition?: SyncListResponseExtendConditionResource | any | null | undefined; +export type SyncListResponsePendingPreparedStackExtendGcpResource = { + condition?: + | SyncListResponsePendingPreparedStackExtendConditionResource + | any + | null + | undefined; /** * Scope (project/resource level) */ @@ -2464,20 +2566,24 @@ export type SyncListResponseExtendGcpResource = { /** * GCP IAM condition */ -export type SyncListResponseExtendConditionStack = { +export type SyncListResponsePendingPreparedStackExtendConditionStack = { expression: string; title: string; }; -export type SyncListResponseExtendStackConditionUnion = - | SyncListResponseExtendConditionStack +export type SyncListResponsePendingPreparedStackExtendStackConditionUnion = + | SyncListResponsePendingPreparedStackExtendConditionStack | any; /** * GCP-specific binding specification */ -export type SyncListResponseExtendGcpStack = { - condition?: SyncListResponseExtendConditionStack | any | null | undefined; +export type SyncListResponsePendingPreparedStackExtendGcpStack = { + condition?: + | SyncListResponsePendingPreparedStackExtendConditionStack + | any + | null + | undefined; /** * Scope (project/resource level) */ @@ -2487,21 +2593,21 @@ export type SyncListResponseExtendGcpStack = { /** * Generic binding configuration for permissions */ -export type SyncListResponseExtendGcpBinding = { +export type SyncListResponsePendingPreparedStackExtendGcpBinding = { /** * GCP-specific binding specification */ - resource?: SyncListResponseExtendGcpResource | undefined; + resource?: SyncListResponsePendingPreparedStackExtendGcpResource | undefined; /** * GCP-specific binding specification */ - stack?: SyncListResponseExtendGcpStack | undefined; + stack?: SyncListResponsePendingPreparedStackExtendGcpStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncListResponseExtendGcpGrant = { +export type SyncListResponsePendingPreparedStackExtendGcpGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2527,11 +2633,11 @@ export type SyncListResponseExtendGcpGrant = { /** * GCP-specific platform permission configuration */ -export type SyncListResponseExtendGcp = { +export type SyncListResponsePendingPreparedStackExtendGcp = { /** * Generic binding configuration for permissions */ - binding: SyncListResponseExtendGcpBinding; + binding: SyncListResponsePendingPreparedStackExtendGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2539,7 +2645,7 @@ export type SyncListResponseExtendGcp = { /** * Grant permissions for a specific cloud platform */ - grant: SyncListResponseExtendGcpGrant; + grant: SyncListResponsePendingPreparedStackExtendGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2549,25 +2655,28 @@ export type SyncListResponseExtendGcp = { /** * Platform-specific permission configurations */ -export type SyncListResponseExtendPlatforms = { +export type SyncListResponsePendingPreparedStackExtendPlatforms = { /** * AWS permission configurations */ - aws?: Array | null | undefined; + aws?: Array | null | undefined; /** * Azure permission configurations */ - azure?: Array | null | undefined; + azure?: + | Array + | null + | undefined; /** * GCP permission configurations */ - gcp?: Array | null | undefined; + gcp?: Array | null | undefined; }; /** * A permission set that can be applied across different cloud platforms */ -export type SyncListResponseExtend = { +export type SyncListResponsePendingPreparedStackExtend = { /** * Human-readable description of what this permission set allows */ @@ -2579,36 +2688,40 @@ export type SyncListResponseExtend = { /** * Platform-specific permission configurations */ - platforms: SyncListResponseExtendPlatforms; + platforms: SyncListResponsePendingPreparedStackExtendPlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type SyncListResponseExtendUnion = SyncListResponseExtend | string; +export type SyncListResponsePendingPreparedStackExtendUnion = + | SyncListResponsePendingPreparedStackExtend + | string; -export type SyncListResponseManagement1 = { +export type SyncListResponsePendingPreparedStackManagement1 = { /** * Permission profile that maps resources to permission sets * * @remarks * Key can be "*" for all resources or resource name for specific resource */ - extend: { [k: string]: Array }; + extend: { + [k: string]: Array; + }; }; /** * Management permissions configuration for stack management access */ -export type SyncListResponseManagementUnion = - | SyncListResponseManagement1 - | SyncListResponseManagement2 - | SyncListResponseManagementEnum; +export type SyncListResponsePendingPreparedStackManagementUnion = + | SyncListResponsePendingPreparedStackManagement1 + | SyncListResponsePendingPreparedStackManagement2 + | SyncListResponsePendingPreparedStackManagementEnum; /** * AWS-specific binding specification */ -export type SyncListResponseProfileAwResource = { +export type SyncListResponsePendingPreparedStackProfileAwResource = { /** * Optional condition for additional filtering (rare) */ @@ -2622,7 +2735,7 @@ export type SyncListResponseProfileAwResource = { /** * AWS-specific binding specification */ -export type SyncListResponseProfileAwStack = { +export type SyncListResponsePendingPreparedStackProfileAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -2636,35 +2749,35 @@ export type SyncListResponseProfileAwStack = { /** * Generic binding configuration for permissions */ -export type SyncListResponseProfileAwBinding = { +export type SyncListResponsePendingPreparedStackProfileAwBinding = { /** * AWS-specific binding specification */ - resource?: SyncListResponseProfileAwResource | undefined; + resource?: SyncListResponsePendingPreparedStackProfileAwResource | undefined; /** * AWS-specific binding specification */ - stack?: SyncListResponseProfileAwStack | undefined; + stack?: SyncListResponsePendingPreparedStackProfileAwStack | undefined; }; /** * IAM effect. Defaults to Allow. */ -export const SyncListResponseProfileEffect = { +export const SyncListResponsePendingPreparedStackProfileEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type SyncListResponseProfileEffect = ClosedEnum< - typeof SyncListResponseProfileEffect +export type SyncListResponsePendingPreparedStackProfileEffect = ClosedEnum< + typeof SyncListResponsePendingPreparedStackProfileEffect >; /** * Grant permissions for a specific cloud platform */ -export type SyncListResponseProfileAwGrant = { +export type SyncListResponsePendingPreparedStackProfileAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2690,11 +2803,11 @@ export type SyncListResponseProfileAwGrant = { /** * AWS-specific platform permission configuration */ -export type SyncListResponseProfileAw = { +export type SyncListResponsePendingPreparedStackProfileAw = { /** * Generic binding configuration for permissions */ - binding: SyncListResponseProfileAwBinding; + binding: SyncListResponsePendingPreparedStackProfileAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2702,11 +2815,11 @@ export type SyncListResponseProfileAw = { /** * IAM effect. Defaults to Allow. */ - effect?: SyncListResponseProfileEffect | undefined; + effect?: SyncListResponsePendingPreparedStackProfileEffect | undefined; /** * Grant permissions for a specific cloud platform */ - grant: SyncListResponseProfileAwGrant; + grant: SyncListResponsePendingPreparedStackProfileAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2716,7 +2829,7 @@ export type SyncListResponseProfileAw = { /** * Azure-specific binding specification */ -export type SyncListResponseProfileAzureResource = { +export type SyncListResponsePendingPreparedStackProfileAzureResource = { /** * Scope (subscription/resource group/resource level) */ @@ -2726,7 +2839,7 @@ export type SyncListResponseProfileAzureResource = { /** * Azure-specific binding specification */ -export type SyncListResponseProfileAzureStack = { +export type SyncListResponsePendingPreparedStackProfileAzureStack = { /** * Scope (subscription/resource group/resource level) */ @@ -2736,21 +2849,23 @@ export type SyncListResponseProfileAzureStack = { /** * Generic binding configuration for permissions */ -export type SyncListResponseProfileAzureBinding = { +export type SyncListResponsePendingPreparedStackProfileAzureBinding = { /** * Azure-specific binding specification */ - resource?: SyncListResponseProfileAzureResource | undefined; + resource?: + | SyncListResponsePendingPreparedStackProfileAzureResource + | undefined; /** * Azure-specific binding specification */ - stack?: SyncListResponseProfileAzureStack | undefined; + stack?: SyncListResponsePendingPreparedStackProfileAzureStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncListResponseProfileAzureGrant = { +export type SyncListResponsePendingPreparedStackProfileAzureGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2776,11 +2891,11 @@ export type SyncListResponseProfileAzureGrant = { /** * Azure-specific platform permission configuration */ -export type SyncListResponseProfileAzure = { +export type SyncListResponsePendingPreparedStackProfileAzure = { /** * Generic binding configuration for permissions */ - binding: SyncListResponseProfileAzureBinding; + binding: SyncListResponsePendingPreparedStackProfileAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2788,7 +2903,7 @@ export type SyncListResponseProfileAzure = { /** * Grant permissions for a specific cloud platform */ - grant: SyncListResponseProfileAzureGrant; + grant: SyncListResponsePendingPreparedStackProfileAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2798,20 +2913,24 @@ export type SyncListResponseProfileAzure = { /** * GCP IAM condition */ -export type SyncListResponseProfileConditionResource = { +export type SyncListResponsePendingPreparedStackProfileConditionResource = { expression: string; title: string; }; -export type SyncListResponseProfileResourceConditionUnion = - | SyncListResponseProfileConditionResource +export type SyncListResponsePendingPreparedStackProfileResourceConditionUnion = + | SyncListResponsePendingPreparedStackProfileConditionResource | any; /** * GCP-specific binding specification */ -export type SyncListResponseProfileGcpResource = { - condition?: SyncListResponseProfileConditionResource | any | null | undefined; +export type SyncListResponsePendingPreparedStackProfileGcpResource = { + condition?: + | SyncListResponsePendingPreparedStackProfileConditionResource + | any + | null + | undefined; /** * Scope (project/resource level) */ @@ -2821,20 +2940,24 @@ export type SyncListResponseProfileGcpResource = { /** * GCP IAM condition */ -export type SyncListResponseProfileConditionStack = { +export type SyncListResponsePendingPreparedStackProfileConditionStack = { expression: string; title: string; }; -export type SyncListResponseProfileStackConditionUnion = - | SyncListResponseProfileConditionStack +export type SyncListResponsePendingPreparedStackProfileStackConditionUnion = + | SyncListResponsePendingPreparedStackProfileConditionStack | any; /** * GCP-specific binding specification */ -export type SyncListResponseProfileGcpStack = { - condition?: SyncListResponseProfileConditionStack | any | null | undefined; +export type SyncListResponsePendingPreparedStackProfileGcpStack = { + condition?: + | SyncListResponsePendingPreparedStackProfileConditionStack + | any + | null + | undefined; /** * Scope (project/resource level) */ @@ -2844,21 +2967,21 @@ export type SyncListResponseProfileGcpStack = { /** * Generic binding configuration for permissions */ -export type SyncListResponseProfileGcpBinding = { +export type SyncListResponsePendingPreparedStackProfileGcpBinding = { /** * GCP-specific binding specification */ - resource?: SyncListResponseProfileGcpResource | undefined; + resource?: SyncListResponsePendingPreparedStackProfileGcpResource | undefined; /** * GCP-specific binding specification */ - stack?: SyncListResponseProfileGcpStack | undefined; + stack?: SyncListResponsePendingPreparedStackProfileGcpStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncListResponseProfileGcpGrant = { +export type SyncListResponsePendingPreparedStackProfileGcpGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2884,11 +3007,11 @@ export type SyncListResponseProfileGcpGrant = { /** * GCP-specific platform permission configuration */ -export type SyncListResponseProfileGcp = { +export type SyncListResponsePendingPreparedStackProfileGcp = { /** * Generic binding configuration for permissions */ - binding: SyncListResponseProfileGcpBinding; + binding: SyncListResponsePendingPreparedStackProfileGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2896,7 +3019,7 @@ export type SyncListResponseProfileGcp = { /** * Grant permissions for a specific cloud platform */ - grant: SyncListResponseProfileGcpGrant; + grant: SyncListResponsePendingPreparedStackProfileGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2906,25 +3029,31 @@ export type SyncListResponseProfileGcp = { /** * Platform-specific permission configurations */ -export type SyncListResponseProfilePlatforms = { +export type SyncListResponsePendingPreparedStackProfilePlatforms = { /** * AWS permission configurations */ - aws?: Array | null | undefined; + aws?: Array | null | undefined; /** * Azure permission configurations */ - azure?: Array | null | undefined; + azure?: + | Array + | null + | undefined; /** * GCP permission configurations */ - gcp?: Array | null | undefined; + gcp?: + | Array + | null + | undefined; }; /** * A permission set that can be applied across different cloud platforms */ -export type SyncListResponseProfile = { +export type SyncListResponsePendingPreparedStackProfile = { /** * Human-readable description of what this permission set allows */ @@ -2936,25 +3065,27 @@ export type SyncListResponseProfile = { /** * Platform-specific permission configurations */ - platforms: SyncListResponseProfilePlatforms; + platforms: SyncListResponsePendingPreparedStackProfilePlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type SyncListResponseProfileUnion = SyncListResponseProfile | string; +export type SyncListResponsePendingPreparedStackProfileUnion = + | SyncListResponsePendingPreparedStackProfile + | string; /** * Combined permissions configuration that contains both profiles and management */ -export type SyncListResponsePermissions = { +export type SyncListResponsePendingPreparedStackPermissions = { /** * Management permissions configuration for stack management access */ management?: - | SyncListResponseManagement1 - | SyncListResponseManagement2 - | SyncListResponseManagementEnum + | SyncListResponsePendingPreparedStackManagement1 + | SyncListResponsePendingPreparedStackManagement2 + | SyncListResponsePendingPreparedStackManagementEnum | undefined; /** * Permission profiles that define access control for compute services @@ -2963,14 +3094,16 @@ export type SyncListResponsePermissions = { * Key is the profile name, value is the permission configuration */ profiles: { - [k: string]: { [k: string]: Array }; + [k: string]: { + [k: string]: Array; + }; }; }; /** * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ -export type SyncListResponsePreparedStackConfig = { +export type SyncListResponsePendingPreparedStackConfig = { /** * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. */ @@ -2985,7 +3118,7 @@ export type SyncListResponsePreparedStackConfig = { /** * Reference to a resource by its stable id and resource type. */ -export type SyncListResponsePreparedStackDependency = { +export type SyncListResponsePendingPreparedStackDependency = { id: string; /** * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. @@ -2996,33 +3129,44 @@ export type SyncListResponsePreparedStackDependency = { /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export const SyncListResponsePreparedStackLifecycle = { +export const SyncListResponsePendingPreparedStackLifecycle = { Frozen: "frozen", Live: "live", } as const; /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export type SyncListResponsePreparedStackLifecycle = ClosedEnum< - typeof SyncListResponsePreparedStackLifecycle +export type SyncListResponsePendingPreparedStackLifecycle = ClosedEnum< + typeof SyncListResponsePendingPreparedStackLifecycle >; -export type SyncListResponsePreparedStackResources = { +export type SyncListResponsePendingPreparedStackResources = { /** * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ - config: SyncListResponsePreparedStackConfig; + config: SyncListResponsePendingPreparedStackConfig; /** * Additional dependencies for this resource beyond those defined in the resource itself. * * @remarks * The total dependencies are: resource.get_dependencies() + this list */ - dependencies: Array; + dependencies: Array; + /** + * Id of the boolean stack input that decides whether this resource is + * + * @remarks + * created at all. `None` means always create it. + * + * Set by `.enabled(input)` in the SDK. Setup emitters render the resource + * conditionally on the matching template variable, so a deployer who says no + * never gets the resource, its outputs, or anything derived from it. + */ + enabledWhen?: string | null | undefined; /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ - lifecycle: SyncListResponsePreparedStackLifecycle; + lifecycle: SyncListResponsePendingPreparedStackLifecycle; /** * Enable remote bindings for this resource (BYOB use case). * @@ -3036,7 +3180,7 @@ export type SyncListResponsePreparedStackResources = { /** * Represents the target cloud platform. */ -export const SyncListResponseSupportedPlatform = { +export const SyncListResponsePendingPreparedStackSupportedPlatform = { Aws: "aws", Gcp: "gcp", Azure: "azure", @@ -3048,14 +3192,14 @@ export const SyncListResponseSupportedPlatform = { /** * Represents the target cloud platform. */ -export type SyncListResponseSupportedPlatform = ClosedEnum< - typeof SyncListResponseSupportedPlatform +export type SyncListResponsePendingPreparedStackSupportedPlatform = ClosedEnum< + typeof SyncListResponsePendingPreparedStackSupportedPlatform >; /** * A bag of resources, unaware of any cloud. */ -export type SyncListResponsePreparedStack = { +export type SyncListResponsePendingPreparedStack = { /** * Unique identifier for the stack */ @@ -3063,2896 +3207,7057 @@ export type SyncListResponsePreparedStack = { /** * Input definitions required before setup or deployment can proceed. */ - inputs?: Array | undefined; + inputs?: Array | undefined; /** * Combined permissions configuration that contains both profiles and management */ - permissions?: SyncListResponsePermissions | undefined; + permissions?: SyncListResponsePendingPreparedStackPermissions | undefined; /** * Map of resource IDs to their configurations and lifecycle settings */ - resources: { [k: string]: SyncListResponsePreparedStackResources }; + resources: { [k: string]: SyncListResponsePendingPreparedStackResources }; /** * Which platforms this stack supports. When None, all platforms are supported. */ supportedPlatforms?: - | Array + | Array | null | undefined; }; -export type SyncListResponsePreparedStackUnion = - | SyncListResponsePreparedStack +export type SyncListResponsePendingPreparedStackUnion = + | SyncListResponsePendingPreparedStack | any; -/** - * Runtime metadata for deployment state persistence - */ -export type SyncListResponseRuntimeMetadata = { +export const SyncListResponsePreparedStackTypeStringList = { + StringList: "stringList", +} as const; +export type SyncListResponsePreparedStackTypeStringList = ClosedEnum< + typeof SyncListResponsePreparedStackTypeStringList +>; + +export type SyncListResponsePreparedStackDefaultStringList = { + type: SyncListResponsePreparedStackTypeStringList; /** - * Hash of the environment variables snapshot that was last synced to the vault - * - * @remarks - * Used to avoid redundant sync operations during incremental deployment + * String list default. */ - lastSyncedEnvVarsHash?: string | null | undefined; + value: Array; +}; + +export const SyncListResponsePreparedStackTypeBoolean = { + Boolean: "boolean", +} as const; +export type SyncListResponsePreparedStackTypeBoolean = ClosedEnum< + typeof SyncListResponsePreparedStackTypeBoolean +>; + +export type SyncListResponsePreparedStackDefaultBoolean = { + type: SyncListResponsePreparedStackTypeBoolean; /** - * Exact vault keys owned by the deployment secret synchronizer. This - * - * @remarks - * inventory lets a later snapshot delete removed keys without listing or - * touching unrelated values in the same vault. + * Boolean default. */ - lastSyncedSecretNames?: Array | undefined; - preparedStack?: SyncListResponsePreparedStack | any | null | undefined; + value: boolean; +}; + +export const SyncListResponsePreparedStackTypeNumber = { + Number: "number", +} as const; +export type SyncListResponsePreparedStackTypeNumber = ClosedEnum< + typeof SyncListResponsePreparedStackTypeNumber +>; + +export type SyncListResponsePreparedStackDefaultNumber = { + type: SyncListResponsePreparedStackTypeNumber; /** - * Whether cross-account registry access has been successfully granted. - * - * @remarks - * Set to true after the manager successfully sets the ECR/GAR repo policy - * for this deployment's target account. Prevents redundant API calls on - * every reconcile tick. + * Number default. */ - registryAccessGranted?: boolean | undefined; + value: string; +}; + +export const SyncListResponsePreparedStackTypeString = { + String: "string", +} as const; +export type SyncListResponsePreparedStackTypeString = ClosedEnum< + typeof SyncListResponsePreparedStackTypeString +>; + +export type SyncListResponsePreparedStackDefaultString = { + type: SyncListResponsePreparedStackTypeString; + /** + * String default. + */ + value: string; }; +export type SyncListResponsePreparedStackDefaultUnion = + | SyncListResponsePreparedStackDefaultString + | SyncListResponsePreparedStackDefaultNumber + | SyncListResponsePreparedStackDefaultBoolean + | SyncListResponsePreparedStackDefaultStringList + | any; + /** - * Setup source that imported this deployment + * Environment variable handling for a stack input mapping. */ -export const SyncListResponseImportSource = { - Cloudformation: "cloudformation", - Terraform: "terraform", - Helm: "helm", +export const SyncListResponsePreparedStackTypeEnvEnum = { + Plain: "plain", + Secret: "secret", } as const; /** - * Setup source that imported this deployment + * Environment variable handling for a stack input mapping. */ -export type SyncListResponseImportSource = ClosedEnum< - typeof SyncListResponseImportSource +export type SyncListResponsePreparedStackTypeEnvEnum = ClosedEnum< + typeof SyncListResponsePreparedStackTypeEnvEnum >; +export type SyncListResponsePreparedStackTypeUnion = + | SyncListResponsePreparedStackTypeEnvEnum + | any; + /** - * Setup method that created the deployment record and owns setup-time resources. + * How a resolved stack input is injected into runtime environment variables. */ -export const SyncListResponseSetupMethod = { - Cloudformation: "cloudformation", - GoogleOauth: "google-oauth", - Terraform: "terraform", - Helm: "helm", - Cli: "cli", - Manual: "manual", +export type SyncListResponsePreparedStackEnv = { + /** + * Environment variable name. + */ + name: string; + /** + * Target resource IDs or patterns. None means every env-capable resource. + */ + targetResources?: Array | null | undefined; + type?: SyncListResponsePreparedStackTypeEnvEnum | any | null | undefined; +}; + +/** + * Primitive stack input kind. + */ +export const SyncListResponsePreparedStackKind = { + String: "string", + Secret: "secret", + Number: "number", + Integer: "integer", + Boolean: "boolean", + Enum: "enum", + StringList: "stringList", } as const; /** - * Setup method that created the deployment record and owns setup-time resources. + * Primitive stack input kind. */ -export type SyncListResponseSetupMethod = ClosedEnum< - typeof SyncListResponseSetupMethod +export type SyncListResponsePreparedStackKind = ClosedEnum< + typeof SyncListResponsePreparedStackKind >; /** - * Latest error information if the deployment is in a failed state + * Represents the target cloud platform. */ -export type SyncListResponseError = { +export const SyncListResponsePreparedStackPlatform = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", +} as const; +/** + * Represents the target cloud platform. + */ +export type SyncListResponsePreparedStackPlatform = ClosedEnum< + typeof SyncListResponsePreparedStackPlatform +>; + +/** + * Who can provide a stack input value. + */ +export const SyncListResponsePreparedStackProvidedBy = { + Developer: "developer", + Deployer: "deployer", +} as const; +/** + * Who can provide a stack input value. + */ +export type SyncListResponsePreparedStackProvidedBy = ClosedEnum< + typeof SyncListResponsePreparedStackProvidedBy +>; + +/** + * Portable stack input validation constraints. + */ +export type SyncListResponsePreparedStackValidation = { /** - * A unique identifier for the type of error. - * - * @remarks - * - * This should be a short, machine-readable string that can be used - * by clients to programmatically handle different error types. - * Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" + * Semantic format hint such as url. */ - code: string; + format?: string | null | undefined; /** - * Additional diagnostic information about the error context. - * - * @remarks - * - * This optional field can contain structured data providing more details - * about the error, such as validation errors, request parameters that - * caused the issue, or other relevant context information. + * Maximum number. */ - context?: any | null | undefined; + max?: string | null | undefined; /** - * Optional human-facing remediation hint. + * Maximum string-list items. */ - hint?: string | null | undefined; + maxItems?: number | null | undefined; /** - * HTTP status code for this error. - * - * @remarks - * - * Used when converting the error to an HTTP response. If None, falls back to - * the error type's default status code or 500. + * Maximum string length. */ - httpStatusCode?: number | null | undefined; + maxLength?: number | null | undefined; /** - * Indicates if this is an internal error that should not be exposed to users. - * - * @remarks - * - * When `true`, this error contains sensitive information or implementation - * details that should not be shown to end-users. Such errors should be - * logged for debugging but replaced with generic error messages in responses. + * Minimum number. */ - internal: boolean; + min?: string | null | undefined; /** - * Human-readable error message. - * - * @remarks - * - * This message should be clear and actionable for developers or end-users, - * providing context about what went wrong and potentially how to fix it. + * Minimum string-list items. */ - message: string; + minItems?: number | null | undefined; /** - * Indicates whether the operation that caused the error should be retried. - * - * @remarks - * - * When `true`, the error is transient and the operation might succeed - * if attempted again. When `false`, retrying the same operation is - * unlikely to succeed without changes. + * Minimum string length. */ - retryable: boolean; + minLength?: number | null | undefined; /** - * The underlying error that caused this error, creating an error chain. - * - * @remarks - * - * This allows for proper error propagation and debugging by maintaining - * the full context of how an error occurred through multiple layers - * of an application. + * Portable whole-value regex pattern. */ - source?: any | null | undefined; -}; - -export const SyncListResponsePlatformKubernetes = { - Kubernetes: "kubernetes", -} as const; -export type SyncListResponsePlatformKubernetes = ClosedEnum< - typeof SyncListResponsePlatformKubernetes ->; - -export type SyncListResponseManagementConfigKubernetes = { - platform: SyncListResponsePlatformKubernetes; + pattern?: string | null | undefined; + /** + * Allowed string enum values. + */ + values?: Array | null | undefined; }; -export const SyncListResponseManagementConfigPlatformAzure = { - Azure: "azure", -} as const; -export type SyncListResponseManagementConfigPlatformAzure = ClosedEnum< - typeof SyncListResponseManagementConfigPlatformAzure ->; +export type SyncListResponsePreparedStackValidationUnion = + | SyncListResponsePreparedStackValidation + | any; /** - * Azure management configuration extracted from stack settings + * Stack input definition serialized into a release stack. */ -export type SyncListResponseManagementConfigAzure = { +export type SyncListResponsePreparedStackInput = { + default?: + | SyncListResponsePreparedStackDefaultString + | SyncListResponsePreparedStackDefaultNumber + | SyncListResponsePreparedStackDefaultBoolean + | SyncListResponsePreparedStackDefaultStringList + | any + | null + | undefined; /** - * The managing Azure Tenant ID for cross-tenant access + * Human-facing helper text. */ - managingTenantId: string; + description: string; /** - * OIDC issuer URL trusted by the target-side managed identity. + * Runtime env-var mappings for v1 input resolution. */ - oidcIssuer: string; + env?: Array | undefined; /** - * OIDC subject claim trusted by the target-side managed identity. + * Stable input ID used by CLI/API calls. */ - oidcSubject: string; - platform: SyncListResponseManagementConfigPlatformAzure; + id: string; + /** + * Primitive stack input kind. + */ + kind: SyncListResponsePreparedStackKind; + /** + * Human-facing field label. + */ + label: string; + /** + * Example placeholder shown in UI. + */ + placeholder?: string | null | undefined; + /** + * Platforms where this input applies. + */ + platforms?: Array | null | undefined; + /** + * Who can provide this value. + */ + providedBy: Array; + /** + * Whether a resolved value is required before deployment can proceed. + */ + required: boolean; + validation?: SyncListResponsePreparedStackValidation | any | null | undefined; }; -export const SyncListResponseManagementConfigPlatformGcp = { - Gcp: "gcp", +export const SyncListResponsePreparedStackManagementEnum = { + Auto: "auto", } as const; -export type SyncListResponseManagementConfigPlatformGcp = ClosedEnum< - typeof SyncListResponseManagementConfigPlatformGcp +export type SyncListResponsePreparedStackManagementEnum = ClosedEnum< + typeof SyncListResponsePreparedStackManagementEnum >; /** - * GCP management configuration extracted from stack settings + * AWS-specific binding specification */ -export type SyncListResponseManagementConfigGcp = { +export type SyncListResponsePreparedStackOverrideAwResource = { /** - * Service account email for management roles + * Optional condition for additional filtering (rare) */ - serviceAccountEmail: string; - platform: SyncListResponseManagementConfigPlatformGcp; + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; }; -export const SyncListResponseManagementConfigPlatformAws = { - Aws: "aws", -} as const; -export type SyncListResponseManagementConfigPlatformAws = ClosedEnum< - typeof SyncListResponseManagementConfigPlatformAws ->; - /** - * AWS management configuration extracted from stack settings + * AWS-specific binding specification */ -export type SyncListResponseManagementConfigAws = { +export type SyncListResponsePreparedStackOverrideAwStack = { /** - * The managing AWS IAM role ARN that can assume cross-account roles + * Optional condition for additional filtering (rare) */ - managingRoleArn: string; - platform: SyncListResponseManagementConfigPlatformAws; + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; }; /** - * Management configuration for different cloud platforms. - * - * @remarks - * - * Platform-derived configuration for cross-account/cross-tenant access. - * This is NOT user-specified - it's derived from the Manager's ServiceAccount. + * Generic binding configuration for permissions */ -export type SyncListResponseManagementConfigUnion = - | SyncListResponseManagementConfigAzure - | SyncListResponseManagementConfigAws - | SyncListResponseManagementConfigGcp - | SyncListResponseManagementConfigKubernetes - | any; - -export type SyncListResponseDeployment = { +export type SyncListResponsePreparedStackOverrideAwBinding = { /** - * Unique identifier for the deployment. + * AWS-specific binding specification */ - id: string; + resource?: SyncListResponsePreparedStackOverrideAwResource | undefined; /** - * Deployment name. + * AWS-specific binding specification */ - name: string; + stack?: SyncListResponsePreparedStackOverrideAwStack | undefined; +}; + +/** + * IAM effect. Defaults to Allow. + */ +export const SyncListResponsePreparedStackOverrideEffect = { + Allow: "Allow", + Deny: "Deny", +} as const; +/** + * IAM effect. Defaults to Allow. + */ +export type SyncListResponsePreparedStackOverrideEffect = ClosedEnum< + typeof SyncListResponsePreparedStackOverrideEffect +>; + +/** + * Grant permissions for a specific cloud platform + */ +export type SyncListResponsePreparedStackOverrideAwGrant = { /** - * Public subdomain for auto-generated domains + * AWS IAM actions (only for AWS) */ - publicSubdomain?: string | null | undefined; + actions?: Array | null | undefined; /** - * Deployment status in the deployment lifecycle. - * - * @remarks - * - * For observe-only deployments with no release or stack state, `Running` - * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; - * resource health comes from inventory and resource heartbeat data. + * Azure actions (only for Azure) */ - status: SyncListResponseStatus; + dataActions?: Array | null | undefined; /** - * Unique identifier for the project. + * GCP permissions that require an exact residual custom role. */ - projectId: string; + permissions?: Array | null | undefined; /** - * Target platform for the deployment + * Provider predefined roles to bind directly. */ - platform: SyncListResponsePlatform; + predefinedRoles?: Array | null | undefined; /** - * Underlying cloud platform for Kubernetes deployments. + * GCP residual custom permissions to pair with predefined roles. */ - basePlatform?: SyncListResponseBasePlatform | null | undefined; + residualPermissions?: Array | null | undefined; +}; + +/** + * AWS-specific platform permission configuration + */ +export type SyncListResponsePreparedStackOverrideAw = { /** - * Cloud region or location for the deployment. + * Generic binding configuration for permissions */ - region?: string | null | undefined; + binding: SyncListResponsePreparedStackOverrideAwBinding; /** - * DeploymentState protocol version owned by the runtime/manager + * Short admin-facing description of why this entry exists. */ - deploymentProtocolVersion: number; + description?: string | null | undefined; /** - * ID of deployment group this deployment belongs to + * IAM effect. Defaults to Allow. */ - deploymentGroupId: string; + effect?: SyncListResponsePreparedStackOverrideEffect | undefined; /** - * Cloud environment information + * Grant permissions for a specific cloud platform */ - environmentInfo?: - | SyncListResponseEnvironmentInfoGcp - | SyncListResponseEnvironmentInfoAzure - | SyncListResponseEnvironmentInfoLocal - | SyncListResponseEnvironmentInfoAws - | SyncListResponseEnvironmentInfoTest - | any - | null - | undefined; + grant: SyncListResponsePreparedStackOverrideAwGrant; /** - * User-provided configuration (network, deployment model, approvals) + * Stable admin-facing label for this permission entry. */ - stackSettings: SyncListResponseStackSettings; + label?: string | null | undefined; +}; + +/** + * Azure-specific binding specification + */ +export type SyncListResponsePreparedStackOverrideAzureResource = { /** - * State of infrastructure components managed by this deployment + * Scope (subscription/resource group/resource level) */ - stackState?: SyncListResponseStackState | null | undefined; - /** - * Runtime metadata for deployment state persistence + scope: string; +}; + +/** + * Azure-specific binding specification + */ +export type SyncListResponsePreparedStackOverrideAzureStack = { + /** + * Scope (subscription/resource group/resource level) */ - runtimeMetadata?: SyncListResponseRuntimeMetadata | null | undefined; + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type SyncListResponsePreparedStackOverrideAzureBinding = { /** - * ID of the currently deployed release (actual state) + * Azure-specific binding specification */ - currentReleaseId?: string | null | undefined; + resource?: SyncListResponsePreparedStackOverrideAzureResource | undefined; /** - * ID of the desired release for deployment/update (desired state) + * Azure-specific binding specification */ - desiredReleaseId?: string | null | undefined; + stack?: SyncListResponsePreparedStackOverrideAzureStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type SyncListResponsePreparedStackOverrideAzureGrant = { /** - * ID of the pinned release + * AWS IAM actions (only for AWS) */ - pinnedReleaseId?: string | null | undefined; + actions?: Array | null | undefined; /** - * Setup source that imported this deployment + * Azure actions (only for Azure) */ - importSource?: SyncListResponseImportSource | null | undefined; + dataActions?: Array | null | undefined; /** - * Setup method that created the deployment record and owns setup-time resources. + * GCP permissions that require an exact residual custom role. */ - setupMethod?: SyncListResponseSetupMethod | null | undefined; + permissions?: Array | null | undefined; /** - * Setup method metadata needed to guide privileged teardown. + * Provider predefined roles to bind directly. */ - setupMetadata?: { [k: string]: any | null } | null | undefined; + predefinedRoles?: Array | null | undefined; /** - * Imported setup target for compatibility checks + * GCP residual custom permissions to pair with predefined roles. */ - setupTarget?: string | null | undefined; + residualPermissions?: Array | null | undefined; +}; + +/** + * Azure-specific platform permission configuration + */ +export type SyncListResponsePreparedStackOverrideAzure = { /** - * Imported setup compatibility fingerprint + * Generic binding configuration for permissions */ - setupFingerprint?: string | null | undefined; + binding: SyncListResponsePreparedStackOverrideAzureBinding; /** - * Imported setup fingerprint algorithm version + * Short admin-facing description of why this entry exists. */ - setupFingerprintVersion?: number | null | undefined; + description?: string | null | undefined; /** - * Display-only scope reported by the Operator manifest + * Grant permissions for a specific cloud platform */ - operatorScope?: string | null | undefined; + grant: SyncListResponsePreparedStackOverrideAzureGrant; /** - * Display-only permission tier reported by the Operator manifest + * Stable admin-facing label for this permission entry. */ - operatorPermission?: string | null | undefined; + label?: string | null | undefined; +}; + +/** + * GCP IAM condition + */ +export type SyncListResponsePreparedStackOverrideConditionResource = { + expression: string; + title: string; +}; + +export type SyncListResponsePreparedStackOverrideResourceConditionUnion = + | SyncListResponsePreparedStackOverrideConditionResource + | any; + +/** + * GCP-specific binding specification + */ +export type SyncListResponsePreparedStackOverrideGcpResource = { + condition?: + | SyncListResponsePreparedStackOverrideConditionResource + | any + | null + | undefined; /** - * Version reported by the Operator + * Scope (project/resource level) */ - operatorVersion?: string | null | undefined; + scope: string; +}; + +/** + * GCP IAM condition + */ +export type SyncListResponsePreparedStackOverrideConditionStack = { + expression: string; + title: string; +}; + +export type SyncListResponsePreparedStackOverrideStackConditionUnion = + | SyncListResponsePreparedStackOverrideConditionStack + | any; + +/** + * GCP-specific binding specification + */ +export type SyncListResponsePreparedStackOverrideGcpStack = { + condition?: + | SyncListResponsePreparedStackOverrideConditionStack + | any + | null + | undefined; /** - * Capability state reported by the Operator + * Scope (project/resource level) */ - capabilities?: Array | null | undefined; + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type SyncListResponsePreparedStackOverrideGcpBinding = { /** - * Whether a retry has been requested for a failed deployment + * GCP-specific binding specification */ - retryRequested: boolean; + resource?: SyncListResponsePreparedStackOverrideGcpResource | undefined; /** - * Timestamp of the last received heartbeat from the deployment + * GCP-specific binding specification */ - lastHeartbeatAt?: Date | null | undefined; + stack?: SyncListResponsePreparedStackOverrideGcpStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type SyncListResponsePreparedStackOverrideGcpGrant = { /** - * Latest error information if the deployment is in a failed state + * AWS IAM actions (only for AWS) */ - error?: SyncListResponseError | null | undefined; - createdAt: Date; - updatedAt: Date; - managerId: string; + actions?: Array | null | undefined; /** - * Unique identifier for the workspace. + * Azure actions (only for Azure) */ - workspaceId: string; - userEnvironmentVariables: Array | null; + dataActions?: Array | null | undefined; /** - * Management configuration for different cloud platforms. - * - * @remarks - * - * Platform-derived configuration for cross-account/cross-tenant access. - * This is NOT user-specified - it's derived from the Manager's ServiceAccount. + * GCP permissions that require an exact residual custom role. */ - managementConfig?: - | SyncListResponseManagementConfigAzure - | SyncListResponseManagementConfigAws - | SyncListResponseManagementConfigGcp - | SyncListResponseManagementConfigKubernetes - | any - | null - | undefined; - deploymentToken?: string | null | undefined; - lockedBy?: string | null | undefined; - lockedAt?: Date | null | undefined; + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; }; /** - * Full deployment records for manager operation + * GCP-specific platform permission configuration */ -export type SyncListResponse = { - deployments: Array; +export type SyncListResponsePreparedStackOverrideGcp = { + /** + * Generic binding configuration for permissions + */ + binding: SyncListResponsePreparedStackOverrideGcpBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncListResponsePreparedStackOverrideGcpGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; }; -/** @internal */ -export const SyncListResponseStatus$inboundSchema: z.ZodEnum< - typeof SyncListResponseStatus -> = z.enum(SyncListResponseStatus); +/** + * Platform-specific permission configurations + */ +export type SyncListResponsePreparedStackOverridePlatforms = { + /** + * AWS permission configurations + */ + aws?: Array | null | undefined; + /** + * Azure permission configurations + */ + azure?: Array | null | undefined; + /** + * GCP permission configurations + */ + gcp?: Array | null | undefined; +}; -/** @internal */ -export const SyncListResponsePlatform$inboundSchema: z.ZodEnum< - typeof SyncListResponsePlatform -> = z.enum(SyncListResponsePlatform); +/** + * A permission set that can be applied across different cloud platforms + */ +export type SyncListResponsePreparedStackOverride = { + /** + * Human-readable description of what this permission set allows + */ + description: string; + /** + * Unique identifier for the permission set (e.g., "storage/data-read") + */ + id: string; + /** + * Platform-specific permission configurations + */ + platforms: SyncListResponsePreparedStackOverridePlatforms; +}; -/** @internal */ -export const SyncListResponseBasePlatform$inboundSchema: z.ZodEnum< - typeof SyncListResponseBasePlatform -> = z.enum(SyncListResponseBasePlatform); +/** + * Reference to a permission set - either by name or inline definition + */ +export type SyncListResponsePreparedStackOverrideUnion = + | SyncListResponsePreparedStackOverride + | string; -/** @internal */ -export const SyncListResponsePlatformTest$inboundSchema: z.ZodEnum< - typeof SyncListResponsePlatformTest -> = z.enum(SyncListResponsePlatformTest); +export type SyncListResponsePreparedStackManagement2 = { + /** + * Permission profile that maps resources to permission sets + * + * @remarks + * Key can be "*" for all resources or resource name for specific resource + */ + override: { + [k: string]: Array; + }; +}; -/** @internal */ -export const SyncListResponseEnvironmentInfoTest$inboundSchema: z.ZodType< - SyncListResponseEnvironmentInfoTest, - unknown -> = z.object({ - testId: z.string(), - platform: SyncListResponsePlatformTest$inboundSchema, -}); +/** + * AWS-specific binding specification + */ +export type SyncListResponsePreparedStackExtendAwResource = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; + +/** + * AWS-specific binding specification + */ +export type SyncListResponsePreparedStackExtendAwStack = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; + +/** + * Generic binding configuration for permissions + */ +export type SyncListResponsePreparedStackExtendAwBinding = { + /** + * AWS-specific binding specification + */ + resource?: SyncListResponsePreparedStackExtendAwResource | undefined; + /** + * AWS-specific binding specification + */ + stack?: SyncListResponsePreparedStackExtendAwStack | undefined; +}; + +/** + * IAM effect. Defaults to Allow. + */ +export const SyncListResponsePreparedStackExtendEffect = { + Allow: "Allow", + Deny: "Deny", +} as const; +/** + * IAM effect. Defaults to Allow. + */ +export type SyncListResponsePreparedStackExtendEffect = ClosedEnum< + typeof SyncListResponsePreparedStackExtendEffect +>; + +/** + * Grant permissions for a specific cloud platform + */ +export type SyncListResponsePreparedStackExtendAwGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * AWS-specific platform permission configuration + */ +export type SyncListResponsePreparedStackExtendAw = { + /** + * Generic binding configuration for permissions + */ + binding: SyncListResponsePreparedStackExtendAwBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * IAM effect. Defaults to Allow. + */ + effect?: SyncListResponsePreparedStackExtendEffect | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncListResponsePreparedStackExtendAwGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Azure-specific binding specification + */ +export type SyncListResponsePreparedStackExtendAzureResource = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; + +/** + * Azure-specific binding specification + */ +export type SyncListResponsePreparedStackExtendAzureStack = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type SyncListResponsePreparedStackExtendAzureBinding = { + /** + * Azure-specific binding specification + */ + resource?: SyncListResponsePreparedStackExtendAzureResource | undefined; + /** + * Azure-specific binding specification + */ + stack?: SyncListResponsePreparedStackExtendAzureStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type SyncListResponsePreparedStackExtendAzureGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * Azure-specific platform permission configuration + */ +export type SyncListResponsePreparedStackExtendAzure = { + /** + * Generic binding configuration for permissions + */ + binding: SyncListResponsePreparedStackExtendAzureBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncListResponsePreparedStackExtendAzureGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * GCP IAM condition + */ +export type SyncListResponsePreparedStackExtendConditionResource = { + expression: string; + title: string; +}; + +export type SyncListResponsePreparedStackExtendResourceConditionUnion = + | SyncListResponsePreparedStackExtendConditionResource + | any; + +/** + * GCP-specific binding specification + */ +export type SyncListResponsePreparedStackExtendGcpResource = { + condition?: + | SyncListResponsePreparedStackExtendConditionResource + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + +/** + * GCP IAM condition + */ +export type SyncListResponsePreparedStackExtendConditionStack = { + expression: string; + title: string; +}; + +export type SyncListResponsePreparedStackExtendStackConditionUnion = + | SyncListResponsePreparedStackExtendConditionStack + | any; + +/** + * GCP-specific binding specification + */ +export type SyncListResponsePreparedStackExtendGcpStack = { + condition?: + | SyncListResponsePreparedStackExtendConditionStack + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type SyncListResponsePreparedStackExtendGcpBinding = { + /** + * GCP-specific binding specification + */ + resource?: SyncListResponsePreparedStackExtendGcpResource | undefined; + /** + * GCP-specific binding specification + */ + stack?: SyncListResponsePreparedStackExtendGcpStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type SyncListResponsePreparedStackExtendGcpGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * GCP-specific platform permission configuration + */ +export type SyncListResponsePreparedStackExtendGcp = { + /** + * Generic binding configuration for permissions + */ + binding: SyncListResponsePreparedStackExtendGcpBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncListResponsePreparedStackExtendGcpGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Platform-specific permission configurations + */ +export type SyncListResponsePreparedStackExtendPlatforms = { + /** + * AWS permission configurations + */ + aws?: Array | null | undefined; + /** + * Azure permission configurations + */ + azure?: Array | null | undefined; + /** + * GCP permission configurations + */ + gcp?: Array | null | undefined; +}; + +/** + * A permission set that can be applied across different cloud platforms + */ +export type SyncListResponsePreparedStackExtend = { + /** + * Human-readable description of what this permission set allows + */ + description: string; + /** + * Unique identifier for the permission set (e.g., "storage/data-read") + */ + id: string; + /** + * Platform-specific permission configurations + */ + platforms: SyncListResponsePreparedStackExtendPlatforms; +}; + +/** + * Reference to a permission set - either by name or inline definition + */ +export type SyncListResponsePreparedStackExtendUnion = + | SyncListResponsePreparedStackExtend + | string; + +export type SyncListResponsePreparedStackManagement1 = { + /** + * Permission profile that maps resources to permission sets + * + * @remarks + * Key can be "*" for all resources or resource name for specific resource + */ + extend: { [k: string]: Array }; +}; + +/** + * Management permissions configuration for stack management access + */ +export type SyncListResponsePreparedStackManagementUnion = + | SyncListResponsePreparedStackManagement1 + | SyncListResponsePreparedStackManagement2 + | SyncListResponsePreparedStackManagementEnum; + +/** + * AWS-specific binding specification + */ +export type SyncListResponsePreparedStackProfileAwResource = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; + +/** + * AWS-specific binding specification + */ +export type SyncListResponsePreparedStackProfileAwStack = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; + +/** + * Generic binding configuration for permissions + */ +export type SyncListResponsePreparedStackProfileAwBinding = { + /** + * AWS-specific binding specification + */ + resource?: SyncListResponsePreparedStackProfileAwResource | undefined; + /** + * AWS-specific binding specification + */ + stack?: SyncListResponsePreparedStackProfileAwStack | undefined; +}; + +/** + * IAM effect. Defaults to Allow. + */ +export const SyncListResponsePreparedStackProfileEffect = { + Allow: "Allow", + Deny: "Deny", +} as const; +/** + * IAM effect. Defaults to Allow. + */ +export type SyncListResponsePreparedStackProfileEffect = ClosedEnum< + typeof SyncListResponsePreparedStackProfileEffect +>; + +/** + * Grant permissions for a specific cloud platform + */ +export type SyncListResponsePreparedStackProfileAwGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * AWS-specific platform permission configuration + */ +export type SyncListResponsePreparedStackProfileAw = { + /** + * Generic binding configuration for permissions + */ + binding: SyncListResponsePreparedStackProfileAwBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * IAM effect. Defaults to Allow. + */ + effect?: SyncListResponsePreparedStackProfileEffect | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncListResponsePreparedStackProfileAwGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Azure-specific binding specification + */ +export type SyncListResponsePreparedStackProfileAzureResource = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; + +/** + * Azure-specific binding specification + */ +export type SyncListResponsePreparedStackProfileAzureStack = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type SyncListResponsePreparedStackProfileAzureBinding = { + /** + * Azure-specific binding specification + */ + resource?: SyncListResponsePreparedStackProfileAzureResource | undefined; + /** + * Azure-specific binding specification + */ + stack?: SyncListResponsePreparedStackProfileAzureStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type SyncListResponsePreparedStackProfileAzureGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * Azure-specific platform permission configuration + */ +export type SyncListResponsePreparedStackProfileAzure = { + /** + * Generic binding configuration for permissions + */ + binding: SyncListResponsePreparedStackProfileAzureBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncListResponsePreparedStackProfileAzureGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * GCP IAM condition + */ +export type SyncListResponsePreparedStackProfileConditionResource = { + expression: string; + title: string; +}; + +export type SyncListResponsePreparedStackProfileResourceConditionUnion = + | SyncListResponsePreparedStackProfileConditionResource + | any; + +/** + * GCP-specific binding specification + */ +export type SyncListResponsePreparedStackProfileGcpResource = { + condition?: + | SyncListResponsePreparedStackProfileConditionResource + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + +/** + * GCP IAM condition + */ +export type SyncListResponsePreparedStackProfileConditionStack = { + expression: string; + title: string; +}; + +export type SyncListResponsePreparedStackProfileStackConditionUnion = + | SyncListResponsePreparedStackProfileConditionStack + | any; + +/** + * GCP-specific binding specification + */ +export type SyncListResponsePreparedStackProfileGcpStack = { + condition?: + | SyncListResponsePreparedStackProfileConditionStack + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type SyncListResponsePreparedStackProfileGcpBinding = { + /** + * GCP-specific binding specification + */ + resource?: SyncListResponsePreparedStackProfileGcpResource | undefined; + /** + * GCP-specific binding specification + */ + stack?: SyncListResponsePreparedStackProfileGcpStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type SyncListResponsePreparedStackProfileGcpGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * GCP-specific platform permission configuration + */ +export type SyncListResponsePreparedStackProfileGcp = { + /** + * Generic binding configuration for permissions + */ + binding: SyncListResponsePreparedStackProfileGcpBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncListResponsePreparedStackProfileGcpGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Platform-specific permission configurations + */ +export type SyncListResponsePreparedStackProfilePlatforms = { + /** + * AWS permission configurations + */ + aws?: Array | null | undefined; + /** + * Azure permission configurations + */ + azure?: Array | null | undefined; + /** + * GCP permission configurations + */ + gcp?: Array | null | undefined; +}; + +/** + * A permission set that can be applied across different cloud platforms + */ +export type SyncListResponsePreparedStackProfile = { + /** + * Human-readable description of what this permission set allows + */ + description: string; + /** + * Unique identifier for the permission set (e.g., "storage/data-read") + */ + id: string; + /** + * Platform-specific permission configurations + */ + platforms: SyncListResponsePreparedStackProfilePlatforms; +}; + +/** + * Reference to a permission set - either by name or inline definition + */ +export type SyncListResponsePreparedStackProfileUnion = + | SyncListResponsePreparedStackProfile + | string; + +/** + * Combined permissions configuration that contains both profiles and management + */ +export type SyncListResponsePreparedStackPermissions = { + /** + * Management permissions configuration for stack management access + */ + management?: + | SyncListResponsePreparedStackManagement1 + | SyncListResponsePreparedStackManagement2 + | SyncListResponsePreparedStackManagementEnum + | undefined; + /** + * Permission profiles that define access control for compute services + * + * @remarks + * Key is the profile name, value is the permission configuration + */ + profiles: { + [k: string]: { + [k: string]: Array; + }; + }; +}; + +/** + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + */ +export type SyncListResponsePreparedStackConfig = { + /** + * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. + */ + id: string; + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + type: string; + additionalProperties?: { [k: string]: any | null } | undefined; +}; + +/** + * Reference to a resource by its stable id and resource type. + */ +export type SyncListResponsePreparedStackDependency = { + id: string; + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + type: string; +}; + +/** + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ +export const SyncListResponsePreparedStackLifecycle = { + Frozen: "frozen", + Live: "live", +} as const; +/** + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ +export type SyncListResponsePreparedStackLifecycle = ClosedEnum< + typeof SyncListResponsePreparedStackLifecycle +>; + +export type SyncListResponsePreparedStackResources = { + /** + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + */ + config: SyncListResponsePreparedStackConfig; + /** + * Additional dependencies for this resource beyond those defined in the resource itself. + * + * @remarks + * The total dependencies are: resource.get_dependencies() + this list + */ + dependencies: Array; + /** + * Id of the boolean stack input that decides whether this resource is + * + * @remarks + * created at all. `None` means always create it. + * + * Set by `.enabled(input)` in the SDK. Setup emitters render the resource + * conditionally on the matching template variable, so a deployer who says no + * never gets the resource, its outputs, or anything derived from it. + */ + enabledWhen?: string | null | undefined; + /** + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ + lifecycle: SyncListResponsePreparedStackLifecycle; + /** + * Enable remote bindings for this resource (BYOB use case). + * + * @remarks + * When true, binding params are synced to StackState's `remote_binding_params`. + * Default: false (prevents sensitive data in synced state). + */ + remoteAccess?: boolean | undefined; +}; + +/** + * Represents the target cloud platform. + */ +export const SyncListResponsePreparedStackSupportedPlatform = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", +} as const; +/** + * Represents the target cloud platform. + */ +export type SyncListResponsePreparedStackSupportedPlatform = ClosedEnum< + typeof SyncListResponsePreparedStackSupportedPlatform +>; + +/** + * A bag of resources, unaware of any cloud. + */ +export type SyncListResponsePreparedStack = { + /** + * Unique identifier for the stack + */ + id: string; + /** + * Input definitions required before setup or deployment can proceed. + */ + inputs?: Array | undefined; + /** + * Combined permissions configuration that contains both profiles and management + */ + permissions?: SyncListResponsePreparedStackPermissions | undefined; + /** + * Map of resource IDs to their configurations and lifecycle settings + */ + resources: { [k: string]: SyncListResponsePreparedStackResources }; + /** + * Which platforms this stack supports. When None, all platforms are supported. + */ + supportedPlatforms?: + | Array + | null + | undefined; +}; + +export type SyncListResponsePreparedStackUnion = + | SyncListResponsePreparedStack + | any; + +/** + * One-shot authority for a setup re-import to replace setup-owned resources. + */ +export type SyncListResponseSetupUpdateAuthorization = { + /** + * Frozen resource projection from the last successful deployment. + */ + baselineFrozenDigest: string; + /** + * Unique revision used by persistence layers for compare-and-swap updates. + */ + nonce: string; + /** + * Release whose stack was prepared by setup. + */ + releaseId: string; + /** + * Exact setup artifact revision that authored this authority. + */ + setupFingerprint: string; + /** + * Setup fingerprint contract version. + */ + setupFingerprintVersion: number; + /** + * Stable setup target recorded on the imported deployment. + */ + setupTarget: string; + /** + * Frozen resource projection prepared by the setup re-import. + */ + targetFrozenDigest: string; +}; + +export type SyncListResponseSetupUpdateAuthorizationUnion = + | SyncListResponseSetupUpdateAuthorization + | any; + +/** + * Runtime metadata for deployment state persistence + */ +export type SyncListResponseRuntimeMetadata = { + /** + * Actor that owns structural work during the initial setup phase. + */ + initialSetupAuthority?: SyncListResponseInitialSetupAuthority | undefined; + /** + * Hash of the environment variables snapshot that was last synced to the vault + * + * @remarks + * Used to avoid redundant sync operations during incremental deployment + */ + lastSyncedEnvVarsHash?: string | null | undefined; + /** + * Exact vault keys owned by the deployment secret synchronizer. This + * + * @remarks + * inventory lets a later snapshot delete removed keys without listing or + * touching unrelated values in the same vault. + */ + lastSyncedSecretNames?: Array | undefined; + pendingPreparedStack?: + | SyncListResponsePendingPreparedStack + | any + | null + | undefined; + /** + * Canonical resolved answers for inputs that gate Frozen resources, + * + * @remarks + * keyed by input id, recorded when the deployment is created or its + * setup import registers. + * + * A frozen gate's answer is fixed for the deployment's lifetime: the + * update path refuses input values that conflict with these, and a Live + * resource sharing such an input resolves the persisted answer forever. + */ + persistedGateAnswers?: { [k: string]: boolean } | undefined; + preparedStack?: SyncListResponsePreparedStack | any | null | undefined; + /** + * Whether cross-account registry access has been successfully granted. + * + * @remarks + * Set to true after the manager successfully sets the ECR/GAR repo policy + * for this deployment's target account. Prevents redundant API calls on + * every reconcile tick. + */ + registryAccessGranted?: boolean | undefined; + setupUpdateAuthorization?: + | SyncListResponseSetupUpdateAuthorization + | any + | null + | undefined; +}; + +/** + * Setup source that imported this deployment + */ +export const SyncListResponseImportSource = { + Cloudformation: "cloudformation", + Terraform: "terraform", + Helm: "helm", +} as const; +/** + * Setup source that imported this deployment + */ +export type SyncListResponseImportSource = ClosedEnum< + typeof SyncListResponseImportSource +>; + +/** + * Setup method that created the deployment record and owns setup-time resources. + */ +export const SyncListResponseSetupMethod = { + Cloudformation: "cloudformation", + GoogleOauth: "google-oauth", + Terraform: "terraform", + Helm: "helm", + Cli: "cli", + Manual: "manual", +} as const; +/** + * Setup method that created the deployment record and owns setup-time resources. + */ +export type SyncListResponseSetupMethod = ClosedEnum< + typeof SyncListResponseSetupMethod +>; + +/** + * Latest error information if the deployment is in a failed state + */ +export type SyncListResponseError = { + /** + * A unique identifier for the type of error. + * + * @remarks + * + * This should be a short, machine-readable string that can be used + * by clients to programmatically handle different error types. + * Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" + */ + code: string; + /** + * Additional diagnostic information about the error context. + * + * @remarks + * + * This optional field can contain structured data providing more details + * about the error, such as validation errors, request parameters that + * caused the issue, or other relevant context information. + */ + context?: any | null | undefined; + /** + * Optional human-facing remediation hint. + */ + hint?: string | null | undefined; + /** + * HTTP status code for this error. + * + * @remarks + * + * Used when converting the error to an HTTP response. If None, falls back to + * the error type's default status code or 500. + */ + httpStatusCode?: number | null | undefined; + /** + * Indicates if this is an internal error that should not be exposed to users. + * + * @remarks + * + * When `true`, this error contains sensitive information or implementation + * details that should not be shown to end-users. Such errors should be + * logged for debugging but replaced with generic error messages in responses. + */ + internal: boolean; + /** + * Human-readable error message. + * + * @remarks + * + * This message should be clear and actionable for developers or end-users, + * providing context about what went wrong and potentially how to fix it. + */ + message: string; + /** + * Indicates whether the operation that caused the error should be retried. + * + * @remarks + * + * When `true`, the error is transient and the operation might succeed + * if attempted again. When `false`, retrying the same operation is + * unlikely to succeed without changes. + */ + retryable: boolean; + /** + * The underlying error that caused this error, creating an error chain. + * + * @remarks + * + * This allows for proper error propagation and debugging by maintaining + * the full context of how an error occurred through multiple layers + * of an application. + */ + source?: any | null | undefined; +}; + +export const SyncListResponsePlatformKubernetes = { + Kubernetes: "kubernetes", +} as const; +export type SyncListResponsePlatformKubernetes = ClosedEnum< + typeof SyncListResponsePlatformKubernetes +>; + +export type SyncListResponseManagementConfigKubernetes = { + platform: SyncListResponsePlatformKubernetes; +}; + +export const SyncListResponseManagementConfigPlatformAzure = { + Azure: "azure", +} as const; +export type SyncListResponseManagementConfigPlatformAzure = ClosedEnum< + typeof SyncListResponseManagementConfigPlatformAzure +>; + +/** + * Azure management configuration extracted from stack settings + */ +export type SyncListResponseManagementConfigAzure = { + /** + * The managing Azure Tenant ID for cross-tenant access + */ + managingTenantId: string; + /** + * OIDC issuer URL trusted by the target-side managed identity. + */ + oidcIssuer: string; + /** + * OIDC subject claim trusted by the target-side managed identity. + */ + oidcSubject: string; + platform: SyncListResponseManagementConfigPlatformAzure; +}; + +export const SyncListResponseManagementConfigPlatformGcp = { + Gcp: "gcp", +} as const; +export type SyncListResponseManagementConfigPlatformGcp = ClosedEnum< + typeof SyncListResponseManagementConfigPlatformGcp +>; + +/** + * GCP management configuration extracted from stack settings + */ +export type SyncListResponseManagementConfigGcp = { + /** + * Service account email for management roles + */ + serviceAccountEmail: string; + platform: SyncListResponseManagementConfigPlatformGcp; +}; + +export const SyncListResponseManagementConfigPlatformAws = { + Aws: "aws", +} as const; +export type SyncListResponseManagementConfigPlatformAws = ClosedEnum< + typeof SyncListResponseManagementConfigPlatformAws +>; + +/** + * AWS management configuration extracted from stack settings + */ +export type SyncListResponseManagementConfigAws = { + /** + * The managing AWS IAM role ARN that can assume cross-account roles + */ + managingRoleArn: string; + platform: SyncListResponseManagementConfigPlatformAws; +}; + +/** + * Management configuration for different cloud platforms. + * + * @remarks + * + * Platform-derived configuration for cross-account/cross-tenant access. + * This is NOT user-specified - it's derived from the Manager's ServiceAccount. + */ +export type SyncListResponseManagementConfigUnion = + | SyncListResponseManagementConfigAzure + | SyncListResponseManagementConfigAws + | SyncListResponseManagementConfigGcp + | SyncListResponseManagementConfigKubernetes + | any; + +export type SyncListResponseDeployment = { + /** + * Unique identifier for the deployment. + */ + id: string; + /** + * Deployment name. + */ + name: string; + /** + * Public subdomain for auto-generated domains + */ + publicSubdomain?: string | null | undefined; + /** + * Deployment status in the deployment lifecycle. + * + * @remarks + * + * For observe-only deployments with no release or stack state, `Running` + * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; + * resource health comes from inventory and resource heartbeat data. + */ + status: SyncListResponseStatus; + /** + * Unique identifier for the project. + */ + projectId: string; + /** + * Target platform for the deployment + */ + platform: SyncListResponsePlatform; + /** + * Underlying cloud platform for Kubernetes deployments. + */ + basePlatform?: SyncListResponseBasePlatform | null | undefined; + /** + * Cloud region or location for the deployment. + */ + region?: string | null | undefined; + /** + * DeploymentState protocol version owned by the runtime/manager + */ + deploymentProtocolVersion: number; + /** + * ID of deployment group this deployment belongs to + */ + deploymentGroupId: string; + /** + * Cloud environment information + */ + environmentInfo?: + | SyncListResponseEnvironmentInfoGcp + | SyncListResponseEnvironmentInfoAzure + | SyncListResponseEnvironmentInfoLocal + | SyncListResponseEnvironmentInfoAws + | SyncListResponseEnvironmentInfoTest + | any + | null + | undefined; + /** + * User-provided configuration (network, deployment model, approvals) + */ + stackSettings: SyncListResponseStackSettings; + /** + * State of infrastructure components managed by this deployment + */ + stackState?: SyncListResponseStackState | null | undefined; + /** + * Runtime metadata for deployment state persistence + */ + runtimeMetadata?: SyncListResponseRuntimeMetadata | null | undefined; + /** + * ID of the currently deployed release (actual state) + */ + currentReleaseId?: string | null | undefined; + /** + * ID of the desired release for deployment/update (desired state) + */ + desiredReleaseId?: string | null | undefined; + /** + * ID of the pinned release + */ + pinnedReleaseId?: string | null | undefined; + releaseChannel: string; + /** + * Setup source that imported this deployment + */ + importSource?: SyncListResponseImportSource | null | undefined; + /** + * Setup method that created the deployment record and owns setup-time resources. + */ + setupMethod?: SyncListResponseSetupMethod | null | undefined; + /** + * Setup method metadata needed to guide privileged teardown. + */ + setupMetadata?: { [k: string]: any | null } | null | undefined; + /** + * Imported setup target for compatibility checks + */ + setupTarget?: string | null | undefined; + /** + * Imported setup compatibility fingerprint + */ + setupFingerprint?: string | null | undefined; + /** + * Imported setup fingerprint algorithm version + */ + setupFingerprintVersion?: number | null | undefined; + /** + * Display-only scope reported by the Operator manifest + */ + operatorScope?: string | null | undefined; + /** + * Display-only permission tier reported by the Operator manifest + */ + operatorPermission?: string | null | undefined; + /** + * Version reported by the Operator + */ + operatorVersion?: string | null | undefined; + /** + * Capability state reported by the Operator + */ + capabilities?: Array | null | undefined; + /** + * Whether a retry has been requested for a failed deployment + */ + retryRequested: boolean; + /** + * Timestamp of the last received heartbeat from the deployment + */ + lastHeartbeatAt?: Date | null | undefined; + /** + * Latest error information if the deployment is in a failed state + */ + error?: SyncListResponseError | null | undefined; + createdAt: Date; + updatedAt: Date; + managerId: string; + /** + * Unique identifier for the workspace. + */ + workspaceId: string; + userEnvironmentVariables: Array | null; + /** + * Management configuration for different cloud platforms. + * + * @remarks + * + * Platform-derived configuration for cross-account/cross-tenant access. + * This is NOT user-specified - it's derived from the Manager's ServiceAccount. + */ + managementConfig?: + | SyncListResponseManagementConfigAzure + | SyncListResponseManagementConfigAws + | SyncListResponseManagementConfigGcp + | SyncListResponseManagementConfigKubernetes + | any + | null + | undefined; + deploymentToken?: string | null | undefined; + lockedBy?: string | null | undefined; + lockedAt?: Date | null | undefined; +}; + +/** + * Full deployment records for manager operation + */ +export type SyncListResponse = { + deployments: Array; +}; + +/** @internal */ +export const SyncListResponseStatus$inboundSchema: z.ZodEnum< + typeof SyncListResponseStatus +> = z.enum(SyncListResponseStatus); + +/** @internal */ +export const SyncListResponsePlatform$inboundSchema: z.ZodEnum< + typeof SyncListResponsePlatform +> = z.enum(SyncListResponsePlatform); + +/** @internal */ +export const SyncListResponseBasePlatform$inboundSchema: z.ZodEnum< + typeof SyncListResponseBasePlatform +> = z.enum(SyncListResponseBasePlatform); + +/** @internal */ +export const SyncListResponsePlatformTest$inboundSchema: z.ZodEnum< + typeof SyncListResponsePlatformTest +> = z.enum(SyncListResponsePlatformTest); + +/** @internal */ +export const SyncListResponseEnvironmentInfoTest$inboundSchema: z.ZodType< + SyncListResponseEnvironmentInfoTest, + unknown +> = z.object({ + testId: z.string(), + platform: SyncListResponsePlatformTest$inboundSchema, +}); + +export function syncListResponseEnvironmentInfoTestFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + SyncListResponseEnvironmentInfoTest$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseEnvironmentInfoTest' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponsePlatformLocal$inboundSchema: z.ZodEnum< + typeof SyncListResponsePlatformLocal +> = z.enum(SyncListResponsePlatformLocal); + +/** @internal */ +export const SyncListResponseEnvironmentInfoLocal$inboundSchema: z.ZodType< + SyncListResponseEnvironmentInfoLocal, + unknown +> = z.object({ + arch: z.string(), + hostname: z.string(), + os: z.string(), + platform: SyncListResponsePlatformLocal$inboundSchema, +}); + +export function syncListResponseEnvironmentInfoLocalFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + SyncListResponseEnvironmentInfoLocal$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseEnvironmentInfoLocal' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseEnvironmentInfoPlatformAzure$inboundSchema: + z.ZodEnum = z.enum( + SyncListResponseEnvironmentInfoPlatformAzure, + ); + +/** @internal */ +export const SyncListResponseEnvironmentInfoAzure$inboundSchema: z.ZodType< + SyncListResponseEnvironmentInfoAzure, + unknown +> = z.object({ + location: z.string(), + subscriptionId: z.string(), + tenantId: z.string(), + platform: SyncListResponseEnvironmentInfoPlatformAzure$inboundSchema, +}); + +export function syncListResponseEnvironmentInfoAzureFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + SyncListResponseEnvironmentInfoAzure$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseEnvironmentInfoAzure' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseEnvironmentInfoPlatformGcp$inboundSchema: + z.ZodEnum = z.enum( + SyncListResponseEnvironmentInfoPlatformGcp, + ); + +/** @internal */ +export const SyncListResponseEnvironmentInfoGcp$inboundSchema: z.ZodType< + SyncListResponseEnvironmentInfoGcp, + unknown +> = z.object({ + projectId: z.string(), + projectNumber: z.string(), + region: z.string(), + platform: SyncListResponseEnvironmentInfoPlatformGcp$inboundSchema, +}); + +export function syncListResponseEnvironmentInfoGcpFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + SyncListResponseEnvironmentInfoGcp$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseEnvironmentInfoGcp' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseEnvironmentInfoPlatformAws$inboundSchema: + z.ZodEnum = z.enum( + SyncListResponseEnvironmentInfoPlatformAws, + ); + +/** @internal */ +export const SyncListResponseEnvironmentInfoAws$inboundSchema: z.ZodType< + SyncListResponseEnvironmentInfoAws, + unknown +> = z.object({ + accountId: z.string(), + region: z.string(), + platform: SyncListResponseEnvironmentInfoPlatformAws$inboundSchema, +}); + +export function syncListResponseEnvironmentInfoAwsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + SyncListResponseEnvironmentInfoAws$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseEnvironmentInfoAws' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseEnvironmentInfoUnion$inboundSchema: z.ZodType< + SyncListResponseEnvironmentInfoUnion, + unknown +> = z.union([ + z.lazy(() => SyncListResponseEnvironmentInfoGcp$inboundSchema), + z.lazy(() => SyncListResponseEnvironmentInfoAzure$inboundSchema), + z.lazy(() => SyncListResponseEnvironmentInfoLocal$inboundSchema), + z.lazy(() => SyncListResponseEnvironmentInfoAws$inboundSchema), + z.lazy(() => SyncListResponseEnvironmentInfoTest$inboundSchema), + z.any(), +]); + +export function syncListResponseEnvironmentInfoUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + SyncListResponseEnvironmentInfoUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseEnvironmentInfoUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseFailureDomains2$inboundSchema: z.ZodType< + SyncListResponseFailureDomains2, + unknown +> = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), +}); + +export function syncListResponseFailureDomains2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseFailureDomains2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseFailureDomains2' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseFailureDomainsUnion2$inboundSchema: z.ZodType< + SyncListResponseFailureDomainsUnion2, + unknown +> = z.union([ + z.lazy(() => SyncListResponseFailureDomains2$inboundSchema), + z.any(), +]); + +export function syncListResponseFailureDomainsUnion2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + SyncListResponseFailureDomainsUnion2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseFailureDomainsUnion2' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponsePoolsAutoscale$inboundSchema: z.ZodType< + SyncListResponsePoolsAutoscale, + unknown +> = z.object({ + failure_domains: z.nullable( + z.union([ + z.lazy(() => SyncListResponseFailureDomains2$inboundSchema), + z.any(), + ]), + ).optional(), + machine: z.nullable(z.string()).optional(), + max: z.int(), + min: z.int(), + mode: z.literal("autoscale"), +}).transform((v) => { + return remap$(v, { + "failure_domains": "failureDomains", + }); +}); + +export function syncListResponsePoolsAutoscaleFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponsePoolsAutoscale$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePoolsAutoscale' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseFailureDomains1$inboundSchema: z.ZodType< + SyncListResponseFailureDomains1, + unknown +> = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), +}); + +export function syncListResponseFailureDomains1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseFailureDomains1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseFailureDomains1' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseFailureDomainsUnion1$inboundSchema: z.ZodType< + SyncListResponseFailureDomainsUnion1, + unknown +> = z.union([ + z.lazy(() => SyncListResponseFailureDomains1$inboundSchema), + z.any(), +]); + +export function syncListResponseFailureDomainsUnion1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + SyncListResponseFailureDomainsUnion1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseFailureDomainsUnion1' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponsePoolsFixed$inboundSchema: z.ZodType< + SyncListResponsePoolsFixed, + unknown +> = z.object({ + failure_domains: z.nullable( + z.union([ + z.lazy(() => SyncListResponseFailureDomains1$inboundSchema), + z.any(), + ]), + ).optional(), + machine: z.nullable(z.string()).optional(), + machines: z.int(), + mode: z.literal("fixed"), +}).transform((v) => { + return remap$(v, { + "failure_domains": "failureDomains", + }); +}); + +export function syncListResponsePoolsFixedFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponsePoolsFixed$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePoolsFixed' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponsePoolsUnion$inboundSchema: z.ZodType< + SyncListResponsePoolsUnion, + unknown +> = z.union([ + z.lazy(() => SyncListResponsePoolsFixed$inboundSchema), + z.lazy(() => SyncListResponsePoolsAutoscale$inboundSchema), +]); + +export function syncListResponsePoolsUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponsePoolsUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePoolsUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseCompute$inboundSchema: z.ZodType< + SyncListResponseCompute, + unknown +> = z.object({ + pools: z.record( + z.string(), + z.union([ + z.lazy(() => SyncListResponsePoolsFixed$inboundSchema), + z.lazy(() => SyncListResponsePoolsAutoscale$inboundSchema), + ]), + ).optional(), +}); + +export function syncListResponseComputeFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseCompute$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseCompute' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseComputeUnion$inboundSchema: z.ZodType< + SyncListResponseComputeUnion, + unknown +> = z.union([z.lazy(() => SyncListResponseCompute$inboundSchema), z.any()]); + +export function syncListResponseComputeUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseComputeUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseComputeUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseDeploymentModel$inboundSchema: z.ZodEnum< + typeof SyncListResponseDeploymentModel +> = z.enum(SyncListResponseDeploymentModel); + +/** @internal */ +export const SyncListResponseAws$inboundSchema: z.ZodType< + SyncListResponseAws, + unknown +> = z.object({ + certificateArn: z.string(), +}); + +export function syncListResponseAwsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseAws$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseAws' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseAwsUnion$inboundSchema: z.ZodType< + SyncListResponseAwsUnion, + unknown +> = z.union([z.lazy(() => SyncListResponseAws$inboundSchema), z.any()]); + +export function syncListResponseAwsUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseAwsUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseAwsUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseAzureStackSettings$inboundSchema: z.ZodType< + SyncListResponseAzureStackSettings, + unknown +> = z.object({ + keyVaultCertificateId: z.string(), + keyVaultResourceId: z.nullable(z.string()).optional(), +}); + +export function syncListResponseAzureStackSettingsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + SyncListResponseAzureStackSettings$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseAzureStackSettings' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseAzureUnion$inboundSchema: z.ZodType< + SyncListResponseAzureUnion, + unknown +> = z.union([ + z.lazy(() => SyncListResponseAzureStackSettings$inboundSchema), + z.any(), +]); + +export function syncListResponseAzureUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseAzureUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseAzureUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseGcpStackSettings$inboundSchema: z.ZodType< + SyncListResponseGcpStackSettings, + unknown +> = z.object({ + certificateName: z.string(), +}); + +export function syncListResponseGcpStackSettingsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseGcpStackSettings$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseGcpStackSettings' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseGcpUnion$inboundSchema: z.ZodType< + SyncListResponseGcpUnion, + unknown +> = z.union([ + z.lazy(() => SyncListResponseGcpStackSettings$inboundSchema), + z.any(), +]); + +export function syncListResponseGcpUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseGcpUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseGcpUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseTlsSecretRef$inboundSchema: z.ZodType< + SyncListResponseTlsSecretRef, + unknown +> = z.object({ + namespace: z.nullable(z.string()).optional(), + secretName: z.string(), +}); + +export function syncListResponseTlsSecretRefFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseTlsSecretRef$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseTlsSecretRef' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseDomainsKubernetes$inboundSchema: z.ZodType< + SyncListResponseDomainsKubernetes, + unknown +> = z.object({ + tlsSecretRef: z.lazy(() => SyncListResponseTlsSecretRef$inboundSchema), +}); + +export function syncListResponseDomainsKubernetesFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseDomainsKubernetes$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseDomainsKubernetes' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseDomainsKubernetesUnion$inboundSchema: z.ZodType< + SyncListResponseDomainsKubernetesUnion, + unknown +> = z.union([ + z.lazy(() => SyncListResponseDomainsKubernetes$inboundSchema), + z.any(), +]); + +export function syncListResponseDomainsKubernetesUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + SyncListResponseDomainsKubernetesUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseDomainsKubernetesUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseDomainsCertificate$inboundSchema: z.ZodType< + SyncListResponseDomainsCertificate, + unknown +> = z.object({ + aws: z.nullable( + z.union([z.lazy(() => SyncListResponseAws$inboundSchema), z.any()]), + ).optional(), + azure: z.nullable( + z.union([ + z.lazy(() => SyncListResponseAzureStackSettings$inboundSchema), + z.any(), + ]), + ).optional(), + gcp: z.nullable( + z.union([ + z.lazy(() => SyncListResponseGcpStackSettings$inboundSchema), + z.any(), + ]), + ).optional(), + kubernetes: z.nullable( + z.union([ + z.lazy(() => SyncListResponseDomainsKubernetes$inboundSchema), + z.any(), + ]), + ).optional(), +}); + +export function syncListResponseDomainsCertificateFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + SyncListResponseDomainsCertificate$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseDomainsCertificate' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseCustomDomains$inboundSchema: z.ZodType< + SyncListResponseCustomDomains, + unknown +> = z.object({ + certificate: z.lazy(() => SyncListResponseDomainsCertificate$inboundSchema), + domain: z.string(), +}); + +export function syncListResponseCustomDomainsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseCustomDomains$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseCustomDomains' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseModeLoadBalancer$inboundSchema: z.ZodEnum< + typeof SyncListResponseModeLoadBalancer +> = z.enum(SyncListResponseModeLoadBalancer); + +/** @internal */ +export const SyncListResponsePublicEndpointTargetLoadBalancer$inboundSchema: + z.ZodType = z + .object({ + cnameTarget: z.string(), + mode: SyncListResponseModeLoadBalancer$inboundSchema, + }); + +export function syncListResponsePublicEndpointTargetLoadBalancerFromJSON( + jsonString: string, +): SafeParseResult< + SyncListResponsePublicEndpointTargetLoadBalancer, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncListResponsePublicEndpointTargetLoadBalancer$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePublicEndpointTargetLoadBalancer' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseModeMachineAddresses$inboundSchema: z.ZodEnum< + typeof SyncListResponseModeMachineAddresses +> = z.enum(SyncListResponseModeMachineAddresses); + +/** @internal */ +export const SyncListResponsePublicEndpointTargetMachineAddresses$inboundSchema: + z.ZodType = z + .object({ + mode: SyncListResponseModeMachineAddresses$inboundSchema, + }); + +export function syncListResponsePublicEndpointTargetMachineAddressesFromJSON( + jsonString: string, +): SafeParseResult< + SyncListResponsePublicEndpointTargetMachineAddresses, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncListResponsePublicEndpointTargetMachineAddresses$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePublicEndpointTargetMachineAddresses' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponsePublicEndpointTargetUnion$inboundSchema: z.ZodType< + SyncListResponsePublicEndpointTargetUnion, + unknown +> = z.union([ + z.lazy(() => SyncListResponsePublicEndpointTargetLoadBalancer$inboundSchema), + z.lazy(() => + SyncListResponsePublicEndpointTargetMachineAddresses$inboundSchema + ), + z.any(), +]); + +export function syncListResponsePublicEndpointTargetUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncListResponsePublicEndpointTargetUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncListResponsePublicEndpointTargetUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePublicEndpointTargetUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseDomains$inboundSchema: z.ZodType< + SyncListResponseDomains, + unknown +> = z.object({ + customDomains: z.nullable( + z.record( + z.string(), + z.lazy(() => SyncListResponseCustomDomains$inboundSchema), + ), + ).optional(), + publicEndpointTarget: z.nullable( + z.union([ + z.lazy(() => + SyncListResponsePublicEndpointTargetLoadBalancer$inboundSchema + ), + z.lazy(() => + SyncListResponsePublicEndpointTargetMachineAddresses$inboundSchema + ), + z.any(), + ]), + ).optional(), +}); + +export function syncListResponseDomainsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseDomains$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseDomains' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseDomainsUnion$inboundSchema: z.ZodType< + SyncListResponseDomainsUnion, + unknown +> = z.union([z.lazy(() => SyncListResponseDomains$inboundSchema), z.any()]); + +export function syncListResponseDomainsUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseDomainsUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseDomainsUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseExternalBindings$inboundSchema: z.ZodType< + SyncListResponseExternalBindings, + unknown +> = z.object({}); + +export function syncListResponseExternalBindingsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseExternalBindings$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseExternalBindings' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseHeartbeats$inboundSchema: z.ZodEnum< + typeof SyncListResponseHeartbeats +> = z.enum(SyncListResponseHeartbeats); + +/** @internal */ +export const SyncListResponseCloud$inboundSchema: z.ZodType< + SyncListResponseCloud, + unknown +> = z.object({ + accountId: z.nullable(z.string()).optional(), + clusterId: z.nullable(z.string()).optional(), + clusterName: z.nullable(z.string()).optional(), + projectId: z.nullable(z.string()).optional(), + region: z.nullable(z.string()).optional(), + resourceGroup: z.nullable(z.string()).optional(), + subscriptionId: z.nullable(z.string()).optional(), +}); + +export function syncListResponseCloudFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseCloud$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseCloud' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseCloudUnion$inboundSchema: z.ZodType< + SyncListResponseCloudUnion, + unknown +> = z.union([z.lazy(() => SyncListResponseCloud$inboundSchema), z.any()]); + +export function syncListResponseCloudUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseCloudUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseCloudUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseOwnership$inboundSchema: z.ZodEnum< + typeof SyncListResponseOwnership +> = z.enum(SyncListResponseOwnership); + +/** @internal */ +export const SyncListResponseCluster$inboundSchema: z.ZodType< + SyncListResponseCluster, + unknown +> = z.object({ + cloud: z.nullable( + z.union([z.lazy(() => SyncListResponseCloud$inboundSchema), z.any()]), + ).optional(), + namespace: z.nullable(z.string()).optional(), + ownership: SyncListResponseOwnership$inboundSchema, +}); + +export function syncListResponseClusterFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseCluster$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseCluster' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseClusterUnion$inboundSchema: z.ZodType< + SyncListResponseClusterUnion, + unknown +> = z.union([z.lazy(() => SyncListResponseCluster$inboundSchema), z.any()]); + +export function syncListResponseClusterUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseClusterUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseClusterUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseCertificateNone2$inboundSchema: z.ZodType< + SyncListResponseCertificateNone2, + unknown +> = z.object({ + mode: z.literal("none"), +}); + +export function syncListResponseCertificateNone2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseCertificateNone2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseCertificateNone2' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseCertificateManagedTLSSecret2$inboundSchema: + z.ZodType = z.object({ + mode: z.literal("managedTlsSecret"), + secretNameTemplate: z.string(), + }); + +export function syncListResponseCertificateManagedTLSSecret2FromJSON( + jsonString: string, +): SafeParseResult< + SyncListResponseCertificateManagedTLSSecret2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncListResponseCertificateManagedTLSSecret2$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponseCertificateManagedTLSSecret2' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseCertificateAwsAcmArn2$inboundSchema: z.ZodType< + SyncListResponseCertificateAwsAcmArn2, + unknown +> = z.object({ + certificateArn: z.string(), + mode: z.literal("awsAcmArn"), +}); + +export function syncListResponseCertificateAwsAcmArn2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + SyncListResponseCertificateAwsAcmArn2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseCertificateAwsAcmArn2' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseCertificateManagedAcmImport2$inboundSchema: + z.ZodType = z.object({ + mode: z.literal("managedAcmImport"), + region: z.nullable(z.string()).optional(), + tags: z.record(z.string(), z.string()).optional(), + }); + +export function syncListResponseCertificateManagedAcmImport2FromJSON( + jsonString: string, +): SafeParseResult< + SyncListResponseCertificateManagedAcmImport2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncListResponseCertificateManagedAcmImport2$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponseCertificateManagedAcmImport2' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseCertificateTLSSecretRef2$inboundSchema: z.ZodType< + SyncListResponseCertificateTLSSecretRef2, + unknown +> = z.object({ + namespace: z.nullable(z.string()).optional(), + secretName: z.string(), + mode: z.literal("tlsSecretRef"), +}); + +export function syncListResponseCertificateTLSSecretRef2FromJSON( + jsonString: string, +): SafeParseResult< + SyncListResponseCertificateTLSSecretRef2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncListResponseCertificateTLSSecretRef2$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponseCertificateTLSSecretRef2' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseCertificateUnion2$inboundSchema: z.ZodType< + SyncListResponseCertificateUnion2, + unknown +> = z.union([ + z.lazy(() => SyncListResponseCertificateTLSSecretRef2$inboundSchema), + z.lazy(() => SyncListResponseCertificateManagedAcmImport2$inboundSchema), + z.lazy(() => SyncListResponseCertificateAwsAcmArn2$inboundSchema), + z.lazy(() => SyncListResponseCertificateManagedTLSSecret2$inboundSchema), + z.lazy(() => SyncListResponseCertificateNone2$inboundSchema), +]); + +export function syncListResponseCertificateUnion2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseCertificateUnion2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseCertificateUnion2' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseModeCustom$inboundSchema: z.ZodEnum< + typeof SyncListResponseModeCustom +> = z.enum(SyncListResponseModeCustom); + +/** @internal */ +export const SyncListResponseProviderAzureApplicationGatewayForContainersEnum4$inboundSchema: + z.ZodEnum< + typeof SyncListResponseProviderAzureApplicationGatewayForContainersEnum4 + > = z.enum(SyncListResponseProviderAzureApplicationGatewayForContainersEnum4); + +/** @internal */ +export const SyncListResponseProviderAzureApplicationGatewayForContainers4$inboundSchema: + z.ZodType< + SyncListResponseProviderAzureApplicationGatewayForContainers4, + unknown + > = z.object({ + albName: z.nullable(z.string()).optional(), + albNamespace: z.nullable(z.string()).optional(), + frontend: z.string(), + provider: + SyncListResponseProviderAzureApplicationGatewayForContainersEnum4$inboundSchema, + }); + +export function syncListResponseProviderAzureApplicationGatewayForContainers4FromJSON( + jsonString: string, +): SafeParseResult< + SyncListResponseProviderAzureApplicationGatewayForContainers4, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncListResponseProviderAzureApplicationGatewayForContainers4$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseProviderAzureApplicationGatewayForContainers4' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseProviderGkeGatewayEnum4$inboundSchema: z.ZodEnum< + typeof SyncListResponseProviderGkeGatewayEnum4 +> = z.enum(SyncListResponseProviderGkeGatewayEnum4); + +/** @internal */ +export const SyncListResponseProviderGkeGateway4$inboundSchema: z.ZodType< + SyncListResponseProviderGkeGateway4, + unknown +> = z.object({ + provider: SyncListResponseProviderGkeGatewayEnum4$inboundSchema, + staticAddressName: z.nullable(z.string()).optional(), +}); + +export function syncListResponseProviderGkeGateway4FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + SyncListResponseProviderGkeGateway4$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseProviderGkeGateway4' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseProviderAwsAlbEnum4$inboundSchema: z.ZodEnum< + typeof SyncListResponseProviderAwsAlbEnum4 +> = z.enum(SyncListResponseProviderAwsAlbEnum4); + +/** @internal */ +export const SyncListResponseProviderAwsAlb4$inboundSchema: z.ZodType< + SyncListResponseProviderAwsAlb4, + unknown +> = z.object({ + ipAddressType: z.nullable(z.string()).optional(), + provider: SyncListResponseProviderAwsAlbEnum4$inboundSchema, + scheme: z.string(), + subnetIds: z.array(z.string()).optional(), + targetType: z.string(), +}); + +export function syncListResponseProviderAwsAlb4FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseProviderAwsAlb4$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseProviderAwsAlb4' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseProviderUnion4$inboundSchema: z.ZodType< + SyncListResponseProviderUnion4, + unknown +> = z.union([ + z.lazy(() => SyncListResponseProviderAwsAlb4$inboundSchema), + z.lazy(() => + SyncListResponseProviderAzureApplicationGatewayForContainers4$inboundSchema + ), + z.lazy(() => SyncListResponseProviderGkeGateway4$inboundSchema), + z.any(), +]); + +export function syncListResponseProviderUnion4FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseProviderUnion4$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseProviderUnion4' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseRouteGateway2$inboundSchema: z.ZodType< + SyncListResponseRouteGateway2, + unknown +> = z.object({ + annotations: z.record(z.string(), z.string()).optional(), + controller: z.nullable(z.string()).optional(), + gatewayClassName: z.string(), + labels: z.record(z.string(), z.string()).optional(), + listenerPort: z.int(), + provider: z.nullable( + z.union([ + z.lazy(() => SyncListResponseProviderAwsAlb4$inboundSchema), + z.lazy(() => + SyncListResponseProviderAzureApplicationGatewayForContainers4$inboundSchema + ), + z.lazy(() => SyncListResponseProviderGkeGateway4$inboundSchema), + z.any(), + ]), + ).optional(), + routeApi: z.literal("gateway"), +}); + +export function syncListResponseRouteGateway2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseRouteGateway2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseRouteGateway2' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseProviderAzureApplicationGatewayForContainersEnum3$inboundSchema: + z.ZodEnum< + typeof SyncListResponseProviderAzureApplicationGatewayForContainersEnum3 + > = z.enum(SyncListResponseProviderAzureApplicationGatewayForContainersEnum3); + +/** @internal */ +export const SyncListResponseProviderAzureApplicationGatewayForContainers3$inboundSchema: + z.ZodType< + SyncListResponseProviderAzureApplicationGatewayForContainers3, + unknown + > = z.object({ + albName: z.nullable(z.string()).optional(), + albNamespace: z.nullable(z.string()).optional(), + frontend: z.string(), + provider: + SyncListResponseProviderAzureApplicationGatewayForContainersEnum3$inboundSchema, + }); + +export function syncListResponseProviderAzureApplicationGatewayForContainers3FromJSON( + jsonString: string, +): SafeParseResult< + SyncListResponseProviderAzureApplicationGatewayForContainers3, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncListResponseProviderAzureApplicationGatewayForContainers3$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseProviderAzureApplicationGatewayForContainers3' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseProviderGkeGatewayEnum3$inboundSchema: z.ZodEnum< + typeof SyncListResponseProviderGkeGatewayEnum3 +> = z.enum(SyncListResponseProviderGkeGatewayEnum3); + +/** @internal */ +export const SyncListResponseProviderGkeGateway3$inboundSchema: z.ZodType< + SyncListResponseProviderGkeGateway3, + unknown +> = z.object({ + provider: SyncListResponseProviderGkeGatewayEnum3$inboundSchema, + staticAddressName: z.nullable(z.string()).optional(), +}); + +export function syncListResponseProviderGkeGateway3FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + SyncListResponseProviderGkeGateway3$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseProviderGkeGateway3' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseProviderAwsAlbEnum3$inboundSchema: z.ZodEnum< + typeof SyncListResponseProviderAwsAlbEnum3 +> = z.enum(SyncListResponseProviderAwsAlbEnum3); + +/** @internal */ +export const SyncListResponseProviderAwsAlb3$inboundSchema: z.ZodType< + SyncListResponseProviderAwsAlb3, + unknown +> = z.object({ + ipAddressType: z.nullable(z.string()).optional(), + provider: SyncListResponseProviderAwsAlbEnum3$inboundSchema, + scheme: z.string(), + subnetIds: z.array(z.string()).optional(), + targetType: z.string(), +}); + +export function syncListResponseProviderAwsAlb3FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseProviderAwsAlb3$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseProviderAwsAlb3' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseProviderUnion3$inboundSchema: z.ZodType< + SyncListResponseProviderUnion3, + unknown +> = z.union([ + z.lazy(() => SyncListResponseProviderAwsAlb3$inboundSchema), + z.lazy(() => + SyncListResponseProviderAzureApplicationGatewayForContainers3$inboundSchema + ), + z.lazy(() => SyncListResponseProviderGkeGateway3$inboundSchema), + z.any(), +]); + +export function syncListResponseProviderUnion3FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseProviderUnion3$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseProviderUnion3' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseRouteIngress2$inboundSchema: z.ZodType< + SyncListResponseRouteIngress2, + unknown +> = z.object({ + annotations: z.record(z.string(), z.string()).optional(), + controller: z.nullable(z.string()).optional(), + ingressClassName: z.string(), + labels: z.record(z.string(), z.string()).optional(), + provider: z.nullable( + z.union([ + z.lazy(() => SyncListResponseProviderAwsAlb3$inboundSchema), + z.lazy(() => + SyncListResponseProviderAzureApplicationGatewayForContainers3$inboundSchema + ), + z.lazy(() => SyncListResponseProviderGkeGateway3$inboundSchema), + z.any(), + ]), + ).optional(), + routeApi: z.literal("ingress"), +}); + +export function syncListResponseRouteIngress2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseRouteIngress2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseRouteIngress2' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseRouteUnion2$inboundSchema: z.ZodType< + SyncListResponseRouteUnion2, + unknown +> = z.union([ + z.lazy(() => SyncListResponseRouteIngress2$inboundSchema), + z.lazy(() => SyncListResponseRouteGateway2$inboundSchema), +]); + +export function syncListResponseRouteUnion2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseRouteUnion2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseRouteUnion2' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseExposureCustom$inboundSchema: z.ZodType< + SyncListResponseExposureCustom, + unknown +> = z.object({ + certificate: z.union([ + z.lazy(() => SyncListResponseCertificateTLSSecretRef2$inboundSchema), + z.lazy(() => SyncListResponseCertificateManagedAcmImport2$inboundSchema), + z.lazy(() => SyncListResponseCertificateAwsAcmArn2$inboundSchema), + z.lazy(() => SyncListResponseCertificateManagedTLSSecret2$inboundSchema), + z.lazy(() => SyncListResponseCertificateNone2$inboundSchema), + ]), + domain: z.string(), + mode: SyncListResponseModeCustom$inboundSchema, + route: z.union([ + z.lazy(() => SyncListResponseRouteIngress2$inboundSchema), + z.lazy(() => SyncListResponseRouteGateway2$inboundSchema), + ]), +}); + +export function syncListResponseExposureCustomFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseExposureCustom$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseExposureCustom' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseCertificateNone1$inboundSchema: z.ZodType< + SyncListResponseCertificateNone1, + unknown +> = z.object({ + mode: z.literal("none"), +}); + +export function syncListResponseCertificateNone1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseCertificateNone1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseCertificateNone1' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseCertificateManagedTLSSecret1$inboundSchema: + z.ZodType = z.object({ + mode: z.literal("managedTlsSecret"), + secretNameTemplate: z.string(), + }); + +export function syncListResponseCertificateManagedTLSSecret1FromJSON( + jsonString: string, +): SafeParseResult< + SyncListResponseCertificateManagedTLSSecret1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncListResponseCertificateManagedTLSSecret1$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponseCertificateManagedTLSSecret1' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseCertificateAwsAcmArn1$inboundSchema: z.ZodType< + SyncListResponseCertificateAwsAcmArn1, + unknown +> = z.object({ + certificateArn: z.string(), + mode: z.literal("awsAcmArn"), +}); + +export function syncListResponseCertificateAwsAcmArn1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + SyncListResponseCertificateAwsAcmArn1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseCertificateAwsAcmArn1' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseCertificateManagedAcmImport1$inboundSchema: + z.ZodType = z.object({ + mode: z.literal("managedAcmImport"), + region: z.nullable(z.string()).optional(), + tags: z.record(z.string(), z.string()).optional(), + }); + +export function syncListResponseCertificateManagedAcmImport1FromJSON( + jsonString: string, +): SafeParseResult< + SyncListResponseCertificateManagedAcmImport1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncListResponseCertificateManagedAcmImport1$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponseCertificateManagedAcmImport1' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseCertificateTLSSecretRef1$inboundSchema: z.ZodType< + SyncListResponseCertificateTLSSecretRef1, + unknown +> = z.object({ + namespace: z.nullable(z.string()).optional(), + secretName: z.string(), + mode: z.literal("tlsSecretRef"), +}); + +export function syncListResponseCertificateTLSSecretRef1FromJSON( + jsonString: string, +): SafeParseResult< + SyncListResponseCertificateTLSSecretRef1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncListResponseCertificateTLSSecretRef1$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponseCertificateTLSSecretRef1' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseCertificateUnion1$inboundSchema: z.ZodType< + SyncListResponseCertificateUnion1, + unknown +> = z.union([ + z.lazy(() => SyncListResponseCertificateTLSSecretRef1$inboundSchema), + z.lazy(() => SyncListResponseCertificateManagedAcmImport1$inboundSchema), + z.lazy(() => SyncListResponseCertificateAwsAcmArn1$inboundSchema), + z.lazy(() => SyncListResponseCertificateManagedTLSSecret1$inboundSchema), + z.lazy(() => SyncListResponseCertificateNone1$inboundSchema), +]); + +export function syncListResponseCertificateUnion1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseCertificateUnion1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseCertificateUnion1' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseModeGenerated$inboundSchema: z.ZodEnum< + typeof SyncListResponseModeGenerated +> = z.enum(SyncListResponseModeGenerated); + +/** @internal */ +export const SyncListResponseProviderAzureApplicationGatewayForContainersEnum2$inboundSchema: + z.ZodEnum< + typeof SyncListResponseProviderAzureApplicationGatewayForContainersEnum2 + > = z.enum(SyncListResponseProviderAzureApplicationGatewayForContainersEnum2); + +/** @internal */ +export const SyncListResponseProviderAzureApplicationGatewayForContainers2$inboundSchema: + z.ZodType< + SyncListResponseProviderAzureApplicationGatewayForContainers2, + unknown + > = z.object({ + albName: z.nullable(z.string()).optional(), + albNamespace: z.nullable(z.string()).optional(), + frontend: z.string(), + provider: + SyncListResponseProviderAzureApplicationGatewayForContainersEnum2$inboundSchema, + }); + +export function syncListResponseProviderAzureApplicationGatewayForContainers2FromJSON( + jsonString: string, +): SafeParseResult< + SyncListResponseProviderAzureApplicationGatewayForContainers2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncListResponseProviderAzureApplicationGatewayForContainers2$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseProviderAzureApplicationGatewayForContainers2' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseProviderGkeGatewayEnum2$inboundSchema: z.ZodEnum< + typeof SyncListResponseProviderGkeGatewayEnum2 +> = z.enum(SyncListResponseProviderGkeGatewayEnum2); + +/** @internal */ +export const SyncListResponseProviderGkeGateway2$inboundSchema: z.ZodType< + SyncListResponseProviderGkeGateway2, + unknown +> = z.object({ + provider: SyncListResponseProviderGkeGatewayEnum2$inboundSchema, + staticAddressName: z.nullable(z.string()).optional(), +}); + +export function syncListResponseProviderGkeGateway2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + SyncListResponseProviderGkeGateway2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseProviderGkeGateway2' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseProviderAwsAlbEnum2$inboundSchema: z.ZodEnum< + typeof SyncListResponseProviderAwsAlbEnum2 +> = z.enum(SyncListResponseProviderAwsAlbEnum2); + +/** @internal */ +export const SyncListResponseProviderAwsAlb2$inboundSchema: z.ZodType< + SyncListResponseProviderAwsAlb2, + unknown +> = z.object({ + ipAddressType: z.nullable(z.string()).optional(), + provider: SyncListResponseProviderAwsAlbEnum2$inboundSchema, + scheme: z.string(), + subnetIds: z.array(z.string()).optional(), + targetType: z.string(), +}); + +export function syncListResponseProviderAwsAlb2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseProviderAwsAlb2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseProviderAwsAlb2' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseProviderUnion2$inboundSchema: z.ZodType< + SyncListResponseProviderUnion2, + unknown +> = z.union([ + z.lazy(() => SyncListResponseProviderAwsAlb2$inboundSchema), + z.lazy(() => + SyncListResponseProviderAzureApplicationGatewayForContainers2$inboundSchema + ), + z.lazy(() => SyncListResponseProviderGkeGateway2$inboundSchema), + z.any(), +]); + +export function syncListResponseProviderUnion2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseProviderUnion2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseProviderUnion2' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseRouteGateway1$inboundSchema: z.ZodType< + SyncListResponseRouteGateway1, + unknown +> = z.object({ + annotations: z.record(z.string(), z.string()).optional(), + controller: z.nullable(z.string()).optional(), + gatewayClassName: z.string(), + labels: z.record(z.string(), z.string()).optional(), + listenerPort: z.int(), + provider: z.nullable( + z.union([ + z.lazy(() => SyncListResponseProviderAwsAlb2$inboundSchema), + z.lazy(() => + SyncListResponseProviderAzureApplicationGatewayForContainers2$inboundSchema + ), + z.lazy(() => SyncListResponseProviderGkeGateway2$inboundSchema), + z.any(), + ]), + ).optional(), + routeApi: z.literal("gateway"), +}); + +export function syncListResponseRouteGateway1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseRouteGateway1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseRouteGateway1' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseProviderAzureApplicationGatewayForContainersEnum1$inboundSchema: + z.ZodEnum< + typeof SyncListResponseProviderAzureApplicationGatewayForContainersEnum1 + > = z.enum(SyncListResponseProviderAzureApplicationGatewayForContainersEnum1); + +/** @internal */ +export const SyncListResponseProviderAzureApplicationGatewayForContainers1$inboundSchema: + z.ZodType< + SyncListResponseProviderAzureApplicationGatewayForContainers1, + unknown + > = z.object({ + albName: z.nullable(z.string()).optional(), + albNamespace: z.nullable(z.string()).optional(), + frontend: z.string(), + provider: + SyncListResponseProviderAzureApplicationGatewayForContainersEnum1$inboundSchema, + }); + +export function syncListResponseProviderAzureApplicationGatewayForContainers1FromJSON( + jsonString: string, +): SafeParseResult< + SyncListResponseProviderAzureApplicationGatewayForContainers1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncListResponseProviderAzureApplicationGatewayForContainers1$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseProviderAzureApplicationGatewayForContainers1' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseProviderGkeGatewayEnum1$inboundSchema: z.ZodEnum< + typeof SyncListResponseProviderGkeGatewayEnum1 +> = z.enum(SyncListResponseProviderGkeGatewayEnum1); + +/** @internal */ +export const SyncListResponseProviderGkeGateway1$inboundSchema: z.ZodType< + SyncListResponseProviderGkeGateway1, + unknown +> = z.object({ + provider: SyncListResponseProviderGkeGatewayEnum1$inboundSchema, + staticAddressName: z.nullable(z.string()).optional(), +}); + +export function syncListResponseProviderGkeGateway1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + SyncListResponseProviderGkeGateway1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseProviderGkeGateway1' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseProviderAwsAlbEnum1$inboundSchema: z.ZodEnum< + typeof SyncListResponseProviderAwsAlbEnum1 +> = z.enum(SyncListResponseProviderAwsAlbEnum1); + +/** @internal */ +export const SyncListResponseProviderAwsAlb1$inboundSchema: z.ZodType< + SyncListResponseProviderAwsAlb1, + unknown +> = z.object({ + ipAddressType: z.nullable(z.string()).optional(), + provider: SyncListResponseProviderAwsAlbEnum1$inboundSchema, + scheme: z.string(), + subnetIds: z.array(z.string()).optional(), + targetType: z.string(), +}); + +export function syncListResponseProviderAwsAlb1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseProviderAwsAlb1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseProviderAwsAlb1' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseProviderUnion1$inboundSchema: z.ZodType< + SyncListResponseProviderUnion1, + unknown +> = z.union([ + z.lazy(() => SyncListResponseProviderAwsAlb1$inboundSchema), + z.lazy(() => + SyncListResponseProviderAzureApplicationGatewayForContainers1$inboundSchema + ), + z.lazy(() => SyncListResponseProviderGkeGateway1$inboundSchema), + z.any(), +]); + +export function syncListResponseProviderUnion1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseProviderUnion1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseProviderUnion1' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseRouteIngress1$inboundSchema: z.ZodType< + SyncListResponseRouteIngress1, + unknown +> = z.object({ + annotations: z.record(z.string(), z.string()).optional(), + controller: z.nullable(z.string()).optional(), + ingressClassName: z.string(), + labels: z.record(z.string(), z.string()).optional(), + provider: z.nullable( + z.union([ + z.lazy(() => SyncListResponseProviderAwsAlb1$inboundSchema), + z.lazy(() => + SyncListResponseProviderAzureApplicationGatewayForContainers1$inboundSchema + ), + z.lazy(() => SyncListResponseProviderGkeGateway1$inboundSchema), + z.any(), + ]), + ).optional(), + routeApi: z.literal("ingress"), +}); + +export function syncListResponseRouteIngress1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseRouteIngress1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseRouteIngress1' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseRouteUnion1$inboundSchema: z.ZodType< + SyncListResponseRouteUnion1, + unknown +> = z.union([ + z.lazy(() => SyncListResponseRouteIngress1$inboundSchema), + z.lazy(() => SyncListResponseRouteGateway1$inboundSchema), +]); + +export function syncListResponseRouteUnion1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseRouteUnion1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseRouteUnion1' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseExposureGenerated$inboundSchema: z.ZodType< + SyncListResponseExposureGenerated, + unknown +> = z.object({ + certificate: z.union([ + z.lazy(() => SyncListResponseCertificateTLSSecretRef1$inboundSchema), + z.lazy(() => SyncListResponseCertificateManagedAcmImport1$inboundSchema), + z.lazy(() => SyncListResponseCertificateAwsAcmArn1$inboundSchema), + z.lazy(() => SyncListResponseCertificateManagedTLSSecret1$inboundSchema), + z.lazy(() => SyncListResponseCertificateNone1$inboundSchema), + ]), + mode: SyncListResponseModeGenerated$inboundSchema, + route: z.union([ + z.lazy(() => SyncListResponseRouteIngress1$inboundSchema), + z.lazy(() => SyncListResponseRouteGateway1$inboundSchema), + ]), +}); + +export function syncListResponseExposureGeneratedFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseExposureGenerated$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseExposureGenerated' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseModeDisabled$inboundSchema: z.ZodEnum< + typeof SyncListResponseModeDisabled +> = z.enum(SyncListResponseModeDisabled); + +/** @internal */ +export const SyncListResponseExposureDisabled$inboundSchema: z.ZodType< + SyncListResponseExposureDisabled, + unknown +> = z.object({ + mode: SyncListResponseModeDisabled$inboundSchema, +}); + +export function syncListResponseExposureDisabledFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseExposureDisabled$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseExposureDisabled' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseExposureUnion$inboundSchema: z.ZodType< + SyncListResponseExposureUnion, + unknown +> = z.union([ + z.lazy(() => SyncListResponseExposureCustom$inboundSchema), + z.lazy(() => SyncListResponseExposureGenerated$inboundSchema), + z.lazy(() => SyncListResponseExposureDisabled$inboundSchema), + z.any(), +]); + +export function syncListResponseExposureUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseExposureUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseExposureUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseKubernetes$inboundSchema: z.ZodType< + SyncListResponseKubernetes, + unknown +> = z.object({ + cluster: z.nullable( + z.union([z.lazy(() => SyncListResponseCluster$inboundSchema), z.any()]), + ).optional(), + exposure: z.nullable( + z.union([ + z.lazy(() => SyncListResponseExposureCustom$inboundSchema), + z.lazy(() => SyncListResponseExposureGenerated$inboundSchema), + z.lazy(() => SyncListResponseExposureDisabled$inboundSchema), + z.any(), + ]), + ).optional(), +}); + +export function syncListResponseKubernetesFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseKubernetes$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseKubernetes' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseKubernetesUnion$inboundSchema: z.ZodType< + SyncListResponseKubernetesUnion, + unknown +> = z.union([z.lazy(() => SyncListResponseKubernetes$inboundSchema), z.any()]); + +export function syncListResponseKubernetesUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseKubernetesUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseKubernetesUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseTypeByoVnetAzure$inboundSchema: z.ZodEnum< + typeof SyncListResponseTypeByoVnetAzure +> = z.enum(SyncListResponseTypeByoVnetAzure); + +/** @internal */ +export const SyncListResponseNetworkByoVnetAzure$inboundSchema: z.ZodType< + SyncListResponseNetworkByoVnetAzure, + unknown +> = z.object({ + application_gateway_subnet_name: z.nullable(z.string()).optional(), + private_endpoint_subnet_name: z.nullable(z.string()).optional(), + private_subnet_name: z.string(), + public_subnet_name: z.string(), + type: SyncListResponseTypeByoVnetAzure$inboundSchema, + vnet_resource_id: z.string(), +}).transform((v) => { + return remap$(v, { + "application_gateway_subnet_name": "applicationGatewaySubnetName", + "private_endpoint_subnet_name": "privateEndpointSubnetName", + "private_subnet_name": "privateSubnetName", + "public_subnet_name": "publicSubnetName", + "vnet_resource_id": "vnetResourceId", + }); +}); + +export function syncListResponseNetworkByoVnetAzureFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + SyncListResponseNetworkByoVnetAzure$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseNetworkByoVnetAzure' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseTypeByoVpcGcp$inboundSchema: z.ZodEnum< + typeof SyncListResponseTypeByoVpcGcp +> = z.enum(SyncListResponseTypeByoVpcGcp); + +/** @internal */ +export const SyncListResponseNetworkByoVpcGcp$inboundSchema: z.ZodType< + SyncListResponseNetworkByoVpcGcp, + unknown +> = z.object({ + network_name: z.string(), + region: z.string(), + subnet_name: z.string(), + type: SyncListResponseTypeByoVpcGcp$inboundSchema, +}).transform((v) => { + return remap$(v, { + "network_name": "networkName", + "subnet_name": "subnetName", + }); +}); + +export function syncListResponseNetworkByoVpcGcpFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseNetworkByoVpcGcp$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseNetworkByoVpcGcp' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseTypeByoVpcAws$inboundSchema: z.ZodEnum< + typeof SyncListResponseTypeByoVpcAws +> = z.enum(SyncListResponseTypeByoVpcAws); + +/** @internal */ +export const SyncListResponseNetworkByoVpcAws$inboundSchema: z.ZodType< + SyncListResponseNetworkByoVpcAws, + unknown +> = z.object({ + private_subnet_ids: z.array(z.string()), + public_subnet_ids: z.array(z.string()), + security_group_ids: z.array(z.string()).optional(), + type: SyncListResponseTypeByoVpcAws$inboundSchema, + vpc_id: z.string(), +}).transform((v) => { + return remap$(v, { + "private_subnet_ids": "privateSubnetIds", + "public_subnet_ids": "publicSubnetIds", + "security_group_ids": "securityGroupIds", + "vpc_id": "vpcId", + }); +}); + +export function syncListResponseNetworkByoVpcAwsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseNetworkByoVpcAws$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseNetworkByoVpcAws' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseTypeCreate$inboundSchema: z.ZodEnum< + typeof SyncListResponseTypeCreate +> = z.enum(SyncListResponseTypeCreate); + +/** @internal */ +export const SyncListResponseNetworkCreate$inboundSchema: z.ZodType< + SyncListResponseNetworkCreate, + unknown +> = z.object({ + availability_zones: z.int().optional(), + cidr: z.nullable(z.string()).optional(), + type: SyncListResponseTypeCreate$inboundSchema, +}).transform((v) => { + return remap$(v, { + "availability_zones": "availabilityZones", + }); +}); + +export function syncListResponseNetworkCreateFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseNetworkCreate$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseNetworkCreate' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseTypeUseDefault$inboundSchema: z.ZodEnum< + typeof SyncListResponseTypeUseDefault +> = z.enum(SyncListResponseTypeUseDefault); + +/** @internal */ +export const SyncListResponseNetworkUseDefault$inboundSchema: z.ZodType< + SyncListResponseNetworkUseDefault, + unknown +> = z.object({ + type: SyncListResponseTypeUseDefault$inboundSchema, +}); + +export function syncListResponseNetworkUseDefaultFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseNetworkUseDefault$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseNetworkUseDefault' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseNetworkUnion$inboundSchema: z.ZodType< + SyncListResponseNetworkUnion, + unknown +> = z.union([ + z.lazy(() => SyncListResponseNetworkByoVpcAws$inboundSchema), + z.lazy(() => SyncListResponseNetworkByoVpcGcp$inboundSchema), + z.lazy(() => SyncListResponseNetworkByoVnetAzure$inboundSchema), + z.lazy(() => SyncListResponseNetworkUseDefault$inboundSchema), + z.lazy(() => SyncListResponseNetworkCreate$inboundSchema), + z.any(), +]); + +export function syncListResponseNetworkUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseNetworkUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseNetworkUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseTelemetry$inboundSchema: z.ZodEnum< + typeof SyncListResponseTelemetry +> = z.enum(SyncListResponseTelemetry); + +/** @internal */ +export const SyncListResponseUpdates$inboundSchema: z.ZodEnum< + typeof SyncListResponseUpdates +> = z.enum(SyncListResponseUpdates); + +/** @internal */ +export const SyncListResponseStackSettings$inboundSchema: z.ZodType< + SyncListResponseStackSettings, + unknown +> = z.object({ + compute: z.nullable( + z.union([z.lazy(() => SyncListResponseCompute$inboundSchema), z.any()]), + ).optional(), + deploymentModel: SyncListResponseDeploymentModel$inboundSchema.optional(), + domains: z.nullable( + z.union([z.lazy(() => SyncListResponseDomains$inboundSchema), z.any()]), + ).optional(), + externalBindings: z.nullable( + z.lazy(() => SyncListResponseExternalBindings$inboundSchema), + ).optional(), + heartbeats: SyncListResponseHeartbeats$inboundSchema.optional(), + kubernetes: z.nullable( + z.union([z.lazy(() => SyncListResponseKubernetes$inboundSchema), z.any()]), + ).optional(), + network: z.nullable( + z.union([ + z.lazy(() => SyncListResponseNetworkByoVpcAws$inboundSchema), + z.lazy(() => SyncListResponseNetworkByoVpcGcp$inboundSchema), + z.lazy(() => SyncListResponseNetworkByoVnetAzure$inboundSchema), + z.lazy(() => SyncListResponseNetworkUseDefault$inboundSchema), + z.lazy(() => SyncListResponseNetworkCreate$inboundSchema), + z.any(), + ]), + ).optional(), + telemetry: SyncListResponseTelemetry$inboundSchema.optional(), + updates: SyncListResponseUpdates$inboundSchema.optional(), +}); + +export function syncListResponseStackSettingsFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseStackSettings$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseStackSettings' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseStackStatePlatform$inboundSchema: z.ZodEnum< + typeof SyncListResponseStackStatePlatform +> = z.enum(SyncListResponseStackStatePlatform); + +/** @internal */ +export const SyncListResponseStackStateConfig$inboundSchema: z.ZodType< + SyncListResponseStackStateConfig, + unknown +> = collectExtraKeys$( + z.object({ + id: z.string(), + type: z.string(), + }).catchall(z.any()), + "additionalProperties", + true, +); + +export function syncListResponseStackStateConfigFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncListResponseStackStateConfig$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseStackStateConfig' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseControllerPlatformEnum$inboundSchema: z.ZodEnum< + typeof SyncListResponseControllerPlatformEnum +> = z.enum(SyncListResponseControllerPlatformEnum); + +/** @internal */ +export const SyncListResponseControllerPlatformUnion$inboundSchema: z.ZodType< + SyncListResponseControllerPlatformUnion, + unknown +> = z.union([SyncListResponseControllerPlatformEnum$inboundSchema, z.any()]); -export function syncListResponseEnvironmentInfoTestFromJSON( +export function syncListResponseControllerPlatformUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponseControllerPlatformUnion, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseEnvironmentInfoTest$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseEnvironmentInfoTest' from JSON`, + SyncListResponseControllerPlatformUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponseControllerPlatformUnion' from JSON`, ); } /** @internal */ -export const SyncListResponsePlatformLocal$inboundSchema: z.ZodEnum< - typeof SyncListResponsePlatformLocal -> = z.enum(SyncListResponsePlatformLocal); - -/** @internal */ -export const SyncListResponseEnvironmentInfoLocal$inboundSchema: z.ZodType< - SyncListResponseEnvironmentInfoLocal, +export const SyncListResponseStackStateDependency$inboundSchema: z.ZodType< + SyncListResponseStackStateDependency, unknown > = z.object({ - arch: z.string(), - hostname: z.string(), - os: z.string(), - platform: SyncListResponsePlatformLocal$inboundSchema, + id: z.string(), + type: z.string(), }); -export function syncListResponseEnvironmentInfoLocalFromJSON( +export function syncListResponseStackStateDependencyFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, (x) => - SyncListResponseEnvironmentInfoLocal$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseEnvironmentInfoLocal' from JSON`, + SyncListResponseStackStateDependency$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseStackStateDependency' from JSON`, ); } /** @internal */ -export const SyncListResponseEnvironmentInfoPlatformAzure$inboundSchema: - z.ZodEnum = z.enum( - SyncListResponseEnvironmentInfoPlatformAzure, - ); - -/** @internal */ -export const SyncListResponseEnvironmentInfoAzure$inboundSchema: z.ZodType< - SyncListResponseEnvironmentInfoAzure, +export const SyncListResponseErrorStackState$inboundSchema: z.ZodType< + SyncListResponseErrorStackState, unknown > = z.object({ - location: z.string(), - subscriptionId: z.string(), - tenantId: z.string(), - platform: SyncListResponseEnvironmentInfoPlatformAzure$inboundSchema, + code: z.string(), + context: z.nullable(z.any()).optional(), + hint: z.nullable(z.string()).optional(), + httpStatusCode: z.nullable(z.int()).optional(), + internal: z.boolean(), + message: z.string(), + retryable: z.boolean().default(false), + source: z.nullable(z.any()).optional(), }); -export function syncListResponseEnvironmentInfoAzureFromJSON( +export function syncListResponseErrorStackStateFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => - SyncListResponseEnvironmentInfoAzure$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseEnvironmentInfoAzure' from JSON`, + (x) => SyncListResponseErrorStackState$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseErrorStackState' from JSON`, ); } /** @internal */ -export const SyncListResponseEnvironmentInfoPlatformGcp$inboundSchema: - z.ZodEnum = z.enum( - SyncListResponseEnvironmentInfoPlatformGcp, - ); - -/** @internal */ -export const SyncListResponseEnvironmentInfoGcp$inboundSchema: z.ZodType< - SyncListResponseEnvironmentInfoGcp, +export const SyncListResponseErrorUnion$inboundSchema: z.ZodType< + SyncListResponseErrorUnion, unknown -> = z.object({ - projectId: z.string(), - projectNumber: z.string(), - region: z.string(), - platform: SyncListResponseEnvironmentInfoPlatformGcp$inboundSchema, -}); +> = z.union([ + z.lazy(() => SyncListResponseErrorStackState$inboundSchema), + z.any(), +]); -export function syncListResponseEnvironmentInfoGcpFromJSON( +export function syncListResponseErrorUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => - SyncListResponseEnvironmentInfoGcp$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseEnvironmentInfoGcp' from JSON`, + (x) => SyncListResponseErrorUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseErrorUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseEnvironmentInfoPlatformAws$inboundSchema: - z.ZodEnum = z.enum( - SyncListResponseEnvironmentInfoPlatformAws, - ); +export const SyncListResponseLifecycleStackStateEnum$inboundSchema: z.ZodEnum< + typeof SyncListResponseLifecycleStackStateEnum +> = z.enum(SyncListResponseLifecycleStackStateEnum); /** @internal */ -export const SyncListResponseEnvironmentInfoAws$inboundSchema: z.ZodType< - SyncListResponseEnvironmentInfoAws, +export const SyncListResponseLifecycleUnion$inboundSchema: z.ZodType< + SyncListResponseLifecycleUnion, unknown -> = z.object({ - accountId: z.string(), - region: z.string(), - platform: SyncListResponseEnvironmentInfoPlatformAws$inboundSchema, -}); +> = z.union([SyncListResponseLifecycleStackStateEnum$inboundSchema, z.any()]); -export function syncListResponseEnvironmentInfoAwsFromJSON( +export function syncListResponseLifecycleUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => - SyncListResponseEnvironmentInfoAws$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseEnvironmentInfoAws' from JSON`, + (x) => SyncListResponseLifecycleUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseLifecycleUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseEnvironmentInfoUnion$inboundSchema: z.ZodType< - SyncListResponseEnvironmentInfoUnion, +export const SyncListResponseOutputs$inboundSchema: z.ZodType< + SyncListResponseOutputs, unknown -> = z.union([ - z.lazy(() => SyncListResponseEnvironmentInfoGcp$inboundSchema), - z.lazy(() => SyncListResponseEnvironmentInfoAzure$inboundSchema), - z.lazy(() => SyncListResponseEnvironmentInfoLocal$inboundSchema), - z.lazy(() => SyncListResponseEnvironmentInfoAws$inboundSchema), - z.lazy(() => SyncListResponseEnvironmentInfoTest$inboundSchema), - z.any(), -]); +> = collectExtraKeys$( + z.object({ + type: z.string(), + }).catchall(z.any()), + "additionalProperties", + true, +); -export function syncListResponseEnvironmentInfoUnionFromJSON( +export function syncListResponseOutputsFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => - SyncListResponseEnvironmentInfoUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseEnvironmentInfoUnion' from JSON`, + (x) => SyncListResponseOutputs$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseOutputs' from JSON`, ); } /** @internal */ -export const SyncListResponsePoolsAutoscale$inboundSchema: z.ZodType< - SyncListResponsePoolsAutoscale, +export const SyncListResponseOutputsUnion$inboundSchema: z.ZodType< + SyncListResponseOutputsUnion, unknown -> = z.object({ - machine: z.nullable(z.string()).optional(), - max: z.int(), - min: z.int(), - mode: z.literal("autoscale"), -}); +> = z.union([z.lazy(() => SyncListResponseOutputs$inboundSchema), z.any()]); -export function syncListResponsePoolsAutoscaleFromJSON( +export function syncListResponseOutputsUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => SyncListResponsePoolsAutoscale$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponsePoolsAutoscale' from JSON`, + (x) => SyncListResponseOutputsUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseOutputsUnion' from JSON`, ); } /** @internal */ -export const SyncListResponsePoolsFixed$inboundSchema: z.ZodType< - SyncListResponsePoolsFixed, +export const SyncListResponsePreviousConfig$inboundSchema: z.ZodType< + SyncListResponsePreviousConfig, unknown -> = z.object({ - machine: z.nullable(z.string()).optional(), - machines: z.int(), - mode: z.literal("fixed"), -}); +> = collectExtraKeys$( + z.object({ + id: z.string(), + type: z.string(), + }).catchall(z.any()), + "additionalProperties", + true, +); -export function syncListResponsePoolsFixedFromJSON( +export function syncListResponsePreviousConfigFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => SyncListResponsePoolsFixed$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponsePoolsFixed' from JSON`, + (x) => SyncListResponsePreviousConfig$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePreviousConfig' from JSON`, ); } /** @internal */ -export const SyncListResponsePoolsUnion$inboundSchema: z.ZodType< - SyncListResponsePoolsUnion, +export const SyncListResponsePreviousConfigUnion$inboundSchema: z.ZodType< + SyncListResponsePreviousConfigUnion, unknown > = z.union([ - z.lazy(() => SyncListResponsePoolsFixed$inboundSchema), - z.lazy(() => SyncListResponsePoolsAutoscale$inboundSchema), + z.lazy(() => SyncListResponsePreviousConfig$inboundSchema), + z.any(), ]); -export function syncListResponsePoolsUnionFromJSON( +export function syncListResponsePreviousConfigUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => SyncListResponsePoolsUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponsePoolsUnion' from JSON`, + (x) => + SyncListResponsePreviousConfigUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePreviousConfigUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseCompute$inboundSchema: z.ZodType< - SyncListResponseCompute, +export const SyncListResponseStackStateStatus$inboundSchema: z.ZodEnum< + typeof SyncListResponseStackStateStatus +> = z.enum(SyncListResponseStackStateStatus); + +/** @internal */ +export const SyncListResponseStackStateResources$inboundSchema: z.ZodType< + SyncListResponseStackStateResources, unknown > = z.object({ - pools: z.record( - z.string(), + _internal: z.nullable(z.any()).optional(), + config: z.lazy(() => SyncListResponseStackStateConfig$inboundSchema), + controllerPlatform: z.nullable( + z.union([SyncListResponseControllerPlatformEnum$inboundSchema, z.any()]), + ).optional(), + dependencies: z.array( + z.lazy(() => SyncListResponseStackStateDependency$inboundSchema), + ).optional(), + error: z.nullable( z.union([ - z.lazy(() => SyncListResponsePoolsFixed$inboundSchema), - z.lazy(() => SyncListResponsePoolsAutoscale$inboundSchema), + z.lazy(() => SyncListResponseErrorStackState$inboundSchema), + z.any(), + ]), + ).optional(), + lastFailedState: z.nullable(z.any()).optional(), + lifecycle: z.nullable( + z.union([SyncListResponseLifecycleStackStateEnum$inboundSchema, z.any()]), + ).optional(), + outputs: z.nullable( + z.union([z.lazy(() => SyncListResponseOutputs$inboundSchema), z.any()]), + ).optional(), + previousConfig: z.nullable( + z.union([ + z.lazy(() => SyncListResponsePreviousConfig$inboundSchema), + z.any(), ]), ).optional(), + remoteBindingParams: z.nullable(z.any()).optional(), + retryAttempt: z.int().optional(), + status: SyncListResponseStackStateStatus$inboundSchema, + type: z.string(), +}).transform((v) => { + return remap$(v, { + "_internal": "internal", + }); }); -export function syncListResponseComputeFromJSON( +export function syncListResponseStackStateResourcesFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => SyncListResponseCompute$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseCompute' from JSON`, + (x) => + SyncListResponseStackStateResources$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseStackStateResources' from JSON`, ); } /** @internal */ -export const SyncListResponseComputeUnion$inboundSchema: z.ZodType< - SyncListResponseComputeUnion, +export const SyncListResponseStackState$inboundSchema: z.ZodType< + SyncListResponseStackState, unknown -> = z.union([z.lazy(() => SyncListResponseCompute$inboundSchema), z.any()]); +> = z.object({ + platform: SyncListResponseStackStatePlatform$inboundSchema, + resourcePrefix: z.string(), + resources: z.record( + z.string(), + z.lazy(() => SyncListResponseStackStateResources$inboundSchema), + ), +}); -export function syncListResponseComputeUnionFromJSON( +export function syncListResponseStackStateFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => SyncListResponseComputeUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseComputeUnion' from JSON`, + (x) => SyncListResponseStackState$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponseStackState' from JSON`, ); } /** @internal */ -export const SyncListResponseDeploymentModel$inboundSchema: z.ZodEnum< - typeof SyncListResponseDeploymentModel -> = z.enum(SyncListResponseDeploymentModel); +export const SyncListResponseInitialSetupAuthority$inboundSchema: z.ZodEnum< + typeof SyncListResponseInitialSetupAuthority +> = z.enum(SyncListResponseInitialSetupAuthority); /** @internal */ -export const SyncListResponseAws$inboundSchema: z.ZodType< - SyncListResponseAws, - unknown -> = z.object({ - certificateArn: z.string(), -}); +export const SyncListResponsePendingPreparedStackTypeStringList$inboundSchema: + z.ZodEnum = z.enum( + SyncListResponsePendingPreparedStackTypeStringList, + ); -export function syncListResponseAwsFromJSON( +/** @internal */ +export const SyncListResponsePendingPreparedStackDefaultStringList$inboundSchema: + z.ZodType = z + .object({ + type: SyncListResponsePendingPreparedStackTypeStringList$inboundSchema, + value: z.array(z.string()), + }); + +export function syncListResponsePendingPreparedStackDefaultStringListFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackDefaultStringList, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseAws$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseAws' from JSON`, + (x) => + SyncListResponsePendingPreparedStackDefaultStringList$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackDefaultStringList' from JSON`, ); } /** @internal */ -export const SyncListResponseAwsUnion$inboundSchema: z.ZodType< - SyncListResponseAwsUnion, - unknown -> = z.union([z.lazy(() => SyncListResponseAws$inboundSchema), z.any()]); +export const SyncListResponsePendingPreparedStackTypeBoolean$inboundSchema: + z.ZodEnum = z.enum( + SyncListResponsePendingPreparedStackTypeBoolean, + ); -export function syncListResponseAwsUnionFromJSON( +/** @internal */ +export const SyncListResponsePendingPreparedStackDefaultBoolean$inboundSchema: + z.ZodType = z + .object({ + type: SyncListResponsePendingPreparedStackTypeBoolean$inboundSchema, + value: z.boolean(), + }); + +export function syncListResponsePendingPreparedStackDefaultBooleanFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackDefaultBoolean, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseAwsUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseAwsUnion' from JSON`, + (x) => + SyncListResponsePendingPreparedStackDefaultBoolean$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackDefaultBoolean' from JSON`, ); } /** @internal */ -export const SyncListResponseAzureStackSettings$inboundSchema: z.ZodType< - SyncListResponseAzureStackSettings, - unknown -> = z.object({ - keyVaultCertificateId: z.string(), - keyVaultResourceId: z.nullable(z.string()).optional(), -}); +export const SyncListResponsePendingPreparedStackTypeNumber$inboundSchema: + z.ZodEnum = z.enum( + SyncListResponsePendingPreparedStackTypeNumber, + ); -export function syncListResponseAzureStackSettingsFromJSON( +/** @internal */ +export const SyncListResponsePendingPreparedStackDefaultNumber$inboundSchema: + z.ZodType = z + .object({ + type: SyncListResponsePendingPreparedStackTypeNumber$inboundSchema, + value: z.string(), + }); + +export function syncListResponsePendingPreparedStackDefaultNumberFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackDefaultNumber, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseAzureStackSettings$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseAzureStackSettings' from JSON`, + SyncListResponsePendingPreparedStackDefaultNumber$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackDefaultNumber' from JSON`, ); } /** @internal */ -export const SyncListResponseAzureUnion$inboundSchema: z.ZodType< - SyncListResponseAzureUnion, - unknown -> = z.union([ - z.lazy(() => SyncListResponseAzureStackSettings$inboundSchema), - z.any(), -]); +export const SyncListResponsePendingPreparedStackTypeString$inboundSchema: + z.ZodEnum = z.enum( + SyncListResponsePendingPreparedStackTypeString, + ); -export function syncListResponseAzureUnionFromJSON( +/** @internal */ +export const SyncListResponsePendingPreparedStackDefaultString$inboundSchema: + z.ZodType = z + .object({ + type: SyncListResponsePendingPreparedStackTypeString$inboundSchema, + value: z.string(), + }); + +export function syncListResponsePendingPreparedStackDefaultStringFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackDefaultString, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseAzureUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseAzureUnion' from JSON`, + (x) => + SyncListResponsePendingPreparedStackDefaultString$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackDefaultString' from JSON`, ); } /** @internal */ -export const SyncListResponseGcpStackSettings$inboundSchema: z.ZodType< - SyncListResponseGcpStackSettings, - unknown -> = z.object({ - certificateName: z.string(), -}); +export const SyncListResponsePendingPreparedStackDefaultUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => + SyncListResponsePendingPreparedStackDefaultString$inboundSchema + ), + z.lazy(() => + SyncListResponsePendingPreparedStackDefaultNumber$inboundSchema + ), + z.lazy(() => + SyncListResponsePendingPreparedStackDefaultBoolean$inboundSchema + ), + z.lazy(() => + SyncListResponsePendingPreparedStackDefaultStringList$inboundSchema + ), + z.any(), + ]); -export function syncListResponseGcpStackSettingsFromJSON( +export function syncListResponsePendingPreparedStackDefaultUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackDefaultUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseGcpStackSettings$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseGcpStackSettings' from JSON`, + (x) => + SyncListResponsePendingPreparedStackDefaultUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackDefaultUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseGcpUnion$inboundSchema: z.ZodType< - SyncListResponseGcpUnion, - unknown -> = z.union([ - z.lazy(() => SyncListResponseGcpStackSettings$inboundSchema), - z.any(), -]); +export const SyncListResponsePendingPreparedStackTypeEnvEnum$inboundSchema: + z.ZodEnum = z.enum( + SyncListResponsePendingPreparedStackTypeEnvEnum, + ); -export function syncListResponseGcpUnionFromJSON( +/** @internal */ +export const SyncListResponsePendingPreparedStackTypeUnion$inboundSchema: + z.ZodType = z.union([ + SyncListResponsePendingPreparedStackTypeEnvEnum$inboundSchema, + z.any(), + ]); + +export function syncListResponsePendingPreparedStackTypeUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackTypeUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseGcpUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseGcpUnion' from JSON`, + (x) => + SyncListResponsePendingPreparedStackTypeUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackTypeUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseTlsSecretRef$inboundSchema: z.ZodType< - SyncListResponseTlsSecretRef, +export const SyncListResponsePendingPreparedStackEnv$inboundSchema: z.ZodType< + SyncListResponsePendingPreparedStackEnv, unknown > = z.object({ - namespace: z.nullable(z.string()).optional(), - secretName: z.string(), + name: z.string(), + targetResources: z.nullable(z.array(z.string())).optional(), + type: z.nullable( + z.union([ + SyncListResponsePendingPreparedStackTypeEnvEnum$inboundSchema, + z.any(), + ]), + ).optional(), }); -export function syncListResponseTlsSecretRefFromJSON( +export function syncListResponsePendingPreparedStackEnvFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackEnv, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseTlsSecretRef$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseTlsSecretRef' from JSON`, + (x) => + SyncListResponsePendingPreparedStackEnv$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackEnv' from JSON`, ); } /** @internal */ -export const SyncListResponseDomainsKubernetes$inboundSchema: z.ZodType< - SyncListResponseDomainsKubernetes, - unknown -> = z.object({ - tlsSecretRef: z.lazy(() => SyncListResponseTlsSecretRef$inboundSchema), -}); +export const SyncListResponsePendingPreparedStackKind$inboundSchema: z.ZodEnum< + typeof SyncListResponsePendingPreparedStackKind +> = z.enum(SyncListResponsePendingPreparedStackKind); -export function syncListResponseDomainsKubernetesFromJSON( +/** @internal */ +export const SyncListResponsePendingPreparedStackPlatform$inboundSchema: + z.ZodEnum = z.enum( + SyncListResponsePendingPreparedStackPlatform, + ); + +/** @internal */ +export const SyncListResponsePendingPreparedStackProvidedBy$inboundSchema: + z.ZodEnum = z.enum( + SyncListResponsePendingPreparedStackProvidedBy, + ); + +/** @internal */ +export const SyncListResponsePendingPreparedStackValidation$inboundSchema: + z.ZodType = z.object( + { + format: z.nullable(z.string()).optional(), + max: z.nullable(z.string()).optional(), + maxItems: z.nullable(z.int()).optional(), + maxLength: z.nullable(z.int()).optional(), + min: z.nullable(z.string()).optional(), + minItems: z.nullable(z.int()).optional(), + minLength: z.nullable(z.int()).optional(), + pattern: z.nullable(z.string()).optional(), + values: z.nullable(z.array(z.string())).optional(), + }, + ); + +export function syncListResponsePendingPreparedStackValidationFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackValidation, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseDomainsKubernetes$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseDomainsKubernetes' from JSON`, + (x) => + SyncListResponsePendingPreparedStackValidation$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackValidation' from JSON`, ); } /** @internal */ -export const SyncListResponseDomainsKubernetesUnion$inboundSchema: z.ZodType< - SyncListResponseDomainsKubernetesUnion, - unknown -> = z.union([ - z.lazy(() => SyncListResponseDomainsKubernetes$inboundSchema), - z.any(), -]); +export const SyncListResponsePendingPreparedStackValidationUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => + SyncListResponsePendingPreparedStackValidation$inboundSchema + ), + z.any(), + ]); -export function syncListResponseDomainsKubernetesUnionFromJSON( +export function syncListResponsePendingPreparedStackValidationUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackValidationUnion, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseDomainsKubernetesUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseDomainsKubernetesUnion' from JSON`, + SyncListResponsePendingPreparedStackValidationUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackValidationUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseDomainsCertificate$inboundSchema: z.ZodType< - SyncListResponseDomainsCertificate, +export const SyncListResponsePendingPreparedStackInput$inboundSchema: z.ZodType< + SyncListResponsePendingPreparedStackInput, unknown > = z.object({ - aws: z.nullable( - z.union([z.lazy(() => SyncListResponseAws$inboundSchema), z.any()]), - ).optional(), - azure: z.nullable( + default: z.nullable( z.union([ - z.lazy(() => SyncListResponseAzureStackSettings$inboundSchema), + z.lazy(() => + SyncListResponsePendingPreparedStackDefaultString$inboundSchema + ), + z.lazy(() => + SyncListResponsePendingPreparedStackDefaultNumber$inboundSchema + ), + z.lazy(() => + SyncListResponsePendingPreparedStackDefaultBoolean$inboundSchema + ), + z.lazy(() => + SyncListResponsePendingPreparedStackDefaultStringList$inboundSchema + ), z.any(), ]), ).optional(), - gcp: z.nullable( - z.union([ - z.lazy(() => SyncListResponseGcpStackSettings$inboundSchema), - z.any(), - ]), + description: z.string(), + env: z.array( + z.lazy(() => SyncListResponsePendingPreparedStackEnv$inboundSchema), + ).optional(), + id: z.string(), + kind: SyncListResponsePendingPreparedStackKind$inboundSchema, + label: z.string(), + placeholder: z.nullable(z.string()).optional(), + platforms: z.nullable( + z.array(SyncListResponsePendingPreparedStackPlatform$inboundSchema), ).optional(), - kubernetes: z.nullable( + providedBy: z.array( + SyncListResponsePendingPreparedStackProvidedBy$inboundSchema, + ), + required: z.boolean(), + validation: z.nullable( z.union([ - z.lazy(() => SyncListResponseDomainsKubernetes$inboundSchema), + z.lazy(() => + SyncListResponsePendingPreparedStackValidation$inboundSchema + ), z.any(), ]), ).optional(), }); -export function syncListResponseDomainsCertificateFromJSON( +export function syncListResponsePendingPreparedStackInputFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackInput, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseDomainsCertificate$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseDomainsCertificate' from JSON`, + SyncListResponsePendingPreparedStackInput$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackInput' from JSON`, ); } /** @internal */ -export const SyncListResponseCustomDomains$inboundSchema: z.ZodType< - SyncListResponseCustomDomains, - unknown -> = z.object({ - certificate: z.lazy(() => SyncListResponseDomainsCertificate$inboundSchema), - domain: z.string(), -}); +export const SyncListResponsePendingPreparedStackManagementEnum$inboundSchema: + z.ZodEnum = z.enum( + SyncListResponsePendingPreparedStackManagementEnum, + ); -export function syncListResponseCustomDomainsFromJSON( +/** @internal */ +export const SyncListResponsePendingPreparedStackOverrideAwResource$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); + +export function syncListResponsePendingPreparedStackOverrideAwResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackOverrideAwResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseCustomDomains$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseCustomDomains' from JSON`, + (x) => + SyncListResponsePendingPreparedStackOverrideAwResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePendingPreparedStackOverrideAwResource' from JSON`, ); } /** @internal */ -export const SyncListResponseModeLoadBalancer$inboundSchema: z.ZodEnum< - typeof SyncListResponseModeLoadBalancer -> = z.enum(SyncListResponseModeLoadBalancer); - -/** @internal */ -export const SyncListResponsePublicEndpointTargetLoadBalancer$inboundSchema: - z.ZodType = z +export const SyncListResponsePendingPreparedStackOverrideAwStack$inboundSchema: + z.ZodType = z .object({ - cnameTarget: z.string(), - mode: SyncListResponseModeLoadBalancer$inboundSchema, + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), }); -export function syncListResponsePublicEndpointTargetLoadBalancerFromJSON( +export function syncListResponsePendingPreparedStackOverrideAwStackFromJSON( jsonString: string, ): SafeParseResult< - SyncListResponsePublicEndpointTargetLoadBalancer, + SyncListResponsePendingPreparedStackOverrideAwStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncListResponsePublicEndpointTargetLoadBalancer$inboundSchema.parse( + SyncListResponsePendingPreparedStackOverrideAwStack$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncListResponsePublicEndpointTargetLoadBalancer' from JSON`, + `Failed to parse 'SyncListResponsePendingPreparedStackOverrideAwStack' from JSON`, ); } /** @internal */ -export const SyncListResponseModeMachineAddresses$inboundSchema: z.ZodEnum< - typeof SyncListResponseModeMachineAddresses -> = z.enum(SyncListResponseModeMachineAddresses); - -/** @internal */ -export const SyncListResponsePublicEndpointTargetMachineAddresses$inboundSchema: - z.ZodType = z +export const SyncListResponsePendingPreparedStackOverrideAwBinding$inboundSchema: + z.ZodType = z .object({ - mode: SyncListResponseModeMachineAddresses$inboundSchema, + resource: z.lazy(() => + SyncListResponsePendingPreparedStackOverrideAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncListResponsePendingPreparedStackOverrideAwStack$inboundSchema + ).optional(), }); -export function syncListResponsePublicEndpointTargetMachineAddressesFromJSON( +export function syncListResponsePendingPreparedStackOverrideAwBindingFromJSON( jsonString: string, ): SafeParseResult< - SyncListResponsePublicEndpointTargetMachineAddresses, + SyncListResponsePendingPreparedStackOverrideAwBinding, SDKValidationError > { return safeParse( jsonString, (x) => - SyncListResponsePublicEndpointTargetMachineAddresses$inboundSchema.parse( + SyncListResponsePendingPreparedStackOverrideAwBinding$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncListResponsePublicEndpointTargetMachineAddresses' from JSON`, + `Failed to parse 'SyncListResponsePendingPreparedStackOverrideAwBinding' from JSON`, ); } /** @internal */ -export const SyncListResponsePublicEndpointTargetUnion$inboundSchema: z.ZodType< - SyncListResponsePublicEndpointTargetUnion, - unknown -> = z.union([ - z.lazy(() => SyncListResponsePublicEndpointTargetLoadBalancer$inboundSchema), - z.lazy(() => - SyncListResponsePublicEndpointTargetMachineAddresses$inboundSchema - ), - z.any(), -]); +export const SyncListResponsePendingPreparedStackOverrideEffect$inboundSchema: + z.ZodEnum = z.enum( + SyncListResponsePendingPreparedStackOverrideEffect, + ); -export function syncListResponsePublicEndpointTargetUnionFromJSON( +/** @internal */ +export const SyncListResponsePendingPreparedStackOverrideAwGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncListResponsePendingPreparedStackOverrideAwGrantFromJSON( jsonString: string, ): SafeParseResult< - SyncListResponsePublicEndpointTargetUnion, + SyncListResponsePendingPreparedStackOverrideAwGrant, SDKValidationError > { return safeParse( jsonString, (x) => - SyncListResponsePublicEndpointTargetUnion$inboundSchema.parse( + SyncListResponsePendingPreparedStackOverrideAwGrant$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncListResponsePublicEndpointTargetUnion' from JSON`, + `Failed to parse 'SyncListResponsePendingPreparedStackOverrideAwGrant' from JSON`, ); } /** @internal */ -export const SyncListResponseDomains$inboundSchema: z.ZodType< - SyncListResponseDomains, - unknown -> = z.object({ - customDomains: z.nullable( - z.record( - z.string(), - z.lazy(() => SyncListResponseCustomDomains$inboundSchema), - ), - ).optional(), - publicEndpointTarget: z.nullable( - z.union([ - z.lazy(() => - SyncListResponsePublicEndpointTargetLoadBalancer$inboundSchema +export const SyncListResponsePendingPreparedStackOverrideAw$inboundSchema: + z.ZodType = z.object( + { + binding: z.lazy(() => + SyncListResponsePendingPreparedStackOverrideAwBinding$inboundSchema ), - z.lazy(() => - SyncListResponsePublicEndpointTargetMachineAddresses$inboundSchema + description: z.nullable(z.string()).optional(), + effect: SyncListResponsePendingPreparedStackOverrideEffect$inboundSchema + .optional(), + grant: z.lazy(() => + SyncListResponsePendingPreparedStackOverrideAwGrant$inboundSchema ), - z.any(), - ]), - ).optional(), -}); + label: z.nullable(z.string()).optional(), + }, + ); -export function syncListResponseDomainsFromJSON( +export function syncListResponsePendingPreparedStackOverrideAwFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackOverrideAw, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseDomains$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseDomains' from JSON`, + (x) => + SyncListResponsePendingPreparedStackOverrideAw$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackOverrideAw' from JSON`, ); } /** @internal */ -export const SyncListResponseDomainsUnion$inboundSchema: z.ZodType< - SyncListResponseDomainsUnion, - unknown -> = z.union([z.lazy(() => SyncListResponseDomains$inboundSchema), z.any()]); +export const SyncListResponsePendingPreparedStackOverrideAzureResource$inboundSchema: + z.ZodType< + SyncListResponsePendingPreparedStackOverrideAzureResource, + unknown + > = z.object({ + scope: z.string(), + }); -export function syncListResponseDomainsUnionFromJSON( +export function syncListResponsePendingPreparedStackOverrideAzureResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackOverrideAzureResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseDomainsUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseDomainsUnion' from JSON`, + (x) => + SyncListResponsePendingPreparedStackOverrideAzureResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePendingPreparedStackOverrideAzureResource' from JSON`, ); } /** @internal */ -export const SyncListResponseExternalBindings$inboundSchema: z.ZodType< - SyncListResponseExternalBindings, - unknown -> = z.object({}); +export const SyncListResponsePendingPreparedStackOverrideAzureStack$inboundSchema: + z.ZodType = z + .object({ + scope: z.string(), + }); -export function syncListResponseExternalBindingsFromJSON( +export function syncListResponsePendingPreparedStackOverrideAzureStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackOverrideAzureStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseExternalBindings$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseExternalBindings' from JSON`, + (x) => + SyncListResponsePendingPreparedStackOverrideAzureStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePendingPreparedStackOverrideAzureStack' from JSON`, ); } /** @internal */ -export const SyncListResponseHeartbeats$inboundSchema: z.ZodEnum< - typeof SyncListResponseHeartbeats -> = z.enum(SyncListResponseHeartbeats); - -/** @internal */ -export const SyncListResponseCloud$inboundSchema: z.ZodType< - SyncListResponseCloud, - unknown -> = z.object({ - accountId: z.nullable(z.string()).optional(), - clusterId: z.nullable(z.string()).optional(), - clusterName: z.nullable(z.string()).optional(), - projectId: z.nullable(z.string()).optional(), - region: z.nullable(z.string()).optional(), - resourceGroup: z.nullable(z.string()).optional(), - subscriptionId: z.nullable(z.string()).optional(), -}); +export const SyncListResponsePendingPreparedStackOverrideAzureBinding$inboundSchema: + z.ZodType = + z.object({ + resource: z.lazy(() => + SyncListResponsePendingPreparedStackOverrideAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncListResponsePendingPreparedStackOverrideAzureStack$inboundSchema + ).optional(), + }); -export function syncListResponseCloudFromJSON( +export function syncListResponsePendingPreparedStackOverrideAzureBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackOverrideAzureBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseCloud$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseCloud' from JSON`, + (x) => + SyncListResponsePendingPreparedStackOverrideAzureBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePendingPreparedStackOverrideAzureBinding' from JSON`, ); } /** @internal */ -export const SyncListResponseCloudUnion$inboundSchema: z.ZodType< - SyncListResponseCloudUnion, - unknown -> = z.union([z.lazy(() => SyncListResponseCloud$inboundSchema), z.any()]); +export const SyncListResponsePendingPreparedStackOverrideAzureGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function syncListResponseCloudUnionFromJSON( +export function syncListResponsePendingPreparedStackOverrideAzureGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackOverrideAzureGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseCloudUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseCloudUnion' from JSON`, + (x) => + SyncListResponsePendingPreparedStackOverrideAzureGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePendingPreparedStackOverrideAzureGrant' from JSON`, ); } /** @internal */ -export const SyncListResponseOwnership$inboundSchema: z.ZodEnum< - typeof SyncListResponseOwnership -> = z.enum(SyncListResponseOwnership); +export const SyncListResponsePendingPreparedStackOverrideAzure$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + SyncListResponsePendingPreparedStackOverrideAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncListResponsePendingPreparedStackOverrideAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncListResponsePendingPreparedStackOverrideAzureFromJSON( + jsonString: string, +): SafeParseResult< + SyncListResponsePendingPreparedStackOverrideAzure, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncListResponsePendingPreparedStackOverrideAzure$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackOverrideAzure' from JSON`, + ); +} /** @internal */ -export const SyncListResponseCluster$inboundSchema: z.ZodType< - SyncListResponseCluster, - unknown -> = z.object({ - cloud: z.nullable( - z.union([z.lazy(() => SyncListResponseCloud$inboundSchema), z.any()]), - ).optional(), - namespace: z.nullable(z.string()).optional(), - ownership: SyncListResponseOwnership$inboundSchema, -}); +export const SyncListResponsePendingPreparedStackOverrideConditionResource$inboundSchema: + z.ZodType< + SyncListResponsePendingPreparedStackOverrideConditionResource, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function syncListResponseClusterFromJSON( +export function syncListResponsePendingPreparedStackOverrideConditionResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackOverrideConditionResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseCluster$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseCluster' from JSON`, + (x) => + SyncListResponsePendingPreparedStackOverrideConditionResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePendingPreparedStackOverrideConditionResource' from JSON`, ); } /** @internal */ -export const SyncListResponseClusterUnion$inboundSchema: z.ZodType< - SyncListResponseClusterUnion, - unknown -> = z.union([z.lazy(() => SyncListResponseCluster$inboundSchema), z.any()]); +export const SyncListResponsePendingPreparedStackOverrideResourceConditionUnion$inboundSchema: + z.ZodType< + SyncListResponsePendingPreparedStackOverrideResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncListResponsePendingPreparedStackOverrideConditionResource$inboundSchema + ), + z.any(), + ]); -export function syncListResponseClusterUnionFromJSON( +export function syncListResponsePendingPreparedStackOverrideResourceConditionUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackOverrideResourceConditionUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseClusterUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseClusterUnion' from JSON`, + (x) => + SyncListResponsePendingPreparedStackOverrideResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePendingPreparedStackOverrideResourceConditionUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseCertificateNone2$inboundSchema: z.ZodType< - SyncListResponseCertificateNone2, - unknown -> = z.object({ - mode: z.literal("none"), -}); +export const SyncListResponsePendingPreparedStackOverrideGcpResource$inboundSchema: + z.ZodType = + z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncListResponsePendingPreparedStackOverrideConditionResource$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function syncListResponseCertificateNone2FromJSON( +export function syncListResponsePendingPreparedStackOverrideGcpResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackOverrideGcpResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseCertificateNone2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseCertificateNone2' from JSON`, + (x) => + SyncListResponsePendingPreparedStackOverrideGcpResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePendingPreparedStackOverrideGcpResource' from JSON`, ); } /** @internal */ -export const SyncListResponseCertificateManagedTLSSecret2$inboundSchema: - z.ZodType = z.object({ - mode: z.literal("managedTlsSecret"), - secretNameTemplate: z.string(), +export const SyncListResponsePendingPreparedStackOverrideConditionStack$inboundSchema: + z.ZodType< + SyncListResponsePendingPreparedStackOverrideConditionStack, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), }); -export function syncListResponseCertificateManagedTLSSecret2FromJSON( +export function syncListResponsePendingPreparedStackOverrideConditionStackFromJSON( jsonString: string, ): SafeParseResult< - SyncListResponseCertificateManagedTLSSecret2, + SyncListResponsePendingPreparedStackOverrideConditionStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncListResponseCertificateManagedTLSSecret2$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncListResponseCertificateManagedTLSSecret2' from JSON`, + SyncListResponsePendingPreparedStackOverrideConditionStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePendingPreparedStackOverrideConditionStack' from JSON`, ); } /** @internal */ -export const SyncListResponseCertificateAwsAcmArn2$inboundSchema: z.ZodType< - SyncListResponseCertificateAwsAcmArn2, - unknown -> = z.object({ - certificateArn: z.string(), - mode: z.literal("awsAcmArn"), -}); +export const SyncListResponsePendingPreparedStackOverrideStackConditionUnion$inboundSchema: + z.ZodType< + SyncListResponsePendingPreparedStackOverrideStackConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncListResponsePendingPreparedStackOverrideConditionStack$inboundSchema + ), + z.any(), + ]); -export function syncListResponseCertificateAwsAcmArn2FromJSON( +export function syncListResponsePendingPreparedStackOverrideStackConditionUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackOverrideStackConditionUnion, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseCertificateAwsAcmArn2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseCertificateAwsAcmArn2' from JSON`, + SyncListResponsePendingPreparedStackOverrideStackConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePendingPreparedStackOverrideStackConditionUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseCertificateManagedAcmImport2$inboundSchema: - z.ZodType = z.object({ - mode: z.literal("managedAcmImport"), - region: z.nullable(z.string()).optional(), - tags: z.record(z.string(), z.string()).optional(), - }); +export const SyncListResponsePendingPreparedStackOverrideGcpStack$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncListResponsePendingPreparedStackOverrideConditionStack$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function syncListResponseCertificateManagedAcmImport2FromJSON( +export function syncListResponsePendingPreparedStackOverrideGcpStackFromJSON( jsonString: string, ): SafeParseResult< - SyncListResponseCertificateManagedAcmImport2, + SyncListResponsePendingPreparedStackOverrideGcpStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncListResponseCertificateManagedAcmImport2$inboundSchema.parse( + SyncListResponsePendingPreparedStackOverrideGcpStack$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncListResponseCertificateManagedAcmImport2' from JSON`, + `Failed to parse 'SyncListResponsePendingPreparedStackOverrideGcpStack' from JSON`, ); } /** @internal */ -export const SyncListResponseCertificateTLSSecretRef2$inboundSchema: z.ZodType< - SyncListResponseCertificateTLSSecretRef2, - unknown -> = z.object({ - namespace: z.nullable(z.string()).optional(), - secretName: z.string(), - mode: z.literal("tlsSecretRef"), -}); +export const SyncListResponsePendingPreparedStackOverrideGcpBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + SyncListResponsePendingPreparedStackOverrideGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncListResponsePendingPreparedStackOverrideGcpStack$inboundSchema + ).optional(), + }); -export function syncListResponseCertificateTLSSecretRef2FromJSON( +export function syncListResponsePendingPreparedStackOverrideGcpBindingFromJSON( jsonString: string, ): SafeParseResult< - SyncListResponseCertificateTLSSecretRef2, + SyncListResponsePendingPreparedStackOverrideGcpBinding, SDKValidationError > { return safeParse( jsonString, (x) => - SyncListResponseCertificateTLSSecretRef2$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncListResponseCertificateTLSSecretRef2' from JSON`, + SyncListResponsePendingPreparedStackOverrideGcpBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePendingPreparedStackOverrideGcpBinding' from JSON`, ); } /** @internal */ -export const SyncListResponseCertificateUnion2$inboundSchema: z.ZodType< - SyncListResponseCertificateUnion2, - unknown -> = z.union([ - z.lazy(() => SyncListResponseCertificateTLSSecretRef2$inboundSchema), - z.lazy(() => SyncListResponseCertificateManagedAcmImport2$inboundSchema), - z.lazy(() => SyncListResponseCertificateAwsAcmArn2$inboundSchema), - z.lazy(() => SyncListResponseCertificateManagedTLSSecret2$inboundSchema), - z.lazy(() => SyncListResponseCertificateNone2$inboundSchema), -]); +export const SyncListResponsePendingPreparedStackOverrideGcpGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function syncListResponseCertificateUnion2FromJSON( +export function syncListResponsePendingPreparedStackOverrideGcpGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackOverrideGcpGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseCertificateUnion2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseCertificateUnion2' from JSON`, + (x) => + SyncListResponsePendingPreparedStackOverrideGcpGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackOverrideGcpGrant' from JSON`, ); } /** @internal */ -export const SyncListResponseModeCustom$inboundSchema: z.ZodEnum< - typeof SyncListResponseModeCustom -> = z.enum(SyncListResponseModeCustom); - -/** @internal */ -export const SyncListResponseProviderAzureApplicationGatewayForContainersEnum4$inboundSchema: - z.ZodEnum< - typeof SyncListResponseProviderAzureApplicationGatewayForContainersEnum4 - > = z.enum(SyncListResponseProviderAzureApplicationGatewayForContainersEnum4); - -/** @internal */ -export const SyncListResponseProviderAzureApplicationGatewayForContainers4$inboundSchema: - z.ZodType< - SyncListResponseProviderAzureApplicationGatewayForContainers4, - unknown - > = z.object({ - albName: z.nullable(z.string()).optional(), - albNamespace: z.nullable(z.string()).optional(), - frontend: z.string(), - provider: - SyncListResponseProviderAzureApplicationGatewayForContainersEnum4$inboundSchema, - }); +export const SyncListResponsePendingPreparedStackOverrideGcp$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + SyncListResponsePendingPreparedStackOverrideGcpBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncListResponsePendingPreparedStackOverrideGcpGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function syncListResponseProviderAzureApplicationGatewayForContainers4FromJSON( +export function syncListResponsePendingPreparedStackOverrideGcpFromJSON( jsonString: string, ): SafeParseResult< - SyncListResponseProviderAzureApplicationGatewayForContainers4, + SyncListResponsePendingPreparedStackOverrideGcp, SDKValidationError > { return safeParse( jsonString, (x) => - SyncListResponseProviderAzureApplicationGatewayForContainers4$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProviderAzureApplicationGatewayForContainers4' from JSON`, + SyncListResponsePendingPreparedStackOverrideGcp$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackOverrideGcp' from JSON`, ); } /** @internal */ -export const SyncListResponseProviderGkeGatewayEnum4$inboundSchema: z.ZodEnum< - typeof SyncListResponseProviderGkeGatewayEnum4 -> = z.enum(SyncListResponseProviderGkeGatewayEnum4); - -/** @internal */ -export const SyncListResponseProviderGkeGateway4$inboundSchema: z.ZodType< - SyncListResponseProviderGkeGateway4, - unknown -> = z.object({ - provider: SyncListResponseProviderGkeGatewayEnum4$inboundSchema, - staticAddressName: z.nullable(z.string()).optional(), -}); +export const SyncListResponsePendingPreparedStackOverridePlatforms$inboundSchema: + z.ZodType = z + .object({ + aws: z.nullable( + z.array(z.lazy(() => + SyncListResponsePendingPreparedStackOverrideAw$inboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + SyncListResponsePendingPreparedStackOverrideAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + SyncListResponsePendingPreparedStackOverrideGcp$inboundSchema + )), + ).optional(), + }); -export function syncListResponseProviderGkeGateway4FromJSON( +export function syncListResponsePendingPreparedStackOverridePlatformsFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackOverridePlatforms, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseProviderGkeGateway4$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProviderGkeGateway4' from JSON`, + SyncListResponsePendingPreparedStackOverridePlatforms$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackOverridePlatforms' from JSON`, ); } /** @internal */ -export const SyncListResponseProviderAwsAlbEnum4$inboundSchema: z.ZodEnum< - typeof SyncListResponseProviderAwsAlbEnum4 -> = z.enum(SyncListResponseProviderAwsAlbEnum4); - -/** @internal */ -export const SyncListResponseProviderAwsAlb4$inboundSchema: z.ZodType< - SyncListResponseProviderAwsAlb4, - unknown -> = z.object({ - ipAddressType: z.nullable(z.string()).optional(), - provider: SyncListResponseProviderAwsAlbEnum4$inboundSchema, - scheme: z.string(), - subnetIds: z.array(z.string()).optional(), - targetType: z.string(), -}); +export const SyncListResponsePendingPreparedStackOverride$inboundSchema: + z.ZodType = z.object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncListResponsePendingPreparedStackOverridePlatforms$inboundSchema + ), + }); -export function syncListResponseProviderAwsAlb4FromJSON( +export function syncListResponsePendingPreparedStackOverrideFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackOverride, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseProviderAwsAlb4$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProviderAwsAlb4' from JSON`, + (x) => + SyncListResponsePendingPreparedStackOverride$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackOverride' from JSON`, ); } /** @internal */ -export const SyncListResponseProviderUnion4$inboundSchema: z.ZodType< - SyncListResponseProviderUnion4, - unknown -> = z.union([ - z.lazy(() => SyncListResponseProviderAwsAlb4$inboundSchema), - z.lazy(() => - SyncListResponseProviderAzureApplicationGatewayForContainers4$inboundSchema - ), - z.lazy(() => SyncListResponseProviderGkeGateway4$inboundSchema), - z.any(), -]); +export const SyncListResponsePendingPreparedStackOverrideUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => SyncListResponsePendingPreparedStackOverride$inboundSchema), + z.string(), + ]); -export function syncListResponseProviderUnion4FromJSON( +export function syncListResponsePendingPreparedStackOverrideUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackOverrideUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseProviderUnion4$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProviderUnion4' from JSON`, + (x) => + SyncListResponsePendingPreparedStackOverrideUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackOverrideUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseRouteGateway2$inboundSchema: z.ZodType< - SyncListResponseRouteGateway2, - unknown -> = z.object({ - annotations: z.record(z.string(), z.string()).optional(), - controller: z.nullable(z.string()).optional(), - gatewayClassName: z.string(), - labels: z.record(z.string(), z.string()).optional(), - listenerPort: z.int(), - provider: z.nullable( - z.union([ - z.lazy(() => SyncListResponseProviderAwsAlb4$inboundSchema), - z.lazy(() => - SyncListResponseProviderAzureApplicationGatewayForContainers4$inboundSchema +export const SyncListResponsePendingPreparedStackManagement2$inboundSchema: + z.ZodType = z + .object({ + override: z.record( + z.string(), + z.array(z.union([ + z.lazy(() => + SyncListResponsePendingPreparedStackOverride$inboundSchema + ), + z.string(), + ])), ), - z.lazy(() => SyncListResponseProviderGkeGateway4$inboundSchema), - z.any(), - ]), - ).optional(), - routeApi: z.literal("gateway"), -}); + }); -export function syncListResponseRouteGateway2FromJSON( +export function syncListResponsePendingPreparedStackManagement2FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackManagement2, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseRouteGateway2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseRouteGateway2' from JSON`, - ); -} - -/** @internal */ -export const SyncListResponseProviderAzureApplicationGatewayForContainersEnum3$inboundSchema: - z.ZodEnum< - typeof SyncListResponseProviderAzureApplicationGatewayForContainersEnum3 - > = z.enum(SyncListResponseProviderAzureApplicationGatewayForContainersEnum3); - -/** @internal */ -export const SyncListResponseProviderAzureApplicationGatewayForContainers3$inboundSchema: - z.ZodType< - SyncListResponseProviderAzureApplicationGatewayForContainers3, - unknown - > = z.object({ - albName: z.nullable(z.string()).optional(), - albNamespace: z.nullable(z.string()).optional(), - frontend: z.string(), - provider: - SyncListResponseProviderAzureApplicationGatewayForContainersEnum3$inboundSchema, - }); + (x) => + SyncListResponsePendingPreparedStackManagement2$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackManagement2' from JSON`, + ); +} -export function syncListResponseProviderAzureApplicationGatewayForContainers3FromJSON( +/** @internal */ +export const SyncListResponsePendingPreparedStackExtendAwResource$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); + +export function syncListResponsePendingPreparedStackExtendAwResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncListResponseProviderAzureApplicationGatewayForContainers3, + SyncListResponsePendingPreparedStackExtendAwResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncListResponseProviderAzureApplicationGatewayForContainers3$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProviderAzureApplicationGatewayForContainers3' from JSON`, + SyncListResponsePendingPreparedStackExtendAwResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackExtendAwResource' from JSON`, ); } /** @internal */ -export const SyncListResponseProviderGkeGatewayEnum3$inboundSchema: z.ZodEnum< - typeof SyncListResponseProviderGkeGatewayEnum3 -> = z.enum(SyncListResponseProviderGkeGatewayEnum3); +export const SyncListResponsePendingPreparedStackExtendAwStack$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); + +export function syncListResponsePendingPreparedStackExtendAwStackFromJSON( + jsonString: string, +): SafeParseResult< + SyncListResponsePendingPreparedStackExtendAwStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncListResponsePendingPreparedStackExtendAwStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackExtendAwStack' from JSON`, + ); +} /** @internal */ -export const SyncListResponseProviderGkeGateway3$inboundSchema: z.ZodType< - SyncListResponseProviderGkeGateway3, - unknown -> = z.object({ - provider: SyncListResponseProviderGkeGatewayEnum3$inboundSchema, - staticAddressName: z.nullable(z.string()).optional(), -}); +export const SyncListResponsePendingPreparedStackExtendAwBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + SyncListResponsePendingPreparedStackExtendAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncListResponsePendingPreparedStackExtendAwStack$inboundSchema + ).optional(), + }); -export function syncListResponseProviderGkeGateway3FromJSON( +export function syncListResponsePendingPreparedStackExtendAwBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackExtendAwBinding, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseProviderGkeGateway3$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProviderGkeGateway3' from JSON`, + SyncListResponsePendingPreparedStackExtendAwBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackExtendAwBinding' from JSON`, ); } /** @internal */ -export const SyncListResponseProviderAwsAlbEnum3$inboundSchema: z.ZodEnum< - typeof SyncListResponseProviderAwsAlbEnum3 -> = z.enum(SyncListResponseProviderAwsAlbEnum3); +export const SyncListResponsePendingPreparedStackExtendEffect$inboundSchema: + z.ZodEnum = z.enum( + SyncListResponsePendingPreparedStackExtendEffect, + ); /** @internal */ -export const SyncListResponseProviderAwsAlb3$inboundSchema: z.ZodType< - SyncListResponseProviderAwsAlb3, - unknown -> = z.object({ - ipAddressType: z.nullable(z.string()).optional(), - provider: SyncListResponseProviderAwsAlbEnum3$inboundSchema, - scheme: z.string(), - subnetIds: z.array(z.string()).optional(), - targetType: z.string(), -}); +export const SyncListResponsePendingPreparedStackExtendAwGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function syncListResponseProviderAwsAlb3FromJSON( +export function syncListResponsePendingPreparedStackExtendAwGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackExtendAwGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseProviderAwsAlb3$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProviderAwsAlb3' from JSON`, + (x) => + SyncListResponsePendingPreparedStackExtendAwGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackExtendAwGrant' from JSON`, ); } /** @internal */ -export const SyncListResponseProviderUnion3$inboundSchema: z.ZodType< - SyncListResponseProviderUnion3, - unknown -> = z.union([ - z.lazy(() => SyncListResponseProviderAwsAlb3$inboundSchema), - z.lazy(() => - SyncListResponseProviderAzureApplicationGatewayForContainers3$inboundSchema - ), - z.lazy(() => SyncListResponseProviderGkeGateway3$inboundSchema), - z.any(), -]); +export const SyncListResponsePendingPreparedStackExtendAw$inboundSchema: + z.ZodType = z.object({ + binding: z.lazy(() => + SyncListResponsePendingPreparedStackExtendAwBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: SyncListResponsePendingPreparedStackExtendEffect$inboundSchema + .optional(), + grant: z.lazy(() => + SyncListResponsePendingPreparedStackExtendAwGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function syncListResponseProviderUnion3FromJSON( +export function syncListResponsePendingPreparedStackExtendAwFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackExtendAw, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseProviderUnion3$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProviderUnion3' from JSON`, + (x) => + SyncListResponsePendingPreparedStackExtendAw$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackExtendAw' from JSON`, ); } /** @internal */ -export const SyncListResponseRouteIngress2$inboundSchema: z.ZodType< - SyncListResponseRouteIngress2, - unknown -> = z.object({ - annotations: z.record(z.string(), z.string()).optional(), - controller: z.nullable(z.string()).optional(), - ingressClassName: z.string(), - labels: z.record(z.string(), z.string()).optional(), - provider: z.nullable( - z.union([ - z.lazy(() => SyncListResponseProviderAwsAlb3$inboundSchema), - z.lazy(() => - SyncListResponseProviderAzureApplicationGatewayForContainers3$inboundSchema - ), - z.lazy(() => SyncListResponseProviderGkeGateway3$inboundSchema), - z.any(), - ]), - ).optional(), - routeApi: z.literal("ingress"), -}); +export const SyncListResponsePendingPreparedStackExtendAzureResource$inboundSchema: + z.ZodType = + z.object({ + scope: z.string(), + }); -export function syncListResponseRouteIngress2FromJSON( +export function syncListResponsePendingPreparedStackExtendAzureResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackExtendAzureResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseRouteIngress2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseRouteIngress2' from JSON`, + (x) => + SyncListResponsePendingPreparedStackExtendAzureResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePendingPreparedStackExtendAzureResource' from JSON`, ); } /** @internal */ -export const SyncListResponseRouteUnion2$inboundSchema: z.ZodType< - SyncListResponseRouteUnion2, - unknown -> = z.union([ - z.lazy(() => SyncListResponseRouteIngress2$inboundSchema), - z.lazy(() => SyncListResponseRouteGateway2$inboundSchema), -]); +export const SyncListResponsePendingPreparedStackExtendAzureStack$inboundSchema: + z.ZodType = z + .object({ + scope: z.string(), + }); -export function syncListResponseRouteUnion2FromJSON( +export function syncListResponsePendingPreparedStackExtendAzureStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackExtendAzureStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseRouteUnion2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseRouteUnion2' from JSON`, + (x) => + SyncListResponsePendingPreparedStackExtendAzureStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackExtendAzureStack' from JSON`, ); } /** @internal */ -export const SyncListResponseExposureCustom$inboundSchema: z.ZodType< - SyncListResponseExposureCustom, - unknown -> = z.object({ - certificate: z.union([ - z.lazy(() => SyncListResponseCertificateTLSSecretRef2$inboundSchema), - z.lazy(() => SyncListResponseCertificateManagedAcmImport2$inboundSchema), - z.lazy(() => SyncListResponseCertificateAwsAcmArn2$inboundSchema), - z.lazy(() => SyncListResponseCertificateManagedTLSSecret2$inboundSchema), - z.lazy(() => SyncListResponseCertificateNone2$inboundSchema), - ]), - domain: z.string(), - mode: SyncListResponseModeCustom$inboundSchema, - route: z.union([ - z.lazy(() => SyncListResponseRouteIngress2$inboundSchema), - z.lazy(() => SyncListResponseRouteGateway2$inboundSchema), - ]), -}); +export const SyncListResponsePendingPreparedStackExtendAzureBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + SyncListResponsePendingPreparedStackExtendAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncListResponsePendingPreparedStackExtendAzureStack$inboundSchema + ).optional(), + }); -export function syncListResponseExposureCustomFromJSON( +export function syncListResponsePendingPreparedStackExtendAzureBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackExtendAzureBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseExposureCustom$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseExposureCustom' from JSON`, + (x) => + SyncListResponsePendingPreparedStackExtendAzureBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePendingPreparedStackExtendAzureBinding' from JSON`, ); } /** @internal */ -export const SyncListResponseCertificateNone1$inboundSchema: z.ZodType< - SyncListResponseCertificateNone1, - unknown -> = z.object({ - mode: z.literal("none"), -}); +export const SyncListResponsePendingPreparedStackExtendAzureGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function syncListResponseCertificateNone1FromJSON( +export function syncListResponsePendingPreparedStackExtendAzureGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackExtendAzureGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseCertificateNone1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseCertificateNone1' from JSON`, + (x) => + SyncListResponsePendingPreparedStackExtendAzureGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackExtendAzureGrant' from JSON`, ); } /** @internal */ -export const SyncListResponseCertificateManagedTLSSecret1$inboundSchema: - z.ZodType = z.object({ - mode: z.literal("managedTlsSecret"), - secretNameTemplate: z.string(), - }); +export const SyncListResponsePendingPreparedStackExtendAzure$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + SyncListResponsePendingPreparedStackExtendAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncListResponsePendingPreparedStackExtendAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function syncListResponseCertificateManagedTLSSecret1FromJSON( +export function syncListResponsePendingPreparedStackExtendAzureFromJSON( jsonString: string, ): SafeParseResult< - SyncListResponseCertificateManagedTLSSecret1, + SyncListResponsePendingPreparedStackExtendAzure, SDKValidationError > { return safeParse( jsonString, (x) => - SyncListResponseCertificateManagedTLSSecret1$inboundSchema.parse( + SyncListResponsePendingPreparedStackExtendAzure$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncListResponseCertificateManagedTLSSecret1' from JSON`, + `Failed to parse 'SyncListResponsePendingPreparedStackExtendAzure' from JSON`, ); } /** @internal */ -export const SyncListResponseCertificateAwsAcmArn1$inboundSchema: z.ZodType< - SyncListResponseCertificateAwsAcmArn1, - unknown -> = z.object({ - certificateArn: z.string(), - mode: z.literal("awsAcmArn"), -}); +export const SyncListResponsePendingPreparedStackExtendConditionResource$inboundSchema: + z.ZodType< + SyncListResponsePendingPreparedStackExtendConditionResource, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function syncListResponseCertificateAwsAcmArn1FromJSON( +export function syncListResponsePendingPreparedStackExtendConditionResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackExtendConditionResource, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseCertificateAwsAcmArn1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseCertificateAwsAcmArn1' from JSON`, + SyncListResponsePendingPreparedStackExtendConditionResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePendingPreparedStackExtendConditionResource' from JSON`, ); } /** @internal */ -export const SyncListResponseCertificateManagedAcmImport1$inboundSchema: - z.ZodType = z.object({ - mode: z.literal("managedAcmImport"), - region: z.nullable(z.string()).optional(), - tags: z.record(z.string(), z.string()).optional(), - }); +export const SyncListResponsePendingPreparedStackExtendResourceConditionUnion$inboundSchema: + z.ZodType< + SyncListResponsePendingPreparedStackExtendResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncListResponsePendingPreparedStackExtendConditionResource$inboundSchema + ), + z.any(), + ]); -export function syncListResponseCertificateManagedAcmImport1FromJSON( +export function syncListResponsePendingPreparedStackExtendResourceConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncListResponseCertificateManagedAcmImport1, + SyncListResponsePendingPreparedStackExtendResourceConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncListResponseCertificateManagedAcmImport1$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncListResponseCertificateManagedAcmImport1' from JSON`, + SyncListResponsePendingPreparedStackExtendResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePendingPreparedStackExtendResourceConditionUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseCertificateTLSSecretRef1$inboundSchema: z.ZodType< - SyncListResponseCertificateTLSSecretRef1, - unknown -> = z.object({ - namespace: z.nullable(z.string()).optional(), - secretName: z.string(), - mode: z.literal("tlsSecretRef"), -}); +export const SyncListResponsePendingPreparedStackExtendGcpResource$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncListResponsePendingPreparedStackExtendConditionResource$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function syncListResponseCertificateTLSSecretRef1FromJSON( +export function syncListResponsePendingPreparedStackExtendGcpResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncListResponseCertificateTLSSecretRef1, + SyncListResponsePendingPreparedStackExtendGcpResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncListResponseCertificateTLSSecretRef1$inboundSchema.parse( + SyncListResponsePendingPreparedStackExtendGcpResource$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncListResponseCertificateTLSSecretRef1' from JSON`, + `Failed to parse 'SyncListResponsePendingPreparedStackExtendGcpResource' from JSON`, ); } /** @internal */ -export const SyncListResponseCertificateUnion1$inboundSchema: z.ZodType< - SyncListResponseCertificateUnion1, - unknown -> = z.union([ - z.lazy(() => SyncListResponseCertificateTLSSecretRef1$inboundSchema), - z.lazy(() => SyncListResponseCertificateManagedAcmImport1$inboundSchema), - z.lazy(() => SyncListResponseCertificateAwsAcmArn1$inboundSchema), - z.lazy(() => SyncListResponseCertificateManagedTLSSecret1$inboundSchema), - z.lazy(() => SyncListResponseCertificateNone1$inboundSchema), -]); +export const SyncListResponsePendingPreparedStackExtendConditionStack$inboundSchema: + z.ZodType = + z.object({ + expression: z.string(), + title: z.string(), + }); -export function syncListResponseCertificateUnion1FromJSON( +export function syncListResponsePendingPreparedStackExtendConditionStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackExtendConditionStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseCertificateUnion1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseCertificateUnion1' from JSON`, + (x) => + SyncListResponsePendingPreparedStackExtendConditionStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePendingPreparedStackExtendConditionStack' from JSON`, ); } /** @internal */ -export const SyncListResponseModeGenerated$inboundSchema: z.ZodEnum< - typeof SyncListResponseModeGenerated -> = z.enum(SyncListResponseModeGenerated); - -/** @internal */ -export const SyncListResponseProviderAzureApplicationGatewayForContainersEnum2$inboundSchema: - z.ZodEnum< - typeof SyncListResponseProviderAzureApplicationGatewayForContainersEnum2 - > = z.enum(SyncListResponseProviderAzureApplicationGatewayForContainersEnum2); - -/** @internal */ -export const SyncListResponseProviderAzureApplicationGatewayForContainers2$inboundSchema: +export const SyncListResponsePendingPreparedStackExtendStackConditionUnion$inboundSchema: z.ZodType< - SyncListResponseProviderAzureApplicationGatewayForContainers2, + SyncListResponsePendingPreparedStackExtendStackConditionUnion, unknown - > = z.object({ - albName: z.nullable(z.string()).optional(), - albNamespace: z.nullable(z.string()).optional(), - frontend: z.string(), - provider: - SyncListResponseProviderAzureApplicationGatewayForContainersEnum2$inboundSchema, - }); + > = z.union([ + z.lazy(() => + SyncListResponsePendingPreparedStackExtendConditionStack$inboundSchema + ), + z.any(), + ]); -export function syncListResponseProviderAzureApplicationGatewayForContainers2FromJSON( +export function syncListResponsePendingPreparedStackExtendStackConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncListResponseProviderAzureApplicationGatewayForContainers2, + SyncListResponsePendingPreparedStackExtendStackConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncListResponseProviderAzureApplicationGatewayForContainers2$inboundSchema + SyncListResponsePendingPreparedStackExtendStackConditionUnion$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProviderAzureApplicationGatewayForContainers2' from JSON`, + `Failed to parse 'SyncListResponsePendingPreparedStackExtendStackConditionUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseProviderGkeGatewayEnum2$inboundSchema: z.ZodEnum< - typeof SyncListResponseProviderGkeGatewayEnum2 -> = z.enum(SyncListResponseProviderGkeGatewayEnum2); - -/** @internal */ -export const SyncListResponseProviderGkeGateway2$inboundSchema: z.ZodType< - SyncListResponseProviderGkeGateway2, - unknown -> = z.object({ - provider: SyncListResponseProviderGkeGatewayEnum2$inboundSchema, - staticAddressName: z.nullable(z.string()).optional(), -}); +export const SyncListResponsePendingPreparedStackExtendGcpStack$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncListResponsePendingPreparedStackExtendConditionStack$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function syncListResponseProviderGkeGateway2FromJSON( +export function syncListResponsePendingPreparedStackExtendGcpStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackExtendGcpStack, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseProviderGkeGateway2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProviderGkeGateway2' from JSON`, + SyncListResponsePendingPreparedStackExtendGcpStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackExtendGcpStack' from JSON`, ); } /** @internal */ -export const SyncListResponseProviderAwsAlbEnum2$inboundSchema: z.ZodEnum< - typeof SyncListResponseProviderAwsAlbEnum2 -> = z.enum(SyncListResponseProviderAwsAlbEnum2); - -/** @internal */ -export const SyncListResponseProviderAwsAlb2$inboundSchema: z.ZodType< - SyncListResponseProviderAwsAlb2, - unknown -> = z.object({ - ipAddressType: z.nullable(z.string()).optional(), - provider: SyncListResponseProviderAwsAlbEnum2$inboundSchema, - scheme: z.string(), - subnetIds: z.array(z.string()).optional(), - targetType: z.string(), -}); +export const SyncListResponsePendingPreparedStackExtendGcpBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + SyncListResponsePendingPreparedStackExtendGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncListResponsePendingPreparedStackExtendGcpStack$inboundSchema + ).optional(), + }); -export function syncListResponseProviderAwsAlb2FromJSON( +export function syncListResponsePendingPreparedStackExtendGcpBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackExtendGcpBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseProviderAwsAlb2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProviderAwsAlb2' from JSON`, + (x) => + SyncListResponsePendingPreparedStackExtendGcpBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackExtendGcpBinding' from JSON`, ); } /** @internal */ -export const SyncListResponseProviderUnion2$inboundSchema: z.ZodType< - SyncListResponseProviderUnion2, - unknown -> = z.union([ - z.lazy(() => SyncListResponseProviderAwsAlb2$inboundSchema), - z.lazy(() => - SyncListResponseProviderAzureApplicationGatewayForContainers2$inboundSchema - ), - z.lazy(() => SyncListResponseProviderGkeGateway2$inboundSchema), - z.any(), -]); +export const SyncListResponsePendingPreparedStackExtendGcpGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function syncListResponseProviderUnion2FromJSON( +export function syncListResponsePendingPreparedStackExtendGcpGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackExtendGcpGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseProviderUnion2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProviderUnion2' from JSON`, + (x) => + SyncListResponsePendingPreparedStackExtendGcpGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackExtendGcpGrant' from JSON`, ); } /** @internal */ -export const SyncListResponseRouteGateway1$inboundSchema: z.ZodType< - SyncListResponseRouteGateway1, - unknown -> = z.object({ - annotations: z.record(z.string(), z.string()).optional(), - controller: z.nullable(z.string()).optional(), - gatewayClassName: z.string(), - labels: z.record(z.string(), z.string()).optional(), - listenerPort: z.int(), - provider: z.nullable( - z.union([ - z.lazy(() => SyncListResponseProviderAwsAlb2$inboundSchema), - z.lazy(() => - SyncListResponseProviderAzureApplicationGatewayForContainers2$inboundSchema - ), - z.lazy(() => SyncListResponseProviderGkeGateway2$inboundSchema), - z.any(), - ]), - ).optional(), - routeApi: z.literal("gateway"), -}); +export const SyncListResponsePendingPreparedStackExtendGcp$inboundSchema: + z.ZodType = z.object({ + binding: z.lazy(() => + SyncListResponsePendingPreparedStackExtendGcpBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncListResponsePendingPreparedStackExtendGcpGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function syncListResponseRouteGateway1FromJSON( +export function syncListResponsePendingPreparedStackExtendGcpFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackExtendGcp, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseRouteGateway1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseRouteGateway1' from JSON`, + (x) => + SyncListResponsePendingPreparedStackExtendGcp$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackExtendGcp' from JSON`, ); } /** @internal */ -export const SyncListResponseProviderAzureApplicationGatewayForContainersEnum1$inboundSchema: - z.ZodEnum< - typeof SyncListResponseProviderAzureApplicationGatewayForContainersEnum1 - > = z.enum(SyncListResponseProviderAzureApplicationGatewayForContainersEnum1); +export const SyncListResponsePendingPreparedStackExtendPlatforms$inboundSchema: + z.ZodType = z + .object({ + aws: z.nullable( + z.array(z.lazy(() => + SyncListResponsePendingPreparedStackExtendAw$inboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + SyncListResponsePendingPreparedStackExtendAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + SyncListResponsePendingPreparedStackExtendGcp$inboundSchema + )), + ).optional(), + }); + +export function syncListResponsePendingPreparedStackExtendPlatformsFromJSON( + jsonString: string, +): SafeParseResult< + SyncListResponsePendingPreparedStackExtendPlatforms, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncListResponsePendingPreparedStackExtendPlatforms$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackExtendPlatforms' from JSON`, + ); +} /** @internal */ -export const SyncListResponseProviderAzureApplicationGatewayForContainers1$inboundSchema: - z.ZodType< - SyncListResponseProviderAzureApplicationGatewayForContainers1, - unknown - > = z.object({ - albName: z.nullable(z.string()).optional(), - albNamespace: z.nullable(z.string()).optional(), - frontend: z.string(), - provider: - SyncListResponseProviderAzureApplicationGatewayForContainersEnum1$inboundSchema, +export const SyncListResponsePendingPreparedStackExtend$inboundSchema: + z.ZodType = z.object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncListResponsePendingPreparedStackExtendPlatforms$inboundSchema + ), }); -export function syncListResponseProviderAzureApplicationGatewayForContainers1FromJSON( +export function syncListResponsePendingPreparedStackExtendFromJSON( jsonString: string, ): SafeParseResult< - SyncListResponseProviderAzureApplicationGatewayForContainers1, + SyncListResponsePendingPreparedStackExtend, SDKValidationError > { return safeParse( jsonString, (x) => - SyncListResponseProviderAzureApplicationGatewayForContainers1$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProviderAzureApplicationGatewayForContainers1' from JSON`, + SyncListResponsePendingPreparedStackExtend$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackExtend' from JSON`, ); } /** @internal */ -export const SyncListResponseProviderGkeGatewayEnum1$inboundSchema: z.ZodEnum< - typeof SyncListResponseProviderGkeGatewayEnum1 -> = z.enum(SyncListResponseProviderGkeGatewayEnum1); - -/** @internal */ -export const SyncListResponseProviderGkeGateway1$inboundSchema: z.ZodType< - SyncListResponseProviderGkeGateway1, - unknown -> = z.object({ - provider: SyncListResponseProviderGkeGatewayEnum1$inboundSchema, - staticAddressName: z.nullable(z.string()).optional(), -}); +export const SyncListResponsePendingPreparedStackExtendUnion$inboundSchema: + z.ZodType = z.union( + [ + z.lazy(() => SyncListResponsePendingPreparedStackExtend$inboundSchema), + z.string(), + ], + ); -export function syncListResponseProviderGkeGateway1FromJSON( +export function syncListResponsePendingPreparedStackExtendUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackExtendUnion, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseProviderGkeGateway1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProviderGkeGateway1' from JSON`, + SyncListResponsePendingPreparedStackExtendUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackExtendUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseProviderAwsAlbEnum1$inboundSchema: z.ZodEnum< - typeof SyncListResponseProviderAwsAlbEnum1 -> = z.enum(SyncListResponseProviderAwsAlbEnum1); +export const SyncListResponsePendingPreparedStackManagement1$inboundSchema: + z.ZodType = z + .object({ + extend: z.record( + z.string(), + z.array(z.union([ + z.lazy(() => + SyncListResponsePendingPreparedStackExtend$inboundSchema + ), + z.string(), + ])), + ), + }); + +export function syncListResponsePendingPreparedStackManagement1FromJSON( + jsonString: string, +): SafeParseResult< + SyncListResponsePendingPreparedStackManagement1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncListResponsePendingPreparedStackManagement1$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackManagement1' from JSON`, + ); +} /** @internal */ -export const SyncListResponseProviderAwsAlb1$inboundSchema: z.ZodType< - SyncListResponseProviderAwsAlb1, - unknown -> = z.object({ - ipAddressType: z.nullable(z.string()).optional(), - provider: SyncListResponseProviderAwsAlbEnum1$inboundSchema, - scheme: z.string(), - subnetIds: z.array(z.string()).optional(), - targetType: z.string(), -}); +export const SyncListResponsePendingPreparedStackManagementUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => + SyncListResponsePendingPreparedStackManagement1$inboundSchema + ), + z.lazy(() => + SyncListResponsePendingPreparedStackManagement2$inboundSchema + ), + SyncListResponsePendingPreparedStackManagementEnum$inboundSchema, + ]); -export function syncListResponseProviderAwsAlb1FromJSON( +export function syncListResponsePendingPreparedStackManagementUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackManagementUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseProviderAwsAlb1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProviderAwsAlb1' from JSON`, + (x) => + SyncListResponsePendingPreparedStackManagementUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackManagementUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseProviderUnion1$inboundSchema: z.ZodType< - SyncListResponseProviderUnion1, - unknown -> = z.union([ - z.lazy(() => SyncListResponseProviderAwsAlb1$inboundSchema), - z.lazy(() => - SyncListResponseProviderAzureApplicationGatewayForContainers1$inboundSchema - ), - z.lazy(() => SyncListResponseProviderGkeGateway1$inboundSchema), - z.any(), -]); +export const SyncListResponsePendingPreparedStackProfileAwResource$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function syncListResponseProviderUnion1FromJSON( +export function syncListResponsePendingPreparedStackProfileAwResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackProfileAwResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseProviderUnion1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProviderUnion1' from JSON`, + (x) => + SyncListResponsePendingPreparedStackProfileAwResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackProfileAwResource' from JSON`, ); } /** @internal */ -export const SyncListResponseRouteIngress1$inboundSchema: z.ZodType< - SyncListResponseRouteIngress1, - unknown -> = z.object({ - annotations: z.record(z.string(), z.string()).optional(), - controller: z.nullable(z.string()).optional(), - ingressClassName: z.string(), - labels: z.record(z.string(), z.string()).optional(), - provider: z.nullable( - z.union([ - z.lazy(() => SyncListResponseProviderAwsAlb1$inboundSchema), - z.lazy(() => - SyncListResponseProviderAzureApplicationGatewayForContainers1$inboundSchema - ), - z.lazy(() => SyncListResponseProviderGkeGateway1$inboundSchema), - z.any(), - ]), - ).optional(), - routeApi: z.literal("ingress"), -}); +export const SyncListResponsePendingPreparedStackProfileAwStack$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function syncListResponseRouteIngress1FromJSON( +export function syncListResponsePendingPreparedStackProfileAwStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackProfileAwStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseRouteIngress1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseRouteIngress1' from JSON`, + (x) => + SyncListResponsePendingPreparedStackProfileAwStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackProfileAwStack' from JSON`, ); } /** @internal */ -export const SyncListResponseRouteUnion1$inboundSchema: z.ZodType< - SyncListResponseRouteUnion1, - unknown -> = z.union([ - z.lazy(() => SyncListResponseRouteIngress1$inboundSchema), - z.lazy(() => SyncListResponseRouteGateway1$inboundSchema), -]); +export const SyncListResponsePendingPreparedStackProfileAwBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + SyncListResponsePendingPreparedStackProfileAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncListResponsePendingPreparedStackProfileAwStack$inboundSchema + ).optional(), + }); -export function syncListResponseRouteUnion1FromJSON( +export function syncListResponsePendingPreparedStackProfileAwBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackProfileAwBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseRouteUnion1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseRouteUnion1' from JSON`, + (x) => + SyncListResponsePendingPreparedStackProfileAwBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackProfileAwBinding' from JSON`, ); } /** @internal */ -export const SyncListResponseExposureGenerated$inboundSchema: z.ZodType< - SyncListResponseExposureGenerated, - unknown -> = z.object({ - certificate: z.union([ - z.lazy(() => SyncListResponseCertificateTLSSecretRef1$inboundSchema), - z.lazy(() => SyncListResponseCertificateManagedAcmImport1$inboundSchema), - z.lazy(() => SyncListResponseCertificateAwsAcmArn1$inboundSchema), - z.lazy(() => SyncListResponseCertificateManagedTLSSecret1$inboundSchema), - z.lazy(() => SyncListResponseCertificateNone1$inboundSchema), - ]), - mode: SyncListResponseModeGenerated$inboundSchema, - route: z.union([ - z.lazy(() => SyncListResponseRouteIngress1$inboundSchema), - z.lazy(() => SyncListResponseRouteGateway1$inboundSchema), - ]), -}); +export const SyncListResponsePendingPreparedStackProfileEffect$inboundSchema: + z.ZodEnum = z.enum( + SyncListResponsePendingPreparedStackProfileEffect, + ); -export function syncListResponseExposureGeneratedFromJSON( +/** @internal */ +export const SyncListResponsePendingPreparedStackProfileAwGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncListResponsePendingPreparedStackProfileAwGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackProfileAwGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseExposureGenerated$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseExposureGenerated' from JSON`, + (x) => + SyncListResponsePendingPreparedStackProfileAwGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackProfileAwGrant' from JSON`, ); } /** @internal */ -export const SyncListResponseModeDisabled$inboundSchema: z.ZodEnum< - typeof SyncListResponseModeDisabled -> = z.enum(SyncListResponseModeDisabled); - -/** @internal */ -export const SyncListResponseExposureDisabled$inboundSchema: z.ZodType< - SyncListResponseExposureDisabled, - unknown -> = z.object({ - mode: SyncListResponseModeDisabled$inboundSchema, -}); +export const SyncListResponsePendingPreparedStackProfileAw$inboundSchema: + z.ZodType = z.object({ + binding: z.lazy(() => + SyncListResponsePendingPreparedStackProfileAwBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: SyncListResponsePendingPreparedStackProfileEffect$inboundSchema + .optional(), + grant: z.lazy(() => + SyncListResponsePendingPreparedStackProfileAwGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function syncListResponseExposureDisabledFromJSON( +export function syncListResponsePendingPreparedStackProfileAwFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackProfileAw, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseExposureDisabled$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseExposureDisabled' from JSON`, + (x) => + SyncListResponsePendingPreparedStackProfileAw$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackProfileAw' from JSON`, ); } /** @internal */ -export const SyncListResponseExposureUnion$inboundSchema: z.ZodType< - SyncListResponseExposureUnion, - unknown -> = z.union([ - z.lazy(() => SyncListResponseExposureCustom$inboundSchema), - z.lazy(() => SyncListResponseExposureGenerated$inboundSchema), - z.lazy(() => SyncListResponseExposureDisabled$inboundSchema), - z.any(), -]); +export const SyncListResponsePendingPreparedStackProfileAzureResource$inboundSchema: + z.ZodType = + z.object({ + scope: z.string(), + }); -export function syncListResponseExposureUnionFromJSON( +export function syncListResponsePendingPreparedStackProfileAzureResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackProfileAzureResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseExposureUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseExposureUnion' from JSON`, + (x) => + SyncListResponsePendingPreparedStackProfileAzureResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePendingPreparedStackProfileAzureResource' from JSON`, ); } /** @internal */ -export const SyncListResponseKubernetes$inboundSchema: z.ZodType< - SyncListResponseKubernetes, - unknown -> = z.object({ - cluster: z.nullable( - z.union([z.lazy(() => SyncListResponseCluster$inboundSchema), z.any()]), - ).optional(), - exposure: z.nullable( - z.union([ - z.lazy(() => SyncListResponseExposureCustom$inboundSchema), - z.lazy(() => SyncListResponseExposureGenerated$inboundSchema), - z.lazy(() => SyncListResponseExposureDisabled$inboundSchema), - z.any(), - ]), - ).optional(), -}); +export const SyncListResponsePendingPreparedStackProfileAzureStack$inboundSchema: + z.ZodType = z + .object({ + scope: z.string(), + }); -export function syncListResponseKubernetesFromJSON( +export function syncListResponsePendingPreparedStackProfileAzureStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackProfileAzureStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseKubernetes$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseKubernetes' from JSON`, + (x) => + SyncListResponsePendingPreparedStackProfileAzureStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackProfileAzureStack' from JSON`, ); } /** @internal */ -export const SyncListResponseKubernetesUnion$inboundSchema: z.ZodType< - SyncListResponseKubernetesUnion, - unknown -> = z.union([z.lazy(() => SyncListResponseKubernetes$inboundSchema), z.any()]); +export const SyncListResponsePendingPreparedStackProfileAzureBinding$inboundSchema: + z.ZodType = + z.object({ + resource: z.lazy(() => + SyncListResponsePendingPreparedStackProfileAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncListResponsePendingPreparedStackProfileAzureStack$inboundSchema + ).optional(), + }); -export function syncListResponseKubernetesUnionFromJSON( +export function syncListResponsePendingPreparedStackProfileAzureBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackProfileAzureBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseKubernetesUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseKubernetesUnion' from JSON`, + (x) => + SyncListResponsePendingPreparedStackProfileAzureBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePendingPreparedStackProfileAzureBinding' from JSON`, ); } /** @internal */ -export const SyncListResponseTypeByoVnetAzure$inboundSchema: z.ZodEnum< - typeof SyncListResponseTypeByoVnetAzure -> = z.enum(SyncListResponseTypeByoVnetAzure); - -/** @internal */ -export const SyncListResponseNetworkByoVnetAzure$inboundSchema: z.ZodType< - SyncListResponseNetworkByoVnetAzure, - unknown -> = z.object({ - application_gateway_subnet_name: z.nullable(z.string()).optional(), - private_endpoint_subnet_name: z.nullable(z.string()).optional(), - private_subnet_name: z.string(), - public_subnet_name: z.string(), - type: SyncListResponseTypeByoVnetAzure$inboundSchema, - vnet_resource_id: z.string(), -}).transform((v) => { - return remap$(v, { - "application_gateway_subnet_name": "applicationGatewaySubnetName", - "private_endpoint_subnet_name": "privateEndpointSubnetName", - "private_subnet_name": "privateSubnetName", - "public_subnet_name": "publicSubnetName", - "vnet_resource_id": "vnetResourceId", - }); -}); +export const SyncListResponsePendingPreparedStackProfileAzureGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function syncListResponseNetworkByoVnetAzureFromJSON( +export function syncListResponsePendingPreparedStackProfileAzureGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackProfileAzureGrant, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseNetworkByoVnetAzure$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseNetworkByoVnetAzure' from JSON`, + SyncListResponsePendingPreparedStackProfileAzureGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackProfileAzureGrant' from JSON`, ); } /** @internal */ -export const SyncListResponseTypeByoVpcGcp$inboundSchema: z.ZodEnum< - typeof SyncListResponseTypeByoVpcGcp -> = z.enum(SyncListResponseTypeByoVpcGcp); - -/** @internal */ -export const SyncListResponseNetworkByoVpcGcp$inboundSchema: z.ZodType< - SyncListResponseNetworkByoVpcGcp, - unknown -> = z.object({ - network_name: z.string(), - region: z.string(), - subnet_name: z.string(), - type: SyncListResponseTypeByoVpcGcp$inboundSchema, -}).transform((v) => { - return remap$(v, { - "network_name": "networkName", - "subnet_name": "subnetName", - }); -}); +export const SyncListResponsePendingPreparedStackProfileAzure$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + SyncListResponsePendingPreparedStackProfileAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncListResponsePendingPreparedStackProfileAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function syncListResponseNetworkByoVpcGcpFromJSON( +export function syncListResponsePendingPreparedStackProfileAzureFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackProfileAzure, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseNetworkByoVpcGcp$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseNetworkByoVpcGcp' from JSON`, + (x) => + SyncListResponsePendingPreparedStackProfileAzure$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackProfileAzure' from JSON`, ); } /** @internal */ -export const SyncListResponseTypeByoVpcAws$inboundSchema: z.ZodEnum< - typeof SyncListResponseTypeByoVpcAws -> = z.enum(SyncListResponseTypeByoVpcAws); - -/** @internal */ -export const SyncListResponseNetworkByoVpcAws$inboundSchema: z.ZodType< - SyncListResponseNetworkByoVpcAws, - unknown -> = z.object({ - private_subnet_ids: z.array(z.string()), - public_subnet_ids: z.array(z.string()), - security_group_ids: z.array(z.string()).optional(), - type: SyncListResponseTypeByoVpcAws$inboundSchema, - vpc_id: z.string(), -}).transform((v) => { - return remap$(v, { - "private_subnet_ids": "privateSubnetIds", - "public_subnet_ids": "publicSubnetIds", - "security_group_ids": "securityGroupIds", - "vpc_id": "vpcId", +export const SyncListResponsePendingPreparedStackProfileConditionResource$inboundSchema: + z.ZodType< + SyncListResponsePendingPreparedStackProfileConditionResource, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), }); -}); -export function syncListResponseNetworkByoVpcAwsFromJSON( +export function syncListResponsePendingPreparedStackProfileConditionResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackProfileConditionResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseNetworkByoVpcAws$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseNetworkByoVpcAws' from JSON`, + (x) => + SyncListResponsePendingPreparedStackProfileConditionResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePendingPreparedStackProfileConditionResource' from JSON`, ); } /** @internal */ -export const SyncListResponseTypeCreate$inboundSchema: z.ZodEnum< - typeof SyncListResponseTypeCreate -> = z.enum(SyncListResponseTypeCreate); - -/** @internal */ -export const SyncListResponseNetworkCreate$inboundSchema: z.ZodType< - SyncListResponseNetworkCreate, - unknown -> = z.object({ - availability_zones: z.int().optional(), - cidr: z.nullable(z.string()).optional(), - type: SyncListResponseTypeCreate$inboundSchema, -}).transform((v) => { - return remap$(v, { - "availability_zones": "availabilityZones", - }); -}); +export const SyncListResponsePendingPreparedStackProfileResourceConditionUnion$inboundSchema: + z.ZodType< + SyncListResponsePendingPreparedStackProfileResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncListResponsePendingPreparedStackProfileConditionResource$inboundSchema + ), + z.any(), + ]); -export function syncListResponseNetworkCreateFromJSON( +export function syncListResponsePendingPreparedStackProfileResourceConditionUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackProfileResourceConditionUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseNetworkCreate$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseNetworkCreate' from JSON`, + (x) => + SyncListResponsePendingPreparedStackProfileResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePendingPreparedStackProfileResourceConditionUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseTypeUseDefault$inboundSchema: z.ZodEnum< - typeof SyncListResponseTypeUseDefault -> = z.enum(SyncListResponseTypeUseDefault); - -/** @internal */ -export const SyncListResponseNetworkUseDefault$inboundSchema: z.ZodType< - SyncListResponseNetworkUseDefault, - unknown -> = z.object({ - type: SyncListResponseTypeUseDefault$inboundSchema, -}); +export const SyncListResponsePendingPreparedStackProfileGcpResource$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncListResponsePendingPreparedStackProfileConditionResource$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function syncListResponseNetworkUseDefaultFromJSON( +export function syncListResponsePendingPreparedStackProfileGcpResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackProfileGcpResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseNetworkUseDefault$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseNetworkUseDefault' from JSON`, + (x) => + SyncListResponsePendingPreparedStackProfileGcpResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePendingPreparedStackProfileGcpResource' from JSON`, ); } /** @internal */ -export const SyncListResponseNetworkUnion$inboundSchema: z.ZodType< - SyncListResponseNetworkUnion, - unknown -> = z.union([ - z.lazy(() => SyncListResponseNetworkByoVpcAws$inboundSchema), - z.lazy(() => SyncListResponseNetworkByoVpcGcp$inboundSchema), - z.lazy(() => SyncListResponseNetworkByoVnetAzure$inboundSchema), - z.lazy(() => SyncListResponseNetworkUseDefault$inboundSchema), - z.lazy(() => SyncListResponseNetworkCreate$inboundSchema), - z.any(), -]); +export const SyncListResponsePendingPreparedStackProfileConditionStack$inboundSchema: + z.ZodType< + SyncListResponsePendingPreparedStackProfileConditionStack, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function syncListResponseNetworkUnionFromJSON( +export function syncListResponsePendingPreparedStackProfileConditionStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackProfileConditionStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseNetworkUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseNetworkUnion' from JSON`, + (x) => + SyncListResponsePendingPreparedStackProfileConditionStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePendingPreparedStackProfileConditionStack' from JSON`, ); } /** @internal */ -export const SyncListResponseTelemetry$inboundSchema: z.ZodEnum< - typeof SyncListResponseTelemetry -> = z.enum(SyncListResponseTelemetry); - -/** @internal */ -export const SyncListResponseUpdates$inboundSchema: z.ZodEnum< - typeof SyncListResponseUpdates -> = z.enum(SyncListResponseUpdates); - -/** @internal */ -export const SyncListResponseStackSettings$inboundSchema: z.ZodType< - SyncListResponseStackSettings, - unknown -> = z.object({ - compute: z.nullable( - z.union([z.lazy(() => SyncListResponseCompute$inboundSchema), z.any()]), - ).optional(), - deploymentModel: SyncListResponseDeploymentModel$inboundSchema.optional(), - domains: z.nullable( - z.union([z.lazy(() => SyncListResponseDomains$inboundSchema), z.any()]), - ).optional(), - externalBindings: z.nullable( - z.lazy(() => SyncListResponseExternalBindings$inboundSchema), - ).optional(), - heartbeats: SyncListResponseHeartbeats$inboundSchema.optional(), - kubernetes: z.nullable( - z.union([z.lazy(() => SyncListResponseKubernetes$inboundSchema), z.any()]), - ).optional(), - network: z.nullable( - z.union([ - z.lazy(() => SyncListResponseNetworkByoVpcAws$inboundSchema), - z.lazy(() => SyncListResponseNetworkByoVpcGcp$inboundSchema), - z.lazy(() => SyncListResponseNetworkByoVnetAzure$inboundSchema), - z.lazy(() => SyncListResponseNetworkUseDefault$inboundSchema), - z.lazy(() => SyncListResponseNetworkCreate$inboundSchema), - z.any(), - ]), - ).optional(), - telemetry: SyncListResponseTelemetry$inboundSchema.optional(), - updates: SyncListResponseUpdates$inboundSchema.optional(), -}); +export const SyncListResponsePendingPreparedStackProfileStackConditionUnion$inboundSchema: + z.ZodType< + SyncListResponsePendingPreparedStackProfileStackConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncListResponsePendingPreparedStackProfileConditionStack$inboundSchema + ), + z.any(), + ]); -export function syncListResponseStackSettingsFromJSON( +export function syncListResponsePendingPreparedStackProfileStackConditionUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackProfileStackConditionUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseStackSettings$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseStackSettings' from JSON`, + (x) => + SyncListResponsePendingPreparedStackProfileStackConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePendingPreparedStackProfileStackConditionUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseStackStatePlatform$inboundSchema: z.ZodEnum< - typeof SyncListResponseStackStatePlatform -> = z.enum(SyncListResponseStackStatePlatform); - -/** @internal */ -export const SyncListResponseStackStateConfig$inboundSchema: z.ZodType< - SyncListResponseStackStateConfig, - unknown -> = collectExtraKeys$( - z.object({ - id: z.string(), - type: z.string(), - }).catchall(z.any()), - "additionalProperties", - true, -); +export const SyncListResponsePendingPreparedStackProfileGcpStack$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncListResponsePendingPreparedStackProfileConditionStack$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function syncListResponseStackStateConfigFromJSON( +export function syncListResponsePendingPreparedStackProfileGcpStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackProfileGcpStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseStackStateConfig$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseStackStateConfig' from JSON`, + (x) => + SyncListResponsePendingPreparedStackProfileGcpStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackProfileGcpStack' from JSON`, ); } /** @internal */ -export const SyncListResponseControllerPlatformEnum$inboundSchema: z.ZodEnum< - typeof SyncListResponseControllerPlatformEnum -> = z.enum(SyncListResponseControllerPlatformEnum); - -/** @internal */ -export const SyncListResponseControllerPlatformUnion$inboundSchema: z.ZodType< - SyncListResponseControllerPlatformUnion, - unknown -> = z.union([SyncListResponseControllerPlatformEnum$inboundSchema, z.any()]); +export const SyncListResponsePendingPreparedStackProfileGcpBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + SyncListResponsePendingPreparedStackProfileGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncListResponsePendingPreparedStackProfileGcpStack$inboundSchema + ).optional(), + }); -export function syncListResponseControllerPlatformUnionFromJSON( +export function syncListResponsePendingPreparedStackProfileGcpBindingFromJSON( jsonString: string, ): SafeParseResult< - SyncListResponseControllerPlatformUnion, + SyncListResponsePendingPreparedStackProfileGcpBinding, SDKValidationError > { return safeParse( jsonString, (x) => - SyncListResponseControllerPlatformUnion$inboundSchema.parse( + SyncListResponsePendingPreparedStackProfileGcpBinding$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncListResponseControllerPlatformUnion' from JSON`, + `Failed to parse 'SyncListResponsePendingPreparedStackProfileGcpBinding' from JSON`, ); } /** @internal */ -export const SyncListResponseStackStateDependency$inboundSchema: z.ZodType< - SyncListResponseStackStateDependency, - unknown -> = z.object({ - id: z.string(), - type: z.string(), -}); +export const SyncListResponsePendingPreparedStackProfileGcpGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function syncListResponseStackStateDependencyFromJSON( +export function syncListResponsePendingPreparedStackProfileGcpGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackProfileGcpGrant, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseStackStateDependency$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseStackStateDependency' from JSON`, + SyncListResponsePendingPreparedStackProfileGcpGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackProfileGcpGrant' from JSON`, ); } /** @internal */ -export const SyncListResponseErrorStackState$inboundSchema: z.ZodType< - SyncListResponseErrorStackState, - unknown -> = z.object({ - code: z.string(), - context: z.nullable(z.any()).optional(), - hint: z.nullable(z.string()).optional(), - httpStatusCode: z.nullable(z.int()).optional(), - internal: z.boolean(), - message: z.string(), - retryable: z.boolean().default(false), - source: z.nullable(z.any()).optional(), -}); +export const SyncListResponsePendingPreparedStackProfileGcp$inboundSchema: + z.ZodType = z.object( + { + binding: z.lazy(() => + SyncListResponsePendingPreparedStackProfileGcpBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncListResponsePendingPreparedStackProfileGcpGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }, + ); -export function syncListResponseErrorStackStateFromJSON( +export function syncListResponsePendingPreparedStackProfileGcpFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackProfileGcp, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseErrorStackState$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseErrorStackState' from JSON`, + (x) => + SyncListResponsePendingPreparedStackProfileGcp$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackProfileGcp' from JSON`, ); } /** @internal */ -export const SyncListResponseErrorUnion$inboundSchema: z.ZodType< - SyncListResponseErrorUnion, - unknown -> = z.union([ - z.lazy(() => SyncListResponseErrorStackState$inboundSchema), - z.any(), -]); +export const SyncListResponsePendingPreparedStackProfilePlatforms$inboundSchema: + z.ZodType = z + .object({ + aws: z.nullable( + z.array(z.lazy(() => + SyncListResponsePendingPreparedStackProfileAw$inboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + SyncListResponsePendingPreparedStackProfileAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + SyncListResponsePendingPreparedStackProfileGcp$inboundSchema + )), + ).optional(), + }); -export function syncListResponseErrorUnionFromJSON( +export function syncListResponsePendingPreparedStackProfilePlatformsFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackProfilePlatforms, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseErrorUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseErrorUnion' from JSON`, + (x) => + SyncListResponsePendingPreparedStackProfilePlatforms$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackProfilePlatforms' from JSON`, ); } /** @internal */ -export const SyncListResponseLifecycleStackStateEnum$inboundSchema: z.ZodEnum< - typeof SyncListResponseLifecycleStackStateEnum -> = z.enum(SyncListResponseLifecycleStackStateEnum); +export const SyncListResponsePendingPreparedStackProfile$inboundSchema: + z.ZodType = z.object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncListResponsePendingPreparedStackProfilePlatforms$inboundSchema + ), + }); + +export function syncListResponsePendingPreparedStackProfileFromJSON( + jsonString: string, +): SafeParseResult< + SyncListResponsePendingPreparedStackProfile, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncListResponsePendingPreparedStackProfile$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackProfile' from JSON`, + ); +} /** @internal */ -export const SyncListResponseLifecycleUnion$inboundSchema: z.ZodType< - SyncListResponseLifecycleUnion, - unknown -> = z.union([SyncListResponseLifecycleStackStateEnum$inboundSchema, z.any()]); +export const SyncListResponsePendingPreparedStackProfileUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => SyncListResponsePendingPreparedStackProfile$inboundSchema), + z.string(), + ]); -export function syncListResponseLifecycleUnionFromJSON( +export function syncListResponsePendingPreparedStackProfileUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackProfileUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseLifecycleUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseLifecycleUnion' from JSON`, + (x) => + SyncListResponsePendingPreparedStackProfileUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackProfileUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseOutputs$inboundSchema: z.ZodType< - SyncListResponseOutputs, - unknown -> = collectExtraKeys$( - z.object({ - type: z.string(), - }).catchall(z.any()), - "additionalProperties", - true, -); +export const SyncListResponsePendingPreparedStackPermissions$inboundSchema: + z.ZodType = z + .object({ + management: z.union([ + z.lazy(() => + SyncListResponsePendingPreparedStackManagement1$inboundSchema + ), + z.lazy(() => + SyncListResponsePendingPreparedStackManagement2$inboundSchema + ), + SyncListResponsePendingPreparedStackManagementEnum$inboundSchema, + ]).optional(), + profiles: z.record( + z.string(), + z.record( + z.string(), + z.array( + z.union([ + z.lazy(() => + SyncListResponsePendingPreparedStackProfile$inboundSchema + ), + z.string(), + ]), + ), + ), + ), + }); -export function syncListResponseOutputsFromJSON( +export function syncListResponsePendingPreparedStackPermissionsFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackPermissions, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseOutputs$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseOutputs' from JSON`, + (x) => + SyncListResponsePendingPreparedStackPermissions$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackPermissions' from JSON`, ); } /** @internal */ -export const SyncListResponseOutputsUnion$inboundSchema: z.ZodType< - SyncListResponseOutputsUnion, - unknown -> = z.union([z.lazy(() => SyncListResponseOutputs$inboundSchema), z.any()]); +export const SyncListResponsePendingPreparedStackConfig$inboundSchema: + z.ZodType = + collectExtraKeys$( + z.object({ + id: z.string(), + type: z.string(), + }).catchall(z.any()), + "additionalProperties", + true, + ); -export function syncListResponseOutputsUnionFromJSON( +export function syncListResponsePendingPreparedStackConfigFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackConfig, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseOutputsUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseOutputsUnion' from JSON`, + (x) => + SyncListResponsePendingPreparedStackConfig$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackConfig' from JSON`, ); } /** @internal */ -export const SyncListResponsePreviousConfig$inboundSchema: z.ZodType< - SyncListResponsePreviousConfig, - unknown -> = collectExtraKeys$( - z.object({ - id: z.string(), - type: z.string(), - }).catchall(z.any()), - "additionalProperties", - true, -); +export const SyncListResponsePendingPreparedStackDependency$inboundSchema: + z.ZodType = z.object( + { + id: z.string(), + type: z.string(), + }, + ); -export function syncListResponsePreviousConfigFromJSON( +export function syncListResponsePendingPreparedStackDependencyFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackDependency, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponsePreviousConfig$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponsePreviousConfig' from JSON`, + (x) => + SyncListResponsePendingPreparedStackDependency$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackDependency' from JSON`, ); } /** @internal */ -export const SyncListResponsePreviousConfigUnion$inboundSchema: z.ZodType< - SyncListResponsePreviousConfigUnion, - unknown -> = z.union([ - z.lazy(() => SyncListResponsePreviousConfig$inboundSchema), - z.any(), -]); +export const SyncListResponsePendingPreparedStackLifecycle$inboundSchema: + z.ZodEnum = z.enum( + SyncListResponsePendingPreparedStackLifecycle, + ); -export function syncListResponsePreviousConfigUnionFromJSON( +/** @internal */ +export const SyncListResponsePendingPreparedStackResources$inboundSchema: + z.ZodType = z.object({ + config: z.lazy(() => + SyncListResponsePendingPreparedStackConfig$inboundSchema + ), + dependencies: z.array( + z.lazy(() => + SyncListResponsePendingPreparedStackDependency$inboundSchema + ), + ), + enabledWhen: z.nullable(z.string()).optional(), + lifecycle: SyncListResponsePendingPreparedStackLifecycle$inboundSchema, + remoteAccess: z.boolean().optional(), + }); + +export function syncListResponsePendingPreparedStackResourcesFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackResources, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponsePreviousConfigUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponsePreviousConfigUnion' from JSON`, + SyncListResponsePendingPreparedStackResources$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackResources' from JSON`, ); } /** @internal */ -export const SyncListResponseStackStateStatus$inboundSchema: z.ZodEnum< - typeof SyncListResponseStackStateStatus -> = z.enum(SyncListResponseStackStateStatus); +export const SyncListResponsePendingPreparedStackSupportedPlatform$inboundSchema: + z.ZodEnum = z + .enum(SyncListResponsePendingPreparedStackSupportedPlatform); /** @internal */ -export const SyncListResponseStackStateResources$inboundSchema: z.ZodType< - SyncListResponseStackStateResources, +export const SyncListResponsePendingPreparedStack$inboundSchema: z.ZodType< + SyncListResponsePendingPreparedStack, unknown > = z.object({ - _internal: z.nullable(z.any()).optional(), - config: z.lazy(() => SyncListResponseStackStateConfig$inboundSchema), - controllerPlatform: z.nullable( - z.union([SyncListResponseControllerPlatformEnum$inboundSchema, z.any()]), - ).optional(), - dependencies: z.array( - z.lazy(() => SyncListResponseStackStateDependency$inboundSchema), - ).optional(), - error: z.nullable( - z.union([ - z.lazy(() => SyncListResponseErrorStackState$inboundSchema), - z.any(), - ]), - ).optional(), - lastFailedState: z.nullable(z.any()).optional(), - lifecycle: z.nullable( - z.union([SyncListResponseLifecycleStackStateEnum$inboundSchema, z.any()]), + id: z.string(), + inputs: z.array( + z.lazy(() => SyncListResponsePendingPreparedStackInput$inboundSchema), ).optional(), - outputs: z.nullable( - z.union([z.lazy(() => SyncListResponseOutputs$inboundSchema), z.any()]), + permissions: z.lazy(() => + SyncListResponsePendingPreparedStackPermissions$inboundSchema ).optional(), - previousConfig: z.nullable( - z.union([ - z.lazy(() => SyncListResponsePreviousConfig$inboundSchema), - z.any(), - ]), + resources: z.record( + z.string(), + z.lazy(() => SyncListResponsePendingPreparedStackResources$inboundSchema), + ), + supportedPlatforms: z.nullable( + z.array( + SyncListResponsePendingPreparedStackSupportedPlatform$inboundSchema, + ), ).optional(), - remoteBindingParams: z.nullable(z.any()).optional(), - retryAttempt: z.int().optional(), - status: SyncListResponseStackStateStatus$inboundSchema, - type: z.string(), -}).transform((v) => { - return remap$(v, { - "_internal": "internal", - }); }); -export function syncListResponseStackStateResourcesFromJSON( +export function syncListResponsePendingPreparedStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, (x) => - SyncListResponseStackStateResources$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseStackStateResources' from JSON`, + SyncListResponsePendingPreparedStack$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePendingPreparedStack' from JSON`, ); } /** @internal */ -export const SyncListResponseStackState$inboundSchema: z.ZodType< - SyncListResponseStackState, +export const SyncListResponsePendingPreparedStackUnion$inboundSchema: z.ZodType< + SyncListResponsePendingPreparedStackUnion, unknown -> = z.object({ - platform: SyncListResponseStackStatePlatform$inboundSchema, - resourcePrefix: z.string(), - resources: z.record( - z.string(), - z.lazy(() => SyncListResponseStackStateResources$inboundSchema), - ), -}); +> = z.union([ + z.lazy(() => SyncListResponsePendingPreparedStack$inboundSchema), + z.any(), +]); -export function syncListResponseStackStateFromJSON( +export function syncListResponsePendingPreparedStackUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePendingPreparedStackUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseStackState$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseStackState' from JSON`, + (x) => + SyncListResponsePendingPreparedStackUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePendingPreparedStackUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseTypeStringList$inboundSchema: z.ZodEnum< - typeof SyncListResponseTypeStringList -> = z.enum(SyncListResponseTypeStringList); +export const SyncListResponsePreparedStackTypeStringList$inboundSchema: + z.ZodEnum = z.enum( + SyncListResponsePreparedStackTypeStringList, + ); /** @internal */ -export const SyncListResponseDefaultStringList$inboundSchema: z.ZodType< - SyncListResponseDefaultStringList, - unknown -> = z.object({ - type: SyncListResponseTypeStringList$inboundSchema, - value: z.array(z.string()), -}); +export const SyncListResponsePreparedStackDefaultStringList$inboundSchema: + z.ZodType = z.object( + { + type: SyncListResponsePreparedStackTypeStringList$inboundSchema, + value: z.array(z.string()), + }, + ); -export function syncListResponseDefaultStringListFromJSON( +export function syncListResponsePreparedStackDefaultStringListFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackDefaultStringList, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseDefaultStringList$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseDefaultStringList' from JSON`, + (x) => + SyncListResponsePreparedStackDefaultStringList$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackDefaultStringList' from JSON`, ); } /** @internal */ -export const SyncListResponseTypeBoolean$inboundSchema: z.ZodEnum< - typeof SyncListResponseTypeBoolean -> = z.enum(SyncListResponseTypeBoolean); +export const SyncListResponsePreparedStackTypeBoolean$inboundSchema: z.ZodEnum< + typeof SyncListResponsePreparedStackTypeBoolean +> = z.enum(SyncListResponsePreparedStackTypeBoolean); /** @internal */ -export const SyncListResponseDefaultBoolean$inboundSchema: z.ZodType< - SyncListResponseDefaultBoolean, - unknown -> = z.object({ - type: SyncListResponseTypeBoolean$inboundSchema, - value: z.boolean(), -}); +export const SyncListResponsePreparedStackDefaultBoolean$inboundSchema: + z.ZodType = z.object({ + type: SyncListResponsePreparedStackTypeBoolean$inboundSchema, + value: z.boolean(), + }); -export function syncListResponseDefaultBooleanFromJSON( +export function syncListResponsePreparedStackDefaultBooleanFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackDefaultBoolean, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseDefaultBoolean$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseDefaultBoolean' from JSON`, + (x) => + SyncListResponsePreparedStackDefaultBoolean$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackDefaultBoolean' from JSON`, ); } /** @internal */ -export const SyncListResponseTypeNumber$inboundSchema: z.ZodEnum< - typeof SyncListResponseTypeNumber -> = z.enum(SyncListResponseTypeNumber); +export const SyncListResponsePreparedStackTypeNumber$inboundSchema: z.ZodEnum< + typeof SyncListResponsePreparedStackTypeNumber +> = z.enum(SyncListResponsePreparedStackTypeNumber); /** @internal */ -export const SyncListResponseDefaultNumber$inboundSchema: z.ZodType< - SyncListResponseDefaultNumber, - unknown -> = z.object({ - type: SyncListResponseTypeNumber$inboundSchema, - value: z.string(), -}); +export const SyncListResponsePreparedStackDefaultNumber$inboundSchema: + z.ZodType = z.object({ + type: SyncListResponsePreparedStackTypeNumber$inboundSchema, + value: z.string(), + }); -export function syncListResponseDefaultNumberFromJSON( +export function syncListResponsePreparedStackDefaultNumberFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackDefaultNumber, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseDefaultNumber$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseDefaultNumber' from JSON`, + (x) => + SyncListResponsePreparedStackDefaultNumber$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackDefaultNumber' from JSON`, ); } /** @internal */ -export const SyncListResponseTypeString$inboundSchema: z.ZodEnum< - typeof SyncListResponseTypeString -> = z.enum(SyncListResponseTypeString); +export const SyncListResponsePreparedStackTypeString$inboundSchema: z.ZodEnum< + typeof SyncListResponsePreparedStackTypeString +> = z.enum(SyncListResponsePreparedStackTypeString); /** @internal */ -export const SyncListResponseDefaultString$inboundSchema: z.ZodType< - SyncListResponseDefaultString, - unknown -> = z.object({ - type: SyncListResponseTypeString$inboundSchema, - value: z.string(), -}); +export const SyncListResponsePreparedStackDefaultString$inboundSchema: + z.ZodType = z.object({ + type: SyncListResponsePreparedStackTypeString$inboundSchema, + value: z.string(), + }); -export function syncListResponseDefaultStringFromJSON( +export function syncListResponsePreparedStackDefaultStringFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackDefaultString, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseDefaultString$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseDefaultString' from JSON`, + (x) => + SyncListResponsePreparedStackDefaultString$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackDefaultString' from JSON`, ); } /** @internal */ -export const SyncListResponseDefaultUnion$inboundSchema: z.ZodType< - SyncListResponseDefaultUnion, +export const SyncListResponsePreparedStackDefaultUnion$inboundSchema: z.ZodType< + SyncListResponsePreparedStackDefaultUnion, unknown > = z.union([ - z.lazy(() => SyncListResponseDefaultString$inboundSchema), - z.lazy(() => SyncListResponseDefaultNumber$inboundSchema), - z.lazy(() => SyncListResponseDefaultBoolean$inboundSchema), - z.lazy(() => SyncListResponseDefaultStringList$inboundSchema), + z.lazy(() => SyncListResponsePreparedStackDefaultString$inboundSchema), + z.lazy(() => SyncListResponsePreparedStackDefaultNumber$inboundSchema), + z.lazy(() => SyncListResponsePreparedStackDefaultBoolean$inboundSchema), + z.lazy(() => SyncListResponsePreparedStackDefaultStringList$inboundSchema), z.any(), ]); -export function syncListResponseDefaultUnionFromJSON( +export function syncListResponsePreparedStackDefaultUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackDefaultUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseDefaultUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseDefaultUnion' from JSON`, + (x) => + SyncListResponsePreparedStackDefaultUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackDefaultUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseTypeEnvEnum$inboundSchema: z.ZodEnum< - typeof SyncListResponseTypeEnvEnum -> = z.enum(SyncListResponseTypeEnvEnum); +export const SyncListResponsePreparedStackTypeEnvEnum$inboundSchema: z.ZodEnum< + typeof SyncListResponsePreparedStackTypeEnvEnum +> = z.enum(SyncListResponsePreparedStackTypeEnvEnum); /** @internal */ -export const SyncListResponseTypeUnion$inboundSchema: z.ZodType< - SyncListResponseTypeUnion, +export const SyncListResponsePreparedStackTypeUnion$inboundSchema: z.ZodType< + SyncListResponsePreparedStackTypeUnion, unknown -> = z.union([SyncListResponseTypeEnvEnum$inboundSchema, z.any()]); +> = z.union([SyncListResponsePreparedStackTypeEnvEnum$inboundSchema, z.any()]); -export function syncListResponseTypeUnionFromJSON( +export function syncListResponsePreparedStackTypeUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => SyncListResponseTypeUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseTypeUnion' from JSON`, + (x) => + SyncListResponsePreparedStackTypeUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePreparedStackTypeUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseEnv$inboundSchema: z.ZodType< - SyncListResponseEnv, +export const SyncListResponsePreparedStackEnv$inboundSchema: z.ZodType< + SyncListResponsePreparedStackEnv, unknown > = z.object({ name: z.string(), targetResources: z.nullable(z.array(z.string())).optional(), type: z.nullable( - z.union([SyncListResponseTypeEnvEnum$inboundSchema, z.any()]), + z.union([SyncListResponsePreparedStackTypeEnvEnum$inboundSchema, z.any()]), ).optional(), }); -export function syncListResponseEnvFromJSON( +export function syncListResponsePreparedStackEnvFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => SyncListResponseEnv$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseEnv' from JSON`, + (x) => SyncListResponsePreparedStackEnv$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePreparedStackEnv' from JSON`, ); } /** @internal */ -export const SyncListResponseKind$inboundSchema: z.ZodEnum< - typeof SyncListResponseKind -> = z.enum(SyncListResponseKind); +export const SyncListResponsePreparedStackKind$inboundSchema: z.ZodEnum< + typeof SyncListResponsePreparedStackKind +> = z.enum(SyncListResponsePreparedStackKind); /** @internal */ export const SyncListResponsePreparedStackPlatform$inboundSchema: z.ZodEnum< @@ -5960,13 +10265,13 @@ export const SyncListResponsePreparedStackPlatform$inboundSchema: z.ZodEnum< > = z.enum(SyncListResponsePreparedStackPlatform); /** @internal */ -export const SyncListResponseProvidedBy$inboundSchema: z.ZodEnum< - typeof SyncListResponseProvidedBy -> = z.enum(SyncListResponseProvidedBy); +export const SyncListResponsePreparedStackProvidedBy$inboundSchema: z.ZodEnum< + typeof SyncListResponsePreparedStackProvidedBy +> = z.enum(SyncListResponsePreparedStackProvidedBy); /** @internal */ -export const SyncListResponseValidation$inboundSchema: z.ZodType< - SyncListResponseValidation, +export const SyncListResponsePreparedStackValidation$inboundSchema: z.ZodType< + SyncListResponsePreparedStackValidation, unknown > = z.object({ format: z.nullable(z.string()).optional(), @@ -5980,1586 +10285,1977 @@ export const SyncListResponseValidation$inboundSchema: z.ZodType< values: z.nullable(z.array(z.string())).optional(), }); -export function syncListResponseValidationFromJSON( +export function syncListResponsePreparedStackValidationFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackValidation, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseValidation$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseValidation' from JSON`, + (x) => + SyncListResponsePreparedStackValidation$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackValidation' from JSON`, ); } /** @internal */ -export const SyncListResponseValidationUnion$inboundSchema: z.ZodType< - SyncListResponseValidationUnion, - unknown -> = z.union([z.lazy(() => SyncListResponseValidation$inboundSchema), z.any()]); +export const SyncListResponsePreparedStackValidationUnion$inboundSchema: + z.ZodType = z.union([ + z.lazy(() => SyncListResponsePreparedStackValidation$inboundSchema), + z.any(), + ]); -export function syncListResponseValidationUnionFromJSON( +export function syncListResponsePreparedStackValidationUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackValidationUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseValidationUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseValidationUnion' from JSON`, + (x) => + SyncListResponsePreparedStackValidationUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackValidationUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseInput$inboundSchema: z.ZodType< - SyncListResponseInput, +export const SyncListResponsePreparedStackInput$inboundSchema: z.ZodType< + SyncListResponsePreparedStackInput, unknown > = z.object({ default: z.nullable( z.union([ - z.lazy(() => SyncListResponseDefaultString$inboundSchema), - z.lazy(() => SyncListResponseDefaultNumber$inboundSchema), - z.lazy(() => SyncListResponseDefaultBoolean$inboundSchema), - z.lazy(() => SyncListResponseDefaultStringList$inboundSchema), + z.lazy(() => SyncListResponsePreparedStackDefaultString$inboundSchema), + z.lazy(() => SyncListResponsePreparedStackDefaultNumber$inboundSchema), + z.lazy(() => SyncListResponsePreparedStackDefaultBoolean$inboundSchema), + z.lazy(() => + SyncListResponsePreparedStackDefaultStringList$inboundSchema + ), z.any(), ]), ).optional(), description: z.string(), - env: z.array(z.lazy(() => SyncListResponseEnv$inboundSchema)).optional(), + env: z.array(z.lazy(() => SyncListResponsePreparedStackEnv$inboundSchema)) + .optional(), id: z.string(), - kind: SyncListResponseKind$inboundSchema, + kind: SyncListResponsePreparedStackKind$inboundSchema, label: z.string(), placeholder: z.nullable(z.string()).optional(), platforms: z.nullable( z.array(SyncListResponsePreparedStackPlatform$inboundSchema), ).optional(), - providedBy: z.array(SyncListResponseProvidedBy$inboundSchema), + providedBy: z.array(SyncListResponsePreparedStackProvidedBy$inboundSchema), required: z.boolean(), validation: z.nullable( - z.union([z.lazy(() => SyncListResponseValidation$inboundSchema), z.any()]), + z.union([ + z.lazy(() => SyncListResponsePreparedStackValidation$inboundSchema), + z.any(), + ]), ).optional(), }); -export function syncListResponseInputFromJSON( +export function syncListResponsePreparedStackInputFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => SyncListResponseInput$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseInput' from JSON`, + (x) => + SyncListResponsePreparedStackInput$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePreparedStackInput' from JSON`, ); } /** @internal */ -export const SyncListResponseManagementEnum$inboundSchema: z.ZodEnum< - typeof SyncListResponseManagementEnum -> = z.enum(SyncListResponseManagementEnum); +export const SyncListResponsePreparedStackManagementEnum$inboundSchema: + z.ZodEnum = z.enum( + SyncListResponsePreparedStackManagementEnum, + ); /** @internal */ -export const SyncListResponseOverrideAwResource$inboundSchema: z.ZodType< - SyncListResponseOverrideAwResource, - unknown -> = z.object({ - condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) - .optional(), - resources: z.array(z.string()), -}); +export const SyncListResponsePreparedStackOverrideAwResource$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function syncListResponseOverrideAwResourceFromJSON( +export function syncListResponsePreparedStackOverrideAwResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackOverrideAwResource, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseOverrideAwResource$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseOverrideAwResource' from JSON`, + SyncListResponsePreparedStackOverrideAwResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackOverrideAwResource' from JSON`, ); } /** @internal */ -export const SyncListResponseOverrideAwStack$inboundSchema: z.ZodType< - SyncListResponseOverrideAwStack, - unknown -> = z.object({ - condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) - .optional(), - resources: z.array(z.string()), -}); +export const SyncListResponsePreparedStackOverrideAwStack$inboundSchema: + z.ZodType = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function syncListResponseOverrideAwStackFromJSON( +export function syncListResponsePreparedStackOverrideAwStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackOverrideAwStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseOverrideAwStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseOverrideAwStack' from JSON`, + (x) => + SyncListResponsePreparedStackOverrideAwStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackOverrideAwStack' from JSON`, ); } /** @internal */ -export const SyncListResponseOverrideAwBinding$inboundSchema: z.ZodType< - SyncListResponseOverrideAwBinding, - unknown -> = z.object({ - resource: z.lazy(() => SyncListResponseOverrideAwResource$inboundSchema) - .optional(), - stack: z.lazy(() => SyncListResponseOverrideAwStack$inboundSchema).optional(), -}); +export const SyncListResponsePreparedStackOverrideAwBinding$inboundSchema: + z.ZodType = z.object( + { + resource: z.lazy(() => + SyncListResponsePreparedStackOverrideAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncListResponsePreparedStackOverrideAwStack$inboundSchema + ).optional(), + }, + ); -export function syncListResponseOverrideAwBindingFromJSON( +export function syncListResponsePreparedStackOverrideAwBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackOverrideAwBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseOverrideAwBinding$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseOverrideAwBinding' from JSON`, + (x) => + SyncListResponsePreparedStackOverrideAwBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackOverrideAwBinding' from JSON`, ); } /** @internal */ -export const SyncListResponseOverrideEffect$inboundSchema: z.ZodEnum< - typeof SyncListResponseOverrideEffect -> = z.enum(SyncListResponseOverrideEffect); +export const SyncListResponsePreparedStackOverrideEffect$inboundSchema: + z.ZodEnum = z.enum( + SyncListResponsePreparedStackOverrideEffect, + ); /** @internal */ -export const SyncListResponseOverrideAwGrant$inboundSchema: z.ZodType< - SyncListResponseOverrideAwGrant, - unknown -> = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), -}); +export const SyncListResponsePreparedStackOverrideAwGrant$inboundSchema: + z.ZodType = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function syncListResponseOverrideAwGrantFromJSON( +export function syncListResponsePreparedStackOverrideAwGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackOverrideAwGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseOverrideAwGrant$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseOverrideAwGrant' from JSON`, + (x) => + SyncListResponsePreparedStackOverrideAwGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackOverrideAwGrant' from JSON`, ); } /** @internal */ -export const SyncListResponseOverrideAw$inboundSchema: z.ZodType< - SyncListResponseOverrideAw, +export const SyncListResponsePreparedStackOverrideAw$inboundSchema: z.ZodType< + SyncListResponsePreparedStackOverrideAw, unknown > = z.object({ - binding: z.lazy(() => SyncListResponseOverrideAwBinding$inboundSchema), + binding: z.lazy(() => + SyncListResponsePreparedStackOverrideAwBinding$inboundSchema + ), description: z.nullable(z.string()).optional(), - effect: SyncListResponseOverrideEffect$inboundSchema.optional(), - grant: z.lazy(() => SyncListResponseOverrideAwGrant$inboundSchema), + effect: SyncListResponsePreparedStackOverrideEffect$inboundSchema.optional(), + grant: z.lazy(() => + SyncListResponsePreparedStackOverrideAwGrant$inboundSchema + ), label: z.nullable(z.string()).optional(), }); -export function syncListResponseOverrideAwFromJSON( +export function syncListResponsePreparedStackOverrideAwFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackOverrideAw, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseOverrideAw$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseOverrideAw' from JSON`, + (x) => + SyncListResponsePreparedStackOverrideAw$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackOverrideAw' from JSON`, ); } /** @internal */ -export const SyncListResponseOverrideAzureResource$inboundSchema: z.ZodType< - SyncListResponseOverrideAzureResource, - unknown -> = z.object({ - scope: z.string(), -}); +export const SyncListResponsePreparedStackOverrideAzureResource$inboundSchema: + z.ZodType = z + .object({ + scope: z.string(), + }); -export function syncListResponseOverrideAzureResourceFromJSON( +export function syncListResponsePreparedStackOverrideAzureResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackOverrideAzureResource, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseOverrideAzureResource$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseOverrideAzureResource' from JSON`, + SyncListResponsePreparedStackOverrideAzureResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackOverrideAzureResource' from JSON`, ); } /** @internal */ -export const SyncListResponseOverrideAzureStack$inboundSchema: z.ZodType< - SyncListResponseOverrideAzureStack, - unknown -> = z.object({ - scope: z.string(), -}); +export const SyncListResponsePreparedStackOverrideAzureStack$inboundSchema: + z.ZodType = z + .object({ + scope: z.string(), + }); -export function syncListResponseOverrideAzureStackFromJSON( +export function syncListResponsePreparedStackOverrideAzureStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackOverrideAzureStack, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseOverrideAzureStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseOverrideAzureStack' from JSON`, + SyncListResponsePreparedStackOverrideAzureStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackOverrideAzureStack' from JSON`, ); } /** @internal */ -export const SyncListResponseOverrideAzureBinding$inboundSchema: z.ZodType< - SyncListResponseOverrideAzureBinding, - unknown -> = z.object({ - resource: z.lazy(() => SyncListResponseOverrideAzureResource$inboundSchema) - .optional(), - stack: z.lazy(() => SyncListResponseOverrideAzureStack$inboundSchema) - .optional(), -}); +export const SyncListResponsePreparedStackOverrideAzureBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + SyncListResponsePreparedStackOverrideAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncListResponsePreparedStackOverrideAzureStack$inboundSchema + ).optional(), + }); -export function syncListResponseOverrideAzureBindingFromJSON( +export function syncListResponsePreparedStackOverrideAzureBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackOverrideAzureBinding, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseOverrideAzureBinding$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseOverrideAzureBinding' from JSON`, + SyncListResponsePreparedStackOverrideAzureBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackOverrideAzureBinding' from JSON`, ); } /** @internal */ -export const SyncListResponseOverrideAzureGrant$inboundSchema: z.ZodType< - SyncListResponseOverrideAzureGrant, - unknown -> = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), -}); +export const SyncListResponsePreparedStackOverrideAzureGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function syncListResponseOverrideAzureGrantFromJSON( +export function syncListResponsePreparedStackOverrideAzureGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackOverrideAzureGrant, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseOverrideAzureGrant$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseOverrideAzureGrant' from JSON`, + SyncListResponsePreparedStackOverrideAzureGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackOverrideAzureGrant' from JSON`, ); } /** @internal */ -export const SyncListResponseOverrideAzure$inboundSchema: z.ZodType< - SyncListResponseOverrideAzure, - unknown -> = z.object({ - binding: z.lazy(() => SyncListResponseOverrideAzureBinding$inboundSchema), - description: z.nullable(z.string()).optional(), - grant: z.lazy(() => SyncListResponseOverrideAzureGrant$inboundSchema), - label: z.nullable(z.string()).optional(), -}); +export const SyncListResponsePreparedStackOverrideAzure$inboundSchema: + z.ZodType = z.object({ + binding: z.lazy(() => + SyncListResponsePreparedStackOverrideAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncListResponsePreparedStackOverrideAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function syncListResponseOverrideAzureFromJSON( +export function syncListResponsePreparedStackOverrideAzureFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackOverrideAzure, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseOverrideAzure$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseOverrideAzure' from JSON`, + (x) => + SyncListResponsePreparedStackOverrideAzure$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackOverrideAzure' from JSON`, ); } /** @internal */ -export const SyncListResponseOverrideConditionResource$inboundSchema: z.ZodType< - SyncListResponseOverrideConditionResource, - unknown -> = z.object({ - expression: z.string(), - title: z.string(), -}); +export const SyncListResponsePreparedStackOverrideConditionResource$inboundSchema: + z.ZodType = z + .object({ + expression: z.string(), + title: z.string(), + }); -export function syncListResponseOverrideConditionResourceFromJSON( +export function syncListResponsePreparedStackOverrideConditionResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncListResponseOverrideConditionResource, + SyncListResponsePreparedStackOverrideConditionResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncListResponseOverrideConditionResource$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncListResponseOverrideConditionResource' from JSON`, + SyncListResponsePreparedStackOverrideConditionResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePreparedStackOverrideConditionResource' from JSON`, ); } /** @internal */ -export const SyncListResponseOverrideResourceConditionUnion$inboundSchema: - z.ZodType = z.union([ - z.lazy(() => SyncListResponseOverrideConditionResource$inboundSchema), +export const SyncListResponsePreparedStackOverrideResourceConditionUnion$inboundSchema: + z.ZodType< + SyncListResponsePreparedStackOverrideResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncListResponsePreparedStackOverrideConditionResource$inboundSchema + ), z.any(), ]); -export function syncListResponseOverrideResourceConditionUnionFromJSON( +export function syncListResponsePreparedStackOverrideResourceConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncListResponseOverrideResourceConditionUnion, + SyncListResponsePreparedStackOverrideResourceConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncListResponseOverrideResourceConditionUnion$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncListResponseOverrideResourceConditionUnion' from JSON`, + SyncListResponsePreparedStackOverrideResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePreparedStackOverrideResourceConditionUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseOverrideGcpResource$inboundSchema: z.ZodType< - SyncListResponseOverrideGcpResource, - unknown -> = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => SyncListResponseOverrideConditionResource$inboundSchema), - z.any(), - ]), - ).optional(), - scope: z.string(), -}); +export const SyncListResponsePreparedStackOverrideGcpResource$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncListResponsePreparedStackOverrideConditionResource$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function syncListResponseOverrideGcpResourceFromJSON( +export function syncListResponsePreparedStackOverrideGcpResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackOverrideGcpResource, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseOverrideGcpResource$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseOverrideGcpResource' from JSON`, + SyncListResponsePreparedStackOverrideGcpResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackOverrideGcpResource' from JSON`, ); } /** @internal */ -export const SyncListResponseOverrideConditionStack$inboundSchema: z.ZodType< - SyncListResponseOverrideConditionStack, - unknown -> = z.object({ - expression: z.string(), - title: z.string(), -}); +export const SyncListResponsePreparedStackOverrideConditionStack$inboundSchema: + z.ZodType = z + .object({ + expression: z.string(), + title: z.string(), + }); -export function syncListResponseOverrideConditionStackFromJSON( +export function syncListResponsePreparedStackOverrideConditionStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackOverrideConditionStack, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseOverrideConditionStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseOverrideConditionStack' from JSON`, + SyncListResponsePreparedStackOverrideConditionStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackOverrideConditionStack' from JSON`, ); } /** @internal */ -export const SyncListResponseOverrideStackConditionUnion$inboundSchema: - z.ZodType = z.union([ - z.lazy(() => SyncListResponseOverrideConditionStack$inboundSchema), - z.any(), - ]); +export const SyncListResponsePreparedStackOverrideStackConditionUnion$inboundSchema: + z.ZodType = + z.union([ + z.lazy(() => + SyncListResponsePreparedStackOverrideConditionStack$inboundSchema + ), + z.any(), + ]); -export function syncListResponseOverrideStackConditionUnionFromJSON( +export function syncListResponsePreparedStackOverrideStackConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncListResponseOverrideStackConditionUnion, + SyncListResponsePreparedStackOverrideStackConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncListResponseOverrideStackConditionUnion$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncListResponseOverrideStackConditionUnion' from JSON`, + SyncListResponsePreparedStackOverrideStackConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePreparedStackOverrideStackConditionUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseOverrideGcpStack$inboundSchema: z.ZodType< - SyncListResponseOverrideGcpStack, - unknown -> = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => SyncListResponseOverrideConditionStack$inboundSchema), - z.any(), - ]), - ).optional(), - scope: z.string(), -}); +export const SyncListResponsePreparedStackOverrideGcpStack$inboundSchema: + z.ZodType = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncListResponsePreparedStackOverrideConditionStack$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function syncListResponseOverrideGcpStackFromJSON( +export function syncListResponsePreparedStackOverrideGcpStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackOverrideGcpStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseOverrideGcpStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseOverrideGcpStack' from JSON`, + (x) => + SyncListResponsePreparedStackOverrideGcpStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackOverrideGcpStack' from JSON`, ); } /** @internal */ -export const SyncListResponseOverrideGcpBinding$inboundSchema: z.ZodType< - SyncListResponseOverrideGcpBinding, - unknown -> = z.object({ - resource: z.lazy(() => SyncListResponseOverrideGcpResource$inboundSchema) - .optional(), - stack: z.lazy(() => SyncListResponseOverrideGcpStack$inboundSchema) - .optional(), -}); +export const SyncListResponsePreparedStackOverrideGcpBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + SyncListResponsePreparedStackOverrideGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncListResponsePreparedStackOverrideGcpStack$inboundSchema + ).optional(), + }); -export function syncListResponseOverrideGcpBindingFromJSON( +export function syncListResponsePreparedStackOverrideGcpBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackOverrideGcpBinding, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseOverrideGcpBinding$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseOverrideGcpBinding' from JSON`, + SyncListResponsePreparedStackOverrideGcpBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackOverrideGcpBinding' from JSON`, ); } /** @internal */ -export const SyncListResponseOverrideGcpGrant$inboundSchema: z.ZodType< - SyncListResponseOverrideGcpGrant, - unknown -> = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), -}); +export const SyncListResponsePreparedStackOverrideGcpGrant$inboundSchema: + z.ZodType = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function syncListResponseOverrideGcpGrantFromJSON( +export function syncListResponsePreparedStackOverrideGcpGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackOverrideGcpGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseOverrideGcpGrant$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseOverrideGcpGrant' from JSON`, + (x) => + SyncListResponsePreparedStackOverrideGcpGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackOverrideGcpGrant' from JSON`, ); } /** @internal */ -export const SyncListResponseOverrideGcp$inboundSchema: z.ZodType< - SyncListResponseOverrideGcp, +export const SyncListResponsePreparedStackOverrideGcp$inboundSchema: z.ZodType< + SyncListResponsePreparedStackOverrideGcp, unknown > = z.object({ - binding: z.lazy(() => SyncListResponseOverrideGcpBinding$inboundSchema), + binding: z.lazy(() => + SyncListResponsePreparedStackOverrideGcpBinding$inboundSchema + ), description: z.nullable(z.string()).optional(), - grant: z.lazy(() => SyncListResponseOverrideGcpGrant$inboundSchema), + grant: z.lazy(() => + SyncListResponsePreparedStackOverrideGcpGrant$inboundSchema + ), label: z.nullable(z.string()).optional(), }); -export function syncListResponseOverrideGcpFromJSON( +export function syncListResponsePreparedStackOverrideGcpFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackOverrideGcp, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseOverrideGcp$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseOverrideGcp' from JSON`, + (x) => + SyncListResponsePreparedStackOverrideGcp$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackOverrideGcp' from JSON`, ); } /** @internal */ -export const SyncListResponseOverridePlatforms$inboundSchema: z.ZodType< - SyncListResponseOverridePlatforms, - unknown -> = z.object({ - aws: z.nullable( - z.array(z.lazy(() => SyncListResponseOverrideAw$inboundSchema)), - ).optional(), - azure: z.nullable( - z.array(z.lazy(() => SyncListResponseOverrideAzure$inboundSchema)), - ).optional(), - gcp: z.nullable( - z.array(z.lazy(() => SyncListResponseOverrideGcp$inboundSchema)), - ).optional(), -}); +export const SyncListResponsePreparedStackOverridePlatforms$inboundSchema: + z.ZodType = z.object( + { + aws: z.nullable(z.array(z.lazy(() => + SyncListResponsePreparedStackOverrideAw$inboundSchema + ))).optional(), + azure: z.nullable(z.array(z.lazy(() => + SyncListResponsePreparedStackOverrideAzure$inboundSchema + ))).optional(), + gcp: z.nullable(z.array(z.lazy(() => + SyncListResponsePreparedStackOverrideGcp$inboundSchema + ))).optional(), + }, + ); -export function syncListResponseOverridePlatformsFromJSON( +export function syncListResponsePreparedStackOverridePlatformsFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackOverridePlatforms, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseOverridePlatforms$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseOverridePlatforms' from JSON`, + (x) => + SyncListResponsePreparedStackOverridePlatforms$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackOverridePlatforms' from JSON`, ); } /** @internal */ -export const SyncListResponseOverride$inboundSchema: z.ZodType< - SyncListResponseOverride, +export const SyncListResponsePreparedStackOverride$inboundSchema: z.ZodType< + SyncListResponsePreparedStackOverride, unknown > = z.object({ description: z.string(), id: z.string(), - platforms: z.lazy(() => SyncListResponseOverridePlatforms$inboundSchema), + platforms: z.lazy(() => + SyncListResponsePreparedStackOverridePlatforms$inboundSchema + ), }); -export function syncListResponseOverrideFromJSON( +export function syncListResponsePreparedStackOverrideFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => SyncListResponseOverride$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseOverride' from JSON`, + (x) => + SyncListResponsePreparedStackOverride$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePreparedStackOverride' from JSON`, ); } /** @internal */ -export const SyncListResponseOverrideUnion$inboundSchema: z.ZodType< - SyncListResponseOverrideUnion, - unknown -> = z.union([z.lazy(() => SyncListResponseOverride$inboundSchema), z.string()]); +export const SyncListResponsePreparedStackOverrideUnion$inboundSchema: + z.ZodType = z.union([ + z.lazy(() => SyncListResponsePreparedStackOverride$inboundSchema), + z.string(), + ]); -export function syncListResponseOverrideUnionFromJSON( +export function syncListResponsePreparedStackOverrideUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackOverrideUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseOverrideUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseOverrideUnion' from JSON`, + (x) => + SyncListResponsePreparedStackOverrideUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackOverrideUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseManagement2$inboundSchema: z.ZodType< - SyncListResponseManagement2, +export const SyncListResponsePreparedStackManagement2$inboundSchema: z.ZodType< + SyncListResponsePreparedStackManagement2, unknown > = z.object({ override: z.record( z.string(), z.array(z.union([ - z.lazy(() => SyncListResponseOverride$inboundSchema), + z.lazy(() => SyncListResponsePreparedStackOverride$inboundSchema), z.string(), ])), ), }); -export function syncListResponseManagement2FromJSON( +export function syncListResponsePreparedStackManagement2FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackManagement2, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseManagement2$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseManagement2' from JSON`, + (x) => + SyncListResponsePreparedStackManagement2$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackManagement2' from JSON`, ); } /** @internal */ -export const SyncListResponseExtendAwResource$inboundSchema: z.ZodType< - SyncListResponseExtendAwResource, - unknown -> = z.object({ - condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) - .optional(), - resources: z.array(z.string()), -}); +export const SyncListResponsePreparedStackExtendAwResource$inboundSchema: + z.ZodType = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function syncListResponseExtendAwResourceFromJSON( +export function syncListResponsePreparedStackExtendAwResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackExtendAwResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseExtendAwResource$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseExtendAwResource' from JSON`, + (x) => + SyncListResponsePreparedStackExtendAwResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackExtendAwResource' from JSON`, ); } /** @internal */ -export const SyncListResponseExtendAwStack$inboundSchema: z.ZodType< - SyncListResponseExtendAwStack, - unknown -> = z.object({ - condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) - .optional(), - resources: z.array(z.string()), -}); +export const SyncListResponsePreparedStackExtendAwStack$inboundSchema: + z.ZodType = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function syncListResponseExtendAwStackFromJSON( +export function syncListResponsePreparedStackExtendAwStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackExtendAwStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseExtendAwStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseExtendAwStack' from JSON`, + (x) => + SyncListResponsePreparedStackExtendAwStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackExtendAwStack' from JSON`, ); } /** @internal */ -export const SyncListResponseExtendAwBinding$inboundSchema: z.ZodType< - SyncListResponseExtendAwBinding, - unknown -> = z.object({ - resource: z.lazy(() => SyncListResponseExtendAwResource$inboundSchema) - .optional(), - stack: z.lazy(() => SyncListResponseExtendAwStack$inboundSchema).optional(), -}); +export const SyncListResponsePreparedStackExtendAwBinding$inboundSchema: + z.ZodType = z.object({ + resource: z.lazy(() => + SyncListResponsePreparedStackExtendAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncListResponsePreparedStackExtendAwStack$inboundSchema + ).optional(), + }); -export function syncListResponseExtendAwBindingFromJSON( +export function syncListResponsePreparedStackExtendAwBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackExtendAwBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseExtendAwBinding$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseExtendAwBinding' from JSON`, + (x) => + SyncListResponsePreparedStackExtendAwBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackExtendAwBinding' from JSON`, ); } /** @internal */ -export const SyncListResponseExtendEffect$inboundSchema: z.ZodEnum< - typeof SyncListResponseExtendEffect -> = z.enum(SyncListResponseExtendEffect); +export const SyncListResponsePreparedStackExtendEffect$inboundSchema: z.ZodEnum< + typeof SyncListResponsePreparedStackExtendEffect +> = z.enum(SyncListResponsePreparedStackExtendEffect); /** @internal */ -export const SyncListResponseExtendAwGrant$inboundSchema: z.ZodType< - SyncListResponseExtendAwGrant, - unknown -> = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), -}); +export const SyncListResponsePreparedStackExtendAwGrant$inboundSchema: + z.ZodType = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function syncListResponseExtendAwGrantFromJSON( +export function syncListResponsePreparedStackExtendAwGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackExtendAwGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseExtendAwGrant$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseExtendAwGrant' from JSON`, + (x) => + SyncListResponsePreparedStackExtendAwGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackExtendAwGrant' from JSON`, ); } /** @internal */ -export const SyncListResponseExtendAw$inboundSchema: z.ZodType< - SyncListResponseExtendAw, +export const SyncListResponsePreparedStackExtendAw$inboundSchema: z.ZodType< + SyncListResponsePreparedStackExtendAw, unknown > = z.object({ - binding: z.lazy(() => SyncListResponseExtendAwBinding$inboundSchema), + binding: z.lazy(() => + SyncListResponsePreparedStackExtendAwBinding$inboundSchema + ), description: z.nullable(z.string()).optional(), - effect: SyncListResponseExtendEffect$inboundSchema.optional(), - grant: z.lazy(() => SyncListResponseExtendAwGrant$inboundSchema), + effect: SyncListResponsePreparedStackExtendEffect$inboundSchema.optional(), + grant: z.lazy(() => SyncListResponsePreparedStackExtendAwGrant$inboundSchema), label: z.nullable(z.string()).optional(), }); -export function syncListResponseExtendAwFromJSON( +export function syncListResponsePreparedStackExtendAwFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => SyncListResponseExtendAw$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseExtendAw' from JSON`, + (x) => + SyncListResponsePreparedStackExtendAw$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePreparedStackExtendAw' from JSON`, ); } /** @internal */ -export const SyncListResponseExtendAzureResource$inboundSchema: z.ZodType< - SyncListResponseExtendAzureResource, - unknown -> = z.object({ - scope: z.string(), -}); +export const SyncListResponsePreparedStackExtendAzureResource$inboundSchema: + z.ZodType = z + .object({ + scope: z.string(), + }); -export function syncListResponseExtendAzureResourceFromJSON( +export function syncListResponsePreparedStackExtendAzureResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackExtendAzureResource, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseExtendAzureResource$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseExtendAzureResource' from JSON`, + SyncListResponsePreparedStackExtendAzureResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackExtendAzureResource' from JSON`, ); } /** @internal */ -export const SyncListResponseExtendAzureStack$inboundSchema: z.ZodType< - SyncListResponseExtendAzureStack, - unknown -> = z.object({ - scope: z.string(), -}); +export const SyncListResponsePreparedStackExtendAzureStack$inboundSchema: + z.ZodType = z.object({ + scope: z.string(), + }); -export function syncListResponseExtendAzureStackFromJSON( +export function syncListResponsePreparedStackExtendAzureStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackExtendAzureStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseExtendAzureStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseExtendAzureStack' from JSON`, + (x) => + SyncListResponsePreparedStackExtendAzureStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackExtendAzureStack' from JSON`, ); } /** @internal */ -export const SyncListResponseExtendAzureBinding$inboundSchema: z.ZodType< - SyncListResponseExtendAzureBinding, - unknown -> = z.object({ - resource: z.lazy(() => SyncListResponseExtendAzureResource$inboundSchema) - .optional(), - stack: z.lazy(() => SyncListResponseExtendAzureStack$inboundSchema) - .optional(), -}); +export const SyncListResponsePreparedStackExtendAzureBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + SyncListResponsePreparedStackExtendAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncListResponsePreparedStackExtendAzureStack$inboundSchema + ).optional(), + }); -export function syncListResponseExtendAzureBindingFromJSON( +export function syncListResponsePreparedStackExtendAzureBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackExtendAzureBinding, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseExtendAzureBinding$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseExtendAzureBinding' from JSON`, + SyncListResponsePreparedStackExtendAzureBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackExtendAzureBinding' from JSON`, ); } /** @internal */ -export const SyncListResponseExtendAzureGrant$inboundSchema: z.ZodType< - SyncListResponseExtendAzureGrant, - unknown -> = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), -}); +export const SyncListResponsePreparedStackExtendAzureGrant$inboundSchema: + z.ZodType = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function syncListResponseExtendAzureGrantFromJSON( +export function syncListResponsePreparedStackExtendAzureGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackExtendAzureGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseExtendAzureGrant$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseExtendAzureGrant' from JSON`, + (x) => + SyncListResponsePreparedStackExtendAzureGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackExtendAzureGrant' from JSON`, ); } /** @internal */ -export const SyncListResponseExtendAzure$inboundSchema: z.ZodType< - SyncListResponseExtendAzure, +export const SyncListResponsePreparedStackExtendAzure$inboundSchema: z.ZodType< + SyncListResponsePreparedStackExtendAzure, unknown > = z.object({ - binding: z.lazy(() => SyncListResponseExtendAzureBinding$inboundSchema), + binding: z.lazy(() => + SyncListResponsePreparedStackExtendAzureBinding$inboundSchema + ), description: z.nullable(z.string()).optional(), - grant: z.lazy(() => SyncListResponseExtendAzureGrant$inboundSchema), + grant: z.lazy(() => + SyncListResponsePreparedStackExtendAzureGrant$inboundSchema + ), label: z.nullable(z.string()).optional(), }); -export function syncListResponseExtendAzureFromJSON( +export function syncListResponsePreparedStackExtendAzureFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackExtendAzure, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseExtendAzure$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseExtendAzure' from JSON`, + (x) => + SyncListResponsePreparedStackExtendAzure$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackExtendAzure' from JSON`, ); } /** @internal */ -export const SyncListResponseExtendConditionResource$inboundSchema: z.ZodType< - SyncListResponseExtendConditionResource, - unknown -> = z.object({ - expression: z.string(), - title: z.string(), -}); +export const SyncListResponsePreparedStackExtendConditionResource$inboundSchema: + z.ZodType = z + .object({ + expression: z.string(), + title: z.string(), + }); -export function syncListResponseExtendConditionResourceFromJSON( +export function syncListResponsePreparedStackExtendConditionResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncListResponseExtendConditionResource, + SyncListResponsePreparedStackExtendConditionResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncListResponseExtendConditionResource$inboundSchema.parse( + SyncListResponsePreparedStackExtendConditionResource$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncListResponseExtendConditionResource' from JSON`, + `Failed to parse 'SyncListResponsePreparedStackExtendConditionResource' from JSON`, ); } /** @internal */ -export const SyncListResponseExtendResourceConditionUnion$inboundSchema: - z.ZodType = z.union([ - z.lazy(() => SyncListResponseExtendConditionResource$inboundSchema), +export const SyncListResponsePreparedStackExtendResourceConditionUnion$inboundSchema: + z.ZodType< + SyncListResponsePreparedStackExtendResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncListResponsePreparedStackExtendConditionResource$inboundSchema + ), z.any(), ]); -export function syncListResponseExtendResourceConditionUnionFromJSON( +export function syncListResponsePreparedStackExtendResourceConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncListResponseExtendResourceConditionUnion, + SyncListResponsePreparedStackExtendResourceConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncListResponseExtendResourceConditionUnion$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncListResponseExtendResourceConditionUnion' from JSON`, + SyncListResponsePreparedStackExtendResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePreparedStackExtendResourceConditionUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseExtendGcpResource$inboundSchema: z.ZodType< - SyncListResponseExtendGcpResource, - unknown -> = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => SyncListResponseExtendConditionResource$inboundSchema), - z.any(), - ]), - ).optional(), - scope: z.string(), -}); +export const SyncListResponsePreparedStackExtendGcpResource$inboundSchema: + z.ZodType = z.object( + { + condition: z.nullable(z.union([ + z.lazy(() => + SyncListResponsePreparedStackExtendConditionResource$inboundSchema + ), + z.any(), + ])).optional(), + scope: z.string(), + }, + ); -export function syncListResponseExtendGcpResourceFromJSON( +export function syncListResponsePreparedStackExtendGcpResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackExtendGcpResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseExtendGcpResource$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseExtendGcpResource' from JSON`, + (x) => + SyncListResponsePreparedStackExtendGcpResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackExtendGcpResource' from JSON`, ); } /** @internal */ -export const SyncListResponseExtendConditionStack$inboundSchema: z.ZodType< - SyncListResponseExtendConditionStack, - unknown -> = z.object({ - expression: z.string(), - title: z.string(), -}); +export const SyncListResponsePreparedStackExtendConditionStack$inboundSchema: + z.ZodType = z + .object({ + expression: z.string(), + title: z.string(), + }); -export function syncListResponseExtendConditionStackFromJSON( +export function syncListResponsePreparedStackExtendConditionStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackExtendConditionStack, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseExtendConditionStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseExtendConditionStack' from JSON`, + SyncListResponsePreparedStackExtendConditionStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackExtendConditionStack' from JSON`, ); } /** @internal */ -export const SyncListResponseExtendStackConditionUnion$inboundSchema: z.ZodType< - SyncListResponseExtendStackConditionUnion, - unknown -> = z.union([ - z.lazy(() => SyncListResponseExtendConditionStack$inboundSchema), - z.any(), -]); +export const SyncListResponsePreparedStackExtendStackConditionUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => + SyncListResponsePreparedStackExtendConditionStack$inboundSchema + ), + z.any(), + ]); -export function syncListResponseExtendStackConditionUnionFromJSON( +export function syncListResponsePreparedStackExtendStackConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncListResponseExtendStackConditionUnion, + SyncListResponsePreparedStackExtendStackConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncListResponseExtendStackConditionUnion$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncListResponseExtendStackConditionUnion' from JSON`, + SyncListResponsePreparedStackExtendStackConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePreparedStackExtendStackConditionUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseExtendGcpStack$inboundSchema: z.ZodType< - SyncListResponseExtendGcpStack, - unknown -> = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => SyncListResponseExtendConditionStack$inboundSchema), - z.any(), - ]), - ).optional(), - scope: z.string(), -}); +export const SyncListResponsePreparedStackExtendGcpStack$inboundSchema: + z.ZodType = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncListResponsePreparedStackExtendConditionStack$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function syncListResponseExtendGcpStackFromJSON( +export function syncListResponsePreparedStackExtendGcpStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackExtendGcpStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseExtendGcpStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseExtendGcpStack' from JSON`, + (x) => + SyncListResponsePreparedStackExtendGcpStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackExtendGcpStack' from JSON`, ); } /** @internal */ -export const SyncListResponseExtendGcpBinding$inboundSchema: z.ZodType< - SyncListResponseExtendGcpBinding, - unknown -> = z.object({ - resource: z.lazy(() => SyncListResponseExtendGcpResource$inboundSchema) - .optional(), - stack: z.lazy(() => SyncListResponseExtendGcpStack$inboundSchema).optional(), -}); +export const SyncListResponsePreparedStackExtendGcpBinding$inboundSchema: + z.ZodType = z.object({ + resource: z.lazy(() => + SyncListResponsePreparedStackExtendGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncListResponsePreparedStackExtendGcpStack$inboundSchema + ).optional(), + }); -export function syncListResponseExtendGcpBindingFromJSON( +export function syncListResponsePreparedStackExtendGcpBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackExtendGcpBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseExtendGcpBinding$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseExtendGcpBinding' from JSON`, + (x) => + SyncListResponsePreparedStackExtendGcpBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackExtendGcpBinding' from JSON`, ); } /** @internal */ -export const SyncListResponseExtendGcpGrant$inboundSchema: z.ZodType< - SyncListResponseExtendGcpGrant, - unknown -> = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), -}); +export const SyncListResponsePreparedStackExtendGcpGrant$inboundSchema: + z.ZodType = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function syncListResponseExtendGcpGrantFromJSON( +export function syncListResponsePreparedStackExtendGcpGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackExtendGcpGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseExtendGcpGrant$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseExtendGcpGrant' from JSON`, + (x) => + SyncListResponsePreparedStackExtendGcpGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackExtendGcpGrant' from JSON`, ); } /** @internal */ -export const SyncListResponseExtendGcp$inboundSchema: z.ZodType< - SyncListResponseExtendGcp, +export const SyncListResponsePreparedStackExtendGcp$inboundSchema: z.ZodType< + SyncListResponsePreparedStackExtendGcp, unknown > = z.object({ - binding: z.lazy(() => SyncListResponseExtendGcpBinding$inboundSchema), + binding: z.lazy(() => + SyncListResponsePreparedStackExtendGcpBinding$inboundSchema + ), description: z.nullable(z.string()).optional(), - grant: z.lazy(() => SyncListResponseExtendGcpGrant$inboundSchema), + grant: z.lazy(() => + SyncListResponsePreparedStackExtendGcpGrant$inboundSchema + ), label: z.nullable(z.string()).optional(), }); -export function syncListResponseExtendGcpFromJSON( +export function syncListResponsePreparedStackExtendGcpFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => SyncListResponseExtendGcp$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseExtendGcp' from JSON`, + (x) => + SyncListResponsePreparedStackExtendGcp$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePreparedStackExtendGcp' from JSON`, ); } /** @internal */ -export const SyncListResponseExtendPlatforms$inboundSchema: z.ZodType< - SyncListResponseExtendPlatforms, - unknown -> = z.object({ - aws: z.nullable(z.array(z.lazy(() => SyncListResponseExtendAw$inboundSchema))) - .optional(), - azure: z.nullable( - z.array(z.lazy(() => SyncListResponseExtendAzure$inboundSchema)), - ).optional(), - gcp: z.nullable( - z.array(z.lazy(() => SyncListResponseExtendGcp$inboundSchema)), - ).optional(), -}); +export const SyncListResponsePreparedStackExtendPlatforms$inboundSchema: + z.ZodType = z.object({ + aws: z.nullable( + z.array( + z.lazy(() => SyncListResponsePreparedStackExtendAw$inboundSchema), + ), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + SyncListResponsePreparedStackExtendAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array( + z.lazy(() => SyncListResponsePreparedStackExtendGcp$inboundSchema), + ), + ).optional(), + }); -export function syncListResponseExtendPlatformsFromJSON( +export function syncListResponsePreparedStackExtendPlatformsFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackExtendPlatforms, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseExtendPlatforms$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseExtendPlatforms' from JSON`, + (x) => + SyncListResponsePreparedStackExtendPlatforms$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackExtendPlatforms' from JSON`, ); } /** @internal */ -export const SyncListResponseExtend$inboundSchema: z.ZodType< - SyncListResponseExtend, +export const SyncListResponsePreparedStackExtend$inboundSchema: z.ZodType< + SyncListResponsePreparedStackExtend, unknown > = z.object({ description: z.string(), id: z.string(), - platforms: z.lazy(() => SyncListResponseExtendPlatforms$inboundSchema), + platforms: z.lazy(() => + SyncListResponsePreparedStackExtendPlatforms$inboundSchema + ), }); -export function syncListResponseExtendFromJSON( +export function syncListResponsePreparedStackExtendFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => SyncListResponseExtend$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseExtend' from JSON`, + (x) => + SyncListResponsePreparedStackExtend$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePreparedStackExtend' from JSON`, ); } /** @internal */ -export const SyncListResponseExtendUnion$inboundSchema: z.ZodType< - SyncListResponseExtendUnion, +export const SyncListResponsePreparedStackExtendUnion$inboundSchema: z.ZodType< + SyncListResponsePreparedStackExtendUnion, unknown -> = z.union([z.lazy(() => SyncListResponseExtend$inboundSchema), z.string()]); +> = z.union([ + z.lazy(() => SyncListResponsePreparedStackExtend$inboundSchema), + z.string(), +]); -export function syncListResponseExtendUnionFromJSON( +export function syncListResponsePreparedStackExtendUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackExtendUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseExtendUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseExtendUnion' from JSON`, + (x) => + SyncListResponsePreparedStackExtendUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackExtendUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseManagement1$inboundSchema: z.ZodType< - SyncListResponseManagement1, +export const SyncListResponsePreparedStackManagement1$inboundSchema: z.ZodType< + SyncListResponsePreparedStackManagement1, unknown > = z.object({ extend: z.record( z.string(), - z.array( - z.union([z.lazy(() => SyncListResponseExtend$inboundSchema), z.string()]), - ), + z.array(z.union([ + z.lazy(() => SyncListResponsePreparedStackExtend$inboundSchema), + z.string(), + ])), ), }); -export function syncListResponseManagement1FromJSON( +export function syncListResponsePreparedStackManagement1FromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackManagement1, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseManagement1$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseManagement1' from JSON`, + (x) => + SyncListResponsePreparedStackManagement1$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackManagement1' from JSON`, ); } /** @internal */ -export const SyncListResponseManagementUnion$inboundSchema: z.ZodType< - SyncListResponseManagementUnion, - unknown -> = z.union([ - z.lazy(() => SyncListResponseManagement1$inboundSchema), - z.lazy(() => SyncListResponseManagement2$inboundSchema), - SyncListResponseManagementEnum$inboundSchema, -]); +export const SyncListResponsePreparedStackManagementUnion$inboundSchema: + z.ZodType = z.union([ + z.lazy(() => SyncListResponsePreparedStackManagement1$inboundSchema), + z.lazy(() => SyncListResponsePreparedStackManagement2$inboundSchema), + SyncListResponsePreparedStackManagementEnum$inboundSchema, + ]); -export function syncListResponseManagementUnionFromJSON( +export function syncListResponsePreparedStackManagementUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackManagementUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseManagementUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseManagementUnion' from JSON`, + (x) => + SyncListResponsePreparedStackManagementUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackManagementUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseProfileAwResource$inboundSchema: z.ZodType< - SyncListResponseProfileAwResource, - unknown -> = z.object({ - condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) - .optional(), - resources: z.array(z.string()), -}); +export const SyncListResponsePreparedStackProfileAwResource$inboundSchema: + z.ZodType = z.object( + { + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }, + ); -export function syncListResponseProfileAwResourceFromJSON( +export function syncListResponsePreparedStackProfileAwResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackProfileAwResource, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseProfileAwResource$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProfileAwResource' from JSON`, + (x) => + SyncListResponsePreparedStackProfileAwResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackProfileAwResource' from JSON`, ); -} - -/** @internal */ -export const SyncListResponseProfileAwStack$inboundSchema: z.ZodType< - SyncListResponseProfileAwStack, - unknown -> = z.object({ - condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) - .optional(), - resources: z.array(z.string()), -}); +} + +/** @internal */ +export const SyncListResponsePreparedStackProfileAwStack$inboundSchema: + z.ZodType = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function syncListResponseProfileAwStackFromJSON( +export function syncListResponsePreparedStackProfileAwStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackProfileAwStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseProfileAwStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProfileAwStack' from JSON`, + (x) => + SyncListResponsePreparedStackProfileAwStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackProfileAwStack' from JSON`, ); } /** @internal */ -export const SyncListResponseProfileAwBinding$inboundSchema: z.ZodType< - SyncListResponseProfileAwBinding, - unknown -> = z.object({ - resource: z.lazy(() => SyncListResponseProfileAwResource$inboundSchema) - .optional(), - stack: z.lazy(() => SyncListResponseProfileAwStack$inboundSchema).optional(), -}); +export const SyncListResponsePreparedStackProfileAwBinding$inboundSchema: + z.ZodType = z.object({ + resource: z.lazy(() => + SyncListResponsePreparedStackProfileAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncListResponsePreparedStackProfileAwStack$inboundSchema + ).optional(), + }); -export function syncListResponseProfileAwBindingFromJSON( +export function syncListResponsePreparedStackProfileAwBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackProfileAwBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseProfileAwBinding$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProfileAwBinding' from JSON`, + (x) => + SyncListResponsePreparedStackProfileAwBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackProfileAwBinding' from JSON`, ); } /** @internal */ -export const SyncListResponseProfileEffect$inboundSchema: z.ZodEnum< - typeof SyncListResponseProfileEffect -> = z.enum(SyncListResponseProfileEffect); +export const SyncListResponsePreparedStackProfileEffect$inboundSchema: + z.ZodEnum = z.enum( + SyncListResponsePreparedStackProfileEffect, + ); /** @internal */ -export const SyncListResponseProfileAwGrant$inboundSchema: z.ZodType< - SyncListResponseProfileAwGrant, - unknown -> = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), -}); +export const SyncListResponsePreparedStackProfileAwGrant$inboundSchema: + z.ZodType = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function syncListResponseProfileAwGrantFromJSON( +export function syncListResponsePreparedStackProfileAwGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackProfileAwGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseProfileAwGrant$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProfileAwGrant' from JSON`, + (x) => + SyncListResponsePreparedStackProfileAwGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackProfileAwGrant' from JSON`, ); } /** @internal */ -export const SyncListResponseProfileAw$inboundSchema: z.ZodType< - SyncListResponseProfileAw, +export const SyncListResponsePreparedStackProfileAw$inboundSchema: z.ZodType< + SyncListResponsePreparedStackProfileAw, unknown > = z.object({ - binding: z.lazy(() => SyncListResponseProfileAwBinding$inboundSchema), + binding: z.lazy(() => + SyncListResponsePreparedStackProfileAwBinding$inboundSchema + ), description: z.nullable(z.string()).optional(), - effect: SyncListResponseProfileEffect$inboundSchema.optional(), - grant: z.lazy(() => SyncListResponseProfileAwGrant$inboundSchema), + effect: SyncListResponsePreparedStackProfileEffect$inboundSchema.optional(), + grant: z.lazy(() => + SyncListResponsePreparedStackProfileAwGrant$inboundSchema + ), label: z.nullable(z.string()).optional(), }); -export function syncListResponseProfileAwFromJSON( +export function syncListResponsePreparedStackProfileAwFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => SyncListResponseProfileAw$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProfileAw' from JSON`, + (x) => + SyncListResponsePreparedStackProfileAw$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePreparedStackProfileAw' from JSON`, ); } /** @internal */ -export const SyncListResponseProfileAzureResource$inboundSchema: z.ZodType< - SyncListResponseProfileAzureResource, - unknown -> = z.object({ - scope: z.string(), -}); +export const SyncListResponsePreparedStackProfileAzureResource$inboundSchema: + z.ZodType = z + .object({ + scope: z.string(), + }); -export function syncListResponseProfileAzureResourceFromJSON( +export function syncListResponsePreparedStackProfileAzureResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackProfileAzureResource, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseProfileAzureResource$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProfileAzureResource' from JSON`, + SyncListResponsePreparedStackProfileAzureResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackProfileAzureResource' from JSON`, ); } /** @internal */ -export const SyncListResponseProfileAzureStack$inboundSchema: z.ZodType< - SyncListResponseProfileAzureStack, - unknown -> = z.object({ - scope: z.string(), -}); +export const SyncListResponsePreparedStackProfileAzureStack$inboundSchema: + z.ZodType = z.object( + { + scope: z.string(), + }, + ); -export function syncListResponseProfileAzureStackFromJSON( +export function syncListResponsePreparedStackProfileAzureStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackProfileAzureStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseProfileAzureStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProfileAzureStack' from JSON`, + (x) => + SyncListResponsePreparedStackProfileAzureStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackProfileAzureStack' from JSON`, ); } /** @internal */ -export const SyncListResponseProfileAzureBinding$inboundSchema: z.ZodType< - SyncListResponseProfileAzureBinding, - unknown -> = z.object({ - resource: z.lazy(() => SyncListResponseProfileAzureResource$inboundSchema) - .optional(), - stack: z.lazy(() => SyncListResponseProfileAzureStack$inboundSchema) - .optional(), -}); +export const SyncListResponsePreparedStackProfileAzureBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + SyncListResponsePreparedStackProfileAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncListResponsePreparedStackProfileAzureStack$inboundSchema + ).optional(), + }); -export function syncListResponseProfileAzureBindingFromJSON( +export function syncListResponsePreparedStackProfileAzureBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackProfileAzureBinding, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseProfileAzureBinding$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProfileAzureBinding' from JSON`, + SyncListResponsePreparedStackProfileAzureBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackProfileAzureBinding' from JSON`, ); } /** @internal */ -export const SyncListResponseProfileAzureGrant$inboundSchema: z.ZodType< - SyncListResponseProfileAzureGrant, - unknown -> = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), -}); +export const SyncListResponsePreparedStackProfileAzureGrant$inboundSchema: + z.ZodType = z.object( + { + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }, + ); -export function syncListResponseProfileAzureGrantFromJSON( +export function syncListResponsePreparedStackProfileAzureGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackProfileAzureGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseProfileAzureGrant$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProfileAzureGrant' from JSON`, + (x) => + SyncListResponsePreparedStackProfileAzureGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackProfileAzureGrant' from JSON`, ); } /** @internal */ -export const SyncListResponseProfileAzure$inboundSchema: z.ZodType< - SyncListResponseProfileAzure, +export const SyncListResponsePreparedStackProfileAzure$inboundSchema: z.ZodType< + SyncListResponsePreparedStackProfileAzure, unknown > = z.object({ - binding: z.lazy(() => SyncListResponseProfileAzureBinding$inboundSchema), + binding: z.lazy(() => + SyncListResponsePreparedStackProfileAzureBinding$inboundSchema + ), description: z.nullable(z.string()).optional(), - grant: z.lazy(() => SyncListResponseProfileAzureGrant$inboundSchema), + grant: z.lazy(() => + SyncListResponsePreparedStackProfileAzureGrant$inboundSchema + ), label: z.nullable(z.string()).optional(), }); -export function syncListResponseProfileAzureFromJSON( +export function syncListResponsePreparedStackProfileAzureFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackProfileAzure, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseProfileAzure$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProfileAzure' from JSON`, + (x) => + SyncListResponsePreparedStackProfileAzure$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackProfileAzure' from JSON`, ); } /** @internal */ -export const SyncListResponseProfileConditionResource$inboundSchema: z.ZodType< - SyncListResponseProfileConditionResource, - unknown -> = z.object({ - expression: z.string(), - title: z.string(), -}); +export const SyncListResponsePreparedStackProfileConditionResource$inboundSchema: + z.ZodType = z + .object({ + expression: z.string(), + title: z.string(), + }); -export function syncListResponseProfileConditionResourceFromJSON( +export function syncListResponsePreparedStackProfileConditionResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncListResponseProfileConditionResource, + SyncListResponsePreparedStackProfileConditionResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncListResponseProfileConditionResource$inboundSchema.parse( + SyncListResponsePreparedStackProfileConditionResource$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncListResponseProfileConditionResource' from JSON`, + `Failed to parse 'SyncListResponsePreparedStackProfileConditionResource' from JSON`, ); } /** @internal */ -export const SyncListResponseProfileResourceConditionUnion$inboundSchema: - z.ZodType = z.union([ - z.lazy(() => SyncListResponseProfileConditionResource$inboundSchema), +export const SyncListResponsePreparedStackProfileResourceConditionUnion$inboundSchema: + z.ZodType< + SyncListResponsePreparedStackProfileResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncListResponsePreparedStackProfileConditionResource$inboundSchema + ), z.any(), ]); -export function syncListResponseProfileResourceConditionUnionFromJSON( +export function syncListResponsePreparedStackProfileResourceConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncListResponseProfileResourceConditionUnion, + SyncListResponsePreparedStackProfileResourceConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncListResponseProfileResourceConditionUnion$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncListResponseProfileResourceConditionUnion' from JSON`, + SyncListResponsePreparedStackProfileResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePreparedStackProfileResourceConditionUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseProfileGcpResource$inboundSchema: z.ZodType< - SyncListResponseProfileGcpResource, - unknown -> = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => SyncListResponseProfileConditionResource$inboundSchema), - z.any(), - ]), - ).optional(), - scope: z.string(), -}); +export const SyncListResponsePreparedStackProfileGcpResource$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncListResponsePreparedStackProfileConditionResource$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function syncListResponseProfileGcpResourceFromJSON( +export function syncListResponsePreparedStackProfileGcpResourceFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackProfileGcpResource, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseProfileGcpResource$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProfileGcpResource' from JSON`, + SyncListResponsePreparedStackProfileGcpResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackProfileGcpResource' from JSON`, ); } /** @internal */ -export const SyncListResponseProfileConditionStack$inboundSchema: z.ZodType< - SyncListResponseProfileConditionStack, - unknown -> = z.object({ - expression: z.string(), - title: z.string(), -}); +export const SyncListResponsePreparedStackProfileConditionStack$inboundSchema: + z.ZodType = z + .object({ + expression: z.string(), + title: z.string(), + }); -export function syncListResponseProfileConditionStackFromJSON( +export function syncListResponsePreparedStackProfileConditionStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackProfileConditionStack, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncListResponseProfileConditionStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProfileConditionStack' from JSON`, + SyncListResponsePreparedStackProfileConditionStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackProfileConditionStack' from JSON`, ); } /** @internal */ -export const SyncListResponseProfileStackConditionUnion$inboundSchema: - z.ZodType = z.union([ - z.lazy(() => SyncListResponseProfileConditionStack$inboundSchema), - z.any(), - ]); +export const SyncListResponsePreparedStackProfileStackConditionUnion$inboundSchema: + z.ZodType = + z.union([ + z.lazy(() => + SyncListResponsePreparedStackProfileConditionStack$inboundSchema + ), + z.any(), + ]); -export function syncListResponseProfileStackConditionUnionFromJSON( +export function syncListResponsePreparedStackProfileStackConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncListResponseProfileStackConditionUnion, + SyncListResponsePreparedStackProfileStackConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncListResponseProfileStackConditionUnion$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncListResponseProfileStackConditionUnion' from JSON`, + SyncListResponsePreparedStackProfileStackConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePreparedStackProfileStackConditionUnion' from JSON`, ); } /** @internal */ -export const SyncListResponseProfileGcpStack$inboundSchema: z.ZodType< - SyncListResponseProfileGcpStack, - unknown -> = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => SyncListResponseProfileConditionStack$inboundSchema), - z.any(), - ]), - ).optional(), - scope: z.string(), -}); +export const SyncListResponsePreparedStackProfileGcpStack$inboundSchema: + z.ZodType = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncListResponsePreparedStackProfileConditionStack$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function syncListResponseProfileGcpStackFromJSON( +export function syncListResponsePreparedStackProfileGcpStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackProfileGcpStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseProfileGcpStack$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProfileGcpStack' from JSON`, + (x) => + SyncListResponsePreparedStackProfileGcpStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackProfileGcpStack' from JSON`, ); } /** @internal */ -export const SyncListResponseProfileGcpBinding$inboundSchema: z.ZodType< - SyncListResponseProfileGcpBinding, - unknown -> = z.object({ - resource: z.lazy(() => SyncListResponseProfileGcpResource$inboundSchema) - .optional(), - stack: z.lazy(() => SyncListResponseProfileGcpStack$inboundSchema).optional(), -}); +export const SyncListResponsePreparedStackProfileGcpBinding$inboundSchema: + z.ZodType = z.object( + { + resource: z.lazy(() => + SyncListResponsePreparedStackProfileGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncListResponsePreparedStackProfileGcpStack$inboundSchema + ).optional(), + }, + ); -export function syncListResponseProfileGcpBindingFromJSON( +export function syncListResponsePreparedStackProfileGcpBindingFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackProfileGcpBinding, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseProfileGcpBinding$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProfileGcpBinding' from JSON`, + (x) => + SyncListResponsePreparedStackProfileGcpBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackProfileGcpBinding' from JSON`, ); } /** @internal */ -export const SyncListResponseProfileGcpGrant$inboundSchema: z.ZodType< - SyncListResponseProfileGcpGrant, - unknown -> = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), -}); +export const SyncListResponsePreparedStackProfileGcpGrant$inboundSchema: + z.ZodType = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function syncListResponseProfileGcpGrantFromJSON( +export function syncListResponsePreparedStackProfileGcpGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackProfileGcpGrant, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseProfileGcpGrant$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProfileGcpGrant' from JSON`, + (x) => + SyncListResponsePreparedStackProfileGcpGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackProfileGcpGrant' from JSON`, ); } /** @internal */ -export const SyncListResponseProfileGcp$inboundSchema: z.ZodType< - SyncListResponseProfileGcp, +export const SyncListResponsePreparedStackProfileGcp$inboundSchema: z.ZodType< + SyncListResponsePreparedStackProfileGcp, unknown > = z.object({ - binding: z.lazy(() => SyncListResponseProfileGcpBinding$inboundSchema), + binding: z.lazy(() => + SyncListResponsePreparedStackProfileGcpBinding$inboundSchema + ), description: z.nullable(z.string()).optional(), - grant: z.lazy(() => SyncListResponseProfileGcpGrant$inboundSchema), + grant: z.lazy(() => + SyncListResponsePreparedStackProfileGcpGrant$inboundSchema + ), label: z.nullable(z.string()).optional(), }); -export function syncListResponseProfileGcpFromJSON( +export function syncListResponsePreparedStackProfileGcpFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackProfileGcp, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseProfileGcp$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProfileGcp' from JSON`, + (x) => + SyncListResponsePreparedStackProfileGcp$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackProfileGcp' from JSON`, ); } /** @internal */ -export const SyncListResponseProfilePlatforms$inboundSchema: z.ZodType< - SyncListResponseProfilePlatforms, - unknown -> = z.object({ - aws: z.nullable( - z.array(z.lazy(() => SyncListResponseProfileAw$inboundSchema)), - ).optional(), - azure: z.nullable( - z.array(z.lazy(() => SyncListResponseProfileAzure$inboundSchema)), - ).optional(), - gcp: z.nullable( - z.array(z.lazy(() => SyncListResponseProfileGcp$inboundSchema)), - ).optional(), -}); +export const SyncListResponsePreparedStackProfilePlatforms$inboundSchema: + z.ZodType = z.object({ + aws: z.nullable( + z.array( + z.lazy(() => SyncListResponsePreparedStackProfileAw$inboundSchema), + ), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + SyncListResponsePreparedStackProfileAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array( + z.lazy(() => SyncListResponsePreparedStackProfileGcp$inboundSchema), + ), + ).optional(), + }); -export function syncListResponseProfilePlatformsFromJSON( +export function syncListResponsePreparedStackProfilePlatformsFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackProfilePlatforms, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseProfilePlatforms$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProfilePlatforms' from JSON`, + (x) => + SyncListResponsePreparedStackProfilePlatforms$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackProfilePlatforms' from JSON`, ); } /** @internal */ -export const SyncListResponseProfile$inboundSchema: z.ZodType< - SyncListResponseProfile, +export const SyncListResponsePreparedStackProfile$inboundSchema: z.ZodType< + SyncListResponsePreparedStackProfile, unknown > = z.object({ description: z.string(), id: z.string(), - platforms: z.lazy(() => SyncListResponseProfilePlatforms$inboundSchema), + platforms: z.lazy(() => + SyncListResponsePreparedStackProfilePlatforms$inboundSchema + ), }); -export function syncListResponseProfileFromJSON( +export function syncListResponsePreparedStackProfileFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult { return safeParse( jsonString, - (x) => SyncListResponseProfile$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProfile' from JSON`, + (x) => + SyncListResponsePreparedStackProfile$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncListResponsePreparedStackProfile' from JSON`, ); } /** @internal */ -export const SyncListResponseProfileUnion$inboundSchema: z.ZodType< - SyncListResponseProfileUnion, +export const SyncListResponsePreparedStackProfileUnion$inboundSchema: z.ZodType< + SyncListResponsePreparedStackProfileUnion, unknown -> = z.union([z.lazy(() => SyncListResponseProfile$inboundSchema), z.string()]); +> = z.union([ + z.lazy(() => SyncListResponsePreparedStackProfile$inboundSchema), + z.string(), +]); -export function syncListResponseProfileUnionFromJSON( +export function syncListResponsePreparedStackProfileUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackProfileUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponseProfileUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponseProfileUnion' from JSON`, + (x) => + SyncListResponsePreparedStackProfileUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackProfileUnion' from JSON`, ); } /** @internal */ -export const SyncListResponsePermissions$inboundSchema: z.ZodType< - SyncListResponsePermissions, +export const SyncListResponsePreparedStackPermissions$inboundSchema: z.ZodType< + SyncListResponsePreparedStackPermissions, unknown > = z.object({ management: z.union([ - z.lazy(() => SyncListResponseManagement1$inboundSchema), - z.lazy(() => SyncListResponseManagement2$inboundSchema), - SyncListResponseManagementEnum$inboundSchema, + z.lazy(() => SyncListResponsePreparedStackManagement1$inboundSchema), + z.lazy(() => SyncListResponsePreparedStackManagement2$inboundSchema), + SyncListResponsePreparedStackManagementEnum$inboundSchema, ]).optional(), profiles: z.record( z.string(), @@ -7567,7 +12263,7 @@ export const SyncListResponsePermissions$inboundSchema: z.ZodType< z.string(), z.array( z.union([ - z.lazy(() => SyncListResponseProfile$inboundSchema), + z.lazy(() => SyncListResponsePreparedStackProfile$inboundSchema), z.string(), ]), ), @@ -7575,13 +12271,19 @@ export const SyncListResponsePermissions$inboundSchema: z.ZodType< ), }); -export function syncListResponsePermissionsFromJSON( +export function syncListResponsePreparedStackPermissionsFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncListResponsePreparedStackPermissions, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncListResponsePermissions$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncListResponsePermissions' from JSON`, + (x) => + SyncListResponsePreparedStackPermissions$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponsePreparedStackPermissions' from JSON`, ); } @@ -7648,6 +12350,7 @@ export const SyncListResponsePreparedStackResources$inboundSchema: z.ZodType< dependencies: z.array( z.lazy(() => SyncListResponsePreparedStackDependency$inboundSchema), ), + enabledWhen: z.nullable(z.string()).optional(), lifecycle: SyncListResponsePreparedStackLifecycle$inboundSchema, remoteAccess: z.boolean().optional(), }); @@ -7664,9 +12367,10 @@ export function syncListResponsePreparedStackResourcesFromJSON( } /** @internal */ -export const SyncListResponseSupportedPlatform$inboundSchema: z.ZodEnum< - typeof SyncListResponseSupportedPlatform -> = z.enum(SyncListResponseSupportedPlatform); +export const SyncListResponsePreparedStackSupportedPlatform$inboundSchema: + z.ZodEnum = z.enum( + SyncListResponsePreparedStackSupportedPlatform, + ); /** @internal */ export const SyncListResponsePreparedStack$inboundSchema: z.ZodType< @@ -7674,15 +12378,18 @@ export const SyncListResponsePreparedStack$inboundSchema: z.ZodType< unknown > = z.object({ id: z.string(), - inputs: z.array(z.lazy(() => SyncListResponseInput$inboundSchema)).optional(), - permissions: z.lazy(() => SyncListResponsePermissions$inboundSchema) - .optional(), + inputs: z.array( + z.lazy(() => SyncListResponsePreparedStackInput$inboundSchema), + ).optional(), + permissions: z.lazy(() => + SyncListResponsePreparedStackPermissions$inboundSchema + ).optional(), resources: z.record( z.string(), z.lazy(() => SyncListResponsePreparedStackResources$inboundSchema), ), supportedPlatforms: z.nullable( - z.array(SyncListResponseSupportedPlatform$inboundSchema), + z.array(SyncListResponsePreparedStackSupportedPlatform$inboundSchema), ).optional(), }); @@ -7716,13 +12423,75 @@ export function syncListResponsePreparedStackUnionFromJSON( ); } +/** @internal */ +export const SyncListResponseSetupUpdateAuthorization$inboundSchema: z.ZodType< + SyncListResponseSetupUpdateAuthorization, + unknown +> = z.object({ + baselineFrozenDigest: z.string(), + nonce: z.string(), + releaseId: z.string(), + setupFingerprint: z.string(), + setupFingerprintVersion: z.int(), + setupTarget: z.string(), + targetFrozenDigest: z.string(), +}); + +export function syncListResponseSetupUpdateAuthorizationFromJSON( + jsonString: string, +): SafeParseResult< + SyncListResponseSetupUpdateAuthorization, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncListResponseSetupUpdateAuthorization$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponseSetupUpdateAuthorization' from JSON`, + ); +} + +/** @internal */ +export const SyncListResponseSetupUpdateAuthorizationUnion$inboundSchema: + z.ZodType = z.union([ + z.lazy(() => SyncListResponseSetupUpdateAuthorization$inboundSchema), + z.any(), + ]); + +export function syncListResponseSetupUpdateAuthorizationUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncListResponseSetupUpdateAuthorizationUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncListResponseSetupUpdateAuthorizationUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncListResponseSetupUpdateAuthorizationUnion' from JSON`, + ); +} + /** @internal */ export const SyncListResponseRuntimeMetadata$inboundSchema: z.ZodType< SyncListResponseRuntimeMetadata, unknown > = z.object({ + initialSetupAuthority: SyncListResponseInitialSetupAuthority$inboundSchema + .optional(), lastSyncedEnvVarsHash: z.nullable(z.string()).optional(), lastSyncedSecretNames: z.array(z.string()).optional(), + pendingPreparedStack: z.nullable( + z.union([ + z.lazy(() => SyncListResponsePendingPreparedStack$inboundSchema), + z.any(), + ]), + ).optional(), + persistedGateAnswers: z.record(z.string(), z.boolean()).optional(), preparedStack: z.nullable( z.union([ z.lazy(() => SyncListResponsePreparedStack$inboundSchema), @@ -7730,6 +12499,12 @@ export const SyncListResponseRuntimeMetadata$inboundSchema: z.ZodType< ]), ).optional(), registryAccessGranted: z.boolean().optional(), + setupUpdateAuthorization: z.nullable( + z.union([ + z.lazy(() => SyncListResponseSetupUpdateAuthorization$inboundSchema), + z.any(), + ]), + ).optional(), }); export function syncListResponseRuntimeMetadataFromJSON( @@ -7942,6 +12717,7 @@ export const SyncListResponseDeployment$inboundSchema: z.ZodType< currentReleaseId: z.nullable(z.string()).optional(), desiredReleaseId: z.nullable(z.string()).optional(), pinnedReleaseId: z.nullable(z.string()).optional(), + releaseChannel: z.string(), importSource: z.nullable(SyncListResponseImportSource$inboundSchema) .optional(), setupMethod: z.nullable(SyncListResponseSetupMethod$inboundSchema).optional(), diff --git a/client-sdks/platform/typescript/src/models/syncreconcilerequest.ts b/client-sdks/platform/typescript/src/models/syncreconcilerequest.ts index 88ed4ce91..71cdaaf81 100644 --- a/client-sdks/platform/typescript/src/models/syncreconcilerequest.ts +++ b/client-sdks/platform/typescript/src/models/syncreconcilerequest.ts @@ -1427,6 +1427,17 @@ export type SyncReconcileRequestCurrentReleaseResources = { * The total dependencies are: resource.get_dependencies() + this list */ dependencies: Array; + /** + * Id of the boolean stack input that decides whether this resource is + * + * @remarks + * created at all. `None` means always create it. + * + * Set by `.enabled(input)` in the SDK. Setup emitters render the resource + * conditionally on the matching template variable, so a deployer who says no + * never gets the resource, its outputs, or anything derived from it. + */ + enabledWhen?: string | null | undefined; /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ @@ -1757,95 +1768,109 @@ export type SyncReconcileRequestPlatform = ClosedEnum< typeof SyncReconcileRequestPlatform >; -export const SyncReconcileRequestPreparedStackTypeStringList = { +/** + * Actor that owns structural work during the initial setup phase. + */ +export const SyncReconcileRequestInitialSetupAuthority = { + ImportedHandoff: "importedHandoff", + DirectSetup: "directSetup", +} as const; +/** + * Actor that owns structural work during the initial setup phase. + */ +export type SyncReconcileRequestInitialSetupAuthority = ClosedEnum< + typeof SyncReconcileRequestInitialSetupAuthority +>; + +export const SyncReconcileRequestPendingPreparedStackTypeStringList = { StringList: "stringList", } as const; -export type SyncReconcileRequestPreparedStackTypeStringList = ClosedEnum< - typeof SyncReconcileRequestPreparedStackTypeStringList +export type SyncReconcileRequestPendingPreparedStackTypeStringList = ClosedEnum< + typeof SyncReconcileRequestPendingPreparedStackTypeStringList >; -export type SyncReconcileRequestPreparedStackDefaultStringList = { - type: SyncReconcileRequestPreparedStackTypeStringList; +export type SyncReconcileRequestPendingPreparedStackDefaultStringList = { + type: SyncReconcileRequestPendingPreparedStackTypeStringList; /** * String list default. */ value: Array; }; -export const SyncReconcileRequestPreparedStackTypeBoolean = { +export const SyncReconcileRequestPendingPreparedStackTypeBoolean = { Boolean: "boolean", } as const; -export type SyncReconcileRequestPreparedStackTypeBoolean = ClosedEnum< - typeof SyncReconcileRequestPreparedStackTypeBoolean +export type SyncReconcileRequestPendingPreparedStackTypeBoolean = ClosedEnum< + typeof SyncReconcileRequestPendingPreparedStackTypeBoolean >; -export type SyncReconcileRequestPreparedStackDefaultBoolean = { - type: SyncReconcileRequestPreparedStackTypeBoolean; +export type SyncReconcileRequestPendingPreparedStackDefaultBoolean = { + type: SyncReconcileRequestPendingPreparedStackTypeBoolean; /** * Boolean default. */ value: boolean; }; -export const SyncReconcileRequestPreparedStackTypeNumber = { +export const SyncReconcileRequestPendingPreparedStackTypeNumber = { Number: "number", } as const; -export type SyncReconcileRequestPreparedStackTypeNumber = ClosedEnum< - typeof SyncReconcileRequestPreparedStackTypeNumber +export type SyncReconcileRequestPendingPreparedStackTypeNumber = ClosedEnum< + typeof SyncReconcileRequestPendingPreparedStackTypeNumber >; -export type SyncReconcileRequestPreparedStackDefaultNumber = { - type: SyncReconcileRequestPreparedStackTypeNumber; +export type SyncReconcileRequestPendingPreparedStackDefaultNumber = { + type: SyncReconcileRequestPendingPreparedStackTypeNumber; /** * Number default. */ value: string; }; -export const SyncReconcileRequestPreparedStackTypeString = { +export const SyncReconcileRequestPendingPreparedStackTypeString = { String: "string", } as const; -export type SyncReconcileRequestPreparedStackTypeString = ClosedEnum< - typeof SyncReconcileRequestPreparedStackTypeString +export type SyncReconcileRequestPendingPreparedStackTypeString = ClosedEnum< + typeof SyncReconcileRequestPendingPreparedStackTypeString >; -export type SyncReconcileRequestPreparedStackDefaultString = { - type: SyncReconcileRequestPreparedStackTypeString; +export type SyncReconcileRequestPendingPreparedStackDefaultString = { + type: SyncReconcileRequestPendingPreparedStackTypeString; /** * String default. */ value: string; }; -export type SyncReconcileRequestPreparedStackDefaultUnion = - | SyncReconcileRequestPreparedStackDefaultString - | SyncReconcileRequestPreparedStackDefaultNumber - | SyncReconcileRequestPreparedStackDefaultBoolean - | SyncReconcileRequestPreparedStackDefaultStringList +export type SyncReconcileRequestPendingPreparedStackDefaultUnion = + | SyncReconcileRequestPendingPreparedStackDefaultString + | SyncReconcileRequestPendingPreparedStackDefaultNumber + | SyncReconcileRequestPendingPreparedStackDefaultBoolean + | SyncReconcileRequestPendingPreparedStackDefaultStringList | any; /** * Environment variable handling for a stack input mapping. */ -export const SyncReconcileRequestPreparedStackTypeEnvEnum = { +export const SyncReconcileRequestPendingPreparedStackTypeEnvEnum = { Plain: "plain", Secret: "secret", } as const; /** * Environment variable handling for a stack input mapping. */ -export type SyncReconcileRequestPreparedStackTypeEnvEnum = ClosedEnum< - typeof SyncReconcileRequestPreparedStackTypeEnvEnum +export type SyncReconcileRequestPendingPreparedStackTypeEnvEnum = ClosedEnum< + typeof SyncReconcileRequestPendingPreparedStackTypeEnvEnum >; -export type SyncReconcileRequestPreparedStackTypeUnion = - | SyncReconcileRequestPreparedStackTypeEnvEnum +export type SyncReconcileRequestPendingPreparedStackTypeUnion = + | SyncReconcileRequestPendingPreparedStackTypeEnvEnum | any; /** * How a resolved stack input is injected into runtime environment variables. */ -export type SyncReconcileRequestPreparedStackEnv = { +export type SyncReconcileRequestPendingPreparedStackEnv = { /** * Environment variable name. */ @@ -1854,13 +1879,17 @@ export type SyncReconcileRequestPreparedStackEnv = { * Target resource IDs or patterns. None means every env-capable resource. */ targetResources?: Array | null | undefined; - type?: SyncReconcileRequestPreparedStackTypeEnvEnum | any | null | undefined; + type?: + | SyncReconcileRequestPendingPreparedStackTypeEnvEnum + | any + | null + | undefined; }; /** * Primitive stack input kind. */ -export const PreparedStackStateKind = { +export const PendingPreparedStackStateKind = { String: "string", Secret: "secret", Number: "number", @@ -1872,12 +1901,14 @@ export const PreparedStackStateKind = { /** * Primitive stack input kind. */ -export type PreparedStackStateKind = ClosedEnum; +export type PendingPreparedStackStateKind = ClosedEnum< + typeof PendingPreparedStackStateKind +>; /** * Represents the target cloud platform. */ -export const SyncReconcileRequestPreparedStackPlatform = { +export const SyncReconcileRequestPendingPreparedStackPlatform = { Aws: "aws", Gcp: "gcp", Azure: "azure", @@ -1889,28 +1920,28 @@ export const SyncReconcileRequestPreparedStackPlatform = { /** * Represents the target cloud platform. */ -export type SyncReconcileRequestPreparedStackPlatform = ClosedEnum< - typeof SyncReconcileRequestPreparedStackPlatform +export type SyncReconcileRequestPendingPreparedStackPlatform = ClosedEnum< + typeof SyncReconcileRequestPendingPreparedStackPlatform >; /** * Who can provide a stack input value. */ -export const SyncReconcileRequestPreparedStackProvidedBy = { +export const SyncReconcileRequestPendingPreparedStackProvidedBy = { Developer: "developer", Deployer: "deployer", } as const; /** * Who can provide a stack input value. */ -export type SyncReconcileRequestPreparedStackProvidedBy = ClosedEnum< - typeof SyncReconcileRequestPreparedStackProvidedBy +export type SyncReconcileRequestPendingPreparedStackProvidedBy = ClosedEnum< + typeof SyncReconcileRequestPendingPreparedStackProvidedBy >; /** * Portable stack input validation constraints. */ -export type SyncReconcileRequestPreparedStackValidation = { +export type SyncReconcileRequestPendingPreparedStackValidation = { /** * Semantic format hint such as url. */ @@ -1949,19 +1980,19 @@ export type SyncReconcileRequestPreparedStackValidation = { values?: Array | null | undefined; }; -export type SyncReconcileRequestPreparedStackValidationUnion = - | SyncReconcileRequestPreparedStackValidation +export type SyncReconcileRequestPendingPreparedStackValidationUnion = + | SyncReconcileRequestPendingPreparedStackValidation | any; /** * Stack input definition serialized into a release stack. */ -export type SyncReconcileRequestPreparedStackInput = { +export type SyncReconcileRequestPendingPreparedStackInput = { default?: - | SyncReconcileRequestPreparedStackDefaultString - | SyncReconcileRequestPreparedStackDefaultNumber - | SyncReconcileRequestPreparedStackDefaultBoolean - | SyncReconcileRequestPreparedStackDefaultStringList + | SyncReconcileRequestPendingPreparedStackDefaultString + | SyncReconcileRequestPendingPreparedStackDefaultNumber + | SyncReconcileRequestPendingPreparedStackDefaultBoolean + | SyncReconcileRequestPendingPreparedStackDefaultStringList | any | null | undefined; @@ -1972,7 +2003,7 @@ export type SyncReconcileRequestPreparedStackInput = { /** * Runtime env-var mappings for v1 input resolution. */ - env?: Array | undefined; + env?: Array | undefined; /** * Stable input ID used by CLI/API calls. */ @@ -1980,7 +2011,7 @@ export type SyncReconcileRequestPreparedStackInput = { /** * Primitive stack input kind. */ - kind: PreparedStackStateKind; + kind: PendingPreparedStackStateKind; /** * Human-facing field label. */ @@ -1993,35 +2024,35 @@ export type SyncReconcileRequestPreparedStackInput = { * Platforms where this input applies. */ platforms?: - | Array + | Array | null | undefined; /** * Who can provide this value. */ - providedBy: Array; + providedBy: Array; /** * Whether a resolved value is required before deployment can proceed. */ required: boolean; validation?: - | SyncReconcileRequestPreparedStackValidation + | SyncReconcileRequestPendingPreparedStackValidation | any | null | undefined; }; -export const SyncReconcileRequestPreparedStackManagementEnum = { +export const SyncReconcileRequestPendingPreparedStackManagementEnum = { Auto: "auto", } as const; -export type SyncReconcileRequestPreparedStackManagementEnum = ClosedEnum< - typeof SyncReconcileRequestPreparedStackManagementEnum +export type SyncReconcileRequestPendingPreparedStackManagementEnum = ClosedEnum< + typeof SyncReconcileRequestPendingPreparedStackManagementEnum >; /** * AWS-specific binding specification */ -export type PreparedStackOverrideStateAwResource = { +export type PendingPreparedStackOverrideStateAwResource = { /** * Optional condition for additional filtering (rare) */ @@ -2035,7 +2066,7 @@ export type PreparedStackOverrideStateAwResource = { /** * AWS-specific binding specification */ -export type SyncReconcileRequestPreparedStackOverrideAwStack = { +export type SyncReconcileRequestPendingPreparedStackOverrideAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -2049,35 +2080,35 @@ export type SyncReconcileRequestPreparedStackOverrideAwStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileRequestPreparedStackOverrideAwBinding = { +export type SyncReconcileRequestPendingPreparedStackOverrideAwBinding = { /** * AWS-specific binding specification */ - resource?: PreparedStackOverrideStateAwResource | undefined; + resource?: PendingPreparedStackOverrideStateAwResource | undefined; /** * AWS-specific binding specification */ - stack?: SyncReconcileRequestPreparedStackOverrideAwStack | undefined; + stack?: SyncReconcileRequestPendingPreparedStackOverrideAwStack | undefined; }; /** * IAM effect. Defaults to Allow. */ -export const SyncReconcileRequestPreparedStackOverrideEffect = { +export const SyncReconcileRequestPendingPreparedStackOverrideEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type SyncReconcileRequestPreparedStackOverrideEffect = ClosedEnum< - typeof SyncReconcileRequestPreparedStackOverrideEffect +export type SyncReconcileRequestPendingPreparedStackOverrideEffect = ClosedEnum< + typeof SyncReconcileRequestPendingPreparedStackOverrideEffect >; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileRequestPreparedStackOverrideAwGrant = { +export type SyncReconcileRequestPendingPreparedStackOverrideAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2103,11 +2134,11 @@ export type SyncReconcileRequestPreparedStackOverrideAwGrant = { /** * AWS-specific platform permission configuration */ -export type SyncReconcileRequestPreparedStackOverrideAw = { +export type SyncReconcileRequestPendingPreparedStackOverrideAw = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileRequestPreparedStackOverrideAwBinding; + binding: SyncReconcileRequestPendingPreparedStackOverrideAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2115,11 +2146,11 @@ export type SyncReconcileRequestPreparedStackOverrideAw = { /** * IAM effect. Defaults to Allow. */ - effect?: SyncReconcileRequestPreparedStackOverrideEffect | undefined; + effect?: SyncReconcileRequestPendingPreparedStackOverrideEffect | undefined; /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileRequestPreparedStackOverrideAwGrant; + grant: SyncReconcileRequestPendingPreparedStackOverrideAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2129,7 +2160,7 @@ export type SyncReconcileRequestPreparedStackOverrideAw = { /** * Azure-specific binding specification */ -export type PreparedStackOverrideStateAzureResource = { +export type PendingPreparedStackOverrideStateAzureResource = { /** * Scope (subscription/resource group/resource level) */ @@ -2139,7 +2170,7 @@ export type PreparedStackOverrideStateAzureResource = { /** * Azure-specific binding specification */ -export type SyncReconcileRequestPreparedStackOverrideAzureStack = { +export type SyncReconcileRequestPendingPreparedStackOverrideAzureStack = { /** * Scope (subscription/resource group/resource level) */ @@ -2149,21 +2180,23 @@ export type SyncReconcileRequestPreparedStackOverrideAzureStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileRequestPreparedStackOverrideAzureBinding = { +export type SyncReconcileRequestPendingPreparedStackOverrideAzureBinding = { /** * Azure-specific binding specification */ - resource?: PreparedStackOverrideStateAzureResource | undefined; + resource?: PendingPreparedStackOverrideStateAzureResource | undefined; /** * Azure-specific binding specification */ - stack?: SyncReconcileRequestPreparedStackOverrideAzureStack | undefined; + stack?: + | SyncReconcileRequestPendingPreparedStackOverrideAzureStack + | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileRequestPreparedStackOverrideAzureGrant = { +export type SyncReconcileRequestPendingPreparedStackOverrideAzureGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2189,11 +2222,11 @@ export type SyncReconcileRequestPreparedStackOverrideAzureGrant = { /** * Azure-specific platform permission configuration */ -export type SyncReconcileRequestPreparedStackOverrideAzure = { +export type SyncReconcileRequestPendingPreparedStackOverrideAzure = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileRequestPreparedStackOverrideAzureBinding; + binding: SyncReconcileRequestPendingPreparedStackOverrideAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2201,7 +2234,7 @@ export type SyncReconcileRequestPreparedStackOverrideAzure = { /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileRequestPreparedStackOverrideAzureGrant; + grant: SyncReconcileRequestPendingPreparedStackOverrideAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2211,21 +2244,21 @@ export type SyncReconcileRequestPreparedStackOverrideAzure = { /** * GCP IAM condition */ -export type PreparedStackOverrideConditionStateResource = { +export type PendingPreparedStackOverrideConditionStateResource = { expression: string; title: string; }; -export type PreparedStackOverrideStateResourceConditionUnion = - | PreparedStackOverrideConditionStateResource +export type PendingPreparedStackOverrideStateResourceConditionUnion = + | PendingPreparedStackOverrideConditionStateResource | any; /** * GCP-specific binding specification */ -export type PreparedStackOverrideStateGcpResource = { +export type PendingPreparedStackOverrideStateGcpResource = { condition?: - | PreparedStackOverrideConditionStateResource + | PendingPreparedStackOverrideConditionStateResource | any | null | undefined; @@ -2238,20 +2271,24 @@ export type PreparedStackOverrideStateGcpResource = { /** * GCP IAM condition */ -export type PreparedStackOverrideConditionStateStack = { +export type PendingPreparedStackOverrideConditionStateStack = { expression: string; title: string; }; -export type PreparedStackOverrideStateStackConditionUnion = - | PreparedStackOverrideConditionStateStack +export type PendingPreparedStackOverrideStateStackConditionUnion = + | PendingPreparedStackOverrideConditionStateStack | any; /** * GCP-specific binding specification */ -export type SyncReconcileRequestPreparedStackOverrideGcpStack = { - condition?: PreparedStackOverrideConditionStateStack | any | null | undefined; +export type SyncReconcileRequestPendingPreparedStackOverrideGcpStack = { + condition?: + | PendingPreparedStackOverrideConditionStateStack + | any + | null + | undefined; /** * Scope (project/resource level) */ @@ -2261,21 +2298,21 @@ export type SyncReconcileRequestPreparedStackOverrideGcpStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileRequestPreparedStackOverrideGcpBinding = { +export type SyncReconcileRequestPendingPreparedStackOverrideGcpBinding = { /** * GCP-specific binding specification */ - resource?: PreparedStackOverrideStateGcpResource | undefined; + resource?: PendingPreparedStackOverrideStateGcpResource | undefined; /** * GCP-specific binding specification */ - stack?: SyncReconcileRequestPreparedStackOverrideGcpStack | undefined; + stack?: SyncReconcileRequestPendingPreparedStackOverrideGcpStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileRequestPreparedStackOverrideGcpGrant = { +export type SyncReconcileRequestPendingPreparedStackOverrideGcpGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2301,11 +2338,11 @@ export type SyncReconcileRequestPreparedStackOverrideGcpGrant = { /** * GCP-specific platform permission configuration */ -export type SyncReconcileRequestPreparedStackOverrideGcp = { +export type SyncReconcileRequestPendingPreparedStackOverrideGcp = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileRequestPreparedStackOverrideGcpBinding; + binding: SyncReconcileRequestPendingPreparedStackOverrideGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2313,7 +2350,7 @@ export type SyncReconcileRequestPreparedStackOverrideGcp = { /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileRequestPreparedStackOverrideGcpGrant; + grant: SyncReconcileRequestPendingPreparedStackOverrideGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2323,28 +2360,34 @@ export type SyncReconcileRequestPreparedStackOverrideGcp = { /** * Platform-specific permission configurations */ -export type SyncReconcileRequestPreparedStackOverridePlatforms = { +export type SyncReconcileRequestPendingPreparedStackOverridePlatforms = { /** * AWS permission configurations */ - aws?: Array | null | undefined; + aws?: + | Array + | null + | undefined; /** * Azure permission configurations */ azure?: - | Array + | Array | null | undefined; /** * GCP permission configurations */ - gcp?: Array | null | undefined; + gcp?: + | Array + | null + | undefined; }; /** * A permission set that can be applied across different cloud platforms */ -export type SyncReconcileRequestPreparedStackOverride = { +export type SyncReconcileRequestPendingPreparedStackOverride = { /** * Human-readable description of what this permission set allows */ @@ -2356,17 +2399,17 @@ export type SyncReconcileRequestPreparedStackOverride = { /** * Platform-specific permission configurations */ - platforms: SyncReconcileRequestPreparedStackOverridePlatforms; + platforms: SyncReconcileRequestPendingPreparedStackOverridePlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type SyncReconcileRequestPreparedStackOverrideUnion = - | SyncReconcileRequestPreparedStackOverride +export type SyncReconcileRequestPendingPreparedStackOverrideUnion = + | SyncReconcileRequestPendingPreparedStackOverride | string; -export type SyncReconcileRequestPreparedStackManagement2 = { +export type SyncReconcileRequestPendingPreparedStackManagement2 = { /** * Permission profile that maps resources to permission sets * @@ -2374,14 +2417,16 @@ export type SyncReconcileRequestPreparedStackManagement2 = { * Key can be "*" for all resources or resource name for specific resource */ override: { - [k: string]: Array; + [k: string]: Array< + SyncReconcileRequestPendingPreparedStackOverride | string + >; }; }; /** * AWS-specific binding specification */ -export type PreparedStackExtendStateAwResource = { +export type PendingPreparedStackExtendStateAwResource = { /** * Optional condition for additional filtering (rare) */ @@ -2395,7 +2440,7 @@ export type PreparedStackExtendStateAwResource = { /** * AWS-specific binding specification */ -export type SyncReconcileRequestPreparedStackExtendAwStack = { +export type SyncReconcileRequestPendingPreparedStackExtendAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -2409,35 +2454,35 @@ export type SyncReconcileRequestPreparedStackExtendAwStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileRequestPreparedStackExtendAwBinding = { +export type SyncReconcileRequestPendingPreparedStackExtendAwBinding = { /** * AWS-specific binding specification */ - resource?: PreparedStackExtendStateAwResource | undefined; + resource?: PendingPreparedStackExtendStateAwResource | undefined; /** * AWS-specific binding specification */ - stack?: SyncReconcileRequestPreparedStackExtendAwStack | undefined; + stack?: SyncReconcileRequestPendingPreparedStackExtendAwStack | undefined; }; /** * IAM effect. Defaults to Allow. */ -export const SyncReconcileRequestPreparedStackExtendEffect = { +export const SyncReconcileRequestPendingPreparedStackExtendEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type SyncReconcileRequestPreparedStackExtendEffect = ClosedEnum< - typeof SyncReconcileRequestPreparedStackExtendEffect +export type SyncReconcileRequestPendingPreparedStackExtendEffect = ClosedEnum< + typeof SyncReconcileRequestPendingPreparedStackExtendEffect >; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileRequestPreparedStackExtendAwGrant = { +export type SyncReconcileRequestPendingPreparedStackExtendAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2463,11 +2508,11 @@ export type SyncReconcileRequestPreparedStackExtendAwGrant = { /** * AWS-specific platform permission configuration */ -export type SyncReconcileRequestPreparedStackExtendAw = { +export type SyncReconcileRequestPendingPreparedStackExtendAw = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileRequestPreparedStackExtendAwBinding; + binding: SyncReconcileRequestPendingPreparedStackExtendAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2475,11 +2520,11 @@ export type SyncReconcileRequestPreparedStackExtendAw = { /** * IAM effect. Defaults to Allow. */ - effect?: SyncReconcileRequestPreparedStackExtendEffect | undefined; + effect?: SyncReconcileRequestPendingPreparedStackExtendEffect | undefined; /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileRequestPreparedStackExtendAwGrant; + grant: SyncReconcileRequestPendingPreparedStackExtendAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2489,7 +2534,7 @@ export type SyncReconcileRequestPreparedStackExtendAw = { /** * Azure-specific binding specification */ -export type PreparedStackExtendStateAzureResource = { +export type PendingPreparedStackExtendStateAzureResource = { /** * Scope (subscription/resource group/resource level) */ @@ -2499,7 +2544,7 @@ export type PreparedStackExtendStateAzureResource = { /** * Azure-specific binding specification */ -export type SyncReconcileRequestPreparedStackExtendAzureStack = { +export type SyncReconcileRequestPendingPreparedStackExtendAzureStack = { /** * Scope (subscription/resource group/resource level) */ @@ -2509,21 +2554,21 @@ export type SyncReconcileRequestPreparedStackExtendAzureStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileRequestPreparedStackExtendAzureBinding = { +export type SyncReconcileRequestPendingPreparedStackExtendAzureBinding = { /** * Azure-specific binding specification */ - resource?: PreparedStackExtendStateAzureResource | undefined; + resource?: PendingPreparedStackExtendStateAzureResource | undefined; /** * Azure-specific binding specification */ - stack?: SyncReconcileRequestPreparedStackExtendAzureStack | undefined; + stack?: SyncReconcileRequestPendingPreparedStackExtendAzureStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileRequestPreparedStackExtendAzureGrant = { +export type SyncReconcileRequestPendingPreparedStackExtendAzureGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2549,11 +2594,11 @@ export type SyncReconcileRequestPreparedStackExtendAzureGrant = { /** * Azure-specific platform permission configuration */ -export type SyncReconcileRequestPreparedStackExtendAzure = { +export type SyncReconcileRequestPendingPreparedStackExtendAzure = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileRequestPreparedStackExtendAzureBinding; + binding: SyncReconcileRequestPendingPreparedStackExtendAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2561,7 +2606,7 @@ export type SyncReconcileRequestPreparedStackExtendAzure = { /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileRequestPreparedStackExtendAzureGrant; + grant: SyncReconcileRequestPendingPreparedStackExtendAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2571,21 +2616,21 @@ export type SyncReconcileRequestPreparedStackExtendAzure = { /** * GCP IAM condition */ -export type PreparedStackExtendConditionStateResource = { +export type PendingPreparedStackExtendConditionStateResource = { expression: string; title: string; }; -export type PreparedStackExtendStateResourceConditionUnion = - | PreparedStackExtendConditionStateResource +export type PendingPreparedStackExtendStateResourceConditionUnion = + | PendingPreparedStackExtendConditionStateResource | any; /** * GCP-specific binding specification */ -export type PreparedStackExtendStateGcpResource = { +export type PendingPreparedStackExtendStateGcpResource = { condition?: - | PreparedStackExtendConditionStateResource + | PendingPreparedStackExtendConditionStateResource | any | null | undefined; @@ -2598,20 +2643,24 @@ export type PreparedStackExtendStateGcpResource = { /** * GCP IAM condition */ -export type PreparedStackExtendConditionStateStack = { +export type PendingPreparedStackExtendConditionStateStack = { expression: string; title: string; }; -export type PreparedStackExtendStateStackConditionUnion = - | PreparedStackExtendConditionStateStack +export type PendingPreparedStackExtendStateStackConditionUnion = + | PendingPreparedStackExtendConditionStateStack | any; /** * GCP-specific binding specification */ -export type SyncReconcileRequestPreparedStackExtendGcpStack = { - condition?: PreparedStackExtendConditionStateStack | any | null | undefined; +export type SyncReconcileRequestPendingPreparedStackExtendGcpStack = { + condition?: + | PendingPreparedStackExtendConditionStateStack + | any + | null + | undefined; /** * Scope (project/resource level) */ @@ -2621,21 +2670,21 @@ export type SyncReconcileRequestPreparedStackExtendGcpStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileRequestPreparedStackExtendGcpBinding = { +export type SyncReconcileRequestPendingPreparedStackExtendGcpBinding = { /** * GCP-specific binding specification */ - resource?: PreparedStackExtendStateGcpResource | undefined; + resource?: PendingPreparedStackExtendStateGcpResource | undefined; /** * GCP-specific binding specification */ - stack?: SyncReconcileRequestPreparedStackExtendGcpStack | undefined; + stack?: SyncReconcileRequestPendingPreparedStackExtendGcpStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileRequestPreparedStackExtendGcpGrant = { +export type SyncReconcileRequestPendingPreparedStackExtendGcpGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2661,11 +2710,11 @@ export type SyncReconcileRequestPreparedStackExtendGcpGrant = { /** * GCP-specific platform permission configuration */ -export type SyncReconcileRequestPreparedStackExtendGcp = { +export type SyncReconcileRequestPendingPreparedStackExtendGcp = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileRequestPreparedStackExtendGcpBinding; + binding: SyncReconcileRequestPendingPreparedStackExtendGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2673,7 +2722,7 @@ export type SyncReconcileRequestPreparedStackExtendGcp = { /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileRequestPreparedStackExtendGcpGrant; + grant: SyncReconcileRequestPendingPreparedStackExtendGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2683,28 +2732,34 @@ export type SyncReconcileRequestPreparedStackExtendGcp = { /** * Platform-specific permission configurations */ -export type SyncReconcileRequestPreparedStackExtendPlatforms = { +export type SyncReconcileRequestPendingPreparedStackExtendPlatforms = { /** * AWS permission configurations */ - aws?: Array | null | undefined; + aws?: + | Array + | null + | undefined; /** * Azure permission configurations */ azure?: - | Array + | Array | null | undefined; /** * GCP permission configurations */ - gcp?: Array | null | undefined; + gcp?: + | Array + | null + | undefined; }; /** * A permission set that can be applied across different cloud platforms */ -export type SyncReconcileRequestPreparedStackExtend = { +export type SyncReconcileRequestPendingPreparedStackExtend = { /** * Human-readable description of what this permission set allows */ @@ -2716,17 +2771,17 @@ export type SyncReconcileRequestPreparedStackExtend = { /** * Platform-specific permission configurations */ - platforms: SyncReconcileRequestPreparedStackExtendPlatforms; + platforms: SyncReconcileRequestPendingPreparedStackExtendPlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type SyncReconcileRequestPreparedStackExtendUnion = - | SyncReconcileRequestPreparedStackExtend +export type SyncReconcileRequestPendingPreparedStackExtendUnion = + | SyncReconcileRequestPendingPreparedStackExtend | string; -export type SyncReconcileRequestPreparedStackManagement1 = { +export type SyncReconcileRequestPendingPreparedStackManagement1 = { /** * Permission profile that maps resources to permission sets * @@ -2734,22 +2789,22 @@ export type SyncReconcileRequestPreparedStackManagement1 = { * Key can be "*" for all resources or resource name for specific resource */ extend: { - [k: string]: Array; + [k: string]: Array; }; }; /** * Management permissions configuration for stack management access */ -export type SyncReconcileRequestPreparedStackManagementUnion = - | SyncReconcileRequestPreparedStackManagement1 - | SyncReconcileRequestPreparedStackManagement2 - | SyncReconcileRequestPreparedStackManagementEnum; +export type SyncReconcileRequestPendingPreparedStackManagementUnion = + | SyncReconcileRequestPendingPreparedStackManagement1 + | SyncReconcileRequestPendingPreparedStackManagement2 + | SyncReconcileRequestPendingPreparedStackManagementEnum; /** * AWS-specific binding specification */ -export type PreparedStackProfileStateAwResource = { +export type PendingPreparedStackProfileStateAwResource = { /** * Optional condition for additional filtering (rare) */ @@ -2763,7 +2818,7 @@ export type PreparedStackProfileStateAwResource = { /** * AWS-specific binding specification */ -export type SyncReconcileRequestPreparedStackProfileAwStack = { +export type SyncReconcileRequestPendingPreparedStackProfileAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -2777,35 +2832,35 @@ export type SyncReconcileRequestPreparedStackProfileAwStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileRequestPreparedStackProfileAwBinding = { +export type SyncReconcileRequestPendingPreparedStackProfileAwBinding = { /** * AWS-specific binding specification */ - resource?: PreparedStackProfileStateAwResource | undefined; + resource?: PendingPreparedStackProfileStateAwResource | undefined; /** * AWS-specific binding specification */ - stack?: SyncReconcileRequestPreparedStackProfileAwStack | undefined; + stack?: SyncReconcileRequestPendingPreparedStackProfileAwStack | undefined; }; /** * IAM effect. Defaults to Allow. */ -export const SyncReconcileRequestPreparedStackProfileEffect = { +export const SyncReconcileRequestPendingPreparedStackProfileEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type SyncReconcileRequestPreparedStackProfileEffect = ClosedEnum< - typeof SyncReconcileRequestPreparedStackProfileEffect +export type SyncReconcileRequestPendingPreparedStackProfileEffect = ClosedEnum< + typeof SyncReconcileRequestPendingPreparedStackProfileEffect >; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileRequestPreparedStackProfileAwGrant = { +export type SyncReconcileRequestPendingPreparedStackProfileAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2831,11 +2886,11 @@ export type SyncReconcileRequestPreparedStackProfileAwGrant = { /** * AWS-specific platform permission configuration */ -export type SyncReconcileRequestPreparedStackProfileAw = { +export type SyncReconcileRequestPendingPreparedStackProfileAw = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileRequestPreparedStackProfileAwBinding; + binding: SyncReconcileRequestPendingPreparedStackProfileAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2843,11 +2898,11 @@ export type SyncReconcileRequestPreparedStackProfileAw = { /** * IAM effect. Defaults to Allow. */ - effect?: SyncReconcileRequestPreparedStackProfileEffect | undefined; + effect?: SyncReconcileRequestPendingPreparedStackProfileEffect | undefined; /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileRequestPreparedStackProfileAwGrant; + grant: SyncReconcileRequestPendingPreparedStackProfileAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2857,7 +2912,7 @@ export type SyncReconcileRequestPreparedStackProfileAw = { /** * Azure-specific binding specification */ -export type PreparedStackProfileStateAzureResource = { +export type PendingPreparedStackProfileStateAzureResource = { /** * Scope (subscription/resource group/resource level) */ @@ -2867,7 +2922,7 @@ export type PreparedStackProfileStateAzureResource = { /** * Azure-specific binding specification */ -export type SyncReconcileRequestPreparedStackProfileAzureStack = { +export type SyncReconcileRequestPendingPreparedStackProfileAzureStack = { /** * Scope (subscription/resource group/resource level) */ @@ -2877,21 +2932,21 @@ export type SyncReconcileRequestPreparedStackProfileAzureStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileRequestPreparedStackProfileAzureBinding = { +export type SyncReconcileRequestPendingPreparedStackProfileAzureBinding = { /** * Azure-specific binding specification */ - resource?: PreparedStackProfileStateAzureResource | undefined; + resource?: PendingPreparedStackProfileStateAzureResource | undefined; /** * Azure-specific binding specification */ - stack?: SyncReconcileRequestPreparedStackProfileAzureStack | undefined; + stack?: SyncReconcileRequestPendingPreparedStackProfileAzureStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileRequestPreparedStackProfileAzureGrant = { +export type SyncReconcileRequestPendingPreparedStackProfileAzureGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2917,11 +2972,11 @@ export type SyncReconcileRequestPreparedStackProfileAzureGrant = { /** * Azure-specific platform permission configuration */ -export type SyncReconcileRequestPreparedStackProfileAzure = { +export type SyncReconcileRequestPendingPreparedStackProfileAzure = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileRequestPreparedStackProfileAzureBinding; + binding: SyncReconcileRequestPendingPreparedStackProfileAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2929,7 +2984,7 @@ export type SyncReconcileRequestPreparedStackProfileAzure = { /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileRequestPreparedStackProfileAzureGrant; + grant: SyncReconcileRequestPendingPreparedStackProfileAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2939,21 +2994,21 @@ export type SyncReconcileRequestPreparedStackProfileAzure = { /** * GCP IAM condition */ -export type PreparedStackProfileConditionStateResource = { +export type PendingPreparedStackProfileConditionStateResource = { expression: string; title: string; }; -export type PreparedStackProfileStateResourceConditionUnion = - | PreparedStackProfileConditionStateResource +export type PendingPreparedStackProfileStateResourceConditionUnion = + | PendingPreparedStackProfileConditionStateResource | any; /** * GCP-specific binding specification */ -export type PreparedStackProfileStateGcpResource = { +export type PendingPreparedStackProfileStateGcpResource = { condition?: - | PreparedStackProfileConditionStateResource + | PendingPreparedStackProfileConditionStateResource | any | null | undefined; @@ -2966,20 +3021,24 @@ export type PreparedStackProfileStateGcpResource = { /** * GCP IAM condition */ -export type PreparedStackProfileConditionStateStack = { +export type PendingPreparedStackProfileConditionStateStack = { expression: string; title: string; }; -export type PreparedStackProfileStateStackConditionUnion = - | PreparedStackProfileConditionStateStack +export type PendingPreparedStackProfileStateStackConditionUnion = + | PendingPreparedStackProfileConditionStateStack | any; /** * GCP-specific binding specification */ -export type SyncReconcileRequestPreparedStackProfileGcpStack = { - condition?: PreparedStackProfileConditionStateStack | any | null | undefined; +export type SyncReconcileRequestPendingPreparedStackProfileGcpStack = { + condition?: + | PendingPreparedStackProfileConditionStateStack + | any + | null + | undefined; /** * Scope (project/resource level) */ @@ -2989,21 +3048,21 @@ export type SyncReconcileRequestPreparedStackProfileGcpStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileRequestPreparedStackProfileGcpBinding = { +export type SyncReconcileRequestPendingPreparedStackProfileGcpBinding = { /** * GCP-specific binding specification */ - resource?: PreparedStackProfileStateGcpResource | undefined; + resource?: PendingPreparedStackProfileStateGcpResource | undefined; /** * GCP-specific binding specification */ - stack?: SyncReconcileRequestPreparedStackProfileGcpStack | undefined; + stack?: SyncReconcileRequestPendingPreparedStackProfileGcpStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileRequestPreparedStackProfileGcpGrant = { +export type SyncReconcileRequestPendingPreparedStackProfileGcpGrant = { /** * AWS IAM actions (only for AWS) */ @@ -3029,11 +3088,11 @@ export type SyncReconcileRequestPreparedStackProfileGcpGrant = { /** * GCP-specific platform permission configuration */ -export type SyncReconcileRequestPreparedStackProfileGcp = { +export type SyncReconcileRequestPendingPreparedStackProfileGcp = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileRequestPreparedStackProfileGcpBinding; + binding: SyncReconcileRequestPendingPreparedStackProfileGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -3041,7 +3100,7 @@ export type SyncReconcileRequestPreparedStackProfileGcp = { /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileRequestPreparedStackProfileGcpGrant; + grant: SyncReconcileRequestPendingPreparedStackProfileGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -3051,28 +3110,34 @@ export type SyncReconcileRequestPreparedStackProfileGcp = { /** * Platform-specific permission configurations */ -export type SyncReconcileRequestPreparedStackProfilePlatforms = { +export type SyncReconcileRequestPendingPreparedStackProfilePlatforms = { /** * AWS permission configurations */ - aws?: Array | null | undefined; + aws?: + | Array + | null + | undefined; /** * Azure permission configurations */ azure?: - | Array + | Array | null | undefined; /** * GCP permission configurations */ - gcp?: Array | null | undefined; + gcp?: + | Array + | null + | undefined; }; /** * A permission set that can be applied across different cloud platforms */ -export type SyncReconcileRequestPreparedStackProfile = { +export type SyncReconcileRequestPendingPreparedStackProfile = { /** * Human-readable description of what this permission set allows */ @@ -3084,27 +3149,27 @@ export type SyncReconcileRequestPreparedStackProfile = { /** * Platform-specific permission configurations */ - platforms: SyncReconcileRequestPreparedStackProfilePlatforms; + platforms: SyncReconcileRequestPendingPreparedStackProfilePlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type SyncReconcileRequestPreparedStackProfileUnion = - | SyncReconcileRequestPreparedStackProfile +export type SyncReconcileRequestPendingPreparedStackProfileUnion = + | SyncReconcileRequestPendingPreparedStackProfile | string; /** * Combined permissions configuration that contains both profiles and management */ -export type SyncReconcileRequestPreparedStackPermissions = { +export type SyncReconcileRequestPendingPreparedStackPermissions = { /** * Management permissions configuration for stack management access */ management?: - | SyncReconcileRequestPreparedStackManagement1 - | SyncReconcileRequestPreparedStackManagement2 - | SyncReconcileRequestPreparedStackManagementEnum + | SyncReconcileRequestPendingPreparedStackManagement1 + | SyncReconcileRequestPendingPreparedStackManagement2 + | SyncReconcileRequestPendingPreparedStackManagementEnum | undefined; /** * Permission profiles that define access control for compute services @@ -3114,7 +3179,9 @@ export type SyncReconcileRequestPreparedStackPermissions = { */ profiles: { [k: string]: { - [k: string]: Array; + [k: string]: Array< + SyncReconcileRequestPendingPreparedStackProfile | string + >; }; }; }; @@ -3122,7 +3189,7 @@ export type SyncReconcileRequestPreparedStackPermissions = { /** * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ -export type SyncReconcileRequestPreparedStackConfig = { +export type SyncReconcileRequestPendingPreparedStackConfig = { /** * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. */ @@ -3137,7 +3204,7 @@ export type SyncReconcileRequestPreparedStackConfig = { /** * Reference to a resource by its stable id and resource type. */ -export type SyncReconcileRequestPreparedStackDependency = { +export type SyncReconcileRequestPendingPreparedStackDependency = { id: string; /** * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. @@ -3148,33 +3215,44 @@ export type SyncReconcileRequestPreparedStackDependency = { /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export const PreparedStackStateLifecycle = { +export const PendingPreparedStackStateLifecycle = { Frozen: "frozen", Live: "live", } as const; /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export type PreparedStackStateLifecycle = ClosedEnum< - typeof PreparedStackStateLifecycle +export type PendingPreparedStackStateLifecycle = ClosedEnum< + typeof PendingPreparedStackStateLifecycle >; -export type SyncReconcileRequestPreparedStackResources = { +export type SyncReconcileRequestPendingPreparedStackResources = { /** * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ - config: SyncReconcileRequestPreparedStackConfig; + config: SyncReconcileRequestPendingPreparedStackConfig; /** * Additional dependencies for this resource beyond those defined in the resource itself. * * @remarks * The total dependencies are: resource.get_dependencies() + this list */ - dependencies: Array; + dependencies: Array; + /** + * Id of the boolean stack input that decides whether this resource is + * + * @remarks + * created at all. `None` means always create it. + * + * Set by `.enabled(input)` in the SDK. Setup emitters render the resource + * conditionally on the matching template variable, so a deployer who says no + * never gets the resource, its outputs, or anything derived from it. + */ + enabledWhen?: string | null | undefined; /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ - lifecycle: PreparedStackStateLifecycle; + lifecycle: PendingPreparedStackStateLifecycle; /** * Enable remote bindings for this resource (BYOB use case). * @@ -3188,7 +3266,7 @@ export type SyncReconcileRequestPreparedStackResources = { /** * Represents the target cloud platform. */ -export const SyncReconcileRequestPreparedStackSupportedPlatform = { +export const SyncReconcileRequestPendingPreparedStackSupportedPlatform = { Aws: "aws", Gcp: "gcp", Azure: "azure", @@ -3200,14 +3278,13 @@ export const SyncReconcileRequestPreparedStackSupportedPlatform = { /** * Represents the target cloud platform. */ -export type SyncReconcileRequestPreparedStackSupportedPlatform = ClosedEnum< - typeof SyncReconcileRequestPreparedStackSupportedPlatform ->; +export type SyncReconcileRequestPendingPreparedStackSupportedPlatform = + ClosedEnum; /** * A bag of resources, unaware of any cloud. */ -export type SyncReconcileRequestPreparedStack = { +export type SyncReconcileRequestPendingPreparedStack = { /** * Unique identifier for the stack */ @@ -3215,105 +3292,149 @@ export type SyncReconcileRequestPreparedStack = { /** * Input definitions required before setup or deployment can proceed. */ - inputs?: Array | undefined; + inputs?: Array | undefined; /** * Combined permissions configuration that contains both profiles and management */ - permissions?: SyncReconcileRequestPreparedStackPermissions | undefined; + permissions?: SyncReconcileRequestPendingPreparedStackPermissions | undefined; /** * Map of resource IDs to their configurations and lifecycle settings */ - resources: { [k: string]: SyncReconcileRequestPreparedStackResources }; + resources: { [k: string]: SyncReconcileRequestPendingPreparedStackResources }; /** * Which platforms this stack supports. When None, all platforms are supported. */ supportedPlatforms?: - | Array + | Array | null | undefined; }; -export type SyncReconcileRequestPreparedStackUnion = - | SyncReconcileRequestPreparedStack +export type SyncReconcileRequestPendingPreparedStackUnion = + | SyncReconcileRequestPendingPreparedStack | any; -/** - * Runtime metadata for deployment - * - * @remarks - * - * Stores deployment state that needs to persist across step calls. - */ -export type SyncReconcileRequestRuntimeMetadata = { +export const SyncReconcileRequestPreparedStackTypeStringList = { + StringList: "stringList", +} as const; +export type SyncReconcileRequestPreparedStackTypeStringList = ClosedEnum< + typeof SyncReconcileRequestPreparedStackTypeStringList +>; + +export type SyncReconcileRequestPreparedStackDefaultStringList = { + type: SyncReconcileRequestPreparedStackTypeStringList; /** - * Hash of the environment variables snapshot that was last synced to the vault - * - * @remarks - * Used to avoid redundant sync operations during incremental deployment + * String list default. */ - lastSyncedEnvVarsHash?: string | null | undefined; + value: Array; +}; + +export const SyncReconcileRequestPreparedStackTypeBoolean = { + Boolean: "boolean", +} as const; +export type SyncReconcileRequestPreparedStackTypeBoolean = ClosedEnum< + typeof SyncReconcileRequestPreparedStackTypeBoolean +>; + +export type SyncReconcileRequestPreparedStackDefaultBoolean = { + type: SyncReconcileRequestPreparedStackTypeBoolean; /** - * Exact vault keys owned by the deployment secret synchronizer. This - * - * @remarks - * inventory lets a later snapshot delete removed keys without listing or - * touching unrelated values in the same vault. + * Boolean default. */ - lastSyncedSecretNames?: Array | undefined; - preparedStack?: SyncReconcileRequestPreparedStack | any | null | undefined; + value: boolean; +}; + +export const SyncReconcileRequestPreparedStackTypeNumber = { + Number: "number", +} as const; +export type SyncReconcileRequestPreparedStackTypeNumber = ClosedEnum< + typeof SyncReconcileRequestPreparedStackTypeNumber +>; + +export type SyncReconcileRequestPreparedStackDefaultNumber = { + type: SyncReconcileRequestPreparedStackTypeNumber; /** - * Whether cross-account registry access has been successfully granted. - * - * @remarks - * Set to true after the manager successfully sets the ECR/GAR repo policy - * for this deployment's target account. Prevents redundant API calls on - * every reconcile tick. + * Number default. */ - registryAccessGranted?: boolean | undefined; + value: string; }; -export type SyncReconcileRequestRuntimeMetadataUnion = - | SyncReconcileRequestRuntimeMetadata +export const SyncReconcileRequestPreparedStackTypeString = { + String: "string", +} as const; +export type SyncReconcileRequestPreparedStackTypeString = ClosedEnum< + typeof SyncReconcileRequestPreparedStackTypeString +>; + +export type SyncReconcileRequestPreparedStackDefaultString = { + type: SyncReconcileRequestPreparedStackTypeString; + /** + * String default. + */ + value: string; +}; + +export type SyncReconcileRequestPreparedStackDefaultUnion = + | SyncReconcileRequestPreparedStackDefaultString + | SyncReconcileRequestPreparedStackDefaultNumber + | SyncReconcileRequestPreparedStackDefaultBoolean + | SyncReconcileRequestPreparedStackDefaultStringList | any; /** - * Represents the target cloud platform. + * Environment variable handling for a stack input mapping. */ -export const SyncReconcileRequestStackStatePlatform = { - Aws: "aws", - Gcp: "gcp", - Azure: "azure", - Kubernetes: "kubernetes", - Machines: "machines", - Local: "local", - Test: "test", +export const SyncReconcileRequestPreparedStackTypeEnvEnum = { + Plain: "plain", + Secret: "secret", } as const; /** - * Represents the target cloud platform. + * Environment variable handling for a stack input mapping. */ -export type SyncReconcileRequestStackStatePlatform = ClosedEnum< - typeof SyncReconcileRequestStackStatePlatform +export type SyncReconcileRequestPreparedStackTypeEnvEnum = ClosedEnum< + typeof SyncReconcileRequestPreparedStackTypeEnvEnum >; +export type SyncReconcileRequestPreparedStackTypeUnion = + | SyncReconcileRequestPreparedStackTypeEnvEnum + | any; + /** - * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + * How a resolved stack input is injected into runtime environment variables. */ -export type SyncReconcileRequestStackStateConfig = { +export type SyncReconcileRequestPreparedStackEnv = { /** - * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. + * Environment variable name. */ - id: string; + name: string; /** - * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + * Target resource IDs or patterns. None means every env-capable resource. */ - type: string; - additionalProperties?: { [k: string]: any | null } | undefined; + targetResources?: Array | null | undefined; + type?: SyncReconcileRequestPreparedStackTypeEnvEnum | any | null | undefined; }; +/** + * Primitive stack input kind. + */ +export const PreparedStackStateKind = { + String: "string", + Secret: "secret", + Number: "number", + Integer: "integer", + Boolean: "boolean", + Enum: "enum", + StringList: "stringList", +} as const; +/** + * Primitive stack input kind. + */ +export type PreparedStackStateKind = ClosedEnum; + /** * Represents the target cloud platform. */ -export const ControllerPlatformStateEnum = { +export const SyncReconcileRequestPreparedStackPlatform = { Aws: "aws", Gcp: "gcp", Azure: "azure", @@ -3325,480 +3446,48 @@ export const ControllerPlatformStateEnum = { /** * Represents the target cloud platform. */ -export type ControllerPlatformStateEnum = ClosedEnum< - typeof ControllerPlatformStateEnum +export type SyncReconcileRequestPreparedStackPlatform = ClosedEnum< + typeof SyncReconcileRequestPreparedStackPlatform >; -export type StateControllerPlatformUnion = ControllerPlatformStateEnum | any; - /** - * Reference to a resource by its stable id and resource type. + * Who can provide a stack input value. */ -export type SyncReconcileRequestStackStateDependency = { - id: string; - /** - * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. - */ - type: string; -}; +export const SyncReconcileRequestPreparedStackProvidedBy = { + Developer: "developer", + Deployer: "deployer", +} as const; +/** + * Who can provide a stack input value. + */ +export type SyncReconcileRequestPreparedStackProvidedBy = ClosedEnum< + typeof SyncReconcileRequestPreparedStackProvidedBy +>; /** - * Canonical error container that provides a structured way to represent errors - * - * @remarks - * with rich metadata including error codes, human-readable messages, context, - * and chaining capabilities for error propagation. - * - * This struct is designed to be both machine-readable and user-friendly, - * supporting serialization for API responses and detailed error reporting - * in distributed systems. + * Portable stack input validation constraints. */ -export type SyncReconcileRequestStackStateError = { +export type SyncReconcileRequestPreparedStackValidation = { /** - * A unique identifier for the type of error. - * - * @remarks - * - * This should be a short, machine-readable string that can be used - * by clients to programmatically handle different error types. - * Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" + * Semantic format hint such as url. */ - code: string; + format?: string | null | undefined; /** - * Additional diagnostic information about the error context. - * - * @remarks - * - * This optional field can contain structured data providing more details - * about the error, such as validation errors, request parameters that - * caused the issue, or other relevant context information. + * Maximum number. */ - context?: any | null | undefined; + max?: string | null | undefined; /** - * Optional human-facing remediation hint. + * Maximum string-list items. */ - hint?: string | null | undefined; + maxItems?: number | null | undefined; /** - * HTTP status code for this error. - * - * @remarks - * - * Used when converting the error to an HTTP response. If None, falls back to - * the error type's default status code or 500. + * Maximum string length. */ - httpStatusCode?: number | null | undefined; + maxLength?: number | null | undefined; /** - * Indicates if this is an internal error that should not be exposed to users. - * - * @remarks - * - * When `true`, this error contains sensitive information or implementation - * details that should not be shown to end-users. Such errors should be - * logged for debugging but replaced with generic error messages in responses. + * Minimum number. */ - internal: boolean; - /** - * Human-readable error message. - * - * @remarks - * - * This message should be clear and actionable for developers or end-users, - * providing context about what went wrong and potentially how to fix it. - */ - message: string; - /** - * Indicates whether the operation that caused the error should be retried. - * - * @remarks - * - * When `true`, the error is transient and the operation might succeed - * if attempted again. When `false`, retrying the same operation is - * unlikely to succeed without changes. - */ - retryable?: boolean | undefined; - /** - * The underlying error that caused this error, creating an error chain. - * - * @remarks - * - * This allows for proper error propagation and debugging by maintaining - * the full context of how an error occurred through multiple layers - * of an application. - */ - source?: any | null | undefined; -}; - -export type SyncReconcileRequestStackStateErrorUnion = - | SyncReconcileRequestStackStateError - | any; - -/** - * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. - */ -export const StackStateLifecycleStateEnum = { - Frozen: "frozen", - Live: "live", -} as const; -/** - * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. - */ -export type StackStateLifecycleStateEnum = ClosedEnum< - typeof StackStateLifecycleStateEnum ->; - -export type StateLifecycleUnion = StackStateLifecycleStateEnum | any; - -/** - * Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties. - */ -export type SyncReconcileRequestOutputs = { - /** - * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. - */ - type: string; - additionalProperties?: { [k: string]: any | null } | undefined; -}; - -export type SyncReconcileRequestOutputsUnion = - | SyncReconcileRequestOutputs - | any; - -/** - * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. - */ -export type SyncReconcileRequestPreviousConfig = { - /** - * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. - */ - id: string; - /** - * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. - */ - type: string; - additionalProperties?: { [k: string]: any | null } | undefined; -}; - -export type SyncReconcileRequestPreviousConfigUnion = - | SyncReconcileRequestPreviousConfig - | any; - -/** - * Represents the high-level status of a resource during its lifecycle. - */ -export const StackStateStateStatus = { - Pending: "pending", - Provisioning: "provisioning", - ProvisionFailed: "provision-failed", - Running: "running", - Updating: "updating", - UpdateFailed: "update-failed", - Deleting: "deleting", - DeleteFailed: "delete-failed", - TeardownRequired: "teardown-required", - Deleted: "deleted", - RefreshFailed: "refresh-failed", -} as const; -/** - * Represents the high-level status of a resource during its lifecycle. - */ -export type StackStateStateStatus = ClosedEnum; - -/** - * Represents the state of a single resource within the stack for a specific platform. - */ -export type SyncReconcileRequestStackStateResources = { - /** - * The platform-specific resource controller that manages this resource's lifecycle. - * - * @remarks - * This is None when the resource status is Pending. - * Stored as JSON to make the struct serializable and movable to alien-core. - */ - internal?: any | null | undefined; - /** - * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. - */ - config: SyncReconcileRequestStackStateConfig; - controllerPlatform?: ControllerPlatformStateEnum | any | null | undefined; - /** - * Complete list of dependencies for this resource, including infrastructure dependencies. - * - * @remarks - * This preserves the full dependency information from the stack definition. - */ - dependencies?: Array | undefined; - error?: SyncReconcileRequestStackStateError | any | null | undefined; - /** - * Stores the controller state that failed, used for manual retry operations. - * - * @remarks - * This allows resuming from the exact point where the failure occurred. - * Stored as JSON to make the struct serializable and movable to alien-core. - */ - lastFailedState?: any | null | undefined; - lifecycle?: StackStateLifecycleStateEnum | any | null | undefined; - outputs?: SyncReconcileRequestOutputs | any | null | undefined; - previousConfig?: SyncReconcileRequestPreviousConfig | any | null | undefined; - /** - * Binding parameters for remote access. - * - * @remarks - * Only populated when the resource has `remote_access: true` in its ResourceEntry. - * This is the JSON serialization of the binding configuration (e.g., StorageBinding, VaultBinding). - * Populated by controllers during provisioning using get_binding_params(). - */ - remoteBindingParams?: any | null | undefined; - /** - * Tracks consecutive retry attempts for the current state transition. - */ - retryAttempt?: number | undefined; - /** - * Represents the high-level status of a resource during its lifecycle. - */ - status: StackStateStateStatus; - /** - * The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE). - */ - type: string; -}; - -/** - * Represents the collective state of all resources in a stack, including platform and pending actions. - */ -export type SyncReconcileRequestStackState = { - /** - * Represents the target cloud platform. - */ - platform: SyncReconcileRequestStackStatePlatform; - /** - * A prefix used for resource naming to ensure uniqueness across deployments. - */ - resourcePrefix: string; - /** - * The state of individual resources, keyed by resource ID. - */ - resources: { [k: string]: SyncReconcileRequestStackStateResources }; -}; - -export type SyncReconcileRequestStackStateUnion = - | SyncReconcileRequestStackState - | any; - -/** - * Deployment status in the deployment lifecycle. - * - * @remarks - * - * For observe-only deployments with no release or stack state, `Running` - * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; - * resource health comes from inventory and resource heartbeat data. - */ -export const StateStatus = { - Pending: "pending", - PreflightsFailed: "preflights-failed", - InitialSetup: "initial-setup", - InitialSetupFailed: "initial-setup-failed", - Provisioning: "provisioning", - WaitingForMachines: "waiting-for-machines", - ProvisioningFailed: "provisioning-failed", - Running: "running", - RefreshFailed: "refresh-failed", - UpdatePending: "update-pending", - Updating: "updating", - UpdateFailed: "update-failed", - DeletePending: "delete-pending", - Deleting: "deleting", - DeleteFailed: "delete-failed", - TeardownRequired: "teardown-required", - TeardownFailed: "teardown-failed", - Deleted: "deleted", - Error: "error", -} as const; -/** - * Deployment status in the deployment lifecycle. - * - * @remarks - * - * For observe-only deployments with no release or stack state, `Running` - * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; - * resource health comes from inventory and resource heartbeat data. - */ -export type StateStatus = ClosedEnum; - -export const SyncReconcileRequestTargetReleaseTypeStringList = { - StringList: "stringList", -} as const; -export type SyncReconcileRequestTargetReleaseTypeStringList = ClosedEnum< - typeof SyncReconcileRequestTargetReleaseTypeStringList ->; - -export type SyncReconcileRequestTargetReleaseDefaultStringList = { - type: SyncReconcileRequestTargetReleaseTypeStringList; - /** - * String list default. - */ - value: Array; -}; - -export const SyncReconcileRequestTargetReleaseTypeBoolean = { - Boolean: "boolean", -} as const; -export type SyncReconcileRequestTargetReleaseTypeBoolean = ClosedEnum< - typeof SyncReconcileRequestTargetReleaseTypeBoolean ->; - -export type SyncReconcileRequestTargetReleaseDefaultBoolean = { - type: SyncReconcileRequestTargetReleaseTypeBoolean; - /** - * Boolean default. - */ - value: boolean; -}; - -export const SyncReconcileRequestTargetReleaseTypeNumber = { - Number: "number", -} as const; -export type SyncReconcileRequestTargetReleaseTypeNumber = ClosedEnum< - typeof SyncReconcileRequestTargetReleaseTypeNumber ->; - -export type SyncReconcileRequestTargetReleaseDefaultNumber = { - type: SyncReconcileRequestTargetReleaseTypeNumber; - /** - * Number default. - */ - value: string; -}; - -export const SyncReconcileRequestTargetReleaseTypeString = { - String: "string", -} as const; -export type SyncReconcileRequestTargetReleaseTypeString = ClosedEnum< - typeof SyncReconcileRequestTargetReleaseTypeString ->; - -export type SyncReconcileRequestTargetReleaseDefaultString = { - type: SyncReconcileRequestTargetReleaseTypeString; - /** - * String default. - */ - value: string; -}; - -export type SyncReconcileRequestTargetReleaseDefaultUnion = - | SyncReconcileRequestTargetReleaseDefaultString - | SyncReconcileRequestTargetReleaseDefaultNumber - | SyncReconcileRequestTargetReleaseDefaultBoolean - | SyncReconcileRequestTargetReleaseDefaultStringList - | any; - -/** - * Environment variable handling for a stack input mapping. - */ -export const SyncReconcileRequestTargetReleaseTypeEnvEnum = { - Plain: "plain", - Secret: "secret", -} as const; -/** - * Environment variable handling for a stack input mapping. - */ -export type SyncReconcileRequestTargetReleaseTypeEnvEnum = ClosedEnum< - typeof SyncReconcileRequestTargetReleaseTypeEnvEnum ->; - -export type SyncReconcileRequestTargetReleaseTypeUnion = - | SyncReconcileRequestTargetReleaseTypeEnvEnum - | any; - -/** - * How a resolved stack input is injected into runtime environment variables. - */ -export type SyncReconcileRequestTargetReleaseEnv = { - /** - * Environment variable name. - */ - name: string; - /** - * Target resource IDs or patterns. None means every env-capable resource. - */ - targetResources?: Array | null | undefined; - type?: SyncReconcileRequestTargetReleaseTypeEnvEnum | any | null | undefined; -}; - -/** - * Primitive stack input kind. - */ -export const TargetReleaseStateKind = { - String: "string", - Secret: "secret", - Number: "number", - Integer: "integer", - Boolean: "boolean", - Enum: "enum", - StringList: "stringList", -} as const; -/** - * Primitive stack input kind. - */ -export type TargetReleaseStateKind = ClosedEnum; - -/** - * Represents the target cloud platform. - */ -export const SyncReconcileRequestTargetReleasePlatform = { - Aws: "aws", - Gcp: "gcp", - Azure: "azure", - Kubernetes: "kubernetes", - Machines: "machines", - Local: "local", - Test: "test", -} as const; -/** - * Represents the target cloud platform. - */ -export type SyncReconcileRequestTargetReleasePlatform = ClosedEnum< - typeof SyncReconcileRequestTargetReleasePlatform ->; - -/** - * Who can provide a stack input value. - */ -export const SyncReconcileRequestTargetReleaseProvidedBy = { - Developer: "developer", - Deployer: "deployer", -} as const; -/** - * Who can provide a stack input value. - */ -export type SyncReconcileRequestTargetReleaseProvidedBy = ClosedEnum< - typeof SyncReconcileRequestTargetReleaseProvidedBy ->; - -/** - * Portable stack input validation constraints. - */ -export type SyncReconcileRequestTargetReleaseValidation = { - /** - * Semantic format hint such as url. - */ - format?: string | null | undefined; - /** - * Maximum number. - */ - max?: string | null | undefined; - /** - * Maximum string-list items. - */ - maxItems?: number | null | undefined; - /** - * Maximum string length. - */ - maxLength?: number | null | undefined; - /** - * Minimum number. - */ - min?: string | null | undefined; + min?: string | null | undefined; /** * Minimum string-list items. */ @@ -3817,19 +3506,19 @@ export type SyncReconcileRequestTargetReleaseValidation = { values?: Array | null | undefined; }; -export type SyncReconcileRequestTargetReleaseValidationUnion = - | SyncReconcileRequestTargetReleaseValidation +export type SyncReconcileRequestPreparedStackValidationUnion = + | SyncReconcileRequestPreparedStackValidation | any; /** * Stack input definition serialized into a release stack. */ -export type SyncReconcileRequestTargetReleaseInput = { +export type SyncReconcileRequestPreparedStackInput = { default?: - | SyncReconcileRequestTargetReleaseDefaultString - | SyncReconcileRequestTargetReleaseDefaultNumber - | SyncReconcileRequestTargetReleaseDefaultBoolean - | SyncReconcileRequestTargetReleaseDefaultStringList + | SyncReconcileRequestPreparedStackDefaultString + | SyncReconcileRequestPreparedStackDefaultNumber + | SyncReconcileRequestPreparedStackDefaultBoolean + | SyncReconcileRequestPreparedStackDefaultStringList | any | null | undefined; @@ -3840,7 +3529,7 @@ export type SyncReconcileRequestTargetReleaseInput = { /** * Runtime env-var mappings for v1 input resolution. */ - env?: Array | undefined; + env?: Array | undefined; /** * Stable input ID used by CLI/API calls. */ @@ -3848,7 +3537,7 @@ export type SyncReconcileRequestTargetReleaseInput = { /** * Primitive stack input kind. */ - kind: TargetReleaseStateKind; + kind: PreparedStackStateKind; /** * Human-facing field label. */ @@ -3861,35 +3550,35 @@ export type SyncReconcileRequestTargetReleaseInput = { * Platforms where this input applies. */ platforms?: - | Array + | Array | null | undefined; /** * Who can provide this value. */ - providedBy: Array; + providedBy: Array; /** * Whether a resolved value is required before deployment can proceed. */ required: boolean; validation?: - | SyncReconcileRequestTargetReleaseValidation + | SyncReconcileRequestPreparedStackValidation | any | null | undefined; }; -export const SyncReconcileRequestTargetReleaseManagementEnum = { +export const SyncReconcileRequestPreparedStackManagementEnum = { Auto: "auto", } as const; -export type SyncReconcileRequestTargetReleaseManagementEnum = ClosedEnum< - typeof SyncReconcileRequestTargetReleaseManagementEnum +export type SyncReconcileRequestPreparedStackManagementEnum = ClosedEnum< + typeof SyncReconcileRequestPreparedStackManagementEnum >; /** * AWS-specific binding specification */ -export type TargetReleaseOverrideStateAwResource = { +export type PreparedStackOverrideStateAwResource = { /** * Optional condition for additional filtering (rare) */ @@ -3903,7 +3592,7 @@ export type TargetReleaseOverrideStateAwResource = { /** * AWS-specific binding specification */ -export type SyncReconcileRequestTargetReleaseOverrideAwStack = { +export type SyncReconcileRequestPreparedStackOverrideAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -3917,35 +3606,35 @@ export type SyncReconcileRequestTargetReleaseOverrideAwStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileRequestTargetReleaseOverrideAwBinding = { +export type SyncReconcileRequestPreparedStackOverrideAwBinding = { /** * AWS-specific binding specification */ - resource?: TargetReleaseOverrideStateAwResource | undefined; + resource?: PreparedStackOverrideStateAwResource | undefined; /** * AWS-specific binding specification */ - stack?: SyncReconcileRequestTargetReleaseOverrideAwStack | undefined; + stack?: SyncReconcileRequestPreparedStackOverrideAwStack | undefined; }; /** * IAM effect. Defaults to Allow. */ -export const SyncReconcileRequestTargetReleaseOverrideEffect = { +export const SyncReconcileRequestPreparedStackOverrideEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type SyncReconcileRequestTargetReleaseOverrideEffect = ClosedEnum< - typeof SyncReconcileRequestTargetReleaseOverrideEffect +export type SyncReconcileRequestPreparedStackOverrideEffect = ClosedEnum< + typeof SyncReconcileRequestPreparedStackOverrideEffect >; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileRequestTargetReleaseOverrideAwGrant = { +export type SyncReconcileRequestPreparedStackOverrideAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -3971,11 +3660,11 @@ export type SyncReconcileRequestTargetReleaseOverrideAwGrant = { /** * AWS-specific platform permission configuration */ -export type SyncReconcileRequestTargetReleaseOverrideAw = { +export type SyncReconcileRequestPreparedStackOverrideAw = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileRequestTargetReleaseOverrideAwBinding; + binding: SyncReconcileRequestPreparedStackOverrideAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -3983,11 +3672,11 @@ export type SyncReconcileRequestTargetReleaseOverrideAw = { /** * IAM effect. Defaults to Allow. */ - effect?: SyncReconcileRequestTargetReleaseOverrideEffect | undefined; + effect?: SyncReconcileRequestPreparedStackOverrideEffect | undefined; /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileRequestTargetReleaseOverrideAwGrant; + grant: SyncReconcileRequestPreparedStackOverrideAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -3997,7 +3686,7 @@ export type SyncReconcileRequestTargetReleaseOverrideAw = { /** * Azure-specific binding specification */ -export type TargetReleaseOverrideStateAzureResource = { +export type PreparedStackOverrideStateAzureResource = { /** * Scope (subscription/resource group/resource level) */ @@ -4007,7 +3696,7 @@ export type TargetReleaseOverrideStateAzureResource = { /** * Azure-specific binding specification */ -export type SyncReconcileRequestTargetReleaseOverrideAzureStack = { +export type SyncReconcileRequestPreparedStackOverrideAzureStack = { /** * Scope (subscription/resource group/resource level) */ @@ -4017,21 +3706,21 @@ export type SyncReconcileRequestTargetReleaseOverrideAzureStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileRequestTargetReleaseOverrideAzureBinding = { +export type SyncReconcileRequestPreparedStackOverrideAzureBinding = { /** * Azure-specific binding specification */ - resource?: TargetReleaseOverrideStateAzureResource | undefined; + resource?: PreparedStackOverrideStateAzureResource | undefined; /** * Azure-specific binding specification */ - stack?: SyncReconcileRequestTargetReleaseOverrideAzureStack | undefined; + stack?: SyncReconcileRequestPreparedStackOverrideAzureStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileRequestTargetReleaseOverrideAzureGrant = { +export type SyncReconcileRequestPreparedStackOverrideAzureGrant = { /** * AWS IAM actions (only for AWS) */ @@ -4057,11 +3746,11 @@ export type SyncReconcileRequestTargetReleaseOverrideAzureGrant = { /** * Azure-specific platform permission configuration */ -export type SyncReconcileRequestTargetReleaseOverrideAzure = { +export type SyncReconcileRequestPreparedStackOverrideAzure = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileRequestTargetReleaseOverrideAzureBinding; + binding: SyncReconcileRequestPreparedStackOverrideAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -4069,7 +3758,7 @@ export type SyncReconcileRequestTargetReleaseOverrideAzure = { /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileRequestTargetReleaseOverrideAzureGrant; + grant: SyncReconcileRequestPreparedStackOverrideAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -4079,21 +3768,21 @@ export type SyncReconcileRequestTargetReleaseOverrideAzure = { /** * GCP IAM condition */ -export type TargetReleaseOverrideConditionStateResource = { +export type PreparedStackOverrideConditionStateResource = { expression: string; title: string; }; -export type TargetReleaseOverrideStateResourceConditionUnion = - | TargetReleaseOverrideConditionStateResource +export type PreparedStackOverrideStateResourceConditionUnion = + | PreparedStackOverrideConditionStateResource | any; /** * GCP-specific binding specification */ -export type TargetReleaseOverrideStateGcpResource = { +export type PreparedStackOverrideStateGcpResource = { condition?: - | TargetReleaseOverrideConditionStateResource + | PreparedStackOverrideConditionStateResource | any | null | undefined; @@ -4106,20 +3795,20 @@ export type TargetReleaseOverrideStateGcpResource = { /** * GCP IAM condition */ -export type TargetReleaseOverrideConditionState = { +export type PreparedStackOverrideConditionStateStack = { expression: string; title: string; }; -export type TargetReleaseOverrideStateConditionUnion = - | TargetReleaseOverrideConditionState +export type PreparedStackOverrideStateStackConditionUnion = + | PreparedStackOverrideConditionStateStack | any; /** * GCP-specific binding specification */ -export type SyncReconcileRequestTargetReleaseOverrideGcpStack = { - condition?: TargetReleaseOverrideConditionState | any | null | undefined; +export type SyncReconcileRequestPreparedStackOverrideGcpStack = { + condition?: PreparedStackOverrideConditionStateStack | any | null | undefined; /** * Scope (project/resource level) */ @@ -4129,21 +3818,21 @@ export type SyncReconcileRequestTargetReleaseOverrideGcpStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileRequestTargetReleaseOverrideGcpBinding = { +export type SyncReconcileRequestPreparedStackOverrideGcpBinding = { /** * GCP-specific binding specification */ - resource?: TargetReleaseOverrideStateGcpResource | undefined; + resource?: PreparedStackOverrideStateGcpResource | undefined; /** * GCP-specific binding specification */ - stack?: SyncReconcileRequestTargetReleaseOverrideGcpStack | undefined; + stack?: SyncReconcileRequestPreparedStackOverrideGcpStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileRequestTargetReleaseOverrideGcpGrant = { +export type SyncReconcileRequestPreparedStackOverrideGcpGrant = { /** * AWS IAM actions (only for AWS) */ @@ -4169,11 +3858,11 @@ export type SyncReconcileRequestTargetReleaseOverrideGcpGrant = { /** * GCP-specific platform permission configuration */ -export type SyncReconcileRequestTargetReleaseOverrideGcp = { +export type SyncReconcileRequestPreparedStackOverrideGcp = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileRequestTargetReleaseOverrideGcpBinding; + binding: SyncReconcileRequestPreparedStackOverrideGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -4181,7 +3870,7 @@ export type SyncReconcileRequestTargetReleaseOverrideGcp = { /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileRequestTargetReleaseOverrideGcpGrant; + grant: SyncReconcileRequestPreparedStackOverrideGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -4191,28 +3880,28 @@ export type SyncReconcileRequestTargetReleaseOverrideGcp = { /** * Platform-specific permission configurations */ -export type SyncReconcileRequestTargetReleaseOverridePlatforms = { +export type SyncReconcileRequestPreparedStackOverridePlatforms = { /** * AWS permission configurations */ - aws?: Array | null | undefined; + aws?: Array | null | undefined; /** * Azure permission configurations */ azure?: - | Array + | Array | null | undefined; /** * GCP permission configurations */ - gcp?: Array | null | undefined; + gcp?: Array | null | undefined; }; /** * A permission set that can be applied across different cloud platforms */ -export type SyncReconcileRequestTargetReleaseOverride = { +export type SyncReconcileRequestPreparedStackOverride = { /** * Human-readable description of what this permission set allows */ @@ -4224,17 +3913,17 @@ export type SyncReconcileRequestTargetReleaseOverride = { /** * Platform-specific permission configurations */ - platforms: SyncReconcileRequestTargetReleaseOverridePlatforms; + platforms: SyncReconcileRequestPreparedStackOverridePlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type SyncReconcileRequestTargetReleaseOverrideUnion = - | SyncReconcileRequestTargetReleaseOverride +export type SyncReconcileRequestPreparedStackOverrideUnion = + | SyncReconcileRequestPreparedStackOverride | string; -export type SyncReconcileRequestTargetReleaseManagement2 = { +export type SyncReconcileRequestPreparedStackManagement2 = { /** * Permission profile that maps resources to permission sets * @@ -4242,14 +3931,14 @@ export type SyncReconcileRequestTargetReleaseManagement2 = { * Key can be "*" for all resources or resource name for specific resource */ override: { - [k: string]: Array; + [k: string]: Array; }; }; /** * AWS-specific binding specification */ -export type TargetReleaseExtendStateAwResource = { +export type PreparedStackExtendStateAwResource = { /** * Optional condition for additional filtering (rare) */ @@ -4263,7 +3952,7 @@ export type TargetReleaseExtendStateAwResource = { /** * AWS-specific binding specification */ -export type SyncReconcileRequestTargetReleaseExtendAwStack = { +export type SyncReconcileRequestPreparedStackExtendAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -4277,35 +3966,35 @@ export type SyncReconcileRequestTargetReleaseExtendAwStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileRequestTargetReleaseExtendAwBinding = { +export type SyncReconcileRequestPreparedStackExtendAwBinding = { /** * AWS-specific binding specification */ - resource?: TargetReleaseExtendStateAwResource | undefined; + resource?: PreparedStackExtendStateAwResource | undefined; /** * AWS-specific binding specification */ - stack?: SyncReconcileRequestTargetReleaseExtendAwStack | undefined; + stack?: SyncReconcileRequestPreparedStackExtendAwStack | undefined; }; /** * IAM effect. Defaults to Allow. */ -export const SyncReconcileRequestTargetReleaseExtendEffect = { +export const SyncReconcileRequestPreparedStackExtendEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type SyncReconcileRequestTargetReleaseExtendEffect = ClosedEnum< - typeof SyncReconcileRequestTargetReleaseExtendEffect +export type SyncReconcileRequestPreparedStackExtendEffect = ClosedEnum< + typeof SyncReconcileRequestPreparedStackExtendEffect >; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileRequestTargetReleaseExtendAwGrant = { +export type SyncReconcileRequestPreparedStackExtendAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -4331,11 +4020,11 @@ export type SyncReconcileRequestTargetReleaseExtendAwGrant = { /** * AWS-specific platform permission configuration */ -export type SyncReconcileRequestTargetReleaseExtendAw = { +export type SyncReconcileRequestPreparedStackExtendAw = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileRequestTargetReleaseExtendAwBinding; + binding: SyncReconcileRequestPreparedStackExtendAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -4343,11 +4032,11 @@ export type SyncReconcileRequestTargetReleaseExtendAw = { /** * IAM effect. Defaults to Allow. */ - effect?: SyncReconcileRequestTargetReleaseExtendEffect | undefined; + effect?: SyncReconcileRequestPreparedStackExtendEffect | undefined; /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileRequestTargetReleaseExtendAwGrant; + grant: SyncReconcileRequestPreparedStackExtendAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -4357,7 +4046,7 @@ export type SyncReconcileRequestTargetReleaseExtendAw = { /** * Azure-specific binding specification */ -export type TargetReleaseExtendStateAzureResource = { +export type PreparedStackExtendStateAzureResource = { /** * Scope (subscription/resource group/resource level) */ @@ -4367,7 +4056,7 @@ export type TargetReleaseExtendStateAzureResource = { /** * Azure-specific binding specification */ -export type SyncReconcileRequestTargetReleaseExtendAzureStack = { +export type SyncReconcileRequestPreparedStackExtendAzureStack = { /** * Scope (subscription/resource group/resource level) */ @@ -4377,21 +4066,21 @@ export type SyncReconcileRequestTargetReleaseExtendAzureStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileRequestTargetReleaseExtendAzureBinding = { +export type SyncReconcileRequestPreparedStackExtendAzureBinding = { /** * Azure-specific binding specification */ - resource?: TargetReleaseExtendStateAzureResource | undefined; + resource?: PreparedStackExtendStateAzureResource | undefined; /** * Azure-specific binding specification */ - stack?: SyncReconcileRequestTargetReleaseExtendAzureStack | undefined; + stack?: SyncReconcileRequestPreparedStackExtendAzureStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileRequestTargetReleaseExtendAzureGrant = { +export type SyncReconcileRequestPreparedStackExtendAzureGrant = { /** * AWS IAM actions (only for AWS) */ @@ -4417,11 +4106,11 @@ export type SyncReconcileRequestTargetReleaseExtendAzureGrant = { /** * Azure-specific platform permission configuration */ -export type SyncReconcileRequestTargetReleaseExtendAzure = { +export type SyncReconcileRequestPreparedStackExtendAzure = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileRequestTargetReleaseExtendAzureBinding; + binding: SyncReconcileRequestPreparedStackExtendAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -4429,7 +4118,7 @@ export type SyncReconcileRequestTargetReleaseExtendAzure = { /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileRequestTargetReleaseExtendAzureGrant; + grant: SyncReconcileRequestPreparedStackExtendAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -4439,21 +4128,21 @@ export type SyncReconcileRequestTargetReleaseExtendAzure = { /** * GCP IAM condition */ -export type TargetReleaseExtendConditionStateResource = { +export type PreparedStackExtendConditionStateResource = { expression: string; title: string; }; -export type TargetReleaseExtendStateResourceConditionUnion = - | TargetReleaseExtendConditionStateResource +export type PreparedStackExtendStateResourceConditionUnion = + | PreparedStackExtendConditionStateResource | any; /** * GCP-specific binding specification */ -export type TargetReleaseExtendStateGcpResource = { +export type PreparedStackExtendStateGcpResource = { condition?: - | TargetReleaseExtendConditionStateResource + | PreparedStackExtendConditionStateResource | any | null | undefined; @@ -4466,20 +4155,20 @@ export type TargetReleaseExtendStateGcpResource = { /** * GCP IAM condition */ -export type TargetReleaseExtendConditionState = { +export type PreparedStackExtendConditionStateStack = { expression: string; title: string; }; -export type TargetReleaseExtendStateConditionUnion = - | TargetReleaseExtendConditionState +export type PreparedStackExtendStateStackConditionUnion = + | PreparedStackExtendConditionStateStack | any; /** * GCP-specific binding specification */ -export type SyncReconcileRequestTargetReleaseExtendGcpStack = { - condition?: TargetReleaseExtendConditionState | any | null | undefined; +export type SyncReconcileRequestPreparedStackExtendGcpStack = { + condition?: PreparedStackExtendConditionStateStack | any | null | undefined; /** * Scope (project/resource level) */ @@ -4489,21 +4178,21 @@ export type SyncReconcileRequestTargetReleaseExtendGcpStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileRequestTargetReleaseExtendGcpBinding = { +export type SyncReconcileRequestPreparedStackExtendGcpBinding = { /** * GCP-specific binding specification */ - resource?: TargetReleaseExtendStateGcpResource | undefined; + resource?: PreparedStackExtendStateGcpResource | undefined; /** * GCP-specific binding specification */ - stack?: SyncReconcileRequestTargetReleaseExtendGcpStack | undefined; + stack?: SyncReconcileRequestPreparedStackExtendGcpStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileRequestTargetReleaseExtendGcpGrant = { +export type SyncReconcileRequestPreparedStackExtendGcpGrant = { /** * AWS IAM actions (only for AWS) */ @@ -4529,11 +4218,11 @@ export type SyncReconcileRequestTargetReleaseExtendGcpGrant = { /** * GCP-specific platform permission configuration */ -export type SyncReconcileRequestTargetReleaseExtendGcp = { +export type SyncReconcileRequestPreparedStackExtendGcp = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileRequestTargetReleaseExtendGcpBinding; + binding: SyncReconcileRequestPreparedStackExtendGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -4541,7 +4230,7 @@ export type SyncReconcileRequestTargetReleaseExtendGcp = { /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileRequestTargetReleaseExtendGcpGrant; + grant: SyncReconcileRequestPreparedStackExtendGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -4551,28 +4240,28 @@ export type SyncReconcileRequestTargetReleaseExtendGcp = { /** * Platform-specific permission configurations */ -export type SyncReconcileRequestTargetReleaseExtendPlatforms = { +export type SyncReconcileRequestPreparedStackExtendPlatforms = { /** * AWS permission configurations */ - aws?: Array | null | undefined; + aws?: Array | null | undefined; /** * Azure permission configurations */ azure?: - | Array + | Array | null | undefined; /** * GCP permission configurations */ - gcp?: Array | null | undefined; + gcp?: Array | null | undefined; }; /** * A permission set that can be applied across different cloud platforms */ -export type SyncReconcileRequestTargetReleaseExtend = { +export type SyncReconcileRequestPreparedStackExtend = { /** * Human-readable description of what this permission set allows */ @@ -4584,17 +4273,17 @@ export type SyncReconcileRequestTargetReleaseExtend = { /** * Platform-specific permission configurations */ - platforms: SyncReconcileRequestTargetReleaseExtendPlatforms; + platforms: SyncReconcileRequestPreparedStackExtendPlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type SyncReconcileRequestTargetReleaseExtendUnion = - | SyncReconcileRequestTargetReleaseExtend +export type SyncReconcileRequestPreparedStackExtendUnion = + | SyncReconcileRequestPreparedStackExtend | string; -export type SyncReconcileRequestTargetReleaseManagement1 = { +export type SyncReconcileRequestPreparedStackManagement1 = { /** * Permission profile that maps resources to permission sets * @@ -4602,22 +4291,22 @@ export type SyncReconcileRequestTargetReleaseManagement1 = { * Key can be "*" for all resources or resource name for specific resource */ extend: { - [k: string]: Array; + [k: string]: Array; }; }; /** * Management permissions configuration for stack management access */ -export type SyncReconcileRequestTargetReleaseManagementUnion = - | SyncReconcileRequestTargetReleaseManagement1 - | SyncReconcileRequestTargetReleaseManagement2 - | SyncReconcileRequestTargetReleaseManagementEnum; +export type SyncReconcileRequestPreparedStackManagementUnion = + | SyncReconcileRequestPreparedStackManagement1 + | SyncReconcileRequestPreparedStackManagement2 + | SyncReconcileRequestPreparedStackManagementEnum; /** * AWS-specific binding specification */ -export type TargetReleaseProfileStateAwResource = { +export type PreparedStackProfileStateAwResource = { /** * Optional condition for additional filtering (rare) */ @@ -4631,7 +4320,7 @@ export type TargetReleaseProfileStateAwResource = { /** * AWS-specific binding specification */ -export type SyncReconcileRequestTargetReleaseProfileAwStack = { +export type SyncReconcileRequestPreparedStackProfileAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -4645,35 +4334,35 @@ export type SyncReconcileRequestTargetReleaseProfileAwStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileRequestTargetReleaseProfileAwBinding = { +export type SyncReconcileRequestPreparedStackProfileAwBinding = { /** * AWS-specific binding specification */ - resource?: TargetReleaseProfileStateAwResource | undefined; + resource?: PreparedStackProfileStateAwResource | undefined; /** * AWS-specific binding specification */ - stack?: SyncReconcileRequestTargetReleaseProfileAwStack | undefined; + stack?: SyncReconcileRequestPreparedStackProfileAwStack | undefined; }; /** * IAM effect. Defaults to Allow. */ -export const SyncReconcileRequestTargetReleaseProfileEffect = { +export const SyncReconcileRequestPreparedStackProfileEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type SyncReconcileRequestTargetReleaseProfileEffect = ClosedEnum< - typeof SyncReconcileRequestTargetReleaseProfileEffect +export type SyncReconcileRequestPreparedStackProfileEffect = ClosedEnum< + typeof SyncReconcileRequestPreparedStackProfileEffect >; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileRequestTargetReleaseProfileAwGrant = { +export type SyncReconcileRequestPreparedStackProfileAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -4699,11 +4388,11 @@ export type SyncReconcileRequestTargetReleaseProfileAwGrant = { /** * AWS-specific platform permission configuration */ -export type SyncReconcileRequestTargetReleaseProfileAw = { +export type SyncReconcileRequestPreparedStackProfileAw = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileRequestTargetReleaseProfileAwBinding; + binding: SyncReconcileRequestPreparedStackProfileAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -4711,11 +4400,11 @@ export type SyncReconcileRequestTargetReleaseProfileAw = { /** * IAM effect. Defaults to Allow. */ - effect?: SyncReconcileRequestTargetReleaseProfileEffect | undefined; + effect?: SyncReconcileRequestPreparedStackProfileEffect | undefined; /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileRequestTargetReleaseProfileAwGrant; + grant: SyncReconcileRequestPreparedStackProfileAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -4725,7 +4414,7 @@ export type SyncReconcileRequestTargetReleaseProfileAw = { /** * Azure-specific binding specification */ -export type TargetReleaseProfileStateAzureResource = { +export type PreparedStackProfileStateAzureResource = { /** * Scope (subscription/resource group/resource level) */ @@ -4735,7 +4424,7 @@ export type TargetReleaseProfileStateAzureResource = { /** * Azure-specific binding specification */ -export type SyncReconcileRequestTargetReleaseProfileAzureStack = { +export type SyncReconcileRequestPreparedStackProfileAzureStack = { /** * Scope (subscription/resource group/resource level) */ @@ -4745,21 +4434,21 @@ export type SyncReconcileRequestTargetReleaseProfileAzureStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileRequestTargetReleaseProfileAzureBinding = { +export type SyncReconcileRequestPreparedStackProfileAzureBinding = { /** * Azure-specific binding specification */ - resource?: TargetReleaseProfileStateAzureResource | undefined; + resource?: PreparedStackProfileStateAzureResource | undefined; /** * Azure-specific binding specification */ - stack?: SyncReconcileRequestTargetReleaseProfileAzureStack | undefined; + stack?: SyncReconcileRequestPreparedStackProfileAzureStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileRequestTargetReleaseProfileAzureGrant = { +export type SyncReconcileRequestPreparedStackProfileAzureGrant = { /** * AWS IAM actions (only for AWS) */ @@ -4785,11 +4474,11 @@ export type SyncReconcileRequestTargetReleaseProfileAzureGrant = { /** * Azure-specific platform permission configuration */ -export type SyncReconcileRequestTargetReleaseProfileAzure = { +export type SyncReconcileRequestPreparedStackProfileAzure = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileRequestTargetReleaseProfileAzureBinding; + binding: SyncReconcileRequestPreparedStackProfileAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -4797,7 +4486,7 @@ export type SyncReconcileRequestTargetReleaseProfileAzure = { /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileRequestTargetReleaseProfileAzureGrant; + grant: SyncReconcileRequestPreparedStackProfileAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -4807,21 +4496,21 @@ export type SyncReconcileRequestTargetReleaseProfileAzure = { /** * GCP IAM condition */ -export type TargetReleaseProfileConditionStateResource = { +export type PreparedStackProfileConditionStateResource = { expression: string; title: string; }; -export type TargetReleaseProfileStateResourceConditionUnion = - | TargetReleaseProfileConditionStateResource +export type PreparedStackProfileStateResourceConditionUnion = + | PreparedStackProfileConditionStateResource | any; /** * GCP-specific binding specification */ -export type TargetReleaseProfileStateGcpResource = { +export type PreparedStackProfileStateGcpResource = { condition?: - | TargetReleaseProfileConditionStateResource + | PreparedStackProfileConditionStateResource | any | null | undefined; @@ -4834,20 +4523,20 @@ export type TargetReleaseProfileStateGcpResource = { /** * GCP IAM condition */ -export type TargetReleaseProfileConditionState = { +export type PreparedStackProfileConditionStateStack = { expression: string; title: string; }; -export type TargetReleaseProfileStateConditionUnion = - | TargetReleaseProfileConditionState +export type PreparedStackProfileStateStackConditionUnion = + | PreparedStackProfileConditionStateStack | any; /** * GCP-specific binding specification */ -export type SyncReconcileRequestTargetReleaseProfileGcpStack = { - condition?: TargetReleaseProfileConditionState | any | null | undefined; +export type SyncReconcileRequestPreparedStackProfileGcpStack = { + condition?: PreparedStackProfileConditionStateStack | any | null | undefined; /** * Scope (project/resource level) */ @@ -4857,21 +4546,21 @@ export type SyncReconcileRequestTargetReleaseProfileGcpStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileRequestTargetReleaseProfileGcpBinding = { +export type SyncReconcileRequestPreparedStackProfileGcpBinding = { /** * GCP-specific binding specification */ - resource?: TargetReleaseProfileStateGcpResource | undefined; + resource?: PreparedStackProfileStateGcpResource | undefined; /** * GCP-specific binding specification */ - stack?: SyncReconcileRequestTargetReleaseProfileGcpStack | undefined; + stack?: SyncReconcileRequestPreparedStackProfileGcpStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileRequestTargetReleaseProfileGcpGrant = { +export type SyncReconcileRequestPreparedStackProfileGcpGrant = { /** * AWS IAM actions (only for AWS) */ @@ -4897,11 +4586,11 @@ export type SyncReconcileRequestTargetReleaseProfileGcpGrant = { /** * GCP-specific platform permission configuration */ -export type SyncReconcileRequestTargetReleaseProfileGcp = { +export type SyncReconcileRequestPreparedStackProfileGcp = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileRequestTargetReleaseProfileGcpBinding; + binding: SyncReconcileRequestPreparedStackProfileGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -4909,7 +4598,7 @@ export type SyncReconcileRequestTargetReleaseProfileGcp = { /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileRequestTargetReleaseProfileGcpGrant; + grant: SyncReconcileRequestPreparedStackProfileGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -4919,28 +4608,28 @@ export type SyncReconcileRequestTargetReleaseProfileGcp = { /** * Platform-specific permission configurations */ -export type SyncReconcileRequestTargetReleaseProfilePlatforms = { +export type SyncReconcileRequestPreparedStackProfilePlatforms = { /** * AWS permission configurations */ - aws?: Array | null | undefined; + aws?: Array | null | undefined; /** * Azure permission configurations */ azure?: - | Array + | Array | null | undefined; /** * GCP permission configurations */ - gcp?: Array | null | undefined; + gcp?: Array | null | undefined; }; /** * A permission set that can be applied across different cloud platforms */ -export type SyncReconcileRequestTargetReleaseProfile = { +export type SyncReconcileRequestPreparedStackProfile = { /** * Human-readable description of what this permission set allows */ @@ -4952,27 +4641,27 @@ export type SyncReconcileRequestTargetReleaseProfile = { /** * Platform-specific permission configurations */ - platforms: SyncReconcileRequestTargetReleaseProfilePlatforms; + platforms: SyncReconcileRequestPreparedStackProfilePlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type SyncReconcileRequestTargetReleaseProfileUnion = - | SyncReconcileRequestTargetReleaseProfile +export type SyncReconcileRequestPreparedStackProfileUnion = + | SyncReconcileRequestPreparedStackProfile | string; /** * Combined permissions configuration that contains both profiles and management */ -export type SyncReconcileRequestTargetReleasePermissions = { +export type SyncReconcileRequestPreparedStackPermissions = { /** * Management permissions configuration for stack management access */ management?: - | SyncReconcileRequestTargetReleaseManagement1 - | SyncReconcileRequestTargetReleaseManagement2 - | SyncReconcileRequestTargetReleaseManagementEnum + | SyncReconcileRequestPreparedStackManagement1 + | SyncReconcileRequestPreparedStackManagement2 + | SyncReconcileRequestPreparedStackManagementEnum | undefined; /** * Permission profiles that define access control for compute services @@ -4982,7 +4671,7 @@ export type SyncReconcileRequestTargetReleasePermissions = { */ profiles: { [k: string]: { - [k: string]: Array; + [k: string]: Array; }; }; }; @@ -4990,7 +4679,7 @@ export type SyncReconcileRequestTargetReleasePermissions = { /** * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ -export type SyncReconcileRequestTargetReleaseConfig = { +export type SyncReconcileRequestPreparedStackConfig = { /** * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. */ @@ -5005,7 +4694,7 @@ export type SyncReconcileRequestTargetReleaseConfig = { /** * Reference to a resource by its stable id and resource type. */ -export type SyncReconcileRequestTargetReleaseDependency = { +export type SyncReconcileRequestPreparedStackDependency = { id: string; /** * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. @@ -5016,33 +4705,44 @@ export type SyncReconcileRequestTargetReleaseDependency = { /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export const TargetReleaseStateLifecycle = { +export const PreparedStackStateLifecycle = { Frozen: "frozen", Live: "live", } as const; /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export type TargetReleaseStateLifecycle = ClosedEnum< - typeof TargetReleaseStateLifecycle +export type PreparedStackStateLifecycle = ClosedEnum< + typeof PreparedStackStateLifecycle >; -export type SyncReconcileRequestTargetReleaseResources = { +export type SyncReconcileRequestPreparedStackResources = { /** * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ - config: SyncReconcileRequestTargetReleaseConfig; + config: SyncReconcileRequestPreparedStackConfig; /** * Additional dependencies for this resource beyond those defined in the resource itself. * * @remarks * The total dependencies are: resource.get_dependencies() + this list */ - dependencies: Array; + dependencies: Array; + /** + * Id of the boolean stack input that decides whether this resource is + * + * @remarks + * created at all. `None` means always create it. + * + * Set by `.enabled(input)` in the SDK. Setup emitters render the resource + * conditionally on the matching template variable, so a deployer who says no + * never gets the resource, its outputs, or anything derived from it. + */ + enabledWhen?: string | null | undefined; /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ - lifecycle: TargetReleaseStateLifecycle; + lifecycle: PreparedStackStateLifecycle; /** * Enable remote bindings for this resource (BYOB use case). * @@ -5056,7 +4756,7 @@ export type SyncReconcileRequestTargetReleaseResources = { /** * Represents the target cloud platform. */ -export const SyncReconcileRequestTargetReleaseSupportedPlatform = { +export const SyncReconcileRequestPreparedStackSupportedPlatform = { Aws: "aws", Gcp: "gcp", Azure: "azure", @@ -5068,14 +4768,14 @@ export const SyncReconcileRequestTargetReleaseSupportedPlatform = { /** * Represents the target cloud platform. */ -export type SyncReconcileRequestTargetReleaseSupportedPlatform = ClosedEnum< - typeof SyncReconcileRequestTargetReleaseSupportedPlatform +export type SyncReconcileRequestPreparedStackSupportedPlatform = ClosedEnum< + typeof SyncReconcileRequestPreparedStackSupportedPlatform >; /** * A bag of resources, unaware of any cloud. */ -export type SyncReconcileRequestTargetReleaseStack = { +export type SyncReconcileRequestPreparedStack = { /** * Unique identifier for the stack */ @@ -5083,131 +4783,169 @@ export type SyncReconcileRequestTargetReleaseStack = { /** * Input definitions required before setup or deployment can proceed. */ - inputs?: Array | undefined; + inputs?: Array | undefined; /** * Combined permissions configuration that contains both profiles and management */ - permissions?: SyncReconcileRequestTargetReleasePermissions | undefined; + permissions?: SyncReconcileRequestPreparedStackPermissions | undefined; /** * Map of resource IDs to their configurations and lifecycle settings */ - resources: { [k: string]: SyncReconcileRequestTargetReleaseResources }; + resources: { [k: string]: SyncReconcileRequestPreparedStackResources }; /** * Which platforms this stack supports. When None, all platforms are supported. */ supportedPlatforms?: - | Array + | Array | null | undefined; }; +export type SyncReconcileRequestPreparedStackUnion = + | SyncReconcileRequestPreparedStack + | any; + /** - * Release metadata - * - * @remarks - * - * Identifies a specific release version and includes the stack definition. - * The deployment engine uses this to track which release is currently deployed - * and which is the target. + * One-shot authority for a setup re-import to replace setup-owned resources. */ -export type SyncReconcileRequestTargetRelease = { +export type SyncReconcileRequestSetupUpdateAuthorization = { /** - * Short description of the release + * Frozen resource projection from the last successful deployment. */ - description?: string | null | undefined; + baselineFrozenDigest: string; /** - * Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no - * - * @remarks - * Alien-assigned release — the platform resolves a release from `version`. + * Unique revision used by persistence layers for compare-and-swap updates. */ - releaseId?: string | null | undefined; + nonce: string; /** - * A bag of resources, unaware of any cloud. + * Release whose stack was prepared by setup. */ - stack: SyncReconcileRequestTargetReleaseStack; + releaseId: string; /** - * Version string (e.g., 2.1.0) + * Exact setup artifact revision that authored this authority. */ - version?: string | null | undefined; + setupFingerprint: string; + /** + * Setup fingerprint contract version. + */ + setupFingerprintVersion: number; + /** + * Stable setup target recorded on the imported deployment. + */ + setupTarget: string; + /** + * Frozen resource projection prepared by the setup re-import. + */ + targetFrozenDigest: string; }; -export type SyncReconcileRequestTargetReleaseUnion = - | SyncReconcileRequestTargetRelease +export type SyncReconcileRequestSetupUpdateAuthorizationUnion = + | SyncReconcileRequestSetupUpdateAuthorization | any; /** - * Complete deployment state after step() execution + * Runtime metadata for deployment + * + * @remarks + * + * Stores deployment state that needs to persist across step calls. */ -export type SyncReconcileRequestState = { - currentRelease?: SyncReconcileRequestCurrentRelease | any | null | undefined; - environmentInfo?: - | SyncReconcileRequestEnvironmentInfoGcp - | SyncReconcileRequestEnvironmentInfoAzure - | SyncReconcileRequestEnvironmentInfoLocal - | SyncReconcileRequestEnvironmentInfoAws - | SyncReconcileRequestEnvironmentInfoTest - | any - | null - | undefined; - error?: SyncReconcileRequestError | any | null | undefined; +export type SyncReconcileRequestRuntimeMetadata = { /** - * Represents the target cloud platform. + * Actor that owns structural work during the initial setup phase. */ - platform: SyncReconcileRequestPlatform; + initialSetupAuthority?: SyncReconcileRequestInitialSetupAuthority | undefined; /** - * Protocol version for cross-actor compatibility. + * Hash of the environment variables snapshot that was last synced to the vault * * @remarks - * All actors (manager, push client, agent) check this before stepping. - * Mismatched versions produce a clear error instead of silent corruption. - * See docs/02-manager/10-deployment-protocol.md. + * Used to avoid redundant sync operations during incremental deployment */ - protocolVersion: number; + lastSyncedEnvVarsHash?: string | null | undefined; /** - * Whether a retry has been requested for a failed deployment + * Exact vault keys owned by the deployment secret synchronizer. This * * @remarks - * When true and status is a failed state, the deployment system will retry failed resources + * inventory lets a later snapshot delete removed keys without listing or + * touching unrelated values in the same vault. */ - retryRequested?: boolean | undefined; - runtimeMetadata?: - | SyncReconcileRequestRuntimeMetadata + lastSyncedSecretNames?: Array | undefined; + pendingPreparedStack?: + | SyncReconcileRequestPendingPreparedStack | any | null | undefined; - stackState?: SyncReconcileRequestStackState | any | null | undefined; /** - * Deployment status in the deployment lifecycle. + * Canonical resolved answers for inputs that gate Frozen resources, * * @remarks + * keyed by input id, recorded when the deployment is created or its + * setup import registers. * - * For observe-only deployments with no release or stack state, `Running` - * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; - * resource health comes from inventory and resource heartbeat data. + * A frozen gate's answer is fixed for the deployment's lifetime: the + * update path refuses input values that conflict with these, and a Live + * resource sharing such an input resolves the persisted answer forever. */ - status: StateStatus; - targetRelease?: SyncReconcileRequestTargetRelease | any | null | undefined; + persistedGateAnswers?: { [k: string]: boolean } | undefined; + preparedStack?: SyncReconcileRequestPreparedStack | any | null | undefined; + /** + * Whether cross-account registry access has been successfully granted. + * + * @remarks + * Set to true after the manager successfully sets the ECR/GAR repo policy + * for this deployment's target account. Prevents redundant API calls on + * every reconcile tick. + */ + registryAccessGranted?: boolean | undefined; + setupUpdateAuthorization?: + | SyncReconcileRequestSetupUpdateAuthorization + | any + | null + | undefined; }; -export const ResourceHeartbeatBackendEnum = { +export type SyncReconcileRequestRuntimeMetadataUnion = + | SyncReconcileRequestRuntimeMetadata + | any; + +/** + * Represents the target cloud platform. + */ +export const SyncReconcileRequestStackStatePlatform = { Aws: "aws", Gcp: "gcp", Azure: "azure", Kubernetes: "kubernetes", + Machines: "machines", Local: "local", - Managed: "managed", - External: "external", Test: "test", } as const; -export type ResourceHeartbeatBackendEnum = ClosedEnum< - typeof ResourceHeartbeatBackendEnum +/** + * Represents the target cloud platform. + */ +export type SyncReconcileRequestStackStatePlatform = ClosedEnum< + typeof SyncReconcileRequestStackStatePlatform >; +/** + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + */ +export type SyncReconcileRequestStackStateConfig = { + /** + * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. + */ + id: string; + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + type: string; + additionalProperties?: { [k: string]: any | null } | undefined; +}; + /** * Represents the target cloud platform. */ -export const ResourceHeartbeatControllerPlatform = { +export const ControllerPlatformStateEnum = { Aws: "aws", Gcp: "gcp", Azure: "azure", @@ -5219,1436 +4957,1924 @@ export const ResourceHeartbeatControllerPlatform = { /** * Represents the target cloud platform. */ -export type ResourceHeartbeatControllerPlatform = ClosedEnum< - typeof ResourceHeartbeatControllerPlatform +export type ControllerPlatformStateEnum = ClosedEnum< + typeof ControllerPlatformStateEnum >; -export const DataReason65 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", -} as const; -export type DataReason65 = ClosedEnum; +export type StateControllerPlatformUnion = ControllerPlatformStateEnum | any; -export const StatusSeverity65 = { - Info: "info", - Warning: "warning", - Error: "error", -} as const; -export type StatusSeverity65 = ClosedEnum; +/** + * Reference to a resource by its stable id and resource type. + */ +export type SyncReconcileRequestStackStateDependency = { + id: string; + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + type: string; +}; -export type DataCollectionIssue65 = { +/** + * Canonical error container that provides a structured way to represent errors + * + * @remarks + * with rich metadata including error codes, human-readable messages, context, + * and chaining capabilities for error propagation. + * + * This struct is designed to be both machine-readable and user-friendly, + * supporting serialization for API responses and detailed error reporting + * in distributed systems. + */ +export type SyncReconcileRequestStackStateError = { + /** + * A unique identifier for the type of error. + * + * @remarks + * + * This should be a short, machine-readable string that can be used + * by clients to programmatically handle different error types. + * Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" + */ + code: string; + /** + * Additional diagnostic information about the error context. + * + * @remarks + * + * This optional field can contain structured data providing more details + * about the error, such as validation errors, request parameters that + * caused the issue, or other relevant context information. + */ + context?: any | null | undefined; + /** + * Optional human-facing remediation hint. + */ + hint?: string | null | undefined; + /** + * HTTP status code for this error. + * + * @remarks + * + * Used when converting the error to an HTTP response. If None, falls back to + * the error type's default status code or 500. + */ + httpStatusCode?: number | null | undefined; + /** + * Indicates if this is an internal error that should not be exposed to users. + * + * @remarks + * + * When `true`, this error contains sensitive information or implementation + * details that should not be shown to end-users. Such errors should be + * logged for debugging but replaced with generic error messages in responses. + */ + internal: boolean; + /** + * Human-readable error message. + * + * @remarks + * + * This message should be clear and actionable for developers or end-users, + * providing context about what went wrong and potentially how to fix it. + */ message: string; - reason: DataReason65; - severity: StatusSeverity65; - source: string; + /** + * Indicates whether the operation that caused the error should be retried. + * + * @remarks + * + * When `true`, the error is transient and the operation might succeed + * if attempted again. When `false`, retrying the same operation is + * unlikely to succeed without changes. + */ + retryable?: boolean | undefined; + /** + * The underlying error that caused this error, creating an error chain. + * + * @remarks + * + * This allows for proper error propagation and debugging by maintaining + * the full context of how an error occurred through multiple layers + * of an application. + */ + source?: any | null | undefined; }; -export const DataHealth65 = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", -} as const; -export type DataHealth65 = ClosedEnum; +export type SyncReconcileRequestStackStateErrorUnion = + | SyncReconcileRequestStackStateError + | any; -export const StatusLifecycle65 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", +/** + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ +export const StackStateLifecycleStateEnum = { + Frozen: "frozen", + Live: "live", } as const; -export type StatusLifecycle65 = ClosedEnum; - -export type ResourceHeartbeatStatus65 = { - collectionIssues: Array; - health: DataHealth65; - lifecycle: StatusLifecycle65; - message?: string | null | undefined; - partial: boolean; - stale: boolean; -}; +/** + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ +export type StackStateLifecycleStateEnum = ClosedEnum< + typeof StackStateLifecycleStateEnum +>; -export type SyncReconcileRequestData5 = { - createdAt?: string | null | undefined; - disableLocalAuth?: boolean | null | undefined; - location?: string | null | undefined; - metricId?: string | null | undefined; - minimumTlsVersion?: string | null | undefined; - name: string; - namespaceStatus?: string | null | undefined; - premiumMessagingPartitions?: number | null | undefined; - privateEndpointConnectionCount: number; - provisioningState?: string | null | undefined; - publicNetworkAccess?: string | null | undefined; - resourceGroup?: string | null | undefined; - resourceId?: string | null | undefined; - serviceBusEndpoint?: string | null | undefined; - skuCapacity?: number | null | undefined; - skuName?: string | null | undefined; - skuTier?: string | null | undefined; - status: ResourceHeartbeatStatus65; - updatedAt?: string | null | undefined; - zoneRedundant?: boolean | null | undefined; -}; +export type StateLifecycleUnion = StackStateLifecycleStateEnum | any; -export type DataAzureServiceBusNamespace = { - data: SyncReconcileRequestData5; - resourceType: "azure_service_bus_namespace"; +/** + * Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties. + */ +export type SyncReconcileRequestOutputs = { + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + type: string; + additionalProperties?: { [k: string]: any | null } | undefined; }; -export const DataReason64 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", -} as const; -export type DataReason64 = ClosedEnum; - -export const StatusSeverity64 = { - Info: "info", - Warning: "warning", - Error: "error", -} as const; -export type StatusSeverity64 = ClosedEnum; +export type SyncReconcileRequestOutputsUnion = + | SyncReconcileRequestOutputs + | any; -export type DataCollectionIssue64 = { - message: string; - reason: DataReason64; - severity: StatusSeverity64; - source: string; +/** + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + */ +export type SyncReconcileRequestPreviousConfig = { + /** + * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. + */ + id: string; + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + type: string; + additionalProperties?: { [k: string]: any | null } | undefined; }; -export const DataHealth64 = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", -} as const; -export type DataHealth64 = ClosedEnum; +export type SyncReconcileRequestPreviousConfigUnion = + | SyncReconcileRequestPreviousConfig + | any; -export const StatusLifecycle64 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", +/** + * Represents the high-level status of a resource during its lifecycle. + */ +export const StackStateStateStatus = { + Pending: "pending", + Provisioning: "provisioning", + ProvisionFailed: "provision-failed", Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", + Updating: "updating", + UpdateFailed: "update-failed", Deleting: "deleting", + DeleteFailed: "delete-failed", + TeardownRequired: "teardown-required", Deleted: "deleted", - Failed: "failed", + RefreshFailed: "refresh-failed", } as const; -export type StatusLifecycle64 = ClosedEnum; - -export type ResourceHeartbeatStatus64 = { - collectionIssues: Array; - health: DataHealth64; - lifecycle: StatusLifecycle64; - message?: string | null | undefined; - partial: boolean; - stale: boolean; -}; - -export type WorkloadProfile = { - maximumCount?: number | null | undefined; - minimumCount?: number | null | undefined; - name: string; - workloadProfileType: string; -}; - -export type SyncReconcileRequestData4 = { - customDomainVerificationId?: string | null | undefined; - defaultDomain?: string | null | undefined; - eventStreamEndpoint?: string | null | undefined; - infrastructureResourceGroup?: string | null | undefined; - kind?: string | null | undefined; - location?: string | null | undefined; - name: string; - provisioningState?: string | null | undefined; - resourceGroup?: string | null | undefined; - resourceId?: string | null | undefined; - staticIp?: string | null | undefined; - status: ResourceHeartbeatStatus64; - workloadProfileCount: number; - workloadProfiles: Array; - zoneRedundant?: boolean | null | undefined; -}; +/** + * Represents the high-level status of a resource during its lifecycle. + */ +export type StackStateStateStatus = ClosedEnum; -export type DataAzureContainerAppsEnvironment = { - data: SyncReconcileRequestData4; - resourceType: "azure_container_apps_environment"; +/** + * Represents the state of a single resource within the stack for a specific platform. + */ +export type SyncReconcileRequestStackStateResources = { + /** + * The platform-specific resource controller that manages this resource's lifecycle. + * + * @remarks + * This is None when the resource status is Pending. + * Stored as JSON to make the struct serializable and movable to alien-core. + */ + internal?: any | null | undefined; + /** + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + */ + config: SyncReconcileRequestStackStateConfig; + controllerPlatform?: ControllerPlatformStateEnum | any | null | undefined; + /** + * Complete list of dependencies for this resource, including infrastructure dependencies. + * + * @remarks + * This preserves the full dependency information from the stack definition. + */ + dependencies?: Array | undefined; + error?: SyncReconcileRequestStackStateError | any | null | undefined; + /** + * Stores the controller state that failed, used for manual retry operations. + * + * @remarks + * This allows resuming from the exact point where the failure occurred. + * Stored as JSON to make the struct serializable and movable to alien-core. + */ + lastFailedState?: any | null | undefined; + lifecycle?: StackStateLifecycleStateEnum | any | null | undefined; + outputs?: SyncReconcileRequestOutputs | any | null | undefined; + previousConfig?: SyncReconcileRequestPreviousConfig | any | null | undefined; + /** + * Binding parameters for remote access. + * + * @remarks + * Only populated when the resource has `remote_access: true` in its ResourceEntry. + * This is the JSON serialization of the binding configuration (e.g., StorageBinding, VaultBinding). + * Populated by controllers during provisioning using get_binding_params(). + */ + remoteBindingParams?: any | null | undefined; + /** + * Tracks consecutive retry attempts for the current state transition. + */ + retryAttempt?: number | undefined; + /** + * Represents the high-level status of a resource during its lifecycle. + */ + status: StackStateStateStatus; + /** + * The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE). + */ + type: string; }; -export type PrimaryEndpoints = { - blob?: string | null | undefined; - dfs?: string | null | undefined; - file?: string | null | undefined; - queue?: string | null | undefined; - table?: string | null | undefined; - web?: string | null | undefined; +/** + * Represents the collective state of all resources in a stack, including platform and pending actions. + */ +export type SyncReconcileRequestStackState = { + /** + * Represents the target cloud platform. + */ + platform: SyncReconcileRequestStackStatePlatform; + /** + * A prefix used for resource naming to ensure uniqueness across deployments. + */ + resourcePrefix: string; + /** + * The state of individual resources, keyed by resource ID. + */ + resources: { [k: string]: SyncReconcileRequestStackStateResources }; }; -export type SecondaryEndpoints = { - blob?: string | null | undefined; - dfs?: string | null | undefined; - file?: string | null | undefined; - queue?: string | null | undefined; - table?: string | null | undefined; - web?: string | null | undefined; -}; +export type SyncReconcileRequestStackStateUnion = + | SyncReconcileRequestStackState + | any; -export const DataReason63 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", +/** + * Deployment status in the deployment lifecycle. + * + * @remarks + * + * For observe-only deployments with no release or stack state, `Running` + * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; + * resource health comes from inventory and resource heartbeat data. + */ +export const StateStatus = { + Pending: "pending", + PreflightsFailed: "preflights-failed", + InitialSetup: "initial-setup", + InitialSetupFailed: "initial-setup-failed", + Provisioning: "provisioning", + WaitingForMachines: "waiting-for-machines", + ProvisioningFailed: "provisioning-failed", + Running: "running", + RefreshFailed: "refresh-failed", + UpdatePending: "update-pending", + Updating: "updating", + UpdateFailed: "update-failed", + DeletePending: "delete-pending", + Deleting: "deleting", + DeleteFailed: "delete-failed", + TeardownRequired: "teardown-required", + TeardownFailed: "teardown-failed", + Deleted: "deleted", + Error: "error", } as const; -export type DataReason63 = ClosedEnum; +/** + * Deployment status in the deployment lifecycle. + * + * @remarks + * + * For observe-only deployments with no release or stack state, `Running` + * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; + * resource health comes from inventory and resource heartbeat data. + */ +export type StateStatus = ClosedEnum; -export const StatusSeverity63 = { - Info: "info", - Warning: "warning", - Error: "error", +export const SyncReconcileRequestTargetReleaseTypeStringList = { + StringList: "stringList", } as const; -export type StatusSeverity63 = ClosedEnum; +export type SyncReconcileRequestTargetReleaseTypeStringList = ClosedEnum< + typeof SyncReconcileRequestTargetReleaseTypeStringList +>; -export type DataCollectionIssue63 = { - message: string; - reason: DataReason63; - severity: StatusSeverity63; - source: string; +export type SyncReconcileRequestTargetReleaseDefaultStringList = { + type: SyncReconcileRequestTargetReleaseTypeStringList; + /** + * String list default. + */ + value: Array; }; -export const DataHealth63 = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", -} as const; -export type DataHealth63 = ClosedEnum; - -export const StatusLifecycle63 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", +export const SyncReconcileRequestTargetReleaseTypeBoolean = { + Boolean: "boolean", } as const; -export type StatusLifecycle63 = ClosedEnum; +export type SyncReconcileRequestTargetReleaseTypeBoolean = ClosedEnum< + typeof SyncReconcileRequestTargetReleaseTypeBoolean +>; -export type ResourceHeartbeatStatus63 = { - collectionIssues: Array; - health: DataHealth63; - lifecycle: StatusLifecycle63; - message?: string | null | undefined; - partial: boolean; - stale: boolean; +export type SyncReconcileRequestTargetReleaseDefaultBoolean = { + type: SyncReconcileRequestTargetReleaseTypeBoolean; + /** + * Boolean default. + */ + value: boolean; }; -export type SyncReconcileRequestData3 = { - allowBlobPublicAccess?: boolean | null | undefined; - allowSharedKeyAccess?: boolean | null | undefined; - encryptionKeySource?: string | null | undefined; - kind?: string | null | undefined; - location?: string | null | undefined; - minimumTlsVersion?: string | null | undefined; - name: string; - networkBypass?: string | null | undefined; - networkDefaultAction?: string | null | undefined; - networkIpRuleCount?: number | null | undefined; - networkResourceAccessRuleCount?: number | null | undefined; - networkVirtualNetworkRuleCount?: number | null | undefined; - primaryEndpoints: PrimaryEndpoints; - provisioningState?: string | null | undefined; - publicNetworkAccess?: string | null | undefined; - requireInfrastructureEncryption?: boolean | null | undefined; - resourceGroup?: string | null | undefined; - resourceId?: string | null | undefined; - secondaryEndpoints: SecondaryEndpoints; - skuName?: string | null | undefined; - skuTier?: string | null | undefined; - status: ResourceHeartbeatStatus63; - supportsHttpsTrafficOnly?: boolean | null | undefined; -}; +export const SyncReconcileRequestTargetReleaseTypeNumber = { + Number: "number", +} as const; +export type SyncReconcileRequestTargetReleaseTypeNumber = ClosedEnum< + typeof SyncReconcileRequestTargetReleaseTypeNumber +>; -export type DataAzureStorageAccount = { - data: SyncReconcileRequestData3; - resourceType: "azure_storage_account"; +export type SyncReconcileRequestTargetReleaseDefaultNumber = { + type: SyncReconcileRequestTargetReleaseTypeNumber; + /** + * Number default. + */ + value: string; }; -export const DataReason62 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", -} as const; -export type DataReason62 = ClosedEnum; - -export const StatusSeverity62 = { - Info: "info", - Warning: "warning", - Error: "error", +export const SyncReconcileRequestTargetReleaseTypeString = { + String: "string", } as const; -export type StatusSeverity62 = ClosedEnum; +export type SyncReconcileRequestTargetReleaseTypeString = ClosedEnum< + typeof SyncReconcileRequestTargetReleaseTypeString +>; -export type DataCollectionIssue62 = { - message: string; - reason: DataReason62; - severity: StatusSeverity62; - source: string; +export type SyncReconcileRequestTargetReleaseDefaultString = { + type: SyncReconcileRequestTargetReleaseTypeString; + /** + * String default. + */ + value: string; }; -export const DataHealth62 = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", -} as const; -export type DataHealth62 = ClosedEnum; +export type SyncReconcileRequestTargetReleaseDefaultUnion = + | SyncReconcileRequestTargetReleaseDefaultString + | SyncReconcileRequestTargetReleaseDefaultNumber + | SyncReconcileRequestTargetReleaseDefaultBoolean + | SyncReconcileRequestTargetReleaseDefaultStringList + | any; -export const StatusLifecycle62 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", +/** + * Environment variable handling for a stack input mapping. + */ +export const SyncReconcileRequestTargetReleaseTypeEnvEnum = { + Plain: "plain", + Secret: "secret", } as const; -export type StatusLifecycle62 = ClosedEnum; +/** + * Environment variable handling for a stack input mapping. + */ +export type SyncReconcileRequestTargetReleaseTypeEnvEnum = ClosedEnum< + typeof SyncReconcileRequestTargetReleaseTypeEnvEnum +>; -export type ResourceHeartbeatStatus62 = { - collectionIssues: Array; - health: DataHealth62; - lifecycle: StatusLifecycle62; - message?: string | null | undefined; - partial: boolean; - stale: boolean; -}; +export type SyncReconcileRequestTargetReleaseTypeUnion = + | SyncReconcileRequestTargetReleaseTypeEnvEnum + | any; -export type SyncReconcileRequestData2 = { - location?: string | null | undefined; - managedTags: { [k: string]: string }; +/** + * How a resolved stack input is injected into runtime environment variables. + */ +export type SyncReconcileRequestTargetReleaseEnv = { + /** + * Environment variable name. + */ name: string; - provisioningState?: string | null | undefined; - resourceId?: string | null | undefined; - status: ResourceHeartbeatStatus62; + /** + * Target resource IDs or patterns. None means every env-capable resource. + */ + targetResources?: Array | null | undefined; + type?: SyncReconcileRequestTargetReleaseTypeEnvEnum | any | null | undefined; }; -export type DataAzureResourceGroup = { - data: SyncReconcileRequestData2; - resourceType: "azure_resource_group"; -}; - -export const DataReason61 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", -} as const; -export type DataReason61 = ClosedEnum; - -export const StatusSeverity61 = { - Info: "info", - Warning: "warning", - Error: "error", +/** + * Primitive stack input kind. + */ +export const TargetReleaseStateKind = { + String: "string", + Secret: "secret", + Number: "number", + Integer: "integer", + Boolean: "boolean", + Enum: "enum", + StringList: "stringList", } as const; -export type StatusSeverity61 = ClosedEnum; - -export type DataCollectionIssue61 = { - message: string; - reason: DataReason61; - severity: StatusSeverity61; - source: string; -}; +/** + * Primitive stack input kind. + */ +export type TargetReleaseStateKind = ClosedEnum; -export const DataHealth61 = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", +/** + * Represents the target cloud platform. + */ +export const SyncReconcileRequestTargetReleasePlatform = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", } as const; -export type DataHealth61 = ClosedEnum; +/** + * Represents the target cloud platform. + */ +export type SyncReconcileRequestTargetReleasePlatform = ClosedEnum< + typeof SyncReconcileRequestTargetReleasePlatform +>; -export const StatusLifecycle61 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", +/** + * Who can provide a stack input value. + */ +export const SyncReconcileRequestTargetReleaseProvidedBy = { + Developer: "developer", + Deployer: "deployer", } as const; -export type StatusLifecycle61 = ClosedEnum; +/** + * Who can provide a stack input value. + */ +export type SyncReconcileRequestTargetReleaseProvidedBy = ClosedEnum< + typeof SyncReconcileRequestTargetReleaseProvidedBy +>; -export type ResourceHeartbeatStatus61 = { - collectionIssues: Array; - health: DataHealth61; - lifecycle: StatusLifecycle61; - message?: string | null | undefined; - partial: boolean; - stale: boolean; +/** + * Portable stack input validation constraints. + */ +export type SyncReconcileRequestTargetReleaseValidation = { + /** + * Semantic format hint such as url. + */ + format?: string | null | undefined; + /** + * Maximum number. + */ + max?: string | null | undefined; + /** + * Maximum string-list items. + */ + maxItems?: number | null | undefined; + /** + * Maximum string length. + */ + maxLength?: number | null | undefined; + /** + * Minimum number. + */ + min?: string | null | undefined; + /** + * Minimum string-list items. + */ + minItems?: number | null | undefined; + /** + * Minimum string length. + */ + minLength?: number | null | undefined; + /** + * Portable whole-value regex pattern. + */ + pattern?: string | null | undefined; + /** + * Allowed string enum values. + */ + values?: Array | null | undefined; }; -export type DataAzureResourceProvider = { - namespace: string; - providerId?: string | null | undefined; - registered: boolean; - registrationPolicy?: string | null | undefined; - registrationState?: string | null | undefined; - resourceTypeCount: number; - status: ResourceHeartbeatStatus61; - backend: "azureResourceProvider"; +export type SyncReconcileRequestTargetReleaseValidationUnion = + | SyncReconcileRequestTargetReleaseValidation + | any; + +/** + * Stack input definition serialized into a release stack. + */ +export type SyncReconcileRequestTargetReleaseInput = { + default?: + | SyncReconcileRequestTargetReleaseDefaultString + | SyncReconcileRequestTargetReleaseDefaultNumber + | SyncReconcileRequestTargetReleaseDefaultBoolean + | SyncReconcileRequestTargetReleaseDefaultStringList + | any + | null + | undefined; + /** + * Human-facing helper text. + */ + description: string; + /** + * Runtime env-var mappings for v1 input resolution. + */ + env?: Array | undefined; + /** + * Stable input ID used by CLI/API calls. + */ + id: string; + /** + * Primitive stack input kind. + */ + kind: TargetReleaseStateKind; + /** + * Human-facing field label. + */ + label: string; + /** + * Example placeholder shown in UI. + */ + placeholder?: string | null | undefined; + /** + * Platforms where this input applies. + */ + platforms?: + | Array + | null + | undefined; + /** + * Who can provide this value. + */ + providedBy: Array; + /** + * Whether a resolved value is required before deployment can proceed. + */ + required: boolean; + validation?: + | SyncReconcileRequestTargetReleaseValidation + | any + | null + | undefined; }; -export const DataReason60 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", +export const SyncReconcileRequestTargetReleaseManagementEnum = { + Auto: "auto", } as const; -export type DataReason60 = ClosedEnum; +export type SyncReconcileRequestTargetReleaseManagementEnum = ClosedEnum< + typeof SyncReconcileRequestTargetReleaseManagementEnum +>; -export const StatusSeverity60 = { - Info: "info", - Warning: "warning", - Error: "error", -} as const; -export type StatusSeverity60 = ClosedEnum; +/** + * AWS-specific binding specification + */ +export type TargetReleaseOverrideStateAwResource = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; -export type DataCollectionIssue60 = { - message: string; - reason: DataReason60; - severity: StatusSeverity60; - source: string; +/** + * AWS-specific binding specification + */ +export type SyncReconcileRequestTargetReleaseOverrideAwStack = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; }; -export const DataHealth60 = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", -} as const; -export type DataHealth60 = ClosedEnum; +/** + * Generic binding configuration for permissions + */ +export type SyncReconcileRequestTargetReleaseOverrideAwBinding = { + /** + * AWS-specific binding specification + */ + resource?: TargetReleaseOverrideStateAwResource | undefined; + /** + * AWS-specific binding specification + */ + stack?: SyncReconcileRequestTargetReleaseOverrideAwStack | undefined; +}; -export const StatusLifecycle60 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", +/** + * IAM effect. Defaults to Allow. + */ +export const SyncReconcileRequestTargetReleaseOverrideEffect = { + Allow: "Allow", + Deny: "Deny", } as const; -export type StatusLifecycle60 = ClosedEnum; +/** + * IAM effect. Defaults to Allow. + */ +export type SyncReconcileRequestTargetReleaseOverrideEffect = ClosedEnum< + typeof SyncReconcileRequestTargetReleaseOverrideEffect +>; -export type ResourceHeartbeatStatus60 = { - collectionIssues: Array; - health: DataHealth60; - lifecycle: StatusLifecycle60; - message?: string | null | undefined; - partial: boolean; - stale: boolean; +/** + * Grant permissions for a specific cloud platform + */ +export type SyncReconcileRequestTargetReleaseOverrideAwGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; }; -export type DataGcpServiceUsage = { - enabled: boolean; - lastOperationName?: string | null | undefined; - projectId: string; - serviceName: string; - serviceResourceName?: string | null | undefined; - state?: string | null | undefined; - status: ResourceHeartbeatStatus60; - title?: string | null | undefined; - backend: "gcpServiceUsage"; +/** + * AWS-specific platform permission configuration + */ +export type SyncReconcileRequestTargetReleaseOverrideAw = { + /** + * Generic binding configuration for permissions + */ + binding: SyncReconcileRequestTargetReleaseOverrideAwBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * IAM effect. Defaults to Allow. + */ + effect?: SyncReconcileRequestTargetReleaseOverrideEffect | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncReconcileRequestTargetReleaseOverrideAwGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; }; -export type SyncReconcileRequestDataUnion15 = - | DataGcpServiceUsage - | DataAzureResourceProvider; - -export type DataServiceActivation = { - data: DataGcpServiceUsage | DataAzureResourceProvider; - resourceType: "service_activation"; +/** + * Azure-specific binding specification + */ +export type TargetReleaseOverrideStateAzureResource = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; }; -export type InvolvedObject10 = { - apiVersion?: string | null | undefined; - fieldPath?: string | null | undefined; - kind?: string | null | undefined; - name?: string | null | undefined; - namespace?: string | null | undefined; - resourceVersion?: string | null | undefined; - uid?: string | null | undefined; +/** + * Azure-specific binding specification + */ +export type SyncReconcileRequestTargetReleaseOverrideAzureStack = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; }; -export type InvolvedObjectUnion10 = InvolvedObject10 | any; +/** + * Generic binding configuration for permissions + */ +export type SyncReconcileRequestTargetReleaseOverrideAzureBinding = { + /** + * Azure-specific binding specification + */ + resource?: TargetReleaseOverrideStateAzureResource | undefined; + /** + * Azure-specific binding specification + */ + stack?: SyncReconcileRequestTargetReleaseOverrideAzureStack | undefined; +}; -export type SyncReconcileRequestSource10 = { - component?: string | null | undefined; - host?: string | null | undefined; +/** + * Grant permissions for a specific cloud platform + */ +export type SyncReconcileRequestTargetReleaseOverrideAzureGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; }; -export type SourceUnion10 = SyncReconcileRequestSource10 | any; +/** + * Azure-specific platform permission configuration + */ +export type SyncReconcileRequestTargetReleaseOverrideAzure = { + /** + * Generic binding configuration for permissions + */ + binding: SyncReconcileRequestTargetReleaseOverrideAzureBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncReconcileRequestTargetReleaseOverrideAzureGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; -export type SyncReconcileRequestEvent13 = { - count?: number | null | undefined; - eventTime?: Date | null | undefined; - firstTimestamp?: Date | null | undefined; - involvedObject?: InvolvedObject10 | any | null | undefined; - lastTimestamp?: Date | null | undefined; - message: string; - raw?: any | null | undefined; - reason: string; - source?: SyncReconcileRequestSource10 | any | null | undefined; - type?: string | null | undefined; +/** + * GCP IAM condition + */ +export type TargetReleaseOverrideConditionStateResource = { + expression: string; + title: string; }; -export const DataReason59 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", -} as const; -export type DataReason59 = ClosedEnum; +export type TargetReleaseOverrideStateResourceConditionUnion = + | TargetReleaseOverrideConditionStateResource + | any; -export const StatusSeverity59 = { - Info: "info", - Warning: "warning", - Error: "error", -} as const; -export type StatusSeverity59 = ClosedEnum; +/** + * GCP-specific binding specification + */ +export type TargetReleaseOverrideStateGcpResource = { + condition?: + | TargetReleaseOverrideConditionStateResource + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; -export type DataCollectionIssue59 = { - message: string; - reason: DataReason59; - severity: StatusSeverity59; - source: string; +/** + * GCP IAM condition + */ +export type TargetReleaseOverrideConditionState = { + expression: string; + title: string; }; -export const DataHealth59 = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", -} as const; -export type DataHealth59 = ClosedEnum; +export type TargetReleaseOverrideStateConditionUnion = + | TargetReleaseOverrideConditionState + | any; -export const StatusLifecycle59 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", -} as const; -export type StatusLifecycle59 = ClosedEnum; +/** + * GCP-specific binding specification + */ +export type SyncReconcileRequestTargetReleaseOverrideGcpStack = { + condition?: TargetReleaseOverrideConditionState | any | null | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; -export type ResourceHeartbeatStatus59 = { - collectionIssues: Array; - health: DataHealth59; - lifecycle: StatusLifecycle59; - message?: string | null | undefined; - partial: boolean; - stale: boolean; +/** + * Generic binding configuration for permissions + */ +export type SyncReconcileRequestTargetReleaseOverrideGcpBinding = { + /** + * GCP-specific binding specification + */ + resource?: TargetReleaseOverrideStateGcpResource | undefined; + /** + * GCP-specific binding specification + */ + stack?: SyncReconcileRequestTargetReleaseOverrideGcpStack | undefined; }; -export type DataKubernetesJob = { - active?: number | null | undefined; - completionTime?: Date | null | undefined; - conditionCount: number; - events: Array; - failed?: number | null | undefined; - imageDigest?: string | null | undefined; - jobName: string; - namespace: string; - startTime?: Date | null | undefined; - status: ResourceHeartbeatStatus59; - succeeded?: number | null | undefined; - backend: "kubernetesJob"; +/** + * Grant permissions for a specific cloud platform + */ +export type SyncReconcileRequestTargetReleaseOverrideGcpGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; }; -export const DataReason58 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", -} as const; -export type DataReason58 = ClosedEnum; +/** + * GCP-specific platform permission configuration + */ +export type SyncReconcileRequestTargetReleaseOverrideGcp = { + /** + * Generic binding configuration for permissions + */ + binding: SyncReconcileRequestTargetReleaseOverrideGcpBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncReconcileRequestTargetReleaseOverrideGcpGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; -export const StatusSeverity58 = { - Info: "info", - Warning: "warning", - Error: "error", -} as const; -export type StatusSeverity58 = ClosedEnum; +/** + * Platform-specific permission configurations + */ +export type SyncReconcileRequestTargetReleaseOverridePlatforms = { + /** + * AWS permission configurations + */ + aws?: Array | null | undefined; + /** + * Azure permission configurations + */ + azure?: + | Array + | null + | undefined; + /** + * GCP permission configurations + */ + gcp?: Array | null | undefined; +}; -export type DataCollectionIssue58 = { - message: string; - reason: DataReason58; - severity: StatusSeverity58; - source: string; +/** + * A permission set that can be applied across different cloud platforms + */ +export type SyncReconcileRequestTargetReleaseOverride = { + /** + * Human-readable description of what this permission set allows + */ + description: string; + /** + * Unique identifier for the permission set (e.g., "storage/data-read") + */ + id: string; + /** + * Platform-specific permission configurations + */ + platforms: SyncReconcileRequestTargetReleaseOverridePlatforms; }; -export const DataHealth58 = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", -} as const; -export type DataHealth58 = ClosedEnum; +/** + * Reference to a permission set - either by name or inline definition + */ +export type SyncReconcileRequestTargetReleaseOverrideUnion = + | SyncReconcileRequestTargetReleaseOverride + | string; -export const StatusLifecycle58 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", -} as const; -export type StatusLifecycle58 = ClosedEnum; +export type SyncReconcileRequestTargetReleaseManagement2 = { + /** + * Permission profile that maps resources to permission sets + * + * @remarks + * Key can be "*" for all resources or resource name for specific resource + */ + override: { + [k: string]: Array; + }; +}; -export type ResourceHeartbeatStatus58 = { - collectionIssues: Array; - health: DataHealth58; - lifecycle: StatusLifecycle58; - message?: string | null | undefined; - partial: boolean; - stale: boolean; +/** + * AWS-specific binding specification + */ +export type TargetReleaseExtendStateAwResource = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; }; -export type DataAzureContainerApps2 = { - environmentVariableCount: number; - managedEnvironmentId: string; - managedIdentityId?: string | null | undefined; - resourceGroupName: string; - resourcePrefix?: string | null | undefined; - status: ResourceHeartbeatStatus58; - backend: "azureContainerApps"; +/** + * AWS-specific binding specification + */ +export type SyncReconcileRequestTargetReleaseExtendAwStack = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; }; -export const DataReason57 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", -} as const; -export type DataReason57 = ClosedEnum; +/** + * Generic binding configuration for permissions + */ +export type SyncReconcileRequestTargetReleaseExtendAwBinding = { + /** + * AWS-specific binding specification + */ + resource?: TargetReleaseExtendStateAwResource | undefined; + /** + * AWS-specific binding specification + */ + stack?: SyncReconcileRequestTargetReleaseExtendAwStack | undefined; +}; -export const StatusSeverity57 = { - Info: "info", - Warning: "warning", - Error: "error", +/** + * IAM effect. Defaults to Allow. + */ +export const SyncReconcileRequestTargetReleaseExtendEffect = { + Allow: "Allow", + Deny: "Deny", } as const; -export type StatusSeverity57 = ClosedEnum; +/** + * IAM effect. Defaults to Allow. + */ +export type SyncReconcileRequestTargetReleaseExtendEffect = ClosedEnum< + typeof SyncReconcileRequestTargetReleaseExtendEffect +>; -export type DataCollectionIssue57 = { - message: string; - reason: DataReason57; - severity: StatusSeverity57; - source: string; +/** + * Grant permissions for a specific cloud platform + */ +export type SyncReconcileRequestTargetReleaseExtendAwGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; }; -export const DataHealth57 = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", -} as const; -export type DataHealth57 = ClosedEnum; - -export const StatusLifecycle57 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", -} as const; -export type StatusLifecycle57 = ClosedEnum; +/** + * AWS-specific platform permission configuration + */ +export type SyncReconcileRequestTargetReleaseExtendAw = { + /** + * Generic binding configuration for permissions + */ + binding: SyncReconcileRequestTargetReleaseExtendAwBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * IAM effect. Defaults to Allow. + */ + effect?: SyncReconcileRequestTargetReleaseExtendEffect | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncReconcileRequestTargetReleaseExtendAwGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; -export type ResourceHeartbeatStatus57 = { - collectionIssues: Array; - health: DataHealth57; - lifecycle: StatusLifecycle57; - message?: string | null | undefined; - partial: boolean; - stale: boolean; +/** + * Azure-specific binding specification + */ +export type TargetReleaseExtendStateAzureResource = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; }; -export type DataGcpCloudBuild = { - buildConfigId: string; - environmentVariableCount: number; - location: string; - projectId: string; - serviceAccount?: string | null | undefined; - status: ResourceHeartbeatStatus57; - backend: "gcpCloudBuild"; +/** + * Azure-specific binding specification + */ +export type SyncReconcileRequestTargetReleaseExtendAzureStack = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; }; -export const DataReason56 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", -} as const; -export type DataReason56 = ClosedEnum; +/** + * Generic binding configuration for permissions + */ +export type SyncReconcileRequestTargetReleaseExtendAzureBinding = { + /** + * Azure-specific binding specification + */ + resource?: TargetReleaseExtendStateAzureResource | undefined; + /** + * Azure-specific binding specification + */ + stack?: SyncReconcileRequestTargetReleaseExtendAzureStack | undefined; +}; -export const StatusSeverity56 = { - Info: "info", - Warning: "warning", - Error: "error", -} as const; -export type StatusSeverity56 = ClosedEnum; +/** + * Grant permissions for a specific cloud platform + */ +export type SyncReconcileRequestTargetReleaseExtendAzureGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; -export type DataCollectionIssue56 = { - message: string; - reason: DataReason56; - severity: StatusSeverity56; - source: string; +/** + * Azure-specific platform permission configuration + */ +export type SyncReconcileRequestTargetReleaseExtendAzure = { + /** + * Generic binding configuration for permissions + */ + binding: SyncReconcileRequestTargetReleaseExtendAzureBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncReconcileRequestTargetReleaseExtendAzureGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; }; -export const DataHealth56 = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", -} as const; -export type DataHealth56 = ClosedEnum; +/** + * GCP IAM condition + */ +export type TargetReleaseExtendConditionStateResource = { + expression: string; + title: string; +}; -export const StatusLifecycle56 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", -} as const; -export type StatusLifecycle56 = ClosedEnum; +export type TargetReleaseExtendStateResourceConditionUnion = + | TargetReleaseExtendConditionStateResource + | any; -export type ResourceHeartbeatStatus56 = { - collectionIssues: Array; - health: DataHealth56; - lifecycle: StatusLifecycle56; - message?: string | null | undefined; - partial: boolean; - stale: boolean; +/** + * GCP-specific binding specification + */ +export type TargetReleaseExtendStateGcpResource = { + condition?: + | TargetReleaseExtendConditionStateResource + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; }; -export type DataAwsCodeBuild = { - artifactsEncryptionDisabled?: boolean | null | undefined; - artifactsType?: string | null | undefined; - cloudWatchLogsStatus?: string | null | undefined; - computeType?: string | null | undefined; - created?: number | null | undefined; - description?: string | null | undefined; - encryptionKeyPresent: boolean; - environmentImage?: string | null | undefined; - environmentType?: string | null | undefined; - environmentVariableCount: number; - imagePullCredentialsType?: string | null | undefined; - lastModified?: number | null | undefined; - privilegedMode?: boolean | null | undefined; - projectArn?: string | null | undefined; - projectName: string; - queuedTimeoutInMinutes?: number | null | undefined; - s3LogsStatus?: string | null | undefined; - serviceRolePresent: boolean; - sourceType?: string | null | undefined; - status: ResourceHeartbeatStatus56; - timeoutInMinutes?: number | null | undefined; - backend: "awsCodeBuild"; +/** + * GCP IAM condition + */ +export type TargetReleaseExtendConditionState = { + expression: string; + title: string; }; -export type SyncReconcileRequestDataUnion14 = - | DataAwsCodeBuild - | DataGcpCloudBuild - | DataAzureContainerApps2 - | DataKubernetesJob; +export type TargetReleaseExtendStateConditionUnion = + | TargetReleaseExtendConditionState + | any; -export type DataBuild = { - data: - | DataAwsCodeBuild - | DataGcpCloudBuild - | DataAzureContainerApps2 - | DataKubernetesJob; - resourceType: "build"; +/** + * GCP-specific binding specification + */ +export type SyncReconcileRequestTargetReleaseExtendGcpStack = { + condition?: TargetReleaseExtendConditionState | any | null | undefined; + /** + * Scope (project/resource level) + */ + scope: string; }; -export const DataReason55 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", -} as const; -export type DataReason55 = ClosedEnum; - -export const StatusSeverity55 = { - Info: "info", - Warning: "warning", - Error: "error", -} as const; -export type StatusSeverity55 = ClosedEnum; - -export type DataCollectionIssue55 = { - message: string; - reason: DataReason55; - severity: StatusSeverity55; - source: string; +/** + * Generic binding configuration for permissions + */ +export type SyncReconcileRequestTargetReleaseExtendGcpBinding = { + /** + * GCP-specific binding specification + */ + resource?: TargetReleaseExtendStateGcpResource | undefined; + /** + * GCP-specific binding specification + */ + stack?: SyncReconcileRequestTargetReleaseExtendGcpStack | undefined; }; -export const DataHealth55 = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", -} as const; -export type DataHealth55 = ClosedEnum; - -export const StatusLifecycle55 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", -} as const; -export type StatusLifecycle55 = ClosedEnum; +/** + * Grant permissions for a specific cloud platform + */ +export type SyncReconcileRequestTargetReleaseExtendGcpGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; -export type ResourceHeartbeatStatus55 = { - collectionIssues: Array; - health: DataHealth55; - lifecycle: StatusLifecycle55; - message?: string | null | undefined; - partial: boolean; - stale: boolean; +/** + * GCP-specific platform permission configuration + */ +export type SyncReconcileRequestTargetReleaseExtendGcp = { + /** + * Generic binding configuration for permissions + */ + binding: SyncReconcileRequestTargetReleaseExtendGcpBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncReconcileRequestTargetReleaseExtendGcpGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; }; -export type DataLocal11 = { - reachable: boolean; - registryUrl: string; - status: ResourceHeartbeatStatus55; - backend: "local"; +/** + * Platform-specific permission configurations + */ +export type SyncReconcileRequestTargetReleaseExtendPlatforms = { + /** + * AWS permission configurations + */ + aws?: Array | null | undefined; + /** + * Azure permission configurations + */ + azure?: + | Array + | null + | undefined; + /** + * GCP permission configurations + */ + gcp?: Array | null | undefined; }; -export const DataReason54 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", -} as const; -export type DataReason54 = ClosedEnum; +/** + * A permission set that can be applied across different cloud platforms + */ +export type SyncReconcileRequestTargetReleaseExtend = { + /** + * Human-readable description of what this permission set allows + */ + description: string; + /** + * Unique identifier for the permission set (e.g., "storage/data-read") + */ + id: string; + /** + * Platform-specific permission configurations + */ + platforms: SyncReconcileRequestTargetReleaseExtendPlatforms; +}; -export const StatusSeverity54 = { - Info: "info", - Warning: "warning", - Error: "error", -} as const; -export type StatusSeverity54 = ClosedEnum; +/** + * Reference to a permission set - either by name or inline definition + */ +export type SyncReconcileRequestTargetReleaseExtendUnion = + | SyncReconcileRequestTargetReleaseExtend + | string; -export type DataCollectionIssue54 = { - message: string; - reason: DataReason54; - severity: StatusSeverity54; - source: string; +export type SyncReconcileRequestTargetReleaseManagement1 = { + /** + * Permission profile that maps resources to permission sets + * + * @remarks + * Key can be "*" for all resources or resource name for specific resource + */ + extend: { + [k: string]: Array; + }; }; -export const DataHealth54 = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", -} as const; -export type DataHealth54 = ClosedEnum; - -export const StatusLifecycle54 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", -} as const; -export type StatusLifecycle54 = ClosedEnum; +/** + * Management permissions configuration for stack management access + */ +export type SyncReconcileRequestTargetReleaseManagementUnion = + | SyncReconcileRequestTargetReleaseManagement1 + | SyncReconcileRequestTargetReleaseManagement2 + | SyncReconcileRequestTargetReleaseManagementEnum; -export type ResourceHeartbeatStatus54 = { - collectionIssues: Array; - health: DataHealth54; - lifecycle: StatusLifecycle54; - message?: string | null | undefined; - partial: boolean; - stale: boolean; +/** + * AWS-specific binding specification + */ +export type TargetReleaseProfileStateAwResource = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; }; -export type DataAzureContainerRegistry = { - adminUserEnabled: boolean; - anonymousPullEnabled: boolean; - creationDate?: string | null | undefined; - dataEndpointEnabled?: boolean | null | undefined; - dataEndpointHostNames: Array; - encryptionKeyIdentifierPresent: boolean; - encryptionKeyVaultUriPresent: boolean; - encryptionStatus?: string | null | undefined; - ipRuleCount: number; - location: string; - loginServer?: string | null | undefined; - managedTagCount: number; - name: string; - networkRuleBypassOptions: string; - networkRuleDefaultAction?: string | null | undefined; - policiesPresent: boolean; - policyCount: number; - privateEndpointConnectionCount: number; - provisioningState?: string | null | undefined; - publicNetworkAccess: string; - resourceGroup: string; - resourceId?: string | null | undefined; - skuName: string; - skuTier?: string | null | undefined; - status: ResourceHeartbeatStatus54; - type?: string | null | undefined; - zoneRedundancy: string; - backend: "azureContainerRegistry"; +/** + * AWS-specific binding specification + */ +export type SyncReconcileRequestTargetReleaseProfileAwStack = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; }; -export const DataReason53 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", -} as const; -export type DataReason53 = ClosedEnum; - -export const StatusSeverity53 = { - Info: "info", - Warning: "warning", - Error: "error", -} as const; -export type StatusSeverity53 = ClosedEnum; - -export type DataCollectionIssue53 = { - message: string; - reason: DataReason53; - severity: StatusSeverity53; - source: string; +/** + * Generic binding configuration for permissions + */ +export type SyncReconcileRequestTargetReleaseProfileAwBinding = { + /** + * AWS-specific binding specification + */ + resource?: TargetReleaseProfileStateAwResource | undefined; + /** + * AWS-specific binding specification + */ + stack?: SyncReconcileRequestTargetReleaseProfileAwStack | undefined; }; -export const DataHealth53 = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", -} as const; -export type DataHealth53 = ClosedEnum; - -export const StatusLifecycle53 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", +/** + * IAM effect. Defaults to Allow. + */ +export const SyncReconcileRequestTargetReleaseProfileEffect = { + Allow: "Allow", + Deny: "Deny", } as const; -export type StatusLifecycle53 = ClosedEnum; +/** + * IAM effect. Defaults to Allow. + */ +export type SyncReconcileRequestTargetReleaseProfileEffect = ClosedEnum< + typeof SyncReconcileRequestTargetReleaseProfileEffect +>; -export type ResourceHeartbeatStatus53 = { - collectionIssues: Array; - health: DataHealth53; - lifecycle: StatusLifecycle53; - message?: string | null | undefined; - partial: boolean; - stale: boolean; +/** + * Grant permissions for a specific cloud platform + */ +export type SyncReconcileRequestTargetReleaseProfileAwGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; }; -export type DataGcpArtifactRegistry = { - cleanupPolicyCount: number; - cleanupPolicyDryRun?: boolean | null | undefined; - createTime?: string | null | undefined; +/** + * AWS-specific platform permission configuration + */ +export type SyncReconcileRequestTargetReleaseProfileAw = { + /** + * Generic binding configuration for permissions + */ + binding: SyncReconcileRequestTargetReleaseProfileAwBinding; + /** + * Short admin-facing description of why this entry exists. + */ description?: string | null | undefined; - format?: string | null | undefined; - iamBindingCount: number; - iamPolicyEtagPresent: boolean; - iamRoles: Array; - kmsKeyNamePresent: boolean; - labelCount: number; - location: string; - mode?: string | null | undefined; - name?: string | null | undefined; - projectId: string; - pullServiceAccountEmail?: string | null | undefined; - pushServiceAccountEmail?: string | null | undefined; - repositoryId: string; - satisfiesPzs?: boolean | null | undefined; - sizeBytes?: string | null | undefined; - status: ResourceHeartbeatStatus53; - updateTime?: string | null | undefined; - backend: "gcpArtifactRegistry"; + /** + * IAM effect. Defaults to Allow. + */ + effect?: SyncReconcileRequestTargetReleaseProfileEffect | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncReconcileRequestTargetReleaseProfileAwGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; }; -export type Repository = { - createdAt: number; - encryptionType?: string | null | undefined; - imageTagMutability?: string | null | undefined; - kmsKeyPresent: boolean; - registryId: string; - repositoryArn: string; - repositoryName: string; - repositoryUri: string; - scanOnPush?: boolean | null | undefined; +/** + * Azure-specific binding specification + */ +export type TargetReleaseProfileStateAzureResource = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; }; -export const DataReason52 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", -} as const; -export type DataReason52 = ClosedEnum; - -export const StatusSeverity52 = { - Info: "info", - Warning: "warning", - Error: "error", -} as const; -export type StatusSeverity52 = ClosedEnum; - -export type DataCollectionIssue52 = { - message: string; - reason: DataReason52; - severity: StatusSeverity52; - source: string; +/** + * Azure-specific binding specification + */ +export type SyncReconcileRequestTargetReleaseProfileAzureStack = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; }; -export const DataHealth52 = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", -} as const; -export type DataHealth52 = ClosedEnum; - -export const StatusLifecycle52 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", -} as const; -export type StatusLifecycle52 = ClosedEnum; - -export type ResourceHeartbeatStatus52 = { - collectionIssues: Array; - health: DataHealth52; - lifecycle: StatusLifecycle52; - message?: string | null | undefined; - partial: boolean; - stale: boolean; +/** + * Generic binding configuration for permissions + */ +export type SyncReconcileRequestTargetReleaseProfileAzureBinding = { + /** + * Azure-specific binding specification + */ + resource?: TargetReleaseProfileStateAzureResource | undefined; + /** + * Azure-specific binding specification + */ + stack?: SyncReconcileRequestTargetReleaseProfileAzureStack | undefined; }; -export type DataAwsEcr = { - pullRoleArn?: string | null | undefined; - pushRoleArn?: string | null | undefined; - region: string; - registryId: string; - registryUri: string; - repositories: Array; - repositoriesTruncated: boolean; - repositoryCount: number; - repositoryPrefix: string; - status: ResourceHeartbeatStatus52; - backend: "awsEcr"; +/** + * Grant permissions for a specific cloud platform + */ +export type SyncReconcileRequestTargetReleaseProfileAzureGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; }; -export type SyncReconcileRequestDataUnion13 = - | DataAwsEcr - | DataGcpArtifactRegistry - | DataAzureContainerRegistry - | DataLocal11; - -export type DataArtifactRegistry = { - data: - | DataAwsEcr - | DataGcpArtifactRegistry - | DataAzureContainerRegistry - | DataLocal11; - resourceType: "artifact-registry"; +/** + * Azure-specific platform permission configuration + */ +export type SyncReconcileRequestTargetReleaseProfileAzure = { + /** + * Generic binding configuration for permissions + */ + binding: SyncReconcileRequestTargetReleaseProfileAzureBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncReconcileRequestTargetReleaseProfileAzureGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; }; -export const DataReason51 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", -} as const; -export type DataReason51 = ClosedEnum; - -export const StatusSeverity51 = { - Info: "info", - Warning: "warning", - Error: "error", -} as const; -export type StatusSeverity51 = ClosedEnum; - -export type DataCollectionIssue51 = { - message: string; - reason: DataReason51; - severity: StatusSeverity51; - source: string; +/** + * GCP IAM condition + */ +export type TargetReleaseProfileConditionStateResource = { + expression: string; + title: string; }; -export const DataHealth51 = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", -} as const; -export type DataHealth51 = ClosedEnum; - -export const StatusLifecycle51 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", -} as const; -export type StatusLifecycle51 = ClosedEnum; +export type TargetReleaseProfileStateResourceConditionUnion = + | TargetReleaseProfileConditionStateResource + | any; -export type ResourceHeartbeatStatus51 = { - collectionIssues: Array; - health: DataHealth51; - lifecycle: StatusLifecycle51; - message?: string | null | undefined; - partial: boolean; - stale: boolean; +/** + * GCP-specific binding specification + */ +export type TargetReleaseProfileStateGcpResource = { + condition?: + | TargetReleaseProfileConditionStateResource + | any + | null + | undefined; + /** + * Scope (project/resource level) + */ + scope: string; }; -export type DataAzureManagedIdentity2 = { - ficName?: string | null | undefined; - roleAssignmentIds: Array; - roleDefinitionId?: string | null | undefined; - status: ResourceHeartbeatStatus51; - tenantId?: string | null | undefined; - uamiClientId?: string | null | undefined; - uamiPrincipalId?: string | null | undefined; - uamiResourceId?: string | null | undefined; - backend: "azureManagedIdentity"; +/** + * GCP IAM condition + */ +export type TargetReleaseProfileConditionState = { + expression: string; + title: string; }; -export const DataReason50 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", -} as const; -export type DataReason50 = ClosedEnum; - -export const StatusSeverity50 = { - Info: "info", - Warning: "warning", - Error: "error", -} as const; -export type StatusSeverity50 = ClosedEnum; +export type TargetReleaseProfileStateConditionUnion = + | TargetReleaseProfileConditionState + | any; -export type DataCollectionIssue50 = { - message: string; - reason: DataReason50; - severity: StatusSeverity50; - source: string; +/** + * GCP-specific binding specification + */ +export type SyncReconcileRequestTargetReleaseProfileGcpStack = { + condition?: TargetReleaseProfileConditionState | any | null | undefined; + /** + * Scope (project/resource level) + */ + scope: string; }; -export const DataHealth50 = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", -} as const; -export type DataHealth50 = ClosedEnum; - -export const StatusLifecycle50 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", -} as const; -export type StatusLifecycle50 = ClosedEnum; - -export type ResourceHeartbeatStatus50 = { - collectionIssues: Array; - health: DataHealth50; - lifecycle: StatusLifecycle50; - message?: string | null | undefined; - partial: boolean; - stale: boolean; +/** + * Generic binding configuration for permissions + */ +export type SyncReconcileRequestTargetReleaseProfileGcpBinding = { + /** + * GCP-specific binding specification + */ + resource?: TargetReleaseProfileStateGcpResource | undefined; + /** + * GCP-specific binding specification + */ + stack?: SyncReconcileRequestTargetReleaseProfileGcpStack | undefined; }; -export type DataGcpServiceAccount2 = { - impersonationGranted: boolean; - roleBound: boolean; - serviceAccountEmail?: string | null | undefined; - serviceAccountUniqueId?: string | null | undefined; - status: ResourceHeartbeatStatus50; - backend: "gcpServiceAccount"; +/** + * Grant permissions for a specific cloud platform + */ +export type SyncReconcileRequestTargetReleaseProfileGcpGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; }; -export const DataReason49 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", -} as const; -export type DataReason49 = ClosedEnum; - -export const StatusSeverity49 = { - Info: "info", - Warning: "warning", - Error: "error", -} as const; -export type StatusSeverity49 = ClosedEnum; - -export type DataCollectionIssue49 = { - message: string; - reason: DataReason49; - severity: StatusSeverity49; - source: string; +/** + * GCP-specific platform permission configuration + */ +export type SyncReconcileRequestTargetReleaseProfileGcp = { + /** + * Generic binding configuration for permissions + */ + binding: SyncReconcileRequestTargetReleaseProfileGcpBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncReconcileRequestTargetReleaseProfileGcpGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; }; -export const DataHealth49 = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", -} as const; -export type DataHealth49 = ClosedEnum; - -export const StatusLifecycle49 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", -} as const; -export type StatusLifecycle49 = ClosedEnum; - -export type ResourceHeartbeatStatus49 = { - collectionIssues: Array; - health: DataHealth49; - lifecycle: StatusLifecycle49; - message?: string | null | undefined; - partial: boolean; - stale: boolean; +/** + * Platform-specific permission configurations + */ +export type SyncReconcileRequestTargetReleaseProfilePlatforms = { + /** + * AWS permission configurations + */ + aws?: Array | null | undefined; + /** + * Azure permission configurations + */ + azure?: + | Array + | null + | undefined; + /** + * GCP permission configurations + */ + gcp?: Array | null | undefined; }; -export type DataAwsIamRole2 = { - managementPermissionsApplied: boolean; - roleArn?: string | null | undefined; - roleName?: string | null | undefined; - status: ResourceHeartbeatStatus49; - backend: "awsIamRole"; +/** + * A permission set that can be applied across different cloud platforms + */ +export type SyncReconcileRequestTargetReleaseProfile = { + /** + * Human-readable description of what this permission set allows + */ + description: string; + /** + * Unique identifier for the permission set (e.g., "storage/data-read") + */ + id: string; + /** + * Platform-specific permission configurations + */ + platforms: SyncReconcileRequestTargetReleaseProfilePlatforms; }; -export type SyncReconcileRequestDataUnion12 = - | DataAwsIamRole2 - | DataGcpServiceAccount2 - | DataAzureManagedIdentity2; +/** + * Reference to a permission set - either by name or inline definition + */ +export type SyncReconcileRequestTargetReleaseProfileUnion = + | SyncReconcileRequestTargetReleaseProfile + | string; -export type DataRemoteStackManagement = { - data: DataAwsIamRole2 | DataGcpServiceAccount2 | DataAzureManagedIdentity2; - resourceType: "remote-stack-management"; +/** + * Combined permissions configuration that contains both profiles and management + */ +export type SyncReconcileRequestTargetReleasePermissions = { + /** + * Management permissions configuration for stack management access + */ + management?: + | SyncReconcileRequestTargetReleaseManagement1 + | SyncReconcileRequestTargetReleaseManagement2 + | SyncReconcileRequestTargetReleaseManagementEnum + | undefined; + /** + * Permission profiles that define access control for compute services + * + * @remarks + * Key is the profile name, value is the permission configuration + */ + profiles: { + [k: string]: { + [k: string]: Array; + }; + }; }; -export const DataReason48 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", -} as const; -export type DataReason48 = ClosedEnum; - -export const StatusSeverity48 = { - Info: "info", - Warning: "warning", - Error: "error", -} as const; -export type StatusSeverity48 = ClosedEnum; +/** + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + */ +export type SyncReconcileRequestTargetReleaseConfig = { + /** + * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. + */ + id: string; + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + type: string; + additionalProperties?: { [k: string]: any | null } | undefined; +}; -export type DataCollectionIssue48 = { - message: string; - reason: DataReason48; - severity: StatusSeverity48; - source: string; +/** + * Reference to a resource by its stable id and resource type. + */ +export type SyncReconcileRequestTargetReleaseDependency = { + id: string; + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + type: string; }; -export const DataHealth48 = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", +/** + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ +export const TargetReleaseStateLifecycle = { + Frozen: "frozen", + Live: "live", } as const; -export type DataHealth48 = ClosedEnum; +/** + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ +export type TargetReleaseStateLifecycle = ClosedEnum< + typeof TargetReleaseStateLifecycle +>; -export const StatusLifecycle48 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", +export type SyncReconcileRequestTargetReleaseResources = { + /** + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + */ + config: SyncReconcileRequestTargetReleaseConfig; + /** + * Additional dependencies for this resource beyond those defined in the resource itself. + * + * @remarks + * The total dependencies are: resource.get_dependencies() + this list + */ + dependencies: Array; + /** + * Id of the boolean stack input that decides whether this resource is + * + * @remarks + * created at all. `None` means always create it. + * + * Set by `.enabled(input)` in the SDK. Setup emitters render the resource + * conditionally on the matching template variable, so a deployer who says no + * never gets the resource, its outputs, or anything derived from it. + */ + enabledWhen?: string | null | undefined; + /** + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ + lifecycle: TargetReleaseStateLifecycle; + /** + * Enable remote bindings for this resource (BYOB use case). + * + * @remarks + * When true, binding params are synced to StackState's `remote_binding_params`. + * Default: false (prevents sensitive data in synced state). + */ + remoteAccess?: boolean | undefined; +}; + +/** + * Represents the target cloud platform. + */ +export const SyncReconcileRequestTargetReleaseSupportedPlatform = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", } as const; -export type StatusLifecycle48 = ClosedEnum; +/** + * Represents the target cloud platform. + */ +export type SyncReconcileRequestTargetReleaseSupportedPlatform = ClosedEnum< + typeof SyncReconcileRequestTargetReleaseSupportedPlatform +>; -export type ResourceHeartbeatStatus48 = { - collectionIssues: Array; - health: DataHealth48; - lifecycle: StatusLifecycle48; - message?: string | null | undefined; - partial: boolean; - stale: boolean; +/** + * A bag of resources, unaware of any cloud. + */ +export type SyncReconcileRequestTargetReleaseStack = { + /** + * Unique identifier for the stack + */ + id: string; + /** + * Input definitions required before setup or deployment can proceed. + */ + inputs?: Array | undefined; + /** + * Combined permissions configuration that contains both profiles and management + */ + permissions?: SyncReconcileRequestTargetReleasePermissions | undefined; + /** + * Map of resource IDs to their configurations and lifecycle settings + */ + resources: { [k: string]: SyncReconcileRequestTargetReleaseResources }; + /** + * Which platforms this stack supports. When None, all platforms are supported. + */ + supportedPlatforms?: + | Array + | null + | undefined; }; -export type DataAzureVnet = { - applicationGatewaySubnetName?: string | null | undefined; - cidrBlock?: string | null | undefined; - isByoVnet: boolean; - lastByoVnetVerificationErrorCode?: string | null | undefined; - location?: string | null | undefined; - natGatewayId?: string | null | undefined; - nsgId?: string | null | undefined; - privateEndpointSubnetName?: string | null | undefined; - privateSubnetName?: string | null | undefined; - publicIpId?: string | null | undefined; - publicSubnetName?: string | null | undefined; - resourceGroup?: string | null | undefined; - status: ResourceHeartbeatStatus48; - vnetName?: string | null | undefined; - vnetResourceId?: string | null | undefined; - backend: "azureVnet"; +/** + * Release metadata + * + * @remarks + * + * Identifies a specific release version and includes the stack definition. + * The deployment engine uses this to track which release is currently deployed + * and which is the target. + */ +export type SyncReconcileRequestTargetRelease = { + /** + * Short description of the release + */ + description?: string | null | undefined; + /** + * Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no + * + * @remarks + * Alien-assigned release — the platform resolves a release from `version`. + */ + releaseId?: string | null | undefined; + /** + * A bag of resources, unaware of any cloud. + */ + stack: SyncReconcileRequestTargetReleaseStack; + /** + * Version string (e.g., 2.1.0) + */ + version?: string | null | undefined; }; -export const DataReason47 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", -} as const; -export type DataReason47 = ClosedEnum; +export type SyncReconcileRequestTargetReleaseUnion = + | SyncReconcileRequestTargetRelease + | any; -export const StatusSeverity47 = { - Info: "info", - Warning: "warning", - Error: "error", +/** + * Complete deployment state after step() execution + */ +export type SyncReconcileRequestState = { + currentRelease?: SyncReconcileRequestCurrentRelease | any | null | undefined; + environmentInfo?: + | SyncReconcileRequestEnvironmentInfoGcp + | SyncReconcileRequestEnvironmentInfoAzure + | SyncReconcileRequestEnvironmentInfoLocal + | SyncReconcileRequestEnvironmentInfoAws + | SyncReconcileRequestEnvironmentInfoTest + | any + | null + | undefined; + error?: SyncReconcileRequestError | any | null | undefined; + /** + * Represents the target cloud platform. + */ + platform: SyncReconcileRequestPlatform; + /** + * Protocol version for cross-actor compatibility. + * + * @remarks + * All actors (manager, push client, agent) check this before stepping. + * Mismatched versions produce a clear error instead of silent corruption. + * See docs/02-manager/10-deployment-protocol.md. + */ + protocolVersion: number; + /** + * Whether a retry has been requested for a failed deployment + * + * @remarks + * When true and status is a failed state, the deployment system will retry failed resources + */ + retryRequested?: boolean | undefined; + runtimeMetadata?: + | SyncReconcileRequestRuntimeMetadata + | any + | null + | undefined; + stackState?: SyncReconcileRequestStackState | any | null | undefined; + /** + * Deployment status in the deployment lifecycle. + * + * @remarks + * + * For observe-only deployments with no release or stack state, `Running` + * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; + * resource health comes from inventory and resource heartbeat data. + */ + status: StateStatus; + targetRelease?: SyncReconcileRequestTargetRelease | any | null | undefined; +}; + +export const ResourceHeartbeatBackendEnum = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Local: "local", + Managed: "managed", + External: "external", + Test: "test", } as const; -export type StatusSeverity47 = ClosedEnum; +export type ResourceHeartbeatBackendEnum = ClosedEnum< + typeof ResourceHeartbeatBackendEnum +>; -export type DataCollectionIssue47 = { - message: string; - reason: DataReason47; - severity: StatusSeverity47; - source: string; -}; +/** + * Represents the target cloud platform. + */ +export const ResourceHeartbeatControllerPlatform = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", +} as const; +/** + * Represents the target cloud platform. + */ +export type ResourceHeartbeatControllerPlatform = ClosedEnum< + typeof ResourceHeartbeatControllerPlatform +>; -export const DataHealth47 = { +export const DataHealth72 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth47 = ClosedEnum; +export type DataHealth72 = ClosedEnum; -export const StatusLifecycle47 = { +export const StatusLifecycle72 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -6660,64 +6886,79 @@ export const StatusLifecycle47 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle47 = ClosedEnum; +export type StatusLifecycle72 = ClosedEnum; -export type ResourceHeartbeatStatus47 = { - collectionIssues: Array; - health: DataHealth47; - lifecycle: StatusLifecycle47; +export type ResourceHeartbeatStatus72 = { + health: DataHealth72; + lifecycle: StatusLifecycle72; message?: string | null | undefined; - partial: boolean; - stale: boolean; }; -export type DataGcpVpc = { - cidrBlock?: string | null | undefined; - cloudNatName?: string | null | undefined; - firewallName?: string | null | undefined; - isByoVpc: boolean; - networkName?: string | null | undefined; - networkSelfLink?: string | null | undefined; - region?: string | null | undefined; - routerName?: string | null | undefined; - status: ResourceHeartbeatStatus47; - subnetworkName?: string | null | undefined; - subnetworkSelfLink?: string | null | undefined; - backend: "gcpVpc"; +export type SyncReconcileRequestData8 = { + enabled?: boolean | null | undefined; + keyId: string; + keyOperations: Array; + keyType: string; + recoveryLevel?: string | null | undefined; + status: ResourceHeartbeatStatus72; }; -export const DataReason46 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", +export type DataAzureKeyVault2 = { + data: SyncReconcileRequestData8; + provider: "azure-key-vault"; +}; + +export const DataHealth71 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", } as const; -export type DataReason46 = ClosedEnum; +export type DataHealth71 = ClosedEnum; -export const StatusSeverity46 = { - Info: "info", - Warning: "warning", - Error: "error", +export const StatusLifecycle71 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", } as const; -export type StatusSeverity46 = ClosedEnum; +export type StatusLifecycle71 = ClosedEnum; -export type DataCollectionIssue46 = { - message: string; - reason: DataReason46; - severity: StatusSeverity46; - source: string; +export type ResourceHeartbeatStatus71 = { + health: DataHealth71; + lifecycle: StatusLifecycle71; + message?: string | null | undefined; }; -export const DataHealth46 = { +export type SyncReconcileRequestData7 = { + algorithm?: string | null | undefined; + cryptoKeyName: string; + primaryState?: string | null | undefined; + primaryVersion?: string | null | undefined; + purpose: string; + status: ResourceHeartbeatStatus71; +}; + +export type DataGcpCloudKms = { + data: SyncReconcileRequestData7; + provider: "gcp-cloud-kms"; +}; + +export const DataHealth70 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth46 = ClosedEnum; +export type DataHealth70 = ClosedEnum; -export const StatusLifecycle46 = { +export const StatusLifecycle70 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -6729,75 +6970,154 @@ export const StatusLifecycle46 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle46 = ClosedEnum; +export type StatusLifecycle70 = ClosedEnum; -export type ResourceHeartbeatStatus46 = { - collectionIssues: Array; - health: DataHealth46; - lifecycle: StatusLifecycle46; +export type ResourceHeartbeatStatus70 = { + health: DataHealth70; + lifecycle: StatusLifecycle70; message?: string | null | undefined; - partial: boolean; - stale: boolean; }; -export type DataAwsVpc = { - availabilityZones: Array; - cidrBlock?: string | null | undefined; - internetGatewayId?: string | null | undefined; - isByoVpc: boolean; - natGatewayId?: string | null | undefined; - privateSubnetIds: Array; - publicSubnetIds: Array; - routeTableCount: number; - securityGroupId?: string | null | undefined; - status: ResourceHeartbeatStatus46; - vpcId?: string | null | undefined; - vpcState?: string | null | undefined; - backend: "awsVpc"; +export type SyncReconcileRequestData6 = { + enabled: boolean; + keyArn: string; + keySpec: string; + keyState: string; + keyUsage: string; + status: ResourceHeartbeatStatus70; }; -export type SyncReconcileRequestDataUnion11 = - | DataAwsVpc - | DataGcpVpc - | DataAzureVnet; +export type DataAwsKms = { + data: SyncReconcileRequestData6; + provider: "aws-kms"; +}; -export type DataNetwork = { - data: DataAwsVpc | DataGcpVpc | DataAzureVnet; - resourceType: "network"; +export type SyncReconcileRequestDataUnion17 = + | DataAwsKms + | DataGcpCloudKms + | DataAzureKeyVault2; + +export type DataKey = { + data: DataAwsKms | DataGcpCloudKms | DataAzureKeyVault2; + resourceType: "key"; }; -export const DataReason45 = { +export const AccessTest4 = { + Verified: "verified", + Failed: "failed", + NotChecked: "not-checked", +} as const; +export type AccessTest4 = ClosedEnum; + +export const AvailabilityEnum4 = { + Available: "available", + Blocked: "blocked", + Unknown: "unknown", +} as const; +export type AvailabilityEnum4 = ClosedEnum; + +export const BlockerEnum4 = { + AgreementRequired: "agreement-required", + EntitlementRequired: "entitlement-required", + ModelActivationRequired: "model-activation-required", + DeploymentRequired: "deployment-required", + QuotaConfigurationRequired: "quota-configuration-required", + RegionUnavailable: "region-unavailable", + AccessDenied: "access-denied", + ObservationFailed: "observation-failed", +} as const; +export type BlockerEnum4 = ClosedEnum; + +/** + * A public API accepted from an application client. + */ +export const ClientApi4 = { + OpenAiChatCompletions: "open-ai-chat-completions", + OpenAiResponses: "open-ai-responses", + AnthropicMessages: "anthropic-messages", +} as const; +/** + * A public API accepted from an application client. + */ +export type ClientApi4 = ClosedEnum; + +export type Model4 = { + accessTest: AccessTest4; + availability: AvailabilityEnum4; + blockers: Array; + clientApis: Array; + errorCode?: string | null | undefined; + publicModelId: string; + testedAt?: Date | null | undefined; +}; + +/** + * Provider control plane used to observe model availability without invoking + * + * @remarks + * a model, spending customer quota, or accepting provider terms. + */ +export const AvailabilitySource4 = { + AwsBedrock: "aws-bedrock", + GcpVertex: "gcp-vertex", + AzureFoundry: "azure-foundry", + Anthropic: "anthropic", +} as const; +/** + * Provider control plane used to observe model availability without invoking + * + * @remarks + * a model, spending customer quota, or accepting provider terms. + */ +export type AvailabilitySource4 = ClosedEnum; + +export type Availability4 = { + catalogRevision: string; + location?: string | null | undefined; + models: Array; + /** + * Provider control plane used to observe model availability without invoking + * + * @remarks + * a model, spending customer quota, or accepting provider terms. + */ + source: AvailabilitySource4; +}; + +export type AvailabilityUnion = Availability4 | any; + +export const DataReason69 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason45 = ClosedEnum; +export type DataReason69 = ClosedEnum; -export const StatusSeverity45 = { +export const StatusSeverity69 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity45 = ClosedEnum; +export type StatusSeverity69 = ClosedEnum; -export type DataCollectionIssue45 = { +export type DataCollectionIssue69 = { message: string; - reason: DataReason45; - severity: StatusSeverity45; + reason: DataReason69; + severity: StatusSeverity69; source: string; }; -export const DataHealth45 = { +export const DataHealth69 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth45 = ClosedEnum; +export type DataHealth69 = ClosedEnum; -export const StatusLifecycle45 = { +export const StatusLifecycle69 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -6809,56 +7129,144 @@ export const StatusLifecycle45 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle45 = ClosedEnum; +export type StatusLifecycle69 = ClosedEnum; -export type ResourceHeartbeatStatus45 = { - collectionIssues: Array; - health: DataHealth45; - lifecycle: StatusLifecycle45; +export type ResourceHeartbeatStatus69 = { + collectionIssues: Array; + health: DataHealth69; + lifecycle: StatusLifecycle69; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataLocal10 = { - configured: boolean; - identity: string; - status: ResourceHeartbeatStatus45; - backend: "local"; +export type DataExternal = { + availability?: Availability4 | any | null | undefined; + /** + * The BYO-key provider serving this binding (e.g. "openai"). Used on the Local + * + * @remarks + * platform, where the app brings its own provider key instead of an ambient cloud. + */ + provider: string; + status: ResourceHeartbeatStatus69; + backend: "external"; }; -export const DataReason44 = { +export const AccessTest3 = { + Verified: "verified", + Failed: "failed", + NotChecked: "not-checked", +} as const; +export type AccessTest3 = ClosedEnum; + +export const AvailabilityEnum3 = { + Available: "available", + Blocked: "blocked", + Unknown: "unknown", +} as const; +export type AvailabilityEnum3 = ClosedEnum; + +export const BlockerEnum3 = { + AgreementRequired: "agreement-required", + EntitlementRequired: "entitlement-required", + ModelActivationRequired: "model-activation-required", + DeploymentRequired: "deployment-required", + QuotaConfigurationRequired: "quota-configuration-required", + RegionUnavailable: "region-unavailable", + AccessDenied: "access-denied", + ObservationFailed: "observation-failed", +} as const; +export type BlockerEnum3 = ClosedEnum; + +/** + * A public API accepted from an application client. + */ +export const ClientApi3 = { + OpenAiChatCompletions: "open-ai-chat-completions", + OpenAiResponses: "open-ai-responses", + AnthropicMessages: "anthropic-messages", +} as const; +/** + * A public API accepted from an application client. + */ +export type ClientApi3 = ClosedEnum; + +export type Model3 = { + accessTest: AccessTest3; + availability: AvailabilityEnum3; + blockers: Array; + clientApis: Array; + errorCode?: string | null | undefined; + publicModelId: string; + testedAt?: Date | null | undefined; +}; + +/** + * Provider control plane used to observe model availability without invoking + * + * @remarks + * a model, spending customer quota, or accepting provider terms. + */ +export const AvailabilitySource3 = { + AwsBedrock: "aws-bedrock", + GcpVertex: "gcp-vertex", + AzureFoundry: "azure-foundry", + Anthropic: "anthropic", +} as const; +/** + * Provider control plane used to observe model availability without invoking + * + * @remarks + * a model, spending customer quota, or accepting provider terms. + */ +export type AvailabilitySource3 = ClosedEnum; + +export type Availability3 = { + catalogRevision: string; + location?: string | null | undefined; + models: Array; + /** + * Provider control plane used to observe model availability without invoking + * + * @remarks + * a model, spending customer quota, or accepting provider terms. + */ + source: AvailabilitySource3; +}; + +export const DataReason68 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason44 = ClosedEnum; +export type DataReason68 = ClosedEnum; -export const StatusSeverity44 = { +export const StatusSeverity68 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity44 = ClosedEnum; +export type StatusSeverity68 = ClosedEnum; -export type DataCollectionIssue44 = { +export type DataCollectionIssue68 = { message: string; - reason: DataReason44; - severity: StatusSeverity44; + reason: DataReason68; + severity: StatusSeverity68; source: string; }; -export const DataHealth44 = { +export const DataHealth68 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth44 = ClosedEnum; +export type DataHealth68 = ClosedEnum; -export const StatusLifecycle44 = { +export const StatusLifecycle68 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -6870,69 +7278,141 @@ export const StatusLifecycle44 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle44 = ClosedEnum; +export type StatusLifecycle68 = ClosedEnum; -export type ResourceHeartbeatStatus44 = { - collectionIssues: Array; - health: DataHealth44; - lifecycle: StatusLifecycle44; +export type ResourceHeartbeatStatus68 = { + collectionIssues: Array; + health: DataHealth68; + lifecycle: StatusLifecycle68; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAzureManagedIdentity1 = { - clientId?: string | null | undefined; - customRoleDefinitionCount: number; - customRoleDefinitionIds: Array; - isolationScope?: string | null | undefined; - location: string; - managedTagCount: number; - name: string; - principalId?: string | null | undefined; - resourceGroup: string; - resourceId: string; - roleAssignmentCount: number; - roleAssignmentIds: Array; - stackPermissionsApplied: boolean; - status: ResourceHeartbeatStatus44; - tenantId?: string | null | undefined; - type?: string | null | undefined; - backend: "azureManagedIdentity"; +export type DataAzureFoundry = { + accountName: string; + availability: Availability3; + endpoint?: string | null | undefined; + location?: string | null | undefined; + resourceGroup?: string | null | undefined; + status: ResourceHeartbeatStatus68; + backend: "azureFoundry"; }; -export const DataReason43 = { +export const AccessTest2 = { + Verified: "verified", + Failed: "failed", + NotChecked: "not-checked", +} as const; +export type AccessTest2 = ClosedEnum; + +export const AvailabilityEnum2 = { + Available: "available", + Blocked: "blocked", + Unknown: "unknown", +} as const; +export type AvailabilityEnum2 = ClosedEnum; + +export const BlockerEnum2 = { + AgreementRequired: "agreement-required", + EntitlementRequired: "entitlement-required", + ModelActivationRequired: "model-activation-required", + DeploymentRequired: "deployment-required", + QuotaConfigurationRequired: "quota-configuration-required", + RegionUnavailable: "region-unavailable", + AccessDenied: "access-denied", + ObservationFailed: "observation-failed", +} as const; +export type BlockerEnum2 = ClosedEnum; + +/** + * A public API accepted from an application client. + */ +export const ClientApi2 = { + OpenAiChatCompletions: "open-ai-chat-completions", + OpenAiResponses: "open-ai-responses", + AnthropicMessages: "anthropic-messages", +} as const; +/** + * A public API accepted from an application client. + */ +export type ClientApi2 = ClosedEnum; + +export type Model2 = { + accessTest: AccessTest2; + availability: AvailabilityEnum2; + blockers: Array; + clientApis: Array; + errorCode?: string | null | undefined; + publicModelId: string; + testedAt?: Date | null | undefined; +}; + +/** + * Provider control plane used to observe model availability without invoking + * + * @remarks + * a model, spending customer quota, or accepting provider terms. + */ +export const AvailabilitySource2 = { + AwsBedrock: "aws-bedrock", + GcpVertex: "gcp-vertex", + AzureFoundry: "azure-foundry", + Anthropic: "anthropic", +} as const; +/** + * Provider control plane used to observe model availability without invoking + * + * @remarks + * a model, spending customer quota, or accepting provider terms. + */ +export type AvailabilitySource2 = ClosedEnum; + +export type Availability2 = { + catalogRevision: string; + location?: string | null | undefined; + models: Array; + /** + * Provider control plane used to observe model availability without invoking + * + * @remarks + * a model, spending customer quota, or accepting provider terms. + */ + source: AvailabilitySource2; +}; + +export const DataReason67 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason43 = ClosedEnum; +export type DataReason67 = ClosedEnum; -export const StatusSeverity43 = { +export const StatusSeverity67 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity43 = ClosedEnum; +export type StatusSeverity67 = ClosedEnum; -export type DataCollectionIssue43 = { +export type DataCollectionIssue67 = { message: string; - reason: DataReason43; - severity: StatusSeverity43; + reason: DataReason67; + severity: StatusSeverity67; source: string; }; -export const DataHealth43 = { +export const DataHealth67 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth43 = ClosedEnum; +export type DataHealth67 = ClosedEnum; -export const StatusLifecycle43 = { +export const StatusLifecycle67 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -6944,160 +7424,139 @@ export const StatusLifecycle43 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle43 = ClosedEnum; +export type StatusLifecycle67 = ClosedEnum; -export type ResourceHeartbeatStatus43 = { - collectionIssues: Array; - health: DataHealth43; - lifecycle: StatusLifecycle43; +export type ResourceHeartbeatStatus67 = { + collectionIssues: Array; + health: DataHealth67; + lifecycle: StatusLifecycle67; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataGcpServiceAccount1 = { - description?: string | null | undefined; - disabled?: boolean | null | undefined; - displayName?: string | null | undefined; - email: string; - etag?: string | null | undefined; - name?: string | null | undefined; - oauth2ClientId?: string | null | undefined; - projectBindingCount: number; - projectId?: string | null | undefined; - projectRoles: Array; - serviceAccountBindingCount: number; - serviceAccountRoles: Array; - status: ResourceHeartbeatStatus43; - uniqueId?: string | null | undefined; - backend: "gcpServiceAccount"; +export type DataGcpVertex = { + availability: Availability2; + location: string; + project: string; + status: ResourceHeartbeatStatus67; + backend: "gcpVertex"; }; -export const DataReason42 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", -} as const; -export type DataReason42 = ClosedEnum; - -export const StatusSeverity42 = { - Info: "info", - Warning: "warning", - Error: "error", +export const AccessTest1 = { + Verified: "verified", + Failed: "failed", + NotChecked: "not-checked", } as const; -export type StatusSeverity42 = ClosedEnum; - -export type DataCollectionIssue42 = { - message: string; - reason: DataReason42; - severity: StatusSeverity42; - source: string; -}; +export type AccessTest1 = ClosedEnum; -export const DataHealth42 = { +export const AvailabilityEnum1 = { + Available: "available", + Blocked: "blocked", Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", } as const; -export type DataHealth42 = ClosedEnum; +export type AvailabilityEnum1 = ClosedEnum; -export const StatusLifecycle42 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", +export const BlockerEnum1 = { + AgreementRequired: "agreement-required", + EntitlementRequired: "entitlement-required", + ModelActivationRequired: "model-activation-required", + DeploymentRequired: "deployment-required", + QuotaConfigurationRequired: "quota-configuration-required", + RegionUnavailable: "region-unavailable", + AccessDenied: "access-denied", + ObservationFailed: "observation-failed", } as const; -export type StatusLifecycle42 = ClosedEnum; +export type BlockerEnum1 = ClosedEnum; -export type ResourceHeartbeatStatus42 = { - collectionIssues: Array; - health: DataHealth42; - lifecycle: StatusLifecycle42; - message?: string | null | undefined; - partial: boolean; - stale: boolean; -}; +/** + * A public API accepted from an application client. + */ +export const ClientApi1 = { + OpenAiChatCompletions: "open-ai-chat-completions", + OpenAiResponses: "open-ai-responses", + AnthropicMessages: "anthropic-messages", +} as const; +/** + * A public API accepted from an application client. + */ +export type ClientApi1 = ClosedEnum; -export type DataAwsIamRole1 = { - assumeRolePolicyPresent: boolean; - attachedPolicyCount: number; - attachedPolicyNames: Array; - createDate: string; - description?: string | null | undefined; - inlinePolicyCount: number; - inlinePolicyNames: Array; - lastUsedDate?: string | null | undefined; - lastUsedRegion?: string | null | undefined; - managedTagCount: number; - maxSessionDuration?: number | null | undefined; - path: string; - permissionsBoundaryArn?: string | null | undefined; - permissionsBoundaryType?: string | null | undefined; - roleArn: string; - roleId: string; - roleName: string; - stackPermissionsApplied: boolean; - status: ResourceHeartbeatStatus42; - tagCount: number; - backend: "awsIamRole"; +export type Model1 = { + accessTest: AccessTest1; + availability: AvailabilityEnum1; + blockers: Array; + clientApis: Array; + errorCode?: string | null | undefined; + publicModelId: string; + testedAt?: Date | null | undefined; }; -export type SyncReconcileRequestDataUnion10 = - | DataAwsIamRole1 - | DataGcpServiceAccount1 - | DataAzureManagedIdentity1 - | DataLocal10; +/** + * Provider control plane used to observe model availability without invoking + * + * @remarks + * a model, spending customer quota, or accepting provider terms. + */ +export const AvailabilitySource1 = { + AwsBedrock: "aws-bedrock", + GcpVertex: "gcp-vertex", + AzureFoundry: "azure-foundry", + Anthropic: "anthropic", +} as const; +/** + * Provider control plane used to observe model availability without invoking + * + * @remarks + * a model, spending customer quota, or accepting provider terms. + */ +export type AvailabilitySource1 = ClosedEnum; -export type DataServiceAccount = { - data: - | DataAwsIamRole1 - | DataGcpServiceAccount1 - | DataAzureManagedIdentity1 - | DataLocal10; - resourceType: "service-account"; +export type Availability1 = { + catalogRevision: string; + location?: string | null | undefined; + models: Array; + /** + * Provider control plane used to observe model availability without invoking + * + * @remarks + * a model, spending customer quota, or accepting provider terms. + */ + source: AvailabilitySource1; }; -export const DataReason41 = { +export const DataReason66 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason41 = ClosedEnum; +export type DataReason66 = ClosedEnum; -export const StatusSeverity41 = { +export const StatusSeverity66 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity41 = ClosedEnum; +export type StatusSeverity66 = ClosedEnum; -export type DataCollectionIssue41 = { +export type DataCollectionIssue66 = { message: string; - reason: DataReason41; - severity: StatusSeverity41; + reason: DataReason66; + severity: StatusSeverity66; source: string; }; -export const DataHealth41 = { +export const DataHealth66 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth41 = ClosedEnum; +export type DataHealth66 = ClosedEnum; -export const StatusLifecycle41 = { +export const StatusLifecycle66 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -7109,60 +7568,67 @@ export const StatusLifecycle41 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle41 = ClosedEnum; +export type StatusLifecycle66 = ClosedEnum; -export type ResourceHeartbeatStatus41 = { - collectionIssues: Array; - health: DataHealth41; - lifecycle: StatusLifecycle41; +export type ResourceHeartbeatStatus66 = { + collectionIssues: Array; + health: DataHealth66; + lifecycle: StatusLifecycle66; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataLocal9 = { - isDirectory?: boolean | null | undefined; - modifiedAt?: Date | null | undefined; - path: string; - pathExists: boolean; - readonly?: boolean | null | undefined; - secretMetadataListed: boolean; - status: ResourceHeartbeatStatus41; - backend: "local"; +export type DataAwsBedrock = { + availability: Availability1; + region: string; + status: ResourceHeartbeatStatus66; + backend: "awsBedrock"; }; -export const DataReason40 = { +export type SyncReconcileRequestDataUnion16 = + | DataAwsBedrock + | DataGcpVertex + | DataAzureFoundry + | DataExternal; + +export type DataAi = { + data: DataAwsBedrock | DataGcpVertex | DataAzureFoundry | DataExternal; + resourceType: "ai"; +}; + +export const DataReason65 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason40 = ClosedEnum; +export type DataReason65 = ClosedEnum; -export const StatusSeverity40 = { +export const StatusSeverity65 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity40 = ClosedEnum; +export type StatusSeverity65 = ClosedEnum; -export type DataCollectionIssue40 = { +export type DataCollectionIssue65 = { message: string; - reason: DataReason40; - severity: StatusSeverity40; + reason: DataReason65; + severity: StatusSeverity65; source: string; }; -export const DataHealth40 = { +export const DataHealth65 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth40 = ClosedEnum; +export type DataHealth65 = ClosedEnum; -export const StatusLifecycle40 = { +export const StatusLifecycle65 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -7174,57 +7640,77 @@ export const StatusLifecycle40 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle40 = ClosedEnum; +export type StatusLifecycle65 = ClosedEnum; -export type ResourceHeartbeatStatus40 = { - collectionIssues: Array; - health: DataHealth40; - lifecycle: StatusLifecycle40; +export type ResourceHeartbeatStatus65 = { + collectionIssues: Array; + health: DataHealth65; + lifecycle: StatusLifecycle65; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataKubernetesSecret = { - namespace: string; - prefix: string; - secretMetadataListed: boolean; - status: ResourceHeartbeatStatus40; - backend: "kubernetesSecret"; +export type SyncReconcileRequestData5 = { + createdAt?: string | null | undefined; + disableLocalAuth?: boolean | null | undefined; + location?: string | null | undefined; + metricId?: string | null | undefined; + minimumTlsVersion?: string | null | undefined; + name: string; + namespaceStatus?: string | null | undefined; + premiumMessagingPartitions?: number | null | undefined; + privateEndpointConnectionCount: number; + provisioningState?: string | null | undefined; + publicNetworkAccess?: string | null | undefined; + resourceGroup?: string | null | undefined; + resourceId?: string | null | undefined; + serviceBusEndpoint?: string | null | undefined; + skuCapacity?: number | null | undefined; + skuName?: string | null | undefined; + skuTier?: string | null | undefined; + status: ResourceHeartbeatStatus65; + updatedAt?: string | null | undefined; + zoneRedundant?: boolean | null | undefined; }; -export const DataReason39 = { +export type DataAzureServiceBusNamespace = { + data: SyncReconcileRequestData5; + resourceType: "azure_service_bus_namespace"; +}; + +export const DataReason64 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason39 = ClosedEnum; +export type DataReason64 = ClosedEnum; -export const StatusSeverity39 = { +export const StatusSeverity64 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity39 = ClosedEnum; +export type StatusSeverity64 = ClosedEnum; -export type DataCollectionIssue39 = { +export type DataCollectionIssue64 = { message: string; - reason: DataReason39; - severity: StatusSeverity39; + reason: DataReason64; + severity: StatusSeverity64; source: string; }; -export const DataHealth39 = { +export const DataHealth64 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth39 = ClosedEnum; +export type DataHealth64 = ClosedEnum; -export const StatusLifecycle39 = { +export const StatusLifecycle64 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -7236,70 +7722,97 @@ export const StatusLifecycle39 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle39 = ClosedEnum; +export type StatusLifecycle64 = ClosedEnum; -export type ResourceHeartbeatStatus39 = { - collectionIssues: Array; - health: DataHealth39; - lifecycle: StatusLifecycle39; +export type ResourceHeartbeatStatus64 = { + collectionIssues: Array; + health: DataHealth64; + lifecycle: StatusLifecycle64; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAzureKeyVault = { - accessPolicyCount: number; +export type WorkloadProfile = { + maximumCount?: number | null | undefined; + minimumCount?: number | null | undefined; + name: string; + workloadProfileType: string; +}; + +export type SyncReconcileRequestData4 = { + customDomainVerificationId?: string | null | undefined; + defaultDomain?: string | null | undefined; + eventStreamEndpoint?: string | null | undefined; + infrastructureResourceGroup?: string | null | undefined; + kind?: string | null | undefined; location?: string | null | undefined; name: string; - privateEndpointConnectionCount: number; provisioningState?: string | null | undefined; - publicNetworkAccess: string; - purgeProtectionEnabled?: boolean | null | undefined; - rbacAuthorizationEnabled: boolean; resourceGroup?: string | null | undefined; resourceId?: string | null | undefined; - secretMetadataListed: boolean; - skuFamily?: string | null | undefined; - skuName?: string | null | undefined; - softDeleteEnabled: boolean; - softDeleteRetentionDays: number; - status: ResourceHeartbeatStatus39; - vaultUri?: string | null | undefined; - backend: "azureKeyVault"; + staticIp?: string | null | undefined; + status: ResourceHeartbeatStatus64; + workloadProfileCount: number; + workloadProfiles: Array; + zoneRedundant?: boolean | null | undefined; }; -export const DataReason38 = { +export type DataAzureContainerAppsEnvironment = { + data: SyncReconcileRequestData4; + resourceType: "azure_container_apps_environment"; +}; + +export type PrimaryEndpoints = { + blob?: string | null | undefined; + dfs?: string | null | undefined; + file?: string | null | undefined; + queue?: string | null | undefined; + table?: string | null | undefined; + web?: string | null | undefined; +}; + +export type SecondaryEndpoints = { + blob?: string | null | undefined; + dfs?: string | null | undefined; + file?: string | null | undefined; + queue?: string | null | undefined; + table?: string | null | undefined; + web?: string | null | undefined; +}; + +export const DataReason63 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason38 = ClosedEnum; +export type DataReason63 = ClosedEnum; -export const StatusSeverity38 = { +export const StatusSeverity63 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity38 = ClosedEnum; +export type StatusSeverity63 = ClosedEnum; -export type DataCollectionIssue38 = { +export type DataCollectionIssue63 = { message: string; - reason: DataReason38; - severity: StatusSeverity38; + reason: DataReason63; + severity: StatusSeverity63; source: string; }; -export const DataHealth38 = { +export const DataHealth63 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth38 = ClosedEnum; +export type DataHealth63 = ClosedEnum; -export const StatusLifecycle38 = { +export const StatusLifecycle63 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -7311,58 +7824,80 @@ export const StatusLifecycle38 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle38 = ClosedEnum; +export type StatusLifecycle63 = ClosedEnum; -export type ResourceHeartbeatStatus38 = { - collectionIssues: Array; - health: DataHealth38; - lifecycle: StatusLifecycle38; +export type ResourceHeartbeatStatus63 = { + collectionIssues: Array; + health: DataHealth63; + lifecycle: StatusLifecycle63; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataGcpSecretManager = { - location: string; - prefix: string; - projectId: string; - secretMetadataListed: boolean; - status: ResourceHeartbeatStatus38; - backend: "gcpSecretManager"; +export type SyncReconcileRequestData3 = { + allowBlobPublicAccess?: boolean | null | undefined; + allowSharedKeyAccess?: boolean | null | undefined; + encryptionKeySource?: string | null | undefined; + kind?: string | null | undefined; + location?: string | null | undefined; + minimumTlsVersion?: string | null | undefined; + name: string; + networkBypass?: string | null | undefined; + networkDefaultAction?: string | null | undefined; + networkIpRuleCount?: number | null | undefined; + networkResourceAccessRuleCount?: number | null | undefined; + networkVirtualNetworkRuleCount?: number | null | undefined; + primaryEndpoints: PrimaryEndpoints; + provisioningState?: string | null | undefined; + publicNetworkAccess?: string | null | undefined; + requireInfrastructureEncryption?: boolean | null | undefined; + resourceGroup?: string | null | undefined; + resourceId?: string | null | undefined; + secondaryEndpoints: SecondaryEndpoints; + skuName?: string | null | undefined; + skuTier?: string | null | undefined; + status: ResourceHeartbeatStatus63; + supportsHttpsTrafficOnly?: boolean | null | undefined; }; -export const DataReason37 = { +export type DataAzureStorageAccount = { + data: SyncReconcileRequestData3; + resourceType: "azure_storage_account"; +}; + +export const DataReason62 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason37 = ClosedEnum; +export type DataReason62 = ClosedEnum; -export const StatusSeverity37 = { +export const StatusSeverity62 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity37 = ClosedEnum; +export type StatusSeverity62 = ClosedEnum; -export type DataCollectionIssue37 = { +export type DataCollectionIssue62 = { message: string; - reason: DataReason37; - severity: StatusSeverity37; + reason: DataReason62; + severity: StatusSeverity62; source: string; }; -export const DataHealth37 = { +export const DataHealth62 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth37 = ClosedEnum; +export type DataHealth62 = ClosedEnum; -export const StatusLifecycle37 = { +export const StatusLifecycle62 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -7374,83 +7909,63 @@ export const StatusLifecycle37 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle37 = ClosedEnum; +export type StatusLifecycle62 = ClosedEnum; -export type ResourceHeartbeatStatus37 = { - collectionIssues: Array; - health: DataHealth37; - lifecycle: StatusLifecycle37; +export type ResourceHeartbeatStatus62 = { + collectionIssues: Array; + health: DataHealth62; + lifecycle: StatusLifecycle62; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAwsParameterStore = { - accountId: string; - hasMoreParameters?: boolean | null | undefined; - latestModifiedAt?: Date | null | undefined; - parameterMetadataSampled: boolean; - prefix: string; - region: string; - sampledAdvancedTierCount?: number | null | undefined; - sampledKmsKeyMetadataPresentCount?: number | null | undefined; - sampledParameterCount?: number | null | undefined; - sampledSecureStringCount?: number | null | undefined; - sampledStringCount?: number | null | undefined; - sampledStringListCount?: number | null | undefined; - status: ResourceHeartbeatStatus37; - backend: "awsParameterStore"; +export type SyncReconcileRequestData2 = { + location?: string | null | undefined; + managedTags: { [k: string]: string }; + name: string; + provisioningState?: string | null | undefined; + resourceId?: string | null | undefined; + status: ResourceHeartbeatStatus62; }; -export type SyncReconcileRequestDataUnion9 = - | DataAwsParameterStore - | DataGcpSecretManager - | DataAzureKeyVault - | DataKubernetesSecret - | DataLocal9; - -export type DataVault = { - data: - | DataAwsParameterStore - | DataGcpSecretManager - | DataAzureKeyVault - | DataKubernetesSecret - | DataLocal9; - resourceType: "vault"; +export type DataAzureResourceGroup = { + data: SyncReconcileRequestData2; + resourceType: "azure_resource_group"; }; -export const DataReason36 = { +export const DataReason61 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason36 = ClosedEnum; +export type DataReason61 = ClosedEnum; -export const StatusSeverity36 = { +export const StatusSeverity61 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity36 = ClosedEnum; +export type StatusSeverity61 = ClosedEnum; -export type DataCollectionIssue36 = { +export type DataCollectionIssue61 = { message: string; - reason: DataReason36; - severity: StatusSeverity36; + reason: DataReason61; + severity: StatusSeverity61; source: string; }; -export const DataHealth36 = { +export const DataHealth61 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth36 = ClosedEnum; +export type DataHealth61 = ClosedEnum; -export const StatusLifecycle36 = { +export const StatusLifecycle61 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -7462,58 +7977,60 @@ export const StatusLifecycle36 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle36 = ClosedEnum; +export type StatusLifecycle61 = ClosedEnum; -export type ResourceHeartbeatStatus36 = { - collectionIssues: Array; - health: DataHealth36; - lifecycle: StatusLifecycle36; +export type ResourceHeartbeatStatus61 = { + collectionIssues: Array; + health: DataHealth61; + lifecycle: StatusLifecycle61; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataLocal8 = { - name: string; - port?: number | null | undefined; - processRunning: boolean; - status: ResourceHeartbeatStatus36; - version: string; - backend: "local"; +export type DataAzureResourceProvider = { + namespace: string; + providerId?: string | null | undefined; + registered: boolean; + registrationPolicy?: string | null | undefined; + registrationState?: string | null | undefined; + resourceTypeCount: number; + status: ResourceHeartbeatStatus61; + backend: "azureResourceProvider"; }; -export const DataReason35 = { +export const DataReason60 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason35 = ClosedEnum; +export type DataReason60 = ClosedEnum; -export const StatusSeverity35 = { +export const StatusSeverity60 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity35 = ClosedEnum; +export type StatusSeverity60 = ClosedEnum; -export type DataCollectionIssue35 = { +export type DataCollectionIssue60 = { message: string; - reason: DataReason35; - severity: StatusSeverity35; + reason: DataReason60; + severity: StatusSeverity60; source: string; }; -export const DataHealth35 = { +export const DataHealth60 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth35 = ClosedEnum; +export type DataHealth60 = ClosedEnum; -export const StatusLifecycle35 = { +export const StatusLifecycle60 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -7525,57 +8042,102 @@ export const StatusLifecycle35 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle35 = ClosedEnum; +export type StatusLifecycle60 = ClosedEnum; -export type ResourceHeartbeatStatus35 = { - collectionIssues: Array; - health: DataHealth35; - lifecycle: StatusLifecycle35; +export type ResourceHeartbeatStatus60 = { + collectionIssues: Array; + health: DataHealth60; + lifecycle: StatusLifecycle60; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataFlexibleServer = { - serverName: string; +export type DataGcpServiceUsage = { + enabled: boolean; + lastOperationName?: string | null | undefined; + projectId: string; + serviceName: string; + serviceResourceName?: string | null | undefined; state?: string | null | undefined; - status: ResourceHeartbeatStatus35; - version?: string | null | undefined; - backend: "flexibleServer"; + status: ResourceHeartbeatStatus60; + title?: string | null | undefined; + backend: "gcpServiceUsage"; }; -export const DataReason34 = { +export type SyncReconcileRequestDataUnion15 = + | DataGcpServiceUsage + | DataAzureResourceProvider; + +export type DataServiceActivation = { + data: DataGcpServiceUsage | DataAzureResourceProvider; + resourceType: "service_activation"; +}; + +export type InvolvedObject10 = { + apiVersion?: string | null | undefined; + fieldPath?: string | null | undefined; + kind?: string | null | undefined; + name?: string | null | undefined; + namespace?: string | null | undefined; + resourceVersion?: string | null | undefined; + uid?: string | null | undefined; +}; + +export type InvolvedObjectUnion10 = InvolvedObject10 | any; + +export type SourceEvent10 = { + component?: string | null | undefined; + host?: string | null | undefined; +}; + +export type SourceUnion10 = SourceEvent10 | any; + +export type SyncReconcileRequestEvent13 = { + count?: number | null | undefined; + eventTime?: Date | null | undefined; + firstTimestamp?: Date | null | undefined; + involvedObject?: InvolvedObject10 | any | null | undefined; + lastTimestamp?: Date | null | undefined; + message: string; + raw?: any | null | undefined; + reason: string; + source?: SourceEvent10 | any | null | undefined; + type?: string | null | undefined; +}; + +export const DataReason59 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason34 = ClosedEnum; +export type DataReason59 = ClosedEnum; -export const StatusSeverity34 = { +export const StatusSeverity59 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity34 = ClosedEnum; +export type StatusSeverity59 = ClosedEnum; -export type DataCollectionIssue34 = { +export type DataCollectionIssue59 = { message: string; - reason: DataReason34; - severity: StatusSeverity34; + reason: DataReason59; + severity: StatusSeverity59; source: string; }; -export const DataHealth34 = { +export const DataHealth59 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth34 = ClosedEnum; +export type DataHealth59 = ClosedEnum; -export const StatusLifecycle34 = { +export const StatusLifecycle59 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -7587,57 +8149,64 @@ export const StatusLifecycle34 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle34 = ClosedEnum; +export type StatusLifecycle59 = ClosedEnum; -export type ResourceHeartbeatStatus34 = { - collectionIssues: Array; - health: DataHealth34; - lifecycle: StatusLifecycle34; +export type ResourceHeartbeatStatus59 = { + collectionIssues: Array; + health: DataHealth59; + lifecycle: StatusLifecycle59; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataCloudSQL = { - databaseVersion?: string | null | undefined; - instanceName: string; - state?: string | null | undefined; - status: ResourceHeartbeatStatus34; - backend: "cloudSql"; +export type DataKubernetesJob = { + active?: number | null | undefined; + completionTime?: Date | null | undefined; + conditionCount: number; + events: Array; + failed?: number | null | undefined; + imageDigest?: string | null | undefined; + jobName: string; + namespace: string; + startTime?: Date | null | undefined; + status: ResourceHeartbeatStatus59; + succeeded?: number | null | undefined; + backend: "kubernetesJob"; }; -export const DataReason33 = { +export const DataReason58 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason33 = ClosedEnum; +export type DataReason58 = ClosedEnum; -export const StatusSeverity33 = { +export const StatusSeverity58 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity33 = ClosedEnum; +export type StatusSeverity58 = ClosedEnum; -export type DataCollectionIssue33 = { +export type DataCollectionIssue58 = { message: string; - reason: DataReason33; - severity: StatusSeverity33; + reason: DataReason58; + severity: StatusSeverity58; source: string; }; -export const DataHealth33 = { +export const DataHealth58 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth33 = ClosedEnum; +export type DataHealth58 = ClosedEnum; -export const StatusLifecycle33 = { +export const StatusLifecycle58 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -7649,79 +8218,59 @@ export const StatusLifecycle33 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle33 = ClosedEnum; +export type StatusLifecycle58 = ClosedEnum; -export type ResourceHeartbeatStatus33 = { - collectionIssues: Array; - health: DataHealth33; - lifecycle: StatusLifecycle33; +export type ResourceHeartbeatStatus58 = { + collectionIssues: Array; + health: DataHealth58; + lifecycle: StatusLifecycle58; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAurora = { - clusterIdentifier: string; - endpoint?: string | null | undefined; - engineVersion?: string | null | undefined; - /** - * True when a `minCapacity: 0` instance has not reached 0 ACU over the observation - * - * @remarks - * window — it is silently paying always-on prices (auto-pause verification). - */ - neverPauses: boolean; - /** - * Latest sampled `ServerlessDatabaseCapacity` (ACU). - */ - serverlessCapacity?: number | null | undefined; - status: ResourceHeartbeatStatus33; - backend: "aurora"; -}; - -export type SyncReconcileRequestDataUnion8 = - | DataAurora - | DataCloudSQL - | DataFlexibleServer - | DataLocal8; - -export type DataPostgres = { - data: DataAurora | DataCloudSQL | DataFlexibleServer | DataLocal8; - resourceType: "postgres"; +export type DataAzureContainerApps2 = { + environmentVariableCount: number; + managedEnvironmentId: string; + managedIdentityId?: string | null | undefined; + resourceGroupName: string; + resourcePrefix?: string | null | undefined; + status: ResourceHeartbeatStatus58; + backend: "azureContainerApps"; }; -export const DataReason32 = { +export const DataReason57 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason32 = ClosedEnum; +export type DataReason57 = ClosedEnum; -export const StatusSeverity32 = { +export const StatusSeverity57 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity32 = ClosedEnum; +export type StatusSeverity57 = ClosedEnum; -export type DataCollectionIssue32 = { +export type DataCollectionIssue57 = { message: string; - reason: DataReason32; - severity: StatusSeverity32; + reason: DataReason57; + severity: StatusSeverity57; source: string; }; -export const DataHealth32 = { +export const DataHealth57 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth32 = ClosedEnum; +export type DataHealth57 = ClosedEnum; -export const StatusLifecycle32 = { +export const StatusLifecycle57 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -7733,59 +8282,59 @@ export const StatusLifecycle32 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle32 = ClosedEnum; +export type StatusLifecycle57 = ClosedEnum; -export type ResourceHeartbeatStatus32 = { - collectionIssues: Array; - health: DataHealth32; - lifecycle: StatusLifecycle32; +export type ResourceHeartbeatStatus57 = { + collectionIssues: Array; + health: DataHealth57; + lifecycle: StatusLifecycle57; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataLocal7 = { - cloudMetadataSupported: boolean; - isDirectory?: boolean | null | undefined; - name: string; - path: string; - pathExists: boolean; - status: ResourceHeartbeatStatus32; - backend: "local"; +export type DataGcpCloudBuild = { + buildConfigId: string; + environmentVariableCount: number; + location: string; + projectId: string; + serviceAccount?: string | null | undefined; + status: ResourceHeartbeatStatus57; + backend: "gcpCloudBuild"; }; -export const DataReason31 = { +export const DataReason56 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason31 = ClosedEnum; +export type DataReason56 = ClosedEnum; -export const StatusSeverity31 = { +export const StatusSeverity56 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity31 = ClosedEnum; +export type StatusSeverity56 = ClosedEnum; -export type DataCollectionIssue31 = { +export type DataCollectionIssue56 = { message: string; - reason: DataReason31; - severity: StatusSeverity31; + reason: DataReason56; + severity: StatusSeverity56; source: string; }; -export const DataHealth31 = { +export const DataHealth56 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth31 = ClosedEnum; +export type DataHealth56 = ClosedEnum; -export const StatusLifecycle31 = { +export const StatusLifecycle56 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -7797,65 +8346,89 @@ export const StatusLifecycle31 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle31 = ClosedEnum; +export type StatusLifecycle56 = ClosedEnum; -export type ResourceHeartbeatStatus31 = { - collectionIssues: Array; - health: DataHealth31; - lifecycle: StatusLifecycle31; +export type ResourceHeartbeatStatus56 = { + collectionIssues: Array; + health: DataHealth56; + lifecycle: StatusLifecycle56; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAzureTable = { - endpoint?: string | null | undefined; - resourceGroup?: string | null | undefined; - signedIdentifierCount?: number | null | undefined; - status: ResourceHeartbeatStatus31; - storageAccountKind?: string | null | undefined; - storageAccountLocation?: string | null | undefined; - storageAccountName: string; - storageAccountPrimaryStatus?: string | null | undefined; - storageAccountProvisioningState?: string | null | undefined; - storageAccountResourceId?: string | null | undefined; - tableExists: boolean; - tableName: string; - backend: "azureTable"; +export type DataAwsCodeBuild = { + artifactsEncryptionDisabled?: boolean | null | undefined; + artifactsType?: string | null | undefined; + cloudWatchLogsStatus?: string | null | undefined; + computeType?: string | null | undefined; + created?: number | null | undefined; + description?: string | null | undefined; + encryptionKeyPresent: boolean; + environmentImage?: string | null | undefined; + environmentType?: string | null | undefined; + environmentVariableCount: number; + imagePullCredentialsType?: string | null | undefined; + lastModified?: number | null | undefined; + privilegedMode?: boolean | null | undefined; + projectArn?: string | null | undefined; + projectName: string; + queuedTimeoutInMinutes?: number | null | undefined; + s3LogsStatus?: string | null | undefined; + serviceRolePresent: boolean; + sourceType?: string | null | undefined; + status: ResourceHeartbeatStatus56; + timeoutInMinutes?: number | null | undefined; + backend: "awsCodeBuild"; }; -export const DataReason30 = { +export type SyncReconcileRequestDataUnion14 = + | DataAwsCodeBuild + | DataGcpCloudBuild + | DataAzureContainerApps2 + | DataKubernetesJob; + +export type DataBuild = { + data: + | DataAwsCodeBuild + | DataGcpCloudBuild + | DataAzureContainerApps2 + | DataKubernetesJob; + resourceType: "build"; +}; + +export const DataReason55 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason30 = ClosedEnum; +export type DataReason55 = ClosedEnum; -export const StatusSeverity30 = { +export const StatusSeverity55 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity30 = ClosedEnum; +export type StatusSeverity55 = ClosedEnum; -export type DataCollectionIssue30 = { +export type DataCollectionIssue55 = { message: string; - reason: DataReason30; - severity: StatusSeverity30; + reason: DataReason55; + severity: StatusSeverity55; source: string; }; -export const DataHealth30 = { +export const DataHealth55 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth30 = ClosedEnum; +export type DataHealth55 = ClosedEnum; -export const StatusLifecycle30 = { +export const StatusLifecycle55 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -7867,76 +8440,56 @@ export const StatusLifecycle30 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle30 = ClosedEnum; +export type StatusLifecycle55 = ClosedEnum; -export type ResourceHeartbeatStatus30 = { - collectionIssues: Array; - health: DataHealth30; - lifecycle: StatusLifecycle30; +export type ResourceHeartbeatStatus55 = { + collectionIssues: Array; + health: DataHealth55; + lifecycle: StatusLifecycle55; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataGcpFirestore = { - appEngineIntegrationMode?: string | null | undefined; - cmekEnabled: boolean; - concurrencyMode?: string | null | undefined; - createTime?: string | null | undefined; - databaseEdition?: string | null | undefined; - databaseName: string; - databaseType?: string | null | undefined; - deleteProtectionState?: string | null | undefined; - deleteTime?: string | null | undefined; - earliestVersionTime?: string | null | undefined; - endpoint?: string | null | undefined; - locationId?: string | null | undefined; - pointInTimeRecoveryEnablement?: string | null | undefined; - projectId?: string | null | undefined; - sourceInfoPresent: boolean; - status: ResourceHeartbeatStatus30; - updateTime?: string | null | undefined; - versionRetentionPeriod?: string | null | undefined; - backend: "gcpFirestore"; -}; - -export type KeySchema = { - attributeName: string; - keyType: string; +export type DataLocal11 = { + reachable: boolean; + registryUrl: string; + status: ResourceHeartbeatStatus55; + backend: "local"; }; -export const DataReason29 = { +export const DataReason54 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason29 = ClosedEnum; +export type DataReason54 = ClosedEnum; -export const StatusSeverity29 = { +export const StatusSeverity54 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity29 = ClosedEnum; +export type StatusSeverity54 = ClosedEnum; -export type DataCollectionIssue29 = { +export type DataCollectionIssue54 = { message: string; - reason: DataReason29; - severity: StatusSeverity29; + reason: DataReason54; + severity: StatusSeverity54; source: string; }; -export const DataHealth29 = { +export const DataHealth54 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth29 = ClosedEnum; +export type DataHealth54 = ClosedEnum; -export const StatusLifecycle29 = { +export const StatusLifecycle54 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -7948,85 +8501,80 @@ export const StatusLifecycle29 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle29 = ClosedEnum; +export type StatusLifecycle54 = ClosedEnum; -export type ResourceHeartbeatStatus29 = { - collectionIssues: Array; - health: DataHealth29; - lifecycle: StatusLifecycle29; +export type ResourceHeartbeatStatus54 = { + collectionIssues: Array; + health: DataHealth54; + lifecycle: StatusLifecycle54; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAwsDynamoDb = { - billingMode?: string | null | undefined; - deletionProtectionEnabled?: boolean | null | undefined; - globalSecondaryIndexCount?: number | null | undefined; - itemCount?: number | null | undefined; - keySchema: Array; - localSecondaryIndexCount?: number | null | undefined; +export type DataAzureContainerRegistry = { + adminUserEnabled: boolean; + anonymousPullEnabled: boolean; + creationDate?: string | null | undefined; + dataEndpointEnabled?: boolean | null | undefined; + dataEndpointHostNames: Array; + encryptionKeyIdentifierPresent: boolean; + encryptionKeyVaultUriPresent: boolean; + encryptionStatus?: string | null | undefined; + ipRuleCount: number; + location: string; + loginServer?: string | null | undefined; + managedTagCount: number; name: string; - region?: string | null | undefined; - replicaCount?: number | null | undefined; - restoreInProgress?: boolean | null | undefined; - sseStatus?: string | null | undefined; - sseType?: string | null | undefined; - status: ResourceHeartbeatStatus29; - streamEnabled?: boolean | null | undefined; - streamViewType?: string | null | undefined; - tableArn?: string | null | undefined; - tableClass?: string | null | undefined; - tableSizeBytes?: number | null | undefined; - tableStatus?: string | null | undefined; - ttlAttributeName?: string | null | undefined; - ttlStatus?: string | null | undefined; - backend: "awsDynamoDb"; -}; - -export type SyncReconcileRequestDataUnion7 = - | DataAwsDynamoDb - | DataGcpFirestore - | DataAzureTable - | DataLocal7; - -export type DataKv = { - data: DataAwsDynamoDb | DataGcpFirestore | DataAzureTable | DataLocal7; - resourceType: "kv"; + networkRuleBypassOptions: string; + networkRuleDefaultAction?: string | null | undefined; + policiesPresent: boolean; + policyCount: number; + privateEndpointConnectionCount: number; + provisioningState?: string | null | undefined; + publicNetworkAccess: string; + resourceGroup: string; + resourceId?: string | null | undefined; + skuName: string; + skuTier?: string | null | undefined; + status: ResourceHeartbeatStatus54; + type?: string | null | undefined; + zoneRedundancy: string; + backend: "azureContainerRegistry"; }; -export const DataReason28 = { +export const DataReason53 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason28 = ClosedEnum; +export type DataReason53 = ClosedEnum; -export const StatusSeverity28 = { +export const StatusSeverity53 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity28 = ClosedEnum; +export type StatusSeverity53 = ClosedEnum; -export type DataCollectionIssue28 = { +export type DataCollectionIssue53 = { message: string; - reason: DataReason28; - severity: StatusSeverity28; + reason: DataReason53; + severity: StatusSeverity53; source: string; }; -export const DataHealth28 = { +export const DataHealth53 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth28 = ClosedEnum; +export type DataHealth53 = ClosedEnum; -export const StatusLifecycle28 = { +export const StatusLifecycle53 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -8038,57 +8586,86 @@ export const StatusLifecycle28 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle28 = ClosedEnum; +export type StatusLifecycle53 = ClosedEnum; -export type ResourceHeartbeatStatus28 = { - collectionIssues: Array; - health: DataHealth28; - lifecycle: StatusLifecycle28; +export type ResourceHeartbeatStatus53 = { + collectionIssues: Array; + health: DataHealth53; + lifecycle: StatusLifecycle53; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataLocal6 = { - name: string; - path?: string | null | undefined; - serviceStatus?: string | null | undefined; - status: ResourceHeartbeatStatus28; - backend: "local"; +export type DataGcpArtifactRegistry = { + cleanupPolicyCount: number; + cleanupPolicyDryRun?: boolean | null | undefined; + createTime?: string | null | undefined; + description?: string | null | undefined; + format?: string | null | undefined; + iamBindingCount: number; + iamPolicyEtagPresent: boolean; + iamRoles: Array; + kmsKeyNamePresent: boolean; + labelCount: number; + location: string; + mode?: string | null | undefined; + name?: string | null | undefined; + projectId: string; + pullServiceAccountEmail?: string | null | undefined; + pushServiceAccountEmail?: string | null | undefined; + repositoryId: string; + satisfiesPzs?: boolean | null | undefined; + sizeBytes?: string | null | undefined; + status: ResourceHeartbeatStatus53; + updateTime?: string | null | undefined; + backend: "gcpArtifactRegistry"; }; -export const DataReason27 = { +export type Repository = { + createdAt: number; + encryptionType?: string | null | undefined; + imageTagMutability?: string | null | undefined; + kmsKeyPresent: boolean; + registryId: string; + repositoryArn: string; + repositoryName: string; + repositoryUri: string; + scanOnPush?: boolean | null | undefined; +}; + +export const DataReason52 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason27 = ClosedEnum; +export type DataReason52 = ClosedEnum; -export const StatusSeverity27 = { +export const StatusSeverity52 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity27 = ClosedEnum; +export type StatusSeverity52 = ClosedEnum; -export type DataCollectionIssue27 = { +export type DataCollectionIssue52 = { message: string; - reason: DataReason27; - severity: StatusSeverity27; + reason: DataReason52; + severity: StatusSeverity52; source: string; }; -export const DataHealth27 = { +export const DataHealth52 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth27 = ClosedEnum; +export type DataHealth52 = ClosedEnum; -export const StatusLifecycle27 = { +export const StatusLifecycle52 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -8100,85 +8677,78 @@ export const StatusLifecycle27 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle27 = ClosedEnum; +export type StatusLifecycle52 = ClosedEnum; -export type ResourceHeartbeatStatus27 = { - collectionIssues: Array; - health: DataHealth27; - lifecycle: StatusLifecycle27; +export type ResourceHeartbeatStatus52 = { + collectionIssues: Array; + health: DataHealth52; + lifecycle: StatusLifecycle52; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAzureServiceBus = { - accessedAt?: string | null | undefined; - activeMessageCount?: number | null | undefined; - autoDeleteOnIdle?: string | null | undefined; - createdAt?: string | null | undefined; - deadLetterMessageCount?: number | null | undefined; - deadLetteringOnMessageExpiration?: boolean | null | undefined; - defaultMessageTimeToLive?: string | null | undefined; - duplicateDetectionHistoryTimeWindow?: string | null | undefined; - enableBatchedOperations?: boolean | null | undefined; - enableExpress?: boolean | null | undefined; - enablePartitioning?: boolean | null | undefined; - endpoint?: string | null | undefined; - forwardDeadLetteredMessagesTo?: string | null | undefined; - forwardTo?: string | null | undefined; - lockDuration?: string | null | undefined; - maxDeliveryCount?: number | null | undefined; - maxMessageSizeInKilobytes?: number | null | undefined; - maxSizeInMegabytes?: number | null | undefined; - messageCount?: number | null | undefined; - name: string; - namespaceName: string; - queueStatus?: string | null | undefined; - requiresDuplicateDetection?: boolean | null | undefined; - requiresSession?: boolean | null | undefined; - resourceGroup?: string | null | undefined; - resourceId?: string | null | undefined; - scheduledMessageCount?: number | null | undefined; - sizeInBytes?: number | null | undefined; - status: ResourceHeartbeatStatus27; - transferDeadLetterMessageCount?: number | null | undefined; - transferMessageCount?: number | null | undefined; - updatedAt?: string | null | undefined; - backend: "azureServiceBus"; +export type DataAwsEcr = { + pullRoleArn?: string | null | undefined; + pushRoleArn?: string | null | undefined; + region: string; + registryId: string; + registryUri: string; + repositories: Array; + repositoriesTruncated: boolean; + repositoryCount: number; + repositoryPrefix: string; + status: ResourceHeartbeatStatus52; + backend: "awsEcr"; }; -export const DataReason26 = { +export type SyncReconcileRequestDataUnion13 = + | DataAwsEcr + | DataGcpArtifactRegistry + | DataAzureContainerRegistry + | DataLocal11; + +export type DataArtifactRegistry = { + data: + | DataAwsEcr + | DataGcpArtifactRegistry + | DataAzureContainerRegistry + | DataLocal11; + resourceType: "artifact-registry"; +}; + +export const DataReason51 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason26 = ClosedEnum; +export type DataReason51 = ClosedEnum; -export const StatusSeverity26 = { +export const StatusSeverity51 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity26 = ClosedEnum; +export type StatusSeverity51 = ClosedEnum; -export type DataCollectionIssue26 = { +export type DataCollectionIssue51 = { message: string; - reason: DataReason26; - severity: StatusSeverity26; + reason: DataReason51; + severity: StatusSeverity51; source: string; }; -export const DataHealth26 = { +export const DataHealth51 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth26 = ClosedEnum; +export type DataHealth51 = ClosedEnum; -export const StatusLifecycle26 = { +export const StatusLifecycle51 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -8190,87 +8760,61 @@ export const StatusLifecycle26 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle26 = ClosedEnum; +export type StatusLifecycle51 = ClosedEnum; -export type ResourceHeartbeatStatus26 = { - collectionIssues: Array; - health: DataHealth26; - lifecycle: StatusLifecycle26; +export type ResourceHeartbeatStatus51 = { + collectionIssues: Array; + health: DataHealth51; + lifecycle: StatusLifecycle51; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataGcpPubSub = { - endpoint?: string | null | undefined; - kmsKeyName?: string | null | undefined; - messageStorageAllowedPersistenceRegions: Array; - messageStorageEnforceInTransit?: boolean | null | undefined; - projectId?: string | null | undefined; - schemaEncoding?: string | null | undefined; - schemaFirstRevisionId?: string | null | undefined; - schemaLastRevisionId?: string | null | undefined; - schemaName?: string | null | undefined; - status: ResourceHeartbeatStatus26; - subscriptionAckDeadlineSeconds?: number | null | undefined; - subscriptionDeadLetterMaxDeliveryAttempts?: number | null | undefined; - subscriptionDeadLetterTopic?: string | null | undefined; - subscriptionDetached?: boolean | null | undefined; - subscriptionEnableMessageOrdering?: boolean | null | undefined; - subscriptionFilter?: string | null | undefined; - subscriptionFullName?: string | null | undefined; - subscriptionLabels: { [k: string]: string }; - subscriptionMessageRetentionDuration?: string | null | undefined; - subscriptionName?: string | null | undefined; - subscriptionPushAttributes: { [k: string]: string }; - subscriptionPushConfigPresent?: boolean | null | undefined; - subscriptionPushEndpoint?: string | null | undefined; - subscriptionPushNoWrapperWriteMetadata?: boolean | null | undefined; - subscriptionPushOidcAudience?: string | null | undefined; - subscriptionPushOidcServiceAccountEmail?: string | null | undefined; - subscriptionPushPubsubWrapperWriteMetadata?: boolean | null | undefined; - subscriptionRetainAckedMessages?: boolean | null | undefined; - subscriptionState?: string | null | undefined; - topicFullName?: string | null | undefined; - topicLabels: { [k: string]: string }; - topicMessageRetentionDuration?: string | null | undefined; - topicName: string; - topicState?: string | null | undefined; - backend: "gcpPubSub"; +export type DataAzureManagedIdentity2 = { + ficName?: string | null | undefined; + roleAssignmentIds: Array; + roleDefinitionId?: string | null | undefined; + status: ResourceHeartbeatStatus51; + tenantId?: string | null | undefined; + uamiClientId?: string | null | undefined; + uamiPrincipalId?: string | null | undefined; + uamiResourceId?: string | null | undefined; + backend: "azureManagedIdentity"; }; -export const DataReason25 = { +export const DataReason50 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason25 = ClosedEnum; +export type DataReason50 = ClosedEnum; -export const StatusSeverity25 = { +export const StatusSeverity50 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity25 = ClosedEnum; +export type StatusSeverity50 = ClosedEnum; -export type DataCollectionIssue25 = { +export type DataCollectionIssue50 = { message: string; - reason: DataReason25; - severity: StatusSeverity25; + reason: DataReason50; + severity: StatusSeverity50; source: string; }; -export const DataHealth25 = { +export const DataHealth50 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth25 = ClosedEnum; +export type DataHealth50 = ClosedEnum; -export const StatusLifecycle25 = { +export const StatusLifecycle50 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -8282,308 +8826,130 @@ export const StatusLifecycle25 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle25 = ClosedEnum; +export type StatusLifecycle50 = ClosedEnum; -export type ResourceHeartbeatStatus25 = { - collectionIssues: Array; - health: DataHealth25; - lifecycle: StatusLifecycle25; +export type ResourceHeartbeatStatus50 = { + collectionIssues: Array; + health: DataHealth50; + lifecycle: StatusLifecycle50; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAwsSqs = { - approximateCounts: boolean; - approximateDelayedMessages?: number | null | undefined; - approximateInFlightMessages?: number | null | undefined; - approximateVisibleMessages?: number | null | undefined; - contentBasedDeduplication?: boolean | null | undefined; - deduplicationScope?: string | null | undefined; - delaySeconds?: number | null | undefined; - fifoQueue?: boolean | null | undefined; - fifoThroughputLimit?: string | null | undefined; - kmsDataKeyReusePeriodSeconds?: number | null | undefined; - kmsMasterKeyId?: string | null | undefined; - maximumMessageSize?: number | null | undefined; - messageRetentionPeriodSeconds?: number | null | undefined; - name: string; - queueArn?: string | null | undefined; - queueUrl?: string | null | undefined; - receiveMessageWaitTimeSeconds?: number | null | undefined; - redriveAllowPolicy?: string | null | undefined; - redrivePolicy?: string | null | undefined; - region?: string | null | undefined; - sqsManagedSseEnabled?: boolean | null | undefined; - sseEnabled?: boolean | null | undefined; - status: ResourceHeartbeatStatus25; - visibilityTimeoutSeconds?: number | null | undefined; - backend: "awsSqs"; -}; - -export type SyncReconcileRequestDataUnion6 = - | DataAwsSqs - | DataGcpPubSub - | DataAzureServiceBus - | DataLocal6; - -export type DataQueue = { - data: DataAwsSqs | DataGcpPubSub | DataAzureServiceBus | DataLocal6; - resourceType: "queue"; -}; - -export const CpuUnit11 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type CpuUnit11 = ClosedEnum; - -export type Cpu11 = { - unit: CpuUnit11; - value: number; -}; - -export type CpuUnion11 = Cpu11 | any; - -export type InvolvedObject9 = { - apiVersion?: string | null | undefined; - fieldPath?: string | null | undefined; - kind?: string | null | undefined; - name?: string | null | undefined; - namespace?: string | null | undefined; - resourceVersion?: string | null | undefined; - uid?: string | null | undefined; -}; - -export type InvolvedObjectUnion9 = InvolvedObject9 | any; - -export type SyncReconcileRequestSource9 = { - component?: string | null | undefined; - host?: string | null | undefined; -}; - -export type SourceUnion9 = SyncReconcileRequestSource9 | any; - -export type SyncReconcileRequestEvent12 = { - count?: number | null | undefined; - eventTime?: Date | null | undefined; - firstTimestamp?: Date | null | undefined; - involvedObject?: InvolvedObject9 | any | null | undefined; - lastTimestamp?: Date | null | undefined; - message: string; - raw?: any | null | undefined; - reason: string; - source?: SyncReconcileRequestSource9 | any | null | undefined; - type?: string | null | undefined; -}; - -export const MemoryUnit11 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type MemoryUnit11 = ClosedEnum; - -export type Memory11 = { - unit: MemoryUnit11; - value: number; -}; - -export type MemoryUnion11 = Memory11 | any; - -export type NodeCounts = { - current?: number | null | undefined; - desired?: number | null | undefined; - ready?: number | null | undefined; +export type DataGcpServiceAccount2 = { + impersonationGranted: boolean; + roleBound: boolean; + serviceAccountEmail?: string | null | undefined; + serviceAccountUniqueId?: string | null | undefined; + status: ResourceHeartbeatStatus50; + backend: "gcpServiceAccount"; }; -export const CpuAllocatableUnit = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const DataReason49 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", } as const; -export type CpuAllocatableUnit = ClosedEnum; - -export type CpuAllocatable = { - unit: CpuAllocatableUnit; - value: number; -}; - -export type AllocatableCpuUnion = CpuAllocatable | any; +export type DataReason49 = ClosedEnum; -export const MemoryAllocatableUnit = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const StatusSeverity49 = { + Info: "info", + Warning: "warning", + Error: "error", } as const; -export type MemoryAllocatableUnit = ClosedEnum; - -export type MemoryAllocatable = { - unit: MemoryAllocatableUnit; - value: number; -}; - -export type AllocatableMemoryUnion = MemoryAllocatable | any; +export type StatusSeverity49 = ClosedEnum; -export type Allocatable = { - cpu?: CpuAllocatable | any | null | undefined; - memory?: MemoryAllocatable | any | null | undefined; - pods?: number | null | undefined; +export type DataCollectionIssue49 = { + message: string; + reason: DataReason49; + severity: StatusSeverity49; + source: string; }; -export const CpuCapacityUnit = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const DataHealth49 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", } as const; -export type CpuCapacityUnit = ClosedEnum; - -export type CpuCapacity = { - unit: CpuCapacityUnit; - value: number; -}; - -export type CapacityCpuUnion = CpuCapacity | any; +export type DataHealth49 = ClosedEnum; -export const MemoryCapacityUnit = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const StatusLifecycle49 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", } as const; -export type MemoryCapacityUnit = ClosedEnum; - -export type MemoryCapacity = { - unit: MemoryCapacityUnit; - value: number; -}; - -export type CapacityMemoryUnion = MemoryCapacity | any; - -export type Capacity = { - cpu?: CpuCapacity | any | null | undefined; - memory?: MemoryCapacity | any | null | undefined; - pods?: number | null | undefined; -}; +export type StatusLifecycle49 = ClosedEnum; -export type NodeStatusCondition = { +export type ResourceHeartbeatStatus49 = { + collectionIssues: Array; + health: DataHealth49; + lifecycle: StatusLifecycle49; message?: string | null | undefined; - reason?: string | null | undefined; - status: string; - type: string; -}; - -export const UsageCpuUnit = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type UsageCpuUnit = ClosedEnum; - -export type UsageCpu = { - unit: UsageCpuUnit; - value: number; -}; - -export type UsageCpuUnion = UsageCpu | any; - -export const UsageMemoryUnit = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type UsageMemoryUnit = ClosedEnum; - -export type UsageMemory = { - unit: UsageMemoryUnit; - value: number; + partial: boolean; + stale: boolean; }; -export type UsageMemoryUnion = UsageMemory | any; - -export type SyncReconcileRequestUsage = { - cpu?: UsageCpu | any | null | undefined; - memory?: UsageMemory | any | null | undefined; +export type DataAwsIamRole2 = { + managementPermissionsApplied: boolean; + roleArn?: string | null | undefined; + roleName?: string | null | undefined; + status: ResourceHeartbeatStatus49; + backend: "awsIamRole"; }; -export type Usage = SyncReconcileRequestUsage | any; - -export type NodeStatus = { - allocatable: Allocatable; - capacity: Capacity; - conditions?: Array | undefined; - containerRuntimeVersion?: string | null | undefined; - kubeletVersion?: string | null | undefined; - labels: { [k: string]: string }; - name: string; - ready: boolean; - roles: Array; - uid?: string | null | undefined; - usage?: SyncReconcileRequestUsage | any | null | undefined; -}; +export type SyncReconcileRequestDataUnion12 = + | DataAwsIamRole2 + | DataGcpServiceAccount2 + | DataAzureManagedIdentity2; -export type PodCounts = { - current?: number | null | undefined; - desired?: number | null | undefined; - ready?: number | null | undefined; +export type DataRemoteStackManagement = { + data: DataAwsIamRole2 | DataGcpServiceAccount2 | DataAzureManagedIdentity2; + resourceType: "remote-stack-management"; }; -export const DataReason24 = { +export const DataReason48 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason24 = ClosedEnum; +export type DataReason48 = ClosedEnum; -export const StatusSeverity24 = { +export const StatusSeverity48 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity24 = ClosedEnum; +export type StatusSeverity48 = ClosedEnum; -export type DataCollectionIssue24 = { +export type DataCollectionIssue48 = { message: string; - reason: DataReason24; - severity: StatusSeverity24; + reason: DataReason48; + severity: StatusSeverity48; source: string; }; -export const DataHealth24 = { +export const DataHealth48 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth24 = ClosedEnum; +export type DataHealth48 = ClosedEnum; -export const StatusLifecycle24 = { +export const StatusLifecycle48 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -8595,74 +8961,68 @@ export const StatusLifecycle24 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle24 = ClosedEnum; +export type StatusLifecycle48 = ClosedEnum; -export type ResourceHeartbeatStatus24 = { - collectionIssues: Array; - health: DataHealth24; - lifecycle: StatusLifecycle24; +export type ResourceHeartbeatStatus48 = { + collectionIssues: Array; + health: DataHealth48; + lifecycle: StatusLifecycle48; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type SyncReconcileRequestData1 = { - cpu?: Cpu11 | any | null | undefined; - events: Array; - memory?: Memory11 | any | null | undefined; - name: string; - namespace?: string | null | undefined; - nodeCounts: NodeCounts; - nodeStatuses?: Array | undefined; - podCounts: PodCounts; - region?: string | null | undefined; - status: ResourceHeartbeatStatus24; - version?: string | null | undefined; -}; - -export type DataKubernetesCluster = { - data: SyncReconcileRequestData1; - resourceType: "kubernetes-cluster"; -}; - -export type Nodes5 = { - current?: number | null | undefined; - desired?: number | null | undefined; - ready?: number | null | undefined; +export type DataAzureVnet = { + applicationGatewaySubnetName?: string | null | undefined; + cidrBlock?: string | null | undefined; + isByoVnet: boolean; + lastByoVnetVerificationErrorCode?: string | null | undefined; + location?: string | null | undefined; + natGatewayId?: string | null | undefined; + nsgId?: string | null | undefined; + privateEndpointSubnetName?: string | null | undefined; + privateSubnetName?: string | null | undefined; + publicIpId?: string | null | undefined; + publicSubnetName?: string | null | undefined; + resourceGroup?: string | null | undefined; + status: ResourceHeartbeatStatus48; + vnetName?: string | null | undefined; + vnetResourceId?: string | null | undefined; + backend: "azureVnet"; }; -export const DataReason23 = { +export const DataReason47 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason23 = ClosedEnum; +export type DataReason47 = ClosedEnum; -export const StatusSeverity23 = { +export const StatusSeverity47 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity23 = ClosedEnum; +export type StatusSeverity47 = ClosedEnum; -export type DataCollectionIssue23 = { +export type DataCollectionIssue47 = { message: string; - reason: DataReason23; - severity: StatusSeverity23; + reason: DataReason47; + severity: StatusSeverity47; source: string; }; -export const DataHealth23 = { +export const DataHealth47 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth23 = ClosedEnum; +export type DataHealth47 = ClosedEnum; -export const StatusLifecycle23 = { +export const StatusLifecycle47 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -8674,218 +9034,64 @@ export const StatusLifecycle23 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle23 = ClosedEnum; +export type StatusLifecycle47 = ClosedEnum; -export type ResourceHeartbeatStatus23 = { - collectionIssues: Array; - health: DataHealth23; - lifecycle: StatusLifecycle23; +export type ResourceHeartbeatStatus47 = { + collectionIssues: Array; + health: DataHealth47; + lifecycle: StatusLifecycle47; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataLocal5 = { - dockerApiVersion?: string | null | undefined; - dockerArch?: string | null | undefined; - dockerAvailable: boolean; - dockerOs?: string | null | undefined; - dockerVersion?: string | null | undefined; - hostIdentifier?: string | null | undefined; - name: string; - networkAvailable: boolean; +export type DataGcpVpc = { + cidrBlock?: string | null | undefined; + cloudNatName?: string | null | undefined; + firewallName?: string | null | undefined; + isByoVpc: boolean; networkName?: string | null | undefined; - nodes: Nodes5; - runningContainers?: number | null | undefined; - status: ResourceHeartbeatStatus23; - trackedContainers?: number | null | undefined; - backend: "local"; -}; - -export const Category4 = { - Quota: "quota", - Capacity: "capacity", - Allocation: "allocation", - Other: "other", -} as const; -export type Category4 = ClosedEnum; - -export type CapacityBlocker4 = { - category: Category4; - message: string; - observedAt: Date; - providerCode?: string | null | undefined; - providerReference?: string | null | undefined; -}; - -export type CapacityBlockerUnion4 = CapacityBlocker4 | any; - -export type Blocker4 = { - reason: string; - replicaId: string; - schedulingMode: string; - state: string; - workloadName: string; -}; - -export const DrainProgressStatus4 = { - Draining: "draining", - Drained: "drained", - Terminating: "terminating", -} as const; -export type DrainProgressStatus4 = ClosedEnum; - -export type DrainProgress4 = { - blockers?: Array | undefined; - drainDeadlineAt?: string | null | undefined; - drainRequestedAt?: string | null | undefined; - drainedAt?: string | null | undefined; - force: boolean; - machineId: string; - replicaCount: number; - stalled: boolean; - status: DrainProgressStatus4; -}; - -export type DrainProgressUnion4 = DrainProgress4 | any; - -export const UtilizationUnit4 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type UtilizationUnit4 = ClosedEnum; - -export type Utilization4 = { - unit: UtilizationUnit4; - value: number; -}; - -export type UtilizationUnion4 = Utilization4 | any; - -export type Recommendation4 = { - desiredMachines: number; - reason?: string | null | undefined; - unschedulableReplicas?: number | null | undefined; - utilization?: Utilization4 | any | null | undefined; -}; - -export type RecommendationUnion4 = Recommendation4 | any; - -export type CapacityGroup4 = { - capacityBlocker?: CapacityBlocker4 | any | null | undefined; - currentMachines: number; - desiredMachines: number; - drainProgress?: DrainProgress4 | any | null | undefined; - groupId: string; - instanceType?: string | null | undefined; - maxMachines?: number | null | undefined; - minMachines?: number | null | undefined; - recommendation?: Recommendation4 | any | null | undefined; -}; - -export const CpuUnit10 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type CpuUnit10 = ClosedEnum; - -export type Cpu10 = { - unit: CpuUnit10; - value: number; -}; - -export type CpuUnion10 = Cpu10 | any; - -export type DrainBlocker = { - reason: string; - replicaId: string; - schedulingMode: string; - state: string; - workloadName: string; -}; - -export type SyncReconcileRequestMachine = { - capacityGroup: string; - cpuCores?: number | null | undefined; - drainBlockers?: Array | undefined; - drainDeadlineAt?: string | null | undefined; - drainForce: boolean; - drainRequestedAt?: string | null | undefined; - drainedAt?: string | null | undefined; - horizondVersion?: string | null | undefined; - lastHeartbeat: string; - machineId: string; - memoryBytes?: number | null | undefined; - overlayIp?: string | null | undefined; - publicIp?: string | null | undefined; - replicaCount: number; - status: string; - zone: string; -}; - -export const MemoryUnit10 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type MemoryUnit10 = ClosedEnum; - -export type Memory10 = { - unit: MemoryUnit10; - value: number; -}; - -export type MemoryUnion10 = Memory10 | any; - -export type Nodes4 = { - current?: number | null | undefined; - desired?: number | null | undefined; - ready?: number | null | undefined; + networkSelfLink?: string | null | undefined; + region?: string | null | undefined; + routerName?: string | null | undefined; + status: ResourceHeartbeatStatus47; + subnetworkName?: string | null | undefined; + subnetworkSelfLink?: string | null | undefined; + backend: "gcpVpc"; }; -export const DataReason22 = { +export const DataReason46 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason22 = ClosedEnum; +export type DataReason46 = ClosedEnum; -export const StatusSeverity22 = { +export const StatusSeverity46 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity22 = ClosedEnum; +export type StatusSeverity46 = ClosedEnum; -export type DataCollectionIssue22 = { +export type DataCollectionIssue46 = { message: string; - reason: DataReason22; - severity: StatusSeverity22; + reason: DataReason46; + severity: StatusSeverity46; source: string; }; -export const DataHealth22 = { +export const DataHealth46 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth22 = ClosedEnum; +export type DataHealth46 = ClosedEnum; -export const StatusLifecycle22 = { +export const StatusLifecycle46 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -8897,194 +9103,136 @@ export const StatusLifecycle22 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle22 = ClosedEnum; +export type StatusLifecycle46 = ClosedEnum; -export type ResourceHeartbeatStatus22 = { - collectionIssues: Array; - health: DataHealth22; - lifecycle: StatusLifecycle22; +export type ResourceHeartbeatStatus46 = { + collectionIssues: Array; + health: DataHealth46; + lifecycle: StatusLifecycle46; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataMachines2 = { - backendClusterId?: string | null | undefined; - capacityGroups: Array; - cpu?: Cpu10 | any | null | undefined; - machines: Array; - memory?: Memory10 | any | null | undefined; - name: string; - nodes: Nodes4; - status: ResourceHeartbeatStatus22; - backend: "machines"; -}; - -export const Category3 = { - Quota: "quota", - Capacity: "capacity", - Allocation: "allocation", - Other: "other", -} as const; -export type Category3 = ClosedEnum; - -export type CapacityBlocker3 = { - category: Category3; - message: string; - observedAt: Date; - providerCode?: string | null | undefined; - providerReference?: string | null | undefined; +export type DataAwsVpc = { + availabilityZones: Array; + cidrBlock?: string | null | undefined; + internetGatewayId?: string | null | undefined; + isByoVpc: boolean; + natGatewayId?: string | null | undefined; + privateSubnetIds: Array; + publicSubnetIds: Array; + routeTableCount: number; + securityGroupId?: string | null | undefined; + status: ResourceHeartbeatStatus46; + vpcId?: string | null | undefined; + vpcState?: string | null | undefined; + backend: "awsVpc"; }; -export type CapacityBlockerUnion3 = CapacityBlocker3 | any; +export type SyncReconcileRequestDataUnion11 = + | DataAwsVpc + | DataGcpVpc + | DataAzureVnet; -export type Blocker3 = { - reason: string; - replicaId: string; - schedulingMode: string; - state: string; - workloadName: string; +export type DataNetwork = { + data: DataAwsVpc | DataGcpVpc | DataAzureVnet; + resourceType: "network"; }; -export const DrainProgressStatus3 = { - Draining: "draining", - Drained: "drained", - Terminating: "terminating", +export const DataReason45 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", } as const; -export type DrainProgressStatus3 = ClosedEnum; - -export type DrainProgress3 = { - blockers?: Array | undefined; - drainDeadlineAt?: string | null | undefined; - drainRequestedAt?: string | null | undefined; - drainedAt?: string | null | undefined; - force: boolean; - machineId: string; - replicaCount: number; - stalled: boolean; - status: DrainProgressStatus3; -}; - -export type DrainProgressUnion3 = DrainProgress3 | any; +export type DataReason45 = ClosedEnum; -export const UtilizationUnit3 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const StatusSeverity45 = { + Info: "info", + Warning: "warning", + Error: "error", } as const; -export type UtilizationUnit3 = ClosedEnum; - -export type Utilization3 = { - unit: UtilizationUnit3; - value: number; -}; - -export type UtilizationUnion3 = Utilization3 | any; - -export type Recommendation3 = { - desiredMachines: number; - reason?: string | null | undefined; - unschedulableReplicas?: number | null | undefined; - utilization?: Utilization3 | any | null | undefined; -}; - -export type RecommendationUnion3 = Recommendation3 | any; +export type StatusSeverity45 = ClosedEnum; -export type CapacityGroup3 = { - capacityBlocker?: CapacityBlocker3 | any | null | undefined; - currentMachines: number; - desiredMachines: number; - drainProgress?: DrainProgress3 | any | null | undefined; - groupId: string; - instanceType?: string | null | undefined; - maxMachines?: number | null | undefined; - minMachines?: number | null | undefined; - recommendation?: Recommendation3 | any | null | undefined; +export type DataCollectionIssue45 = { + message: string; + reason: DataReason45; + severity: StatusSeverity45; + source: string; }; -export const CpuUnit9 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const DataHealth45 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", } as const; -export type CpuUnit9 = ClosedEnum; - -export type Cpu9 = { - unit: CpuUnit9; - value: number; -}; - -export type CpuUnion9 = Cpu9 | any; +export type DataHealth45 = ClosedEnum; -export const MemoryUnit9 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const StatusLifecycle45 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", } as const; -export type MemoryUnit9 = ClosedEnum; - -export type Memory9 = { - unit: MemoryUnit9; - value: number; -}; - -export type MemoryUnion9 = Memory9 | any; +export type StatusLifecycle45 = ClosedEnum; -export type Nodes3 = { - current?: number | null | undefined; - desired?: number | null | undefined; - ready?: number | null | undefined; +export type ResourceHeartbeatStatus45 = { + collectionIssues: Array; + health: DataHealth45; + lifecycle: StatusLifecycle45; + message?: string | null | undefined; + partial: boolean; + stale: boolean; }; -export type ProviderFleet3 = { - currentMachines: number; - desiredMachines: number; - groupId: string; - location?: string | null | undefined; - providerId: string; +export type DataLocal10 = { + configured: boolean; + identity: string; + status: ResourceHeartbeatStatus45; + backend: "local"; }; -export const DataReason21 = { +export const DataReason44 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason21 = ClosedEnum; +export type DataReason44 = ClosedEnum; -export const StatusSeverity21 = { +export const StatusSeverity44 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity21 = ClosedEnum; +export type StatusSeverity44 = ClosedEnum; -export type DataCollectionIssue21 = { +export type DataCollectionIssue44 = { message: string; - reason: DataReason21; - severity: StatusSeverity21; + reason: DataReason44; + severity: StatusSeverity44; source: string; }; -export const DataHealth21 = { +export const DataHealth44 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth21 = ClosedEnum; +export type DataHealth44 = ClosedEnum; -export const StatusLifecycle21 = { +export const StatusLifecycle44 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -9096,195 +9244,141 @@ export const StatusLifecycle21 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle21 = ClosedEnum; +export type StatusLifecycle44 = ClosedEnum; -export type ResourceHeartbeatStatus21 = { - collectionIssues: Array; - health: DataHealth21; - lifecycle: StatusLifecycle21; +export type ResourceHeartbeatStatus44 = { + collectionIssues: Array; + health: DataHealth44; + lifecycle: StatusLifecycle44; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAzure2 = { - backendClusterId?: string | null | undefined; - capacityGroups: Array; - cpu?: Cpu9 | any | null | undefined; - memory?: Memory9 | any | null | undefined; - name: string; - nodes: Nodes3; - providerFleets: Array; - region?: string | null | undefined; - status: ResourceHeartbeatStatus21; - backend: "azure"; -}; - -export const Category2 = { - Quota: "quota", - Capacity: "capacity", - Allocation: "allocation", - Other: "other", -} as const; -export type Category2 = ClosedEnum; - -export type CapacityBlocker2 = { - category: Category2; - message: string; - observedAt: Date; - providerCode?: string | null | undefined; - providerReference?: string | null | undefined; -}; - -export type CapacityBlockerUnion2 = CapacityBlocker2 | any; - -export type Blocker2 = { - reason: string; - replicaId: string; - schedulingMode: string; - state: string; - workloadName: string; +export type DataAzureManagedIdentity1 = { + clientId?: string | null | undefined; + customRoleDefinitionCount: number; + customRoleDefinitionIds: Array; + isolationScope?: string | null | undefined; + location: string; + managedTagCount: number; + name: string; + principalId?: string | null | undefined; + resourceGroup: string; + resourceId: string; + roleAssignmentCount: number; + roleAssignmentIds: Array; + stackPermissionsApplied: boolean; + status: ResourceHeartbeatStatus44; + tenantId?: string | null | undefined; + type?: string | null | undefined; + backend: "azureManagedIdentity"; }; -export const DrainProgressStatus2 = { - Draining: "draining", - Drained: "drained", - Terminating: "terminating", +export const DataReason43 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", } as const; -export type DrainProgressStatus2 = ClosedEnum; - -export type DrainProgress2 = { - blockers?: Array | undefined; - drainDeadlineAt?: string | null | undefined; - drainRequestedAt?: string | null | undefined; - drainedAt?: string | null | undefined; - force: boolean; - machineId: string; - replicaCount: number; - stalled: boolean; - status: DrainProgressStatus2; -}; - -export type DrainProgressUnion2 = DrainProgress2 | any; +export type DataReason43 = ClosedEnum; -export const UtilizationUnit2 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const StatusSeverity43 = { + Info: "info", + Warning: "warning", + Error: "error", } as const; -export type UtilizationUnit2 = ClosedEnum; - -export type Utilization2 = { - unit: UtilizationUnit2; - value: number; -}; - -export type UtilizationUnion2 = Utilization2 | any; - -export type Recommendation2 = { - desiredMachines: number; - reason?: string | null | undefined; - unschedulableReplicas?: number | null | undefined; - utilization?: Utilization2 | any | null | undefined; -}; - -export type RecommendationUnion2 = Recommendation2 | any; +export type StatusSeverity43 = ClosedEnum; -export type CapacityGroup2 = { - capacityBlocker?: CapacityBlocker2 | any | null | undefined; - currentMachines: number; - desiredMachines: number; - drainProgress?: DrainProgress2 | any | null | undefined; - groupId: string; - instanceType?: string | null | undefined; - maxMachines?: number | null | undefined; - minMachines?: number | null | undefined; - recommendation?: Recommendation2 | any | null | undefined; +export type DataCollectionIssue43 = { + message: string; + reason: DataReason43; + severity: StatusSeverity43; + source: string; }; -export const CpuUnit8 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const DataHealth43 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", } as const; -export type CpuUnit8 = ClosedEnum; - -export type Cpu8 = { - unit: CpuUnit8; - value: number; -}; - -export type CpuUnion8 = Cpu8 | any; +export type DataHealth43 = ClosedEnum; -export const MemoryUnit8 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const StatusLifecycle43 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", } as const; -export type MemoryUnit8 = ClosedEnum; - -export type Memory8 = { - unit: MemoryUnit8; - value: number; -}; - -export type MemoryUnion8 = Memory8 | any; +export type StatusLifecycle43 = ClosedEnum; -export type Nodes2 = { - current?: number | null | undefined; - desired?: number | null | undefined; - ready?: number | null | undefined; +export type ResourceHeartbeatStatus43 = { + collectionIssues: Array; + health: DataHealth43; + lifecycle: StatusLifecycle43; + message?: string | null | undefined; + partial: boolean; + stale: boolean; }; -export type ProviderFleet2 = { - currentMachines: number; - desiredMachines: number; - groupId: string; - location?: string | null | undefined; - providerId: string; +export type DataGcpServiceAccount1 = { + description?: string | null | undefined; + disabled?: boolean | null | undefined; + displayName?: string | null | undefined; + email: string; + etag?: string | null | undefined; + name?: string | null | undefined; + oauth2ClientId?: string | null | undefined; + projectBindingCount: number; + projectId?: string | null | undefined; + projectRoles: Array; + serviceAccountBindingCount: number; + serviceAccountRoles: Array; + status: ResourceHeartbeatStatus43; + uniqueId?: string | null | undefined; + backend: "gcpServiceAccount"; }; -export const DataReason20 = { +export const DataReason42 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason20 = ClosedEnum; +export type DataReason42 = ClosedEnum; -export const StatusSeverity20 = { +export const StatusSeverity42 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity20 = ClosedEnum; +export type StatusSeverity42 = ClosedEnum; -export type DataCollectionIssue20 = { +export type DataCollectionIssue42 = { message: string; - reason: DataReason20; - severity: StatusSeverity20; + reason: DataReason42; + severity: StatusSeverity42; source: string; }; -export const DataHealth20 = { +export const DataHealth42 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth20 = ClosedEnum; +export type DataHealth42 = ClosedEnum; -export const StatusLifecycle20 = { +export const StatusLifecycle42 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -9296,195 +9390,215 @@ export const StatusLifecycle20 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle20 = ClosedEnum; +export type StatusLifecycle42 = ClosedEnum; -export type ResourceHeartbeatStatus20 = { - collectionIssues: Array; - health: DataHealth20; - lifecycle: StatusLifecycle20; +export type ResourceHeartbeatStatus42 = { + collectionIssues: Array; + health: DataHealth42; + lifecycle: StatusLifecycle42; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataGcp2 = { - backendClusterId?: string | null | undefined; - capacityGroups: Array; - cpu?: Cpu8 | any | null | undefined; - memory?: Memory8 | any | null | undefined; - name: string; - nodes: Nodes2; - providerFleets: Array; - region?: string | null | undefined; - status: ResourceHeartbeatStatus20; - backend: "gcp"; +export type DataAwsIamRole1 = { + assumeRolePolicyPresent: boolean; + attachedPolicyCount: number; + attachedPolicyNames: Array; + createDate: string; + description?: string | null | undefined; + inlinePolicyCount: number; + inlinePolicyNames: Array; + lastUsedDate?: string | null | undefined; + lastUsedRegion?: string | null | undefined; + managedTagCount: number; + maxSessionDuration?: number | null | undefined; + path: string; + permissionsBoundaryArn?: string | null | undefined; + permissionsBoundaryType?: string | null | undefined; + roleArn: string; + roleId: string; + roleName: string; + stackPermissionsApplied: boolean; + status: ResourceHeartbeatStatus42; + tagCount: number; + backend: "awsIamRole"; }; -export const Category1 = { - Quota: "quota", - Capacity: "capacity", - Allocation: "allocation", - Other: "other", -} as const; -export type Category1 = ClosedEnum; +export type SyncReconcileRequestDataUnion10 = + | DataAwsIamRole1 + | DataGcpServiceAccount1 + | DataAzureManagedIdentity1 + | DataLocal10; -export type CapacityBlocker1 = { - category: Category1; - message: string; - observedAt: Date; - providerCode?: string | null | undefined; - providerReference?: string | null | undefined; +export type DataServiceAccount = { + data: + | DataAwsIamRole1 + | DataGcpServiceAccount1 + | DataAzureManagedIdentity1 + | DataLocal10; + resourceType: "service-account"; }; -export type CapacityBlockerUnion1 = CapacityBlocker1 | any; - -export type Blocker1 = { - reason: string; - replicaId: string; - schedulingMode: string; - state: string; - workloadName: string; -}; +export const DataReason41 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type DataReason41 = ClosedEnum; -export const DrainProgressStatus1 = { - Draining: "draining", - Drained: "drained", - Terminating: "terminating", +export const StatusSeverity41 = { + Info: "info", + Warning: "warning", + Error: "error", } as const; -export type DrainProgressStatus1 = ClosedEnum; +export type StatusSeverity41 = ClosedEnum; -export type DrainProgress1 = { - blockers?: Array | undefined; - drainDeadlineAt?: string | null | undefined; - drainRequestedAt?: string | null | undefined; - drainedAt?: string | null | undefined; - force: boolean; - machineId: string; - replicaCount: number; - stalled: boolean; - status: DrainProgressStatus1; +export type DataCollectionIssue41 = { + message: string; + reason: DataReason41; + severity: StatusSeverity41; + source: string; }; -export type DrainProgressUnion1 = DrainProgress1 | any; +export const DataHealth41 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type DataHealth41 = ClosedEnum; -export const UtilizationUnit1 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const StatusLifecycle41 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", } as const; -export type UtilizationUnit1 = ClosedEnum; +export type StatusLifecycle41 = ClosedEnum; -export type Utilization1 = { - unit: UtilizationUnit1; - value: number; +export type ResourceHeartbeatStatus41 = { + collectionIssues: Array; + health: DataHealth41; + lifecycle: StatusLifecycle41; + message?: string | null | undefined; + partial: boolean; + stale: boolean; }; -export type UtilizationUnion1 = Utilization1 | any; - -export type Recommendation1 = { - desiredMachines: number; - reason?: string | null | undefined; - unschedulableReplicas?: number | null | undefined; - utilization?: Utilization1 | any | null | undefined; +export type DataLocal9 = { + isDirectory?: boolean | null | undefined; + modifiedAt?: Date | null | undefined; + path: string; + pathExists: boolean; + readonly?: boolean | null | undefined; + secretMetadataListed: boolean; + status: ResourceHeartbeatStatus41; + backend: "local"; }; -export type RecommendationUnion1 = Recommendation1 | any; - -export type CapacityGroup1 = { - capacityBlocker?: CapacityBlocker1 | any | null | undefined; - currentMachines: number; - desiredMachines: number; - drainProgress?: DrainProgress1 | any | null | undefined; - groupId: string; - instanceType?: string | null | undefined; - maxMachines?: number | null | undefined; - minMachines?: number | null | undefined; - recommendation?: Recommendation1 | any | null | undefined; -}; +export const DataReason40 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type DataReason40 = ClosedEnum; -export const CpuUnit7 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const StatusSeverity40 = { + Info: "info", + Warning: "warning", + Error: "error", } as const; -export type CpuUnit7 = ClosedEnum; +export type StatusSeverity40 = ClosedEnum; -export type Cpu7 = { - unit: CpuUnit7; - value: number; +export type DataCollectionIssue40 = { + message: string; + reason: DataReason40; + severity: StatusSeverity40; + source: string; }; -export type CpuUnion7 = Cpu7 | any; - -export const MemoryUnit7 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const DataHealth40 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", } as const; -export type MemoryUnit7 = ClosedEnum; - -export type Memory7 = { - unit: MemoryUnit7; - value: number; -}; +export type DataHealth40 = ClosedEnum; -export type MemoryUnion7 = Memory7 | any; +export const StatusLifecycle40 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type StatusLifecycle40 = ClosedEnum; -export type Nodes1 = { - current?: number | null | undefined; - desired?: number | null | undefined; - ready?: number | null | undefined; +export type ResourceHeartbeatStatus40 = { + collectionIssues: Array; + health: DataHealth40; + lifecycle: StatusLifecycle40; + message?: string | null | undefined; + partial: boolean; + stale: boolean; }; -export type ProviderFleet1 = { - currentMachines: number; - desiredMachines: number; - groupId: string; - location?: string | null | undefined; - providerId: string; +export type DataKubernetesSecret = { + namespace: string; + prefix: string; + secretMetadataListed: boolean; + status: ResourceHeartbeatStatus40; + backend: "kubernetesSecret"; }; -export const DataReason19 = { +export const DataReason39 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason19 = ClosedEnum; +export type DataReason39 = ClosedEnum; -export const StatusSeverity19 = { +export const StatusSeverity39 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity19 = ClosedEnum; +export type StatusSeverity39 = ClosedEnum; -export type DataCollectionIssue19 = { +export type DataCollectionIssue39 = { message: string; - reason: DataReason19; - severity: StatusSeverity19; + reason: DataReason39; + severity: StatusSeverity39; source: string; }; -export const DataHealth19 = { +export const DataHealth39 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth19 = ClosedEnum; +export type DataHealth39 = ClosedEnum; -export const StatusLifecycle19 = { +export const StatusLifecycle39 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -9496,157 +9610,221 @@ export const StatusLifecycle19 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle19 = ClosedEnum; +export type StatusLifecycle39 = ClosedEnum; -export type ResourceHeartbeatStatus19 = { - collectionIssues: Array; - health: DataHealth19; - lifecycle: StatusLifecycle19; +export type ResourceHeartbeatStatus39 = { + collectionIssues: Array; + health: DataHealth39; + lifecycle: StatusLifecycle39; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAws2 = { - backendClusterId?: string | null | undefined; - capacityGroups: Array; - cpu?: Cpu7 | any | null | undefined; - memory?: Memory7 | any | null | undefined; +export type DataAzureKeyVault1 = { + accessPolicyCount: number; + location?: string | null | undefined; name: string; - nodes: Nodes1; - providerFleets: Array; - region?: string | null | undefined; - status: ResourceHeartbeatStatus19; - backend: "aws"; + privateEndpointConnectionCount: number; + provisioningState?: string | null | undefined; + publicNetworkAccess: string; + purgeProtectionEnabled?: boolean | null | undefined; + rbacAuthorizationEnabled: boolean; + resourceGroup?: string | null | undefined; + resourceId?: string | null | undefined; + secretMetadataListed: boolean; + skuFamily?: string | null | undefined; + skuName?: string | null | undefined; + softDeleteEnabled: boolean; + softDeleteRetentionDays: number; + status: ResourceHeartbeatStatus39; + vaultUri?: string | null | undefined; + backend: "azureKeyVault"; }; -export type SyncReconcileRequestDataUnion5 = - | DataAws2 - | DataGcp2 - | DataAzure2 - | DataMachines2 - | DataLocal5; - -export type DataComputeCluster = { - data: DataAws2 | DataGcp2 | DataAzure2 | DataMachines2 | DataLocal5; - resourceType: "compute-cluster"; -}; +export const DataReason38 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type DataReason38 = ClosedEnum; -export const DaemonInstanceCpuUnit = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const StatusSeverity38 = { + Info: "info", + Warning: "warning", + Error: "error", } as const; -export type DaemonInstanceCpuUnit = ClosedEnum; +export type StatusSeverity38 = ClosedEnum; -export type DaemonInstanceCpu = { - unit: DaemonInstanceCpuUnit; - value: number; +export type DataCollectionIssue38 = { + message: string; + reason: DataReason38; + severity: StatusSeverity38; + source: string; }; -export type DaemonInstanceCpuUnion5 = DaemonInstanceCpu | any; - -export const DaemonInstanceKind = { - Container: "container", - Process: "process", - Daemon: "daemon", +export const DataHealth38 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", } as const; -export type DaemonInstanceKind = ClosedEnum; +export type DataHealth38 = ClosedEnum; -export const DaemonInstanceMemoryUnit = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const StatusLifecycle38 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", } as const; -export type DaemonInstanceMemoryUnit = ClosedEnum< - typeof DaemonInstanceMemoryUnit ->; +export type StatusLifecycle38 = ClosedEnum; -export type DaemonInstanceMemory = { - unit: DaemonInstanceMemoryUnit; - value: number; +export type ResourceHeartbeatStatus38 = { + collectionIssues: Array; + health: DataHealth38; + lifecycle: StatusLifecycle38; + message?: string | null | undefined; + partial: boolean; + stale: boolean; }; -export type DaemonInstanceMemoryUnion5 = DaemonInstanceMemory | any; - -export type DaemonInstance5 = { - cpu?: DaemonInstanceCpu | any | null | undefined; - kind: DaemonInstanceKind; - memory?: DaemonInstanceMemory | any | null | undefined; - name: string; - phase?: string | null | undefined; - pid?: number | null | undefined; - ready: boolean; - restartCount?: number | null | undefined; - unitId: string; +export type DataGcpSecretManager = { + location: string; + prefix: string; + projectId: string; + secretMetadataListed: boolean; + status: ResourceHeartbeatStatus38; + backend: "gcpSecretManager"; }; -export type DaemonInstanceUnion = DaemonInstance5 | any; +export const DataReason37 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type DataReason37 = ClosedEnum; -export const EventSeverity3 = { +export const StatusSeverity37 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type EventSeverity3 = ClosedEnum; +export type StatusSeverity37 = ClosedEnum; -export type SyncReconcileRequestSubject3 = { - id?: string | null | undefined; - kind: string; - name?: string | null | undefined; +export type DataCollectionIssue37 = { + message: string; + reason: DataReason37; + severity: StatusSeverity37; + source: string; }; -export type SyncReconcileRequestSubjectUnion3 = - | SyncReconcileRequestSubject3 - | any; +export const DataHealth37 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type DataHealth37 = ClosedEnum; -export type SyncReconcileRequestEvent11 = { - kind: string; - message: string; - raw?: any | null | undefined; - severity: EventSeverity3; - subject?: SyncReconcileRequestSubject3 | any | null | undefined; - timestamp: Date; +export const StatusLifecycle37 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type StatusLifecycle37 = ClosedEnum; + +export type ResourceHeartbeatStatus37 = { + collectionIssues: Array; + health: DataHealth37; + lifecycle: StatusLifecycle37; + message?: string | null | undefined; + partial: boolean; + stale: boolean; }; -export const DataReason18 = { +export type DataAwsParameterStore = { + accountId: string; + hasMoreParameters?: boolean | null | undefined; + latestModifiedAt?: Date | null | undefined; + parameterMetadataSampled: boolean; + prefix: string; + region: string; + sampledAdvancedTierCount?: number | null | undefined; + sampledKmsKeyMetadataPresentCount?: number | null | undefined; + sampledParameterCount?: number | null | undefined; + sampledSecureStringCount?: number | null | undefined; + sampledStringCount?: number | null | undefined; + sampledStringListCount?: number | null | undefined; + status: ResourceHeartbeatStatus37; + backend: "awsParameterStore"; +}; + +export type SyncReconcileRequestDataUnion9 = + | DataAwsParameterStore + | DataGcpSecretManager + | DataAzureKeyVault1 + | DataKubernetesSecret + | DataLocal9; + +export type DataVault = { + data: + | DataAwsParameterStore + | DataGcpSecretManager + | DataAzureKeyVault1 + | DataKubernetesSecret + | DataLocal9; + resourceType: "vault"; +}; + +export const DataReason36 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason18 = ClosedEnum; +export type DataReason36 = ClosedEnum; -export const StatusSeverity18 = { +export const StatusSeverity36 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity18 = ClosedEnum; +export type StatusSeverity36 = ClosedEnum; -export type DataCollectionIssue18 = { +export type DataCollectionIssue36 = { message: string; - reason: DataReason18; - severity: StatusSeverity18; + reason: DataReason36; + severity: StatusSeverity36; source: string; }; -export const DataHealth18 = { +export const DataHealth36 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth18 = ClosedEnum; +export type DataHealth36 = ClosedEnum; -export const StatusLifecycle18 = { +export const StatusLifecycle36 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -9658,194 +9836,182 @@ export const StatusLifecycle18 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle18 = ClosedEnum; +export type StatusLifecycle36 = ClosedEnum; -export type ResourceHeartbeatStatus18 = { - collectionIssues: Array; - health: DataHealth18; - lifecycle: StatusLifecycle18; +export type ResourceHeartbeatStatus36 = { + collectionIssues: Array; + health: DataHealth36; + lifecycle: StatusLifecycle36; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataLocal4 = { - commandSupported: boolean; - daemonInstance?: DaemonInstance5 | any | null | undefined; - daemonName?: string | undefined; - events: Array; - exitReason?: string | null | undefined; - imagePathPresent: boolean; - pid?: number | null | undefined; - restartCount?: number | null | undefined; - runtimeId: string; - status: ResourceHeartbeatStatus18; +export type DataLocal8 = { + name: string; + port?: number | null | undefined; + processRunning: boolean; + status: ResourceHeartbeatStatus36; + version: string; backend: "local"; }; -export const CpuUnit6 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const DataReason35 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", } as const; -export type CpuUnit6 = ClosedEnum; - -export type Cpu6 = { - unit: CpuUnit6; - value: number; -}; - -export type CpuUnion6 = Cpu6 | any; - -export type InvolvedObject8 = { - apiVersion?: string | null | undefined; - fieldPath?: string | null | undefined; - kind?: string | null | undefined; - name?: string | null | undefined; - namespace?: string | null | undefined; - resourceVersion?: string | null | undefined; - uid?: string | null | undefined; -}; - -export type InvolvedObjectUnion8 = InvolvedObject8 | any; - -export type SyncReconcileRequestSource8 = { - component?: string | null | undefined; - host?: string | null | undefined; -}; +export type DataReason35 = ClosedEnum; -export type SourceUnion8 = SyncReconcileRequestSource8 | any; +export const StatusSeverity35 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type StatusSeverity35 = ClosedEnum; -export type SyncReconcileRequestEvent10 = { - count?: number | null | undefined; - eventTime?: Date | null | undefined; - firstTimestamp?: Date | null | undefined; - involvedObject?: InvolvedObject8 | any | null | undefined; - lastTimestamp?: Date | null | undefined; +export type DataCollectionIssue35 = { message: string; - raw?: any | null | undefined; - reason: string; - source?: SyncReconcileRequestSource8 | any | null | undefined; - type?: string | null | undefined; + reason: DataReason35; + severity: StatusSeverity35; + source: string; }; -export const MemoryUnit6 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const DataHealth35 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", } as const; -export type MemoryUnit6 = ClosedEnum; - -export type Memory6 = { - unit: MemoryUnit6; - value: number; -}; - -export type MemoryUnion6 = Memory6 | any; +export type DataHealth35 = ClosedEnum; -export const CpuPodUnit3 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const StatusLifecycle35 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", } as const; -export type CpuPodUnit3 = ClosedEnum; +export type StatusLifecycle35 = ClosedEnum; -export type CpuPod3 = { - unit: CpuPodUnit3; - value: number; +export type ResourceHeartbeatStatus35 = { + collectionIssues: Array; + health: DataHealth35; + lifecycle: StatusLifecycle35; + message?: string | null | undefined; + partial: boolean; + stale: boolean; }; -export type PodCpuUnion3 = CpuPod3 | any; +export type DataFlexibleServer = { + serverName: string; + state?: string | null | undefined; + status: ResourceHeartbeatStatus35; + version?: string | null | undefined; + backend: "flexibleServer"; +}; -export const MemoryPodUnit3 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const DataReason34 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", } as const; -export type MemoryPodUnit3 = ClosedEnum; +export type DataReason34 = ClosedEnum; -export type MemoryPod3 = { - unit: MemoryPodUnit3; - value: number; +export const StatusSeverity34 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type StatusSeverity34 = ClosedEnum; + +export type DataCollectionIssue34 = { + message: string; + reason: DataReason34; + severity: StatusSeverity34; + source: string; }; -export type PodMemoryUnion3 = MemoryPod3 | any; +export const DataHealth34 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type DataHealth34 = ClosedEnum; -export type OwnerReference3 = { - controller: boolean; - kind: string; - name: string; - uid: string; -}; +export const StatusLifecycle34 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type StatusLifecycle34 = ClosedEnum; -export type Pod3 = { - cpu?: CpuPod3 | any | null | undefined; - memory?: MemoryPod3 | any | null | undefined; - name: string; - nodeName?: string | null | undefined; - ownerReferences: Array; - phase?: string | null | undefined; - podIp?: string | null | undefined; - ready: boolean; - restartCount: number; - terminatedReason?: string | null | undefined; - uid?: string | null | undefined; - waitingReason?: string | null | undefined; +export type ResourceHeartbeatStatus34 = { + collectionIssues: Array; + health: DataHealth34; + lifecycle: StatusLifecycle34; + message?: string | null | undefined; + partial: boolean; + stale: boolean; }; -export type Replicas4 = { - available?: number | null | undefined; - current?: number | null | undefined; - desired?: number | null | undefined; - misscheduled?: number | null | undefined; - ready?: number | null | undefined; - updated?: number | null | undefined; +export type DataCloudSQL = { + databaseVersion?: string | null | undefined; + instanceName: string; + state?: string | null | undefined; + status: ResourceHeartbeatStatus34; + backend: "cloudSql"; }; -export const DataReason17 = { +export const DataReason33 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason17 = ClosedEnum; +export type DataReason33 = ClosedEnum; -export const StatusSeverity17 = { +export const StatusSeverity33 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity17 = ClosedEnum; +export type StatusSeverity33 = ClosedEnum; -export type DataCollectionIssue17 = { +export type DataCollectionIssue33 = { message: string; - reason: DataReason17; - severity: StatusSeverity17; + reason: DataReason33; + severity: StatusSeverity33; source: string; }; -export const DataHealth17 = { +export const DataHealth33 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth17 = ClosedEnum; +export type DataHealth33 = ClosedEnum; -export const StatusLifecycle17 = { +export const StatusLifecycle33 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -9857,175 +10023,79 @@ export const StatusLifecycle17 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle17 = ClosedEnum; +export type StatusLifecycle33 = ClosedEnum; -export type ResourceHeartbeatStatus17 = { - collectionIssues: Array; - health: DataHealth17; - lifecycle: StatusLifecycle17; +export type ResourceHeartbeatStatus33 = { + collectionIssues: Array; + health: DataHealth33; + lifecycle: StatusLifecycle33; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type WorkloadCondition3 = { - lastTransitionTime?: Date | null | undefined; - message?: string | null | undefined; - reason?: string | null | undefined; - status: string; - type: string; -}; - -export type Workload3 = { - availableReplicas?: number | null | undefined; - conditions: Array; - desiredGeneration?: number | null | undefined; - desiredReplicas?: number | null | undefined; - observedGeneration?: number | null | undefined; - readyReplicas?: number | null | undefined; - rolloutReason?: string | null | undefined; - updatedReplicas?: number | null | undefined; -}; - -export type WorkloadUnion3 = Workload3 | any; - -export type DataKubernetes3 = { - commandSupported: boolean; - cpu?: Cpu6 | any | null | undefined; - events: Array; - memory?: Memory6 | any | null | undefined; - name: string; - namespace: string; - pods: Array; - replicas: Replicas4; - restarts?: number | null | undefined; - status: ResourceHeartbeatStatus17; - workload?: Workload3 | any | null | undefined; - backend: "kubernetes"; -}; - -export const CpuDaemonInstanceUnit4 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type CpuDaemonInstanceUnit4 = ClosedEnum; - -export type CpuDaemonInstance4 = { - unit: CpuDaemonInstanceUnit4; - value: number; -}; - -export type DaemonInstanceCpuUnion4 = CpuDaemonInstance4 | any; - -export const MemoryDaemonInstanceUnit4 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type MemoryDaemonInstanceUnit4 = ClosedEnum< - typeof MemoryDaemonInstanceUnit4 ->; - -export type MemoryDaemonInstance4 = { - unit: MemoryDaemonInstanceUnit4; - value: number; -}; - -export type DaemonInstanceMemoryUnion4 = MemoryDaemonInstance4 | any; - -export type DaemonInstance4 = { - cpu?: CpuDaemonInstance4 | any | null | undefined; - ip?: string | null | undefined; - machineId?: string | null | undefined; - memory?: MemoryDaemonInstance4 | any | null | undefined; - message?: string | null | undefined; - metricsHealthy?: boolean | null | undefined; - metricsLastUpdated?: string | null | undefined; - metricsStatus?: string | null | undefined; - name: string; - nodeName?: string | null | undefined; - phase?: string | null | undefined; - ready: boolean; - reason?: string | null | undefined; - replicaId: string; - restartCount?: number | null | undefined; - status?: string | null | undefined; - terminatedReason?: string | null | undefined; - waitingReason?: string | null | undefined; -}; - -export type InvolvedObject7 = { - details?: any | null | undefined; - id?: string | null | undefined; - kind?: string | null | undefined; - machineId?: string | null | undefined; - name?: string | null | undefined; - replicaId?: string | null | undefined; -}; - -export type InvolvedObjectUnion7 = InvolvedObject7 | any; - -export type SyncReconcileRequestSource7 = { - component?: string | null | undefined; - host?: string | null | undefined; +export type DataAurora = { + clusterIdentifier: string; + endpoint?: string | null | undefined; + engineVersion?: string | null | undefined; + /** + * True when a `minCapacity: 0` instance has not reached 0 ACU over the observation + * + * @remarks + * window — it is silently paying always-on prices (auto-pause verification). + */ + neverPauses: boolean; + /** + * Latest sampled `ServerlessDatabaseCapacity` (ACU). + */ + serverlessCapacity?: number | null | undefined; + status: ResourceHeartbeatStatus33; + backend: "aurora"; }; -export type SourceUnion7 = SyncReconcileRequestSource7 | any; +export type SyncReconcileRequestDataUnion8 = + | DataAurora + | DataCloudSQL + | DataFlexibleServer + | DataLocal8; -export type SyncReconcileRequestEvent9 = { - count?: number | null | undefined; - details?: any | null | undefined; - eventId?: string | null | undefined; - eventTime?: Date | null | undefined; - firstTimestamp?: Date | null | undefined; - involvedObject?: InvolvedObject7 | any | null | undefined; - lastTimestamp?: Date | null | undefined; - message: string; - raw?: any | null | undefined; - reason: string; - source?: SyncReconcileRequestSource7 | any | null | undefined; - type?: string | null | undefined; +export type DataPostgres = { + data: DataAurora | DataCloudSQL | DataFlexibleServer | DataLocal8; + resourceType: "postgres"; }; -export const DataReason16 = { +export const DataReason32 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason16 = ClosedEnum; +export type DataReason32 = ClosedEnum; -export const StatusSeverity16 = { +export const StatusSeverity32 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity16 = ClosedEnum; +export type StatusSeverity32 = ClosedEnum; -export type DataCollectionIssue16 = { +export type DataCollectionIssue32 = { message: string; - reason: DataReason16; - severity: StatusSeverity16; + reason: DataReason32; + severity: StatusSeverity32; source: string; }; -export const DataHealth16 = { +export const DataHealth32 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth16 = ClosedEnum; +export type DataHealth32 = ClosedEnum; -export const StatusLifecycle16 = { +export const StatusLifecycle32 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -10037,158 +10107,59 @@ export const StatusLifecycle16 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle16 = ClosedEnum; +export type StatusLifecycle32 = ClosedEnum; -export type ResourceHeartbeatStatus16 = { - collectionIssues: Array; - health: DataHealth16; - lifecycle: StatusLifecycle16; +export type ResourceHeartbeatStatus32 = { + collectionIssues: Array; + health: DataHealth32; + lifecycle: StatusLifecycle32; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataMachines1 = { - assignedMachines: number; - capacityGroup: string; - commandSupported: boolean; - daemonInstances: Array; - daemonName?: string | undefined; - desiredMachines: number; - events: Array; - healthyInstances: number; - horizonClusterId: string; - horizonStatus: string; - horizonStatusMessage?: string | null | undefined; - horizonStatusReason?: string | null | undefined; - latestUpdateTimestamp: string; - status: ResourceHeartbeatStatus16; - unavailableInstances: number; - backend: "machines"; -}; - -export const CpuDaemonInstanceUnit3 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type CpuDaemonInstanceUnit3 = ClosedEnum; - -export type CpuDaemonInstance3 = { - unit: CpuDaemonInstanceUnit3; - value: number; -}; - -export type DaemonInstanceCpuUnion3 = CpuDaemonInstance3 | any; - -export const MemoryDaemonInstanceUnit3 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type MemoryDaemonInstanceUnit3 = ClosedEnum< - typeof MemoryDaemonInstanceUnit3 ->; - -export type MemoryDaemonInstance3 = { - unit: MemoryDaemonInstanceUnit3; - value: number; -}; - -export type DaemonInstanceMemoryUnion3 = MemoryDaemonInstance3 | any; - -export type DaemonInstance3 = { - cpu?: CpuDaemonInstance3 | any | null | undefined; - ip?: string | null | undefined; - machineId?: string | null | undefined; - memory?: MemoryDaemonInstance3 | any | null | undefined; - message?: string | null | undefined; - metricsHealthy?: boolean | null | undefined; - metricsLastUpdated?: string | null | undefined; - metricsStatus?: string | null | undefined; +export type DataLocal7 = { + cloudMetadataSupported: boolean; + isDirectory?: boolean | null | undefined; name: string; - nodeName?: string | null | undefined; - phase?: string | null | undefined; - ready: boolean; - reason?: string | null | undefined; - replicaId: string; - restartCount?: number | null | undefined; - status?: string | null | undefined; - terminatedReason?: string | null | undefined; - waitingReason?: string | null | undefined; -}; - -export type InvolvedObject6 = { - details?: any | null | undefined; - id?: string | null | undefined; - kind?: string | null | undefined; - machineId?: string | null | undefined; - name?: string | null | undefined; - replicaId?: string | null | undefined; -}; - -export type InvolvedObjectUnion6 = InvolvedObject6 | any; - -export type SyncReconcileRequestSource6 = { - component?: string | null | undefined; - host?: string | null | undefined; -}; - -export type SourceUnion6 = SyncReconcileRequestSource6 | any; - -export type SyncReconcileRequestEvent8 = { - count?: number | null | undefined; - details?: any | null | undefined; - eventId?: string | null | undefined; - eventTime?: Date | null | undefined; - firstTimestamp?: Date | null | undefined; - involvedObject?: InvolvedObject6 | any | null | undefined; - lastTimestamp?: Date | null | undefined; - message: string; - raw?: any | null | undefined; - reason: string; - source?: SyncReconcileRequestSource6 | any | null | undefined; - type?: string | null | undefined; + path: string; + pathExists: boolean; + status: ResourceHeartbeatStatus32; + backend: "local"; }; -export const DataReason15 = { +export const DataReason31 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason15 = ClosedEnum; +export type DataReason31 = ClosedEnum; -export const StatusSeverity15 = { +export const StatusSeverity31 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity15 = ClosedEnum; +export type StatusSeverity31 = ClosedEnum; -export type DataCollectionIssue15 = { +export type DataCollectionIssue31 = { message: string; - reason: DataReason15; - severity: StatusSeverity15; + reason: DataReason31; + severity: StatusSeverity31; source: string; }; -export const DataHealth15 = { +export const DataHealth31 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth15 = ClosedEnum; +export type DataHealth31 = ClosedEnum; -export const StatusLifecycle15 = { +export const StatusLifecycle31 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -10200,158 +10171,146 @@ export const StatusLifecycle15 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle15 = ClosedEnum; +export type StatusLifecycle31 = ClosedEnum; -export type ResourceHeartbeatStatus15 = { - collectionIssues: Array; - health: DataHealth15; - lifecycle: StatusLifecycle15; +export type ResourceHeartbeatStatus31 = { + collectionIssues: Array; + health: DataHealth31; + lifecycle: StatusLifecycle31; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAzure1 = { - assignedMachines: number; - capacityGroup: string; - commandSupported: boolean; - daemonInstances: Array; - daemonName?: string | undefined; - desiredMachines: number; - events: Array; - healthyInstances: number; - horizonClusterId: string; - horizonStatus: string; - horizonStatusMessage?: string | null | undefined; - horizonStatusReason?: string | null | undefined; - latestUpdateTimestamp: string; - status: ResourceHeartbeatStatus15; - unavailableInstances: number; - backend: "azure"; +export type DataAzureTable = { + endpoint?: string | null | undefined; + resourceGroup?: string | null | undefined; + signedIdentifierCount?: number | null | undefined; + status: ResourceHeartbeatStatus31; + storageAccountKind?: string | null | undefined; + storageAccountLocation?: string | null | undefined; + storageAccountName: string; + storageAccountPrimaryStatus?: string | null | undefined; + storageAccountProvisioningState?: string | null | undefined; + storageAccountResourceId?: string | null | undefined; + tableExists: boolean; + tableName: string; + backend: "azureTable"; }; -export const CpuDaemonInstanceUnit2 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const DataReason30 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", } as const; -export type CpuDaemonInstanceUnit2 = ClosedEnum; - -export type CpuDaemonInstance2 = { - unit: CpuDaemonInstanceUnit2; - value: number; -}; - -export type DaemonInstanceCpuUnion2 = CpuDaemonInstance2 | any; +export type DataReason30 = ClosedEnum; -export const MemoryDaemonInstanceUnit2 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const StatusSeverity30 = { + Info: "info", + Warning: "warning", + Error: "error", } as const; -export type MemoryDaemonInstanceUnit2 = ClosedEnum< - typeof MemoryDaemonInstanceUnit2 ->; +export type StatusSeverity30 = ClosedEnum; -export type MemoryDaemonInstance2 = { - unit: MemoryDaemonInstanceUnit2; - value: number; +export type DataCollectionIssue30 = { + message: string; + reason: DataReason30; + severity: StatusSeverity30; + source: string; }; -export type DaemonInstanceMemoryUnion2 = MemoryDaemonInstance2 | any; +export const DataHealth30 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type DataHealth30 = ClosedEnum; -export type DaemonInstance2 = { - cpu?: CpuDaemonInstance2 | any | null | undefined; - ip?: string | null | undefined; - machineId?: string | null | undefined; - memory?: MemoryDaemonInstance2 | any | null | undefined; - message?: string | null | undefined; - metricsHealthy?: boolean | null | undefined; - metricsLastUpdated?: string | null | undefined; - metricsStatus?: string | null | undefined; - name: string; - nodeName?: string | null | undefined; - phase?: string | null | undefined; - ready: boolean; - reason?: string | null | undefined; - replicaId: string; - restartCount?: number | null | undefined; - status?: string | null | undefined; - terminatedReason?: string | null | undefined; - waitingReason?: string | null | undefined; -}; +export const StatusLifecycle30 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type StatusLifecycle30 = ClosedEnum; -export type InvolvedObject5 = { - details?: any | null | undefined; - id?: string | null | undefined; - kind?: string | null | undefined; - machineId?: string | null | undefined; - name?: string | null | undefined; - replicaId?: string | null | undefined; +export type ResourceHeartbeatStatus30 = { + collectionIssues: Array; + health: DataHealth30; + lifecycle: StatusLifecycle30; + message?: string | null | undefined; + partial: boolean; + stale: boolean; }; -export type InvolvedObjectUnion5 = InvolvedObject5 | any; - -export type SyncReconcileRequestSource5 = { - component?: string | null | undefined; - host?: string | null | undefined; +export type DataGcpFirestore = { + appEngineIntegrationMode?: string | null | undefined; + cmekEnabled: boolean; + concurrencyMode?: string | null | undefined; + createTime?: string | null | undefined; + databaseEdition?: string | null | undefined; + databaseName: string; + databaseType?: string | null | undefined; + deleteProtectionState?: string | null | undefined; + deleteTime?: string | null | undefined; + earliestVersionTime?: string | null | undefined; + endpoint?: string | null | undefined; + locationId?: string | null | undefined; + pointInTimeRecoveryEnablement?: string | null | undefined; + projectId?: string | null | undefined; + sourceInfoPresent: boolean; + status: ResourceHeartbeatStatus30; + updateTime?: string | null | undefined; + versionRetentionPeriod?: string | null | undefined; + backend: "gcpFirestore"; }; -export type SourceUnion5 = SyncReconcileRequestSource5 | any; - -export type SyncReconcileRequestEvent7 = { - count?: number | null | undefined; - details?: any | null | undefined; - eventId?: string | null | undefined; - eventTime?: Date | null | undefined; - firstTimestamp?: Date | null | undefined; - involvedObject?: InvolvedObject5 | any | null | undefined; - lastTimestamp?: Date | null | undefined; - message: string; - raw?: any | null | undefined; - reason: string; - source?: SyncReconcileRequestSource5 | any | null | undefined; - type?: string | null | undefined; +export type KeySchema = { + attributeName: string; + keyType: string; }; -export const DataReason14 = { +export const DataReason29 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason14 = ClosedEnum; +export type DataReason29 = ClosedEnum; -export const StatusSeverity14 = { +export const StatusSeverity29 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity14 = ClosedEnum; +export type StatusSeverity29 = ClosedEnum; -export type DataCollectionIssue14 = { +export type DataCollectionIssue29 = { message: string; - reason: DataReason14; - severity: StatusSeverity14; + reason: DataReason29; + severity: StatusSeverity29; source: string; }; -export const DataHealth14 = { +export const DataHealth29 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth14 = ClosedEnum; +export type DataHealth29 = ClosedEnum; -export const StatusLifecycle14 = { +export const StatusLifecycle29 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -10363,158 +10322,85 @@ export const StatusLifecycle14 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle14 = ClosedEnum; +export type StatusLifecycle29 = ClosedEnum; -export type ResourceHeartbeatStatus14 = { - collectionIssues: Array; - health: DataHealth14; - lifecycle: StatusLifecycle14; +export type ResourceHeartbeatStatus29 = { + collectionIssues: Array; + health: DataHealth29; + lifecycle: StatusLifecycle29; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataGcp1 = { - assignedMachines: number; - capacityGroup: string; - commandSupported: boolean; - daemonInstances: Array; - daemonName?: string | undefined; - desiredMachines: number; - events: Array; - healthyInstances: number; - horizonClusterId: string; - horizonStatus: string; - horizonStatusMessage?: string | null | undefined; - horizonStatusReason?: string | null | undefined; - latestUpdateTimestamp: string; - status: ResourceHeartbeatStatus14; - unavailableInstances: number; - backend: "gcp"; -}; - -export const CpuDaemonInstanceUnit1 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type CpuDaemonInstanceUnit1 = ClosedEnum; - -export type CpuDaemonInstance1 = { - unit: CpuDaemonInstanceUnit1; - value: number; -}; - -export type DaemonInstanceCpuUnion1 = CpuDaemonInstance1 | any; - -export const MemoryDaemonInstanceUnit1 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type MemoryDaemonInstanceUnit1 = ClosedEnum< - typeof MemoryDaemonInstanceUnit1 ->; - -export type MemoryDaemonInstance1 = { - unit: MemoryDaemonInstanceUnit1; - value: number; -}; - -export type DaemonInstanceMemoryUnion1 = MemoryDaemonInstance1 | any; - -export type DaemonInstance1 = { - cpu?: CpuDaemonInstance1 | any | null | undefined; - ip?: string | null | undefined; - machineId?: string | null | undefined; - memory?: MemoryDaemonInstance1 | any | null | undefined; - message?: string | null | undefined; - metricsHealthy?: boolean | null | undefined; - metricsLastUpdated?: string | null | undefined; - metricsStatus?: string | null | undefined; +export type DataAwsDynamoDb = { + billingMode?: string | null | undefined; + deletionProtectionEnabled?: boolean | null | undefined; + globalSecondaryIndexCount?: number | null | undefined; + itemCount?: number | null | undefined; + keySchema: Array; + localSecondaryIndexCount?: number | null | undefined; name: string; - nodeName?: string | null | undefined; - phase?: string | null | undefined; - ready: boolean; - reason?: string | null | undefined; - replicaId: string; - restartCount?: number | null | undefined; - status?: string | null | undefined; - terminatedReason?: string | null | undefined; - waitingReason?: string | null | undefined; -}; - -export type InvolvedObject4 = { - details?: any | null | undefined; - id?: string | null | undefined; - kind?: string | null | undefined; - machineId?: string | null | undefined; - name?: string | null | undefined; - replicaId?: string | null | undefined; -}; - -export type InvolvedObjectUnion4 = InvolvedObject4 | any; - -export type SyncReconcileRequestSource4 = { - component?: string | null | undefined; - host?: string | null | undefined; + region?: string | null | undefined; + replicaCount?: number | null | undefined; + restoreInProgress?: boolean | null | undefined; + sseStatus?: string | null | undefined; + sseType?: string | null | undefined; + status: ResourceHeartbeatStatus29; + streamEnabled?: boolean | null | undefined; + streamViewType?: string | null | undefined; + tableArn?: string | null | undefined; + tableClass?: string | null | undefined; + tableSizeBytes?: number | null | undefined; + tableStatus?: string | null | undefined; + ttlAttributeName?: string | null | undefined; + ttlStatus?: string | null | undefined; + backend: "awsDynamoDb"; }; -export type SourceUnion4 = SyncReconcileRequestSource4 | any; +export type SyncReconcileRequestDataUnion7 = + | DataAwsDynamoDb + | DataGcpFirestore + | DataAzureTable + | DataLocal7; -export type SyncReconcileRequestEvent6 = { - count?: number | null | undefined; - details?: any | null | undefined; - eventId?: string | null | undefined; - eventTime?: Date | null | undefined; - firstTimestamp?: Date | null | undefined; - involvedObject?: InvolvedObject4 | any | null | undefined; - lastTimestamp?: Date | null | undefined; - message: string; - raw?: any | null | undefined; - reason: string; - source?: SyncReconcileRequestSource4 | any | null | undefined; - type?: string | null | undefined; +export type DataKv = { + data: DataAwsDynamoDb | DataGcpFirestore | DataAzureTable | DataLocal7; + resourceType: "kv"; }; -export const DataReason13 = { +export const DataReason28 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason13 = ClosedEnum; +export type DataReason28 = ClosedEnum; -export const StatusSeverity13 = { +export const StatusSeverity28 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity13 = ClosedEnum; +export type StatusSeverity28 = ClosedEnum; -export type DataCollectionIssue13 = { +export type DataCollectionIssue28 = { message: string; - reason: DataReason13; - severity: StatusSeverity13; + reason: DataReason28; + severity: StatusSeverity28; source: string; }; -export const DataHealth13 = { +export const DataHealth28 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth13 = ClosedEnum; +export type DataHealth28 = ClosedEnum; -export const StatusLifecycle13 = { +export const StatusLifecycle28 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -10526,204 +10412,239 @@ export const StatusLifecycle13 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle13 = ClosedEnum; +export type StatusLifecycle28 = ClosedEnum; -export type ResourceHeartbeatStatus13 = { - collectionIssues: Array; - health: DataHealth13; - lifecycle: StatusLifecycle13; +export type ResourceHeartbeatStatus28 = { + collectionIssues: Array; + health: DataHealth28; + lifecycle: StatusLifecycle28; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAws1 = { - assignedMachines: number; - capacityGroup: string; - commandSupported: boolean; - daemonInstances: Array; - daemonName?: string | undefined; - desiredMachines: number; - events: Array; - healthyInstances: number; - horizonClusterId: string; - horizonStatus: string; - horizonStatusMessage?: string | null | undefined; - horizonStatusReason?: string | null | undefined; - latestUpdateTimestamp: string; - status: ResourceHeartbeatStatus13; - unavailableInstances: number; - backend: "aws"; +export type DataLocal6 = { + name: string; + path?: string | null | undefined; + serviceStatus?: string | null | undefined; + status: ResourceHeartbeatStatus28; + backend: "local"; }; -export type SyncReconcileRequestDataUnion4 = - | DataAws1 - | DataGcp1 - | DataAzure1 - | DataMachines1 - | DataKubernetes3 - | DataLocal4; - -export type DataDaemon = { - data: - | DataAws1 - | DataGcp1 - | DataAzure1 - | DataMachines1 - | DataKubernetes3 - | DataLocal4; - resourceType: "daemon"; -}; +export const DataReason27 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type DataReason27 = ClosedEnum; -export const ContainerUnitCpuUnit = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const StatusSeverity27 = { + Info: "info", + Warning: "warning", + Error: "error", } as const; -export type ContainerUnitCpuUnit = ClosedEnum; +export type StatusSeverity27 = ClosedEnum; -export type ContainerUnitCpu = { - unit: ContainerUnitCpuUnit; - value: number; +export type DataCollectionIssue27 = { + message: string; + reason: DataReason27; + severity: StatusSeverity27; + source: string; }; -export type ContainerUnitCpuUnion = ContainerUnitCpu | any; - -export const ContainerUnitKind = { - Container: "container", - Process: "process", - Daemon: "daemon", +export const DataHealth27 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", } as const; -export type ContainerUnitKind = ClosedEnum; +export type DataHealth27 = ClosedEnum; -export const ContainerUnitMemoryUnit = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const StatusLifecycle27 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", } as const; -export type ContainerUnitMemoryUnit = ClosedEnum< - typeof ContainerUnitMemoryUnit ->; +export type StatusLifecycle27 = ClosedEnum; -export type ContainerUnitMemory = { - unit: ContainerUnitMemoryUnit; - value: number; +export type ResourceHeartbeatStatus27 = { + collectionIssues: Array; + health: DataHealth27; + lifecycle: StatusLifecycle27; + message?: string | null | undefined; + partial: boolean; + stale: boolean; }; -export type ContainerUnitMemoryUnion = ContainerUnitMemory | any; - -export type ContainerUnit = { - cpu?: ContainerUnitCpu | any | null | undefined; - kind: ContainerUnitKind; - memory?: ContainerUnitMemory | any | null | undefined; +export type DataAzureServiceBus = { + accessedAt?: string | null | undefined; + activeMessageCount?: number | null | undefined; + autoDeleteOnIdle?: string | null | undefined; + createdAt?: string | null | undefined; + deadLetterMessageCount?: number | null | undefined; + deadLetteringOnMessageExpiration?: boolean | null | undefined; + defaultMessageTimeToLive?: string | null | undefined; + duplicateDetectionHistoryTimeWindow?: string | null | undefined; + enableBatchedOperations?: boolean | null | undefined; + enableExpress?: boolean | null | undefined; + enablePartitioning?: boolean | null | undefined; + endpoint?: string | null | undefined; + forwardDeadLetteredMessagesTo?: string | null | undefined; + forwardTo?: string | null | undefined; + lockDuration?: string | null | undefined; + maxDeliveryCount?: number | null | undefined; + maxMessageSizeInKilobytes?: number | null | undefined; + maxSizeInMegabytes?: number | null | undefined; + messageCount?: number | null | undefined; name: string; - phase?: string | null | undefined; - pid?: number | null | undefined; - ready: boolean; - restartCount?: number | null | undefined; - unitId: string; + namespaceName: string; + queueStatus?: string | null | undefined; + requiresDuplicateDetection?: boolean | null | undefined; + requiresSession?: boolean | null | undefined; + resourceGroup?: string | null | undefined; + resourceId?: string | null | undefined; + scheduledMessageCount?: number | null | undefined; + sizeInBytes?: number | null | undefined; + status: ResourceHeartbeatStatus27; + transferDeadLetterMessageCount?: number | null | undefined; + transferMessageCount?: number | null | undefined; + updatedAt?: string | null | undefined; + backend: "azureServiceBus"; }; -export type ContainerUnitUnion = ContainerUnit | any; - -export const CpuUnit5 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const DataReason26 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", } as const; -export type CpuUnit5 = ClosedEnum; - -export type Cpu5 = { - unit: CpuUnit5; - value: number; -}; - -export type CpuUnion5 = Cpu5 | any; +export type DataReason26 = ClosedEnum; -export const EventSeverity2 = { +export const StatusSeverity26 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type EventSeverity2 = ClosedEnum; - -export type SyncReconcileRequestSubject2 = { - id?: string | null | undefined; - kind: string; - name?: string | null | undefined; -}; - -export type SyncReconcileRequestSubjectUnion2 = - | SyncReconcileRequestSubject2 - | any; +export type StatusSeverity26 = ClosedEnum; -export type SyncReconcileRequestEvent5 = { - kind: string; +export type DataCollectionIssue26 = { message: string; - raw?: any | null | undefined; - severity: EventSeverity2; - subject?: SyncReconcileRequestSubject2 | any | null | undefined; - timestamp: Date; + reason: DataReason26; + severity: StatusSeverity26; + source: string; }; -export const MemoryUnit5 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const DataHealth26 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", } as const; -export type MemoryUnit5 = ClosedEnum; +export type DataHealth26 = ClosedEnum; -export type Memory5 = { - unit: MemoryUnit5; - value: number; +export const StatusLifecycle26 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type StatusLifecycle26 = ClosedEnum; + +export type ResourceHeartbeatStatus26 = { + collectionIssues: Array; + health: DataHealth26; + lifecycle: StatusLifecycle26; + message?: string | null | undefined; + partial: boolean; + stale: boolean; }; -export type MemoryUnion5 = Memory5 | any; +export type DataGcpPubSub = { + endpoint?: string | null | undefined; + kmsKeyName?: string | null | undefined; + messageStorageAllowedPersistenceRegions: Array; + messageStorageEnforceInTransit?: boolean | null | undefined; + projectId?: string | null | undefined; + schemaEncoding?: string | null | undefined; + schemaFirstRevisionId?: string | null | undefined; + schemaLastRevisionId?: string | null | undefined; + schemaName?: string | null | undefined; + status: ResourceHeartbeatStatus26; + subscriptionAckDeadlineSeconds?: number | null | undefined; + subscriptionDeadLetterMaxDeliveryAttempts?: number | null | undefined; + subscriptionDeadLetterTopic?: string | null | undefined; + subscriptionDetached?: boolean | null | undefined; + subscriptionEnableMessageOrdering?: boolean | null | undefined; + subscriptionFilter?: string | null | undefined; + subscriptionFullName?: string | null | undefined; + subscriptionLabels: { [k: string]: string }; + subscriptionMessageRetentionDuration?: string | null | undefined; + subscriptionName?: string | null | undefined; + subscriptionPushAttributes: { [k: string]: string }; + subscriptionPushConfigPresent?: boolean | null | undefined; + subscriptionPushEndpoint?: string | null | undefined; + subscriptionPushNoWrapperWriteMetadata?: boolean | null | undefined; + subscriptionPushOidcAudience?: string | null | undefined; + subscriptionPushOidcServiceAccountEmail?: string | null | undefined; + subscriptionPushPubsubWrapperWriteMetadata?: boolean | null | undefined; + subscriptionRetainAckedMessages?: boolean | null | undefined; + subscriptionState?: string | null | undefined; + topicFullName?: string | null | undefined; + topicLabels: { [k: string]: string }; + topicMessageRetentionDuration?: string | null | undefined; + topicName: string; + topicState?: string | null | undefined; + backend: "gcpPubSub"; +}; -export const DataReason12 = { +export const DataReason25 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason12 = ClosedEnum; +export type DataReason25 = ClosedEnum; -export const StatusSeverity12 = { +export const StatusSeverity25 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity12 = ClosedEnum; +export type StatusSeverity25 = ClosedEnum; -export type DataCollectionIssue12 = { +export type DataCollectionIssue25 = { message: string; - reason: DataReason12; - severity: StatusSeverity12; + reason: DataReason25; + severity: StatusSeverity25; source: string; }; -export const DataHealth12 = { +export const DataHealth25 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth12 = ClosedEnum; +export type DataHealth25 = ClosedEnum; -export const StatusLifecycle12 = { +export const StatusLifecycle25 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -10735,53 +10656,74 @@ export const StatusLifecycle12 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle12 = ClosedEnum; +export type StatusLifecycle25 = ClosedEnum; -export type ResourceHeartbeatStatus12 = { - collectionIssues: Array; - health: DataHealth12; - lifecycle: StatusLifecycle12; +export type ResourceHeartbeatStatus25 = { + collectionIssues: Array; + health: DataHealth25; + lifecycle: StatusLifecycle25; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataLocal3 = { - bindMountCount: number; - containerId?: string | null | undefined; - containerUnit?: ContainerUnit | any | null | undefined; - cpu?: Cpu5 | any | null | undefined; - events: Array; - image?: string | null | undefined; - localUrl?: string | null | undefined; - memory?: Memory5 | any | null | undefined; - name?: string | null | undefined; - portCount: number; - restartCount?: number | null | undefined; - runtimeReachable: boolean; - runtimeStatus?: string | null | undefined; - status: ResourceHeartbeatStatus12; - backend: "local"; +export type DataAwsSqs = { + approximateCounts: boolean; + approximateDelayedMessages?: number | null | undefined; + approximateInFlightMessages?: number | null | undefined; + approximateVisibleMessages?: number | null | undefined; + contentBasedDeduplication?: boolean | null | undefined; + deduplicationScope?: string | null | undefined; + delaySeconds?: number | null | undefined; + fifoQueue?: boolean | null | undefined; + fifoThroughputLimit?: string | null | undefined; + kmsDataKeyReusePeriodSeconds?: number | null | undefined; + kmsMasterKeyId?: string | null | undefined; + maximumMessageSize?: number | null | undefined; + messageRetentionPeriodSeconds?: number | null | undefined; + name: string; + queueArn?: string | null | undefined; + queueUrl?: string | null | undefined; + receiveMessageWaitTimeSeconds?: number | null | undefined; + redriveAllowPolicy?: string | null | undefined; + redrivePolicy?: string | null | undefined; + region?: string | null | undefined; + sqsManagedSseEnabled?: boolean | null | undefined; + sseEnabled?: boolean | null | undefined; + status: ResourceHeartbeatStatus25; + visibilityTimeoutSeconds?: number | null | undefined; + backend: "awsSqs"; }; -export const CpuUnit4 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", +export type SyncReconcileRequestDataUnion6 = + | DataAwsSqs + | DataGcpPubSub + | DataAzureServiceBus + | DataLocal6; + +export type DataQueue = { + data: DataAwsSqs | DataGcpPubSub | DataAzureServiceBus | DataLocal6; + resourceType: "queue"; +}; + +export const CpuUnit11 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type CpuUnit4 = ClosedEnum; +export type CpuUnit11 = ClosedEnum; -export type Cpu4 = { - unit: CpuUnit4; +export type Cpu11 = { + unit: CpuUnit11; value: number; }; -export type CpuUnion4 = Cpu4 | any; +export type CpuUnion11 = Cpu11 | any; -export type InvolvedObject3 = { +export type InvolvedObject9 = { apiVersion?: string | null | undefined; fieldPath?: string | null | undefined; kind?: string | null | undefined; @@ -10791,29 +10733,29 @@ export type InvolvedObject3 = { uid?: string | null | undefined; }; -export type InvolvedObjectUnion3 = InvolvedObject3 | any; +export type InvolvedObjectUnion9 = InvolvedObject9 | any; -export type SyncReconcileRequestSource3 = { +export type SourceEvent9 = { component?: string | null | undefined; host?: string | null | undefined; }; -export type SourceUnion3 = SyncReconcileRequestSource3 | any; +export type SourceUnion9 = SourceEvent9 | any; -export type SyncReconcileRequestEvent4 = { +export type SyncReconcileRequestEvent12 = { count?: number | null | undefined; eventTime?: Date | null | undefined; firstTimestamp?: Date | null | undefined; - involvedObject?: InvolvedObject3 | any | null | undefined; + involvedObject?: InvolvedObject9 | any | null | undefined; lastTimestamp?: Date | null | undefined; message: string; raw?: any | null | undefined; reason: string; - source?: SyncReconcileRequestSource3 | any | null | undefined; + source?: SourceEvent9 | any | null | undefined; type?: string | null | undefined; }; -export const MemoryUnit4 = { +export const MemoryUnit11 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -10821,16 +10763,22 @@ export const MemoryUnit4 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type MemoryUnit4 = ClosedEnum; +export type MemoryUnit11 = ClosedEnum; -export type Memory4 = { - unit: MemoryUnit4; +export type Memory11 = { + unit: MemoryUnit11; value: number; }; -export type MemoryUnion4 = Memory4 | any; +export type MemoryUnion11 = Memory11 | any; -export const CpuPodUnit2 = { +export type NodeCounts = { + current?: number | null | undefined; + desired?: number | null | undefined; + ready?: number | null | undefined; +}; + +export const CpuAllocatableUnit = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -10838,16 +10786,16 @@ export const CpuPodUnit2 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type CpuPodUnit2 = ClosedEnum; +export type CpuAllocatableUnit = ClosedEnum; -export type CpuPod2 = { - unit: CpuPodUnit2; +export type CpuAllocatable = { + unit: CpuAllocatableUnit; value: number; }; -export type PodCpuUnion2 = CpuPod2 | any; +export type AllocatableCpuUnion = CpuAllocatable | any; -export const MemoryPodUnit2 = { +export const MemoryAllocatableUnit = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -10855,146 +10803,22 @@ export const MemoryPodUnit2 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type MemoryPodUnit2 = ClosedEnum; +export type MemoryAllocatableUnit = ClosedEnum; -export type MemoryPod2 = { - unit: MemoryPodUnit2; +export type MemoryAllocatable = { + unit: MemoryAllocatableUnit; value: number; }; -export type PodMemoryUnion2 = MemoryPod2 | any; - -export type OwnerReference2 = { - controller: boolean; - kind: string; - name: string; - uid: string; -}; - -export type Pod2 = { - cpu?: CpuPod2 | any | null | undefined; - memory?: MemoryPod2 | any | null | undefined; - name: string; - nodeName?: string | null | undefined; - ownerReferences: Array; - phase?: string | null | undefined; - podIp?: string | null | undefined; - ready: boolean; - restartCount: number; - terminatedReason?: string | null | undefined; - uid?: string | null | undefined; - waitingReason?: string | null | undefined; -}; - -export type Replicas3 = { - available?: number | null | undefined; - current?: number | null | undefined; - desired?: number | null | undefined; - misscheduled?: number | null | undefined; - ready?: number | null | undefined; - updated?: number | null | undefined; -}; - -export const DataReason11 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", -} as const; -export type DataReason11 = ClosedEnum; - -export const StatusSeverity11 = { - Info: "info", - Warning: "warning", - Error: "error", -} as const; -export type StatusSeverity11 = ClosedEnum; - -export type DataCollectionIssue11 = { - message: string; - reason: DataReason11; - severity: StatusSeverity11; - source: string; -}; - -export const DataHealth11 = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", -} as const; -export type DataHealth11 = ClosedEnum; - -export const StatusLifecycle11 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", -} as const; -export type StatusLifecycle11 = ClosedEnum; - -export type ResourceHeartbeatStatus11 = { - collectionIssues: Array; - health: DataHealth11; - lifecycle: StatusLifecycle11; - message?: string | null | undefined; - partial: boolean; - stale: boolean; -}; - -export type WorkloadCondition2 = { - lastTransitionTime?: Date | null | undefined; - message?: string | null | undefined; - reason?: string | null | undefined; - status: string; - type: string; -}; - -export type Workload2 = { - availableReplicas?: number | null | undefined; - conditions: Array; - desiredGeneration?: number | null | undefined; - desiredReplicas?: number | null | undefined; - observedGeneration?: number | null | undefined; - readyReplicas?: number | null | undefined; - rolloutReason?: string | null | undefined; - updatedReplicas?: number | null | undefined; -}; - -export type WorkloadUnion2 = Workload2 | any; - -export const WorkloadKind2 = { - Deployment: "deployment", - StatefulSet: "statefulSet", - DaemonSet: "daemonSet", - ReplicaSet: "replicaSet", - Pod: "pod", -} as const; -export type WorkloadKind2 = ClosedEnum; +export type AllocatableMemoryUnion = MemoryAllocatable | any; -export type DataKubernetes2 = { - cpu?: Cpu4 | any | null | undefined; - events: Array; - memory?: Memory4 | any | null | undefined; - name: string; - namespace: string; - pods: Array; - replicas: Replicas3; - restarts?: number | null | undefined; - status: ResourceHeartbeatStatus11; - workload?: Workload2 | any | null | undefined; - workloadKind: WorkloadKind2; - backend: "kubernetes"; +export type Allocatable = { + cpu?: CpuAllocatable | any | null | undefined; + memory?: MemoryAllocatable | any | null | undefined; + pods?: number | null | undefined; }; -export const CpuUnit3 = { +export const CpuCapacityUnit = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -11002,49 +10826,16 @@ export const CpuUnit3 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type CpuUnit3 = ClosedEnum; +export type CpuCapacityUnit = ClosedEnum; -export type Cpu3 = { - unit: CpuUnit3; +export type CpuCapacity = { + unit: CpuCapacityUnit; value: number; }; -export type CpuUnion3 = Cpu3 | any; - -export type InvolvedObject2 = { - details?: any | null | undefined; - id?: string | null | undefined; - kind?: string | null | undefined; - machineId?: string | null | undefined; - name?: string | null | undefined; - replicaId?: string | null | undefined; -}; - -export type InvolvedObjectUnion2 = InvolvedObject2 | any; - -export type SyncReconcileRequestSource2 = { - component?: string | null | undefined; - host?: string | null | undefined; -}; - -export type SourceUnion2 = SyncReconcileRequestSource2 | any; - -export type SyncReconcileRequestEvent3 = { - count?: number | null | undefined; - details?: any | null | undefined; - eventId?: string | null | undefined; - eventTime?: Date | null | undefined; - firstTimestamp?: Date | null | undefined; - involvedObject?: InvolvedObject2 | any | null | undefined; - lastTimestamp?: Date | null | undefined; - message: string; - raw?: any | null | undefined; - reason: string; - source?: SyncReconcileRequestSource2 | any | null | undefined; - type?: string | null | undefined; -}; +export type CapacityCpuUnion = CpuCapacity | any; -export const MemoryUnit3 = { +export const MemoryCapacityUnit = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -11052,16 +10843,29 @@ export const MemoryUnit3 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type MemoryUnit3 = ClosedEnum; +export type MemoryCapacityUnit = ClosedEnum; -export type Memory3 = { - unit: MemoryUnit3; +export type MemoryCapacity = { + unit: MemoryCapacityUnit; value: number; }; -export type MemoryUnion3 = Memory3 | any; +export type CapacityMemoryUnion = MemoryCapacity | any; -export const CpuReplicaUnitUnit = { +export type Capacity = { + cpu?: CpuCapacity | any | null | undefined; + memory?: MemoryCapacity | any | null | undefined; + pods?: number | null | undefined; +}; + +export type NodeStatusCondition = { + message?: string | null | undefined; + reason?: string | null | undefined; + status: string; + type: string; +}; + +export const UsageCpuUnit = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -11069,16 +10873,16 @@ export const CpuReplicaUnitUnit = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type CpuReplicaUnitUnit = ClosedEnum; +export type UsageCpuUnit = ClosedEnum; -export type CpuReplicaUnit = { - unit: CpuReplicaUnitUnit; +export type UsageCpu = { + unit: UsageCpuUnit; value: number; }; -export type ReplicaUnitCpuUnion = CpuReplicaUnit | any; +export type UsageCpuUnion = UsageCpu | any; -export const MemoryReplicaUnitUnit = { +export const UsageMemoryUnit = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -11086,84 +10890,74 @@ export const MemoryReplicaUnitUnit = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type MemoryReplicaUnitUnit = ClosedEnum; +export type UsageMemoryUnit = ClosedEnum; -export type MemoryReplicaUnit = { - unit: MemoryReplicaUnitUnit; +export type UsageMemory = { + unit: UsageMemoryUnit; value: number; }; -export type ReplicaUnitMemoryUnion = MemoryReplicaUnit | any; +export type UsageMemoryUnion = UsageMemory | any; -export type ReplicaUnit = { - cpu?: CpuReplicaUnit | any | null | undefined; - ip?: string | null | undefined; - machineId?: string | null | undefined; - memory?: MemoryReplicaUnit | any | null | undefined; - message?: string | null | undefined; - metricsHealthy?: boolean | null | undefined; - metricsLastUpdated?: string | null | undefined; - metricsStatus?: string | null | undefined; +export type SyncReconcileRequestUsage = { + cpu?: UsageCpu | any | null | undefined; + memory?: UsageMemory | any | null | undefined; +}; + +export type Usage = SyncReconcileRequestUsage | any; + +export type NodeStatus = { + allocatable: Allocatable; + capacity: Capacity; + conditions?: Array | undefined; + containerRuntimeVersion?: string | null | undefined; + kubeletVersion?: string | null | undefined; + labels: { [k: string]: string }; name: string; - nodeName?: string | null | undefined; - phase?: string | null | undefined; ready: boolean; - reason?: string | null | undefined; - replicaId: string; - restartCount?: number | null | undefined; - status?: string | null | undefined; - terminatedReason?: string | null | undefined; - waitingReason?: string | null | undefined; + roles: Array; + uid?: string | null | undefined; + usage?: SyncReconcileRequestUsage | any | null | undefined; }; -export type Replicas2 = { - available?: number | null | undefined; +export type PodCounts = { current?: number | null | undefined; desired?: number | null | undefined; - misscheduled?: number | null | undefined; ready?: number | null | undefined; - updated?: number | null | undefined; }; -export const SchedulingMode = { - Replicated: "replicated", - Stateful: "stateful", - Daemon: "daemon", -} as const; -export type SchedulingMode = ClosedEnum; - -export const DataReason10 = { +export const DataReason24 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason10 = ClosedEnum; +export type DataReason24 = ClosedEnum; -export const StatusSeverity10 = { +export const StatusSeverity24 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity10 = ClosedEnum; +export type StatusSeverity24 = ClosedEnum; -export type DataCollectionIssue10 = { +export type DataCollectionIssue24 = { message: string; - reason: DataReason10; - severity: StatusSeverity10; + reason: DataReason24; + severity: StatusSeverity24; source: string; }; -export const DataHealth10 = { +export const DataHealth24 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth10 = ClosedEnum; +export type DataHealth24 = ClosedEnum; -export const StatusLifecycle10 = { +export const StatusLifecycle24 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -11175,126 +10969,161 @@ export const StatusLifecycle10 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle10 = ClosedEnum; +export type StatusLifecycle24 = ClosedEnum; -export type ResourceHeartbeatStatus10 = { - collectionIssues: Array; - health: DataHealth10; - lifecycle: StatusLifecycle10; +export type ResourceHeartbeatStatus24 = { + collectionIssues: Array; + health: DataHealth24; + lifecycle: StatusLifecycle24; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataHorizonPlatform = { - attentionCount: number; - containerId: string; - cpu?: Cpu3 | any | null | undefined; - events: Array; - image?: string | null | undefined; - memory?: Memory3 | any | null | undefined; - replicaUnits: Array; - replicas: Replicas2; - schedulingMode: SchedulingMode; - status: ResourceHeartbeatStatus10; - backend: "horizonPlatform"; +export type SyncReconcileRequestData1 = { + cpu?: Cpu11 | any | null | undefined; + events: Array; + memory?: Memory11 | any | null | undefined; + name: string; + namespace?: string | null | undefined; + nodeCounts: NodeCounts; + nodeStatuses?: Array | undefined; + podCounts: PodCounts; + region?: string | null | undefined; + status: ResourceHeartbeatStatus24; + version?: string | null | undefined; }; -export type SyncReconcileRequestDataUnion3 = - | DataHorizonPlatform - | DataKubernetes2 - | DataLocal3; - -export type DataContainer = { - data: DataHorizonPlatform | DataKubernetes2 | DataLocal3; - resourceType: "container"; +export type DataKubernetesCluster = { + data: SyncReconcileRequestData1; + resourceType: "kubernetes-cluster"; }; -export const CpuUnit2 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", -} as const; -export type CpuUnit2 = ClosedEnum; - -export type Cpu2 = { - unit: CpuUnit2; - value: number; +export type Nodes5 = { + current?: number | null | undefined; + desired?: number | null | undefined; + ready?: number | null | undefined; }; -export type CpuUnion2 = Cpu2 | any; +export const DataReason23 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type DataReason23 = ClosedEnum; -export const EventSeverity1 = { +export const StatusSeverity23 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type EventSeverity1 = ClosedEnum; - -export type SyncReconcileRequestSubject1 = { - id?: string | null | undefined; - kind: string; - name?: string | null | undefined; -}; - -export type SyncReconcileRequestSubjectUnion1 = - | SyncReconcileRequestSubject1 - | any; +export type StatusSeverity23 = ClosedEnum; -export type SyncReconcileRequestEvent2 = { - kind: string; +export type DataCollectionIssue23 = { message: string; - raw?: any | null | undefined; - severity: EventSeverity1; - subject?: SyncReconcileRequestSubject1 | any | null | undefined; - timestamp: Date; + reason: DataReason23; + severity: StatusSeverity23; + source: string; }; -export const MemoryUnit2 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const DataHealth23 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", } as const; -export type MemoryUnit2 = ClosedEnum; - -export type Memory2 = { - unit: MemoryUnit2; - value: number; -}; - -export type MemoryUnion2 = Memory2 | any; +export type DataHealth23 = ClosedEnum; -export const ProcessCpuUnit = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const StatusLifecycle23 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", } as const; -export type ProcessCpuUnit = ClosedEnum; +export type StatusLifecycle23 = ClosedEnum; -export type ProcessCpu = { - unit: ProcessCpuUnit; - value: number; +export type ResourceHeartbeatStatus23 = { + collectionIssues: Array; + health: DataHealth23; + lifecycle: StatusLifecycle23; + message?: string | null | undefined; + partial: boolean; + stale: boolean; }; -export type ProcessCpuUnion = ProcessCpu | any; +export type DataLocal5 = { + dockerApiVersion?: string | null | undefined; + dockerArch?: string | null | undefined; + dockerAvailable: boolean; + dockerOs?: string | null | undefined; + dockerVersion?: string | null | undefined; + hostIdentifier?: string | null | undefined; + name: string; + networkAvailable: boolean; + networkName?: string | null | undefined; + nodes: Nodes5; + runningContainers?: number | null | undefined; + status: ResourceHeartbeatStatus23; + trackedContainers?: number | null | undefined; + backend: "local"; +}; -export const ProcessKind = { - Container: "container", - Process: "process", - Daemon: "daemon", +export const Category4 = { + Quota: "quota", + Capacity: "capacity", + Allocation: "allocation", + Other: "other", } as const; -export type ProcessKind = ClosedEnum; +export type Category4 = ClosedEnum; -export const ProcessMemoryUnit = { +export type CapacityBlocker4 = { + category: Category4; + message: string; + observedAt: Date; + providerCode?: string | null | undefined; + providerReference?: string | null | undefined; +}; + +export type CapacityBlockerUnion4 = CapacityBlocker4 | any; + +export type DrainProgressBlocker4 = { + reason: string; + replicaId: string; + schedulingMode: string; + state: string; + workloadName: string; +}; + +export const DrainProgressStatus4 = { + Draining: "draining", + Drained: "drained", + Terminating: "terminating", +} as const; +export type DrainProgressStatus4 = ClosedEnum; + +export type DrainProgress4 = { + blockers?: Array | undefined; + drainDeadlineAt?: string | null | undefined; + drainRequestedAt?: string | null | undefined; + drainedAt?: string | null | undefined; + force: boolean; + machineId: string; + replicaCount: number; + stalled: boolean; + status: DrainProgressStatus4; +}; + +export type DrainProgressUnion4 = DrainProgress4 | any; + +export const UtilizationUnit4 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -11302,61 +11131,135 @@ export const ProcessMemoryUnit = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type ProcessMemoryUnit = ClosedEnum; +export type UtilizationUnit4 = ClosedEnum; -export type ProcessMemory = { - unit: ProcessMemoryUnit; +export type Utilization4 = { + unit: UtilizationUnit4; value: number; }; -export type ProcessMemoryUnion = ProcessMemory | any; +export type UtilizationUnion4 = Utilization4 | any; -export type Process = { - cpu?: ProcessCpu | any | null | undefined; - kind: ProcessKind; - memory?: ProcessMemory | any | null | undefined; - name: string; - phase?: string | null | undefined; - pid?: number | null | undefined; - ready: boolean; - restartCount?: number | null | undefined; - unitId: string; +export type Recommendation4 = { + desiredMachines: number; + reason?: string | null | undefined; + unschedulableReplicas?: number | null | undefined; + utilization?: Utilization4 | any | null | undefined; }; -export type ProcessUnion = Process | any; +export type RecommendationUnion4 = Recommendation4 | any; -export const DataReason9 = { +export type CapacityGroup4 = { + capacityBlocker?: CapacityBlocker4 | any | null | undefined; + currentMachines: number; + desiredMachines: number; + drainProgress?: DrainProgress4 | any | null | undefined; + groupId: string; + instanceType?: string | null | undefined; + maxMachines?: number | null | undefined; + minMachines?: number | null | undefined; + recommendation?: Recommendation4 | any | null | undefined; +}; + +export const CpuUnit10 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type CpuUnit10 = ClosedEnum; + +export type Cpu10 = { + unit: CpuUnit10; + value: number; +}; + +export type CpuUnion10 = Cpu10 | any; + +export type DrainBlocker = { + reason: string; + replicaId: string; + schedulingMode: string; + state: string; + workloadName: string; +}; + +export type SyncReconcileRequestMachine = { + capacityGroup: string; + cpuCores?: number | null | undefined; + drainBlockers?: Array | undefined; + drainDeadlineAt?: string | null | undefined; + drainForce: boolean; + drainRequestedAt?: string | null | undefined; + drainedAt?: string | null | undefined; + horizondVersion?: string | null | undefined; + lastHeartbeat: string; + machineId: string; + memoryBytes?: number | null | undefined; + overlayIp?: string | null | undefined; + publicIp?: string | null | undefined; + replicaCount: number; + status: string; + zone: string; +}; + +export const MemoryUnit10 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type MemoryUnit10 = ClosedEnum; + +export type Memory10 = { + unit: MemoryUnit10; + value: number; +}; + +export type MemoryUnion10 = Memory10 | any; + +export type Nodes4 = { + current?: number | null | undefined; + desired?: number | null | undefined; + ready?: number | null | undefined; +}; + +export const DataReason22 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason9 = ClosedEnum; +export type DataReason22 = ClosedEnum; -export const StatusSeverity9 = { +export const StatusSeverity22 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity9 = ClosedEnum; +export type StatusSeverity22 = ClosedEnum; -export type DataCollectionIssue9 = { +export type DataCollectionIssue22 = { message: string; - reason: DataReason9; - severity: StatusSeverity9; + reason: DataReason22; + severity: StatusSeverity22; source: string; }; -export const DataHealth9 = { +export const DataHealth22 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth9 = ClosedEnum; +export type DataHealth22 = ClosedEnum; -export const StatusLifecycle9 = { +export const StatusLifecycle22 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -11368,81 +11271,77 @@ export const StatusLifecycle9 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle9 = ClosedEnum; +export type StatusLifecycle22 = ClosedEnum; -export type ResourceHeartbeatStatus9 = { - collectionIssues: Array; - health: DataHealth9; - lifecycle: StatusLifecycle9; +export type ResourceHeartbeatStatus22 = { + collectionIssues: Array; + health: DataHealth22; + lifecycle: StatusLifecycle22; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataLocal2 = { - commandSupported: boolean; - cpu?: Cpu2 | any | null | undefined; - events: Array; - imagePathPresent: boolean; - memory?: Memory2 | any | null | undefined; - pid?: number | null | undefined; - process?: Process | any | null | undefined; - readinessProbeOk?: boolean | null | undefined; - status: ResourceHeartbeatStatus9; - triggerCount: number; - backend: "local"; +export type DataMachines2 = { + backendClusterId?: string | null | undefined; + capacityGroups: Array; + cpu?: Cpu10 | any | null | undefined; + machines: Array; + memory?: Memory10 | any | null | undefined; + name: string; + nodes: Nodes4; + status: ResourceHeartbeatStatus22; + backend: "machines"; }; -export const CpuUnit1 = { - Count: "count", - Percent: "percent", - Bytes: "bytes", - Cores: "cores", - Milliseconds: "milliseconds", - RequestsPerSecond: "requests-per-second", +export const Category3 = { + Quota: "quota", + Capacity: "capacity", + Allocation: "allocation", + Other: "other", } as const; -export type CpuUnit1 = ClosedEnum; +export type Category3 = ClosedEnum; -export type Cpu1 = { - unit: CpuUnit1; - value: number; +export type CapacityBlocker3 = { + category: Category3; + message: string; + observedAt: Date; + providerCode?: string | null | undefined; + providerReference?: string | null | undefined; }; -export type CpuUnion1 = Cpu1 | any; +export type CapacityBlockerUnion3 = CapacityBlocker3 | any; -export type InvolvedObject1 = { - apiVersion?: string | null | undefined; - fieldPath?: string | null | undefined; - kind?: string | null | undefined; - name?: string | null | undefined; - namespace?: string | null | undefined; - resourceVersion?: string | null | undefined; - uid?: string | null | undefined; +export type DrainProgressBlocker3 = { + reason: string; + replicaId: string; + schedulingMode: string; + state: string; + workloadName: string; }; -export type InvolvedObjectUnion1 = InvolvedObject1 | any; +export const DrainProgressStatus3 = { + Draining: "draining", + Drained: "drained", + Terminating: "terminating", +} as const; +export type DrainProgressStatus3 = ClosedEnum; -export type SyncReconcileRequestSource1 = { - component?: string | null | undefined; - host?: string | null | undefined; +export type DrainProgress3 = { + blockers?: Array | undefined; + drainDeadlineAt?: string | null | undefined; + drainRequestedAt?: string | null | undefined; + drainedAt?: string | null | undefined; + force: boolean; + machineId: string; + replicaCount: number; + stalled: boolean; + status: DrainProgressStatus3; }; -export type SourceUnion1 = SyncReconcileRequestSource1 | any; - -export type SyncReconcileRequestEvent1 = { - count?: number | null | undefined; - eventTime?: Date | null | undefined; - firstTimestamp?: Date | null | undefined; - involvedObject?: InvolvedObject1 | any | null | undefined; - lastTimestamp?: Date | null | undefined; - message: string; - raw?: any | null | undefined; - reason: string; - source?: SyncReconcileRequestSource1 | any | null | undefined; - type?: string | null | undefined; -}; +export type DrainProgressUnion3 = DrainProgress3 | any; -export const MemoryUnit1 = { +export const UtilizationUnit3 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -11450,16 +11349,37 @@ export const MemoryUnit1 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type MemoryUnit1 = ClosedEnum; +export type UtilizationUnit3 = ClosedEnum; -export type Memory1 = { - unit: MemoryUnit1; +export type Utilization3 = { + unit: UtilizationUnit3; value: number; }; -export type MemoryUnion1 = Memory1 | any; +export type UtilizationUnion3 = Utilization3 | any; -export const CpuPodUnit1 = { +export type Recommendation3 = { + desiredMachines: number; + reason?: string | null | undefined; + unschedulableReplicas?: number | null | undefined; + utilization?: Utilization3 | any | null | undefined; +}; + +export type RecommendationUnion3 = Recommendation3 | any; + +export type CapacityGroup3 = { + capacityBlocker?: CapacityBlocker3 | any | null | undefined; + currentMachines: number; + desiredMachines: number; + drainProgress?: DrainProgress3 | any | null | undefined; + groupId: string; + instanceType?: string | null | undefined; + maxMachines?: number | null | undefined; + minMachines?: number | null | undefined; + recommendation?: Recommendation3 | any | null | undefined; +}; + +export const CpuUnit9 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -11467,16 +11387,16 @@ export const CpuPodUnit1 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type CpuPodUnit1 = ClosedEnum; +export type CpuUnit9 = ClosedEnum; -export type CpuPod1 = { - unit: CpuPodUnit1; +export type Cpu9 = { + unit: CpuUnit9; value: number; }; -export type PodCpuUnion1 = CpuPod1 | any; +export type CpuUnion9 = Cpu9 | any; -export const MemoryPodUnit1 = { +export const MemoryUnit9 = { Count: "count", Percent: "percent", Bytes: "bytes", @@ -11484,78 +11404,61 @@ export const MemoryPodUnit1 = { Milliseconds: "milliseconds", RequestsPerSecond: "requests-per-second", } as const; -export type MemoryPodUnit1 = ClosedEnum; +export type MemoryUnit9 = ClosedEnum; -export type MemoryPod1 = { - unit: MemoryPodUnit1; +export type Memory9 = { + unit: MemoryUnit9; value: number; }; -export type PodMemoryUnion1 = MemoryPod1 | any; - -export type OwnerReference1 = { - controller: boolean; - kind: string; - name: string; - uid: string; -}; - -export type Pod1 = { - cpu?: CpuPod1 | any | null | undefined; - memory?: MemoryPod1 | any | null | undefined; - name: string; - nodeName?: string | null | undefined; - ownerReferences: Array; - phase?: string | null | undefined; - podIp?: string | null | undefined; - ready: boolean; - restartCount: number; - terminatedReason?: string | null | undefined; - uid?: string | null | undefined; - waitingReason?: string | null | undefined; -}; +export type MemoryUnion9 = Memory9 | any; -export type Replicas1 = { - available?: number | null | undefined; +export type Nodes3 = { current?: number | null | undefined; desired?: number | null | undefined; - misscheduled?: number | null | undefined; ready?: number | null | undefined; - updated?: number | null | undefined; }; -export const DataReason8 = { +export type ProviderFleet3 = { + currentMachines: number; + desiredMachines: number; + groupId: string; + location?: string | null | undefined; + providerId: string; +}; + +export const DataReason21 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason8 = ClosedEnum; +export type DataReason21 = ClosedEnum; -export const StatusSeverity8 = { +export const StatusSeverity21 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity8 = ClosedEnum; +export type StatusSeverity21 = ClosedEnum; -export type DataCollectionIssue8 = { +export type DataCollectionIssue21 = { message: string; - reason: DataReason8; - severity: StatusSeverity8; + reason: DataReason21; + severity: StatusSeverity21; source: string; }; -export const DataHealth8 = { +export const DataHealth21 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth8 = ClosedEnum; +export type DataHealth21 = ClosedEnum; -export const StatusLifecycle8 = { +export const StatusLifecycle21 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -11567,164 +11470,195 @@ export const StatusLifecycle8 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle8 = ClosedEnum; +export type StatusLifecycle21 = ClosedEnum; -export type ResourceHeartbeatStatus8 = { - collectionIssues: Array; - health: DataHealth8; - lifecycle: StatusLifecycle8; +export type ResourceHeartbeatStatus21 = { + collectionIssues: Array; + health: DataHealth21; + lifecycle: StatusLifecycle21; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type WorkloadCondition1 = { - lastTransitionTime?: Date | null | undefined; - message?: string | null | undefined; - reason?: string | null | undefined; - status: string; - type: string; +export type DataAzure2 = { + backendClusterId?: string | null | undefined; + capacityGroups: Array; + cpu?: Cpu9 | any | null | undefined; + memory?: Memory9 | any | null | undefined; + name: string; + nodes: Nodes3; + providerFleets: Array; + region?: string | null | undefined; + status: ResourceHeartbeatStatus21; + backend: "azure"; }; -export type Workload1 = { - availableReplicas?: number | null | undefined; - conditions: Array; - desiredGeneration?: number | null | undefined; - desiredReplicas?: number | null | undefined; - observedGeneration?: number | null | undefined; - readyReplicas?: number | null | undefined; - rolloutReason?: string | null | undefined; - updatedReplicas?: number | null | undefined; +export const Category2 = { + Quota: "quota", + Capacity: "capacity", + Allocation: "allocation", + Other: "other", +} as const; +export type Category2 = ClosedEnum; + +export type CapacityBlocker2 = { + category: Category2; + message: string; + observedAt: Date; + providerCode?: string | null | undefined; + providerReference?: string | null | undefined; }; -export type WorkloadUnion1 = Workload1 | any; +export type CapacityBlockerUnion2 = CapacityBlocker2 | any; -export const WorkloadKind1 = { - Deployment: "deployment", - StatefulSet: "statefulSet", - DaemonSet: "daemonSet", - ReplicaSet: "replicaSet", - Pod: "pod", +export type DrainProgressBlocker2 = { + reason: string; + replicaId: string; + schedulingMode: string; + state: string; + workloadName: string; +}; + +export const DrainProgressStatus2 = { + Draining: "draining", + Drained: "drained", + Terminating: "terminating", } as const; -export type WorkloadKind1 = ClosedEnum; +export type DrainProgressStatus2 = ClosedEnum; -export type DataKubernetes1 = { - cpu?: Cpu1 | any | null | undefined; - events: Array; - memory?: Memory1 | any | null | undefined; - name: string; - namespace: string; - pods: Array; - replicas: Replicas1; - restarts?: number | null | undefined; - status: ResourceHeartbeatStatus8; - triggerCount: number; - workload?: Workload1 | any | null | undefined; - workloadKind: WorkloadKind1; - backend: "kubernetes"; +export type DrainProgress2 = { + blockers?: Array | undefined; + drainDeadlineAt?: string | null | undefined; + drainRequestedAt?: string | null | undefined; + drainedAt?: string | null | undefined; + force: boolean; + machineId: string; + replicaCount: number; + stalled: boolean; + status: DrainProgressStatus2; }; -export const DataReason7 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", -} as const; -export type DataReason7 = ClosedEnum; +export type DrainProgressUnion2 = DrainProgress2 | any; -export const StatusSeverity7 = { - Info: "info", - Warning: "warning", - Error: "error", +export const UtilizationUnit2 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", } as const; -export type StatusSeverity7 = ClosedEnum; +export type UtilizationUnit2 = ClosedEnum; -export type DataCollectionIssue7 = { - message: string; - reason: DataReason7; - severity: StatusSeverity7; - source: string; +export type Utilization2 = { + unit: UtilizationUnit2; + value: number; }; -export const DataHealth7 = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", -} as const; -export type DataHealth7 = ClosedEnum; +export type UtilizationUnion2 = Utilization2 | any; -export const StatusLifecycle7 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", +export type Recommendation2 = { + desiredMachines: number; + reason?: string | null | undefined; + unschedulableReplicas?: number | null | undefined; + utilization?: Utilization2 | any | null | undefined; +}; + +export type RecommendationUnion2 = Recommendation2 | any; + +export type CapacityGroup2 = { + capacityBlocker?: CapacityBlocker2 | any | null | undefined; + currentMachines: number; + desiredMachines: number; + drainProgress?: DrainProgress2 | any | null | undefined; + groupId: string; + instanceType?: string | null | undefined; + maxMachines?: number | null | undefined; + minMachines?: number | null | undefined; + recommendation?: Recommendation2 | any | null | undefined; +}; + +export const CpuUnit8 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", } as const; -export type StatusLifecycle7 = ClosedEnum; +export type CpuUnit8 = ClosedEnum; -export type ResourceHeartbeatStatus7 = { - collectionIssues: Array; - health: DataHealth7; - lifecycle: StatusLifecycle7; - message?: string | null | undefined; - partial: boolean; - stale: boolean; +export type Cpu8 = { + unit: CpuUnit8; + value: number; }; -export type DataAzureContainerApps1 = { - appName: string; - cpu?: number | null | undefined; - environmentName?: string | null | undefined; - ingressFqdn?: string | null | undefined; - maxReplicas?: number | null | undefined; - memory?: string | null | undefined; - minReplicas?: number | null | undefined; - provisioningState?: string | null | undefined; - revision?: string | null | undefined; - runningStatus?: string | null | undefined; - status: ResourceHeartbeatStatus7; - backend: "azureContainerApps"; +export type CpuUnion8 = Cpu8 | any; + +export const MemoryUnit8 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type MemoryUnit8 = ClosedEnum; + +export type Memory8 = { + unit: MemoryUnit8; + value: number; }; -export const DataReason6 = { +export type MemoryUnion8 = Memory8 | any; + +export type Nodes2 = { + current?: number | null | undefined; + desired?: number | null | undefined; + ready?: number | null | undefined; +}; + +export type ProviderFleet2 = { + currentMachines: number; + desiredMachines: number; + groupId: string; + location?: string | null | undefined; + providerId: string; +}; + +export const DataReason20 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason6 = ClosedEnum; +export type DataReason20 = ClosedEnum; -export const StatusSeverity6 = { +export const StatusSeverity20 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity6 = ClosedEnum; +export type StatusSeverity20 = ClosedEnum; -export type DataCollectionIssue6 = { +export type DataCollectionIssue20 = { message: string; - reason: DataReason6; - severity: StatusSeverity6; + reason: DataReason20; + severity: StatusSeverity20; source: string; }; -export const DataHealth6 = { +export const DataHealth20 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth6 = ClosedEnum; +export type DataHealth20 = ClosedEnum; -export const StatusLifecycle6 = { +export const StatusLifecycle20 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -11736,163 +11670,195 @@ export const StatusLifecycle6 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle6 = ClosedEnum; +export type StatusLifecycle20 = ClosedEnum; -export type ResourceHeartbeatStatus6 = { - collectionIssues: Array; - health: DataHealth6; - lifecycle: StatusLifecycle6; +export type ResourceHeartbeatStatus20 = { + collectionIssues: Array; + health: DataHealth20; + lifecycle: StatusLifecycle20; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataGcpCloudRun = { - containerImage?: string | null | undefined; - cpuLimit?: string | null | undefined; - generation?: number | null | undefined; - latestCreatedRevision?: string | null | undefined; - latestReadyRevision?: string | null | undefined; - maxInstanceCount?: number | null | undefined; - memoryLimit?: string | null | undefined; - minInstanceCount?: number | null | undefined; - observedGeneration?: number | null | undefined; +export type DataGcp2 = { + backendClusterId?: string | null | undefined; + capacityGroups: Array; + cpu?: Cpu8 | any | null | undefined; + memory?: Memory8 | any | null | undefined; + name: string; + nodes: Nodes2; + providerFleets: Array; region?: string | null | undefined; - service: string; - status: ResourceHeartbeatStatus6; - trafficCount: number; - uri?: string | null | undefined; - urls: Array; - backend: "gcpCloudRun"; + status: ResourceHeartbeatStatus20; + backend: "gcp"; }; -export const DataReason5 = { - Forbidden: "forbidden", - NotInstalled: "not-installed", - ApiUnavailable: "api-unavailable", - CollectionFailed: "collection-failed", - TimedOut: "timed-out", +export const Category1 = { + Quota: "quota", + Capacity: "capacity", + Allocation: "allocation", + Other: "other", } as const; -export type DataReason5 = ClosedEnum; +export type Category1 = ClosedEnum; -export const StatusSeverity5 = { - Info: "info", - Warning: "warning", - Error: "error", +export type CapacityBlocker1 = { + category: Category1; + message: string; + observedAt: Date; + providerCode?: string | null | undefined; + providerReference?: string | null | undefined; +}; + +export type CapacityBlockerUnion1 = CapacityBlocker1 | any; + +export type DrainProgressBlocker1 = { + reason: string; + replicaId: string; + schedulingMode: string; + state: string; + workloadName: string; +}; + +export const DrainProgressStatus1 = { + Draining: "draining", + Drained: "drained", + Terminating: "terminating", } as const; -export type StatusSeverity5 = ClosedEnum; +export type DrainProgressStatus1 = ClosedEnum; -export type DataCollectionIssue5 = { - message: string; - reason: DataReason5; - severity: StatusSeverity5; - source: string; +export type DrainProgress1 = { + blockers?: Array | undefined; + drainDeadlineAt?: string | null | undefined; + drainRequestedAt?: string | null | undefined; + drainedAt?: string | null | undefined; + force: boolean; + machineId: string; + replicaCount: number; + stalled: boolean; + status: DrainProgressStatus1; }; -export const DataHealth5 = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", +export type DrainProgressUnion1 = DrainProgress1 | any; + +export const UtilizationUnit1 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", } as const; -export type DataHealth5 = ClosedEnum; +export type UtilizationUnit1 = ClosedEnum; -export const StatusLifecycle5 = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", +export type Utilization1 = { + unit: UtilizationUnit1; + value: number; +}; + +export type UtilizationUnion1 = Utilization1 | any; + +export type Recommendation1 = { + desiredMachines: number; + reason?: string | null | undefined; + unschedulableReplicas?: number | null | undefined; + utilization?: Utilization1 | any | null | undefined; +}; + +export type RecommendationUnion1 = Recommendation1 | any; + +export type CapacityGroup1 = { + capacityBlocker?: CapacityBlocker1 | any | null | undefined; + currentMachines: number; + desiredMachines: number; + drainProgress?: DrainProgress1 | any | null | undefined; + groupId: string; + instanceType?: string | null | undefined; + maxMachines?: number | null | undefined; + minMachines?: number | null | undefined; + recommendation?: Recommendation1 | any | null | undefined; +}; + +export const CpuUnit7 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", } as const; -export type StatusLifecycle5 = ClosedEnum; +export type CpuUnit7 = ClosedEnum; -export type ResourceHeartbeatStatus5 = { - collectionIssues: Array; - health: DataHealth5; - lifecycle: StatusLifecycle5; - message?: string | null | undefined; - partial: boolean; - stale: boolean; +export type Cpu7 = { + unit: CpuUnit7; + value: number; }; -export type DataAwsLambda = { - codeSha256?: string | null | undefined; - functionName: string; - functionUrlAuthType?: string | null | undefined; - functionUrlCorsPresent: boolean; - lastModified?: string | null | undefined; - lastUpdateStatus?: string | null | undefined; - lastUpdateStatusReason?: string | null | undefined; - lastUpdateStatusReasonCode?: string | null | undefined; - layerCount: number; - memorySizeMb?: number | null | undefined; - packageType?: string | null | undefined; - revisionId?: string | null | undefined; - runtime?: string | null | undefined; - state?: string | null | undefined; - stateReason?: string | null | undefined; - stateReasonCode?: string | null | undefined; - status: ResourceHeartbeatStatus5; - timeoutSeconds?: number | null | undefined; - triggerCount: number; - version?: string | null | undefined; - backend: "awsLambda"; +export type CpuUnion7 = Cpu7 | any; + +export const MemoryUnit7 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type MemoryUnit7 = ClosedEnum; + +export type Memory7 = { + unit: MemoryUnit7; + value: number; }; -export type SyncReconcileRequestDataUnion2 = - | DataAwsLambda - | DataGcpCloudRun - | DataAzureContainerApps1 - | DataKubernetes1 - | DataLocal2; +export type MemoryUnion7 = Memory7 | any; -export type DataWorker = { - data: - | DataAwsLambda - | DataGcpCloudRun - | DataAzureContainerApps1 - | DataKubernetes1 - | DataLocal2; - resourceType: "worker"; +export type Nodes1 = { + current?: number | null | undefined; + desired?: number | null | undefined; + ready?: number | null | undefined; }; -export const DataReason4 = { +export type ProviderFleet1 = { + currentMachines: number; + desiredMachines: number; + groupId: string; + location?: string | null | undefined; + providerId: string; +}; + +export const DataReason19 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason4 = ClosedEnum; +export type DataReason19 = ClosedEnum; -export const StatusSeverity4 = { +export const StatusSeverity19 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity4 = ClosedEnum; +export type StatusSeverity19 = ClosedEnum; -export type DataCollectionIssue4 = { +export type DataCollectionIssue19 = { message: string; - reason: DataReason4; - severity: StatusSeverity4; + reason: DataReason19; + severity: StatusSeverity19; source: string; }; -export const DataHealth4 = { +export const DataHealth19 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth4 = ClosedEnum; +export type DataHealth19 = ClosedEnum; -export const StatusLifecycle4 = { +export const StatusLifecycle19 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -11904,59 +11870,157 @@ export const StatusLifecycle4 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle4 = ClosedEnum; +export type StatusLifecycle19 = ClosedEnum; -export type ResourceHeartbeatStatus4 = { - collectionIssues: Array; - health: DataHealth4; - lifecycle: StatusLifecycle4; +export type ResourceHeartbeatStatus19 = { + collectionIssues: Array; + health: DataHealth19; + lifecycle: StatusLifecycle19; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataLocal1 = { - isDirectory?: boolean | null | undefined; - modifiedAt?: Date | null | undefined; - path: string; - pathExists: boolean; - readonly?: boolean | null | undefined; - status: ResourceHeartbeatStatus4; - backend: "local"; +export type DataAws2 = { + backendClusterId?: string | null | undefined; + capacityGroups: Array; + cpu?: Cpu7 | any | null | undefined; + memory?: Memory7 | any | null | undefined; + name: string; + nodes: Nodes1; + providerFleets: Array; + region?: string | null | undefined; + status: ResourceHeartbeatStatus19; + backend: "aws"; }; -export const DataReason3 = { +export type SyncReconcileRequestDataUnion5 = + | DataAws2 + | DataGcp2 + | DataAzure2 + | DataMachines2 + | DataLocal5; + +export type DataComputeCluster = { + data: DataAws2 | DataGcp2 | DataAzure2 | DataMachines2 | DataLocal5; + resourceType: "compute-cluster"; +}; + +export const DaemonInstanceCpuUnit = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type DaemonInstanceCpuUnit = ClosedEnum; + +export type DaemonInstanceCpu = { + unit: DaemonInstanceCpuUnit; + value: number; +}; + +export type DaemonInstanceCpuUnion5 = DaemonInstanceCpu | any; + +export const DaemonInstanceKind = { + Container: "container", + Process: "process", + Daemon: "daemon", +} as const; +export type DaemonInstanceKind = ClosedEnum; + +export const DaemonInstanceMemoryUnit = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type DaemonInstanceMemoryUnit = ClosedEnum< + typeof DaemonInstanceMemoryUnit +>; + +export type DaemonInstanceMemory = { + unit: DaemonInstanceMemoryUnit; + value: number; +}; + +export type DaemonInstanceMemoryUnion5 = DaemonInstanceMemory | any; + +export type DaemonInstance5 = { + cpu?: DaemonInstanceCpu | any | null | undefined; + kind: DaemonInstanceKind; + memory?: DaemonInstanceMemory | any | null | undefined; + name: string; + phase?: string | null | undefined; + pid?: number | null | undefined; + ready: boolean; + restartCount?: number | null | undefined; + unitId: string; +}; + +export type DaemonInstanceUnion = DaemonInstance5 | any; + +export const EventSeverity3 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type EventSeverity3 = ClosedEnum; + +export type SyncReconcileRequestSubject3 = { + id?: string | null | undefined; + kind: string; + name?: string | null | undefined; +}; + +export type SyncReconcileRequestSubjectUnion3 = + | SyncReconcileRequestSubject3 + | any; + +export type SyncReconcileRequestEvent11 = { + kind: string; + message: string; + raw?: any | null | undefined; + severity: EventSeverity3; + subject?: SyncReconcileRequestSubject3 | any | null | undefined; + timestamp: Date; +}; + +export const DataReason18 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason3 = ClosedEnum; +export type DataReason18 = ClosedEnum; -export const StatusSeverity3 = { +export const StatusSeverity18 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity3 = ClosedEnum; +export type StatusSeverity18 = ClosedEnum; -export type DataCollectionIssue3 = { +export type DataCollectionIssue18 = { message: string; - reason: DataReason3; - severity: StatusSeverity3; + reason: DataReason18; + severity: StatusSeverity18; source: string; }; -export const DataHealth3 = { +export const DataHealth18 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth3 = ClosedEnum; +export type DataHealth18 = ClosedEnum; -export const StatusLifecycle3 = { +export const StatusLifecycle18 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -11968,82 +12032,194 @@ export const StatusLifecycle3 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle3 = ClosedEnum; +export type StatusLifecycle18 = ClosedEnum; -export type ResourceHeartbeatStatus3 = { - collectionIssues: Array; - health: DataHealth3; - lifecycle: StatusLifecycle3; +export type ResourceHeartbeatStatus18 = { + collectionIssues: Array; + health: DataHealth18; + lifecycle: StatusLifecycle18; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAzureBlob = { - accessTier?: string | null | undefined; - accountKind?: string | null | undefined; - allowBlobPublicAccess?: boolean | null | undefined; - blobDeleteRetentionDays?: number | null | undefined; - blobDeleteRetentionEnabled?: boolean | null | undefined; - blobEncryptionEnabled?: boolean | null | undefined; - blobVersioningEnabled?: boolean | null | undefined; - changeFeedEnabled?: boolean | null | undefined; - changeFeedRetentionDays?: number | null | undefined; - containerDeleteRetentionDays?: number | null | undefined; - containerDeleteRetentionEnabled?: boolean | null | undefined; - containerPublicAccess?: string | null | undefined; - encryptionKeySource?: string | null | undefined; - fileEncryptionEnabled?: boolean | null | undefined; - location?: string | null | undefined; +export type DataLocal4 = { + commandSupported: boolean; + daemonInstance?: DaemonInstance5 | any | null | undefined; + daemonName?: string | undefined; + events: Array; + exitReason?: string | null | undefined; + imagePathPresent: boolean; + pid?: number | null | undefined; + restartCount?: number | null | undefined; + runtimeId: string; + status: ResourceHeartbeatStatus18; + backend: "local"; +}; + +export const CpuUnit6 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type CpuUnit6 = ClosedEnum; + +export type Cpu6 = { + unit: CpuUnit6; + value: number; +}; + +export type CpuUnion6 = Cpu6 | any; + +export type InvolvedObject8 = { + apiVersion?: string | null | undefined; + fieldPath?: string | null | undefined; + kind?: string | null | undefined; + name?: string | null | undefined; + namespace?: string | null | undefined; + resourceVersion?: string | null | undefined; + uid?: string | null | undefined; +}; + +export type InvolvedObjectUnion8 = InvolvedObject8 | any; + +export type SourceEvent8 = { + component?: string | null | undefined; + host?: string | null | undefined; +}; + +export type SourceUnion8 = SourceEvent8 | any; + +export type SyncReconcileRequestEvent10 = { + count?: number | null | undefined; + eventTime?: Date | null | undefined; + firstTimestamp?: Date | null | undefined; + involvedObject?: InvolvedObject8 | any | null | undefined; + lastTimestamp?: Date | null | undefined; + message: string; + raw?: any | null | undefined; + reason: string; + source?: SourceEvent8 | any | null | undefined; + type?: string | null | undefined; +}; + +export const MemoryUnit6 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type MemoryUnit6 = ClosedEnum; + +export type Memory6 = { + unit: MemoryUnit6; + value: number; +}; + +export type MemoryUnion6 = Memory6 | any; + +export const CpuPodUnit3 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type CpuPodUnit3 = ClosedEnum; + +export type CpuPod3 = { + unit: CpuPodUnit3; + value: number; +}; + +export type PodCpuUnion3 = CpuPod3 | any; + +export const MemoryPodUnit3 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type MemoryPodUnit3 = ClosedEnum; + +export type MemoryPod3 = { + unit: MemoryPodUnit3; + value: number; +}; + +export type PodMemoryUnion3 = MemoryPod3 | any; + +export type OwnerReference3 = { + controller: boolean; + kind: string; name: string; - primaryLocation?: string | null | undefined; - provisioningState?: string | null | undefined; - publicNetworkAccess?: string | null | undefined; - queueEncryptionEnabled?: boolean | null | undefined; - resourceGroup?: string | null | undefined; - secondaryLocation?: string | null | undefined; - skuName?: string | null | undefined; - skuTier?: string | null | undefined; - status: ResourceHeartbeatStatus3; - statusOfPrimary?: string | null | undefined; - statusOfSecondary?: string | null | undefined; - storageAccountName?: string | null | undefined; - tableEncryptionEnabled?: boolean | null | undefined; - backend: "azureBlob"; + uid: string; }; -export const DataReason2 = { +export type Pod3 = { + cpu?: CpuPod3 | any | null | undefined; + memory?: MemoryPod3 | any | null | undefined; + name: string; + nodeName?: string | null | undefined; + ownerReferences: Array; + phase?: string | null | undefined; + podIp?: string | null | undefined; + ready: boolean; + restartCount: number; + terminatedReason?: string | null | undefined; + uid?: string | null | undefined; + waitingReason?: string | null | undefined; +}; + +export type Replicas4 = { + available?: number | null | undefined; + current?: number | null | undefined; + desired?: number | null | undefined; + misscheduled?: number | null | undefined; + ready?: number | null | undefined; + updated?: number | null | undefined; +}; + +export const DataReason17 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason2 = ClosedEnum; +export type DataReason17 = ClosedEnum; -export const StatusSeverity2 = { +export const StatusSeverity17 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity2 = ClosedEnum; +export type StatusSeverity17 = ClosedEnum; -export type DataCollectionIssue2 = { +export type DataCollectionIssue17 = { message: string; - reason: DataReason2; - severity: StatusSeverity2; + reason: DataReason17; + severity: StatusSeverity17; source: string; }; -export const DataHealth2 = { +export const DataHealth17 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth2 = ClosedEnum; +export type DataHealth17 = ClosedEnum; -export const StatusLifecycle2 = { +export const StatusLifecycle17 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -12055,72 +12231,175 @@ export const StatusLifecycle2 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle2 = ClosedEnum; +export type StatusLifecycle17 = ClosedEnum; -export type ResourceHeartbeatStatus2 = { - collectionIssues: Array; - health: DataHealth2; - lifecycle: StatusLifecycle2; +export type ResourceHeartbeatStatus17 = { + collectionIssues: Array; + health: DataHealth17; + lifecycle: StatusLifecycle17; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataGcpCloudStorage = { - bucketId?: string | null | undefined; - defaultKmsKeyName?: string | null | undefined; - encryptionConfigPresent: boolean; - lifecyclePresent: boolean; - lifecycleRuleCount?: number | null | undefined; - location?: string | null | undefined; - locationType?: string | null | undefined; +export type WorkloadCondition3 = { + lastTransitionTime?: Date | null | undefined; + message?: string | null | undefined; + reason?: string | null | undefined; + status: string; + type: string; +}; + +export type Workload3 = { + availableReplicas?: number | null | undefined; + conditions: Array; + desiredGeneration?: number | null | undefined; + desiredReplicas?: number | null | undefined; + observedGeneration?: number | null | undefined; + readyReplicas?: number | null | undefined; + rolloutReason?: string | null | undefined; + updatedReplicas?: number | null | undefined; +}; + +export type WorkloadUnion3 = Workload3 | any; + +export type DataKubernetes3 = { + commandSupported: boolean; + cpu?: Cpu6 | any | null | undefined; + events: Array; + memory?: Memory6 | any | null | undefined; name: string; - publicAccessPrevention?: string | null | undefined; - retentionPeriod?: string | null | undefined; - retentionPolicyEffectiveTime?: string | null | undefined; - retentionPolicyIsLocked?: boolean | null | undefined; - softDeleteEffectiveTime?: string | null | undefined; - softDeleteRetentionDurationSeconds?: string | null | undefined; - status: ResourceHeartbeatStatus2; - storageClass?: string | null | undefined; - uniformBucketLevelAccessEnabled?: boolean | null | undefined; - uniformBucketLevelAccessLockedTime?: string | null | undefined; - versioningEnabled?: boolean | null | undefined; - backend: "gcpCloudStorage"; + namespace: string; + pods: Array; + replicas: Replicas4; + restarts?: number | null | undefined; + status: ResourceHeartbeatStatus17; + workload?: Workload3 | any | null | undefined; + backend: "kubernetes"; }; -export const DataReason1 = { +export const CpuDaemonInstanceUnit4 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type CpuDaemonInstanceUnit4 = ClosedEnum; + +export type CpuDaemonInstance4 = { + unit: CpuDaemonInstanceUnit4; + value: number; +}; + +export type DaemonInstanceCpuUnion4 = CpuDaemonInstance4 | any; + +export const MemoryDaemonInstanceUnit4 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type MemoryDaemonInstanceUnit4 = ClosedEnum< + typeof MemoryDaemonInstanceUnit4 +>; + +export type MemoryDaemonInstance4 = { + unit: MemoryDaemonInstanceUnit4; + value: number; +}; + +export type DaemonInstanceMemoryUnion4 = MemoryDaemonInstance4 | any; + +export type DaemonInstance4 = { + cpu?: CpuDaemonInstance4 | any | null | undefined; + ip?: string | null | undefined; + machineId?: string | null | undefined; + memory?: MemoryDaemonInstance4 | any | null | undefined; + message?: string | null | undefined; + metricsHealthy?: boolean | null | undefined; + metricsLastUpdated?: string | null | undefined; + metricsStatus?: string | null | undefined; + name: string; + nodeName?: string | null | undefined; + phase?: string | null | undefined; + ready: boolean; + reason?: string | null | undefined; + replicaId: string; + restartCount?: number | null | undefined; + status?: string | null | undefined; + terminatedReason?: string | null | undefined; + waitingReason?: string | null | undefined; +}; + +export type InvolvedObject7 = { + details?: any | null | undefined; + id?: string | null | undefined; + kind?: string | null | undefined; + machineId?: string | null | undefined; + name?: string | null | undefined; + replicaId?: string | null | undefined; +}; + +export type InvolvedObjectUnion7 = InvolvedObject7 | any; + +export type SourceEvent7 = { + component?: string | null | undefined; + host?: string | null | undefined; +}; + +export type SourceUnion7 = SourceEvent7 | any; + +export type SyncReconcileRequestEvent9 = { + count?: number | null | undefined; + details?: any | null | undefined; + eventId?: string | null | undefined; + eventTime?: Date | null | undefined; + firstTimestamp?: Date | null | undefined; + involvedObject?: InvolvedObject7 | any | null | undefined; + lastTimestamp?: Date | null | undefined; + message: string; + raw?: any | null | undefined; + reason: string; + source?: SourceEvent7 | any | null | undefined; + type?: string | null | undefined; +}; + +export const DataReason16 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type DataReason1 = ClosedEnum; +export type DataReason16 = ClosedEnum; -export const StatusSeverity1 = { +export const StatusSeverity16 = { Info: "info", Warning: "warning", Error: "error", } as const; -export type StatusSeverity1 = ClosedEnum; +export type StatusSeverity16 = ClosedEnum; -export type DataCollectionIssue1 = { +export type DataCollectionIssue16 = { message: string; - reason: DataReason1; - severity: StatusSeverity1; + reason: DataReason16; + severity: StatusSeverity16; source: string; }; -export const DataHealth1 = { +export const DataHealth16 = { Unknown: "unknown", Healthy: "healthy", Degraded: "degraded", Unhealthy: "unhealthy", } as const; -export type DataHealth1 = ClosedEnum; +export type DataHealth16 = ClosedEnum; -export const StatusLifecycle1 = { +export const StatusLifecycle16 = { Unknown: "unknown", Creating: "creating", Updating: "updating", @@ -12132,609 +12411,5832 @@ export const StatusLifecycle1 = { Deleted: "deleted", Failed: "failed", } as const; -export type StatusLifecycle1 = ClosedEnum; +export type StatusLifecycle16 = ClosedEnum; -export type ResourceHeartbeatStatus1 = { - collectionIssues: Array; - health: DataHealth1; - lifecycle: StatusLifecycle1; +export type ResourceHeartbeatStatus16 = { + collectionIssues: Array; + health: DataHealth16; + lifecycle: StatusLifecycle16; message?: string | null | undefined; partial: boolean; stale: boolean; }; -export type DataAwsS3 = { - blockPublicAcls?: boolean | null | undefined; - blockPublicPolicy?: boolean | null | undefined; - bucketAclPresent?: boolean | null | undefined; - bucketLocation?: string | null | undefined; - bucketPolicyPresent?: boolean | null | undefined; - encryptionConfigPresent: boolean; - encryptionEnabled?: boolean | null | undefined; - ignorePublicAcls?: boolean | null | undefined; - lifecyclePresent: boolean; - lifecycleRuleCount?: number | null | undefined; - name: string; - publicAccessBlockPresent: boolean; - region?: string | null | undefined; - restrictPublicBuckets?: boolean | null | undefined; - status: ResourceHeartbeatStatus1; - versioningEnabled?: boolean | null | undefined; - versioningStatus?: string | null | undefined; - backend: "awsS3"; +export type DataMachines1 = { + assignedMachines: number; + capacityGroup: string; + commandSupported: boolean; + daemonInstances: Array; + daemonName?: string | undefined; + desiredMachines: number; + events: Array; + healthyInstances: number; + horizonClusterId: string; + horizonStatus: string; + horizonStatusMessage?: string | null | undefined; + horizonStatusReason?: string | null | undefined; + latestUpdateTimestamp: string; + observedImage?: string | null | undefined; + status: ResourceHeartbeatStatus16; + unavailableInstances: number; + backend: "machines"; }; -export type SyncReconcileRequestDataUnion1 = - | DataAwsS3 - | DataGcpCloudStorage - | DataAzureBlob - | DataLocal1; +export const CpuDaemonInstanceUnit3 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type CpuDaemonInstanceUnit3 = ClosedEnum; -export type DataStorage = { - data: DataAwsS3 | DataGcpCloudStorage | DataAzureBlob | DataLocal1; - resourceType: "storage"; +export type CpuDaemonInstance3 = { + unit: CpuDaemonInstanceUnit3; + value: number; }; -export type SyncReconcileRequestDataUnion16 = - | DataStorage - | DataWorker - | DataContainer - | DataDaemon - | DataComputeCluster - | DataKubernetesCluster - | DataQueue - | DataKv - | DataPostgres - | DataVault - | DataServiceAccount - | DataNetwork - | DataRemoteStackManagement - | DataArtifactRegistry - | DataBuild - | DataServiceActivation - | DataAzureResourceGroup - | DataAzureStorageAccount - | DataAzureContainerAppsEnvironment - | DataAzureServiceBusNamespace; +export type DaemonInstanceCpuUnion3 = CpuDaemonInstance3 | any; -export const ResourceHeartbeatFormat = { - Json: "json", - Yaml: "yaml", - Text: "text", +export const MemoryDaemonInstanceUnit3 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", } as const; -export type ResourceHeartbeatFormat = ClosedEnum< - typeof ResourceHeartbeatFormat +export type MemoryDaemonInstanceUnit3 = ClosedEnum< + typeof MemoryDaemonInstanceUnit3 >; -export type ResourceHeartbeatRaw = { - body: string; - collectedAt: Date; - format: ResourceHeartbeatFormat; - source: string; - truncated: boolean; +export type MemoryDaemonInstance3 = { + unit: MemoryDaemonInstanceUnit3; + value: number; }; -export type ResourceHeartbeat = { - backend: ResourceHeartbeatBackendEnum; - /** - * Represents the target cloud platform. - */ - controllerPlatform: ResourceHeartbeatControllerPlatform; - data: - | DataStorage - | DataWorker - | DataContainer - | DataDaemon - | DataComputeCluster - | DataKubernetesCluster - | DataQueue - | DataKv - | DataPostgres - | DataVault - | DataServiceAccount - | DataNetwork - | DataRemoteStackManagement - | DataArtifactRegistry - | DataBuild - | DataServiceActivation - | DataAzureResourceGroup - | DataAzureStorageAccount - | DataAzureContainerAppsEnvironment - | DataAzureServiceBusNamespace; - deploymentId?: string | null | undefined; - observedAt: Date; - raw: Array; - /** - * Alien resource id, such as the `alien.Container` or `alien.Storage` - * - * @remarks - * resource id from the stack. - */ - resourceId: string; - /** - * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. - */ - resourceType: string; +export type DaemonInstanceMemoryUnion3 = MemoryDaemonInstance3 | any; + +export type DaemonInstance3 = { + cpu?: CpuDaemonInstance3 | any | null | undefined; + ip?: string | null | undefined; + machineId?: string | null | undefined; + memory?: MemoryDaemonInstance3 | any | null | undefined; + message?: string | null | undefined; + metricsHealthy?: boolean | null | undefined; + metricsLastUpdated?: string | null | undefined; + metricsStatus?: string | null | undefined; + name: string; + nodeName?: string | null | undefined; + phase?: string | null | undefined; + ready: boolean; + reason?: string | null | undefined; + replicaId: string; + restartCount?: number | null | undefined; + status?: string | null | undefined; + terminatedReason?: string | null | undefined; + waitingReason?: string | null | undefined; }; -/** - * Backend whose observer produced this snapshot. - */ -export const ObservedInventoryBatchBackend = { - Aws: "aws", - Gcp: "gcp", - Azure: "azure", - Kubernetes: "kubernetes", - Local: "local", - Managed: "managed", - External: "external", - Test: "test", +export type InvolvedObject6 = { + details?: any | null | undefined; + id?: string | null | undefined; + kind?: string | null | undefined; + machineId?: string | null | undefined; + name?: string | null | undefined; + replicaId?: string | null | undefined; +}; + +export type InvolvedObjectUnion6 = InvolvedObject6 | any; + +export type SourceEvent6 = { + component?: string | null | undefined; + host?: string | null | undefined; +}; + +export type SourceUnion6 = SourceEvent6 | any; + +export type SyncReconcileRequestEvent8 = { + count?: number | null | undefined; + details?: any | null | undefined; + eventId?: string | null | undefined; + eventTime?: Date | null | undefined; + firstTimestamp?: Date | null | undefined; + involvedObject?: InvolvedObject6 | any | null | undefined; + lastTimestamp?: Date | null | undefined; + message: string; + raw?: any | null | undefined; + reason: string; + source?: SourceEvent6 | any | null | undefined; + type?: string | null | undefined; +}; + +export const DataReason15 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", } as const; -/** - * Backend whose observer produced this snapshot. - */ -export type ObservedInventoryBatchBackend = ClosedEnum< - typeof ObservedInventoryBatchBackend +export type DataReason15 = ClosedEnum; + +export const StatusSeverity15 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type StatusSeverity15 = ClosedEnum; + +export type DataCollectionIssue15 = { + message: string; + reason: DataReason15; + severity: StatusSeverity15; + source: string; +}; + +export const DataHealth15 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type DataHealth15 = ClosedEnum; + +export const StatusLifecycle15 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type StatusLifecycle15 = ClosedEnum; + +export type ResourceHeartbeatStatus15 = { + collectionIssues: Array; + health: DataHealth15; + lifecycle: StatusLifecycle15; + message?: string | null | undefined; + partial: boolean; + stale: boolean; +}; + +export type DataAzure1 = { + assignedMachines: number; + capacityGroup: string; + commandSupported: boolean; + daemonInstances: Array; + daemonName?: string | undefined; + desiredMachines: number; + events: Array; + healthyInstances: number; + horizonClusterId: string; + horizonStatus: string; + horizonStatusMessage?: string | null | undefined; + horizonStatusReason?: string | null | undefined; + latestUpdateTimestamp: string; + observedImage?: string | null | undefined; + status: ResourceHeartbeatStatus15; + unavailableInstances: number; + backend: "azure"; +}; + +export const CpuDaemonInstanceUnit2 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type CpuDaemonInstanceUnit2 = ClosedEnum; + +export type CpuDaemonInstance2 = { + unit: CpuDaemonInstanceUnit2; + value: number; +}; + +export type DaemonInstanceCpuUnion2 = CpuDaemonInstance2 | any; + +export const MemoryDaemonInstanceUnit2 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type MemoryDaemonInstanceUnit2 = ClosedEnum< + typeof MemoryDaemonInstanceUnit2 >; -/** - * Represents the target cloud platform. - */ -export const ObservedInventoryBatchControllerPlatform = { - Aws: "aws", - Gcp: "gcp", - Azure: "azure", - Kubernetes: "kubernetes", - Machines: "machines", - Local: "local", - Test: "test", +export type MemoryDaemonInstance2 = { + unit: MemoryDaemonInstanceUnit2; + value: number; +}; + +export type DaemonInstanceMemoryUnion2 = MemoryDaemonInstance2 | any; + +export type DaemonInstance2 = { + cpu?: CpuDaemonInstance2 | any | null | undefined; + ip?: string | null | undefined; + machineId?: string | null | undefined; + memory?: MemoryDaemonInstance2 | any | null | undefined; + message?: string | null | undefined; + metricsHealthy?: boolean | null | undefined; + metricsLastUpdated?: string | null | undefined; + metricsStatus?: string | null | undefined; + name: string; + nodeName?: string | null | undefined; + phase?: string | null | undefined; + ready: boolean; + reason?: string | null | undefined; + replicaId: string; + restartCount?: number | null | undefined; + status?: string | null | undefined; + terminatedReason?: string | null | undefined; + waitingReason?: string | null | undefined; +}; + +export type InvolvedObject5 = { + details?: any | null | undefined; + id?: string | null | undefined; + kind?: string | null | undefined; + machineId?: string | null | undefined; + name?: string | null | undefined; + replicaId?: string | null | undefined; +}; + +export type InvolvedObjectUnion5 = InvolvedObject5 | any; + +export type SourceEvent5 = { + component?: string | null | undefined; + host?: string | null | undefined; +}; + +export type SourceUnion5 = SourceEvent5 | any; + +export type SyncReconcileRequestEvent7 = { + count?: number | null | undefined; + details?: any | null | undefined; + eventId?: string | null | undefined; + eventTime?: Date | null | undefined; + firstTimestamp?: Date | null | undefined; + involvedObject?: InvolvedObject5 | any | null | undefined; + lastTimestamp?: Date | null | undefined; + message: string; + raw?: any | null | undefined; + reason: string; + source?: SourceEvent5 | any | null | undefined; + type?: string | null | undefined; +}; + +export const DataReason14 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", } as const; -/** - * Represents the target cloud platform. - */ -export type ObservedInventoryBatchControllerPlatform = ClosedEnum< - typeof ObservedInventoryBatchControllerPlatform +export type DataReason14 = ClosedEnum; + +export const StatusSeverity14 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type StatusSeverity14 = ClosedEnum; + +export type DataCollectionIssue14 = { + message: string; + reason: DataReason14; + severity: StatusSeverity14; + source: string; +}; + +export const DataHealth14 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type DataHealth14 = ClosedEnum; + +export const StatusLifecycle14 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type StatusLifecycle14 = ClosedEnum; + +export type ResourceHeartbeatStatus14 = { + collectionIssues: Array; + health: DataHealth14; + lifecycle: StatusLifecycle14; + message?: string | null | undefined; + partial: boolean; + stale: boolean; +}; + +export type DataGcp1 = { + assignedMachines: number; + capacityGroup: string; + commandSupported: boolean; + daemonInstances: Array; + daemonName?: string | undefined; + desiredMachines: number; + events: Array; + healthyInstances: number; + horizonClusterId: string; + horizonStatus: string; + horizonStatusMessage?: string | null | undefined; + horizonStatusReason?: string | null | undefined; + latestUpdateTimestamp: string; + observedImage?: string | null | undefined; + status: ResourceHeartbeatStatus14; + unavailableInstances: number; + backend: "gcp"; +}; + +export const CpuDaemonInstanceUnit1 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type CpuDaemonInstanceUnit1 = ClosedEnum; + +export type CpuDaemonInstance1 = { + unit: CpuDaemonInstanceUnit1; + value: number; +}; + +export type DaemonInstanceCpuUnion1 = CpuDaemonInstance1 | any; + +export const MemoryDaemonInstanceUnit1 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type MemoryDaemonInstanceUnit1 = ClosedEnum< + typeof MemoryDaemonInstanceUnit1 >; -export const ResourceReason = { +export type MemoryDaemonInstance1 = { + unit: MemoryDaemonInstanceUnit1; + value: number; +}; + +export type DaemonInstanceMemoryUnion1 = MemoryDaemonInstance1 | any; + +export type DaemonInstance1 = { + cpu?: CpuDaemonInstance1 | any | null | undefined; + ip?: string | null | undefined; + machineId?: string | null | undefined; + memory?: MemoryDaemonInstance1 | any | null | undefined; + message?: string | null | undefined; + metricsHealthy?: boolean | null | undefined; + metricsLastUpdated?: string | null | undefined; + metricsStatus?: string | null | undefined; + name: string; + nodeName?: string | null | undefined; + phase?: string | null | undefined; + ready: boolean; + reason?: string | null | undefined; + replicaId: string; + restartCount?: number | null | undefined; + status?: string | null | undefined; + terminatedReason?: string | null | undefined; + waitingReason?: string | null | undefined; +}; + +export type InvolvedObject4 = { + details?: any | null | undefined; + id?: string | null | undefined; + kind?: string | null | undefined; + machineId?: string | null | undefined; + name?: string | null | undefined; + replicaId?: string | null | undefined; +}; + +export type InvolvedObjectUnion4 = InvolvedObject4 | any; + +export type SourceEvent4 = { + component?: string | null | undefined; + host?: string | null | undefined; +}; + +export type SourceUnion4 = SourceEvent4 | any; + +export type SyncReconcileRequestEvent6 = { + count?: number | null | undefined; + details?: any | null | undefined; + eventId?: string | null | undefined; + eventTime?: Date | null | undefined; + firstTimestamp?: Date | null | undefined; + involvedObject?: InvolvedObject4 | any | null | undefined; + lastTimestamp?: Date | null | undefined; + message: string; + raw?: any | null | undefined; + reason: string; + source?: SourceEvent4 | any | null | undefined; + type?: string | null | undefined; +}; + +export const DataReason13 = { Forbidden: "forbidden", NotInstalled: "not-installed", ApiUnavailable: "api-unavailable", CollectionFailed: "collection-failed", TimedOut: "timed-out", } as const; -export type ResourceReason = ClosedEnum; +export type DataReason13 = ClosedEnum; + +export const StatusSeverity13 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type StatusSeverity13 = ClosedEnum; + +export type DataCollectionIssue13 = { + message: string; + reason: DataReason13; + severity: StatusSeverity13; + source: string; +}; + +export const DataHealth13 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type DataHealth13 = ClosedEnum; + +export const StatusLifecycle13 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type StatusLifecycle13 = ClosedEnum; + +export type ResourceHeartbeatStatus13 = { + collectionIssues: Array; + health: DataHealth13; + lifecycle: StatusLifecycle13; + message?: string | null | undefined; + partial: boolean; + stale: boolean; +}; + +export type DataAws1 = { + assignedMachines: number; + capacityGroup: string; + commandSupported: boolean; + daemonInstances: Array; + daemonName?: string | undefined; + desiredMachines: number; + events: Array; + healthyInstances: number; + horizonClusterId: string; + horizonStatus: string; + horizonStatusMessage?: string | null | undefined; + horizonStatusReason?: string | null | undefined; + latestUpdateTimestamp: string; + observedImage?: string | null | undefined; + status: ResourceHeartbeatStatus13; + unavailableInstances: number; + backend: "aws"; +}; + +export type SyncReconcileRequestDataUnion4 = + | DataAws1 + | DataGcp1 + | DataAzure1 + | DataMachines1 + | DataKubernetes3 + | DataLocal4; + +export type DataDaemon = { + data: + | DataAws1 + | DataGcp1 + | DataAzure1 + | DataMachines1 + | DataKubernetes3 + | DataLocal4; + resourceType: "daemon"; +}; + +export const ContainerUnitCpuUnit = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type ContainerUnitCpuUnit = ClosedEnum; + +export type ContainerUnitCpu = { + unit: ContainerUnitCpuUnit; + value: number; +}; + +export type ContainerUnitCpuUnion = ContainerUnitCpu | any; + +export const ContainerUnitKind = { + Container: "container", + Process: "process", + Daemon: "daemon", +} as const; +export type ContainerUnitKind = ClosedEnum; + +export const ContainerUnitMemoryUnit = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type ContainerUnitMemoryUnit = ClosedEnum< + typeof ContainerUnitMemoryUnit +>; + +export type ContainerUnitMemory = { + unit: ContainerUnitMemoryUnit; + value: number; +}; + +export type ContainerUnitMemoryUnion = ContainerUnitMemory | any; + +export type ContainerUnit = { + cpu?: ContainerUnitCpu | any | null | undefined; + kind: ContainerUnitKind; + memory?: ContainerUnitMemory | any | null | undefined; + name: string; + phase?: string | null | undefined; + pid?: number | null | undefined; + ready: boolean; + restartCount?: number | null | undefined; + unitId: string; +}; + +export type ContainerUnitUnion = ContainerUnit | any; + +export const CpuUnit5 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type CpuUnit5 = ClosedEnum; + +export type Cpu5 = { + unit: CpuUnit5; + value: number; +}; + +export type CpuUnion5 = Cpu5 | any; + +export const EventSeverity2 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type EventSeverity2 = ClosedEnum; + +export type SyncReconcileRequestSubject2 = { + id?: string | null | undefined; + kind: string; + name?: string | null | undefined; +}; + +export type SyncReconcileRequestSubjectUnion2 = + | SyncReconcileRequestSubject2 + | any; + +export type SyncReconcileRequestEvent5 = { + kind: string; + message: string; + raw?: any | null | undefined; + severity: EventSeverity2; + subject?: SyncReconcileRequestSubject2 | any | null | undefined; + timestamp: Date; +}; + +export const MemoryUnit5 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type MemoryUnit5 = ClosedEnum; + +export type Memory5 = { + unit: MemoryUnit5; + value: number; +}; + +export type MemoryUnion5 = Memory5 | any; + +export const DataReason12 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type DataReason12 = ClosedEnum; + +export const StatusSeverity12 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type StatusSeverity12 = ClosedEnum; + +export type DataCollectionIssue12 = { + message: string; + reason: DataReason12; + severity: StatusSeverity12; + source: string; +}; + +export const DataHealth12 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type DataHealth12 = ClosedEnum; + +export const StatusLifecycle12 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type StatusLifecycle12 = ClosedEnum; + +export type ResourceHeartbeatStatus12 = { + collectionIssues: Array; + health: DataHealth12; + lifecycle: StatusLifecycle12; + message?: string | null | undefined; + partial: boolean; + stale: boolean; +}; + +export type DataLocal3 = { + bindMountCount: number; + containerId?: string | null | undefined; + containerUnit?: ContainerUnit | any | null | undefined; + cpu?: Cpu5 | any | null | undefined; + events: Array; + image?: string | null | undefined; + localUrl?: string | null | undefined; + memory?: Memory5 | any | null | undefined; + name?: string | null | undefined; + portCount: number; + restartCount?: number | null | undefined; + runtimeReachable: boolean; + runtimeStatus?: string | null | undefined; + status: ResourceHeartbeatStatus12; + backend: "local"; +}; + +export const CpuUnit4 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type CpuUnit4 = ClosedEnum; + +export type Cpu4 = { + unit: CpuUnit4; + value: number; +}; + +export type CpuUnion4 = Cpu4 | any; + +export type InvolvedObject3 = { + apiVersion?: string | null | undefined; + fieldPath?: string | null | undefined; + kind?: string | null | undefined; + name?: string | null | undefined; + namespace?: string | null | undefined; + resourceVersion?: string | null | undefined; + uid?: string | null | undefined; +}; + +export type InvolvedObjectUnion3 = InvolvedObject3 | any; + +export type SourceEvent3 = { + component?: string | null | undefined; + host?: string | null | undefined; +}; + +export type SourceUnion3 = SourceEvent3 | any; + +export type SyncReconcileRequestEvent4 = { + count?: number | null | undefined; + eventTime?: Date | null | undefined; + firstTimestamp?: Date | null | undefined; + involvedObject?: InvolvedObject3 | any | null | undefined; + lastTimestamp?: Date | null | undefined; + message: string; + raw?: any | null | undefined; + reason: string; + source?: SourceEvent3 | any | null | undefined; + type?: string | null | undefined; +}; + +export const MemoryUnit4 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type MemoryUnit4 = ClosedEnum; + +export type Memory4 = { + unit: MemoryUnit4; + value: number; +}; + +export type MemoryUnion4 = Memory4 | any; + +export const CpuPodUnit2 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type CpuPodUnit2 = ClosedEnum; + +export type CpuPod2 = { + unit: CpuPodUnit2; + value: number; +}; + +export type PodCpuUnion2 = CpuPod2 | any; + +export const MemoryPodUnit2 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type MemoryPodUnit2 = ClosedEnum; + +export type MemoryPod2 = { + unit: MemoryPodUnit2; + value: number; +}; + +export type PodMemoryUnion2 = MemoryPod2 | any; + +export type OwnerReference2 = { + controller: boolean; + kind: string; + name: string; + uid: string; +}; + +export type Pod2 = { + cpu?: CpuPod2 | any | null | undefined; + memory?: MemoryPod2 | any | null | undefined; + name: string; + nodeName?: string | null | undefined; + ownerReferences: Array; + phase?: string | null | undefined; + podIp?: string | null | undefined; + ready: boolean; + restartCount: number; + terminatedReason?: string | null | undefined; + uid?: string | null | undefined; + waitingReason?: string | null | undefined; +}; + +export type Replicas3 = { + available?: number | null | undefined; + current?: number | null | undefined; + desired?: number | null | undefined; + misscheduled?: number | null | undefined; + ready?: number | null | undefined; + updated?: number | null | undefined; +}; + +export const DataReason11 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type DataReason11 = ClosedEnum; + +export const StatusSeverity11 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type StatusSeverity11 = ClosedEnum; + +export type DataCollectionIssue11 = { + message: string; + reason: DataReason11; + severity: StatusSeverity11; + source: string; +}; + +export const DataHealth11 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type DataHealth11 = ClosedEnum; + +export const StatusLifecycle11 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type StatusLifecycle11 = ClosedEnum; + +export type ResourceHeartbeatStatus11 = { + collectionIssues: Array; + health: DataHealth11; + lifecycle: StatusLifecycle11; + message?: string | null | undefined; + partial: boolean; + stale: boolean; +}; + +export type WorkloadCondition2 = { + lastTransitionTime?: Date | null | undefined; + message?: string | null | undefined; + reason?: string | null | undefined; + status: string; + type: string; +}; + +export type Workload2 = { + availableReplicas?: number | null | undefined; + conditions: Array; + desiredGeneration?: number | null | undefined; + desiredReplicas?: number | null | undefined; + observedGeneration?: number | null | undefined; + readyReplicas?: number | null | undefined; + rolloutReason?: string | null | undefined; + updatedReplicas?: number | null | undefined; +}; + +export type WorkloadUnion2 = Workload2 | any; + +export const WorkloadKind2 = { + Deployment: "deployment", + StatefulSet: "statefulSet", + DaemonSet: "daemonSet", + ReplicaSet: "replicaSet", + Pod: "pod", +} as const; +export type WorkloadKind2 = ClosedEnum; + +export type DataKubernetes2 = { + cpu?: Cpu4 | any | null | undefined; + events: Array; + memory?: Memory4 | any | null | undefined; + name: string; + namespace: string; + pods: Array; + replicas: Replicas3; + restarts?: number | null | undefined; + status: ResourceHeartbeatStatus11; + workload?: Workload2 | any | null | undefined; + workloadKind: WorkloadKind2; + backend: "kubernetes"; +}; + +export const CpuUnit3 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type CpuUnit3 = ClosedEnum; + +export type Cpu3 = { + unit: CpuUnit3; + value: number; +}; + +export type CpuUnion3 = Cpu3 | any; + +export type InvolvedObject2 = { + details?: any | null | undefined; + id?: string | null | undefined; + kind?: string | null | undefined; + machineId?: string | null | undefined; + name?: string | null | undefined; + replicaId?: string | null | undefined; +}; + +export type InvolvedObjectUnion2 = InvolvedObject2 | any; + +export type SourceEvent2 = { + component?: string | null | undefined; + host?: string | null | undefined; +}; + +export type SourceUnion2 = SourceEvent2 | any; + +export type SyncReconcileRequestEvent3 = { + count?: number | null | undefined; + details?: any | null | undefined; + eventId?: string | null | undefined; + eventTime?: Date | null | undefined; + firstTimestamp?: Date | null | undefined; + involvedObject?: InvolvedObject2 | any | null | undefined; + lastTimestamp?: Date | null | undefined; + message: string; + raw?: any | null | undefined; + reason: string; + source?: SourceEvent2 | any | null | undefined; + type?: string | null | undefined; +}; + +export const MemoryUnit3 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type MemoryUnit3 = ClosedEnum; + +export type Memory3 = { + unit: MemoryUnit3; + value: number; +}; + +export type MemoryUnion3 = Memory3 | any; + +export const CpuReplicaUnitUnit = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type CpuReplicaUnitUnit = ClosedEnum; + +export type CpuReplicaUnit = { + unit: CpuReplicaUnitUnit; + value: number; +}; + +export type ReplicaUnitCpuUnion = CpuReplicaUnit | any; + +export const MemoryReplicaUnitUnit = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type MemoryReplicaUnitUnit = ClosedEnum; + +export type MemoryReplicaUnit = { + unit: MemoryReplicaUnitUnit; + value: number; +}; + +export type ReplicaUnitMemoryUnion = MemoryReplicaUnit | any; + +export type ReplicaUnit = { + cpu?: CpuReplicaUnit | any | null | undefined; + ip?: string | null | undefined; + machineId?: string | null | undefined; + memory?: MemoryReplicaUnit | any | null | undefined; + message?: string | null | undefined; + metricsHealthy?: boolean | null | undefined; + metricsLastUpdated?: string | null | undefined; + metricsStatus?: string | null | undefined; + name: string; + nodeName?: string | null | undefined; + phase?: string | null | undefined; + ready: boolean; + reason?: string | null | undefined; + replicaId: string; + restartCount?: number | null | undefined; + status?: string | null | undefined; + terminatedReason?: string | null | undefined; + waitingReason?: string | null | undefined; +}; + +export type Replicas2 = { + available?: number | null | undefined; + current?: number | null | undefined; + desired?: number | null | undefined; + misscheduled?: number | null | undefined; + ready?: number | null | undefined; + updated?: number | null | undefined; +}; + +export const SchedulingMode = { + Replicated: "replicated", + Stateful: "stateful", + Daemon: "daemon", +} as const; +export type SchedulingMode = ClosedEnum; + +export const DataReason10 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type DataReason10 = ClosedEnum; + +export const StatusSeverity10 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type StatusSeverity10 = ClosedEnum; + +export type DataCollectionIssue10 = { + message: string; + reason: DataReason10; + severity: StatusSeverity10; + source: string; +}; + +export const DataHealth10 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type DataHealth10 = ClosedEnum; + +export const StatusLifecycle10 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type StatusLifecycle10 = ClosedEnum; + +export type ResourceHeartbeatStatus10 = { + collectionIssues: Array; + health: DataHealth10; + lifecycle: StatusLifecycle10; + message?: string | null | undefined; + partial: boolean; + stale: boolean; +}; + +export type DataHorizonPlatform = { + attentionCount: number; + containerId: string; + cpu?: Cpu3 | any | null | undefined; + events: Array; + image?: string | null | undefined; + latestUpdateTimestamp?: string | null | undefined; + memory?: Memory3 | any | null | undefined; + observedImage?: string | null | undefined; + replicaUnits: Array; + replicas: Replicas2; + schedulingMode: SchedulingMode; + status: ResourceHeartbeatStatus10; + backend: "horizonPlatform"; +}; + +export type SyncReconcileRequestDataUnion3 = + | DataHorizonPlatform + | DataKubernetes2 + | DataLocal3; + +export type DataContainer = { + data: DataHorizonPlatform | DataKubernetes2 | DataLocal3; + resourceType: "container"; +}; + +export const CpuUnit2 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type CpuUnit2 = ClosedEnum; + +export type Cpu2 = { + unit: CpuUnit2; + value: number; +}; + +export type CpuUnion2 = Cpu2 | any; + +export const EventSeverity1 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type EventSeverity1 = ClosedEnum; + +export type SyncReconcileRequestSubject1 = { + id?: string | null | undefined; + kind: string; + name?: string | null | undefined; +}; + +export type SyncReconcileRequestSubjectUnion1 = + | SyncReconcileRequestSubject1 + | any; + +export type SyncReconcileRequestEvent2 = { + kind: string; + message: string; + raw?: any | null | undefined; + severity: EventSeverity1; + subject?: SyncReconcileRequestSubject1 | any | null | undefined; + timestamp: Date; +}; + +export const MemoryUnit2 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type MemoryUnit2 = ClosedEnum; + +export type Memory2 = { + unit: MemoryUnit2; + value: number; +}; + +export type MemoryUnion2 = Memory2 | any; + +export const ProcessCpuUnit = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type ProcessCpuUnit = ClosedEnum; + +export type ProcessCpu = { + unit: ProcessCpuUnit; + value: number; +}; + +export type ProcessCpuUnion = ProcessCpu | any; + +export const ProcessKind = { + Container: "container", + Process: "process", + Daemon: "daemon", +} as const; +export type ProcessKind = ClosedEnum; + +export const ProcessMemoryUnit = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type ProcessMemoryUnit = ClosedEnum; + +export type ProcessMemory = { + unit: ProcessMemoryUnit; + value: number; +}; + +export type ProcessMemoryUnion = ProcessMemory | any; + +export type Process = { + cpu?: ProcessCpu | any | null | undefined; + kind: ProcessKind; + memory?: ProcessMemory | any | null | undefined; + name: string; + phase?: string | null | undefined; + pid?: number | null | undefined; + ready: boolean; + restartCount?: number | null | undefined; + unitId: string; +}; + +export type ProcessUnion = Process | any; + +export const DataReason9 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type DataReason9 = ClosedEnum; + +export const StatusSeverity9 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type StatusSeverity9 = ClosedEnum; + +export type DataCollectionIssue9 = { + message: string; + reason: DataReason9; + severity: StatusSeverity9; + source: string; +}; + +export const DataHealth9 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type DataHealth9 = ClosedEnum; + +export const StatusLifecycle9 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type StatusLifecycle9 = ClosedEnum; + +export type ResourceHeartbeatStatus9 = { + collectionIssues: Array; + health: DataHealth9; + lifecycle: StatusLifecycle9; + message?: string | null | undefined; + partial: boolean; + stale: boolean; +}; + +export type DataLocal2 = { + commandSupported: boolean; + cpu?: Cpu2 | any | null | undefined; + events: Array; + imagePathPresent: boolean; + memory?: Memory2 | any | null | undefined; + pid?: number | null | undefined; + process?: Process | any | null | undefined; + readinessProbeOk?: boolean | null | undefined; + status: ResourceHeartbeatStatus9; + triggerCount: number; + backend: "local"; +}; + +export const CpuUnit1 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type CpuUnit1 = ClosedEnum; + +export type Cpu1 = { + unit: CpuUnit1; + value: number; +}; + +export type CpuUnion1 = Cpu1 | any; + +export type InvolvedObject1 = { + apiVersion?: string | null | undefined; + fieldPath?: string | null | undefined; + kind?: string | null | undefined; + name?: string | null | undefined; + namespace?: string | null | undefined; + resourceVersion?: string | null | undefined; + uid?: string | null | undefined; +}; + +export type InvolvedObjectUnion1 = InvolvedObject1 | any; + +export type SourceEvent1 = { + component?: string | null | undefined; + host?: string | null | undefined; +}; + +export type SourceUnion1 = SourceEvent1 | any; + +export type SyncReconcileRequestEvent1 = { + count?: number | null | undefined; + eventTime?: Date | null | undefined; + firstTimestamp?: Date | null | undefined; + involvedObject?: InvolvedObject1 | any | null | undefined; + lastTimestamp?: Date | null | undefined; + message: string; + raw?: any | null | undefined; + reason: string; + source?: SourceEvent1 | any | null | undefined; + type?: string | null | undefined; +}; + +export const MemoryUnit1 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type MemoryUnit1 = ClosedEnum; + +export type Memory1 = { + unit: MemoryUnit1; + value: number; +}; + +export type MemoryUnion1 = Memory1 | any; + +export const CpuPodUnit1 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type CpuPodUnit1 = ClosedEnum; + +export type CpuPod1 = { + unit: CpuPodUnit1; + value: number; +}; + +export type PodCpuUnion1 = CpuPod1 | any; + +export const MemoryPodUnit1 = { + Count: "count", + Percent: "percent", + Bytes: "bytes", + Cores: "cores", + Milliseconds: "milliseconds", + RequestsPerSecond: "requests-per-second", +} as const; +export type MemoryPodUnit1 = ClosedEnum; + +export type MemoryPod1 = { + unit: MemoryPodUnit1; + value: number; +}; + +export type PodMemoryUnion1 = MemoryPod1 | any; + +export type OwnerReference1 = { + controller: boolean; + kind: string; + name: string; + uid: string; +}; + +export type Pod1 = { + cpu?: CpuPod1 | any | null | undefined; + memory?: MemoryPod1 | any | null | undefined; + name: string; + nodeName?: string | null | undefined; + ownerReferences: Array; + phase?: string | null | undefined; + podIp?: string | null | undefined; + ready: boolean; + restartCount: number; + terminatedReason?: string | null | undefined; + uid?: string | null | undefined; + waitingReason?: string | null | undefined; +}; + +export type Replicas1 = { + available?: number | null | undefined; + current?: number | null | undefined; + desired?: number | null | undefined; + misscheduled?: number | null | undefined; + ready?: number | null | undefined; + updated?: number | null | undefined; +}; + +export const DataReason8 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type DataReason8 = ClosedEnum; + +export const StatusSeverity8 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type StatusSeverity8 = ClosedEnum; + +export type DataCollectionIssue8 = { + message: string; + reason: DataReason8; + severity: StatusSeverity8; + source: string; +}; + +export const DataHealth8 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type DataHealth8 = ClosedEnum; + +export const StatusLifecycle8 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type StatusLifecycle8 = ClosedEnum; + +export type ResourceHeartbeatStatus8 = { + collectionIssues: Array; + health: DataHealth8; + lifecycle: StatusLifecycle8; + message?: string | null | undefined; + partial: boolean; + stale: boolean; +}; + +export type WorkloadCondition1 = { + lastTransitionTime?: Date | null | undefined; + message?: string | null | undefined; + reason?: string | null | undefined; + status: string; + type: string; +}; + +export type Workload1 = { + availableReplicas?: number | null | undefined; + conditions: Array; + desiredGeneration?: number | null | undefined; + desiredReplicas?: number | null | undefined; + observedGeneration?: number | null | undefined; + readyReplicas?: number | null | undefined; + rolloutReason?: string | null | undefined; + updatedReplicas?: number | null | undefined; +}; + +export type WorkloadUnion1 = Workload1 | any; + +export const WorkloadKind1 = { + Deployment: "deployment", + StatefulSet: "statefulSet", + DaemonSet: "daemonSet", + ReplicaSet: "replicaSet", + Pod: "pod", +} as const; +export type WorkloadKind1 = ClosedEnum; + +export type DataKubernetes1 = { + cpu?: Cpu1 | any | null | undefined; + events: Array; + memory?: Memory1 | any | null | undefined; + name: string; + namespace: string; + pods: Array; + replicas: Replicas1; + restarts?: number | null | undefined; + status: ResourceHeartbeatStatus8; + triggerCount: number; + workload?: Workload1 | any | null | undefined; + workloadKind: WorkloadKind1; + backend: "kubernetes"; +}; + +export const DataReason7 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type DataReason7 = ClosedEnum; + +export const StatusSeverity7 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type StatusSeverity7 = ClosedEnum; + +export type DataCollectionIssue7 = { + message: string; + reason: DataReason7; + severity: StatusSeverity7; + source: string; +}; + +export const DataHealth7 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type DataHealth7 = ClosedEnum; + +export const StatusLifecycle7 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type StatusLifecycle7 = ClosedEnum; + +export type ResourceHeartbeatStatus7 = { + collectionIssues: Array; + health: DataHealth7; + lifecycle: StatusLifecycle7; + message?: string | null | undefined; + partial: boolean; + stale: boolean; +}; + +export type DataAzureContainerApps1 = { + appName: string; + cpu?: number | null | undefined; + environmentName?: string | null | undefined; + ingressFqdn?: string | null | undefined; + maxReplicas?: number | null | undefined; + memory?: string | null | undefined; + minReplicas?: number | null | undefined; + provisioningState?: string | null | undefined; + revision?: string | null | undefined; + runningStatus?: string | null | undefined; + status: ResourceHeartbeatStatus7; + backend: "azureContainerApps"; +}; + +export const DataReason6 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type DataReason6 = ClosedEnum; + +export const StatusSeverity6 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type StatusSeverity6 = ClosedEnum; + +export type DataCollectionIssue6 = { + message: string; + reason: DataReason6; + severity: StatusSeverity6; + source: string; +}; + +export const DataHealth6 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type DataHealth6 = ClosedEnum; + +export const StatusLifecycle6 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type StatusLifecycle6 = ClosedEnum; + +export type ResourceHeartbeatStatus6 = { + collectionIssues: Array; + health: DataHealth6; + lifecycle: StatusLifecycle6; + message?: string | null | undefined; + partial: boolean; + stale: boolean; +}; + +export type DataGcpCloudRun = { + containerImage?: string | null | undefined; + cpuLimit?: string | null | undefined; + generation?: number | null | undefined; + latestCreatedRevision?: string | null | undefined; + latestReadyRevision?: string | null | undefined; + maxInstanceCount?: number | null | undefined; + memoryLimit?: string | null | undefined; + minInstanceCount?: number | null | undefined; + observedGeneration?: number | null | undefined; + region?: string | null | undefined; + service: string; + status: ResourceHeartbeatStatus6; + trafficCount: number; + uri?: string | null | undefined; + urls: Array; + backend: "gcpCloudRun"; +}; + +export const DataReason5 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type DataReason5 = ClosedEnum; + +export const StatusSeverity5 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type StatusSeverity5 = ClosedEnum; + +export type DataCollectionIssue5 = { + message: string; + reason: DataReason5; + severity: StatusSeverity5; + source: string; +}; + +export const DataHealth5 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type DataHealth5 = ClosedEnum; + +export const StatusLifecycle5 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type StatusLifecycle5 = ClosedEnum; + +export type ResourceHeartbeatStatus5 = { + collectionIssues: Array; + health: DataHealth5; + lifecycle: StatusLifecycle5; + message?: string | null | undefined; + partial: boolean; + stale: boolean; +}; + +export type DataAwsLambda = { + codeSha256?: string | null | undefined; + functionName: string; + functionUrlAuthType?: string | null | undefined; + functionUrlCorsPresent: boolean; + lastModified?: string | null | undefined; + lastUpdateStatus?: string | null | undefined; + lastUpdateStatusReason?: string | null | undefined; + lastUpdateStatusReasonCode?: string | null | undefined; + layerCount: number; + memorySizeMb?: number | null | undefined; + packageType?: string | null | undefined; + revisionId?: string | null | undefined; + runtime?: string | null | undefined; + state?: string | null | undefined; + stateReason?: string | null | undefined; + stateReasonCode?: string | null | undefined; + status: ResourceHeartbeatStatus5; + timeoutSeconds?: number | null | undefined; + triggerCount: number; + version?: string | null | undefined; + backend: "awsLambda"; +}; + +export type SyncReconcileRequestDataUnion2 = + | DataAwsLambda + | DataGcpCloudRun + | DataAzureContainerApps1 + | DataKubernetes1 + | DataLocal2; + +export type DataWorker = { + data: + | DataAwsLambda + | DataGcpCloudRun + | DataAzureContainerApps1 + | DataKubernetes1 + | DataLocal2; + resourceType: "worker"; +}; + +export const DataReason4 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type DataReason4 = ClosedEnum; + +export const StatusSeverity4 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type StatusSeverity4 = ClosedEnum; + +export type DataCollectionIssue4 = { + message: string; + reason: DataReason4; + severity: StatusSeverity4; + source: string; +}; + +export const DataHealth4 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type DataHealth4 = ClosedEnum; + +export const StatusLifecycle4 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type StatusLifecycle4 = ClosedEnum; + +export type ResourceHeartbeatStatus4 = { + collectionIssues: Array; + health: DataHealth4; + lifecycle: StatusLifecycle4; + message?: string | null | undefined; + partial: boolean; + stale: boolean; +}; + +export type DataLocal1 = { + isDirectory?: boolean | null | undefined; + modifiedAt?: Date | null | undefined; + path: string; + pathExists: boolean; + readonly?: boolean | null | undefined; + status: ResourceHeartbeatStatus4; + backend: "local"; +}; + +export const DataReason3 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type DataReason3 = ClosedEnum; + +export const StatusSeverity3 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type StatusSeverity3 = ClosedEnum; + +export type DataCollectionIssue3 = { + message: string; + reason: DataReason3; + severity: StatusSeverity3; + source: string; +}; + +export const DataHealth3 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type DataHealth3 = ClosedEnum; + +export const StatusLifecycle3 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type StatusLifecycle3 = ClosedEnum; + +export type ResourceHeartbeatStatus3 = { + collectionIssues: Array; + health: DataHealth3; + lifecycle: StatusLifecycle3; + message?: string | null | undefined; + partial: boolean; + stale: boolean; +}; + +export type DataAzureBlob = { + accessTier?: string | null | undefined; + accountKind?: string | null | undefined; + allowBlobPublicAccess?: boolean | null | undefined; + blobDeleteRetentionDays?: number | null | undefined; + blobDeleteRetentionEnabled?: boolean | null | undefined; + blobEncryptionEnabled?: boolean | null | undefined; + blobVersioningEnabled?: boolean | null | undefined; + changeFeedEnabled?: boolean | null | undefined; + changeFeedRetentionDays?: number | null | undefined; + containerDeleteRetentionDays?: number | null | undefined; + containerDeleteRetentionEnabled?: boolean | null | undefined; + containerPublicAccess?: string | null | undefined; + encryptionKeySource?: string | null | undefined; + fileEncryptionEnabled?: boolean | null | undefined; + location?: string | null | undefined; + name: string; + primaryLocation?: string | null | undefined; + provisioningState?: string | null | undefined; + publicNetworkAccess?: string | null | undefined; + queueEncryptionEnabled?: boolean | null | undefined; + resourceGroup?: string | null | undefined; + secondaryLocation?: string | null | undefined; + skuName?: string | null | undefined; + skuTier?: string | null | undefined; + status: ResourceHeartbeatStatus3; + statusOfPrimary?: string | null | undefined; + statusOfSecondary?: string | null | undefined; + storageAccountName?: string | null | undefined; + tableEncryptionEnabled?: boolean | null | undefined; + backend: "azureBlob"; +}; + +export const DataReason2 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type DataReason2 = ClosedEnum; + +export const StatusSeverity2 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type StatusSeverity2 = ClosedEnum; + +export type DataCollectionIssue2 = { + message: string; + reason: DataReason2; + severity: StatusSeverity2; + source: string; +}; + +export const DataHealth2 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type DataHealth2 = ClosedEnum; + +export const StatusLifecycle2 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type StatusLifecycle2 = ClosedEnum; + +export type ResourceHeartbeatStatus2 = { + collectionIssues: Array; + health: DataHealth2; + lifecycle: StatusLifecycle2; + message?: string | null | undefined; + partial: boolean; + stale: boolean; +}; + +export type DataGcpCloudStorage = { + bucketId?: string | null | undefined; + defaultKmsKeyName?: string | null | undefined; + encryptionConfigPresent: boolean; + lifecyclePresent: boolean; + lifecycleRuleCount?: number | null | undefined; + location?: string | null | undefined; + locationType?: string | null | undefined; + name: string; + publicAccessPrevention?: string | null | undefined; + retentionPeriod?: string | null | undefined; + retentionPolicyEffectiveTime?: string | null | undefined; + retentionPolicyIsLocked?: boolean | null | undefined; + softDeleteEffectiveTime?: string | null | undefined; + softDeleteRetentionDurationSeconds?: string | null | undefined; + status: ResourceHeartbeatStatus2; + storageClass?: string | null | undefined; + uniformBucketLevelAccessEnabled?: boolean | null | undefined; + uniformBucketLevelAccessLockedTime?: string | null | undefined; + versioningEnabled?: boolean | null | undefined; + backend: "gcpCloudStorage"; +}; + +export const DataReason1 = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type DataReason1 = ClosedEnum; + +export const StatusSeverity1 = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type StatusSeverity1 = ClosedEnum; + +export type DataCollectionIssue1 = { + message: string; + reason: DataReason1; + severity: StatusSeverity1; + source: string; +}; + +export const DataHealth1 = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type DataHealth1 = ClosedEnum; + +export const StatusLifecycle1 = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type StatusLifecycle1 = ClosedEnum; + +export type ResourceHeartbeatStatus1 = { + collectionIssues: Array; + health: DataHealth1; + lifecycle: StatusLifecycle1; + message?: string | null | undefined; + partial: boolean; + stale: boolean; +}; + +export type DataAwsS3 = { + blockPublicAcls?: boolean | null | undefined; + blockPublicPolicy?: boolean | null | undefined; + bucketAclPresent?: boolean | null | undefined; + bucketLocation?: string | null | undefined; + bucketPolicyPresent?: boolean | null | undefined; + encryptionConfigPresent: boolean; + encryptionEnabled?: boolean | null | undefined; + ignorePublicAcls?: boolean | null | undefined; + lifecyclePresent: boolean; + lifecycleRuleCount?: number | null | undefined; + name: string; + publicAccessBlockPresent: boolean; + region?: string | null | undefined; + restrictPublicBuckets?: boolean | null | undefined; + status: ResourceHeartbeatStatus1; + versioningEnabled?: boolean | null | undefined; + versioningStatus?: string | null | undefined; + backend: "awsS3"; +}; + +export type SyncReconcileRequestDataUnion1 = + | DataAwsS3 + | DataGcpCloudStorage + | DataAzureBlob + | DataLocal1; + +export type DataStorage = { + data: DataAwsS3 | DataGcpCloudStorage | DataAzureBlob | DataLocal1; + resourceType: "storage"; +}; + +export type SyncReconcileRequestDataUnion18 = + | DataStorage + | DataWorker + | DataContainer + | DataDaemon + | DataComputeCluster + | DataKubernetesCluster + | DataQueue + | DataKv + | DataPostgres + | DataVault + | DataServiceAccount + | DataNetwork + | DataRemoteStackManagement + | DataArtifactRegistry + | DataBuild + | DataServiceActivation + | DataAzureResourceGroup + | DataAzureStorageAccount + | DataAzureContainerAppsEnvironment + | DataAzureServiceBusNamespace + | DataAi + | DataKey; + +export const ResourceHeartbeatFormat = { + Json: "json", + Yaml: "yaml", + Text: "text", +} as const; +export type ResourceHeartbeatFormat = ClosedEnum< + typeof ResourceHeartbeatFormat +>; + +export type ResourceHeartbeatRaw = { + body: string; + collectedAt: Date; + format: ResourceHeartbeatFormat; + source: string; + truncated: boolean; +}; + +export type ResourceHeartbeat = { + backend: ResourceHeartbeatBackendEnum; + /** + * Represents the target cloud platform. + */ + controllerPlatform: ResourceHeartbeatControllerPlatform; + data: + | DataStorage + | DataWorker + | DataContainer + | DataDaemon + | DataComputeCluster + | DataKubernetesCluster + | DataQueue + | DataKv + | DataPostgres + | DataVault + | DataServiceAccount + | DataNetwork + | DataRemoteStackManagement + | DataArtifactRegistry + | DataBuild + | DataServiceActivation + | DataAzureResourceGroup + | DataAzureStorageAccount + | DataAzureContainerAppsEnvironment + | DataAzureServiceBusNamespace + | DataAi + | DataKey; + deploymentId?: string | null | undefined; + observedAt: Date; + raw: Array; + /** + * Alien resource id, such as the `alien.Container` or `alien.Storage` + * + * @remarks + * resource id from the stack. + */ + resourceId: string; + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + resourceType: string; +}; + +/** + * Backend whose observer produced this snapshot. + */ +export const ObservedInventoryBatchBackend = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Local: "local", + Managed: "managed", + External: "external", + Test: "test", +} as const; +/** + * Backend whose observer produced this snapshot. + */ +export type ObservedInventoryBatchBackend = ClosedEnum< + typeof ObservedInventoryBatchBackend +>; + +/** + * Represents the target cloud platform. + */ +export const ObservedInventoryBatchControllerPlatform = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", +} as const; +/** + * Represents the target cloud platform. + */ +export type ObservedInventoryBatchControllerPlatform = ClosedEnum< + typeof ObservedInventoryBatchControllerPlatform +>; + +export const ResourceReason = { + Forbidden: "forbidden", + NotInstalled: "not-installed", + ApiUnavailable: "api-unavailable", + CollectionFailed: "collection-failed", + TimedOut: "timed-out", +} as const; +export type ResourceReason = ClosedEnum; + +export const ResourceSeverity = { + Info: "info", + Warning: "warning", + Error: "error", +} as const; +export type ResourceSeverity = ClosedEnum; + +export type ResourceCollectionIssue = { + message: string; + reason: ResourceReason; + severity: ResourceSeverity; + source: string; +}; + +export type Counts = { + current?: number | null | undefined; + desired?: number | null | undefined; + ready?: number | null | undefined; +}; + +export type CountsUnion = Counts | any; + +export const ResourceHealth = { + Unknown: "unknown", + Healthy: "healthy", + Degraded: "degraded", + Unhealthy: "unhealthy", +} as const; +export type ResourceHealth = ClosedEnum; + +export const ResourceLifecycle = { + Unknown: "unknown", + Creating: "creating", + Updating: "updating", + Running: "running", + Scaling: "scaling", + Stopping: "stopping", + Stopped: "stopped", + Deleting: "deleting", + Deleted: "deleted", + Failed: "failed", +} as const; +export type ResourceLifecycle = ClosedEnum; + +export const ResourceFormat = { + Json: "json", + Yaml: "yaml", + Text: "text", +} as const; +export type ResourceFormat = ClosedEnum; + +export type ResourceRaw = { + body: string; + collectedAt: Date; + format: ResourceFormat; + source: string; + truncated: boolean; +}; + +export type ResourceTypeHint = string | any; + +export type ObservedInventoryBatchResource = { + alienResourceId?: string | null | undefined; + attributes?: { [k: string]: any | null } | undefined; + collectionIssues?: Array | undefined; + counts?: Counts | any | null | undefined; + deploymentId?: string | null | undefined; + displayName: string; + health: ResourceHealth; + labels?: { [k: string]: string } | undefined; + lifecycle: ResourceLifecycle; + message?: string | null | undefined; + namespace?: string | null | undefined; + partial: boolean; + /** + * Provider-native kind, such as `apps/v1/Deployment`, + * + * @remarks + * `AWS::S3::Bucket`, `storage.googleapis.com/Bucket`, or an Azure + * resource type. + */ + providerKind: string; + providerStale: boolean; + raw?: Array | undefined; + /** + * Provider-native stable identity: Kubernetes object identity, cloud ARN, + * + * @remarks + * GCP full resource name, Azure resource id, etc. + */ + rawIdentity: string; + region?: string | null | undefined; + resourceTypeHint?: string | any | null | undefined; + scope?: string | null | undefined; + /** + * Release/version identity observed from the provider resource, when available. + */ + version?: string | null | undefined; +}; + +export type ObservedInventoryBatch = { + /** + * Backend whose observer produced this snapshot. + */ + backend: ObservedInventoryBatchBackend; + /** + * Whether this batch is a complete replacement for the scope. Complete + * + * @remarks + * batches tombstone previously observed rows in the same scope when they + * are absent from `resources`. + */ + complete: boolean; + /** + * Represents the target cloud platform. + */ + controllerPlatform: ObservedInventoryBatchControllerPlatform; + /** + * Stable scope for the provider list operation that produced this batch. + */ + inventoryScope: string; + /** + * Time the inventory scope was observed. + */ + observedAt: Date; + resources: Array; + /** + * Writer/source for this inventory pass, such as `operator` or + * + * @remarks + * `manager-observer`. + */ + sourceKind: string; +}; + +/** + * Request to reconcile deployment state + */ +export type SyncReconcileRequest = { + /** + * Deployment ID to reconcile state for + */ + deploymentId: string; + /** + * Lock session (push model only) - verifies lock ownership + */ + session?: string | undefined; + /** + * Complete deployment state after step() execution + */ + state: SyncReconcileRequestState; + /** + * Update heartbeat timestamp (for successful health checks) + */ + updateHeartbeat?: boolean | undefined; + /** + * Delay before this deployment should be acquired again. + */ + suggestedDelayMs?: number | undefined; + /** + * Latest typed resource heartbeats collected during this step. + */ + resourceHeartbeats?: Array | undefined; + /** + * Observed raw-resource inventory batches read during this step. + */ + observedInventoryBatches?: Array | undefined; + /** + * Operator-reported runtime capabilities. + */ + capabilities?: Array | undefined; + /** + * Operator binary version reported by the runtime. + */ + operatorVersion?: string | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseTypeStringList$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestCurrentReleaseTypeStringList, + ); + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseDefaultStringList$Outbound = { + type: string; + value: Array; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseDefaultStringList$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseDefaultStringList$Outbound, + SyncReconcileRequestCurrentReleaseDefaultStringList + > = z.object({ + type: SyncReconcileRequestCurrentReleaseTypeStringList$outboundSchema, + value: z.array(z.string()), + }); + +export function syncReconcileRequestCurrentReleaseDefaultStringListToJSON( + syncReconcileRequestCurrentReleaseDefaultStringList: + SyncReconcileRequestCurrentReleaseDefaultStringList, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseDefaultStringList$outboundSchema.parse( + syncReconcileRequestCurrentReleaseDefaultStringList, + ), + ); +} + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseTypeBoolean$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestCurrentReleaseTypeBoolean, + ); + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseDefaultBoolean$Outbound = { + type: string; + value: boolean; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseDefaultBoolean$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseDefaultBoolean$Outbound, + SyncReconcileRequestCurrentReleaseDefaultBoolean + > = z.object({ + type: SyncReconcileRequestCurrentReleaseTypeBoolean$outboundSchema, + value: z.boolean(), + }); + +export function syncReconcileRequestCurrentReleaseDefaultBooleanToJSON( + syncReconcileRequestCurrentReleaseDefaultBoolean: + SyncReconcileRequestCurrentReleaseDefaultBoolean, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseDefaultBoolean$outboundSchema.parse( + syncReconcileRequestCurrentReleaseDefaultBoolean, + ), + ); +} + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseTypeNumber$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestCurrentReleaseTypeNumber, + ); + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseDefaultNumber$Outbound = { + type: string; + value: string; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseDefaultNumber$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseDefaultNumber$Outbound, + SyncReconcileRequestCurrentReleaseDefaultNumber + > = z.object({ + type: SyncReconcileRequestCurrentReleaseTypeNumber$outboundSchema, + value: z.string(), + }); + +export function syncReconcileRequestCurrentReleaseDefaultNumberToJSON( + syncReconcileRequestCurrentReleaseDefaultNumber: + SyncReconcileRequestCurrentReleaseDefaultNumber, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseDefaultNumber$outboundSchema.parse( + syncReconcileRequestCurrentReleaseDefaultNumber, + ), + ); +} + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseTypeString$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestCurrentReleaseTypeString, + ); + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseDefaultString$Outbound = { + type: string; + value: string; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseDefaultString$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseDefaultString$Outbound, + SyncReconcileRequestCurrentReleaseDefaultString + > = z.object({ + type: SyncReconcileRequestCurrentReleaseTypeString$outboundSchema, + value: z.string(), + }); + +export function syncReconcileRequestCurrentReleaseDefaultStringToJSON( + syncReconcileRequestCurrentReleaseDefaultString: + SyncReconcileRequestCurrentReleaseDefaultString, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseDefaultString$outboundSchema.parse( + syncReconcileRequestCurrentReleaseDefaultString, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseDefaultUnion$Outbound = + | SyncReconcileRequestCurrentReleaseDefaultString$Outbound + | SyncReconcileRequestCurrentReleaseDefaultNumber$Outbound + | SyncReconcileRequestCurrentReleaseDefaultBoolean$Outbound + | SyncReconcileRequestCurrentReleaseDefaultStringList$Outbound + | any; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseDefaultUnion$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseDefaultUnion$Outbound, + SyncReconcileRequestCurrentReleaseDefaultUnion + > = z.union([ + z.lazy(() => + SyncReconcileRequestCurrentReleaseDefaultString$outboundSchema + ), + z.lazy(() => + SyncReconcileRequestCurrentReleaseDefaultNumber$outboundSchema + ), + z.lazy(() => + SyncReconcileRequestCurrentReleaseDefaultBoolean$outboundSchema + ), + z.lazy(() => + SyncReconcileRequestCurrentReleaseDefaultStringList$outboundSchema + ), + z.any(), + ]); + +export function syncReconcileRequestCurrentReleaseDefaultUnionToJSON( + syncReconcileRequestCurrentReleaseDefaultUnion: + SyncReconcileRequestCurrentReleaseDefaultUnion, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseDefaultUnion$outboundSchema.parse( + syncReconcileRequestCurrentReleaseDefaultUnion, + ), + ); +} + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseTypeEnvEnum$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestCurrentReleaseTypeEnvEnum, + ); + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseTypeUnion$Outbound = string | any; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseTypeUnion$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseTypeUnion$Outbound, + SyncReconcileRequestCurrentReleaseTypeUnion + > = z.union([ + SyncReconcileRequestCurrentReleaseTypeEnvEnum$outboundSchema, + z.any(), + ]); + +export function syncReconcileRequestCurrentReleaseTypeUnionToJSON( + syncReconcileRequestCurrentReleaseTypeUnion: + SyncReconcileRequestCurrentReleaseTypeUnion, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseTypeUnion$outboundSchema.parse( + syncReconcileRequestCurrentReleaseTypeUnion, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseEnv$Outbound = { + name: string; + targetResources?: Array | null | undefined; + type?: string | any | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseEnv$outboundSchema: z.ZodType< + SyncReconcileRequestCurrentReleaseEnv$Outbound, + SyncReconcileRequestCurrentReleaseEnv +> = z.object({ + name: z.string(), + targetResources: z.nullable(z.array(z.string())).optional(), + type: z.nullable( + z.union([ + SyncReconcileRequestCurrentReleaseTypeEnvEnum$outboundSchema, + z.any(), + ]), + ).optional(), +}); + +export function syncReconcileRequestCurrentReleaseEnvToJSON( + syncReconcileRequestCurrentReleaseEnv: SyncReconcileRequestCurrentReleaseEnv, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseEnv$outboundSchema.parse( + syncReconcileRequestCurrentReleaseEnv, + ), + ); +} + +/** @internal */ +export const CurrentReleaseStateKind$outboundSchema: z.ZodEnum< + typeof CurrentReleaseStateKind +> = z.enum(CurrentReleaseStateKind); + +/** @internal */ +export const SyncReconcileRequestCurrentReleasePlatform$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestCurrentReleasePlatform, + ); + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseProvidedBy$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestCurrentReleaseProvidedBy, + ); + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseValidation$Outbound = { + format?: string | null | undefined; + max?: string | null | undefined; + maxItems?: number | null | undefined; + maxLength?: number | null | undefined; + min?: string | null | undefined; + minItems?: number | null | undefined; + minLength?: number | null | undefined; + pattern?: string | null | undefined; + values?: Array | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseValidation$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseValidation$Outbound, + SyncReconcileRequestCurrentReleaseValidation + > = z.object({ + format: z.nullable(z.string()).optional(), + max: z.nullable(z.string()).optional(), + maxItems: z.nullable(z.int()).optional(), + maxLength: z.nullable(z.int()).optional(), + min: z.nullable(z.string()).optional(), + minItems: z.nullable(z.int()).optional(), + minLength: z.nullable(z.int()).optional(), + pattern: z.nullable(z.string()).optional(), + values: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileRequestCurrentReleaseValidationToJSON( + syncReconcileRequestCurrentReleaseValidation: + SyncReconcileRequestCurrentReleaseValidation, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseValidation$outboundSchema.parse( + syncReconcileRequestCurrentReleaseValidation, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseValidationUnion$Outbound = + | SyncReconcileRequestCurrentReleaseValidation$Outbound + | any; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseValidationUnion$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseValidationUnion$Outbound, + SyncReconcileRequestCurrentReleaseValidationUnion + > = z.union([ + z.lazy(() => SyncReconcileRequestCurrentReleaseValidation$outboundSchema), + z.any(), + ]); + +export function syncReconcileRequestCurrentReleaseValidationUnionToJSON( + syncReconcileRequestCurrentReleaseValidationUnion: + SyncReconcileRequestCurrentReleaseValidationUnion, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseValidationUnion$outboundSchema.parse( + syncReconcileRequestCurrentReleaseValidationUnion, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseInput$Outbound = { + default?: + | SyncReconcileRequestCurrentReleaseDefaultString$Outbound + | SyncReconcileRequestCurrentReleaseDefaultNumber$Outbound + | SyncReconcileRequestCurrentReleaseDefaultBoolean$Outbound + | SyncReconcileRequestCurrentReleaseDefaultStringList$Outbound + | any + | null + | undefined; + description: string; + env?: Array | undefined; + id: string; + kind: string; + label: string; + placeholder?: string | null | undefined; + platforms?: Array | null | undefined; + providedBy: Array; + required: boolean; + validation?: + | SyncReconcileRequestCurrentReleaseValidation$Outbound + | any + | null + | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseInput$outboundSchema: z.ZodType< + SyncReconcileRequestCurrentReleaseInput$Outbound, + SyncReconcileRequestCurrentReleaseInput +> = z.object({ + default: z.nullable( + z.union([ + z.lazy(() => + SyncReconcileRequestCurrentReleaseDefaultString$outboundSchema + ), + z.lazy(() => + SyncReconcileRequestCurrentReleaseDefaultNumber$outboundSchema + ), + z.lazy(() => + SyncReconcileRequestCurrentReleaseDefaultBoolean$outboundSchema + ), + z.lazy(() => + SyncReconcileRequestCurrentReleaseDefaultStringList$outboundSchema + ), + z.any(), + ]), + ).optional(), + description: z.string(), + env: z.array( + z.lazy(() => SyncReconcileRequestCurrentReleaseEnv$outboundSchema), + ).optional(), + id: z.string(), + kind: CurrentReleaseStateKind$outboundSchema, + label: z.string(), + placeholder: z.nullable(z.string()).optional(), + platforms: z.nullable( + z.array(SyncReconcileRequestCurrentReleasePlatform$outboundSchema), + ).optional(), + providedBy: z.array( + SyncReconcileRequestCurrentReleaseProvidedBy$outboundSchema, + ), + required: z.boolean(), + validation: z.nullable( + z.union([ + z.lazy(() => SyncReconcileRequestCurrentReleaseValidation$outboundSchema), + z.any(), + ]), + ).optional(), +}); + +export function syncReconcileRequestCurrentReleaseInputToJSON( + syncReconcileRequestCurrentReleaseInput: + SyncReconcileRequestCurrentReleaseInput, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseInput$outboundSchema.parse( + syncReconcileRequestCurrentReleaseInput, + ), + ); +} + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseManagementEnum$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestCurrentReleaseManagementEnum, + ); + +/** @internal */ +export type CurrentReleaseOverrideStateAwResource$Outbound = { + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + resources: Array; +}; + +/** @internal */ +export const CurrentReleaseOverrideStateAwResource$outboundSchema: z.ZodType< + CurrentReleaseOverrideStateAwResource$Outbound, + CurrentReleaseOverrideStateAwResource +> = z.object({ + condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) + .optional(), + resources: z.array(z.string()), +}); + +export function currentReleaseOverrideStateAwResourceToJSON( + currentReleaseOverrideStateAwResource: CurrentReleaseOverrideStateAwResource, +): string { + return JSON.stringify( + CurrentReleaseOverrideStateAwResource$outboundSchema.parse( + currentReleaseOverrideStateAwResource, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseOverrideAwStack$Outbound = { + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + resources: Array; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseOverrideAwStack$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseOverrideAwStack$Outbound, + SyncReconcileRequestCurrentReleaseOverrideAwStack + > = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); + +export function syncReconcileRequestCurrentReleaseOverrideAwStackToJSON( + syncReconcileRequestCurrentReleaseOverrideAwStack: + SyncReconcileRequestCurrentReleaseOverrideAwStack, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseOverrideAwStack$outboundSchema.parse( + syncReconcileRequestCurrentReleaseOverrideAwStack, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseOverrideAwBinding$Outbound = { + resource?: CurrentReleaseOverrideStateAwResource$Outbound | undefined; + stack?: + | SyncReconcileRequestCurrentReleaseOverrideAwStack$Outbound + | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseOverrideAwBinding$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseOverrideAwBinding$Outbound, + SyncReconcileRequestCurrentReleaseOverrideAwBinding + > = z.object({ + resource: z.lazy(() => CurrentReleaseOverrideStateAwResource$outboundSchema) + .optional(), + stack: z.lazy(() => + SyncReconcileRequestCurrentReleaseOverrideAwStack$outboundSchema + ).optional(), + }); + +export function syncReconcileRequestCurrentReleaseOverrideAwBindingToJSON( + syncReconcileRequestCurrentReleaseOverrideAwBinding: + SyncReconcileRequestCurrentReleaseOverrideAwBinding, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseOverrideAwBinding$outboundSchema.parse( + syncReconcileRequestCurrentReleaseOverrideAwBinding, + ), + ); +} + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseOverrideEffect$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestCurrentReleaseOverrideEffect, + ); + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseOverrideAwGrant$Outbound = { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseOverrideAwGrant$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseOverrideAwGrant$Outbound, + SyncReconcileRequestCurrentReleaseOverrideAwGrant + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileRequestCurrentReleaseOverrideAwGrantToJSON( + syncReconcileRequestCurrentReleaseOverrideAwGrant: + SyncReconcileRequestCurrentReleaseOverrideAwGrant, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseOverrideAwGrant$outboundSchema.parse( + syncReconcileRequestCurrentReleaseOverrideAwGrant, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseOverrideAw$Outbound = { + binding: SyncReconcileRequestCurrentReleaseOverrideAwBinding$Outbound; + description?: string | null | undefined; + effect?: string | undefined; + grant: SyncReconcileRequestCurrentReleaseOverrideAwGrant$Outbound; + label?: string | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseOverrideAw$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseOverrideAw$Outbound, + SyncReconcileRequestCurrentReleaseOverrideAw + > = z.object({ + binding: z.lazy(() => + SyncReconcileRequestCurrentReleaseOverrideAwBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: SyncReconcileRequestCurrentReleaseOverrideEffect$outboundSchema + .optional(), + grant: z.lazy(() => + SyncReconcileRequestCurrentReleaseOverrideAwGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncReconcileRequestCurrentReleaseOverrideAwToJSON( + syncReconcileRequestCurrentReleaseOverrideAw: + SyncReconcileRequestCurrentReleaseOverrideAw, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseOverrideAw$outboundSchema.parse( + syncReconcileRequestCurrentReleaseOverrideAw, + ), + ); +} + +/** @internal */ +export type CurrentReleaseOverrideStateAzureResource$Outbound = { + scope: string; +}; + +/** @internal */ +export const CurrentReleaseOverrideStateAzureResource$outboundSchema: z.ZodType< + CurrentReleaseOverrideStateAzureResource$Outbound, + CurrentReleaseOverrideStateAzureResource +> = z.object({ + scope: z.string(), +}); + +export function currentReleaseOverrideStateAzureResourceToJSON( + currentReleaseOverrideStateAzureResource: + CurrentReleaseOverrideStateAzureResource, +): string { + return JSON.stringify( + CurrentReleaseOverrideStateAzureResource$outboundSchema.parse( + currentReleaseOverrideStateAzureResource, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseOverrideAzureStack$Outbound = { + scope: string; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseOverrideAzureStack$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseOverrideAzureStack$Outbound, + SyncReconcileRequestCurrentReleaseOverrideAzureStack + > = z.object({ + scope: z.string(), + }); + +export function syncReconcileRequestCurrentReleaseOverrideAzureStackToJSON( + syncReconcileRequestCurrentReleaseOverrideAzureStack: + SyncReconcileRequestCurrentReleaseOverrideAzureStack, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseOverrideAzureStack$outboundSchema.parse( + syncReconcileRequestCurrentReleaseOverrideAzureStack, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseOverrideAzureBinding$Outbound = { + resource?: CurrentReleaseOverrideStateAzureResource$Outbound | undefined; + stack?: + | SyncReconcileRequestCurrentReleaseOverrideAzureStack$Outbound + | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseOverrideAzureBinding$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseOverrideAzureBinding$Outbound, + SyncReconcileRequestCurrentReleaseOverrideAzureBinding + > = z.object({ + resource: z.lazy(() => + CurrentReleaseOverrideStateAzureResource$outboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileRequestCurrentReleaseOverrideAzureStack$outboundSchema + ).optional(), + }); + +export function syncReconcileRequestCurrentReleaseOverrideAzureBindingToJSON( + syncReconcileRequestCurrentReleaseOverrideAzureBinding: + SyncReconcileRequestCurrentReleaseOverrideAzureBinding, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseOverrideAzureBinding$outboundSchema.parse( + syncReconcileRequestCurrentReleaseOverrideAzureBinding, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseOverrideAzureGrant$Outbound = { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseOverrideAzureGrant$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseOverrideAzureGrant$Outbound, + SyncReconcileRequestCurrentReleaseOverrideAzureGrant + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileRequestCurrentReleaseOverrideAzureGrantToJSON( + syncReconcileRequestCurrentReleaseOverrideAzureGrant: + SyncReconcileRequestCurrentReleaseOverrideAzureGrant, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseOverrideAzureGrant$outboundSchema.parse( + syncReconcileRequestCurrentReleaseOverrideAzureGrant, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseOverrideAzure$Outbound = { + binding: SyncReconcileRequestCurrentReleaseOverrideAzureBinding$Outbound; + description?: string | null | undefined; + grant: SyncReconcileRequestCurrentReleaseOverrideAzureGrant$Outbound; + label?: string | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseOverrideAzure$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseOverrideAzure$Outbound, + SyncReconcileRequestCurrentReleaseOverrideAzure + > = z.object({ + binding: z.lazy(() => + SyncReconcileRequestCurrentReleaseOverrideAzureBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncReconcileRequestCurrentReleaseOverrideAzureGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncReconcileRequestCurrentReleaseOverrideAzureToJSON( + syncReconcileRequestCurrentReleaseOverrideAzure: + SyncReconcileRequestCurrentReleaseOverrideAzure, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseOverrideAzure$outboundSchema.parse( + syncReconcileRequestCurrentReleaseOverrideAzure, + ), + ); +} + +/** @internal */ +export type CurrentReleaseOverrideConditionStateResource$Outbound = { + expression: string; + title: string; +}; + +/** @internal */ +export const CurrentReleaseOverrideConditionStateResource$outboundSchema: + z.ZodType< + CurrentReleaseOverrideConditionStateResource$Outbound, + CurrentReleaseOverrideConditionStateResource + > = z.object({ + expression: z.string(), + title: z.string(), + }); + +export function currentReleaseOverrideConditionStateResourceToJSON( + currentReleaseOverrideConditionStateResource: + CurrentReleaseOverrideConditionStateResource, +): string { + return JSON.stringify( + CurrentReleaseOverrideConditionStateResource$outboundSchema.parse( + currentReleaseOverrideConditionStateResource, + ), + ); +} + +/** @internal */ +export type CurrentReleaseOverrideStateResourceConditionUnion$Outbound = + | CurrentReleaseOverrideConditionStateResource$Outbound + | any; + +/** @internal */ +export const CurrentReleaseOverrideStateResourceConditionUnion$outboundSchema: + z.ZodType< + CurrentReleaseOverrideStateResourceConditionUnion$Outbound, + CurrentReleaseOverrideStateResourceConditionUnion + > = z.union([ + z.lazy(() => CurrentReleaseOverrideConditionStateResource$outboundSchema), + z.any(), + ]); + +export function currentReleaseOverrideStateResourceConditionUnionToJSON( + currentReleaseOverrideStateResourceConditionUnion: + CurrentReleaseOverrideStateResourceConditionUnion, +): string { + return JSON.stringify( + CurrentReleaseOverrideStateResourceConditionUnion$outboundSchema.parse( + currentReleaseOverrideStateResourceConditionUnion, + ), + ); +} + +/** @internal */ +export type CurrentReleaseOverrideStateGcpResource$Outbound = { + condition?: + | CurrentReleaseOverrideConditionStateResource$Outbound + | any + | null + | undefined; + scope: string; +}; + +/** @internal */ +export const CurrentReleaseOverrideStateGcpResource$outboundSchema: z.ZodType< + CurrentReleaseOverrideStateGcpResource$Outbound, + CurrentReleaseOverrideStateGcpResource +> = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => CurrentReleaseOverrideConditionStateResource$outboundSchema), + z.any(), + ]), + ).optional(), + scope: z.string(), +}); + +export function currentReleaseOverrideStateGcpResourceToJSON( + currentReleaseOverrideStateGcpResource: + CurrentReleaseOverrideStateGcpResource, +): string { + return JSON.stringify( + CurrentReleaseOverrideStateGcpResource$outboundSchema.parse( + currentReleaseOverrideStateGcpResource, + ), + ); +} + +/** @internal */ +export type CurrentReleaseOverrideConditionState$Outbound = { + expression: string; + title: string; +}; + +/** @internal */ +export const CurrentReleaseOverrideConditionState$outboundSchema: z.ZodType< + CurrentReleaseOverrideConditionState$Outbound, + CurrentReleaseOverrideConditionState +> = z.object({ + expression: z.string(), + title: z.string(), +}); + +export function currentReleaseOverrideConditionStateToJSON( + currentReleaseOverrideConditionState: CurrentReleaseOverrideConditionState, +): string { + return JSON.stringify( + CurrentReleaseOverrideConditionState$outboundSchema.parse( + currentReleaseOverrideConditionState, + ), + ); +} + +/** @internal */ +export type CurrentReleaseOverrideStateConditionUnion$Outbound = + | CurrentReleaseOverrideConditionState$Outbound + | any; + +/** @internal */ +export const CurrentReleaseOverrideStateConditionUnion$outboundSchema: + z.ZodType< + CurrentReleaseOverrideStateConditionUnion$Outbound, + CurrentReleaseOverrideStateConditionUnion + > = z.union([ + z.lazy(() => CurrentReleaseOverrideConditionState$outboundSchema), + z.any(), + ]); + +export function currentReleaseOverrideStateConditionUnionToJSON( + currentReleaseOverrideStateConditionUnion: + CurrentReleaseOverrideStateConditionUnion, +): string { + return JSON.stringify( + CurrentReleaseOverrideStateConditionUnion$outboundSchema.parse( + currentReleaseOverrideStateConditionUnion, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseOverrideGcpStack$Outbound = { + condition?: + | CurrentReleaseOverrideConditionState$Outbound + | any + | null + | undefined; + scope: string; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseOverrideGcpStack$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseOverrideGcpStack$Outbound, + SyncReconcileRequestCurrentReleaseOverrideGcpStack + > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => CurrentReleaseOverrideConditionState$outboundSchema), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); + +export function syncReconcileRequestCurrentReleaseOverrideGcpStackToJSON( + syncReconcileRequestCurrentReleaseOverrideGcpStack: + SyncReconcileRequestCurrentReleaseOverrideGcpStack, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseOverrideGcpStack$outboundSchema.parse( + syncReconcileRequestCurrentReleaseOverrideGcpStack, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseOverrideGcpBinding$Outbound = { + resource?: CurrentReleaseOverrideStateGcpResource$Outbound | undefined; + stack?: + | SyncReconcileRequestCurrentReleaseOverrideGcpStack$Outbound + | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseOverrideGcpBinding$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseOverrideGcpBinding$Outbound, + SyncReconcileRequestCurrentReleaseOverrideGcpBinding + > = z.object({ + resource: z.lazy(() => + CurrentReleaseOverrideStateGcpResource$outboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileRequestCurrentReleaseOverrideGcpStack$outboundSchema + ).optional(), + }); + +export function syncReconcileRequestCurrentReleaseOverrideGcpBindingToJSON( + syncReconcileRequestCurrentReleaseOverrideGcpBinding: + SyncReconcileRequestCurrentReleaseOverrideGcpBinding, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseOverrideGcpBinding$outboundSchema.parse( + syncReconcileRequestCurrentReleaseOverrideGcpBinding, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseOverrideGcpGrant$Outbound = { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseOverrideGcpGrant$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseOverrideGcpGrant$Outbound, + SyncReconcileRequestCurrentReleaseOverrideGcpGrant + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileRequestCurrentReleaseOverrideGcpGrantToJSON( + syncReconcileRequestCurrentReleaseOverrideGcpGrant: + SyncReconcileRequestCurrentReleaseOverrideGcpGrant, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseOverrideGcpGrant$outboundSchema.parse( + syncReconcileRequestCurrentReleaseOverrideGcpGrant, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseOverrideGcp$Outbound = { + binding: SyncReconcileRequestCurrentReleaseOverrideGcpBinding$Outbound; + description?: string | null | undefined; + grant: SyncReconcileRequestCurrentReleaseOverrideGcpGrant$Outbound; + label?: string | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseOverrideGcp$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseOverrideGcp$Outbound, + SyncReconcileRequestCurrentReleaseOverrideGcp + > = z.object({ + binding: z.lazy(() => + SyncReconcileRequestCurrentReleaseOverrideGcpBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncReconcileRequestCurrentReleaseOverrideGcpGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncReconcileRequestCurrentReleaseOverrideGcpToJSON( + syncReconcileRequestCurrentReleaseOverrideGcp: + SyncReconcileRequestCurrentReleaseOverrideGcp, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseOverrideGcp$outboundSchema.parse( + syncReconcileRequestCurrentReleaseOverrideGcp, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseOverridePlatforms$Outbound = { + aws?: + | Array + | null + | undefined; + azure?: + | Array + | null + | undefined; + gcp?: + | Array + | null + | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseOverridePlatforms$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseOverridePlatforms$Outbound, + SyncReconcileRequestCurrentReleaseOverridePlatforms + > = z.object({ + aws: z.nullable( + z.array(z.lazy(() => + SyncReconcileRequestCurrentReleaseOverrideAw$outboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + SyncReconcileRequestCurrentReleaseOverrideAzure$outboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + SyncReconcileRequestCurrentReleaseOverrideGcp$outboundSchema + )), + ).optional(), + }); + +export function syncReconcileRequestCurrentReleaseOverridePlatformsToJSON( + syncReconcileRequestCurrentReleaseOverridePlatforms: + SyncReconcileRequestCurrentReleaseOverridePlatforms, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseOverridePlatforms$outboundSchema.parse( + syncReconcileRequestCurrentReleaseOverridePlatforms, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseOverride$Outbound = { + description: string; + id: string; + platforms: SyncReconcileRequestCurrentReleaseOverridePlatforms$Outbound; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseOverride$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseOverride$Outbound, + SyncReconcileRequestCurrentReleaseOverride + > = z.object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncReconcileRequestCurrentReleaseOverridePlatforms$outboundSchema + ), + }); + +export function syncReconcileRequestCurrentReleaseOverrideToJSON( + syncReconcileRequestCurrentReleaseOverride: + SyncReconcileRequestCurrentReleaseOverride, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseOverride$outboundSchema.parse( + syncReconcileRequestCurrentReleaseOverride, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseOverrideUnion$Outbound = + | SyncReconcileRequestCurrentReleaseOverride$Outbound + | string; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseOverrideUnion$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseOverrideUnion$Outbound, + SyncReconcileRequestCurrentReleaseOverrideUnion + > = z.union([ + z.lazy(() => SyncReconcileRequestCurrentReleaseOverride$outboundSchema), + z.string(), + ]); + +export function syncReconcileRequestCurrentReleaseOverrideUnionToJSON( + syncReconcileRequestCurrentReleaseOverrideUnion: + SyncReconcileRequestCurrentReleaseOverrideUnion, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseOverrideUnion$outboundSchema.parse( + syncReconcileRequestCurrentReleaseOverrideUnion, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseManagement2$Outbound = { + override: { + [k: string]: Array< + SyncReconcileRequestCurrentReleaseOverride$Outbound | string + >; + }; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseManagement2$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseManagement2$Outbound, + SyncReconcileRequestCurrentReleaseManagement2 + > = z.object({ + override: z.record( + z.string(), + z.array(z.union([ + z.lazy(() => SyncReconcileRequestCurrentReleaseOverride$outboundSchema), + z.string(), + ])), + ), + }); + +export function syncReconcileRequestCurrentReleaseManagement2ToJSON( + syncReconcileRequestCurrentReleaseManagement2: + SyncReconcileRequestCurrentReleaseManagement2, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseManagement2$outboundSchema.parse( + syncReconcileRequestCurrentReleaseManagement2, + ), + ); +} + +/** @internal */ +export type CurrentReleaseExtendStateAwResource$Outbound = { + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + resources: Array; +}; + +/** @internal */ +export const CurrentReleaseExtendStateAwResource$outboundSchema: z.ZodType< + CurrentReleaseExtendStateAwResource$Outbound, + CurrentReleaseExtendStateAwResource +> = z.object({ + condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) + .optional(), + resources: z.array(z.string()), +}); + +export function currentReleaseExtendStateAwResourceToJSON( + currentReleaseExtendStateAwResource: CurrentReleaseExtendStateAwResource, +): string { + return JSON.stringify( + CurrentReleaseExtendStateAwResource$outboundSchema.parse( + currentReleaseExtendStateAwResource, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseExtendAwStack$Outbound = { + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + resources: Array; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseExtendAwStack$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseExtendAwStack$Outbound, + SyncReconcileRequestCurrentReleaseExtendAwStack + > = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); + +export function syncReconcileRequestCurrentReleaseExtendAwStackToJSON( + syncReconcileRequestCurrentReleaseExtendAwStack: + SyncReconcileRequestCurrentReleaseExtendAwStack, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseExtendAwStack$outboundSchema.parse( + syncReconcileRequestCurrentReleaseExtendAwStack, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseExtendAwBinding$Outbound = { + resource?: CurrentReleaseExtendStateAwResource$Outbound | undefined; + stack?: SyncReconcileRequestCurrentReleaseExtendAwStack$Outbound | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseExtendAwBinding$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseExtendAwBinding$Outbound, + SyncReconcileRequestCurrentReleaseExtendAwBinding + > = z.object({ + resource: z.lazy(() => CurrentReleaseExtendStateAwResource$outboundSchema) + .optional(), + stack: z.lazy(() => + SyncReconcileRequestCurrentReleaseExtendAwStack$outboundSchema + ).optional(), + }); + +export function syncReconcileRequestCurrentReleaseExtendAwBindingToJSON( + syncReconcileRequestCurrentReleaseExtendAwBinding: + SyncReconcileRequestCurrentReleaseExtendAwBinding, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseExtendAwBinding$outboundSchema.parse( + syncReconcileRequestCurrentReleaseExtendAwBinding, + ), + ); +} + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseExtendEffect$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestCurrentReleaseExtendEffect, + ); + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseExtendAwGrant$Outbound = { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseExtendAwGrant$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseExtendAwGrant$Outbound, + SyncReconcileRequestCurrentReleaseExtendAwGrant + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileRequestCurrentReleaseExtendAwGrantToJSON( + syncReconcileRequestCurrentReleaseExtendAwGrant: + SyncReconcileRequestCurrentReleaseExtendAwGrant, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseExtendAwGrant$outboundSchema.parse( + syncReconcileRequestCurrentReleaseExtendAwGrant, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseExtendAw$Outbound = { + binding: SyncReconcileRequestCurrentReleaseExtendAwBinding$Outbound; + description?: string | null | undefined; + effect?: string | undefined; + grant: SyncReconcileRequestCurrentReleaseExtendAwGrant$Outbound; + label?: string | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseExtendAw$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseExtendAw$Outbound, + SyncReconcileRequestCurrentReleaseExtendAw + > = z.object({ + binding: z.lazy(() => + SyncReconcileRequestCurrentReleaseExtendAwBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: SyncReconcileRequestCurrentReleaseExtendEffect$outboundSchema + .optional(), + grant: z.lazy(() => + SyncReconcileRequestCurrentReleaseExtendAwGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncReconcileRequestCurrentReleaseExtendAwToJSON( + syncReconcileRequestCurrentReleaseExtendAw: + SyncReconcileRequestCurrentReleaseExtendAw, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseExtendAw$outboundSchema.parse( + syncReconcileRequestCurrentReleaseExtendAw, + ), + ); +} + +/** @internal */ +export type CurrentReleaseExtendStateAzureResource$Outbound = { + scope: string; +}; + +/** @internal */ +export const CurrentReleaseExtendStateAzureResource$outboundSchema: z.ZodType< + CurrentReleaseExtendStateAzureResource$Outbound, + CurrentReleaseExtendStateAzureResource +> = z.object({ + scope: z.string(), +}); + +export function currentReleaseExtendStateAzureResourceToJSON( + currentReleaseExtendStateAzureResource: + CurrentReleaseExtendStateAzureResource, +): string { + return JSON.stringify( + CurrentReleaseExtendStateAzureResource$outboundSchema.parse( + currentReleaseExtendStateAzureResource, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseExtendAzureStack$Outbound = { + scope: string; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseExtendAzureStack$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseExtendAzureStack$Outbound, + SyncReconcileRequestCurrentReleaseExtendAzureStack + > = z.object({ + scope: z.string(), + }); + +export function syncReconcileRequestCurrentReleaseExtendAzureStackToJSON( + syncReconcileRequestCurrentReleaseExtendAzureStack: + SyncReconcileRequestCurrentReleaseExtendAzureStack, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseExtendAzureStack$outboundSchema.parse( + syncReconcileRequestCurrentReleaseExtendAzureStack, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseExtendAzureBinding$Outbound = { + resource?: CurrentReleaseExtendStateAzureResource$Outbound | undefined; + stack?: + | SyncReconcileRequestCurrentReleaseExtendAzureStack$Outbound + | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseExtendAzureBinding$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseExtendAzureBinding$Outbound, + SyncReconcileRequestCurrentReleaseExtendAzureBinding + > = z.object({ + resource: z.lazy(() => + CurrentReleaseExtendStateAzureResource$outboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileRequestCurrentReleaseExtendAzureStack$outboundSchema + ).optional(), + }); + +export function syncReconcileRequestCurrentReleaseExtendAzureBindingToJSON( + syncReconcileRequestCurrentReleaseExtendAzureBinding: + SyncReconcileRequestCurrentReleaseExtendAzureBinding, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseExtendAzureBinding$outboundSchema.parse( + syncReconcileRequestCurrentReleaseExtendAzureBinding, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseExtendAzureGrant$Outbound = { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseExtendAzureGrant$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseExtendAzureGrant$Outbound, + SyncReconcileRequestCurrentReleaseExtendAzureGrant + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileRequestCurrentReleaseExtendAzureGrantToJSON( + syncReconcileRequestCurrentReleaseExtendAzureGrant: + SyncReconcileRequestCurrentReleaseExtendAzureGrant, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseExtendAzureGrant$outboundSchema.parse( + syncReconcileRequestCurrentReleaseExtendAzureGrant, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseExtendAzure$Outbound = { + binding: SyncReconcileRequestCurrentReleaseExtendAzureBinding$Outbound; + description?: string | null | undefined; + grant: SyncReconcileRequestCurrentReleaseExtendAzureGrant$Outbound; + label?: string | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseExtendAzure$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseExtendAzure$Outbound, + SyncReconcileRequestCurrentReleaseExtendAzure + > = z.object({ + binding: z.lazy(() => + SyncReconcileRequestCurrentReleaseExtendAzureBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncReconcileRequestCurrentReleaseExtendAzureGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncReconcileRequestCurrentReleaseExtendAzureToJSON( + syncReconcileRequestCurrentReleaseExtendAzure: + SyncReconcileRequestCurrentReleaseExtendAzure, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseExtendAzure$outboundSchema.parse( + syncReconcileRequestCurrentReleaseExtendAzure, + ), + ); +} + +/** @internal */ +export type CurrentReleaseExtendConditionStateResource$Outbound = { + expression: string; + title: string; +}; + +/** @internal */ +export const CurrentReleaseExtendConditionStateResource$outboundSchema: + z.ZodType< + CurrentReleaseExtendConditionStateResource$Outbound, + CurrentReleaseExtendConditionStateResource + > = z.object({ + expression: z.string(), + title: z.string(), + }); + +export function currentReleaseExtendConditionStateResourceToJSON( + currentReleaseExtendConditionStateResource: + CurrentReleaseExtendConditionStateResource, +): string { + return JSON.stringify( + CurrentReleaseExtendConditionStateResource$outboundSchema.parse( + currentReleaseExtendConditionStateResource, + ), + ); +} + +/** @internal */ +export type CurrentReleaseExtendStateResourceConditionUnion$Outbound = + | CurrentReleaseExtendConditionStateResource$Outbound + | any; + +/** @internal */ +export const CurrentReleaseExtendStateResourceConditionUnion$outboundSchema: + z.ZodType< + CurrentReleaseExtendStateResourceConditionUnion$Outbound, + CurrentReleaseExtendStateResourceConditionUnion + > = z.union([ + z.lazy(() => CurrentReleaseExtendConditionStateResource$outboundSchema), + z.any(), + ]); + +export function currentReleaseExtendStateResourceConditionUnionToJSON( + currentReleaseExtendStateResourceConditionUnion: + CurrentReleaseExtendStateResourceConditionUnion, +): string { + return JSON.stringify( + CurrentReleaseExtendStateResourceConditionUnion$outboundSchema.parse( + currentReleaseExtendStateResourceConditionUnion, + ), + ); +} + +/** @internal */ +export type CurrentReleaseExtendStateGcpResource$Outbound = { + condition?: + | CurrentReleaseExtendConditionStateResource$Outbound + | any + | null + | undefined; + scope: string; +}; + +/** @internal */ +export const CurrentReleaseExtendStateGcpResource$outboundSchema: z.ZodType< + CurrentReleaseExtendStateGcpResource$Outbound, + CurrentReleaseExtendStateGcpResource +> = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => CurrentReleaseExtendConditionStateResource$outboundSchema), + z.any(), + ]), + ).optional(), + scope: z.string(), +}); + +export function currentReleaseExtendStateGcpResourceToJSON( + currentReleaseExtendStateGcpResource: CurrentReleaseExtendStateGcpResource, +): string { + return JSON.stringify( + CurrentReleaseExtendStateGcpResource$outboundSchema.parse( + currentReleaseExtendStateGcpResource, + ), + ); +} + +/** @internal */ +export type CurrentReleaseExtendConditionState$Outbound = { + expression: string; + title: string; +}; + +/** @internal */ +export const CurrentReleaseExtendConditionState$outboundSchema: z.ZodType< + CurrentReleaseExtendConditionState$Outbound, + CurrentReleaseExtendConditionState +> = z.object({ + expression: z.string(), + title: z.string(), +}); + +export function currentReleaseExtendConditionStateToJSON( + currentReleaseExtendConditionState: CurrentReleaseExtendConditionState, +): string { + return JSON.stringify( + CurrentReleaseExtendConditionState$outboundSchema.parse( + currentReleaseExtendConditionState, + ), + ); +} + +/** @internal */ +export type CurrentReleaseExtendStateConditionUnion$Outbound = + | CurrentReleaseExtendConditionState$Outbound + | any; + +/** @internal */ +export const CurrentReleaseExtendStateConditionUnion$outboundSchema: z.ZodType< + CurrentReleaseExtendStateConditionUnion$Outbound, + CurrentReleaseExtendStateConditionUnion +> = z.union([ + z.lazy(() => CurrentReleaseExtendConditionState$outboundSchema), + z.any(), +]); + +export function currentReleaseExtendStateConditionUnionToJSON( + currentReleaseExtendStateConditionUnion: + CurrentReleaseExtendStateConditionUnion, +): string { + return JSON.stringify( + CurrentReleaseExtendStateConditionUnion$outboundSchema.parse( + currentReleaseExtendStateConditionUnion, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseExtendGcpStack$Outbound = { + condition?: + | CurrentReleaseExtendConditionState$Outbound + | any + | null + | undefined; + scope: string; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseExtendGcpStack$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseExtendGcpStack$Outbound, + SyncReconcileRequestCurrentReleaseExtendGcpStack + > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => CurrentReleaseExtendConditionState$outboundSchema), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); + +export function syncReconcileRequestCurrentReleaseExtendGcpStackToJSON( + syncReconcileRequestCurrentReleaseExtendGcpStack: + SyncReconcileRequestCurrentReleaseExtendGcpStack, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseExtendGcpStack$outboundSchema.parse( + syncReconcileRequestCurrentReleaseExtendGcpStack, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseExtendGcpBinding$Outbound = { + resource?: CurrentReleaseExtendStateGcpResource$Outbound | undefined; + stack?: SyncReconcileRequestCurrentReleaseExtendGcpStack$Outbound | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseExtendGcpBinding$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseExtendGcpBinding$Outbound, + SyncReconcileRequestCurrentReleaseExtendGcpBinding + > = z.object({ + resource: z.lazy(() => CurrentReleaseExtendStateGcpResource$outboundSchema) + .optional(), + stack: z.lazy(() => + SyncReconcileRequestCurrentReleaseExtendGcpStack$outboundSchema + ).optional(), + }); + +export function syncReconcileRequestCurrentReleaseExtendGcpBindingToJSON( + syncReconcileRequestCurrentReleaseExtendGcpBinding: + SyncReconcileRequestCurrentReleaseExtendGcpBinding, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseExtendGcpBinding$outboundSchema.parse( + syncReconcileRequestCurrentReleaseExtendGcpBinding, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseExtendGcpGrant$Outbound = { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseExtendGcpGrant$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseExtendGcpGrant$Outbound, + SyncReconcileRequestCurrentReleaseExtendGcpGrant + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileRequestCurrentReleaseExtendGcpGrantToJSON( + syncReconcileRequestCurrentReleaseExtendGcpGrant: + SyncReconcileRequestCurrentReleaseExtendGcpGrant, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseExtendGcpGrant$outboundSchema.parse( + syncReconcileRequestCurrentReleaseExtendGcpGrant, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseExtendGcp$Outbound = { + binding: SyncReconcileRequestCurrentReleaseExtendGcpBinding$Outbound; + description?: string | null | undefined; + grant: SyncReconcileRequestCurrentReleaseExtendGcpGrant$Outbound; + label?: string | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseExtendGcp$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseExtendGcp$Outbound, + SyncReconcileRequestCurrentReleaseExtendGcp + > = z.object({ + binding: z.lazy(() => + SyncReconcileRequestCurrentReleaseExtendGcpBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncReconcileRequestCurrentReleaseExtendGcpGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncReconcileRequestCurrentReleaseExtendGcpToJSON( + syncReconcileRequestCurrentReleaseExtendGcp: + SyncReconcileRequestCurrentReleaseExtendGcp, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseExtendGcp$outboundSchema.parse( + syncReconcileRequestCurrentReleaseExtendGcp, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseExtendPlatforms$Outbound = { + aws?: + | Array + | null + | undefined; + azure?: + | Array + | null + | undefined; + gcp?: + | Array + | null + | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseExtendPlatforms$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseExtendPlatforms$Outbound, + SyncReconcileRequestCurrentReleaseExtendPlatforms + > = z.object({ + aws: z.nullable( + z.array(z.lazy(() => + SyncReconcileRequestCurrentReleaseExtendAw$outboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + SyncReconcileRequestCurrentReleaseExtendAzure$outboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + SyncReconcileRequestCurrentReleaseExtendGcp$outboundSchema + )), + ).optional(), + }); + +export function syncReconcileRequestCurrentReleaseExtendPlatformsToJSON( + syncReconcileRequestCurrentReleaseExtendPlatforms: + SyncReconcileRequestCurrentReleaseExtendPlatforms, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseExtendPlatforms$outboundSchema.parse( + syncReconcileRequestCurrentReleaseExtendPlatforms, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseExtend$Outbound = { + description: string; + id: string; + platforms: SyncReconcileRequestCurrentReleaseExtendPlatforms$Outbound; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseExtend$outboundSchema: z.ZodType< + SyncReconcileRequestCurrentReleaseExtend$Outbound, + SyncReconcileRequestCurrentReleaseExtend +> = z.object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncReconcileRequestCurrentReleaseExtendPlatforms$outboundSchema + ), +}); + +export function syncReconcileRequestCurrentReleaseExtendToJSON( + syncReconcileRequestCurrentReleaseExtend: + SyncReconcileRequestCurrentReleaseExtend, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseExtend$outboundSchema.parse( + syncReconcileRequestCurrentReleaseExtend, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseExtendUnion$Outbound = + | SyncReconcileRequestCurrentReleaseExtend$Outbound + | string; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseExtendUnion$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseExtendUnion$Outbound, + SyncReconcileRequestCurrentReleaseExtendUnion + > = z.union([ + z.lazy(() => SyncReconcileRequestCurrentReleaseExtend$outboundSchema), + z.string(), + ]); + +export function syncReconcileRequestCurrentReleaseExtendUnionToJSON( + syncReconcileRequestCurrentReleaseExtendUnion: + SyncReconcileRequestCurrentReleaseExtendUnion, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseExtendUnion$outboundSchema.parse( + syncReconcileRequestCurrentReleaseExtendUnion, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseManagement1$Outbound = { + extend: { + [k: string]: Array< + SyncReconcileRequestCurrentReleaseExtend$Outbound | string + >; + }; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseManagement1$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseManagement1$Outbound, + SyncReconcileRequestCurrentReleaseManagement1 + > = z.object({ + extend: z.record( + z.string(), + z.array(z.union([ + z.lazy(() => SyncReconcileRequestCurrentReleaseExtend$outboundSchema), + z.string(), + ])), + ), + }); + +export function syncReconcileRequestCurrentReleaseManagement1ToJSON( + syncReconcileRequestCurrentReleaseManagement1: + SyncReconcileRequestCurrentReleaseManagement1, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseManagement1$outboundSchema.parse( + syncReconcileRequestCurrentReleaseManagement1, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseManagementUnion$Outbound = + | SyncReconcileRequestCurrentReleaseManagement1$Outbound + | SyncReconcileRequestCurrentReleaseManagement2$Outbound + | string; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseManagementUnion$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseManagementUnion$Outbound, + SyncReconcileRequestCurrentReleaseManagementUnion + > = z.union([ + z.lazy(() => SyncReconcileRequestCurrentReleaseManagement1$outboundSchema), + z.lazy(() => SyncReconcileRequestCurrentReleaseManagement2$outboundSchema), + SyncReconcileRequestCurrentReleaseManagementEnum$outboundSchema, + ]); + +export function syncReconcileRequestCurrentReleaseManagementUnionToJSON( + syncReconcileRequestCurrentReleaseManagementUnion: + SyncReconcileRequestCurrentReleaseManagementUnion, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseManagementUnion$outboundSchema.parse( + syncReconcileRequestCurrentReleaseManagementUnion, + ), + ); +} + +/** @internal */ +export type CurrentReleaseProfileStateAwResource$Outbound = { + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + resources: Array; +}; + +/** @internal */ +export const CurrentReleaseProfileStateAwResource$outboundSchema: z.ZodType< + CurrentReleaseProfileStateAwResource$Outbound, + CurrentReleaseProfileStateAwResource +> = z.object({ + condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) + .optional(), + resources: z.array(z.string()), +}); + +export function currentReleaseProfileStateAwResourceToJSON( + currentReleaseProfileStateAwResource: CurrentReleaseProfileStateAwResource, +): string { + return JSON.stringify( + CurrentReleaseProfileStateAwResource$outboundSchema.parse( + currentReleaseProfileStateAwResource, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseProfileAwStack$Outbound = { + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + resources: Array; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseProfileAwStack$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseProfileAwStack$Outbound, + SyncReconcileRequestCurrentReleaseProfileAwStack + > = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); + +export function syncReconcileRequestCurrentReleaseProfileAwStackToJSON( + syncReconcileRequestCurrentReleaseProfileAwStack: + SyncReconcileRequestCurrentReleaseProfileAwStack, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseProfileAwStack$outboundSchema.parse( + syncReconcileRequestCurrentReleaseProfileAwStack, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseProfileAwBinding$Outbound = { + resource?: CurrentReleaseProfileStateAwResource$Outbound | undefined; + stack?: SyncReconcileRequestCurrentReleaseProfileAwStack$Outbound | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseProfileAwBinding$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseProfileAwBinding$Outbound, + SyncReconcileRequestCurrentReleaseProfileAwBinding + > = z.object({ + resource: z.lazy(() => CurrentReleaseProfileStateAwResource$outboundSchema) + .optional(), + stack: z.lazy(() => + SyncReconcileRequestCurrentReleaseProfileAwStack$outboundSchema + ).optional(), + }); + +export function syncReconcileRequestCurrentReleaseProfileAwBindingToJSON( + syncReconcileRequestCurrentReleaseProfileAwBinding: + SyncReconcileRequestCurrentReleaseProfileAwBinding, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseProfileAwBinding$outboundSchema.parse( + syncReconcileRequestCurrentReleaseProfileAwBinding, + ), + ); +} + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseProfileEffect$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestCurrentReleaseProfileEffect, + ); + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseProfileAwGrant$Outbound = { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseProfileAwGrant$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseProfileAwGrant$Outbound, + SyncReconcileRequestCurrentReleaseProfileAwGrant + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileRequestCurrentReleaseProfileAwGrantToJSON( + syncReconcileRequestCurrentReleaseProfileAwGrant: + SyncReconcileRequestCurrentReleaseProfileAwGrant, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseProfileAwGrant$outboundSchema.parse( + syncReconcileRequestCurrentReleaseProfileAwGrant, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseProfileAw$Outbound = { + binding: SyncReconcileRequestCurrentReleaseProfileAwBinding$Outbound; + description?: string | null | undefined; + effect?: string | undefined; + grant: SyncReconcileRequestCurrentReleaseProfileAwGrant$Outbound; + label?: string | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseProfileAw$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseProfileAw$Outbound, + SyncReconcileRequestCurrentReleaseProfileAw + > = z.object({ + binding: z.lazy(() => + SyncReconcileRequestCurrentReleaseProfileAwBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: SyncReconcileRequestCurrentReleaseProfileEffect$outboundSchema + .optional(), + grant: z.lazy(() => + SyncReconcileRequestCurrentReleaseProfileAwGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncReconcileRequestCurrentReleaseProfileAwToJSON( + syncReconcileRequestCurrentReleaseProfileAw: + SyncReconcileRequestCurrentReleaseProfileAw, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseProfileAw$outboundSchema.parse( + syncReconcileRequestCurrentReleaseProfileAw, + ), + ); +} + +/** @internal */ +export type CurrentReleaseProfileStateAzureResource$Outbound = { + scope: string; +}; + +/** @internal */ +export const CurrentReleaseProfileStateAzureResource$outboundSchema: z.ZodType< + CurrentReleaseProfileStateAzureResource$Outbound, + CurrentReleaseProfileStateAzureResource +> = z.object({ + scope: z.string(), +}); + +export function currentReleaseProfileStateAzureResourceToJSON( + currentReleaseProfileStateAzureResource: + CurrentReleaseProfileStateAzureResource, +): string { + return JSON.stringify( + CurrentReleaseProfileStateAzureResource$outboundSchema.parse( + currentReleaseProfileStateAzureResource, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseProfileAzureStack$Outbound = { + scope: string; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseProfileAzureStack$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseProfileAzureStack$Outbound, + SyncReconcileRequestCurrentReleaseProfileAzureStack + > = z.object({ + scope: z.string(), + }); + +export function syncReconcileRequestCurrentReleaseProfileAzureStackToJSON( + syncReconcileRequestCurrentReleaseProfileAzureStack: + SyncReconcileRequestCurrentReleaseProfileAzureStack, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseProfileAzureStack$outboundSchema.parse( + syncReconcileRequestCurrentReleaseProfileAzureStack, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseProfileAzureBinding$Outbound = { + resource?: CurrentReleaseProfileStateAzureResource$Outbound | undefined; + stack?: + | SyncReconcileRequestCurrentReleaseProfileAzureStack$Outbound + | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseProfileAzureBinding$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseProfileAzureBinding$Outbound, + SyncReconcileRequestCurrentReleaseProfileAzureBinding + > = z.object({ + resource: z.lazy(() => + CurrentReleaseProfileStateAzureResource$outboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileRequestCurrentReleaseProfileAzureStack$outboundSchema + ).optional(), + }); + +export function syncReconcileRequestCurrentReleaseProfileAzureBindingToJSON( + syncReconcileRequestCurrentReleaseProfileAzureBinding: + SyncReconcileRequestCurrentReleaseProfileAzureBinding, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseProfileAzureBinding$outboundSchema.parse( + syncReconcileRequestCurrentReleaseProfileAzureBinding, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseProfileAzureGrant$Outbound = { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseProfileAzureGrant$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseProfileAzureGrant$Outbound, + SyncReconcileRequestCurrentReleaseProfileAzureGrant + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileRequestCurrentReleaseProfileAzureGrantToJSON( + syncReconcileRequestCurrentReleaseProfileAzureGrant: + SyncReconcileRequestCurrentReleaseProfileAzureGrant, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseProfileAzureGrant$outboundSchema.parse( + syncReconcileRequestCurrentReleaseProfileAzureGrant, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseProfileAzure$Outbound = { + binding: SyncReconcileRequestCurrentReleaseProfileAzureBinding$Outbound; + description?: string | null | undefined; + grant: SyncReconcileRequestCurrentReleaseProfileAzureGrant$Outbound; + label?: string | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseProfileAzure$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseProfileAzure$Outbound, + SyncReconcileRequestCurrentReleaseProfileAzure + > = z.object({ + binding: z.lazy(() => + SyncReconcileRequestCurrentReleaseProfileAzureBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncReconcileRequestCurrentReleaseProfileAzureGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncReconcileRequestCurrentReleaseProfileAzureToJSON( + syncReconcileRequestCurrentReleaseProfileAzure: + SyncReconcileRequestCurrentReleaseProfileAzure, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseProfileAzure$outboundSchema.parse( + syncReconcileRequestCurrentReleaseProfileAzure, + ), + ); +} + +/** @internal */ +export type CurrentReleaseProfileConditionStateResource$Outbound = { + expression: string; + title: string; +}; + +/** @internal */ +export const CurrentReleaseProfileConditionStateResource$outboundSchema: + z.ZodType< + CurrentReleaseProfileConditionStateResource$Outbound, + CurrentReleaseProfileConditionStateResource + > = z.object({ + expression: z.string(), + title: z.string(), + }); + +export function currentReleaseProfileConditionStateResourceToJSON( + currentReleaseProfileConditionStateResource: + CurrentReleaseProfileConditionStateResource, +): string { + return JSON.stringify( + CurrentReleaseProfileConditionStateResource$outboundSchema.parse( + currentReleaseProfileConditionStateResource, + ), + ); +} + +/** @internal */ +export type CurrentReleaseProfileStateResourceConditionUnion$Outbound = + | CurrentReleaseProfileConditionStateResource$Outbound + | any; + +/** @internal */ +export const CurrentReleaseProfileStateResourceConditionUnion$outboundSchema: + z.ZodType< + CurrentReleaseProfileStateResourceConditionUnion$Outbound, + CurrentReleaseProfileStateResourceConditionUnion + > = z.union([ + z.lazy(() => CurrentReleaseProfileConditionStateResource$outboundSchema), + z.any(), + ]); + +export function currentReleaseProfileStateResourceConditionUnionToJSON( + currentReleaseProfileStateResourceConditionUnion: + CurrentReleaseProfileStateResourceConditionUnion, +): string { + return JSON.stringify( + CurrentReleaseProfileStateResourceConditionUnion$outboundSchema.parse( + currentReleaseProfileStateResourceConditionUnion, + ), + ); +} + +/** @internal */ +export type CurrentReleaseProfileStateGcpResource$Outbound = { + condition?: + | CurrentReleaseProfileConditionStateResource$Outbound + | any + | null + | undefined; + scope: string; +}; + +/** @internal */ +export const CurrentReleaseProfileStateGcpResource$outboundSchema: z.ZodType< + CurrentReleaseProfileStateGcpResource$Outbound, + CurrentReleaseProfileStateGcpResource +> = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => CurrentReleaseProfileConditionStateResource$outboundSchema), + z.any(), + ]), + ).optional(), + scope: z.string(), +}); + +export function currentReleaseProfileStateGcpResourceToJSON( + currentReleaseProfileStateGcpResource: CurrentReleaseProfileStateGcpResource, +): string { + return JSON.stringify( + CurrentReleaseProfileStateGcpResource$outboundSchema.parse( + currentReleaseProfileStateGcpResource, + ), + ); +} + +/** @internal */ +export type CurrentReleaseProfileConditionState$Outbound = { + expression: string; + title: string; +}; + +/** @internal */ +export const CurrentReleaseProfileConditionState$outboundSchema: z.ZodType< + CurrentReleaseProfileConditionState$Outbound, + CurrentReleaseProfileConditionState +> = z.object({ + expression: z.string(), + title: z.string(), +}); + +export function currentReleaseProfileConditionStateToJSON( + currentReleaseProfileConditionState: CurrentReleaseProfileConditionState, +): string { + return JSON.stringify( + CurrentReleaseProfileConditionState$outboundSchema.parse( + currentReleaseProfileConditionState, + ), + ); +} + +/** @internal */ +export type CurrentReleaseProfileStateConditionUnion$Outbound = + | CurrentReleaseProfileConditionState$Outbound + | any; + +/** @internal */ +export const CurrentReleaseProfileStateConditionUnion$outboundSchema: z.ZodType< + CurrentReleaseProfileStateConditionUnion$Outbound, + CurrentReleaseProfileStateConditionUnion +> = z.union([ + z.lazy(() => CurrentReleaseProfileConditionState$outboundSchema), + z.any(), +]); + +export function currentReleaseProfileStateConditionUnionToJSON( + currentReleaseProfileStateConditionUnion: + CurrentReleaseProfileStateConditionUnion, +): string { + return JSON.stringify( + CurrentReleaseProfileStateConditionUnion$outboundSchema.parse( + currentReleaseProfileStateConditionUnion, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseProfileGcpStack$Outbound = { + condition?: + | CurrentReleaseProfileConditionState$Outbound + | any + | null + | undefined; + scope: string; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseProfileGcpStack$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseProfileGcpStack$Outbound, + SyncReconcileRequestCurrentReleaseProfileGcpStack + > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => CurrentReleaseProfileConditionState$outboundSchema), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); + +export function syncReconcileRequestCurrentReleaseProfileGcpStackToJSON( + syncReconcileRequestCurrentReleaseProfileGcpStack: + SyncReconcileRequestCurrentReleaseProfileGcpStack, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseProfileGcpStack$outboundSchema.parse( + syncReconcileRequestCurrentReleaseProfileGcpStack, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseProfileGcpBinding$Outbound = { + resource?: CurrentReleaseProfileStateGcpResource$Outbound | undefined; + stack?: + | SyncReconcileRequestCurrentReleaseProfileGcpStack$Outbound + | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseProfileGcpBinding$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseProfileGcpBinding$Outbound, + SyncReconcileRequestCurrentReleaseProfileGcpBinding + > = z.object({ + resource: z.lazy(() => CurrentReleaseProfileStateGcpResource$outboundSchema) + .optional(), + stack: z.lazy(() => + SyncReconcileRequestCurrentReleaseProfileGcpStack$outboundSchema + ).optional(), + }); + +export function syncReconcileRequestCurrentReleaseProfileGcpBindingToJSON( + syncReconcileRequestCurrentReleaseProfileGcpBinding: + SyncReconcileRequestCurrentReleaseProfileGcpBinding, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseProfileGcpBinding$outboundSchema.parse( + syncReconcileRequestCurrentReleaseProfileGcpBinding, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseProfileGcpGrant$Outbound = { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseProfileGcpGrant$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseProfileGcpGrant$Outbound, + SyncReconcileRequestCurrentReleaseProfileGcpGrant + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileRequestCurrentReleaseProfileGcpGrantToJSON( + syncReconcileRequestCurrentReleaseProfileGcpGrant: + SyncReconcileRequestCurrentReleaseProfileGcpGrant, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseProfileGcpGrant$outboundSchema.parse( + syncReconcileRequestCurrentReleaseProfileGcpGrant, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseProfileGcp$Outbound = { + binding: SyncReconcileRequestCurrentReleaseProfileGcpBinding$Outbound; + description?: string | null | undefined; + grant: SyncReconcileRequestCurrentReleaseProfileGcpGrant$Outbound; + label?: string | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseProfileGcp$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseProfileGcp$Outbound, + SyncReconcileRequestCurrentReleaseProfileGcp + > = z.object({ + binding: z.lazy(() => + SyncReconcileRequestCurrentReleaseProfileGcpBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncReconcileRequestCurrentReleaseProfileGcpGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncReconcileRequestCurrentReleaseProfileGcpToJSON( + syncReconcileRequestCurrentReleaseProfileGcp: + SyncReconcileRequestCurrentReleaseProfileGcp, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseProfileGcp$outboundSchema.parse( + syncReconcileRequestCurrentReleaseProfileGcp, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseProfilePlatforms$Outbound = { + aws?: + | Array + | null + | undefined; + azure?: + | Array + | null + | undefined; + gcp?: + | Array + | null + | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseProfilePlatforms$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseProfilePlatforms$Outbound, + SyncReconcileRequestCurrentReleaseProfilePlatforms + > = z.object({ + aws: z.nullable( + z.array(z.lazy(() => + SyncReconcileRequestCurrentReleaseProfileAw$outboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + SyncReconcileRequestCurrentReleaseProfileAzure$outboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + SyncReconcileRequestCurrentReleaseProfileGcp$outboundSchema + )), + ).optional(), + }); + +export function syncReconcileRequestCurrentReleaseProfilePlatformsToJSON( + syncReconcileRequestCurrentReleaseProfilePlatforms: + SyncReconcileRequestCurrentReleaseProfilePlatforms, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseProfilePlatforms$outboundSchema.parse( + syncReconcileRequestCurrentReleaseProfilePlatforms, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseProfile$Outbound = { + description: string; + id: string; + platforms: SyncReconcileRequestCurrentReleaseProfilePlatforms$Outbound; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseProfile$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseProfile$Outbound, + SyncReconcileRequestCurrentReleaseProfile + > = z.object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncReconcileRequestCurrentReleaseProfilePlatforms$outboundSchema + ), + }); + +export function syncReconcileRequestCurrentReleaseProfileToJSON( + syncReconcileRequestCurrentReleaseProfile: + SyncReconcileRequestCurrentReleaseProfile, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseProfile$outboundSchema.parse( + syncReconcileRequestCurrentReleaseProfile, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseProfileUnion$Outbound = + | SyncReconcileRequestCurrentReleaseProfile$Outbound + | string; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseProfileUnion$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseProfileUnion$Outbound, + SyncReconcileRequestCurrentReleaseProfileUnion + > = z.union([ + z.lazy(() => SyncReconcileRequestCurrentReleaseProfile$outboundSchema), + z.string(), + ]); + +export function syncReconcileRequestCurrentReleaseProfileUnionToJSON( + syncReconcileRequestCurrentReleaseProfileUnion: + SyncReconcileRequestCurrentReleaseProfileUnion, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseProfileUnion$outboundSchema.parse( + syncReconcileRequestCurrentReleaseProfileUnion, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleasePermissions$Outbound = { + management?: + | SyncReconcileRequestCurrentReleaseManagement1$Outbound + | SyncReconcileRequestCurrentReleaseManagement2$Outbound + | string + | undefined; + profiles: { + [k: string]: { + [k: string]: Array< + SyncReconcileRequestCurrentReleaseProfile$Outbound | string + >; + }; + }; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleasePermissions$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleasePermissions$Outbound, + SyncReconcileRequestCurrentReleasePermissions + > = z.object({ + management: z.union([ + z.lazy(() => + SyncReconcileRequestCurrentReleaseManagement1$outboundSchema + ), + z.lazy(() => + SyncReconcileRequestCurrentReleaseManagement2$outboundSchema + ), + SyncReconcileRequestCurrentReleaseManagementEnum$outboundSchema, + ]).optional(), + profiles: z.record( + z.string(), + z.record( + z.string(), + z.array( + z.union([ + z.lazy(() => + SyncReconcileRequestCurrentReleaseProfile$outboundSchema + ), + z.string(), + ]), + ), + ), + ), + }); + +export function syncReconcileRequestCurrentReleasePermissionsToJSON( + syncReconcileRequestCurrentReleasePermissions: + SyncReconcileRequestCurrentReleasePermissions, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleasePermissions$outboundSchema.parse( + syncReconcileRequestCurrentReleasePermissions, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseConfig$Outbound = { + id: string; + type: string; + [additionalProperties: string]: unknown; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseConfig$outboundSchema: z.ZodType< + SyncReconcileRequestCurrentReleaseConfig$Outbound, + SyncReconcileRequestCurrentReleaseConfig +> = z.object({ + id: z.string(), + type: z.string(), + additionalProperties: z.record(z.string(), z.nullable(z.any())).optional(), +}).transform((v) => { + return { + ...v.additionalProperties, + ...remap$(v, { + additionalProperties: null, + }), + }; +}); + +export function syncReconcileRequestCurrentReleaseConfigToJSON( + syncReconcileRequestCurrentReleaseConfig: + SyncReconcileRequestCurrentReleaseConfig, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseConfig$outboundSchema.parse( + syncReconcileRequestCurrentReleaseConfig, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseDependency$Outbound = { + id: string; + type: string; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseDependency$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseDependency$Outbound, + SyncReconcileRequestCurrentReleaseDependency + > = z.object({ + id: z.string(), + type: z.string(), + }); + +export function syncReconcileRequestCurrentReleaseDependencyToJSON( + syncReconcileRequestCurrentReleaseDependency: + SyncReconcileRequestCurrentReleaseDependency, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseDependency$outboundSchema.parse( + syncReconcileRequestCurrentReleaseDependency, + ), + ); +} + +/** @internal */ +export const CurrentReleaseStateLifecycle$outboundSchema: z.ZodEnum< + typeof CurrentReleaseStateLifecycle +> = z.enum(CurrentReleaseStateLifecycle); + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseResources$Outbound = { + config: SyncReconcileRequestCurrentReleaseConfig$Outbound; + dependencies: Array; + enabledWhen?: string | null | undefined; + lifecycle: string; + remoteAccess?: boolean | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseResources$outboundSchema: + z.ZodType< + SyncReconcileRequestCurrentReleaseResources$Outbound, + SyncReconcileRequestCurrentReleaseResources + > = z.object({ + config: z.lazy(() => + SyncReconcileRequestCurrentReleaseConfig$outboundSchema + ), + dependencies: z.array( + z.lazy(() => SyncReconcileRequestCurrentReleaseDependency$outboundSchema), + ), + enabledWhen: z.nullable(z.string()).optional(), + lifecycle: CurrentReleaseStateLifecycle$outboundSchema, + remoteAccess: z.boolean().optional(), + }); + +export function syncReconcileRequestCurrentReleaseResourcesToJSON( + syncReconcileRequestCurrentReleaseResources: + SyncReconcileRequestCurrentReleaseResources, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseResources$outboundSchema.parse( + syncReconcileRequestCurrentReleaseResources, + ), + ); +} + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseSupportedPlatform$outboundSchema: + z.ZodEnum = z + .enum(SyncReconcileRequestCurrentReleaseSupportedPlatform); + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseStack$Outbound = { + id: string; + inputs?: Array | undefined; + permissions?: + | SyncReconcileRequestCurrentReleasePermissions$Outbound + | undefined; + resources: { + [k: string]: SyncReconcileRequestCurrentReleaseResources$Outbound; + }; + supportedPlatforms?: Array | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseStack$outboundSchema: z.ZodType< + SyncReconcileRequestCurrentReleaseStack$Outbound, + SyncReconcileRequestCurrentReleaseStack +> = z.object({ + id: z.string(), + inputs: z.array( + z.lazy(() => SyncReconcileRequestCurrentReleaseInput$outboundSchema), + ).optional(), + permissions: z.lazy(() => + SyncReconcileRequestCurrentReleasePermissions$outboundSchema + ).optional(), + resources: z.record( + z.string(), + z.lazy(() => SyncReconcileRequestCurrentReleaseResources$outboundSchema), + ), + supportedPlatforms: z.nullable( + z.array(SyncReconcileRequestCurrentReleaseSupportedPlatform$outboundSchema), + ).optional(), +}); + +export function syncReconcileRequestCurrentReleaseStackToJSON( + syncReconcileRequestCurrentReleaseStack: + SyncReconcileRequestCurrentReleaseStack, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseStack$outboundSchema.parse( + syncReconcileRequestCurrentReleaseStack, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentRelease$Outbound = { + description?: string | null | undefined; + releaseId?: string | null | undefined; + stack: SyncReconcileRequestCurrentReleaseStack$Outbound; + version?: string | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestCurrentRelease$outboundSchema: z.ZodType< + SyncReconcileRequestCurrentRelease$Outbound, + SyncReconcileRequestCurrentRelease +> = z.object({ + description: z.nullable(z.string()).optional(), + releaseId: z.nullable(z.string()).optional(), + stack: z.lazy(() => SyncReconcileRequestCurrentReleaseStack$outboundSchema), + version: z.nullable(z.string()).optional(), +}); + +export function syncReconcileRequestCurrentReleaseToJSON( + syncReconcileRequestCurrentRelease: SyncReconcileRequestCurrentRelease, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentRelease$outboundSchema.parse( + syncReconcileRequestCurrentRelease, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestCurrentReleaseUnion$Outbound = + | SyncReconcileRequestCurrentRelease$Outbound + | any; + +/** @internal */ +export const SyncReconcileRequestCurrentReleaseUnion$outboundSchema: z.ZodType< + SyncReconcileRequestCurrentReleaseUnion$Outbound, + SyncReconcileRequestCurrentReleaseUnion +> = z.union([ + z.lazy(() => SyncReconcileRequestCurrentRelease$outboundSchema), + z.any(), +]); + +export function syncReconcileRequestCurrentReleaseUnionToJSON( + syncReconcileRequestCurrentReleaseUnion: + SyncReconcileRequestCurrentReleaseUnion, +): string { + return JSON.stringify( + SyncReconcileRequestCurrentReleaseUnion$outboundSchema.parse( + syncReconcileRequestCurrentReleaseUnion, + ), + ); +} + +/** @internal */ +export const SyncReconcileRequestPlatformTest$outboundSchema: z.ZodEnum< + typeof SyncReconcileRequestPlatformTest +> = z.enum(SyncReconcileRequestPlatformTest); + +/** @internal */ +export type SyncReconcileRequestEnvironmentInfoTest$Outbound = { + testId: string; + platform: string; +}; + +/** @internal */ +export const SyncReconcileRequestEnvironmentInfoTest$outboundSchema: z.ZodType< + SyncReconcileRequestEnvironmentInfoTest$Outbound, + SyncReconcileRequestEnvironmentInfoTest +> = z.object({ + testId: z.string(), + platform: SyncReconcileRequestPlatformTest$outboundSchema, +}); + +export function syncReconcileRequestEnvironmentInfoTestToJSON( + syncReconcileRequestEnvironmentInfoTest: + SyncReconcileRequestEnvironmentInfoTest, +): string { + return JSON.stringify( + SyncReconcileRequestEnvironmentInfoTest$outboundSchema.parse( + syncReconcileRequestEnvironmentInfoTest, + ), + ); +} + +/** @internal */ +export const SyncReconcileRequestPlatformLocal$outboundSchema: z.ZodEnum< + typeof SyncReconcileRequestPlatformLocal +> = z.enum(SyncReconcileRequestPlatformLocal); + +/** @internal */ +export type SyncReconcileRequestEnvironmentInfoLocal$Outbound = { + arch: string; + hostname: string; + os: string; + platform: string; +}; + +/** @internal */ +export const SyncReconcileRequestEnvironmentInfoLocal$outboundSchema: z.ZodType< + SyncReconcileRequestEnvironmentInfoLocal$Outbound, + SyncReconcileRequestEnvironmentInfoLocal +> = z.object({ + arch: z.string(), + hostname: z.string(), + os: z.string(), + platform: SyncReconcileRequestPlatformLocal$outboundSchema, +}); + +export function syncReconcileRequestEnvironmentInfoLocalToJSON( + syncReconcileRequestEnvironmentInfoLocal: + SyncReconcileRequestEnvironmentInfoLocal, +): string { + return JSON.stringify( + SyncReconcileRequestEnvironmentInfoLocal$outboundSchema.parse( + syncReconcileRequestEnvironmentInfoLocal, + ), + ); +} + +/** @internal */ +export const SyncReconcileRequestPlatformAzure$outboundSchema: z.ZodEnum< + typeof SyncReconcileRequestPlatformAzure +> = z.enum(SyncReconcileRequestPlatformAzure); + +/** @internal */ +export type SyncReconcileRequestEnvironmentInfoAzure$Outbound = { + location: string; + subscriptionId: string; + tenantId: string; + platform: string; +}; + +/** @internal */ +export const SyncReconcileRequestEnvironmentInfoAzure$outboundSchema: z.ZodType< + SyncReconcileRequestEnvironmentInfoAzure$Outbound, + SyncReconcileRequestEnvironmentInfoAzure +> = z.object({ + location: z.string(), + subscriptionId: z.string(), + tenantId: z.string(), + platform: SyncReconcileRequestPlatformAzure$outboundSchema, +}); + +export function syncReconcileRequestEnvironmentInfoAzureToJSON( + syncReconcileRequestEnvironmentInfoAzure: + SyncReconcileRequestEnvironmentInfoAzure, +): string { + return JSON.stringify( + SyncReconcileRequestEnvironmentInfoAzure$outboundSchema.parse( + syncReconcileRequestEnvironmentInfoAzure, + ), + ); +} + +/** @internal */ +export const SyncReconcileRequestPlatformGcp$outboundSchema: z.ZodEnum< + typeof SyncReconcileRequestPlatformGcp +> = z.enum(SyncReconcileRequestPlatformGcp); + +/** @internal */ +export type SyncReconcileRequestEnvironmentInfoGcp$Outbound = { + projectId: string; + projectNumber: string; + region: string; + platform: string; +}; + +/** @internal */ +export const SyncReconcileRequestEnvironmentInfoGcp$outboundSchema: z.ZodType< + SyncReconcileRequestEnvironmentInfoGcp$Outbound, + SyncReconcileRequestEnvironmentInfoGcp +> = z.object({ + projectId: z.string(), + projectNumber: z.string(), + region: z.string(), + platform: SyncReconcileRequestPlatformGcp$outboundSchema, +}); + +export function syncReconcileRequestEnvironmentInfoGcpToJSON( + syncReconcileRequestEnvironmentInfoGcp: + SyncReconcileRequestEnvironmentInfoGcp, +): string { + return JSON.stringify( + SyncReconcileRequestEnvironmentInfoGcp$outboundSchema.parse( + syncReconcileRequestEnvironmentInfoGcp, + ), + ); +} -export const ResourceSeverity = { - Info: "info", - Warning: "warning", - Error: "error", -} as const; -export type ResourceSeverity = ClosedEnum; +/** @internal */ +export const SyncReconcileRequestPlatformAws$outboundSchema: z.ZodEnum< + typeof SyncReconcileRequestPlatformAws +> = z.enum(SyncReconcileRequestPlatformAws); -export type ResourceCollectionIssue = { - message: string; - reason: ResourceReason; - severity: ResourceSeverity; - source: string; +/** @internal */ +export type SyncReconcileRequestEnvironmentInfoAws$Outbound = { + accountId: string; + region: string; + platform: string; }; -export type Counts = { - current?: number | null | undefined; - desired?: number | null | undefined; - ready?: number | null | undefined; -}; +/** @internal */ +export const SyncReconcileRequestEnvironmentInfoAws$outboundSchema: z.ZodType< + SyncReconcileRequestEnvironmentInfoAws$Outbound, + SyncReconcileRequestEnvironmentInfoAws +> = z.object({ + accountId: z.string(), + region: z.string(), + platform: SyncReconcileRequestPlatformAws$outboundSchema, +}); -export type CountsUnion = Counts | any; +export function syncReconcileRequestEnvironmentInfoAwsToJSON( + syncReconcileRequestEnvironmentInfoAws: + SyncReconcileRequestEnvironmentInfoAws, +): string { + return JSON.stringify( + SyncReconcileRequestEnvironmentInfoAws$outboundSchema.parse( + syncReconcileRequestEnvironmentInfoAws, + ), + ); +} -export const ResourceHealth = { - Unknown: "unknown", - Healthy: "healthy", - Degraded: "degraded", - Unhealthy: "unhealthy", -} as const; -export type ResourceHealth = ClosedEnum; +/** @internal */ +export type SyncReconcileRequestEnvironmentInfoUnion$Outbound = + | SyncReconcileRequestEnvironmentInfoGcp$Outbound + | SyncReconcileRequestEnvironmentInfoAzure$Outbound + | SyncReconcileRequestEnvironmentInfoLocal$Outbound + | SyncReconcileRequestEnvironmentInfoAws$Outbound + | SyncReconcileRequestEnvironmentInfoTest$Outbound + | any; -export const ResourceLifecycle = { - Unknown: "unknown", - Creating: "creating", - Updating: "updating", - Running: "running", - Scaling: "scaling", - Stopping: "stopping", - Stopped: "stopped", - Deleting: "deleting", - Deleted: "deleted", - Failed: "failed", -} as const; -export type ResourceLifecycle = ClosedEnum; +/** @internal */ +export const SyncReconcileRequestEnvironmentInfoUnion$outboundSchema: z.ZodType< + SyncReconcileRequestEnvironmentInfoUnion$Outbound, + SyncReconcileRequestEnvironmentInfoUnion +> = z.union([ + z.lazy(() => SyncReconcileRequestEnvironmentInfoGcp$outboundSchema), + z.lazy(() => SyncReconcileRequestEnvironmentInfoAzure$outboundSchema), + z.lazy(() => SyncReconcileRequestEnvironmentInfoLocal$outboundSchema), + z.lazy(() => SyncReconcileRequestEnvironmentInfoAws$outboundSchema), + z.lazy(() => SyncReconcileRequestEnvironmentInfoTest$outboundSchema), + z.any(), +]); -export const ResourceFormat = { - Json: "json", - Yaml: "yaml", - Text: "text", -} as const; -export type ResourceFormat = ClosedEnum; +export function syncReconcileRequestEnvironmentInfoUnionToJSON( + syncReconcileRequestEnvironmentInfoUnion: + SyncReconcileRequestEnvironmentInfoUnion, +): string { + return JSON.stringify( + SyncReconcileRequestEnvironmentInfoUnion$outboundSchema.parse( + syncReconcileRequestEnvironmentInfoUnion, + ), + ); +} -export type ResourceRaw = { - body: string; - collectedAt: Date; - format: ResourceFormat; - source: string; - truncated: boolean; +/** @internal */ +export type SyncReconcileRequestError$Outbound = { + code: string; + context?: any | null | undefined; + hint?: string | null | undefined; + httpStatusCode?: number | null | undefined; + internal: boolean; + message: string; + retryable: boolean; + source?: any | null | undefined; }; -export type ResourceTypeHint = string | any; +/** @internal */ +export const SyncReconcileRequestError$outboundSchema: z.ZodType< + SyncReconcileRequestError$Outbound, + SyncReconcileRequestError +> = z.object({ + code: z.string(), + context: z.nullable(z.any()).optional(), + hint: z.nullable(z.string()).optional(), + httpStatusCode: z.nullable(z.int()).optional(), + internal: z.boolean(), + message: z.string(), + retryable: z.boolean().default(false), + source: z.nullable(z.any()).optional(), +}); -export type ObservedInventoryBatchResource = { - alienResourceId?: string | null | undefined; - attributes?: { [k: string]: any | null } | undefined; - collectionIssues?: Array | undefined; - counts?: Counts | any | null | undefined; - deploymentId?: string | null | undefined; - displayName: string; - health: ResourceHealth; - labels?: { [k: string]: string } | undefined; - lifecycle: ResourceLifecycle; - message?: string | null | undefined; - namespace?: string | null | undefined; - partial: boolean; - /** - * Provider-native kind, such as `apps/v1/Deployment`, - * - * @remarks - * `AWS::S3::Bucket`, `storage.googleapis.com/Bucket`, or an Azure - * resource type. - */ - providerKind: string; - providerStale: boolean; - raw?: Array | undefined; - /** - * Provider-native stable identity: Kubernetes object identity, cloud ARN, - * - * @remarks - * GCP full resource name, Azure resource id, etc. - */ - rawIdentity: string; - region?: string | null | undefined; - resourceTypeHint?: string | any | null | undefined; - scope?: string | null | undefined; - /** - * Release/version identity observed from the provider resource, when available. - */ - version?: string | null | undefined; -}; +export function syncReconcileRequestErrorToJSON( + syncReconcileRequestError: SyncReconcileRequestError, +): string { + return JSON.stringify( + SyncReconcileRequestError$outboundSchema.parse(syncReconcileRequestError), + ); +} -export type ObservedInventoryBatch = { - /** - * Backend whose observer produced this snapshot. - */ - backend: ObservedInventoryBatchBackend; - /** - * Whether this batch is a complete replacement for the scope. Complete - * - * @remarks - * batches tombstone previously observed rows in the same scope when they - * are absent from `resources`. - */ - complete: boolean; - /** - * Represents the target cloud platform. - */ - controllerPlatform: ObservedInventoryBatchControllerPlatform; - /** - * Stable scope for the provider list operation that produced this batch. - */ - inventoryScope: string; - /** - * Time the inventory scope was observed. - */ - observedAt: Date; - resources: Array; - /** - * Writer/source for this inventory pass, such as `operator` or - * - * @remarks - * `manager-observer`. - */ - sourceKind: string; -}; +/** @internal */ +export type SyncReconcileRequestErrorUnion$Outbound = + | SyncReconcileRequestError$Outbound + | any; -/** - * Request to reconcile deployment state - */ -export type SyncReconcileRequest = { - /** - * Deployment ID to reconcile state for - */ - deploymentId: string; - /** - * Lock session (push model only) - verifies lock ownership - */ - session?: string | undefined; - /** - * Complete deployment state after step() execution - */ - state: SyncReconcileRequestState; - /** - * Update heartbeat timestamp (for successful health checks) - */ - updateHeartbeat?: boolean | undefined; - /** - * Delay before this deployment should be acquired again. - */ - suggestedDelayMs?: number | undefined; - /** - * Latest typed resource heartbeats collected during this step. - */ - resourceHeartbeats?: Array | undefined; - /** - * Observed raw-resource inventory batches read during this step. - */ - observedInventoryBatches?: Array | undefined; - /** - * Operator-reported runtime capabilities. - */ - capabilities?: Array | undefined; - /** - * Operator binary version reported by the runtime. - */ - operatorVersion?: string | undefined; -}; +/** @internal */ +export const SyncReconcileRequestErrorUnion$outboundSchema: z.ZodType< + SyncReconcileRequestErrorUnion$Outbound, + SyncReconcileRequestErrorUnion +> = z.union([z.lazy(() => SyncReconcileRequestError$outboundSchema), z.any()]); + +export function syncReconcileRequestErrorUnionToJSON( + syncReconcileRequestErrorUnion: SyncReconcileRequestErrorUnion, +): string { + return JSON.stringify( + SyncReconcileRequestErrorUnion$outboundSchema.parse( + syncReconcileRequestErrorUnion, + ), + ); +} /** @internal */ -export const SyncReconcileRequestCurrentReleaseTypeStringList$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestCurrentReleaseTypeStringList, +export const SyncReconcileRequestPlatform$outboundSchema: z.ZodEnum< + typeof SyncReconcileRequestPlatform +> = z.enum(SyncReconcileRequestPlatform); + +/** @internal */ +export const SyncReconcileRequestInitialSetupAuthority$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestInitialSetupAuthority, ); /** @internal */ -export type SyncReconcileRequestCurrentReleaseDefaultStringList$Outbound = { - type: string; - value: Array; -}; +export const SyncReconcileRequestPendingPreparedStackTypeStringList$outboundSchema: + z.ZodEnum = z + .enum(SyncReconcileRequestPendingPreparedStackTypeStringList); /** @internal */ -export const SyncReconcileRequestCurrentReleaseDefaultStringList$outboundSchema: +export type SyncReconcileRequestPendingPreparedStackDefaultStringList$Outbound = + { + type: string; + value: Array; + }; + +/** @internal */ +export const SyncReconcileRequestPendingPreparedStackDefaultStringList$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseDefaultStringList$Outbound, - SyncReconcileRequestCurrentReleaseDefaultStringList + SyncReconcileRequestPendingPreparedStackDefaultStringList$Outbound, + SyncReconcileRequestPendingPreparedStackDefaultStringList > = z.object({ - type: SyncReconcileRequestCurrentReleaseTypeStringList$outboundSchema, + type: SyncReconcileRequestPendingPreparedStackTypeStringList$outboundSchema, value: z.array(z.string()), }); -export function syncReconcileRequestCurrentReleaseDefaultStringListToJSON( - syncReconcileRequestCurrentReleaseDefaultStringList: - SyncReconcileRequestCurrentReleaseDefaultStringList, +export function syncReconcileRequestPendingPreparedStackDefaultStringListToJSON( + syncReconcileRequestPendingPreparedStackDefaultStringList: + SyncReconcileRequestPendingPreparedStackDefaultStringList, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseDefaultStringList$outboundSchema.parse( - syncReconcileRequestCurrentReleaseDefaultStringList, - ), + SyncReconcileRequestPendingPreparedStackDefaultStringList$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackDefaultStringList), ); } /** @internal */ -export const SyncReconcileRequestCurrentReleaseTypeBoolean$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestCurrentReleaseTypeBoolean, - ); +export const SyncReconcileRequestPendingPreparedStackTypeBoolean$outboundSchema: + z.ZodEnum = z + .enum(SyncReconcileRequestPendingPreparedStackTypeBoolean); /** @internal */ -export type SyncReconcileRequestCurrentReleaseDefaultBoolean$Outbound = { +export type SyncReconcileRequestPendingPreparedStackDefaultBoolean$Outbound = { type: string; value: boolean; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseDefaultBoolean$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackDefaultBoolean$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseDefaultBoolean$Outbound, - SyncReconcileRequestCurrentReleaseDefaultBoolean + SyncReconcileRequestPendingPreparedStackDefaultBoolean$Outbound, + SyncReconcileRequestPendingPreparedStackDefaultBoolean > = z.object({ - type: SyncReconcileRequestCurrentReleaseTypeBoolean$outboundSchema, + type: SyncReconcileRequestPendingPreparedStackTypeBoolean$outboundSchema, value: z.boolean(), }); -export function syncReconcileRequestCurrentReleaseDefaultBooleanToJSON( - syncReconcileRequestCurrentReleaseDefaultBoolean: - SyncReconcileRequestCurrentReleaseDefaultBoolean, +export function syncReconcileRequestPendingPreparedStackDefaultBooleanToJSON( + syncReconcileRequestPendingPreparedStackDefaultBoolean: + SyncReconcileRequestPendingPreparedStackDefaultBoolean, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseDefaultBoolean$outboundSchema.parse( - syncReconcileRequestCurrentReleaseDefaultBoolean, + SyncReconcileRequestPendingPreparedStackDefaultBoolean$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackDefaultBoolean, ), ); } /** @internal */ -export const SyncReconcileRequestCurrentReleaseTypeNumber$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestCurrentReleaseTypeNumber, +export const SyncReconcileRequestPendingPreparedStackTypeNumber$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestPendingPreparedStackTypeNumber, ); /** @internal */ -export type SyncReconcileRequestCurrentReleaseDefaultNumber$Outbound = { +export type SyncReconcileRequestPendingPreparedStackDefaultNumber$Outbound = { type: string; value: string; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseDefaultNumber$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackDefaultNumber$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseDefaultNumber$Outbound, - SyncReconcileRequestCurrentReleaseDefaultNumber + SyncReconcileRequestPendingPreparedStackDefaultNumber$Outbound, + SyncReconcileRequestPendingPreparedStackDefaultNumber > = z.object({ - type: SyncReconcileRequestCurrentReleaseTypeNumber$outboundSchema, + type: SyncReconcileRequestPendingPreparedStackTypeNumber$outboundSchema, value: z.string(), }); -export function syncReconcileRequestCurrentReleaseDefaultNumberToJSON( - syncReconcileRequestCurrentReleaseDefaultNumber: - SyncReconcileRequestCurrentReleaseDefaultNumber, +export function syncReconcileRequestPendingPreparedStackDefaultNumberToJSON( + syncReconcileRequestPendingPreparedStackDefaultNumber: + SyncReconcileRequestPendingPreparedStackDefaultNumber, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseDefaultNumber$outboundSchema.parse( - syncReconcileRequestCurrentReleaseDefaultNumber, + SyncReconcileRequestPendingPreparedStackDefaultNumber$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackDefaultNumber, ), ); } /** @internal */ -export const SyncReconcileRequestCurrentReleaseTypeString$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestCurrentReleaseTypeString, +export const SyncReconcileRequestPendingPreparedStackTypeString$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestPendingPreparedStackTypeString, ); /** @internal */ -export type SyncReconcileRequestCurrentReleaseDefaultString$Outbound = { +export type SyncReconcileRequestPendingPreparedStackDefaultString$Outbound = { type: string; value: string; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseDefaultString$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackDefaultString$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseDefaultString$Outbound, - SyncReconcileRequestCurrentReleaseDefaultString + SyncReconcileRequestPendingPreparedStackDefaultString$Outbound, + SyncReconcileRequestPendingPreparedStackDefaultString > = z.object({ - type: SyncReconcileRequestCurrentReleaseTypeString$outboundSchema, + type: SyncReconcileRequestPendingPreparedStackTypeString$outboundSchema, value: z.string(), }); -export function syncReconcileRequestCurrentReleaseDefaultStringToJSON( - syncReconcileRequestCurrentReleaseDefaultString: - SyncReconcileRequestCurrentReleaseDefaultString, +export function syncReconcileRequestPendingPreparedStackDefaultStringToJSON( + syncReconcileRequestPendingPreparedStackDefaultString: + SyncReconcileRequestPendingPreparedStackDefaultString, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseDefaultString$outboundSchema.parse( - syncReconcileRequestCurrentReleaseDefaultString, + SyncReconcileRequestPendingPreparedStackDefaultString$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackDefaultString, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseDefaultUnion$Outbound = - | SyncReconcileRequestCurrentReleaseDefaultString$Outbound - | SyncReconcileRequestCurrentReleaseDefaultNumber$Outbound - | SyncReconcileRequestCurrentReleaseDefaultBoolean$Outbound - | SyncReconcileRequestCurrentReleaseDefaultStringList$Outbound +export type SyncReconcileRequestPendingPreparedStackDefaultUnion$Outbound = + | SyncReconcileRequestPendingPreparedStackDefaultString$Outbound + | SyncReconcileRequestPendingPreparedStackDefaultNumber$Outbound + | SyncReconcileRequestPendingPreparedStackDefaultBoolean$Outbound + | SyncReconcileRequestPendingPreparedStackDefaultStringList$Outbound | any; /** @internal */ -export const SyncReconcileRequestCurrentReleaseDefaultUnion$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackDefaultUnion$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseDefaultUnion$Outbound, - SyncReconcileRequestCurrentReleaseDefaultUnion + SyncReconcileRequestPendingPreparedStackDefaultUnion$Outbound, + SyncReconcileRequestPendingPreparedStackDefaultUnion > = z.union([ z.lazy(() => - SyncReconcileRequestCurrentReleaseDefaultString$outboundSchema + SyncReconcileRequestPendingPreparedStackDefaultString$outboundSchema ), z.lazy(() => - SyncReconcileRequestCurrentReleaseDefaultNumber$outboundSchema + SyncReconcileRequestPendingPreparedStackDefaultNumber$outboundSchema ), z.lazy(() => - SyncReconcileRequestCurrentReleaseDefaultBoolean$outboundSchema + SyncReconcileRequestPendingPreparedStackDefaultBoolean$outboundSchema ), z.lazy(() => - SyncReconcileRequestCurrentReleaseDefaultStringList$outboundSchema + SyncReconcileRequestPendingPreparedStackDefaultStringList$outboundSchema ), z.any(), ]); -export function syncReconcileRequestCurrentReleaseDefaultUnionToJSON( - syncReconcileRequestCurrentReleaseDefaultUnion: - SyncReconcileRequestCurrentReleaseDefaultUnion, +export function syncReconcileRequestPendingPreparedStackDefaultUnionToJSON( + syncReconcileRequestPendingPreparedStackDefaultUnion: + SyncReconcileRequestPendingPreparedStackDefaultUnion, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseDefaultUnion$outboundSchema.parse( - syncReconcileRequestCurrentReleaseDefaultUnion, + SyncReconcileRequestPendingPreparedStackDefaultUnion$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackDefaultUnion, ), ); } /** @internal */ -export const SyncReconcileRequestCurrentReleaseTypeEnvEnum$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestCurrentReleaseTypeEnvEnum, - ); +export const SyncReconcileRequestPendingPreparedStackTypeEnvEnum$outboundSchema: + z.ZodEnum = z + .enum(SyncReconcileRequestPendingPreparedStackTypeEnvEnum); /** @internal */ -export type SyncReconcileRequestCurrentReleaseTypeUnion$Outbound = string | any; +export type SyncReconcileRequestPendingPreparedStackTypeUnion$Outbound = + | string + | any; /** @internal */ -export const SyncReconcileRequestCurrentReleaseTypeUnion$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackTypeUnion$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseTypeUnion$Outbound, - SyncReconcileRequestCurrentReleaseTypeUnion + SyncReconcileRequestPendingPreparedStackTypeUnion$Outbound, + SyncReconcileRequestPendingPreparedStackTypeUnion > = z.union([ - SyncReconcileRequestCurrentReleaseTypeEnvEnum$outboundSchema, + SyncReconcileRequestPendingPreparedStackTypeEnvEnum$outboundSchema, z.any(), ]); -export function syncReconcileRequestCurrentReleaseTypeUnionToJSON( - syncReconcileRequestCurrentReleaseTypeUnion: - SyncReconcileRequestCurrentReleaseTypeUnion, +export function syncReconcileRequestPendingPreparedStackTypeUnionToJSON( + syncReconcileRequestPendingPreparedStackTypeUnion: + SyncReconcileRequestPendingPreparedStackTypeUnion, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseTypeUnion$outboundSchema.parse( - syncReconcileRequestCurrentReleaseTypeUnion, + SyncReconcileRequestPendingPreparedStackTypeUnion$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackTypeUnion, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseEnv$Outbound = { +export type SyncReconcileRequestPendingPreparedStackEnv$Outbound = { name: string; targetResources?: Array | null | undefined; type?: string | any | null | undefined; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseEnv$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseEnv$Outbound, - SyncReconcileRequestCurrentReleaseEnv -> = z.object({ - name: z.string(), - targetResources: z.nullable(z.array(z.string())).optional(), - type: z.nullable( - z.union([ - SyncReconcileRequestCurrentReleaseTypeEnvEnum$outboundSchema, - z.any(), - ]), - ).optional(), -}); +export const SyncReconcileRequestPendingPreparedStackEnv$outboundSchema: + z.ZodType< + SyncReconcileRequestPendingPreparedStackEnv$Outbound, + SyncReconcileRequestPendingPreparedStackEnv + > = z.object({ + name: z.string(), + targetResources: z.nullable(z.array(z.string())).optional(), + type: z.nullable( + z.union([ + SyncReconcileRequestPendingPreparedStackTypeEnvEnum$outboundSchema, + z.any(), + ]), + ).optional(), + }); -export function syncReconcileRequestCurrentReleaseEnvToJSON( - syncReconcileRequestCurrentReleaseEnv: SyncReconcileRequestCurrentReleaseEnv, +export function syncReconcileRequestPendingPreparedStackEnvToJSON( + syncReconcileRequestPendingPreparedStackEnv: + SyncReconcileRequestPendingPreparedStackEnv, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseEnv$outboundSchema.parse( - syncReconcileRequestCurrentReleaseEnv, + SyncReconcileRequestPendingPreparedStackEnv$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackEnv, ), ); } /** @internal */ -export const CurrentReleaseStateKind$outboundSchema: z.ZodEnum< - typeof CurrentReleaseStateKind -> = z.enum(CurrentReleaseStateKind); +export const PendingPreparedStackStateKind$outboundSchema: z.ZodEnum< + typeof PendingPreparedStackStateKind +> = z.enum(PendingPreparedStackStateKind); /** @internal */ -export const SyncReconcileRequestCurrentReleasePlatform$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestCurrentReleasePlatform, +export const SyncReconcileRequestPendingPreparedStackPlatform$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestPendingPreparedStackPlatform, ); /** @internal */ -export const SyncReconcileRequestCurrentReleaseProvidedBy$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestCurrentReleaseProvidedBy, +export const SyncReconcileRequestPendingPreparedStackProvidedBy$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestPendingPreparedStackProvidedBy, ); /** @internal */ -export type SyncReconcileRequestCurrentReleaseValidation$Outbound = { +export type SyncReconcileRequestPendingPreparedStackValidation$Outbound = { format?: string | null | undefined; max?: string | null | undefined; maxItems?: number | null | undefined; @@ -12747,10 +18249,10 @@ export type SyncReconcileRequestCurrentReleaseValidation$Outbound = { }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseValidation$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackValidation$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseValidation$Outbound, - SyncReconcileRequestCurrentReleaseValidation + SyncReconcileRequestPendingPreparedStackValidation$Outbound, + SyncReconcileRequestPendingPreparedStackValidation > = z.object({ format: z.nullable(z.string()).optional(), max: z.nullable(z.string()).optional(), @@ -12763,168 +18265,174 @@ export const SyncReconcileRequestCurrentReleaseValidation$outboundSchema: values: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileRequestCurrentReleaseValidationToJSON( - syncReconcileRequestCurrentReleaseValidation: - SyncReconcileRequestCurrentReleaseValidation, +export function syncReconcileRequestPendingPreparedStackValidationToJSON( + syncReconcileRequestPendingPreparedStackValidation: + SyncReconcileRequestPendingPreparedStackValidation, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseValidation$outboundSchema.parse( - syncReconcileRequestCurrentReleaseValidation, + SyncReconcileRequestPendingPreparedStackValidation$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackValidation, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseValidationUnion$Outbound = - | SyncReconcileRequestCurrentReleaseValidation$Outbound +export type SyncReconcileRequestPendingPreparedStackValidationUnion$Outbound = + | SyncReconcileRequestPendingPreparedStackValidation$Outbound | any; /** @internal */ -export const SyncReconcileRequestCurrentReleaseValidationUnion$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackValidationUnion$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseValidationUnion$Outbound, - SyncReconcileRequestCurrentReleaseValidationUnion + SyncReconcileRequestPendingPreparedStackValidationUnion$Outbound, + SyncReconcileRequestPendingPreparedStackValidationUnion > = z.union([ - z.lazy(() => SyncReconcileRequestCurrentReleaseValidation$outboundSchema), - z.any(), - ]); - -export function syncReconcileRequestCurrentReleaseValidationUnionToJSON( - syncReconcileRequestCurrentReleaseValidationUnion: - SyncReconcileRequestCurrentReleaseValidationUnion, -): string { - return JSON.stringify( - SyncReconcileRequestCurrentReleaseValidationUnion$outboundSchema.parse( - syncReconcileRequestCurrentReleaseValidationUnion, - ), - ); -} - -/** @internal */ -export type SyncReconcileRequestCurrentReleaseInput$Outbound = { - default?: - | SyncReconcileRequestCurrentReleaseDefaultString$Outbound - | SyncReconcileRequestCurrentReleaseDefaultNumber$Outbound - | SyncReconcileRequestCurrentReleaseDefaultBoolean$Outbound - | SyncReconcileRequestCurrentReleaseDefaultStringList$Outbound - | any - | null - | undefined; - description: string; - env?: Array | undefined; - id: string; - kind: string; - label: string; - placeholder?: string | null | undefined; - platforms?: Array | null | undefined; - providedBy: Array; - required: boolean; - validation?: - | SyncReconcileRequestCurrentReleaseValidation$Outbound - | any - | null - | undefined; -}; - -/** @internal */ -export const SyncReconcileRequestCurrentReleaseInput$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseInput$Outbound, - SyncReconcileRequestCurrentReleaseInput -> = z.object({ - default: z.nullable( - z.union([ - z.lazy(() => - SyncReconcileRequestCurrentReleaseDefaultString$outboundSchema - ), - z.lazy(() => - SyncReconcileRequestCurrentReleaseDefaultNumber$outboundSchema - ), - z.lazy(() => - SyncReconcileRequestCurrentReleaseDefaultBoolean$outboundSchema - ), - z.lazy(() => - SyncReconcileRequestCurrentReleaseDefaultStringList$outboundSchema - ), - z.any(), - ]), - ).optional(), - description: z.string(), - env: z.array( - z.lazy(() => SyncReconcileRequestCurrentReleaseEnv$outboundSchema), - ).optional(), - id: z.string(), - kind: CurrentReleaseStateKind$outboundSchema, - label: z.string(), - placeholder: z.nullable(z.string()).optional(), - platforms: z.nullable( - z.array(SyncReconcileRequestCurrentReleasePlatform$outboundSchema), - ).optional(), - providedBy: z.array( - SyncReconcileRequestCurrentReleaseProvidedBy$outboundSchema, - ), - required: z.boolean(), - validation: z.nullable( - z.union([ - z.lazy(() => SyncReconcileRequestCurrentReleaseValidation$outboundSchema), - z.any(), - ]), - ).optional(), -}); + z.lazy(() => + SyncReconcileRequestPendingPreparedStackValidation$outboundSchema + ), + z.any(), + ]); -export function syncReconcileRequestCurrentReleaseInputToJSON( - syncReconcileRequestCurrentReleaseInput: - SyncReconcileRequestCurrentReleaseInput, +export function syncReconcileRequestPendingPreparedStackValidationUnionToJSON( + syncReconcileRequestPendingPreparedStackValidationUnion: + SyncReconcileRequestPendingPreparedStackValidationUnion, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseInput$outboundSchema.parse( - syncReconcileRequestCurrentReleaseInput, - ), + SyncReconcileRequestPendingPreparedStackValidationUnion$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackValidationUnion), ); } /** @internal */ -export const SyncReconcileRequestCurrentReleaseManagementEnum$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestCurrentReleaseManagementEnum, +export type SyncReconcileRequestPendingPreparedStackInput$Outbound = { + default?: + | SyncReconcileRequestPendingPreparedStackDefaultString$Outbound + | SyncReconcileRequestPendingPreparedStackDefaultNumber$Outbound + | SyncReconcileRequestPendingPreparedStackDefaultBoolean$Outbound + | SyncReconcileRequestPendingPreparedStackDefaultStringList$Outbound + | any + | null + | undefined; + description: string; + env?: Array | undefined; + id: string; + kind: string; + label: string; + placeholder?: string | null | undefined; + platforms?: Array | null | undefined; + providedBy: Array; + required: boolean; + validation?: + | SyncReconcileRequestPendingPreparedStackValidation$Outbound + | any + | null + | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestPendingPreparedStackInput$outboundSchema: + z.ZodType< + SyncReconcileRequestPendingPreparedStackInput$Outbound, + SyncReconcileRequestPendingPreparedStackInput + > = z.object({ + default: z.nullable( + z.union([ + z.lazy(() => + SyncReconcileRequestPendingPreparedStackDefaultString$outboundSchema + ), + z.lazy(() => + SyncReconcileRequestPendingPreparedStackDefaultNumber$outboundSchema + ), + z.lazy(() => + SyncReconcileRequestPendingPreparedStackDefaultBoolean$outboundSchema + ), + z.lazy(() => + SyncReconcileRequestPendingPreparedStackDefaultStringList$outboundSchema + ), + z.any(), + ]), + ).optional(), + description: z.string(), + env: z.array( + z.lazy(() => SyncReconcileRequestPendingPreparedStackEnv$outboundSchema), + ).optional(), + id: z.string(), + kind: PendingPreparedStackStateKind$outboundSchema, + label: z.string(), + placeholder: z.nullable(z.string()).optional(), + platforms: z.nullable( + z.array(SyncReconcileRequestPendingPreparedStackPlatform$outboundSchema), + ).optional(), + providedBy: z.array( + SyncReconcileRequestPendingPreparedStackProvidedBy$outboundSchema, + ), + required: z.boolean(), + validation: z.nullable( + z.union([ + z.lazy(() => + SyncReconcileRequestPendingPreparedStackValidation$outboundSchema + ), + z.any(), + ]), + ).optional(), + }); + +export function syncReconcileRequestPendingPreparedStackInputToJSON( + syncReconcileRequestPendingPreparedStackInput: + SyncReconcileRequestPendingPreparedStackInput, +): string { + return JSON.stringify( + SyncReconcileRequestPendingPreparedStackInput$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackInput, + ), ); +} /** @internal */ -export type CurrentReleaseOverrideStateAwResource$Outbound = { +export const SyncReconcileRequestPendingPreparedStackManagementEnum$outboundSchema: + z.ZodEnum = z + .enum(SyncReconcileRequestPendingPreparedStackManagementEnum); + +/** @internal */ +export type PendingPreparedStackOverrideStateAwResource$Outbound = { condition?: { [k: string]: { [k: string]: string } } | null | undefined; resources: Array; }; /** @internal */ -export const CurrentReleaseOverrideStateAwResource$outboundSchema: z.ZodType< - CurrentReleaseOverrideStateAwResource$Outbound, - CurrentReleaseOverrideStateAwResource -> = z.object({ - condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) - .optional(), - resources: z.array(z.string()), -}); +export const PendingPreparedStackOverrideStateAwResource$outboundSchema: + z.ZodType< + PendingPreparedStackOverrideStateAwResource$Outbound, + PendingPreparedStackOverrideStateAwResource + > = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function currentReleaseOverrideStateAwResourceToJSON( - currentReleaseOverrideStateAwResource: CurrentReleaseOverrideStateAwResource, +export function pendingPreparedStackOverrideStateAwResourceToJSON( + pendingPreparedStackOverrideStateAwResource: + PendingPreparedStackOverrideStateAwResource, ): string { return JSON.stringify( - CurrentReleaseOverrideStateAwResource$outboundSchema.parse( - currentReleaseOverrideStateAwResource, + PendingPreparedStackOverrideStateAwResource$outboundSchema.parse( + pendingPreparedStackOverrideStateAwResource, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseOverrideAwStack$Outbound = { +export type SyncReconcileRequestPendingPreparedStackOverrideAwStack$Outbound = { condition?: { [k: string]: { [k: string]: string } } | null | undefined; resources: Array; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseOverrideAwStack$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackOverrideAwStack$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseOverrideAwStack$Outbound, - SyncReconcileRequestCurrentReleaseOverrideAwStack + SyncReconcileRequestPendingPreparedStackOverrideAwStack$Outbound, + SyncReconcileRequestPendingPreparedStackOverrideAwStack > = z.object({ condition: z.nullable( z.record(z.string(), z.record(z.string(), z.string())), @@ -12932,57 +18440,56 @@ export const SyncReconcileRequestCurrentReleaseOverrideAwStack$outboundSchema: resources: z.array(z.string()), }); -export function syncReconcileRequestCurrentReleaseOverrideAwStackToJSON( - syncReconcileRequestCurrentReleaseOverrideAwStack: - SyncReconcileRequestCurrentReleaseOverrideAwStack, +export function syncReconcileRequestPendingPreparedStackOverrideAwStackToJSON( + syncReconcileRequestPendingPreparedStackOverrideAwStack: + SyncReconcileRequestPendingPreparedStackOverrideAwStack, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseOverrideAwStack$outboundSchema.parse( - syncReconcileRequestCurrentReleaseOverrideAwStack, - ), + SyncReconcileRequestPendingPreparedStackOverrideAwStack$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackOverrideAwStack), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseOverrideAwBinding$Outbound = { - resource?: CurrentReleaseOverrideStateAwResource$Outbound | undefined; - stack?: - | SyncReconcileRequestCurrentReleaseOverrideAwStack$Outbound - | undefined; -}; +export type SyncReconcileRequestPendingPreparedStackOverrideAwBinding$Outbound = + { + resource?: PendingPreparedStackOverrideStateAwResource$Outbound | undefined; + stack?: + | SyncReconcileRequestPendingPreparedStackOverrideAwStack$Outbound + | undefined; + }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseOverrideAwBinding$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackOverrideAwBinding$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseOverrideAwBinding$Outbound, - SyncReconcileRequestCurrentReleaseOverrideAwBinding + SyncReconcileRequestPendingPreparedStackOverrideAwBinding$Outbound, + SyncReconcileRequestPendingPreparedStackOverrideAwBinding > = z.object({ - resource: z.lazy(() => CurrentReleaseOverrideStateAwResource$outboundSchema) - .optional(), + resource: z.lazy(() => + PendingPreparedStackOverrideStateAwResource$outboundSchema + ).optional(), stack: z.lazy(() => - SyncReconcileRequestCurrentReleaseOverrideAwStack$outboundSchema + SyncReconcileRequestPendingPreparedStackOverrideAwStack$outboundSchema ).optional(), }); -export function syncReconcileRequestCurrentReleaseOverrideAwBindingToJSON( - syncReconcileRequestCurrentReleaseOverrideAwBinding: - SyncReconcileRequestCurrentReleaseOverrideAwBinding, +export function syncReconcileRequestPendingPreparedStackOverrideAwBindingToJSON( + syncReconcileRequestPendingPreparedStackOverrideAwBinding: + SyncReconcileRequestPendingPreparedStackOverrideAwBinding, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseOverrideAwBinding$outboundSchema.parse( - syncReconcileRequestCurrentReleaseOverrideAwBinding, - ), + SyncReconcileRequestPendingPreparedStackOverrideAwBinding$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackOverrideAwBinding), ); } /** @internal */ -export const SyncReconcileRequestCurrentReleaseOverrideEffect$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestCurrentReleaseOverrideEffect, - ); +export const SyncReconcileRequestPendingPreparedStackOverrideEffect$outboundSchema: + z.ZodEnum = z + .enum(SyncReconcileRequestPendingPreparedStackOverrideEffect); /** @internal */ -export type SyncReconcileRequestCurrentReleaseOverrideAwGrant$Outbound = { +export type SyncReconcileRequestPendingPreparedStackOverrideAwGrant$Outbound = { actions?: Array | null | undefined; dataActions?: Array | null | undefined; permissions?: Array | null | undefined; @@ -12991,10 +18498,10 @@ export type SyncReconcileRequestCurrentReleaseOverrideAwGrant$Outbound = { }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseOverrideAwGrant$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackOverrideAwGrant$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseOverrideAwGrant$Outbound, - SyncReconcileRequestCurrentReleaseOverrideAwGrant + SyncReconcileRequestPendingPreparedStackOverrideAwGrant$Outbound, + SyncReconcileRequestPendingPreparedStackOverrideAwGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -13003,151 +18510,155 @@ export const SyncReconcileRequestCurrentReleaseOverrideAwGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileRequestCurrentReleaseOverrideAwGrantToJSON( - syncReconcileRequestCurrentReleaseOverrideAwGrant: - SyncReconcileRequestCurrentReleaseOverrideAwGrant, +export function syncReconcileRequestPendingPreparedStackOverrideAwGrantToJSON( + syncReconcileRequestPendingPreparedStackOverrideAwGrant: + SyncReconcileRequestPendingPreparedStackOverrideAwGrant, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseOverrideAwGrant$outboundSchema.parse( - syncReconcileRequestCurrentReleaseOverrideAwGrant, - ), + SyncReconcileRequestPendingPreparedStackOverrideAwGrant$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackOverrideAwGrant), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseOverrideAw$Outbound = { - binding: SyncReconcileRequestCurrentReleaseOverrideAwBinding$Outbound; +export type SyncReconcileRequestPendingPreparedStackOverrideAw$Outbound = { + binding: SyncReconcileRequestPendingPreparedStackOverrideAwBinding$Outbound; description?: string | null | undefined; effect?: string | undefined; - grant: SyncReconcileRequestCurrentReleaseOverrideAwGrant$Outbound; + grant: SyncReconcileRequestPendingPreparedStackOverrideAwGrant$Outbound; label?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseOverrideAw$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackOverrideAw$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseOverrideAw$Outbound, - SyncReconcileRequestCurrentReleaseOverrideAw + SyncReconcileRequestPendingPreparedStackOverrideAw$Outbound, + SyncReconcileRequestPendingPreparedStackOverrideAw > = z.object({ binding: z.lazy(() => - SyncReconcileRequestCurrentReleaseOverrideAwBinding$outboundSchema + SyncReconcileRequestPendingPreparedStackOverrideAwBinding$outboundSchema ), description: z.nullable(z.string()).optional(), - effect: SyncReconcileRequestCurrentReleaseOverrideEffect$outboundSchema - .optional(), + effect: + SyncReconcileRequestPendingPreparedStackOverrideEffect$outboundSchema + .optional(), grant: z.lazy(() => - SyncReconcileRequestCurrentReleaseOverrideAwGrant$outboundSchema + SyncReconcileRequestPendingPreparedStackOverrideAwGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestCurrentReleaseOverrideAwToJSON( - syncReconcileRequestCurrentReleaseOverrideAw: - SyncReconcileRequestCurrentReleaseOverrideAw, +export function syncReconcileRequestPendingPreparedStackOverrideAwToJSON( + syncReconcileRequestPendingPreparedStackOverrideAw: + SyncReconcileRequestPendingPreparedStackOverrideAw, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseOverrideAw$outboundSchema.parse( - syncReconcileRequestCurrentReleaseOverrideAw, + SyncReconcileRequestPendingPreparedStackOverrideAw$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackOverrideAw, ), ); } /** @internal */ -export type CurrentReleaseOverrideStateAzureResource$Outbound = { +export type PendingPreparedStackOverrideStateAzureResource$Outbound = { scope: string; }; /** @internal */ -export const CurrentReleaseOverrideStateAzureResource$outboundSchema: z.ZodType< - CurrentReleaseOverrideStateAzureResource$Outbound, - CurrentReleaseOverrideStateAzureResource -> = z.object({ - scope: z.string(), -}); +export const PendingPreparedStackOverrideStateAzureResource$outboundSchema: + z.ZodType< + PendingPreparedStackOverrideStateAzureResource$Outbound, + PendingPreparedStackOverrideStateAzureResource + > = z.object({ + scope: z.string(), + }); -export function currentReleaseOverrideStateAzureResourceToJSON( - currentReleaseOverrideStateAzureResource: - CurrentReleaseOverrideStateAzureResource, +export function pendingPreparedStackOverrideStateAzureResourceToJSON( + pendingPreparedStackOverrideStateAzureResource: + PendingPreparedStackOverrideStateAzureResource, ): string { return JSON.stringify( - CurrentReleaseOverrideStateAzureResource$outboundSchema.parse( - currentReleaseOverrideStateAzureResource, + PendingPreparedStackOverrideStateAzureResource$outboundSchema.parse( + pendingPreparedStackOverrideStateAzureResource, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseOverrideAzureStack$Outbound = { - scope: string; -}; +export type SyncReconcileRequestPendingPreparedStackOverrideAzureStack$Outbound = + { + scope: string; + }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseOverrideAzureStack$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackOverrideAzureStack$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseOverrideAzureStack$Outbound, - SyncReconcileRequestCurrentReleaseOverrideAzureStack + SyncReconcileRequestPendingPreparedStackOverrideAzureStack$Outbound, + SyncReconcileRequestPendingPreparedStackOverrideAzureStack > = z.object({ scope: z.string(), }); -export function syncReconcileRequestCurrentReleaseOverrideAzureStackToJSON( - syncReconcileRequestCurrentReleaseOverrideAzureStack: - SyncReconcileRequestCurrentReleaseOverrideAzureStack, +export function syncReconcileRequestPendingPreparedStackOverrideAzureStackToJSON( + syncReconcileRequestPendingPreparedStackOverrideAzureStack: + SyncReconcileRequestPendingPreparedStackOverrideAzureStack, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseOverrideAzureStack$outboundSchema.parse( - syncReconcileRequestCurrentReleaseOverrideAzureStack, - ), + SyncReconcileRequestPendingPreparedStackOverrideAzureStack$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackOverrideAzureStack), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseOverrideAzureBinding$Outbound = { - resource?: CurrentReleaseOverrideStateAzureResource$Outbound | undefined; - stack?: - | SyncReconcileRequestCurrentReleaseOverrideAzureStack$Outbound - | undefined; -}; +export type SyncReconcileRequestPendingPreparedStackOverrideAzureBinding$Outbound = + { + resource?: + | PendingPreparedStackOverrideStateAzureResource$Outbound + | undefined; + stack?: + | SyncReconcileRequestPendingPreparedStackOverrideAzureStack$Outbound + | undefined; + }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseOverrideAzureBinding$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackOverrideAzureBinding$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseOverrideAzureBinding$Outbound, - SyncReconcileRequestCurrentReleaseOverrideAzureBinding + SyncReconcileRequestPendingPreparedStackOverrideAzureBinding$Outbound, + SyncReconcileRequestPendingPreparedStackOverrideAzureBinding > = z.object({ resource: z.lazy(() => - CurrentReleaseOverrideStateAzureResource$outboundSchema + PendingPreparedStackOverrideStateAzureResource$outboundSchema ).optional(), stack: z.lazy(() => - SyncReconcileRequestCurrentReleaseOverrideAzureStack$outboundSchema + SyncReconcileRequestPendingPreparedStackOverrideAzureStack$outboundSchema ).optional(), }); -export function syncReconcileRequestCurrentReleaseOverrideAzureBindingToJSON( - syncReconcileRequestCurrentReleaseOverrideAzureBinding: - SyncReconcileRequestCurrentReleaseOverrideAzureBinding, +export function syncReconcileRequestPendingPreparedStackOverrideAzureBindingToJSON( + syncReconcileRequestPendingPreparedStackOverrideAzureBinding: + SyncReconcileRequestPendingPreparedStackOverrideAzureBinding, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseOverrideAzureBinding$outboundSchema.parse( - syncReconcileRequestCurrentReleaseOverrideAzureBinding, - ), + SyncReconcileRequestPendingPreparedStackOverrideAzureBinding$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackOverrideAzureBinding), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseOverrideAzureGrant$Outbound = { - actions?: Array | null | undefined; - dataActions?: Array | null | undefined; - permissions?: Array | null | undefined; - predefinedRoles?: Array | null | undefined; - residualPermissions?: Array | null | undefined; -}; +export type SyncReconcileRequestPendingPreparedStackOverrideAzureGrant$Outbound = + { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; + }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseOverrideAzureGrant$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackOverrideAzureGrant$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseOverrideAzureGrant$Outbound, - SyncReconcileRequestCurrentReleaseOverrideAzureGrant + SyncReconcileRequestPendingPreparedStackOverrideAzureGrant$Outbound, + SyncReconcileRequestPendingPreparedStackOverrideAzureGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -13156,109 +18667,110 @@ export const SyncReconcileRequestCurrentReleaseOverrideAzureGrant$outboundSchema residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileRequestCurrentReleaseOverrideAzureGrantToJSON( - syncReconcileRequestCurrentReleaseOverrideAzureGrant: - SyncReconcileRequestCurrentReleaseOverrideAzureGrant, +export function syncReconcileRequestPendingPreparedStackOverrideAzureGrantToJSON( + syncReconcileRequestPendingPreparedStackOverrideAzureGrant: + SyncReconcileRequestPendingPreparedStackOverrideAzureGrant, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseOverrideAzureGrant$outboundSchema.parse( - syncReconcileRequestCurrentReleaseOverrideAzureGrant, - ), + SyncReconcileRequestPendingPreparedStackOverrideAzureGrant$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackOverrideAzureGrant), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseOverrideAzure$Outbound = { - binding: SyncReconcileRequestCurrentReleaseOverrideAzureBinding$Outbound; +export type SyncReconcileRequestPendingPreparedStackOverrideAzure$Outbound = { + binding: + SyncReconcileRequestPendingPreparedStackOverrideAzureBinding$Outbound; description?: string | null | undefined; - grant: SyncReconcileRequestCurrentReleaseOverrideAzureGrant$Outbound; + grant: SyncReconcileRequestPendingPreparedStackOverrideAzureGrant$Outbound; label?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseOverrideAzure$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackOverrideAzure$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseOverrideAzure$Outbound, - SyncReconcileRequestCurrentReleaseOverrideAzure + SyncReconcileRequestPendingPreparedStackOverrideAzure$Outbound, + SyncReconcileRequestPendingPreparedStackOverrideAzure > = z.object({ binding: z.lazy(() => - SyncReconcileRequestCurrentReleaseOverrideAzureBinding$outboundSchema + SyncReconcileRequestPendingPreparedStackOverrideAzureBinding$outboundSchema ), description: z.nullable(z.string()).optional(), grant: z.lazy(() => - SyncReconcileRequestCurrentReleaseOverrideAzureGrant$outboundSchema + SyncReconcileRequestPendingPreparedStackOverrideAzureGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestCurrentReleaseOverrideAzureToJSON( - syncReconcileRequestCurrentReleaseOverrideAzure: - SyncReconcileRequestCurrentReleaseOverrideAzure, +export function syncReconcileRequestPendingPreparedStackOverrideAzureToJSON( + syncReconcileRequestPendingPreparedStackOverrideAzure: + SyncReconcileRequestPendingPreparedStackOverrideAzure, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseOverrideAzure$outboundSchema.parse( - syncReconcileRequestCurrentReleaseOverrideAzure, + SyncReconcileRequestPendingPreparedStackOverrideAzure$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackOverrideAzure, ), ); } /** @internal */ -export type CurrentReleaseOverrideConditionStateResource$Outbound = { +export type PendingPreparedStackOverrideConditionStateResource$Outbound = { expression: string; title: string; }; /** @internal */ -export const CurrentReleaseOverrideConditionStateResource$outboundSchema: +export const PendingPreparedStackOverrideConditionStateResource$outboundSchema: z.ZodType< - CurrentReleaseOverrideConditionStateResource$Outbound, - CurrentReleaseOverrideConditionStateResource + PendingPreparedStackOverrideConditionStateResource$Outbound, + PendingPreparedStackOverrideConditionStateResource > = z.object({ expression: z.string(), title: z.string(), }); -export function currentReleaseOverrideConditionStateResourceToJSON( - currentReleaseOverrideConditionStateResource: - CurrentReleaseOverrideConditionStateResource, +export function pendingPreparedStackOverrideConditionStateResourceToJSON( + pendingPreparedStackOverrideConditionStateResource: + PendingPreparedStackOverrideConditionStateResource, ): string { return JSON.stringify( - CurrentReleaseOverrideConditionStateResource$outboundSchema.parse( - currentReleaseOverrideConditionStateResource, + PendingPreparedStackOverrideConditionStateResource$outboundSchema.parse( + pendingPreparedStackOverrideConditionStateResource, ), ); } /** @internal */ -export type CurrentReleaseOverrideStateResourceConditionUnion$Outbound = - | CurrentReleaseOverrideConditionStateResource$Outbound +export type PendingPreparedStackOverrideStateResourceConditionUnion$Outbound = + | PendingPreparedStackOverrideConditionStateResource$Outbound | any; /** @internal */ -export const CurrentReleaseOverrideStateResourceConditionUnion$outboundSchema: +export const PendingPreparedStackOverrideStateResourceConditionUnion$outboundSchema: z.ZodType< - CurrentReleaseOverrideStateResourceConditionUnion$Outbound, - CurrentReleaseOverrideStateResourceConditionUnion + PendingPreparedStackOverrideStateResourceConditionUnion$Outbound, + PendingPreparedStackOverrideStateResourceConditionUnion > = z.union([ - z.lazy(() => CurrentReleaseOverrideConditionStateResource$outboundSchema), + z.lazy(() => + PendingPreparedStackOverrideConditionStateResource$outboundSchema + ), z.any(), ]); -export function currentReleaseOverrideStateResourceConditionUnionToJSON( - currentReleaseOverrideStateResourceConditionUnion: - CurrentReleaseOverrideStateResourceConditionUnion, +export function pendingPreparedStackOverrideStateResourceConditionUnionToJSON( + pendingPreparedStackOverrideStateResourceConditionUnion: + PendingPreparedStackOverrideStateResourceConditionUnion, ): string { return JSON.stringify( - CurrentReleaseOverrideStateResourceConditionUnion$outboundSchema.parse( - currentReleaseOverrideStateResourceConditionUnion, - ), + PendingPreparedStackOverrideStateResourceConditionUnion$outboundSchema + .parse(pendingPreparedStackOverrideStateResourceConditionUnion), ); } /** @internal */ -export type CurrentReleaseOverrideStateGcpResource$Outbound = { +export type PendingPreparedStackOverrideStateGcpResource$Outbound = { condition?: - | CurrentReleaseOverrideConditionStateResource$Outbound + | PendingPreparedStackOverrideConditionStateResource$Outbound | any | null | undefined; @@ -13266,164 +18778,176 @@ export type CurrentReleaseOverrideStateGcpResource$Outbound = { }; /** @internal */ -export const CurrentReleaseOverrideStateGcpResource$outboundSchema: z.ZodType< - CurrentReleaseOverrideStateGcpResource$Outbound, - CurrentReleaseOverrideStateGcpResource -> = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => CurrentReleaseOverrideConditionStateResource$outboundSchema), - z.any(), - ]), - ).optional(), - scope: z.string(), -}); +export const PendingPreparedStackOverrideStateGcpResource$outboundSchema: + z.ZodType< + PendingPreparedStackOverrideStateGcpResource$Outbound, + PendingPreparedStackOverrideStateGcpResource + > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + PendingPreparedStackOverrideConditionStateResource$outboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function currentReleaseOverrideStateGcpResourceToJSON( - currentReleaseOverrideStateGcpResource: - CurrentReleaseOverrideStateGcpResource, +export function pendingPreparedStackOverrideStateGcpResourceToJSON( + pendingPreparedStackOverrideStateGcpResource: + PendingPreparedStackOverrideStateGcpResource, ): string { return JSON.stringify( - CurrentReleaseOverrideStateGcpResource$outboundSchema.parse( - currentReleaseOverrideStateGcpResource, + PendingPreparedStackOverrideStateGcpResource$outboundSchema.parse( + pendingPreparedStackOverrideStateGcpResource, ), ); } /** @internal */ -export type CurrentReleaseOverrideConditionState$Outbound = { +export type PendingPreparedStackOverrideConditionStateStack$Outbound = { expression: string; title: string; }; /** @internal */ -export const CurrentReleaseOverrideConditionState$outboundSchema: z.ZodType< - CurrentReleaseOverrideConditionState$Outbound, - CurrentReleaseOverrideConditionState -> = z.object({ - expression: z.string(), - title: z.string(), -}); +export const PendingPreparedStackOverrideConditionStateStack$outboundSchema: + z.ZodType< + PendingPreparedStackOverrideConditionStateStack$Outbound, + PendingPreparedStackOverrideConditionStateStack + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function currentReleaseOverrideConditionStateToJSON( - currentReleaseOverrideConditionState: CurrentReleaseOverrideConditionState, +export function pendingPreparedStackOverrideConditionStateStackToJSON( + pendingPreparedStackOverrideConditionStateStack: + PendingPreparedStackOverrideConditionStateStack, ): string { return JSON.stringify( - CurrentReleaseOverrideConditionState$outboundSchema.parse( - currentReleaseOverrideConditionState, + PendingPreparedStackOverrideConditionStateStack$outboundSchema.parse( + pendingPreparedStackOverrideConditionStateStack, ), ); } /** @internal */ -export type CurrentReleaseOverrideStateConditionUnion$Outbound = - | CurrentReleaseOverrideConditionState$Outbound +export type PendingPreparedStackOverrideStateStackConditionUnion$Outbound = + | PendingPreparedStackOverrideConditionStateStack$Outbound | any; /** @internal */ -export const CurrentReleaseOverrideStateConditionUnion$outboundSchema: +export const PendingPreparedStackOverrideStateStackConditionUnion$outboundSchema: z.ZodType< - CurrentReleaseOverrideStateConditionUnion$Outbound, - CurrentReleaseOverrideStateConditionUnion + PendingPreparedStackOverrideStateStackConditionUnion$Outbound, + PendingPreparedStackOverrideStateStackConditionUnion > = z.union([ - z.lazy(() => CurrentReleaseOverrideConditionState$outboundSchema), + z.lazy(() => + PendingPreparedStackOverrideConditionStateStack$outboundSchema + ), z.any(), ]); -export function currentReleaseOverrideStateConditionUnionToJSON( - currentReleaseOverrideStateConditionUnion: - CurrentReleaseOverrideStateConditionUnion, +export function pendingPreparedStackOverrideStateStackConditionUnionToJSON( + pendingPreparedStackOverrideStateStackConditionUnion: + PendingPreparedStackOverrideStateStackConditionUnion, ): string { return JSON.stringify( - CurrentReleaseOverrideStateConditionUnion$outboundSchema.parse( - currentReleaseOverrideStateConditionUnion, + PendingPreparedStackOverrideStateStackConditionUnion$outboundSchema.parse( + pendingPreparedStackOverrideStateStackConditionUnion, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseOverrideGcpStack$Outbound = { - condition?: - | CurrentReleaseOverrideConditionState$Outbound - | any - | null - | undefined; - scope: string; -}; +export type SyncReconcileRequestPendingPreparedStackOverrideGcpStack$Outbound = + { + condition?: + | PendingPreparedStackOverrideConditionStateStack$Outbound + | any + | null + | undefined; + scope: string; + }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseOverrideGcpStack$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackOverrideGcpStack$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseOverrideGcpStack$Outbound, - SyncReconcileRequestCurrentReleaseOverrideGcpStack + SyncReconcileRequestPendingPreparedStackOverrideGcpStack$Outbound, + SyncReconcileRequestPendingPreparedStackOverrideGcpStack > = z.object({ condition: z.nullable( z.union([ - z.lazy(() => CurrentReleaseOverrideConditionState$outboundSchema), + z.lazy(() => + PendingPreparedStackOverrideConditionStateStack$outboundSchema + ), z.any(), ]), ).optional(), scope: z.string(), }); -export function syncReconcileRequestCurrentReleaseOverrideGcpStackToJSON( - syncReconcileRequestCurrentReleaseOverrideGcpStack: - SyncReconcileRequestCurrentReleaseOverrideGcpStack, +export function syncReconcileRequestPendingPreparedStackOverrideGcpStackToJSON( + syncReconcileRequestPendingPreparedStackOverrideGcpStack: + SyncReconcileRequestPendingPreparedStackOverrideGcpStack, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseOverrideGcpStack$outboundSchema.parse( - syncReconcileRequestCurrentReleaseOverrideGcpStack, - ), + SyncReconcileRequestPendingPreparedStackOverrideGcpStack$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackOverrideGcpStack), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseOverrideGcpBinding$Outbound = { - resource?: CurrentReleaseOverrideStateGcpResource$Outbound | undefined; - stack?: - | SyncReconcileRequestCurrentReleaseOverrideGcpStack$Outbound - | undefined; -}; +export type SyncReconcileRequestPendingPreparedStackOverrideGcpBinding$Outbound = + { + resource?: + | PendingPreparedStackOverrideStateGcpResource$Outbound + | undefined; + stack?: + | SyncReconcileRequestPendingPreparedStackOverrideGcpStack$Outbound + | undefined; + }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseOverrideGcpBinding$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackOverrideGcpBinding$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseOverrideGcpBinding$Outbound, - SyncReconcileRequestCurrentReleaseOverrideGcpBinding + SyncReconcileRequestPendingPreparedStackOverrideGcpBinding$Outbound, + SyncReconcileRequestPendingPreparedStackOverrideGcpBinding > = z.object({ resource: z.lazy(() => - CurrentReleaseOverrideStateGcpResource$outboundSchema + PendingPreparedStackOverrideStateGcpResource$outboundSchema ).optional(), stack: z.lazy(() => - SyncReconcileRequestCurrentReleaseOverrideGcpStack$outboundSchema + SyncReconcileRequestPendingPreparedStackOverrideGcpStack$outboundSchema ).optional(), }); -export function syncReconcileRequestCurrentReleaseOverrideGcpBindingToJSON( - syncReconcileRequestCurrentReleaseOverrideGcpBinding: - SyncReconcileRequestCurrentReleaseOverrideGcpBinding, +export function syncReconcileRequestPendingPreparedStackOverrideGcpBindingToJSON( + syncReconcileRequestPendingPreparedStackOverrideGcpBinding: + SyncReconcileRequestPendingPreparedStackOverrideGcpBinding, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseOverrideGcpBinding$outboundSchema.parse( - syncReconcileRequestCurrentReleaseOverrideGcpBinding, - ), + SyncReconcileRequestPendingPreparedStackOverrideGcpBinding$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackOverrideGcpBinding), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseOverrideGcpGrant$Outbound = { - actions?: Array | null | undefined; - dataActions?: Array | null | undefined; - permissions?: Array | null | undefined; - predefinedRoles?: Array | null | undefined; - residualPermissions?: Array | null | undefined; -}; +export type SyncReconcileRequestPendingPreparedStackOverrideGcpGrant$Outbound = + { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; + }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseOverrideGcpGrant$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackOverrideGcpGrant$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseOverrideGcpGrant$Outbound, - SyncReconcileRequestCurrentReleaseOverrideGcpGrant + SyncReconcileRequestPendingPreparedStackOverrideGcpGrant$Outbound, + SyncReconcileRequestPendingPreparedStackOverrideGcpGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -13432,231 +18956,237 @@ export const SyncReconcileRequestCurrentReleaseOverrideGcpGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileRequestCurrentReleaseOverrideGcpGrantToJSON( - syncReconcileRequestCurrentReleaseOverrideGcpGrant: - SyncReconcileRequestCurrentReleaseOverrideGcpGrant, +export function syncReconcileRequestPendingPreparedStackOverrideGcpGrantToJSON( + syncReconcileRequestPendingPreparedStackOverrideGcpGrant: + SyncReconcileRequestPendingPreparedStackOverrideGcpGrant, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseOverrideGcpGrant$outboundSchema.parse( - syncReconcileRequestCurrentReleaseOverrideGcpGrant, - ), + SyncReconcileRequestPendingPreparedStackOverrideGcpGrant$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackOverrideGcpGrant), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseOverrideGcp$Outbound = { - binding: SyncReconcileRequestCurrentReleaseOverrideGcpBinding$Outbound; +export type SyncReconcileRequestPendingPreparedStackOverrideGcp$Outbound = { + binding: SyncReconcileRequestPendingPreparedStackOverrideGcpBinding$Outbound; description?: string | null | undefined; - grant: SyncReconcileRequestCurrentReleaseOverrideGcpGrant$Outbound; + grant: SyncReconcileRequestPendingPreparedStackOverrideGcpGrant$Outbound; label?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseOverrideGcp$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackOverrideGcp$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseOverrideGcp$Outbound, - SyncReconcileRequestCurrentReleaseOverrideGcp + SyncReconcileRequestPendingPreparedStackOverrideGcp$Outbound, + SyncReconcileRequestPendingPreparedStackOverrideGcp > = z.object({ binding: z.lazy(() => - SyncReconcileRequestCurrentReleaseOverrideGcpBinding$outboundSchema + SyncReconcileRequestPendingPreparedStackOverrideGcpBinding$outboundSchema ), description: z.nullable(z.string()).optional(), grant: z.lazy(() => - SyncReconcileRequestCurrentReleaseOverrideGcpGrant$outboundSchema + SyncReconcileRequestPendingPreparedStackOverrideGcpGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestCurrentReleaseOverrideGcpToJSON( - syncReconcileRequestCurrentReleaseOverrideGcp: - SyncReconcileRequestCurrentReleaseOverrideGcp, +export function syncReconcileRequestPendingPreparedStackOverrideGcpToJSON( + syncReconcileRequestPendingPreparedStackOverrideGcp: + SyncReconcileRequestPendingPreparedStackOverrideGcp, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseOverrideGcp$outboundSchema.parse( - syncReconcileRequestCurrentReleaseOverrideGcp, + SyncReconcileRequestPendingPreparedStackOverrideGcp$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackOverrideGcp, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseOverridePlatforms$Outbound = { - aws?: - | Array - | null - | undefined; - azure?: - | Array - | null - | undefined; - gcp?: - | Array - | null - | undefined; -}; +export type SyncReconcileRequestPendingPreparedStackOverridePlatforms$Outbound = + { + aws?: + | Array + | null + | undefined; + azure?: + | Array + | null + | undefined; + gcp?: + | Array + | null + | undefined; + }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseOverridePlatforms$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackOverridePlatforms$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseOverridePlatforms$Outbound, - SyncReconcileRequestCurrentReleaseOverridePlatforms + SyncReconcileRequestPendingPreparedStackOverridePlatforms$Outbound, + SyncReconcileRequestPendingPreparedStackOverridePlatforms > = z.object({ aws: z.nullable( z.array(z.lazy(() => - SyncReconcileRequestCurrentReleaseOverrideAw$outboundSchema + SyncReconcileRequestPendingPreparedStackOverrideAw$outboundSchema )), ).optional(), azure: z.nullable( z.array(z.lazy(() => - SyncReconcileRequestCurrentReleaseOverrideAzure$outboundSchema + SyncReconcileRequestPendingPreparedStackOverrideAzure$outboundSchema )), ).optional(), gcp: z.nullable( z.array(z.lazy(() => - SyncReconcileRequestCurrentReleaseOverrideGcp$outboundSchema + SyncReconcileRequestPendingPreparedStackOverrideGcp$outboundSchema )), ).optional(), }); -export function syncReconcileRequestCurrentReleaseOverridePlatformsToJSON( - syncReconcileRequestCurrentReleaseOverridePlatforms: - SyncReconcileRequestCurrentReleaseOverridePlatforms, +export function syncReconcileRequestPendingPreparedStackOverridePlatformsToJSON( + syncReconcileRequestPendingPreparedStackOverridePlatforms: + SyncReconcileRequestPendingPreparedStackOverridePlatforms, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseOverridePlatforms$outboundSchema.parse( - syncReconcileRequestCurrentReleaseOverridePlatforms, - ), + SyncReconcileRequestPendingPreparedStackOverridePlatforms$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackOverridePlatforms), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseOverride$Outbound = { +export type SyncReconcileRequestPendingPreparedStackOverride$Outbound = { description: string; id: string; - platforms: SyncReconcileRequestCurrentReleaseOverridePlatforms$Outbound; + platforms: SyncReconcileRequestPendingPreparedStackOverridePlatforms$Outbound; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseOverride$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackOverride$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseOverride$Outbound, - SyncReconcileRequestCurrentReleaseOverride + SyncReconcileRequestPendingPreparedStackOverride$Outbound, + SyncReconcileRequestPendingPreparedStackOverride > = z.object({ description: z.string(), id: z.string(), platforms: z.lazy(() => - SyncReconcileRequestCurrentReleaseOverridePlatforms$outboundSchema + SyncReconcileRequestPendingPreparedStackOverridePlatforms$outboundSchema ), }); -export function syncReconcileRequestCurrentReleaseOverrideToJSON( - syncReconcileRequestCurrentReleaseOverride: - SyncReconcileRequestCurrentReleaseOverride, +export function syncReconcileRequestPendingPreparedStackOverrideToJSON( + syncReconcileRequestPendingPreparedStackOverride: + SyncReconcileRequestPendingPreparedStackOverride, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseOverride$outboundSchema.parse( - syncReconcileRequestCurrentReleaseOverride, + SyncReconcileRequestPendingPreparedStackOverride$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackOverride, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseOverrideUnion$Outbound = - | SyncReconcileRequestCurrentReleaseOverride$Outbound +export type SyncReconcileRequestPendingPreparedStackOverrideUnion$Outbound = + | SyncReconcileRequestPendingPreparedStackOverride$Outbound | string; /** @internal */ -export const SyncReconcileRequestCurrentReleaseOverrideUnion$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackOverrideUnion$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseOverrideUnion$Outbound, - SyncReconcileRequestCurrentReleaseOverrideUnion + SyncReconcileRequestPendingPreparedStackOverrideUnion$Outbound, + SyncReconcileRequestPendingPreparedStackOverrideUnion > = z.union([ - z.lazy(() => SyncReconcileRequestCurrentReleaseOverride$outboundSchema), + z.lazy(() => + SyncReconcileRequestPendingPreparedStackOverride$outboundSchema + ), z.string(), ]); -export function syncReconcileRequestCurrentReleaseOverrideUnionToJSON( - syncReconcileRequestCurrentReleaseOverrideUnion: - SyncReconcileRequestCurrentReleaseOverrideUnion, +export function syncReconcileRequestPendingPreparedStackOverrideUnionToJSON( + syncReconcileRequestPendingPreparedStackOverrideUnion: + SyncReconcileRequestPendingPreparedStackOverrideUnion, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseOverrideUnion$outboundSchema.parse( - syncReconcileRequestCurrentReleaseOverrideUnion, + SyncReconcileRequestPendingPreparedStackOverrideUnion$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackOverrideUnion, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseManagement2$Outbound = { +export type SyncReconcileRequestPendingPreparedStackManagement2$Outbound = { override: { [k: string]: Array< - SyncReconcileRequestCurrentReleaseOverride$Outbound | string + SyncReconcileRequestPendingPreparedStackOverride$Outbound | string >; }; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseManagement2$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackManagement2$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseManagement2$Outbound, - SyncReconcileRequestCurrentReleaseManagement2 + SyncReconcileRequestPendingPreparedStackManagement2$Outbound, + SyncReconcileRequestPendingPreparedStackManagement2 > = z.object({ override: z.record( z.string(), z.array(z.union([ - z.lazy(() => SyncReconcileRequestCurrentReleaseOverride$outboundSchema), + z.lazy(() => + SyncReconcileRequestPendingPreparedStackOverride$outboundSchema + ), z.string(), ])), ), }); -export function syncReconcileRequestCurrentReleaseManagement2ToJSON( - syncReconcileRequestCurrentReleaseManagement2: - SyncReconcileRequestCurrentReleaseManagement2, +export function syncReconcileRequestPendingPreparedStackManagement2ToJSON( + syncReconcileRequestPendingPreparedStackManagement2: + SyncReconcileRequestPendingPreparedStackManagement2, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseManagement2$outboundSchema.parse( - syncReconcileRequestCurrentReleaseManagement2, + SyncReconcileRequestPendingPreparedStackManagement2$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackManagement2, ), ); } /** @internal */ -export type CurrentReleaseExtendStateAwResource$Outbound = { +export type PendingPreparedStackExtendStateAwResource$Outbound = { condition?: { [k: string]: { [k: string]: string } } | null | undefined; resources: Array; }; /** @internal */ -export const CurrentReleaseExtendStateAwResource$outboundSchema: z.ZodType< - CurrentReleaseExtendStateAwResource$Outbound, - CurrentReleaseExtendStateAwResource -> = z.object({ - condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) - .optional(), - resources: z.array(z.string()), -}); +export const PendingPreparedStackExtendStateAwResource$outboundSchema: + z.ZodType< + PendingPreparedStackExtendStateAwResource$Outbound, + PendingPreparedStackExtendStateAwResource + > = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function currentReleaseExtendStateAwResourceToJSON( - currentReleaseExtendStateAwResource: CurrentReleaseExtendStateAwResource, +export function pendingPreparedStackExtendStateAwResourceToJSON( + pendingPreparedStackExtendStateAwResource: + PendingPreparedStackExtendStateAwResource, ): string { return JSON.stringify( - CurrentReleaseExtendStateAwResource$outboundSchema.parse( - currentReleaseExtendStateAwResource, + PendingPreparedStackExtendStateAwResource$outboundSchema.parse( + pendingPreparedStackExtendStateAwResource, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseExtendAwStack$Outbound = { +export type SyncReconcileRequestPendingPreparedStackExtendAwStack$Outbound = { condition?: { [k: string]: { [k: string]: string } } | null | undefined; resources: Array; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseExtendAwStack$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackExtendAwStack$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseExtendAwStack$Outbound, - SyncReconcileRequestCurrentReleaseExtendAwStack + SyncReconcileRequestPendingPreparedStackExtendAwStack$Outbound, + SyncReconcileRequestPendingPreparedStackExtendAwStack > = z.object({ condition: z.nullable( z.record(z.string(), z.record(z.string(), z.string())), @@ -13664,55 +19194,56 @@ export const SyncReconcileRequestCurrentReleaseExtendAwStack$outboundSchema: resources: z.array(z.string()), }); -export function syncReconcileRequestCurrentReleaseExtendAwStackToJSON( - syncReconcileRequestCurrentReleaseExtendAwStack: - SyncReconcileRequestCurrentReleaseExtendAwStack, +export function syncReconcileRequestPendingPreparedStackExtendAwStackToJSON( + syncReconcileRequestPendingPreparedStackExtendAwStack: + SyncReconcileRequestPendingPreparedStackExtendAwStack, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseExtendAwStack$outboundSchema.parse( - syncReconcileRequestCurrentReleaseExtendAwStack, + SyncReconcileRequestPendingPreparedStackExtendAwStack$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackExtendAwStack, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseExtendAwBinding$Outbound = { - resource?: CurrentReleaseExtendStateAwResource$Outbound | undefined; - stack?: SyncReconcileRequestCurrentReleaseExtendAwStack$Outbound | undefined; +export type SyncReconcileRequestPendingPreparedStackExtendAwBinding$Outbound = { + resource?: PendingPreparedStackExtendStateAwResource$Outbound | undefined; + stack?: + | SyncReconcileRequestPendingPreparedStackExtendAwStack$Outbound + | undefined; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseExtendAwBinding$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackExtendAwBinding$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseExtendAwBinding$Outbound, - SyncReconcileRequestCurrentReleaseExtendAwBinding + SyncReconcileRequestPendingPreparedStackExtendAwBinding$Outbound, + SyncReconcileRequestPendingPreparedStackExtendAwBinding > = z.object({ - resource: z.lazy(() => CurrentReleaseExtendStateAwResource$outboundSchema) - .optional(), + resource: z.lazy(() => + PendingPreparedStackExtendStateAwResource$outboundSchema + ).optional(), stack: z.lazy(() => - SyncReconcileRequestCurrentReleaseExtendAwStack$outboundSchema + SyncReconcileRequestPendingPreparedStackExtendAwStack$outboundSchema ).optional(), }); -export function syncReconcileRequestCurrentReleaseExtendAwBindingToJSON( - syncReconcileRequestCurrentReleaseExtendAwBinding: - SyncReconcileRequestCurrentReleaseExtendAwBinding, +export function syncReconcileRequestPendingPreparedStackExtendAwBindingToJSON( + syncReconcileRequestPendingPreparedStackExtendAwBinding: + SyncReconcileRequestPendingPreparedStackExtendAwBinding, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseExtendAwBinding$outboundSchema.parse( - syncReconcileRequestCurrentReleaseExtendAwBinding, - ), + SyncReconcileRequestPendingPreparedStackExtendAwBinding$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackExtendAwBinding), ); } /** @internal */ -export const SyncReconcileRequestCurrentReleaseExtendEffect$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestCurrentReleaseExtendEffect, - ); +export const SyncReconcileRequestPendingPreparedStackExtendEffect$outboundSchema: + z.ZodEnum = z + .enum(SyncReconcileRequestPendingPreparedStackExtendEffect); /** @internal */ -export type SyncReconcileRequestCurrentReleaseExtendAwGrant$Outbound = { +export type SyncReconcileRequestPendingPreparedStackExtendAwGrant$Outbound = { actions?: Array | null | undefined; dataActions?: Array | null | undefined; permissions?: Array | null | undefined; @@ -13721,10 +19252,10 @@ export type SyncReconcileRequestCurrentReleaseExtendAwGrant$Outbound = { }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseExtendAwGrant$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackExtendAwGrant$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseExtendAwGrant$Outbound, - SyncReconcileRequestCurrentReleaseExtendAwGrant + SyncReconcileRequestPendingPreparedStackExtendAwGrant$Outbound, + SyncReconcileRequestPendingPreparedStackExtendAwGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -13733,151 +19264,155 @@ export const SyncReconcileRequestCurrentReleaseExtendAwGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileRequestCurrentReleaseExtendAwGrantToJSON( - syncReconcileRequestCurrentReleaseExtendAwGrant: - SyncReconcileRequestCurrentReleaseExtendAwGrant, +export function syncReconcileRequestPendingPreparedStackExtendAwGrantToJSON( + syncReconcileRequestPendingPreparedStackExtendAwGrant: + SyncReconcileRequestPendingPreparedStackExtendAwGrant, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseExtendAwGrant$outboundSchema.parse( - syncReconcileRequestCurrentReleaseExtendAwGrant, + SyncReconcileRequestPendingPreparedStackExtendAwGrant$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackExtendAwGrant, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseExtendAw$Outbound = { - binding: SyncReconcileRequestCurrentReleaseExtendAwBinding$Outbound; +export type SyncReconcileRequestPendingPreparedStackExtendAw$Outbound = { + binding: SyncReconcileRequestPendingPreparedStackExtendAwBinding$Outbound; description?: string | null | undefined; effect?: string | undefined; - grant: SyncReconcileRequestCurrentReleaseExtendAwGrant$Outbound; + grant: SyncReconcileRequestPendingPreparedStackExtendAwGrant$Outbound; label?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseExtendAw$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackExtendAw$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseExtendAw$Outbound, - SyncReconcileRequestCurrentReleaseExtendAw + SyncReconcileRequestPendingPreparedStackExtendAw$Outbound, + SyncReconcileRequestPendingPreparedStackExtendAw > = z.object({ binding: z.lazy(() => - SyncReconcileRequestCurrentReleaseExtendAwBinding$outboundSchema + SyncReconcileRequestPendingPreparedStackExtendAwBinding$outboundSchema ), description: z.nullable(z.string()).optional(), - effect: SyncReconcileRequestCurrentReleaseExtendEffect$outboundSchema + effect: SyncReconcileRequestPendingPreparedStackExtendEffect$outboundSchema .optional(), grant: z.lazy(() => - SyncReconcileRequestCurrentReleaseExtendAwGrant$outboundSchema + SyncReconcileRequestPendingPreparedStackExtendAwGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestCurrentReleaseExtendAwToJSON( - syncReconcileRequestCurrentReleaseExtendAw: - SyncReconcileRequestCurrentReleaseExtendAw, +export function syncReconcileRequestPendingPreparedStackExtendAwToJSON( + syncReconcileRequestPendingPreparedStackExtendAw: + SyncReconcileRequestPendingPreparedStackExtendAw, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseExtendAw$outboundSchema.parse( - syncReconcileRequestCurrentReleaseExtendAw, + SyncReconcileRequestPendingPreparedStackExtendAw$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackExtendAw, ), ); } /** @internal */ -export type CurrentReleaseExtendStateAzureResource$Outbound = { +export type PendingPreparedStackExtendStateAzureResource$Outbound = { scope: string; }; /** @internal */ -export const CurrentReleaseExtendStateAzureResource$outboundSchema: z.ZodType< - CurrentReleaseExtendStateAzureResource$Outbound, - CurrentReleaseExtendStateAzureResource -> = z.object({ - scope: z.string(), -}); +export const PendingPreparedStackExtendStateAzureResource$outboundSchema: + z.ZodType< + PendingPreparedStackExtendStateAzureResource$Outbound, + PendingPreparedStackExtendStateAzureResource + > = z.object({ + scope: z.string(), + }); -export function currentReleaseExtendStateAzureResourceToJSON( - currentReleaseExtendStateAzureResource: - CurrentReleaseExtendStateAzureResource, +export function pendingPreparedStackExtendStateAzureResourceToJSON( + pendingPreparedStackExtendStateAzureResource: + PendingPreparedStackExtendStateAzureResource, ): string { return JSON.stringify( - CurrentReleaseExtendStateAzureResource$outboundSchema.parse( - currentReleaseExtendStateAzureResource, + PendingPreparedStackExtendStateAzureResource$outboundSchema.parse( + pendingPreparedStackExtendStateAzureResource, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseExtendAzureStack$Outbound = { - scope: string; -}; +export type SyncReconcileRequestPendingPreparedStackExtendAzureStack$Outbound = + { + scope: string; + }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseExtendAzureStack$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackExtendAzureStack$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseExtendAzureStack$Outbound, - SyncReconcileRequestCurrentReleaseExtendAzureStack + SyncReconcileRequestPendingPreparedStackExtendAzureStack$Outbound, + SyncReconcileRequestPendingPreparedStackExtendAzureStack > = z.object({ scope: z.string(), }); -export function syncReconcileRequestCurrentReleaseExtendAzureStackToJSON( - syncReconcileRequestCurrentReleaseExtendAzureStack: - SyncReconcileRequestCurrentReleaseExtendAzureStack, +export function syncReconcileRequestPendingPreparedStackExtendAzureStackToJSON( + syncReconcileRequestPendingPreparedStackExtendAzureStack: + SyncReconcileRequestPendingPreparedStackExtendAzureStack, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseExtendAzureStack$outboundSchema.parse( - syncReconcileRequestCurrentReleaseExtendAzureStack, - ), + SyncReconcileRequestPendingPreparedStackExtendAzureStack$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackExtendAzureStack), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseExtendAzureBinding$Outbound = { - resource?: CurrentReleaseExtendStateAzureResource$Outbound | undefined; - stack?: - | SyncReconcileRequestCurrentReleaseExtendAzureStack$Outbound - | undefined; -}; +export type SyncReconcileRequestPendingPreparedStackExtendAzureBinding$Outbound = + { + resource?: + | PendingPreparedStackExtendStateAzureResource$Outbound + | undefined; + stack?: + | SyncReconcileRequestPendingPreparedStackExtendAzureStack$Outbound + | undefined; + }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseExtendAzureBinding$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackExtendAzureBinding$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseExtendAzureBinding$Outbound, - SyncReconcileRequestCurrentReleaseExtendAzureBinding + SyncReconcileRequestPendingPreparedStackExtendAzureBinding$Outbound, + SyncReconcileRequestPendingPreparedStackExtendAzureBinding > = z.object({ resource: z.lazy(() => - CurrentReleaseExtendStateAzureResource$outboundSchema + PendingPreparedStackExtendStateAzureResource$outboundSchema ).optional(), stack: z.lazy(() => - SyncReconcileRequestCurrentReleaseExtendAzureStack$outboundSchema + SyncReconcileRequestPendingPreparedStackExtendAzureStack$outboundSchema ).optional(), }); -export function syncReconcileRequestCurrentReleaseExtendAzureBindingToJSON( - syncReconcileRequestCurrentReleaseExtendAzureBinding: - SyncReconcileRequestCurrentReleaseExtendAzureBinding, +export function syncReconcileRequestPendingPreparedStackExtendAzureBindingToJSON( + syncReconcileRequestPendingPreparedStackExtendAzureBinding: + SyncReconcileRequestPendingPreparedStackExtendAzureBinding, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseExtendAzureBinding$outboundSchema.parse( - syncReconcileRequestCurrentReleaseExtendAzureBinding, - ), + SyncReconcileRequestPendingPreparedStackExtendAzureBinding$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackExtendAzureBinding), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseExtendAzureGrant$Outbound = { - actions?: Array | null | undefined; - dataActions?: Array | null | undefined; - permissions?: Array | null | undefined; - predefinedRoles?: Array | null | undefined; - residualPermissions?: Array | null | undefined; -}; +export type SyncReconcileRequestPendingPreparedStackExtendAzureGrant$Outbound = + { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; + }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseExtendAzureGrant$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackExtendAzureGrant$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseExtendAzureGrant$Outbound, - SyncReconcileRequestCurrentReleaseExtendAzureGrant + SyncReconcileRequestPendingPreparedStackExtendAzureGrant$Outbound, + SyncReconcileRequestPendingPreparedStackExtendAzureGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -13886,109 +19421,110 @@ export const SyncReconcileRequestCurrentReleaseExtendAzureGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileRequestCurrentReleaseExtendAzureGrantToJSON( - syncReconcileRequestCurrentReleaseExtendAzureGrant: - SyncReconcileRequestCurrentReleaseExtendAzureGrant, +export function syncReconcileRequestPendingPreparedStackExtendAzureGrantToJSON( + syncReconcileRequestPendingPreparedStackExtendAzureGrant: + SyncReconcileRequestPendingPreparedStackExtendAzureGrant, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseExtendAzureGrant$outboundSchema.parse( - syncReconcileRequestCurrentReleaseExtendAzureGrant, - ), + SyncReconcileRequestPendingPreparedStackExtendAzureGrant$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackExtendAzureGrant), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseExtendAzure$Outbound = { - binding: SyncReconcileRequestCurrentReleaseExtendAzureBinding$Outbound; +export type SyncReconcileRequestPendingPreparedStackExtendAzure$Outbound = { + binding: SyncReconcileRequestPendingPreparedStackExtendAzureBinding$Outbound; description?: string | null | undefined; - grant: SyncReconcileRequestCurrentReleaseExtendAzureGrant$Outbound; + grant: SyncReconcileRequestPendingPreparedStackExtendAzureGrant$Outbound; label?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseExtendAzure$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackExtendAzure$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseExtendAzure$Outbound, - SyncReconcileRequestCurrentReleaseExtendAzure + SyncReconcileRequestPendingPreparedStackExtendAzure$Outbound, + SyncReconcileRequestPendingPreparedStackExtendAzure > = z.object({ binding: z.lazy(() => - SyncReconcileRequestCurrentReleaseExtendAzureBinding$outboundSchema + SyncReconcileRequestPendingPreparedStackExtendAzureBinding$outboundSchema ), description: z.nullable(z.string()).optional(), grant: z.lazy(() => - SyncReconcileRequestCurrentReleaseExtendAzureGrant$outboundSchema + SyncReconcileRequestPendingPreparedStackExtendAzureGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestCurrentReleaseExtendAzureToJSON( - syncReconcileRequestCurrentReleaseExtendAzure: - SyncReconcileRequestCurrentReleaseExtendAzure, +export function syncReconcileRequestPendingPreparedStackExtendAzureToJSON( + syncReconcileRequestPendingPreparedStackExtendAzure: + SyncReconcileRequestPendingPreparedStackExtendAzure, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseExtendAzure$outboundSchema.parse( - syncReconcileRequestCurrentReleaseExtendAzure, + SyncReconcileRequestPendingPreparedStackExtendAzure$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackExtendAzure, ), ); } /** @internal */ -export type CurrentReleaseExtendConditionStateResource$Outbound = { +export type PendingPreparedStackExtendConditionStateResource$Outbound = { expression: string; title: string; }; /** @internal */ -export const CurrentReleaseExtendConditionStateResource$outboundSchema: +export const PendingPreparedStackExtendConditionStateResource$outboundSchema: z.ZodType< - CurrentReleaseExtendConditionStateResource$Outbound, - CurrentReleaseExtendConditionStateResource + PendingPreparedStackExtendConditionStateResource$Outbound, + PendingPreparedStackExtendConditionStateResource > = z.object({ expression: z.string(), title: z.string(), }); -export function currentReleaseExtendConditionStateResourceToJSON( - currentReleaseExtendConditionStateResource: - CurrentReleaseExtendConditionStateResource, +export function pendingPreparedStackExtendConditionStateResourceToJSON( + pendingPreparedStackExtendConditionStateResource: + PendingPreparedStackExtendConditionStateResource, ): string { return JSON.stringify( - CurrentReleaseExtendConditionStateResource$outboundSchema.parse( - currentReleaseExtendConditionStateResource, + PendingPreparedStackExtendConditionStateResource$outboundSchema.parse( + pendingPreparedStackExtendConditionStateResource, ), ); } /** @internal */ -export type CurrentReleaseExtendStateResourceConditionUnion$Outbound = - | CurrentReleaseExtendConditionStateResource$Outbound +export type PendingPreparedStackExtendStateResourceConditionUnion$Outbound = + | PendingPreparedStackExtendConditionStateResource$Outbound | any; /** @internal */ -export const CurrentReleaseExtendStateResourceConditionUnion$outboundSchema: +export const PendingPreparedStackExtendStateResourceConditionUnion$outboundSchema: z.ZodType< - CurrentReleaseExtendStateResourceConditionUnion$Outbound, - CurrentReleaseExtendStateResourceConditionUnion + PendingPreparedStackExtendStateResourceConditionUnion$Outbound, + PendingPreparedStackExtendStateResourceConditionUnion > = z.union([ - z.lazy(() => CurrentReleaseExtendConditionStateResource$outboundSchema), + z.lazy(() => + PendingPreparedStackExtendConditionStateResource$outboundSchema + ), z.any(), ]); -export function currentReleaseExtendStateResourceConditionUnionToJSON( - currentReleaseExtendStateResourceConditionUnion: - CurrentReleaseExtendStateResourceConditionUnion, +export function pendingPreparedStackExtendStateResourceConditionUnionToJSON( + pendingPreparedStackExtendStateResourceConditionUnion: + PendingPreparedStackExtendStateResourceConditionUnion, ): string { return JSON.stringify( - CurrentReleaseExtendStateResourceConditionUnion$outboundSchema.parse( - currentReleaseExtendStateResourceConditionUnion, + PendingPreparedStackExtendStateResourceConditionUnion$outboundSchema.parse( + pendingPreparedStackExtendStateResourceConditionUnion, ), ); } /** @internal */ -export type CurrentReleaseExtendStateGcpResource$Outbound = { +export type PendingPreparedStackExtendStateGcpResource$Outbound = { condition?: - | CurrentReleaseExtendConditionStateResource$Outbound + | PendingPreparedStackExtendConditionStateResource$Outbound | any | null | undefined; @@ -13996,83 +19532,90 @@ export type CurrentReleaseExtendStateGcpResource$Outbound = { }; /** @internal */ -export const CurrentReleaseExtendStateGcpResource$outboundSchema: z.ZodType< - CurrentReleaseExtendStateGcpResource$Outbound, - CurrentReleaseExtendStateGcpResource -> = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => CurrentReleaseExtendConditionStateResource$outboundSchema), - z.any(), - ]), - ).optional(), - scope: z.string(), -}); +export const PendingPreparedStackExtendStateGcpResource$outboundSchema: + z.ZodType< + PendingPreparedStackExtendStateGcpResource$Outbound, + PendingPreparedStackExtendStateGcpResource + > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + PendingPreparedStackExtendConditionStateResource$outboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function currentReleaseExtendStateGcpResourceToJSON( - currentReleaseExtendStateGcpResource: CurrentReleaseExtendStateGcpResource, +export function pendingPreparedStackExtendStateGcpResourceToJSON( + pendingPreparedStackExtendStateGcpResource: + PendingPreparedStackExtendStateGcpResource, ): string { return JSON.stringify( - CurrentReleaseExtendStateGcpResource$outboundSchema.parse( - currentReleaseExtendStateGcpResource, + PendingPreparedStackExtendStateGcpResource$outboundSchema.parse( + pendingPreparedStackExtendStateGcpResource, ), ); } /** @internal */ -export type CurrentReleaseExtendConditionState$Outbound = { +export type PendingPreparedStackExtendConditionStateStack$Outbound = { expression: string; title: string; }; /** @internal */ -export const CurrentReleaseExtendConditionState$outboundSchema: z.ZodType< - CurrentReleaseExtendConditionState$Outbound, - CurrentReleaseExtendConditionState -> = z.object({ - expression: z.string(), - title: z.string(), -}); +export const PendingPreparedStackExtendConditionStateStack$outboundSchema: + z.ZodType< + PendingPreparedStackExtendConditionStateStack$Outbound, + PendingPreparedStackExtendConditionStateStack + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function currentReleaseExtendConditionStateToJSON( - currentReleaseExtendConditionState: CurrentReleaseExtendConditionState, +export function pendingPreparedStackExtendConditionStateStackToJSON( + pendingPreparedStackExtendConditionStateStack: + PendingPreparedStackExtendConditionStateStack, ): string { return JSON.stringify( - CurrentReleaseExtendConditionState$outboundSchema.parse( - currentReleaseExtendConditionState, + PendingPreparedStackExtendConditionStateStack$outboundSchema.parse( + pendingPreparedStackExtendConditionStateStack, ), ); } /** @internal */ -export type CurrentReleaseExtendStateConditionUnion$Outbound = - | CurrentReleaseExtendConditionState$Outbound +export type PendingPreparedStackExtendStateStackConditionUnion$Outbound = + | PendingPreparedStackExtendConditionStateStack$Outbound | any; /** @internal */ -export const CurrentReleaseExtendStateConditionUnion$outboundSchema: z.ZodType< - CurrentReleaseExtendStateConditionUnion$Outbound, - CurrentReleaseExtendStateConditionUnion -> = z.union([ - z.lazy(() => CurrentReleaseExtendConditionState$outboundSchema), - z.any(), -]); +export const PendingPreparedStackExtendStateStackConditionUnion$outboundSchema: + z.ZodType< + PendingPreparedStackExtendStateStackConditionUnion$Outbound, + PendingPreparedStackExtendStateStackConditionUnion + > = z.union([ + z.lazy(() => PendingPreparedStackExtendConditionStateStack$outboundSchema), + z.any(), + ]); -export function currentReleaseExtendStateConditionUnionToJSON( - currentReleaseExtendStateConditionUnion: - CurrentReleaseExtendStateConditionUnion, +export function pendingPreparedStackExtendStateStackConditionUnionToJSON( + pendingPreparedStackExtendStateStackConditionUnion: + PendingPreparedStackExtendStateStackConditionUnion, ): string { return JSON.stringify( - CurrentReleaseExtendStateConditionUnion$outboundSchema.parse( - currentReleaseExtendStateConditionUnion, + PendingPreparedStackExtendStateStackConditionUnion$outboundSchema.parse( + pendingPreparedStackExtendStateStackConditionUnion, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseExtendGcpStack$Outbound = { +export type SyncReconcileRequestPendingPreparedStackExtendGcpStack$Outbound = { condition?: - | CurrentReleaseExtendConditionState$Outbound + | PendingPreparedStackExtendConditionStateStack$Outbound | any | null | undefined; @@ -14080,63 +19623,68 @@ export type SyncReconcileRequestCurrentReleaseExtendGcpStack$Outbound = { }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseExtendGcpStack$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackExtendGcpStack$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseExtendGcpStack$Outbound, - SyncReconcileRequestCurrentReleaseExtendGcpStack + SyncReconcileRequestPendingPreparedStackExtendGcpStack$Outbound, + SyncReconcileRequestPendingPreparedStackExtendGcpStack > = z.object({ condition: z.nullable( z.union([ - z.lazy(() => CurrentReleaseExtendConditionState$outboundSchema), + z.lazy(() => + PendingPreparedStackExtendConditionStateStack$outboundSchema + ), z.any(), ]), ).optional(), scope: z.string(), }); -export function syncReconcileRequestCurrentReleaseExtendGcpStackToJSON( - syncReconcileRequestCurrentReleaseExtendGcpStack: - SyncReconcileRequestCurrentReleaseExtendGcpStack, +export function syncReconcileRequestPendingPreparedStackExtendGcpStackToJSON( + syncReconcileRequestPendingPreparedStackExtendGcpStack: + SyncReconcileRequestPendingPreparedStackExtendGcpStack, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseExtendGcpStack$outboundSchema.parse( - syncReconcileRequestCurrentReleaseExtendGcpStack, + SyncReconcileRequestPendingPreparedStackExtendGcpStack$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackExtendGcpStack, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseExtendGcpBinding$Outbound = { - resource?: CurrentReleaseExtendStateGcpResource$Outbound | undefined; - stack?: SyncReconcileRequestCurrentReleaseExtendGcpStack$Outbound | undefined; -}; +export type SyncReconcileRequestPendingPreparedStackExtendGcpBinding$Outbound = + { + resource?: PendingPreparedStackExtendStateGcpResource$Outbound | undefined; + stack?: + | SyncReconcileRequestPendingPreparedStackExtendGcpStack$Outbound + | undefined; + }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseExtendGcpBinding$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackExtendGcpBinding$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseExtendGcpBinding$Outbound, - SyncReconcileRequestCurrentReleaseExtendGcpBinding + SyncReconcileRequestPendingPreparedStackExtendGcpBinding$Outbound, + SyncReconcileRequestPendingPreparedStackExtendGcpBinding > = z.object({ - resource: z.lazy(() => CurrentReleaseExtendStateGcpResource$outboundSchema) - .optional(), + resource: z.lazy(() => + PendingPreparedStackExtendStateGcpResource$outboundSchema + ).optional(), stack: z.lazy(() => - SyncReconcileRequestCurrentReleaseExtendGcpStack$outboundSchema + SyncReconcileRequestPendingPreparedStackExtendGcpStack$outboundSchema ).optional(), }); -export function syncReconcileRequestCurrentReleaseExtendGcpBindingToJSON( - syncReconcileRequestCurrentReleaseExtendGcpBinding: - SyncReconcileRequestCurrentReleaseExtendGcpBinding, +export function syncReconcileRequestPendingPreparedStackExtendGcpBindingToJSON( + syncReconcileRequestPendingPreparedStackExtendGcpBinding: + SyncReconcileRequestPendingPreparedStackExtendGcpBinding, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseExtendGcpBinding$outboundSchema.parse( - syncReconcileRequestCurrentReleaseExtendGcpBinding, - ), + SyncReconcileRequestPendingPreparedStackExtendGcpBinding$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackExtendGcpBinding), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseExtendGcpGrant$Outbound = { +export type SyncReconcileRequestPendingPreparedStackExtendGcpGrant$Outbound = { actions?: Array | null | undefined; dataActions?: Array | null | undefined; permissions?: Array | null | undefined; @@ -14145,10 +19693,10 @@ export type SyncReconcileRequestCurrentReleaseExtendGcpGrant$Outbound = { }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseExtendGcpGrant$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackExtendGcpGrant$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseExtendGcpGrant$Outbound, - SyncReconcileRequestCurrentReleaseExtendGcpGrant + SyncReconcileRequestPendingPreparedStackExtendGcpGrant$Outbound, + SyncReconcileRequestPendingPreparedStackExtendGcpGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -14157,258 +19705,266 @@ export const SyncReconcileRequestCurrentReleaseExtendGcpGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileRequestCurrentReleaseExtendGcpGrantToJSON( - syncReconcileRequestCurrentReleaseExtendGcpGrant: - SyncReconcileRequestCurrentReleaseExtendGcpGrant, +export function syncReconcileRequestPendingPreparedStackExtendGcpGrantToJSON( + syncReconcileRequestPendingPreparedStackExtendGcpGrant: + SyncReconcileRequestPendingPreparedStackExtendGcpGrant, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseExtendGcpGrant$outboundSchema.parse( - syncReconcileRequestCurrentReleaseExtendGcpGrant, + SyncReconcileRequestPendingPreparedStackExtendGcpGrant$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackExtendGcpGrant, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseExtendGcp$Outbound = { - binding: SyncReconcileRequestCurrentReleaseExtendGcpBinding$Outbound; +export type SyncReconcileRequestPendingPreparedStackExtendGcp$Outbound = { + binding: SyncReconcileRequestPendingPreparedStackExtendGcpBinding$Outbound; description?: string | null | undefined; - grant: SyncReconcileRequestCurrentReleaseExtendGcpGrant$Outbound; + grant: SyncReconcileRequestPendingPreparedStackExtendGcpGrant$Outbound; label?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseExtendGcp$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackExtendGcp$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseExtendGcp$Outbound, - SyncReconcileRequestCurrentReleaseExtendGcp + SyncReconcileRequestPendingPreparedStackExtendGcp$Outbound, + SyncReconcileRequestPendingPreparedStackExtendGcp > = z.object({ binding: z.lazy(() => - SyncReconcileRequestCurrentReleaseExtendGcpBinding$outboundSchema + SyncReconcileRequestPendingPreparedStackExtendGcpBinding$outboundSchema ), description: z.nullable(z.string()).optional(), grant: z.lazy(() => - SyncReconcileRequestCurrentReleaseExtendGcpGrant$outboundSchema + SyncReconcileRequestPendingPreparedStackExtendGcpGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestCurrentReleaseExtendGcpToJSON( - syncReconcileRequestCurrentReleaseExtendGcp: - SyncReconcileRequestCurrentReleaseExtendGcp, +export function syncReconcileRequestPendingPreparedStackExtendGcpToJSON( + syncReconcileRequestPendingPreparedStackExtendGcp: + SyncReconcileRequestPendingPreparedStackExtendGcp, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseExtendGcp$outboundSchema.parse( - syncReconcileRequestCurrentReleaseExtendGcp, + SyncReconcileRequestPendingPreparedStackExtendGcp$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackExtendGcp, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseExtendPlatforms$Outbound = { +export type SyncReconcileRequestPendingPreparedStackExtendPlatforms$Outbound = { aws?: - | Array + | Array | null | undefined; azure?: - | Array + | Array | null | undefined; gcp?: - | Array + | Array | null | undefined; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseExtendPlatforms$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackExtendPlatforms$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseExtendPlatforms$Outbound, - SyncReconcileRequestCurrentReleaseExtendPlatforms + SyncReconcileRequestPendingPreparedStackExtendPlatforms$Outbound, + SyncReconcileRequestPendingPreparedStackExtendPlatforms > = z.object({ aws: z.nullable( z.array(z.lazy(() => - SyncReconcileRequestCurrentReleaseExtendAw$outboundSchema + SyncReconcileRequestPendingPreparedStackExtendAw$outboundSchema )), ).optional(), azure: z.nullable( z.array(z.lazy(() => - SyncReconcileRequestCurrentReleaseExtendAzure$outboundSchema + SyncReconcileRequestPendingPreparedStackExtendAzure$outboundSchema )), ).optional(), gcp: z.nullable( z.array(z.lazy(() => - SyncReconcileRequestCurrentReleaseExtendGcp$outboundSchema + SyncReconcileRequestPendingPreparedStackExtendGcp$outboundSchema )), ).optional(), }); -export function syncReconcileRequestCurrentReleaseExtendPlatformsToJSON( - syncReconcileRequestCurrentReleaseExtendPlatforms: - SyncReconcileRequestCurrentReleaseExtendPlatforms, +export function syncReconcileRequestPendingPreparedStackExtendPlatformsToJSON( + syncReconcileRequestPendingPreparedStackExtendPlatforms: + SyncReconcileRequestPendingPreparedStackExtendPlatforms, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseExtendPlatforms$outboundSchema.parse( - syncReconcileRequestCurrentReleaseExtendPlatforms, - ), + SyncReconcileRequestPendingPreparedStackExtendPlatforms$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackExtendPlatforms), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseExtend$Outbound = { +export type SyncReconcileRequestPendingPreparedStackExtend$Outbound = { description: string; id: string; - platforms: SyncReconcileRequestCurrentReleaseExtendPlatforms$Outbound; + platforms: SyncReconcileRequestPendingPreparedStackExtendPlatforms$Outbound; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseExtend$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseExtend$Outbound, - SyncReconcileRequestCurrentReleaseExtend -> = z.object({ - description: z.string(), - id: z.string(), - platforms: z.lazy(() => - SyncReconcileRequestCurrentReleaseExtendPlatforms$outboundSchema - ), -}); +export const SyncReconcileRequestPendingPreparedStackExtend$outboundSchema: + z.ZodType< + SyncReconcileRequestPendingPreparedStackExtend$Outbound, + SyncReconcileRequestPendingPreparedStackExtend + > = z.object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncReconcileRequestPendingPreparedStackExtendPlatforms$outboundSchema + ), + }); -export function syncReconcileRequestCurrentReleaseExtendToJSON( - syncReconcileRequestCurrentReleaseExtend: - SyncReconcileRequestCurrentReleaseExtend, +export function syncReconcileRequestPendingPreparedStackExtendToJSON( + syncReconcileRequestPendingPreparedStackExtend: + SyncReconcileRequestPendingPreparedStackExtend, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseExtend$outboundSchema.parse( - syncReconcileRequestCurrentReleaseExtend, + SyncReconcileRequestPendingPreparedStackExtend$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackExtend, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseExtendUnion$Outbound = - | SyncReconcileRequestCurrentReleaseExtend$Outbound +export type SyncReconcileRequestPendingPreparedStackExtendUnion$Outbound = + | SyncReconcileRequestPendingPreparedStackExtend$Outbound | string; /** @internal */ -export const SyncReconcileRequestCurrentReleaseExtendUnion$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackExtendUnion$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseExtendUnion$Outbound, - SyncReconcileRequestCurrentReleaseExtendUnion + SyncReconcileRequestPendingPreparedStackExtendUnion$Outbound, + SyncReconcileRequestPendingPreparedStackExtendUnion > = z.union([ - z.lazy(() => SyncReconcileRequestCurrentReleaseExtend$outboundSchema), + z.lazy(() => SyncReconcileRequestPendingPreparedStackExtend$outboundSchema), z.string(), ]); -export function syncReconcileRequestCurrentReleaseExtendUnionToJSON( - syncReconcileRequestCurrentReleaseExtendUnion: - SyncReconcileRequestCurrentReleaseExtendUnion, +export function syncReconcileRequestPendingPreparedStackExtendUnionToJSON( + syncReconcileRequestPendingPreparedStackExtendUnion: + SyncReconcileRequestPendingPreparedStackExtendUnion, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseExtendUnion$outboundSchema.parse( - syncReconcileRequestCurrentReleaseExtendUnion, + SyncReconcileRequestPendingPreparedStackExtendUnion$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackExtendUnion, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseManagement1$Outbound = { +export type SyncReconcileRequestPendingPreparedStackManagement1$Outbound = { extend: { [k: string]: Array< - SyncReconcileRequestCurrentReleaseExtend$Outbound | string + SyncReconcileRequestPendingPreparedStackExtend$Outbound | string >; }; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseManagement1$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackManagement1$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseManagement1$Outbound, - SyncReconcileRequestCurrentReleaseManagement1 + SyncReconcileRequestPendingPreparedStackManagement1$Outbound, + SyncReconcileRequestPendingPreparedStackManagement1 > = z.object({ extend: z.record( z.string(), z.array(z.union([ - z.lazy(() => SyncReconcileRequestCurrentReleaseExtend$outboundSchema), + z.lazy(() => + SyncReconcileRequestPendingPreparedStackExtend$outboundSchema + ), z.string(), ])), ), }); -export function syncReconcileRequestCurrentReleaseManagement1ToJSON( - syncReconcileRequestCurrentReleaseManagement1: - SyncReconcileRequestCurrentReleaseManagement1, +export function syncReconcileRequestPendingPreparedStackManagement1ToJSON( + syncReconcileRequestPendingPreparedStackManagement1: + SyncReconcileRequestPendingPreparedStackManagement1, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseManagement1$outboundSchema.parse( - syncReconcileRequestCurrentReleaseManagement1, + SyncReconcileRequestPendingPreparedStackManagement1$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackManagement1, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseManagementUnion$Outbound = - | SyncReconcileRequestCurrentReleaseManagement1$Outbound - | SyncReconcileRequestCurrentReleaseManagement2$Outbound +export type SyncReconcileRequestPendingPreparedStackManagementUnion$Outbound = + | SyncReconcileRequestPendingPreparedStackManagement1$Outbound + | SyncReconcileRequestPendingPreparedStackManagement2$Outbound | string; /** @internal */ -export const SyncReconcileRequestCurrentReleaseManagementUnion$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackManagementUnion$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseManagementUnion$Outbound, - SyncReconcileRequestCurrentReleaseManagementUnion + SyncReconcileRequestPendingPreparedStackManagementUnion$Outbound, + SyncReconcileRequestPendingPreparedStackManagementUnion > = z.union([ - z.lazy(() => SyncReconcileRequestCurrentReleaseManagement1$outboundSchema), - z.lazy(() => SyncReconcileRequestCurrentReleaseManagement2$outboundSchema), - SyncReconcileRequestCurrentReleaseManagementEnum$outboundSchema, + z.lazy(() => + SyncReconcileRequestPendingPreparedStackManagement1$outboundSchema + ), + z.lazy(() => + SyncReconcileRequestPendingPreparedStackManagement2$outboundSchema + ), + SyncReconcileRequestPendingPreparedStackManagementEnum$outboundSchema, ]); -export function syncReconcileRequestCurrentReleaseManagementUnionToJSON( - syncReconcileRequestCurrentReleaseManagementUnion: - SyncReconcileRequestCurrentReleaseManagementUnion, +export function syncReconcileRequestPendingPreparedStackManagementUnionToJSON( + syncReconcileRequestPendingPreparedStackManagementUnion: + SyncReconcileRequestPendingPreparedStackManagementUnion, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseManagementUnion$outboundSchema.parse( - syncReconcileRequestCurrentReleaseManagementUnion, - ), + SyncReconcileRequestPendingPreparedStackManagementUnion$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackManagementUnion), ); } /** @internal */ -export type CurrentReleaseProfileStateAwResource$Outbound = { +export type PendingPreparedStackProfileStateAwResource$Outbound = { condition?: { [k: string]: { [k: string]: string } } | null | undefined; resources: Array; }; /** @internal */ -export const CurrentReleaseProfileStateAwResource$outboundSchema: z.ZodType< - CurrentReleaseProfileStateAwResource$Outbound, - CurrentReleaseProfileStateAwResource -> = z.object({ - condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) - .optional(), - resources: z.array(z.string()), -}); +export const PendingPreparedStackProfileStateAwResource$outboundSchema: + z.ZodType< + PendingPreparedStackProfileStateAwResource$Outbound, + PendingPreparedStackProfileStateAwResource + > = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function currentReleaseProfileStateAwResourceToJSON( - currentReleaseProfileStateAwResource: CurrentReleaseProfileStateAwResource, +export function pendingPreparedStackProfileStateAwResourceToJSON( + pendingPreparedStackProfileStateAwResource: + PendingPreparedStackProfileStateAwResource, ): string { return JSON.stringify( - CurrentReleaseProfileStateAwResource$outboundSchema.parse( - currentReleaseProfileStateAwResource, + PendingPreparedStackProfileStateAwResource$outboundSchema.parse( + pendingPreparedStackProfileStateAwResource, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseProfileAwStack$Outbound = { +export type SyncReconcileRequestPendingPreparedStackProfileAwStack$Outbound = { condition?: { [k: string]: { [k: string]: string } } | null | undefined; resources: Array; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseProfileAwStack$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackProfileAwStack$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseProfileAwStack$Outbound, - SyncReconcileRequestCurrentReleaseProfileAwStack + SyncReconcileRequestPendingPreparedStackProfileAwStack$Outbound, + SyncReconcileRequestPendingPreparedStackProfileAwStack > = z.object({ condition: z.nullable( z.record(z.string(), z.record(z.string(), z.string())), @@ -14416,55 +19972,57 @@ export const SyncReconcileRequestCurrentReleaseProfileAwStack$outboundSchema: resources: z.array(z.string()), }); -export function syncReconcileRequestCurrentReleaseProfileAwStackToJSON( - syncReconcileRequestCurrentReleaseProfileAwStack: - SyncReconcileRequestCurrentReleaseProfileAwStack, +export function syncReconcileRequestPendingPreparedStackProfileAwStackToJSON( + syncReconcileRequestPendingPreparedStackProfileAwStack: + SyncReconcileRequestPendingPreparedStackProfileAwStack, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseProfileAwStack$outboundSchema.parse( - syncReconcileRequestCurrentReleaseProfileAwStack, + SyncReconcileRequestPendingPreparedStackProfileAwStack$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackProfileAwStack, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseProfileAwBinding$Outbound = { - resource?: CurrentReleaseProfileStateAwResource$Outbound | undefined; - stack?: SyncReconcileRequestCurrentReleaseProfileAwStack$Outbound | undefined; -}; +export type SyncReconcileRequestPendingPreparedStackProfileAwBinding$Outbound = + { + resource?: PendingPreparedStackProfileStateAwResource$Outbound | undefined; + stack?: + | SyncReconcileRequestPendingPreparedStackProfileAwStack$Outbound + | undefined; + }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseProfileAwBinding$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackProfileAwBinding$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseProfileAwBinding$Outbound, - SyncReconcileRequestCurrentReleaseProfileAwBinding + SyncReconcileRequestPendingPreparedStackProfileAwBinding$Outbound, + SyncReconcileRequestPendingPreparedStackProfileAwBinding > = z.object({ - resource: z.lazy(() => CurrentReleaseProfileStateAwResource$outboundSchema) - .optional(), + resource: z.lazy(() => + PendingPreparedStackProfileStateAwResource$outboundSchema + ).optional(), stack: z.lazy(() => - SyncReconcileRequestCurrentReleaseProfileAwStack$outboundSchema + SyncReconcileRequestPendingPreparedStackProfileAwStack$outboundSchema ).optional(), }); -export function syncReconcileRequestCurrentReleaseProfileAwBindingToJSON( - syncReconcileRequestCurrentReleaseProfileAwBinding: - SyncReconcileRequestCurrentReleaseProfileAwBinding, +export function syncReconcileRequestPendingPreparedStackProfileAwBindingToJSON( + syncReconcileRequestPendingPreparedStackProfileAwBinding: + SyncReconcileRequestPendingPreparedStackProfileAwBinding, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseProfileAwBinding$outboundSchema.parse( - syncReconcileRequestCurrentReleaseProfileAwBinding, - ), + SyncReconcileRequestPendingPreparedStackProfileAwBinding$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackProfileAwBinding), ); } /** @internal */ -export const SyncReconcileRequestCurrentReleaseProfileEffect$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestCurrentReleaseProfileEffect, - ); +export const SyncReconcileRequestPendingPreparedStackProfileEffect$outboundSchema: + z.ZodEnum = z + .enum(SyncReconcileRequestPendingPreparedStackProfileEffect); /** @internal */ -export type SyncReconcileRequestCurrentReleaseProfileAwGrant$Outbound = { +export type SyncReconcileRequestPendingPreparedStackProfileAwGrant$Outbound = { actions?: Array | null | undefined; dataActions?: Array | null | undefined; permissions?: Array | null | undefined; @@ -14473,151 +20031,438 @@ export type SyncReconcileRequestCurrentReleaseProfileAwGrant$Outbound = { }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseProfileAwGrant$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackProfileAwGrant$outboundSchema: + z.ZodType< + SyncReconcileRequestPendingPreparedStackProfileAwGrant$Outbound, + SyncReconcileRequestPendingPreparedStackProfileAwGrant + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileRequestPendingPreparedStackProfileAwGrantToJSON( + syncReconcileRequestPendingPreparedStackProfileAwGrant: + SyncReconcileRequestPendingPreparedStackProfileAwGrant, +): string { + return JSON.stringify( + SyncReconcileRequestPendingPreparedStackProfileAwGrant$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackProfileAwGrant, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestPendingPreparedStackProfileAw$Outbound = { + binding: SyncReconcileRequestPendingPreparedStackProfileAwBinding$Outbound; + description?: string | null | undefined; + effect?: string | undefined; + grant: SyncReconcileRequestPendingPreparedStackProfileAwGrant$Outbound; + label?: string | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestPendingPreparedStackProfileAw$outboundSchema: + z.ZodType< + SyncReconcileRequestPendingPreparedStackProfileAw$Outbound, + SyncReconcileRequestPendingPreparedStackProfileAw + > = z.object({ + binding: z.lazy(() => + SyncReconcileRequestPendingPreparedStackProfileAwBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: SyncReconcileRequestPendingPreparedStackProfileEffect$outboundSchema + .optional(), + grant: z.lazy(() => + SyncReconcileRequestPendingPreparedStackProfileAwGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncReconcileRequestPendingPreparedStackProfileAwToJSON( + syncReconcileRequestPendingPreparedStackProfileAw: + SyncReconcileRequestPendingPreparedStackProfileAw, +): string { + return JSON.stringify( + SyncReconcileRequestPendingPreparedStackProfileAw$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackProfileAw, + ), + ); +} + +/** @internal */ +export type PendingPreparedStackProfileStateAzureResource$Outbound = { + scope: string; +}; + +/** @internal */ +export const PendingPreparedStackProfileStateAzureResource$outboundSchema: + z.ZodType< + PendingPreparedStackProfileStateAzureResource$Outbound, + PendingPreparedStackProfileStateAzureResource + > = z.object({ + scope: z.string(), + }); + +export function pendingPreparedStackProfileStateAzureResourceToJSON( + pendingPreparedStackProfileStateAzureResource: + PendingPreparedStackProfileStateAzureResource, +): string { + return JSON.stringify( + PendingPreparedStackProfileStateAzureResource$outboundSchema.parse( + pendingPreparedStackProfileStateAzureResource, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestPendingPreparedStackProfileAzureStack$Outbound = + { + scope: string; + }; + +/** @internal */ +export const SyncReconcileRequestPendingPreparedStackProfileAzureStack$outboundSchema: + z.ZodType< + SyncReconcileRequestPendingPreparedStackProfileAzureStack$Outbound, + SyncReconcileRequestPendingPreparedStackProfileAzureStack + > = z.object({ + scope: z.string(), + }); + +export function syncReconcileRequestPendingPreparedStackProfileAzureStackToJSON( + syncReconcileRequestPendingPreparedStackProfileAzureStack: + SyncReconcileRequestPendingPreparedStackProfileAzureStack, +): string { + return JSON.stringify( + SyncReconcileRequestPendingPreparedStackProfileAzureStack$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackProfileAzureStack), + ); +} + +/** @internal */ +export type SyncReconcileRequestPendingPreparedStackProfileAzureBinding$Outbound = + { + resource?: + | PendingPreparedStackProfileStateAzureResource$Outbound + | undefined; + stack?: + | SyncReconcileRequestPendingPreparedStackProfileAzureStack$Outbound + | undefined; + }; + +/** @internal */ +export const SyncReconcileRequestPendingPreparedStackProfileAzureBinding$outboundSchema: + z.ZodType< + SyncReconcileRequestPendingPreparedStackProfileAzureBinding$Outbound, + SyncReconcileRequestPendingPreparedStackProfileAzureBinding + > = z.object({ + resource: z.lazy(() => + PendingPreparedStackProfileStateAzureResource$outboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileRequestPendingPreparedStackProfileAzureStack$outboundSchema + ).optional(), + }); + +export function syncReconcileRequestPendingPreparedStackProfileAzureBindingToJSON( + syncReconcileRequestPendingPreparedStackProfileAzureBinding: + SyncReconcileRequestPendingPreparedStackProfileAzureBinding, +): string { + return JSON.stringify( + SyncReconcileRequestPendingPreparedStackProfileAzureBinding$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackProfileAzureBinding), + ); +} + +/** @internal */ +export type SyncReconcileRequestPendingPreparedStackProfileAzureGrant$Outbound = + { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; + }; + +/** @internal */ +export const SyncReconcileRequestPendingPreparedStackProfileAzureGrant$outboundSchema: + z.ZodType< + SyncReconcileRequestPendingPreparedStackProfileAzureGrant$Outbound, + SyncReconcileRequestPendingPreparedStackProfileAzureGrant + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileRequestPendingPreparedStackProfileAzureGrantToJSON( + syncReconcileRequestPendingPreparedStackProfileAzureGrant: + SyncReconcileRequestPendingPreparedStackProfileAzureGrant, +): string { + return JSON.stringify( + SyncReconcileRequestPendingPreparedStackProfileAzureGrant$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackProfileAzureGrant), + ); +} + +/** @internal */ +export type SyncReconcileRequestPendingPreparedStackProfileAzure$Outbound = { + binding: SyncReconcileRequestPendingPreparedStackProfileAzureBinding$Outbound; + description?: string | null | undefined; + grant: SyncReconcileRequestPendingPreparedStackProfileAzureGrant$Outbound; + label?: string | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestPendingPreparedStackProfileAzure$outboundSchema: + z.ZodType< + SyncReconcileRequestPendingPreparedStackProfileAzure$Outbound, + SyncReconcileRequestPendingPreparedStackProfileAzure + > = z.object({ + binding: z.lazy(() => + SyncReconcileRequestPendingPreparedStackProfileAzureBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncReconcileRequestPendingPreparedStackProfileAzureGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncReconcileRequestPendingPreparedStackProfileAzureToJSON( + syncReconcileRequestPendingPreparedStackProfileAzure: + SyncReconcileRequestPendingPreparedStackProfileAzure, +): string { + return JSON.stringify( + SyncReconcileRequestPendingPreparedStackProfileAzure$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackProfileAzure, + ), + ); +} + +/** @internal */ +export type PendingPreparedStackProfileConditionStateResource$Outbound = { + expression: string; + title: string; +}; + +/** @internal */ +export const PendingPreparedStackProfileConditionStateResource$outboundSchema: + z.ZodType< + PendingPreparedStackProfileConditionStateResource$Outbound, + PendingPreparedStackProfileConditionStateResource + > = z.object({ + expression: z.string(), + title: z.string(), + }); + +export function pendingPreparedStackProfileConditionStateResourceToJSON( + pendingPreparedStackProfileConditionStateResource: + PendingPreparedStackProfileConditionStateResource, +): string { + return JSON.stringify( + PendingPreparedStackProfileConditionStateResource$outboundSchema.parse( + pendingPreparedStackProfileConditionStateResource, + ), + ); +} + +/** @internal */ +export type PendingPreparedStackProfileStateResourceConditionUnion$Outbound = + | PendingPreparedStackProfileConditionStateResource$Outbound + | any; + +/** @internal */ +export const PendingPreparedStackProfileStateResourceConditionUnion$outboundSchema: + z.ZodType< + PendingPreparedStackProfileStateResourceConditionUnion$Outbound, + PendingPreparedStackProfileStateResourceConditionUnion + > = z.union([ + z.lazy(() => + PendingPreparedStackProfileConditionStateResource$outboundSchema + ), + z.any(), + ]); + +export function pendingPreparedStackProfileStateResourceConditionUnionToJSON( + pendingPreparedStackProfileStateResourceConditionUnion: + PendingPreparedStackProfileStateResourceConditionUnion, +): string { + return JSON.stringify( + PendingPreparedStackProfileStateResourceConditionUnion$outboundSchema.parse( + pendingPreparedStackProfileStateResourceConditionUnion, + ), + ); +} + +/** @internal */ +export type PendingPreparedStackProfileStateGcpResource$Outbound = { + condition?: + | PendingPreparedStackProfileConditionStateResource$Outbound + | any + | null + | undefined; + scope: string; +}; + +/** @internal */ +export const PendingPreparedStackProfileStateGcpResource$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseProfileAwGrant$Outbound, - SyncReconcileRequestCurrentReleaseProfileAwGrant + PendingPreparedStackProfileStateGcpResource$Outbound, + PendingPreparedStackProfileStateGcpResource > = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), + condition: z.nullable( + z.union([ + z.lazy(() => + PendingPreparedStackProfileConditionStateResource$outboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), }); -export function syncReconcileRequestCurrentReleaseProfileAwGrantToJSON( - syncReconcileRequestCurrentReleaseProfileAwGrant: - SyncReconcileRequestCurrentReleaseProfileAwGrant, +export function pendingPreparedStackProfileStateGcpResourceToJSON( + pendingPreparedStackProfileStateGcpResource: + PendingPreparedStackProfileStateGcpResource, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseProfileAwGrant$outboundSchema.parse( - syncReconcileRequestCurrentReleaseProfileAwGrant, + PendingPreparedStackProfileStateGcpResource$outboundSchema.parse( + pendingPreparedStackProfileStateGcpResource, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseProfileAw$Outbound = { - binding: SyncReconcileRequestCurrentReleaseProfileAwBinding$Outbound; - description?: string | null | undefined; - effect?: string | undefined; - grant: SyncReconcileRequestCurrentReleaseProfileAwGrant$Outbound; - label?: string | null | undefined; +export type PendingPreparedStackProfileConditionStateStack$Outbound = { + expression: string; + title: string; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseProfileAw$outboundSchema: +export const PendingPreparedStackProfileConditionStateStack$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseProfileAw$Outbound, - SyncReconcileRequestCurrentReleaseProfileAw + PendingPreparedStackProfileConditionStateStack$Outbound, + PendingPreparedStackProfileConditionStateStack > = z.object({ - binding: z.lazy(() => - SyncReconcileRequestCurrentReleaseProfileAwBinding$outboundSchema - ), - description: z.nullable(z.string()).optional(), - effect: SyncReconcileRequestCurrentReleaseProfileEffect$outboundSchema - .optional(), - grant: z.lazy(() => - SyncReconcileRequestCurrentReleaseProfileAwGrant$outboundSchema - ), - label: z.nullable(z.string()).optional(), + expression: z.string(), + title: z.string(), }); -export function syncReconcileRequestCurrentReleaseProfileAwToJSON( - syncReconcileRequestCurrentReleaseProfileAw: - SyncReconcileRequestCurrentReleaseProfileAw, +export function pendingPreparedStackProfileConditionStateStackToJSON( + pendingPreparedStackProfileConditionStateStack: + PendingPreparedStackProfileConditionStateStack, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseProfileAw$outboundSchema.parse( - syncReconcileRequestCurrentReleaseProfileAw, + PendingPreparedStackProfileConditionStateStack$outboundSchema.parse( + pendingPreparedStackProfileConditionStateStack, ), ); } /** @internal */ -export type CurrentReleaseProfileStateAzureResource$Outbound = { - scope: string; -}; +export type PendingPreparedStackProfileStateStackConditionUnion$Outbound = + | PendingPreparedStackProfileConditionStateStack$Outbound + | any; /** @internal */ -export const CurrentReleaseProfileStateAzureResource$outboundSchema: z.ZodType< - CurrentReleaseProfileStateAzureResource$Outbound, - CurrentReleaseProfileStateAzureResource -> = z.object({ - scope: z.string(), -}); +export const PendingPreparedStackProfileStateStackConditionUnion$outboundSchema: + z.ZodType< + PendingPreparedStackProfileStateStackConditionUnion$Outbound, + PendingPreparedStackProfileStateStackConditionUnion + > = z.union([ + z.lazy(() => PendingPreparedStackProfileConditionStateStack$outboundSchema), + z.any(), + ]); -export function currentReleaseProfileStateAzureResourceToJSON( - currentReleaseProfileStateAzureResource: - CurrentReleaseProfileStateAzureResource, +export function pendingPreparedStackProfileStateStackConditionUnionToJSON( + pendingPreparedStackProfileStateStackConditionUnion: + PendingPreparedStackProfileStateStackConditionUnion, ): string { return JSON.stringify( - CurrentReleaseProfileStateAzureResource$outboundSchema.parse( - currentReleaseProfileStateAzureResource, + PendingPreparedStackProfileStateStackConditionUnion$outboundSchema.parse( + pendingPreparedStackProfileStateStackConditionUnion, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseProfileAzureStack$Outbound = { +export type SyncReconcileRequestPendingPreparedStackProfileGcpStack$Outbound = { + condition?: + | PendingPreparedStackProfileConditionStateStack$Outbound + | any + | null + | undefined; scope: string; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseProfileAzureStack$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackProfileGcpStack$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseProfileAzureStack$Outbound, - SyncReconcileRequestCurrentReleaseProfileAzureStack + SyncReconcileRequestPendingPreparedStackProfileGcpStack$Outbound, + SyncReconcileRequestPendingPreparedStackProfileGcpStack > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + PendingPreparedStackProfileConditionStateStack$outboundSchema + ), + z.any(), + ]), + ).optional(), scope: z.string(), }); -export function syncReconcileRequestCurrentReleaseProfileAzureStackToJSON( - syncReconcileRequestCurrentReleaseProfileAzureStack: - SyncReconcileRequestCurrentReleaseProfileAzureStack, +export function syncReconcileRequestPendingPreparedStackProfileGcpStackToJSON( + syncReconcileRequestPendingPreparedStackProfileGcpStack: + SyncReconcileRequestPendingPreparedStackProfileGcpStack, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseProfileAzureStack$outboundSchema.parse( - syncReconcileRequestCurrentReleaseProfileAzureStack, - ), + SyncReconcileRequestPendingPreparedStackProfileGcpStack$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackProfileGcpStack), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseProfileAzureBinding$Outbound = { - resource?: CurrentReleaseProfileStateAzureResource$Outbound | undefined; - stack?: - | SyncReconcileRequestCurrentReleaseProfileAzureStack$Outbound - | undefined; -}; +export type SyncReconcileRequestPendingPreparedStackProfileGcpBinding$Outbound = + { + resource?: PendingPreparedStackProfileStateGcpResource$Outbound | undefined; + stack?: + | SyncReconcileRequestPendingPreparedStackProfileGcpStack$Outbound + | undefined; + }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseProfileAzureBinding$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackProfileGcpBinding$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseProfileAzureBinding$Outbound, - SyncReconcileRequestCurrentReleaseProfileAzureBinding + SyncReconcileRequestPendingPreparedStackProfileGcpBinding$Outbound, + SyncReconcileRequestPendingPreparedStackProfileGcpBinding > = z.object({ resource: z.lazy(() => - CurrentReleaseProfileStateAzureResource$outboundSchema + PendingPreparedStackProfileStateGcpResource$outboundSchema ).optional(), stack: z.lazy(() => - SyncReconcileRequestCurrentReleaseProfileAzureStack$outboundSchema + SyncReconcileRequestPendingPreparedStackProfileGcpStack$outboundSchema ).optional(), }); -export function syncReconcileRequestCurrentReleaseProfileAzureBindingToJSON( - syncReconcileRequestCurrentReleaseProfileAzureBinding: - SyncReconcileRequestCurrentReleaseProfileAzureBinding, +export function syncReconcileRequestPendingPreparedStackProfileGcpBindingToJSON( + syncReconcileRequestPendingPreparedStackProfileGcpBinding: + SyncReconcileRequestPendingPreparedStackProfileGcpBinding, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseProfileAzureBinding$outboundSchema.parse( - syncReconcileRequestCurrentReleaseProfileAzureBinding, - ), + SyncReconcileRequestPendingPreparedStackProfileGcpBinding$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackProfileGcpBinding), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseProfileAzureGrant$Outbound = { +export type SyncReconcileRequestPendingPreparedStackProfileGcpGrant$Outbound = { actions?: Array | null | undefined; dataActions?: Array | null | undefined; permissions?: Array | null | undefined; @@ -14626,10 +20471,10 @@ export type SyncReconcileRequestCurrentReleaseProfileAzureGrant$Outbound = { }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseProfileAzureGrant$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackProfileGcpGrant$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseProfileAzureGrant$Outbound, - SyncReconcileRequestCurrentReleaseProfileAzureGrant + SyncReconcileRequestPendingPreparedStackProfileGcpGrant$Outbound, + SyncReconcileRequestPendingPreparedStackProfileGcpGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -14638,1398 +20483,1577 @@ export const SyncReconcileRequestCurrentReleaseProfileAzureGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileRequestCurrentReleaseProfileAzureGrantToJSON( - syncReconcileRequestCurrentReleaseProfileAzureGrant: - SyncReconcileRequestCurrentReleaseProfileAzureGrant, +export function syncReconcileRequestPendingPreparedStackProfileGcpGrantToJSON( + syncReconcileRequestPendingPreparedStackProfileGcpGrant: + SyncReconcileRequestPendingPreparedStackProfileGcpGrant, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseProfileAzureGrant$outboundSchema.parse( - syncReconcileRequestCurrentReleaseProfileAzureGrant, - ), + SyncReconcileRequestPendingPreparedStackProfileGcpGrant$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackProfileGcpGrant), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseProfileAzure$Outbound = { - binding: SyncReconcileRequestCurrentReleaseProfileAzureBinding$Outbound; +export type SyncReconcileRequestPendingPreparedStackProfileGcp$Outbound = { + binding: SyncReconcileRequestPendingPreparedStackProfileGcpBinding$Outbound; description?: string | null | undefined; - grant: SyncReconcileRequestCurrentReleaseProfileAzureGrant$Outbound; + grant: SyncReconcileRequestPendingPreparedStackProfileGcpGrant$Outbound; label?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseProfileAzure$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackProfileGcp$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseProfileAzure$Outbound, - SyncReconcileRequestCurrentReleaseProfileAzure + SyncReconcileRequestPendingPreparedStackProfileGcp$Outbound, + SyncReconcileRequestPendingPreparedStackProfileGcp > = z.object({ binding: z.lazy(() => - SyncReconcileRequestCurrentReleaseProfileAzureBinding$outboundSchema + SyncReconcileRequestPendingPreparedStackProfileGcpBinding$outboundSchema ), description: z.nullable(z.string()).optional(), grant: z.lazy(() => - SyncReconcileRequestCurrentReleaseProfileAzureGrant$outboundSchema + SyncReconcileRequestPendingPreparedStackProfileGcpGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestCurrentReleaseProfileAzureToJSON( - syncReconcileRequestCurrentReleaseProfileAzure: - SyncReconcileRequestCurrentReleaseProfileAzure, +export function syncReconcileRequestPendingPreparedStackProfileGcpToJSON( + syncReconcileRequestPendingPreparedStackProfileGcp: + SyncReconcileRequestPendingPreparedStackProfileGcp, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseProfileAzure$outboundSchema.parse( - syncReconcileRequestCurrentReleaseProfileAzure, + SyncReconcileRequestPendingPreparedStackProfileGcp$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackProfileGcp, ), ); } /** @internal */ -export type CurrentReleaseProfileConditionStateResource$Outbound = { - expression: string; - title: string; +export type SyncReconcileRequestPendingPreparedStackProfilePlatforms$Outbound = + { + aws?: + | Array + | null + | undefined; + azure?: + | Array + | null + | undefined; + gcp?: + | Array + | null + | undefined; + }; + +/** @internal */ +export const SyncReconcileRequestPendingPreparedStackProfilePlatforms$outboundSchema: + z.ZodType< + SyncReconcileRequestPendingPreparedStackProfilePlatforms$Outbound, + SyncReconcileRequestPendingPreparedStackProfilePlatforms + > = z.object({ + aws: z.nullable( + z.array(z.lazy(() => + SyncReconcileRequestPendingPreparedStackProfileAw$outboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + SyncReconcileRequestPendingPreparedStackProfileAzure$outboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + SyncReconcileRequestPendingPreparedStackProfileGcp$outboundSchema + )), + ).optional(), + }); + +export function syncReconcileRequestPendingPreparedStackProfilePlatformsToJSON( + syncReconcileRequestPendingPreparedStackProfilePlatforms: + SyncReconcileRequestPendingPreparedStackProfilePlatforms, +): string { + return JSON.stringify( + SyncReconcileRequestPendingPreparedStackProfilePlatforms$outboundSchema + .parse(syncReconcileRequestPendingPreparedStackProfilePlatforms), + ); +} + +/** @internal */ +export type SyncReconcileRequestPendingPreparedStackProfile$Outbound = { + description: string; + id: string; + platforms: SyncReconcileRequestPendingPreparedStackProfilePlatforms$Outbound; }; /** @internal */ -export const CurrentReleaseProfileConditionStateResource$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackProfile$outboundSchema: z.ZodType< - CurrentReleaseProfileConditionStateResource$Outbound, - CurrentReleaseProfileConditionStateResource + SyncReconcileRequestPendingPreparedStackProfile$Outbound, + SyncReconcileRequestPendingPreparedStackProfile > = z.object({ - expression: z.string(), - title: z.string(), + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncReconcileRequestPendingPreparedStackProfilePlatforms$outboundSchema + ), }); -export function currentReleaseProfileConditionStateResourceToJSON( - currentReleaseProfileConditionStateResource: - CurrentReleaseProfileConditionStateResource, +export function syncReconcileRequestPendingPreparedStackProfileToJSON( + syncReconcileRequestPendingPreparedStackProfile: + SyncReconcileRequestPendingPreparedStackProfile, ): string { return JSON.stringify( - CurrentReleaseProfileConditionStateResource$outboundSchema.parse( - currentReleaseProfileConditionStateResource, + SyncReconcileRequestPendingPreparedStackProfile$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackProfile, ), ); } /** @internal */ -export type CurrentReleaseProfileStateResourceConditionUnion$Outbound = - | CurrentReleaseProfileConditionStateResource$Outbound - | any; +export type SyncReconcileRequestPendingPreparedStackProfileUnion$Outbound = + | SyncReconcileRequestPendingPreparedStackProfile$Outbound + | string; /** @internal */ -export const CurrentReleaseProfileStateResourceConditionUnion$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackProfileUnion$outboundSchema: z.ZodType< - CurrentReleaseProfileStateResourceConditionUnion$Outbound, - CurrentReleaseProfileStateResourceConditionUnion + SyncReconcileRequestPendingPreparedStackProfileUnion$Outbound, + SyncReconcileRequestPendingPreparedStackProfileUnion > = z.union([ - z.lazy(() => CurrentReleaseProfileConditionStateResource$outboundSchema), - z.any(), + z.lazy(() => + SyncReconcileRequestPendingPreparedStackProfile$outboundSchema + ), + z.string(), ]); -export function currentReleaseProfileStateResourceConditionUnionToJSON( - currentReleaseProfileStateResourceConditionUnion: - CurrentReleaseProfileStateResourceConditionUnion, +export function syncReconcileRequestPendingPreparedStackProfileUnionToJSON( + syncReconcileRequestPendingPreparedStackProfileUnion: + SyncReconcileRequestPendingPreparedStackProfileUnion, ): string { return JSON.stringify( - CurrentReleaseProfileStateResourceConditionUnion$outboundSchema.parse( - currentReleaseProfileStateResourceConditionUnion, + SyncReconcileRequestPendingPreparedStackProfileUnion$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackProfileUnion, ), ); } /** @internal */ -export type CurrentReleaseProfileStateGcpResource$Outbound = { - condition?: - | CurrentReleaseProfileConditionStateResource$Outbound - | any - | null +export type SyncReconcileRequestPendingPreparedStackPermissions$Outbound = { + management?: + | SyncReconcileRequestPendingPreparedStackManagement1$Outbound + | SyncReconcileRequestPendingPreparedStackManagement2$Outbound + | string | undefined; - scope: string; + profiles: { + [k: string]: { + [k: string]: Array< + SyncReconcileRequestPendingPreparedStackProfile$Outbound | string + >; + }; + }; }; /** @internal */ -export const CurrentReleaseProfileStateGcpResource$outboundSchema: z.ZodType< - CurrentReleaseProfileStateGcpResource$Outbound, - CurrentReleaseProfileStateGcpResource -> = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => CurrentReleaseProfileConditionStateResource$outboundSchema), - z.any(), - ]), - ).optional(), - scope: z.string(), -}); +export const SyncReconcileRequestPendingPreparedStackPermissions$outboundSchema: + z.ZodType< + SyncReconcileRequestPendingPreparedStackPermissions$Outbound, + SyncReconcileRequestPendingPreparedStackPermissions + > = z.object({ + management: z.union([ + z.lazy(() => + SyncReconcileRequestPendingPreparedStackManagement1$outboundSchema + ), + z.lazy(() => + SyncReconcileRequestPendingPreparedStackManagement2$outboundSchema + ), + SyncReconcileRequestPendingPreparedStackManagementEnum$outboundSchema, + ]).optional(), + profiles: z.record( + z.string(), + z.record( + z.string(), + z.array( + z.union([ + z.lazy(() => + SyncReconcileRequestPendingPreparedStackProfile$outboundSchema + ), + z.string(), + ]), + ), + ), + ), + }); -export function currentReleaseProfileStateGcpResourceToJSON( - currentReleaseProfileStateGcpResource: CurrentReleaseProfileStateGcpResource, +export function syncReconcileRequestPendingPreparedStackPermissionsToJSON( + syncReconcileRequestPendingPreparedStackPermissions: + SyncReconcileRequestPendingPreparedStackPermissions, ): string { return JSON.stringify( - CurrentReleaseProfileStateGcpResource$outboundSchema.parse( - currentReleaseProfileStateGcpResource, + SyncReconcileRequestPendingPreparedStackPermissions$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackPermissions, ), ); } /** @internal */ -export type CurrentReleaseProfileConditionState$Outbound = { - expression: string; - title: string; +export type SyncReconcileRequestPendingPreparedStackConfig$Outbound = { + id: string; + type: string; + [additionalProperties: string]: unknown; }; /** @internal */ -export const CurrentReleaseProfileConditionState$outboundSchema: z.ZodType< - CurrentReleaseProfileConditionState$Outbound, - CurrentReleaseProfileConditionState -> = z.object({ - expression: z.string(), - title: z.string(), -}); +export const SyncReconcileRequestPendingPreparedStackConfig$outboundSchema: + z.ZodType< + SyncReconcileRequestPendingPreparedStackConfig$Outbound, + SyncReconcileRequestPendingPreparedStackConfig + > = z.object({ + id: z.string(), + type: z.string(), + additionalProperties: z.record(z.string(), z.nullable(z.any())).optional(), + }).transform((v) => { + return { + ...v.additionalProperties, + ...remap$(v, { + additionalProperties: null, + }), + }; + }); -export function currentReleaseProfileConditionStateToJSON( - currentReleaseProfileConditionState: CurrentReleaseProfileConditionState, +export function syncReconcileRequestPendingPreparedStackConfigToJSON( + syncReconcileRequestPendingPreparedStackConfig: + SyncReconcileRequestPendingPreparedStackConfig, ): string { return JSON.stringify( - CurrentReleaseProfileConditionState$outboundSchema.parse( - currentReleaseProfileConditionState, + SyncReconcileRequestPendingPreparedStackConfig$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackConfig, ), ); } /** @internal */ -export type CurrentReleaseProfileStateConditionUnion$Outbound = - | CurrentReleaseProfileConditionState$Outbound - | any; +export type SyncReconcileRequestPendingPreparedStackDependency$Outbound = { + id: string; + type: string; +}; /** @internal */ -export const CurrentReleaseProfileStateConditionUnion$outboundSchema: z.ZodType< - CurrentReleaseProfileStateConditionUnion$Outbound, - CurrentReleaseProfileStateConditionUnion -> = z.union([ - z.lazy(() => CurrentReleaseProfileConditionState$outboundSchema), - z.any(), -]); +export const SyncReconcileRequestPendingPreparedStackDependency$outboundSchema: + z.ZodType< + SyncReconcileRequestPendingPreparedStackDependency$Outbound, + SyncReconcileRequestPendingPreparedStackDependency + > = z.object({ + id: z.string(), + type: z.string(), + }); -export function currentReleaseProfileStateConditionUnionToJSON( - currentReleaseProfileStateConditionUnion: - CurrentReleaseProfileStateConditionUnion, +export function syncReconcileRequestPendingPreparedStackDependencyToJSON( + syncReconcileRequestPendingPreparedStackDependency: + SyncReconcileRequestPendingPreparedStackDependency, ): string { return JSON.stringify( - CurrentReleaseProfileStateConditionUnion$outboundSchema.parse( - currentReleaseProfileStateConditionUnion, + SyncReconcileRequestPendingPreparedStackDependency$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackDependency, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseProfileGcpStack$Outbound = { - condition?: - | CurrentReleaseProfileConditionState$Outbound - | any - | null - | undefined; - scope: string; +export const PendingPreparedStackStateLifecycle$outboundSchema: z.ZodEnum< + typeof PendingPreparedStackStateLifecycle +> = z.enum(PendingPreparedStackStateLifecycle); + +/** @internal */ +export type SyncReconcileRequestPendingPreparedStackResources$Outbound = { + config: SyncReconcileRequestPendingPreparedStackConfig$Outbound; + dependencies: Array< + SyncReconcileRequestPendingPreparedStackDependency$Outbound + >; + enabledWhen?: string | null | undefined; + lifecycle: string; + remoteAccess?: boolean | undefined; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseProfileGcpStack$outboundSchema: +export const SyncReconcileRequestPendingPreparedStackResources$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseProfileGcpStack$Outbound, - SyncReconcileRequestCurrentReleaseProfileGcpStack + SyncReconcileRequestPendingPreparedStackResources$Outbound, + SyncReconcileRequestPendingPreparedStackResources > = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => CurrentReleaseProfileConditionState$outboundSchema), - z.any(), - ]), - ).optional(), - scope: z.string(), + config: z.lazy(() => + SyncReconcileRequestPendingPreparedStackConfig$outboundSchema + ), + dependencies: z.array( + z.lazy(() => + SyncReconcileRequestPendingPreparedStackDependency$outboundSchema + ), + ), + enabledWhen: z.nullable(z.string()).optional(), + lifecycle: PendingPreparedStackStateLifecycle$outboundSchema, + remoteAccess: z.boolean().optional(), }); -export function syncReconcileRequestCurrentReleaseProfileGcpStackToJSON( - syncReconcileRequestCurrentReleaseProfileGcpStack: - SyncReconcileRequestCurrentReleaseProfileGcpStack, +export function syncReconcileRequestPendingPreparedStackResourcesToJSON( + syncReconcileRequestPendingPreparedStackResources: + SyncReconcileRequestPendingPreparedStackResources, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseProfileGcpStack$outboundSchema.parse( - syncReconcileRequestCurrentReleaseProfileGcpStack, + SyncReconcileRequestPendingPreparedStackResources$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackResources, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseProfileGcpBinding$Outbound = { - resource?: CurrentReleaseProfileStateGcpResource$Outbound | undefined; - stack?: - | SyncReconcileRequestCurrentReleaseProfileGcpStack$Outbound +export const SyncReconcileRequestPendingPreparedStackSupportedPlatform$outboundSchema: + z.ZodEnum = + z.enum(SyncReconcileRequestPendingPreparedStackSupportedPlatform); + +/** @internal */ +export type SyncReconcileRequestPendingPreparedStack$Outbound = { + id: string; + inputs?: + | Array + | undefined; + permissions?: + | SyncReconcileRequestPendingPreparedStackPermissions$Outbound | undefined; + resources: { + [k: string]: SyncReconcileRequestPendingPreparedStackResources$Outbound; + }; + supportedPlatforms?: Array | null | undefined; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseProfileGcpBinding$outboundSchema: +export const SyncReconcileRequestPendingPreparedStack$outboundSchema: z.ZodType< + SyncReconcileRequestPendingPreparedStack$Outbound, + SyncReconcileRequestPendingPreparedStack +> = z.object({ + id: z.string(), + inputs: z.array( + z.lazy(() => SyncReconcileRequestPendingPreparedStackInput$outboundSchema), + ).optional(), + permissions: z.lazy(() => + SyncReconcileRequestPendingPreparedStackPermissions$outboundSchema + ).optional(), + resources: z.record( + z.string(), + z.lazy(() => + SyncReconcileRequestPendingPreparedStackResources$outboundSchema + ), + ), + supportedPlatforms: z.nullable( + z.array( + SyncReconcileRequestPendingPreparedStackSupportedPlatform$outboundSchema, + ), + ).optional(), +}); + +export function syncReconcileRequestPendingPreparedStackToJSON( + syncReconcileRequestPendingPreparedStack: + SyncReconcileRequestPendingPreparedStack, +): string { + return JSON.stringify( + SyncReconcileRequestPendingPreparedStack$outboundSchema.parse( + syncReconcileRequestPendingPreparedStack, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestPendingPreparedStackUnion$Outbound = + | SyncReconcileRequestPendingPreparedStack$Outbound + | any; + +/** @internal */ +export const SyncReconcileRequestPendingPreparedStackUnion$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseProfileGcpBinding$Outbound, - SyncReconcileRequestCurrentReleaseProfileGcpBinding - > = z.object({ - resource: z.lazy(() => CurrentReleaseProfileStateGcpResource$outboundSchema) - .optional(), - stack: z.lazy(() => - SyncReconcileRequestCurrentReleaseProfileGcpStack$outboundSchema - ).optional(), - }); + SyncReconcileRequestPendingPreparedStackUnion$Outbound, + SyncReconcileRequestPendingPreparedStackUnion + > = z.union([ + z.lazy(() => SyncReconcileRequestPendingPreparedStack$outboundSchema), + z.any(), + ]); -export function syncReconcileRequestCurrentReleaseProfileGcpBindingToJSON( - syncReconcileRequestCurrentReleaseProfileGcpBinding: - SyncReconcileRequestCurrentReleaseProfileGcpBinding, +export function syncReconcileRequestPendingPreparedStackUnionToJSON( + syncReconcileRequestPendingPreparedStackUnion: + SyncReconcileRequestPendingPreparedStackUnion, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseProfileGcpBinding$outboundSchema.parse( - syncReconcileRequestCurrentReleaseProfileGcpBinding, + SyncReconcileRequestPendingPreparedStackUnion$outboundSchema.parse( + syncReconcileRequestPendingPreparedStackUnion, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseProfileGcpGrant$Outbound = { - actions?: Array | null | undefined; - dataActions?: Array | null | undefined; - permissions?: Array | null | undefined; - predefinedRoles?: Array | null | undefined; - residualPermissions?: Array | null | undefined; +export const SyncReconcileRequestPreparedStackTypeStringList$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestPreparedStackTypeStringList, + ); + +/** @internal */ +export type SyncReconcileRequestPreparedStackDefaultStringList$Outbound = { + type: string; + value: Array; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseProfileGcpGrant$outboundSchema: +export const SyncReconcileRequestPreparedStackDefaultStringList$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseProfileGcpGrant$Outbound, - SyncReconcileRequestCurrentReleaseProfileGcpGrant + SyncReconcileRequestPreparedStackDefaultStringList$Outbound, + SyncReconcileRequestPreparedStackDefaultStringList > = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), + type: SyncReconcileRequestPreparedStackTypeStringList$outboundSchema, + value: z.array(z.string()), }); -export function syncReconcileRequestCurrentReleaseProfileGcpGrantToJSON( - syncReconcileRequestCurrentReleaseProfileGcpGrant: - SyncReconcileRequestCurrentReleaseProfileGcpGrant, +export function syncReconcileRequestPreparedStackDefaultStringListToJSON( + syncReconcileRequestPreparedStackDefaultStringList: + SyncReconcileRequestPreparedStackDefaultStringList, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseProfileGcpGrant$outboundSchema.parse( - syncReconcileRequestCurrentReleaseProfileGcpGrant, + SyncReconcileRequestPreparedStackDefaultStringList$outboundSchema.parse( + syncReconcileRequestPreparedStackDefaultStringList, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseProfileGcp$Outbound = { - binding: SyncReconcileRequestCurrentReleaseProfileGcpBinding$Outbound; - description?: string | null | undefined; - grant: SyncReconcileRequestCurrentReleaseProfileGcpGrant$Outbound; - label?: string | null | undefined; +export const SyncReconcileRequestPreparedStackTypeBoolean$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestPreparedStackTypeBoolean, + ); + +/** @internal */ +export type SyncReconcileRequestPreparedStackDefaultBoolean$Outbound = { + type: string; + value: boolean; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseProfileGcp$outboundSchema: +export const SyncReconcileRequestPreparedStackDefaultBoolean$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseProfileGcp$Outbound, - SyncReconcileRequestCurrentReleaseProfileGcp + SyncReconcileRequestPreparedStackDefaultBoolean$Outbound, + SyncReconcileRequestPreparedStackDefaultBoolean > = z.object({ - binding: z.lazy(() => - SyncReconcileRequestCurrentReleaseProfileGcpBinding$outboundSchema - ), - description: z.nullable(z.string()).optional(), - grant: z.lazy(() => - SyncReconcileRequestCurrentReleaseProfileGcpGrant$outboundSchema - ), - label: z.nullable(z.string()).optional(), + type: SyncReconcileRequestPreparedStackTypeBoolean$outboundSchema, + value: z.boolean(), }); -export function syncReconcileRequestCurrentReleaseProfileGcpToJSON( - syncReconcileRequestCurrentReleaseProfileGcp: - SyncReconcileRequestCurrentReleaseProfileGcp, +export function syncReconcileRequestPreparedStackDefaultBooleanToJSON( + syncReconcileRequestPreparedStackDefaultBoolean: + SyncReconcileRequestPreparedStackDefaultBoolean, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseProfileGcp$outboundSchema.parse( - syncReconcileRequestCurrentReleaseProfileGcp, + SyncReconcileRequestPreparedStackDefaultBoolean$outboundSchema.parse( + syncReconcileRequestPreparedStackDefaultBoolean, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseProfilePlatforms$Outbound = { - aws?: - | Array - | null - | undefined; - azure?: - | Array - | null - | undefined; - gcp?: - | Array - | null - | undefined; +export const SyncReconcileRequestPreparedStackTypeNumber$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestPreparedStackTypeNumber, + ); + +/** @internal */ +export type SyncReconcileRequestPreparedStackDefaultNumber$Outbound = { + type: string; + value: string; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseProfilePlatforms$outboundSchema: +export const SyncReconcileRequestPreparedStackDefaultNumber$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseProfilePlatforms$Outbound, - SyncReconcileRequestCurrentReleaseProfilePlatforms + SyncReconcileRequestPreparedStackDefaultNumber$Outbound, + SyncReconcileRequestPreparedStackDefaultNumber > = z.object({ - aws: z.nullable( - z.array(z.lazy(() => - SyncReconcileRequestCurrentReleaseProfileAw$outboundSchema - )), - ).optional(), - azure: z.nullable( - z.array(z.lazy(() => - SyncReconcileRequestCurrentReleaseProfileAzure$outboundSchema - )), - ).optional(), - gcp: z.nullable( - z.array(z.lazy(() => - SyncReconcileRequestCurrentReleaseProfileGcp$outboundSchema - )), - ).optional(), + type: SyncReconcileRequestPreparedStackTypeNumber$outboundSchema, + value: z.string(), }); -export function syncReconcileRequestCurrentReleaseProfilePlatformsToJSON( - syncReconcileRequestCurrentReleaseProfilePlatforms: - SyncReconcileRequestCurrentReleaseProfilePlatforms, +export function syncReconcileRequestPreparedStackDefaultNumberToJSON( + syncReconcileRequestPreparedStackDefaultNumber: + SyncReconcileRequestPreparedStackDefaultNumber, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseProfilePlatforms$outboundSchema.parse( - syncReconcileRequestCurrentReleaseProfilePlatforms, + SyncReconcileRequestPreparedStackDefaultNumber$outboundSchema.parse( + syncReconcileRequestPreparedStackDefaultNumber, ), ); -} +} + +/** @internal */ +export const SyncReconcileRequestPreparedStackTypeString$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestPreparedStackTypeString, + ); /** @internal */ -export type SyncReconcileRequestCurrentReleaseProfile$Outbound = { - description: string; - id: string; - platforms: SyncReconcileRequestCurrentReleaseProfilePlatforms$Outbound; +export type SyncReconcileRequestPreparedStackDefaultString$Outbound = { + type: string; + value: string; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseProfile$outboundSchema: +export const SyncReconcileRequestPreparedStackDefaultString$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseProfile$Outbound, - SyncReconcileRequestCurrentReleaseProfile + SyncReconcileRequestPreparedStackDefaultString$Outbound, + SyncReconcileRequestPreparedStackDefaultString > = z.object({ - description: z.string(), - id: z.string(), - platforms: z.lazy(() => - SyncReconcileRequestCurrentReleaseProfilePlatforms$outboundSchema - ), + type: SyncReconcileRequestPreparedStackTypeString$outboundSchema, + value: z.string(), }); -export function syncReconcileRequestCurrentReleaseProfileToJSON( - syncReconcileRequestCurrentReleaseProfile: - SyncReconcileRequestCurrentReleaseProfile, +export function syncReconcileRequestPreparedStackDefaultStringToJSON( + syncReconcileRequestPreparedStackDefaultString: + SyncReconcileRequestPreparedStackDefaultString, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseProfile$outboundSchema.parse( - syncReconcileRequestCurrentReleaseProfile, + SyncReconcileRequestPreparedStackDefaultString$outboundSchema.parse( + syncReconcileRequestPreparedStackDefaultString, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseProfileUnion$Outbound = - | SyncReconcileRequestCurrentReleaseProfile$Outbound - | string; +export type SyncReconcileRequestPreparedStackDefaultUnion$Outbound = + | SyncReconcileRequestPreparedStackDefaultString$Outbound + | SyncReconcileRequestPreparedStackDefaultNumber$Outbound + | SyncReconcileRequestPreparedStackDefaultBoolean$Outbound + | SyncReconcileRequestPreparedStackDefaultStringList$Outbound + | any; /** @internal */ -export const SyncReconcileRequestCurrentReleaseProfileUnion$outboundSchema: +export const SyncReconcileRequestPreparedStackDefaultUnion$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseProfileUnion$Outbound, - SyncReconcileRequestCurrentReleaseProfileUnion + SyncReconcileRequestPreparedStackDefaultUnion$Outbound, + SyncReconcileRequestPreparedStackDefaultUnion > = z.union([ - z.lazy(() => SyncReconcileRequestCurrentReleaseProfile$outboundSchema), - z.string(), + z.lazy(() => SyncReconcileRequestPreparedStackDefaultString$outboundSchema), + z.lazy(() => SyncReconcileRequestPreparedStackDefaultNumber$outboundSchema), + z.lazy(() => + SyncReconcileRequestPreparedStackDefaultBoolean$outboundSchema + ), + z.lazy(() => + SyncReconcileRequestPreparedStackDefaultStringList$outboundSchema + ), + z.any(), ]); -export function syncReconcileRequestCurrentReleaseProfileUnionToJSON( - syncReconcileRequestCurrentReleaseProfileUnion: - SyncReconcileRequestCurrentReleaseProfileUnion, +export function syncReconcileRequestPreparedStackDefaultUnionToJSON( + syncReconcileRequestPreparedStackDefaultUnion: + SyncReconcileRequestPreparedStackDefaultUnion, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseProfileUnion$outboundSchema.parse( - syncReconcileRequestCurrentReleaseProfileUnion, + SyncReconcileRequestPreparedStackDefaultUnion$outboundSchema.parse( + syncReconcileRequestPreparedStackDefaultUnion, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleasePermissions$Outbound = { - management?: - | SyncReconcileRequestCurrentReleaseManagement1$Outbound - | SyncReconcileRequestCurrentReleaseManagement2$Outbound - | string - | undefined; - profiles: { - [k: string]: { - [k: string]: Array< - SyncReconcileRequestCurrentReleaseProfile$Outbound | string - >; - }; - }; -}; +export const SyncReconcileRequestPreparedStackTypeEnvEnum$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestPreparedStackTypeEnvEnum, + ); /** @internal */ -export const SyncReconcileRequestCurrentReleasePermissions$outboundSchema: +export type SyncReconcileRequestPreparedStackTypeUnion$Outbound = string | any; + +/** @internal */ +export const SyncReconcileRequestPreparedStackTypeUnion$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleasePermissions$Outbound, - SyncReconcileRequestCurrentReleasePermissions - > = z.object({ - management: z.union([ - z.lazy(() => - SyncReconcileRequestCurrentReleaseManagement1$outboundSchema - ), - z.lazy(() => - SyncReconcileRequestCurrentReleaseManagement2$outboundSchema - ), - SyncReconcileRequestCurrentReleaseManagementEnum$outboundSchema, - ]).optional(), - profiles: z.record( - z.string(), - z.record( - z.string(), - z.array( - z.union([ - z.lazy(() => - SyncReconcileRequestCurrentReleaseProfile$outboundSchema - ), - z.string(), - ]), - ), - ), - ), - }); + SyncReconcileRequestPreparedStackTypeUnion$Outbound, + SyncReconcileRequestPreparedStackTypeUnion + > = z.union([ + SyncReconcileRequestPreparedStackTypeEnvEnum$outboundSchema, + z.any(), + ]); -export function syncReconcileRequestCurrentReleasePermissionsToJSON( - syncReconcileRequestCurrentReleasePermissions: - SyncReconcileRequestCurrentReleasePermissions, +export function syncReconcileRequestPreparedStackTypeUnionToJSON( + syncReconcileRequestPreparedStackTypeUnion: + SyncReconcileRequestPreparedStackTypeUnion, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleasePermissions$outboundSchema.parse( - syncReconcileRequestCurrentReleasePermissions, + SyncReconcileRequestPreparedStackTypeUnion$outboundSchema.parse( + syncReconcileRequestPreparedStackTypeUnion, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseConfig$Outbound = { - id: string; - type: string; - [additionalProperties: string]: unknown; +export type SyncReconcileRequestPreparedStackEnv$Outbound = { + name: string; + targetResources?: Array | null | undefined; + type?: string | any | null | undefined; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseConfig$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseConfig$Outbound, - SyncReconcileRequestCurrentReleaseConfig +export const SyncReconcileRequestPreparedStackEnv$outboundSchema: z.ZodType< + SyncReconcileRequestPreparedStackEnv$Outbound, + SyncReconcileRequestPreparedStackEnv > = z.object({ - id: z.string(), - type: z.string(), - additionalProperties: z.record(z.string(), z.nullable(z.any())).optional(), -}).transform((v) => { - return { - ...v.additionalProperties, - ...remap$(v, { - additionalProperties: null, - }), - }; + name: z.string(), + targetResources: z.nullable(z.array(z.string())).optional(), + type: z.nullable( + z.union([ + SyncReconcileRequestPreparedStackTypeEnvEnum$outboundSchema, + z.any(), + ]), + ).optional(), }); -export function syncReconcileRequestCurrentReleaseConfigToJSON( - syncReconcileRequestCurrentReleaseConfig: - SyncReconcileRequestCurrentReleaseConfig, +export function syncReconcileRequestPreparedStackEnvToJSON( + syncReconcileRequestPreparedStackEnv: SyncReconcileRequestPreparedStackEnv, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseConfig$outboundSchema.parse( - syncReconcileRequestCurrentReleaseConfig, + SyncReconcileRequestPreparedStackEnv$outboundSchema.parse( + syncReconcileRequestPreparedStackEnv, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseDependency$Outbound = { - id: string; - type: string; +export const PreparedStackStateKind$outboundSchema: z.ZodEnum< + typeof PreparedStackStateKind +> = z.enum(PreparedStackStateKind); + +/** @internal */ +export const SyncReconcileRequestPreparedStackPlatform$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestPreparedStackPlatform, + ); + +/** @internal */ +export const SyncReconcileRequestPreparedStackProvidedBy$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestPreparedStackProvidedBy, + ); + +/** @internal */ +export type SyncReconcileRequestPreparedStackValidation$Outbound = { + format?: string | null | undefined; + max?: string | null | undefined; + maxItems?: number | null | undefined; + maxLength?: number | null | undefined; + min?: string | null | undefined; + minItems?: number | null | undefined; + minLength?: number | null | undefined; + pattern?: string | null | undefined; + values?: Array | null | undefined; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseDependency$outboundSchema: +export const SyncReconcileRequestPreparedStackValidation$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseDependency$Outbound, - SyncReconcileRequestCurrentReleaseDependency + SyncReconcileRequestPreparedStackValidation$Outbound, + SyncReconcileRequestPreparedStackValidation > = z.object({ - id: z.string(), - type: z.string(), + format: z.nullable(z.string()).optional(), + max: z.nullable(z.string()).optional(), + maxItems: z.nullable(z.int()).optional(), + maxLength: z.nullable(z.int()).optional(), + min: z.nullable(z.string()).optional(), + minItems: z.nullable(z.int()).optional(), + minLength: z.nullable(z.int()).optional(), + pattern: z.nullable(z.string()).optional(), + values: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileRequestCurrentReleaseDependencyToJSON( - syncReconcileRequestCurrentReleaseDependency: - SyncReconcileRequestCurrentReleaseDependency, +export function syncReconcileRequestPreparedStackValidationToJSON( + syncReconcileRequestPreparedStackValidation: + SyncReconcileRequestPreparedStackValidation, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseDependency$outboundSchema.parse( - syncReconcileRequestCurrentReleaseDependency, + SyncReconcileRequestPreparedStackValidation$outboundSchema.parse( + syncReconcileRequestPreparedStackValidation, ), ); } /** @internal */ -export const CurrentReleaseStateLifecycle$outboundSchema: z.ZodEnum< - typeof CurrentReleaseStateLifecycle -> = z.enum(CurrentReleaseStateLifecycle); - -/** @internal */ -export type SyncReconcileRequestCurrentReleaseResources$Outbound = { - config: SyncReconcileRequestCurrentReleaseConfig$Outbound; - dependencies: Array; - lifecycle: string; - remoteAccess?: boolean | undefined; -}; +export type SyncReconcileRequestPreparedStackValidationUnion$Outbound = + | SyncReconcileRequestPreparedStackValidation$Outbound + | any; /** @internal */ -export const SyncReconcileRequestCurrentReleaseResources$outboundSchema: +export const SyncReconcileRequestPreparedStackValidationUnion$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseResources$Outbound, - SyncReconcileRequestCurrentReleaseResources - > = z.object({ - config: z.lazy(() => - SyncReconcileRequestCurrentReleaseConfig$outboundSchema - ), - dependencies: z.array( - z.lazy(() => SyncReconcileRequestCurrentReleaseDependency$outboundSchema), - ), - lifecycle: CurrentReleaseStateLifecycle$outboundSchema, - remoteAccess: z.boolean().optional(), - }); + SyncReconcileRequestPreparedStackValidationUnion$Outbound, + SyncReconcileRequestPreparedStackValidationUnion + > = z.union([ + z.lazy(() => SyncReconcileRequestPreparedStackValidation$outboundSchema), + z.any(), + ]); -export function syncReconcileRequestCurrentReleaseResourcesToJSON( - syncReconcileRequestCurrentReleaseResources: - SyncReconcileRequestCurrentReleaseResources, +export function syncReconcileRequestPreparedStackValidationUnionToJSON( + syncReconcileRequestPreparedStackValidationUnion: + SyncReconcileRequestPreparedStackValidationUnion, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseResources$outboundSchema.parse( - syncReconcileRequestCurrentReleaseResources, + SyncReconcileRequestPreparedStackValidationUnion$outboundSchema.parse( + syncReconcileRequestPreparedStackValidationUnion, ), ); } /** @internal */ -export const SyncReconcileRequestCurrentReleaseSupportedPlatform$outboundSchema: - z.ZodEnum = z - .enum(SyncReconcileRequestCurrentReleaseSupportedPlatform); - -/** @internal */ -export type SyncReconcileRequestCurrentReleaseStack$Outbound = { +export type SyncReconcileRequestPreparedStackInput$Outbound = { + default?: + | SyncReconcileRequestPreparedStackDefaultString$Outbound + | SyncReconcileRequestPreparedStackDefaultNumber$Outbound + | SyncReconcileRequestPreparedStackDefaultBoolean$Outbound + | SyncReconcileRequestPreparedStackDefaultStringList$Outbound + | any + | null + | undefined; + description: string; + env?: Array | undefined; id: string; - inputs?: Array | undefined; - permissions?: - | SyncReconcileRequestCurrentReleasePermissions$Outbound + kind: string; + label: string; + placeholder?: string | null | undefined; + platforms?: Array | null | undefined; + providedBy: Array; + required: boolean; + validation?: + | SyncReconcileRequestPreparedStackValidation$Outbound + | any + | null | undefined; - resources: { - [k: string]: SyncReconcileRequestCurrentReleaseResources$Outbound; - }; - supportedPlatforms?: Array | null | undefined; }; /** @internal */ -export const SyncReconcileRequestCurrentReleaseStack$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseStack$Outbound, - SyncReconcileRequestCurrentReleaseStack +export const SyncReconcileRequestPreparedStackInput$outboundSchema: z.ZodType< + SyncReconcileRequestPreparedStackInput$Outbound, + SyncReconcileRequestPreparedStackInput > = z.object({ - id: z.string(), - inputs: z.array( - z.lazy(() => SyncReconcileRequestCurrentReleaseInput$outboundSchema), + default: z.nullable( + z.union([ + z.lazy(() => + SyncReconcileRequestPreparedStackDefaultString$outboundSchema + ), + z.lazy(() => + SyncReconcileRequestPreparedStackDefaultNumber$outboundSchema + ), + z.lazy(() => + SyncReconcileRequestPreparedStackDefaultBoolean$outboundSchema + ), + z.lazy(() => + SyncReconcileRequestPreparedStackDefaultStringList$outboundSchema + ), + z.any(), + ]), ).optional(), - permissions: z.lazy(() => - SyncReconcileRequestCurrentReleasePermissions$outboundSchema + description: z.string(), + env: z.array( + z.lazy(() => SyncReconcileRequestPreparedStackEnv$outboundSchema), ).optional(), - resources: z.record( - z.string(), - z.lazy(() => SyncReconcileRequestCurrentReleaseResources$outboundSchema), + id: z.string(), + kind: PreparedStackStateKind$outboundSchema, + label: z.string(), + placeholder: z.nullable(z.string()).optional(), + platforms: z.nullable( + z.array(SyncReconcileRequestPreparedStackPlatform$outboundSchema), + ).optional(), + providedBy: z.array( + SyncReconcileRequestPreparedStackProvidedBy$outboundSchema, ), - supportedPlatforms: z.nullable( - z.array(SyncReconcileRequestCurrentReleaseSupportedPlatform$outboundSchema), + required: z.boolean(), + validation: z.nullable( + z.union([ + z.lazy(() => SyncReconcileRequestPreparedStackValidation$outboundSchema), + z.any(), + ]), ).optional(), }); -export function syncReconcileRequestCurrentReleaseStackToJSON( - syncReconcileRequestCurrentReleaseStack: - SyncReconcileRequestCurrentReleaseStack, +export function syncReconcileRequestPreparedStackInputToJSON( + syncReconcileRequestPreparedStackInput: + SyncReconcileRequestPreparedStackInput, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseStack$outboundSchema.parse( - syncReconcileRequestCurrentReleaseStack, + SyncReconcileRequestPreparedStackInput$outboundSchema.parse( + syncReconcileRequestPreparedStackInput, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentRelease$Outbound = { - description?: string | null | undefined; - releaseId?: string | null | undefined; - stack: SyncReconcileRequestCurrentReleaseStack$Outbound; - version?: string | null | undefined; +export const SyncReconcileRequestPreparedStackManagementEnum$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestPreparedStackManagementEnum, + ); + +/** @internal */ +export type PreparedStackOverrideStateAwResource$Outbound = { + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + resources: Array; }; /** @internal */ -export const SyncReconcileRequestCurrentRelease$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentRelease$Outbound, - SyncReconcileRequestCurrentRelease +export const PreparedStackOverrideStateAwResource$outboundSchema: z.ZodType< + PreparedStackOverrideStateAwResource$Outbound, + PreparedStackOverrideStateAwResource > = z.object({ - description: z.nullable(z.string()).optional(), - releaseId: z.nullable(z.string()).optional(), - stack: z.lazy(() => SyncReconcileRequestCurrentReleaseStack$outboundSchema), - version: z.nullable(z.string()).optional(), + condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) + .optional(), + resources: z.array(z.string()), }); -export function syncReconcileRequestCurrentReleaseToJSON( - syncReconcileRequestCurrentRelease: SyncReconcileRequestCurrentRelease, +export function preparedStackOverrideStateAwResourceToJSON( + preparedStackOverrideStateAwResource: PreparedStackOverrideStateAwResource, ): string { return JSON.stringify( - SyncReconcileRequestCurrentRelease$outboundSchema.parse( - syncReconcileRequestCurrentRelease, + PreparedStackOverrideStateAwResource$outboundSchema.parse( + preparedStackOverrideStateAwResource, ), ); } /** @internal */ -export type SyncReconcileRequestCurrentReleaseUnion$Outbound = - | SyncReconcileRequestCurrentRelease$Outbound - | any; +export type SyncReconcileRequestPreparedStackOverrideAwStack$Outbound = { + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + resources: Array; +}; /** @internal */ -export const SyncReconcileRequestCurrentReleaseUnion$outboundSchema: z.ZodType< - SyncReconcileRequestCurrentReleaseUnion$Outbound, - SyncReconcileRequestCurrentReleaseUnion -> = z.union([ - z.lazy(() => SyncReconcileRequestCurrentRelease$outboundSchema), - z.any(), -]); +export const SyncReconcileRequestPreparedStackOverrideAwStack$outboundSchema: + z.ZodType< + SyncReconcileRequestPreparedStackOverrideAwStack$Outbound, + SyncReconcileRequestPreparedStackOverrideAwStack + > = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function syncReconcileRequestCurrentReleaseUnionToJSON( - syncReconcileRequestCurrentReleaseUnion: - SyncReconcileRequestCurrentReleaseUnion, +export function syncReconcileRequestPreparedStackOverrideAwStackToJSON( + syncReconcileRequestPreparedStackOverrideAwStack: + SyncReconcileRequestPreparedStackOverrideAwStack, ): string { return JSON.stringify( - SyncReconcileRequestCurrentReleaseUnion$outboundSchema.parse( - syncReconcileRequestCurrentReleaseUnion, + SyncReconcileRequestPreparedStackOverrideAwStack$outboundSchema.parse( + syncReconcileRequestPreparedStackOverrideAwStack, ), ); } /** @internal */ -export const SyncReconcileRequestPlatformTest$outboundSchema: z.ZodEnum< - typeof SyncReconcileRequestPlatformTest -> = z.enum(SyncReconcileRequestPlatformTest); +export type SyncReconcileRequestPreparedStackOverrideAwBinding$Outbound = { + resource?: PreparedStackOverrideStateAwResource$Outbound | undefined; + stack?: SyncReconcileRequestPreparedStackOverrideAwStack$Outbound | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestPreparedStackOverrideAwBinding$outboundSchema: + z.ZodType< + SyncReconcileRequestPreparedStackOverrideAwBinding$Outbound, + SyncReconcileRequestPreparedStackOverrideAwBinding + > = z.object({ + resource: z.lazy(() => PreparedStackOverrideStateAwResource$outboundSchema) + .optional(), + stack: z.lazy(() => + SyncReconcileRequestPreparedStackOverrideAwStack$outboundSchema + ).optional(), + }); + +export function syncReconcileRequestPreparedStackOverrideAwBindingToJSON( + syncReconcileRequestPreparedStackOverrideAwBinding: + SyncReconcileRequestPreparedStackOverrideAwBinding, +): string { + return JSON.stringify( + SyncReconcileRequestPreparedStackOverrideAwBinding$outboundSchema.parse( + syncReconcileRequestPreparedStackOverrideAwBinding, + ), + ); +} + +/** @internal */ +export const SyncReconcileRequestPreparedStackOverrideEffect$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestPreparedStackOverrideEffect, + ); + +/** @internal */ +export type SyncReconcileRequestPreparedStackOverrideAwGrant$Outbound = { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestPreparedStackOverrideAwGrant$outboundSchema: + z.ZodType< + SyncReconcileRequestPreparedStackOverrideAwGrant$Outbound, + SyncReconcileRequestPreparedStackOverrideAwGrant + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileRequestPreparedStackOverrideAwGrantToJSON( + syncReconcileRequestPreparedStackOverrideAwGrant: + SyncReconcileRequestPreparedStackOverrideAwGrant, +): string { + return JSON.stringify( + SyncReconcileRequestPreparedStackOverrideAwGrant$outboundSchema.parse( + syncReconcileRequestPreparedStackOverrideAwGrant, + ), + ); +} /** @internal */ -export type SyncReconcileRequestEnvironmentInfoTest$Outbound = { - testId: string; - platform: string; +export type SyncReconcileRequestPreparedStackOverrideAw$Outbound = { + binding: SyncReconcileRequestPreparedStackOverrideAwBinding$Outbound; + description?: string | null | undefined; + effect?: string | undefined; + grant: SyncReconcileRequestPreparedStackOverrideAwGrant$Outbound; + label?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestEnvironmentInfoTest$outboundSchema: z.ZodType< - SyncReconcileRequestEnvironmentInfoTest$Outbound, - SyncReconcileRequestEnvironmentInfoTest -> = z.object({ - testId: z.string(), - platform: SyncReconcileRequestPlatformTest$outboundSchema, -}); +export const SyncReconcileRequestPreparedStackOverrideAw$outboundSchema: + z.ZodType< + SyncReconcileRequestPreparedStackOverrideAw$Outbound, + SyncReconcileRequestPreparedStackOverrideAw + > = z.object({ + binding: z.lazy(() => + SyncReconcileRequestPreparedStackOverrideAwBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: SyncReconcileRequestPreparedStackOverrideEffect$outboundSchema + .optional(), + grant: z.lazy(() => + SyncReconcileRequestPreparedStackOverrideAwGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function syncReconcileRequestEnvironmentInfoTestToJSON( - syncReconcileRequestEnvironmentInfoTest: - SyncReconcileRequestEnvironmentInfoTest, +export function syncReconcileRequestPreparedStackOverrideAwToJSON( + syncReconcileRequestPreparedStackOverrideAw: + SyncReconcileRequestPreparedStackOverrideAw, ): string { return JSON.stringify( - SyncReconcileRequestEnvironmentInfoTest$outboundSchema.parse( - syncReconcileRequestEnvironmentInfoTest, + SyncReconcileRequestPreparedStackOverrideAw$outboundSchema.parse( + syncReconcileRequestPreparedStackOverrideAw, ), ); } /** @internal */ -export const SyncReconcileRequestPlatformLocal$outboundSchema: z.ZodEnum< - typeof SyncReconcileRequestPlatformLocal -> = z.enum(SyncReconcileRequestPlatformLocal); - -/** @internal */ -export type SyncReconcileRequestEnvironmentInfoLocal$Outbound = { - arch: string; - hostname: string; - os: string; - platform: string; +export type PreparedStackOverrideStateAzureResource$Outbound = { + scope: string; }; /** @internal */ -export const SyncReconcileRequestEnvironmentInfoLocal$outboundSchema: z.ZodType< - SyncReconcileRequestEnvironmentInfoLocal$Outbound, - SyncReconcileRequestEnvironmentInfoLocal +export const PreparedStackOverrideStateAzureResource$outboundSchema: z.ZodType< + PreparedStackOverrideStateAzureResource$Outbound, + PreparedStackOverrideStateAzureResource > = z.object({ - arch: z.string(), - hostname: z.string(), - os: z.string(), - platform: SyncReconcileRequestPlatformLocal$outboundSchema, + scope: z.string(), }); -export function syncReconcileRequestEnvironmentInfoLocalToJSON( - syncReconcileRequestEnvironmentInfoLocal: - SyncReconcileRequestEnvironmentInfoLocal, +export function preparedStackOverrideStateAzureResourceToJSON( + preparedStackOverrideStateAzureResource: + PreparedStackOverrideStateAzureResource, ): string { return JSON.stringify( - SyncReconcileRequestEnvironmentInfoLocal$outboundSchema.parse( - syncReconcileRequestEnvironmentInfoLocal, + PreparedStackOverrideStateAzureResource$outboundSchema.parse( + preparedStackOverrideStateAzureResource, ), ); } /** @internal */ -export const SyncReconcileRequestPlatformAzure$outboundSchema: z.ZodEnum< - typeof SyncReconcileRequestPlatformAzure -> = z.enum(SyncReconcileRequestPlatformAzure); - -/** @internal */ -export type SyncReconcileRequestEnvironmentInfoAzure$Outbound = { - location: string; - subscriptionId: string; - tenantId: string; - platform: string; +export type SyncReconcileRequestPreparedStackOverrideAzureStack$Outbound = { + scope: string; }; /** @internal */ -export const SyncReconcileRequestEnvironmentInfoAzure$outboundSchema: z.ZodType< - SyncReconcileRequestEnvironmentInfoAzure$Outbound, - SyncReconcileRequestEnvironmentInfoAzure -> = z.object({ - location: z.string(), - subscriptionId: z.string(), - tenantId: z.string(), - platform: SyncReconcileRequestPlatformAzure$outboundSchema, -}); +export const SyncReconcileRequestPreparedStackOverrideAzureStack$outboundSchema: + z.ZodType< + SyncReconcileRequestPreparedStackOverrideAzureStack$Outbound, + SyncReconcileRequestPreparedStackOverrideAzureStack + > = z.object({ + scope: z.string(), + }); -export function syncReconcileRequestEnvironmentInfoAzureToJSON( - syncReconcileRequestEnvironmentInfoAzure: - SyncReconcileRequestEnvironmentInfoAzure, +export function syncReconcileRequestPreparedStackOverrideAzureStackToJSON( + syncReconcileRequestPreparedStackOverrideAzureStack: + SyncReconcileRequestPreparedStackOverrideAzureStack, ): string { return JSON.stringify( - SyncReconcileRequestEnvironmentInfoAzure$outboundSchema.parse( - syncReconcileRequestEnvironmentInfoAzure, + SyncReconcileRequestPreparedStackOverrideAzureStack$outboundSchema.parse( + syncReconcileRequestPreparedStackOverrideAzureStack, ), ); } /** @internal */ -export const SyncReconcileRequestPlatformGcp$outboundSchema: z.ZodEnum< - typeof SyncReconcileRequestPlatformGcp -> = z.enum(SyncReconcileRequestPlatformGcp); - -/** @internal */ -export type SyncReconcileRequestEnvironmentInfoGcp$Outbound = { - projectId: string; - projectNumber: string; - region: string; - platform: string; +export type SyncReconcileRequestPreparedStackOverrideAzureBinding$Outbound = { + resource?: PreparedStackOverrideStateAzureResource$Outbound | undefined; + stack?: + | SyncReconcileRequestPreparedStackOverrideAzureStack$Outbound + | undefined; }; /** @internal */ -export const SyncReconcileRequestEnvironmentInfoGcp$outboundSchema: z.ZodType< - SyncReconcileRequestEnvironmentInfoGcp$Outbound, - SyncReconcileRequestEnvironmentInfoGcp -> = z.object({ - projectId: z.string(), - projectNumber: z.string(), - region: z.string(), - platform: SyncReconcileRequestPlatformGcp$outboundSchema, -}); +export const SyncReconcileRequestPreparedStackOverrideAzureBinding$outboundSchema: + z.ZodType< + SyncReconcileRequestPreparedStackOverrideAzureBinding$Outbound, + SyncReconcileRequestPreparedStackOverrideAzureBinding + > = z.object({ + resource: z.lazy(() => + PreparedStackOverrideStateAzureResource$outboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileRequestPreparedStackOverrideAzureStack$outboundSchema + ).optional(), + }); -export function syncReconcileRequestEnvironmentInfoGcpToJSON( - syncReconcileRequestEnvironmentInfoGcp: - SyncReconcileRequestEnvironmentInfoGcp, +export function syncReconcileRequestPreparedStackOverrideAzureBindingToJSON( + syncReconcileRequestPreparedStackOverrideAzureBinding: + SyncReconcileRequestPreparedStackOverrideAzureBinding, ): string { return JSON.stringify( - SyncReconcileRequestEnvironmentInfoGcp$outboundSchema.parse( - syncReconcileRequestEnvironmentInfoGcp, + SyncReconcileRequestPreparedStackOverrideAzureBinding$outboundSchema.parse( + syncReconcileRequestPreparedStackOverrideAzureBinding, ), ); } /** @internal */ -export const SyncReconcileRequestPlatformAws$outboundSchema: z.ZodEnum< - typeof SyncReconcileRequestPlatformAws -> = z.enum(SyncReconcileRequestPlatformAws); - -/** @internal */ -export type SyncReconcileRequestEnvironmentInfoAws$Outbound = { - accountId: string; - region: string; - platform: string; +export type SyncReconcileRequestPreparedStackOverrideAzureGrant$Outbound = { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; }; /** @internal */ -export const SyncReconcileRequestEnvironmentInfoAws$outboundSchema: z.ZodType< - SyncReconcileRequestEnvironmentInfoAws$Outbound, - SyncReconcileRequestEnvironmentInfoAws -> = z.object({ - accountId: z.string(), - region: z.string(), - platform: SyncReconcileRequestPlatformAws$outboundSchema, -}); +export const SyncReconcileRequestPreparedStackOverrideAzureGrant$outboundSchema: + z.ZodType< + SyncReconcileRequestPreparedStackOverrideAzureGrant$Outbound, + SyncReconcileRequestPreparedStackOverrideAzureGrant + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function syncReconcileRequestEnvironmentInfoAwsToJSON( - syncReconcileRequestEnvironmentInfoAws: - SyncReconcileRequestEnvironmentInfoAws, +export function syncReconcileRequestPreparedStackOverrideAzureGrantToJSON( + syncReconcileRequestPreparedStackOverrideAzureGrant: + SyncReconcileRequestPreparedStackOverrideAzureGrant, ): string { return JSON.stringify( - SyncReconcileRequestEnvironmentInfoAws$outboundSchema.parse( - syncReconcileRequestEnvironmentInfoAws, + SyncReconcileRequestPreparedStackOverrideAzureGrant$outboundSchema.parse( + syncReconcileRequestPreparedStackOverrideAzureGrant, ), ); } /** @internal */ -export type SyncReconcileRequestEnvironmentInfoUnion$Outbound = - | SyncReconcileRequestEnvironmentInfoGcp$Outbound - | SyncReconcileRequestEnvironmentInfoAzure$Outbound - | SyncReconcileRequestEnvironmentInfoLocal$Outbound - | SyncReconcileRequestEnvironmentInfoAws$Outbound - | SyncReconcileRequestEnvironmentInfoTest$Outbound - | any; +export type SyncReconcileRequestPreparedStackOverrideAzure$Outbound = { + binding: SyncReconcileRequestPreparedStackOverrideAzureBinding$Outbound; + description?: string | null | undefined; + grant: SyncReconcileRequestPreparedStackOverrideAzureGrant$Outbound; + label?: string | null | undefined; +}; /** @internal */ -export const SyncReconcileRequestEnvironmentInfoUnion$outboundSchema: z.ZodType< - SyncReconcileRequestEnvironmentInfoUnion$Outbound, - SyncReconcileRequestEnvironmentInfoUnion -> = z.union([ - z.lazy(() => SyncReconcileRequestEnvironmentInfoGcp$outboundSchema), - z.lazy(() => SyncReconcileRequestEnvironmentInfoAzure$outboundSchema), - z.lazy(() => SyncReconcileRequestEnvironmentInfoLocal$outboundSchema), - z.lazy(() => SyncReconcileRequestEnvironmentInfoAws$outboundSchema), - z.lazy(() => SyncReconcileRequestEnvironmentInfoTest$outboundSchema), - z.any(), -]); +export const SyncReconcileRequestPreparedStackOverrideAzure$outboundSchema: + z.ZodType< + SyncReconcileRequestPreparedStackOverrideAzure$Outbound, + SyncReconcileRequestPreparedStackOverrideAzure + > = z.object({ + binding: z.lazy(() => + SyncReconcileRequestPreparedStackOverrideAzureBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncReconcileRequestPreparedStackOverrideAzureGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function syncReconcileRequestEnvironmentInfoUnionToJSON( - syncReconcileRequestEnvironmentInfoUnion: - SyncReconcileRequestEnvironmentInfoUnion, +export function syncReconcileRequestPreparedStackOverrideAzureToJSON( + syncReconcileRequestPreparedStackOverrideAzure: + SyncReconcileRequestPreparedStackOverrideAzure, ): string { return JSON.stringify( - SyncReconcileRequestEnvironmentInfoUnion$outboundSchema.parse( - syncReconcileRequestEnvironmentInfoUnion, + SyncReconcileRequestPreparedStackOverrideAzure$outboundSchema.parse( + syncReconcileRequestPreparedStackOverrideAzure, ), ); } /** @internal */ -export type SyncReconcileRequestError$Outbound = { - code: string; - context?: any | null | undefined; - hint?: string | null | undefined; - httpStatusCode?: number | null | undefined; - internal: boolean; - message: string; - retryable: boolean; - source?: any | null | undefined; +export type PreparedStackOverrideConditionStateResource$Outbound = { + expression: string; + title: string; }; /** @internal */ -export const SyncReconcileRequestError$outboundSchema: z.ZodType< - SyncReconcileRequestError$Outbound, - SyncReconcileRequestError -> = z.object({ - code: z.string(), - context: z.nullable(z.any()).optional(), - hint: z.nullable(z.string()).optional(), - httpStatusCode: z.nullable(z.int()).optional(), - internal: z.boolean(), - message: z.string(), - retryable: z.boolean().default(false), - source: z.nullable(z.any()).optional(), -}); +export const PreparedStackOverrideConditionStateResource$outboundSchema: + z.ZodType< + PreparedStackOverrideConditionStateResource$Outbound, + PreparedStackOverrideConditionStateResource + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function syncReconcileRequestErrorToJSON( - syncReconcileRequestError: SyncReconcileRequestError, +export function preparedStackOverrideConditionStateResourceToJSON( + preparedStackOverrideConditionStateResource: + PreparedStackOverrideConditionStateResource, ): string { return JSON.stringify( - SyncReconcileRequestError$outboundSchema.parse(syncReconcileRequestError), + PreparedStackOverrideConditionStateResource$outboundSchema.parse( + preparedStackOverrideConditionStateResource, + ), ); } /** @internal */ -export type SyncReconcileRequestErrorUnion$Outbound = - | SyncReconcileRequestError$Outbound +export type PreparedStackOverrideStateResourceConditionUnion$Outbound = + | PreparedStackOverrideConditionStateResource$Outbound | any; /** @internal */ -export const SyncReconcileRequestErrorUnion$outboundSchema: z.ZodType< - SyncReconcileRequestErrorUnion$Outbound, - SyncReconcileRequestErrorUnion -> = z.union([z.lazy(() => SyncReconcileRequestError$outboundSchema), z.any()]); +export const PreparedStackOverrideStateResourceConditionUnion$outboundSchema: + z.ZodType< + PreparedStackOverrideStateResourceConditionUnion$Outbound, + PreparedStackOverrideStateResourceConditionUnion + > = z.union([ + z.lazy(() => PreparedStackOverrideConditionStateResource$outboundSchema), + z.any(), + ]); -export function syncReconcileRequestErrorUnionToJSON( - syncReconcileRequestErrorUnion: SyncReconcileRequestErrorUnion, +export function preparedStackOverrideStateResourceConditionUnionToJSON( + preparedStackOverrideStateResourceConditionUnion: + PreparedStackOverrideStateResourceConditionUnion, ): string { return JSON.stringify( - SyncReconcileRequestErrorUnion$outboundSchema.parse( - syncReconcileRequestErrorUnion, + PreparedStackOverrideStateResourceConditionUnion$outboundSchema.parse( + preparedStackOverrideStateResourceConditionUnion, ), ); } /** @internal */ -export const SyncReconcileRequestPlatform$outboundSchema: z.ZodEnum< - typeof SyncReconcileRequestPlatform -> = z.enum(SyncReconcileRequestPlatform); - -/** @internal */ -export const SyncReconcileRequestPreparedStackTypeStringList$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestPreparedStackTypeStringList, - ); - -/** @internal */ -export type SyncReconcileRequestPreparedStackDefaultStringList$Outbound = { - type: string; - value: Array; +export type PreparedStackOverrideStateGcpResource$Outbound = { + condition?: + | PreparedStackOverrideConditionStateResource$Outbound + | any + | null + | undefined; + scope: string; }; /** @internal */ -export const SyncReconcileRequestPreparedStackDefaultStringList$outboundSchema: - z.ZodType< - SyncReconcileRequestPreparedStackDefaultStringList$Outbound, - SyncReconcileRequestPreparedStackDefaultStringList - > = z.object({ - type: SyncReconcileRequestPreparedStackTypeStringList$outboundSchema, - value: z.array(z.string()), - }); +export const PreparedStackOverrideStateGcpResource$outboundSchema: z.ZodType< + PreparedStackOverrideStateGcpResource$Outbound, + PreparedStackOverrideStateGcpResource +> = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => PreparedStackOverrideConditionStateResource$outboundSchema), + z.any(), + ]), + ).optional(), + scope: z.string(), +}); -export function syncReconcileRequestPreparedStackDefaultStringListToJSON( - syncReconcileRequestPreparedStackDefaultStringList: - SyncReconcileRequestPreparedStackDefaultStringList, +export function preparedStackOverrideStateGcpResourceToJSON( + preparedStackOverrideStateGcpResource: PreparedStackOverrideStateGcpResource, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackDefaultStringList$outboundSchema.parse( - syncReconcileRequestPreparedStackDefaultStringList, + PreparedStackOverrideStateGcpResource$outboundSchema.parse( + preparedStackOverrideStateGcpResource, ), ); } /** @internal */ -export const SyncReconcileRequestPreparedStackTypeBoolean$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestPreparedStackTypeBoolean, - ); - -/** @internal */ -export type SyncReconcileRequestPreparedStackDefaultBoolean$Outbound = { - type: string; - value: boolean; +export type PreparedStackOverrideConditionStateStack$Outbound = { + expression: string; + title: string; }; /** @internal */ -export const SyncReconcileRequestPreparedStackDefaultBoolean$outboundSchema: - z.ZodType< - SyncReconcileRequestPreparedStackDefaultBoolean$Outbound, - SyncReconcileRequestPreparedStackDefaultBoolean - > = z.object({ - type: SyncReconcileRequestPreparedStackTypeBoolean$outboundSchema, - value: z.boolean(), - }); +export const PreparedStackOverrideConditionStateStack$outboundSchema: z.ZodType< + PreparedStackOverrideConditionStateStack$Outbound, + PreparedStackOverrideConditionStateStack +> = z.object({ + expression: z.string(), + title: z.string(), +}); -export function syncReconcileRequestPreparedStackDefaultBooleanToJSON( - syncReconcileRequestPreparedStackDefaultBoolean: - SyncReconcileRequestPreparedStackDefaultBoolean, +export function preparedStackOverrideConditionStateStackToJSON( + preparedStackOverrideConditionStateStack: + PreparedStackOverrideConditionStateStack, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackDefaultBoolean$outboundSchema.parse( - syncReconcileRequestPreparedStackDefaultBoolean, + PreparedStackOverrideConditionStateStack$outboundSchema.parse( + preparedStackOverrideConditionStateStack, ), ); } /** @internal */ -export const SyncReconcileRequestPreparedStackTypeNumber$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestPreparedStackTypeNumber, - ); - -/** @internal */ -export type SyncReconcileRequestPreparedStackDefaultNumber$Outbound = { - type: string; - value: string; -}; +export type PreparedStackOverrideStateStackConditionUnion$Outbound = + | PreparedStackOverrideConditionStateStack$Outbound + | any; /** @internal */ -export const SyncReconcileRequestPreparedStackDefaultNumber$outboundSchema: +export const PreparedStackOverrideStateStackConditionUnion$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackDefaultNumber$Outbound, - SyncReconcileRequestPreparedStackDefaultNumber - > = z.object({ - type: SyncReconcileRequestPreparedStackTypeNumber$outboundSchema, - value: z.string(), - }); + PreparedStackOverrideStateStackConditionUnion$Outbound, + PreparedStackOverrideStateStackConditionUnion + > = z.union([ + z.lazy(() => PreparedStackOverrideConditionStateStack$outboundSchema), + z.any(), + ]); -export function syncReconcileRequestPreparedStackDefaultNumberToJSON( - syncReconcileRequestPreparedStackDefaultNumber: - SyncReconcileRequestPreparedStackDefaultNumber, +export function preparedStackOverrideStateStackConditionUnionToJSON( + preparedStackOverrideStateStackConditionUnion: + PreparedStackOverrideStateStackConditionUnion, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackDefaultNumber$outboundSchema.parse( - syncReconcileRequestPreparedStackDefaultNumber, + PreparedStackOverrideStateStackConditionUnion$outboundSchema.parse( + preparedStackOverrideStateStackConditionUnion, ), ); } /** @internal */ -export const SyncReconcileRequestPreparedStackTypeString$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestPreparedStackTypeString, - ); - -/** @internal */ -export type SyncReconcileRequestPreparedStackDefaultString$Outbound = { - type: string; - value: string; +export type SyncReconcileRequestPreparedStackOverrideGcpStack$Outbound = { + condition?: + | PreparedStackOverrideConditionStateStack$Outbound + | any + | null + | undefined; + scope: string; }; /** @internal */ -export const SyncReconcileRequestPreparedStackDefaultString$outboundSchema: +export const SyncReconcileRequestPreparedStackOverrideGcpStack$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackDefaultString$Outbound, - SyncReconcileRequestPreparedStackDefaultString + SyncReconcileRequestPreparedStackOverrideGcpStack$Outbound, + SyncReconcileRequestPreparedStackOverrideGcpStack > = z.object({ - type: SyncReconcileRequestPreparedStackTypeString$outboundSchema, - value: z.string(), + condition: z.nullable( + z.union([ + z.lazy(() => PreparedStackOverrideConditionStateStack$outboundSchema), + z.any(), + ]), + ).optional(), + scope: z.string(), }); -export function syncReconcileRequestPreparedStackDefaultStringToJSON( - syncReconcileRequestPreparedStackDefaultString: - SyncReconcileRequestPreparedStackDefaultString, +export function syncReconcileRequestPreparedStackOverrideGcpStackToJSON( + syncReconcileRequestPreparedStackOverrideGcpStack: + SyncReconcileRequestPreparedStackOverrideGcpStack, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackDefaultString$outboundSchema.parse( - syncReconcileRequestPreparedStackDefaultString, + SyncReconcileRequestPreparedStackOverrideGcpStack$outboundSchema.parse( + syncReconcileRequestPreparedStackOverrideGcpStack, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackDefaultUnion$Outbound = - | SyncReconcileRequestPreparedStackDefaultString$Outbound - | SyncReconcileRequestPreparedStackDefaultNumber$Outbound - | SyncReconcileRequestPreparedStackDefaultBoolean$Outbound - | SyncReconcileRequestPreparedStackDefaultStringList$Outbound - | any; +export type SyncReconcileRequestPreparedStackOverrideGcpBinding$Outbound = { + resource?: PreparedStackOverrideStateGcpResource$Outbound | undefined; + stack?: + | SyncReconcileRequestPreparedStackOverrideGcpStack$Outbound + | undefined; +}; /** @internal */ -export const SyncReconcileRequestPreparedStackDefaultUnion$outboundSchema: +export const SyncReconcileRequestPreparedStackOverrideGcpBinding$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackDefaultUnion$Outbound, - SyncReconcileRequestPreparedStackDefaultUnion - > = z.union([ - z.lazy(() => SyncReconcileRequestPreparedStackDefaultString$outboundSchema), - z.lazy(() => SyncReconcileRequestPreparedStackDefaultNumber$outboundSchema), - z.lazy(() => - SyncReconcileRequestPreparedStackDefaultBoolean$outboundSchema - ), - z.lazy(() => - SyncReconcileRequestPreparedStackDefaultStringList$outboundSchema - ), - z.any(), - ]); + SyncReconcileRequestPreparedStackOverrideGcpBinding$Outbound, + SyncReconcileRequestPreparedStackOverrideGcpBinding + > = z.object({ + resource: z.lazy(() => PreparedStackOverrideStateGcpResource$outboundSchema) + .optional(), + stack: z.lazy(() => + SyncReconcileRequestPreparedStackOverrideGcpStack$outboundSchema + ).optional(), + }); -export function syncReconcileRequestPreparedStackDefaultUnionToJSON( - syncReconcileRequestPreparedStackDefaultUnion: - SyncReconcileRequestPreparedStackDefaultUnion, +export function syncReconcileRequestPreparedStackOverrideGcpBindingToJSON( + syncReconcileRequestPreparedStackOverrideGcpBinding: + SyncReconcileRequestPreparedStackOverrideGcpBinding, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackDefaultUnion$outboundSchema.parse( - syncReconcileRequestPreparedStackDefaultUnion, + SyncReconcileRequestPreparedStackOverrideGcpBinding$outboundSchema.parse( + syncReconcileRequestPreparedStackOverrideGcpBinding, ), ); } /** @internal */ -export const SyncReconcileRequestPreparedStackTypeEnvEnum$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestPreparedStackTypeEnvEnum, - ); - -/** @internal */ -export type SyncReconcileRequestPreparedStackTypeUnion$Outbound = string | any; +export type SyncReconcileRequestPreparedStackOverrideGcpGrant$Outbound = { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; +}; /** @internal */ -export const SyncReconcileRequestPreparedStackTypeUnion$outboundSchema: +export const SyncReconcileRequestPreparedStackOverrideGcpGrant$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackTypeUnion$Outbound, - SyncReconcileRequestPreparedStackTypeUnion - > = z.union([ - SyncReconcileRequestPreparedStackTypeEnvEnum$outboundSchema, - z.any(), - ]); + SyncReconcileRequestPreparedStackOverrideGcpGrant$Outbound, + SyncReconcileRequestPreparedStackOverrideGcpGrant + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function syncReconcileRequestPreparedStackTypeUnionToJSON( - syncReconcileRequestPreparedStackTypeUnion: - SyncReconcileRequestPreparedStackTypeUnion, +export function syncReconcileRequestPreparedStackOverrideGcpGrantToJSON( + syncReconcileRequestPreparedStackOverrideGcpGrant: + SyncReconcileRequestPreparedStackOverrideGcpGrant, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackTypeUnion$outboundSchema.parse( - syncReconcileRequestPreparedStackTypeUnion, + SyncReconcileRequestPreparedStackOverrideGcpGrant$outboundSchema.parse( + syncReconcileRequestPreparedStackOverrideGcpGrant, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackEnv$Outbound = { - name: string; - targetResources?: Array | null | undefined; - type?: string | any | null | undefined; +export type SyncReconcileRequestPreparedStackOverrideGcp$Outbound = { + binding: SyncReconcileRequestPreparedStackOverrideGcpBinding$Outbound; + description?: string | null | undefined; + grant: SyncReconcileRequestPreparedStackOverrideGcpGrant$Outbound; + label?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestPreparedStackEnv$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackEnv$Outbound, - SyncReconcileRequestPreparedStackEnv -> = z.object({ - name: z.string(), - targetResources: z.nullable(z.array(z.string())).optional(), - type: z.nullable( - z.union([ - SyncReconcileRequestPreparedStackTypeEnvEnum$outboundSchema, - z.any(), - ]), - ).optional(), -}); +export const SyncReconcileRequestPreparedStackOverrideGcp$outboundSchema: + z.ZodType< + SyncReconcileRequestPreparedStackOverrideGcp$Outbound, + SyncReconcileRequestPreparedStackOverrideGcp + > = z.object({ + binding: z.lazy(() => + SyncReconcileRequestPreparedStackOverrideGcpBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncReconcileRequestPreparedStackOverrideGcpGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function syncReconcileRequestPreparedStackEnvToJSON( - syncReconcileRequestPreparedStackEnv: SyncReconcileRequestPreparedStackEnv, +export function syncReconcileRequestPreparedStackOverrideGcpToJSON( + syncReconcileRequestPreparedStackOverrideGcp: + SyncReconcileRequestPreparedStackOverrideGcp, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackEnv$outboundSchema.parse( - syncReconcileRequestPreparedStackEnv, + SyncReconcileRequestPreparedStackOverrideGcp$outboundSchema.parse( + syncReconcileRequestPreparedStackOverrideGcp, ), ); } /** @internal */ -export const PreparedStackStateKind$outboundSchema: z.ZodEnum< - typeof PreparedStackStateKind -> = z.enum(PreparedStackStateKind); +export type SyncReconcileRequestPreparedStackOverridePlatforms$Outbound = { + aws?: + | Array + | null + | undefined; + azure?: + | Array + | null + | undefined; + gcp?: + | Array + | null + | undefined; +}; /** @internal */ -export const SyncReconcileRequestPreparedStackPlatform$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestPreparedStackPlatform, - ); +export const SyncReconcileRequestPreparedStackOverridePlatforms$outboundSchema: + z.ZodType< + SyncReconcileRequestPreparedStackOverridePlatforms$Outbound, + SyncReconcileRequestPreparedStackOverridePlatforms + > = z.object({ + aws: z.nullable( + z.array(z.lazy(() => + SyncReconcileRequestPreparedStackOverrideAw$outboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + SyncReconcileRequestPreparedStackOverrideAzure$outboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + SyncReconcileRequestPreparedStackOverrideGcp$outboundSchema + )), + ).optional(), + }); -/** @internal */ -export const SyncReconcileRequestPreparedStackProvidedBy$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestPreparedStackProvidedBy, +export function syncReconcileRequestPreparedStackOverridePlatformsToJSON( + syncReconcileRequestPreparedStackOverridePlatforms: + SyncReconcileRequestPreparedStackOverridePlatforms, +): string { + return JSON.stringify( + SyncReconcileRequestPreparedStackOverridePlatforms$outboundSchema.parse( + syncReconcileRequestPreparedStackOverridePlatforms, + ), ); +} /** @internal */ -export type SyncReconcileRequestPreparedStackValidation$Outbound = { - format?: string | null | undefined; - max?: string | null | undefined; - maxItems?: number | null | undefined; - maxLength?: number | null | undefined; - min?: string | null | undefined; - minItems?: number | null | undefined; - minLength?: number | null | undefined; - pattern?: string | null | undefined; - values?: Array | null | undefined; +export type SyncReconcileRequestPreparedStackOverride$Outbound = { + description: string; + id: string; + platforms: SyncReconcileRequestPreparedStackOverridePlatforms$Outbound; }; /** @internal */ -export const SyncReconcileRequestPreparedStackValidation$outboundSchema: +export const SyncReconcileRequestPreparedStackOverride$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackValidation$Outbound, - SyncReconcileRequestPreparedStackValidation + SyncReconcileRequestPreparedStackOverride$Outbound, + SyncReconcileRequestPreparedStackOverride > = z.object({ - format: z.nullable(z.string()).optional(), - max: z.nullable(z.string()).optional(), - maxItems: z.nullable(z.int()).optional(), - maxLength: z.nullable(z.int()).optional(), - min: z.nullable(z.string()).optional(), - minItems: z.nullable(z.int()).optional(), - minLength: z.nullable(z.int()).optional(), - pattern: z.nullable(z.string()).optional(), - values: z.nullable(z.array(z.string())).optional(), + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncReconcileRequestPreparedStackOverridePlatforms$outboundSchema + ), }); -export function syncReconcileRequestPreparedStackValidationToJSON( - syncReconcileRequestPreparedStackValidation: - SyncReconcileRequestPreparedStackValidation, +export function syncReconcileRequestPreparedStackOverrideToJSON( + syncReconcileRequestPreparedStackOverride: + SyncReconcileRequestPreparedStackOverride, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackValidation$outboundSchema.parse( - syncReconcileRequestPreparedStackValidation, + SyncReconcileRequestPreparedStackOverride$outboundSchema.parse( + syncReconcileRequestPreparedStackOverride, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackValidationUnion$Outbound = - | SyncReconcileRequestPreparedStackValidation$Outbound - | any; +export type SyncReconcileRequestPreparedStackOverrideUnion$Outbound = + | SyncReconcileRequestPreparedStackOverride$Outbound + | string; /** @internal */ -export const SyncReconcileRequestPreparedStackValidationUnion$outboundSchema: +export const SyncReconcileRequestPreparedStackOverrideUnion$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackValidationUnion$Outbound, - SyncReconcileRequestPreparedStackValidationUnion + SyncReconcileRequestPreparedStackOverrideUnion$Outbound, + SyncReconcileRequestPreparedStackOverrideUnion > = z.union([ - z.lazy(() => SyncReconcileRequestPreparedStackValidation$outboundSchema), - z.any(), + z.lazy(() => SyncReconcileRequestPreparedStackOverride$outboundSchema), + z.string(), ]); -export function syncReconcileRequestPreparedStackValidationUnionToJSON( - syncReconcileRequestPreparedStackValidationUnion: - SyncReconcileRequestPreparedStackValidationUnion, +export function syncReconcileRequestPreparedStackOverrideUnionToJSON( + syncReconcileRequestPreparedStackOverrideUnion: + SyncReconcileRequestPreparedStackOverrideUnion, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackValidationUnion$outboundSchema.parse( - syncReconcileRequestPreparedStackValidationUnion, + SyncReconcileRequestPreparedStackOverrideUnion$outboundSchema.parse( + syncReconcileRequestPreparedStackOverrideUnion, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackInput$Outbound = { - default?: - | SyncReconcileRequestPreparedStackDefaultString$Outbound - | SyncReconcileRequestPreparedStackDefaultNumber$Outbound - | SyncReconcileRequestPreparedStackDefaultBoolean$Outbound - | SyncReconcileRequestPreparedStackDefaultStringList$Outbound - | any - | null - | undefined; - description: string; - env?: Array | undefined; - id: string; - kind: string; - label: string; - placeholder?: string | null | undefined; - platforms?: Array | null | undefined; - providedBy: Array; - required: boolean; - validation?: - | SyncReconcileRequestPreparedStackValidation$Outbound - | any - | null - | undefined; +export type SyncReconcileRequestPreparedStackManagement2$Outbound = { + override: { + [k: string]: Array< + SyncReconcileRequestPreparedStackOverride$Outbound | string + >; + }; }; /** @internal */ -export const SyncReconcileRequestPreparedStackInput$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackInput$Outbound, - SyncReconcileRequestPreparedStackInput -> = z.object({ - default: z.nullable( - z.union([ - z.lazy(() => - SyncReconcileRequestPreparedStackDefaultString$outboundSchema - ), - z.lazy(() => - SyncReconcileRequestPreparedStackDefaultNumber$outboundSchema - ), - z.lazy(() => - SyncReconcileRequestPreparedStackDefaultBoolean$outboundSchema - ), - z.lazy(() => - SyncReconcileRequestPreparedStackDefaultStringList$outboundSchema - ), - z.any(), - ]), - ).optional(), - description: z.string(), - env: z.array( - z.lazy(() => SyncReconcileRequestPreparedStackEnv$outboundSchema), - ).optional(), - id: z.string(), - kind: PreparedStackStateKind$outboundSchema, - label: z.string(), - placeholder: z.nullable(z.string()).optional(), - platforms: z.nullable( - z.array(SyncReconcileRequestPreparedStackPlatform$outboundSchema), - ).optional(), - providedBy: z.array( - SyncReconcileRequestPreparedStackProvidedBy$outboundSchema, - ), - required: z.boolean(), - validation: z.nullable( - z.union([ - z.lazy(() => SyncReconcileRequestPreparedStackValidation$outboundSchema), - z.any(), - ]), - ).optional(), -}); +export const SyncReconcileRequestPreparedStackManagement2$outboundSchema: + z.ZodType< + SyncReconcileRequestPreparedStackManagement2$Outbound, + SyncReconcileRequestPreparedStackManagement2 + > = z.object({ + override: z.record( + z.string(), + z.array(z.union([ + z.lazy(() => SyncReconcileRequestPreparedStackOverride$outboundSchema), + z.string(), + ])), + ), + }); -export function syncReconcileRequestPreparedStackInputToJSON( - syncReconcileRequestPreparedStackInput: - SyncReconcileRequestPreparedStackInput, +export function syncReconcileRequestPreparedStackManagement2ToJSON( + syncReconcileRequestPreparedStackManagement2: + SyncReconcileRequestPreparedStackManagement2, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackInput$outboundSchema.parse( - syncReconcileRequestPreparedStackInput, + SyncReconcileRequestPreparedStackManagement2$outboundSchema.parse( + syncReconcileRequestPreparedStackManagement2, ), ); } /** @internal */ -export const SyncReconcileRequestPreparedStackManagementEnum$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestPreparedStackManagementEnum, - ); - -/** @internal */ -export type PreparedStackOverrideStateAwResource$Outbound = { +export type PreparedStackExtendStateAwResource$Outbound = { condition?: { [k: string]: { [k: string]: string } } | null | undefined; resources: Array; }; /** @internal */ -export const PreparedStackOverrideStateAwResource$outboundSchema: z.ZodType< - PreparedStackOverrideStateAwResource$Outbound, - PreparedStackOverrideStateAwResource +export const PreparedStackExtendStateAwResource$outboundSchema: z.ZodType< + PreparedStackExtendStateAwResource$Outbound, + PreparedStackExtendStateAwResource > = z.object({ condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) .optional(), resources: z.array(z.string()), }); -export function preparedStackOverrideStateAwResourceToJSON( - preparedStackOverrideStateAwResource: PreparedStackOverrideStateAwResource, +export function preparedStackExtendStateAwResourceToJSON( + preparedStackExtendStateAwResource: PreparedStackExtendStateAwResource, ): string { return JSON.stringify( - PreparedStackOverrideStateAwResource$outboundSchema.parse( - preparedStackOverrideStateAwResource, + PreparedStackExtendStateAwResource$outboundSchema.parse( + preparedStackExtendStateAwResource, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackOverrideAwStack$Outbound = { +export type SyncReconcileRequestPreparedStackExtendAwStack$Outbound = { condition?: { [k: string]: { [k: string]: string } } | null | undefined; resources: Array; }; /** @internal */ -export const SyncReconcileRequestPreparedStackOverrideAwStack$outboundSchema: +export const SyncReconcileRequestPreparedStackExtendAwStack$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackOverrideAwStack$Outbound, - SyncReconcileRequestPreparedStackOverrideAwStack + SyncReconcileRequestPreparedStackExtendAwStack$Outbound, + SyncReconcileRequestPreparedStackExtendAwStack > = z.object({ condition: z.nullable( z.record(z.string(), z.record(z.string(), z.string())), @@ -16037,55 +22061,55 @@ export const SyncReconcileRequestPreparedStackOverrideAwStack$outboundSchema: resources: z.array(z.string()), }); -export function syncReconcileRequestPreparedStackOverrideAwStackToJSON( - syncReconcileRequestPreparedStackOverrideAwStack: - SyncReconcileRequestPreparedStackOverrideAwStack, +export function syncReconcileRequestPreparedStackExtendAwStackToJSON( + syncReconcileRequestPreparedStackExtendAwStack: + SyncReconcileRequestPreparedStackExtendAwStack, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackOverrideAwStack$outboundSchema.parse( - syncReconcileRequestPreparedStackOverrideAwStack, + SyncReconcileRequestPreparedStackExtendAwStack$outboundSchema.parse( + syncReconcileRequestPreparedStackExtendAwStack, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackOverrideAwBinding$Outbound = { - resource?: PreparedStackOverrideStateAwResource$Outbound | undefined; - stack?: SyncReconcileRequestPreparedStackOverrideAwStack$Outbound | undefined; +export type SyncReconcileRequestPreparedStackExtendAwBinding$Outbound = { + resource?: PreparedStackExtendStateAwResource$Outbound | undefined; + stack?: SyncReconcileRequestPreparedStackExtendAwStack$Outbound | undefined; }; /** @internal */ -export const SyncReconcileRequestPreparedStackOverrideAwBinding$outboundSchema: +export const SyncReconcileRequestPreparedStackExtendAwBinding$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackOverrideAwBinding$Outbound, - SyncReconcileRequestPreparedStackOverrideAwBinding + SyncReconcileRequestPreparedStackExtendAwBinding$Outbound, + SyncReconcileRequestPreparedStackExtendAwBinding > = z.object({ - resource: z.lazy(() => PreparedStackOverrideStateAwResource$outboundSchema) + resource: z.lazy(() => PreparedStackExtendStateAwResource$outboundSchema) .optional(), stack: z.lazy(() => - SyncReconcileRequestPreparedStackOverrideAwStack$outboundSchema + SyncReconcileRequestPreparedStackExtendAwStack$outboundSchema ).optional(), }); -export function syncReconcileRequestPreparedStackOverrideAwBindingToJSON( - syncReconcileRequestPreparedStackOverrideAwBinding: - SyncReconcileRequestPreparedStackOverrideAwBinding, +export function syncReconcileRequestPreparedStackExtendAwBindingToJSON( + syncReconcileRequestPreparedStackExtendAwBinding: + SyncReconcileRequestPreparedStackExtendAwBinding, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackOverrideAwBinding$outboundSchema.parse( - syncReconcileRequestPreparedStackOverrideAwBinding, + SyncReconcileRequestPreparedStackExtendAwBinding$outboundSchema.parse( + syncReconcileRequestPreparedStackExtendAwBinding, ), ); } /** @internal */ -export const SyncReconcileRequestPreparedStackOverrideEffect$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestPreparedStackOverrideEffect, +export const SyncReconcileRequestPreparedStackExtendEffect$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestPreparedStackExtendEffect, ); /** @internal */ -export type SyncReconcileRequestPreparedStackOverrideAwGrant$Outbound = { +export type SyncReconcileRequestPreparedStackExtendAwGrant$Outbound = { actions?: Array | null | undefined; dataActions?: Array | null | undefined; permissions?: Array | null | undefined; @@ -16094,10 +22118,10 @@ export type SyncReconcileRequestPreparedStackOverrideAwGrant$Outbound = { }; /** @internal */ -export const SyncReconcileRequestPreparedStackOverrideAwGrant$outboundSchema: +export const SyncReconcileRequestPreparedStackExtendAwGrant$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackOverrideAwGrant$Outbound, - SyncReconcileRequestPreparedStackOverrideAwGrant + SyncReconcileRequestPreparedStackExtendAwGrant$Outbound, + SyncReconcileRequestPreparedStackExtendAwGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -16106,139 +22130,137 @@ export const SyncReconcileRequestPreparedStackOverrideAwGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileRequestPreparedStackOverrideAwGrantToJSON( - syncReconcileRequestPreparedStackOverrideAwGrant: - SyncReconcileRequestPreparedStackOverrideAwGrant, +export function syncReconcileRequestPreparedStackExtendAwGrantToJSON( + syncReconcileRequestPreparedStackExtendAwGrant: + SyncReconcileRequestPreparedStackExtendAwGrant, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackOverrideAwGrant$outboundSchema.parse( - syncReconcileRequestPreparedStackOverrideAwGrant, + SyncReconcileRequestPreparedStackExtendAwGrant$outboundSchema.parse( + syncReconcileRequestPreparedStackExtendAwGrant, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackOverrideAw$Outbound = { - binding: SyncReconcileRequestPreparedStackOverrideAwBinding$Outbound; +export type SyncReconcileRequestPreparedStackExtendAw$Outbound = { + binding: SyncReconcileRequestPreparedStackExtendAwBinding$Outbound; description?: string | null | undefined; effect?: string | undefined; - grant: SyncReconcileRequestPreparedStackOverrideAwGrant$Outbound; + grant: SyncReconcileRequestPreparedStackExtendAwGrant$Outbound; label?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestPreparedStackOverrideAw$outboundSchema: +export const SyncReconcileRequestPreparedStackExtendAw$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackOverrideAw$Outbound, - SyncReconcileRequestPreparedStackOverrideAw + SyncReconcileRequestPreparedStackExtendAw$Outbound, + SyncReconcileRequestPreparedStackExtendAw > = z.object({ binding: z.lazy(() => - SyncReconcileRequestPreparedStackOverrideAwBinding$outboundSchema + SyncReconcileRequestPreparedStackExtendAwBinding$outboundSchema ), description: z.nullable(z.string()).optional(), - effect: SyncReconcileRequestPreparedStackOverrideEffect$outboundSchema + effect: SyncReconcileRequestPreparedStackExtendEffect$outboundSchema .optional(), grant: z.lazy(() => - SyncReconcileRequestPreparedStackOverrideAwGrant$outboundSchema + SyncReconcileRequestPreparedStackExtendAwGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestPreparedStackOverrideAwToJSON( - syncReconcileRequestPreparedStackOverrideAw: - SyncReconcileRequestPreparedStackOverrideAw, +export function syncReconcileRequestPreparedStackExtendAwToJSON( + syncReconcileRequestPreparedStackExtendAw: + SyncReconcileRequestPreparedStackExtendAw, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackOverrideAw$outboundSchema.parse( - syncReconcileRequestPreparedStackOverrideAw, + SyncReconcileRequestPreparedStackExtendAw$outboundSchema.parse( + syncReconcileRequestPreparedStackExtendAw, ), ); } /** @internal */ -export type PreparedStackOverrideStateAzureResource$Outbound = { +export type PreparedStackExtendStateAzureResource$Outbound = { scope: string; }; /** @internal */ -export const PreparedStackOverrideStateAzureResource$outboundSchema: z.ZodType< - PreparedStackOverrideStateAzureResource$Outbound, - PreparedStackOverrideStateAzureResource +export const PreparedStackExtendStateAzureResource$outboundSchema: z.ZodType< + PreparedStackExtendStateAzureResource$Outbound, + PreparedStackExtendStateAzureResource > = z.object({ scope: z.string(), }); -export function preparedStackOverrideStateAzureResourceToJSON( - preparedStackOverrideStateAzureResource: - PreparedStackOverrideStateAzureResource, +export function preparedStackExtendStateAzureResourceToJSON( + preparedStackExtendStateAzureResource: PreparedStackExtendStateAzureResource, ): string { return JSON.stringify( - PreparedStackOverrideStateAzureResource$outboundSchema.parse( - preparedStackOverrideStateAzureResource, + PreparedStackExtendStateAzureResource$outboundSchema.parse( + preparedStackExtendStateAzureResource, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackOverrideAzureStack$Outbound = { +export type SyncReconcileRequestPreparedStackExtendAzureStack$Outbound = { scope: string; }; /** @internal */ -export const SyncReconcileRequestPreparedStackOverrideAzureStack$outboundSchema: +export const SyncReconcileRequestPreparedStackExtendAzureStack$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackOverrideAzureStack$Outbound, - SyncReconcileRequestPreparedStackOverrideAzureStack + SyncReconcileRequestPreparedStackExtendAzureStack$Outbound, + SyncReconcileRequestPreparedStackExtendAzureStack > = z.object({ scope: z.string(), }); -export function syncReconcileRequestPreparedStackOverrideAzureStackToJSON( - syncReconcileRequestPreparedStackOverrideAzureStack: - SyncReconcileRequestPreparedStackOverrideAzureStack, +export function syncReconcileRequestPreparedStackExtendAzureStackToJSON( + syncReconcileRequestPreparedStackExtendAzureStack: + SyncReconcileRequestPreparedStackExtendAzureStack, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackOverrideAzureStack$outboundSchema.parse( - syncReconcileRequestPreparedStackOverrideAzureStack, + SyncReconcileRequestPreparedStackExtendAzureStack$outboundSchema.parse( + syncReconcileRequestPreparedStackExtendAzureStack, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackOverrideAzureBinding$Outbound = { - resource?: PreparedStackOverrideStateAzureResource$Outbound | undefined; +export type SyncReconcileRequestPreparedStackExtendAzureBinding$Outbound = { + resource?: PreparedStackExtendStateAzureResource$Outbound | undefined; stack?: - | SyncReconcileRequestPreparedStackOverrideAzureStack$Outbound + | SyncReconcileRequestPreparedStackExtendAzureStack$Outbound | undefined; }; /** @internal */ -export const SyncReconcileRequestPreparedStackOverrideAzureBinding$outboundSchema: +export const SyncReconcileRequestPreparedStackExtendAzureBinding$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackOverrideAzureBinding$Outbound, - SyncReconcileRequestPreparedStackOverrideAzureBinding + SyncReconcileRequestPreparedStackExtendAzureBinding$Outbound, + SyncReconcileRequestPreparedStackExtendAzureBinding > = z.object({ - resource: z.lazy(() => - PreparedStackOverrideStateAzureResource$outboundSchema - ).optional(), + resource: z.lazy(() => PreparedStackExtendStateAzureResource$outboundSchema) + .optional(), stack: z.lazy(() => - SyncReconcileRequestPreparedStackOverrideAzureStack$outboundSchema + SyncReconcileRequestPreparedStackExtendAzureStack$outboundSchema ).optional(), }); -export function syncReconcileRequestPreparedStackOverrideAzureBindingToJSON( - syncReconcileRequestPreparedStackOverrideAzureBinding: - SyncReconcileRequestPreparedStackOverrideAzureBinding, +export function syncReconcileRequestPreparedStackExtendAzureBindingToJSON( + syncReconcileRequestPreparedStackExtendAzureBinding: + SyncReconcileRequestPreparedStackExtendAzureBinding, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackOverrideAzureBinding$outboundSchema.parse( - syncReconcileRequestPreparedStackOverrideAzureBinding, + SyncReconcileRequestPreparedStackExtendAzureBinding$outboundSchema.parse( + syncReconcileRequestPreparedStackExtendAzureBinding, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackOverrideAzureGrant$Outbound = { +export type SyncReconcileRequestPreparedStackExtendAzureGrant$Outbound = { actions?: Array | null | undefined; dataActions?: Array | null | undefined; permissions?: Array | null | undefined; @@ -16247,10 +22269,10 @@ export type SyncReconcileRequestPreparedStackOverrideAzureGrant$Outbound = { }; /** @internal */ -export const SyncReconcileRequestPreparedStackOverrideAzureGrant$outboundSchema: +export const SyncReconcileRequestPreparedStackExtendAzureGrant$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackOverrideAzureGrant$Outbound, - SyncReconcileRequestPreparedStackOverrideAzureGrant + SyncReconcileRequestPreparedStackExtendAzureGrant$Outbound, + SyncReconcileRequestPreparedStackExtendAzureGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -16259,109 +22281,109 @@ export const SyncReconcileRequestPreparedStackOverrideAzureGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileRequestPreparedStackOverrideAzureGrantToJSON( - syncReconcileRequestPreparedStackOverrideAzureGrant: - SyncReconcileRequestPreparedStackOverrideAzureGrant, +export function syncReconcileRequestPreparedStackExtendAzureGrantToJSON( + syncReconcileRequestPreparedStackExtendAzureGrant: + SyncReconcileRequestPreparedStackExtendAzureGrant, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackOverrideAzureGrant$outboundSchema.parse( - syncReconcileRequestPreparedStackOverrideAzureGrant, + SyncReconcileRequestPreparedStackExtendAzureGrant$outboundSchema.parse( + syncReconcileRequestPreparedStackExtendAzureGrant, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackOverrideAzure$Outbound = { - binding: SyncReconcileRequestPreparedStackOverrideAzureBinding$Outbound; +export type SyncReconcileRequestPreparedStackExtendAzure$Outbound = { + binding: SyncReconcileRequestPreparedStackExtendAzureBinding$Outbound; description?: string | null | undefined; - grant: SyncReconcileRequestPreparedStackOverrideAzureGrant$Outbound; + grant: SyncReconcileRequestPreparedStackExtendAzureGrant$Outbound; label?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestPreparedStackOverrideAzure$outboundSchema: +export const SyncReconcileRequestPreparedStackExtendAzure$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackOverrideAzure$Outbound, - SyncReconcileRequestPreparedStackOverrideAzure + SyncReconcileRequestPreparedStackExtendAzure$Outbound, + SyncReconcileRequestPreparedStackExtendAzure > = z.object({ binding: z.lazy(() => - SyncReconcileRequestPreparedStackOverrideAzureBinding$outboundSchema + SyncReconcileRequestPreparedStackExtendAzureBinding$outboundSchema ), description: z.nullable(z.string()).optional(), grant: z.lazy(() => - SyncReconcileRequestPreparedStackOverrideAzureGrant$outboundSchema + SyncReconcileRequestPreparedStackExtendAzureGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestPreparedStackOverrideAzureToJSON( - syncReconcileRequestPreparedStackOverrideAzure: - SyncReconcileRequestPreparedStackOverrideAzure, +export function syncReconcileRequestPreparedStackExtendAzureToJSON( + syncReconcileRequestPreparedStackExtendAzure: + SyncReconcileRequestPreparedStackExtendAzure, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackOverrideAzure$outboundSchema.parse( - syncReconcileRequestPreparedStackOverrideAzure, + SyncReconcileRequestPreparedStackExtendAzure$outboundSchema.parse( + syncReconcileRequestPreparedStackExtendAzure, ), ); } /** @internal */ -export type PreparedStackOverrideConditionStateResource$Outbound = { +export type PreparedStackExtendConditionStateResource$Outbound = { expression: string; title: string; }; /** @internal */ -export const PreparedStackOverrideConditionStateResource$outboundSchema: +export const PreparedStackExtendConditionStateResource$outboundSchema: z.ZodType< - PreparedStackOverrideConditionStateResource$Outbound, - PreparedStackOverrideConditionStateResource + PreparedStackExtendConditionStateResource$Outbound, + PreparedStackExtendConditionStateResource > = z.object({ expression: z.string(), title: z.string(), }); -export function preparedStackOverrideConditionStateResourceToJSON( - preparedStackOverrideConditionStateResource: - PreparedStackOverrideConditionStateResource, +export function preparedStackExtendConditionStateResourceToJSON( + preparedStackExtendConditionStateResource: + PreparedStackExtendConditionStateResource, ): string { return JSON.stringify( - PreparedStackOverrideConditionStateResource$outboundSchema.parse( - preparedStackOverrideConditionStateResource, + PreparedStackExtendConditionStateResource$outboundSchema.parse( + preparedStackExtendConditionStateResource, ), ); } /** @internal */ -export type PreparedStackOverrideStateResourceConditionUnion$Outbound = - | PreparedStackOverrideConditionStateResource$Outbound +export type PreparedStackExtendStateResourceConditionUnion$Outbound = + | PreparedStackExtendConditionStateResource$Outbound | any; /** @internal */ -export const PreparedStackOverrideStateResourceConditionUnion$outboundSchema: +export const PreparedStackExtendStateResourceConditionUnion$outboundSchema: z.ZodType< - PreparedStackOverrideStateResourceConditionUnion$Outbound, - PreparedStackOverrideStateResourceConditionUnion + PreparedStackExtendStateResourceConditionUnion$Outbound, + PreparedStackExtendStateResourceConditionUnion > = z.union([ - z.lazy(() => PreparedStackOverrideConditionStateResource$outboundSchema), + z.lazy(() => PreparedStackExtendConditionStateResource$outboundSchema), z.any(), ]); -export function preparedStackOverrideStateResourceConditionUnionToJSON( - preparedStackOverrideStateResourceConditionUnion: - PreparedStackOverrideStateResourceConditionUnion, +export function preparedStackExtendStateResourceConditionUnionToJSON( + preparedStackExtendStateResourceConditionUnion: + PreparedStackExtendStateResourceConditionUnion, ): string { return JSON.stringify( - PreparedStackOverrideStateResourceConditionUnion$outboundSchema.parse( - preparedStackOverrideStateResourceConditionUnion, + PreparedStackExtendStateResourceConditionUnion$outboundSchema.parse( + preparedStackExtendStateResourceConditionUnion, ), ); } /** @internal */ -export type PreparedStackOverrideStateGcpResource$Outbound = { +export type PreparedStackExtendStateGcpResource$Outbound = { condition?: - | PreparedStackOverrideConditionStateResource$Outbound + | PreparedStackExtendConditionStateResource$Outbound | any | null | undefined; @@ -16369,85 +22391,85 @@ export type PreparedStackOverrideStateGcpResource$Outbound = { }; /** @internal */ -export const PreparedStackOverrideStateGcpResource$outboundSchema: z.ZodType< - PreparedStackOverrideStateGcpResource$Outbound, - PreparedStackOverrideStateGcpResource +export const PreparedStackExtendStateGcpResource$outboundSchema: z.ZodType< + PreparedStackExtendStateGcpResource$Outbound, + PreparedStackExtendStateGcpResource > = z.object({ condition: z.nullable( z.union([ - z.lazy(() => PreparedStackOverrideConditionStateResource$outboundSchema), + z.lazy(() => PreparedStackExtendConditionStateResource$outboundSchema), z.any(), ]), ).optional(), scope: z.string(), }); -export function preparedStackOverrideStateGcpResourceToJSON( - preparedStackOverrideStateGcpResource: PreparedStackOverrideStateGcpResource, +export function preparedStackExtendStateGcpResourceToJSON( + preparedStackExtendStateGcpResource: PreparedStackExtendStateGcpResource, ): string { return JSON.stringify( - PreparedStackOverrideStateGcpResource$outboundSchema.parse( - preparedStackOverrideStateGcpResource, + PreparedStackExtendStateGcpResource$outboundSchema.parse( + preparedStackExtendStateGcpResource, ), ); } /** @internal */ -export type PreparedStackOverrideConditionStateStack$Outbound = { +export type PreparedStackExtendConditionStateStack$Outbound = { expression: string; title: string; }; /** @internal */ -export const PreparedStackOverrideConditionStateStack$outboundSchema: z.ZodType< - PreparedStackOverrideConditionStateStack$Outbound, - PreparedStackOverrideConditionStateStack +export const PreparedStackExtendConditionStateStack$outboundSchema: z.ZodType< + PreparedStackExtendConditionStateStack$Outbound, + PreparedStackExtendConditionStateStack > = z.object({ expression: z.string(), title: z.string(), }); -export function preparedStackOverrideConditionStateStackToJSON( - preparedStackOverrideConditionStateStack: - PreparedStackOverrideConditionStateStack, +export function preparedStackExtendConditionStateStackToJSON( + preparedStackExtendConditionStateStack: + PreparedStackExtendConditionStateStack, ): string { return JSON.stringify( - PreparedStackOverrideConditionStateStack$outboundSchema.parse( - preparedStackOverrideConditionStateStack, + PreparedStackExtendConditionStateStack$outboundSchema.parse( + preparedStackExtendConditionStateStack, ), ); } /** @internal */ -export type PreparedStackOverrideStateStackConditionUnion$Outbound = - | PreparedStackOverrideConditionStateStack$Outbound +export type PreparedStackExtendStateStackConditionUnion$Outbound = + | PreparedStackExtendConditionStateStack$Outbound | any; /** @internal */ -export const PreparedStackOverrideStateStackConditionUnion$outboundSchema: +export const PreparedStackExtendStateStackConditionUnion$outboundSchema: z.ZodType< - PreparedStackOverrideStateStackConditionUnion$Outbound, - PreparedStackOverrideStateStackConditionUnion + PreparedStackExtendStateStackConditionUnion$Outbound, + PreparedStackExtendStateStackConditionUnion > = z.union([ - z.lazy(() => PreparedStackOverrideConditionStateStack$outboundSchema), + z.lazy(() => PreparedStackExtendConditionStateStack$outboundSchema), z.any(), ]); -export function preparedStackOverrideStateStackConditionUnionToJSON( - preparedStackOverrideStateStackConditionUnion: - PreparedStackOverrideStateStackConditionUnion, +export function preparedStackExtendStateStackConditionUnionToJSON( + preparedStackExtendStateStackConditionUnion: + PreparedStackExtendStateStackConditionUnion, ): string { return JSON.stringify( - PreparedStackOverrideStateStackConditionUnion$outboundSchema.parse( - preparedStackOverrideStateStackConditionUnion, + PreparedStackExtendStateStackConditionUnion$outboundSchema.parse( + preparedStackExtendStateStackConditionUnion, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackOverrideGcpStack$Outbound = { +export type SyncReconcileRequestPreparedStackExtendGcpStack$Outbound = { condition?: - | PreparedStackOverrideConditionStateStack$Outbound + | PreparedStackExtendConditionStateStack$Outbound | any | null | undefined; @@ -16455,65 +22477,63 @@ export type SyncReconcileRequestPreparedStackOverrideGcpStack$Outbound = { }; /** @internal */ -export const SyncReconcileRequestPreparedStackOverrideGcpStack$outboundSchema: +export const SyncReconcileRequestPreparedStackExtendGcpStack$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackOverrideGcpStack$Outbound, - SyncReconcileRequestPreparedStackOverrideGcpStack + SyncReconcileRequestPreparedStackExtendGcpStack$Outbound, + SyncReconcileRequestPreparedStackExtendGcpStack > = z.object({ condition: z.nullable( z.union([ - z.lazy(() => PreparedStackOverrideConditionStateStack$outboundSchema), + z.lazy(() => PreparedStackExtendConditionStateStack$outboundSchema), z.any(), ]), ).optional(), scope: z.string(), }); -export function syncReconcileRequestPreparedStackOverrideGcpStackToJSON( - syncReconcileRequestPreparedStackOverrideGcpStack: - SyncReconcileRequestPreparedStackOverrideGcpStack, +export function syncReconcileRequestPreparedStackExtendGcpStackToJSON( + syncReconcileRequestPreparedStackExtendGcpStack: + SyncReconcileRequestPreparedStackExtendGcpStack, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackOverrideGcpStack$outboundSchema.parse( - syncReconcileRequestPreparedStackOverrideGcpStack, + SyncReconcileRequestPreparedStackExtendGcpStack$outboundSchema.parse( + syncReconcileRequestPreparedStackExtendGcpStack, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackOverrideGcpBinding$Outbound = { - resource?: PreparedStackOverrideStateGcpResource$Outbound | undefined; - stack?: - | SyncReconcileRequestPreparedStackOverrideGcpStack$Outbound - | undefined; +export type SyncReconcileRequestPreparedStackExtendGcpBinding$Outbound = { + resource?: PreparedStackExtendStateGcpResource$Outbound | undefined; + stack?: SyncReconcileRequestPreparedStackExtendGcpStack$Outbound | undefined; }; /** @internal */ -export const SyncReconcileRequestPreparedStackOverrideGcpBinding$outboundSchema: +export const SyncReconcileRequestPreparedStackExtendGcpBinding$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackOverrideGcpBinding$Outbound, - SyncReconcileRequestPreparedStackOverrideGcpBinding + SyncReconcileRequestPreparedStackExtendGcpBinding$Outbound, + SyncReconcileRequestPreparedStackExtendGcpBinding > = z.object({ - resource: z.lazy(() => PreparedStackOverrideStateGcpResource$outboundSchema) + resource: z.lazy(() => PreparedStackExtendStateGcpResource$outboundSchema) .optional(), stack: z.lazy(() => - SyncReconcileRequestPreparedStackOverrideGcpStack$outboundSchema + SyncReconcileRequestPreparedStackExtendGcpStack$outboundSchema ).optional(), }); -export function syncReconcileRequestPreparedStackOverrideGcpBindingToJSON( - syncReconcileRequestPreparedStackOverrideGcpBinding: - SyncReconcileRequestPreparedStackOverrideGcpBinding, +export function syncReconcileRequestPreparedStackExtendGcpBindingToJSON( + syncReconcileRequestPreparedStackExtendGcpBinding: + SyncReconcileRequestPreparedStackExtendGcpBinding, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackOverrideGcpBinding$outboundSchema.parse( - syncReconcileRequestPreparedStackOverrideGcpBinding, + SyncReconcileRequestPreparedStackExtendGcpBinding$outboundSchema.parse( + syncReconcileRequestPreparedStackExtendGcpBinding, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackOverrideGcpGrant$Outbound = { +export type SyncReconcileRequestPreparedStackExtendGcpGrant$Outbound = { actions?: Array | null | undefined; dataActions?: Array | null | undefined; permissions?: Array | null | undefined; @@ -16522,10 +22542,10 @@ export type SyncReconcileRequestPreparedStackOverrideGcpGrant$Outbound = { }; /** @internal */ -export const SyncReconcileRequestPreparedStackOverrideGcpGrant$outboundSchema: +export const SyncReconcileRequestPreparedStackExtendGcpGrant$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackOverrideGcpGrant$Outbound, - SyncReconcileRequestPreparedStackOverrideGcpGrant + SyncReconcileRequestPreparedStackExtendGcpGrant$Outbound, + SyncReconcileRequestPreparedStackExtendGcpGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -16534,231 +22554,258 @@ export const SyncReconcileRequestPreparedStackOverrideGcpGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileRequestPreparedStackOverrideGcpGrantToJSON( - syncReconcileRequestPreparedStackOverrideGcpGrant: - SyncReconcileRequestPreparedStackOverrideGcpGrant, +export function syncReconcileRequestPreparedStackExtendGcpGrantToJSON( + syncReconcileRequestPreparedStackExtendGcpGrant: + SyncReconcileRequestPreparedStackExtendGcpGrant, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackOverrideGcpGrant$outboundSchema.parse( - syncReconcileRequestPreparedStackOverrideGcpGrant, + SyncReconcileRequestPreparedStackExtendGcpGrant$outboundSchema.parse( + syncReconcileRequestPreparedStackExtendGcpGrant, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackOverrideGcp$Outbound = { - binding: SyncReconcileRequestPreparedStackOverrideGcpBinding$Outbound; +export type SyncReconcileRequestPreparedStackExtendGcp$Outbound = { + binding: SyncReconcileRequestPreparedStackExtendGcpBinding$Outbound; description?: string | null | undefined; - grant: SyncReconcileRequestPreparedStackOverrideGcpGrant$Outbound; + grant: SyncReconcileRequestPreparedStackExtendGcpGrant$Outbound; label?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestPreparedStackOverrideGcp$outboundSchema: +export const SyncReconcileRequestPreparedStackExtendGcp$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackOverrideGcp$Outbound, - SyncReconcileRequestPreparedStackOverrideGcp + SyncReconcileRequestPreparedStackExtendGcp$Outbound, + SyncReconcileRequestPreparedStackExtendGcp > = z.object({ binding: z.lazy(() => - SyncReconcileRequestPreparedStackOverrideGcpBinding$outboundSchema + SyncReconcileRequestPreparedStackExtendGcpBinding$outboundSchema ), description: z.nullable(z.string()).optional(), grant: z.lazy(() => - SyncReconcileRequestPreparedStackOverrideGcpGrant$outboundSchema + SyncReconcileRequestPreparedStackExtendGcpGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestPreparedStackOverrideGcpToJSON( - syncReconcileRequestPreparedStackOverrideGcp: - SyncReconcileRequestPreparedStackOverrideGcp, +export function syncReconcileRequestPreparedStackExtendGcpToJSON( + syncReconcileRequestPreparedStackExtendGcp: + SyncReconcileRequestPreparedStackExtendGcp, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackOverrideGcp$outboundSchema.parse( - syncReconcileRequestPreparedStackOverrideGcp, + SyncReconcileRequestPreparedStackExtendGcp$outboundSchema.parse( + syncReconcileRequestPreparedStackExtendGcp, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackOverridePlatforms$Outbound = { +export type SyncReconcileRequestPreparedStackExtendPlatforms$Outbound = { aws?: - | Array + | Array | null | undefined; azure?: - | Array + | Array | null | undefined; gcp?: - | Array + | Array | null | undefined; }; /** @internal */ -export const SyncReconcileRequestPreparedStackOverridePlatforms$outboundSchema: +export const SyncReconcileRequestPreparedStackExtendPlatforms$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackOverridePlatforms$Outbound, - SyncReconcileRequestPreparedStackOverridePlatforms + SyncReconcileRequestPreparedStackExtendPlatforms$Outbound, + SyncReconcileRequestPreparedStackExtendPlatforms > = z.object({ aws: z.nullable( z.array(z.lazy(() => - SyncReconcileRequestPreparedStackOverrideAw$outboundSchema + SyncReconcileRequestPreparedStackExtendAw$outboundSchema )), ).optional(), azure: z.nullable( z.array(z.lazy(() => - SyncReconcileRequestPreparedStackOverrideAzure$outboundSchema + SyncReconcileRequestPreparedStackExtendAzure$outboundSchema )), ).optional(), gcp: z.nullable( z.array(z.lazy(() => - SyncReconcileRequestPreparedStackOverrideGcp$outboundSchema + SyncReconcileRequestPreparedStackExtendGcp$outboundSchema )), ).optional(), }); -export function syncReconcileRequestPreparedStackOverridePlatformsToJSON( - syncReconcileRequestPreparedStackOverridePlatforms: - SyncReconcileRequestPreparedStackOverridePlatforms, +export function syncReconcileRequestPreparedStackExtendPlatformsToJSON( + syncReconcileRequestPreparedStackExtendPlatforms: + SyncReconcileRequestPreparedStackExtendPlatforms, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackOverridePlatforms$outboundSchema.parse( - syncReconcileRequestPreparedStackOverridePlatforms, + SyncReconcileRequestPreparedStackExtendPlatforms$outboundSchema.parse( + syncReconcileRequestPreparedStackExtendPlatforms, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackOverride$Outbound = { +export type SyncReconcileRequestPreparedStackExtend$Outbound = { description: string; id: string; - platforms: SyncReconcileRequestPreparedStackOverridePlatforms$Outbound; + platforms: SyncReconcileRequestPreparedStackExtendPlatforms$Outbound; }; /** @internal */ -export const SyncReconcileRequestPreparedStackOverride$outboundSchema: - z.ZodType< - SyncReconcileRequestPreparedStackOverride$Outbound, - SyncReconcileRequestPreparedStackOverride - > = z.object({ - description: z.string(), - id: z.string(), - platforms: z.lazy(() => - SyncReconcileRequestPreparedStackOverridePlatforms$outboundSchema - ), - }); +export const SyncReconcileRequestPreparedStackExtend$outboundSchema: z.ZodType< + SyncReconcileRequestPreparedStackExtend$Outbound, + SyncReconcileRequestPreparedStackExtend +> = z.object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncReconcileRequestPreparedStackExtendPlatforms$outboundSchema + ), +}); -export function syncReconcileRequestPreparedStackOverrideToJSON( - syncReconcileRequestPreparedStackOverride: - SyncReconcileRequestPreparedStackOverride, +export function syncReconcileRequestPreparedStackExtendToJSON( + syncReconcileRequestPreparedStackExtend: + SyncReconcileRequestPreparedStackExtend, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackOverride$outboundSchema.parse( - syncReconcileRequestPreparedStackOverride, + SyncReconcileRequestPreparedStackExtend$outboundSchema.parse( + syncReconcileRequestPreparedStackExtend, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackOverrideUnion$Outbound = - | SyncReconcileRequestPreparedStackOverride$Outbound +export type SyncReconcileRequestPreparedStackExtendUnion$Outbound = + | SyncReconcileRequestPreparedStackExtend$Outbound | string; /** @internal */ -export const SyncReconcileRequestPreparedStackOverrideUnion$outboundSchema: +export const SyncReconcileRequestPreparedStackExtendUnion$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackOverrideUnion$Outbound, - SyncReconcileRequestPreparedStackOverrideUnion + SyncReconcileRequestPreparedStackExtendUnion$Outbound, + SyncReconcileRequestPreparedStackExtendUnion > = z.union([ - z.lazy(() => SyncReconcileRequestPreparedStackOverride$outboundSchema), + z.lazy(() => SyncReconcileRequestPreparedStackExtend$outboundSchema), z.string(), ]); -export function syncReconcileRequestPreparedStackOverrideUnionToJSON( - syncReconcileRequestPreparedStackOverrideUnion: - SyncReconcileRequestPreparedStackOverrideUnion, +export function syncReconcileRequestPreparedStackExtendUnionToJSON( + syncReconcileRequestPreparedStackExtendUnion: + SyncReconcileRequestPreparedStackExtendUnion, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackOverrideUnion$outboundSchema.parse( - syncReconcileRequestPreparedStackOverrideUnion, + SyncReconcileRequestPreparedStackExtendUnion$outboundSchema.parse( + syncReconcileRequestPreparedStackExtendUnion, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackManagement2$Outbound = { - override: { +export type SyncReconcileRequestPreparedStackManagement1$Outbound = { + extend: { [k: string]: Array< - SyncReconcileRequestPreparedStackOverride$Outbound | string + SyncReconcileRequestPreparedStackExtend$Outbound | string >; }; }; /** @internal */ -export const SyncReconcileRequestPreparedStackManagement2$outboundSchema: +export const SyncReconcileRequestPreparedStackManagement1$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackManagement2$Outbound, - SyncReconcileRequestPreparedStackManagement2 + SyncReconcileRequestPreparedStackManagement1$Outbound, + SyncReconcileRequestPreparedStackManagement1 > = z.object({ - override: z.record( + extend: z.record( z.string(), z.array(z.union([ - z.lazy(() => SyncReconcileRequestPreparedStackOverride$outboundSchema), + z.lazy(() => SyncReconcileRequestPreparedStackExtend$outboundSchema), z.string(), ])), ), }); -export function syncReconcileRequestPreparedStackManagement2ToJSON( - syncReconcileRequestPreparedStackManagement2: - SyncReconcileRequestPreparedStackManagement2, +export function syncReconcileRequestPreparedStackManagement1ToJSON( + syncReconcileRequestPreparedStackManagement1: + SyncReconcileRequestPreparedStackManagement1, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackManagement2$outboundSchema.parse( - syncReconcileRequestPreparedStackManagement2, + SyncReconcileRequestPreparedStackManagement1$outboundSchema.parse( + syncReconcileRequestPreparedStackManagement1, ), ); } /** @internal */ -export type PreparedStackExtendStateAwResource$Outbound = { +export type SyncReconcileRequestPreparedStackManagementUnion$Outbound = + | SyncReconcileRequestPreparedStackManagement1$Outbound + | SyncReconcileRequestPreparedStackManagement2$Outbound + | string; + +/** @internal */ +export const SyncReconcileRequestPreparedStackManagementUnion$outboundSchema: + z.ZodType< + SyncReconcileRequestPreparedStackManagementUnion$Outbound, + SyncReconcileRequestPreparedStackManagementUnion + > = z.union([ + z.lazy(() => SyncReconcileRequestPreparedStackManagement1$outboundSchema), + z.lazy(() => SyncReconcileRequestPreparedStackManagement2$outboundSchema), + SyncReconcileRequestPreparedStackManagementEnum$outboundSchema, + ]); + +export function syncReconcileRequestPreparedStackManagementUnionToJSON( + syncReconcileRequestPreparedStackManagementUnion: + SyncReconcileRequestPreparedStackManagementUnion, +): string { + return JSON.stringify( + SyncReconcileRequestPreparedStackManagementUnion$outboundSchema.parse( + syncReconcileRequestPreparedStackManagementUnion, + ), + ); +} + +/** @internal */ +export type PreparedStackProfileStateAwResource$Outbound = { condition?: { [k: string]: { [k: string]: string } } | null | undefined; resources: Array; }; /** @internal */ -export const PreparedStackExtendStateAwResource$outboundSchema: z.ZodType< - PreparedStackExtendStateAwResource$Outbound, - PreparedStackExtendStateAwResource +export const PreparedStackProfileStateAwResource$outboundSchema: z.ZodType< + PreparedStackProfileStateAwResource$Outbound, + PreparedStackProfileStateAwResource > = z.object({ condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) .optional(), resources: z.array(z.string()), }); -export function preparedStackExtendStateAwResourceToJSON( - preparedStackExtendStateAwResource: PreparedStackExtendStateAwResource, +export function preparedStackProfileStateAwResourceToJSON( + preparedStackProfileStateAwResource: PreparedStackProfileStateAwResource, ): string { return JSON.stringify( - PreparedStackExtendStateAwResource$outboundSchema.parse( - preparedStackExtendStateAwResource, + PreparedStackProfileStateAwResource$outboundSchema.parse( + preparedStackProfileStateAwResource, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackExtendAwStack$Outbound = { +export type SyncReconcileRequestPreparedStackProfileAwStack$Outbound = { condition?: { [k: string]: { [k: string]: string } } | null | undefined; resources: Array; }; /** @internal */ -export const SyncReconcileRequestPreparedStackExtendAwStack$outboundSchema: +export const SyncReconcileRequestPreparedStackProfileAwStack$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackExtendAwStack$Outbound, - SyncReconcileRequestPreparedStackExtendAwStack + SyncReconcileRequestPreparedStackProfileAwStack$Outbound, + SyncReconcileRequestPreparedStackProfileAwStack > = z.object({ condition: z.nullable( z.record(z.string(), z.record(z.string(), z.string())), @@ -16766,55 +22813,55 @@ export const SyncReconcileRequestPreparedStackExtendAwStack$outboundSchema: resources: z.array(z.string()), }); -export function syncReconcileRequestPreparedStackExtendAwStackToJSON( - syncReconcileRequestPreparedStackExtendAwStack: - SyncReconcileRequestPreparedStackExtendAwStack, +export function syncReconcileRequestPreparedStackProfileAwStackToJSON( + syncReconcileRequestPreparedStackProfileAwStack: + SyncReconcileRequestPreparedStackProfileAwStack, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackExtendAwStack$outboundSchema.parse( - syncReconcileRequestPreparedStackExtendAwStack, + SyncReconcileRequestPreparedStackProfileAwStack$outboundSchema.parse( + syncReconcileRequestPreparedStackProfileAwStack, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackExtendAwBinding$Outbound = { - resource?: PreparedStackExtendStateAwResource$Outbound | undefined; - stack?: SyncReconcileRequestPreparedStackExtendAwStack$Outbound | undefined; +export type SyncReconcileRequestPreparedStackProfileAwBinding$Outbound = { + resource?: PreparedStackProfileStateAwResource$Outbound | undefined; + stack?: SyncReconcileRequestPreparedStackProfileAwStack$Outbound | undefined; }; /** @internal */ -export const SyncReconcileRequestPreparedStackExtendAwBinding$outboundSchema: +export const SyncReconcileRequestPreparedStackProfileAwBinding$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackExtendAwBinding$Outbound, - SyncReconcileRequestPreparedStackExtendAwBinding + SyncReconcileRequestPreparedStackProfileAwBinding$Outbound, + SyncReconcileRequestPreparedStackProfileAwBinding > = z.object({ - resource: z.lazy(() => PreparedStackExtendStateAwResource$outboundSchema) + resource: z.lazy(() => PreparedStackProfileStateAwResource$outboundSchema) .optional(), stack: z.lazy(() => - SyncReconcileRequestPreparedStackExtendAwStack$outboundSchema + SyncReconcileRequestPreparedStackProfileAwStack$outboundSchema ).optional(), }); -export function syncReconcileRequestPreparedStackExtendAwBindingToJSON( - syncReconcileRequestPreparedStackExtendAwBinding: - SyncReconcileRequestPreparedStackExtendAwBinding, +export function syncReconcileRequestPreparedStackProfileAwBindingToJSON( + syncReconcileRequestPreparedStackProfileAwBinding: + SyncReconcileRequestPreparedStackProfileAwBinding, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackExtendAwBinding$outboundSchema.parse( - syncReconcileRequestPreparedStackExtendAwBinding, + SyncReconcileRequestPreparedStackProfileAwBinding$outboundSchema.parse( + syncReconcileRequestPreparedStackProfileAwBinding, ), ); } /** @internal */ -export const SyncReconcileRequestPreparedStackExtendEffect$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestPreparedStackExtendEffect, +export const SyncReconcileRequestPreparedStackProfileEffect$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestPreparedStackProfileEffect, ); /** @internal */ -export type SyncReconcileRequestPreparedStackExtendAwGrant$Outbound = { +export type SyncReconcileRequestPreparedStackProfileAwGrant$Outbound = { actions?: Array | null | undefined; dataActions?: Array | null | undefined; permissions?: Array | null | undefined; @@ -16823,10 +22870,10 @@ export type SyncReconcileRequestPreparedStackExtendAwGrant$Outbound = { }; /** @internal */ -export const SyncReconcileRequestPreparedStackExtendAwGrant$outboundSchema: +export const SyncReconcileRequestPreparedStackProfileAwGrant$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackExtendAwGrant$Outbound, - SyncReconcileRequestPreparedStackExtendAwGrant + SyncReconcileRequestPreparedStackProfileAwGrant$Outbound, + SyncReconcileRequestPreparedStackProfileAwGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -16835,137 +22882,139 @@ export const SyncReconcileRequestPreparedStackExtendAwGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileRequestPreparedStackExtendAwGrantToJSON( - syncReconcileRequestPreparedStackExtendAwGrant: - SyncReconcileRequestPreparedStackExtendAwGrant, +export function syncReconcileRequestPreparedStackProfileAwGrantToJSON( + syncReconcileRequestPreparedStackProfileAwGrant: + SyncReconcileRequestPreparedStackProfileAwGrant, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackExtendAwGrant$outboundSchema.parse( - syncReconcileRequestPreparedStackExtendAwGrant, + SyncReconcileRequestPreparedStackProfileAwGrant$outboundSchema.parse( + syncReconcileRequestPreparedStackProfileAwGrant, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackExtendAw$Outbound = { - binding: SyncReconcileRequestPreparedStackExtendAwBinding$Outbound; +export type SyncReconcileRequestPreparedStackProfileAw$Outbound = { + binding: SyncReconcileRequestPreparedStackProfileAwBinding$Outbound; description?: string | null | undefined; effect?: string | undefined; - grant: SyncReconcileRequestPreparedStackExtendAwGrant$Outbound; + grant: SyncReconcileRequestPreparedStackProfileAwGrant$Outbound; label?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestPreparedStackExtendAw$outboundSchema: +export const SyncReconcileRequestPreparedStackProfileAw$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackExtendAw$Outbound, - SyncReconcileRequestPreparedStackExtendAw + SyncReconcileRequestPreparedStackProfileAw$Outbound, + SyncReconcileRequestPreparedStackProfileAw > = z.object({ binding: z.lazy(() => - SyncReconcileRequestPreparedStackExtendAwBinding$outboundSchema + SyncReconcileRequestPreparedStackProfileAwBinding$outboundSchema ), description: z.nullable(z.string()).optional(), - effect: SyncReconcileRequestPreparedStackExtendEffect$outboundSchema + effect: SyncReconcileRequestPreparedStackProfileEffect$outboundSchema .optional(), grant: z.lazy(() => - SyncReconcileRequestPreparedStackExtendAwGrant$outboundSchema + SyncReconcileRequestPreparedStackProfileAwGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestPreparedStackExtendAwToJSON( - syncReconcileRequestPreparedStackExtendAw: - SyncReconcileRequestPreparedStackExtendAw, +export function syncReconcileRequestPreparedStackProfileAwToJSON( + syncReconcileRequestPreparedStackProfileAw: + SyncReconcileRequestPreparedStackProfileAw, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackExtendAw$outboundSchema.parse( - syncReconcileRequestPreparedStackExtendAw, + SyncReconcileRequestPreparedStackProfileAw$outboundSchema.parse( + syncReconcileRequestPreparedStackProfileAw, ), ); } /** @internal */ -export type PreparedStackExtendStateAzureResource$Outbound = { +export type PreparedStackProfileStateAzureResource$Outbound = { scope: string; }; /** @internal */ -export const PreparedStackExtendStateAzureResource$outboundSchema: z.ZodType< - PreparedStackExtendStateAzureResource$Outbound, - PreparedStackExtendStateAzureResource +export const PreparedStackProfileStateAzureResource$outboundSchema: z.ZodType< + PreparedStackProfileStateAzureResource$Outbound, + PreparedStackProfileStateAzureResource > = z.object({ scope: z.string(), }); -export function preparedStackExtendStateAzureResourceToJSON( - preparedStackExtendStateAzureResource: PreparedStackExtendStateAzureResource, +export function preparedStackProfileStateAzureResourceToJSON( + preparedStackProfileStateAzureResource: + PreparedStackProfileStateAzureResource, ): string { return JSON.stringify( - PreparedStackExtendStateAzureResource$outboundSchema.parse( - preparedStackExtendStateAzureResource, + PreparedStackProfileStateAzureResource$outboundSchema.parse( + preparedStackProfileStateAzureResource, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackExtendAzureStack$Outbound = { +export type SyncReconcileRequestPreparedStackProfileAzureStack$Outbound = { scope: string; }; /** @internal */ -export const SyncReconcileRequestPreparedStackExtendAzureStack$outboundSchema: +export const SyncReconcileRequestPreparedStackProfileAzureStack$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackExtendAzureStack$Outbound, - SyncReconcileRequestPreparedStackExtendAzureStack + SyncReconcileRequestPreparedStackProfileAzureStack$Outbound, + SyncReconcileRequestPreparedStackProfileAzureStack > = z.object({ scope: z.string(), }); -export function syncReconcileRequestPreparedStackExtendAzureStackToJSON( - syncReconcileRequestPreparedStackExtendAzureStack: - SyncReconcileRequestPreparedStackExtendAzureStack, +export function syncReconcileRequestPreparedStackProfileAzureStackToJSON( + syncReconcileRequestPreparedStackProfileAzureStack: + SyncReconcileRequestPreparedStackProfileAzureStack, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackExtendAzureStack$outboundSchema.parse( - syncReconcileRequestPreparedStackExtendAzureStack, + SyncReconcileRequestPreparedStackProfileAzureStack$outboundSchema.parse( + syncReconcileRequestPreparedStackProfileAzureStack, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackExtendAzureBinding$Outbound = { - resource?: PreparedStackExtendStateAzureResource$Outbound | undefined; +export type SyncReconcileRequestPreparedStackProfileAzureBinding$Outbound = { + resource?: PreparedStackProfileStateAzureResource$Outbound | undefined; stack?: - | SyncReconcileRequestPreparedStackExtendAzureStack$Outbound + | SyncReconcileRequestPreparedStackProfileAzureStack$Outbound | undefined; }; /** @internal */ -export const SyncReconcileRequestPreparedStackExtendAzureBinding$outboundSchema: +export const SyncReconcileRequestPreparedStackProfileAzureBinding$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackExtendAzureBinding$Outbound, - SyncReconcileRequestPreparedStackExtendAzureBinding + SyncReconcileRequestPreparedStackProfileAzureBinding$Outbound, + SyncReconcileRequestPreparedStackProfileAzureBinding > = z.object({ - resource: z.lazy(() => PreparedStackExtendStateAzureResource$outboundSchema) - .optional(), + resource: z.lazy(() => + PreparedStackProfileStateAzureResource$outboundSchema + ).optional(), stack: z.lazy(() => - SyncReconcileRequestPreparedStackExtendAzureStack$outboundSchema + SyncReconcileRequestPreparedStackProfileAzureStack$outboundSchema ).optional(), }); -export function syncReconcileRequestPreparedStackExtendAzureBindingToJSON( - syncReconcileRequestPreparedStackExtendAzureBinding: - SyncReconcileRequestPreparedStackExtendAzureBinding, +export function syncReconcileRequestPreparedStackProfileAzureBindingToJSON( + syncReconcileRequestPreparedStackProfileAzureBinding: + SyncReconcileRequestPreparedStackProfileAzureBinding, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackExtendAzureBinding$outboundSchema.parse( - syncReconcileRequestPreparedStackExtendAzureBinding, + SyncReconcileRequestPreparedStackProfileAzureBinding$outboundSchema.parse( + syncReconcileRequestPreparedStackProfileAzureBinding, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackExtendAzureGrant$Outbound = { +export type SyncReconcileRequestPreparedStackProfileAzureGrant$Outbound = { actions?: Array | null | undefined; dataActions?: Array | null | undefined; permissions?: Array | null | undefined; @@ -16974,10 +23023,10 @@ export type SyncReconcileRequestPreparedStackExtendAzureGrant$Outbound = { }; /** @internal */ -export const SyncReconcileRequestPreparedStackExtendAzureGrant$outboundSchema: +export const SyncReconcileRequestPreparedStackProfileAzureGrant$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackExtendAzureGrant$Outbound, - SyncReconcileRequestPreparedStackExtendAzureGrant + SyncReconcileRequestPreparedStackProfileAzureGrant$Outbound, + SyncReconcileRequestPreparedStackProfileAzureGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -16986,109 +23035,109 @@ export const SyncReconcileRequestPreparedStackExtendAzureGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileRequestPreparedStackExtendAzureGrantToJSON( - syncReconcileRequestPreparedStackExtendAzureGrant: - SyncReconcileRequestPreparedStackExtendAzureGrant, +export function syncReconcileRequestPreparedStackProfileAzureGrantToJSON( + syncReconcileRequestPreparedStackProfileAzureGrant: + SyncReconcileRequestPreparedStackProfileAzureGrant, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackExtendAzureGrant$outboundSchema.parse( - syncReconcileRequestPreparedStackExtendAzureGrant, + SyncReconcileRequestPreparedStackProfileAzureGrant$outboundSchema.parse( + syncReconcileRequestPreparedStackProfileAzureGrant, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackExtendAzure$Outbound = { - binding: SyncReconcileRequestPreparedStackExtendAzureBinding$Outbound; +export type SyncReconcileRequestPreparedStackProfileAzure$Outbound = { + binding: SyncReconcileRequestPreparedStackProfileAzureBinding$Outbound; description?: string | null | undefined; - grant: SyncReconcileRequestPreparedStackExtendAzureGrant$Outbound; + grant: SyncReconcileRequestPreparedStackProfileAzureGrant$Outbound; label?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestPreparedStackExtendAzure$outboundSchema: +export const SyncReconcileRequestPreparedStackProfileAzure$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackExtendAzure$Outbound, - SyncReconcileRequestPreparedStackExtendAzure + SyncReconcileRequestPreparedStackProfileAzure$Outbound, + SyncReconcileRequestPreparedStackProfileAzure > = z.object({ binding: z.lazy(() => - SyncReconcileRequestPreparedStackExtendAzureBinding$outboundSchema + SyncReconcileRequestPreparedStackProfileAzureBinding$outboundSchema ), description: z.nullable(z.string()).optional(), grant: z.lazy(() => - SyncReconcileRequestPreparedStackExtendAzureGrant$outboundSchema + SyncReconcileRequestPreparedStackProfileAzureGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestPreparedStackExtendAzureToJSON( - syncReconcileRequestPreparedStackExtendAzure: - SyncReconcileRequestPreparedStackExtendAzure, +export function syncReconcileRequestPreparedStackProfileAzureToJSON( + syncReconcileRequestPreparedStackProfileAzure: + SyncReconcileRequestPreparedStackProfileAzure, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackExtendAzure$outboundSchema.parse( - syncReconcileRequestPreparedStackExtendAzure, + SyncReconcileRequestPreparedStackProfileAzure$outboundSchema.parse( + syncReconcileRequestPreparedStackProfileAzure, ), ); } /** @internal */ -export type PreparedStackExtendConditionStateResource$Outbound = { +export type PreparedStackProfileConditionStateResource$Outbound = { expression: string; title: string; }; /** @internal */ -export const PreparedStackExtendConditionStateResource$outboundSchema: +export const PreparedStackProfileConditionStateResource$outboundSchema: z.ZodType< - PreparedStackExtendConditionStateResource$Outbound, - PreparedStackExtendConditionStateResource + PreparedStackProfileConditionStateResource$Outbound, + PreparedStackProfileConditionStateResource > = z.object({ expression: z.string(), title: z.string(), }); -export function preparedStackExtendConditionStateResourceToJSON( - preparedStackExtendConditionStateResource: - PreparedStackExtendConditionStateResource, +export function preparedStackProfileConditionStateResourceToJSON( + preparedStackProfileConditionStateResource: + PreparedStackProfileConditionStateResource, ): string { return JSON.stringify( - PreparedStackExtendConditionStateResource$outboundSchema.parse( - preparedStackExtendConditionStateResource, + PreparedStackProfileConditionStateResource$outboundSchema.parse( + preparedStackProfileConditionStateResource, ), ); } /** @internal */ -export type PreparedStackExtendStateResourceConditionUnion$Outbound = - | PreparedStackExtendConditionStateResource$Outbound +export type PreparedStackProfileStateResourceConditionUnion$Outbound = + | PreparedStackProfileConditionStateResource$Outbound | any; /** @internal */ -export const PreparedStackExtendStateResourceConditionUnion$outboundSchema: +export const PreparedStackProfileStateResourceConditionUnion$outboundSchema: z.ZodType< - PreparedStackExtendStateResourceConditionUnion$Outbound, - PreparedStackExtendStateResourceConditionUnion + PreparedStackProfileStateResourceConditionUnion$Outbound, + PreparedStackProfileStateResourceConditionUnion > = z.union([ - z.lazy(() => PreparedStackExtendConditionStateResource$outboundSchema), + z.lazy(() => PreparedStackProfileConditionStateResource$outboundSchema), z.any(), ]); -export function preparedStackExtendStateResourceConditionUnionToJSON( - preparedStackExtendStateResourceConditionUnion: - PreparedStackExtendStateResourceConditionUnion, +export function preparedStackProfileStateResourceConditionUnionToJSON( + preparedStackProfileStateResourceConditionUnion: + PreparedStackProfileStateResourceConditionUnion, ): string { return JSON.stringify( - PreparedStackExtendStateResourceConditionUnion$outboundSchema.parse( - preparedStackExtendStateResourceConditionUnion, + PreparedStackProfileStateResourceConditionUnion$outboundSchema.parse( + preparedStackProfileStateResourceConditionUnion, ), ); } /** @internal */ -export type PreparedStackExtendStateGcpResource$Outbound = { +export type PreparedStackProfileStateGcpResource$Outbound = { condition?: - | PreparedStackExtendConditionStateResource$Outbound + | PreparedStackProfileConditionStateResource$Outbound | any | null | undefined; @@ -17096,85 +23145,85 @@ export type PreparedStackExtendStateGcpResource$Outbound = { }; /** @internal */ -export const PreparedStackExtendStateGcpResource$outboundSchema: z.ZodType< - PreparedStackExtendStateGcpResource$Outbound, - PreparedStackExtendStateGcpResource +export const PreparedStackProfileStateGcpResource$outboundSchema: z.ZodType< + PreparedStackProfileStateGcpResource$Outbound, + PreparedStackProfileStateGcpResource > = z.object({ condition: z.nullable( z.union([ - z.lazy(() => PreparedStackExtendConditionStateResource$outboundSchema), + z.lazy(() => PreparedStackProfileConditionStateResource$outboundSchema), z.any(), ]), ).optional(), scope: z.string(), }); -export function preparedStackExtendStateGcpResourceToJSON( - preparedStackExtendStateGcpResource: PreparedStackExtendStateGcpResource, +export function preparedStackProfileStateGcpResourceToJSON( + preparedStackProfileStateGcpResource: PreparedStackProfileStateGcpResource, ): string { return JSON.stringify( - PreparedStackExtendStateGcpResource$outboundSchema.parse( - preparedStackExtendStateGcpResource, + PreparedStackProfileStateGcpResource$outboundSchema.parse( + preparedStackProfileStateGcpResource, ), ); } /** @internal */ -export type PreparedStackExtendConditionStateStack$Outbound = { +export type PreparedStackProfileConditionStateStack$Outbound = { expression: string; title: string; }; /** @internal */ -export const PreparedStackExtendConditionStateStack$outboundSchema: z.ZodType< - PreparedStackExtendConditionStateStack$Outbound, - PreparedStackExtendConditionStateStack +export const PreparedStackProfileConditionStateStack$outboundSchema: z.ZodType< + PreparedStackProfileConditionStateStack$Outbound, + PreparedStackProfileConditionStateStack > = z.object({ expression: z.string(), title: z.string(), }); -export function preparedStackExtendConditionStateStackToJSON( - preparedStackExtendConditionStateStack: - PreparedStackExtendConditionStateStack, +export function preparedStackProfileConditionStateStackToJSON( + preparedStackProfileConditionStateStack: + PreparedStackProfileConditionStateStack, ): string { return JSON.stringify( - PreparedStackExtendConditionStateStack$outboundSchema.parse( - preparedStackExtendConditionStateStack, + PreparedStackProfileConditionStateStack$outboundSchema.parse( + preparedStackProfileConditionStateStack, ), ); } /** @internal */ -export type PreparedStackExtendStateStackConditionUnion$Outbound = - | PreparedStackExtendConditionStateStack$Outbound +export type PreparedStackProfileStateStackConditionUnion$Outbound = + | PreparedStackProfileConditionStateStack$Outbound | any; /** @internal */ -export const PreparedStackExtendStateStackConditionUnion$outboundSchema: +export const PreparedStackProfileStateStackConditionUnion$outboundSchema: z.ZodType< - PreparedStackExtendStateStackConditionUnion$Outbound, - PreparedStackExtendStateStackConditionUnion + PreparedStackProfileStateStackConditionUnion$Outbound, + PreparedStackProfileStateStackConditionUnion > = z.union([ - z.lazy(() => PreparedStackExtendConditionStateStack$outboundSchema), + z.lazy(() => PreparedStackProfileConditionStateStack$outboundSchema), z.any(), ]); -export function preparedStackExtendStateStackConditionUnionToJSON( - preparedStackExtendStateStackConditionUnion: - PreparedStackExtendStateStackConditionUnion, +export function preparedStackProfileStateStackConditionUnionToJSON( + preparedStackProfileStateStackConditionUnion: + PreparedStackProfileStateStackConditionUnion, ): string { return JSON.stringify( - PreparedStackExtendStateStackConditionUnion$outboundSchema.parse( - preparedStackExtendStateStackConditionUnion, + PreparedStackProfileStateStackConditionUnion$outboundSchema.parse( + preparedStackProfileStateStackConditionUnion, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackExtendGcpStack$Outbound = { +export type SyncReconcileRequestPreparedStackProfileGcpStack$Outbound = { condition?: - | PreparedStackExtendConditionStateStack$Outbound + | PreparedStackProfileConditionStateStack$Outbound | any | null | undefined; @@ -17182,63 +23231,63 @@ export type SyncReconcileRequestPreparedStackExtendGcpStack$Outbound = { }; /** @internal */ -export const SyncReconcileRequestPreparedStackExtendGcpStack$outboundSchema: +export const SyncReconcileRequestPreparedStackProfileGcpStack$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackExtendGcpStack$Outbound, - SyncReconcileRequestPreparedStackExtendGcpStack + SyncReconcileRequestPreparedStackProfileGcpStack$Outbound, + SyncReconcileRequestPreparedStackProfileGcpStack > = z.object({ condition: z.nullable( z.union([ - z.lazy(() => PreparedStackExtendConditionStateStack$outboundSchema), + z.lazy(() => PreparedStackProfileConditionStateStack$outboundSchema), z.any(), ]), ).optional(), scope: z.string(), }); -export function syncReconcileRequestPreparedStackExtendGcpStackToJSON( - syncReconcileRequestPreparedStackExtendGcpStack: - SyncReconcileRequestPreparedStackExtendGcpStack, +export function syncReconcileRequestPreparedStackProfileGcpStackToJSON( + syncReconcileRequestPreparedStackProfileGcpStack: + SyncReconcileRequestPreparedStackProfileGcpStack, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackExtendGcpStack$outboundSchema.parse( - syncReconcileRequestPreparedStackExtendGcpStack, + SyncReconcileRequestPreparedStackProfileGcpStack$outboundSchema.parse( + syncReconcileRequestPreparedStackProfileGcpStack, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackExtendGcpBinding$Outbound = { - resource?: PreparedStackExtendStateGcpResource$Outbound | undefined; - stack?: SyncReconcileRequestPreparedStackExtendGcpStack$Outbound | undefined; +export type SyncReconcileRequestPreparedStackProfileGcpBinding$Outbound = { + resource?: PreparedStackProfileStateGcpResource$Outbound | undefined; + stack?: SyncReconcileRequestPreparedStackProfileGcpStack$Outbound | undefined; }; /** @internal */ -export const SyncReconcileRequestPreparedStackExtendGcpBinding$outboundSchema: +export const SyncReconcileRequestPreparedStackProfileGcpBinding$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackExtendGcpBinding$Outbound, - SyncReconcileRequestPreparedStackExtendGcpBinding + SyncReconcileRequestPreparedStackProfileGcpBinding$Outbound, + SyncReconcileRequestPreparedStackProfileGcpBinding > = z.object({ - resource: z.lazy(() => PreparedStackExtendStateGcpResource$outboundSchema) + resource: z.lazy(() => PreparedStackProfileStateGcpResource$outboundSchema) .optional(), stack: z.lazy(() => - SyncReconcileRequestPreparedStackExtendGcpStack$outboundSchema + SyncReconcileRequestPreparedStackProfileGcpStack$outboundSchema ).optional(), }); -export function syncReconcileRequestPreparedStackExtendGcpBindingToJSON( - syncReconcileRequestPreparedStackExtendGcpBinding: - SyncReconcileRequestPreparedStackExtendGcpBinding, +export function syncReconcileRequestPreparedStackProfileGcpBindingToJSON( + syncReconcileRequestPreparedStackProfileGcpBinding: + SyncReconcileRequestPreparedStackProfileGcpBinding, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackExtendGcpBinding$outboundSchema.parse( - syncReconcileRequestPreparedStackExtendGcpBinding, + SyncReconcileRequestPreparedStackProfileGcpBinding$outboundSchema.parse( + syncReconcileRequestPreparedStackProfileGcpBinding, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackExtendGcpGrant$Outbound = { +export type SyncReconcileRequestPreparedStackProfileGcpGrant$Outbound = { actions?: Array | null | undefined; dataActions?: Array | null | undefined; permissions?: Array | null | undefined; @@ -17247,10 +23296,10 @@ export type SyncReconcileRequestPreparedStackExtendGcpGrant$Outbound = { }; /** @internal */ -export const SyncReconcileRequestPreparedStackExtendGcpGrant$outboundSchema: +export const SyncReconcileRequestPreparedStackProfileGcpGrant$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackExtendGcpGrant$Outbound, - SyncReconcileRequestPreparedStackExtendGcpGrant + SyncReconcileRequestPreparedStackProfileGcpGrant$Outbound, + SyncReconcileRequestPreparedStackProfileGcpGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -17259,2076 +23308,2141 @@ export const SyncReconcileRequestPreparedStackExtendGcpGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileRequestPreparedStackExtendGcpGrantToJSON( - syncReconcileRequestPreparedStackExtendGcpGrant: - SyncReconcileRequestPreparedStackExtendGcpGrant, +export function syncReconcileRequestPreparedStackProfileGcpGrantToJSON( + syncReconcileRequestPreparedStackProfileGcpGrant: + SyncReconcileRequestPreparedStackProfileGcpGrant, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackExtendGcpGrant$outboundSchema.parse( - syncReconcileRequestPreparedStackExtendGcpGrant, + SyncReconcileRequestPreparedStackProfileGcpGrant$outboundSchema.parse( + syncReconcileRequestPreparedStackProfileGcpGrant, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackExtendGcp$Outbound = { - binding: SyncReconcileRequestPreparedStackExtendGcpBinding$Outbound; +export type SyncReconcileRequestPreparedStackProfileGcp$Outbound = { + binding: SyncReconcileRequestPreparedStackProfileGcpBinding$Outbound; description?: string | null | undefined; - grant: SyncReconcileRequestPreparedStackExtendGcpGrant$Outbound; + grant: SyncReconcileRequestPreparedStackProfileGcpGrant$Outbound; label?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestPreparedStackExtendGcp$outboundSchema: +export const SyncReconcileRequestPreparedStackProfileGcp$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackExtendGcp$Outbound, - SyncReconcileRequestPreparedStackExtendGcp + SyncReconcileRequestPreparedStackProfileGcp$Outbound, + SyncReconcileRequestPreparedStackProfileGcp > = z.object({ binding: z.lazy(() => - SyncReconcileRequestPreparedStackExtendGcpBinding$outboundSchema + SyncReconcileRequestPreparedStackProfileGcpBinding$outboundSchema ), description: z.nullable(z.string()).optional(), grant: z.lazy(() => - SyncReconcileRequestPreparedStackExtendGcpGrant$outboundSchema + SyncReconcileRequestPreparedStackProfileGcpGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestPreparedStackExtendGcpToJSON( - syncReconcileRequestPreparedStackExtendGcp: - SyncReconcileRequestPreparedStackExtendGcp, +export function syncReconcileRequestPreparedStackProfileGcpToJSON( + syncReconcileRequestPreparedStackProfileGcp: + SyncReconcileRequestPreparedStackProfileGcp, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackExtendGcp$outboundSchema.parse( - syncReconcileRequestPreparedStackExtendGcp, + SyncReconcileRequestPreparedStackProfileGcp$outboundSchema.parse( + syncReconcileRequestPreparedStackProfileGcp, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackExtendPlatforms$Outbound = { +export type SyncReconcileRequestPreparedStackProfilePlatforms$Outbound = { aws?: - | Array + | Array | null | undefined; azure?: - | Array + | Array | null | undefined; gcp?: - | Array + | Array | null | undefined; }; /** @internal */ -export const SyncReconcileRequestPreparedStackExtendPlatforms$outboundSchema: +export const SyncReconcileRequestPreparedStackProfilePlatforms$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackExtendPlatforms$Outbound, - SyncReconcileRequestPreparedStackExtendPlatforms + SyncReconcileRequestPreparedStackProfilePlatforms$Outbound, + SyncReconcileRequestPreparedStackProfilePlatforms > = z.object({ aws: z.nullable( z.array(z.lazy(() => - SyncReconcileRequestPreparedStackExtendAw$outboundSchema + SyncReconcileRequestPreparedStackProfileAw$outboundSchema )), ).optional(), azure: z.nullable( z.array(z.lazy(() => - SyncReconcileRequestPreparedStackExtendAzure$outboundSchema + SyncReconcileRequestPreparedStackProfileAzure$outboundSchema )), ).optional(), gcp: z.nullable( z.array(z.lazy(() => - SyncReconcileRequestPreparedStackExtendGcp$outboundSchema + SyncReconcileRequestPreparedStackProfileGcp$outboundSchema )), ).optional(), }); -export function syncReconcileRequestPreparedStackExtendPlatformsToJSON( - syncReconcileRequestPreparedStackExtendPlatforms: - SyncReconcileRequestPreparedStackExtendPlatforms, +export function syncReconcileRequestPreparedStackProfilePlatformsToJSON( + syncReconcileRequestPreparedStackProfilePlatforms: + SyncReconcileRequestPreparedStackProfilePlatforms, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackExtendPlatforms$outboundSchema.parse( - syncReconcileRequestPreparedStackExtendPlatforms, + SyncReconcileRequestPreparedStackProfilePlatforms$outboundSchema.parse( + syncReconcileRequestPreparedStackProfilePlatforms, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestPreparedStackProfile$Outbound = { + description: string; + id: string; + platforms: SyncReconcileRequestPreparedStackProfilePlatforms$Outbound; +}; + +/** @internal */ +export const SyncReconcileRequestPreparedStackProfile$outboundSchema: z.ZodType< + SyncReconcileRequestPreparedStackProfile$Outbound, + SyncReconcileRequestPreparedStackProfile +> = z.object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncReconcileRequestPreparedStackProfilePlatforms$outboundSchema + ), +}); + +export function syncReconcileRequestPreparedStackProfileToJSON( + syncReconcileRequestPreparedStackProfile: + SyncReconcileRequestPreparedStackProfile, +): string { + return JSON.stringify( + SyncReconcileRequestPreparedStackProfile$outboundSchema.parse( + syncReconcileRequestPreparedStackProfile, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestPreparedStackProfileUnion$Outbound = + | SyncReconcileRequestPreparedStackProfile$Outbound + | string; + +/** @internal */ +export const SyncReconcileRequestPreparedStackProfileUnion$outboundSchema: + z.ZodType< + SyncReconcileRequestPreparedStackProfileUnion$Outbound, + SyncReconcileRequestPreparedStackProfileUnion + > = z.union([ + z.lazy(() => SyncReconcileRequestPreparedStackProfile$outboundSchema), + z.string(), + ]); + +export function syncReconcileRequestPreparedStackProfileUnionToJSON( + syncReconcileRequestPreparedStackProfileUnion: + SyncReconcileRequestPreparedStackProfileUnion, +): string { + return JSON.stringify( + SyncReconcileRequestPreparedStackProfileUnion$outboundSchema.parse( + syncReconcileRequestPreparedStackProfileUnion, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestPreparedStackPermissions$Outbound = { + management?: + | SyncReconcileRequestPreparedStackManagement1$Outbound + | SyncReconcileRequestPreparedStackManagement2$Outbound + | string + | undefined; + profiles: { + [k: string]: { + [k: string]: Array< + SyncReconcileRequestPreparedStackProfile$Outbound | string + >; + }; + }; +}; + +/** @internal */ +export const SyncReconcileRequestPreparedStackPermissions$outboundSchema: + z.ZodType< + SyncReconcileRequestPreparedStackPermissions$Outbound, + SyncReconcileRequestPreparedStackPermissions + > = z.object({ + management: z.union([ + z.lazy(() => SyncReconcileRequestPreparedStackManagement1$outboundSchema), + z.lazy(() => SyncReconcileRequestPreparedStackManagement2$outboundSchema), + SyncReconcileRequestPreparedStackManagementEnum$outboundSchema, + ]).optional(), + profiles: z.record( + z.string(), + z.record( + z.string(), + z.array( + z.union([ + z.lazy(() => + SyncReconcileRequestPreparedStackProfile$outboundSchema + ), + z.string(), + ]), + ), + ), + ), + }); + +export function syncReconcileRequestPreparedStackPermissionsToJSON( + syncReconcileRequestPreparedStackPermissions: + SyncReconcileRequestPreparedStackPermissions, +): string { + return JSON.stringify( + SyncReconcileRequestPreparedStackPermissions$outboundSchema.parse( + syncReconcileRequestPreparedStackPermissions, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestPreparedStackConfig$Outbound = { + id: string; + type: string; + [additionalProperties: string]: unknown; +}; + +/** @internal */ +export const SyncReconcileRequestPreparedStackConfig$outboundSchema: z.ZodType< + SyncReconcileRequestPreparedStackConfig$Outbound, + SyncReconcileRequestPreparedStackConfig +> = z.object({ + id: z.string(), + type: z.string(), + additionalProperties: z.record(z.string(), z.nullable(z.any())).optional(), +}).transform((v) => { + return { + ...v.additionalProperties, + ...remap$(v, { + additionalProperties: null, + }), + }; +}); + +export function syncReconcileRequestPreparedStackConfigToJSON( + syncReconcileRequestPreparedStackConfig: + SyncReconcileRequestPreparedStackConfig, +): string { + return JSON.stringify( + SyncReconcileRequestPreparedStackConfig$outboundSchema.parse( + syncReconcileRequestPreparedStackConfig, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestPreparedStackDependency$Outbound = { + id: string; + type: string; +}; + +/** @internal */ +export const SyncReconcileRequestPreparedStackDependency$outboundSchema: + z.ZodType< + SyncReconcileRequestPreparedStackDependency$Outbound, + SyncReconcileRequestPreparedStackDependency + > = z.object({ + id: z.string(), + type: z.string(), + }); + +export function syncReconcileRequestPreparedStackDependencyToJSON( + syncReconcileRequestPreparedStackDependency: + SyncReconcileRequestPreparedStackDependency, +): string { + return JSON.stringify( + SyncReconcileRequestPreparedStackDependency$outboundSchema.parse( + syncReconcileRequestPreparedStackDependency, + ), + ); +} + +/** @internal */ +export const PreparedStackStateLifecycle$outboundSchema: z.ZodEnum< + typeof PreparedStackStateLifecycle +> = z.enum(PreparedStackStateLifecycle); + +/** @internal */ +export type SyncReconcileRequestPreparedStackResources$Outbound = { + config: SyncReconcileRequestPreparedStackConfig$Outbound; + dependencies: Array; + enabledWhen?: string | null | undefined; + lifecycle: string; + remoteAccess?: boolean | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestPreparedStackResources$outboundSchema: + z.ZodType< + SyncReconcileRequestPreparedStackResources$Outbound, + SyncReconcileRequestPreparedStackResources + > = z.object({ + config: z.lazy(() => + SyncReconcileRequestPreparedStackConfig$outboundSchema + ), + dependencies: z.array( + z.lazy(() => SyncReconcileRequestPreparedStackDependency$outboundSchema), + ), + enabledWhen: z.nullable(z.string()).optional(), + lifecycle: PreparedStackStateLifecycle$outboundSchema, + remoteAccess: z.boolean().optional(), + }); + +export function syncReconcileRequestPreparedStackResourcesToJSON( + syncReconcileRequestPreparedStackResources: + SyncReconcileRequestPreparedStackResources, +): string { + return JSON.stringify( + SyncReconcileRequestPreparedStackResources$outboundSchema.parse( + syncReconcileRequestPreparedStackResources, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackExtend$Outbound = { - description: string; +export const SyncReconcileRequestPreparedStackSupportedPlatform$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestPreparedStackSupportedPlatform, + ); + +/** @internal */ +export type SyncReconcileRequestPreparedStack$Outbound = { id: string; - platforms: SyncReconcileRequestPreparedStackExtendPlatforms$Outbound; + inputs?: Array | undefined; + permissions?: + | SyncReconcileRequestPreparedStackPermissions$Outbound + | undefined; + resources: { + [k: string]: SyncReconcileRequestPreparedStackResources$Outbound; + }; + supportedPlatforms?: Array | null | undefined; }; /** @internal */ -export const SyncReconcileRequestPreparedStackExtend$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackExtend$Outbound, - SyncReconcileRequestPreparedStackExtend +export const SyncReconcileRequestPreparedStack$outboundSchema: z.ZodType< + SyncReconcileRequestPreparedStack$Outbound, + SyncReconcileRequestPreparedStack > = z.object({ - description: z.string(), id: z.string(), - platforms: z.lazy(() => - SyncReconcileRequestPreparedStackExtendPlatforms$outboundSchema + inputs: z.array( + z.lazy(() => SyncReconcileRequestPreparedStackInput$outboundSchema), + ).optional(), + permissions: z.lazy(() => + SyncReconcileRequestPreparedStackPermissions$outboundSchema + ).optional(), + resources: z.record( + z.string(), + z.lazy(() => SyncReconcileRequestPreparedStackResources$outboundSchema), ), + supportedPlatforms: z.nullable( + z.array(SyncReconcileRequestPreparedStackSupportedPlatform$outboundSchema), + ).optional(), }); -export function syncReconcileRequestPreparedStackExtendToJSON( - syncReconcileRequestPreparedStackExtend: - SyncReconcileRequestPreparedStackExtend, +export function syncReconcileRequestPreparedStackToJSON( + syncReconcileRequestPreparedStack: SyncReconcileRequestPreparedStack, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackExtend$outboundSchema.parse( - syncReconcileRequestPreparedStackExtend, + SyncReconcileRequestPreparedStack$outboundSchema.parse( + syncReconcileRequestPreparedStack, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackExtendUnion$Outbound = - | SyncReconcileRequestPreparedStackExtend$Outbound - | string; +export type SyncReconcileRequestPreparedStackUnion$Outbound = + | SyncReconcileRequestPreparedStack$Outbound + | any; /** @internal */ -export const SyncReconcileRequestPreparedStackExtendUnion$outboundSchema: - z.ZodType< - SyncReconcileRequestPreparedStackExtendUnion$Outbound, - SyncReconcileRequestPreparedStackExtendUnion - > = z.union([ - z.lazy(() => SyncReconcileRequestPreparedStackExtend$outboundSchema), - z.string(), - ]); +export const SyncReconcileRequestPreparedStackUnion$outboundSchema: z.ZodType< + SyncReconcileRequestPreparedStackUnion$Outbound, + SyncReconcileRequestPreparedStackUnion +> = z.union([ + z.lazy(() => SyncReconcileRequestPreparedStack$outboundSchema), + z.any(), +]); -export function syncReconcileRequestPreparedStackExtendUnionToJSON( - syncReconcileRequestPreparedStackExtendUnion: - SyncReconcileRequestPreparedStackExtendUnion, +export function syncReconcileRequestPreparedStackUnionToJSON( + syncReconcileRequestPreparedStackUnion: + SyncReconcileRequestPreparedStackUnion, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackExtendUnion$outboundSchema.parse( - syncReconcileRequestPreparedStackExtendUnion, + SyncReconcileRequestPreparedStackUnion$outboundSchema.parse( + syncReconcileRequestPreparedStackUnion, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackManagement1$Outbound = { - extend: { - [k: string]: Array< - SyncReconcileRequestPreparedStackExtend$Outbound | string - >; - }; +export type SyncReconcileRequestSetupUpdateAuthorization$Outbound = { + baselineFrozenDigest: string; + nonce: string; + releaseId: string; + setupFingerprint: string; + setupFingerprintVersion: number; + setupTarget: string; + targetFrozenDigest: string; }; /** @internal */ -export const SyncReconcileRequestPreparedStackManagement1$outboundSchema: +export const SyncReconcileRequestSetupUpdateAuthorization$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackManagement1$Outbound, - SyncReconcileRequestPreparedStackManagement1 + SyncReconcileRequestSetupUpdateAuthorization$Outbound, + SyncReconcileRequestSetupUpdateAuthorization > = z.object({ - extend: z.record( - z.string(), - z.array(z.union([ - z.lazy(() => SyncReconcileRequestPreparedStackExtend$outboundSchema), - z.string(), - ])), - ), + baselineFrozenDigest: z.string(), + nonce: z.string(), + releaseId: z.string(), + setupFingerprint: z.string(), + setupFingerprintVersion: z.int(), + setupTarget: z.string(), + targetFrozenDigest: z.string(), }); -export function syncReconcileRequestPreparedStackManagement1ToJSON( - syncReconcileRequestPreparedStackManagement1: - SyncReconcileRequestPreparedStackManagement1, +export function syncReconcileRequestSetupUpdateAuthorizationToJSON( + syncReconcileRequestSetupUpdateAuthorization: + SyncReconcileRequestSetupUpdateAuthorization, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackManagement1$outboundSchema.parse( - syncReconcileRequestPreparedStackManagement1, + SyncReconcileRequestSetupUpdateAuthorization$outboundSchema.parse( + syncReconcileRequestSetupUpdateAuthorization, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackManagementUnion$Outbound = - | SyncReconcileRequestPreparedStackManagement1$Outbound - | SyncReconcileRequestPreparedStackManagement2$Outbound - | string; +export type SyncReconcileRequestSetupUpdateAuthorizationUnion$Outbound = + | SyncReconcileRequestSetupUpdateAuthorization$Outbound + | any; /** @internal */ -export const SyncReconcileRequestPreparedStackManagementUnion$outboundSchema: +export const SyncReconcileRequestSetupUpdateAuthorizationUnion$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackManagementUnion$Outbound, - SyncReconcileRequestPreparedStackManagementUnion + SyncReconcileRequestSetupUpdateAuthorizationUnion$Outbound, + SyncReconcileRequestSetupUpdateAuthorizationUnion > = z.union([ - z.lazy(() => SyncReconcileRequestPreparedStackManagement1$outboundSchema), - z.lazy(() => SyncReconcileRequestPreparedStackManagement2$outboundSchema), - SyncReconcileRequestPreparedStackManagementEnum$outboundSchema, + z.lazy(() => SyncReconcileRequestSetupUpdateAuthorization$outboundSchema), + z.any(), ]); -export function syncReconcileRequestPreparedStackManagementUnionToJSON( - syncReconcileRequestPreparedStackManagementUnion: - SyncReconcileRequestPreparedStackManagementUnion, +export function syncReconcileRequestSetupUpdateAuthorizationUnionToJSON( + syncReconcileRequestSetupUpdateAuthorizationUnion: + SyncReconcileRequestSetupUpdateAuthorizationUnion, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackManagementUnion$outboundSchema.parse( - syncReconcileRequestPreparedStackManagementUnion, + SyncReconcileRequestSetupUpdateAuthorizationUnion$outboundSchema.parse( + syncReconcileRequestSetupUpdateAuthorizationUnion, ), ); } /** @internal */ -export type PreparedStackProfileStateAwResource$Outbound = { - condition?: { [k: string]: { [k: string]: string } } | null | undefined; - resources: Array; +export type SyncReconcileRequestRuntimeMetadata$Outbound = { + initialSetupAuthority?: string | undefined; + lastSyncedEnvVarsHash?: string | null | undefined; + lastSyncedSecretNames?: Array | undefined; + pendingPreparedStack?: + | SyncReconcileRequestPendingPreparedStack$Outbound + | any + | null + | undefined; + persistedGateAnswers?: { [k: string]: boolean } | undefined; + preparedStack?: + | SyncReconcileRequestPreparedStack$Outbound + | any + | null + | undefined; + registryAccessGranted?: boolean | undefined; + setupUpdateAuthorization?: + | SyncReconcileRequestSetupUpdateAuthorization$Outbound + | any + | null + | undefined; }; /** @internal */ -export const PreparedStackProfileStateAwResource$outboundSchema: z.ZodType< - PreparedStackProfileStateAwResource$Outbound, - PreparedStackProfileStateAwResource +export const SyncReconcileRequestRuntimeMetadata$outboundSchema: z.ZodType< + SyncReconcileRequestRuntimeMetadata$Outbound, + SyncReconcileRequestRuntimeMetadata > = z.object({ - condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) - .optional(), - resources: z.array(z.string()), + initialSetupAuthority: + SyncReconcileRequestInitialSetupAuthority$outboundSchema.optional(), + lastSyncedEnvVarsHash: z.nullable(z.string()).optional(), + lastSyncedSecretNames: z.array(z.string()).optional(), + pendingPreparedStack: z.nullable( + z.union([ + z.lazy(() => SyncReconcileRequestPendingPreparedStack$outboundSchema), + z.any(), + ]), + ).optional(), + persistedGateAnswers: z.record(z.string(), z.boolean()).optional(), + preparedStack: z.nullable( + z.union([ + z.lazy(() => SyncReconcileRequestPreparedStack$outboundSchema), + z.any(), + ]), + ).optional(), + registryAccessGranted: z.boolean().optional(), + setupUpdateAuthorization: z.nullable( + z.union([ + z.lazy(() => SyncReconcileRequestSetupUpdateAuthorization$outboundSchema), + z.any(), + ]), + ).optional(), }); -export function preparedStackProfileStateAwResourceToJSON( - preparedStackProfileStateAwResource: PreparedStackProfileStateAwResource, +export function syncReconcileRequestRuntimeMetadataToJSON( + syncReconcileRequestRuntimeMetadata: SyncReconcileRequestRuntimeMetadata, ): string { return JSON.stringify( - PreparedStackProfileStateAwResource$outboundSchema.parse( - preparedStackProfileStateAwResource, + SyncReconcileRequestRuntimeMetadata$outboundSchema.parse( + syncReconcileRequestRuntimeMetadata, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackProfileAwStack$Outbound = { - condition?: { [k: string]: { [k: string]: string } } | null | undefined; - resources: Array; -}; +export type SyncReconcileRequestRuntimeMetadataUnion$Outbound = + | SyncReconcileRequestRuntimeMetadata$Outbound + | any; /** @internal */ -export const SyncReconcileRequestPreparedStackProfileAwStack$outboundSchema: - z.ZodType< - SyncReconcileRequestPreparedStackProfileAwStack$Outbound, - SyncReconcileRequestPreparedStackProfileAwStack - > = z.object({ - condition: z.nullable( - z.record(z.string(), z.record(z.string(), z.string())), - ).optional(), - resources: z.array(z.string()), - }); +export const SyncReconcileRequestRuntimeMetadataUnion$outboundSchema: z.ZodType< + SyncReconcileRequestRuntimeMetadataUnion$Outbound, + SyncReconcileRequestRuntimeMetadataUnion +> = z.union([ + z.lazy(() => SyncReconcileRequestRuntimeMetadata$outboundSchema), + z.any(), +]); -export function syncReconcileRequestPreparedStackProfileAwStackToJSON( - syncReconcileRequestPreparedStackProfileAwStack: - SyncReconcileRequestPreparedStackProfileAwStack, +export function syncReconcileRequestRuntimeMetadataUnionToJSON( + syncReconcileRequestRuntimeMetadataUnion: + SyncReconcileRequestRuntimeMetadataUnion, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackProfileAwStack$outboundSchema.parse( - syncReconcileRequestPreparedStackProfileAwStack, + SyncReconcileRequestRuntimeMetadataUnion$outboundSchema.parse( + syncReconcileRequestRuntimeMetadataUnion, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackProfileAwBinding$Outbound = { - resource?: PreparedStackProfileStateAwResource$Outbound | undefined; - stack?: SyncReconcileRequestPreparedStackProfileAwStack$Outbound | undefined; +export const SyncReconcileRequestStackStatePlatform$outboundSchema: z.ZodEnum< + typeof SyncReconcileRequestStackStatePlatform +> = z.enum(SyncReconcileRequestStackStatePlatform); + +/** @internal */ +export type SyncReconcileRequestStackStateConfig$Outbound = { + id: string; + type: string; + [additionalProperties: string]: unknown; }; /** @internal */ -export const SyncReconcileRequestPreparedStackProfileAwBinding$outboundSchema: - z.ZodType< - SyncReconcileRequestPreparedStackProfileAwBinding$Outbound, - SyncReconcileRequestPreparedStackProfileAwBinding - > = z.object({ - resource: z.lazy(() => PreparedStackProfileStateAwResource$outboundSchema) - .optional(), - stack: z.lazy(() => - SyncReconcileRequestPreparedStackProfileAwStack$outboundSchema - ).optional(), - }); +export const SyncReconcileRequestStackStateConfig$outboundSchema: z.ZodType< + SyncReconcileRequestStackStateConfig$Outbound, + SyncReconcileRequestStackStateConfig +> = z.object({ + id: z.string(), + type: z.string(), + additionalProperties: z.record(z.string(), z.nullable(z.any())).optional(), +}).transform((v) => { + return { + ...v.additionalProperties, + ...remap$(v, { + additionalProperties: null, + }), + }; +}); -export function syncReconcileRequestPreparedStackProfileAwBindingToJSON( - syncReconcileRequestPreparedStackProfileAwBinding: - SyncReconcileRequestPreparedStackProfileAwBinding, +export function syncReconcileRequestStackStateConfigToJSON( + syncReconcileRequestStackStateConfig: SyncReconcileRequestStackStateConfig, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackProfileAwBinding$outboundSchema.parse( - syncReconcileRequestPreparedStackProfileAwBinding, + SyncReconcileRequestStackStateConfig$outboundSchema.parse( + syncReconcileRequestStackStateConfig, ), ); } /** @internal */ -export const SyncReconcileRequestPreparedStackProfileEffect$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestPreparedStackProfileEffect, - ); +export const ControllerPlatformStateEnum$outboundSchema: z.ZodEnum< + typeof ControllerPlatformStateEnum +> = z.enum(ControllerPlatformStateEnum); /** @internal */ -export type SyncReconcileRequestPreparedStackProfileAwGrant$Outbound = { - actions?: Array | null | undefined; - dataActions?: Array | null | undefined; - permissions?: Array | null | undefined; - predefinedRoles?: Array | null | undefined; - residualPermissions?: Array | null | undefined; -}; +export type StateControllerPlatformUnion$Outbound = string | any; /** @internal */ -export const SyncReconcileRequestPreparedStackProfileAwGrant$outboundSchema: - z.ZodType< - SyncReconcileRequestPreparedStackProfileAwGrant$Outbound, - SyncReconcileRequestPreparedStackProfileAwGrant - > = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), - }); +export const StateControllerPlatformUnion$outboundSchema: z.ZodType< + StateControllerPlatformUnion$Outbound, + StateControllerPlatformUnion +> = z.union([ControllerPlatformStateEnum$outboundSchema, z.any()]); -export function syncReconcileRequestPreparedStackProfileAwGrantToJSON( - syncReconcileRequestPreparedStackProfileAwGrant: - SyncReconcileRequestPreparedStackProfileAwGrant, +export function stateControllerPlatformUnionToJSON( + stateControllerPlatformUnion: StateControllerPlatformUnion, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackProfileAwGrant$outboundSchema.parse( - syncReconcileRequestPreparedStackProfileAwGrant, + StateControllerPlatformUnion$outboundSchema.parse( + stateControllerPlatformUnion, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackProfileAw$Outbound = { - binding: SyncReconcileRequestPreparedStackProfileAwBinding$Outbound; - description?: string | null | undefined; - effect?: string | undefined; - grant: SyncReconcileRequestPreparedStackProfileAwGrant$Outbound; - label?: string | null | undefined; +export type SyncReconcileRequestStackStateDependency$Outbound = { + id: string; + type: string; }; /** @internal */ -export const SyncReconcileRequestPreparedStackProfileAw$outboundSchema: - z.ZodType< - SyncReconcileRequestPreparedStackProfileAw$Outbound, - SyncReconcileRequestPreparedStackProfileAw - > = z.object({ - binding: z.lazy(() => - SyncReconcileRequestPreparedStackProfileAwBinding$outboundSchema - ), - description: z.nullable(z.string()).optional(), - effect: SyncReconcileRequestPreparedStackProfileEffect$outboundSchema - .optional(), - grant: z.lazy(() => - SyncReconcileRequestPreparedStackProfileAwGrant$outboundSchema - ), - label: z.nullable(z.string()).optional(), - }); +export const SyncReconcileRequestStackStateDependency$outboundSchema: z.ZodType< + SyncReconcileRequestStackStateDependency$Outbound, + SyncReconcileRequestStackStateDependency +> = z.object({ + id: z.string(), + type: z.string(), +}); -export function syncReconcileRequestPreparedStackProfileAwToJSON( - syncReconcileRequestPreparedStackProfileAw: - SyncReconcileRequestPreparedStackProfileAw, +export function syncReconcileRequestStackStateDependencyToJSON( + syncReconcileRequestStackStateDependency: + SyncReconcileRequestStackStateDependency, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackProfileAw$outboundSchema.parse( - syncReconcileRequestPreparedStackProfileAw, + SyncReconcileRequestStackStateDependency$outboundSchema.parse( + syncReconcileRequestStackStateDependency, ), ); } /** @internal */ -export type PreparedStackProfileStateAzureResource$Outbound = { - scope: string; +export type SyncReconcileRequestStackStateError$Outbound = { + code: string; + context?: any | null | undefined; + hint?: string | null | undefined; + httpStatusCode?: number | null | undefined; + internal: boolean; + message: string; + retryable: boolean; + source?: any | null | undefined; }; /** @internal */ -export const PreparedStackProfileStateAzureResource$outboundSchema: z.ZodType< - PreparedStackProfileStateAzureResource$Outbound, - PreparedStackProfileStateAzureResource +export const SyncReconcileRequestStackStateError$outboundSchema: z.ZodType< + SyncReconcileRequestStackStateError$Outbound, + SyncReconcileRequestStackStateError > = z.object({ - scope: z.string(), + code: z.string(), + context: z.nullable(z.any()).optional(), + hint: z.nullable(z.string()).optional(), + httpStatusCode: z.nullable(z.int()).optional(), + internal: z.boolean(), + message: z.string(), + retryable: z.boolean().default(false), + source: z.nullable(z.any()).optional(), }); -export function preparedStackProfileStateAzureResourceToJSON( - preparedStackProfileStateAzureResource: - PreparedStackProfileStateAzureResource, +export function syncReconcileRequestStackStateErrorToJSON( + syncReconcileRequestStackStateError: SyncReconcileRequestStackStateError, ): string { return JSON.stringify( - PreparedStackProfileStateAzureResource$outboundSchema.parse( - preparedStackProfileStateAzureResource, + SyncReconcileRequestStackStateError$outboundSchema.parse( + syncReconcileRequestStackStateError, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackProfileAzureStack$Outbound = { - scope: string; -}; +export type SyncReconcileRequestStackStateErrorUnion$Outbound = + | SyncReconcileRequestStackStateError$Outbound + | any; /** @internal */ -export const SyncReconcileRequestPreparedStackProfileAzureStack$outboundSchema: - z.ZodType< - SyncReconcileRequestPreparedStackProfileAzureStack$Outbound, - SyncReconcileRequestPreparedStackProfileAzureStack - > = z.object({ - scope: z.string(), - }); +export const SyncReconcileRequestStackStateErrorUnion$outboundSchema: z.ZodType< + SyncReconcileRequestStackStateErrorUnion$Outbound, + SyncReconcileRequestStackStateErrorUnion +> = z.union([ + z.lazy(() => SyncReconcileRequestStackStateError$outboundSchema), + z.any(), +]); -export function syncReconcileRequestPreparedStackProfileAzureStackToJSON( - syncReconcileRequestPreparedStackProfileAzureStack: - SyncReconcileRequestPreparedStackProfileAzureStack, +export function syncReconcileRequestStackStateErrorUnionToJSON( + syncReconcileRequestStackStateErrorUnion: + SyncReconcileRequestStackStateErrorUnion, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackProfileAzureStack$outboundSchema.parse( - syncReconcileRequestPreparedStackProfileAzureStack, + SyncReconcileRequestStackStateErrorUnion$outboundSchema.parse( + syncReconcileRequestStackStateErrorUnion, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackProfileAzureBinding$Outbound = { - resource?: PreparedStackProfileStateAzureResource$Outbound | undefined; - stack?: - | SyncReconcileRequestPreparedStackProfileAzureStack$Outbound - | undefined; -}; +export const StackStateLifecycleStateEnum$outboundSchema: z.ZodEnum< + typeof StackStateLifecycleStateEnum +> = z.enum(StackStateLifecycleStateEnum); /** @internal */ -export const SyncReconcileRequestPreparedStackProfileAzureBinding$outboundSchema: - z.ZodType< - SyncReconcileRequestPreparedStackProfileAzureBinding$Outbound, - SyncReconcileRequestPreparedStackProfileAzureBinding - > = z.object({ - resource: z.lazy(() => - PreparedStackProfileStateAzureResource$outboundSchema - ).optional(), - stack: z.lazy(() => - SyncReconcileRequestPreparedStackProfileAzureStack$outboundSchema - ).optional(), - }); +export type StateLifecycleUnion$Outbound = string | any; -export function syncReconcileRequestPreparedStackProfileAzureBindingToJSON( - syncReconcileRequestPreparedStackProfileAzureBinding: - SyncReconcileRequestPreparedStackProfileAzureBinding, +/** @internal */ +export const StateLifecycleUnion$outboundSchema: z.ZodType< + StateLifecycleUnion$Outbound, + StateLifecycleUnion +> = z.union([StackStateLifecycleStateEnum$outboundSchema, z.any()]); + +export function stateLifecycleUnionToJSON( + stateLifecycleUnion: StateLifecycleUnion, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackProfileAzureBinding$outboundSchema.parse( - syncReconcileRequestPreparedStackProfileAzureBinding, - ), + StateLifecycleUnion$outboundSchema.parse(stateLifecycleUnion), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackProfileAzureGrant$Outbound = { - actions?: Array | null | undefined; - dataActions?: Array | null | undefined; - permissions?: Array | null | undefined; - predefinedRoles?: Array | null | undefined; - residualPermissions?: Array | null | undefined; +export type SyncReconcileRequestOutputs$Outbound = { + type: string; + [additionalProperties: string]: unknown; }; /** @internal */ -export const SyncReconcileRequestPreparedStackProfileAzureGrant$outboundSchema: - z.ZodType< - SyncReconcileRequestPreparedStackProfileAzureGrant$Outbound, - SyncReconcileRequestPreparedStackProfileAzureGrant - > = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), - }); +export const SyncReconcileRequestOutputs$outboundSchema: z.ZodType< + SyncReconcileRequestOutputs$Outbound, + SyncReconcileRequestOutputs +> = z.object({ + type: z.string(), + additionalProperties: z.record(z.string(), z.nullable(z.any())).optional(), +}).transform((v) => { + return { + ...v.additionalProperties, + ...remap$(v, { + additionalProperties: null, + }), + }; +}); -export function syncReconcileRequestPreparedStackProfileAzureGrantToJSON( - syncReconcileRequestPreparedStackProfileAzureGrant: - SyncReconcileRequestPreparedStackProfileAzureGrant, +export function syncReconcileRequestOutputsToJSON( + syncReconcileRequestOutputs: SyncReconcileRequestOutputs, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackProfileAzureGrant$outboundSchema.parse( - syncReconcileRequestPreparedStackProfileAzureGrant, + SyncReconcileRequestOutputs$outboundSchema.parse( + syncReconcileRequestOutputs, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackProfileAzure$Outbound = { - binding: SyncReconcileRequestPreparedStackProfileAzureBinding$Outbound; - description?: string | null | undefined; - grant: SyncReconcileRequestPreparedStackProfileAzureGrant$Outbound; - label?: string | null | undefined; -}; +export type SyncReconcileRequestOutputsUnion$Outbound = + | SyncReconcileRequestOutputs$Outbound + | any; /** @internal */ -export const SyncReconcileRequestPreparedStackProfileAzure$outboundSchema: - z.ZodType< - SyncReconcileRequestPreparedStackProfileAzure$Outbound, - SyncReconcileRequestPreparedStackProfileAzure - > = z.object({ - binding: z.lazy(() => - SyncReconcileRequestPreparedStackProfileAzureBinding$outboundSchema - ), - description: z.nullable(z.string()).optional(), - grant: z.lazy(() => - SyncReconcileRequestPreparedStackProfileAzureGrant$outboundSchema - ), - label: z.nullable(z.string()).optional(), - }); +export const SyncReconcileRequestOutputsUnion$outboundSchema: z.ZodType< + SyncReconcileRequestOutputsUnion$Outbound, + SyncReconcileRequestOutputsUnion +> = z.union([ + z.lazy(() => SyncReconcileRequestOutputs$outboundSchema), + z.any(), +]); -export function syncReconcileRequestPreparedStackProfileAzureToJSON( - syncReconcileRequestPreparedStackProfileAzure: - SyncReconcileRequestPreparedStackProfileAzure, +export function syncReconcileRequestOutputsUnionToJSON( + syncReconcileRequestOutputsUnion: SyncReconcileRequestOutputsUnion, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackProfileAzure$outboundSchema.parse( - syncReconcileRequestPreparedStackProfileAzure, + SyncReconcileRequestOutputsUnion$outboundSchema.parse( + syncReconcileRequestOutputsUnion, ), ); } /** @internal */ -export type PreparedStackProfileConditionStateResource$Outbound = { - expression: string; - title: string; +export type SyncReconcileRequestPreviousConfig$Outbound = { + id: string; + type: string; + [additionalProperties: string]: unknown; }; /** @internal */ -export const PreparedStackProfileConditionStateResource$outboundSchema: - z.ZodType< - PreparedStackProfileConditionStateResource$Outbound, - PreparedStackProfileConditionStateResource - > = z.object({ - expression: z.string(), - title: z.string(), - }); +export const SyncReconcileRequestPreviousConfig$outboundSchema: z.ZodType< + SyncReconcileRequestPreviousConfig$Outbound, + SyncReconcileRequestPreviousConfig +> = z.object({ + id: z.string(), + type: z.string(), + additionalProperties: z.record(z.string(), z.nullable(z.any())).optional(), +}).transform((v) => { + return { + ...v.additionalProperties, + ...remap$(v, { + additionalProperties: null, + }), + }; +}); -export function preparedStackProfileConditionStateResourceToJSON( - preparedStackProfileConditionStateResource: - PreparedStackProfileConditionStateResource, +export function syncReconcileRequestPreviousConfigToJSON( + syncReconcileRequestPreviousConfig: SyncReconcileRequestPreviousConfig, ): string { return JSON.stringify( - PreparedStackProfileConditionStateResource$outboundSchema.parse( - preparedStackProfileConditionStateResource, + SyncReconcileRequestPreviousConfig$outboundSchema.parse( + syncReconcileRequestPreviousConfig, ), ); } /** @internal */ -export type PreparedStackProfileStateResourceConditionUnion$Outbound = - | PreparedStackProfileConditionStateResource$Outbound +export type SyncReconcileRequestPreviousConfigUnion$Outbound = + | SyncReconcileRequestPreviousConfig$Outbound | any; /** @internal */ -export const PreparedStackProfileStateResourceConditionUnion$outboundSchema: - z.ZodType< - PreparedStackProfileStateResourceConditionUnion$Outbound, - PreparedStackProfileStateResourceConditionUnion - > = z.union([ - z.lazy(() => PreparedStackProfileConditionStateResource$outboundSchema), - z.any(), - ]); +export const SyncReconcileRequestPreviousConfigUnion$outboundSchema: z.ZodType< + SyncReconcileRequestPreviousConfigUnion$Outbound, + SyncReconcileRequestPreviousConfigUnion +> = z.union([ + z.lazy(() => SyncReconcileRequestPreviousConfig$outboundSchema), + z.any(), +]); -export function preparedStackProfileStateResourceConditionUnionToJSON( - preparedStackProfileStateResourceConditionUnion: - PreparedStackProfileStateResourceConditionUnion, +export function syncReconcileRequestPreviousConfigUnionToJSON( + syncReconcileRequestPreviousConfigUnion: + SyncReconcileRequestPreviousConfigUnion, ): string { return JSON.stringify( - PreparedStackProfileStateResourceConditionUnion$outboundSchema.parse( - preparedStackProfileStateResourceConditionUnion, + SyncReconcileRequestPreviousConfigUnion$outboundSchema.parse( + syncReconcileRequestPreviousConfigUnion, ), ); } /** @internal */ -export type PreparedStackProfileStateGcpResource$Outbound = { - condition?: - | PreparedStackProfileConditionStateResource$Outbound +export const StackStateStateStatus$outboundSchema: z.ZodEnum< + typeof StackStateStateStatus +> = z.enum(StackStateStateStatus); + +/** @internal */ +export type SyncReconcileRequestStackStateResources$Outbound = { + _internal?: any | null | undefined; + config: SyncReconcileRequestStackStateConfig$Outbound; + controllerPlatform?: string | any | null | undefined; + dependencies?: + | Array + | undefined; + error?: SyncReconcileRequestStackStateError$Outbound | any | null | undefined; + lastFailedState?: any | null | undefined; + lifecycle?: string | any | null | undefined; + outputs?: SyncReconcileRequestOutputs$Outbound | any | null | undefined; + previousConfig?: + | SyncReconcileRequestPreviousConfig$Outbound | any | null | undefined; - scope: string; + remoteBindingParams?: any | null | undefined; + retryAttempt?: number | undefined; + status: string; + type: string; }; /** @internal */ -export const PreparedStackProfileStateGcpResource$outboundSchema: z.ZodType< - PreparedStackProfileStateGcpResource$Outbound, - PreparedStackProfileStateGcpResource +export const SyncReconcileRequestStackStateResources$outboundSchema: z.ZodType< + SyncReconcileRequestStackStateResources$Outbound, + SyncReconcileRequestStackStateResources > = z.object({ - condition: z.nullable( + internal: z.nullable(z.any()).optional(), + config: z.lazy(() => SyncReconcileRequestStackStateConfig$outboundSchema), + controllerPlatform: z.nullable( + z.union([ControllerPlatformStateEnum$outboundSchema, z.any()]), + ).optional(), + dependencies: z.array( + z.lazy(() => SyncReconcileRequestStackStateDependency$outboundSchema), + ).optional(), + error: z.nullable( z.union([ - z.lazy(() => PreparedStackProfileConditionStateResource$outboundSchema), + z.lazy(() => SyncReconcileRequestStackStateError$outboundSchema), z.any(), ]), ).optional(), - scope: z.string(), + lastFailedState: z.nullable(z.any()).optional(), + lifecycle: z.nullable( + z.union([StackStateLifecycleStateEnum$outboundSchema, z.any()]), + ).optional(), + outputs: z.nullable( + z.union([ + z.lazy(() => SyncReconcileRequestOutputs$outboundSchema), + z.any(), + ]), + ).optional(), + previousConfig: z.nullable( + z.union([ + z.lazy(() => SyncReconcileRequestPreviousConfig$outboundSchema), + z.any(), + ]), + ).optional(), + remoteBindingParams: z.nullable(z.any()).optional(), + retryAttempt: z.int().optional(), + status: StackStateStateStatus$outboundSchema, + type: z.string(), +}).transform((v) => { + return remap$(v, { + internal: "_internal", + }); }); -export function preparedStackProfileStateGcpResourceToJSON( - preparedStackProfileStateGcpResource: PreparedStackProfileStateGcpResource, +export function syncReconcileRequestStackStateResourcesToJSON( + syncReconcileRequestStackStateResources: + SyncReconcileRequestStackStateResources, ): string { return JSON.stringify( - PreparedStackProfileStateGcpResource$outboundSchema.parse( - preparedStackProfileStateGcpResource, + SyncReconcileRequestStackStateResources$outboundSchema.parse( + syncReconcileRequestStackStateResources, ), ); } /** @internal */ -export type PreparedStackProfileConditionStateStack$Outbound = { - expression: string; - title: string; +export type SyncReconcileRequestStackState$Outbound = { + platform: string; + resourcePrefix: string; + resources: { [k: string]: SyncReconcileRequestStackStateResources$Outbound }; }; /** @internal */ -export const PreparedStackProfileConditionStateStack$outboundSchema: z.ZodType< - PreparedStackProfileConditionStateStack$Outbound, - PreparedStackProfileConditionStateStack +export const SyncReconcileRequestStackState$outboundSchema: z.ZodType< + SyncReconcileRequestStackState$Outbound, + SyncReconcileRequestStackState > = z.object({ - expression: z.string(), - title: z.string(), + platform: SyncReconcileRequestStackStatePlatform$outboundSchema, + resourcePrefix: z.string(), + resources: z.record( + z.string(), + z.lazy(() => SyncReconcileRequestStackStateResources$outboundSchema), + ), }); -export function preparedStackProfileConditionStateStackToJSON( - preparedStackProfileConditionStateStack: - PreparedStackProfileConditionStateStack, +export function syncReconcileRequestStackStateToJSON( + syncReconcileRequestStackState: SyncReconcileRequestStackState, ): string { return JSON.stringify( - PreparedStackProfileConditionStateStack$outboundSchema.parse( - preparedStackProfileConditionStateStack, + SyncReconcileRequestStackState$outboundSchema.parse( + syncReconcileRequestStackState, ), ); } /** @internal */ -export type PreparedStackProfileStateStackConditionUnion$Outbound = - | PreparedStackProfileConditionStateStack$Outbound +export type SyncReconcileRequestStackStateUnion$Outbound = + | SyncReconcileRequestStackState$Outbound | any; /** @internal */ -export const PreparedStackProfileStateStackConditionUnion$outboundSchema: - z.ZodType< - PreparedStackProfileStateStackConditionUnion$Outbound, - PreparedStackProfileStateStackConditionUnion - > = z.union([ - z.lazy(() => PreparedStackProfileConditionStateStack$outboundSchema), - z.any(), - ]); +export const SyncReconcileRequestStackStateUnion$outboundSchema: z.ZodType< + SyncReconcileRequestStackStateUnion$Outbound, + SyncReconcileRequestStackStateUnion +> = z.union([ + z.lazy(() => SyncReconcileRequestStackState$outboundSchema), + z.any(), +]); -export function preparedStackProfileStateStackConditionUnionToJSON( - preparedStackProfileStateStackConditionUnion: - PreparedStackProfileStateStackConditionUnion, +export function syncReconcileRequestStackStateUnionToJSON( + syncReconcileRequestStackStateUnion: SyncReconcileRequestStackStateUnion, ): string { return JSON.stringify( - PreparedStackProfileStateStackConditionUnion$outboundSchema.parse( - preparedStackProfileStateStackConditionUnion, + SyncReconcileRequestStackStateUnion$outboundSchema.parse( + syncReconcileRequestStackStateUnion, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackProfileGcpStack$Outbound = { - condition?: - | PreparedStackProfileConditionStateStack$Outbound - | any - | null - | undefined; - scope: string; -}; +export const StateStatus$outboundSchema: z.ZodEnum = z.enum( + StateStatus, +); /** @internal */ -export const SyncReconcileRequestPreparedStackProfileGcpStack$outboundSchema: - z.ZodType< - SyncReconcileRequestPreparedStackProfileGcpStack$Outbound, - SyncReconcileRequestPreparedStackProfileGcpStack - > = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => PreparedStackProfileConditionStateStack$outboundSchema), - z.any(), - ]), - ).optional(), - scope: z.string(), - }); - -export function syncReconcileRequestPreparedStackProfileGcpStackToJSON( - syncReconcileRequestPreparedStackProfileGcpStack: - SyncReconcileRequestPreparedStackProfileGcpStack, -): string { - return JSON.stringify( - SyncReconcileRequestPreparedStackProfileGcpStack$outboundSchema.parse( - syncReconcileRequestPreparedStackProfileGcpStack, - ), +export const SyncReconcileRequestTargetReleaseTypeStringList$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestTargetReleaseTypeStringList, ); -} /** @internal */ -export type SyncReconcileRequestPreparedStackProfileGcpBinding$Outbound = { - resource?: PreparedStackProfileStateGcpResource$Outbound | undefined; - stack?: SyncReconcileRequestPreparedStackProfileGcpStack$Outbound | undefined; +export type SyncReconcileRequestTargetReleaseDefaultStringList$Outbound = { + type: string; + value: Array; }; /** @internal */ -export const SyncReconcileRequestPreparedStackProfileGcpBinding$outboundSchema: +export const SyncReconcileRequestTargetReleaseDefaultStringList$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackProfileGcpBinding$Outbound, - SyncReconcileRequestPreparedStackProfileGcpBinding + SyncReconcileRequestTargetReleaseDefaultStringList$Outbound, + SyncReconcileRequestTargetReleaseDefaultStringList > = z.object({ - resource: z.lazy(() => PreparedStackProfileStateGcpResource$outboundSchema) - .optional(), - stack: z.lazy(() => - SyncReconcileRequestPreparedStackProfileGcpStack$outboundSchema - ).optional(), + type: SyncReconcileRequestTargetReleaseTypeStringList$outboundSchema, + value: z.array(z.string()), }); -export function syncReconcileRequestPreparedStackProfileGcpBindingToJSON( - syncReconcileRequestPreparedStackProfileGcpBinding: - SyncReconcileRequestPreparedStackProfileGcpBinding, +export function syncReconcileRequestTargetReleaseDefaultStringListToJSON( + syncReconcileRequestTargetReleaseDefaultStringList: + SyncReconcileRequestTargetReleaseDefaultStringList, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackProfileGcpBinding$outboundSchema.parse( - syncReconcileRequestPreparedStackProfileGcpBinding, + SyncReconcileRequestTargetReleaseDefaultStringList$outboundSchema.parse( + syncReconcileRequestTargetReleaseDefaultStringList, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackProfileGcpGrant$Outbound = { - actions?: Array | null | undefined; - dataActions?: Array | null | undefined; - permissions?: Array | null | undefined; - predefinedRoles?: Array | null | undefined; - residualPermissions?: Array | null | undefined; -}; - -/** @internal */ -export const SyncReconcileRequestPreparedStackProfileGcpGrant$outboundSchema: - z.ZodType< - SyncReconcileRequestPreparedStackProfileGcpGrant$Outbound, - SyncReconcileRequestPreparedStackProfileGcpGrant - > = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), - }); - -export function syncReconcileRequestPreparedStackProfileGcpGrantToJSON( - syncReconcileRequestPreparedStackProfileGcpGrant: - SyncReconcileRequestPreparedStackProfileGcpGrant, -): string { - return JSON.stringify( - SyncReconcileRequestPreparedStackProfileGcpGrant$outboundSchema.parse( - syncReconcileRequestPreparedStackProfileGcpGrant, - ), +export const SyncReconcileRequestTargetReleaseTypeBoolean$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestTargetReleaseTypeBoolean, ); -} /** @internal */ -export type SyncReconcileRequestPreparedStackProfileGcp$Outbound = { - binding: SyncReconcileRequestPreparedStackProfileGcpBinding$Outbound; - description?: string | null | undefined; - grant: SyncReconcileRequestPreparedStackProfileGcpGrant$Outbound; - label?: string | null | undefined; +export type SyncReconcileRequestTargetReleaseDefaultBoolean$Outbound = { + type: string; + value: boolean; }; /** @internal */ -export const SyncReconcileRequestPreparedStackProfileGcp$outboundSchema: +export const SyncReconcileRequestTargetReleaseDefaultBoolean$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackProfileGcp$Outbound, - SyncReconcileRequestPreparedStackProfileGcp + SyncReconcileRequestTargetReleaseDefaultBoolean$Outbound, + SyncReconcileRequestTargetReleaseDefaultBoolean > = z.object({ - binding: z.lazy(() => - SyncReconcileRequestPreparedStackProfileGcpBinding$outboundSchema - ), - description: z.nullable(z.string()).optional(), - grant: z.lazy(() => - SyncReconcileRequestPreparedStackProfileGcpGrant$outboundSchema - ), - label: z.nullable(z.string()).optional(), + type: SyncReconcileRequestTargetReleaseTypeBoolean$outboundSchema, + value: z.boolean(), }); -export function syncReconcileRequestPreparedStackProfileGcpToJSON( - syncReconcileRequestPreparedStackProfileGcp: - SyncReconcileRequestPreparedStackProfileGcp, +export function syncReconcileRequestTargetReleaseDefaultBooleanToJSON( + syncReconcileRequestTargetReleaseDefaultBoolean: + SyncReconcileRequestTargetReleaseDefaultBoolean, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackProfileGcp$outboundSchema.parse( - syncReconcileRequestPreparedStackProfileGcp, + SyncReconcileRequestTargetReleaseDefaultBoolean$outboundSchema.parse( + syncReconcileRequestTargetReleaseDefaultBoolean, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackProfilePlatforms$Outbound = { - aws?: - | Array - | null - | undefined; - azure?: - | Array - | null - | undefined; - gcp?: - | Array - | null - | undefined; +export const SyncReconcileRequestTargetReleaseTypeNumber$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestTargetReleaseTypeNumber, + ); + +/** @internal */ +export type SyncReconcileRequestTargetReleaseDefaultNumber$Outbound = { + type: string; + value: string; }; /** @internal */ -export const SyncReconcileRequestPreparedStackProfilePlatforms$outboundSchema: +export const SyncReconcileRequestTargetReleaseDefaultNumber$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackProfilePlatforms$Outbound, - SyncReconcileRequestPreparedStackProfilePlatforms + SyncReconcileRequestTargetReleaseDefaultNumber$Outbound, + SyncReconcileRequestTargetReleaseDefaultNumber > = z.object({ - aws: z.nullable( - z.array(z.lazy(() => - SyncReconcileRequestPreparedStackProfileAw$outboundSchema - )), - ).optional(), - azure: z.nullable( - z.array(z.lazy(() => - SyncReconcileRequestPreparedStackProfileAzure$outboundSchema - )), - ).optional(), - gcp: z.nullable( - z.array(z.lazy(() => - SyncReconcileRequestPreparedStackProfileGcp$outboundSchema - )), - ).optional(), + type: SyncReconcileRequestTargetReleaseTypeNumber$outboundSchema, + value: z.string(), }); -export function syncReconcileRequestPreparedStackProfilePlatformsToJSON( - syncReconcileRequestPreparedStackProfilePlatforms: - SyncReconcileRequestPreparedStackProfilePlatforms, +export function syncReconcileRequestTargetReleaseDefaultNumberToJSON( + syncReconcileRequestTargetReleaseDefaultNumber: + SyncReconcileRequestTargetReleaseDefaultNumber, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackProfilePlatforms$outboundSchema.parse( - syncReconcileRequestPreparedStackProfilePlatforms, + SyncReconcileRequestTargetReleaseDefaultNumber$outboundSchema.parse( + syncReconcileRequestTargetReleaseDefaultNumber, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackProfile$Outbound = { - description: string; - id: string; - platforms: SyncReconcileRequestPreparedStackProfilePlatforms$Outbound; -}; - -/** @internal */ -export const SyncReconcileRequestPreparedStackProfile$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackProfile$Outbound, - SyncReconcileRequestPreparedStackProfile -> = z.object({ - description: z.string(), - id: z.string(), - platforms: z.lazy(() => - SyncReconcileRequestPreparedStackProfilePlatforms$outboundSchema - ), -}); - -export function syncReconcileRequestPreparedStackProfileToJSON( - syncReconcileRequestPreparedStackProfile: - SyncReconcileRequestPreparedStackProfile, -): string { - return JSON.stringify( - SyncReconcileRequestPreparedStackProfile$outboundSchema.parse( - syncReconcileRequestPreparedStackProfile, - ), +export const SyncReconcileRequestTargetReleaseTypeString$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestTargetReleaseTypeString, ); -} /** @internal */ -export type SyncReconcileRequestPreparedStackProfileUnion$Outbound = - | SyncReconcileRequestPreparedStackProfile$Outbound - | string; +export type SyncReconcileRequestTargetReleaseDefaultString$Outbound = { + type: string; + value: string; +}; /** @internal */ -export const SyncReconcileRequestPreparedStackProfileUnion$outboundSchema: +export const SyncReconcileRequestTargetReleaseDefaultString$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackProfileUnion$Outbound, - SyncReconcileRequestPreparedStackProfileUnion - > = z.union([ - z.lazy(() => SyncReconcileRequestPreparedStackProfile$outboundSchema), - z.string(), - ]); + SyncReconcileRequestTargetReleaseDefaultString$Outbound, + SyncReconcileRequestTargetReleaseDefaultString + > = z.object({ + type: SyncReconcileRequestTargetReleaseTypeString$outboundSchema, + value: z.string(), + }); -export function syncReconcileRequestPreparedStackProfileUnionToJSON( - syncReconcileRequestPreparedStackProfileUnion: - SyncReconcileRequestPreparedStackProfileUnion, +export function syncReconcileRequestTargetReleaseDefaultStringToJSON( + syncReconcileRequestTargetReleaseDefaultString: + SyncReconcileRequestTargetReleaseDefaultString, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackProfileUnion$outboundSchema.parse( - syncReconcileRequestPreparedStackProfileUnion, + SyncReconcileRequestTargetReleaseDefaultString$outboundSchema.parse( + syncReconcileRequestTargetReleaseDefaultString, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackPermissions$Outbound = { - management?: - | SyncReconcileRequestPreparedStackManagement1$Outbound - | SyncReconcileRequestPreparedStackManagement2$Outbound - | string - | undefined; - profiles: { - [k: string]: { - [k: string]: Array< - SyncReconcileRequestPreparedStackProfile$Outbound | string - >; - }; - }; -}; +export type SyncReconcileRequestTargetReleaseDefaultUnion$Outbound = + | SyncReconcileRequestTargetReleaseDefaultString$Outbound + | SyncReconcileRequestTargetReleaseDefaultNumber$Outbound + | SyncReconcileRequestTargetReleaseDefaultBoolean$Outbound + | SyncReconcileRequestTargetReleaseDefaultStringList$Outbound + | any; /** @internal */ -export const SyncReconcileRequestPreparedStackPermissions$outboundSchema: +export const SyncReconcileRequestTargetReleaseDefaultUnion$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackPermissions$Outbound, - SyncReconcileRequestPreparedStackPermissions - > = z.object({ - management: z.union([ - z.lazy(() => SyncReconcileRequestPreparedStackManagement1$outboundSchema), - z.lazy(() => SyncReconcileRequestPreparedStackManagement2$outboundSchema), - SyncReconcileRequestPreparedStackManagementEnum$outboundSchema, - ]).optional(), - profiles: z.record( - z.string(), - z.record( - z.string(), - z.array( - z.union([ - z.lazy(() => - SyncReconcileRequestPreparedStackProfile$outboundSchema - ), - z.string(), - ]), - ), - ), + SyncReconcileRequestTargetReleaseDefaultUnion$Outbound, + SyncReconcileRequestTargetReleaseDefaultUnion + > = z.union([ + z.lazy(() => SyncReconcileRequestTargetReleaseDefaultString$outboundSchema), + z.lazy(() => SyncReconcileRequestTargetReleaseDefaultNumber$outboundSchema), + z.lazy(() => + SyncReconcileRequestTargetReleaseDefaultBoolean$outboundSchema ), - }); + z.lazy(() => + SyncReconcileRequestTargetReleaseDefaultStringList$outboundSchema + ), + z.any(), + ]); -export function syncReconcileRequestPreparedStackPermissionsToJSON( - syncReconcileRequestPreparedStackPermissions: - SyncReconcileRequestPreparedStackPermissions, +export function syncReconcileRequestTargetReleaseDefaultUnionToJSON( + syncReconcileRequestTargetReleaseDefaultUnion: + SyncReconcileRequestTargetReleaseDefaultUnion, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackPermissions$outboundSchema.parse( - syncReconcileRequestPreparedStackPermissions, + SyncReconcileRequestTargetReleaseDefaultUnion$outboundSchema.parse( + syncReconcileRequestTargetReleaseDefaultUnion, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackConfig$Outbound = { - id: string; - type: string; - [additionalProperties: string]: unknown; -}; +export const SyncReconcileRequestTargetReleaseTypeEnvEnum$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestTargetReleaseTypeEnvEnum, + ); /** @internal */ -export const SyncReconcileRequestPreparedStackConfig$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackConfig$Outbound, - SyncReconcileRequestPreparedStackConfig -> = z.object({ - id: z.string(), - type: z.string(), - additionalProperties: z.record(z.string(), z.nullable(z.any())).optional(), -}).transform((v) => { - return { - ...v.additionalProperties, - ...remap$(v, { - additionalProperties: null, - }), - }; -}); +export type SyncReconcileRequestTargetReleaseTypeUnion$Outbound = string | any; -export function syncReconcileRequestPreparedStackConfigToJSON( - syncReconcileRequestPreparedStackConfig: - SyncReconcileRequestPreparedStackConfig, +/** @internal */ +export const SyncReconcileRequestTargetReleaseTypeUnion$outboundSchema: + z.ZodType< + SyncReconcileRequestTargetReleaseTypeUnion$Outbound, + SyncReconcileRequestTargetReleaseTypeUnion + > = z.union([ + SyncReconcileRequestTargetReleaseTypeEnvEnum$outboundSchema, + z.any(), + ]); + +export function syncReconcileRequestTargetReleaseTypeUnionToJSON( + syncReconcileRequestTargetReleaseTypeUnion: + SyncReconcileRequestTargetReleaseTypeUnion, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackConfig$outboundSchema.parse( - syncReconcileRequestPreparedStackConfig, + SyncReconcileRequestTargetReleaseTypeUnion$outboundSchema.parse( + syncReconcileRequestTargetReleaseTypeUnion, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackDependency$Outbound = { - id: string; - type: string; +export type SyncReconcileRequestTargetReleaseEnv$Outbound = { + name: string; + targetResources?: Array | null | undefined; + type?: string | any | null | undefined; }; /** @internal */ -export const SyncReconcileRequestPreparedStackDependency$outboundSchema: - z.ZodType< - SyncReconcileRequestPreparedStackDependency$Outbound, - SyncReconcileRequestPreparedStackDependency - > = z.object({ - id: z.string(), - type: z.string(), - }); +export const SyncReconcileRequestTargetReleaseEnv$outboundSchema: z.ZodType< + SyncReconcileRequestTargetReleaseEnv$Outbound, + SyncReconcileRequestTargetReleaseEnv +> = z.object({ + name: z.string(), + targetResources: z.nullable(z.array(z.string())).optional(), + type: z.nullable( + z.union([ + SyncReconcileRequestTargetReleaseTypeEnvEnum$outboundSchema, + z.any(), + ]), + ).optional(), +}); -export function syncReconcileRequestPreparedStackDependencyToJSON( - syncReconcileRequestPreparedStackDependency: - SyncReconcileRequestPreparedStackDependency, +export function syncReconcileRequestTargetReleaseEnvToJSON( + syncReconcileRequestTargetReleaseEnv: SyncReconcileRequestTargetReleaseEnv, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackDependency$outboundSchema.parse( - syncReconcileRequestPreparedStackDependency, + SyncReconcileRequestTargetReleaseEnv$outboundSchema.parse( + syncReconcileRequestTargetReleaseEnv, ), ); } /** @internal */ -export const PreparedStackStateLifecycle$outboundSchema: z.ZodEnum< - typeof PreparedStackStateLifecycle -> = z.enum(PreparedStackStateLifecycle); +export const TargetReleaseStateKind$outboundSchema: z.ZodEnum< + typeof TargetReleaseStateKind +> = z.enum(TargetReleaseStateKind); /** @internal */ -export type SyncReconcileRequestPreparedStackResources$Outbound = { - config: SyncReconcileRequestPreparedStackConfig$Outbound; - dependencies: Array; - lifecycle: string; - remoteAccess?: boolean | undefined; +export const SyncReconcileRequestTargetReleasePlatform$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestTargetReleasePlatform, + ); + +/** @internal */ +export const SyncReconcileRequestTargetReleaseProvidedBy$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestTargetReleaseProvidedBy, + ); + +/** @internal */ +export type SyncReconcileRequestTargetReleaseValidation$Outbound = { + format?: string | null | undefined; + max?: string | null | undefined; + maxItems?: number | null | undefined; + maxLength?: number | null | undefined; + min?: string | null | undefined; + minItems?: number | null | undefined; + minLength?: number | null | undefined; + pattern?: string | null | undefined; + values?: Array | null | undefined; }; /** @internal */ -export const SyncReconcileRequestPreparedStackResources$outboundSchema: +export const SyncReconcileRequestTargetReleaseValidation$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackResources$Outbound, - SyncReconcileRequestPreparedStackResources + SyncReconcileRequestTargetReleaseValidation$Outbound, + SyncReconcileRequestTargetReleaseValidation > = z.object({ - config: z.lazy(() => - SyncReconcileRequestPreparedStackConfig$outboundSchema - ), - dependencies: z.array( - z.lazy(() => SyncReconcileRequestPreparedStackDependency$outboundSchema), - ), - lifecycle: PreparedStackStateLifecycle$outboundSchema, - remoteAccess: z.boolean().optional(), + format: z.nullable(z.string()).optional(), + max: z.nullable(z.string()).optional(), + maxItems: z.nullable(z.int()).optional(), + maxLength: z.nullable(z.int()).optional(), + min: z.nullable(z.string()).optional(), + minItems: z.nullable(z.int()).optional(), + minLength: z.nullable(z.int()).optional(), + pattern: z.nullable(z.string()).optional(), + values: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileRequestPreparedStackResourcesToJSON( - syncReconcileRequestPreparedStackResources: - SyncReconcileRequestPreparedStackResources, +export function syncReconcileRequestTargetReleaseValidationToJSON( + syncReconcileRequestTargetReleaseValidation: + SyncReconcileRequestTargetReleaseValidation, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStackResources$outboundSchema.parse( - syncReconcileRequestPreparedStackResources, + SyncReconcileRequestTargetReleaseValidation$outboundSchema.parse( + syncReconcileRequestTargetReleaseValidation, ), ); } /** @internal */ -export const SyncReconcileRequestPreparedStackSupportedPlatform$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestPreparedStackSupportedPlatform, +export type SyncReconcileRequestTargetReleaseValidationUnion$Outbound = + | SyncReconcileRequestTargetReleaseValidation$Outbound + | any; + +/** @internal */ +export const SyncReconcileRequestTargetReleaseValidationUnion$outboundSchema: + z.ZodType< + SyncReconcileRequestTargetReleaseValidationUnion$Outbound, + SyncReconcileRequestTargetReleaseValidationUnion + > = z.union([ + z.lazy(() => SyncReconcileRequestTargetReleaseValidation$outboundSchema), + z.any(), + ]); + +export function syncReconcileRequestTargetReleaseValidationUnionToJSON( + syncReconcileRequestTargetReleaseValidationUnion: + SyncReconcileRequestTargetReleaseValidationUnion, +): string { + return JSON.stringify( + SyncReconcileRequestTargetReleaseValidationUnion$outboundSchema.parse( + syncReconcileRequestTargetReleaseValidationUnion, + ), ); +} /** @internal */ -export type SyncReconcileRequestPreparedStack$Outbound = { +export type SyncReconcileRequestTargetReleaseInput$Outbound = { + default?: + | SyncReconcileRequestTargetReleaseDefaultString$Outbound + | SyncReconcileRequestTargetReleaseDefaultNumber$Outbound + | SyncReconcileRequestTargetReleaseDefaultBoolean$Outbound + | SyncReconcileRequestTargetReleaseDefaultStringList$Outbound + | any + | null + | undefined; + description: string; + env?: Array | undefined; id: string; - inputs?: Array | undefined; - permissions?: - | SyncReconcileRequestPreparedStackPermissions$Outbound + kind: string; + label: string; + placeholder?: string | null | undefined; + platforms?: Array | null | undefined; + providedBy: Array; + required: boolean; + validation?: + | SyncReconcileRequestTargetReleaseValidation$Outbound + | any + | null | undefined; - resources: { - [k: string]: SyncReconcileRequestPreparedStackResources$Outbound; - }; - supportedPlatforms?: Array | null | undefined; }; /** @internal */ -export const SyncReconcileRequestPreparedStack$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStack$Outbound, - SyncReconcileRequestPreparedStack +export const SyncReconcileRequestTargetReleaseInput$outboundSchema: z.ZodType< + SyncReconcileRequestTargetReleaseInput$Outbound, + SyncReconcileRequestTargetReleaseInput > = z.object({ - id: z.string(), - inputs: z.array( - z.lazy(() => SyncReconcileRequestPreparedStackInput$outboundSchema), + default: z.nullable( + z.union([ + z.lazy(() => + SyncReconcileRequestTargetReleaseDefaultString$outboundSchema + ), + z.lazy(() => + SyncReconcileRequestTargetReleaseDefaultNumber$outboundSchema + ), + z.lazy(() => + SyncReconcileRequestTargetReleaseDefaultBoolean$outboundSchema + ), + z.lazy(() => + SyncReconcileRequestTargetReleaseDefaultStringList$outboundSchema + ), + z.any(), + ]), ).optional(), - permissions: z.lazy(() => - SyncReconcileRequestPreparedStackPermissions$outboundSchema + description: z.string(), + env: z.array( + z.lazy(() => SyncReconcileRequestTargetReleaseEnv$outboundSchema), ).optional(), - resources: z.record( - z.string(), - z.lazy(() => SyncReconcileRequestPreparedStackResources$outboundSchema), + id: z.string(), + kind: TargetReleaseStateKind$outboundSchema, + label: z.string(), + placeholder: z.nullable(z.string()).optional(), + platforms: z.nullable( + z.array(SyncReconcileRequestTargetReleasePlatform$outboundSchema), + ).optional(), + providedBy: z.array( + SyncReconcileRequestTargetReleaseProvidedBy$outboundSchema, ), - supportedPlatforms: z.nullable( - z.array(SyncReconcileRequestPreparedStackSupportedPlatform$outboundSchema), + required: z.boolean(), + validation: z.nullable( + z.union([ + z.lazy(() => SyncReconcileRequestTargetReleaseValidation$outboundSchema), + z.any(), + ]), ).optional(), }); -export function syncReconcileRequestPreparedStackToJSON( - syncReconcileRequestPreparedStack: SyncReconcileRequestPreparedStack, +export function syncReconcileRequestTargetReleaseInputToJSON( + syncReconcileRequestTargetReleaseInput: + SyncReconcileRequestTargetReleaseInput, ): string { return JSON.stringify( - SyncReconcileRequestPreparedStack$outboundSchema.parse( - syncReconcileRequestPreparedStack, + SyncReconcileRequestTargetReleaseInput$outboundSchema.parse( + syncReconcileRequestTargetReleaseInput, ), ); } /** @internal */ -export type SyncReconcileRequestPreparedStackUnion$Outbound = - | SyncReconcileRequestPreparedStack$Outbound - | any; - -/** @internal */ -export const SyncReconcileRequestPreparedStackUnion$outboundSchema: z.ZodType< - SyncReconcileRequestPreparedStackUnion$Outbound, - SyncReconcileRequestPreparedStackUnion -> = z.union([ - z.lazy(() => SyncReconcileRequestPreparedStack$outboundSchema), - z.any(), -]); - -export function syncReconcileRequestPreparedStackUnionToJSON( - syncReconcileRequestPreparedStackUnion: - SyncReconcileRequestPreparedStackUnion, -): string { - return JSON.stringify( - SyncReconcileRequestPreparedStackUnion$outboundSchema.parse( - syncReconcileRequestPreparedStackUnion, - ), +export const SyncReconcileRequestTargetReleaseManagementEnum$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestTargetReleaseManagementEnum, ); -} /** @internal */ -export type SyncReconcileRequestRuntimeMetadata$Outbound = { - lastSyncedEnvVarsHash?: string | null | undefined; - lastSyncedSecretNames?: Array | undefined; - preparedStack?: - | SyncReconcileRequestPreparedStack$Outbound - | any - | null - | undefined; - registryAccessGranted?: boolean | undefined; +export type TargetReleaseOverrideStateAwResource$Outbound = { + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + resources: Array; }; /** @internal */ -export const SyncReconcileRequestRuntimeMetadata$outboundSchema: z.ZodType< - SyncReconcileRequestRuntimeMetadata$Outbound, - SyncReconcileRequestRuntimeMetadata +export const TargetReleaseOverrideStateAwResource$outboundSchema: z.ZodType< + TargetReleaseOverrideStateAwResource$Outbound, + TargetReleaseOverrideStateAwResource > = z.object({ - lastSyncedEnvVarsHash: z.nullable(z.string()).optional(), - lastSyncedSecretNames: z.array(z.string()).optional(), - preparedStack: z.nullable( - z.union([ - z.lazy(() => SyncReconcileRequestPreparedStack$outboundSchema), - z.any(), - ]), - ).optional(), - registryAccessGranted: z.boolean().optional(), + condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) + .optional(), + resources: z.array(z.string()), }); -export function syncReconcileRequestRuntimeMetadataToJSON( - syncReconcileRequestRuntimeMetadata: SyncReconcileRequestRuntimeMetadata, +export function targetReleaseOverrideStateAwResourceToJSON( + targetReleaseOverrideStateAwResource: TargetReleaseOverrideStateAwResource, ): string { return JSON.stringify( - SyncReconcileRequestRuntimeMetadata$outboundSchema.parse( - syncReconcileRequestRuntimeMetadata, + TargetReleaseOverrideStateAwResource$outboundSchema.parse( + targetReleaseOverrideStateAwResource, ), ); } /** @internal */ -export type SyncReconcileRequestRuntimeMetadataUnion$Outbound = - | SyncReconcileRequestRuntimeMetadata$Outbound - | any; +export type SyncReconcileRequestTargetReleaseOverrideAwStack$Outbound = { + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + resources: Array; +}; /** @internal */ -export const SyncReconcileRequestRuntimeMetadataUnion$outboundSchema: z.ZodType< - SyncReconcileRequestRuntimeMetadataUnion$Outbound, - SyncReconcileRequestRuntimeMetadataUnion -> = z.union([ - z.lazy(() => SyncReconcileRequestRuntimeMetadata$outboundSchema), - z.any(), -]); +export const SyncReconcileRequestTargetReleaseOverrideAwStack$outboundSchema: + z.ZodType< + SyncReconcileRequestTargetReleaseOverrideAwStack$Outbound, + SyncReconcileRequestTargetReleaseOverrideAwStack + > = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function syncReconcileRequestRuntimeMetadataUnionToJSON( - syncReconcileRequestRuntimeMetadataUnion: - SyncReconcileRequestRuntimeMetadataUnion, +export function syncReconcileRequestTargetReleaseOverrideAwStackToJSON( + syncReconcileRequestTargetReleaseOverrideAwStack: + SyncReconcileRequestTargetReleaseOverrideAwStack, ): string { return JSON.stringify( - SyncReconcileRequestRuntimeMetadataUnion$outboundSchema.parse( - syncReconcileRequestRuntimeMetadataUnion, + SyncReconcileRequestTargetReleaseOverrideAwStack$outboundSchema.parse( + syncReconcileRequestTargetReleaseOverrideAwStack, ), ); } /** @internal */ -export const SyncReconcileRequestStackStatePlatform$outboundSchema: z.ZodEnum< - typeof SyncReconcileRequestStackStatePlatform -> = z.enum(SyncReconcileRequestStackStatePlatform); - -/** @internal */ -export type SyncReconcileRequestStackStateConfig$Outbound = { - id: string; - type: string; - [additionalProperties: string]: unknown; +export type SyncReconcileRequestTargetReleaseOverrideAwBinding$Outbound = { + resource?: TargetReleaseOverrideStateAwResource$Outbound | undefined; + stack?: SyncReconcileRequestTargetReleaseOverrideAwStack$Outbound | undefined; }; /** @internal */ -export const SyncReconcileRequestStackStateConfig$outboundSchema: z.ZodType< - SyncReconcileRequestStackStateConfig$Outbound, - SyncReconcileRequestStackStateConfig -> = z.object({ - id: z.string(), - type: z.string(), - additionalProperties: z.record(z.string(), z.nullable(z.any())).optional(), -}).transform((v) => { - return { - ...v.additionalProperties, - ...remap$(v, { - additionalProperties: null, - }), - }; -}); +export const SyncReconcileRequestTargetReleaseOverrideAwBinding$outboundSchema: + z.ZodType< + SyncReconcileRequestTargetReleaseOverrideAwBinding$Outbound, + SyncReconcileRequestTargetReleaseOverrideAwBinding + > = z.object({ + resource: z.lazy(() => TargetReleaseOverrideStateAwResource$outboundSchema) + .optional(), + stack: z.lazy(() => + SyncReconcileRequestTargetReleaseOverrideAwStack$outboundSchema + ).optional(), + }); -export function syncReconcileRequestStackStateConfigToJSON( - syncReconcileRequestStackStateConfig: SyncReconcileRequestStackStateConfig, +export function syncReconcileRequestTargetReleaseOverrideAwBindingToJSON( + syncReconcileRequestTargetReleaseOverrideAwBinding: + SyncReconcileRequestTargetReleaseOverrideAwBinding, ): string { return JSON.stringify( - SyncReconcileRequestStackStateConfig$outboundSchema.parse( - syncReconcileRequestStackStateConfig, + SyncReconcileRequestTargetReleaseOverrideAwBinding$outboundSchema.parse( + syncReconcileRequestTargetReleaseOverrideAwBinding, ), ); } /** @internal */ -export const ControllerPlatformStateEnum$outboundSchema: z.ZodEnum< - typeof ControllerPlatformStateEnum -> = z.enum(ControllerPlatformStateEnum); +export const SyncReconcileRequestTargetReleaseOverrideEffect$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestTargetReleaseOverrideEffect, + ); /** @internal */ -export type StateControllerPlatformUnion$Outbound = string | any; +export type SyncReconcileRequestTargetReleaseOverrideAwGrant$Outbound = { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; +}; /** @internal */ -export const StateControllerPlatformUnion$outboundSchema: z.ZodType< - StateControllerPlatformUnion$Outbound, - StateControllerPlatformUnion -> = z.union([ControllerPlatformStateEnum$outboundSchema, z.any()]); +export const SyncReconcileRequestTargetReleaseOverrideAwGrant$outboundSchema: + z.ZodType< + SyncReconcileRequestTargetReleaseOverrideAwGrant$Outbound, + SyncReconcileRequestTargetReleaseOverrideAwGrant + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function stateControllerPlatformUnionToJSON( - stateControllerPlatformUnion: StateControllerPlatformUnion, +export function syncReconcileRequestTargetReleaseOverrideAwGrantToJSON( + syncReconcileRequestTargetReleaseOverrideAwGrant: + SyncReconcileRequestTargetReleaseOverrideAwGrant, ): string { return JSON.stringify( - StateControllerPlatformUnion$outboundSchema.parse( - stateControllerPlatformUnion, + SyncReconcileRequestTargetReleaseOverrideAwGrant$outboundSchema.parse( + syncReconcileRequestTargetReleaseOverrideAwGrant, ), ); } /** @internal */ -export type SyncReconcileRequestStackStateDependency$Outbound = { - id: string; - type: string; +export type SyncReconcileRequestTargetReleaseOverrideAw$Outbound = { + binding: SyncReconcileRequestTargetReleaseOverrideAwBinding$Outbound; + description?: string | null | undefined; + effect?: string | undefined; + grant: SyncReconcileRequestTargetReleaseOverrideAwGrant$Outbound; + label?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestStackStateDependency$outboundSchema: z.ZodType< - SyncReconcileRequestStackStateDependency$Outbound, - SyncReconcileRequestStackStateDependency -> = z.object({ - id: z.string(), - type: z.string(), -}); +export const SyncReconcileRequestTargetReleaseOverrideAw$outboundSchema: + z.ZodType< + SyncReconcileRequestTargetReleaseOverrideAw$Outbound, + SyncReconcileRequestTargetReleaseOverrideAw + > = z.object({ + binding: z.lazy(() => + SyncReconcileRequestTargetReleaseOverrideAwBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: SyncReconcileRequestTargetReleaseOverrideEffect$outboundSchema + .optional(), + grant: z.lazy(() => + SyncReconcileRequestTargetReleaseOverrideAwGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function syncReconcileRequestStackStateDependencyToJSON( - syncReconcileRequestStackStateDependency: - SyncReconcileRequestStackStateDependency, +export function syncReconcileRequestTargetReleaseOverrideAwToJSON( + syncReconcileRequestTargetReleaseOverrideAw: + SyncReconcileRequestTargetReleaseOverrideAw, ): string { return JSON.stringify( - SyncReconcileRequestStackStateDependency$outboundSchema.parse( - syncReconcileRequestStackStateDependency, - ), - ); -} - -/** @internal */ -export type SyncReconcileRequestStackStateError$Outbound = { - code: string; - context?: any | null | undefined; - hint?: string | null | undefined; - httpStatusCode?: number | null | undefined; - internal: boolean; - message: string; - retryable: boolean; - source?: any | null | undefined; + SyncReconcileRequestTargetReleaseOverrideAw$outboundSchema.parse( + syncReconcileRequestTargetReleaseOverrideAw, + ), + ); +} + +/** @internal */ +export type TargetReleaseOverrideStateAzureResource$Outbound = { + scope: string; }; /** @internal */ -export const SyncReconcileRequestStackStateError$outboundSchema: z.ZodType< - SyncReconcileRequestStackStateError$Outbound, - SyncReconcileRequestStackStateError +export const TargetReleaseOverrideStateAzureResource$outboundSchema: z.ZodType< + TargetReleaseOverrideStateAzureResource$Outbound, + TargetReleaseOverrideStateAzureResource > = z.object({ - code: z.string(), - context: z.nullable(z.any()).optional(), - hint: z.nullable(z.string()).optional(), - httpStatusCode: z.nullable(z.int()).optional(), - internal: z.boolean(), - message: z.string(), - retryable: z.boolean().default(false), - source: z.nullable(z.any()).optional(), + scope: z.string(), }); -export function syncReconcileRequestStackStateErrorToJSON( - syncReconcileRequestStackStateError: SyncReconcileRequestStackStateError, +export function targetReleaseOverrideStateAzureResourceToJSON( + targetReleaseOverrideStateAzureResource: + TargetReleaseOverrideStateAzureResource, ): string { return JSON.stringify( - SyncReconcileRequestStackStateError$outboundSchema.parse( - syncReconcileRequestStackStateError, + TargetReleaseOverrideStateAzureResource$outboundSchema.parse( + targetReleaseOverrideStateAzureResource, ), ); } /** @internal */ -export type SyncReconcileRequestStackStateErrorUnion$Outbound = - | SyncReconcileRequestStackStateError$Outbound - | any; +export type SyncReconcileRequestTargetReleaseOverrideAzureStack$Outbound = { + scope: string; +}; /** @internal */ -export const SyncReconcileRequestStackStateErrorUnion$outboundSchema: z.ZodType< - SyncReconcileRequestStackStateErrorUnion$Outbound, - SyncReconcileRequestStackStateErrorUnion -> = z.union([ - z.lazy(() => SyncReconcileRequestStackStateError$outboundSchema), - z.any(), -]); +export const SyncReconcileRequestTargetReleaseOverrideAzureStack$outboundSchema: + z.ZodType< + SyncReconcileRequestTargetReleaseOverrideAzureStack$Outbound, + SyncReconcileRequestTargetReleaseOverrideAzureStack + > = z.object({ + scope: z.string(), + }); -export function syncReconcileRequestStackStateErrorUnionToJSON( - syncReconcileRequestStackStateErrorUnion: - SyncReconcileRequestStackStateErrorUnion, +export function syncReconcileRequestTargetReleaseOverrideAzureStackToJSON( + syncReconcileRequestTargetReleaseOverrideAzureStack: + SyncReconcileRequestTargetReleaseOverrideAzureStack, ): string { return JSON.stringify( - SyncReconcileRequestStackStateErrorUnion$outboundSchema.parse( - syncReconcileRequestStackStateErrorUnion, + SyncReconcileRequestTargetReleaseOverrideAzureStack$outboundSchema.parse( + syncReconcileRequestTargetReleaseOverrideAzureStack, ), ); } /** @internal */ -export const StackStateLifecycleStateEnum$outboundSchema: z.ZodEnum< - typeof StackStateLifecycleStateEnum -> = z.enum(StackStateLifecycleStateEnum); - -/** @internal */ -export type StateLifecycleUnion$Outbound = string | any; +export type SyncReconcileRequestTargetReleaseOverrideAzureBinding$Outbound = { + resource?: TargetReleaseOverrideStateAzureResource$Outbound | undefined; + stack?: + | SyncReconcileRequestTargetReleaseOverrideAzureStack$Outbound + | undefined; +}; /** @internal */ -export const StateLifecycleUnion$outboundSchema: z.ZodType< - StateLifecycleUnion$Outbound, - StateLifecycleUnion -> = z.union([StackStateLifecycleStateEnum$outboundSchema, z.any()]); +export const SyncReconcileRequestTargetReleaseOverrideAzureBinding$outboundSchema: + z.ZodType< + SyncReconcileRequestTargetReleaseOverrideAzureBinding$Outbound, + SyncReconcileRequestTargetReleaseOverrideAzureBinding + > = z.object({ + resource: z.lazy(() => + TargetReleaseOverrideStateAzureResource$outboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileRequestTargetReleaseOverrideAzureStack$outboundSchema + ).optional(), + }); -export function stateLifecycleUnionToJSON( - stateLifecycleUnion: StateLifecycleUnion, +export function syncReconcileRequestTargetReleaseOverrideAzureBindingToJSON( + syncReconcileRequestTargetReleaseOverrideAzureBinding: + SyncReconcileRequestTargetReleaseOverrideAzureBinding, ): string { return JSON.stringify( - StateLifecycleUnion$outboundSchema.parse(stateLifecycleUnion), + SyncReconcileRequestTargetReleaseOverrideAzureBinding$outboundSchema.parse( + syncReconcileRequestTargetReleaseOverrideAzureBinding, + ), ); } /** @internal */ -export type SyncReconcileRequestOutputs$Outbound = { - type: string; - [additionalProperties: string]: unknown; +export type SyncReconcileRequestTargetReleaseOverrideAzureGrant$Outbound = { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; }; /** @internal */ -export const SyncReconcileRequestOutputs$outboundSchema: z.ZodType< - SyncReconcileRequestOutputs$Outbound, - SyncReconcileRequestOutputs -> = z.object({ - type: z.string(), - additionalProperties: z.record(z.string(), z.nullable(z.any())).optional(), -}).transform((v) => { - return { - ...v.additionalProperties, - ...remap$(v, { - additionalProperties: null, - }), - }; -}); +export const SyncReconcileRequestTargetReleaseOverrideAzureGrant$outboundSchema: + z.ZodType< + SyncReconcileRequestTargetReleaseOverrideAzureGrant$Outbound, + SyncReconcileRequestTargetReleaseOverrideAzureGrant + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function syncReconcileRequestOutputsToJSON( - syncReconcileRequestOutputs: SyncReconcileRequestOutputs, +export function syncReconcileRequestTargetReleaseOverrideAzureGrantToJSON( + syncReconcileRequestTargetReleaseOverrideAzureGrant: + SyncReconcileRequestTargetReleaseOverrideAzureGrant, ): string { return JSON.stringify( - SyncReconcileRequestOutputs$outboundSchema.parse( - syncReconcileRequestOutputs, + SyncReconcileRequestTargetReleaseOverrideAzureGrant$outboundSchema.parse( + syncReconcileRequestTargetReleaseOverrideAzureGrant, ), ); } /** @internal */ -export type SyncReconcileRequestOutputsUnion$Outbound = - | SyncReconcileRequestOutputs$Outbound - | any; +export type SyncReconcileRequestTargetReleaseOverrideAzure$Outbound = { + binding: SyncReconcileRequestTargetReleaseOverrideAzureBinding$Outbound; + description?: string | null | undefined; + grant: SyncReconcileRequestTargetReleaseOverrideAzureGrant$Outbound; + label?: string | null | undefined; +}; /** @internal */ -export const SyncReconcileRequestOutputsUnion$outboundSchema: z.ZodType< - SyncReconcileRequestOutputsUnion$Outbound, - SyncReconcileRequestOutputsUnion -> = z.union([ - z.lazy(() => SyncReconcileRequestOutputs$outboundSchema), - z.any(), -]); +export const SyncReconcileRequestTargetReleaseOverrideAzure$outboundSchema: + z.ZodType< + SyncReconcileRequestTargetReleaseOverrideAzure$Outbound, + SyncReconcileRequestTargetReleaseOverrideAzure + > = z.object({ + binding: z.lazy(() => + SyncReconcileRequestTargetReleaseOverrideAzureBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncReconcileRequestTargetReleaseOverrideAzureGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function syncReconcileRequestOutputsUnionToJSON( - syncReconcileRequestOutputsUnion: SyncReconcileRequestOutputsUnion, +export function syncReconcileRequestTargetReleaseOverrideAzureToJSON( + syncReconcileRequestTargetReleaseOverrideAzure: + SyncReconcileRequestTargetReleaseOverrideAzure, ): string { return JSON.stringify( - SyncReconcileRequestOutputsUnion$outboundSchema.parse( - syncReconcileRequestOutputsUnion, + SyncReconcileRequestTargetReleaseOverrideAzure$outboundSchema.parse( + syncReconcileRequestTargetReleaseOverrideAzure, ), ); } /** @internal */ -export type SyncReconcileRequestPreviousConfig$Outbound = { - id: string; - type: string; - [additionalProperties: string]: unknown; +export type TargetReleaseOverrideConditionStateResource$Outbound = { + expression: string; + title: string; }; /** @internal */ -export const SyncReconcileRequestPreviousConfig$outboundSchema: z.ZodType< - SyncReconcileRequestPreviousConfig$Outbound, - SyncReconcileRequestPreviousConfig -> = z.object({ - id: z.string(), - type: z.string(), - additionalProperties: z.record(z.string(), z.nullable(z.any())).optional(), -}).transform((v) => { - return { - ...v.additionalProperties, - ...remap$(v, { - additionalProperties: null, - }), - }; -}); +export const TargetReleaseOverrideConditionStateResource$outboundSchema: + z.ZodType< + TargetReleaseOverrideConditionStateResource$Outbound, + TargetReleaseOverrideConditionStateResource + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function syncReconcileRequestPreviousConfigToJSON( - syncReconcileRequestPreviousConfig: SyncReconcileRequestPreviousConfig, +export function targetReleaseOverrideConditionStateResourceToJSON( + targetReleaseOverrideConditionStateResource: + TargetReleaseOverrideConditionStateResource, ): string { return JSON.stringify( - SyncReconcileRequestPreviousConfig$outboundSchema.parse( - syncReconcileRequestPreviousConfig, + TargetReleaseOverrideConditionStateResource$outboundSchema.parse( + targetReleaseOverrideConditionStateResource, ), ); } /** @internal */ -export type SyncReconcileRequestPreviousConfigUnion$Outbound = - | SyncReconcileRequestPreviousConfig$Outbound +export type TargetReleaseOverrideStateResourceConditionUnion$Outbound = + | TargetReleaseOverrideConditionStateResource$Outbound | any; /** @internal */ -export const SyncReconcileRequestPreviousConfigUnion$outboundSchema: z.ZodType< - SyncReconcileRequestPreviousConfigUnion$Outbound, - SyncReconcileRequestPreviousConfigUnion -> = z.union([ - z.lazy(() => SyncReconcileRequestPreviousConfig$outboundSchema), - z.any(), -]); +export const TargetReleaseOverrideStateResourceConditionUnion$outboundSchema: + z.ZodType< + TargetReleaseOverrideStateResourceConditionUnion$Outbound, + TargetReleaseOverrideStateResourceConditionUnion + > = z.union([ + z.lazy(() => TargetReleaseOverrideConditionStateResource$outboundSchema), + z.any(), + ]); -export function syncReconcileRequestPreviousConfigUnionToJSON( - syncReconcileRequestPreviousConfigUnion: - SyncReconcileRequestPreviousConfigUnion, +export function targetReleaseOverrideStateResourceConditionUnionToJSON( + targetReleaseOverrideStateResourceConditionUnion: + TargetReleaseOverrideStateResourceConditionUnion, ): string { return JSON.stringify( - SyncReconcileRequestPreviousConfigUnion$outboundSchema.parse( - syncReconcileRequestPreviousConfigUnion, + TargetReleaseOverrideStateResourceConditionUnion$outboundSchema.parse( + targetReleaseOverrideStateResourceConditionUnion, ), ); } /** @internal */ -export const StackStateStateStatus$outboundSchema: z.ZodEnum< - typeof StackStateStateStatus -> = z.enum(StackStateStateStatus); - -/** @internal */ -export type SyncReconcileRequestStackStateResources$Outbound = { - _internal?: any | null | undefined; - config: SyncReconcileRequestStackStateConfig$Outbound; - controllerPlatform?: string | any | null | undefined; - dependencies?: - | Array - | undefined; - error?: SyncReconcileRequestStackStateError$Outbound | any | null | undefined; - lastFailedState?: any | null | undefined; - lifecycle?: string | any | null | undefined; - outputs?: SyncReconcileRequestOutputs$Outbound | any | null | undefined; - previousConfig?: - | SyncReconcileRequestPreviousConfig$Outbound +export type TargetReleaseOverrideStateGcpResource$Outbound = { + condition?: + | TargetReleaseOverrideConditionStateResource$Outbound | any | null | undefined; - remoteBindingParams?: any | null | undefined; - retryAttempt?: number | undefined; - status: string; - type: string; + scope: string; }; /** @internal */ -export const SyncReconcileRequestStackStateResources$outboundSchema: z.ZodType< - SyncReconcileRequestStackStateResources$Outbound, - SyncReconcileRequestStackStateResources +export const TargetReleaseOverrideStateGcpResource$outboundSchema: z.ZodType< + TargetReleaseOverrideStateGcpResource$Outbound, + TargetReleaseOverrideStateGcpResource > = z.object({ - internal: z.nullable(z.any()).optional(), - config: z.lazy(() => SyncReconcileRequestStackStateConfig$outboundSchema), - controllerPlatform: z.nullable( - z.union([ControllerPlatformStateEnum$outboundSchema, z.any()]), - ).optional(), - dependencies: z.array( - z.lazy(() => SyncReconcileRequestStackStateDependency$outboundSchema), - ).optional(), - error: z.nullable( - z.union([ - z.lazy(() => SyncReconcileRequestStackStateError$outboundSchema), - z.any(), - ]), - ).optional(), - lastFailedState: z.nullable(z.any()).optional(), - lifecycle: z.nullable( - z.union([StackStateLifecycleStateEnum$outboundSchema, z.any()]), - ).optional(), - outputs: z.nullable( - z.union([ - z.lazy(() => SyncReconcileRequestOutputs$outboundSchema), - z.any(), - ]), - ).optional(), - previousConfig: z.nullable( + condition: z.nullable( z.union([ - z.lazy(() => SyncReconcileRequestPreviousConfig$outboundSchema), + z.lazy(() => TargetReleaseOverrideConditionStateResource$outboundSchema), z.any(), ]), ).optional(), - remoteBindingParams: z.nullable(z.any()).optional(), - retryAttempt: z.int().optional(), - status: StackStateStateStatus$outboundSchema, - type: z.string(), -}).transform((v) => { - return remap$(v, { - internal: "_internal", - }); + scope: z.string(), }); -export function syncReconcileRequestStackStateResourcesToJSON( - syncReconcileRequestStackStateResources: - SyncReconcileRequestStackStateResources, +export function targetReleaseOverrideStateGcpResourceToJSON( + targetReleaseOverrideStateGcpResource: TargetReleaseOverrideStateGcpResource, ): string { return JSON.stringify( - SyncReconcileRequestStackStateResources$outboundSchema.parse( - syncReconcileRequestStackStateResources, + TargetReleaseOverrideStateGcpResource$outboundSchema.parse( + targetReleaseOverrideStateGcpResource, ), ); } /** @internal */ -export type SyncReconcileRequestStackState$Outbound = { - platform: string; - resourcePrefix: string; - resources: { [k: string]: SyncReconcileRequestStackStateResources$Outbound }; +export type TargetReleaseOverrideConditionState$Outbound = { + expression: string; + title: string; }; /** @internal */ -export const SyncReconcileRequestStackState$outboundSchema: z.ZodType< - SyncReconcileRequestStackState$Outbound, - SyncReconcileRequestStackState +export const TargetReleaseOverrideConditionState$outboundSchema: z.ZodType< + TargetReleaseOverrideConditionState$Outbound, + TargetReleaseOverrideConditionState > = z.object({ - platform: SyncReconcileRequestStackStatePlatform$outboundSchema, - resourcePrefix: z.string(), - resources: z.record( - z.string(), - z.lazy(() => SyncReconcileRequestStackStateResources$outboundSchema), - ), + expression: z.string(), + title: z.string(), }); -export function syncReconcileRequestStackStateToJSON( - syncReconcileRequestStackState: SyncReconcileRequestStackState, +export function targetReleaseOverrideConditionStateToJSON( + targetReleaseOverrideConditionState: TargetReleaseOverrideConditionState, ): string { return JSON.stringify( - SyncReconcileRequestStackState$outboundSchema.parse( - syncReconcileRequestStackState, + TargetReleaseOverrideConditionState$outboundSchema.parse( + targetReleaseOverrideConditionState, ), ); } /** @internal */ -export type SyncReconcileRequestStackStateUnion$Outbound = - | SyncReconcileRequestStackState$Outbound +export type TargetReleaseOverrideStateConditionUnion$Outbound = + | TargetReleaseOverrideConditionState$Outbound | any; /** @internal */ -export const SyncReconcileRequestStackStateUnion$outboundSchema: z.ZodType< - SyncReconcileRequestStackStateUnion$Outbound, - SyncReconcileRequestStackStateUnion +export const TargetReleaseOverrideStateConditionUnion$outboundSchema: z.ZodType< + TargetReleaseOverrideStateConditionUnion$Outbound, + TargetReleaseOverrideStateConditionUnion > = z.union([ - z.lazy(() => SyncReconcileRequestStackState$outboundSchema), + z.lazy(() => TargetReleaseOverrideConditionState$outboundSchema), z.any(), ]); -export function syncReconcileRequestStackStateUnionToJSON( - syncReconcileRequestStackStateUnion: SyncReconcileRequestStackStateUnion, -): string { - return JSON.stringify( - SyncReconcileRequestStackStateUnion$outboundSchema.parse( - syncReconcileRequestStackStateUnion, - ), - ); -} - -/** @internal */ -export const StateStatus$outboundSchema: z.ZodEnum = z.enum( - StateStatus, -); - -/** @internal */ -export const SyncReconcileRequestTargetReleaseTypeStringList$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestTargetReleaseTypeStringList, - ); - -/** @internal */ -export type SyncReconcileRequestTargetReleaseDefaultStringList$Outbound = { - type: string; - value: Array; -}; - -/** @internal */ -export const SyncReconcileRequestTargetReleaseDefaultStringList$outboundSchema: - z.ZodType< - SyncReconcileRequestTargetReleaseDefaultStringList$Outbound, - SyncReconcileRequestTargetReleaseDefaultStringList - > = z.object({ - type: SyncReconcileRequestTargetReleaseTypeStringList$outboundSchema, - value: z.array(z.string()), - }); - -export function syncReconcileRequestTargetReleaseDefaultStringListToJSON( - syncReconcileRequestTargetReleaseDefaultStringList: - SyncReconcileRequestTargetReleaseDefaultStringList, -): string { - return JSON.stringify( - SyncReconcileRequestTargetReleaseDefaultStringList$outboundSchema.parse( - syncReconcileRequestTargetReleaseDefaultStringList, - ), - ); -} - -/** @internal */ -export const SyncReconcileRequestTargetReleaseTypeBoolean$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestTargetReleaseTypeBoolean, - ); - -/** @internal */ -export type SyncReconcileRequestTargetReleaseDefaultBoolean$Outbound = { - type: string; - value: boolean; -}; - -/** @internal */ -export const SyncReconcileRequestTargetReleaseDefaultBoolean$outboundSchema: - z.ZodType< - SyncReconcileRequestTargetReleaseDefaultBoolean$Outbound, - SyncReconcileRequestTargetReleaseDefaultBoolean - > = z.object({ - type: SyncReconcileRequestTargetReleaseTypeBoolean$outboundSchema, - value: z.boolean(), - }); - -export function syncReconcileRequestTargetReleaseDefaultBooleanToJSON( - syncReconcileRequestTargetReleaseDefaultBoolean: - SyncReconcileRequestTargetReleaseDefaultBoolean, +export function targetReleaseOverrideStateConditionUnionToJSON( + targetReleaseOverrideStateConditionUnion: + TargetReleaseOverrideStateConditionUnion, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseDefaultBoolean$outboundSchema.parse( - syncReconcileRequestTargetReleaseDefaultBoolean, + TargetReleaseOverrideStateConditionUnion$outboundSchema.parse( + targetReleaseOverrideStateConditionUnion, ), ); } /** @internal */ -export const SyncReconcileRequestTargetReleaseTypeNumber$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestTargetReleaseTypeNumber, - ); - -/** @internal */ -export type SyncReconcileRequestTargetReleaseDefaultNumber$Outbound = { - type: string; - value: string; +export type SyncReconcileRequestTargetReleaseOverrideGcpStack$Outbound = { + condition?: + | TargetReleaseOverrideConditionState$Outbound + | any + | null + | undefined; + scope: string; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseDefaultNumber$outboundSchema: +export const SyncReconcileRequestTargetReleaseOverrideGcpStack$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseDefaultNumber$Outbound, - SyncReconcileRequestTargetReleaseDefaultNumber + SyncReconcileRequestTargetReleaseOverrideGcpStack$Outbound, + SyncReconcileRequestTargetReleaseOverrideGcpStack > = z.object({ - type: SyncReconcileRequestTargetReleaseTypeNumber$outboundSchema, - value: z.string(), + condition: z.nullable( + z.union([ + z.lazy(() => TargetReleaseOverrideConditionState$outboundSchema), + z.any(), + ]), + ).optional(), + scope: z.string(), }); -export function syncReconcileRequestTargetReleaseDefaultNumberToJSON( - syncReconcileRequestTargetReleaseDefaultNumber: - SyncReconcileRequestTargetReleaseDefaultNumber, +export function syncReconcileRequestTargetReleaseOverrideGcpStackToJSON( + syncReconcileRequestTargetReleaseOverrideGcpStack: + SyncReconcileRequestTargetReleaseOverrideGcpStack, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseDefaultNumber$outboundSchema.parse( - syncReconcileRequestTargetReleaseDefaultNumber, + SyncReconcileRequestTargetReleaseOverrideGcpStack$outboundSchema.parse( + syncReconcileRequestTargetReleaseOverrideGcpStack, ), ); } /** @internal */ -export const SyncReconcileRequestTargetReleaseTypeString$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestTargetReleaseTypeString, - ); - -/** @internal */ -export type SyncReconcileRequestTargetReleaseDefaultString$Outbound = { - type: string; - value: string; +export type SyncReconcileRequestTargetReleaseOverrideGcpBinding$Outbound = { + resource?: TargetReleaseOverrideStateGcpResource$Outbound | undefined; + stack?: + | SyncReconcileRequestTargetReleaseOverrideGcpStack$Outbound + | undefined; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseDefaultString$outboundSchema: +export const SyncReconcileRequestTargetReleaseOverrideGcpBinding$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseDefaultString$Outbound, - SyncReconcileRequestTargetReleaseDefaultString - > = z.object({ - type: SyncReconcileRequestTargetReleaseTypeString$outboundSchema, - value: z.string(), + SyncReconcileRequestTargetReleaseOverrideGcpBinding$Outbound, + SyncReconcileRequestTargetReleaseOverrideGcpBinding + > = z.object({ + resource: z.lazy(() => TargetReleaseOverrideStateGcpResource$outboundSchema) + .optional(), + stack: z.lazy(() => + SyncReconcileRequestTargetReleaseOverrideGcpStack$outboundSchema + ).optional(), }); -export function syncReconcileRequestTargetReleaseDefaultStringToJSON( - syncReconcileRequestTargetReleaseDefaultString: - SyncReconcileRequestTargetReleaseDefaultString, +export function syncReconcileRequestTargetReleaseOverrideGcpBindingToJSON( + syncReconcileRequestTargetReleaseOverrideGcpBinding: + SyncReconcileRequestTargetReleaseOverrideGcpBinding, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseDefaultString$outboundSchema.parse( - syncReconcileRequestTargetReleaseDefaultString, + SyncReconcileRequestTargetReleaseOverrideGcpBinding$outboundSchema.parse( + syncReconcileRequestTargetReleaseOverrideGcpBinding, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseDefaultUnion$Outbound = - | SyncReconcileRequestTargetReleaseDefaultString$Outbound - | SyncReconcileRequestTargetReleaseDefaultNumber$Outbound - | SyncReconcileRequestTargetReleaseDefaultBoolean$Outbound - | SyncReconcileRequestTargetReleaseDefaultStringList$Outbound - | any; +export type SyncReconcileRequestTargetReleaseOverrideGcpGrant$Outbound = { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; +}; /** @internal */ -export const SyncReconcileRequestTargetReleaseDefaultUnion$outboundSchema: +export const SyncReconcileRequestTargetReleaseOverrideGcpGrant$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseDefaultUnion$Outbound, - SyncReconcileRequestTargetReleaseDefaultUnion - > = z.union([ - z.lazy(() => SyncReconcileRequestTargetReleaseDefaultString$outboundSchema), - z.lazy(() => SyncReconcileRequestTargetReleaseDefaultNumber$outboundSchema), - z.lazy(() => - SyncReconcileRequestTargetReleaseDefaultBoolean$outboundSchema - ), - z.lazy(() => - SyncReconcileRequestTargetReleaseDefaultStringList$outboundSchema - ), - z.any(), - ]); + SyncReconcileRequestTargetReleaseOverrideGcpGrant$Outbound, + SyncReconcileRequestTargetReleaseOverrideGcpGrant + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function syncReconcileRequestTargetReleaseDefaultUnionToJSON( - syncReconcileRequestTargetReleaseDefaultUnion: - SyncReconcileRequestTargetReleaseDefaultUnion, +export function syncReconcileRequestTargetReleaseOverrideGcpGrantToJSON( + syncReconcileRequestTargetReleaseOverrideGcpGrant: + SyncReconcileRequestTargetReleaseOverrideGcpGrant, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseDefaultUnion$outboundSchema.parse( - syncReconcileRequestTargetReleaseDefaultUnion, + SyncReconcileRequestTargetReleaseOverrideGcpGrant$outboundSchema.parse( + syncReconcileRequestTargetReleaseOverrideGcpGrant, ), ); } /** @internal */ -export const SyncReconcileRequestTargetReleaseTypeEnvEnum$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestTargetReleaseTypeEnvEnum, - ); - -/** @internal */ -export type SyncReconcileRequestTargetReleaseTypeUnion$Outbound = string | any; +export type SyncReconcileRequestTargetReleaseOverrideGcp$Outbound = { + binding: SyncReconcileRequestTargetReleaseOverrideGcpBinding$Outbound; + description?: string | null | undefined; + grant: SyncReconcileRequestTargetReleaseOverrideGcpGrant$Outbound; + label?: string | null | undefined; +}; /** @internal */ -export const SyncReconcileRequestTargetReleaseTypeUnion$outboundSchema: +export const SyncReconcileRequestTargetReleaseOverrideGcp$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseTypeUnion$Outbound, - SyncReconcileRequestTargetReleaseTypeUnion - > = z.union([ - SyncReconcileRequestTargetReleaseTypeEnvEnum$outboundSchema, - z.any(), - ]); + SyncReconcileRequestTargetReleaseOverrideGcp$Outbound, + SyncReconcileRequestTargetReleaseOverrideGcp + > = z.object({ + binding: z.lazy(() => + SyncReconcileRequestTargetReleaseOverrideGcpBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncReconcileRequestTargetReleaseOverrideGcpGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function syncReconcileRequestTargetReleaseTypeUnionToJSON( - syncReconcileRequestTargetReleaseTypeUnion: - SyncReconcileRequestTargetReleaseTypeUnion, +export function syncReconcileRequestTargetReleaseOverrideGcpToJSON( + syncReconcileRequestTargetReleaseOverrideGcp: + SyncReconcileRequestTargetReleaseOverrideGcp, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseTypeUnion$outboundSchema.parse( - syncReconcileRequestTargetReleaseTypeUnion, + SyncReconcileRequestTargetReleaseOverrideGcp$outboundSchema.parse( + syncReconcileRequestTargetReleaseOverrideGcp, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseEnv$Outbound = { - name: string; - targetResources?: Array | null | undefined; - type?: string | any | null | undefined; +export type SyncReconcileRequestTargetReleaseOverridePlatforms$Outbound = { + aws?: + | Array + | null + | undefined; + azure?: + | Array + | null + | undefined; + gcp?: + | Array + | null + | undefined; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseEnv$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseEnv$Outbound, - SyncReconcileRequestTargetReleaseEnv -> = z.object({ - name: z.string(), - targetResources: z.nullable(z.array(z.string())).optional(), - type: z.nullable( - z.union([ - SyncReconcileRequestTargetReleaseTypeEnvEnum$outboundSchema, - z.any(), - ]), - ).optional(), -}); +export const SyncReconcileRequestTargetReleaseOverridePlatforms$outboundSchema: + z.ZodType< + SyncReconcileRequestTargetReleaseOverridePlatforms$Outbound, + SyncReconcileRequestTargetReleaseOverridePlatforms + > = z.object({ + aws: z.nullable( + z.array(z.lazy(() => + SyncReconcileRequestTargetReleaseOverrideAw$outboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + SyncReconcileRequestTargetReleaseOverrideAzure$outboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + SyncReconcileRequestTargetReleaseOverrideGcp$outboundSchema + )), + ).optional(), + }); -export function syncReconcileRequestTargetReleaseEnvToJSON( - syncReconcileRequestTargetReleaseEnv: SyncReconcileRequestTargetReleaseEnv, +export function syncReconcileRequestTargetReleaseOverridePlatformsToJSON( + syncReconcileRequestTargetReleaseOverridePlatforms: + SyncReconcileRequestTargetReleaseOverridePlatforms, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseEnv$outboundSchema.parse( - syncReconcileRequestTargetReleaseEnv, + SyncReconcileRequestTargetReleaseOverridePlatforms$outboundSchema.parse( + syncReconcileRequestTargetReleaseOverridePlatforms, ), ); } /** @internal */ -export const TargetReleaseStateKind$outboundSchema: z.ZodEnum< - typeof TargetReleaseStateKind -> = z.enum(TargetReleaseStateKind); - -/** @internal */ -export const SyncReconcileRequestTargetReleasePlatform$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestTargetReleasePlatform, - ); - -/** @internal */ -export const SyncReconcileRequestTargetReleaseProvidedBy$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestTargetReleaseProvidedBy, - ); - -/** @internal */ -export type SyncReconcileRequestTargetReleaseValidation$Outbound = { - format?: string | null | undefined; - max?: string | null | undefined; - maxItems?: number | null | undefined; - maxLength?: number | null | undefined; - min?: string | null | undefined; - minItems?: number | null | undefined; - minLength?: number | null | undefined; - pattern?: string | null | undefined; - values?: Array | null | undefined; +export type SyncReconcileRequestTargetReleaseOverride$Outbound = { + description: string; + id: string; + platforms: SyncReconcileRequestTargetReleaseOverridePlatforms$Outbound; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseValidation$outboundSchema: +export const SyncReconcileRequestTargetReleaseOverride$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseValidation$Outbound, - SyncReconcileRequestTargetReleaseValidation + SyncReconcileRequestTargetReleaseOverride$Outbound, + SyncReconcileRequestTargetReleaseOverride > = z.object({ - format: z.nullable(z.string()).optional(), - max: z.nullable(z.string()).optional(), - maxItems: z.nullable(z.int()).optional(), - maxLength: z.nullable(z.int()).optional(), - min: z.nullable(z.string()).optional(), - minItems: z.nullable(z.int()).optional(), - minLength: z.nullable(z.int()).optional(), - pattern: z.nullable(z.string()).optional(), - values: z.nullable(z.array(z.string())).optional(), + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncReconcileRequestTargetReleaseOverridePlatforms$outboundSchema + ), }); -export function syncReconcileRequestTargetReleaseValidationToJSON( - syncReconcileRequestTargetReleaseValidation: - SyncReconcileRequestTargetReleaseValidation, +export function syncReconcileRequestTargetReleaseOverrideToJSON( + syncReconcileRequestTargetReleaseOverride: + SyncReconcileRequestTargetReleaseOverride, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseValidation$outboundSchema.parse( - syncReconcileRequestTargetReleaseValidation, + SyncReconcileRequestTargetReleaseOverride$outboundSchema.parse( + syncReconcileRequestTargetReleaseOverride, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseValidationUnion$Outbound = - | SyncReconcileRequestTargetReleaseValidation$Outbound - | any; +export type SyncReconcileRequestTargetReleaseOverrideUnion$Outbound = + | SyncReconcileRequestTargetReleaseOverride$Outbound + | string; /** @internal */ -export const SyncReconcileRequestTargetReleaseValidationUnion$outboundSchema: +export const SyncReconcileRequestTargetReleaseOverrideUnion$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseValidationUnion$Outbound, - SyncReconcileRequestTargetReleaseValidationUnion + SyncReconcileRequestTargetReleaseOverrideUnion$Outbound, + SyncReconcileRequestTargetReleaseOverrideUnion > = z.union([ - z.lazy(() => SyncReconcileRequestTargetReleaseValidation$outboundSchema), - z.any(), + z.lazy(() => SyncReconcileRequestTargetReleaseOverride$outboundSchema), + z.string(), ]); -export function syncReconcileRequestTargetReleaseValidationUnionToJSON( - syncReconcileRequestTargetReleaseValidationUnion: - SyncReconcileRequestTargetReleaseValidationUnion, +export function syncReconcileRequestTargetReleaseOverrideUnionToJSON( + syncReconcileRequestTargetReleaseOverrideUnion: + SyncReconcileRequestTargetReleaseOverrideUnion, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseValidationUnion$outboundSchema.parse( - syncReconcileRequestTargetReleaseValidationUnion, + SyncReconcileRequestTargetReleaseOverrideUnion$outboundSchema.parse( + syncReconcileRequestTargetReleaseOverrideUnion, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseInput$Outbound = { - default?: - | SyncReconcileRequestTargetReleaseDefaultString$Outbound - | SyncReconcileRequestTargetReleaseDefaultNumber$Outbound - | SyncReconcileRequestTargetReleaseDefaultBoolean$Outbound - | SyncReconcileRequestTargetReleaseDefaultStringList$Outbound - | any - | null - | undefined; - description: string; - env?: Array | undefined; - id: string; - kind: string; - label: string; - placeholder?: string | null | undefined; - platforms?: Array | null | undefined; - providedBy: Array; - required: boolean; - validation?: - | SyncReconcileRequestTargetReleaseValidation$Outbound - | any - | null - | undefined; +export type SyncReconcileRequestTargetReleaseManagement2$Outbound = { + override: { + [k: string]: Array< + SyncReconcileRequestTargetReleaseOverride$Outbound | string + >; + }; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseInput$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseInput$Outbound, - SyncReconcileRequestTargetReleaseInput -> = z.object({ - default: z.nullable( - z.union([ - z.lazy(() => - SyncReconcileRequestTargetReleaseDefaultString$outboundSchema - ), - z.lazy(() => - SyncReconcileRequestTargetReleaseDefaultNumber$outboundSchema - ), - z.lazy(() => - SyncReconcileRequestTargetReleaseDefaultBoolean$outboundSchema - ), - z.lazy(() => - SyncReconcileRequestTargetReleaseDefaultStringList$outboundSchema - ), - z.any(), - ]), - ).optional(), - description: z.string(), - env: z.array( - z.lazy(() => SyncReconcileRequestTargetReleaseEnv$outboundSchema), - ).optional(), - id: z.string(), - kind: TargetReleaseStateKind$outboundSchema, - label: z.string(), - placeholder: z.nullable(z.string()).optional(), - platforms: z.nullable( - z.array(SyncReconcileRequestTargetReleasePlatform$outboundSchema), - ).optional(), - providedBy: z.array( - SyncReconcileRequestTargetReleaseProvidedBy$outboundSchema, - ), - required: z.boolean(), - validation: z.nullable( - z.union([ - z.lazy(() => SyncReconcileRequestTargetReleaseValidation$outboundSchema), - z.any(), - ]), - ).optional(), -}); +export const SyncReconcileRequestTargetReleaseManagement2$outboundSchema: + z.ZodType< + SyncReconcileRequestTargetReleaseManagement2$Outbound, + SyncReconcileRequestTargetReleaseManagement2 + > = z.object({ + override: z.record( + z.string(), + z.array(z.union([ + z.lazy(() => SyncReconcileRequestTargetReleaseOverride$outboundSchema), + z.string(), + ])), + ), + }); -export function syncReconcileRequestTargetReleaseInputToJSON( - syncReconcileRequestTargetReleaseInput: - SyncReconcileRequestTargetReleaseInput, +export function syncReconcileRequestTargetReleaseManagement2ToJSON( + syncReconcileRequestTargetReleaseManagement2: + SyncReconcileRequestTargetReleaseManagement2, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseInput$outboundSchema.parse( - syncReconcileRequestTargetReleaseInput, + SyncReconcileRequestTargetReleaseManagement2$outboundSchema.parse( + syncReconcileRequestTargetReleaseManagement2, ), ); } /** @internal */ -export const SyncReconcileRequestTargetReleaseManagementEnum$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestTargetReleaseManagementEnum, - ); - -/** @internal */ -export type TargetReleaseOverrideStateAwResource$Outbound = { +export type TargetReleaseExtendStateAwResource$Outbound = { condition?: { [k: string]: { [k: string]: string } } | null | undefined; resources: Array; }; /** @internal */ -export const TargetReleaseOverrideStateAwResource$outboundSchema: z.ZodType< - TargetReleaseOverrideStateAwResource$Outbound, - TargetReleaseOverrideStateAwResource +export const TargetReleaseExtendStateAwResource$outboundSchema: z.ZodType< + TargetReleaseExtendStateAwResource$Outbound, + TargetReleaseExtendStateAwResource > = z.object({ condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) .optional(), resources: z.array(z.string()), }); -export function targetReleaseOverrideStateAwResourceToJSON( - targetReleaseOverrideStateAwResource: TargetReleaseOverrideStateAwResource, +export function targetReleaseExtendStateAwResourceToJSON( + targetReleaseExtendStateAwResource: TargetReleaseExtendStateAwResource, ): string { return JSON.stringify( - TargetReleaseOverrideStateAwResource$outboundSchema.parse( - targetReleaseOverrideStateAwResource, + TargetReleaseExtendStateAwResource$outboundSchema.parse( + targetReleaseExtendStateAwResource, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseOverrideAwStack$Outbound = { +export type SyncReconcileRequestTargetReleaseExtendAwStack$Outbound = { condition?: { [k: string]: { [k: string]: string } } | null | undefined; resources: Array; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseOverrideAwStack$outboundSchema: +export const SyncReconcileRequestTargetReleaseExtendAwStack$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseOverrideAwStack$Outbound, - SyncReconcileRequestTargetReleaseOverrideAwStack + SyncReconcileRequestTargetReleaseExtendAwStack$Outbound, + SyncReconcileRequestTargetReleaseExtendAwStack > = z.object({ condition: z.nullable( z.record(z.string(), z.record(z.string(), z.string())), @@ -19336,55 +25450,55 @@ export const SyncReconcileRequestTargetReleaseOverrideAwStack$outboundSchema: resources: z.array(z.string()), }); -export function syncReconcileRequestTargetReleaseOverrideAwStackToJSON( - syncReconcileRequestTargetReleaseOverrideAwStack: - SyncReconcileRequestTargetReleaseOverrideAwStack, +export function syncReconcileRequestTargetReleaseExtendAwStackToJSON( + syncReconcileRequestTargetReleaseExtendAwStack: + SyncReconcileRequestTargetReleaseExtendAwStack, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseOverrideAwStack$outboundSchema.parse( - syncReconcileRequestTargetReleaseOverrideAwStack, + SyncReconcileRequestTargetReleaseExtendAwStack$outboundSchema.parse( + syncReconcileRequestTargetReleaseExtendAwStack, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseOverrideAwBinding$Outbound = { - resource?: TargetReleaseOverrideStateAwResource$Outbound | undefined; - stack?: SyncReconcileRequestTargetReleaseOverrideAwStack$Outbound | undefined; +export type SyncReconcileRequestTargetReleaseExtendAwBinding$Outbound = { + resource?: TargetReleaseExtendStateAwResource$Outbound | undefined; + stack?: SyncReconcileRequestTargetReleaseExtendAwStack$Outbound | undefined; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseOverrideAwBinding$outboundSchema: +export const SyncReconcileRequestTargetReleaseExtendAwBinding$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseOverrideAwBinding$Outbound, - SyncReconcileRequestTargetReleaseOverrideAwBinding + SyncReconcileRequestTargetReleaseExtendAwBinding$Outbound, + SyncReconcileRequestTargetReleaseExtendAwBinding > = z.object({ - resource: z.lazy(() => TargetReleaseOverrideStateAwResource$outboundSchema) + resource: z.lazy(() => TargetReleaseExtendStateAwResource$outboundSchema) .optional(), stack: z.lazy(() => - SyncReconcileRequestTargetReleaseOverrideAwStack$outboundSchema + SyncReconcileRequestTargetReleaseExtendAwStack$outboundSchema ).optional(), }); -export function syncReconcileRequestTargetReleaseOverrideAwBindingToJSON( - syncReconcileRequestTargetReleaseOverrideAwBinding: - SyncReconcileRequestTargetReleaseOverrideAwBinding, +export function syncReconcileRequestTargetReleaseExtendAwBindingToJSON( + syncReconcileRequestTargetReleaseExtendAwBinding: + SyncReconcileRequestTargetReleaseExtendAwBinding, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseOverrideAwBinding$outboundSchema.parse( - syncReconcileRequestTargetReleaseOverrideAwBinding, + SyncReconcileRequestTargetReleaseExtendAwBinding$outboundSchema.parse( + syncReconcileRequestTargetReleaseExtendAwBinding, ), ); } /** @internal */ -export const SyncReconcileRequestTargetReleaseOverrideEffect$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestTargetReleaseOverrideEffect, +export const SyncReconcileRequestTargetReleaseExtendEffect$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestTargetReleaseExtendEffect, ); /** @internal */ -export type SyncReconcileRequestTargetReleaseOverrideAwGrant$Outbound = { +export type SyncReconcileRequestTargetReleaseExtendAwGrant$Outbound = { actions?: Array | null | undefined; dataActions?: Array | null | undefined; permissions?: Array | null | undefined; @@ -19393,10 +25507,10 @@ export type SyncReconcileRequestTargetReleaseOverrideAwGrant$Outbound = { }; /** @internal */ -export const SyncReconcileRequestTargetReleaseOverrideAwGrant$outboundSchema: +export const SyncReconcileRequestTargetReleaseExtendAwGrant$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseOverrideAwGrant$Outbound, - SyncReconcileRequestTargetReleaseOverrideAwGrant + SyncReconcileRequestTargetReleaseExtendAwGrant$Outbound, + SyncReconcileRequestTargetReleaseExtendAwGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -19405,139 +25519,137 @@ export const SyncReconcileRequestTargetReleaseOverrideAwGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileRequestTargetReleaseOverrideAwGrantToJSON( - syncReconcileRequestTargetReleaseOverrideAwGrant: - SyncReconcileRequestTargetReleaseOverrideAwGrant, +export function syncReconcileRequestTargetReleaseExtendAwGrantToJSON( + syncReconcileRequestTargetReleaseExtendAwGrant: + SyncReconcileRequestTargetReleaseExtendAwGrant, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseOverrideAwGrant$outboundSchema.parse( - syncReconcileRequestTargetReleaseOverrideAwGrant, + SyncReconcileRequestTargetReleaseExtendAwGrant$outboundSchema.parse( + syncReconcileRequestTargetReleaseExtendAwGrant, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseOverrideAw$Outbound = { - binding: SyncReconcileRequestTargetReleaseOverrideAwBinding$Outbound; +export type SyncReconcileRequestTargetReleaseExtendAw$Outbound = { + binding: SyncReconcileRequestTargetReleaseExtendAwBinding$Outbound; description?: string | null | undefined; effect?: string | undefined; - grant: SyncReconcileRequestTargetReleaseOverrideAwGrant$Outbound; + grant: SyncReconcileRequestTargetReleaseExtendAwGrant$Outbound; label?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseOverrideAw$outboundSchema: +export const SyncReconcileRequestTargetReleaseExtendAw$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseOverrideAw$Outbound, - SyncReconcileRequestTargetReleaseOverrideAw + SyncReconcileRequestTargetReleaseExtendAw$Outbound, + SyncReconcileRequestTargetReleaseExtendAw > = z.object({ binding: z.lazy(() => - SyncReconcileRequestTargetReleaseOverrideAwBinding$outboundSchema + SyncReconcileRequestTargetReleaseExtendAwBinding$outboundSchema ), description: z.nullable(z.string()).optional(), - effect: SyncReconcileRequestTargetReleaseOverrideEffect$outboundSchema + effect: SyncReconcileRequestTargetReleaseExtendEffect$outboundSchema .optional(), grant: z.lazy(() => - SyncReconcileRequestTargetReleaseOverrideAwGrant$outboundSchema + SyncReconcileRequestTargetReleaseExtendAwGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestTargetReleaseOverrideAwToJSON( - syncReconcileRequestTargetReleaseOverrideAw: - SyncReconcileRequestTargetReleaseOverrideAw, +export function syncReconcileRequestTargetReleaseExtendAwToJSON( + syncReconcileRequestTargetReleaseExtendAw: + SyncReconcileRequestTargetReleaseExtendAw, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseOverrideAw$outboundSchema.parse( - syncReconcileRequestTargetReleaseOverrideAw, + SyncReconcileRequestTargetReleaseExtendAw$outboundSchema.parse( + syncReconcileRequestTargetReleaseExtendAw, ), ); } /** @internal */ -export type TargetReleaseOverrideStateAzureResource$Outbound = { +export type TargetReleaseExtendStateAzureResource$Outbound = { scope: string; }; /** @internal */ -export const TargetReleaseOverrideStateAzureResource$outboundSchema: z.ZodType< - TargetReleaseOverrideStateAzureResource$Outbound, - TargetReleaseOverrideStateAzureResource +export const TargetReleaseExtendStateAzureResource$outboundSchema: z.ZodType< + TargetReleaseExtendStateAzureResource$Outbound, + TargetReleaseExtendStateAzureResource > = z.object({ scope: z.string(), }); -export function targetReleaseOverrideStateAzureResourceToJSON( - targetReleaseOverrideStateAzureResource: - TargetReleaseOverrideStateAzureResource, +export function targetReleaseExtendStateAzureResourceToJSON( + targetReleaseExtendStateAzureResource: TargetReleaseExtendStateAzureResource, ): string { return JSON.stringify( - TargetReleaseOverrideStateAzureResource$outboundSchema.parse( - targetReleaseOverrideStateAzureResource, + TargetReleaseExtendStateAzureResource$outboundSchema.parse( + targetReleaseExtendStateAzureResource, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseOverrideAzureStack$Outbound = { +export type SyncReconcileRequestTargetReleaseExtendAzureStack$Outbound = { scope: string; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseOverrideAzureStack$outboundSchema: +export const SyncReconcileRequestTargetReleaseExtendAzureStack$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseOverrideAzureStack$Outbound, - SyncReconcileRequestTargetReleaseOverrideAzureStack + SyncReconcileRequestTargetReleaseExtendAzureStack$Outbound, + SyncReconcileRequestTargetReleaseExtendAzureStack > = z.object({ scope: z.string(), }); -export function syncReconcileRequestTargetReleaseOverrideAzureStackToJSON( - syncReconcileRequestTargetReleaseOverrideAzureStack: - SyncReconcileRequestTargetReleaseOverrideAzureStack, +export function syncReconcileRequestTargetReleaseExtendAzureStackToJSON( + syncReconcileRequestTargetReleaseExtendAzureStack: + SyncReconcileRequestTargetReleaseExtendAzureStack, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseOverrideAzureStack$outboundSchema.parse( - syncReconcileRequestTargetReleaseOverrideAzureStack, + SyncReconcileRequestTargetReleaseExtendAzureStack$outboundSchema.parse( + syncReconcileRequestTargetReleaseExtendAzureStack, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseOverrideAzureBinding$Outbound = { - resource?: TargetReleaseOverrideStateAzureResource$Outbound | undefined; +export type SyncReconcileRequestTargetReleaseExtendAzureBinding$Outbound = { + resource?: TargetReleaseExtendStateAzureResource$Outbound | undefined; stack?: - | SyncReconcileRequestTargetReleaseOverrideAzureStack$Outbound + | SyncReconcileRequestTargetReleaseExtendAzureStack$Outbound | undefined; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseOverrideAzureBinding$outboundSchema: +export const SyncReconcileRequestTargetReleaseExtendAzureBinding$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseOverrideAzureBinding$Outbound, - SyncReconcileRequestTargetReleaseOverrideAzureBinding + SyncReconcileRequestTargetReleaseExtendAzureBinding$Outbound, + SyncReconcileRequestTargetReleaseExtendAzureBinding > = z.object({ - resource: z.lazy(() => - TargetReleaseOverrideStateAzureResource$outboundSchema - ).optional(), + resource: z.lazy(() => TargetReleaseExtendStateAzureResource$outboundSchema) + .optional(), stack: z.lazy(() => - SyncReconcileRequestTargetReleaseOverrideAzureStack$outboundSchema + SyncReconcileRequestTargetReleaseExtendAzureStack$outboundSchema ).optional(), }); -export function syncReconcileRequestTargetReleaseOverrideAzureBindingToJSON( - syncReconcileRequestTargetReleaseOverrideAzureBinding: - SyncReconcileRequestTargetReleaseOverrideAzureBinding, +export function syncReconcileRequestTargetReleaseExtendAzureBindingToJSON( + syncReconcileRequestTargetReleaseExtendAzureBinding: + SyncReconcileRequestTargetReleaseExtendAzureBinding, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseOverrideAzureBinding$outboundSchema.parse( - syncReconcileRequestTargetReleaseOverrideAzureBinding, + SyncReconcileRequestTargetReleaseExtendAzureBinding$outboundSchema.parse( + syncReconcileRequestTargetReleaseExtendAzureBinding, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseOverrideAzureGrant$Outbound = { +export type SyncReconcileRequestTargetReleaseExtendAzureGrant$Outbound = { actions?: Array | null | undefined; dataActions?: Array | null | undefined; permissions?: Array | null | undefined; @@ -19546,10 +25658,10 @@ export type SyncReconcileRequestTargetReleaseOverrideAzureGrant$Outbound = { }; /** @internal */ -export const SyncReconcileRequestTargetReleaseOverrideAzureGrant$outboundSchema: +export const SyncReconcileRequestTargetReleaseExtendAzureGrant$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseOverrideAzureGrant$Outbound, - SyncReconcileRequestTargetReleaseOverrideAzureGrant + SyncReconcileRequestTargetReleaseExtendAzureGrant$Outbound, + SyncReconcileRequestTargetReleaseExtendAzureGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -19558,109 +25670,109 @@ export const SyncReconcileRequestTargetReleaseOverrideAzureGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileRequestTargetReleaseOverrideAzureGrantToJSON( - syncReconcileRequestTargetReleaseOverrideAzureGrant: - SyncReconcileRequestTargetReleaseOverrideAzureGrant, +export function syncReconcileRequestTargetReleaseExtendAzureGrantToJSON( + syncReconcileRequestTargetReleaseExtendAzureGrant: + SyncReconcileRequestTargetReleaseExtendAzureGrant, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseOverrideAzureGrant$outboundSchema.parse( - syncReconcileRequestTargetReleaseOverrideAzureGrant, + SyncReconcileRequestTargetReleaseExtendAzureGrant$outboundSchema.parse( + syncReconcileRequestTargetReleaseExtendAzureGrant, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseOverrideAzure$Outbound = { - binding: SyncReconcileRequestTargetReleaseOverrideAzureBinding$Outbound; +export type SyncReconcileRequestTargetReleaseExtendAzure$Outbound = { + binding: SyncReconcileRequestTargetReleaseExtendAzureBinding$Outbound; description?: string | null | undefined; - grant: SyncReconcileRequestTargetReleaseOverrideAzureGrant$Outbound; + grant: SyncReconcileRequestTargetReleaseExtendAzureGrant$Outbound; label?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseOverrideAzure$outboundSchema: +export const SyncReconcileRequestTargetReleaseExtendAzure$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseOverrideAzure$Outbound, - SyncReconcileRequestTargetReleaseOverrideAzure + SyncReconcileRequestTargetReleaseExtendAzure$Outbound, + SyncReconcileRequestTargetReleaseExtendAzure > = z.object({ binding: z.lazy(() => - SyncReconcileRequestTargetReleaseOverrideAzureBinding$outboundSchema + SyncReconcileRequestTargetReleaseExtendAzureBinding$outboundSchema ), description: z.nullable(z.string()).optional(), grant: z.lazy(() => - SyncReconcileRequestTargetReleaseOverrideAzureGrant$outboundSchema + SyncReconcileRequestTargetReleaseExtendAzureGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestTargetReleaseOverrideAzureToJSON( - syncReconcileRequestTargetReleaseOverrideAzure: - SyncReconcileRequestTargetReleaseOverrideAzure, +export function syncReconcileRequestTargetReleaseExtendAzureToJSON( + syncReconcileRequestTargetReleaseExtendAzure: + SyncReconcileRequestTargetReleaseExtendAzure, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseOverrideAzure$outboundSchema.parse( - syncReconcileRequestTargetReleaseOverrideAzure, + SyncReconcileRequestTargetReleaseExtendAzure$outboundSchema.parse( + syncReconcileRequestTargetReleaseExtendAzure, ), ); } /** @internal */ -export type TargetReleaseOverrideConditionStateResource$Outbound = { +export type TargetReleaseExtendConditionStateResource$Outbound = { expression: string; title: string; }; /** @internal */ -export const TargetReleaseOverrideConditionStateResource$outboundSchema: +export const TargetReleaseExtendConditionStateResource$outboundSchema: z.ZodType< - TargetReleaseOverrideConditionStateResource$Outbound, - TargetReleaseOverrideConditionStateResource + TargetReleaseExtendConditionStateResource$Outbound, + TargetReleaseExtendConditionStateResource > = z.object({ expression: z.string(), title: z.string(), }); -export function targetReleaseOverrideConditionStateResourceToJSON( - targetReleaseOverrideConditionStateResource: - TargetReleaseOverrideConditionStateResource, +export function targetReleaseExtendConditionStateResourceToJSON( + targetReleaseExtendConditionStateResource: + TargetReleaseExtendConditionStateResource, ): string { return JSON.stringify( - TargetReleaseOverrideConditionStateResource$outboundSchema.parse( - targetReleaseOverrideConditionStateResource, + TargetReleaseExtendConditionStateResource$outboundSchema.parse( + targetReleaseExtendConditionStateResource, ), ); } /** @internal */ -export type TargetReleaseOverrideStateResourceConditionUnion$Outbound = - | TargetReleaseOverrideConditionStateResource$Outbound +export type TargetReleaseExtendStateResourceConditionUnion$Outbound = + | TargetReleaseExtendConditionStateResource$Outbound | any; /** @internal */ -export const TargetReleaseOverrideStateResourceConditionUnion$outboundSchema: +export const TargetReleaseExtendStateResourceConditionUnion$outboundSchema: z.ZodType< - TargetReleaseOverrideStateResourceConditionUnion$Outbound, - TargetReleaseOverrideStateResourceConditionUnion + TargetReleaseExtendStateResourceConditionUnion$Outbound, + TargetReleaseExtendStateResourceConditionUnion > = z.union([ - z.lazy(() => TargetReleaseOverrideConditionStateResource$outboundSchema), + z.lazy(() => TargetReleaseExtendConditionStateResource$outboundSchema), z.any(), ]); -export function targetReleaseOverrideStateResourceConditionUnionToJSON( - targetReleaseOverrideStateResourceConditionUnion: - TargetReleaseOverrideStateResourceConditionUnion, +export function targetReleaseExtendStateResourceConditionUnionToJSON( + targetReleaseExtendStateResourceConditionUnion: + TargetReleaseExtendStateResourceConditionUnion, ): string { return JSON.stringify( - TargetReleaseOverrideStateResourceConditionUnion$outboundSchema.parse( - targetReleaseOverrideStateResourceConditionUnion, + TargetReleaseExtendStateResourceConditionUnion$outboundSchema.parse( + targetReleaseExtendStateResourceConditionUnion, ), ); } /** @internal */ -export type TargetReleaseOverrideStateGcpResource$Outbound = { +export type TargetReleaseExtendStateGcpResource$Outbound = { condition?: - | TargetReleaseOverrideConditionStateResource$Outbound + | TargetReleaseExtendConditionStateResource$Outbound | any | null | undefined; @@ -19668,83 +25780,83 @@ export type TargetReleaseOverrideStateGcpResource$Outbound = { }; /** @internal */ -export const TargetReleaseOverrideStateGcpResource$outboundSchema: z.ZodType< - TargetReleaseOverrideStateGcpResource$Outbound, - TargetReleaseOverrideStateGcpResource +export const TargetReleaseExtendStateGcpResource$outboundSchema: z.ZodType< + TargetReleaseExtendStateGcpResource$Outbound, + TargetReleaseExtendStateGcpResource > = z.object({ condition: z.nullable( z.union([ - z.lazy(() => TargetReleaseOverrideConditionStateResource$outboundSchema), + z.lazy(() => TargetReleaseExtendConditionStateResource$outboundSchema), z.any(), ]), ).optional(), scope: z.string(), }); -export function targetReleaseOverrideStateGcpResourceToJSON( - targetReleaseOverrideStateGcpResource: TargetReleaseOverrideStateGcpResource, +export function targetReleaseExtendStateGcpResourceToJSON( + targetReleaseExtendStateGcpResource: TargetReleaseExtendStateGcpResource, ): string { return JSON.stringify( - TargetReleaseOverrideStateGcpResource$outboundSchema.parse( - targetReleaseOverrideStateGcpResource, + TargetReleaseExtendStateGcpResource$outboundSchema.parse( + targetReleaseExtendStateGcpResource, ), ); } /** @internal */ -export type TargetReleaseOverrideConditionState$Outbound = { +export type TargetReleaseExtendConditionState$Outbound = { expression: string; title: string; }; /** @internal */ -export const TargetReleaseOverrideConditionState$outboundSchema: z.ZodType< - TargetReleaseOverrideConditionState$Outbound, - TargetReleaseOverrideConditionState +export const TargetReleaseExtendConditionState$outboundSchema: z.ZodType< + TargetReleaseExtendConditionState$Outbound, + TargetReleaseExtendConditionState > = z.object({ expression: z.string(), title: z.string(), }); -export function targetReleaseOverrideConditionStateToJSON( - targetReleaseOverrideConditionState: TargetReleaseOverrideConditionState, +export function targetReleaseExtendConditionStateToJSON( + targetReleaseExtendConditionState: TargetReleaseExtendConditionState, ): string { return JSON.stringify( - TargetReleaseOverrideConditionState$outboundSchema.parse( - targetReleaseOverrideConditionState, + TargetReleaseExtendConditionState$outboundSchema.parse( + targetReleaseExtendConditionState, ), ); } /** @internal */ -export type TargetReleaseOverrideStateConditionUnion$Outbound = - | TargetReleaseOverrideConditionState$Outbound +export type TargetReleaseExtendStateConditionUnion$Outbound = + | TargetReleaseExtendConditionState$Outbound | any; /** @internal */ -export const TargetReleaseOverrideStateConditionUnion$outboundSchema: z.ZodType< - TargetReleaseOverrideStateConditionUnion$Outbound, - TargetReleaseOverrideStateConditionUnion +export const TargetReleaseExtendStateConditionUnion$outboundSchema: z.ZodType< + TargetReleaseExtendStateConditionUnion$Outbound, + TargetReleaseExtendStateConditionUnion > = z.union([ - z.lazy(() => TargetReleaseOverrideConditionState$outboundSchema), + z.lazy(() => TargetReleaseExtendConditionState$outboundSchema), z.any(), ]); -export function targetReleaseOverrideStateConditionUnionToJSON( - targetReleaseOverrideStateConditionUnion: - TargetReleaseOverrideStateConditionUnion, +export function targetReleaseExtendStateConditionUnionToJSON( + targetReleaseExtendStateConditionUnion: + TargetReleaseExtendStateConditionUnion, ): string { return JSON.stringify( - TargetReleaseOverrideStateConditionUnion$outboundSchema.parse( - targetReleaseOverrideStateConditionUnion, + TargetReleaseExtendStateConditionUnion$outboundSchema.parse( + targetReleaseExtendStateConditionUnion, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseOverrideGcpStack$Outbound = { +export type SyncReconcileRequestTargetReleaseExtendGcpStack$Outbound = { condition?: - | TargetReleaseOverrideConditionState$Outbound + | TargetReleaseExtendConditionState$Outbound | any | null | undefined; @@ -19752,65 +25864,63 @@ export type SyncReconcileRequestTargetReleaseOverrideGcpStack$Outbound = { }; /** @internal */ -export const SyncReconcileRequestTargetReleaseOverrideGcpStack$outboundSchema: +export const SyncReconcileRequestTargetReleaseExtendGcpStack$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseOverrideGcpStack$Outbound, - SyncReconcileRequestTargetReleaseOverrideGcpStack + SyncReconcileRequestTargetReleaseExtendGcpStack$Outbound, + SyncReconcileRequestTargetReleaseExtendGcpStack > = z.object({ condition: z.nullable( z.union([ - z.lazy(() => TargetReleaseOverrideConditionState$outboundSchema), + z.lazy(() => TargetReleaseExtendConditionState$outboundSchema), z.any(), ]), ).optional(), scope: z.string(), }); -export function syncReconcileRequestTargetReleaseOverrideGcpStackToJSON( - syncReconcileRequestTargetReleaseOverrideGcpStack: - SyncReconcileRequestTargetReleaseOverrideGcpStack, +export function syncReconcileRequestTargetReleaseExtendGcpStackToJSON( + syncReconcileRequestTargetReleaseExtendGcpStack: + SyncReconcileRequestTargetReleaseExtendGcpStack, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseOverrideGcpStack$outboundSchema.parse( - syncReconcileRequestTargetReleaseOverrideGcpStack, + SyncReconcileRequestTargetReleaseExtendGcpStack$outboundSchema.parse( + syncReconcileRequestTargetReleaseExtendGcpStack, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseOverrideGcpBinding$Outbound = { - resource?: TargetReleaseOverrideStateGcpResource$Outbound | undefined; - stack?: - | SyncReconcileRequestTargetReleaseOverrideGcpStack$Outbound - | undefined; +export type SyncReconcileRequestTargetReleaseExtendGcpBinding$Outbound = { + resource?: TargetReleaseExtendStateGcpResource$Outbound | undefined; + stack?: SyncReconcileRequestTargetReleaseExtendGcpStack$Outbound | undefined; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseOverrideGcpBinding$outboundSchema: +export const SyncReconcileRequestTargetReleaseExtendGcpBinding$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseOverrideGcpBinding$Outbound, - SyncReconcileRequestTargetReleaseOverrideGcpBinding + SyncReconcileRequestTargetReleaseExtendGcpBinding$Outbound, + SyncReconcileRequestTargetReleaseExtendGcpBinding > = z.object({ - resource: z.lazy(() => TargetReleaseOverrideStateGcpResource$outboundSchema) + resource: z.lazy(() => TargetReleaseExtendStateGcpResource$outboundSchema) .optional(), stack: z.lazy(() => - SyncReconcileRequestTargetReleaseOverrideGcpStack$outboundSchema + SyncReconcileRequestTargetReleaseExtendGcpStack$outboundSchema ).optional(), }); -export function syncReconcileRequestTargetReleaseOverrideGcpBindingToJSON( - syncReconcileRequestTargetReleaseOverrideGcpBinding: - SyncReconcileRequestTargetReleaseOverrideGcpBinding, +export function syncReconcileRequestTargetReleaseExtendGcpBindingToJSON( + syncReconcileRequestTargetReleaseExtendGcpBinding: + SyncReconcileRequestTargetReleaseExtendGcpBinding, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseOverrideGcpBinding$outboundSchema.parse( - syncReconcileRequestTargetReleaseOverrideGcpBinding, + SyncReconcileRequestTargetReleaseExtendGcpBinding$outboundSchema.parse( + syncReconcileRequestTargetReleaseExtendGcpBinding, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseOverrideGcpGrant$Outbound = { +export type SyncReconcileRequestTargetReleaseExtendGcpGrant$Outbound = { actions?: Array | null | undefined; dataActions?: Array | null | undefined; permissions?: Array | null | undefined; @@ -19819,10 +25929,10 @@ export type SyncReconcileRequestTargetReleaseOverrideGcpGrant$Outbound = { }; /** @internal */ -export const SyncReconcileRequestTargetReleaseOverrideGcpGrant$outboundSchema: +export const SyncReconcileRequestTargetReleaseExtendGcpGrant$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseOverrideGcpGrant$Outbound, - SyncReconcileRequestTargetReleaseOverrideGcpGrant + SyncReconcileRequestTargetReleaseExtendGcpGrant$Outbound, + SyncReconcileRequestTargetReleaseExtendGcpGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -19831,231 +25941,258 @@ export const SyncReconcileRequestTargetReleaseOverrideGcpGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileRequestTargetReleaseOverrideGcpGrantToJSON( - syncReconcileRequestTargetReleaseOverrideGcpGrant: - SyncReconcileRequestTargetReleaseOverrideGcpGrant, +export function syncReconcileRequestTargetReleaseExtendGcpGrantToJSON( + syncReconcileRequestTargetReleaseExtendGcpGrant: + SyncReconcileRequestTargetReleaseExtendGcpGrant, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseOverrideGcpGrant$outboundSchema.parse( - syncReconcileRequestTargetReleaseOverrideGcpGrant, + SyncReconcileRequestTargetReleaseExtendGcpGrant$outboundSchema.parse( + syncReconcileRequestTargetReleaseExtendGcpGrant, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseOverrideGcp$Outbound = { - binding: SyncReconcileRequestTargetReleaseOverrideGcpBinding$Outbound; +export type SyncReconcileRequestTargetReleaseExtendGcp$Outbound = { + binding: SyncReconcileRequestTargetReleaseExtendGcpBinding$Outbound; description?: string | null | undefined; - grant: SyncReconcileRequestTargetReleaseOverrideGcpGrant$Outbound; + grant: SyncReconcileRequestTargetReleaseExtendGcpGrant$Outbound; label?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseOverrideGcp$outboundSchema: +export const SyncReconcileRequestTargetReleaseExtendGcp$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseOverrideGcp$Outbound, - SyncReconcileRequestTargetReleaseOverrideGcp + SyncReconcileRequestTargetReleaseExtendGcp$Outbound, + SyncReconcileRequestTargetReleaseExtendGcp > = z.object({ binding: z.lazy(() => - SyncReconcileRequestTargetReleaseOverrideGcpBinding$outboundSchema + SyncReconcileRequestTargetReleaseExtendGcpBinding$outboundSchema ), description: z.nullable(z.string()).optional(), grant: z.lazy(() => - SyncReconcileRequestTargetReleaseOverrideGcpGrant$outboundSchema + SyncReconcileRequestTargetReleaseExtendGcpGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestTargetReleaseOverrideGcpToJSON( - syncReconcileRequestTargetReleaseOverrideGcp: - SyncReconcileRequestTargetReleaseOverrideGcp, +export function syncReconcileRequestTargetReleaseExtendGcpToJSON( + syncReconcileRequestTargetReleaseExtendGcp: + SyncReconcileRequestTargetReleaseExtendGcp, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseOverrideGcp$outboundSchema.parse( - syncReconcileRequestTargetReleaseOverrideGcp, + SyncReconcileRequestTargetReleaseExtendGcp$outboundSchema.parse( + syncReconcileRequestTargetReleaseExtendGcp, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseOverridePlatforms$Outbound = { +export type SyncReconcileRequestTargetReleaseExtendPlatforms$Outbound = { aws?: - | Array + | Array | null | undefined; azure?: - | Array + | Array | null | undefined; gcp?: - | Array + | Array | null | undefined; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseOverridePlatforms$outboundSchema: +export const SyncReconcileRequestTargetReleaseExtendPlatforms$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseOverridePlatforms$Outbound, - SyncReconcileRequestTargetReleaseOverridePlatforms + SyncReconcileRequestTargetReleaseExtendPlatforms$Outbound, + SyncReconcileRequestTargetReleaseExtendPlatforms > = z.object({ aws: z.nullable( z.array(z.lazy(() => - SyncReconcileRequestTargetReleaseOverrideAw$outboundSchema + SyncReconcileRequestTargetReleaseExtendAw$outboundSchema )), ).optional(), azure: z.nullable( z.array(z.lazy(() => - SyncReconcileRequestTargetReleaseOverrideAzure$outboundSchema + SyncReconcileRequestTargetReleaseExtendAzure$outboundSchema )), ).optional(), gcp: z.nullable( z.array(z.lazy(() => - SyncReconcileRequestTargetReleaseOverrideGcp$outboundSchema + SyncReconcileRequestTargetReleaseExtendGcp$outboundSchema )), ).optional(), }); -export function syncReconcileRequestTargetReleaseOverridePlatformsToJSON( - syncReconcileRequestTargetReleaseOverridePlatforms: - SyncReconcileRequestTargetReleaseOverridePlatforms, +export function syncReconcileRequestTargetReleaseExtendPlatformsToJSON( + syncReconcileRequestTargetReleaseExtendPlatforms: + SyncReconcileRequestTargetReleaseExtendPlatforms, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseOverridePlatforms$outboundSchema.parse( - syncReconcileRequestTargetReleaseOverridePlatforms, + SyncReconcileRequestTargetReleaseExtendPlatforms$outboundSchema.parse( + syncReconcileRequestTargetReleaseExtendPlatforms, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseOverride$Outbound = { +export type SyncReconcileRequestTargetReleaseExtend$Outbound = { description: string; id: string; - platforms: SyncReconcileRequestTargetReleaseOverridePlatforms$Outbound; + platforms: SyncReconcileRequestTargetReleaseExtendPlatforms$Outbound; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseOverride$outboundSchema: - z.ZodType< - SyncReconcileRequestTargetReleaseOverride$Outbound, - SyncReconcileRequestTargetReleaseOverride - > = z.object({ - description: z.string(), - id: z.string(), - platforms: z.lazy(() => - SyncReconcileRequestTargetReleaseOverridePlatforms$outboundSchema - ), - }); +export const SyncReconcileRequestTargetReleaseExtend$outboundSchema: z.ZodType< + SyncReconcileRequestTargetReleaseExtend$Outbound, + SyncReconcileRequestTargetReleaseExtend +> = z.object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncReconcileRequestTargetReleaseExtendPlatforms$outboundSchema + ), +}); -export function syncReconcileRequestTargetReleaseOverrideToJSON( - syncReconcileRequestTargetReleaseOverride: - SyncReconcileRequestTargetReleaseOverride, +export function syncReconcileRequestTargetReleaseExtendToJSON( + syncReconcileRequestTargetReleaseExtend: + SyncReconcileRequestTargetReleaseExtend, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseOverride$outboundSchema.parse( - syncReconcileRequestTargetReleaseOverride, + SyncReconcileRequestTargetReleaseExtend$outboundSchema.parse( + syncReconcileRequestTargetReleaseExtend, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseOverrideUnion$Outbound = - | SyncReconcileRequestTargetReleaseOverride$Outbound +export type SyncReconcileRequestTargetReleaseExtendUnion$Outbound = + | SyncReconcileRequestTargetReleaseExtend$Outbound | string; /** @internal */ -export const SyncReconcileRequestTargetReleaseOverrideUnion$outboundSchema: +export const SyncReconcileRequestTargetReleaseExtendUnion$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseOverrideUnion$Outbound, - SyncReconcileRequestTargetReleaseOverrideUnion + SyncReconcileRequestTargetReleaseExtendUnion$Outbound, + SyncReconcileRequestTargetReleaseExtendUnion > = z.union([ - z.lazy(() => SyncReconcileRequestTargetReleaseOverride$outboundSchema), + z.lazy(() => SyncReconcileRequestTargetReleaseExtend$outboundSchema), z.string(), ]); -export function syncReconcileRequestTargetReleaseOverrideUnionToJSON( - syncReconcileRequestTargetReleaseOverrideUnion: - SyncReconcileRequestTargetReleaseOverrideUnion, +export function syncReconcileRequestTargetReleaseExtendUnionToJSON( + syncReconcileRequestTargetReleaseExtendUnion: + SyncReconcileRequestTargetReleaseExtendUnion, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseOverrideUnion$outboundSchema.parse( - syncReconcileRequestTargetReleaseOverrideUnion, + SyncReconcileRequestTargetReleaseExtendUnion$outboundSchema.parse( + syncReconcileRequestTargetReleaseExtendUnion, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseManagement2$Outbound = { - override: { +export type SyncReconcileRequestTargetReleaseManagement1$Outbound = { + extend: { [k: string]: Array< - SyncReconcileRequestTargetReleaseOverride$Outbound | string + SyncReconcileRequestTargetReleaseExtend$Outbound | string >; }; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseManagement2$outboundSchema: +export const SyncReconcileRequestTargetReleaseManagement1$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseManagement2$Outbound, - SyncReconcileRequestTargetReleaseManagement2 + SyncReconcileRequestTargetReleaseManagement1$Outbound, + SyncReconcileRequestTargetReleaseManagement1 > = z.object({ - override: z.record( + extend: z.record( z.string(), z.array(z.union([ - z.lazy(() => SyncReconcileRequestTargetReleaseOverride$outboundSchema), + z.lazy(() => SyncReconcileRequestTargetReleaseExtend$outboundSchema), z.string(), ])), ), }); -export function syncReconcileRequestTargetReleaseManagement2ToJSON( - syncReconcileRequestTargetReleaseManagement2: - SyncReconcileRequestTargetReleaseManagement2, +export function syncReconcileRequestTargetReleaseManagement1ToJSON( + syncReconcileRequestTargetReleaseManagement1: + SyncReconcileRequestTargetReleaseManagement1, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseManagement2$outboundSchema.parse( - syncReconcileRequestTargetReleaseManagement2, + SyncReconcileRequestTargetReleaseManagement1$outboundSchema.parse( + syncReconcileRequestTargetReleaseManagement1, ), ); } /** @internal */ -export type TargetReleaseExtendStateAwResource$Outbound = { +export type SyncReconcileRequestTargetReleaseManagementUnion$Outbound = + | SyncReconcileRequestTargetReleaseManagement1$Outbound + | SyncReconcileRequestTargetReleaseManagement2$Outbound + | string; + +/** @internal */ +export const SyncReconcileRequestTargetReleaseManagementUnion$outboundSchema: + z.ZodType< + SyncReconcileRequestTargetReleaseManagementUnion$Outbound, + SyncReconcileRequestTargetReleaseManagementUnion + > = z.union([ + z.lazy(() => SyncReconcileRequestTargetReleaseManagement1$outboundSchema), + z.lazy(() => SyncReconcileRequestTargetReleaseManagement2$outboundSchema), + SyncReconcileRequestTargetReleaseManagementEnum$outboundSchema, + ]); + +export function syncReconcileRequestTargetReleaseManagementUnionToJSON( + syncReconcileRequestTargetReleaseManagementUnion: + SyncReconcileRequestTargetReleaseManagementUnion, +): string { + return JSON.stringify( + SyncReconcileRequestTargetReleaseManagementUnion$outboundSchema.parse( + syncReconcileRequestTargetReleaseManagementUnion, + ), + ); +} + +/** @internal */ +export type TargetReleaseProfileStateAwResource$Outbound = { condition?: { [k: string]: { [k: string]: string } } | null | undefined; resources: Array; }; /** @internal */ -export const TargetReleaseExtendStateAwResource$outboundSchema: z.ZodType< - TargetReleaseExtendStateAwResource$Outbound, - TargetReleaseExtendStateAwResource +export const TargetReleaseProfileStateAwResource$outboundSchema: z.ZodType< + TargetReleaseProfileStateAwResource$Outbound, + TargetReleaseProfileStateAwResource > = z.object({ condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) .optional(), resources: z.array(z.string()), }); -export function targetReleaseExtendStateAwResourceToJSON( - targetReleaseExtendStateAwResource: TargetReleaseExtendStateAwResource, +export function targetReleaseProfileStateAwResourceToJSON( + targetReleaseProfileStateAwResource: TargetReleaseProfileStateAwResource, ): string { return JSON.stringify( - TargetReleaseExtendStateAwResource$outboundSchema.parse( - targetReleaseExtendStateAwResource, + TargetReleaseProfileStateAwResource$outboundSchema.parse( + targetReleaseProfileStateAwResource, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseExtendAwStack$Outbound = { +export type SyncReconcileRequestTargetReleaseProfileAwStack$Outbound = { condition?: { [k: string]: { [k: string]: string } } | null | undefined; resources: Array; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseExtendAwStack$outboundSchema: +export const SyncReconcileRequestTargetReleaseProfileAwStack$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseExtendAwStack$Outbound, - SyncReconcileRequestTargetReleaseExtendAwStack + SyncReconcileRequestTargetReleaseProfileAwStack$Outbound, + SyncReconcileRequestTargetReleaseProfileAwStack > = z.object({ condition: z.nullable( z.record(z.string(), z.record(z.string(), z.string())), @@ -20063,55 +26200,55 @@ export const SyncReconcileRequestTargetReleaseExtendAwStack$outboundSchema: resources: z.array(z.string()), }); -export function syncReconcileRequestTargetReleaseExtendAwStackToJSON( - syncReconcileRequestTargetReleaseExtendAwStack: - SyncReconcileRequestTargetReleaseExtendAwStack, +export function syncReconcileRequestTargetReleaseProfileAwStackToJSON( + syncReconcileRequestTargetReleaseProfileAwStack: + SyncReconcileRequestTargetReleaseProfileAwStack, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseExtendAwStack$outboundSchema.parse( - syncReconcileRequestTargetReleaseExtendAwStack, + SyncReconcileRequestTargetReleaseProfileAwStack$outboundSchema.parse( + syncReconcileRequestTargetReleaseProfileAwStack, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseExtendAwBinding$Outbound = { - resource?: TargetReleaseExtendStateAwResource$Outbound | undefined; - stack?: SyncReconcileRequestTargetReleaseExtendAwStack$Outbound | undefined; +export type SyncReconcileRequestTargetReleaseProfileAwBinding$Outbound = { + resource?: TargetReleaseProfileStateAwResource$Outbound | undefined; + stack?: SyncReconcileRequestTargetReleaseProfileAwStack$Outbound | undefined; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseExtendAwBinding$outboundSchema: +export const SyncReconcileRequestTargetReleaseProfileAwBinding$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseExtendAwBinding$Outbound, - SyncReconcileRequestTargetReleaseExtendAwBinding + SyncReconcileRequestTargetReleaseProfileAwBinding$Outbound, + SyncReconcileRequestTargetReleaseProfileAwBinding > = z.object({ - resource: z.lazy(() => TargetReleaseExtendStateAwResource$outboundSchema) + resource: z.lazy(() => TargetReleaseProfileStateAwResource$outboundSchema) .optional(), stack: z.lazy(() => - SyncReconcileRequestTargetReleaseExtendAwStack$outboundSchema + SyncReconcileRequestTargetReleaseProfileAwStack$outboundSchema ).optional(), }); -export function syncReconcileRequestTargetReleaseExtendAwBindingToJSON( - syncReconcileRequestTargetReleaseExtendAwBinding: - SyncReconcileRequestTargetReleaseExtendAwBinding, +export function syncReconcileRequestTargetReleaseProfileAwBindingToJSON( + syncReconcileRequestTargetReleaseProfileAwBinding: + SyncReconcileRequestTargetReleaseProfileAwBinding, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseExtendAwBinding$outboundSchema.parse( - syncReconcileRequestTargetReleaseExtendAwBinding, + SyncReconcileRequestTargetReleaseProfileAwBinding$outboundSchema.parse( + syncReconcileRequestTargetReleaseProfileAwBinding, ), ); } /** @internal */ -export const SyncReconcileRequestTargetReleaseExtendEffect$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestTargetReleaseExtendEffect, +export const SyncReconcileRequestTargetReleaseProfileEffect$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestTargetReleaseProfileEffect, ); /** @internal */ -export type SyncReconcileRequestTargetReleaseExtendAwGrant$Outbound = { +export type SyncReconcileRequestTargetReleaseProfileAwGrant$Outbound = { actions?: Array | null | undefined; dataActions?: Array | null | undefined; permissions?: Array | null | undefined; @@ -20120,10 +26257,10 @@ export type SyncReconcileRequestTargetReleaseExtendAwGrant$Outbound = { }; /** @internal */ -export const SyncReconcileRequestTargetReleaseExtendAwGrant$outboundSchema: +export const SyncReconcileRequestTargetReleaseProfileAwGrant$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseExtendAwGrant$Outbound, - SyncReconcileRequestTargetReleaseExtendAwGrant + SyncReconcileRequestTargetReleaseProfileAwGrant$Outbound, + SyncReconcileRequestTargetReleaseProfileAwGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -20132,137 +26269,139 @@ export const SyncReconcileRequestTargetReleaseExtendAwGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileRequestTargetReleaseExtendAwGrantToJSON( - syncReconcileRequestTargetReleaseExtendAwGrant: - SyncReconcileRequestTargetReleaseExtendAwGrant, +export function syncReconcileRequestTargetReleaseProfileAwGrantToJSON( + syncReconcileRequestTargetReleaseProfileAwGrant: + SyncReconcileRequestTargetReleaseProfileAwGrant, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseExtendAwGrant$outboundSchema.parse( - syncReconcileRequestTargetReleaseExtendAwGrant, + SyncReconcileRequestTargetReleaseProfileAwGrant$outboundSchema.parse( + syncReconcileRequestTargetReleaseProfileAwGrant, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseExtendAw$Outbound = { - binding: SyncReconcileRequestTargetReleaseExtendAwBinding$Outbound; +export type SyncReconcileRequestTargetReleaseProfileAw$Outbound = { + binding: SyncReconcileRequestTargetReleaseProfileAwBinding$Outbound; description?: string | null | undefined; effect?: string | undefined; - grant: SyncReconcileRequestTargetReleaseExtendAwGrant$Outbound; + grant: SyncReconcileRequestTargetReleaseProfileAwGrant$Outbound; label?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseExtendAw$outboundSchema: +export const SyncReconcileRequestTargetReleaseProfileAw$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseExtendAw$Outbound, - SyncReconcileRequestTargetReleaseExtendAw + SyncReconcileRequestTargetReleaseProfileAw$Outbound, + SyncReconcileRequestTargetReleaseProfileAw > = z.object({ binding: z.lazy(() => - SyncReconcileRequestTargetReleaseExtendAwBinding$outboundSchema + SyncReconcileRequestTargetReleaseProfileAwBinding$outboundSchema ), description: z.nullable(z.string()).optional(), - effect: SyncReconcileRequestTargetReleaseExtendEffect$outboundSchema + effect: SyncReconcileRequestTargetReleaseProfileEffect$outboundSchema .optional(), grant: z.lazy(() => - SyncReconcileRequestTargetReleaseExtendAwGrant$outboundSchema + SyncReconcileRequestTargetReleaseProfileAwGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestTargetReleaseExtendAwToJSON( - syncReconcileRequestTargetReleaseExtendAw: - SyncReconcileRequestTargetReleaseExtendAw, +export function syncReconcileRequestTargetReleaseProfileAwToJSON( + syncReconcileRequestTargetReleaseProfileAw: + SyncReconcileRequestTargetReleaseProfileAw, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseExtendAw$outboundSchema.parse( - syncReconcileRequestTargetReleaseExtendAw, + SyncReconcileRequestTargetReleaseProfileAw$outboundSchema.parse( + syncReconcileRequestTargetReleaseProfileAw, ), ); } /** @internal */ -export type TargetReleaseExtendStateAzureResource$Outbound = { +export type TargetReleaseProfileStateAzureResource$Outbound = { scope: string; }; /** @internal */ -export const TargetReleaseExtendStateAzureResource$outboundSchema: z.ZodType< - TargetReleaseExtendStateAzureResource$Outbound, - TargetReleaseExtendStateAzureResource +export const TargetReleaseProfileStateAzureResource$outboundSchema: z.ZodType< + TargetReleaseProfileStateAzureResource$Outbound, + TargetReleaseProfileStateAzureResource > = z.object({ scope: z.string(), }); -export function targetReleaseExtendStateAzureResourceToJSON( - targetReleaseExtendStateAzureResource: TargetReleaseExtendStateAzureResource, +export function targetReleaseProfileStateAzureResourceToJSON( + targetReleaseProfileStateAzureResource: + TargetReleaseProfileStateAzureResource, ): string { return JSON.stringify( - TargetReleaseExtendStateAzureResource$outboundSchema.parse( - targetReleaseExtendStateAzureResource, + TargetReleaseProfileStateAzureResource$outboundSchema.parse( + targetReleaseProfileStateAzureResource, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseExtendAzureStack$Outbound = { +export type SyncReconcileRequestTargetReleaseProfileAzureStack$Outbound = { scope: string; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseExtendAzureStack$outboundSchema: +export const SyncReconcileRequestTargetReleaseProfileAzureStack$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseExtendAzureStack$Outbound, - SyncReconcileRequestTargetReleaseExtendAzureStack + SyncReconcileRequestTargetReleaseProfileAzureStack$Outbound, + SyncReconcileRequestTargetReleaseProfileAzureStack > = z.object({ scope: z.string(), }); -export function syncReconcileRequestTargetReleaseExtendAzureStackToJSON( - syncReconcileRequestTargetReleaseExtendAzureStack: - SyncReconcileRequestTargetReleaseExtendAzureStack, +export function syncReconcileRequestTargetReleaseProfileAzureStackToJSON( + syncReconcileRequestTargetReleaseProfileAzureStack: + SyncReconcileRequestTargetReleaseProfileAzureStack, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseExtendAzureStack$outboundSchema.parse( - syncReconcileRequestTargetReleaseExtendAzureStack, + SyncReconcileRequestTargetReleaseProfileAzureStack$outboundSchema.parse( + syncReconcileRequestTargetReleaseProfileAzureStack, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseExtendAzureBinding$Outbound = { - resource?: TargetReleaseExtendStateAzureResource$Outbound | undefined; +export type SyncReconcileRequestTargetReleaseProfileAzureBinding$Outbound = { + resource?: TargetReleaseProfileStateAzureResource$Outbound | undefined; stack?: - | SyncReconcileRequestTargetReleaseExtendAzureStack$Outbound + | SyncReconcileRequestTargetReleaseProfileAzureStack$Outbound | undefined; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseExtendAzureBinding$outboundSchema: +export const SyncReconcileRequestTargetReleaseProfileAzureBinding$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseExtendAzureBinding$Outbound, - SyncReconcileRequestTargetReleaseExtendAzureBinding + SyncReconcileRequestTargetReleaseProfileAzureBinding$Outbound, + SyncReconcileRequestTargetReleaseProfileAzureBinding > = z.object({ - resource: z.lazy(() => TargetReleaseExtendStateAzureResource$outboundSchema) - .optional(), + resource: z.lazy(() => + TargetReleaseProfileStateAzureResource$outboundSchema + ).optional(), stack: z.lazy(() => - SyncReconcileRequestTargetReleaseExtendAzureStack$outboundSchema + SyncReconcileRequestTargetReleaseProfileAzureStack$outboundSchema ).optional(), }); -export function syncReconcileRequestTargetReleaseExtendAzureBindingToJSON( - syncReconcileRequestTargetReleaseExtendAzureBinding: - SyncReconcileRequestTargetReleaseExtendAzureBinding, +export function syncReconcileRequestTargetReleaseProfileAzureBindingToJSON( + syncReconcileRequestTargetReleaseProfileAzureBinding: + SyncReconcileRequestTargetReleaseProfileAzureBinding, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseExtendAzureBinding$outboundSchema.parse( - syncReconcileRequestTargetReleaseExtendAzureBinding, + SyncReconcileRequestTargetReleaseProfileAzureBinding$outboundSchema.parse( + syncReconcileRequestTargetReleaseProfileAzureBinding, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseExtendAzureGrant$Outbound = { +export type SyncReconcileRequestTargetReleaseProfileAzureGrant$Outbound = { actions?: Array | null | undefined; dataActions?: Array | null | undefined; permissions?: Array | null | undefined; @@ -20271,10 +26410,10 @@ export type SyncReconcileRequestTargetReleaseExtendAzureGrant$Outbound = { }; /** @internal */ -export const SyncReconcileRequestTargetReleaseExtendAzureGrant$outboundSchema: +export const SyncReconcileRequestTargetReleaseProfileAzureGrant$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseExtendAzureGrant$Outbound, - SyncReconcileRequestTargetReleaseExtendAzureGrant + SyncReconcileRequestTargetReleaseProfileAzureGrant$Outbound, + SyncReconcileRequestTargetReleaseProfileAzureGrant > = z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), @@ -20283,109 +26422,109 @@ export const SyncReconcileRequestTargetReleaseExtendAzureGrant$outboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileRequestTargetReleaseExtendAzureGrantToJSON( - syncReconcileRequestTargetReleaseExtendAzureGrant: - SyncReconcileRequestTargetReleaseExtendAzureGrant, +export function syncReconcileRequestTargetReleaseProfileAzureGrantToJSON( + syncReconcileRequestTargetReleaseProfileAzureGrant: + SyncReconcileRequestTargetReleaseProfileAzureGrant, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseExtendAzureGrant$outboundSchema.parse( - syncReconcileRequestTargetReleaseExtendAzureGrant, + SyncReconcileRequestTargetReleaseProfileAzureGrant$outboundSchema.parse( + syncReconcileRequestTargetReleaseProfileAzureGrant, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseExtendAzure$Outbound = { - binding: SyncReconcileRequestTargetReleaseExtendAzureBinding$Outbound; +export type SyncReconcileRequestTargetReleaseProfileAzure$Outbound = { + binding: SyncReconcileRequestTargetReleaseProfileAzureBinding$Outbound; description?: string | null | undefined; - grant: SyncReconcileRequestTargetReleaseExtendAzureGrant$Outbound; + grant: SyncReconcileRequestTargetReleaseProfileAzureGrant$Outbound; label?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseExtendAzure$outboundSchema: +export const SyncReconcileRequestTargetReleaseProfileAzure$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseExtendAzure$Outbound, - SyncReconcileRequestTargetReleaseExtendAzure + SyncReconcileRequestTargetReleaseProfileAzure$Outbound, + SyncReconcileRequestTargetReleaseProfileAzure > = z.object({ binding: z.lazy(() => - SyncReconcileRequestTargetReleaseExtendAzureBinding$outboundSchema + SyncReconcileRequestTargetReleaseProfileAzureBinding$outboundSchema ), description: z.nullable(z.string()).optional(), grant: z.lazy(() => - SyncReconcileRequestTargetReleaseExtendAzureGrant$outboundSchema + SyncReconcileRequestTargetReleaseProfileAzureGrant$outboundSchema ), label: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestTargetReleaseExtendAzureToJSON( - syncReconcileRequestTargetReleaseExtendAzure: - SyncReconcileRequestTargetReleaseExtendAzure, +export function syncReconcileRequestTargetReleaseProfileAzureToJSON( + syncReconcileRequestTargetReleaseProfileAzure: + SyncReconcileRequestTargetReleaseProfileAzure, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseExtendAzure$outboundSchema.parse( - syncReconcileRequestTargetReleaseExtendAzure, + SyncReconcileRequestTargetReleaseProfileAzure$outboundSchema.parse( + syncReconcileRequestTargetReleaseProfileAzure, ), ); } /** @internal */ -export type TargetReleaseExtendConditionStateResource$Outbound = { +export type TargetReleaseProfileConditionStateResource$Outbound = { expression: string; title: string; }; /** @internal */ -export const TargetReleaseExtendConditionStateResource$outboundSchema: +export const TargetReleaseProfileConditionStateResource$outboundSchema: z.ZodType< - TargetReleaseExtendConditionStateResource$Outbound, - TargetReleaseExtendConditionStateResource + TargetReleaseProfileConditionStateResource$Outbound, + TargetReleaseProfileConditionStateResource > = z.object({ expression: z.string(), title: z.string(), }); -export function targetReleaseExtendConditionStateResourceToJSON( - targetReleaseExtendConditionStateResource: - TargetReleaseExtendConditionStateResource, +export function targetReleaseProfileConditionStateResourceToJSON( + targetReleaseProfileConditionStateResource: + TargetReleaseProfileConditionStateResource, ): string { return JSON.stringify( - TargetReleaseExtendConditionStateResource$outboundSchema.parse( - targetReleaseExtendConditionStateResource, + TargetReleaseProfileConditionStateResource$outboundSchema.parse( + targetReleaseProfileConditionStateResource, ), ); } /** @internal */ -export type TargetReleaseExtendStateResourceConditionUnion$Outbound = - | TargetReleaseExtendConditionStateResource$Outbound +export type TargetReleaseProfileStateResourceConditionUnion$Outbound = + | TargetReleaseProfileConditionStateResource$Outbound | any; /** @internal */ -export const TargetReleaseExtendStateResourceConditionUnion$outboundSchema: +export const TargetReleaseProfileStateResourceConditionUnion$outboundSchema: z.ZodType< - TargetReleaseExtendStateResourceConditionUnion$Outbound, - TargetReleaseExtendStateResourceConditionUnion + TargetReleaseProfileStateResourceConditionUnion$Outbound, + TargetReleaseProfileStateResourceConditionUnion > = z.union([ - z.lazy(() => TargetReleaseExtendConditionStateResource$outboundSchema), + z.lazy(() => TargetReleaseProfileConditionStateResource$outboundSchema), z.any(), ]); -export function targetReleaseExtendStateResourceConditionUnionToJSON( - targetReleaseExtendStateResourceConditionUnion: - TargetReleaseExtendStateResourceConditionUnion, +export function targetReleaseProfileStateResourceConditionUnionToJSON( + targetReleaseProfileStateResourceConditionUnion: + TargetReleaseProfileStateResourceConditionUnion, ): string { return JSON.stringify( - TargetReleaseExtendStateResourceConditionUnion$outboundSchema.parse( - targetReleaseExtendStateResourceConditionUnion, + TargetReleaseProfileStateResourceConditionUnion$outboundSchema.parse( + targetReleaseProfileStateResourceConditionUnion, ), ); } /** @internal */ -export type TargetReleaseExtendStateGcpResource$Outbound = { +export type TargetReleaseProfileStateGcpResource$Outbound = { condition?: - | TargetReleaseExtendConditionStateResource$Outbound + | TargetReleaseProfileConditionStateResource$Outbound | any | null | undefined; @@ -20393,83 +26532,83 @@ export type TargetReleaseExtendStateGcpResource$Outbound = { }; /** @internal */ -export const TargetReleaseExtendStateGcpResource$outboundSchema: z.ZodType< - TargetReleaseExtendStateGcpResource$Outbound, - TargetReleaseExtendStateGcpResource +export const TargetReleaseProfileStateGcpResource$outboundSchema: z.ZodType< + TargetReleaseProfileStateGcpResource$Outbound, + TargetReleaseProfileStateGcpResource > = z.object({ condition: z.nullable( z.union([ - z.lazy(() => TargetReleaseExtendConditionStateResource$outboundSchema), + z.lazy(() => TargetReleaseProfileConditionStateResource$outboundSchema), z.any(), ]), ).optional(), scope: z.string(), }); -export function targetReleaseExtendStateGcpResourceToJSON( - targetReleaseExtendStateGcpResource: TargetReleaseExtendStateGcpResource, +export function targetReleaseProfileStateGcpResourceToJSON( + targetReleaseProfileStateGcpResource: TargetReleaseProfileStateGcpResource, ): string { return JSON.stringify( - TargetReleaseExtendStateGcpResource$outboundSchema.parse( - targetReleaseExtendStateGcpResource, + TargetReleaseProfileStateGcpResource$outboundSchema.parse( + targetReleaseProfileStateGcpResource, ), ); } /** @internal */ -export type TargetReleaseExtendConditionState$Outbound = { +export type TargetReleaseProfileConditionState$Outbound = { expression: string; title: string; }; /** @internal */ -export const TargetReleaseExtendConditionState$outboundSchema: z.ZodType< - TargetReleaseExtendConditionState$Outbound, - TargetReleaseExtendConditionState +export const TargetReleaseProfileConditionState$outboundSchema: z.ZodType< + TargetReleaseProfileConditionState$Outbound, + TargetReleaseProfileConditionState > = z.object({ expression: z.string(), title: z.string(), }); -export function targetReleaseExtendConditionStateToJSON( - targetReleaseExtendConditionState: TargetReleaseExtendConditionState, +export function targetReleaseProfileConditionStateToJSON( + targetReleaseProfileConditionState: TargetReleaseProfileConditionState, ): string { return JSON.stringify( - TargetReleaseExtendConditionState$outboundSchema.parse( - targetReleaseExtendConditionState, + TargetReleaseProfileConditionState$outboundSchema.parse( + targetReleaseProfileConditionState, ), ); } /** @internal */ -export type TargetReleaseExtendStateConditionUnion$Outbound = - | TargetReleaseExtendConditionState$Outbound +export type TargetReleaseProfileStateConditionUnion$Outbound = + | TargetReleaseProfileConditionState$Outbound | any; /** @internal */ -export const TargetReleaseExtendStateConditionUnion$outboundSchema: z.ZodType< - TargetReleaseExtendStateConditionUnion$Outbound, - TargetReleaseExtendStateConditionUnion +export const TargetReleaseProfileStateConditionUnion$outboundSchema: z.ZodType< + TargetReleaseProfileStateConditionUnion$Outbound, + TargetReleaseProfileStateConditionUnion > = z.union([ - z.lazy(() => TargetReleaseExtendConditionState$outboundSchema), + z.lazy(() => TargetReleaseProfileConditionState$outboundSchema), z.any(), ]); -export function targetReleaseExtendStateConditionUnionToJSON( - targetReleaseExtendStateConditionUnion: - TargetReleaseExtendStateConditionUnion, +export function targetReleaseProfileStateConditionUnionToJSON( + targetReleaseProfileStateConditionUnion: + TargetReleaseProfileStateConditionUnion, ): string { return JSON.stringify( - TargetReleaseExtendStateConditionUnion$outboundSchema.parse( - targetReleaseExtendStateConditionUnion, + TargetReleaseProfileStateConditionUnion$outboundSchema.parse( + targetReleaseProfileStateConditionUnion, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseExtendGcpStack$Outbound = { +export type SyncReconcileRequestTargetReleaseProfileGcpStack$Outbound = { condition?: - | TargetReleaseExtendConditionState$Outbound + | TargetReleaseProfileConditionState$Outbound | any | null | undefined; @@ -20477,1347 +26616,1682 @@ export type SyncReconcileRequestTargetReleaseExtendGcpStack$Outbound = { }; /** @internal */ -export const SyncReconcileRequestTargetReleaseExtendGcpStack$outboundSchema: +export const SyncReconcileRequestTargetReleaseProfileGcpStack$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseExtendGcpStack$Outbound, - SyncReconcileRequestTargetReleaseExtendGcpStack + SyncReconcileRequestTargetReleaseProfileGcpStack$Outbound, + SyncReconcileRequestTargetReleaseProfileGcpStack > = z.object({ condition: z.nullable( z.union([ - z.lazy(() => TargetReleaseExtendConditionState$outboundSchema), + z.lazy(() => TargetReleaseProfileConditionState$outboundSchema), z.any(), ]), ).optional(), scope: z.string(), }); -export function syncReconcileRequestTargetReleaseExtendGcpStackToJSON( - syncReconcileRequestTargetReleaseExtendGcpStack: - SyncReconcileRequestTargetReleaseExtendGcpStack, +export function syncReconcileRequestTargetReleaseProfileGcpStackToJSON( + syncReconcileRequestTargetReleaseProfileGcpStack: + SyncReconcileRequestTargetReleaseProfileGcpStack, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseExtendGcpStack$outboundSchema.parse( - syncReconcileRequestTargetReleaseExtendGcpStack, + SyncReconcileRequestTargetReleaseProfileGcpStack$outboundSchema.parse( + syncReconcileRequestTargetReleaseProfileGcpStack, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseExtendGcpBinding$Outbound = { - resource?: TargetReleaseExtendStateGcpResource$Outbound | undefined; - stack?: SyncReconcileRequestTargetReleaseExtendGcpStack$Outbound | undefined; +export type SyncReconcileRequestTargetReleaseProfileGcpBinding$Outbound = { + resource?: TargetReleaseProfileStateGcpResource$Outbound | undefined; + stack?: SyncReconcileRequestTargetReleaseProfileGcpStack$Outbound | undefined; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseExtendGcpBinding$outboundSchema: +export const SyncReconcileRequestTargetReleaseProfileGcpBinding$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseExtendGcpBinding$Outbound, - SyncReconcileRequestTargetReleaseExtendGcpBinding + SyncReconcileRequestTargetReleaseProfileGcpBinding$Outbound, + SyncReconcileRequestTargetReleaseProfileGcpBinding > = z.object({ - resource: z.lazy(() => TargetReleaseExtendStateGcpResource$outboundSchema) + resource: z.lazy(() => TargetReleaseProfileStateGcpResource$outboundSchema) .optional(), stack: z.lazy(() => - SyncReconcileRequestTargetReleaseExtendGcpStack$outboundSchema + SyncReconcileRequestTargetReleaseProfileGcpStack$outboundSchema ).optional(), }); -export function syncReconcileRequestTargetReleaseExtendGcpBindingToJSON( - syncReconcileRequestTargetReleaseExtendGcpBinding: - SyncReconcileRequestTargetReleaseExtendGcpBinding, +export function syncReconcileRequestTargetReleaseProfileGcpBindingToJSON( + syncReconcileRequestTargetReleaseProfileGcpBinding: + SyncReconcileRequestTargetReleaseProfileGcpBinding, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseExtendGcpBinding$outboundSchema.parse( - syncReconcileRequestTargetReleaseExtendGcpBinding, + SyncReconcileRequestTargetReleaseProfileGcpBinding$outboundSchema.parse( + syncReconcileRequestTargetReleaseProfileGcpBinding, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestTargetReleaseProfileGcpGrant$Outbound = { + actions?: Array | null | undefined; + dataActions?: Array | null | undefined; + permissions?: Array | null | undefined; + predefinedRoles?: Array | null | undefined; + residualPermissions?: Array | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestTargetReleaseProfileGcpGrant$outboundSchema: + z.ZodType< + SyncReconcileRequestTargetReleaseProfileGcpGrant$Outbound, + SyncReconcileRequestTargetReleaseProfileGcpGrant + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileRequestTargetReleaseProfileGcpGrantToJSON( + syncReconcileRequestTargetReleaseProfileGcpGrant: + SyncReconcileRequestTargetReleaseProfileGcpGrant, +): string { + return JSON.stringify( + SyncReconcileRequestTargetReleaseProfileGcpGrant$outboundSchema.parse( + syncReconcileRequestTargetReleaseProfileGcpGrant, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestTargetReleaseProfileGcp$Outbound = { + binding: SyncReconcileRequestTargetReleaseProfileGcpBinding$Outbound; + description?: string | null | undefined; + grant: SyncReconcileRequestTargetReleaseProfileGcpGrant$Outbound; + label?: string | null | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestTargetReleaseProfileGcp$outboundSchema: + z.ZodType< + SyncReconcileRequestTargetReleaseProfileGcp$Outbound, + SyncReconcileRequestTargetReleaseProfileGcp + > = z.object({ + binding: z.lazy(() => + SyncReconcileRequestTargetReleaseProfileGcpBinding$outboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncReconcileRequestTargetReleaseProfileGcpGrant$outboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncReconcileRequestTargetReleaseProfileGcpToJSON( + syncReconcileRequestTargetReleaseProfileGcp: + SyncReconcileRequestTargetReleaseProfileGcp, +): string { + return JSON.stringify( + SyncReconcileRequestTargetReleaseProfileGcp$outboundSchema.parse( + syncReconcileRequestTargetReleaseProfileGcp, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestTargetReleaseProfilePlatforms$Outbound = { + aws?: + | Array + | null + | undefined; + azure?: + | Array + | null + | undefined; + gcp?: + | Array + | null + | undefined; +}; + +/** @internal */ +export const SyncReconcileRequestTargetReleaseProfilePlatforms$outboundSchema: + z.ZodType< + SyncReconcileRequestTargetReleaseProfilePlatforms$Outbound, + SyncReconcileRequestTargetReleaseProfilePlatforms + > = z.object({ + aws: z.nullable( + z.array(z.lazy(() => + SyncReconcileRequestTargetReleaseProfileAw$outboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + SyncReconcileRequestTargetReleaseProfileAzure$outboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + SyncReconcileRequestTargetReleaseProfileGcp$outboundSchema + )), + ).optional(), + }); + +export function syncReconcileRequestTargetReleaseProfilePlatformsToJSON( + syncReconcileRequestTargetReleaseProfilePlatforms: + SyncReconcileRequestTargetReleaseProfilePlatforms, +): string { + return JSON.stringify( + SyncReconcileRequestTargetReleaseProfilePlatforms$outboundSchema.parse( + syncReconcileRequestTargetReleaseProfilePlatforms, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestTargetReleaseProfile$Outbound = { + description: string; + id: string; + platforms: SyncReconcileRequestTargetReleaseProfilePlatforms$Outbound; +}; + +/** @internal */ +export const SyncReconcileRequestTargetReleaseProfile$outboundSchema: z.ZodType< + SyncReconcileRequestTargetReleaseProfile$Outbound, + SyncReconcileRequestTargetReleaseProfile +> = z.object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncReconcileRequestTargetReleaseProfilePlatforms$outboundSchema + ), +}); + +export function syncReconcileRequestTargetReleaseProfileToJSON( + syncReconcileRequestTargetReleaseProfile: + SyncReconcileRequestTargetReleaseProfile, +): string { + return JSON.stringify( + SyncReconcileRequestTargetReleaseProfile$outboundSchema.parse( + syncReconcileRequestTargetReleaseProfile, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestTargetReleaseProfileUnion$Outbound = + | SyncReconcileRequestTargetReleaseProfile$Outbound + | string; + +/** @internal */ +export const SyncReconcileRequestTargetReleaseProfileUnion$outboundSchema: + z.ZodType< + SyncReconcileRequestTargetReleaseProfileUnion$Outbound, + SyncReconcileRequestTargetReleaseProfileUnion + > = z.union([ + z.lazy(() => SyncReconcileRequestTargetReleaseProfile$outboundSchema), + z.string(), + ]); + +export function syncReconcileRequestTargetReleaseProfileUnionToJSON( + syncReconcileRequestTargetReleaseProfileUnion: + SyncReconcileRequestTargetReleaseProfileUnion, +): string { + return JSON.stringify( + SyncReconcileRequestTargetReleaseProfileUnion$outboundSchema.parse( + syncReconcileRequestTargetReleaseProfileUnion, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestTargetReleasePermissions$Outbound = { + management?: + | SyncReconcileRequestTargetReleaseManagement1$Outbound + | SyncReconcileRequestTargetReleaseManagement2$Outbound + | string + | undefined; + profiles: { + [k: string]: { + [k: string]: Array< + SyncReconcileRequestTargetReleaseProfile$Outbound | string + >; + }; + }; +}; + +/** @internal */ +export const SyncReconcileRequestTargetReleasePermissions$outboundSchema: + z.ZodType< + SyncReconcileRequestTargetReleasePermissions$Outbound, + SyncReconcileRequestTargetReleasePermissions + > = z.object({ + management: z.union([ + z.lazy(() => SyncReconcileRequestTargetReleaseManagement1$outboundSchema), + z.lazy(() => SyncReconcileRequestTargetReleaseManagement2$outboundSchema), + SyncReconcileRequestTargetReleaseManagementEnum$outboundSchema, + ]).optional(), + profiles: z.record( + z.string(), + z.record( + z.string(), + z.array( + z.union([ + z.lazy(() => + SyncReconcileRequestTargetReleaseProfile$outboundSchema + ), + z.string(), + ]), + ), + ), + ), + }); + +export function syncReconcileRequestTargetReleasePermissionsToJSON( + syncReconcileRequestTargetReleasePermissions: + SyncReconcileRequestTargetReleasePermissions, +): string { + return JSON.stringify( + SyncReconcileRequestTargetReleasePermissions$outboundSchema.parse( + syncReconcileRequestTargetReleasePermissions, + ), + ); +} + +/** @internal */ +export type SyncReconcileRequestTargetReleaseConfig$Outbound = { + id: string; + type: string; + [additionalProperties: string]: unknown; +}; + +/** @internal */ +export const SyncReconcileRequestTargetReleaseConfig$outboundSchema: z.ZodType< + SyncReconcileRequestTargetReleaseConfig$Outbound, + SyncReconcileRequestTargetReleaseConfig +> = z.object({ + id: z.string(), + type: z.string(), + additionalProperties: z.record(z.string(), z.nullable(z.any())).optional(), +}).transform((v) => { + return { + ...v.additionalProperties, + ...remap$(v, { + additionalProperties: null, + }), + }; +}); + +export function syncReconcileRequestTargetReleaseConfigToJSON( + syncReconcileRequestTargetReleaseConfig: + SyncReconcileRequestTargetReleaseConfig, +): string { + return JSON.stringify( + SyncReconcileRequestTargetReleaseConfig$outboundSchema.parse( + syncReconcileRequestTargetReleaseConfig, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseExtendGcpGrant$Outbound = { - actions?: Array | null | undefined; - dataActions?: Array | null | undefined; - permissions?: Array | null | undefined; - predefinedRoles?: Array | null | undefined; - residualPermissions?: Array | null | undefined; +export type SyncReconcileRequestTargetReleaseDependency$Outbound = { + id: string; + type: string; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseExtendGcpGrant$outboundSchema: +export const SyncReconcileRequestTargetReleaseDependency$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseExtendGcpGrant$Outbound, - SyncReconcileRequestTargetReleaseExtendGcpGrant + SyncReconcileRequestTargetReleaseDependency$Outbound, + SyncReconcileRequestTargetReleaseDependency > = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), + id: z.string(), + type: z.string(), }); -export function syncReconcileRequestTargetReleaseExtendGcpGrantToJSON( - syncReconcileRequestTargetReleaseExtendGcpGrant: - SyncReconcileRequestTargetReleaseExtendGcpGrant, +export function syncReconcileRequestTargetReleaseDependencyToJSON( + syncReconcileRequestTargetReleaseDependency: + SyncReconcileRequestTargetReleaseDependency, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseExtendGcpGrant$outboundSchema.parse( - syncReconcileRequestTargetReleaseExtendGcpGrant, + SyncReconcileRequestTargetReleaseDependency$outboundSchema.parse( + syncReconcileRequestTargetReleaseDependency, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseExtendGcp$Outbound = { - binding: SyncReconcileRequestTargetReleaseExtendGcpBinding$Outbound; - description?: string | null | undefined; - grant: SyncReconcileRequestTargetReleaseExtendGcpGrant$Outbound; - label?: string | null | undefined; +export const TargetReleaseStateLifecycle$outboundSchema: z.ZodEnum< + typeof TargetReleaseStateLifecycle +> = z.enum(TargetReleaseStateLifecycle); + +/** @internal */ +export type SyncReconcileRequestTargetReleaseResources$Outbound = { + config: SyncReconcileRequestTargetReleaseConfig$Outbound; + dependencies: Array; + enabledWhen?: string | null | undefined; + lifecycle: string; + remoteAccess?: boolean | undefined; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseExtendGcp$outboundSchema: +export const SyncReconcileRequestTargetReleaseResources$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseExtendGcp$Outbound, - SyncReconcileRequestTargetReleaseExtendGcp + SyncReconcileRequestTargetReleaseResources$Outbound, + SyncReconcileRequestTargetReleaseResources > = z.object({ - binding: z.lazy(() => - SyncReconcileRequestTargetReleaseExtendGcpBinding$outboundSchema + config: z.lazy(() => + SyncReconcileRequestTargetReleaseConfig$outboundSchema ), - description: z.nullable(z.string()).optional(), - grant: z.lazy(() => - SyncReconcileRequestTargetReleaseExtendGcpGrant$outboundSchema + dependencies: z.array( + z.lazy(() => SyncReconcileRequestTargetReleaseDependency$outboundSchema), ), - label: z.nullable(z.string()).optional(), + enabledWhen: z.nullable(z.string()).optional(), + lifecycle: TargetReleaseStateLifecycle$outboundSchema, + remoteAccess: z.boolean().optional(), }); -export function syncReconcileRequestTargetReleaseExtendGcpToJSON( - syncReconcileRequestTargetReleaseExtendGcp: - SyncReconcileRequestTargetReleaseExtendGcp, +export function syncReconcileRequestTargetReleaseResourcesToJSON( + syncReconcileRequestTargetReleaseResources: + SyncReconcileRequestTargetReleaseResources, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseExtendGcp$outboundSchema.parse( - syncReconcileRequestTargetReleaseExtendGcp, + SyncReconcileRequestTargetReleaseResources$outboundSchema.parse( + syncReconcileRequestTargetReleaseResources, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseExtendPlatforms$Outbound = { - aws?: - | Array - | null - | undefined; - azure?: - | Array - | null - | undefined; - gcp?: - | Array - | null +export const SyncReconcileRequestTargetReleaseSupportedPlatform$outboundSchema: + z.ZodEnum = z.enum( + SyncReconcileRequestTargetReleaseSupportedPlatform, + ); + +/** @internal */ +export type SyncReconcileRequestTargetReleaseStack$Outbound = { + id: string; + inputs?: Array | undefined; + permissions?: + | SyncReconcileRequestTargetReleasePermissions$Outbound | undefined; + resources: { + [k: string]: SyncReconcileRequestTargetReleaseResources$Outbound; + }; + supportedPlatforms?: Array | null | undefined; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseExtendPlatforms$outboundSchema: - z.ZodType< - SyncReconcileRequestTargetReleaseExtendPlatforms$Outbound, - SyncReconcileRequestTargetReleaseExtendPlatforms - > = z.object({ - aws: z.nullable( - z.array(z.lazy(() => - SyncReconcileRequestTargetReleaseExtendAw$outboundSchema - )), - ).optional(), - azure: z.nullable( - z.array(z.lazy(() => - SyncReconcileRequestTargetReleaseExtendAzure$outboundSchema - )), - ).optional(), - gcp: z.nullable( - z.array(z.lazy(() => - SyncReconcileRequestTargetReleaseExtendGcp$outboundSchema - )), - ).optional(), - }); +export const SyncReconcileRequestTargetReleaseStack$outboundSchema: z.ZodType< + SyncReconcileRequestTargetReleaseStack$Outbound, + SyncReconcileRequestTargetReleaseStack +> = z.object({ + id: z.string(), + inputs: z.array( + z.lazy(() => SyncReconcileRequestTargetReleaseInput$outboundSchema), + ).optional(), + permissions: z.lazy(() => + SyncReconcileRequestTargetReleasePermissions$outboundSchema + ).optional(), + resources: z.record( + z.string(), + z.lazy(() => SyncReconcileRequestTargetReleaseResources$outboundSchema), + ), + supportedPlatforms: z.nullable( + z.array(SyncReconcileRequestTargetReleaseSupportedPlatform$outboundSchema), + ).optional(), +}); -export function syncReconcileRequestTargetReleaseExtendPlatformsToJSON( - syncReconcileRequestTargetReleaseExtendPlatforms: - SyncReconcileRequestTargetReleaseExtendPlatforms, +export function syncReconcileRequestTargetReleaseStackToJSON( + syncReconcileRequestTargetReleaseStack: + SyncReconcileRequestTargetReleaseStack, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseExtendPlatforms$outboundSchema.parse( - syncReconcileRequestTargetReleaseExtendPlatforms, + SyncReconcileRequestTargetReleaseStack$outboundSchema.parse( + syncReconcileRequestTargetReleaseStack, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseExtend$Outbound = { - description: string; - id: string; - platforms: SyncReconcileRequestTargetReleaseExtendPlatforms$Outbound; +export type SyncReconcileRequestTargetRelease$Outbound = { + description?: string | null | undefined; + releaseId?: string | null | undefined; + stack: SyncReconcileRequestTargetReleaseStack$Outbound; + version?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseExtend$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseExtend$Outbound, - SyncReconcileRequestTargetReleaseExtend +export const SyncReconcileRequestTargetRelease$outboundSchema: z.ZodType< + SyncReconcileRequestTargetRelease$Outbound, + SyncReconcileRequestTargetRelease > = z.object({ - description: z.string(), - id: z.string(), - platforms: z.lazy(() => - SyncReconcileRequestTargetReleaseExtendPlatforms$outboundSchema - ), + description: z.nullable(z.string()).optional(), + releaseId: z.nullable(z.string()).optional(), + stack: z.lazy(() => SyncReconcileRequestTargetReleaseStack$outboundSchema), + version: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestTargetReleaseExtendToJSON( - syncReconcileRequestTargetReleaseExtend: - SyncReconcileRequestTargetReleaseExtend, +export function syncReconcileRequestTargetReleaseToJSON( + syncReconcileRequestTargetRelease: SyncReconcileRequestTargetRelease, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseExtend$outboundSchema.parse( - syncReconcileRequestTargetReleaseExtend, + SyncReconcileRequestTargetRelease$outboundSchema.parse( + syncReconcileRequestTargetRelease, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseExtendUnion$Outbound = - | SyncReconcileRequestTargetReleaseExtend$Outbound - | string; +export type SyncReconcileRequestTargetReleaseUnion$Outbound = + | SyncReconcileRequestTargetRelease$Outbound + | any; /** @internal */ -export const SyncReconcileRequestTargetReleaseExtendUnion$outboundSchema: - z.ZodType< - SyncReconcileRequestTargetReleaseExtendUnion$Outbound, - SyncReconcileRequestTargetReleaseExtendUnion - > = z.union([ - z.lazy(() => SyncReconcileRequestTargetReleaseExtend$outboundSchema), - z.string(), - ]); +export const SyncReconcileRequestTargetReleaseUnion$outboundSchema: z.ZodType< + SyncReconcileRequestTargetReleaseUnion$Outbound, + SyncReconcileRequestTargetReleaseUnion +> = z.union([ + z.lazy(() => SyncReconcileRequestTargetRelease$outboundSchema), + z.any(), +]); -export function syncReconcileRequestTargetReleaseExtendUnionToJSON( - syncReconcileRequestTargetReleaseExtendUnion: - SyncReconcileRequestTargetReleaseExtendUnion, +export function syncReconcileRequestTargetReleaseUnionToJSON( + syncReconcileRequestTargetReleaseUnion: + SyncReconcileRequestTargetReleaseUnion, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseExtendUnion$outboundSchema.parse( - syncReconcileRequestTargetReleaseExtendUnion, + SyncReconcileRequestTargetReleaseUnion$outboundSchema.parse( + syncReconcileRequestTargetReleaseUnion, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseManagement1$Outbound = { - extend: { - [k: string]: Array< - SyncReconcileRequestTargetReleaseExtend$Outbound | string - >; - }; +export type SyncReconcileRequestState$Outbound = { + currentRelease?: + | SyncReconcileRequestCurrentRelease$Outbound + | any + | null + | undefined; + environmentInfo?: + | SyncReconcileRequestEnvironmentInfoGcp$Outbound + | SyncReconcileRequestEnvironmentInfoAzure$Outbound + | SyncReconcileRequestEnvironmentInfoLocal$Outbound + | SyncReconcileRequestEnvironmentInfoAws$Outbound + | SyncReconcileRequestEnvironmentInfoTest$Outbound + | any + | null + | undefined; + error?: SyncReconcileRequestError$Outbound | any | null | undefined; + platform: string; + protocolVersion: number; + retryRequested?: boolean | undefined; + runtimeMetadata?: + | SyncReconcileRequestRuntimeMetadata$Outbound + | any + | null + | undefined; + stackState?: SyncReconcileRequestStackState$Outbound | any | null | undefined; + status: string; + targetRelease?: + | SyncReconcileRequestTargetRelease$Outbound + | any + | null + | undefined; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseManagement1$outboundSchema: - z.ZodType< - SyncReconcileRequestTargetReleaseManagement1$Outbound, - SyncReconcileRequestTargetReleaseManagement1 - > = z.object({ - extend: z.record( - z.string(), - z.array(z.union([ - z.lazy(() => SyncReconcileRequestTargetReleaseExtend$outboundSchema), - z.string(), - ])), - ), - }); +export const SyncReconcileRequestState$outboundSchema: z.ZodType< + SyncReconcileRequestState$Outbound, + SyncReconcileRequestState +> = z.object({ + currentRelease: z.nullable( + z.union([ + z.lazy(() => SyncReconcileRequestCurrentRelease$outboundSchema), + z.any(), + ]), + ).optional(), + environmentInfo: z.nullable( + z.union([ + z.lazy(() => SyncReconcileRequestEnvironmentInfoGcp$outboundSchema), + z.lazy(() => SyncReconcileRequestEnvironmentInfoAzure$outboundSchema), + z.lazy(() => SyncReconcileRequestEnvironmentInfoLocal$outboundSchema), + z.lazy(() => SyncReconcileRequestEnvironmentInfoAws$outboundSchema), + z.lazy(() => SyncReconcileRequestEnvironmentInfoTest$outboundSchema), + z.any(), + ]), + ).optional(), + error: z.nullable( + z.union([z.lazy(() => SyncReconcileRequestError$outboundSchema), z.any()]), + ).optional(), + platform: SyncReconcileRequestPlatform$outboundSchema, + protocolVersion: z.int(), + retryRequested: z.boolean().optional(), + runtimeMetadata: z.nullable( + z.union([ + z.lazy(() => SyncReconcileRequestRuntimeMetadata$outboundSchema), + z.any(), + ]), + ).optional(), + stackState: z.nullable( + z.union([ + z.lazy(() => SyncReconcileRequestStackState$outboundSchema), + z.any(), + ]), + ).optional(), + status: StateStatus$outboundSchema, + targetRelease: z.nullable( + z.union([ + z.lazy(() => SyncReconcileRequestTargetRelease$outboundSchema), + z.any(), + ]), + ).optional(), +}); -export function syncReconcileRequestTargetReleaseManagement1ToJSON( - syncReconcileRequestTargetReleaseManagement1: - SyncReconcileRequestTargetReleaseManagement1, +export function syncReconcileRequestStateToJSON( + syncReconcileRequestState: SyncReconcileRequestState, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseManagement1$outboundSchema.parse( - syncReconcileRequestTargetReleaseManagement1, - ), + SyncReconcileRequestState$outboundSchema.parse(syncReconcileRequestState), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseManagementUnion$Outbound = - | SyncReconcileRequestTargetReleaseManagement1$Outbound - | SyncReconcileRequestTargetReleaseManagement2$Outbound - | string; +export const ResourceHeartbeatBackendEnum$outboundSchema: z.ZodEnum< + typeof ResourceHeartbeatBackendEnum +> = z.enum(ResourceHeartbeatBackendEnum); /** @internal */ -export const SyncReconcileRequestTargetReleaseManagementUnion$outboundSchema: - z.ZodType< - SyncReconcileRequestTargetReleaseManagementUnion$Outbound, - SyncReconcileRequestTargetReleaseManagementUnion - > = z.union([ - z.lazy(() => SyncReconcileRequestTargetReleaseManagement1$outboundSchema), - z.lazy(() => SyncReconcileRequestTargetReleaseManagement2$outboundSchema), - SyncReconcileRequestTargetReleaseManagementEnum$outboundSchema, - ]); +export const ResourceHeartbeatControllerPlatform$outboundSchema: z.ZodEnum< + typeof ResourceHeartbeatControllerPlatform +> = z.enum(ResourceHeartbeatControllerPlatform); -export function syncReconcileRequestTargetReleaseManagementUnionToJSON( - syncReconcileRequestTargetReleaseManagementUnion: - SyncReconcileRequestTargetReleaseManagementUnion, -): string { - return JSON.stringify( - SyncReconcileRequestTargetReleaseManagementUnion$outboundSchema.parse( - syncReconcileRequestTargetReleaseManagementUnion, - ), - ); -} +/** @internal */ +export const DataHealth72$outboundSchema: z.ZodEnum = z + .enum(DataHealth72); /** @internal */ -export type TargetReleaseProfileStateAwResource$Outbound = { - condition?: { [k: string]: { [k: string]: string } } | null | undefined; - resources: Array; +export const StatusLifecycle72$outboundSchema: z.ZodEnum< + typeof StatusLifecycle72 +> = z.enum(StatusLifecycle72); + +/** @internal */ +export type ResourceHeartbeatStatus72$Outbound = { + health: string; + lifecycle: string; + message?: string | null | undefined; }; /** @internal */ -export const TargetReleaseProfileStateAwResource$outboundSchema: z.ZodType< - TargetReleaseProfileStateAwResource$Outbound, - TargetReleaseProfileStateAwResource +export const ResourceHeartbeatStatus72$outboundSchema: z.ZodType< + ResourceHeartbeatStatus72$Outbound, + ResourceHeartbeatStatus72 > = z.object({ - condition: z.nullable(z.record(z.string(), z.record(z.string(), z.string()))) - .optional(), - resources: z.array(z.string()), + health: DataHealth72$outboundSchema, + lifecycle: StatusLifecycle72$outboundSchema, + message: z.nullable(z.string()).optional(), }); -export function targetReleaseProfileStateAwResourceToJSON( - targetReleaseProfileStateAwResource: TargetReleaseProfileStateAwResource, +export function resourceHeartbeatStatus72ToJSON( + resourceHeartbeatStatus72: ResourceHeartbeatStatus72, ): string { return JSON.stringify( - TargetReleaseProfileStateAwResource$outboundSchema.parse( - targetReleaseProfileStateAwResource, - ), + ResourceHeartbeatStatus72$outboundSchema.parse(resourceHeartbeatStatus72), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseProfileAwStack$Outbound = { - condition?: { [k: string]: { [k: string]: string } } | null | undefined; - resources: Array; +export type SyncReconcileRequestData8$Outbound = { + enabled?: boolean | null | undefined; + keyId: string; + keyOperations: Array; + keyType: string; + recoveryLevel?: string | null | undefined; + status: ResourceHeartbeatStatus72$Outbound; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseProfileAwStack$outboundSchema: - z.ZodType< - SyncReconcileRequestTargetReleaseProfileAwStack$Outbound, - SyncReconcileRequestTargetReleaseProfileAwStack - > = z.object({ - condition: z.nullable( - z.record(z.string(), z.record(z.string(), z.string())), - ).optional(), - resources: z.array(z.string()), - }); +export const SyncReconcileRequestData8$outboundSchema: z.ZodType< + SyncReconcileRequestData8$Outbound, + SyncReconcileRequestData8 +> = z.object({ + enabled: z.nullable(z.boolean()).optional(), + keyId: z.string(), + keyOperations: z.array(z.string()), + keyType: z.string(), + recoveryLevel: z.nullable(z.string()).optional(), + status: z.lazy(() => ResourceHeartbeatStatus72$outboundSchema), +}); -export function syncReconcileRequestTargetReleaseProfileAwStackToJSON( - syncReconcileRequestTargetReleaseProfileAwStack: - SyncReconcileRequestTargetReleaseProfileAwStack, +export function syncReconcileRequestData8ToJSON( + syncReconcileRequestData8: SyncReconcileRequestData8, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseProfileAwStack$outboundSchema.parse( - syncReconcileRequestTargetReleaseProfileAwStack, - ), + SyncReconcileRequestData8$outboundSchema.parse(syncReconcileRequestData8), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseProfileAwBinding$Outbound = { - resource?: TargetReleaseProfileStateAwResource$Outbound | undefined; - stack?: SyncReconcileRequestTargetReleaseProfileAwStack$Outbound | undefined; +export type DataAzureKeyVault2$Outbound = { + data: SyncReconcileRequestData8$Outbound; + provider: "azure-key-vault"; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseProfileAwBinding$outboundSchema: - z.ZodType< - SyncReconcileRequestTargetReleaseProfileAwBinding$Outbound, - SyncReconcileRequestTargetReleaseProfileAwBinding - > = z.object({ - resource: z.lazy(() => TargetReleaseProfileStateAwResource$outboundSchema) - .optional(), - stack: z.lazy(() => - SyncReconcileRequestTargetReleaseProfileAwStack$outboundSchema - ).optional(), - }); +export const DataAzureKeyVault2$outboundSchema: z.ZodType< + DataAzureKeyVault2$Outbound, + DataAzureKeyVault2 +> = z.object({ + data: z.lazy(() => SyncReconcileRequestData8$outboundSchema), + provider: z.literal("azure-key-vault"), +}); -export function syncReconcileRequestTargetReleaseProfileAwBindingToJSON( - syncReconcileRequestTargetReleaseProfileAwBinding: - SyncReconcileRequestTargetReleaseProfileAwBinding, +export function dataAzureKeyVault2ToJSON( + dataAzureKeyVault2: DataAzureKeyVault2, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseProfileAwBinding$outboundSchema.parse( - syncReconcileRequestTargetReleaseProfileAwBinding, - ), + DataAzureKeyVault2$outboundSchema.parse(dataAzureKeyVault2), ); } /** @internal */ -export const SyncReconcileRequestTargetReleaseProfileEffect$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestTargetReleaseProfileEffect, - ); +export const DataHealth71$outboundSchema: z.ZodEnum = z + .enum(DataHealth71); /** @internal */ -export type SyncReconcileRequestTargetReleaseProfileAwGrant$Outbound = { - actions?: Array | null | undefined; - dataActions?: Array | null | undefined; - permissions?: Array | null | undefined; - predefinedRoles?: Array | null | undefined; - residualPermissions?: Array | null | undefined; +export const StatusLifecycle71$outboundSchema: z.ZodEnum< + typeof StatusLifecycle71 +> = z.enum(StatusLifecycle71); + +/** @internal */ +export type ResourceHeartbeatStatus71$Outbound = { + health: string; + lifecycle: string; + message?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseProfileAwGrant$outboundSchema: - z.ZodType< - SyncReconcileRequestTargetReleaseProfileAwGrant$Outbound, - SyncReconcileRequestTargetReleaseProfileAwGrant - > = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), - }); +export const ResourceHeartbeatStatus71$outboundSchema: z.ZodType< + ResourceHeartbeatStatus71$Outbound, + ResourceHeartbeatStatus71 +> = z.object({ + health: DataHealth71$outboundSchema, + lifecycle: StatusLifecycle71$outboundSchema, + message: z.nullable(z.string()).optional(), +}); -export function syncReconcileRequestTargetReleaseProfileAwGrantToJSON( - syncReconcileRequestTargetReleaseProfileAwGrant: - SyncReconcileRequestTargetReleaseProfileAwGrant, +export function resourceHeartbeatStatus71ToJSON( + resourceHeartbeatStatus71: ResourceHeartbeatStatus71, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseProfileAwGrant$outboundSchema.parse( - syncReconcileRequestTargetReleaseProfileAwGrant, - ), + ResourceHeartbeatStatus71$outboundSchema.parse(resourceHeartbeatStatus71), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseProfileAw$Outbound = { - binding: SyncReconcileRequestTargetReleaseProfileAwBinding$Outbound; - description?: string | null | undefined; - effect?: string | undefined; - grant: SyncReconcileRequestTargetReleaseProfileAwGrant$Outbound; - label?: string | null | undefined; +export type SyncReconcileRequestData7$Outbound = { + algorithm?: string | null | undefined; + cryptoKeyName: string; + primaryState?: string | null | undefined; + primaryVersion?: string | null | undefined; + purpose: string; + status: ResourceHeartbeatStatus71$Outbound; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseProfileAw$outboundSchema: - z.ZodType< - SyncReconcileRequestTargetReleaseProfileAw$Outbound, - SyncReconcileRequestTargetReleaseProfileAw - > = z.object({ - binding: z.lazy(() => - SyncReconcileRequestTargetReleaseProfileAwBinding$outboundSchema - ), - description: z.nullable(z.string()).optional(), - effect: SyncReconcileRequestTargetReleaseProfileEffect$outboundSchema - .optional(), - grant: z.lazy(() => - SyncReconcileRequestTargetReleaseProfileAwGrant$outboundSchema - ), - label: z.nullable(z.string()).optional(), - }); +export const SyncReconcileRequestData7$outboundSchema: z.ZodType< + SyncReconcileRequestData7$Outbound, + SyncReconcileRequestData7 +> = z.object({ + algorithm: z.nullable(z.string()).optional(), + cryptoKeyName: z.string(), + primaryState: z.nullable(z.string()).optional(), + primaryVersion: z.nullable(z.string()).optional(), + purpose: z.string(), + status: z.lazy(() => ResourceHeartbeatStatus71$outboundSchema), +}); -export function syncReconcileRequestTargetReleaseProfileAwToJSON( - syncReconcileRequestTargetReleaseProfileAw: - SyncReconcileRequestTargetReleaseProfileAw, +export function syncReconcileRequestData7ToJSON( + syncReconcileRequestData7: SyncReconcileRequestData7, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseProfileAw$outboundSchema.parse( - syncReconcileRequestTargetReleaseProfileAw, - ), + SyncReconcileRequestData7$outboundSchema.parse(syncReconcileRequestData7), ); } /** @internal */ -export type TargetReleaseProfileStateAzureResource$Outbound = { - scope: string; +export type DataGcpCloudKms$Outbound = { + data: SyncReconcileRequestData7$Outbound; + provider: "gcp-cloud-kms"; }; /** @internal */ -export const TargetReleaseProfileStateAzureResource$outboundSchema: z.ZodType< - TargetReleaseProfileStateAzureResource$Outbound, - TargetReleaseProfileStateAzureResource +export const DataGcpCloudKms$outboundSchema: z.ZodType< + DataGcpCloudKms$Outbound, + DataGcpCloudKms > = z.object({ - scope: z.string(), + data: z.lazy(() => SyncReconcileRequestData7$outboundSchema), + provider: z.literal("gcp-cloud-kms"), }); -export function targetReleaseProfileStateAzureResourceToJSON( - targetReleaseProfileStateAzureResource: - TargetReleaseProfileStateAzureResource, +export function dataGcpCloudKmsToJSON( + dataGcpCloudKms: DataGcpCloudKms, ): string { - return JSON.stringify( - TargetReleaseProfileStateAzureResource$outboundSchema.parse( - targetReleaseProfileStateAzureResource, - ), + return JSON.stringify(DataGcpCloudKms$outboundSchema.parse(dataGcpCloudKms)); +} + +/** @internal */ +export const DataHealth70$outboundSchema: z.ZodEnum = z + .enum(DataHealth70); + +/** @internal */ +export const StatusLifecycle70$outboundSchema: z.ZodEnum< + typeof StatusLifecycle70 +> = z.enum(StatusLifecycle70); + +/** @internal */ +export type ResourceHeartbeatStatus70$Outbound = { + health: string; + lifecycle: string; + message?: string | null | undefined; +}; + +/** @internal */ +export const ResourceHeartbeatStatus70$outboundSchema: z.ZodType< + ResourceHeartbeatStatus70$Outbound, + ResourceHeartbeatStatus70 +> = z.object({ + health: DataHealth70$outboundSchema, + lifecycle: StatusLifecycle70$outboundSchema, + message: z.nullable(z.string()).optional(), +}); + +export function resourceHeartbeatStatus70ToJSON( + resourceHeartbeatStatus70: ResourceHeartbeatStatus70, +): string { + return JSON.stringify( + ResourceHeartbeatStatus70$outboundSchema.parse(resourceHeartbeatStatus70), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseProfileAzureStack$Outbound = { - scope: string; +export type SyncReconcileRequestData6$Outbound = { + enabled: boolean; + keyArn: string; + keySpec: string; + keyState: string; + keyUsage: string; + status: ResourceHeartbeatStatus70$Outbound; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseProfileAzureStack$outboundSchema: - z.ZodType< - SyncReconcileRequestTargetReleaseProfileAzureStack$Outbound, - SyncReconcileRequestTargetReleaseProfileAzureStack - > = z.object({ - scope: z.string(), - }); +export const SyncReconcileRequestData6$outboundSchema: z.ZodType< + SyncReconcileRequestData6$Outbound, + SyncReconcileRequestData6 +> = z.object({ + enabled: z.boolean(), + keyArn: z.string(), + keySpec: z.string(), + keyState: z.string(), + keyUsage: z.string(), + status: z.lazy(() => ResourceHeartbeatStatus70$outboundSchema), +}); -export function syncReconcileRequestTargetReleaseProfileAzureStackToJSON( - syncReconcileRequestTargetReleaseProfileAzureStack: - SyncReconcileRequestTargetReleaseProfileAzureStack, +export function syncReconcileRequestData6ToJSON( + syncReconcileRequestData6: SyncReconcileRequestData6, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseProfileAzureStack$outboundSchema.parse( - syncReconcileRequestTargetReleaseProfileAzureStack, - ), + SyncReconcileRequestData6$outboundSchema.parse(syncReconcileRequestData6), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseProfileAzureBinding$Outbound = { - resource?: TargetReleaseProfileStateAzureResource$Outbound | undefined; - stack?: - | SyncReconcileRequestTargetReleaseProfileAzureStack$Outbound - | undefined; +export type DataAwsKms$Outbound = { + data: SyncReconcileRequestData6$Outbound; + provider: "aws-kms"; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseProfileAzureBinding$outboundSchema: - z.ZodType< - SyncReconcileRequestTargetReleaseProfileAzureBinding$Outbound, - SyncReconcileRequestTargetReleaseProfileAzureBinding - > = z.object({ - resource: z.lazy(() => - TargetReleaseProfileStateAzureResource$outboundSchema - ).optional(), - stack: z.lazy(() => - SyncReconcileRequestTargetReleaseProfileAzureStack$outboundSchema - ).optional(), - }); +export const DataAwsKms$outboundSchema: z.ZodType< + DataAwsKms$Outbound, + DataAwsKms +> = z.object({ + data: z.lazy(() => SyncReconcileRequestData6$outboundSchema), + provider: z.literal("aws-kms"), +}); -export function syncReconcileRequestTargetReleaseProfileAzureBindingToJSON( - syncReconcileRequestTargetReleaseProfileAzureBinding: - SyncReconcileRequestTargetReleaseProfileAzureBinding, +export function dataAwsKmsToJSON(dataAwsKms: DataAwsKms): string { + return JSON.stringify(DataAwsKms$outboundSchema.parse(dataAwsKms)); +} + +/** @internal */ +export type SyncReconcileRequestDataUnion17$Outbound = + | DataAwsKms$Outbound + | DataGcpCloudKms$Outbound + | DataAzureKeyVault2$Outbound; + +/** @internal */ +export const SyncReconcileRequestDataUnion17$outboundSchema: z.ZodType< + SyncReconcileRequestDataUnion17$Outbound, + SyncReconcileRequestDataUnion17 +> = z.union([ + z.lazy(() => DataAwsKms$outboundSchema), + z.lazy(() => DataGcpCloudKms$outboundSchema), + z.lazy(() => DataAzureKeyVault2$outboundSchema), +]); + +export function syncReconcileRequestDataUnion17ToJSON( + syncReconcileRequestDataUnion17: SyncReconcileRequestDataUnion17, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseProfileAzureBinding$outboundSchema.parse( - syncReconcileRequestTargetReleaseProfileAzureBinding, + SyncReconcileRequestDataUnion17$outboundSchema.parse( + syncReconcileRequestDataUnion17, ), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseProfileAzureGrant$Outbound = { - actions?: Array | null | undefined; - dataActions?: Array | null | undefined; - permissions?: Array | null | undefined; - predefinedRoles?: Array | null | undefined; - residualPermissions?: Array | null | undefined; +export type DataKey$Outbound = { + data: + | DataAwsKms$Outbound + | DataGcpCloudKms$Outbound + | DataAzureKeyVault2$Outbound; + resourceType: "key"; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseProfileAzureGrant$outboundSchema: - z.ZodType< - SyncReconcileRequestTargetReleaseProfileAzureGrant$Outbound, - SyncReconcileRequestTargetReleaseProfileAzureGrant - > = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), +export const DataKey$outboundSchema: z.ZodType = z + .object({ + data: z.union([ + z.lazy(() => DataAwsKms$outboundSchema), + z.lazy(() => DataGcpCloudKms$outboundSchema), + z.lazy(() => DataAzureKeyVault2$outboundSchema), + ]), + resourceType: z.literal("key"), }); -export function syncReconcileRequestTargetReleaseProfileAzureGrantToJSON( - syncReconcileRequestTargetReleaseProfileAzureGrant: - SyncReconcileRequestTargetReleaseProfileAzureGrant, -): string { - return JSON.stringify( - SyncReconcileRequestTargetReleaseProfileAzureGrant$outboundSchema.parse( - syncReconcileRequestTargetReleaseProfileAzureGrant, - ), - ); +export function dataKeyToJSON(dataKey: DataKey): string { + return JSON.stringify(DataKey$outboundSchema.parse(dataKey)); } /** @internal */ -export type SyncReconcileRequestTargetReleaseProfileAzure$Outbound = { - binding: SyncReconcileRequestTargetReleaseProfileAzureBinding$Outbound; - description?: string | null | undefined; - grant: SyncReconcileRequestTargetReleaseProfileAzureGrant$Outbound; - label?: string | null | undefined; +export const AccessTest4$outboundSchema: z.ZodEnum = z.enum( + AccessTest4, +); + +/** @internal */ +export const AvailabilityEnum4$outboundSchema: z.ZodEnum< + typeof AvailabilityEnum4 +> = z.enum(AvailabilityEnum4); + +/** @internal */ +export const BlockerEnum4$outboundSchema: z.ZodEnum = z + .enum(BlockerEnum4); + +/** @internal */ +export const ClientApi4$outboundSchema: z.ZodEnum = z.enum( + ClientApi4, +); + +/** @internal */ +export type Model4$Outbound = { + accessTest: string; + availability: string; + blockers: Array; + clientApis: Array; + errorCode?: string | null | undefined; + publicModelId: string; + testedAt?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseProfileAzure$outboundSchema: - z.ZodType< - SyncReconcileRequestTargetReleaseProfileAzure$Outbound, - SyncReconcileRequestTargetReleaseProfileAzure - > = z.object({ - binding: z.lazy(() => - SyncReconcileRequestTargetReleaseProfileAzureBinding$outboundSchema - ), - description: z.nullable(z.string()).optional(), - grant: z.lazy(() => - SyncReconcileRequestTargetReleaseProfileAzureGrant$outboundSchema - ), - label: z.nullable(z.string()).optional(), +export const Model4$outboundSchema: z.ZodType = z + .object({ + accessTest: AccessTest4$outboundSchema, + availability: AvailabilityEnum4$outboundSchema, + blockers: z.array(BlockerEnum4$outboundSchema), + clientApis: z.array(ClientApi4$outboundSchema), + errorCode: z.nullable(z.string()).optional(), + publicModelId: z.string(), + testedAt: z.nullable(z.date().transform(v => v.toISOString())).optional(), }); -export function syncReconcileRequestTargetReleaseProfileAzureToJSON( - syncReconcileRequestTargetReleaseProfileAzure: - SyncReconcileRequestTargetReleaseProfileAzure, -): string { - return JSON.stringify( - SyncReconcileRequestTargetReleaseProfileAzure$outboundSchema.parse( - syncReconcileRequestTargetReleaseProfileAzure, - ), - ); +export function model4ToJSON(model4: Model4): string { + return JSON.stringify(Model4$outboundSchema.parse(model4)); } /** @internal */ -export type TargetReleaseProfileConditionStateResource$Outbound = { - expression: string; - title: string; +export const AvailabilitySource4$outboundSchema: z.ZodEnum< + typeof AvailabilitySource4 +> = z.enum(AvailabilitySource4); + +/** @internal */ +export type Availability4$Outbound = { + catalogRevision: string; + location?: string | null | undefined; + models: Array; + source: string; }; /** @internal */ -export const TargetReleaseProfileConditionStateResource$outboundSchema: - z.ZodType< - TargetReleaseProfileConditionStateResource$Outbound, - TargetReleaseProfileConditionStateResource - > = z.object({ - expression: z.string(), - title: z.string(), - }); +export const Availability4$outboundSchema: z.ZodType< + Availability4$Outbound, + Availability4 +> = z.object({ + catalogRevision: z.string(), + location: z.nullable(z.string()).optional(), + models: z.array(z.lazy(() => Model4$outboundSchema)), + source: AvailabilitySource4$outboundSchema, +}); -export function targetReleaseProfileConditionStateResourceToJSON( - targetReleaseProfileConditionStateResource: - TargetReleaseProfileConditionStateResource, -): string { - return JSON.stringify( - TargetReleaseProfileConditionStateResource$outboundSchema.parse( - targetReleaseProfileConditionStateResource, - ), - ); +export function availability4ToJSON(availability4: Availability4): string { + return JSON.stringify(Availability4$outboundSchema.parse(availability4)); } /** @internal */ -export type TargetReleaseProfileStateResourceConditionUnion$Outbound = - | TargetReleaseProfileConditionStateResource$Outbound - | any; +export type AvailabilityUnion$Outbound = Availability4$Outbound | any; /** @internal */ -export const TargetReleaseProfileStateResourceConditionUnion$outboundSchema: - z.ZodType< - TargetReleaseProfileStateResourceConditionUnion$Outbound, - TargetReleaseProfileStateResourceConditionUnion - > = z.union([ - z.lazy(() => TargetReleaseProfileConditionStateResource$outboundSchema), - z.any(), - ]); +export const AvailabilityUnion$outboundSchema: z.ZodType< + AvailabilityUnion$Outbound, + AvailabilityUnion +> = z.union([z.lazy(() => Availability4$outboundSchema), z.any()]); -export function targetReleaseProfileStateResourceConditionUnionToJSON( - targetReleaseProfileStateResourceConditionUnion: - TargetReleaseProfileStateResourceConditionUnion, +export function availabilityUnionToJSON( + availabilityUnion: AvailabilityUnion, ): string { return JSON.stringify( - TargetReleaseProfileStateResourceConditionUnion$outboundSchema.parse( - targetReleaseProfileStateResourceConditionUnion, - ), + AvailabilityUnion$outboundSchema.parse(availabilityUnion), ); } /** @internal */ -export type TargetReleaseProfileStateGcpResource$Outbound = { - condition?: - | TargetReleaseProfileConditionStateResource$Outbound - | any - | null - | undefined; - scope: string; +export const DataReason69$outboundSchema: z.ZodEnum = z + .enum(DataReason69); + +/** @internal */ +export const StatusSeverity69$outboundSchema: z.ZodEnum< + typeof StatusSeverity69 +> = z.enum(StatusSeverity69); + +/** @internal */ +export type DataCollectionIssue69$Outbound = { + message: string; + reason: string; + severity: string; + source: string; }; /** @internal */ -export const TargetReleaseProfileStateGcpResource$outboundSchema: z.ZodType< - TargetReleaseProfileStateGcpResource$Outbound, - TargetReleaseProfileStateGcpResource +export const DataCollectionIssue69$outboundSchema: z.ZodType< + DataCollectionIssue69$Outbound, + DataCollectionIssue69 > = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => TargetReleaseProfileConditionStateResource$outboundSchema), - z.any(), - ]), - ).optional(), - scope: z.string(), + message: z.string(), + reason: DataReason69$outboundSchema, + severity: StatusSeverity69$outboundSchema, + source: z.string(), }); -export function targetReleaseProfileStateGcpResourceToJSON( - targetReleaseProfileStateGcpResource: TargetReleaseProfileStateGcpResource, +export function dataCollectionIssue69ToJSON( + dataCollectionIssue69: DataCollectionIssue69, ): string { return JSON.stringify( - TargetReleaseProfileStateGcpResource$outboundSchema.parse( - targetReleaseProfileStateGcpResource, - ), + DataCollectionIssue69$outboundSchema.parse(dataCollectionIssue69), ); } /** @internal */ -export type TargetReleaseProfileConditionState$Outbound = { - expression: string; - title: string; +export const DataHealth69$outboundSchema: z.ZodEnum = z + .enum(DataHealth69); + +/** @internal */ +export const StatusLifecycle69$outboundSchema: z.ZodEnum< + typeof StatusLifecycle69 +> = z.enum(StatusLifecycle69); + +/** @internal */ +export type ResourceHeartbeatStatus69$Outbound = { + collectionIssues: Array; + health: string; + lifecycle: string; + message?: string | null | undefined; + partial: boolean; + stale: boolean; }; /** @internal */ -export const TargetReleaseProfileConditionState$outboundSchema: z.ZodType< - TargetReleaseProfileConditionState$Outbound, - TargetReleaseProfileConditionState +export const ResourceHeartbeatStatus69$outboundSchema: z.ZodType< + ResourceHeartbeatStatus69$Outbound, + ResourceHeartbeatStatus69 > = z.object({ - expression: z.string(), - title: z.string(), + collectionIssues: z.array(z.lazy(() => DataCollectionIssue69$outboundSchema)), + health: DataHealth69$outboundSchema, + lifecycle: StatusLifecycle69$outboundSchema, + message: z.nullable(z.string()).optional(), + partial: z.boolean(), + stale: z.boolean(), }); -export function targetReleaseProfileConditionStateToJSON( - targetReleaseProfileConditionState: TargetReleaseProfileConditionState, +export function resourceHeartbeatStatus69ToJSON( + resourceHeartbeatStatus69: ResourceHeartbeatStatus69, ): string { return JSON.stringify( - TargetReleaseProfileConditionState$outboundSchema.parse( - targetReleaseProfileConditionState, - ), + ResourceHeartbeatStatus69$outboundSchema.parse(resourceHeartbeatStatus69), ); } /** @internal */ -export type TargetReleaseProfileStateConditionUnion$Outbound = - | TargetReleaseProfileConditionState$Outbound - | any; +export type DataExternal$Outbound = { + availability?: Availability4$Outbound | any | null | undefined; + provider: string; + status: ResourceHeartbeatStatus69$Outbound; + backend: "external"; +}; /** @internal */ -export const TargetReleaseProfileStateConditionUnion$outboundSchema: z.ZodType< - TargetReleaseProfileStateConditionUnion$Outbound, - TargetReleaseProfileStateConditionUnion -> = z.union([ - z.lazy(() => TargetReleaseProfileConditionState$outboundSchema), - z.any(), -]); +export const DataExternal$outboundSchema: z.ZodType< + DataExternal$Outbound, + DataExternal +> = z.object({ + availability: z.nullable( + z.union([z.lazy(() => Availability4$outboundSchema), z.any()]), + ).optional(), + provider: z.string(), + status: z.lazy(() => ResourceHeartbeatStatus69$outboundSchema), + backend: z.literal("external"), +}); -export function targetReleaseProfileStateConditionUnionToJSON( - targetReleaseProfileStateConditionUnion: - TargetReleaseProfileStateConditionUnion, -): string { - return JSON.stringify( - TargetReleaseProfileStateConditionUnion$outboundSchema.parse( - targetReleaseProfileStateConditionUnion, - ), - ); +export function dataExternalToJSON(dataExternal: DataExternal): string { + return JSON.stringify(DataExternal$outboundSchema.parse(dataExternal)); } /** @internal */ -export type SyncReconcileRequestTargetReleaseProfileGcpStack$Outbound = { - condition?: - | TargetReleaseProfileConditionState$Outbound - | any - | null - | undefined; - scope: string; -}; +export const AccessTest3$outboundSchema: z.ZodEnum = z.enum( + AccessTest3, +); /** @internal */ -export const SyncReconcileRequestTargetReleaseProfileGcpStack$outboundSchema: - z.ZodType< - SyncReconcileRequestTargetReleaseProfileGcpStack$Outbound, - SyncReconcileRequestTargetReleaseProfileGcpStack - > = z.object({ - condition: z.nullable( - z.union([ - z.lazy(() => TargetReleaseProfileConditionState$outboundSchema), - z.any(), - ]), - ).optional(), - scope: z.string(), - }); +export const AvailabilityEnum3$outboundSchema: z.ZodEnum< + typeof AvailabilityEnum3 +> = z.enum(AvailabilityEnum3); -export function syncReconcileRequestTargetReleaseProfileGcpStackToJSON( - syncReconcileRequestTargetReleaseProfileGcpStack: - SyncReconcileRequestTargetReleaseProfileGcpStack, -): string { - return JSON.stringify( - SyncReconcileRequestTargetReleaseProfileGcpStack$outboundSchema.parse( - syncReconcileRequestTargetReleaseProfileGcpStack, - ), - ); -} +/** @internal */ +export const BlockerEnum3$outboundSchema: z.ZodEnum = z + .enum(BlockerEnum3); /** @internal */ -export type SyncReconcileRequestTargetReleaseProfileGcpBinding$Outbound = { - resource?: TargetReleaseProfileStateGcpResource$Outbound | undefined; - stack?: SyncReconcileRequestTargetReleaseProfileGcpStack$Outbound | undefined; +export const ClientApi3$outboundSchema: z.ZodEnum = z.enum( + ClientApi3, +); + +/** @internal */ +export type Model3$Outbound = { + accessTest: string; + availability: string; + blockers: Array; + clientApis: Array; + errorCode?: string | null | undefined; + publicModelId: string; + testedAt?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseProfileGcpBinding$outboundSchema: - z.ZodType< - SyncReconcileRequestTargetReleaseProfileGcpBinding$Outbound, - SyncReconcileRequestTargetReleaseProfileGcpBinding - > = z.object({ - resource: z.lazy(() => TargetReleaseProfileStateGcpResource$outboundSchema) - .optional(), - stack: z.lazy(() => - SyncReconcileRequestTargetReleaseProfileGcpStack$outboundSchema - ).optional(), +export const Model3$outboundSchema: z.ZodType = z + .object({ + accessTest: AccessTest3$outboundSchema, + availability: AvailabilityEnum3$outboundSchema, + blockers: z.array(BlockerEnum3$outboundSchema), + clientApis: z.array(ClientApi3$outboundSchema), + errorCode: z.nullable(z.string()).optional(), + publicModelId: z.string(), + testedAt: z.nullable(z.date().transform(v => v.toISOString())).optional(), }); -export function syncReconcileRequestTargetReleaseProfileGcpBindingToJSON( - syncReconcileRequestTargetReleaseProfileGcpBinding: - SyncReconcileRequestTargetReleaseProfileGcpBinding, -): string { - return JSON.stringify( - SyncReconcileRequestTargetReleaseProfileGcpBinding$outboundSchema.parse( - syncReconcileRequestTargetReleaseProfileGcpBinding, - ), - ); +export function model3ToJSON(model3: Model3): string { + return JSON.stringify(Model3$outboundSchema.parse(model3)); } /** @internal */ -export type SyncReconcileRequestTargetReleaseProfileGcpGrant$Outbound = { - actions?: Array | null | undefined; - dataActions?: Array | null | undefined; - permissions?: Array | null | undefined; - predefinedRoles?: Array | null | undefined; - residualPermissions?: Array | null | undefined; +export const AvailabilitySource3$outboundSchema: z.ZodEnum< + typeof AvailabilitySource3 +> = z.enum(AvailabilitySource3); + +/** @internal */ +export type Availability3$Outbound = { + catalogRevision: string; + location?: string | null | undefined; + models: Array; + source: string; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseProfileGcpGrant$outboundSchema: - z.ZodType< - SyncReconcileRequestTargetReleaseProfileGcpGrant$Outbound, - SyncReconcileRequestTargetReleaseProfileGcpGrant - > = z.object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), - }); +export const Availability3$outboundSchema: z.ZodType< + Availability3$Outbound, + Availability3 +> = z.object({ + catalogRevision: z.string(), + location: z.nullable(z.string()).optional(), + models: z.array(z.lazy(() => Model3$outboundSchema)), + source: AvailabilitySource3$outboundSchema, +}); -export function syncReconcileRequestTargetReleaseProfileGcpGrantToJSON( - syncReconcileRequestTargetReleaseProfileGcpGrant: - SyncReconcileRequestTargetReleaseProfileGcpGrant, -): string { - return JSON.stringify( - SyncReconcileRequestTargetReleaseProfileGcpGrant$outboundSchema.parse( - syncReconcileRequestTargetReleaseProfileGcpGrant, - ), - ); +export function availability3ToJSON(availability3: Availability3): string { + return JSON.stringify(Availability3$outboundSchema.parse(availability3)); } /** @internal */ -export type SyncReconcileRequestTargetReleaseProfileGcp$Outbound = { - binding: SyncReconcileRequestTargetReleaseProfileGcpBinding$Outbound; - description?: string | null | undefined; - grant: SyncReconcileRequestTargetReleaseProfileGcpGrant$Outbound; - label?: string | null | undefined; +export const DataReason68$outboundSchema: z.ZodEnum = z + .enum(DataReason68); + +/** @internal */ +export const StatusSeverity68$outboundSchema: z.ZodEnum< + typeof StatusSeverity68 +> = z.enum(StatusSeverity68); + +/** @internal */ +export type DataCollectionIssue68$Outbound = { + message: string; + reason: string; + severity: string; + source: string; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseProfileGcp$outboundSchema: - z.ZodType< - SyncReconcileRequestTargetReleaseProfileGcp$Outbound, - SyncReconcileRequestTargetReleaseProfileGcp - > = z.object({ - binding: z.lazy(() => - SyncReconcileRequestTargetReleaseProfileGcpBinding$outboundSchema - ), - description: z.nullable(z.string()).optional(), - grant: z.lazy(() => - SyncReconcileRequestTargetReleaseProfileGcpGrant$outboundSchema - ), - label: z.nullable(z.string()).optional(), - }); +export const DataCollectionIssue68$outboundSchema: z.ZodType< + DataCollectionIssue68$Outbound, + DataCollectionIssue68 +> = z.object({ + message: z.string(), + reason: DataReason68$outboundSchema, + severity: StatusSeverity68$outboundSchema, + source: z.string(), +}); -export function syncReconcileRequestTargetReleaseProfileGcpToJSON( - syncReconcileRequestTargetReleaseProfileGcp: - SyncReconcileRequestTargetReleaseProfileGcp, +export function dataCollectionIssue68ToJSON( + dataCollectionIssue68: DataCollectionIssue68, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseProfileGcp$outboundSchema.parse( - syncReconcileRequestTargetReleaseProfileGcp, - ), + DataCollectionIssue68$outboundSchema.parse(dataCollectionIssue68), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseProfilePlatforms$Outbound = { - aws?: - | Array - | null - | undefined; - azure?: - | Array - | null - | undefined; - gcp?: - | Array - | null - | undefined; +export const DataHealth68$outboundSchema: z.ZodEnum = z + .enum(DataHealth68); + +/** @internal */ +export const StatusLifecycle68$outboundSchema: z.ZodEnum< + typeof StatusLifecycle68 +> = z.enum(StatusLifecycle68); + +/** @internal */ +export type ResourceHeartbeatStatus68$Outbound = { + collectionIssues: Array; + health: string; + lifecycle: string; + message?: string | null | undefined; + partial: boolean; + stale: boolean; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseProfilePlatforms$outboundSchema: - z.ZodType< - SyncReconcileRequestTargetReleaseProfilePlatforms$Outbound, - SyncReconcileRequestTargetReleaseProfilePlatforms - > = z.object({ - aws: z.nullable( - z.array(z.lazy(() => - SyncReconcileRequestTargetReleaseProfileAw$outboundSchema - )), - ).optional(), - azure: z.nullable( - z.array(z.lazy(() => - SyncReconcileRequestTargetReleaseProfileAzure$outboundSchema - )), - ).optional(), - gcp: z.nullable( - z.array(z.lazy(() => - SyncReconcileRequestTargetReleaseProfileGcp$outboundSchema - )), - ).optional(), - }); +export const ResourceHeartbeatStatus68$outboundSchema: z.ZodType< + ResourceHeartbeatStatus68$Outbound, + ResourceHeartbeatStatus68 +> = z.object({ + collectionIssues: z.array(z.lazy(() => DataCollectionIssue68$outboundSchema)), + health: DataHealth68$outboundSchema, + lifecycle: StatusLifecycle68$outboundSchema, + message: z.nullable(z.string()).optional(), + partial: z.boolean(), + stale: z.boolean(), +}); -export function syncReconcileRequestTargetReleaseProfilePlatformsToJSON( - syncReconcileRequestTargetReleaseProfilePlatforms: - SyncReconcileRequestTargetReleaseProfilePlatforms, +export function resourceHeartbeatStatus68ToJSON( + resourceHeartbeatStatus68: ResourceHeartbeatStatus68, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseProfilePlatforms$outboundSchema.parse( - syncReconcileRequestTargetReleaseProfilePlatforms, - ), + ResourceHeartbeatStatus68$outboundSchema.parse(resourceHeartbeatStatus68), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseProfile$Outbound = { - description: string; - id: string; - platforms: SyncReconcileRequestTargetReleaseProfilePlatforms$Outbound; +export type DataAzureFoundry$Outbound = { + accountName: string; + availability: Availability3$Outbound; + endpoint?: string | null | undefined; + location?: string | null | undefined; + resourceGroup?: string | null | undefined; + status: ResourceHeartbeatStatus68$Outbound; + backend: "azureFoundry"; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseProfile$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseProfile$Outbound, - SyncReconcileRequestTargetReleaseProfile +export const DataAzureFoundry$outboundSchema: z.ZodType< + DataAzureFoundry$Outbound, + DataAzureFoundry > = z.object({ - description: z.string(), - id: z.string(), - platforms: z.lazy(() => - SyncReconcileRequestTargetReleaseProfilePlatforms$outboundSchema - ), + accountName: z.string(), + availability: z.lazy(() => Availability3$outboundSchema), + endpoint: z.nullable(z.string()).optional(), + location: z.nullable(z.string()).optional(), + resourceGroup: z.nullable(z.string()).optional(), + status: z.lazy(() => ResourceHeartbeatStatus68$outboundSchema), + backend: z.literal("azureFoundry"), }); -export function syncReconcileRequestTargetReleaseProfileToJSON( - syncReconcileRequestTargetReleaseProfile: - SyncReconcileRequestTargetReleaseProfile, +export function dataAzureFoundryToJSON( + dataAzureFoundry: DataAzureFoundry, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseProfile$outboundSchema.parse( - syncReconcileRequestTargetReleaseProfile, - ), + DataAzureFoundry$outboundSchema.parse(dataAzureFoundry), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseProfileUnion$Outbound = - | SyncReconcileRequestTargetReleaseProfile$Outbound - | string; +export const AccessTest2$outboundSchema: z.ZodEnum = z.enum( + AccessTest2, +); /** @internal */ -export const SyncReconcileRequestTargetReleaseProfileUnion$outboundSchema: - z.ZodType< - SyncReconcileRequestTargetReleaseProfileUnion$Outbound, - SyncReconcileRequestTargetReleaseProfileUnion - > = z.union([ - z.lazy(() => SyncReconcileRequestTargetReleaseProfile$outboundSchema), - z.string(), - ]); +export const AvailabilityEnum2$outboundSchema: z.ZodEnum< + typeof AvailabilityEnum2 +> = z.enum(AvailabilityEnum2); -export function syncReconcileRequestTargetReleaseProfileUnionToJSON( - syncReconcileRequestTargetReleaseProfileUnion: - SyncReconcileRequestTargetReleaseProfileUnion, -): string { - return JSON.stringify( - SyncReconcileRequestTargetReleaseProfileUnion$outboundSchema.parse( - syncReconcileRequestTargetReleaseProfileUnion, - ), - ); +/** @internal */ +export const BlockerEnum2$outboundSchema: z.ZodEnum = z + .enum(BlockerEnum2); + +/** @internal */ +export const ClientApi2$outboundSchema: z.ZodEnum = z.enum( + ClientApi2, +); + +/** @internal */ +export type Model2$Outbound = { + accessTest: string; + availability: string; + blockers: Array; + clientApis: Array; + errorCode?: string | null | undefined; + publicModelId: string; + testedAt?: string | null | undefined; +}; + +/** @internal */ +export const Model2$outboundSchema: z.ZodType = z + .object({ + accessTest: AccessTest2$outboundSchema, + availability: AvailabilityEnum2$outboundSchema, + blockers: z.array(BlockerEnum2$outboundSchema), + clientApis: z.array(ClientApi2$outboundSchema), + errorCode: z.nullable(z.string()).optional(), + publicModelId: z.string(), + testedAt: z.nullable(z.date().transform(v => v.toISOString())).optional(), + }); + +export function model2ToJSON(model2: Model2): string { + return JSON.stringify(Model2$outboundSchema.parse(model2)); } /** @internal */ -export type SyncReconcileRequestTargetReleasePermissions$Outbound = { - management?: - | SyncReconcileRequestTargetReleaseManagement1$Outbound - | SyncReconcileRequestTargetReleaseManagement2$Outbound - | string - | undefined; - profiles: { - [k: string]: { - [k: string]: Array< - SyncReconcileRequestTargetReleaseProfile$Outbound | string - >; - }; - }; +export const AvailabilitySource2$outboundSchema: z.ZodEnum< + typeof AvailabilitySource2 +> = z.enum(AvailabilitySource2); + +/** @internal */ +export type Availability2$Outbound = { + catalogRevision: string; + location?: string | null | undefined; + models: Array; + source: string; +}; + +/** @internal */ +export const Availability2$outboundSchema: z.ZodType< + Availability2$Outbound, + Availability2 +> = z.object({ + catalogRevision: z.string(), + location: z.nullable(z.string()).optional(), + models: z.array(z.lazy(() => Model2$outboundSchema)), + source: AvailabilitySource2$outboundSchema, +}); + +export function availability2ToJSON(availability2: Availability2): string { + return JSON.stringify(Availability2$outboundSchema.parse(availability2)); +} + +/** @internal */ +export const DataReason67$outboundSchema: z.ZodEnum = z + .enum(DataReason67); + +/** @internal */ +export const StatusSeverity67$outboundSchema: z.ZodEnum< + typeof StatusSeverity67 +> = z.enum(StatusSeverity67); + +/** @internal */ +export type DataCollectionIssue67$Outbound = { + message: string; + reason: string; + severity: string; + source: string; }; /** @internal */ -export const SyncReconcileRequestTargetReleasePermissions$outboundSchema: - z.ZodType< - SyncReconcileRequestTargetReleasePermissions$Outbound, - SyncReconcileRequestTargetReleasePermissions - > = z.object({ - management: z.union([ - z.lazy(() => SyncReconcileRequestTargetReleaseManagement1$outboundSchema), - z.lazy(() => SyncReconcileRequestTargetReleaseManagement2$outboundSchema), - SyncReconcileRequestTargetReleaseManagementEnum$outboundSchema, - ]).optional(), - profiles: z.record( - z.string(), - z.record( - z.string(), - z.array( - z.union([ - z.lazy(() => - SyncReconcileRequestTargetReleaseProfile$outboundSchema - ), - z.string(), - ]), - ), - ), - ), - }); +export const DataCollectionIssue67$outboundSchema: z.ZodType< + DataCollectionIssue67$Outbound, + DataCollectionIssue67 +> = z.object({ + message: z.string(), + reason: DataReason67$outboundSchema, + severity: StatusSeverity67$outboundSchema, + source: z.string(), +}); -export function syncReconcileRequestTargetReleasePermissionsToJSON( - syncReconcileRequestTargetReleasePermissions: - SyncReconcileRequestTargetReleasePermissions, +export function dataCollectionIssue67ToJSON( + dataCollectionIssue67: DataCollectionIssue67, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleasePermissions$outboundSchema.parse( - syncReconcileRequestTargetReleasePermissions, - ), + DataCollectionIssue67$outboundSchema.parse(dataCollectionIssue67), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseConfig$Outbound = { - id: string; - type: string; - [additionalProperties: string]: unknown; +export const DataHealth67$outboundSchema: z.ZodEnum = z + .enum(DataHealth67); + +/** @internal */ +export const StatusLifecycle67$outboundSchema: z.ZodEnum< + typeof StatusLifecycle67 +> = z.enum(StatusLifecycle67); + +/** @internal */ +export type ResourceHeartbeatStatus67$Outbound = { + collectionIssues: Array; + health: string; + lifecycle: string; + message?: string | null | undefined; + partial: boolean; + stale: boolean; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseConfig$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseConfig$Outbound, - SyncReconcileRequestTargetReleaseConfig +export const ResourceHeartbeatStatus67$outboundSchema: z.ZodType< + ResourceHeartbeatStatus67$Outbound, + ResourceHeartbeatStatus67 > = z.object({ - id: z.string(), - type: z.string(), - additionalProperties: z.record(z.string(), z.nullable(z.any())).optional(), -}).transform((v) => { - return { - ...v.additionalProperties, - ...remap$(v, { - additionalProperties: null, - }), - }; + collectionIssues: z.array(z.lazy(() => DataCollectionIssue67$outboundSchema)), + health: DataHealth67$outboundSchema, + lifecycle: StatusLifecycle67$outboundSchema, + message: z.nullable(z.string()).optional(), + partial: z.boolean(), + stale: z.boolean(), }); -export function syncReconcileRequestTargetReleaseConfigToJSON( - syncReconcileRequestTargetReleaseConfig: - SyncReconcileRequestTargetReleaseConfig, +export function resourceHeartbeatStatus67ToJSON( + resourceHeartbeatStatus67: ResourceHeartbeatStatus67, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseConfig$outboundSchema.parse( - syncReconcileRequestTargetReleaseConfig, - ), + ResourceHeartbeatStatus67$outboundSchema.parse(resourceHeartbeatStatus67), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseDependency$Outbound = { - id: string; - type: string; +export type DataGcpVertex$Outbound = { + availability: Availability2$Outbound; + location: string; + project: string; + status: ResourceHeartbeatStatus67$Outbound; + backend: "gcpVertex"; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseDependency$outboundSchema: - z.ZodType< - SyncReconcileRequestTargetReleaseDependency$Outbound, - SyncReconcileRequestTargetReleaseDependency - > = z.object({ - id: z.string(), - type: z.string(), - }); +export const DataGcpVertex$outboundSchema: z.ZodType< + DataGcpVertex$Outbound, + DataGcpVertex +> = z.object({ + availability: z.lazy(() => Availability2$outboundSchema), + location: z.string(), + project: z.string(), + status: z.lazy(() => ResourceHeartbeatStatus67$outboundSchema), + backend: z.literal("gcpVertex"), +}); -export function syncReconcileRequestTargetReleaseDependencyToJSON( - syncReconcileRequestTargetReleaseDependency: - SyncReconcileRequestTargetReleaseDependency, -): string { - return JSON.stringify( - SyncReconcileRequestTargetReleaseDependency$outboundSchema.parse( - syncReconcileRequestTargetReleaseDependency, - ), - ); +export function dataGcpVertexToJSON(dataGcpVertex: DataGcpVertex): string { + return JSON.stringify(DataGcpVertex$outboundSchema.parse(dataGcpVertex)); } /** @internal */ -export const TargetReleaseStateLifecycle$outboundSchema: z.ZodEnum< - typeof TargetReleaseStateLifecycle -> = z.enum(TargetReleaseStateLifecycle); +export const AccessTest1$outboundSchema: z.ZodEnum = z.enum( + AccessTest1, +); /** @internal */ -export type SyncReconcileRequestTargetReleaseResources$Outbound = { - config: SyncReconcileRequestTargetReleaseConfig$Outbound; - dependencies: Array; - lifecycle: string; - remoteAccess?: boolean | undefined; +export const AvailabilityEnum1$outboundSchema: z.ZodEnum< + typeof AvailabilityEnum1 +> = z.enum(AvailabilityEnum1); + +/** @internal */ +export const BlockerEnum1$outboundSchema: z.ZodEnum = z + .enum(BlockerEnum1); + +/** @internal */ +export const ClientApi1$outboundSchema: z.ZodEnum = z.enum( + ClientApi1, +); + +/** @internal */ +export type Model1$Outbound = { + accessTest: string; + availability: string; + blockers: Array; + clientApis: Array; + errorCode?: string | null | undefined; + publicModelId: string; + testedAt?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseResources$outboundSchema: - z.ZodType< - SyncReconcileRequestTargetReleaseResources$Outbound, - SyncReconcileRequestTargetReleaseResources - > = z.object({ - config: z.lazy(() => - SyncReconcileRequestTargetReleaseConfig$outboundSchema - ), - dependencies: z.array( - z.lazy(() => SyncReconcileRequestTargetReleaseDependency$outboundSchema), - ), - lifecycle: TargetReleaseStateLifecycle$outboundSchema, - remoteAccess: z.boolean().optional(), +export const Model1$outboundSchema: z.ZodType = z + .object({ + accessTest: AccessTest1$outboundSchema, + availability: AvailabilityEnum1$outboundSchema, + blockers: z.array(BlockerEnum1$outboundSchema), + clientApis: z.array(ClientApi1$outboundSchema), + errorCode: z.nullable(z.string()).optional(), + publicModelId: z.string(), + testedAt: z.nullable(z.date().transform(v => v.toISOString())).optional(), }); -export function syncReconcileRequestTargetReleaseResourcesToJSON( - syncReconcileRequestTargetReleaseResources: - SyncReconcileRequestTargetReleaseResources, -): string { - return JSON.stringify( - SyncReconcileRequestTargetReleaseResources$outboundSchema.parse( - syncReconcileRequestTargetReleaseResources, - ), - ); +export function model1ToJSON(model1: Model1): string { + return JSON.stringify(Model1$outboundSchema.parse(model1)); } /** @internal */ -export const SyncReconcileRequestTargetReleaseSupportedPlatform$outboundSchema: - z.ZodEnum = z.enum( - SyncReconcileRequestTargetReleaseSupportedPlatform, - ); +export const AvailabilitySource1$outboundSchema: z.ZodEnum< + typeof AvailabilitySource1 +> = z.enum(AvailabilitySource1); /** @internal */ -export type SyncReconcileRequestTargetReleaseStack$Outbound = { - id: string; - inputs?: Array | undefined; - permissions?: - | SyncReconcileRequestTargetReleasePermissions$Outbound - | undefined; - resources: { - [k: string]: SyncReconcileRequestTargetReleaseResources$Outbound; - }; - supportedPlatforms?: Array | null | undefined; +export type Availability1$Outbound = { + catalogRevision: string; + location?: string | null | undefined; + models: Array; + source: string; }; /** @internal */ -export const SyncReconcileRequestTargetReleaseStack$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseStack$Outbound, - SyncReconcileRequestTargetReleaseStack +export const Availability1$outboundSchema: z.ZodType< + Availability1$Outbound, + Availability1 > = z.object({ - id: z.string(), - inputs: z.array( - z.lazy(() => SyncReconcileRequestTargetReleaseInput$outboundSchema), - ).optional(), - permissions: z.lazy(() => - SyncReconcileRequestTargetReleasePermissions$outboundSchema - ).optional(), - resources: z.record( - z.string(), - z.lazy(() => SyncReconcileRequestTargetReleaseResources$outboundSchema), - ), - supportedPlatforms: z.nullable( - z.array(SyncReconcileRequestTargetReleaseSupportedPlatform$outboundSchema), - ).optional(), + catalogRevision: z.string(), + location: z.nullable(z.string()).optional(), + models: z.array(z.lazy(() => Model1$outboundSchema)), + source: AvailabilitySource1$outboundSchema, }); -export function syncReconcileRequestTargetReleaseStackToJSON( - syncReconcileRequestTargetReleaseStack: - SyncReconcileRequestTargetReleaseStack, -): string { - return JSON.stringify( - SyncReconcileRequestTargetReleaseStack$outboundSchema.parse( - syncReconcileRequestTargetReleaseStack, - ), - ); +export function availability1ToJSON(availability1: Availability1): string { + return JSON.stringify(Availability1$outboundSchema.parse(availability1)); } /** @internal */ -export type SyncReconcileRequestTargetRelease$Outbound = { - description?: string | null | undefined; - releaseId?: string | null | undefined; - stack: SyncReconcileRequestTargetReleaseStack$Outbound; - version?: string | null | undefined; +export const DataReason66$outboundSchema: z.ZodEnum = z + .enum(DataReason66); + +/** @internal */ +export const StatusSeverity66$outboundSchema: z.ZodEnum< + typeof StatusSeverity66 +> = z.enum(StatusSeverity66); + +/** @internal */ +export type DataCollectionIssue66$Outbound = { + message: string; + reason: string; + severity: string; + source: string; }; /** @internal */ -export const SyncReconcileRequestTargetRelease$outboundSchema: z.ZodType< - SyncReconcileRequestTargetRelease$Outbound, - SyncReconcileRequestTargetRelease +export const DataCollectionIssue66$outboundSchema: z.ZodType< + DataCollectionIssue66$Outbound, + DataCollectionIssue66 > = z.object({ - description: z.nullable(z.string()).optional(), - releaseId: z.nullable(z.string()).optional(), - stack: z.lazy(() => SyncReconcileRequestTargetReleaseStack$outboundSchema), - version: z.nullable(z.string()).optional(), + message: z.string(), + reason: DataReason66$outboundSchema, + severity: StatusSeverity66$outboundSchema, + source: z.string(), }); -export function syncReconcileRequestTargetReleaseToJSON( - syncReconcileRequestTargetRelease: SyncReconcileRequestTargetRelease, +export function dataCollectionIssue66ToJSON( + dataCollectionIssue66: DataCollectionIssue66, ): string { return JSON.stringify( - SyncReconcileRequestTargetRelease$outboundSchema.parse( - syncReconcileRequestTargetRelease, - ), + DataCollectionIssue66$outboundSchema.parse(dataCollectionIssue66), ); } /** @internal */ -export type SyncReconcileRequestTargetReleaseUnion$Outbound = - | SyncReconcileRequestTargetRelease$Outbound - | any; +export const DataHealth66$outboundSchema: z.ZodEnum = z + .enum(DataHealth66); /** @internal */ -export const SyncReconcileRequestTargetReleaseUnion$outboundSchema: z.ZodType< - SyncReconcileRequestTargetReleaseUnion$Outbound, - SyncReconcileRequestTargetReleaseUnion -> = z.union([ - z.lazy(() => SyncReconcileRequestTargetRelease$outboundSchema), - z.any(), -]); +export const StatusLifecycle66$outboundSchema: z.ZodEnum< + typeof StatusLifecycle66 +> = z.enum(StatusLifecycle66); -export function syncReconcileRequestTargetReleaseUnionToJSON( - syncReconcileRequestTargetReleaseUnion: - SyncReconcileRequestTargetReleaseUnion, +/** @internal */ +export type ResourceHeartbeatStatus66$Outbound = { + collectionIssues: Array; + health: string; + lifecycle: string; + message?: string | null | undefined; + partial: boolean; + stale: boolean; +}; + +/** @internal */ +export const ResourceHeartbeatStatus66$outboundSchema: z.ZodType< + ResourceHeartbeatStatus66$Outbound, + ResourceHeartbeatStatus66 +> = z.object({ + collectionIssues: z.array(z.lazy(() => DataCollectionIssue66$outboundSchema)), + health: DataHealth66$outboundSchema, + lifecycle: StatusLifecycle66$outboundSchema, + message: z.nullable(z.string()).optional(), + partial: z.boolean(), + stale: z.boolean(), +}); + +export function resourceHeartbeatStatus66ToJSON( + resourceHeartbeatStatus66: ResourceHeartbeatStatus66, ): string { return JSON.stringify( - SyncReconcileRequestTargetReleaseUnion$outboundSchema.parse( - syncReconcileRequestTargetReleaseUnion, - ), + ResourceHeartbeatStatus66$outboundSchema.parse(resourceHeartbeatStatus66), ); } /** @internal */ -export type SyncReconcileRequestState$Outbound = { - currentRelease?: - | SyncReconcileRequestCurrentRelease$Outbound - | any - | null - | undefined; - environmentInfo?: - | SyncReconcileRequestEnvironmentInfoGcp$Outbound - | SyncReconcileRequestEnvironmentInfoAzure$Outbound - | SyncReconcileRequestEnvironmentInfoLocal$Outbound - | SyncReconcileRequestEnvironmentInfoAws$Outbound - | SyncReconcileRequestEnvironmentInfoTest$Outbound - | any - | null - | undefined; - error?: SyncReconcileRequestError$Outbound | any | null | undefined; - platform: string; - protocolVersion: number; - retryRequested?: boolean | undefined; - runtimeMetadata?: - | SyncReconcileRequestRuntimeMetadata$Outbound - | any - | null - | undefined; - stackState?: SyncReconcileRequestStackState$Outbound | any | null | undefined; - status: string; - targetRelease?: - | SyncReconcileRequestTargetRelease$Outbound - | any - | null - | undefined; +export type DataAwsBedrock$Outbound = { + availability: Availability1$Outbound; + region: string; + status: ResourceHeartbeatStatus66$Outbound; + backend: "awsBedrock"; }; /** @internal */ -export const SyncReconcileRequestState$outboundSchema: z.ZodType< - SyncReconcileRequestState$Outbound, - SyncReconcileRequestState +export const DataAwsBedrock$outboundSchema: z.ZodType< + DataAwsBedrock$Outbound, + DataAwsBedrock > = z.object({ - currentRelease: z.nullable( - z.union([ - z.lazy(() => SyncReconcileRequestCurrentRelease$outboundSchema), - z.any(), - ]), - ).optional(), - environmentInfo: z.nullable( - z.union([ - z.lazy(() => SyncReconcileRequestEnvironmentInfoGcp$outboundSchema), - z.lazy(() => SyncReconcileRequestEnvironmentInfoAzure$outboundSchema), - z.lazy(() => SyncReconcileRequestEnvironmentInfoLocal$outboundSchema), - z.lazy(() => SyncReconcileRequestEnvironmentInfoAws$outboundSchema), - z.lazy(() => SyncReconcileRequestEnvironmentInfoTest$outboundSchema), - z.any(), - ]), - ).optional(), - error: z.nullable( - z.union([z.lazy(() => SyncReconcileRequestError$outboundSchema), z.any()]), - ).optional(), - platform: SyncReconcileRequestPlatform$outboundSchema, - protocolVersion: z.int(), - retryRequested: z.boolean().optional(), - runtimeMetadata: z.nullable( - z.union([ - z.lazy(() => SyncReconcileRequestRuntimeMetadata$outboundSchema), - z.any(), - ]), - ).optional(), - stackState: z.nullable( - z.union([ - z.lazy(() => SyncReconcileRequestStackState$outboundSchema), - z.any(), - ]), - ).optional(), - status: StateStatus$outboundSchema, - targetRelease: z.nullable( - z.union([ - z.lazy(() => SyncReconcileRequestTargetRelease$outboundSchema), - z.any(), - ]), - ).optional(), + availability: z.lazy(() => Availability1$outboundSchema), + region: z.string(), + status: z.lazy(() => ResourceHeartbeatStatus66$outboundSchema), + backend: z.literal("awsBedrock"), }); -export function syncReconcileRequestStateToJSON( - syncReconcileRequestState: SyncReconcileRequestState, +export function dataAwsBedrockToJSON(dataAwsBedrock: DataAwsBedrock): string { + return JSON.stringify(DataAwsBedrock$outboundSchema.parse(dataAwsBedrock)); +} + +/** @internal */ +export type SyncReconcileRequestDataUnion16$Outbound = + | DataAwsBedrock$Outbound + | DataGcpVertex$Outbound + | DataAzureFoundry$Outbound + | DataExternal$Outbound; + +/** @internal */ +export const SyncReconcileRequestDataUnion16$outboundSchema: z.ZodType< + SyncReconcileRequestDataUnion16$Outbound, + SyncReconcileRequestDataUnion16 +> = z.union([ + z.lazy(() => DataAwsBedrock$outboundSchema), + z.lazy(() => DataGcpVertex$outboundSchema), + z.lazy(() => DataAzureFoundry$outboundSchema), + z.lazy(() => DataExternal$outboundSchema), +]); + +export function syncReconcileRequestDataUnion16ToJSON( + syncReconcileRequestDataUnion16: SyncReconcileRequestDataUnion16, ): string { return JSON.stringify( - SyncReconcileRequestState$outboundSchema.parse(syncReconcileRequestState), + SyncReconcileRequestDataUnion16$outboundSchema.parse( + syncReconcileRequestDataUnion16, + ), ); } /** @internal */ -export const ResourceHeartbeatBackendEnum$outboundSchema: z.ZodEnum< - typeof ResourceHeartbeatBackendEnum -> = z.enum(ResourceHeartbeatBackendEnum); +export type DataAi$Outbound = { + data: + | DataAwsBedrock$Outbound + | DataGcpVertex$Outbound + | DataAzureFoundry$Outbound + | DataExternal$Outbound; + resourceType: "ai"; +}; /** @internal */ -export const ResourceHeartbeatControllerPlatform$outboundSchema: z.ZodEnum< - typeof ResourceHeartbeatControllerPlatform -> = z.enum(ResourceHeartbeatControllerPlatform); +export const DataAi$outboundSchema: z.ZodType = z + .object({ + data: z.union([ + z.lazy(() => DataAwsBedrock$outboundSchema), + z.lazy(() => DataGcpVertex$outboundSchema), + z.lazy(() => DataAzureFoundry$outboundSchema), + z.lazy(() => DataExternal$outboundSchema), + ]), + resourceType: z.literal("ai"), + }); + +export function dataAiToJSON(dataAi: DataAi): string { + return JSON.stringify(DataAi$outboundSchema.parse(dataAi)); +} /** @internal */ export const DataReason65$outboundSchema: z.ZodEnum = z @@ -22835,43 +29309,32 @@ export function involvedObjectUnion10ToJSON( } /** @internal */ -export type SyncReconcileRequestSource10$Outbound = { +export type SourceEvent10$Outbound = { component?: string | null | undefined; host?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestSource10$outboundSchema: z.ZodType< - SyncReconcileRequestSource10$Outbound, - SyncReconcileRequestSource10 +export const SourceEvent10$outboundSchema: z.ZodType< + SourceEvent10$Outbound, + SourceEvent10 > = z.object({ component: z.nullable(z.string()).optional(), host: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestSource10ToJSON( - syncReconcileRequestSource10: SyncReconcileRequestSource10, -): string { - return JSON.stringify( - SyncReconcileRequestSource10$outboundSchema.parse( - syncReconcileRequestSource10, - ), - ); +export function sourceEvent10ToJSON(sourceEvent10: SourceEvent10): string { + return JSON.stringify(SourceEvent10$outboundSchema.parse(sourceEvent10)); } /** @internal */ -export type SourceUnion10$Outbound = - | SyncReconcileRequestSource10$Outbound - | any; +export type SourceUnion10$Outbound = SourceEvent10$Outbound | any; /** @internal */ export const SourceUnion10$outboundSchema: z.ZodType< SourceUnion10$Outbound, SourceUnion10 -> = z.union([ - z.lazy(() => SyncReconcileRequestSource10$outboundSchema), - z.any(), -]); +> = z.union([z.lazy(() => SourceEvent10$outboundSchema), z.any()]); export function sourceUnion10ToJSON(sourceUnion10: SourceUnion10): string { return JSON.stringify(SourceUnion10$outboundSchema.parse(sourceUnion10)); @@ -22887,7 +29350,7 @@ export type SyncReconcileRequestEvent13$Outbound = { message: string; raw?: any | null | undefined; reason: string; - source?: SyncReconcileRequestSource10$Outbound | any | null | undefined; + source?: SourceEvent10$Outbound | any | null | undefined; type?: string | null | undefined; }; @@ -22909,10 +29372,7 @@ export const SyncReconcileRequestEvent13$outboundSchema: z.ZodType< raw: z.nullable(z.any()).optional(), reason: z.string(), source: z.nullable( - z.union([ - z.lazy(() => SyncReconcileRequestSource10$outboundSchema), - z.any(), - ]), + z.union([z.lazy(() => SourceEvent10$outboundSchema), z.any()]), ).optional(), type: z.nullable(z.string()).optional(), }); @@ -25675,7 +32135,7 @@ export function resourceHeartbeatStatus39ToJSON( } /** @internal */ -export type DataAzureKeyVault$Outbound = { +export type DataAzureKeyVault1$Outbound = { accessPolicyCount: number; location?: string | null | undefined; name: string; @@ -25697,9 +32157,9 @@ export type DataAzureKeyVault$Outbound = { }; /** @internal */ -export const DataAzureKeyVault$outboundSchema: z.ZodType< - DataAzureKeyVault$Outbound, - DataAzureKeyVault +export const DataAzureKeyVault1$outboundSchema: z.ZodType< + DataAzureKeyVault1$Outbound, + DataAzureKeyVault1 > = z.object({ accessPolicyCount: z.int(), location: z.nullable(z.string()).optional(), @@ -25721,11 +32181,11 @@ export const DataAzureKeyVault$outboundSchema: z.ZodType< backend: z.literal("azureKeyVault"), }); -export function dataAzureKeyVaultToJSON( - dataAzureKeyVault: DataAzureKeyVault, +export function dataAzureKeyVault1ToJSON( + dataAzureKeyVault1: DataAzureKeyVault1, ): string { return JSON.stringify( - DataAzureKeyVault$outboundSchema.parse(dataAzureKeyVault), + DataAzureKeyVault1$outboundSchema.parse(dataAzureKeyVault1), ); } @@ -25964,7 +32424,7 @@ export function dataAwsParameterStoreToJSON( export type SyncReconcileRequestDataUnion9$Outbound = | DataAwsParameterStore$Outbound | DataGcpSecretManager$Outbound - | DataAzureKeyVault$Outbound + | DataAzureKeyVault1$Outbound | DataKubernetesSecret$Outbound | DataLocal9$Outbound; @@ -25975,7 +32435,7 @@ export const SyncReconcileRequestDataUnion9$outboundSchema: z.ZodType< > = z.union([ z.lazy(() => DataAwsParameterStore$outboundSchema), z.lazy(() => DataGcpSecretManager$outboundSchema), - z.lazy(() => DataAzureKeyVault$outboundSchema), + z.lazy(() => DataAzureKeyVault1$outboundSchema), z.lazy(() => DataKubernetesSecret$outboundSchema), z.lazy(() => DataLocal9$outboundSchema), ]); @@ -25995,7 +32455,7 @@ export type DataVault$Outbound = { data: | DataAwsParameterStore$Outbound | DataGcpSecretManager$Outbound - | DataAzureKeyVault$Outbound + | DataAzureKeyVault1$Outbound | DataKubernetesSecret$Outbound | DataLocal9$Outbound; resourceType: "vault"; @@ -26009,7 +32469,7 @@ export const DataVault$outboundSchema: z.ZodType< data: z.union([ z.lazy(() => DataAwsParameterStore$outboundSchema), z.lazy(() => DataGcpSecretManager$outboundSchema), - z.lazy(() => DataAzureKeyVault$outboundSchema), + z.lazy(() => DataAzureKeyVault1$outboundSchema), z.lazy(() => DataKubernetesSecret$outboundSchema), z.lazy(() => DataLocal9$outboundSchema), ]), @@ -27759,41 +34219,32 @@ export function involvedObjectUnion9ToJSON( } /** @internal */ -export type SyncReconcileRequestSource9$Outbound = { +export type SourceEvent9$Outbound = { component?: string | null | undefined; host?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestSource9$outboundSchema: z.ZodType< - SyncReconcileRequestSource9$Outbound, - SyncReconcileRequestSource9 +export const SourceEvent9$outboundSchema: z.ZodType< + SourceEvent9$Outbound, + SourceEvent9 > = z.object({ component: z.nullable(z.string()).optional(), host: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestSource9ToJSON( - syncReconcileRequestSource9: SyncReconcileRequestSource9, -): string { - return JSON.stringify( - SyncReconcileRequestSource9$outboundSchema.parse( - syncReconcileRequestSource9, - ), - ); +export function sourceEvent9ToJSON(sourceEvent9: SourceEvent9): string { + return JSON.stringify(SourceEvent9$outboundSchema.parse(sourceEvent9)); } /** @internal */ -export type SourceUnion9$Outbound = SyncReconcileRequestSource9$Outbound | any; +export type SourceUnion9$Outbound = SourceEvent9$Outbound | any; /** @internal */ export const SourceUnion9$outboundSchema: z.ZodType< SourceUnion9$Outbound, SourceUnion9 -> = z.union([ - z.lazy(() => SyncReconcileRequestSource9$outboundSchema), - z.any(), -]); +> = z.union([z.lazy(() => SourceEvent9$outboundSchema), z.any()]); export function sourceUnion9ToJSON(sourceUnion9: SourceUnion9): string { return JSON.stringify(SourceUnion9$outboundSchema.parse(sourceUnion9)); @@ -27809,7 +34260,7 @@ export type SyncReconcileRequestEvent12$Outbound = { message: string; raw?: any | null | undefined; reason: string; - source?: SyncReconcileRequestSource9$Outbound | any | null | undefined; + source?: SourceEvent9$Outbound | any | null | undefined; type?: string | null | undefined; }; @@ -27831,10 +34282,7 @@ export const SyncReconcileRequestEvent12$outboundSchema: z.ZodType< raw: z.nullable(z.any()).optional(), reason: z.string(), source: z.nullable( - z.union([ - z.lazy(() => SyncReconcileRequestSource9$outboundSchema), - z.any(), - ]), + z.union([z.lazy(() => SourceEvent9$outboundSchema), z.any()]), ).optional(), type: z.nullable(z.string()).optional(), }); @@ -28652,7 +35100,7 @@ export function capacityBlockerUnion4ToJSON( } /** @internal */ -export type Blocker4$Outbound = { +export type DrainProgressBlocker4$Outbound = { reason: string; replicaId: string; schedulingMode: string; @@ -28661,17 +35109,23 @@ export type Blocker4$Outbound = { }; /** @internal */ -export const Blocker4$outboundSchema: z.ZodType = z - .object({ - reason: z.string(), - replicaId: z.string(), - schedulingMode: z.string(), - state: z.string(), - workloadName: z.string(), - }); +export const DrainProgressBlocker4$outboundSchema: z.ZodType< + DrainProgressBlocker4$Outbound, + DrainProgressBlocker4 +> = z.object({ + reason: z.string(), + replicaId: z.string(), + schedulingMode: z.string(), + state: z.string(), + workloadName: z.string(), +}); -export function blocker4ToJSON(blocker4: Blocker4): string { - return JSON.stringify(Blocker4$outboundSchema.parse(blocker4)); +export function drainProgressBlocker4ToJSON( + drainProgressBlocker4: DrainProgressBlocker4, +): string { + return JSON.stringify( + DrainProgressBlocker4$outboundSchema.parse(drainProgressBlocker4), + ); } /** @internal */ @@ -28681,7 +35135,7 @@ export const DrainProgressStatus4$outboundSchema: z.ZodEnum< /** @internal */ export type DrainProgress4$Outbound = { - blockers?: Array | undefined; + blockers?: Array | undefined; drainDeadlineAt?: string | null | undefined; drainRequestedAt?: string | null | undefined; drainedAt?: string | null | undefined; @@ -28697,7 +35151,8 @@ export const DrainProgress4$outboundSchema: z.ZodType< DrainProgress4$Outbound, DrainProgress4 > = z.object({ - blockers: z.array(z.lazy(() => Blocker4$outboundSchema)).optional(), + blockers: z.array(z.lazy(() => DrainProgressBlocker4$outboundSchema)) + .optional(), drainDeadlineAt: z.nullable(z.string()).optional(), drainRequestedAt: z.nullable(z.string()).optional(), drainedAt: z.nullable(z.string()).optional(), @@ -29181,7 +35636,7 @@ export function capacityBlockerUnion3ToJSON( } /** @internal */ -export type Blocker3$Outbound = { +export type DrainProgressBlocker3$Outbound = { reason: string; replicaId: string; schedulingMode: string; @@ -29190,17 +35645,23 @@ export type Blocker3$Outbound = { }; /** @internal */ -export const Blocker3$outboundSchema: z.ZodType = z - .object({ - reason: z.string(), - replicaId: z.string(), - schedulingMode: z.string(), - state: z.string(), - workloadName: z.string(), - }); +export const DrainProgressBlocker3$outboundSchema: z.ZodType< + DrainProgressBlocker3$Outbound, + DrainProgressBlocker3 +> = z.object({ + reason: z.string(), + replicaId: z.string(), + schedulingMode: z.string(), + state: z.string(), + workloadName: z.string(), +}); -export function blocker3ToJSON(blocker3: Blocker3): string { - return JSON.stringify(Blocker3$outboundSchema.parse(blocker3)); +export function drainProgressBlocker3ToJSON( + drainProgressBlocker3: DrainProgressBlocker3, +): string { + return JSON.stringify( + DrainProgressBlocker3$outboundSchema.parse(drainProgressBlocker3), + ); } /** @internal */ @@ -29210,7 +35671,7 @@ export const DrainProgressStatus3$outboundSchema: z.ZodEnum< /** @internal */ export type DrainProgress3$Outbound = { - blockers?: Array | undefined; + blockers?: Array | undefined; drainDeadlineAt?: string | null | undefined; drainRequestedAt?: string | null | undefined; drainedAt?: string | null | undefined; @@ -29226,7 +35687,8 @@ export const DrainProgress3$outboundSchema: z.ZodType< DrainProgress3$Outbound, DrainProgress3 > = z.object({ - blockers: z.array(z.lazy(() => Blocker3$outboundSchema)).optional(), + blockers: z.array(z.lazy(() => DrainProgressBlocker3$outboundSchema)) + .optional(), drainDeadlineAt: z.nullable(z.string()).optional(), drainRequestedAt: z.nullable(z.string()).optional(), drainedAt: z.nullable(z.string()).optional(), @@ -29660,7 +36122,7 @@ export function capacityBlockerUnion2ToJSON( } /** @internal */ -export type Blocker2$Outbound = { +export type DrainProgressBlocker2$Outbound = { reason: string; replicaId: string; schedulingMode: string; @@ -29669,17 +36131,23 @@ export type Blocker2$Outbound = { }; /** @internal */ -export const Blocker2$outboundSchema: z.ZodType = z - .object({ - reason: z.string(), - replicaId: z.string(), - schedulingMode: z.string(), - state: z.string(), - workloadName: z.string(), - }); +export const DrainProgressBlocker2$outboundSchema: z.ZodType< + DrainProgressBlocker2$Outbound, + DrainProgressBlocker2 +> = z.object({ + reason: z.string(), + replicaId: z.string(), + schedulingMode: z.string(), + state: z.string(), + workloadName: z.string(), +}); -export function blocker2ToJSON(blocker2: Blocker2): string { - return JSON.stringify(Blocker2$outboundSchema.parse(blocker2)); +export function drainProgressBlocker2ToJSON( + drainProgressBlocker2: DrainProgressBlocker2, +): string { + return JSON.stringify( + DrainProgressBlocker2$outboundSchema.parse(drainProgressBlocker2), + ); } /** @internal */ @@ -29689,7 +36157,7 @@ export const DrainProgressStatus2$outboundSchema: z.ZodEnum< /** @internal */ export type DrainProgress2$Outbound = { - blockers?: Array | undefined; + blockers?: Array | undefined; drainDeadlineAt?: string | null | undefined; drainRequestedAt?: string | null | undefined; drainedAt?: string | null | undefined; @@ -29705,7 +36173,8 @@ export const DrainProgress2$outboundSchema: z.ZodType< DrainProgress2$Outbound, DrainProgress2 > = z.object({ - blockers: z.array(z.lazy(() => Blocker2$outboundSchema)).optional(), + blockers: z.array(z.lazy(() => DrainProgressBlocker2$outboundSchema)) + .optional(), drainDeadlineAt: z.nullable(z.string()).optional(), drainRequestedAt: z.nullable(z.string()).optional(), drainedAt: z.nullable(z.string()).optional(), @@ -30137,7 +36606,7 @@ export function capacityBlockerUnion1ToJSON( } /** @internal */ -export type Blocker1$Outbound = { +export type DrainProgressBlocker1$Outbound = { reason: string; replicaId: string; schedulingMode: string; @@ -30146,17 +36615,23 @@ export type Blocker1$Outbound = { }; /** @internal */ -export const Blocker1$outboundSchema: z.ZodType = z - .object({ - reason: z.string(), - replicaId: z.string(), - schedulingMode: z.string(), - state: z.string(), - workloadName: z.string(), - }); +export const DrainProgressBlocker1$outboundSchema: z.ZodType< + DrainProgressBlocker1$Outbound, + DrainProgressBlocker1 +> = z.object({ + reason: z.string(), + replicaId: z.string(), + schedulingMode: z.string(), + state: z.string(), + workloadName: z.string(), +}); -export function blocker1ToJSON(blocker1: Blocker1): string { - return JSON.stringify(Blocker1$outboundSchema.parse(blocker1)); +export function drainProgressBlocker1ToJSON( + drainProgressBlocker1: DrainProgressBlocker1, +): string { + return JSON.stringify( + DrainProgressBlocker1$outboundSchema.parse(drainProgressBlocker1), + ); } /** @internal */ @@ -30166,7 +36641,7 @@ export const DrainProgressStatus1$outboundSchema: z.ZodEnum< /** @internal */ export type DrainProgress1$Outbound = { - blockers?: Array | undefined; + blockers?: Array | undefined; drainDeadlineAt?: string | null | undefined; drainRequestedAt?: string | null | undefined; drainedAt?: string | null | undefined; @@ -30182,7 +36657,8 @@ export const DrainProgress1$outboundSchema: z.ZodType< DrainProgress1$Outbound, DrainProgress1 > = z.object({ - blockers: z.array(z.lazy(() => Blocker1$outboundSchema)).optional(), + blockers: z.array(z.lazy(() => DrainProgressBlocker1$outboundSchema)) + .optional(), drainDeadlineAt: z.nullable(z.string()).optional(), drainRequestedAt: z.nullable(z.string()).optional(), drainedAt: z.nullable(z.string()).optional(), @@ -31070,41 +37546,32 @@ export function involvedObjectUnion8ToJSON( } /** @internal */ -export type SyncReconcileRequestSource8$Outbound = { +export type SourceEvent8$Outbound = { component?: string | null | undefined; host?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestSource8$outboundSchema: z.ZodType< - SyncReconcileRequestSource8$Outbound, - SyncReconcileRequestSource8 +export const SourceEvent8$outboundSchema: z.ZodType< + SourceEvent8$Outbound, + SourceEvent8 > = z.object({ component: z.nullable(z.string()).optional(), host: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestSource8ToJSON( - syncReconcileRequestSource8: SyncReconcileRequestSource8, -): string { - return JSON.stringify( - SyncReconcileRequestSource8$outboundSchema.parse( - syncReconcileRequestSource8, - ), - ); +export function sourceEvent8ToJSON(sourceEvent8: SourceEvent8): string { + return JSON.stringify(SourceEvent8$outboundSchema.parse(sourceEvent8)); } /** @internal */ -export type SourceUnion8$Outbound = SyncReconcileRequestSource8$Outbound | any; +export type SourceUnion8$Outbound = SourceEvent8$Outbound | any; /** @internal */ export const SourceUnion8$outboundSchema: z.ZodType< SourceUnion8$Outbound, SourceUnion8 -> = z.union([ - z.lazy(() => SyncReconcileRequestSource8$outboundSchema), - z.any(), -]); +> = z.union([z.lazy(() => SourceEvent8$outboundSchema), z.any()]); export function sourceUnion8ToJSON(sourceUnion8: SourceUnion8): string { return JSON.stringify(SourceUnion8$outboundSchema.parse(sourceUnion8)); @@ -31120,7 +37587,7 @@ export type SyncReconcileRequestEvent10$Outbound = { message: string; raw?: any | null | undefined; reason: string; - source?: SyncReconcileRequestSource8$Outbound | any | null | undefined; + source?: SourceEvent8$Outbound | any | null | undefined; type?: string | null | undefined; }; @@ -31142,10 +37609,7 @@ export const SyncReconcileRequestEvent10$outboundSchema: z.ZodType< raw: z.nullable(z.any()).optional(), reason: z.string(), source: z.nullable( - z.union([ - z.lazy(() => SyncReconcileRequestSource8$outboundSchema), - z.any(), - ]), + z.union([z.lazy(() => SourceEvent8$outboundSchema), z.any()]), ).optional(), type: z.nullable(z.string()).optional(), }); @@ -31752,41 +38216,32 @@ export function involvedObjectUnion7ToJSON( } /** @internal */ -export type SyncReconcileRequestSource7$Outbound = { +export type SourceEvent7$Outbound = { component?: string | null | undefined; host?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestSource7$outboundSchema: z.ZodType< - SyncReconcileRequestSource7$Outbound, - SyncReconcileRequestSource7 +export const SourceEvent7$outboundSchema: z.ZodType< + SourceEvent7$Outbound, + SourceEvent7 > = z.object({ component: z.nullable(z.string()).optional(), host: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestSource7ToJSON( - syncReconcileRequestSource7: SyncReconcileRequestSource7, -): string { - return JSON.stringify( - SyncReconcileRequestSource7$outboundSchema.parse( - syncReconcileRequestSource7, - ), - ); +export function sourceEvent7ToJSON(sourceEvent7: SourceEvent7): string { + return JSON.stringify(SourceEvent7$outboundSchema.parse(sourceEvent7)); } /** @internal */ -export type SourceUnion7$Outbound = SyncReconcileRequestSource7$Outbound | any; +export type SourceUnion7$Outbound = SourceEvent7$Outbound | any; /** @internal */ export const SourceUnion7$outboundSchema: z.ZodType< SourceUnion7$Outbound, SourceUnion7 -> = z.union([ - z.lazy(() => SyncReconcileRequestSource7$outboundSchema), - z.any(), -]); +> = z.union([z.lazy(() => SourceEvent7$outboundSchema), z.any()]); export function sourceUnion7ToJSON(sourceUnion7: SourceUnion7): string { return JSON.stringify(SourceUnion7$outboundSchema.parse(sourceUnion7)); @@ -31804,7 +38259,7 @@ export type SyncReconcileRequestEvent9$Outbound = { message: string; raw?: any | null | undefined; reason: string; - source?: SyncReconcileRequestSource7$Outbound | any | null | undefined; + source?: SourceEvent7$Outbound | any | null | undefined; type?: string | null | undefined; }; @@ -31828,10 +38283,7 @@ export const SyncReconcileRequestEvent9$outboundSchema: z.ZodType< raw: z.nullable(z.any()).optional(), reason: z.string(), source: z.nullable( - z.union([ - z.lazy(() => SyncReconcileRequestSource7$outboundSchema), - z.any(), - ]), + z.union([z.lazy(() => SourceEvent7$outboundSchema), z.any()]), ).optional(), type: z.nullable(z.string()).optional(), }); @@ -31935,6 +38387,7 @@ export type DataMachines1$Outbound = { horizonStatusMessage?: string | null | undefined; horizonStatusReason?: string | null | undefined; latestUpdateTimestamp: string; + observedImage?: string | null | undefined; status: ResourceHeartbeatStatus16$Outbound; unavailableInstances: number; backend: "machines"; @@ -31958,6 +38411,7 @@ export const DataMachines1$outboundSchema: z.ZodType< horizonStatusMessage: z.nullable(z.string()).optional(), horizonStatusReason: z.nullable(z.string()).optional(), latestUpdateTimestamp: z.string(), + observedImage: z.nullable(z.string()).optional(), status: z.lazy(() => ResourceHeartbeatStatus16$outboundSchema), unavailableInstances: z.int(), backend: z.literal("machines"), @@ -32165,41 +38619,32 @@ export function involvedObjectUnion6ToJSON( } /** @internal */ -export type SyncReconcileRequestSource6$Outbound = { +export type SourceEvent6$Outbound = { component?: string | null | undefined; host?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestSource6$outboundSchema: z.ZodType< - SyncReconcileRequestSource6$Outbound, - SyncReconcileRequestSource6 +export const SourceEvent6$outboundSchema: z.ZodType< + SourceEvent6$Outbound, + SourceEvent6 > = z.object({ component: z.nullable(z.string()).optional(), host: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestSource6ToJSON( - syncReconcileRequestSource6: SyncReconcileRequestSource6, -): string { - return JSON.stringify( - SyncReconcileRequestSource6$outboundSchema.parse( - syncReconcileRequestSource6, - ), - ); +export function sourceEvent6ToJSON(sourceEvent6: SourceEvent6): string { + return JSON.stringify(SourceEvent6$outboundSchema.parse(sourceEvent6)); } /** @internal */ -export type SourceUnion6$Outbound = SyncReconcileRequestSource6$Outbound | any; +export type SourceUnion6$Outbound = SourceEvent6$Outbound | any; /** @internal */ export const SourceUnion6$outboundSchema: z.ZodType< SourceUnion6$Outbound, SourceUnion6 -> = z.union([ - z.lazy(() => SyncReconcileRequestSource6$outboundSchema), - z.any(), -]); +> = z.union([z.lazy(() => SourceEvent6$outboundSchema), z.any()]); export function sourceUnion6ToJSON(sourceUnion6: SourceUnion6): string { return JSON.stringify(SourceUnion6$outboundSchema.parse(sourceUnion6)); @@ -32217,7 +38662,7 @@ export type SyncReconcileRequestEvent8$Outbound = { message: string; raw?: any | null | undefined; reason: string; - source?: SyncReconcileRequestSource6$Outbound | any | null | undefined; + source?: SourceEvent6$Outbound | any | null | undefined; type?: string | null | undefined; }; @@ -32241,10 +38686,7 @@ export const SyncReconcileRequestEvent8$outboundSchema: z.ZodType< raw: z.nullable(z.any()).optional(), reason: z.string(), source: z.nullable( - z.union([ - z.lazy(() => SyncReconcileRequestSource6$outboundSchema), - z.any(), - ]), + z.union([z.lazy(() => SourceEvent6$outboundSchema), z.any()]), ).optional(), type: z.nullable(z.string()).optional(), }); @@ -32348,6 +38790,7 @@ export type DataAzure1$Outbound = { horizonStatusMessage?: string | null | undefined; horizonStatusReason?: string | null | undefined; latestUpdateTimestamp: string; + observedImage?: string | null | undefined; status: ResourceHeartbeatStatus15$Outbound; unavailableInstances: number; backend: "azure"; @@ -32371,6 +38814,7 @@ export const DataAzure1$outboundSchema: z.ZodType< horizonStatusMessage: z.nullable(z.string()).optional(), horizonStatusReason: z.nullable(z.string()).optional(), latestUpdateTimestamp: z.string(), + observedImage: z.nullable(z.string()).optional(), status: z.lazy(() => ResourceHeartbeatStatus15$outboundSchema), unavailableInstances: z.int(), backend: z.literal("azure"), @@ -32578,41 +39022,32 @@ export function involvedObjectUnion5ToJSON( } /** @internal */ -export type SyncReconcileRequestSource5$Outbound = { +export type SourceEvent5$Outbound = { component?: string | null | undefined; host?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestSource5$outboundSchema: z.ZodType< - SyncReconcileRequestSource5$Outbound, - SyncReconcileRequestSource5 +export const SourceEvent5$outboundSchema: z.ZodType< + SourceEvent5$Outbound, + SourceEvent5 > = z.object({ component: z.nullable(z.string()).optional(), host: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestSource5ToJSON( - syncReconcileRequestSource5: SyncReconcileRequestSource5, -): string { - return JSON.stringify( - SyncReconcileRequestSource5$outboundSchema.parse( - syncReconcileRequestSource5, - ), - ); +export function sourceEvent5ToJSON(sourceEvent5: SourceEvent5): string { + return JSON.stringify(SourceEvent5$outboundSchema.parse(sourceEvent5)); } /** @internal */ -export type SourceUnion5$Outbound = SyncReconcileRequestSource5$Outbound | any; +export type SourceUnion5$Outbound = SourceEvent5$Outbound | any; /** @internal */ export const SourceUnion5$outboundSchema: z.ZodType< SourceUnion5$Outbound, SourceUnion5 -> = z.union([ - z.lazy(() => SyncReconcileRequestSource5$outboundSchema), - z.any(), -]); +> = z.union([z.lazy(() => SourceEvent5$outboundSchema), z.any()]); export function sourceUnion5ToJSON(sourceUnion5: SourceUnion5): string { return JSON.stringify(SourceUnion5$outboundSchema.parse(sourceUnion5)); @@ -32630,7 +39065,7 @@ export type SyncReconcileRequestEvent7$Outbound = { message: string; raw?: any | null | undefined; reason: string; - source?: SyncReconcileRequestSource5$Outbound | any | null | undefined; + source?: SourceEvent5$Outbound | any | null | undefined; type?: string | null | undefined; }; @@ -32654,10 +39089,7 @@ export const SyncReconcileRequestEvent7$outboundSchema: z.ZodType< raw: z.nullable(z.any()).optional(), reason: z.string(), source: z.nullable( - z.union([ - z.lazy(() => SyncReconcileRequestSource5$outboundSchema), - z.any(), - ]), + z.union([z.lazy(() => SourceEvent5$outboundSchema), z.any()]), ).optional(), type: z.nullable(z.string()).optional(), }); @@ -32761,6 +39193,7 @@ export type DataGcp1$Outbound = { horizonStatusMessage?: string | null | undefined; horizonStatusReason?: string | null | undefined; latestUpdateTimestamp: string; + observedImage?: string | null | undefined; status: ResourceHeartbeatStatus14$Outbound; unavailableInstances: number; backend: "gcp"; @@ -32782,6 +39215,7 @@ export const DataGcp1$outboundSchema: z.ZodType = z horizonStatusMessage: z.nullable(z.string()).optional(), horizonStatusReason: z.nullable(z.string()).optional(), latestUpdateTimestamp: z.string(), + observedImage: z.nullable(z.string()).optional(), status: z.lazy(() => ResourceHeartbeatStatus14$outboundSchema), unavailableInstances: z.int(), backend: z.literal("gcp"), @@ -32989,41 +39423,32 @@ export function involvedObjectUnion4ToJSON( } /** @internal */ -export type SyncReconcileRequestSource4$Outbound = { +export type SourceEvent4$Outbound = { component?: string | null | undefined; host?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestSource4$outboundSchema: z.ZodType< - SyncReconcileRequestSource4$Outbound, - SyncReconcileRequestSource4 +export const SourceEvent4$outboundSchema: z.ZodType< + SourceEvent4$Outbound, + SourceEvent4 > = z.object({ component: z.nullable(z.string()).optional(), host: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestSource4ToJSON( - syncReconcileRequestSource4: SyncReconcileRequestSource4, -): string { - return JSON.stringify( - SyncReconcileRequestSource4$outboundSchema.parse( - syncReconcileRequestSource4, - ), - ); +export function sourceEvent4ToJSON(sourceEvent4: SourceEvent4): string { + return JSON.stringify(SourceEvent4$outboundSchema.parse(sourceEvent4)); } /** @internal */ -export type SourceUnion4$Outbound = SyncReconcileRequestSource4$Outbound | any; +export type SourceUnion4$Outbound = SourceEvent4$Outbound | any; /** @internal */ export const SourceUnion4$outboundSchema: z.ZodType< SourceUnion4$Outbound, SourceUnion4 -> = z.union([ - z.lazy(() => SyncReconcileRequestSource4$outboundSchema), - z.any(), -]); +> = z.union([z.lazy(() => SourceEvent4$outboundSchema), z.any()]); export function sourceUnion4ToJSON(sourceUnion4: SourceUnion4): string { return JSON.stringify(SourceUnion4$outboundSchema.parse(sourceUnion4)); @@ -33041,7 +39466,7 @@ export type SyncReconcileRequestEvent6$Outbound = { message: string; raw?: any | null | undefined; reason: string; - source?: SyncReconcileRequestSource4$Outbound | any | null | undefined; + source?: SourceEvent4$Outbound | any | null | undefined; type?: string | null | undefined; }; @@ -33065,10 +39490,7 @@ export const SyncReconcileRequestEvent6$outboundSchema: z.ZodType< raw: z.nullable(z.any()).optional(), reason: z.string(), source: z.nullable( - z.union([ - z.lazy(() => SyncReconcileRequestSource4$outboundSchema), - z.any(), - ]), + z.union([z.lazy(() => SourceEvent4$outboundSchema), z.any()]), ).optional(), type: z.nullable(z.string()).optional(), }); @@ -33172,6 +39594,7 @@ export type DataAws1$Outbound = { horizonStatusMessage?: string | null | undefined; horizonStatusReason?: string | null | undefined; latestUpdateTimestamp: string; + observedImage?: string | null | undefined; status: ResourceHeartbeatStatus13$Outbound; unavailableInstances: number; backend: "aws"; @@ -33193,6 +39616,7 @@ export const DataAws1$outboundSchema: z.ZodType = z horizonStatusMessage: z.nullable(z.string()).optional(), horizonStatusReason: z.nullable(z.string()).optional(), latestUpdateTimestamp: z.string(), + observedImage: z.nullable(z.string()).optional(), status: z.lazy(() => ResourceHeartbeatStatus13$outboundSchema), unavailableInstances: z.int(), backend: z.literal("aws"), @@ -33785,41 +40209,32 @@ export function involvedObjectUnion3ToJSON( } /** @internal */ -export type SyncReconcileRequestSource3$Outbound = { +export type SourceEvent3$Outbound = { component?: string | null | undefined; host?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestSource3$outboundSchema: z.ZodType< - SyncReconcileRequestSource3$Outbound, - SyncReconcileRequestSource3 +export const SourceEvent3$outboundSchema: z.ZodType< + SourceEvent3$Outbound, + SourceEvent3 > = z.object({ component: z.nullable(z.string()).optional(), host: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestSource3ToJSON( - syncReconcileRequestSource3: SyncReconcileRequestSource3, -): string { - return JSON.stringify( - SyncReconcileRequestSource3$outboundSchema.parse( - syncReconcileRequestSource3, - ), - ); +export function sourceEvent3ToJSON(sourceEvent3: SourceEvent3): string { + return JSON.stringify(SourceEvent3$outboundSchema.parse(sourceEvent3)); } /** @internal */ -export type SourceUnion3$Outbound = SyncReconcileRequestSource3$Outbound | any; +export type SourceUnion3$Outbound = SourceEvent3$Outbound | any; /** @internal */ export const SourceUnion3$outboundSchema: z.ZodType< SourceUnion3$Outbound, SourceUnion3 -> = z.union([ - z.lazy(() => SyncReconcileRequestSource3$outboundSchema), - z.any(), -]); +> = z.union([z.lazy(() => SourceEvent3$outboundSchema), z.any()]); export function sourceUnion3ToJSON(sourceUnion3: SourceUnion3): string { return JSON.stringify(SourceUnion3$outboundSchema.parse(sourceUnion3)); @@ -33835,7 +40250,7 @@ export type SyncReconcileRequestEvent4$Outbound = { message: string; raw?: any | null | undefined; reason: string; - source?: SyncReconcileRequestSource3$Outbound | any | null | undefined; + source?: SourceEvent3$Outbound | any | null | undefined; type?: string | null | undefined; }; @@ -33857,10 +40272,7 @@ export const SyncReconcileRequestEvent4$outboundSchema: z.ZodType< raw: z.nullable(z.any()).optional(), reason: z.string(), source: z.nullable( - z.union([ - z.lazy(() => SyncReconcileRequestSource3$outboundSchema), - z.any(), - ]), + z.union([z.lazy(() => SourceEvent3$outboundSchema), z.any()]), ).optional(), type: z.nullable(z.string()).optional(), }); @@ -34352,41 +40764,32 @@ export function involvedObjectUnion2ToJSON( } /** @internal */ -export type SyncReconcileRequestSource2$Outbound = { +export type SourceEvent2$Outbound = { component?: string | null | undefined; host?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestSource2$outboundSchema: z.ZodType< - SyncReconcileRequestSource2$Outbound, - SyncReconcileRequestSource2 +export const SourceEvent2$outboundSchema: z.ZodType< + SourceEvent2$Outbound, + SourceEvent2 > = z.object({ component: z.nullable(z.string()).optional(), host: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestSource2ToJSON( - syncReconcileRequestSource2: SyncReconcileRequestSource2, -): string { - return JSON.stringify( - SyncReconcileRequestSource2$outboundSchema.parse( - syncReconcileRequestSource2, - ), - ); +export function sourceEvent2ToJSON(sourceEvent2: SourceEvent2): string { + return JSON.stringify(SourceEvent2$outboundSchema.parse(sourceEvent2)); } /** @internal */ -export type SourceUnion2$Outbound = SyncReconcileRequestSource2$Outbound | any; +export type SourceUnion2$Outbound = SourceEvent2$Outbound | any; /** @internal */ export const SourceUnion2$outboundSchema: z.ZodType< SourceUnion2$Outbound, SourceUnion2 -> = z.union([ - z.lazy(() => SyncReconcileRequestSource2$outboundSchema), - z.any(), -]); +> = z.union([z.lazy(() => SourceEvent2$outboundSchema), z.any()]); export function sourceUnion2ToJSON(sourceUnion2: SourceUnion2): string { return JSON.stringify(SourceUnion2$outboundSchema.parse(sourceUnion2)); @@ -34404,7 +40807,7 @@ export type SyncReconcileRequestEvent3$Outbound = { message: string; raw?: any | null | undefined; reason: string; - source?: SyncReconcileRequestSource2$Outbound | any | null | undefined; + source?: SourceEvent2$Outbound | any | null | undefined; type?: string | null | undefined; }; @@ -34428,10 +40831,7 @@ export const SyncReconcileRequestEvent3$outboundSchema: z.ZodType< raw: z.nullable(z.any()).optional(), reason: z.string(), source: z.nullable( - z.union([ - z.lazy(() => SyncReconcileRequestSource2$outboundSchema), - z.any(), - ]), + z.union([z.lazy(() => SourceEvent2$outboundSchema), z.any()]), ).optional(), type: z.nullable(z.string()).optional(), }); @@ -34734,7 +41134,9 @@ export type DataHorizonPlatform$Outbound = { cpu?: Cpu3$Outbound | any | null | undefined; events: Array; image?: string | null | undefined; + latestUpdateTimestamp?: string | null | undefined; memory?: Memory3$Outbound | any | null | undefined; + observedImage?: string | null | undefined; replicaUnits: Array; replicas: Replicas2$Outbound; schedulingMode: string; @@ -34753,8 +41155,10 @@ export const DataHorizonPlatform$outboundSchema: z.ZodType< .optional(), events: z.array(z.lazy(() => SyncReconcileRequestEvent3$outboundSchema)), image: z.nullable(z.string()).optional(), + latestUpdateTimestamp: z.nullable(z.string()).optional(), memory: z.nullable(z.union([z.lazy(() => Memory3$outboundSchema), z.any()])) .optional(), + observedImage: z.nullable(z.string()).optional(), replicaUnits: z.array(z.lazy(() => ReplicaUnit$outboundSchema)), replicas: z.lazy(() => Replicas2$outboundSchema), schedulingMode: SchedulingMode$outboundSchema, @@ -35313,41 +41717,32 @@ export function involvedObjectUnion1ToJSON( } /** @internal */ -export type SyncReconcileRequestSource1$Outbound = { +export type SourceEvent1$Outbound = { component?: string | null | undefined; host?: string | null | undefined; }; /** @internal */ -export const SyncReconcileRequestSource1$outboundSchema: z.ZodType< - SyncReconcileRequestSource1$Outbound, - SyncReconcileRequestSource1 +export const SourceEvent1$outboundSchema: z.ZodType< + SourceEvent1$Outbound, + SourceEvent1 > = z.object({ component: z.nullable(z.string()).optional(), host: z.nullable(z.string()).optional(), }); -export function syncReconcileRequestSource1ToJSON( - syncReconcileRequestSource1: SyncReconcileRequestSource1, -): string { - return JSON.stringify( - SyncReconcileRequestSource1$outboundSchema.parse( - syncReconcileRequestSource1, - ), - ); +export function sourceEvent1ToJSON(sourceEvent1: SourceEvent1): string { + return JSON.stringify(SourceEvent1$outboundSchema.parse(sourceEvent1)); } /** @internal */ -export type SourceUnion1$Outbound = SyncReconcileRequestSource1$Outbound | any; +export type SourceUnion1$Outbound = SourceEvent1$Outbound | any; /** @internal */ export const SourceUnion1$outboundSchema: z.ZodType< SourceUnion1$Outbound, SourceUnion1 -> = z.union([ - z.lazy(() => SyncReconcileRequestSource1$outboundSchema), - z.any(), -]); +> = z.union([z.lazy(() => SourceEvent1$outboundSchema), z.any()]); export function sourceUnion1ToJSON(sourceUnion1: SourceUnion1): string { return JSON.stringify(SourceUnion1$outboundSchema.parse(sourceUnion1)); @@ -35363,7 +41758,7 @@ export type SyncReconcileRequestEvent1$Outbound = { message: string; raw?: any | null | undefined; reason: string; - source?: SyncReconcileRequestSource1$Outbound | any | null | undefined; + source?: SourceEvent1$Outbound | any | null | undefined; type?: string | null | undefined; }; @@ -35385,10 +41780,7 @@ export const SyncReconcileRequestEvent1$outboundSchema: z.ZodType< raw: z.nullable(z.any()).optional(), reason: z.string(), source: z.nullable( - z.union([ - z.lazy(() => SyncReconcileRequestSource1$outboundSchema), - z.any(), - ]), + z.union([z.lazy(() => SourceEvent1$outboundSchema), z.any()]), ).optional(), type: z.nullable(z.string()).optional(), }); @@ -36821,7 +43213,7 @@ export function dataStorageToJSON(dataStorage: DataStorage): string { } /** @internal */ -export type SyncReconcileRequestDataUnion16$Outbound = +export type SyncReconcileRequestDataUnion18$Outbound = | DataStorage$Outbound | DataWorker$Outbound | DataContainer$Outbound @@ -36841,12 +43233,14 @@ export type SyncReconcileRequestDataUnion16$Outbound = | DataAzureResourceGroup$Outbound | DataAzureStorageAccount$Outbound | DataAzureContainerAppsEnvironment$Outbound - | DataAzureServiceBusNamespace$Outbound; + | DataAzureServiceBusNamespace$Outbound + | DataAi$Outbound + | DataKey$Outbound; /** @internal */ -export const SyncReconcileRequestDataUnion16$outboundSchema: z.ZodType< - SyncReconcileRequestDataUnion16$Outbound, - SyncReconcileRequestDataUnion16 +export const SyncReconcileRequestDataUnion18$outboundSchema: z.ZodType< + SyncReconcileRequestDataUnion18$Outbound, + SyncReconcileRequestDataUnion18 > = z.union([ z.lazy(() => DataStorage$outboundSchema), z.lazy(() => DataWorker$outboundSchema), @@ -36868,14 +43262,16 @@ export const SyncReconcileRequestDataUnion16$outboundSchema: z.ZodType< z.lazy(() => DataAzureStorageAccount$outboundSchema), z.lazy(() => DataAzureContainerAppsEnvironment$outboundSchema), z.lazy(() => DataAzureServiceBusNamespace$outboundSchema), + z.lazy(() => DataAi$outboundSchema), + z.lazy(() => DataKey$outboundSchema), ]); -export function syncReconcileRequestDataUnion16ToJSON( - syncReconcileRequestDataUnion16: SyncReconcileRequestDataUnion16, +export function syncReconcileRequestDataUnion18ToJSON( + syncReconcileRequestDataUnion18: SyncReconcileRequestDataUnion18, ): string { return JSON.stringify( - SyncReconcileRequestDataUnion16$outboundSchema.parse( - syncReconcileRequestDataUnion16, + SyncReconcileRequestDataUnion18$outboundSchema.parse( + syncReconcileRequestDataUnion18, ), ); } @@ -36938,7 +43334,9 @@ export type ResourceHeartbeat$Outbound = { | DataAzureResourceGroup$Outbound | DataAzureStorageAccount$Outbound | DataAzureContainerAppsEnvironment$Outbound - | DataAzureServiceBusNamespace$Outbound; + | DataAzureServiceBusNamespace$Outbound + | DataAi$Outbound + | DataKey$Outbound; deploymentId?: string | null | undefined; observedAt: string; raw: Array; @@ -36974,6 +43372,8 @@ export const ResourceHeartbeat$outboundSchema: z.ZodType< z.lazy(() => DataAzureStorageAccount$outboundSchema), z.lazy(() => DataAzureContainerAppsEnvironment$outboundSchema), z.lazy(() => DataAzureServiceBusNamespace$outboundSchema), + z.lazy(() => DataAi$outboundSchema), + z.lazy(() => DataKey$outboundSchema), ]), deploymentId: z.nullable(z.string()).optional(), observedAt: z.date().transform(v => v.toISOString()), diff --git a/client-sdks/platform/typescript/src/models/syncreconcileresponse.ts b/client-sdks/platform/typescript/src/models/syncreconcileresponse.ts index 695cca7cf..632fc7e7f 100644 --- a/client-sdks/platform/typescript/src/models/syncreconcileresponse.ts +++ b/client-sdks/platform/typescript/src/models/syncreconcileresponse.ts @@ -1451,6 +1451,17 @@ export type SyncReconcileResponseCurrentReleaseResources = { * The total dependencies are: resource.get_dependencies() + this list */ dependencies: Array; + /** + * Id of the boolean stack input that decides whether this resource is + * + * @remarks + * created at all. `None` means always create it. + * + * Set by `.enabled(input)` in the SDK. Setup emitters render the resource + * conditionally on the matching template variable, so a deployer who says no + * never gets the resource, its outputs, or anything derived from it. + */ + enabledWhen?: string | null | undefined; /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ @@ -1781,95 +1792,108 @@ export type SyncReconcileResponseCurrentPlatform = ClosedEnum< typeof SyncReconcileResponseCurrentPlatform >; -export const SyncReconcileResponsePreparedStackTypeStringList = { - StringList: "stringList", +/** + * Actor that owns structural work during the initial setup phase. + */ +export const SyncReconcileResponseInitialSetupAuthority = { + ImportedHandoff: "importedHandoff", + DirectSetup: "directSetup", } as const; -export type SyncReconcileResponsePreparedStackTypeStringList = ClosedEnum< - typeof SyncReconcileResponsePreparedStackTypeStringList +/** + * Actor that owns structural work during the initial setup phase. + */ +export type SyncReconcileResponseInitialSetupAuthority = ClosedEnum< + typeof SyncReconcileResponseInitialSetupAuthority >; -export type SyncReconcileResponsePreparedStackDefaultStringList = { - type: SyncReconcileResponsePreparedStackTypeStringList; +export const SyncReconcileResponsePendingPreparedStackTypeStringList = { + StringList: "stringList", +} as const; +export type SyncReconcileResponsePendingPreparedStackTypeStringList = + ClosedEnum; + +export type SyncReconcileResponsePendingPreparedStackDefaultStringList = { + type: SyncReconcileResponsePendingPreparedStackTypeStringList; /** * String list default. */ value: Array; }; -export const SyncReconcileResponsePreparedStackTypeBoolean = { +export const SyncReconcileResponsePendingPreparedStackTypeBoolean = { Boolean: "boolean", } as const; -export type SyncReconcileResponsePreparedStackTypeBoolean = ClosedEnum< - typeof SyncReconcileResponsePreparedStackTypeBoolean +export type SyncReconcileResponsePendingPreparedStackTypeBoolean = ClosedEnum< + typeof SyncReconcileResponsePendingPreparedStackTypeBoolean >; -export type SyncReconcileResponsePreparedStackDefaultBoolean = { - type: SyncReconcileResponsePreparedStackTypeBoolean; +export type SyncReconcileResponsePendingPreparedStackDefaultBoolean = { + type: SyncReconcileResponsePendingPreparedStackTypeBoolean; /** * Boolean default. */ value: boolean; }; -export const SyncReconcileResponsePreparedStackTypeNumber = { +export const SyncReconcileResponsePendingPreparedStackTypeNumber = { Number: "number", } as const; -export type SyncReconcileResponsePreparedStackTypeNumber = ClosedEnum< - typeof SyncReconcileResponsePreparedStackTypeNumber +export type SyncReconcileResponsePendingPreparedStackTypeNumber = ClosedEnum< + typeof SyncReconcileResponsePendingPreparedStackTypeNumber >; -export type SyncReconcileResponsePreparedStackDefaultNumber = { - type: SyncReconcileResponsePreparedStackTypeNumber; +export type SyncReconcileResponsePendingPreparedStackDefaultNumber = { + type: SyncReconcileResponsePendingPreparedStackTypeNumber; /** * Number default. */ value: string; }; -export const SyncReconcileResponsePreparedStackTypeString = { +export const SyncReconcileResponsePendingPreparedStackTypeString = { String: "string", } as const; -export type SyncReconcileResponsePreparedStackTypeString = ClosedEnum< - typeof SyncReconcileResponsePreparedStackTypeString +export type SyncReconcileResponsePendingPreparedStackTypeString = ClosedEnum< + typeof SyncReconcileResponsePendingPreparedStackTypeString >; -export type SyncReconcileResponsePreparedStackDefaultString = { - type: SyncReconcileResponsePreparedStackTypeString; +export type SyncReconcileResponsePendingPreparedStackDefaultString = { + type: SyncReconcileResponsePendingPreparedStackTypeString; /** * String default. */ value: string; }; -export type SyncReconcileResponsePreparedStackDefaultUnion = - | SyncReconcileResponsePreparedStackDefaultString - | SyncReconcileResponsePreparedStackDefaultNumber - | SyncReconcileResponsePreparedStackDefaultBoolean - | SyncReconcileResponsePreparedStackDefaultStringList +export type SyncReconcileResponsePendingPreparedStackDefaultUnion = + | SyncReconcileResponsePendingPreparedStackDefaultString + | SyncReconcileResponsePendingPreparedStackDefaultNumber + | SyncReconcileResponsePendingPreparedStackDefaultBoolean + | SyncReconcileResponsePendingPreparedStackDefaultStringList | any; /** * Environment variable handling for a stack input mapping. */ -export const SyncReconcileResponsePreparedStackTypeEnvEnum = { +export const SyncReconcileResponsePendingPreparedStackTypeEnvEnum = { Plain: "plain", Secret: "secret", } as const; /** * Environment variable handling for a stack input mapping. */ -export type SyncReconcileResponsePreparedStackTypeEnvEnum = ClosedEnum< - typeof SyncReconcileResponsePreparedStackTypeEnvEnum +export type SyncReconcileResponsePendingPreparedStackTypeEnvEnum = ClosedEnum< + typeof SyncReconcileResponsePendingPreparedStackTypeEnvEnum >; -export type SyncReconcileResponsePreparedStackTypeUnion = - | SyncReconcileResponsePreparedStackTypeEnvEnum +export type SyncReconcileResponsePendingPreparedStackTypeUnion = + | SyncReconcileResponsePendingPreparedStackTypeEnvEnum | any; /** * How a resolved stack input is injected into runtime environment variables. */ -export type SyncReconcileResponsePreparedStackEnv = { +export type SyncReconcileResponsePendingPreparedStackEnv = { /** * Environment variable name. */ @@ -1878,13 +1902,17 @@ export type SyncReconcileResponsePreparedStackEnv = { * Target resource IDs or patterns. None means every env-capable resource. */ targetResources?: Array | null | undefined; - type?: SyncReconcileResponsePreparedStackTypeEnvEnum | any | null | undefined; + type?: + | SyncReconcileResponsePendingPreparedStackTypeEnvEnum + | any + | null + | undefined; }; /** * Primitive stack input kind. */ -export const SyncReconcileResponsePreparedStackKind = { +export const SyncReconcileResponsePendingPreparedStackKind = { String: "string", Secret: "secret", Number: "number", @@ -1896,14 +1924,14 @@ export const SyncReconcileResponsePreparedStackKind = { /** * Primitive stack input kind. */ -export type SyncReconcileResponsePreparedStackKind = ClosedEnum< - typeof SyncReconcileResponsePreparedStackKind +export type SyncReconcileResponsePendingPreparedStackKind = ClosedEnum< + typeof SyncReconcileResponsePendingPreparedStackKind >; /** * Represents the target cloud platform. */ -export const SyncReconcileResponsePreparedStackPlatform = { +export const SyncReconcileResponsePendingPreparedStackPlatform = { Aws: "aws", Gcp: "gcp", Azure: "azure", @@ -1915,28 +1943,28 @@ export const SyncReconcileResponsePreparedStackPlatform = { /** * Represents the target cloud platform. */ -export type SyncReconcileResponsePreparedStackPlatform = ClosedEnum< - typeof SyncReconcileResponsePreparedStackPlatform +export type SyncReconcileResponsePendingPreparedStackPlatform = ClosedEnum< + typeof SyncReconcileResponsePendingPreparedStackPlatform >; /** * Who can provide a stack input value. */ -export const SyncReconcileResponsePreparedStackProvidedBy = { +export const SyncReconcileResponsePendingPreparedStackProvidedBy = { Developer: "developer", Deployer: "deployer", } as const; /** * Who can provide a stack input value. */ -export type SyncReconcileResponsePreparedStackProvidedBy = ClosedEnum< - typeof SyncReconcileResponsePreparedStackProvidedBy +export type SyncReconcileResponsePendingPreparedStackProvidedBy = ClosedEnum< + typeof SyncReconcileResponsePendingPreparedStackProvidedBy >; /** * Portable stack input validation constraints. */ -export type SyncReconcileResponsePreparedStackValidation = { +export type SyncReconcileResponsePendingPreparedStackValidation = { /** * Semantic format hint such as url. */ @@ -1975,19 +2003,19 @@ export type SyncReconcileResponsePreparedStackValidation = { values?: Array | null | undefined; }; -export type SyncReconcileResponsePreparedStackValidationUnion = - | SyncReconcileResponsePreparedStackValidation +export type SyncReconcileResponsePendingPreparedStackValidationUnion = + | SyncReconcileResponsePendingPreparedStackValidation | any; /** * Stack input definition serialized into a release stack. */ -export type SyncReconcileResponsePreparedStackInput = { +export type SyncReconcileResponsePendingPreparedStackInput = { default?: - | SyncReconcileResponsePreparedStackDefaultString - | SyncReconcileResponsePreparedStackDefaultNumber - | SyncReconcileResponsePreparedStackDefaultBoolean - | SyncReconcileResponsePreparedStackDefaultStringList + | SyncReconcileResponsePendingPreparedStackDefaultString + | SyncReconcileResponsePendingPreparedStackDefaultNumber + | SyncReconcileResponsePendingPreparedStackDefaultBoolean + | SyncReconcileResponsePendingPreparedStackDefaultStringList | any | null | undefined; @@ -1998,7 +2026,7 @@ export type SyncReconcileResponsePreparedStackInput = { /** * Runtime env-var mappings for v1 input resolution. */ - env?: Array | undefined; + env?: Array | undefined; /** * Stable input ID used by CLI/API calls. */ @@ -2006,7 +2034,7 @@ export type SyncReconcileResponsePreparedStackInput = { /** * Primitive stack input kind. */ - kind: SyncReconcileResponsePreparedStackKind; + kind: SyncReconcileResponsePendingPreparedStackKind; /** * Human-facing field label. */ @@ -2019,35 +2047,34 @@ export type SyncReconcileResponsePreparedStackInput = { * Platforms where this input applies. */ platforms?: - | Array + | Array | null | undefined; /** * Who can provide this value. */ - providedBy: Array; + providedBy: Array; /** * Whether a resolved value is required before deployment can proceed. */ required: boolean; validation?: - | SyncReconcileResponsePreparedStackValidation + | SyncReconcileResponsePendingPreparedStackValidation | any | null | undefined; }; -export const SyncReconcileResponsePreparedStackManagementEnum = { +export const SyncReconcileResponsePendingPreparedStackManagementEnum = { Auto: "auto", } as const; -export type SyncReconcileResponsePreparedStackManagementEnum = ClosedEnum< - typeof SyncReconcileResponsePreparedStackManagementEnum ->; +export type SyncReconcileResponsePendingPreparedStackManagementEnum = + ClosedEnum; /** * AWS-specific binding specification */ -export type SyncReconcileResponsePreparedStackOverrideAwResource = { +export type SyncReconcileResponsePendingPreparedStackOverrideAwResource = { /** * Optional condition for additional filtering (rare) */ @@ -2061,7 +2088,7 @@ export type SyncReconcileResponsePreparedStackOverrideAwResource = { /** * AWS-specific binding specification */ -export type SyncReconcileResponsePreparedStackOverrideAwStack = { +export type SyncReconcileResponsePendingPreparedStackOverrideAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -2075,35 +2102,36 @@ export type SyncReconcileResponsePreparedStackOverrideAwStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileResponsePreparedStackOverrideAwBinding = { +export type SyncReconcileResponsePendingPreparedStackOverrideAwBinding = { /** * AWS-specific binding specification */ - resource?: SyncReconcileResponsePreparedStackOverrideAwResource | undefined; + resource?: + | SyncReconcileResponsePendingPreparedStackOverrideAwResource + | undefined; /** * AWS-specific binding specification */ - stack?: SyncReconcileResponsePreparedStackOverrideAwStack | undefined; + stack?: SyncReconcileResponsePendingPreparedStackOverrideAwStack | undefined; }; /** * IAM effect. Defaults to Allow. */ -export const SyncReconcileResponsePreparedStackOverrideEffect = { +export const SyncReconcileResponsePendingPreparedStackOverrideEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type SyncReconcileResponsePreparedStackOverrideEffect = ClosedEnum< - typeof SyncReconcileResponsePreparedStackOverrideEffect ->; +export type SyncReconcileResponsePendingPreparedStackOverrideEffect = + ClosedEnum; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileResponsePreparedStackOverrideAwGrant = { +export type SyncReconcileResponsePendingPreparedStackOverrideAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2129,11 +2157,11 @@ export type SyncReconcileResponsePreparedStackOverrideAwGrant = { /** * AWS-specific platform permission configuration */ -export type SyncReconcileResponsePreparedStackOverrideAw = { +export type SyncReconcileResponsePendingPreparedStackOverrideAw = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileResponsePreparedStackOverrideAwBinding; + binding: SyncReconcileResponsePendingPreparedStackOverrideAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2141,11 +2169,11 @@ export type SyncReconcileResponsePreparedStackOverrideAw = { /** * IAM effect. Defaults to Allow. */ - effect?: SyncReconcileResponsePreparedStackOverrideEffect | undefined; + effect?: SyncReconcileResponsePendingPreparedStackOverrideEffect | undefined; /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileResponsePreparedStackOverrideAwGrant; + grant: SyncReconcileResponsePendingPreparedStackOverrideAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2155,7 +2183,7 @@ export type SyncReconcileResponsePreparedStackOverrideAw = { /** * Azure-specific binding specification */ -export type SyncReconcileResponsePreparedStackOverrideAzureResource = { +export type SyncReconcileResponsePendingPreparedStackOverrideAzureResource = { /** * Scope (subscription/resource group/resource level) */ @@ -2165,7 +2193,7 @@ export type SyncReconcileResponsePreparedStackOverrideAzureResource = { /** * Azure-specific binding specification */ -export type SyncReconcileResponsePreparedStackOverrideAzureStack = { +export type SyncReconcileResponsePendingPreparedStackOverrideAzureStack = { /** * Scope (subscription/resource group/resource level) */ @@ -2175,23 +2203,25 @@ export type SyncReconcileResponsePreparedStackOverrideAzureStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileResponsePreparedStackOverrideAzureBinding = { +export type SyncReconcileResponsePendingPreparedStackOverrideAzureBinding = { /** * Azure-specific binding specification */ resource?: - | SyncReconcileResponsePreparedStackOverrideAzureResource + | SyncReconcileResponsePendingPreparedStackOverrideAzureResource | undefined; /** * Azure-specific binding specification */ - stack?: SyncReconcileResponsePreparedStackOverrideAzureStack | undefined; + stack?: + | SyncReconcileResponsePendingPreparedStackOverrideAzureStack + | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileResponsePreparedStackOverrideAzureGrant = { +export type SyncReconcileResponsePendingPreparedStackOverrideAzureGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2217,11 +2247,11 @@ export type SyncReconcileResponsePreparedStackOverrideAzureGrant = { /** * Azure-specific platform permission configuration */ -export type SyncReconcileResponsePreparedStackOverrideAzure = { +export type SyncReconcileResponsePendingPreparedStackOverrideAzure = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileResponsePreparedStackOverrideAzureBinding; + binding: SyncReconcileResponsePendingPreparedStackOverrideAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2229,7 +2259,7 @@ export type SyncReconcileResponsePreparedStackOverrideAzure = { /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileResponsePreparedStackOverrideAzureGrant; + grant: SyncReconcileResponsePendingPreparedStackOverrideAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2239,21 +2269,22 @@ export type SyncReconcileResponsePreparedStackOverrideAzure = { /** * GCP IAM condition */ -export type SyncReconcileResponsePreparedStackOverrideConditionResource = { - expression: string; - title: string; -}; +export type SyncReconcileResponsePendingPreparedStackOverrideConditionResource = + { + expression: string; + title: string; + }; -export type SyncReconcileResponsePreparedStackOverrideResourceConditionUnion = - | SyncReconcileResponsePreparedStackOverrideConditionResource +export type SyncReconcileResponsePendingPreparedStackOverrideResourceConditionUnion = + | SyncReconcileResponsePendingPreparedStackOverrideConditionResource | any; /** * GCP-specific binding specification */ -export type SyncReconcileResponsePreparedStackOverrideGcpResource = { +export type SyncReconcileResponsePendingPreparedStackOverrideGcpResource = { condition?: - | SyncReconcileResponsePreparedStackOverrideConditionResource + | SyncReconcileResponsePendingPreparedStackOverrideConditionResource | any | null | undefined; @@ -2266,21 +2297,21 @@ export type SyncReconcileResponsePreparedStackOverrideGcpResource = { /** * GCP IAM condition */ -export type SyncReconcileResponsePreparedStackOverrideConditionStack = { +export type SyncReconcileResponsePendingPreparedStackOverrideConditionStack = { expression: string; title: string; }; -export type SyncReconcileResponsePreparedStackOverrideStackConditionUnion = - | SyncReconcileResponsePreparedStackOverrideConditionStack +export type SyncReconcileResponsePendingPreparedStackOverrideStackConditionUnion = + | SyncReconcileResponsePendingPreparedStackOverrideConditionStack | any; /** * GCP-specific binding specification */ -export type SyncReconcileResponsePreparedStackOverrideGcpStack = { +export type SyncReconcileResponsePendingPreparedStackOverrideGcpStack = { condition?: - | SyncReconcileResponsePreparedStackOverrideConditionStack + | SyncReconcileResponsePendingPreparedStackOverrideConditionStack | any | null | undefined; @@ -2293,21 +2324,23 @@ export type SyncReconcileResponsePreparedStackOverrideGcpStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileResponsePreparedStackOverrideGcpBinding = { +export type SyncReconcileResponsePendingPreparedStackOverrideGcpBinding = { /** * GCP-specific binding specification */ - resource?: SyncReconcileResponsePreparedStackOverrideGcpResource | undefined; + resource?: + | SyncReconcileResponsePendingPreparedStackOverrideGcpResource + | undefined; /** * GCP-specific binding specification */ - stack?: SyncReconcileResponsePreparedStackOverrideGcpStack | undefined; + stack?: SyncReconcileResponsePendingPreparedStackOverrideGcpStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileResponsePreparedStackOverrideGcpGrant = { +export type SyncReconcileResponsePendingPreparedStackOverrideGcpGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2333,11 +2366,11 @@ export type SyncReconcileResponsePreparedStackOverrideGcpGrant = { /** * GCP-specific platform permission configuration */ -export type SyncReconcileResponsePreparedStackOverrideGcp = { +export type SyncReconcileResponsePendingPreparedStackOverrideGcp = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileResponsePreparedStackOverrideGcpBinding; + binding: SyncReconcileResponsePendingPreparedStackOverrideGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2345,7 +2378,7 @@ export type SyncReconcileResponsePreparedStackOverrideGcp = { /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileResponsePreparedStackOverrideGcpGrant; + grant: SyncReconcileResponsePendingPreparedStackOverrideGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2355,28 +2388,34 @@ export type SyncReconcileResponsePreparedStackOverrideGcp = { /** * Platform-specific permission configurations */ -export type SyncReconcileResponsePreparedStackOverridePlatforms = { +export type SyncReconcileResponsePendingPreparedStackOverridePlatforms = { /** * AWS permission configurations */ - aws?: Array | null | undefined; + aws?: + | Array + | null + | undefined; /** * Azure permission configurations */ azure?: - | Array + | Array | null | undefined; /** * GCP permission configurations */ - gcp?: Array | null | undefined; + gcp?: + | Array + | null + | undefined; }; /** * A permission set that can be applied across different cloud platforms */ -export type SyncReconcileResponsePreparedStackOverride = { +export type SyncReconcileResponsePendingPreparedStackOverride = { /** * Human-readable description of what this permission set allows */ @@ -2388,17 +2427,17 @@ export type SyncReconcileResponsePreparedStackOverride = { /** * Platform-specific permission configurations */ - platforms: SyncReconcileResponsePreparedStackOverridePlatforms; + platforms: SyncReconcileResponsePendingPreparedStackOverridePlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type SyncReconcileResponsePreparedStackOverrideUnion = - | SyncReconcileResponsePreparedStackOverride +export type SyncReconcileResponsePendingPreparedStackOverrideUnion = + | SyncReconcileResponsePendingPreparedStackOverride | string; -export type SyncReconcileResponsePreparedStackManagement2 = { +export type SyncReconcileResponsePendingPreparedStackManagement2 = { /** * Permission profile that maps resources to permission sets * @@ -2406,14 +2445,16 @@ export type SyncReconcileResponsePreparedStackManagement2 = { * Key can be "*" for all resources or resource name for specific resource */ override: { - [k: string]: Array; + [k: string]: Array< + SyncReconcileResponsePendingPreparedStackOverride | string + >; }; }; /** * AWS-specific binding specification */ -export type SyncReconcileResponsePreparedStackExtendAwResource = { +export type SyncReconcileResponsePendingPreparedStackExtendAwResource = { /** * Optional condition for additional filtering (rare) */ @@ -2427,7 +2468,7 @@ export type SyncReconcileResponsePreparedStackExtendAwResource = { /** * AWS-specific binding specification */ -export type SyncReconcileResponsePreparedStackExtendAwStack = { +export type SyncReconcileResponsePendingPreparedStackExtendAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -2441,35 +2482,37 @@ export type SyncReconcileResponsePreparedStackExtendAwStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileResponsePreparedStackExtendAwBinding = { +export type SyncReconcileResponsePendingPreparedStackExtendAwBinding = { /** * AWS-specific binding specification */ - resource?: SyncReconcileResponsePreparedStackExtendAwResource | undefined; + resource?: + | SyncReconcileResponsePendingPreparedStackExtendAwResource + | undefined; /** * AWS-specific binding specification */ - stack?: SyncReconcileResponsePreparedStackExtendAwStack | undefined; + stack?: SyncReconcileResponsePendingPreparedStackExtendAwStack | undefined; }; /** * IAM effect. Defaults to Allow. */ -export const SyncReconcileResponsePreparedStackExtendEffect = { +export const SyncReconcileResponsePendingPreparedStackExtendEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type SyncReconcileResponsePreparedStackExtendEffect = ClosedEnum< - typeof SyncReconcileResponsePreparedStackExtendEffect +export type SyncReconcileResponsePendingPreparedStackExtendEffect = ClosedEnum< + typeof SyncReconcileResponsePendingPreparedStackExtendEffect >; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileResponsePreparedStackExtendAwGrant = { +export type SyncReconcileResponsePendingPreparedStackExtendAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2495,11 +2538,11 @@ export type SyncReconcileResponsePreparedStackExtendAwGrant = { /** * AWS-specific platform permission configuration */ -export type SyncReconcileResponsePreparedStackExtendAw = { +export type SyncReconcileResponsePendingPreparedStackExtendAw = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileResponsePreparedStackExtendAwBinding; + binding: SyncReconcileResponsePendingPreparedStackExtendAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2507,11 +2550,11 @@ export type SyncReconcileResponsePreparedStackExtendAw = { /** * IAM effect. Defaults to Allow. */ - effect?: SyncReconcileResponsePreparedStackExtendEffect | undefined; + effect?: SyncReconcileResponsePendingPreparedStackExtendEffect | undefined; /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileResponsePreparedStackExtendAwGrant; + grant: SyncReconcileResponsePendingPreparedStackExtendAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2521,7 +2564,7 @@ export type SyncReconcileResponsePreparedStackExtendAw = { /** * Azure-specific binding specification */ -export type SyncReconcileResponsePreparedStackExtendAzureResource = { +export type SyncReconcileResponsePendingPreparedStackExtendAzureResource = { /** * Scope (subscription/resource group/resource level) */ @@ -2531,7 +2574,7 @@ export type SyncReconcileResponsePreparedStackExtendAzureResource = { /** * Azure-specific binding specification */ -export type SyncReconcileResponsePreparedStackExtendAzureStack = { +export type SyncReconcileResponsePendingPreparedStackExtendAzureStack = { /** * Scope (subscription/resource group/resource level) */ @@ -2541,21 +2584,23 @@ export type SyncReconcileResponsePreparedStackExtendAzureStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileResponsePreparedStackExtendAzureBinding = { +export type SyncReconcileResponsePendingPreparedStackExtendAzureBinding = { /** * Azure-specific binding specification */ - resource?: SyncReconcileResponsePreparedStackExtendAzureResource | undefined; + resource?: + | SyncReconcileResponsePendingPreparedStackExtendAzureResource + | undefined; /** * Azure-specific binding specification */ - stack?: SyncReconcileResponsePreparedStackExtendAzureStack | undefined; + stack?: SyncReconcileResponsePendingPreparedStackExtendAzureStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileResponsePreparedStackExtendAzureGrant = { +export type SyncReconcileResponsePendingPreparedStackExtendAzureGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2581,11 +2626,11 @@ export type SyncReconcileResponsePreparedStackExtendAzureGrant = { /** * Azure-specific platform permission configuration */ -export type SyncReconcileResponsePreparedStackExtendAzure = { +export type SyncReconcileResponsePendingPreparedStackExtendAzure = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileResponsePreparedStackExtendAzureBinding; + binding: SyncReconcileResponsePendingPreparedStackExtendAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2593,7 +2638,7 @@ export type SyncReconcileResponsePreparedStackExtendAzure = { /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileResponsePreparedStackExtendAzureGrant; + grant: SyncReconcileResponsePendingPreparedStackExtendAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2603,21 +2648,21 @@ export type SyncReconcileResponsePreparedStackExtendAzure = { /** * GCP IAM condition */ -export type SyncReconcileResponsePreparedStackExtendConditionResource = { +export type SyncReconcileResponsePendingPreparedStackExtendConditionResource = { expression: string; title: string; }; -export type SyncReconcileResponsePreparedStackExtendResourceConditionUnion = - | SyncReconcileResponsePreparedStackExtendConditionResource +export type SyncReconcileResponsePendingPreparedStackExtendResourceConditionUnion = + | SyncReconcileResponsePendingPreparedStackExtendConditionResource | any; /** * GCP-specific binding specification */ -export type SyncReconcileResponsePreparedStackExtendGcpResource = { +export type SyncReconcileResponsePendingPreparedStackExtendGcpResource = { condition?: - | SyncReconcileResponsePreparedStackExtendConditionResource + | SyncReconcileResponsePendingPreparedStackExtendConditionResource | any | null | undefined; @@ -2630,21 +2675,21 @@ export type SyncReconcileResponsePreparedStackExtendGcpResource = { /** * GCP IAM condition */ -export type SyncReconcileResponsePreparedStackExtendConditionStack = { +export type SyncReconcileResponsePendingPreparedStackExtendConditionStack = { expression: string; title: string; }; -export type SyncReconcileResponsePreparedStackExtendStackConditionUnion = - | SyncReconcileResponsePreparedStackExtendConditionStack +export type SyncReconcileResponsePendingPreparedStackExtendStackConditionUnion = + | SyncReconcileResponsePendingPreparedStackExtendConditionStack | any; /** * GCP-specific binding specification */ -export type SyncReconcileResponsePreparedStackExtendGcpStack = { +export type SyncReconcileResponsePendingPreparedStackExtendGcpStack = { condition?: - | SyncReconcileResponsePreparedStackExtendConditionStack + | SyncReconcileResponsePendingPreparedStackExtendConditionStack | any | null | undefined; @@ -2657,21 +2702,23 @@ export type SyncReconcileResponsePreparedStackExtendGcpStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileResponsePreparedStackExtendGcpBinding = { +export type SyncReconcileResponsePendingPreparedStackExtendGcpBinding = { /** * GCP-specific binding specification */ - resource?: SyncReconcileResponsePreparedStackExtendGcpResource | undefined; + resource?: + | SyncReconcileResponsePendingPreparedStackExtendGcpResource + | undefined; /** * GCP-specific binding specification */ - stack?: SyncReconcileResponsePreparedStackExtendGcpStack | undefined; + stack?: SyncReconcileResponsePendingPreparedStackExtendGcpStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileResponsePreparedStackExtendGcpGrant = { +export type SyncReconcileResponsePendingPreparedStackExtendGcpGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2697,11 +2744,11 @@ export type SyncReconcileResponsePreparedStackExtendGcpGrant = { /** * GCP-specific platform permission configuration */ -export type SyncReconcileResponsePreparedStackExtendGcp = { +export type SyncReconcileResponsePendingPreparedStackExtendGcp = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileResponsePreparedStackExtendGcpBinding; + binding: SyncReconcileResponsePendingPreparedStackExtendGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2709,7 +2756,7 @@ export type SyncReconcileResponsePreparedStackExtendGcp = { /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileResponsePreparedStackExtendGcpGrant; + grant: SyncReconcileResponsePendingPreparedStackExtendGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2719,28 +2766,34 @@ export type SyncReconcileResponsePreparedStackExtendGcp = { /** * Platform-specific permission configurations */ -export type SyncReconcileResponsePreparedStackExtendPlatforms = { +export type SyncReconcileResponsePendingPreparedStackExtendPlatforms = { /** * AWS permission configurations */ - aws?: Array | null | undefined; + aws?: + | Array + | null + | undefined; /** * Azure permission configurations */ azure?: - | Array + | Array | null | undefined; /** * GCP permission configurations */ - gcp?: Array | null | undefined; + gcp?: + | Array + | null + | undefined; }; /** * A permission set that can be applied across different cloud platforms */ -export type SyncReconcileResponsePreparedStackExtend = { +export type SyncReconcileResponsePendingPreparedStackExtend = { /** * Human-readable description of what this permission set allows */ @@ -2752,17 +2805,17 @@ export type SyncReconcileResponsePreparedStackExtend = { /** * Platform-specific permission configurations */ - platforms: SyncReconcileResponsePreparedStackExtendPlatforms; + platforms: SyncReconcileResponsePendingPreparedStackExtendPlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type SyncReconcileResponsePreparedStackExtendUnion = - | SyncReconcileResponsePreparedStackExtend +export type SyncReconcileResponsePendingPreparedStackExtendUnion = + | SyncReconcileResponsePendingPreparedStackExtend | string; -export type SyncReconcileResponsePreparedStackManagement1 = { +export type SyncReconcileResponsePendingPreparedStackManagement1 = { /** * Permission profile that maps resources to permission sets * @@ -2770,22 +2823,24 @@ export type SyncReconcileResponsePreparedStackManagement1 = { * Key can be "*" for all resources or resource name for specific resource */ extend: { - [k: string]: Array; + [k: string]: Array< + SyncReconcileResponsePendingPreparedStackExtend | string + >; }; }; /** * Management permissions configuration for stack management access */ -export type SyncReconcileResponsePreparedStackManagementUnion = - | SyncReconcileResponsePreparedStackManagement1 - | SyncReconcileResponsePreparedStackManagement2 - | SyncReconcileResponsePreparedStackManagementEnum; +export type SyncReconcileResponsePendingPreparedStackManagementUnion = + | SyncReconcileResponsePendingPreparedStackManagement1 + | SyncReconcileResponsePendingPreparedStackManagement2 + | SyncReconcileResponsePendingPreparedStackManagementEnum; /** * AWS-specific binding specification */ -export type SyncReconcileResponsePreparedStackProfileAwResource = { +export type SyncReconcileResponsePendingPreparedStackProfileAwResource = { /** * Optional condition for additional filtering (rare) */ @@ -2799,7 +2854,7 @@ export type SyncReconcileResponsePreparedStackProfileAwResource = { /** * AWS-specific binding specification */ -export type SyncReconcileResponsePreparedStackProfileAwStack = { +export type SyncReconcileResponsePendingPreparedStackProfileAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -2813,35 +2868,37 @@ export type SyncReconcileResponsePreparedStackProfileAwStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileResponsePreparedStackProfileAwBinding = { +export type SyncReconcileResponsePendingPreparedStackProfileAwBinding = { /** * AWS-specific binding specification */ - resource?: SyncReconcileResponsePreparedStackProfileAwResource | undefined; + resource?: + | SyncReconcileResponsePendingPreparedStackProfileAwResource + | undefined; /** * AWS-specific binding specification */ - stack?: SyncReconcileResponsePreparedStackProfileAwStack | undefined; + stack?: SyncReconcileResponsePendingPreparedStackProfileAwStack | undefined; }; /** * IAM effect. Defaults to Allow. */ -export const SyncReconcileResponsePreparedStackProfileEffect = { +export const SyncReconcileResponsePendingPreparedStackProfileEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type SyncReconcileResponsePreparedStackProfileEffect = ClosedEnum< - typeof SyncReconcileResponsePreparedStackProfileEffect +export type SyncReconcileResponsePendingPreparedStackProfileEffect = ClosedEnum< + typeof SyncReconcileResponsePendingPreparedStackProfileEffect >; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileResponsePreparedStackProfileAwGrant = { +export type SyncReconcileResponsePendingPreparedStackProfileAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2867,11 +2924,11 @@ export type SyncReconcileResponsePreparedStackProfileAwGrant = { /** * AWS-specific platform permission configuration */ -export type SyncReconcileResponsePreparedStackProfileAw = { +export type SyncReconcileResponsePendingPreparedStackProfileAw = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileResponsePreparedStackProfileAwBinding; + binding: SyncReconcileResponsePendingPreparedStackProfileAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2879,11 +2936,11 @@ export type SyncReconcileResponsePreparedStackProfileAw = { /** * IAM effect. Defaults to Allow. */ - effect?: SyncReconcileResponsePreparedStackProfileEffect | undefined; + effect?: SyncReconcileResponsePendingPreparedStackProfileEffect | undefined; /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileResponsePreparedStackProfileAwGrant; + grant: SyncReconcileResponsePendingPreparedStackProfileAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2893,7 +2950,7 @@ export type SyncReconcileResponsePreparedStackProfileAw = { /** * Azure-specific binding specification */ -export type SyncReconcileResponsePreparedStackProfileAzureResource = { +export type SyncReconcileResponsePendingPreparedStackProfileAzureResource = { /** * Scope (subscription/resource group/resource level) */ @@ -2903,7 +2960,7 @@ export type SyncReconcileResponsePreparedStackProfileAzureResource = { /** * Azure-specific binding specification */ -export type SyncReconcileResponsePreparedStackProfileAzureStack = { +export type SyncReconcileResponsePendingPreparedStackProfileAzureStack = { /** * Scope (subscription/resource group/resource level) */ @@ -2913,21 +2970,25 @@ export type SyncReconcileResponsePreparedStackProfileAzureStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileResponsePreparedStackProfileAzureBinding = { +export type SyncReconcileResponsePendingPreparedStackProfileAzureBinding = { /** * Azure-specific binding specification */ - resource?: SyncReconcileResponsePreparedStackProfileAzureResource | undefined; + resource?: + | SyncReconcileResponsePendingPreparedStackProfileAzureResource + | undefined; /** * Azure-specific binding specification */ - stack?: SyncReconcileResponsePreparedStackProfileAzureStack | undefined; + stack?: + | SyncReconcileResponsePendingPreparedStackProfileAzureStack + | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileResponsePreparedStackProfileAzureGrant = { +export type SyncReconcileResponsePendingPreparedStackProfileAzureGrant = { /** * AWS IAM actions (only for AWS) */ @@ -2953,11 +3014,11 @@ export type SyncReconcileResponsePreparedStackProfileAzureGrant = { /** * Azure-specific platform permission configuration */ -export type SyncReconcileResponsePreparedStackProfileAzure = { +export type SyncReconcileResponsePendingPreparedStackProfileAzure = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileResponsePreparedStackProfileAzureBinding; + binding: SyncReconcileResponsePendingPreparedStackProfileAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -2965,7 +3026,7 @@ export type SyncReconcileResponsePreparedStackProfileAzure = { /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileResponsePreparedStackProfileAzureGrant; + grant: SyncReconcileResponsePendingPreparedStackProfileAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -2975,21 +3036,22 @@ export type SyncReconcileResponsePreparedStackProfileAzure = { /** * GCP IAM condition */ -export type SyncReconcileResponsePreparedStackProfileConditionResource = { - expression: string; - title: string; -}; +export type SyncReconcileResponsePendingPreparedStackProfileConditionResource = + { + expression: string; + title: string; + }; -export type SyncReconcileResponsePreparedStackProfileResourceConditionUnion = - | SyncReconcileResponsePreparedStackProfileConditionResource +export type SyncReconcileResponsePendingPreparedStackProfileResourceConditionUnion = + | SyncReconcileResponsePendingPreparedStackProfileConditionResource | any; /** * GCP-specific binding specification */ -export type SyncReconcileResponsePreparedStackProfileGcpResource = { +export type SyncReconcileResponsePendingPreparedStackProfileGcpResource = { condition?: - | SyncReconcileResponsePreparedStackProfileConditionResource + | SyncReconcileResponsePendingPreparedStackProfileConditionResource | any | null | undefined; @@ -3002,21 +3064,21 @@ export type SyncReconcileResponsePreparedStackProfileGcpResource = { /** * GCP IAM condition */ -export type SyncReconcileResponsePreparedStackProfileConditionStack = { +export type SyncReconcileResponsePendingPreparedStackProfileConditionStack = { expression: string; title: string; }; -export type SyncReconcileResponsePreparedStackProfileStackConditionUnion = - | SyncReconcileResponsePreparedStackProfileConditionStack +export type SyncReconcileResponsePendingPreparedStackProfileStackConditionUnion = + | SyncReconcileResponsePendingPreparedStackProfileConditionStack | any; /** * GCP-specific binding specification */ -export type SyncReconcileResponsePreparedStackProfileGcpStack = { +export type SyncReconcileResponsePendingPreparedStackProfileGcpStack = { condition?: - | SyncReconcileResponsePreparedStackProfileConditionStack + | SyncReconcileResponsePendingPreparedStackProfileConditionStack | any | null | undefined; @@ -3029,21 +3091,23 @@ export type SyncReconcileResponsePreparedStackProfileGcpStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileResponsePreparedStackProfileGcpBinding = { +export type SyncReconcileResponsePendingPreparedStackProfileGcpBinding = { /** * GCP-specific binding specification */ - resource?: SyncReconcileResponsePreparedStackProfileGcpResource | undefined; + resource?: + | SyncReconcileResponsePendingPreparedStackProfileGcpResource + | undefined; /** * GCP-specific binding specification */ - stack?: SyncReconcileResponsePreparedStackProfileGcpStack | undefined; + stack?: SyncReconcileResponsePendingPreparedStackProfileGcpStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileResponsePreparedStackProfileGcpGrant = { +export type SyncReconcileResponsePendingPreparedStackProfileGcpGrant = { /** * AWS IAM actions (only for AWS) */ @@ -3069,11 +3133,11 @@ export type SyncReconcileResponsePreparedStackProfileGcpGrant = { /** * GCP-specific platform permission configuration */ -export type SyncReconcileResponsePreparedStackProfileGcp = { +export type SyncReconcileResponsePendingPreparedStackProfileGcp = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileResponsePreparedStackProfileGcpBinding; + binding: SyncReconcileResponsePendingPreparedStackProfileGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -3081,7 +3145,7 @@ export type SyncReconcileResponsePreparedStackProfileGcp = { /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileResponsePreparedStackProfileGcpGrant; + grant: SyncReconcileResponsePendingPreparedStackProfileGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -3091,28 +3155,34 @@ export type SyncReconcileResponsePreparedStackProfileGcp = { /** * Platform-specific permission configurations */ -export type SyncReconcileResponsePreparedStackProfilePlatforms = { +export type SyncReconcileResponsePendingPreparedStackProfilePlatforms = { /** * AWS permission configurations */ - aws?: Array | null | undefined; + aws?: + | Array + | null + | undefined; /** * Azure permission configurations */ azure?: - | Array + | Array | null | undefined; /** * GCP permission configurations */ - gcp?: Array | null | undefined; + gcp?: + | Array + | null + | undefined; }; /** * A permission set that can be applied across different cloud platforms */ -export type SyncReconcileResponsePreparedStackProfile = { +export type SyncReconcileResponsePendingPreparedStackProfile = { /** * Human-readable description of what this permission set allows */ @@ -3124,27 +3194,27 @@ export type SyncReconcileResponsePreparedStackProfile = { /** * Platform-specific permission configurations */ - platforms: SyncReconcileResponsePreparedStackProfilePlatforms; + platforms: SyncReconcileResponsePendingPreparedStackProfilePlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type SyncReconcileResponsePreparedStackProfileUnion = - | SyncReconcileResponsePreparedStackProfile +export type SyncReconcileResponsePendingPreparedStackProfileUnion = + | SyncReconcileResponsePendingPreparedStackProfile | string; /** * Combined permissions configuration that contains both profiles and management */ -export type SyncReconcileResponsePreparedStackPermissions = { +export type SyncReconcileResponsePendingPreparedStackPermissions = { /** * Management permissions configuration for stack management access */ management?: - | SyncReconcileResponsePreparedStackManagement1 - | SyncReconcileResponsePreparedStackManagement2 - | SyncReconcileResponsePreparedStackManagementEnum + | SyncReconcileResponsePendingPreparedStackManagement1 + | SyncReconcileResponsePendingPreparedStackManagement2 + | SyncReconcileResponsePendingPreparedStackManagementEnum | undefined; /** * Permission profiles that define access control for compute services @@ -3154,7 +3224,9 @@ export type SyncReconcileResponsePreparedStackPermissions = { */ profiles: { [k: string]: { - [k: string]: Array; + [k: string]: Array< + SyncReconcileResponsePendingPreparedStackProfile | string + >; }; }; }; @@ -3162,7 +3234,7 @@ export type SyncReconcileResponsePreparedStackPermissions = { /** * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ -export type SyncReconcileResponsePreparedStackConfig = { +export type SyncReconcileResponsePendingPreparedStackConfig = { /** * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. */ @@ -3177,7 +3249,7 @@ export type SyncReconcileResponsePreparedStackConfig = { /** * Reference to a resource by its stable id and resource type. */ -export type SyncReconcileResponsePreparedStackDependency = { +export type SyncReconcileResponsePendingPreparedStackDependency = { id: string; /** * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. @@ -3188,33 +3260,44 @@ export type SyncReconcileResponsePreparedStackDependency = { /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export const SyncReconcileResponsePreparedStackLifecycle = { +export const SyncReconcileResponsePendingPreparedStackLifecycle = { Frozen: "frozen", Live: "live", } as const; /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export type SyncReconcileResponsePreparedStackLifecycle = ClosedEnum< - typeof SyncReconcileResponsePreparedStackLifecycle +export type SyncReconcileResponsePendingPreparedStackLifecycle = ClosedEnum< + typeof SyncReconcileResponsePendingPreparedStackLifecycle >; -export type SyncReconcileResponsePreparedStackResources = { +export type SyncReconcileResponsePendingPreparedStackResources = { /** * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ - config: SyncReconcileResponsePreparedStackConfig; + config: SyncReconcileResponsePendingPreparedStackConfig; /** * Additional dependencies for this resource beyond those defined in the resource itself. * * @remarks * The total dependencies are: resource.get_dependencies() + this list */ - dependencies: Array; + dependencies: Array; + /** + * Id of the boolean stack input that decides whether this resource is + * + * @remarks + * created at all. `None` means always create it. + * + * Set by `.enabled(input)` in the SDK. Setup emitters render the resource + * conditionally on the matching template variable, so a deployer who says no + * never gets the resource, its outputs, or anything derived from it. + */ + enabledWhen?: string | null | undefined; /** * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ - lifecycle: SyncReconcileResponsePreparedStackLifecycle; + lifecycle: SyncReconcileResponsePendingPreparedStackLifecycle; /** * Enable remote bindings for this resource (BYOB use case). * @@ -3228,7 +3311,7 @@ export type SyncReconcileResponsePreparedStackResources = { /** * Represents the target cloud platform. */ -export const SyncReconcileResponsePreparedStackSupportedPlatform = { +export const SyncReconcileResponsePendingPreparedStackSupportedPlatform = { Aws: "aws", Gcp: "gcp", Azure: "azure", @@ -3240,14 +3323,13 @@ export const SyncReconcileResponsePreparedStackSupportedPlatform = { /** * Represents the target cloud platform. */ -export type SyncReconcileResponsePreparedStackSupportedPlatform = ClosedEnum< - typeof SyncReconcileResponsePreparedStackSupportedPlatform ->; +export type SyncReconcileResponsePendingPreparedStackSupportedPlatform = + ClosedEnum; /** * A bag of resources, unaware of any cloud. */ -export type SyncReconcileResponsePreparedStack = { +export type SyncReconcileResponsePendingPreparedStack = { /** * Unique identifier for the stack */ @@ -3255,105 +3337,155 @@ export type SyncReconcileResponsePreparedStack = { /** * Input definitions required before setup or deployment can proceed. */ - inputs?: Array | undefined; + inputs?: Array | undefined; /** * Combined permissions configuration that contains both profiles and management */ - permissions?: SyncReconcileResponsePreparedStackPermissions | undefined; + permissions?: + | SyncReconcileResponsePendingPreparedStackPermissions + | undefined; /** * Map of resource IDs to their configurations and lifecycle settings */ - resources: { [k: string]: SyncReconcileResponsePreparedStackResources }; + resources: { + [k: string]: SyncReconcileResponsePendingPreparedStackResources; + }; /** * Which platforms this stack supports. When None, all platforms are supported. */ supportedPlatforms?: - | Array + | Array | null | undefined; }; -export type SyncReconcileResponsePreparedStackUnion = - | SyncReconcileResponsePreparedStack +export type SyncReconcileResponsePendingPreparedStackUnion = + | SyncReconcileResponsePendingPreparedStack | any; -/** - * Runtime metadata for deployment - * - * @remarks - * - * Stores deployment state that needs to persist across step calls. - */ -export type SyncReconcileResponseRuntimeMetadata = { +export const SyncReconcileResponsePreparedStackTypeStringList = { + StringList: "stringList", +} as const; +export type SyncReconcileResponsePreparedStackTypeStringList = ClosedEnum< + typeof SyncReconcileResponsePreparedStackTypeStringList +>; + +export type SyncReconcileResponsePreparedStackDefaultStringList = { + type: SyncReconcileResponsePreparedStackTypeStringList; /** - * Hash of the environment variables snapshot that was last synced to the vault - * - * @remarks - * Used to avoid redundant sync operations during incremental deployment + * String list default. */ - lastSyncedEnvVarsHash?: string | null | undefined; + value: Array; +}; + +export const SyncReconcileResponsePreparedStackTypeBoolean = { + Boolean: "boolean", +} as const; +export type SyncReconcileResponsePreparedStackTypeBoolean = ClosedEnum< + typeof SyncReconcileResponsePreparedStackTypeBoolean +>; + +export type SyncReconcileResponsePreparedStackDefaultBoolean = { + type: SyncReconcileResponsePreparedStackTypeBoolean; /** - * Exact vault keys owned by the deployment secret synchronizer. This - * - * @remarks - * inventory lets a later snapshot delete removed keys without listing or - * touching unrelated values in the same vault. + * Boolean default. */ - lastSyncedSecretNames?: Array | undefined; - preparedStack?: SyncReconcileResponsePreparedStack | any | null | undefined; + value: boolean; +}; + +export const SyncReconcileResponsePreparedStackTypeNumber = { + Number: "number", +} as const; +export type SyncReconcileResponsePreparedStackTypeNumber = ClosedEnum< + typeof SyncReconcileResponsePreparedStackTypeNumber +>; + +export type SyncReconcileResponsePreparedStackDefaultNumber = { + type: SyncReconcileResponsePreparedStackTypeNumber; /** - * Whether cross-account registry access has been successfully granted. - * - * @remarks - * Set to true after the manager successfully sets the ECR/GAR repo policy - * for this deployment's target account. Prevents redundant API calls on - * every reconcile tick. + * Number default. */ - registryAccessGranted?: boolean | undefined; + value: string; }; -export type SyncReconcileResponseRuntimeMetadataUnion = - | SyncReconcileResponseRuntimeMetadata +export const SyncReconcileResponsePreparedStackTypeString = { + String: "string", +} as const; +export type SyncReconcileResponsePreparedStackTypeString = ClosedEnum< + typeof SyncReconcileResponsePreparedStackTypeString +>; + +export type SyncReconcileResponsePreparedStackDefaultString = { + type: SyncReconcileResponsePreparedStackTypeString; + /** + * String default. + */ + value: string; +}; + +export type SyncReconcileResponsePreparedStackDefaultUnion = + | SyncReconcileResponsePreparedStackDefaultString + | SyncReconcileResponsePreparedStackDefaultNumber + | SyncReconcileResponsePreparedStackDefaultBoolean + | SyncReconcileResponsePreparedStackDefaultStringList | any; /** - * Represents the target cloud platform. + * Environment variable handling for a stack input mapping. */ -export const SyncReconcileResponseStackStatePlatform = { - Aws: "aws", - Gcp: "gcp", - Azure: "azure", - Kubernetes: "kubernetes", - Machines: "machines", - Local: "local", - Test: "test", +export const SyncReconcileResponsePreparedStackTypeEnvEnum = { + Plain: "plain", + Secret: "secret", } as const; /** - * Represents the target cloud platform. + * Environment variable handling for a stack input mapping. */ -export type SyncReconcileResponseStackStatePlatform = ClosedEnum< - typeof SyncReconcileResponseStackStatePlatform +export type SyncReconcileResponsePreparedStackTypeEnvEnum = ClosedEnum< + typeof SyncReconcileResponsePreparedStackTypeEnvEnum >; +export type SyncReconcileResponsePreparedStackTypeUnion = + | SyncReconcileResponsePreparedStackTypeEnvEnum + | any; + /** - * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + * How a resolved stack input is injected into runtime environment variables. */ -export type SyncReconcileResponseStackStateConfig = { +export type SyncReconcileResponsePreparedStackEnv = { /** - * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. + * Environment variable name. */ - id: string; + name: string; /** - * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + * Target resource IDs or patterns. None means every env-capable resource. */ - type: string; - additionalProperties?: { [k: string]: any | null } | undefined; + targetResources?: Array | null | undefined; + type?: SyncReconcileResponsePreparedStackTypeEnvEnum | any | null | undefined; }; +/** + * Primitive stack input kind. + */ +export const SyncReconcileResponsePreparedStackKind = { + String: "string", + Secret: "secret", + Number: "number", + Integer: "integer", + Boolean: "boolean", + Enum: "enum", + StringList: "stringList", +} as const; +/** + * Primitive stack input kind. + */ +export type SyncReconcileResponsePreparedStackKind = ClosedEnum< + typeof SyncReconcileResponsePreparedStackKind +>; + /** * Represents the target cloud platform. */ -export const SyncReconcileResponseControllerPlatformEnum = { +export const SyncReconcileResponsePreparedStackPlatform = { Aws: "aws", Gcp: "gcp", Azure: "azure", @@ -3365,589 +3497,505 @@ export const SyncReconcileResponseControllerPlatformEnum = { /** * Represents the target cloud platform. */ -export type SyncReconcileResponseControllerPlatformEnum = ClosedEnum< - typeof SyncReconcileResponseControllerPlatformEnum +export type SyncReconcileResponsePreparedStackPlatform = ClosedEnum< + typeof SyncReconcileResponsePreparedStackPlatform >; -export type SyncReconcileResponseControllerPlatformUnion = - | SyncReconcileResponseControllerPlatformEnum - | any; - /** - * Reference to a resource by its stable id and resource type. + * Who can provide a stack input value. */ -export type SyncReconcileResponseStackStateDependency = { - id: string; - /** - * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. - */ - type: string; -}; +export const SyncReconcileResponsePreparedStackProvidedBy = { + Developer: "developer", + Deployer: "deployer", +} as const; +/** + * Who can provide a stack input value. + */ +export type SyncReconcileResponsePreparedStackProvidedBy = ClosedEnum< + typeof SyncReconcileResponsePreparedStackProvidedBy +>; /** - * Canonical error container that provides a structured way to represent errors - * - * @remarks - * with rich metadata including error codes, human-readable messages, context, - * and chaining capabilities for error propagation. - * - * This struct is designed to be both machine-readable and user-friendly, - * supporting serialization for API responses and detailed error reporting - * in distributed systems. + * Portable stack input validation constraints. */ -export type SyncReconcileResponseStackStateError = { +export type SyncReconcileResponsePreparedStackValidation = { /** - * A unique identifier for the type of error. - * - * @remarks - * - * This should be a short, machine-readable string that can be used - * by clients to programmatically handle different error types. - * Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" + * Semantic format hint such as url. */ - code: string; + format?: string | null | undefined; /** - * Additional diagnostic information about the error context. - * - * @remarks - * - * This optional field can contain structured data providing more details - * about the error, such as validation errors, request parameters that - * caused the issue, or other relevant context information. + * Maximum number. */ - context?: any | null | undefined; + max?: string | null | undefined; /** - * Optional human-facing remediation hint. + * Maximum string-list items. */ - hint?: string | null | undefined; + maxItems?: number | null | undefined; /** - * HTTP status code for this error. - * - * @remarks - * - * Used when converting the error to an HTTP response. If None, falls back to - * the error type's default status code or 500. + * Maximum string length. */ - httpStatusCode?: number | null | undefined; + maxLength?: number | null | undefined; /** - * Indicates if this is an internal error that should not be exposed to users. - * - * @remarks - * - * When `true`, this error contains sensitive information or implementation - * details that should not be shown to end-users. Such errors should be - * logged for debugging but replaced with generic error messages in responses. + * Minimum number. */ - internal: boolean; + min?: string | null | undefined; /** - * Human-readable error message. - * - * @remarks - * - * This message should be clear and actionable for developers or end-users, - * providing context about what went wrong and potentially how to fix it. + * Minimum string-list items. */ - message: string; + minItems?: number | null | undefined; /** - * Indicates whether the operation that caused the error should be retried. - * - * @remarks - * - * When `true`, the error is transient and the operation might succeed - * if attempted again. When `false`, retrying the same operation is - * unlikely to succeed without changes. + * Minimum string length. */ - retryable: boolean; + minLength?: number | null | undefined; /** - * The underlying error that caused this error, creating an error chain. - * - * @remarks - * - * This allows for proper error propagation and debugging by maintaining - * the full context of how an error occurred through multiple layers - * of an application. + * Portable whole-value regex pattern. */ - source?: any | null | undefined; -}; - -export type SyncReconcileResponseStackStateErrorUnion = - | SyncReconcileResponseStackStateError - | any; - -/** - * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. - */ -export const SyncReconcileResponseStackStateLifecycleEnum = { - Frozen: "frozen", - Live: "live", -} as const; -/** - * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. - */ -export type SyncReconcileResponseStackStateLifecycleEnum = ClosedEnum< - typeof SyncReconcileResponseStackStateLifecycleEnum ->; - -export type SyncReconcileResponseLifecycleUnion = - | SyncReconcileResponseStackStateLifecycleEnum - | any; - -/** - * Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties. - */ -export type SyncReconcileResponseOutputs = { + pattern?: string | null | undefined; /** - * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + * Allowed string enum values. */ - type: string; - additionalProperties?: { [k: string]: any | null } | undefined; + values?: Array | null | undefined; }; -export type SyncReconcileResponseOutputsUnion = - | SyncReconcileResponseOutputs +export type SyncReconcileResponsePreparedStackValidationUnion = + | SyncReconcileResponsePreparedStackValidation | any; /** - * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + * Stack input definition serialized into a release stack. */ -export type SyncReconcileResponsePreviousConfig = { +export type SyncReconcileResponsePreparedStackInput = { + default?: + | SyncReconcileResponsePreparedStackDefaultString + | SyncReconcileResponsePreparedStackDefaultNumber + | SyncReconcileResponsePreparedStackDefaultBoolean + | SyncReconcileResponsePreparedStackDefaultStringList + | any + | null + | undefined; /** - * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. + * Human-facing helper text. + */ + description: string; + /** + * Runtime env-var mappings for v1 input resolution. + */ + env?: Array | undefined; + /** + * Stable input ID used by CLI/API calls. */ id: string; /** - * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + * Primitive stack input kind. */ - type: string; - additionalProperties?: { [k: string]: any | null } | undefined; -}; - -export type SyncReconcileResponsePreviousConfigUnion = - | SyncReconcileResponsePreviousConfig - | any; - -/** - * Represents the high-level status of a resource during its lifecycle. - */ -export const SyncReconcileResponseStackStateStatus = { - Pending: "pending", - Provisioning: "provisioning", - ProvisionFailed: "provision-failed", - Running: "running", - Updating: "updating", - UpdateFailed: "update-failed", - Deleting: "deleting", - DeleteFailed: "delete-failed", - TeardownRequired: "teardown-required", - Deleted: "deleted", - RefreshFailed: "refresh-failed", -} as const; -/** - * Represents the high-level status of a resource during its lifecycle. - */ -export type SyncReconcileResponseStackStateStatus = ClosedEnum< - typeof SyncReconcileResponseStackStateStatus ->; - -/** - * Represents the state of a single resource within the stack for a specific platform. - */ -export type SyncReconcileResponseStackStateResources = { + kind: SyncReconcileResponsePreparedStackKind; /** - * The platform-specific resource controller that manages this resource's lifecycle. - * - * @remarks - * This is None when the resource status is Pending. - * Stored as JSON to make the struct serializable and movable to alien-core. + * Human-facing field label. */ - internal?: any | null | undefined; + label: string; /** - * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + * Example placeholder shown in UI. */ - config: SyncReconcileResponseStackStateConfig; - controllerPlatform?: - | SyncReconcileResponseControllerPlatformEnum - | any + placeholder?: string | null | undefined; + /** + * Platforms where this input applies. + */ + platforms?: + | Array | null | undefined; /** - * Complete list of dependencies for this resource, including infrastructure dependencies. - * - * @remarks - * This preserves the full dependency information from the stack definition. + * Who can provide this value. */ - dependencies?: Array | undefined; - error?: SyncReconcileResponseStackStateError | any | null | undefined; + providedBy: Array; /** - * Stores the controller state that failed, used for manual retry operations. - * - * @remarks - * This allows resuming from the exact point where the failure occurred. - * Stored as JSON to make the struct serializable and movable to alien-core. + * Whether a resolved value is required before deployment can proceed. */ - lastFailedState?: any | null | undefined; - lifecycle?: - | SyncReconcileResponseStackStateLifecycleEnum + required: boolean; + validation?: + | SyncReconcileResponsePreparedStackValidation | any | null | undefined; - outputs?: SyncReconcileResponseOutputs | any | null | undefined; - previousConfig?: SyncReconcileResponsePreviousConfig | any | null | undefined; +}; + +export const SyncReconcileResponsePreparedStackManagementEnum = { + Auto: "auto", +} as const; +export type SyncReconcileResponsePreparedStackManagementEnum = ClosedEnum< + typeof SyncReconcileResponsePreparedStackManagementEnum +>; + +/** + * AWS-specific binding specification + */ +export type SyncReconcileResponsePreparedStackOverrideAwResource = { /** - * Binding parameters for remote access. - * - * @remarks - * Only populated when the resource has `remote_access: true` in its ResourceEntry. - * This is the JSON serialization of the binding configuration (e.g., StorageBinding, VaultBinding). - * Populated by controllers during provisioning using get_binding_params(). + * Optional condition for additional filtering (rare) */ - remoteBindingParams?: any | null | undefined; + condition?: { [k: string]: { [k: string]: string } } | null | undefined; /** - * Tracks consecutive retry attempts for the current state transition. + * Resource ARNs to bind to */ - retryAttempt?: number | undefined; + resources: Array; +}; + +/** + * AWS-specific binding specification + */ +export type SyncReconcileResponsePreparedStackOverrideAwStack = { /** - * Represents the high-level status of a resource during its lifecycle. + * Optional condition for additional filtering (rare) */ - status: SyncReconcileResponseStackStateStatus; + condition?: { [k: string]: { [k: string]: string } } | null | undefined; /** - * The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE). + * Resource ARNs to bind to */ - type: string; + resources: Array; }; /** - * Represents the collective state of all resources in a stack, including platform and pending actions. + * Generic binding configuration for permissions */ -export type SyncReconcileResponseStackState = { - /** - * Represents the target cloud platform. - */ - platform: SyncReconcileResponseStackStatePlatform; +export type SyncReconcileResponsePreparedStackOverrideAwBinding = { /** - * A prefix used for resource naming to ensure uniqueness across deployments. + * AWS-specific binding specification */ - resourcePrefix: string; + resource?: SyncReconcileResponsePreparedStackOverrideAwResource | undefined; /** - * The state of individual resources, keyed by resource ID. + * AWS-specific binding specification */ - resources: { [k: string]: SyncReconcileResponseStackStateResources }; + stack?: SyncReconcileResponsePreparedStackOverrideAwStack | undefined; }; -export type SyncReconcileResponseStackStateUnion = - | SyncReconcileResponseStackState - | any; - /** - * Deployment status in the deployment lifecycle. - * - * @remarks - * - * For observe-only deployments with no release or stack state, `Running` - * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; - * resource health comes from inventory and resource heartbeat data. + * IAM effect. Defaults to Allow. */ -export const SyncReconcileResponseStatus = { - Pending: "pending", - PreflightsFailed: "preflights-failed", - InitialSetup: "initial-setup", - InitialSetupFailed: "initial-setup-failed", - Provisioning: "provisioning", - WaitingForMachines: "waiting-for-machines", - ProvisioningFailed: "provisioning-failed", - Running: "running", - RefreshFailed: "refresh-failed", - UpdatePending: "update-pending", - Updating: "updating", - UpdateFailed: "update-failed", - DeletePending: "delete-pending", - Deleting: "deleting", - DeleteFailed: "delete-failed", - TeardownRequired: "teardown-required", - TeardownFailed: "teardown-failed", - Deleted: "deleted", - Error: "error", +export const SyncReconcileResponsePreparedStackOverrideEffect = { + Allow: "Allow", + Deny: "Deny", } as const; /** - * Deployment status in the deployment lifecycle. - * - * @remarks - * - * For observe-only deployments with no release or stack state, `Running` - * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; - * resource health comes from inventory and resource heartbeat data. + * IAM effect. Defaults to Allow. */ -export type SyncReconcileResponseStatus = ClosedEnum< - typeof SyncReconcileResponseStatus ->; - -export const SyncReconcileResponseTargetReleaseTypeStringList = { - StringList: "stringList", -} as const; -export type SyncReconcileResponseTargetReleaseTypeStringList = ClosedEnum< - typeof SyncReconcileResponseTargetReleaseTypeStringList +export type SyncReconcileResponsePreparedStackOverrideEffect = ClosedEnum< + typeof SyncReconcileResponsePreparedStackOverrideEffect >; -export type SyncReconcileResponseTargetReleaseDefaultStringList = { - type: SyncReconcileResponseTargetReleaseTypeStringList; +/** + * Grant permissions for a specific cloud platform + */ +export type SyncReconcileResponsePreparedStackOverrideAwGrant = { /** - * String list default. + * AWS IAM actions (only for AWS) */ - value: Array; -}; - -export const SyncReconcileResponseTargetReleaseTypeBoolean = { - Boolean: "boolean", -} as const; -export type SyncReconcileResponseTargetReleaseTypeBoolean = ClosedEnum< - typeof SyncReconcileResponseTargetReleaseTypeBoolean ->; - -export type SyncReconcileResponseTargetReleaseDefaultBoolean = { - type: SyncReconcileResponseTargetReleaseTypeBoolean; + actions?: Array | null | undefined; /** - * Boolean default. + * Azure actions (only for Azure) */ - value: boolean; -}; - -export const SyncReconcileResponseTargetReleaseTypeNumber = { - Number: "number", -} as const; -export type SyncReconcileResponseTargetReleaseTypeNumber = ClosedEnum< - typeof SyncReconcileResponseTargetReleaseTypeNumber ->; - -export type SyncReconcileResponseTargetReleaseDefaultNumber = { - type: SyncReconcileResponseTargetReleaseTypeNumber; + dataActions?: Array | null | undefined; /** - * Number default. + * GCP permissions that require an exact residual custom role. */ - value: string; -}; - -export const SyncReconcileResponseTargetReleaseTypeString = { - String: "string", -} as const; -export type SyncReconcileResponseTargetReleaseTypeString = ClosedEnum< - typeof SyncReconcileResponseTargetReleaseTypeString ->; - -export type SyncReconcileResponseTargetReleaseDefaultString = { - type: SyncReconcileResponseTargetReleaseTypeString; + permissions?: Array | null | undefined; /** - * String default. + * Provider predefined roles to bind directly. */ - value: string; + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; }; -export type SyncReconcileResponseTargetReleaseDefaultUnion = - | SyncReconcileResponseTargetReleaseDefaultString - | SyncReconcileResponseTargetReleaseDefaultNumber - | SyncReconcileResponseTargetReleaseDefaultBoolean - | SyncReconcileResponseTargetReleaseDefaultStringList - | any; - -/** - * Environment variable handling for a stack input mapping. - */ -export const SyncReconcileResponseTargetReleaseTypeEnvEnum = { - Plain: "plain", - Secret: "secret", -} as const; -/** - * Environment variable handling for a stack input mapping. - */ -export type SyncReconcileResponseTargetReleaseTypeEnvEnum = ClosedEnum< - typeof SyncReconcileResponseTargetReleaseTypeEnvEnum ->; - -export type SyncReconcileResponseTargetReleaseTypeUnion = - | SyncReconcileResponseTargetReleaseTypeEnvEnum - | any; - /** - * How a resolved stack input is injected into runtime environment variables. + * AWS-specific platform permission configuration */ -export type SyncReconcileResponseTargetReleaseEnv = { +export type SyncReconcileResponsePreparedStackOverrideAw = { /** - * Environment variable name. + * Generic binding configuration for permissions */ - name: string; + binding: SyncReconcileResponsePreparedStackOverrideAwBinding; /** - * Target resource IDs or patterns. None means every env-capable resource. + * Short admin-facing description of why this entry exists. */ - targetResources?: Array | null | undefined; - type?: SyncReconcileResponseTargetReleaseTypeEnvEnum | any | null | undefined; + description?: string | null | undefined; + /** + * IAM effect. Defaults to Allow. + */ + effect?: SyncReconcileResponsePreparedStackOverrideEffect | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncReconcileResponsePreparedStackOverrideAwGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; }; /** - * Primitive stack input kind. - */ -export const SyncReconcileResponseTargetReleaseKind = { - String: "string", - Secret: "secret", - Number: "number", - Integer: "integer", - Boolean: "boolean", - Enum: "enum", - StringList: "stringList", -} as const; -/** - * Primitive stack input kind. + * Azure-specific binding specification */ -export type SyncReconcileResponseTargetReleaseKind = ClosedEnum< - typeof SyncReconcileResponseTargetReleaseKind ->; +export type SyncReconcileResponsePreparedStackOverrideAzureResource = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; /** - * Represents the target cloud platform. - */ -export const SyncReconcileResponseTargetReleasePlatform = { - Aws: "aws", - Gcp: "gcp", - Azure: "azure", - Kubernetes: "kubernetes", - Machines: "machines", - Local: "local", - Test: "test", -} as const; -/** - * Represents the target cloud platform. + * Azure-specific binding specification */ -export type SyncReconcileResponseTargetReleasePlatform = ClosedEnum< - typeof SyncReconcileResponseTargetReleasePlatform ->; +export type SyncReconcileResponsePreparedStackOverrideAzureStack = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; /** - * Who can provide a stack input value. - */ -export const SyncReconcileResponseTargetReleaseProvidedBy = { - Developer: "developer", - Deployer: "deployer", -} as const; -/** - * Who can provide a stack input value. + * Generic binding configuration for permissions */ -export type SyncReconcileResponseTargetReleaseProvidedBy = ClosedEnum< - typeof SyncReconcileResponseTargetReleaseProvidedBy ->; +export type SyncReconcileResponsePreparedStackOverrideAzureBinding = { + /** + * Azure-specific binding specification + */ + resource?: + | SyncReconcileResponsePreparedStackOverrideAzureResource + | undefined; + /** + * Azure-specific binding specification + */ + stack?: SyncReconcileResponsePreparedStackOverrideAzureStack | undefined; +}; /** - * Portable stack input validation constraints. + * Grant permissions for a specific cloud platform */ -export type SyncReconcileResponseTargetReleaseValidation = { +export type SyncReconcileResponsePreparedStackOverrideAzureGrant = { /** - * Semantic format hint such as url. + * AWS IAM actions (only for AWS) */ - format?: string | null | undefined; + actions?: Array | null | undefined; /** - * Maximum number. + * Azure actions (only for Azure) */ - max?: string | null | undefined; + dataActions?: Array | null | undefined; /** - * Maximum string-list items. + * GCP permissions that require an exact residual custom role. */ - maxItems?: number | null | undefined; + permissions?: Array | null | undefined; /** - * Maximum string length. + * Provider predefined roles to bind directly. */ - maxLength?: number | null | undefined; + predefinedRoles?: Array | null | undefined; /** - * Minimum number. + * GCP residual custom permissions to pair with predefined roles. */ - min?: string | null | undefined; + residualPermissions?: Array | null | undefined; +}; + +/** + * Azure-specific platform permission configuration + */ +export type SyncReconcileResponsePreparedStackOverrideAzure = { /** - * Minimum string-list items. + * Generic binding configuration for permissions */ - minItems?: number | null | undefined; + binding: SyncReconcileResponsePreparedStackOverrideAzureBinding; /** - * Minimum string length. + * Short admin-facing description of why this entry exists. */ - minLength?: number | null | undefined; + description?: string | null | undefined; /** - * Portable whole-value regex pattern. + * Grant permissions for a specific cloud platform */ - pattern?: string | null | undefined; + grant: SyncReconcileResponsePreparedStackOverrideAzureGrant; /** - * Allowed string enum values. + * Stable admin-facing label for this permission entry. */ - values?: Array | null | undefined; + label?: string | null | undefined; }; -export type SyncReconcileResponseTargetReleaseValidationUnion = - | SyncReconcileResponseTargetReleaseValidation +/** + * GCP IAM condition + */ +export type SyncReconcileResponsePreparedStackOverrideConditionResource = { + expression: string; + title: string; +}; + +export type SyncReconcileResponsePreparedStackOverrideResourceConditionUnion = + | SyncReconcileResponsePreparedStackOverrideConditionResource | any; /** - * Stack input definition serialized into a release stack. + * GCP-specific binding specification */ -export type SyncReconcileResponseTargetReleaseInput = { - default?: - | SyncReconcileResponseTargetReleaseDefaultString - | SyncReconcileResponseTargetReleaseDefaultNumber - | SyncReconcileResponseTargetReleaseDefaultBoolean - | SyncReconcileResponseTargetReleaseDefaultStringList +export type SyncReconcileResponsePreparedStackOverrideGcpResource = { + condition?: + | SyncReconcileResponsePreparedStackOverrideConditionResource | any | null | undefined; /** - * Human-facing helper text. + * Scope (project/resource level) */ - description: string; + scope: string; +}; + +/** + * GCP IAM condition + */ +export type SyncReconcileResponsePreparedStackOverrideConditionStack = { + expression: string; + title: string; +}; + +export type SyncReconcileResponsePreparedStackOverrideStackConditionUnion = + | SyncReconcileResponsePreparedStackOverrideConditionStack + | any; + +/** + * GCP-specific binding specification + */ +export type SyncReconcileResponsePreparedStackOverrideGcpStack = { + condition?: + | SyncReconcileResponsePreparedStackOverrideConditionStack + | any + | null + | undefined; /** - * Runtime env-var mappings for v1 input resolution. + * Scope (project/resource level) */ - env?: Array | undefined; + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type SyncReconcileResponsePreparedStackOverrideGcpBinding = { /** - * Stable input ID used by CLI/API calls. + * GCP-specific binding specification */ - id: string; + resource?: SyncReconcileResponsePreparedStackOverrideGcpResource | undefined; /** - * Primitive stack input kind. + * GCP-specific binding specification */ - kind: SyncReconcileResponseTargetReleaseKind; + stack?: SyncReconcileResponsePreparedStackOverrideGcpStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type SyncReconcileResponsePreparedStackOverrideGcpGrant = { /** - * Human-facing field label. + * AWS IAM actions (only for AWS) */ - label: string; + actions?: Array | null | undefined; /** - * Example placeholder shown in UI. + * Azure actions (only for Azure) */ - placeholder?: string | null | undefined; + dataActions?: Array | null | undefined; /** - * Platforms where this input applies. + * GCP permissions that require an exact residual custom role. */ - platforms?: - | Array - | null - | undefined; + permissions?: Array | null | undefined; /** - * Who can provide this value. + * Provider predefined roles to bind directly. */ - providedBy: Array; + predefinedRoles?: Array | null | undefined; /** - * Whether a resolved value is required before deployment can proceed. + * GCP residual custom permissions to pair with predefined roles. */ - required: boolean; - validation?: - | SyncReconcileResponseTargetReleaseValidation - | any + residualPermissions?: Array | null | undefined; +}; + +/** + * GCP-specific platform permission configuration + */ +export type SyncReconcileResponsePreparedStackOverrideGcp = { + /** + * Generic binding configuration for permissions + */ + binding: SyncReconcileResponsePreparedStackOverrideGcpBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncReconcileResponsePreparedStackOverrideGcpGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Platform-specific permission configurations + */ +export type SyncReconcileResponsePreparedStackOverridePlatforms = { + /** + * AWS permission configurations + */ + aws?: Array | null | undefined; + /** + * Azure permission configurations + */ + azure?: + | Array | null | undefined; + /** + * GCP permission configurations + */ + gcp?: Array | null | undefined; }; -export const SyncReconcileResponseTargetReleaseManagementEnum = { - Auto: "auto", -} as const; -export type SyncReconcileResponseTargetReleaseManagementEnum = ClosedEnum< - typeof SyncReconcileResponseTargetReleaseManagementEnum ->; +/** + * A permission set that can be applied across different cloud platforms + */ +export type SyncReconcileResponsePreparedStackOverride = { + /** + * Human-readable description of what this permission set allows + */ + description: string; + /** + * Unique identifier for the permission set (e.g., "storage/data-read") + */ + id: string; + /** + * Platform-specific permission configurations + */ + platforms: SyncReconcileResponsePreparedStackOverridePlatforms; +}; + +/** + * Reference to a permission set - either by name or inline definition + */ +export type SyncReconcileResponsePreparedStackOverrideUnion = + | SyncReconcileResponsePreparedStackOverride + | string; + +export type SyncReconcileResponsePreparedStackManagement2 = { + /** + * Permission profile that maps resources to permission sets + * + * @remarks + * Key can be "*" for all resources or resource name for specific resource + */ + override: { + [k: string]: Array; + }; +}; /** * AWS-specific binding specification */ -export type SyncReconcileResponseTargetReleaseOverrideAwResource = { +export type SyncReconcileResponsePreparedStackExtendAwResource = { /** * Optional condition for additional filtering (rare) */ @@ -3961,7 +4009,7 @@ export type SyncReconcileResponseTargetReleaseOverrideAwResource = { /** * AWS-specific binding specification */ -export type SyncReconcileResponseTargetReleaseOverrideAwStack = { +export type SyncReconcileResponsePreparedStackExtendAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -3975,35 +4023,35 @@ export type SyncReconcileResponseTargetReleaseOverrideAwStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileResponseTargetReleaseOverrideAwBinding = { +export type SyncReconcileResponsePreparedStackExtendAwBinding = { /** * AWS-specific binding specification */ - resource?: SyncReconcileResponseTargetReleaseOverrideAwResource | undefined; + resource?: SyncReconcileResponsePreparedStackExtendAwResource | undefined; /** * AWS-specific binding specification */ - stack?: SyncReconcileResponseTargetReleaseOverrideAwStack | undefined; + stack?: SyncReconcileResponsePreparedStackExtendAwStack | undefined; }; /** * IAM effect. Defaults to Allow. */ -export const SyncReconcileResponseTargetReleaseOverrideEffect = { +export const SyncReconcileResponsePreparedStackExtendEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type SyncReconcileResponseTargetReleaseOverrideEffect = ClosedEnum< - typeof SyncReconcileResponseTargetReleaseOverrideEffect +export type SyncReconcileResponsePreparedStackExtendEffect = ClosedEnum< + typeof SyncReconcileResponsePreparedStackExtendEffect >; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileResponseTargetReleaseOverrideAwGrant = { +export type SyncReconcileResponsePreparedStackExtendAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -4029,11 +4077,11 @@ export type SyncReconcileResponseTargetReleaseOverrideAwGrant = { /** * AWS-specific platform permission configuration */ -export type SyncReconcileResponseTargetReleaseOverrideAw = { +export type SyncReconcileResponsePreparedStackExtendAw = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileResponseTargetReleaseOverrideAwBinding; + binding: SyncReconcileResponsePreparedStackExtendAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -4041,11 +4089,11 @@ export type SyncReconcileResponseTargetReleaseOverrideAw = { /** * IAM effect. Defaults to Allow. */ - effect?: SyncReconcileResponseTargetReleaseOverrideEffect | undefined; + effect?: SyncReconcileResponsePreparedStackExtendEffect | undefined; /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileResponseTargetReleaseOverrideAwGrant; + grant: SyncReconcileResponsePreparedStackExtendAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -4055,7 +4103,7 @@ export type SyncReconcileResponseTargetReleaseOverrideAw = { /** * Azure-specific binding specification */ -export type SyncReconcileResponseTargetReleaseOverrideAzureResource = { +export type SyncReconcileResponsePreparedStackExtendAzureResource = { /** * Scope (subscription/resource group/resource level) */ @@ -4065,7 +4113,7 @@ export type SyncReconcileResponseTargetReleaseOverrideAzureResource = { /** * Azure-specific binding specification */ -export type SyncReconcileResponseTargetReleaseOverrideAzureStack = { +export type SyncReconcileResponsePreparedStackExtendAzureStack = { /** * Scope (subscription/resource group/resource level) */ @@ -4075,23 +4123,21 @@ export type SyncReconcileResponseTargetReleaseOverrideAzureStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileResponseTargetReleaseOverrideAzureBinding = { +export type SyncReconcileResponsePreparedStackExtendAzureBinding = { /** * Azure-specific binding specification */ - resource?: - | SyncReconcileResponseTargetReleaseOverrideAzureResource - | undefined; + resource?: SyncReconcileResponsePreparedStackExtendAzureResource | undefined; /** * Azure-specific binding specification */ - stack?: SyncReconcileResponseTargetReleaseOverrideAzureStack | undefined; + stack?: SyncReconcileResponsePreparedStackExtendAzureStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileResponseTargetReleaseOverrideAzureGrant = { +export type SyncReconcileResponsePreparedStackExtendAzureGrant = { /** * AWS IAM actions (only for AWS) */ @@ -4117,11 +4163,11 @@ export type SyncReconcileResponseTargetReleaseOverrideAzureGrant = { /** * Azure-specific platform permission configuration */ -export type SyncReconcileResponseTargetReleaseOverrideAzure = { +export type SyncReconcileResponsePreparedStackExtendAzure = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileResponseTargetReleaseOverrideAzureBinding; + binding: SyncReconcileResponsePreparedStackExtendAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -4129,7 +4175,7 @@ export type SyncReconcileResponseTargetReleaseOverrideAzure = { /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileResponseTargetReleaseOverrideAzureGrant; + grant: SyncReconcileResponsePreparedStackExtendAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -4139,21 +4185,21 @@ export type SyncReconcileResponseTargetReleaseOverrideAzure = { /** * GCP IAM condition */ -export type SyncReconcileResponseTargetReleaseOverrideConditionResource = { +export type SyncReconcileResponsePreparedStackExtendConditionResource = { expression: string; title: string; }; -export type SyncReconcileResponseTargetReleaseOverrideResourceConditionUnion = - | SyncReconcileResponseTargetReleaseOverrideConditionResource +export type SyncReconcileResponsePreparedStackExtendResourceConditionUnion = + | SyncReconcileResponsePreparedStackExtendConditionResource | any; /** * GCP-specific binding specification */ -export type SyncReconcileResponseTargetReleaseOverrideGcpResource = { +export type SyncReconcileResponsePreparedStackExtendGcpResource = { condition?: - | SyncReconcileResponseTargetReleaseOverrideConditionResource + | SyncReconcileResponsePreparedStackExtendConditionResource | any | null | undefined; @@ -4166,21 +4212,21 @@ export type SyncReconcileResponseTargetReleaseOverrideGcpResource = { /** * GCP IAM condition */ -export type SyncReconcileResponseTargetReleaseOverrideCondition = { +export type SyncReconcileResponsePreparedStackExtendConditionStack = { expression: string; title: string; }; -export type SyncReconcileResponseTargetReleaseOverrideConditionUnion = - | SyncReconcileResponseTargetReleaseOverrideCondition +export type SyncReconcileResponsePreparedStackExtendStackConditionUnion = + | SyncReconcileResponsePreparedStackExtendConditionStack | any; /** * GCP-specific binding specification */ -export type SyncReconcileResponseTargetReleaseOverrideGcpStack = { +export type SyncReconcileResponsePreparedStackExtendGcpStack = { condition?: - | SyncReconcileResponseTargetReleaseOverrideCondition + | SyncReconcileResponsePreparedStackExtendConditionStack | any | null | undefined; @@ -4193,21 +4239,21 @@ export type SyncReconcileResponseTargetReleaseOverrideGcpStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileResponseTargetReleaseOverrideGcpBinding = { +export type SyncReconcileResponsePreparedStackExtendGcpBinding = { /** * GCP-specific binding specification */ - resource?: SyncReconcileResponseTargetReleaseOverrideGcpResource | undefined; + resource?: SyncReconcileResponsePreparedStackExtendGcpResource | undefined; /** * GCP-specific binding specification */ - stack?: SyncReconcileResponseTargetReleaseOverrideGcpStack | undefined; + stack?: SyncReconcileResponsePreparedStackExtendGcpStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileResponseTargetReleaseOverrideGcpGrant = { +export type SyncReconcileResponsePreparedStackExtendGcpGrant = { /** * AWS IAM actions (only for AWS) */ @@ -4233,11 +4279,11 @@ export type SyncReconcileResponseTargetReleaseOverrideGcpGrant = { /** * GCP-specific platform permission configuration */ -export type SyncReconcileResponseTargetReleaseOverrideGcp = { +export type SyncReconcileResponsePreparedStackExtendGcp = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileResponseTargetReleaseOverrideGcpBinding; + binding: SyncReconcileResponsePreparedStackExtendGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -4245,7 +4291,7 @@ export type SyncReconcileResponseTargetReleaseOverrideGcp = { /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileResponseTargetReleaseOverrideGcpGrant; + grant: SyncReconcileResponsePreparedStackExtendGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -4255,28 +4301,28 @@ export type SyncReconcileResponseTargetReleaseOverrideGcp = { /** * Platform-specific permission configurations */ -export type SyncReconcileResponseTargetReleaseOverridePlatforms = { +export type SyncReconcileResponsePreparedStackExtendPlatforms = { /** * AWS permission configurations */ - aws?: Array | null | undefined; + aws?: Array | null | undefined; /** * Azure permission configurations */ azure?: - | Array + | Array | null | undefined; /** * GCP permission configurations */ - gcp?: Array | null | undefined; + gcp?: Array | null | undefined; }; /** * A permission set that can be applied across different cloud platforms */ -export type SyncReconcileResponseTargetReleaseOverride = { +export type SyncReconcileResponsePreparedStackExtend = { /** * Human-readable description of what this permission set allows */ @@ -4288,32 +4334,40 @@ export type SyncReconcileResponseTargetReleaseOverride = { /** * Platform-specific permission configurations */ - platforms: SyncReconcileResponseTargetReleaseOverridePlatforms; + platforms: SyncReconcileResponsePreparedStackExtendPlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type SyncReconcileResponseTargetReleaseOverrideUnion = - | SyncReconcileResponseTargetReleaseOverride +export type SyncReconcileResponsePreparedStackExtendUnion = + | SyncReconcileResponsePreparedStackExtend | string; -export type SyncReconcileResponseTargetReleaseManagement2 = { +export type SyncReconcileResponsePreparedStackManagement1 = { /** * Permission profile that maps resources to permission sets * * @remarks * Key can be "*" for all resources or resource name for specific resource */ - override: { - [k: string]: Array; + extend: { + [k: string]: Array; }; }; +/** + * Management permissions configuration for stack management access + */ +export type SyncReconcileResponsePreparedStackManagementUnion = + | SyncReconcileResponsePreparedStackManagement1 + | SyncReconcileResponsePreparedStackManagement2 + | SyncReconcileResponsePreparedStackManagementEnum; + /** * AWS-specific binding specification */ -export type SyncReconcileResponseTargetReleaseExtendAwResource = { +export type SyncReconcileResponsePreparedStackProfileAwResource = { /** * Optional condition for additional filtering (rare) */ @@ -4327,7 +4381,7 @@ export type SyncReconcileResponseTargetReleaseExtendAwResource = { /** * AWS-specific binding specification */ -export type SyncReconcileResponseTargetReleaseExtendAwStack = { +export type SyncReconcileResponsePreparedStackProfileAwStack = { /** * Optional condition for additional filtering (rare) */ @@ -4341,35 +4395,35 @@ export type SyncReconcileResponseTargetReleaseExtendAwStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileResponseTargetReleaseExtendAwBinding = { +export type SyncReconcileResponsePreparedStackProfileAwBinding = { /** * AWS-specific binding specification */ - resource?: SyncReconcileResponseTargetReleaseExtendAwResource | undefined; + resource?: SyncReconcileResponsePreparedStackProfileAwResource | undefined; /** * AWS-specific binding specification */ - stack?: SyncReconcileResponseTargetReleaseExtendAwStack | undefined; + stack?: SyncReconcileResponsePreparedStackProfileAwStack | undefined; }; /** * IAM effect. Defaults to Allow. */ -export const SyncReconcileResponseTargetReleaseExtendEffect = { +export const SyncReconcileResponsePreparedStackProfileEffect = { Allow: "Allow", Deny: "Deny", } as const; /** * IAM effect. Defaults to Allow. */ -export type SyncReconcileResponseTargetReleaseExtendEffect = ClosedEnum< - typeof SyncReconcileResponseTargetReleaseExtendEffect +export type SyncReconcileResponsePreparedStackProfileEffect = ClosedEnum< + typeof SyncReconcileResponsePreparedStackProfileEffect >; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileResponseTargetReleaseExtendAwGrant = { +export type SyncReconcileResponsePreparedStackProfileAwGrant = { /** * AWS IAM actions (only for AWS) */ @@ -4395,11 +4449,11 @@ export type SyncReconcileResponseTargetReleaseExtendAwGrant = { /** * AWS-specific platform permission configuration */ -export type SyncReconcileResponseTargetReleaseExtendAw = { +export type SyncReconcileResponsePreparedStackProfileAw = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileResponseTargetReleaseExtendAwBinding; + binding: SyncReconcileResponsePreparedStackProfileAwBinding; /** * Short admin-facing description of why this entry exists. */ @@ -4407,11 +4461,11 @@ export type SyncReconcileResponseTargetReleaseExtendAw = { /** * IAM effect. Defaults to Allow. */ - effect?: SyncReconcileResponseTargetReleaseExtendEffect | undefined; + effect?: SyncReconcileResponsePreparedStackProfileEffect | undefined; /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileResponseTargetReleaseExtendAwGrant; + grant: SyncReconcileResponsePreparedStackProfileAwGrant; /** * Stable admin-facing label for this permission entry. */ @@ -4421,7 +4475,7 @@ export type SyncReconcileResponseTargetReleaseExtendAw = { /** * Azure-specific binding specification */ -export type SyncReconcileResponseTargetReleaseExtendAzureResource = { +export type SyncReconcileResponsePreparedStackProfileAzureResource = { /** * Scope (subscription/resource group/resource level) */ @@ -4431,7 +4485,7 @@ export type SyncReconcileResponseTargetReleaseExtendAzureResource = { /** * Azure-specific binding specification */ -export type SyncReconcileResponseTargetReleaseExtendAzureStack = { +export type SyncReconcileResponsePreparedStackProfileAzureStack = { /** * Scope (subscription/resource group/resource level) */ @@ -4441,21 +4495,21 @@ export type SyncReconcileResponseTargetReleaseExtendAzureStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileResponseTargetReleaseExtendAzureBinding = { +export type SyncReconcileResponsePreparedStackProfileAzureBinding = { /** * Azure-specific binding specification */ - resource?: SyncReconcileResponseTargetReleaseExtendAzureResource | undefined; + resource?: SyncReconcileResponsePreparedStackProfileAzureResource | undefined; /** * Azure-specific binding specification */ - stack?: SyncReconcileResponseTargetReleaseExtendAzureStack | undefined; + stack?: SyncReconcileResponsePreparedStackProfileAzureStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileResponseTargetReleaseExtendAzureGrant = { +export type SyncReconcileResponsePreparedStackProfileAzureGrant = { /** * AWS IAM actions (only for AWS) */ @@ -4481,11 +4535,11 @@ export type SyncReconcileResponseTargetReleaseExtendAzureGrant = { /** * Azure-specific platform permission configuration */ -export type SyncReconcileResponseTargetReleaseExtendAzure = { +export type SyncReconcileResponsePreparedStackProfileAzure = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileResponseTargetReleaseExtendAzureBinding; + binding: SyncReconcileResponsePreparedStackProfileAzureBinding; /** * Short admin-facing description of why this entry exists. */ @@ -4493,7 +4547,7 @@ export type SyncReconcileResponseTargetReleaseExtendAzure = { /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileResponseTargetReleaseExtendAzureGrant; + grant: SyncReconcileResponsePreparedStackProfileAzureGrant; /** * Stable admin-facing label for this permission entry. */ @@ -4503,21 +4557,21 @@ export type SyncReconcileResponseTargetReleaseExtendAzure = { /** * GCP IAM condition */ -export type SyncReconcileResponseTargetReleaseExtendConditionResource = { +export type SyncReconcileResponsePreparedStackProfileConditionResource = { expression: string; title: string; }; -export type SyncReconcileResponseTargetReleaseExtendResourceConditionUnion = - | SyncReconcileResponseTargetReleaseExtendConditionResource +export type SyncReconcileResponsePreparedStackProfileResourceConditionUnion = + | SyncReconcileResponsePreparedStackProfileConditionResource | any; /** * GCP-specific binding specification */ -export type SyncReconcileResponseTargetReleaseExtendGcpResource = { +export type SyncReconcileResponsePreparedStackProfileGcpResource = { condition?: - | SyncReconcileResponseTargetReleaseExtendConditionResource + | SyncReconcileResponsePreparedStackProfileConditionResource | any | null | undefined; @@ -4530,21 +4584,21 @@ export type SyncReconcileResponseTargetReleaseExtendGcpResource = { /** * GCP IAM condition */ -export type SyncReconcileResponseTargetReleaseExtendCondition = { +export type SyncReconcileResponsePreparedStackProfileConditionStack = { expression: string; title: string; }; -export type SyncReconcileResponseTargetReleaseExtendConditionUnion = - | SyncReconcileResponseTargetReleaseExtendCondition +export type SyncReconcileResponsePreparedStackProfileStackConditionUnion = + | SyncReconcileResponsePreparedStackProfileConditionStack | any; /** * GCP-specific binding specification */ -export type SyncReconcileResponseTargetReleaseExtendGcpStack = { +export type SyncReconcileResponsePreparedStackProfileGcpStack = { condition?: - | SyncReconcileResponseTargetReleaseExtendCondition + | SyncReconcileResponsePreparedStackProfileConditionStack | any | null | undefined; @@ -4557,21 +4611,21 @@ export type SyncReconcileResponseTargetReleaseExtendGcpStack = { /** * Generic binding configuration for permissions */ -export type SyncReconcileResponseTargetReleaseExtendGcpBinding = { +export type SyncReconcileResponsePreparedStackProfileGcpBinding = { /** * GCP-specific binding specification */ - resource?: SyncReconcileResponseTargetReleaseExtendGcpResource | undefined; + resource?: SyncReconcileResponsePreparedStackProfileGcpResource | undefined; /** * GCP-specific binding specification */ - stack?: SyncReconcileResponseTargetReleaseExtendGcpStack | undefined; + stack?: SyncReconcileResponsePreparedStackProfileGcpStack | undefined; }; /** * Grant permissions for a specific cloud platform */ -export type SyncReconcileResponseTargetReleaseExtendGcpGrant = { +export type SyncReconcileResponsePreparedStackProfileGcpGrant = { /** * AWS IAM actions (only for AWS) */ @@ -4597,11 +4651,11 @@ export type SyncReconcileResponseTargetReleaseExtendGcpGrant = { /** * GCP-specific platform permission configuration */ -export type SyncReconcileResponseTargetReleaseExtendGcp = { +export type SyncReconcileResponsePreparedStackProfileGcp = { /** * Generic binding configuration for permissions */ - binding: SyncReconcileResponseTargetReleaseExtendGcpBinding; + binding: SyncReconcileResponsePreparedStackProfileGcpBinding; /** * Short admin-facing description of why this entry exists. */ @@ -4609,7 +4663,7 @@ export type SyncReconcileResponseTargetReleaseExtendGcp = { /** * Grant permissions for a specific cloud platform */ - grant: SyncReconcileResponseTargetReleaseExtendGcpGrant; + grant: SyncReconcileResponsePreparedStackProfileGcpGrant; /** * Stable admin-facing label for this permission entry. */ @@ -4619,28 +4673,28 @@ export type SyncReconcileResponseTargetReleaseExtendGcp = { /** * Platform-specific permission configurations */ -export type SyncReconcileResponseTargetReleaseExtendPlatforms = { +export type SyncReconcileResponsePreparedStackProfilePlatforms = { /** * AWS permission configurations */ - aws?: Array | null | undefined; + aws?: Array | null | undefined; /** * Azure permission configurations */ azure?: - | Array + | Array | null | undefined; /** * GCP permission configurations */ - gcp?: Array | null | undefined; + gcp?: Array | null | undefined; }; /** * A permission set that can be applied across different cloud platforms */ -export type SyncReconcileResponseTargetReleaseExtend = { +export type SyncReconcileResponsePreparedStackProfile = { /** * Human-readable description of what this permission set allows */ @@ -4652,417 +4706,470 @@ export type SyncReconcileResponseTargetReleaseExtend = { /** * Platform-specific permission configurations */ - platforms: SyncReconcileResponseTargetReleaseExtendPlatforms; + platforms: SyncReconcileResponsePreparedStackProfilePlatforms; }; /** * Reference to a permission set - either by name or inline definition */ -export type SyncReconcileResponseTargetReleaseExtendUnion = - | SyncReconcileResponseTargetReleaseExtend +export type SyncReconcileResponsePreparedStackProfileUnion = + | SyncReconcileResponsePreparedStackProfile | string; -export type SyncReconcileResponseTargetReleaseManagement1 = { - /** - * Permission profile that maps resources to permission sets - * - * @remarks - * Key can be "*" for all resources or resource name for specific resource - */ - extend: { - [k: string]: Array; - }; -}; - -/** - * Management permissions configuration for stack management access - */ -export type SyncReconcileResponseTargetReleaseManagementUnion = - | SyncReconcileResponseTargetReleaseManagement1 - | SyncReconcileResponseTargetReleaseManagement2 - | SyncReconcileResponseTargetReleaseManagementEnum; - /** - * AWS-specific binding specification + * Combined permissions configuration that contains both profiles and management */ -export type SyncReconcileResponseTargetReleaseProfileAwResource = { +export type SyncReconcileResponsePreparedStackPermissions = { /** - * Optional condition for additional filtering (rare) + * Management permissions configuration for stack management access */ - condition?: { [k: string]: { [k: string]: string } } | null | undefined; + management?: + | SyncReconcileResponsePreparedStackManagement1 + | SyncReconcileResponsePreparedStackManagement2 + | SyncReconcileResponsePreparedStackManagementEnum + | undefined; /** - * Resource ARNs to bind to + * Permission profiles that define access control for compute services + * + * @remarks + * Key is the profile name, value is the permission configuration */ - resources: Array; + profiles: { + [k: string]: { + [k: string]: Array; + }; + }; }; /** - * AWS-specific binding specification + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ -export type SyncReconcileResponseTargetReleaseProfileAwStack = { +export type SyncReconcileResponsePreparedStackConfig = { /** - * Optional condition for additional filtering (rare) + * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. */ - condition?: { [k: string]: { [k: string]: string } } | null | undefined; + id: string; /** - * Resource ARNs to bind to + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. */ - resources: Array; + type: string; + additionalProperties?: { [k: string]: any | null } | undefined; }; /** - * Generic binding configuration for permissions + * Reference to a resource by its stable id and resource type. */ -export type SyncReconcileResponseTargetReleaseProfileAwBinding = { - /** - * AWS-specific binding specification - */ - resource?: SyncReconcileResponseTargetReleaseProfileAwResource | undefined; +export type SyncReconcileResponsePreparedStackDependency = { + id: string; /** - * AWS-specific binding specification + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. */ - stack?: SyncReconcileResponseTargetReleaseProfileAwStack | undefined; + type: string; }; /** - * IAM effect. Defaults to Allow. + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export const SyncReconcileResponseTargetReleaseProfileEffect = { - Allow: "Allow", - Deny: "Deny", +export const SyncReconcileResponsePreparedStackLifecycle = { + Frozen: "frozen", + Live: "live", } as const; /** - * IAM effect. Defaults to Allow. + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export type SyncReconcileResponseTargetReleaseProfileEffect = ClosedEnum< - typeof SyncReconcileResponseTargetReleaseProfileEffect +export type SyncReconcileResponsePreparedStackLifecycle = ClosedEnum< + typeof SyncReconcileResponsePreparedStackLifecycle >; -/** - * Grant permissions for a specific cloud platform - */ -export type SyncReconcileResponseTargetReleaseProfileAwGrant = { +export type SyncReconcileResponsePreparedStackResources = { /** - * AWS IAM actions (only for AWS) + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ - actions?: Array | null | undefined; + config: SyncReconcileResponsePreparedStackConfig; /** - * Azure actions (only for Azure) + * Additional dependencies for this resource beyond those defined in the resource itself. + * + * @remarks + * The total dependencies are: resource.get_dependencies() + this list */ - dataActions?: Array | null | undefined; + dependencies: Array; /** - * GCP permissions that require an exact residual custom role. + * Id of the boolean stack input that decides whether this resource is + * + * @remarks + * created at all. `None` means always create it. + * + * Set by `.enabled(input)` in the SDK. Setup emitters render the resource + * conditionally on the matching template variable, so a deployer who says no + * never gets the resource, its outputs, or anything derived from it. */ - permissions?: Array | null | undefined; + enabledWhen?: string | null | undefined; /** - * Provider predefined roles to bind directly. + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ - predefinedRoles?: Array | null | undefined; + lifecycle: SyncReconcileResponsePreparedStackLifecycle; /** - * GCP residual custom permissions to pair with predefined roles. + * Enable remote bindings for this resource (BYOB use case). + * + * @remarks + * When true, binding params are synced to StackState's `remote_binding_params`. + * Default: false (prevents sensitive data in synced state). */ - residualPermissions?: Array | null | undefined; + remoteAccess?: boolean | undefined; }; /** - * AWS-specific platform permission configuration + * Represents the target cloud platform. */ -export type SyncReconcileResponseTargetReleaseProfileAw = { - /** - * Generic binding configuration for permissions - */ - binding: SyncReconcileResponseTargetReleaseProfileAwBinding; +export const SyncReconcileResponsePreparedStackSupportedPlatform = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", +} as const; +/** + * Represents the target cloud platform. + */ +export type SyncReconcileResponsePreparedStackSupportedPlatform = ClosedEnum< + typeof SyncReconcileResponsePreparedStackSupportedPlatform +>; + +/** + * A bag of resources, unaware of any cloud. + */ +export type SyncReconcileResponsePreparedStack = { /** - * Short admin-facing description of why this entry exists. + * Unique identifier for the stack */ - description?: string | null | undefined; + id: string; /** - * IAM effect. Defaults to Allow. + * Input definitions required before setup or deployment can proceed. */ - effect?: SyncReconcileResponseTargetReleaseProfileEffect | undefined; + inputs?: Array | undefined; /** - * Grant permissions for a specific cloud platform + * Combined permissions configuration that contains both profiles and management */ - grant: SyncReconcileResponseTargetReleaseProfileAwGrant; + permissions?: SyncReconcileResponsePreparedStackPermissions | undefined; /** - * Stable admin-facing label for this permission entry. + * Map of resource IDs to their configurations and lifecycle settings */ - label?: string | null | undefined; -}; - -/** - * Azure-specific binding specification - */ -export type SyncReconcileResponseTargetReleaseProfileAzureResource = { + resources: { [k: string]: SyncReconcileResponsePreparedStackResources }; /** - * Scope (subscription/resource group/resource level) + * Which platforms this stack supports. When None, all platforms are supported. */ - scope: string; + supportedPlatforms?: + | Array + | null + | undefined; }; -/** - * Azure-specific binding specification - */ -export type SyncReconcileResponseTargetReleaseProfileAzureStack = { - /** - * Scope (subscription/resource group/resource level) - */ - scope: string; -}; +export type SyncReconcileResponsePreparedStackUnion = + | SyncReconcileResponsePreparedStack + | any; /** - * Generic binding configuration for permissions + * One-shot authority for a setup re-import to replace setup-owned resources. */ -export type SyncReconcileResponseTargetReleaseProfileAzureBinding = { +export type SyncReconcileResponseSetupUpdateAuthorization = { /** - * Azure-specific binding specification + * Frozen resource projection from the last successful deployment. */ - resource?: SyncReconcileResponseTargetReleaseProfileAzureResource | undefined; + baselineFrozenDigest: string; /** - * Azure-specific binding specification + * Unique revision used by persistence layers for compare-and-swap updates. */ - stack?: SyncReconcileResponseTargetReleaseProfileAzureStack | undefined; -}; - -/** - * Grant permissions for a specific cloud platform - */ -export type SyncReconcileResponseTargetReleaseProfileAzureGrant = { + nonce: string; /** - * AWS IAM actions (only for AWS) + * Release whose stack was prepared by setup. */ - actions?: Array | null | undefined; + releaseId: string; /** - * Azure actions (only for Azure) + * Exact setup artifact revision that authored this authority. */ - dataActions?: Array | null | undefined; + setupFingerprint: string; /** - * GCP permissions that require an exact residual custom role. + * Setup fingerprint contract version. */ - permissions?: Array | null | undefined; + setupFingerprintVersion: number; /** - * Provider predefined roles to bind directly. + * Stable setup target recorded on the imported deployment. */ - predefinedRoles?: Array | null | undefined; + setupTarget: string; /** - * GCP residual custom permissions to pair with predefined roles. + * Frozen resource projection prepared by the setup re-import. */ - residualPermissions?: Array | null | undefined; + targetFrozenDigest: string; }; +export type SyncReconcileResponseSetupUpdateAuthorizationUnion = + | SyncReconcileResponseSetupUpdateAuthorization + | any; + /** - * Azure-specific platform permission configuration + * Runtime metadata for deployment + * + * @remarks + * + * Stores deployment state that needs to persist across step calls. */ -export type SyncReconcileResponseTargetReleaseProfileAzure = { +export type SyncReconcileResponseRuntimeMetadata = { /** - * Generic binding configuration for permissions + * Actor that owns structural work during the initial setup phase. */ - binding: SyncReconcileResponseTargetReleaseProfileAzureBinding; + initialSetupAuthority?: + | SyncReconcileResponseInitialSetupAuthority + | undefined; /** - * Short admin-facing description of why this entry exists. + * Hash of the environment variables snapshot that was last synced to the vault + * + * @remarks + * Used to avoid redundant sync operations during incremental deployment */ - description?: string | null | undefined; + lastSyncedEnvVarsHash?: string | null | undefined; /** - * Grant permissions for a specific cloud platform + * Exact vault keys owned by the deployment secret synchronizer. This + * + * @remarks + * inventory lets a later snapshot delete removed keys without listing or + * touching unrelated values in the same vault. */ - grant: SyncReconcileResponseTargetReleaseProfileAzureGrant; + lastSyncedSecretNames?: Array | undefined; + pendingPreparedStack?: + | SyncReconcileResponsePendingPreparedStack + | any + | null + | undefined; /** - * Stable admin-facing label for this permission entry. + * Canonical resolved answers for inputs that gate Frozen resources, + * + * @remarks + * keyed by input id, recorded when the deployment is created or its + * setup import registers. + * + * A frozen gate's answer is fixed for the deployment's lifetime: the + * update path refuses input values that conflict with these, and a Live + * resource sharing such an input resolves the persisted answer forever. */ - label?: string | null | undefined; + persistedGateAnswers?: { [k: string]: boolean } | undefined; + preparedStack?: SyncReconcileResponsePreparedStack | any | null | undefined; + /** + * Whether cross-account registry access has been successfully granted. + * + * @remarks + * Set to true after the manager successfully sets the ECR/GAR repo policy + * for this deployment's target account. Prevents redundant API calls on + * every reconcile tick. + */ + registryAccessGranted?: boolean | undefined; + setupUpdateAuthorization?: + | SyncReconcileResponseSetupUpdateAuthorization + | any + | null + | undefined; }; +export type SyncReconcileResponseRuntimeMetadataUnion = + | SyncReconcileResponseRuntimeMetadata + | any; + /** - * GCP IAM condition + * Represents the target cloud platform. */ -export type SyncReconcileResponseTargetReleaseProfileConditionResource = { - expression: string; - title: string; -}; - -export type SyncReconcileResponseTargetReleaseProfileResourceConditionUnion = - | SyncReconcileResponseTargetReleaseProfileConditionResource - | any; +export const SyncReconcileResponseStackStatePlatform = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", +} as const; +/** + * Represents the target cloud platform. + */ +export type SyncReconcileResponseStackStatePlatform = ClosedEnum< + typeof SyncReconcileResponseStackStatePlatform +>; /** - * GCP-specific binding specification + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ -export type SyncReconcileResponseTargetReleaseProfileGcpResource = { - condition?: - | SyncReconcileResponseTargetReleaseProfileConditionResource - | any - | null - | undefined; +export type SyncReconcileResponseStackStateConfig = { /** - * Scope (project/resource level) + * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. */ - scope: string; + id: string; + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + type: string; + additionalProperties?: { [k: string]: any | null } | undefined; }; /** - * GCP IAM condition + * Represents the target cloud platform. */ -export type SyncReconcileResponseTargetReleaseProfileCondition = { - expression: string; - title: string; -}; +export const SyncReconcileResponseControllerPlatformEnum = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", +} as const; +/** + * Represents the target cloud platform. + */ +export type SyncReconcileResponseControllerPlatformEnum = ClosedEnum< + typeof SyncReconcileResponseControllerPlatformEnum +>; -export type SyncReconcileResponseTargetReleaseProfileConditionUnion = - | SyncReconcileResponseTargetReleaseProfileCondition +export type SyncReconcileResponseControllerPlatformUnion = + | SyncReconcileResponseControllerPlatformEnum | any; /** - * GCP-specific binding specification + * Reference to a resource by its stable id and resource type. */ -export type SyncReconcileResponseTargetReleaseProfileGcpStack = { - condition?: - | SyncReconcileResponseTargetReleaseProfileCondition - | any - | null - | undefined; +export type SyncReconcileResponseStackStateDependency = { + id: string; /** - * Scope (project/resource level) + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. */ - scope: string; + type: string; }; /** - * Generic binding configuration for permissions + * Canonical error container that provides a structured way to represent errors + * + * @remarks + * with rich metadata including error codes, human-readable messages, context, + * and chaining capabilities for error propagation. + * + * This struct is designed to be both machine-readable and user-friendly, + * supporting serialization for API responses and detailed error reporting + * in distributed systems. */ -export type SyncReconcileResponseTargetReleaseProfileGcpBinding = { +export type SyncReconcileResponseStackStateError = { /** - * GCP-specific binding specification + * A unique identifier for the type of error. + * + * @remarks + * + * This should be a short, machine-readable string that can be used + * by clients to programmatically handle different error types. + * Examples: "NOT_FOUND", "VALIDATION_ERROR", "TIMEOUT" */ - resource?: SyncReconcileResponseTargetReleaseProfileGcpResource | undefined; + code: string; /** - * GCP-specific binding specification + * Additional diagnostic information about the error context. + * + * @remarks + * + * This optional field can contain structured data providing more details + * about the error, such as validation errors, request parameters that + * caused the issue, or other relevant context information. */ - stack?: SyncReconcileResponseTargetReleaseProfileGcpStack | undefined; -}; - -/** - * Grant permissions for a specific cloud platform - */ -export type SyncReconcileResponseTargetReleaseProfileGcpGrant = { - /** - * AWS IAM actions (only for AWS) - */ - actions?: Array | null | undefined; - /** - * Azure actions (only for Azure) - */ - dataActions?: Array | null | undefined; - /** - * GCP permissions that require an exact residual custom role. - */ - permissions?: Array | null | undefined; + context?: any | null | undefined; /** - * Provider predefined roles to bind directly. + * Optional human-facing remediation hint. */ - predefinedRoles?: Array | null | undefined; + hint?: string | null | undefined; /** - * GCP residual custom permissions to pair with predefined roles. + * HTTP status code for this error. + * + * @remarks + * + * Used when converting the error to an HTTP response. If None, falls back to + * the error type's default status code or 500. */ - residualPermissions?: Array | null | undefined; -}; - -/** - * GCP-specific platform permission configuration - */ -export type SyncReconcileResponseTargetReleaseProfileGcp = { + httpStatusCode?: number | null | undefined; /** - * Generic binding configuration for permissions + * Indicates if this is an internal error that should not be exposed to users. + * + * @remarks + * + * When `true`, this error contains sensitive information or implementation + * details that should not be shown to end-users. Such errors should be + * logged for debugging but replaced with generic error messages in responses. */ - binding: SyncReconcileResponseTargetReleaseProfileGcpBinding; + internal: boolean; /** - * Short admin-facing description of why this entry exists. + * Human-readable error message. + * + * @remarks + * + * This message should be clear and actionable for developers or end-users, + * providing context about what went wrong and potentially how to fix it. */ - description?: string | null | undefined; + message: string; /** - * Grant permissions for a specific cloud platform + * Indicates whether the operation that caused the error should be retried. + * + * @remarks + * + * When `true`, the error is transient and the operation might succeed + * if attempted again. When `false`, retrying the same operation is + * unlikely to succeed without changes. */ - grant: SyncReconcileResponseTargetReleaseProfileGcpGrant; + retryable: boolean; /** - * Stable admin-facing label for this permission entry. + * The underlying error that caused this error, creating an error chain. + * + * @remarks + * + * This allows for proper error propagation and debugging by maintaining + * the full context of how an error occurred through multiple layers + * of an application. */ - label?: string | null | undefined; + source?: any | null | undefined; }; -/** - * Platform-specific permission configurations - */ -export type SyncReconcileResponseTargetReleaseProfilePlatforms = { - /** - * AWS permission configurations - */ - aws?: Array | null | undefined; - /** - * Azure permission configurations - */ - azure?: - | Array - | null - | undefined; - /** - * GCP permission configurations - */ - gcp?: Array | null | undefined; -}; +export type SyncReconcileResponseStackStateErrorUnion = + | SyncReconcileResponseStackStateError + | any; /** - * A permission set that can be applied across different cloud platforms + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export type SyncReconcileResponseTargetReleaseProfile = { - /** - * Human-readable description of what this permission set allows - */ - description: string; - /** - * Unique identifier for the permission set (e.g., "storage/data-read") - */ - id: string; - /** - * Platform-specific permission configurations - */ - platforms: SyncReconcileResponseTargetReleaseProfilePlatforms; -}; - +export const SyncReconcileResponseStackStateLifecycleEnum = { + Frozen: "frozen", + Live: "live", +} as const; /** - * Reference to a permission set - either by name or inline definition + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export type SyncReconcileResponseTargetReleaseProfileUnion = - | SyncReconcileResponseTargetReleaseProfile - | string; +export type SyncReconcileResponseStackStateLifecycleEnum = ClosedEnum< + typeof SyncReconcileResponseStackStateLifecycleEnum +>; + +export type SyncReconcileResponseLifecycleUnion = + | SyncReconcileResponseStackStateLifecycleEnum + | any; /** - * Combined permissions configuration that contains both profiles and management + * Resource outputs that can hold output data for any resource type in the Alien system. All resource outputs share a common 'type' field with additional type-specific output properties. */ -export type SyncReconcileResponseTargetReleasePermissions = { - /** - * Management permissions configuration for stack management access - */ - management?: - | SyncReconcileResponseTargetReleaseManagement1 - | SyncReconcileResponseTargetReleaseManagement2 - | SyncReconcileResponseTargetReleaseManagementEnum - | undefined; +export type SyncReconcileResponseOutputs = { /** - * Permission profiles that define access control for compute services - * - * @remarks - * Key is the profile name, value is the permission configuration + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. */ - profiles: { - [k: string]: { - [k: string]: Array; - }; - }; + type: string; + additionalProperties?: { [k: string]: any | null } | undefined; }; +export type SyncReconcileResponseOutputsUnion = + | SyncReconcileResponseOutputs + | any; + /** * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ -export type SyncReconcileResponseTargetReleaseConfig = { +export type SyncReconcileResponsePreviousConfig = { /** * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. */ @@ -5074,198 +5181,288 @@ export type SyncReconcileResponseTargetReleaseConfig = { additionalProperties?: { [k: string]: any | null } | undefined; }; -/** - * Reference to a resource by its stable id and resource type. - */ -export type SyncReconcileResponseTargetReleaseDependency = { - id: string; - /** - * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. - */ - type: string; -}; +export type SyncReconcileResponsePreviousConfigUnion = + | SyncReconcileResponsePreviousConfig + | any; /** - * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + * Represents the high-level status of a resource during its lifecycle. */ -export const SyncReconcileResponseTargetReleaseLifecycle = { - Frozen: "frozen", - Live: "live", +export const SyncReconcileResponseStackStateStatus = { + Pending: "pending", + Provisioning: "provisioning", + ProvisionFailed: "provision-failed", + Running: "running", + Updating: "updating", + UpdateFailed: "update-failed", + Deleting: "deleting", + DeleteFailed: "delete-failed", + TeardownRequired: "teardown-required", + Deleted: "deleted", + RefreshFailed: "refresh-failed", } as const; /** - * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + * Represents the high-level status of a resource during its lifecycle. */ -export type SyncReconcileResponseTargetReleaseLifecycle = ClosedEnum< - typeof SyncReconcileResponseTargetReleaseLifecycle +export type SyncReconcileResponseStackStateStatus = ClosedEnum< + typeof SyncReconcileResponseStackStateStatus >; -export type SyncReconcileResponseTargetReleaseResources = { +/** + * Represents the state of a single resource within the stack for a specific platform. + */ +export type SyncReconcileResponseStackStateResources = { + /** + * The platform-specific resource controller that manages this resource's lifecycle. + * + * @remarks + * This is None when the resource status is Pending. + * Stored as JSON to make the struct serializable and movable to alien-core. + */ + internal?: any | null | undefined; /** * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ - config: SyncReconcileResponseTargetReleaseConfig; + config: SyncReconcileResponseStackStateConfig; + controllerPlatform?: + | SyncReconcileResponseControllerPlatformEnum + | any + | null + | undefined; /** - * Additional dependencies for this resource beyond those defined in the resource itself. + * Complete list of dependencies for this resource, including infrastructure dependencies. * * @remarks - * The total dependencies are: resource.get_dependencies() + this list + * This preserves the full dependency information from the stack definition. */ - dependencies: Array; + dependencies?: Array | undefined; + error?: SyncReconcileResponseStackStateError | any | null | undefined; /** - * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + * Stores the controller state that failed, used for manual retry operations. + * + * @remarks + * This allows resuming from the exact point where the failure occurred. + * Stored as JSON to make the struct serializable and movable to alien-core. */ - lifecycle: SyncReconcileResponseTargetReleaseLifecycle; + lastFailedState?: any | null | undefined; + lifecycle?: + | SyncReconcileResponseStackStateLifecycleEnum + | any + | null + | undefined; + outputs?: SyncReconcileResponseOutputs | any | null | undefined; + previousConfig?: SyncReconcileResponsePreviousConfig | any | null | undefined; /** - * Enable remote bindings for this resource (BYOB use case). + * Binding parameters for remote access. * * @remarks - * When true, binding params are synced to StackState's `remote_binding_params`. - * Default: false (prevents sensitive data in synced state). + * Only populated when the resource has `remote_access: true` in its ResourceEntry. + * This is the JSON serialization of the binding configuration (e.g., StorageBinding, VaultBinding). + * Populated by controllers during provisioning using get_binding_params(). */ - remoteAccess?: boolean | undefined; -}; - -/** - * Represents the target cloud platform. - */ -export const SyncReconcileResponseTargetReleaseSupportedPlatform = { - Aws: "aws", - Gcp: "gcp", - Azure: "azure", - Kubernetes: "kubernetes", - Machines: "machines", - Local: "local", - Test: "test", -} as const; -/** - * Represents the target cloud platform. - */ -export type SyncReconcileResponseTargetReleaseSupportedPlatform = ClosedEnum< - typeof SyncReconcileResponseTargetReleaseSupportedPlatform ->; - -/** - * A bag of resources, unaware of any cloud. - */ -export type SyncReconcileResponseTargetReleaseStack = { + remoteBindingParams?: any | null | undefined; /** - * Unique identifier for the stack + * Tracks consecutive retry attempts for the current state transition. */ - id: string; + retryAttempt?: number | undefined; /** - * Input definitions required before setup or deployment can proceed. + * Represents the high-level status of a resource during its lifecycle. */ - inputs?: Array | undefined; + status: SyncReconcileResponseStackStateStatus; /** - * Combined permissions configuration that contains both profiles and management + * The high-level type of the resource (e.g., Worker::RESOURCE_TYPE, Storage::RESOURCE_TYPE). */ - permissions?: SyncReconcileResponseTargetReleasePermissions | undefined; + type: string; +}; + +/** + * Represents the collective state of all resources in a stack, including platform and pending actions. + */ +export type SyncReconcileResponseStackState = { /** - * Map of resource IDs to their configurations and lifecycle settings + * Represents the target cloud platform. */ - resources: { [k: string]: SyncReconcileResponseTargetReleaseResources }; + platform: SyncReconcileResponseStackStatePlatform; /** - * Which platforms this stack supports. When None, all platforms are supported. + * A prefix used for resource naming to ensure uniqueness across deployments. */ - supportedPlatforms?: - | Array - | null - | undefined; + resourcePrefix: string; + /** + * The state of individual resources, keyed by resource ID. + */ + resources: { [k: string]: SyncReconcileResponseStackStateResources }; }; +export type SyncReconcileResponseStackStateUnion = + | SyncReconcileResponseStackState + | any; + /** - * Release metadata + * Deployment status in the deployment lifecycle. * * @remarks * - * Identifies a specific release version and includes the stack definition. - * The deployment engine uses this to track which release is currently deployed - * and which is the target. + * For observe-only deployments with no release or stack state, `Running` + * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; + * resource health comes from inventory and resource heartbeat data. */ -export type SyncReconcileResponseTargetRelease = { +export const SyncReconcileResponseStatus = { + Pending: "pending", + PreflightsFailed: "preflights-failed", + InitialSetup: "initial-setup", + InitialSetupFailed: "initial-setup-failed", + Provisioning: "provisioning", + WaitingForMachines: "waiting-for-machines", + ProvisioningFailed: "provisioning-failed", + Running: "running", + RefreshFailed: "refresh-failed", + UpdatePending: "update-pending", + Updating: "updating", + UpdateFailed: "update-failed", + DeletePending: "delete-pending", + Deleting: "deleting", + DeleteFailed: "delete-failed", + TeardownRequired: "teardown-required", + TeardownFailed: "teardown-failed", + Deleted: "deleted", + Error: "error", +} as const; +/** + * Deployment status in the deployment lifecycle. + * + * @remarks + * + * For observe-only deployments with no release or stack state, `Running` + * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; + * resource health comes from inventory and resource heartbeat data. + */ +export type SyncReconcileResponseStatus = ClosedEnum< + typeof SyncReconcileResponseStatus +>; + +export const SyncReconcileResponseTargetReleaseTypeStringList = { + StringList: "stringList", +} as const; +export type SyncReconcileResponseTargetReleaseTypeStringList = ClosedEnum< + typeof SyncReconcileResponseTargetReleaseTypeStringList +>; + +export type SyncReconcileResponseTargetReleaseDefaultStringList = { + type: SyncReconcileResponseTargetReleaseTypeStringList; /** - * Short description of the release + * String list default. */ - description?: string | null | undefined; + value: Array; +}; + +export const SyncReconcileResponseTargetReleaseTypeBoolean = { + Boolean: "boolean", +} as const; +export type SyncReconcileResponseTargetReleaseTypeBoolean = ClosedEnum< + typeof SyncReconcileResponseTargetReleaseTypeBoolean +>; + +export type SyncReconcileResponseTargetReleaseDefaultBoolean = { + type: SyncReconcileResponseTargetReleaseTypeBoolean; /** - * Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no - * - * @remarks - * Alien-assigned release — the platform resolves a release from `version`. + * Boolean default. */ - releaseId?: string | null | undefined; + value: boolean; +}; + +export const SyncReconcileResponseTargetReleaseTypeNumber = { + Number: "number", +} as const; +export type SyncReconcileResponseTargetReleaseTypeNumber = ClosedEnum< + typeof SyncReconcileResponseTargetReleaseTypeNumber +>; + +export type SyncReconcileResponseTargetReleaseDefaultNumber = { + type: SyncReconcileResponseTargetReleaseTypeNumber; /** - * A bag of resources, unaware of any cloud. + * Number default. */ - stack: SyncReconcileResponseTargetReleaseStack; + value: string; +}; + +export const SyncReconcileResponseTargetReleaseTypeString = { + String: "string", +} as const; +export type SyncReconcileResponseTargetReleaseTypeString = ClosedEnum< + typeof SyncReconcileResponseTargetReleaseTypeString +>; + +export type SyncReconcileResponseTargetReleaseDefaultString = { + type: SyncReconcileResponseTargetReleaseTypeString; /** - * Version string (e.g., 2.1.0) + * String default. */ - version?: string | null | undefined; + value: string; }; -export type SyncReconcileResponseTargetReleaseUnion = - | SyncReconcileResponseTargetRelease +export type SyncReconcileResponseTargetReleaseDefaultUnion = + | SyncReconcileResponseTargetReleaseDefaultString + | SyncReconcileResponseTargetReleaseDefaultNumber + | SyncReconcileResponseTargetReleaseDefaultBoolean + | SyncReconcileResponseTargetReleaseDefaultStringList | any; /** - * Current deployment state after reconciliation + * Environment variable handling for a stack input mapping. */ -export type SyncReconcileResponseCurrent = { - currentRelease?: SyncReconcileResponseCurrentRelease | any | null | undefined; - environmentInfo?: - | SyncReconcileResponseEnvironmentInfoGcp - | SyncReconcileResponseEnvironmentInfoAzure - | SyncReconcileResponseEnvironmentInfoLocal - | SyncReconcileResponseEnvironmentInfoAws - | SyncReconcileResponseEnvironmentInfoTest - | any - | null - | undefined; - error?: SyncReconcileResponseError | any | null | undefined; - /** - * Represents the target cloud platform. - */ - platform: SyncReconcileResponseCurrentPlatform; - /** - * Protocol version for cross-actor compatibility. - * - * @remarks - * All actors (manager, push client, agent) check this before stepping. - * Mismatched versions produce a clear error instead of silent corruption. - * See docs/02-manager/10-deployment-protocol.md. - */ - protocolVersion: number; +export const SyncReconcileResponseTargetReleaseTypeEnvEnum = { + Plain: "plain", + Secret: "secret", +} as const; +/** + * Environment variable handling for a stack input mapping. + */ +export type SyncReconcileResponseTargetReleaseTypeEnvEnum = ClosedEnum< + typeof SyncReconcileResponseTargetReleaseTypeEnvEnum +>; + +export type SyncReconcileResponseTargetReleaseTypeUnion = + | SyncReconcileResponseTargetReleaseTypeEnvEnum + | any; + +/** + * How a resolved stack input is injected into runtime environment variables. + */ +export type SyncReconcileResponseTargetReleaseEnv = { /** - * Whether a retry has been requested for a failed deployment - * - * @remarks - * When true and status is a failed state, the deployment system will retry failed resources + * Environment variable name. */ - retryRequested?: boolean | undefined; - runtimeMetadata?: - | SyncReconcileResponseRuntimeMetadata - | any - | null - | undefined; - stackState?: SyncReconcileResponseStackState | any | null | undefined; + name: string; /** - * Deployment status in the deployment lifecycle. - * - * @remarks - * - * For observe-only deployments with no release or stack state, `Running` - * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; - * resource health comes from inventory and resource heartbeat data. + * Target resource IDs or patterns. None means every env-capable resource. */ - status: SyncReconcileResponseStatus; - targetRelease?: SyncReconcileResponseTargetRelease | any | null | undefined; + targetResources?: Array | null | undefined; + type?: SyncReconcileResponseTargetReleaseTypeEnvEnum | any | null | undefined; }; +/** + * Primitive stack input kind. + */ +export const SyncReconcileResponseTargetReleaseKind = { + String: "string", + Secret: "secret", + Number: "number", + Integer: "integer", + Boolean: "boolean", + Enum: "enum", + StringList: "stringList", +} as const; +/** + * Primitive stack input kind. + */ +export type SyncReconcileResponseTargetReleaseKind = ClosedEnum< + typeof SyncReconcileResponseTargetReleaseKind +>; + /** * Represents the target cloud platform. */ -export const SyncReconcileResponseBasePlatformEnum = { +export const SyncReconcileResponseTargetReleasePlatform = { Aws: "aws", Gcp: "gcp", Azure: "azure", @@ -5277,2327 +5474,2028 @@ export const SyncReconcileResponseBasePlatformEnum = { /** * Represents the target cloud platform. */ -export type SyncReconcileResponseBasePlatformEnum = ClosedEnum< - typeof SyncReconcileResponseBasePlatformEnum +export type SyncReconcileResponseTargetReleasePlatform = ClosedEnum< + typeof SyncReconcileResponseTargetReleasePlatform >; -export type SyncReconcileResponseBasePlatformUnion = - | SyncReconcileResponseBasePlatformEnum - | any; +/** + * Who can provide a stack input value. + */ +export const SyncReconcileResponseTargetReleaseProvidedBy = { + Developer: "developer", + Deployer: "deployer", +} as const; +/** + * Who can provide a stack input value. + */ +export type SyncReconcileResponseTargetReleaseProvidedBy = ClosedEnum< + typeof SyncReconcileResponseTargetReleaseProvidedBy +>; /** - * Configuration for a single container worker cluster. - * - * @remarks - * - * Contains the cluster ID and management token needed to interact with - * the managed container control plane API for container operations. + * Portable stack input validation constraints. */ -export type SyncReconcileResponseClusters = { +export type SyncReconcileResponseTargetReleaseValidation = { /** - * Cluster ID (deterministic: workspace/project/deployment/resourceid) + * Semantic format hint such as url. */ - clusterId: string; + format?: string | null | undefined; /** - * Management token for API access (hm_...) - * - * @remarks - * Used by alien-deployment controllers to create/update containers + * Maximum number. */ - managementToken: string; -}; - -/** - * AWS Horizon machine image catalog. - */ -export type SyncReconcileResponseHorizonMachineImageAws = { + max?: string | null | undefined; /** - * AMI IDs by architecture, then AWS region. + * Maximum string-list items. */ - amis: { [k: string]: { [k: string]: string } }; -}; - -export type SyncReconcileResponseHorizonMachineImageAwsUnion = - | SyncReconcileResponseHorizonMachineImageAws - | any; - -/** - * Azure Horizon machine image entry. - */ -export type SyncReconcileResponseAzureImages = { + maxItems?: number | null | undefined; /** - * Azure Compute Gallery image version ID. + * Maximum string length. */ - imageVersionId: string; -}; - -/** - * Azure Horizon machine image catalog. - */ -export type HorizonMachineImageAzureTarget = { + maxLength?: number | null | undefined; /** - * Images by architecture. + * Minimum number. */ - images: { [k: string]: SyncReconcileResponseAzureImages }; -}; - -export type HorizonMachineImageTargetAzureUnion = - | HorizonMachineImageAzureTarget - | any; - -/** - * Base image metadata for the Horizon machine image. - */ -export type SyncReconcileResponseBaseImage = { + min?: string | null | undefined; /** - * Base OS image name. + * Minimum string-list items. */ - name: string; + minItems?: number | null | undefined; /** - * Base OS image version or channel. + * Minimum string length. */ - version: string; -}; - -/** - * GCP Horizon machine image entry. - */ -export type SyncReconcileResponseGcpImages = { + minLength?: number | null | undefined; /** - * Source image self link or image-family URL. + * Portable whole-value regex pattern. */ - sourceImage: string; -}; - -/** - * GCP Horizon machine image catalog. - */ -export type HorizonMachineImageGcpTarget = { + pattern?: string | null | undefined; /** - * Images by architecture. + * Allowed string enum values. */ - images: { [k: string]: SyncReconcileResponseGcpImages }; + values?: Array | null | undefined; }; -export type HorizonMachineImageTargetGcpUnion = - | HorizonMachineImageGcpTarget +export type SyncReconcileResponseTargetReleaseValidationUnion = + | SyncReconcileResponseTargetReleaseValidation | any; /** - * Download artifact for one horizond release platform. + * Stack input definition serialized into a release stack. */ -export type SyncReconcileResponseHorizondArtifacts = { +export type SyncReconcileResponseTargetReleaseInput = { + default?: + | SyncReconcileResponseTargetReleaseDefaultString + | SyncReconcileResponseTargetReleaseDefaultNumber + | SyncReconcileResponseTargetReleaseDefaultBoolean + | SyncReconcileResponseTargetReleaseDefaultStringList + | any + | null + | undefined; /** - * SHA-256 digest for the artifact payload. + * Human-facing helper text. */ - sha256: string; + description: string; /** - * HTTPS URL for the artifact. + * Runtime env-var mappings for v1 input resolution. */ - url: string; -}; - -/** - * Horizon machine image catalog. - * - * @remarks - * - * Platform resolves concrete provider images from this catalog during rollout. - */ -export type SyncReconcileResponseHorizonMachineImage = { - aws?: SyncReconcileResponseHorizonMachineImageAws | any | null | undefined; - azure?: HorizonMachineImageAzureTarget | any | null | undefined; + env?: Array | undefined; /** - * Base image metadata for the Horizon machine image. + * Stable input ID used by CLI/API calls. */ - baseImage: SyncReconcileResponseBaseImage; + id: string; /** - * Logical image channel, such as prod, staging, or canary. + * Primitive stack input kind. */ - channel: string; + kind: SyncReconcileResponseTargetReleaseKind; /** - * Image manifest creation timestamp. + * Human-facing field label. */ - createdAt: string; - gcp?: HorizonMachineImageGcpTarget | any | null | undefined; + label: string; /** - * Git commit SHA used to build the image. + * Example placeholder shown in UI. */ - gitSha: string; + placeholder?: string | null | undefined; /** - * Per-architecture horizond artifacts by release-platform key. + * Platforms where this input applies. */ - horizondArtifacts: { [k: string]: SyncReconcileResponseHorizondArtifacts }; + platforms?: + | Array + | null + | undefined; /** - * horizond daemon version baked into the image. + * Who can provide this value. */ - horizondVersion: string; + providedBy: Array; /** - * Published immutable machine image version. + * Whether a resolved value is required before deployment can proceed. */ - machineImageVersion: string; + required: boolean; + validation?: + | SyncReconcileResponseTargetReleaseValidation + | any + | null + | undefined; }; -export type SyncReconcileResponseHorizonMachineImageUnion = - | SyncReconcileResponseHorizonMachineImage - | any; - -export const ComputeBackendTargetType = { - Horizon: "horizon", +export const SyncReconcileResponseTargetReleaseManagementEnum = { + Auto: "auto", } as const; -export type ComputeBackendTargetType = ClosedEnum< - typeof ComputeBackendTargetType +export type SyncReconcileResponseTargetReleaseManagementEnum = ClosedEnum< + typeof SyncReconcileResponseTargetReleaseManagementEnum >; /** - * Compute backend for Container and Worker resources. - * - * @remarks - * - * Determines how compute workloads are orchestrated on cloud platforms. - * When None, the platform default is used for cloud platforms. + * AWS-specific binding specification */ -export type SyncReconcileResponseComputeBackendHorizon = { +export type SyncReconcileResponseTargetReleaseOverrideAwResource = { /** - * Cluster configurations (one per ComputeCluster resource) - * - * @remarks - * Key: ComputeCluster resource ID from stack - * Value: Cluster ID and management token for that cluster + * Optional condition for additional filtering (rare) */ - clusters: { [k: string]: SyncReconcileResponseClusters }; - horizonMachineImage?: - | SyncReconcileResponseHorizonMachineImage - | any - | null - | undefined; + condition?: { [k: string]: { [k: string]: string } } | null | undefined; /** - * Horizon control-plane API base URL. + * Resource ARNs to bind to */ - url: string; - type: ComputeBackendTargetType; + resources: Array; }; -export type SyncReconcileResponseComputeBackendUnion = - | SyncReconcileResponseComputeBackendHorizon - | any; - -/** - * Certificate status in the certificate lifecycle - */ -export const SyncReconcileResponseAliasCertificateStatus = { - Pending: "pending", - Issued: "issued", - Renewing: "renewing", - RenewalFailed: "renewal-failed", - Failed: "failed", - Deleting: "deleting", -} as const; /** - * Certificate status in the certificate lifecycle + * AWS-specific binding specification */ -export type SyncReconcileResponseAliasCertificateStatus = ClosedEnum< - typeof SyncReconcileResponseAliasCertificateStatus ->; +export type SyncReconcileResponseTargetReleaseOverrideAwStack = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; /** - * DNS record status in the DNS lifecycle + * Generic binding configuration for permissions */ -export const SyncReconcileResponseAliasDnsStatus = { - Pending: "pending", - Active: "active", - Updating: "updating", - Deleting: "deleting", - Failed: "failed", +export type SyncReconcileResponseTargetReleaseOverrideAwBinding = { + /** + * AWS-specific binding specification + */ + resource?: SyncReconcileResponseTargetReleaseOverrideAwResource | undefined; + /** + * AWS-specific binding specification + */ + stack?: SyncReconcileResponseTargetReleaseOverrideAwStack | undefined; +}; + +/** + * IAM effect. Defaults to Allow. + */ +export const SyncReconcileResponseTargetReleaseOverrideEffect = { + Allow: "Allow", + Deny: "Deny", } as const; /** - * DNS record status in the DNS lifecycle + * IAM effect. Defaults to Allow. */ -export type SyncReconcileResponseAliasDnsStatus = ClosedEnum< - typeof SyncReconcileResponseAliasDnsStatus +export type SyncReconcileResponseTargetReleaseOverrideEffect = ClosedEnum< + typeof SyncReconcileResponseTargetReleaseOverrideEffect >; /** - * Certificate and DNS metadata for a managed hostname. - * - * @remarks - * - * Includes decrypted certificate data for issued certificates. - * Private keys are deployment-scoped secrets (like environment variables). + * Grant permissions for a specific cloud platform */ -export type SyncReconcileResponseAlias = { +export type SyncReconcileResponseTargetReleaseOverrideAwGrant = { /** - * Full PEM certificate chain (only present if status is "issued"). + * AWS IAM actions (only for AWS) */ - certificateChain?: string | null | undefined; + actions?: Array | null | undefined; /** - * Certificate ID (for tracking/logging). + * Azure actions (only for Azure) */ - certificateId: string; + dataActions?: Array | null | undefined; /** - * Certificate status in the certificate lifecycle + * GCP permissions that require an exact residual custom role. */ - certificateStatus: SyncReconcileResponseAliasCertificateStatus; + permissions?: Array | null | undefined; /** - * Last DNS error message. Present when DNS previously failed, even if status - * - * @remarks - * was reset to pending for retry. Used to surface actionable error context - * in WaitingForDns failure messages. + * Provider predefined roles to bind directly. */ - dnsError?: string | null | undefined; + predefinedRoles?: Array | null | undefined; /** - * DNS record status in the DNS lifecycle + * GCP residual custom permissions to pair with predefined roles. */ - dnsStatus: SyncReconcileResponseAliasDnsStatus; + residualPermissions?: Array | null | undefined; +}; + +/** + * AWS-specific platform permission configuration + */ +export type SyncReconcileResponseTargetReleaseOverrideAw = { /** - * Fully qualified domain name. + * Generic binding configuration for permissions */ - fqdn: string; + binding: SyncReconcileResponseTargetReleaseOverrideAwBinding; /** - * ISO 8601 timestamp when certificate was issued (for renewal detection). + * Short admin-facing description of why this entry exists. */ - issuedAt?: string | null | undefined; + description?: string | null | undefined; /** - * Decrypted private key (only present if status is "issued"). + * IAM effect. Defaults to Allow. */ - privateKey?: string | null | undefined; + effect?: SyncReconcileResponseTargetReleaseOverrideEffect | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncReconcileResponseTargetReleaseOverrideAwGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; }; /** - * Certificate status in the certificate lifecycle - */ -export const SyncReconcileResponseCertificateStatus = { - Pending: "pending", - Issued: "issued", - Renewing: "renewing", - RenewalFailed: "renewal-failed", - Failed: "failed", - Deleting: "deleting", -} as const; -/** - * Certificate status in the certificate lifecycle - */ -export type SyncReconcileResponseCertificateStatus = ClosedEnum< - typeof SyncReconcileResponseCertificateStatus ->; - -/** - * DNS record status in the DNS lifecycle - */ -export const SyncReconcileResponseDnsStatus = { - Pending: "pending", - Active: "active", - Updating: "updating", - Deleting: "deleting", - Failed: "failed", -} as const; -/** - * DNS record status in the DNS lifecycle - */ -export type SyncReconcileResponseDnsStatus = ClosedEnum< - typeof SyncReconcileResponseDnsStatus ->; - -/** - * Certificate status in the certificate lifecycle - */ -export const SyncReconcileResponseEndpointsCertificateStatus = { - Pending: "pending", - Issued: "issued", - Renewing: "renewing", - RenewalFailed: "renewal-failed", - Failed: "failed", - Deleting: "deleting", -} as const; -/** - * Certificate status in the certificate lifecycle + * Azure-specific binding specification */ -export type SyncReconcileResponseEndpointsCertificateStatus = ClosedEnum< - typeof SyncReconcileResponseEndpointsCertificateStatus ->; +export type SyncReconcileResponseTargetReleaseOverrideAzureResource = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; /** - * DNS record status in the DNS lifecycle - */ -export const SyncReconcileResponseEndpointsDnsStatus = { - Pending: "pending", - Active: "active", - Updating: "updating", - Deleting: "deleting", - Failed: "failed", -} as const; -/** - * DNS record status in the DNS lifecycle + * Azure-specific binding specification */ -export type SyncReconcileResponseEndpointsDnsStatus = ClosedEnum< - typeof SyncReconcileResponseEndpointsDnsStatus ->; +export type SyncReconcileResponseTargetReleaseOverrideAzureStack = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; /** - * Certificate and DNS metadata for a managed hostname. - * - * @remarks - * - * Includes decrypted certificate data for issued certificates. - * Private keys are deployment-scoped secrets (like environment variables). + * Generic binding configuration for permissions */ -export type SyncReconcileResponseEndpoints = { - /** - * Full PEM certificate chain (only present if status is "issued"). - */ - certificateChain?: string | null | undefined; +export type SyncReconcileResponseTargetReleaseOverrideAzureBinding = { /** - * Certificate ID (for tracking/logging). + * Azure-specific binding specification */ - certificateId: string; + resource?: + | SyncReconcileResponseTargetReleaseOverrideAzureResource + | undefined; /** - * Certificate status in the certificate lifecycle + * Azure-specific binding specification */ - certificateStatus: SyncReconcileResponseEndpointsCertificateStatus; + stack?: SyncReconcileResponseTargetReleaseOverrideAzureStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type SyncReconcileResponseTargetReleaseOverrideAzureGrant = { /** - * Last DNS error message. Present when DNS previously failed, even if status - * - * @remarks - * was reset to pending for retry. Used to surface actionable error context - * in WaitingForDns failure messages. + * AWS IAM actions (only for AWS) */ - dnsError?: string | null | undefined; + actions?: Array | null | undefined; /** - * DNS record status in the DNS lifecycle + * Azure actions (only for Azure) */ - dnsStatus: SyncReconcileResponseEndpointsDnsStatus; + dataActions?: Array | null | undefined; /** - * Fully qualified domain name. + * GCP permissions that require an exact residual custom role. */ - fqdn: string; + permissions?: Array | null | undefined; /** - * ISO 8601 timestamp when certificate was issued (for renewal detection). + * Provider predefined roles to bind directly. */ - issuedAt?: string | null | undefined; + predefinedRoles?: Array | null | undefined; /** - * Decrypted private key (only present if status is "issued"). + * GCP residual custom permissions to pair with predefined roles. */ - privateKey?: string | null | undefined; + residualPermissions?: Array | null | undefined; }; /** - * Certificate and DNS metadata for a public resource. - * - * @remarks - * - * The direct fields describe the primary endpoint hostname. `endpoints` - * contains endpoint-scoped metadata keyed by endpoint name. `aliases` contains - * additional managed hostnames that route directly to the primary endpoint. + * Azure-specific platform permission configuration */ -export type DomainMetadataTargetResources = { - /** - * Additional managed hostnames for the resource. - */ - aliases?: Array | undefined; - /** - * Full PEM certificate chain (only present if status is "issued"). - */ - certificateChain?: string | null | undefined; - /** - * Certificate ID (for tracking/logging). - */ - certificateId: string; +export type SyncReconcileResponseTargetReleaseOverrideAzure = { /** - * Certificate status in the certificate lifecycle + * Generic binding configuration for permissions */ - certificateStatus: SyncReconcileResponseCertificateStatus; + binding: SyncReconcileResponseTargetReleaseOverrideAzureBinding; /** - * Last DNS error message. + * Short admin-facing description of why this entry exists. */ - dnsError?: string | null | undefined; + description?: string | null | undefined; /** - * DNS record status in the DNS lifecycle + * Grant permissions for a specific cloud platform */ - dnsStatus: SyncReconcileResponseDnsStatus; + grant: SyncReconcileResponseTargetReleaseOverrideAzureGrant; /** - * Endpoint-scoped metadata keyed by endpoint name. + * Stable admin-facing label for this permission entry. */ - endpoints?: { [k: string]: SyncReconcileResponseEndpoints } | undefined; - /** - * Fully qualified domain name. + label?: string | null | undefined; +}; + +/** + * GCP IAM condition + */ +export type SyncReconcileResponseTargetReleaseOverrideConditionResource = { + expression: string; + title: string; +}; + +export type SyncReconcileResponseTargetReleaseOverrideResourceConditionUnion = + | SyncReconcileResponseTargetReleaseOverrideConditionResource + | any; + +/** + * GCP-specific binding specification + */ +export type SyncReconcileResponseTargetReleaseOverrideGcpResource = { + condition?: + | SyncReconcileResponseTargetReleaseOverrideConditionResource + | any + | null + | undefined; + /** + * Scope (project/resource level) */ - fqdn: string; + scope: string; +}; + +/** + * GCP IAM condition + */ +export type SyncReconcileResponseTargetReleaseOverrideCondition = { + expression: string; + title: string; +}; + +export type SyncReconcileResponseTargetReleaseOverrideConditionUnion = + | SyncReconcileResponseTargetReleaseOverrideCondition + | any; + +/** + * GCP-specific binding specification + */ +export type SyncReconcileResponseTargetReleaseOverrideGcpStack = { + condition?: + | SyncReconcileResponseTargetReleaseOverrideCondition + | any + | null + | undefined; /** - * ISO 8601 timestamp when certificate was issued (for renewal detection). + * Scope (project/resource level) */ - issuedAt?: string | null | undefined; + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type SyncReconcileResponseTargetReleaseOverrideGcpBinding = { /** - * Decrypted private key (only present if status is "issued"). + * GCP-specific binding specification */ - privateKey?: string | null | undefined; + resource?: SyncReconcileResponseTargetReleaseOverrideGcpResource | undefined; + /** + * GCP-specific binding specification + */ + stack?: SyncReconcileResponseTargetReleaseOverrideGcpStack | undefined; }; /** - * Domain metadata for auto-managed public resources (no private keys). + * Grant permissions for a specific cloud platform */ -export type SyncReconcileResponseDomainMetadata = { +export type SyncReconcileResponseTargetReleaseOverrideGcpGrant = { /** - * Base domain for auto-generated domains (e.g., "vpc.direct"). + * AWS IAM actions (only for AWS) */ - baseDomain: string; + actions?: Array | null | undefined; /** - * Hosted zone ID for DNS records. + * Azure actions (only for Azure) */ - hostedZoneId: string; + dataActions?: Array | null | undefined; /** - * Deployment public subdomain (e.g., "k8f2j3"). + * GCP permissions that require an exact residual custom role. */ - publicSubdomain: string; + permissions?: Array | null | undefined; /** - * Metadata per resource ID. + * Provider predefined roles to bind directly. */ - resources: { [k: string]: DomainMetadataTargetResources }; + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; }; -export type SyncReconcileResponseDomainMetadataUnion = - | SyncReconcileResponseDomainMetadata - | any; - -/** - * Type of environment variable - */ -export const TargetEnvironmentVariablesType = { - Plain: "plain", - Secret: "secret", -} as const; -/** - * Type of environment variable - */ -export type TargetEnvironmentVariablesType = ClosedEnum< - typeof TargetEnvironmentVariablesType ->; - /** - * Environment variable for deployment + * GCP-specific platform permission configuration */ -export type SyncReconcileResponseVariable = { +export type SyncReconcileResponseTargetReleaseOverrideGcp = { /** - * Variable name + * Generic binding configuration for permissions */ - name: string; + binding: SyncReconcileResponseTargetReleaseOverrideGcpBinding; /** - * Target resource patterns (null = all resources, Some = wildcard patterns) + * Short admin-facing description of why this entry exists. */ - targetResources?: Array | null | undefined; + description?: string | null | undefined; /** - * Type of environment variable + * Grant permissions for a specific cloud platform */ - type: TargetEnvironmentVariablesType; + grant: SyncReconcileResponseTargetReleaseOverrideGcpGrant; /** - * Variable value (decrypted - deployment has access to decryption keys) + * Stable admin-facing label for this permission entry. */ - value: string; + label?: string | null | undefined; }; /** - * Snapshot of environment variables at a point in time + * Platform-specific permission configurations */ -export type SyncReconcileResponseEnvironmentVariables = { +export type SyncReconcileResponseTargetReleaseOverridePlatforms = { /** - * ISO 8601 timestamp when snapshot was created + * AWS permission configurations */ - createdAt: string; + aws?: Array | null | undefined; /** - * Deterministic hash of all variables (for change detection) + * Azure permission configurations */ - hash: string; + azure?: + | Array + | null + | undefined; /** - * Environment variables in the snapshot + * GCP permission configurations */ - variables: Array; + gcp?: Array | null | undefined; }; /** - * Reference to a Kubernetes Secret + * A permission set that can be applied across different cloud platforms */ -export type SyncReconcileResponseDatabaseSecretRef6 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseDatabase6 = { +export type SyncReconcileResponseTargetReleaseOverride = { /** - * Reference to a Kubernetes Secret + * Human-readable description of what this permission set allows */ - secretRef: SyncReconcileResponseDatabaseSecretRef6; + description: string; + /** + * Unique identifier for the permission set (e.g., "storage/data-read") + */ + id: string; + /** + * Platform-specific permission configurations + */ + platforms: SyncReconcileResponseTargetReleaseOverridePlatforms; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Reference to a permission set - either by name or inline definition */ -export type SyncReconcileResponseDatabaseUnion5 = - | SyncReconcileResponseDatabase6 - | any +export type SyncReconcileResponseTargetReleaseOverrideUnion = + | SyncReconcileResponseTargetReleaseOverride | string; -/** - * Reference to a Kubernetes Secret - */ -export type SyncReconcileResponseHostSecretRef4 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseHost4 = { +export type SyncReconcileResponseTargetReleaseManagement2 = { /** - * Reference to a Kubernetes Secret + * Permission profile that maps resources to permission sets + * + * @remarks + * Key can be "*" for all resources or resource name for specific resource */ - secretRef: SyncReconcileResponseHostSecretRef4; + override: { + [k: string]: Array; + }; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * AWS-specific binding specification */ -export type SyncReconcileResponseHostUnion4 = - | SyncReconcileResponseHost4 - | any - | string; +export type SyncReconcileResponseTargetReleaseExtendAwResource = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; /** - * Reference to a Kubernetes Secret + * AWS-specific binding specification */ -export type SyncReconcileResponsePortSecretRef5 = { - key: string; - name: string; -}; - -export type SyncReconcileResponsePort5 = { +export type SyncReconcileResponseTargetReleaseExtendAwStack = { /** - * Reference to a Kubernetes Secret + * Optional condition for additional filtering (rare) */ - secretRef: SyncReconcileResponsePortSecretRef5; + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Generic binding configuration for permissions */ -export type SyncReconcileResponsePortUnion5 = - | SyncReconcileResponsePort5 - | number - | any; +export type SyncReconcileResponseTargetReleaseExtendAwBinding = { + /** + * AWS-specific binding specification + */ + resource?: SyncReconcileResponseTargetReleaseExtendAwResource | undefined; + /** + * AWS-specific binding specification + */ + stack?: SyncReconcileResponseTargetReleaseExtendAwStack | undefined; +}; /** - * Reference to a Kubernetes Secret + * IAM effect. Defaults to Allow. */ -export type SyncReconcileResponseUsernameSecretRef5 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseUsername5 = { - /** - * Reference to a Kubernetes Secret - */ - secretRef: SyncReconcileResponseUsernameSecretRef5; -}; - +export const SyncReconcileResponseTargetReleaseExtendEffect = { + Allow: "Allow", + Deny: "Deny", +} as const; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * IAM effect. Defaults to Allow. */ -export type SyncReconcileResponseUsernameUnion5 = - | SyncReconcileResponseUsername5 - | any - | string; - -export const TargetTypePostgres5 = { - Postgres: "postgres", -} as const; -export type TargetTypePostgres5 = ClosedEnum; +export type SyncReconcileResponseTargetReleaseExtendEffect = ClosedEnum< + typeof SyncReconcileResponseTargetReleaseExtendEffect +>; /** - * Local embedded Postgres binding. + * Grant permissions for a specific cloud platform */ -export type SyncReconcileResponseExternalBindingsLocalPostgres = { +export type SyncReconcileResponseTargetReleaseExtendAwGrant = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * AWS IAM actions (only for AWS) */ - database?: SyncReconcileResponseDatabase6 | any | string | null | undefined; + actions?: Array | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Azure actions (only for Azure) */ - host?: SyncReconcileResponseHost4 | any | string | null | undefined; - password: string; + dataActions?: Array | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * GCP permissions that require an exact residual custom role. */ - port?: SyncReconcileResponsePort5 | number | any | null | undefined; + permissions?: Array | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Provider predefined roles to bind directly. */ - username?: SyncReconcileResponseUsername5 | any | string | null | undefined; - service: "local-postgres"; - type: TargetTypePostgres5; + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; }; /** - * Reference to a Kubernetes Secret + * AWS-specific platform permission configuration */ -export type SyncReconcileResponseDatabaseSecretRef5 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseDatabase5 = { +export type SyncReconcileResponseTargetReleaseExtendAw = { /** - * Reference to a Kubernetes Secret + * Generic binding configuration for permissions */ - secretRef: SyncReconcileResponseDatabaseSecretRef5; + binding: SyncReconcileResponseTargetReleaseExtendAwBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * IAM effect. Defaults to Allow. + */ + effect?: SyncReconcileResponseTargetReleaseExtendEffect | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncReconcileResponseTargetReleaseExtendAwGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncReconcileResponseDatabaseUnion4 = - | SyncReconcileResponseDatabase5 - | any - | string; - -/** - * Reference to a Kubernetes Secret + * Azure-specific binding specification */ -export type SyncReconcileResponseHostSecretRef3 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseHost3 = { +export type SyncReconcileResponseTargetReleaseExtendAzureResource = { /** - * Reference to a Kubernetes Secret + * Scope (subscription/resource group/resource level) */ - secretRef: SyncReconcileResponseHostSecretRef3; + scope: string; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncReconcileResponseHostUnion3 = - | SyncReconcileResponseHost3 - | any - | string; - -/** - * Reference to a Kubernetes Secret + * Azure-specific binding specification */ -export type SyncReconcileResponsePortSecretRef4 = { - key: string; - name: string; -}; - -export type SyncReconcileResponsePort4 = { +export type SyncReconcileResponseTargetReleaseExtendAzureStack = { /** - * Reference to a Kubernetes Secret + * Scope (subscription/resource group/resource level) */ - secretRef: SyncReconcileResponsePortSecretRef4; + scope: string; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncReconcileResponsePortUnion4 = - | SyncReconcileResponsePort4 - | number - | any; - -/** - * Reference to a Kubernetes Secret + * Generic binding configuration for permissions */ -export type SyncReconcileResponseUsernameSecretRef4 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseUsername4 = { +export type SyncReconcileResponseTargetReleaseExtendAzureBinding = { /** - * Reference to a Kubernetes Secret + * Azure-specific binding specification */ - secretRef: SyncReconcileResponseUsernameSecretRef4; + resource?: SyncReconcileResponseTargetReleaseExtendAzureResource | undefined; + /** + * Azure-specific binding specification + */ + stack?: SyncReconcileResponseTargetReleaseExtendAzureStack | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncReconcileResponseUsernameUnion4 = - | SyncReconcileResponseUsername4 - | any - | string; - -export const TargetTypePostgres4 = { - Postgres: "postgres", -} as const; -export type TargetTypePostgres4 = ClosedEnum; - -/** - * Operator-provided / BYO database binding. + * Grant permissions for a specific cloud platform */ -export type SyncReconcileResponseExternalBindingsExternal = { +export type SyncReconcileResponseTargetReleaseExtendAzureGrant = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * AWS IAM actions (only for AWS) */ - database?: SyncReconcileResponseDatabase5 | any | string | null | undefined; + actions?: Array | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Azure actions (only for Azure) */ - host?: SyncReconcileResponseHost3 | any | string | null | undefined; + dataActions?: Array | null | undefined; /** - * Connection password as a concrete value, never an unresolved `SecretRef`: the platform - * - * @remarks - * materializes the Kubernetes secret into the pod env. The cloud variants carry a secret - * locator instead. + * GCP permissions that require an exact residual custom role. */ - password: string; + permissions?: Array | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Provider predefined roles to bind directly. */ - port?: SyncReconcileResponsePort4 | number | any | null | undefined; + predefinedRoles?: Array | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * GCP residual custom permissions to pair with predefined roles. */ - username?: SyncReconcileResponseUsername4 | any | string | null | undefined; - service: "external"; - type: TargetTypePostgres4; + residualPermissions?: Array | null | undefined; }; /** - * Reference to a Kubernetes Secret + * Azure-specific platform permission configuration */ -export type SyncReconcileResponseDatabaseSecretRef4 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseDatabase4 = { +export type SyncReconcileResponseTargetReleaseExtendAzure = { /** - * Reference to a Kubernetes Secret + * Generic binding configuration for permissions */ - secretRef: SyncReconcileResponseDatabaseSecretRef4; -}; - -/** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncReconcileResponseDatabaseUnion3 = - | SyncReconcileResponseDatabase4 - | any - | string; - -/** - * Reference to a Kubernetes Secret - */ -export type SyncReconcileResponseHostSecretRef2 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseHost2 = { + binding: SyncReconcileResponseTargetReleaseExtendAzureBinding; /** - * Reference to a Kubernetes Secret + * Short admin-facing description of why this entry exists. */ - secretRef: SyncReconcileResponseHostSecretRef2; -}; - -/** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncReconcileResponseHostUnion2 = - | SyncReconcileResponseHost2 - | any - | string; - -/** - * Reference to a Kubernetes Secret - */ -export type SyncReconcileResponsePasswordSecretUriSecretRef = { - key: string; - name: string; -}; - -export type SyncReconcileResponsePasswordSecretUri = { + description?: string | null | undefined; /** - * Reference to a Kubernetes Secret + * Grant permissions for a specific cloud platform */ - secretRef: SyncReconcileResponsePasswordSecretUriSecretRef; + grant: SyncReconcileResponseTargetReleaseExtendAzureGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * GCP IAM condition */ -export type SyncReconcileResponsePasswordSecretUriUnion = - | SyncReconcileResponsePasswordSecretUri - | any - | string; +export type SyncReconcileResponseTargetReleaseExtendConditionResource = { + expression: string; + title: string; +}; + +export type SyncReconcileResponseTargetReleaseExtendResourceConditionUnion = + | SyncReconcileResponseTargetReleaseExtendConditionResource + | any; /** - * Reference to a Kubernetes Secret + * GCP-specific binding specification */ -export type SyncReconcileResponsePortSecretRef3 = { - key: string; - name: string; -}; - -export type SyncReconcileResponsePort3 = { +export type SyncReconcileResponseTargetReleaseExtendGcpResource = { + condition?: + | SyncReconcileResponseTargetReleaseExtendConditionResource + | any + | null + | undefined; /** - * Reference to a Kubernetes Secret + * Scope (project/resource level) */ - secretRef: SyncReconcileResponsePortSecretRef3; + scope: string; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * GCP IAM condition */ -export type SyncReconcileResponsePortUnion3 = - | SyncReconcileResponsePort3 - | number +export type SyncReconcileResponseTargetReleaseExtendCondition = { + expression: string; + title: string; +}; + +export type SyncReconcileResponseTargetReleaseExtendConditionUnion = + | SyncReconcileResponseTargetReleaseExtendCondition | any; /** - * Reference to a Kubernetes Secret + * GCP-specific binding specification */ -export type SyncReconcileResponseUsernameSecretRef3 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseUsername3 = { +export type SyncReconcileResponseTargetReleaseExtendGcpStack = { + condition?: + | SyncReconcileResponseTargetReleaseExtendCondition + | any + | null + | undefined; /** - * Reference to a Kubernetes Secret + * Scope (project/resource level) */ - secretRef: SyncReconcileResponseUsernameSecretRef3; + scope: string; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Generic binding configuration for permissions */ -export type SyncReconcileResponseUsernameUnion3 = - | SyncReconcileResponseUsername3 - | any - | string; - -export const TargetTypePostgres3 = { - Postgres: "postgres", -} as const; -export type TargetTypePostgres3 = ClosedEnum; +export type SyncReconcileResponseTargetReleaseExtendGcpBinding = { + /** + * GCP-specific binding specification + */ + resource?: SyncReconcileResponseTargetReleaseExtendGcpResource | undefined; + /** + * GCP-specific binding specification + */ + stack?: SyncReconcileResponseTargetReleaseExtendGcpStack | undefined; +}; /** - * Azure Flexible Server binding. + * Grant permissions for a specific cloud platform */ -export type SyncReconcileResponseExternalBindingsFlexibleServer = { +export type SyncReconcileResponseTargetReleaseExtendGcpGrant = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * AWS IAM actions (only for AWS) */ - database?: SyncReconcileResponseDatabase4 | any | string | null | undefined; + actions?: Array | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Azure actions (only for Azure) */ - host?: SyncReconcileResponseHost2 | any | string | null | undefined; + dataActions?: Array | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * GCP permissions that require an exact residual custom role. */ - passwordSecretUri?: - | SyncReconcileResponsePasswordSecretUri - | any - | string - | null - | undefined; + permissions?: Array | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Provider predefined roles to bind directly. */ - port?: SyncReconcileResponsePort3 | number | any | null | undefined; + predefinedRoles?: Array | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * GCP residual custom permissions to pair with predefined roles. */ - username?: SyncReconcileResponseUsername3 | any | string | null | undefined; - service: "flexible-server"; - type: TargetTypePostgres3; + residualPermissions?: Array | null | undefined; }; /** - * Reference to a Kubernetes Secret + * GCP-specific platform permission configuration */ -export type SyncReconcileResponseDatabaseSecretRef3 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseDatabase3 = { +export type SyncReconcileResponseTargetReleaseExtendGcp = { /** - * Reference to a Kubernetes Secret + * Generic binding configuration for permissions */ - secretRef: SyncReconcileResponseDatabaseSecretRef3; + binding: SyncReconcileResponseTargetReleaseExtendGcpBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncReconcileResponseTargetReleaseExtendGcpGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncReconcileResponseDatabaseUnion2 = - | SyncReconcileResponseDatabase3 - | any - | string; - -/** - * Reference to a Kubernetes Secret + * Platform-specific permission configurations */ -export type SyncReconcileResponseHostSecretRef1 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseHost1 = { +export type SyncReconcileResponseTargetReleaseExtendPlatforms = { /** - * Reference to a Kubernetes Secret + * AWS permission configurations */ - secretRef: SyncReconcileResponseHostSecretRef1; + aws?: Array | null | undefined; + /** + * Azure permission configurations + */ + azure?: + | Array + | null + | undefined; + /** + * GCP permission configurations + */ + gcp?: Array | null | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * A permission set that can be applied across different cloud platforms */ -export type SyncReconcileResponseHostUnion1 = - | SyncReconcileResponseHost1 - | any - | string; +export type SyncReconcileResponseTargetReleaseExtend = { + /** + * Human-readable description of what this permission set allows + */ + description: string; + /** + * Unique identifier for the permission set (e.g., "storage/data-read") + */ + id: string; + /** + * Platform-specific permission configurations + */ + platforms: SyncReconcileResponseTargetReleaseExtendPlatforms; +}; /** - * Reference to a Kubernetes Secret + * Reference to a permission set - either by name or inline definition */ -export type SyncReconcileResponsePasswordSecretNameSecretRef = { - key: string; - name: string; -}; +export type SyncReconcileResponseTargetReleaseExtendUnion = + | SyncReconcileResponseTargetReleaseExtend + | string; -export type SyncReconcileResponsePasswordSecretName = { +export type SyncReconcileResponseTargetReleaseManagement1 = { /** - * Reference to a Kubernetes Secret + * Permission profile that maps resources to permission sets + * + * @remarks + * Key can be "*" for all resources or resource name for specific resource */ - secretRef: SyncReconcileResponsePasswordSecretNameSecretRef; + extend: { + [k: string]: Array; + }; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Management permissions configuration for stack management access */ -export type SyncReconcileResponsePasswordSecretNameUnion = - | SyncReconcileResponsePasswordSecretName - | any - | string; +export type SyncReconcileResponseTargetReleaseManagementUnion = + | SyncReconcileResponseTargetReleaseManagement1 + | SyncReconcileResponseTargetReleaseManagement2 + | SyncReconcileResponseTargetReleaseManagementEnum; /** - * Reference to a Kubernetes Secret + * AWS-specific binding specification */ -export type SyncReconcileResponsePortSecretRef2 = { - key: string; - name: string; -}; - -export type SyncReconcileResponsePort2 = { +export type SyncReconcileResponseTargetReleaseProfileAwResource = { /** - * Reference to a Kubernetes Secret + * Optional condition for additional filtering (rare) */ - secretRef: SyncReconcileResponsePortSecretRef2; + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * AWS-specific binding specification */ -export type SyncReconcileResponsePortUnion2 = - | SyncReconcileResponsePort2 - | number - | any; +export type SyncReconcileResponseTargetReleaseProfileAwStack = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; /** - * Reference to a Kubernetes Secret + * Generic binding configuration for permissions */ -export type SyncReconcileResponseUsernameSecretRef2 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseUsername2 = { +export type SyncReconcileResponseTargetReleaseProfileAwBinding = { /** - * Reference to a Kubernetes Secret + * AWS-specific binding specification */ - secretRef: SyncReconcileResponseUsernameSecretRef2; + resource?: SyncReconcileResponseTargetReleaseProfileAwResource | undefined; + /** + * AWS-specific binding specification + */ + stack?: SyncReconcileResponseTargetReleaseProfileAwStack | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * IAM effect. Defaults to Allow. */ -export type SyncReconcileResponseUsernameUnion2 = - | SyncReconcileResponseUsername2 - | any - | string; - -export const TargetTypePostgres2 = { - Postgres: "postgres", +export const SyncReconcileResponseTargetReleaseProfileEffect = { + Allow: "Allow", + Deny: "Deny", } as const; -export type TargetTypePostgres2 = ClosedEnum; +/** + * IAM effect. Defaults to Allow. + */ +export type SyncReconcileResponseTargetReleaseProfileEffect = ClosedEnum< + typeof SyncReconcileResponseTargetReleaseProfileEffect +>; /** - * GCP Cloud SQL binding. + * Grant permissions for a specific cloud platform */ -export type SyncReconcileResponseExternalBindingsCloudSQL = { +export type SyncReconcileResponseTargetReleaseProfileAwGrant = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * AWS IAM actions (only for AWS) */ - database?: SyncReconcileResponseDatabase3 | any | string | null | undefined; + actions?: Array | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Azure actions (only for Azure) */ - host?: SyncReconcileResponseHost1 | any | string | null | undefined; + dataActions?: Array | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * GCP permissions that require an exact residual custom role. */ - passwordSecretName?: - | SyncReconcileResponsePasswordSecretName - | any - | string - | null - | undefined; + permissions?: Array | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Provider predefined roles to bind directly. */ - port?: SyncReconcileResponsePort2 | number | any | null | undefined; + predefinedRoles?: Array | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * GCP residual custom permissions to pair with predefined roles. */ - username?: SyncReconcileResponseUsername2 | any | string | null | undefined; - service: "cloud-sql"; - type: TargetTypePostgres2; + residualPermissions?: Array | null | undefined; }; /** - * Reference to a Kubernetes Secret + * AWS-specific platform permission configuration */ -export type SyncReconcileResponseClusterEndpointSecretRef = { - key: string; - name: string; -}; - -export type SyncReconcileResponseClusterEndpoint = { +export type SyncReconcileResponseTargetReleaseProfileAw = { /** - * Reference to a Kubernetes Secret + * Generic binding configuration for permissions */ - secretRef: SyncReconcileResponseClusterEndpointSecretRef; + binding: SyncReconcileResponseTargetReleaseProfileAwBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * IAM effect. Defaults to Allow. + */ + effect?: SyncReconcileResponseTargetReleaseProfileEffect | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncReconcileResponseTargetReleaseProfileAwGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncReconcileResponseClusterEndpointUnion = - | SyncReconcileResponseClusterEndpoint - | any - | string; - -/** - * Reference to a Kubernetes Secret + * Azure-specific binding specification */ -export type SyncReconcileResponseDatabaseSecretRef2 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseDatabase2 = { +export type SyncReconcileResponseTargetReleaseProfileAzureResource = { /** - * Reference to a Kubernetes Secret + * Scope (subscription/resource group/resource level) */ - secretRef: SyncReconcileResponseDatabaseSecretRef2; + scope: string; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Azure-specific binding specification */ -export type SyncReconcileResponseDatabaseUnion1 = - | SyncReconcileResponseDatabase2 - | any - | string; +export type SyncReconcileResponseTargetReleaseProfileAzureStack = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; /** - * Reference to a Kubernetes Secret + * Generic binding configuration for permissions */ -export type SyncReconcileResponsePasswordSecretArnSecretRef = { - key: string; - name: string; -}; - -export type SyncReconcileResponsePasswordSecretArn = { +export type SyncReconcileResponseTargetReleaseProfileAzureBinding = { /** - * Reference to a Kubernetes Secret + * Azure-specific binding specification */ - secretRef: SyncReconcileResponsePasswordSecretArnSecretRef; + resource?: SyncReconcileResponseTargetReleaseProfileAzureResource | undefined; + /** + * Azure-specific binding specification + */ + stack?: SyncReconcileResponseTargetReleaseProfileAzureStack | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Grant permissions for a specific cloud platform */ -export type SyncReconcileResponsePasswordSecretArnUnion = - | SyncReconcileResponsePasswordSecretArn - | any - | string; +export type SyncReconcileResponseTargetReleaseProfileAzureGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; /** - * Reference to a Kubernetes Secret + * Azure-specific platform permission configuration */ -export type SyncReconcileResponsePortSecretRef1 = { - key: string; - name: string; -}; - -export type SyncReconcileResponsePort1 = { +export type SyncReconcileResponseTargetReleaseProfileAzure = { /** - * Reference to a Kubernetes Secret + * Generic binding configuration for permissions */ - secretRef: SyncReconcileResponsePortSecretRef1; + binding: SyncReconcileResponseTargetReleaseProfileAzureBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncReconcileResponseTargetReleaseProfileAzureGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * GCP IAM condition */ -export type SyncReconcileResponsePortUnion1 = - | SyncReconcileResponsePort1 - | number +export type SyncReconcileResponseTargetReleaseProfileConditionResource = { + expression: string; + title: string; +}; + +export type SyncReconcileResponseTargetReleaseProfileResourceConditionUnion = + | SyncReconcileResponseTargetReleaseProfileConditionResource | any; /** - * Reference to a Kubernetes Secret + * GCP-specific binding specification */ -export type SyncReconcileResponseUsernameSecretRef1 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseUsername1 = { +export type SyncReconcileResponseTargetReleaseProfileGcpResource = { + condition?: + | SyncReconcileResponseTargetReleaseProfileConditionResource + | any + | null + | undefined; /** - * Reference to a Kubernetes Secret + * Scope (project/resource level) */ - secretRef: SyncReconcileResponseUsernameSecretRef1; + scope: string; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * GCP IAM condition */ -export type SyncReconcileResponseUsernameUnion1 = - | SyncReconcileResponseUsername1 - | any - | string; +export type SyncReconcileResponseTargetReleaseProfileCondition = { + expression: string; + title: string; +}; -export const TargetTypePostgres1 = { - Postgres: "postgres", -} as const; -export type TargetTypePostgres1 = ClosedEnum; +export type SyncReconcileResponseTargetReleaseProfileConditionUnion = + | SyncReconcileResponseTargetReleaseProfileCondition + | any; /** - * AWS Aurora Serverless v2 binding. + * GCP-specific binding specification */ -export type SyncReconcileResponseExternalBindingsAurora = { - /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ - clusterEndpoint?: - | SyncReconcileResponseClusterEndpoint +export type SyncReconcileResponseTargetReleaseProfileGcpStack = { + condition?: + | SyncReconcileResponseTargetReleaseProfileCondition | any - | string | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ - database?: SyncReconcileResponseDatabase2 | any | string | null | undefined; - /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Scope (project/resource level) */ - passwordSecretArn?: - | SyncReconcileResponsePasswordSecretArn - | any - | string - | null - | undefined; + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type SyncReconcileResponseTargetReleaseProfileGcpBinding = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * GCP-specific binding specification */ - port?: SyncReconcileResponsePort1 | number | any | null | undefined; + resource?: SyncReconcileResponseTargetReleaseProfileGcpResource | undefined; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * GCP-specific binding specification */ - username?: SyncReconcileResponseUsername1 | any | string | null | undefined; - service: "aurora"; - type: TargetTypePostgres1; + stack?: SyncReconcileResponseTargetReleaseProfileGcpStack | undefined; }; /** - * Connection details for a Postgres database, one variant per backend. - */ -export type SyncReconcileResponseExternalBindingsUnion6 = - | SyncReconcileResponseExternalBindingsAurora - | SyncReconcileResponseExternalBindingsCloudSQL - | SyncReconcileResponseExternalBindingsFlexibleServer - | SyncReconcileResponseExternalBindingsExternal - | SyncReconcileResponseExternalBindingsLocalPostgres; - -/** - * Reference to a Kubernetes Secret + * Grant permissions for a specific cloud platform */ -export type SyncReconcileResponseDefaultDomainSecretRef = { - key: string; - name: string; -}; - -export type SyncReconcileResponseDefaultDomain = { +export type SyncReconcileResponseTargetReleaseProfileGcpGrant = { /** - * Reference to a Kubernetes Secret + * AWS IAM actions (only for AWS) */ - secretRef: SyncReconcileResponseDefaultDomainSecretRef; + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * GCP-specific platform permission configuration */ -export type SyncReconcileResponseDefaultDomainUnion = - | SyncReconcileResponseDefaultDomain - | any - | string; +export type SyncReconcileResponseTargetReleaseProfileGcp = { + /** + * Generic binding configuration for permissions + */ + binding: SyncReconcileResponseTargetReleaseProfileGcpBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: SyncReconcileResponseTargetReleaseProfileGcpGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; /** - * Reference to a Kubernetes Secret + * Platform-specific permission configurations */ -export type SyncReconcileResponseEnvironmentNameSecretRef = { - key: string; - name: string; -}; - -export type SyncReconcileResponseEnvironmentName = { +export type SyncReconcileResponseTargetReleaseProfilePlatforms = { /** - * Reference to a Kubernetes Secret + * AWS permission configurations */ - secretRef: SyncReconcileResponseEnvironmentNameSecretRef; + aws?: Array | null | undefined; + /** + * Azure permission configurations + */ + azure?: + | Array + | null + | undefined; + /** + * GCP permission configurations + */ + gcp?: Array | null | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncReconcileResponseEnvironmentNameUnion = - | SyncReconcileResponseEnvironmentName - | any - | string; - -/** - * Reference to a Kubernetes Secret + * A permission set that can be applied across different cloud platforms */ -export type SyncReconcileResponseResourceGroupNameSecretRef3 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseResourceGroupName3 = { +export type SyncReconcileResponseTargetReleaseProfile = { /** - * Reference to a Kubernetes Secret + * Human-readable description of what this permission set allows */ - secretRef: SyncReconcileResponseResourceGroupNameSecretRef3; + description: string; + /** + * Unique identifier for the permission set (e.g., "storage/data-read") + */ + id: string; + /** + * Platform-specific permission configurations + */ + platforms: SyncReconcileResponseTargetReleaseProfilePlatforms; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Reference to a permission set - either by name or inline definition */ -export type SyncReconcileResponseResourceGroupNameUnion3 = - | SyncReconcileResponseResourceGroupName3 - | any +export type SyncReconcileResponseTargetReleaseProfileUnion = + | SyncReconcileResponseTargetReleaseProfile | string; /** - * Reference to a Kubernetes Secret + * Combined permissions configuration that contains both profiles and management */ -export type SyncReconcileResponseResourceIdSecretRef = { - key: string; - name: string; -}; - -export type SyncReconcileResponseResourceId = { +export type SyncReconcileResponseTargetReleasePermissions = { /** - * Reference to a Kubernetes Secret + * Management permissions configuration for stack management access */ - secretRef: SyncReconcileResponseResourceIdSecretRef; + management?: + | SyncReconcileResponseTargetReleaseManagement1 + | SyncReconcileResponseTargetReleaseManagement2 + | SyncReconcileResponseTargetReleaseManagementEnum + | undefined; + /** + * Permission profiles that define access control for compute services + * + * @remarks + * Key is the profile name, value is the permission configuration + */ + profiles: { + [k: string]: { + [k: string]: Array; + }; + }; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ -export type SyncReconcileResponseResourceIdUnion = - | SyncReconcileResponseResourceId - | any - | string; +export type SyncReconcileResponseTargetReleaseConfig = { + /** + * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. + */ + id: string; + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + type: string; + additionalProperties?: { [k: string]: any | null } | undefined; +}; /** - * Reference to a Kubernetes Secret + * Reference to a resource by its stable id and resource type. */ -export type SyncReconcileResponseStaticIpSecretRef = { - key: string; - name: string; -}; - -export type SyncReconcileResponseStaticIp = { +export type SyncReconcileResponseTargetReleaseDependency = { + id: string; /** - * Reference to a Kubernetes Secret + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. */ - secretRef: SyncReconcileResponseStaticIpSecretRef; + type: string; }; -export const TargetTypeContainerAppsEnvironment = { - ContainerAppsEnvironment: "container_apps_environment", +/** + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ +export const SyncReconcileResponseTargetReleaseLifecycle = { + Frozen: "frozen", + Live: "live", } as const; -export type TargetTypeContainerAppsEnvironment = ClosedEnum< - typeof TargetTypeContainerAppsEnvironment ->; - /** - * Binding configuration for a pre-existing Azure Container Apps Environment. - * - * @remarks - * - * Used when deploying to an existing environment instead of having Alien provision one. - * This is useful for shared environments (e.g., test infrastructure) or enterprise - * setups where environments are managed by a separate team. + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. */ -export type SyncReconcileResponseExternalBindingsContainerAppsEnvironment = { +export type SyncReconcileResponseTargetReleaseLifecycle = ClosedEnum< + typeof SyncReconcileResponseTargetReleaseLifecycle +>; + +export type SyncReconcileResponseTargetReleaseResources = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. */ - defaultDomain?: - | SyncReconcileResponseDefaultDomain - | any - | string - | null - | undefined; + config: SyncReconcileResponseTargetReleaseConfig; /** - * Represents a value that can be either a concrete value, a template expression, + * Additional dependencies for this resource beyond those defined in the resource itself. * * @remarks - * or a reference to a Kubernetes Secret + * The total dependencies are: resource.get_dependencies() + this list */ - environmentName?: - | SyncReconcileResponseEnvironmentName - | any - | string - | null - | undefined; + dependencies: Array; /** - * Represents a value that can be either a concrete value, a template expression, + * Id of the boolean stack input that decides whether this resource is * * @remarks - * or a reference to a Kubernetes Secret + * created at all. `None` means always create it. + * + * Set by `.enabled(input)` in the SDK. Setup emitters render the resource + * conditionally on the matching template variable, so a deployer who says no + * never gets the resource, its outputs, or anything derived from it. */ - resourceGroupName?: - | SyncReconcileResponseResourceGroupName3 - | any - | string - | null - | undefined; + enabledWhen?: string | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ + lifecycle: SyncReconcileResponseTargetReleaseLifecycle; + /** + * Enable remote bindings for this resource (BYOB use case). * * @remarks - * or a reference to a Kubernetes Secret + * When true, binding params are synced to StackState's `remote_binding_params`. + * Default: false (prevents sensitive data in synced state). */ - resourceId?: - | SyncReconcileResponseResourceId - | any - | string - | null - | undefined; - staticIp?: any | null | undefined; - type: TargetTypeContainerAppsEnvironment; + remoteAccess?: boolean | undefined; }; /** - * Reference to a Kubernetes Secret + * Represents the target cloud platform. */ -export type SyncReconcileResponseDataDirSecretRef3 = { - key: string; - name: string; -}; +export const SyncReconcileResponseTargetReleaseSupportedPlatform = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", +} as const; +/** + * Represents the target cloud platform. + */ +export type SyncReconcileResponseTargetReleaseSupportedPlatform = ClosedEnum< + typeof SyncReconcileResponseTargetReleaseSupportedPlatform +>; -export type SyncReconcileResponseDataDir3 = { +/** + * A bag of resources, unaware of any cloud. + */ +export type SyncReconcileResponseTargetReleaseStack = { /** - * Reference to a Kubernetes Secret + * Unique identifier for the stack */ - secretRef: SyncReconcileResponseDataDirSecretRef3; + id: string; + /** + * Input definitions required before setup or deployment can proceed. + */ + inputs?: Array | undefined; + /** + * Combined permissions configuration that contains both profiles and management + */ + permissions?: SyncReconcileResponseTargetReleasePermissions | undefined; + /** + * Map of resource IDs to their configurations and lifecycle settings + */ + resources: { [k: string]: SyncReconcileResponseTargetReleaseResources }; + /** + * Which platforms this stack supports. When None, all platforms are supported. + */ + supportedPlatforms?: + | Array + | null + | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, + * Release metadata * * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncReconcileResponseDataDirUnion2 = - | SyncReconcileResponseDataDir3 - | any - | string; - -export const TargetTypeVault5 = { - Vault: "vault", -} as const; -export type TargetTypeVault5 = ClosedEnum; - -/** - * Local development vault binding (for testing/development) + * + * Identifies a specific release version and includes the stack definition. + * The deployment engine uses this to track which release is currently deployed + * and which is the target. */ -export type SyncReconcileResponseExternalBindingsLocalVault = { +export type SyncReconcileResponseTargetRelease = { /** - * Represents a value that can be either a concrete value, a template expression, + * Short description of the release + */ + description?: string | null | undefined; + /** + * Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no * * @remarks - * or a reference to a Kubernetes Secret + * Alien-assigned release — the platform resolves a release from `version`. */ - dataDir?: SyncReconcileResponseDataDir3 | any | string | null | undefined; + releaseId?: string | null | undefined; /** - * The vault name for local storage + * A bag of resources, unaware of any cloud. */ - vaultName: string; - service: "local-vault"; - type: TargetTypeVault5; -}; - -/** - * Reference to a Kubernetes Secret - */ -export type SyncReconcileResponseNamespaceSecretRef2 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseNamespace2 = { + stack: SyncReconcileResponseTargetReleaseStack; /** - * Reference to a Kubernetes Secret + * Version string (e.g., 2.1.0) */ - secretRef: SyncReconcileResponseNamespaceSecretRef2; + version?: string | null | undefined; }; -/** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncReconcileResponseNamespaceUnion2 = - | SyncReconcileResponseNamespace2 - | any - | string; +export type SyncReconcileResponseTargetReleaseUnion = + | SyncReconcileResponseTargetRelease + | any; /** - * Reference to a Kubernetes Secret + * Current deployment state after reconciliation */ -export type SyncReconcileResponseVaultPrefixSecretRef3 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseVaultPrefix3 = { +export type SyncReconcileResponseCurrent = { + currentRelease?: SyncReconcileResponseCurrentRelease | any | null | undefined; + environmentInfo?: + | SyncReconcileResponseEnvironmentInfoGcp + | SyncReconcileResponseEnvironmentInfoAzure + | SyncReconcileResponseEnvironmentInfoLocal + | SyncReconcileResponseEnvironmentInfoAws + | SyncReconcileResponseEnvironmentInfoTest + | any + | null + | undefined; + error?: SyncReconcileResponseError | any | null | undefined; /** - * Reference to a Kubernetes Secret + * Represents the target cloud platform. */ - secretRef: SyncReconcileResponseVaultPrefixSecretRef3; -}; - -/** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ -export type SyncReconcileResponseVaultPrefixUnion3 = - | SyncReconcileResponseVaultPrefix3 - | any - | string; - -export const TargetTypeVault4 = { - Vault: "vault", -} as const; -export type TargetTypeVault4 = ClosedEnum; - -/** - * Kubernetes Secrets vault binding configuration - */ -export type SyncReconcileResponseExternalBindingsKubernetesSecret = { + platform: SyncReconcileResponseCurrentPlatform; /** - * Represents a value that can be either a concrete value, a template expression, + * Protocol version for cross-actor compatibility. * * @remarks - * or a reference to a Kubernetes Secret + * All actors (manager, push client, agent) check this before stepping. + * Mismatched versions produce a clear error instead of silent corruption. + * See docs/02-manager/10-deployment-protocol.md. */ - namespace?: SyncReconcileResponseNamespace2 | any | string | null | undefined; + protocolVersion: number; /** - * Represents a value that can be either a concrete value, a template expression, + * Whether a retry has been requested for a failed deployment * * @remarks - * or a reference to a Kubernetes Secret + * When true and status is a failed state, the deployment system will retry failed resources */ - vaultPrefix?: - | SyncReconcileResponseVaultPrefix3 + retryRequested?: boolean | undefined; + runtimeMetadata?: + | SyncReconcileResponseRuntimeMetadata | any - | string | null | undefined; - service: "kubernetes-secret"; - type: TargetTypeVault4; -}; - -/** - * Reference to a Kubernetes Secret - */ -export type SyncReconcileResponseVaultNameSecretRef = { - key: string; - name: string; -}; - -export type SyncReconcileResponseVaultName = { + stackState?: SyncReconcileResponseStackState | any | null | undefined; /** - * Reference to a Kubernetes Secret + * Deployment status in the deployment lifecycle. + * + * @remarks + * + * For observe-only deployments with no release or stack state, `Running` + * means the Operator is attached. Connectivity comes from `lastHeartbeatAt`; + * resource health comes from inventory and resource heartbeat data. */ - secretRef: SyncReconcileResponseVaultNameSecretRef; + status: SyncReconcileResponseStatus; + targetRelease?: SyncReconcileResponseTargetRelease | any | null | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Represents the target cloud platform. */ -export type SyncReconcileResponseVaultNameUnion = - | SyncReconcileResponseVaultName - | any - | string; - -export const TargetTypeVault3 = { - Vault: "vault", +export const SyncReconcileResponseBasePlatformEnum = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", } as const; -export type TargetTypeVault3 = ClosedEnum; +/** + * Represents the target cloud platform. + */ +export type SyncReconcileResponseBasePlatformEnum = ClosedEnum< + typeof SyncReconcileResponseBasePlatformEnum +>; + +export type SyncReconcileResponseBasePlatformUnion = + | SyncReconcileResponseBasePlatformEnum + | any; /** - * Azure Key Vault binding configuration + * Configuration for a single container worker cluster. + * + * @remarks + * + * Contains the cluster ID and management token needed to interact with + * the managed container control plane API for container operations. */ -export type SyncReconcileResponseExternalBindingsKeyVault = { +export type SyncReconcileResponseClusters = { /** - * Represents a value that can be either a concrete value, a template expression, + * Cluster ID (deterministic: workspace/project/deployment/resourceid) + */ + clusterId: string; + /** + * Management token for API access (hm_...) * * @remarks - * or a reference to a Kubernetes Secret + * Used by alien-deployment controllers to create/update containers */ - vaultName?: SyncReconcileResponseVaultName | any | string | null | undefined; - service: "key-vault"; - type: TargetTypeVault3; + managementToken: string; }; /** - * Reference to a Kubernetes Secret + * AWS Horizon machine image catalog. */ -export type SyncReconcileResponseVaultPrefixSecretRef2 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseVaultPrefix2 = { +export type SyncReconcileResponseHorizonMachineImageAws = { /** - * Reference to a Kubernetes Secret + * AMI IDs by architecture, then AWS region. */ - secretRef: SyncReconcileResponseVaultPrefixSecretRef2; + amis: { [k: string]: { [k: string]: string } }; }; +export type SyncReconcileResponseHorizonMachineImageAwsUnion = + | SyncReconcileResponseHorizonMachineImageAws + | any; + /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Azure Horizon machine image entry. */ -export type SyncReconcileResponseVaultPrefixUnion2 = - | SyncReconcileResponseVaultPrefix2 - | any - | string; - -export const TargetTypeVault2 = { - Vault: "vault", -} as const; -export type TargetTypeVault2 = ClosedEnum; +export type SyncReconcileResponseAzureImages = { + /** + * Azure Compute Gallery image version ID. + */ + imageVersionId: string; +}; /** - * GCP Secret Manager vault binding configuration + * Azure Horizon machine image catalog. */ -export type SyncReconcileResponseExternalBindingsSecretManager = { +export type HorizonMachineImageAzureTarget = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Images by architecture. */ - vaultPrefix?: - | SyncReconcileResponseVaultPrefix2 - | any - | string - | null - | undefined; - service: "secret-manager"; - type: TargetTypeVault2; + images: { [k: string]: SyncReconcileResponseAzureImages }; }; +export type HorizonMachineImageTargetAzureUnion = + | HorizonMachineImageAzureTarget + | any; + /** - * Reference to a Kubernetes Secret + * Base image metadata for the Horizon machine image. */ -export type SyncReconcileResponseVaultPrefixSecretRef1 = { - key: string; +export type SyncReconcileResponseBaseImage = { + /** + * Base OS image name. + */ name: string; -}; - -export type SyncReconcileResponseVaultPrefix1 = { /** - * Reference to a Kubernetes Secret + * Base OS image version or channel. */ - secretRef: SyncReconcileResponseVaultPrefixSecretRef1; + version: string; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * GCP Horizon machine image entry. */ -export type SyncReconcileResponseVaultPrefixUnion1 = - | SyncReconcileResponseVaultPrefix1 - | any - | string; - -export const TargetTypeVault1 = { - Vault: "vault", -} as const; -export type TargetTypeVault1 = ClosedEnum; - -/** - * AWS SSM Parameter Store vault binding configuration - */ -export type SyncReconcileResponseExternalBindingsParameterStore = { +export type SyncReconcileResponseGcpImages = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Source image self link or image-family URL. */ - vaultPrefix?: - | SyncReconcileResponseVaultPrefix1 - | any - | string - | null - | undefined; - service: "parameter-store"; - type: TargetTypeVault1; + sourceImage: string; }; /** - * Represents a vault binding for secure secret management - */ -export type SyncReconcileResponseExternalBindingsUnion5 = - | SyncReconcileResponseExternalBindingsParameterStore - | SyncReconcileResponseExternalBindingsSecretManager - | SyncReconcileResponseExternalBindingsKeyVault - | SyncReconcileResponseExternalBindingsKubernetesSecret - | SyncReconcileResponseExternalBindingsLocalVault; - -/** - * Reference to a Kubernetes Secret + * GCP Horizon machine image catalog. */ -export type SyncReconcileResponseDataDirSecretRef2 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseDataDir2 = { +export type HorizonMachineImageGcpTarget = { /** - * Reference to a Kubernetes Secret + * Images by architecture. */ - secretRef: SyncReconcileResponseDataDirSecretRef2; + images: { [k: string]: SyncReconcileResponseGcpImages }; }; +export type HorizonMachineImageTargetGcpUnion = + | HorizonMachineImageGcpTarget + | any; + /** - * Reference to a Kubernetes Secret + * Download artifact for one horizond release platform. */ -export type SyncReconcileResponseRegistryUrlSecretRef = { - key: string; - name: string; -}; - -export type SyncReconcileResponseRegistryUrl = { +export type SyncReconcileResponseHorizondArtifacts = { /** - * Reference to a Kubernetes Secret + * SHA-256 digest for the artifact payload. */ - secretRef: SyncReconcileResponseRegistryUrlSecretRef; + sha256: string; + /** + * HTTPS URL for the artifact. + */ + url: string; }; /** - * Represents a value that can be either a concrete value, a template expression, + * Horizon machine image catalog. * * @remarks - * or a reference to a Kubernetes Secret + * + * Platform resolves concrete provider images from this catalog during rollout. */ -export type SyncReconcileResponseRegistryUrlUnion = - | SyncReconcileResponseRegistryUrl - | any - | string; +export type SyncReconcileResponseHorizonMachineImage = { + aws?: SyncReconcileResponseHorizonMachineImageAws | any | null | undefined; + azure?: HorizonMachineImageAzureTarget | any | null | undefined; + /** + * Base image metadata for the Horizon machine image. + */ + baseImage: SyncReconcileResponseBaseImage; + /** + * Logical image channel, such as prod, staging, or canary. + */ + channel: string; + /** + * Image manifest creation timestamp. + */ + createdAt: string; + gcp?: HorizonMachineImageGcpTarget | any | null | undefined; + /** + * Git commit SHA used to build the image. + */ + gitSha: string; + /** + * Per-architecture horizond artifacts by release-platform key. + */ + horizondArtifacts: { [k: string]: SyncReconcileResponseHorizondArtifacts }; + /** + * horizond daemon version baked into the image. + */ + horizondVersion: string; + /** + * Published immutable machine image version. + */ + machineImageVersion: string; +}; -export const TargetTypeArtifactRegistry4 = { - ArtifactRegistry: "artifact_registry", +export type SyncReconcileResponseHorizonMachineImageUnion = + | SyncReconcileResponseHorizonMachineImage + | any; + +export const ComputeBackendTargetType = { + Horizon: "horizon", } as const; -export type TargetTypeArtifactRegistry4 = ClosedEnum< - typeof TargetTypeArtifactRegistry4 +export type ComputeBackendTargetType = ClosedEnum< + typeof ComputeBackendTargetType >; /** - * Local container registry binding configuration. + * Compute backend for Container and Worker resources. * * @remarks * - * The local registry runs on localhost only and does not require authentication. - * Security boundary is the OS process isolation on the customer's machine. - * External image access is secured by the manager's registry proxy (deployment tokens). + * Determines how compute workloads are orchestrated on cloud platforms. + * When None, the platform default is used for cloud platforms. */ -export type SyncReconcileResponseExternalBindingsLocal = { - /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ - dataDir?: any | null | undefined; +export type SyncReconcileResponseComputeBackendHorizon = { /** - * Represents a value that can be either a concrete value, a template expression, + * Cluster configurations (one per ComputeCluster resource) * * @remarks - * or a reference to a Kubernetes Secret + * Key: ComputeCluster resource ID from stack + * Value: Cluster ID and management token for that cluster */ - registryUrl?: - | SyncReconcileResponseRegistryUrl + clusters: { [k: string]: SyncReconcileResponseClusters }; + horizonMachineImage?: + | SyncReconcileResponseHorizonMachineImage | any - | string | null | undefined; - service: "local"; - type: TargetTypeArtifactRegistry4; -}; - -/** - * Reference to a Kubernetes Secret - */ -export type SyncReconcileResponsePullServiceAccountEmailSecretRef = { - key: string; - name: string; -}; - -export type SyncReconcileResponsePullServiceAccountEmail = { /** - * Reference to a Kubernetes Secret + * Horizon control-plane API base URL. */ - secretRef: SyncReconcileResponsePullServiceAccountEmailSecretRef; + url: string; + type: ComputeBackendTargetType; }; +export type SyncReconcileResponseComputeBackendUnion = + | SyncReconcileResponseComputeBackendHorizon + | any; + /** - * Reference to a Kubernetes Secret + * Certificate status in the certificate lifecycle */ -export type SyncReconcileResponsePushServiceAccountEmailSecretRef = { - key: string; - name: string; -}; - -export type SyncReconcileResponsePushServiceAccountEmail = { - /** - * Reference to a Kubernetes Secret - */ - secretRef: SyncReconcileResponsePushServiceAccountEmailSecretRef; -}; - +export const SyncReconcileResponseAliasCertificateStatus = { + Pending: "pending", + Issued: "issued", + Renewing: "renewing", + RenewalFailed: "renewal-failed", + Failed: "failed", + Deleting: "deleting", +} as const; /** - * Reference to a Kubernetes Secret + * Certificate status in the certificate lifecycle */ -export type SyncReconcileResponseRepositoryNameSecretRef = { - key: string; - name: string; -}; - -export type SyncReconcileResponseRepositoryName = { - /** - * Reference to a Kubernetes Secret - */ - secretRef: SyncReconcileResponseRepositoryNameSecretRef; -}; +export type SyncReconcileResponseAliasCertificateStatus = ClosedEnum< + typeof SyncReconcileResponseAliasCertificateStatus +>; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * DNS record status in the DNS lifecycle */ -export type SyncReconcileResponseRepositoryNameUnion = - | SyncReconcileResponseRepositoryName - | any - | string; - -export const TargetTypeArtifactRegistry3 = { - ArtifactRegistry: "artifact_registry", +export const SyncReconcileResponseAliasDnsStatus = { + Pending: "pending", + Active: "active", + Updating: "updating", + Deleting: "deleting", + Failed: "failed", } as const; -export type TargetTypeArtifactRegistry3 = ClosedEnum< - typeof TargetTypeArtifactRegistry3 +/** + * DNS record status in the DNS lifecycle + */ +export type SyncReconcileResponseAliasDnsStatus = ClosedEnum< + typeof SyncReconcileResponseAliasDnsStatus >; /** - * Google Artifact Registry binding configuration + * Certificate and DNS metadata for a managed hostname. + * + * @remarks + * + * Includes decrypted certificate data for issued certificates. + * Private keys are deployment-scoped secrets (like environment variables). */ -export type SyncReconcileResponseExternalBindingsGar = { - pullServiceAccountEmail?: any | null | undefined; - pushServiceAccountEmail?: any | null | undefined; +export type SyncReconcileResponseAlias = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Full PEM certificate chain (only present if status is "issued"). */ - repositoryName?: - | SyncReconcileResponseRepositoryName - | any - | string - | null - | undefined; - service: "gar"; - type: TargetTypeArtifactRegistry3; -}; - -/** - * Reference to a Kubernetes Secret - */ -export type SyncReconcileResponseRegistryNameSecretRef = { - key: string; - name: string; -}; - -export type SyncReconcileResponseRegistryName = { + certificateChain?: string | null | undefined; /** - * Reference to a Kubernetes Secret + * Certificate ID (for tracking/logging). */ - secretRef: SyncReconcileResponseRegistryNameSecretRef; + certificateId: string; + /** + * Certificate status in the certificate lifecycle + */ + certificateStatus: SyncReconcileResponseAliasCertificateStatus; + /** + * Last DNS error message. Present when DNS previously failed, even if status + * + * @remarks + * was reset to pending for retry. Used to surface actionable error context + * in WaitingForDns failure messages. + */ + dnsError?: string | null | undefined; + /** + * DNS record status in the DNS lifecycle + */ + dnsStatus: SyncReconcileResponseAliasDnsStatus; + /** + * Fully qualified domain name. + */ + fqdn: string; + /** + * ISO 8601 timestamp when certificate was issued (for renewal detection). + */ + issuedAt?: string | null | undefined; + /** + * Decrypted private key (only present if status is "issued"). + */ + privateKey?: string | null | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Certificate status in the certificate lifecycle */ -export type SyncReconcileResponseRegistryNameUnion = - | SyncReconcileResponseRegistryName - | any - | string; - +export const SyncReconcileResponseCertificateStatus = { + Pending: "pending", + Issued: "issued", + Renewing: "renewing", + RenewalFailed: "renewal-failed", + Failed: "failed", + Deleting: "deleting", +} as const; /** - * Reference to a Kubernetes Secret + * Certificate status in the certificate lifecycle */ -export type SyncReconcileResponseRepositoryPrefixSecretRef2 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseRepositoryPrefix2 = { - /** - * Reference to a Kubernetes Secret - */ - secretRef: SyncReconcileResponseRepositoryPrefixSecretRef2; -}; +export type SyncReconcileResponseCertificateStatus = ClosedEnum< + typeof SyncReconcileResponseCertificateStatus +>; /** - * Reference to a Kubernetes Secret + * DNS record status in the DNS lifecycle */ -export type SyncReconcileResponseResourceGroupNameSecretRef2 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseResourceGroupName2 = { - /** - * Reference to a Kubernetes Secret - */ - secretRef: SyncReconcileResponseResourceGroupNameSecretRef2; -}; +export const SyncReconcileResponseDnsStatus = { + Pending: "pending", + Active: "active", + Updating: "updating", + Deleting: "deleting", + Failed: "failed", +} as const; +/** + * DNS record status in the DNS lifecycle + */ +export type SyncReconcileResponseDnsStatus = ClosedEnum< + typeof SyncReconcileResponseDnsStatus +>; /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Certificate status in the certificate lifecycle */ -export type SyncReconcileResponseResourceGroupNameUnion2 = - | SyncReconcileResponseResourceGroupName2 - | any - | string; +export const SyncReconcileResponseEndpointsCertificateStatus = { + Pending: "pending", + Issued: "issued", + Renewing: "renewing", + RenewalFailed: "renewal-failed", + Failed: "failed", + Deleting: "deleting", +} as const; +/** + * Certificate status in the certificate lifecycle + */ +export type SyncReconcileResponseEndpointsCertificateStatus = ClosedEnum< + typeof SyncReconcileResponseEndpointsCertificateStatus +>; -export const TargetTypeArtifactRegistry2 = { - ArtifactRegistry: "artifact_registry", +/** + * DNS record status in the DNS lifecycle + */ +export const SyncReconcileResponseEndpointsDnsStatus = { + Pending: "pending", + Active: "active", + Updating: "updating", + Deleting: "deleting", + Failed: "failed", } as const; -export type TargetTypeArtifactRegistry2 = ClosedEnum< - typeof TargetTypeArtifactRegistry2 +/** + * DNS record status in the DNS lifecycle + */ +export type SyncReconcileResponseEndpointsDnsStatus = ClosedEnum< + typeof SyncReconcileResponseEndpointsDnsStatus >; /** - * Azure Container Registry binding configuration + * Certificate and DNS metadata for a managed hostname. + * + * @remarks + * + * Includes decrypted certificate data for issued certificates. + * Private keys are deployment-scoped secrets (like environment variables). */ -export type SyncReconcileResponseExternalBindingsAcr = { +export type SyncReconcileResponseEndpoints = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Full PEM certificate chain (only present if status is "issued"). */ - registryName?: - | SyncReconcileResponseRegistryName - | any - | string - | null - | undefined; - repositoryPrefix?: any | null | undefined; + certificateChain?: string | null | undefined; /** - * Represents a value that can be either a concrete value, a template expression, + * Certificate ID (for tracking/logging). + */ + certificateId: string; + /** + * Certificate status in the certificate lifecycle + */ + certificateStatus: SyncReconcileResponseEndpointsCertificateStatus; + /** + * Last DNS error message. Present when DNS previously failed, even if status * * @remarks - * or a reference to a Kubernetes Secret + * was reset to pending for retry. Used to surface actionable error context + * in WaitingForDns failure messages. */ - resourceGroupName?: - | SyncReconcileResponseResourceGroupName2 - | any - | string - | null - | undefined; - service: "acr"; - type: TargetTypeArtifactRegistry2; -}; - -/** - * Reference to a Kubernetes Secret - */ -export type SyncReconcileResponsePullRoleArnSecretRef = { - key: string; - name: string; -}; - -export type SyncReconcileResponsePullRoleArn = { + dnsError?: string | null | undefined; /** - * Reference to a Kubernetes Secret + * DNS record status in the DNS lifecycle */ - secretRef: SyncReconcileResponsePullRoleArnSecretRef; -}; - -/** - * Reference to a Kubernetes Secret - */ -export type SyncReconcileResponsePushRoleArnSecretRef = { - key: string; - name: string; -}; - -export type SyncReconcileResponsePushRoleArn = { + dnsStatus: SyncReconcileResponseEndpointsDnsStatus; /** - * Reference to a Kubernetes Secret + * Fully qualified domain name. */ - secretRef: SyncReconcileResponsePushRoleArnSecretRef; -}; - -/** - * Reference to a Kubernetes Secret - */ -export type SyncReconcileResponseRepositoryPrefixSecretRef1 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseRepositoryPrefix1 = { + fqdn: string; /** - * Reference to a Kubernetes Secret + * ISO 8601 timestamp when certificate was issued (for renewal detection). */ - secretRef: SyncReconcileResponseRepositoryPrefixSecretRef1; + issuedAt?: string | null | undefined; + /** + * Decrypted private key (only present if status is "issued"). + */ + privateKey?: string | null | undefined; }; /** - * Represents a value that can be either a concrete value, a template expression, + * Certificate and DNS metadata for a public resource. * * @remarks - * or a reference to a Kubernetes Secret + * + * The direct fields describe the primary endpoint hostname. `endpoints` + * contains endpoint-scoped metadata keyed by endpoint name. `aliases` contains + * additional managed hostnames that route directly to the primary endpoint. */ -export type SyncReconcileResponseRepositoryPrefixUnion = - | SyncReconcileResponseRepositoryPrefix1 - | any - | string; - -export const TargetTypeArtifactRegistry1 = { - ArtifactRegistry: "artifact_registry", -} as const; -export type TargetTypeArtifactRegistry1 = ClosedEnum< - typeof TargetTypeArtifactRegistry1 ->; - -/** - * AWS ECR (Elastic Container Registry) binding configuration - */ -export type SyncReconcileResponseExternalBindingsEcr = { - pullRoleArn?: any | null | undefined; - pushRoleArn?: any | null | undefined; +export type DomainMetadataTargetResources = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Additional managed hostnames for the resource. */ - repositoryPrefix?: - | SyncReconcileResponseRepositoryPrefix1 - | any - | string - | null - | undefined; - service: "ecr"; - type: TargetTypeArtifactRegistry1; + aliases?: Array | undefined; + /** + * Full PEM certificate chain (only present if status is "issued"). + */ + certificateChain?: string | null | undefined; + /** + * Certificate ID (for tracking/logging). + */ + certificateId: string; + /** + * Certificate status in the certificate lifecycle + */ + certificateStatus: SyncReconcileResponseCertificateStatus; + /** + * Last DNS error message. + */ + dnsError?: string | null | undefined; + /** + * DNS record status in the DNS lifecycle + */ + dnsStatus: SyncReconcileResponseDnsStatus; + /** + * Endpoint-scoped metadata keyed by endpoint name. + */ + endpoints?: { [k: string]: SyncReconcileResponseEndpoints } | undefined; + /** + * Fully qualified domain name. + */ + fqdn: string; + /** + * ISO 8601 timestamp when certificate was issued (for renewal detection). + */ + issuedAt?: string | null | undefined; + /** + * Decrypted private key (only present if status is "issued"). + */ + privateKey?: string | null | undefined; }; /** - * Service-type based artifact registry binding that supports multiple registry providers - */ -export type SyncReconcileResponseExternalBindingsUnion4 = - | SyncReconcileResponseExternalBindingsEcr - | SyncReconcileResponseExternalBindingsAcr - | SyncReconcileResponseExternalBindingsGar - | SyncReconcileResponseExternalBindingsLocal; - -/** - * Reference to a Kubernetes Secret + * Domain metadata for auto-managed public resources (no private keys). */ -export type SyncReconcileResponseDataDirSecretRef1 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseDataDir1 = { +export type SyncReconcileResponseDomainMetadata = { /** - * Reference to a Kubernetes Secret + * Base domain for auto-generated domains (e.g., "vpc.direct"). */ - secretRef: SyncReconcileResponseDataDirSecretRef1; + baseDomain: string; + /** + * Hosted zone ID for DNS records. + */ + hostedZoneId: string; + /** + * Deployment public subdomain (e.g., "k8f2j3"). + */ + publicSubdomain: string; + /** + * Metadata per resource ID. + */ + resources: { [k: string]: DomainMetadataTargetResources }; }; +export type SyncReconcileResponseDomainMetadataUnion = + | SyncReconcileResponseDomainMetadata + | any; + /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Type of environment variable */ -export type SyncReconcileResponseDataDirUnion1 = - | SyncReconcileResponseDataDir1 - | any - | string; +export const TargetEnvironmentVariablesType = { + Plain: "plain", + Secret: "secret", +} as const; +/** + * Type of environment variable + */ +export type TargetEnvironmentVariablesType = ClosedEnum< + typeof TargetEnvironmentVariablesType +>; /** - * Reference to a Kubernetes Secret + * Environment variable for deployment */ -export type SyncReconcileResponseKeyPrefixSecretRef2 = { - key: string; +export type SyncReconcileResponseVariable = { + /** + * Variable name + */ name: string; -}; - -export type SyncReconcileResponseKeyPrefix2 = { /** - * Reference to a Kubernetes Secret + * Target resource patterns (null = all resources, Some = wildcard patterns) */ - secretRef: SyncReconcileResponseKeyPrefixSecretRef2; + targetResources?: Array | null | undefined; + /** + * Type of environment variable + */ + type: TargetEnvironmentVariablesType; + /** + * Variable value (decrypted - deployment has access to decryption keys) + */ + value: string; }; -export const TargetTypeKv5 = { - Kv: "kv", -} as const; -export type TargetTypeKv5 = ClosedEnum; - /** - * Local development KV binding configuration + * Snapshot of environment variables at a point in time */ -export type SyncReconcileResponseExternalBindingsLocalKv = { +export type SyncReconcileResponseEnvironmentVariables = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * ISO 8601 timestamp when snapshot was created */ - dataDir?: SyncReconcileResponseDataDir1 | any | string | null | undefined; - keyPrefix?: any | null | undefined; - service: "local-kv"; - type: TargetTypeKv5; + createdAt: string; + /** + * Deterministic hash of all variables (for change detection) + */ + hash: string; + /** + * Environment variables in the snapshot + */ + variables: Array; }; /** * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseConnectionUrlSecretRef = { +export type SyncReconcileResponseApiKeySecretRef = { key: string; name: string; }; -export type SyncReconcileResponseConnectionUrl = { +export type SyncReconcileResponseApiKey = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncReconcileResponseConnectionUrlSecretRef; + secretRef: SyncReconcileResponseApiKeySecretRef; }; /** @@ -7606,81 +7504,54 @@ export type SyncReconcileResponseConnectionUrl = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseConnectionUrlUnion = - | SyncReconcileResponseConnectionUrl +export type SyncReconcileResponseApiKeyUnion = + | SyncReconcileResponseApiKey | any | string; -/** - * Reference to a Kubernetes Secret - */ -export type SyncReconcileResponseDatabaseSecretRef1 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseDatabase1 = { - /** - * Reference to a Kubernetes Secret - */ - secretRef: SyncReconcileResponseDatabaseSecretRef1; -}; - -/** - * Reference to a Kubernetes Secret - */ -export type SyncReconcileResponseKeyPrefixSecretRef1 = { - key: string; - name: string; -}; - -export type SyncReconcileResponseKeyPrefix1 = { - /** - * Reference to a Kubernetes Secret - */ - secretRef: SyncReconcileResponseKeyPrefixSecretRef1; -}; - -export const TargetTypeKv4 = { - Kv: "kv", +export const TargetTypeAi = { + Ai: "ai", } as const; -export type TargetTypeKv4 = ClosedEnum; +export type TargetTypeAi = ClosedEnum; /** - * Redis KV binding configuration + * External AI provider binding configuration (BYO-key). + * + * @remarks + * + * The operator-supplied secret rides inside the binding via + * `BindingValue`, so it is a literal on cloud platforms and gains + * Kubernetes SecretRef resolution for free (`extract_binding_secrets` walks + * the binding JSON for `secretRef`). */ -export type SyncReconcileResponseExternalBindingsRedis = { +export type SyncReconcileResponseExternalBindingsAi = { /** * Represents a value that can be either a concrete value, a template expression, * * @remarks * or a reference to a Kubernetes Secret */ - connectionUrl?: - | SyncReconcileResponseConnectionUrl - | any - | string - | null - | undefined; - database?: any | null | undefined; - keyPrefix?: any | null | undefined; - service: "redis"; - type: TargetTypeKv4; + apiKey?: SyncReconcileResponseApiKey | any | string | null | undefined; + /** + * The external AI provider name (e.g., "openai", "anthropic") + */ + provider: string; + type: TargetTypeAi; }; /** * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseAccountNameSecretRef2 = { +export type SyncReconcileResponseDatabaseSecretRef6 = { key: string; name: string; }; -export type SyncReconcileResponseAccountName2 = { +export type SyncReconcileResponseDatabase6 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncReconcileResponseAccountNameSecretRef2; + secretRef: SyncReconcileResponseDatabaseSecretRef6; }; /** @@ -7689,24 +7560,24 @@ export type SyncReconcileResponseAccountName2 = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseAccountNameUnion2 = - | SyncReconcileResponseAccountName2 +export type SyncReconcileResponseDatabaseUnion5 = + | SyncReconcileResponseDatabase6 | any | string; /** * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseResourceGroupNameSecretRef1 = { +export type SyncReconcileResponseHostSecretRef4 = { key: string; name: string; }; -export type SyncReconcileResponseResourceGroupName1 = { +export type SyncReconcileResponseHost4 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncReconcileResponseResourceGroupNameSecretRef1; + secretRef: SyncReconcileResponseHostSecretRef4; }; /** @@ -7715,24 +7586,24 @@ export type SyncReconcileResponseResourceGroupName1 = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseResourceGroupNameUnion1 = - | SyncReconcileResponseResourceGroupName1 +export type SyncReconcileResponseHostUnion4 = + | SyncReconcileResponseHost4 | any | string; /** * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseTableNameSecretRef2 = { +export type SyncReconcileResponsePortSecretRef5 = { key: string; name: string; }; -export type SyncReconcileResponseTableName2 = { +export type SyncReconcileResponsePort5 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncReconcileResponseTableNameSecretRef2; + secretRef: SyncReconcileResponsePortSecretRef5; }; /** @@ -7741,68 +7612,92 @@ export type SyncReconcileResponseTableName2 = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseTableNameUnion2 = - | SyncReconcileResponseTableName2 - | any +export type SyncReconcileResponsePortUnion5 = + | SyncReconcileResponsePort5 + | number + | any; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseUsernameSecretRef5 = { + key: string; + name: string; +}; + +export type SyncReconcileResponseUsername5 = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncReconcileResponseUsernameSecretRef5; +}; + +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseUsernameUnion5 = + | SyncReconcileResponseUsername5 + | any | string; -export const TargetTypeKv3 = { - Kv: "kv", +export const TargetTypePostgres5 = { + Postgres: "postgres", } as const; -export type TargetTypeKv3 = ClosedEnum; +export type TargetTypePostgres5 = ClosedEnum; /** - * Azure Table Storage KV binding configuration + * Local embedded Postgres binding. */ -export type SyncReconcileResponseExternalBindingsTablestorage = { +export type SyncReconcileResponseExternalBindingsLocalPostgres = { /** * Represents a value that can be either a concrete value, a template expression, * * @remarks * or a reference to a Kubernetes Secret */ - accountName?: - | SyncReconcileResponseAccountName2 - | any - | string - | null - | undefined; + database?: SyncReconcileResponseDatabase6 | any | string | null | undefined; /** * Represents a value that can be either a concrete value, a template expression, * * @remarks * or a reference to a Kubernetes Secret */ - resourceGroupName?: - | SyncReconcileResponseResourceGroupName1 - | any - | string - | null - | undefined; + host?: SyncReconcileResponseHost4 | any | string | null | undefined; + password: string; /** * Represents a value that can be either a concrete value, a template expression, * * @remarks * or a reference to a Kubernetes Secret */ - tableName?: SyncReconcileResponseTableName2 | any | string | null | undefined; - service: "tablestorage"; - type: TargetTypeKv3; + port?: SyncReconcileResponsePort5 | number | any | null | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + username?: SyncReconcileResponseUsername5 | any | string | null | undefined; + service: "local-postgres"; + type: TargetTypePostgres5; }; /** * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseCollectionNameSecretRef = { +export type SyncReconcileResponseDatabaseSecretRef5 = { key: string; name: string; }; -export type SyncReconcileResponseCollectionName = { +export type SyncReconcileResponseDatabase5 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncReconcileResponseCollectionNameSecretRef; + secretRef: SyncReconcileResponseDatabaseSecretRef5; }; /** @@ -7811,24 +7706,24 @@ export type SyncReconcileResponseCollectionName = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseCollectionNameUnion = - | SyncReconcileResponseCollectionName +export type SyncReconcileResponseDatabaseUnion4 = + | SyncReconcileResponseDatabase5 | any | string; /** * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseDatabaseIdSecretRef = { +export type SyncReconcileResponseHostSecretRef3 = { key: string; name: string; }; -export type SyncReconcileResponseDatabaseId = { +export type SyncReconcileResponseHost3 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncReconcileResponseDatabaseIdSecretRef; + secretRef: SyncReconcileResponseHostSecretRef3; }; /** @@ -7837,24 +7732,24 @@ export type SyncReconcileResponseDatabaseId = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseDatabaseIdUnion = - | SyncReconcileResponseDatabaseId +export type SyncReconcileResponseHostUnion3 = + | SyncReconcileResponseHost3 | any | string; /** * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseProjectIdSecretRef = { +export type SyncReconcileResponsePortSecretRef4 = { key: string; name: string; }; -export type SyncReconcileResponseProjectId = { +export type SyncReconcileResponsePort4 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncReconcileResponseProjectIdSecretRef; + secretRef: SyncReconcileResponsePortSecretRef4; }; /** @@ -7863,83 +7758,158 @@ export type SyncReconcileResponseProjectId = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseProjectIdUnion = - | SyncReconcileResponseProjectId +export type SyncReconcileResponsePortUnion4 = + | SyncReconcileResponsePort4 + | number + | any; + +/** + * TLS policy for an operator-provided / BYO Postgres database. + * + * @remarks + * + * Unlike libpq's ambiguous `prefer` mode, both choices map exactly to the + * connection settings exposed by every supported SDK. + */ +export const SyncReconcileResponseSslMode = { + VerifyFull: "verify-full", + Disable: "disable", +} as const; +/** + * TLS policy for an operator-provided / BYO Postgres database. + * + * @remarks + * + * Unlike libpq's ambiguous `prefer` mode, both choices map exactly to the + * connection settings exposed by every supported SDK. + */ +export type SyncReconcileResponseSslMode = ClosedEnum< + typeof SyncReconcileResponseSslMode +>; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseUsernameSecretRef4 = { + key: string; + name: string; +}; + +export type SyncReconcileResponseUsername4 = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncReconcileResponseUsernameSecretRef4; +}; + +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseUsernameUnion4 = + | SyncReconcileResponseUsername4 | any | string; -export const TargetTypeKv2 = { - Kv: "kv", +export const TargetTypePostgres4 = { + Postgres: "postgres", } as const; -export type TargetTypeKv2 = ClosedEnum; +export type TargetTypePostgres4 = ClosedEnum; /** - * GCP Firestore KV binding configuration + * Operator-provided / BYO database binding. */ -export type SyncReconcileResponseExternalBindingsFirestore = { +export type SyncReconcileResponseExternalBindingsExternal = { /** * Represents a value that can be either a concrete value, a template expression, * * @remarks * or a reference to a Kubernetes Secret */ - collectionName?: - | SyncReconcileResponseCollectionName - | any - | string - | null - | undefined; + database?: SyncReconcileResponseDatabase5 | any | string | null | undefined; /** * Represents a value that can be either a concrete value, a template expression, * * @remarks * or a reference to a Kubernetes Secret */ - databaseId?: - | SyncReconcileResponseDatabaseId - | any - | string - | null - | undefined; + host?: SyncReconcileResponseHost3 | any | string | null | undefined; + /** + * Connection password as a concrete value, never an unresolved `SecretRef`: the platform + * + * @remarks + * materializes the Kubernetes secret into the pod env. The cloud variants carry a secret + * locator instead. + */ + password: string; /** * Represents a value that can be either a concrete value, a template expression, * * @remarks * or a reference to a Kubernetes Secret */ - projectId?: SyncReconcileResponseProjectId | any | string | null | undefined; - service: "firestore"; - type: TargetTypeKv2; + port?: SyncReconcileResponsePort4 | number | any | null | undefined; + /** + * TLS policy for an operator-provided / BYO Postgres database. + * + * @remarks + * + * Unlike libpq's ambiguous `prefer` mode, both choices map exactly to the + * connection settings exposed by every supported SDK. + */ + sslMode?: SyncReconcileResponseSslMode | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + username?: SyncReconcileResponseUsername4 | any | string | null | undefined; + service: "external"; + type: TargetTypePostgres4; }; /** * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseEndpointUrlSecretRef = { +export type SyncReconcileResponseDatabaseSecretRef4 = { key: string; name: string; }; -export type SyncReconcileResponseEndpointUrl = { +export type SyncReconcileResponseDatabase4 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncReconcileResponseEndpointUrlSecretRef; + secretRef: SyncReconcileResponseDatabaseSecretRef4; }; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseDatabaseUnion3 = + | SyncReconcileResponseDatabase4 + | any + | string; + /** * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseRegionSecretRef = { +export type SyncReconcileResponseHostSecretRef2 = { key: string; name: string; }; -export type SyncReconcileResponseRegion = { +export type SyncReconcileResponseHost2 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncReconcileResponseRegionSecretRef; + secretRef: SyncReconcileResponseHostSecretRef2; }; /** @@ -7948,24 +7918,24 @@ export type SyncReconcileResponseRegion = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseRegionUnion = - | SyncReconcileResponseRegion +export type SyncReconcileResponseHostUnion2 = + | SyncReconcileResponseHost2 | any | string; /** * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseTableNameSecretRef1 = { +export type SyncReconcileResponsePasswordSecretUriSecretRef = { key: string; name: string; }; -export type SyncReconcileResponseTableName1 = { +export type SyncReconcileResponsePasswordSecretUri = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncReconcileResponseTableNameSecretRef1; + secretRef: SyncReconcileResponsePasswordSecretUriSecretRef; }; /** @@ -7974,62 +7944,50 @@ export type SyncReconcileResponseTableName1 = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseTableNameUnion1 = - | SyncReconcileResponseTableName1 +export type SyncReconcileResponsePasswordSecretUriUnion = + | SyncReconcileResponsePasswordSecretUri | any | string; -export const TargetTypeKv1 = { - Kv: "kv", -} as const; -export type TargetTypeKv1 = ClosedEnum; - /** - * AWS DynamoDB KV binding configuration + * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseExternalBindingsDynamodb = { - endpointUrl?: any | null | undefined; - /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ - region?: SyncReconcileResponseRegion | any | string | null | undefined; +export type SyncReconcileResponsePortSecretRef3 = { + key: string; + name: string; +}; + +export type SyncReconcileResponsePort3 = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Reference to a Kubernetes Secret */ - tableName?: SyncReconcileResponseTableName1 | any | string | null | undefined; - service: "dynamodb"; - type: TargetTypeKv1; + secretRef: SyncReconcileResponsePortSecretRef3; }; /** - * Represents a KV binding for key-value storage across platforms - */ -export type SyncReconcileResponseExternalBindingsUnion3 = - | SyncReconcileResponseExternalBindingsDynamodb - | SyncReconcileResponseExternalBindingsFirestore - | SyncReconcileResponseExternalBindingsTablestorage - | SyncReconcileResponseExternalBindingsRedis - | SyncReconcileResponseExternalBindingsLocalKv; + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponsePortUnion3 = + | SyncReconcileResponsePort3 + | number + | any; /** * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseQueuePathSecretRef = { +export type SyncReconcileResponseUsernameSecretRef3 = { key: string; name: string; }; -export type SyncReconcileResponseQueuePath = { +export type SyncReconcileResponseUsername3 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncReconcileResponseQueuePathSecretRef; + secretRef: SyncReconcileResponseUsernameSecretRef3; }; /** @@ -8038,44 +7996,77 @@ export type SyncReconcileResponseQueuePath = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseQueuePathUnion = - | SyncReconcileResponseQueuePath +export type SyncReconcileResponseUsernameUnion3 = + | SyncReconcileResponseUsername3 | any | string; -export const TargetTypeQueue4 = { - Queue: "queue", +export const TargetTypePostgres3 = { + Postgres: "postgres", } as const; -export type TargetTypeQueue4 = ClosedEnum; +export type TargetTypePostgres3 = ClosedEnum; /** - * Local queue parameters + * Azure Flexible Server binding. */ -export type SyncReconcileResponseExternalBindingsLocalQueue = { +export type SyncReconcileResponseExternalBindingsFlexibleServer = { /** * Represents a value that can be either a concrete value, a template expression, * * @remarks * or a reference to a Kubernetes Secret */ - queuePath?: SyncReconcileResponseQueuePath | any | string | null | undefined; - service: "local-queue"; - type: TargetTypeQueue4; + database?: SyncReconcileResponseDatabase4 | any | string | null | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + host?: SyncReconcileResponseHost2 | any | string | null | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + passwordSecretUri?: + | SyncReconcileResponsePasswordSecretUri + | any + | string + | null + | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + port?: SyncReconcileResponsePort3 | number | any | null | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + username?: SyncReconcileResponseUsername3 | any | string | null | undefined; + service: "flexible-server"; + type: TargetTypePostgres3; }; /** * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseNamespaceSecretRef1 = { +export type SyncReconcileResponseDatabaseSecretRef3 = { key: string; name: string; }; -export type SyncReconcileResponseNamespace1 = { +export type SyncReconcileResponseDatabase3 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncReconcileResponseNamespaceSecretRef1; + secretRef: SyncReconcileResponseDatabaseSecretRef3; }; /** @@ -8084,24 +8075,24 @@ export type SyncReconcileResponseNamespace1 = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseNamespaceUnion1 = - | SyncReconcileResponseNamespace1 +export type SyncReconcileResponseDatabaseUnion2 = + | SyncReconcileResponseDatabase3 | any | string; /** * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseQueueNameSecretRef = { +export type SyncReconcileResponseHostSecretRef1 = { key: string; name: string; }; -export type SyncReconcileResponseQueueName = { +export type SyncReconcileResponseHost1 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncReconcileResponseQueueNameSecretRef; + secretRef: SyncReconcileResponseHostSecretRef1; }; /** @@ -8110,51 +8101,76 @@ export type SyncReconcileResponseQueueName = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseQueueNameUnion = - | SyncReconcileResponseQueueName +export type SyncReconcileResponseHostUnion1 = + | SyncReconcileResponseHost1 | any | string; -export const TargetTypeQueue3 = { - Queue: "queue", -} as const; -export type TargetTypeQueue3 = ClosedEnum; - /** - * Azure Service Bus parameters + * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseExternalBindingsServicebus = { +export type SyncReconcileResponsePasswordSecretNameSecretRef = { + key: string; + name: string; +}; + +export type SyncReconcileResponsePasswordSecretName = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Reference to a Kubernetes Secret */ - namespace?: SyncReconcileResponseNamespace1 | any | string | null | undefined; + secretRef: SyncReconcileResponsePasswordSecretNameSecretRef; +}; + +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponsePasswordSecretNameUnion = + | SyncReconcileResponsePasswordSecretName + | any + | string; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponsePortSecretRef2 = { + key: string; + name: string; +}; + +export type SyncReconcileResponsePort2 = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Reference to a Kubernetes Secret */ - queueName?: SyncReconcileResponseQueueName | any | string | null | undefined; - service: "servicebus"; - type: TargetTypeQueue3; + secretRef: SyncReconcileResponsePortSecretRef2; }; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponsePortUnion2 = + | SyncReconcileResponsePort2 + | number + | any; + /** * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseSubscriptionSecretRef = { +export type SyncReconcileResponseServerCaCertificatesSecretRef = { key: string; name: string; }; -export type SyncReconcileResponseSubscription = { +export type SyncReconcileResponseServerCaCertificates = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncReconcileResponseSubscriptionSecretRef; + secretRef: SyncReconcileResponseServerCaCertificatesSecretRef; }; /** @@ -8163,24 +8179,24 @@ export type SyncReconcileResponseSubscription = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseSubscriptionUnion = - | SyncReconcileResponseSubscription - | any - | string; +export type SyncReconcileResponseServerCaCertificatesUnion = + | SyncReconcileResponseServerCaCertificates + | Array + | any; /** * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseTopicSecretRef = { +export type SyncReconcileResponseUsernameSecretRef2 = { key: string; name: string; }; -export type SyncReconcileResponseTopic = { +export type SyncReconcileResponseUsername2 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncReconcileResponseTopicSecretRef; + secretRef: SyncReconcileResponseUsernameSecretRef2; }; /** @@ -8189,28 +8205,42 @@ export type SyncReconcileResponseTopic = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseTopicUnion = - | SyncReconcileResponseTopic +export type SyncReconcileResponseUsernameUnion2 = + | SyncReconcileResponseUsername2 | any | string; -export const TargetTypeQueue2 = { - Queue: "queue", +export const TargetTypePostgres2 = { + Postgres: "postgres", } as const; -export type TargetTypeQueue2 = ClosedEnum; +export type TargetTypePostgres2 = ClosedEnum; /** - * GCP Pub/Sub parameters + * GCP Cloud SQL binding. */ -export type SyncReconcileResponseExternalBindingsPubsub = { +export type SyncReconcileResponseExternalBindingsCloudSQL = { /** * Represents a value that can be either a concrete value, a template expression, * * @remarks * or a reference to a Kubernetes Secret */ - subscription?: - | SyncReconcileResponseSubscription + database?: SyncReconcileResponseDatabase3 | any | string | null | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + host?: SyncReconcileResponseHost1 | any | string | null | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + passwordSecretName?: + | SyncReconcileResponsePasswordSecretName | any | string | null @@ -8221,24 +8251,43 @@ export type SyncReconcileResponseExternalBindingsPubsub = { * @remarks * or a reference to a Kubernetes Secret */ - topic?: SyncReconcileResponseTopic | any | string | null | undefined; - service: "pubsub"; - type: TargetTypeQueue2; + port?: SyncReconcileResponsePort2 | number | any | null | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + serverCaCertificates?: + | SyncReconcileResponseServerCaCertificates + | Array + | any + | null + | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + username?: SyncReconcileResponseUsername2 | any | string | null | undefined; + service: "cloud-sql"; + type: TargetTypePostgres2; }; /** * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseQueueUrlSecretRef = { +export type SyncReconcileResponseClusterEndpointSecretRef = { key: string; name: string; }; -export type SyncReconcileResponseQueueUrl = { +export type SyncReconcileResponseClusterEndpoint = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncReconcileResponseQueueUrlSecretRef; + secretRef: SyncReconcileResponseClusterEndpointSecretRef; }; /** @@ -8247,53 +8296,50 @@ export type SyncReconcileResponseQueueUrl = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseQueueUrlUnion = - | SyncReconcileResponseQueueUrl +export type SyncReconcileResponseClusterEndpointUnion = + | SyncReconcileResponseClusterEndpoint | any | string; -export const TargetTypeQueue1 = { - Queue: "queue", -} as const; -export type TargetTypeQueue1 = ClosedEnum; - /** - * AWS SQS queue parameters + * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseExternalBindingsSqs = { - /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ - queueUrl?: SyncReconcileResponseQueueUrl | any | string | null | undefined; - service: "sqs"; - type: TargetTypeQueue1; +export type SyncReconcileResponseDatabaseSecretRef2 = { + key: string; + name: string; }; -/** - * Binding parameters for Queue at runtime or in templates. +export type SyncReconcileResponseDatabase2 = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncReconcileResponseDatabaseSecretRef2; +}; + +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseExternalBindingsUnion2 = - | SyncReconcileResponseExternalBindingsSqs - | SyncReconcileResponseExternalBindingsPubsub - | SyncReconcileResponseExternalBindingsServicebus - | SyncReconcileResponseExternalBindingsLocalQueue; +export type SyncReconcileResponseDatabaseUnion1 = + | SyncReconcileResponseDatabase2 + | any + | string; /** * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseStoragePathSecretRef = { +export type SyncReconcileResponsePasswordSecretArnSecretRef = { key: string; name: string; }; -export type SyncReconcileResponseStoragePath = { +export type SyncReconcileResponsePasswordSecretArn = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncReconcileResponseStoragePathSecretRef; + secretRef: SyncReconcileResponsePasswordSecretArnSecretRef; }; /** @@ -8302,49 +8348,50 @@ export type SyncReconcileResponseStoragePath = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseStoragePathUnion = - | SyncReconcileResponseStoragePath +export type SyncReconcileResponsePasswordSecretArnUnion = + | SyncReconcileResponsePasswordSecretArn | any | string; -export const TargetTypeStorage4 = { - Storage: "storage", -} as const; -export type TargetTypeStorage4 = ClosedEnum; - /** - * Local filesystem storage binding configuration + * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseExternalBindingsLocalStorage = { +export type SyncReconcileResponsePortSecretRef1 = { + key: string; + name: string; +}; + +export type SyncReconcileResponsePort1 = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Reference to a Kubernetes Secret */ - storagePath?: - | SyncReconcileResponseStoragePath - | any - | string - | null - | undefined; - service: "local-storage"; - type: TargetTypeStorage4; + secretRef: SyncReconcileResponsePortSecretRef1; }; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponsePortUnion1 = + | SyncReconcileResponsePort1 + | number + | any; + /** * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseBucketNameSecretRef2 = { +export type SyncReconcileResponseUsernameSecretRef1 = { key: string; name: string; }; -export type SyncReconcileResponseBucketName2 = { +export type SyncReconcileResponseUsername1 = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncReconcileResponseBucketNameSecretRef2; + secretRef: SyncReconcileResponseUsernameSecretRef1; }; /** @@ -8353,49 +8400,92 @@ export type SyncReconcileResponseBucketName2 = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseBucketNameUnion2 = - | SyncReconcileResponseBucketName2 +export type SyncReconcileResponseUsernameUnion1 = + | SyncReconcileResponseUsername1 | any | string; -export const TargetTypeStorage3 = { - Storage: "storage", +export const TargetTypePostgres1 = { + Postgres: "postgres", } as const; -export type TargetTypeStorage3 = ClosedEnum; +export type TargetTypePostgres1 = ClosedEnum; /** - * Google Cloud Storage binding configuration + * AWS Aurora Serverless v2 binding. */ -export type SyncReconcileResponseExternalBindingsGcs = { +export type SyncReconcileResponseExternalBindingsAurora = { /** * Represents a value that can be either a concrete value, a template expression, * * @remarks * or a reference to a Kubernetes Secret */ - bucketName?: - | SyncReconcileResponseBucketName2 + clusterEndpoint?: + | SyncReconcileResponseClusterEndpoint | any | string | null | undefined; - service: "gcs"; - type: TargetTypeStorage3; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + database?: SyncReconcileResponseDatabase2 | any | string | null | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + passwordSecretArn?: + | SyncReconcileResponsePasswordSecretArn + | any + | string + | null + | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + port?: SyncReconcileResponsePort1 | number | any | null | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + username?: SyncReconcileResponseUsername1 | any | string | null | undefined; + service: "aurora"; + type: TargetTypePostgres1; }; +/** + * Connection details for a Postgres database, one variant per backend. + */ +export type SyncReconcileResponseExternalBindingsUnion6 = + | SyncReconcileResponseExternalBindingsAurora + | SyncReconcileResponseExternalBindingsCloudSQL + | SyncReconcileResponseExternalBindingsFlexibleServer + | SyncReconcileResponseExternalBindingsExternal + | SyncReconcileResponseExternalBindingsLocalPostgres; + /** * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseAccountNameSecretRef1 = { +export type SyncReconcileResponseDefaultDomainSecretRef = { key: string; name: string; }; -export type SyncReconcileResponseAccountName1 = { +export type SyncReconcileResponseDefaultDomain = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncReconcileResponseAccountNameSecretRef1; + secretRef: SyncReconcileResponseDefaultDomainSecretRef; }; /** @@ -8404,24 +8494,24 @@ export type SyncReconcileResponseAccountName1 = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseAccountNameUnion1 = - | SyncReconcileResponseAccountName1 +export type SyncReconcileResponseDefaultDomainUnion = + | SyncReconcileResponseDefaultDomain | any | string; /** * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseContainerNameSecretRef = { +export type SyncReconcileResponseEnvironmentNameSecretRef = { key: string; name: string; }; -export type SyncReconcileResponseContainerName = { +export type SyncReconcileResponseEnvironmentName = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncReconcileResponseContainerNameSecretRef; + secretRef: SyncReconcileResponseEnvironmentNameSecretRef; }; /** @@ -8430,61 +8520,50 @@ export type SyncReconcileResponseContainerName = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseContainerNameUnion = - | SyncReconcileResponseContainerName +export type SyncReconcileResponseEnvironmentNameUnion = + | SyncReconcileResponseEnvironmentName | any | string; -export const TargetTypeStorage2 = { - Storage: "storage", -} as const; -export type TargetTypeStorage2 = ClosedEnum; - /** - * Azure Blob Storage binding configuration + * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseExternalBindingsBlob = { - /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret - */ - accountName?: - | SyncReconcileResponseAccountName1 - | any - | string - | null - | undefined; +export type SyncReconcileResponseResourceGroupNameSecretRef3 = { + key: string; + name: string; +}; + +export type SyncReconcileResponseResourceGroupName3 = { /** - * Represents a value that can be either a concrete value, a template expression, - * - * @remarks - * or a reference to a Kubernetes Secret + * Reference to a Kubernetes Secret */ - containerName?: - | SyncReconcileResponseContainerName - | any - | string - | null - | undefined; - service: "blob"; - type: TargetTypeStorage2; + secretRef: SyncReconcileResponseResourceGroupNameSecretRef3; }; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseResourceGroupNameUnion3 = + | SyncReconcileResponseResourceGroupName3 + | any + | string; + /** * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseBucketNameSecretRef1 = { +export type SyncReconcileResponseResourceIdSecretRef = { key: string; name: string; }; -export type SyncReconcileResponseBucketName1 = { +export type SyncReconcileResponseResourceId = { /** * Reference to a Kubernetes Secret */ - secretRef: SyncReconcileResponseBucketNameSecretRef1; + secretRef: SyncReconcileResponseResourceIdSecretRef; }; /** @@ -8493,2908 +8572,3429 @@ export type SyncReconcileResponseBucketName1 = { * @remarks * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseBucketNameUnion1 = - | SyncReconcileResponseBucketName1 +export type SyncReconcileResponseResourceIdUnion = + | SyncReconcileResponseResourceId | any | string; -export const TargetTypeStorage1 = { - Storage: "storage", +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseStaticIpSecretRef = { + key: string; + name: string; +}; + +export type SyncReconcileResponseStaticIp = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncReconcileResponseStaticIpSecretRef; +}; + +export const TargetTypeContainerAppsEnvironment = { + ContainerAppsEnvironment: "container_apps_environment", } as const; -export type TargetTypeStorage1 = ClosedEnum; +export type TargetTypeContainerAppsEnvironment = ClosedEnum< + typeof TargetTypeContainerAppsEnvironment +>; /** - * AWS S3 storage binding configuration + * Binding configuration for a pre-existing Azure Container Apps Environment. + * + * @remarks + * + * Used when deploying to an existing environment instead of having Alien provision one. + * This is useful for shared environments (e.g., test infrastructure) or enterprise + * setups where environments are managed by a separate team. */ -export type SyncReconcileResponseExternalBindingsS3 = { +export type SyncReconcileResponseExternalBindingsContainerAppsEnvironment = { /** * Represents a value that can be either a concrete value, a template expression, * * @remarks * or a reference to a Kubernetes Secret */ - bucketName?: - | SyncReconcileResponseBucketName1 + defaultDomain?: + | SyncReconcileResponseDefaultDomain | any | string | null | undefined; - service: "s3"; - type: TargetTypeStorage1; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + environmentName?: + | SyncReconcileResponseEnvironmentName + | any + | string + | null + | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + resourceGroupName?: + | SyncReconcileResponseResourceGroupName3 + | any + | string + | null + | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + resourceId?: + | SyncReconcileResponseResourceId + | any + | string + | null + | undefined; + staticIp?: any | null | undefined; + type: TargetTypeContainerAppsEnvironment; }; /** - * Service-type based storage binding that supports multiple storage providers + * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseExternalBindingsUnion1 = - | SyncReconcileResponseExternalBindingsS3 - | SyncReconcileResponseExternalBindingsBlob - | SyncReconcileResponseExternalBindingsGcs - | SyncReconcileResponseExternalBindingsLocalStorage; +export type SyncReconcileResponseDataDirSecretRef3 = { + key: string; + name: string; +}; + +export type SyncReconcileResponseDataDir3 = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncReconcileResponseDataDirSecretRef3; +}; /** - * Represents a binding to pre-existing infrastructure. + * Represents a value that can be either a concrete value, a template expression, * * @remarks - * - * The binding type must match the resource type it's applied to. - * Validated at runtime by the executor. + * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseExternalBindingsUnion7 = - | SyncReconcileResponseExternalBindingsContainerAppsEnvironment - | SyncReconcileResponseExternalBindingsS3 - | SyncReconcileResponseExternalBindingsBlob - | SyncReconcileResponseExternalBindingsGcs - | SyncReconcileResponseExternalBindingsLocalStorage - | SyncReconcileResponseExternalBindingsSqs - | SyncReconcileResponseExternalBindingsPubsub - | SyncReconcileResponseExternalBindingsServicebus - | SyncReconcileResponseExternalBindingsLocalQueue - | SyncReconcileResponseExternalBindingsDynamodb - | SyncReconcileResponseExternalBindingsFirestore - | SyncReconcileResponseExternalBindingsTablestorage - | SyncReconcileResponseExternalBindingsRedis - | SyncReconcileResponseExternalBindingsLocalKv - | SyncReconcileResponseExternalBindingsEcr - | SyncReconcileResponseExternalBindingsAcr - | SyncReconcileResponseExternalBindingsGar - | SyncReconcileResponseExternalBindingsLocal - | SyncReconcileResponseExternalBindingsParameterStore - | SyncReconcileResponseExternalBindingsSecretManager - | SyncReconcileResponseExternalBindingsKeyVault - | SyncReconcileResponseExternalBindingsKubernetesSecret - | SyncReconcileResponseExternalBindingsLocalVault - | SyncReconcileResponseExternalBindingsAurora - | SyncReconcileResponseExternalBindingsCloudSQL - | SyncReconcileResponseExternalBindingsFlexibleServer - | SyncReconcileResponseExternalBindingsExternal - | SyncReconcileResponseExternalBindingsLocalPostgres; - -export const TargetPlatformKubernetes = { - Kubernetes: "kubernetes", -} as const; -export type TargetPlatformKubernetes = ClosedEnum< - typeof TargetPlatformKubernetes ->; - -export type SyncReconcileResponseManagementConfigKubernetes = { - platform: TargetPlatformKubernetes; -}; +export type SyncReconcileResponseDataDirUnion2 = + | SyncReconcileResponseDataDir3 + | any + | string; -export const TargetPlatformAzure = { - Azure: "azure", +export const TargetTypeVault5 = { + Vault: "vault", } as const; -export type TargetPlatformAzure = ClosedEnum; +export type TargetTypeVault5 = ClosedEnum; /** - * Azure management configuration extracted from stack settings + * Local development vault binding (for testing/development) */ -export type SyncReconcileResponseManagementConfigAzure = { - /** - * The managing Azure Tenant ID for cross-tenant access - */ - managingTenantId: string; +export type SyncReconcileResponseExternalBindingsLocalVault = { /** - * OIDC issuer URL trusted by the target-side managed identity. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - oidcIssuer: string; + dataDir?: SyncReconcileResponseDataDir3 | any | string | null | undefined; /** - * OIDC subject claim trusted by the target-side managed identity. + * The vault name for local storage */ - oidcSubject: string; - platform: TargetPlatformAzure; + vaultName: string; + service: "local-vault"; + type: TargetTypeVault5; }; -export const TargetPlatformGcp = { - Gcp: "gcp", -} as const; -export type TargetPlatformGcp = ClosedEnum; - /** - * GCP management configuration extracted from stack settings + * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseManagementConfigGcp = { +export type SyncReconcileResponseNamespaceSecretRef2 = { + key: string; + name: string; +}; + +export type SyncReconcileResponseNamespace2 = { /** - * Service account email for management roles + * Reference to a Kubernetes Secret */ - serviceAccountEmail: string; - platform: TargetPlatformGcp; + secretRef: SyncReconcileResponseNamespaceSecretRef2; }; -export const TargetPlatformAws = { - Aws: "aws", -} as const; -export type TargetPlatformAws = ClosedEnum; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseNamespaceUnion2 = + | SyncReconcileResponseNamespace2 + | any + | string; /** - * AWS management configuration extracted from stack settings + * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseManagementConfigAws = { +export type SyncReconcileResponseVaultPrefixSecretRef3 = { + key: string; + name: string; +}; + +export type SyncReconcileResponseVaultPrefix3 = { /** - * The managing AWS IAM role ARN that can assume cross-account roles + * Reference to a Kubernetes Secret */ - managingRoleArn: string; - platform: TargetPlatformAws; + secretRef: SyncReconcileResponseVaultPrefixSecretRef3; }; -export type SyncReconcileResponseManagementConfigUnion = - | SyncReconcileResponseManagementConfigAzure - | SyncReconcileResponseManagementConfigAws - | SyncReconcileResponseManagementConfigGcp - | SyncReconcileResponseManagementConfigKubernetes - | any; - /** - * OTLP log export configuration for a deployment. + * Represents a value that can be either a concrete value, a template expression, * * @remarks - * - * When set, injected compute runtimes export captured application logs - * through the given endpoint via OTLP/HTTP; which resources are injected - * is platform-dependent. Workers read auth headers from a runtime-only - * secret. Runtime-less Containers and Daemons receive standard OTEL auth - * variables only at the final hosting boundary: Local passes them directly - * to the process and Kubernetes projects them from a per-workload Secret. + * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseMonitoring = { +export type SyncReconcileResponseVaultPrefixUnion3 = + | SyncReconcileResponseVaultPrefix3 + | any + | string; + +export const TargetTypeVault4 = { + Vault: "vault", +} as const; +export type TargetTypeVault4 = ClosedEnum; + +/** + * Kubernetes Secrets vault binding configuration + */ +export type SyncReconcileResponseExternalBindingsKubernetesSecret = { /** - * Auth header value in "key=value,..." format. + * Represents a value that can be either a concrete value, a template expression, * * @remarks - * Example: "authorization=Bearer " + * or a reference to a Kubernetes Secret */ - logsAuthHeader: string; + namespace?: SyncReconcileResponseNamespace2 | any | string | null | undefined; /** - * Full OTLP logs endpoint URL. + * Represents a value that can be either a concrete value, a template expression, * * @remarks - * Example: "https:///v1/logs" + * or a reference to a Kubernetes Secret */ - logsEndpoint: string; + vaultPrefix?: + | SyncReconcileResponseVaultPrefix3 + | any + | string + | null + | undefined; + service: "kubernetes-secret"; + type: TargetTypeVault4; +}; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseVaultNameSecretRef = { + key: string; + name: string; +}; + +export type SyncReconcileResponseVaultName = { /** - * Auth header value for the metrics endpoint in "key=value,..." format (optional). - * - * @remarks - * - * When absent, `logs_auth_header` is reused for metrics -- suitable when the same - * credential covers both signals. When present (e.g. Axiom with separate datasets), - * this value is used exclusively for metrics. - * - * Example: "authorization=Bearer ,x-axiom-dataset=" - */ - metricsAuthHeader?: string | null | undefined; - /** - * Full OTLP metrics endpoint URL (optional). - * - * @remarks - * When set, the worker runtime exports its own VM/container orchestration metrics here. - * Example: "https://api.axiom.co/v1/metrics" + * Reference to a Kubernetes Secret */ - metricsEndpoint?: string | null | undefined; + secretRef: SyncReconcileResponseVaultNameSecretRef; +}; + +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseVaultNameUnion = + | SyncReconcileResponseVaultName + | any + | string; + +export const TargetTypeVault3 = { + Vault: "vault", +} as const; +export type TargetTypeVault3 = ClosedEnum; + +/** + * Azure Key Vault binding configuration + */ +export type SyncReconcileResponseExternalBindingsKeyVault = { /** - * Resource attributes attached to every OTLP signal emitted for this deployment. + * Represents a value that can be either a concrete value, a template expression, * * @remarks - * - * Platform managers use this for stable identity such as `alien.workspace_id`, - * `alien.project_id`, `alien.deployment_group_id`, and `alien.deployment_id`. - * Runtime-specific resource attributes such as `service.name` remain owned by - * the runtime/exporter. + * or a reference to a Kubernetes Secret */ - resourceAttributes?: { [k: string]: string } | undefined; + vaultName?: SyncReconcileResponseVaultName | any | string | null | undefined; + service: "key-vault"; + type: TargetTypeVault3; }; -export type SyncReconcileResponseMonitoringUnion = - | SyncReconcileResponseMonitoring - | any; - -export type SyncReconcileResponsePoolsAutoscale = { - /** - * Provider machine type selected for this deployment. - */ - machine?: string | null | undefined; - /** - * Maximum machine count. - */ - max: number; - /** - * Minimum machine count. - */ - min: number; - mode: "autoscale"; +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseVaultPrefixSecretRef2 = { + key: string; + name: string; }; -export type SyncReconcileResponsePoolsFixed = { - /** - * Provider machine type selected for this deployment. - */ - machine?: string | null | undefined; +export type SyncReconcileResponseVaultPrefix2 = { /** - * Number of machines to run. + * Reference to a Kubernetes Secret */ - machines: number; - mode: "fixed"; + secretRef: SyncReconcileResponseVaultPrefixSecretRef2; }; /** - * User-selected deployment settings for one compute pool. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponsePoolsUnion = - | SyncReconcileResponsePoolsFixed - | SyncReconcileResponsePoolsAutoscale; +export type SyncReconcileResponseVaultPrefixUnion2 = + | SyncReconcileResponseVaultPrefix2 + | any + | string; + +export const TargetTypeVault2 = { + Vault: "vault", +} as const; +export type TargetTypeVault2 = ClosedEnum; /** - * Deployment-time compute choices for Alien-managed compute pools. - * - * @remarks - * - * Application source declares portable pool requirements. This settings - * object stores the concrete choices made for one deployment, such as the - * provider machine type and selected machine counts. + * GCP Secret Manager vault binding configuration */ -export type SyncReconcileResponseCompute = { +export type SyncReconcileResponseExternalBindingsSecretManager = { /** - * Selected compute choices keyed by pool ID. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - pools?: { - [k: string]: - | SyncReconcileResponsePoolsFixed - | SyncReconcileResponsePoolsAutoscale; - } | undefined; + vaultPrefix?: + | SyncReconcileResponseVaultPrefix2 + | any + | string + | null + | undefined; + service: "secret-manager"; + type: TargetTypeVault2; }; -export type SyncReconcileResponseComputeUnion = - | SyncReconcileResponseCompute - | any; - -/** - * Deployment model: how updates are delivered to the remote environment. - */ -export const SyncReconcileResponseDeploymentModel = { - Push: "push", - Pull: "pull", -} as const; /** - * Deployment model: how updates are delivered to the remote environment. + * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseDeploymentModel = ClosedEnum< - typeof SyncReconcileResponseDeploymentModel ->; - -export type SyncReconcileResponseAwsStackSettings = { - certificateArn: string; +export type SyncReconcileResponseVaultPrefixSecretRef1 = { + key: string; + name: string; }; -export type SyncReconcileResponseStackSettingsAwsUnion = - | SyncReconcileResponseAwsStackSettings - | any; - -export type AzureTargetStackSettings = { - keyVaultCertificateId: string; - keyVaultResourceId?: string | null | undefined; +export type SyncReconcileResponseVaultPrefix1 = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncReconcileResponseVaultPrefixSecretRef1; }; -export type TargetStackSettingsAzureUnion = AzureTargetStackSettings | any; - -export type GcpTargetStackSettings = { - certificateName: string; -}; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseVaultPrefixUnion1 = + | SyncReconcileResponseVaultPrefix1 + | any + | string; -export type TargetStackSettingsGcpUnion = GcpTargetStackSettings | any; +export const TargetTypeVault1 = { + Vault: "vault", +} as const; +export type TargetTypeVault1 = ClosedEnum; /** - * Namespace-scoped Kubernetes TLS Secret reference. + * AWS SSM Parameter Store vault binding configuration */ -export type SyncReconcileResponseTlsSecretRef = { - /** - * Secret namespace. Defaults to the release namespace when omitted. - */ - namespace?: string | null | undefined; +export type SyncReconcileResponseExternalBindingsParameterStore = { /** - * Secret name. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - secretName: string; + vaultPrefix?: + | SyncReconcileResponseVaultPrefix1 + | any + | string + | null + | undefined; + service: "parameter-store"; + type: TargetTypeVault1; }; -export type SyncReconcileResponseDomainsKubernetes = { +/** + * Represents a vault binding for secure secret management + */ +export type SyncReconcileResponseExternalBindingsUnion5 = + | SyncReconcileResponseExternalBindingsParameterStore + | SyncReconcileResponseExternalBindingsSecretManager + | SyncReconcileResponseExternalBindingsKeyVault + | SyncReconcileResponseExternalBindingsKubernetesSecret + | SyncReconcileResponseExternalBindingsLocalVault; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseDataDirSecretRef2 = { + key: string; + name: string; +}; + +export type SyncReconcileResponseDataDir2 = { /** - * Namespace-scoped Kubernetes TLS Secret reference. + * Reference to a Kubernetes Secret */ - tlsSecretRef: SyncReconcileResponseTlsSecretRef; + secretRef: SyncReconcileResponseDataDirSecretRef2; }; -export type SyncReconcileResponseDomainsKubernetesUnion = - | SyncReconcileResponseDomainsKubernetes - | any; - /** - * Platform-specific certificate references for custom domains. + * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseDomainsCertificate = { - aws?: SyncReconcileResponseAwsStackSettings | any | null | undefined; - azure?: AzureTargetStackSettings | any | null | undefined; - gcp?: GcpTargetStackSettings | any | null | undefined; - kubernetes?: SyncReconcileResponseDomainsKubernetes | any | null | undefined; +export type SyncReconcileResponseRegistryUrlSecretRef = { + key: string; + name: string; }; -/** - * Custom domain configuration for a single resource. - */ -export type SyncReconcileResponseCustomDomains = { - /** - * Platform-specific certificate references for custom domains. - */ - certificate: SyncReconcileResponseDomainsCertificate; +export type SyncReconcileResponseRegistryUrl = { /** - * Fully qualified domain name to use. + * Reference to a Kubernetes Secret */ - domain: string; + secretRef: SyncReconcileResponseRegistryUrlSecretRef; }; -export const SyncReconcileResponseModeLoadBalancer = { - LoadBalancer: "loadBalancer", -} as const; -export type SyncReconcileResponseModeLoadBalancer = ClosedEnum< - typeof SyncReconcileResponseModeLoadBalancer ->; - -export type SyncReconcileResponsePublicEndpointTargetLoadBalancer = { - /** - * DNS name or URL for the external load balancer. - */ - cnameTarget: string; - mode: SyncReconcileResponseModeLoadBalancer; -}; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseRegistryUrlUnion = + | SyncReconcileResponseRegistryUrl + | any + | string; -export const SyncReconcileResponseModeMachineAddresses = { - MachineAddresses: "machineAddresses", +export const TargetTypeArtifactRegistry4 = { + ArtifactRegistry: "artifact_registry", } as const; -export type SyncReconcileResponseModeMachineAddresses = ClosedEnum< - typeof SyncReconcileResponseModeMachineAddresses +export type TargetTypeArtifactRegistry4 = ClosedEnum< + typeof TargetTypeArtifactRegistry4 >; -export type SyncReconcileResponsePublicEndpointTargetMachineAddresses = { - mode: SyncReconcileResponseModeMachineAddresses; -}; - -export type SyncReconcileResponsePublicEndpointTargetUnion = - | SyncReconcileResponsePublicEndpointTargetLoadBalancer - | SyncReconcileResponsePublicEndpointTargetMachineAddresses - | any; - /** - * Domain configuration for the stack. + * Local container registry binding configuration. * * @remarks * - * When `custom_domains` is set, the specified resources use customer-provided - * domains and certificates. Otherwise, Alien auto-generates domains. + * The local registry runs on localhost only and does not require authentication. + * Security boundary is the OS process isolation on the customer's machine. + * External image access is secured by the manager's registry proxy (deployment tokens). */ -export type SyncReconcileResponseDomains = { +export type SyncReconcileResponseExternalBindingsLocal = { /** - * Custom domain configuration per resource ID. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - customDomains?: - | { [k: string]: SyncReconcileResponseCustomDomains } - | null - | undefined; - publicEndpointTarget?: - | SyncReconcileResponsePublicEndpointTargetLoadBalancer - | SyncReconcileResponsePublicEndpointTargetMachineAddresses + dataDir?: any | null | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + registryUrl?: + | SyncReconcileResponseRegistryUrl | any + | string | null | undefined; + service: "local"; + type: TargetTypeArtifactRegistry4; }; -export type SyncReconcileResponseDomainsUnion = - | SyncReconcileResponseDomains - | any; - /** - * External bindings for pre-existing infrastructure. - * - * @remarks - * Allows using existing resources (MinIO, Redis, shared Container Apps - * Environment, etc.) instead of having Alien provision them. - * Required for Kubernetes platform, optional for cloud platforms. + * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseStackSettingsExternalBindings = {}; +export type SyncReconcileResponsePullServiceAccountEmailSecretRef = { + key: string; + name: string; +}; + +export type SyncReconcileResponsePullServiceAccountEmail = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncReconcileResponsePullServiceAccountEmailSecretRef; +}; /** - * How heartbeat health checks are handled. - */ -export const SyncReconcileResponseHeartbeats = { - Off: "off", - On: "on", -} as const; -/** - * How heartbeat health checks are handled. + * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseHeartbeats = ClosedEnum< - typeof SyncReconcileResponseHeartbeats ->; +export type SyncReconcileResponsePushServiceAccountEmailSecretRef = { + key: string; + name: string; +}; + +export type SyncReconcileResponsePushServiceAccountEmail = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncReconcileResponsePushServiceAccountEmailSecretRef; +}; /** - * Optional provider-specific identity for a cloud-backed Kubernetes cluster. + * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseCloud = { - accountId?: string | null | undefined; - clusterId?: string | null | undefined; - clusterName?: string | null | undefined; - projectId?: string | null | undefined; - region?: string | null | undefined; - resourceGroup?: string | null | undefined; - subscriptionId?: string | null | undefined; +export type SyncReconcileResponseRepositoryNameSecretRef = { + key: string; + name: string; }; -export type SyncReconcileResponseCloudUnion = SyncReconcileResponseCloud | any; +export type SyncReconcileResponseRepositoryName = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncReconcileResponseRepositoryNameSecretRef; +}; /** - * Ownership model for the Kubernetes cluster. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ -export const SyncReconcileResponseOwnership = { - Managed: "managed", - Existing: "existing", - External: "external", +export type SyncReconcileResponseRepositoryNameUnion = + | SyncReconcileResponseRepositoryName + | any + | string; + +export const TargetTypeArtifactRegistry3 = { + ArtifactRegistry: "artifact_registry", } as const; -/** - * Ownership model for the Kubernetes cluster. - */ -export type SyncReconcileResponseOwnership = ClosedEnum< - typeof SyncReconcileResponseOwnership +export type TargetTypeArtifactRegistry3 = ClosedEnum< + typeof TargetTypeArtifactRegistry3 >; /** - * Kubernetes cluster setup settings. + * Google Artifact Registry binding configuration */ -export type SyncReconcileResponseCluster = { - cloud?: SyncReconcileResponseCloud | any | null | undefined; +export type SyncReconcileResponseExternalBindingsGar = { + pullServiceAccountEmail?: any | null | undefined; + pushServiceAccountEmail?: any | null | undefined; /** - * Namespace where the Alien chart and application resources run. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - namespace?: string | null | undefined; + repositoryName?: + | SyncReconcileResponseRepositoryName + | any + | string + | null + | undefined; + service: "gar"; + type: TargetTypeArtifactRegistry3; +}; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseRegistryNameSecretRef = { + key: string; + name: string; +}; + +export type SyncReconcileResponseRegistryName = { /** - * Ownership model for the Kubernetes cluster. + * Reference to a Kubernetes Secret */ - ownership: SyncReconcileResponseOwnership; + secretRef: SyncReconcileResponseRegistryNameSecretRef; }; -export type SyncReconcileResponseClusterUnion = - | SyncReconcileResponseCluster - | any; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseRegistryNameUnion = + | SyncReconcileResponseRegistryName + | any + | string; -export type SyncReconcileResponseCertificateNone2 = { - mode: "none"; +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseRepositoryPrefixSecretRef2 = { + key: string; + name: string; }; -export type SyncReconcileResponseCertificateManagedTLSSecret2 = { - mode: "managedTlsSecret"; +export type SyncReconcileResponseRepositoryPrefix2 = { /** - * Secret name template. Runtime may substitute resource/deployment tokens. + * Reference to a Kubernetes Secret */ - secretNameTemplate: string; + secretRef: SyncReconcileResponseRepositoryPrefixSecretRef2; }; -export type SyncReconcileResponseCertificateAwsAcmArn2 = { - /** - * Existing ACM certificate ARN. - */ - certificateArn: string; - mode: "awsAcmArn"; +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseResourceGroupNameSecretRef2 = { + key: string; + name: string; }; -export type SyncReconcileResponseCertificateManagedAcmImport2 = { - mode: "managedAcmImport"; - /** - * ACM region. Defaults to the deployment region when omitted. - */ - region?: string | null | undefined; +export type SyncReconcileResponseResourceGroupName2 = { /** - * Tags applied to runtime-imported ACM certificates. + * Reference to a Kubernetes Secret */ - tags?: { [k: string]: string } | undefined; + secretRef: SyncReconcileResponseResourceGroupNameSecretRef2; }; /** - * Namespace-scoped Kubernetes TLS Secret reference. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseCertificateTLSSecretRef2 = { - /** - * Secret namespace. Defaults to the release namespace when omitted. +export type SyncReconcileResponseResourceGroupNameUnion2 = + | SyncReconcileResponseResourceGroupName2 + | any + | string; + +export const TargetTypeArtifactRegistry2 = { + ArtifactRegistry: "artifact_registry", +} as const; +export type TargetTypeArtifactRegistry2 = ClosedEnum< + typeof TargetTypeArtifactRegistry2 +>; + +/** + * Azure Container Registry binding configuration + */ +export type SyncReconcileResponseExternalBindingsAcr = { + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - namespace?: string | null | undefined; + registryName?: + | SyncReconcileResponseRegistryName + | any + | string + | null + | undefined; + repositoryPrefix?: any | null | undefined; /** - * Secret name. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - secretName: string; - mode: "tlsSecretRef"; + resourceGroupName?: + | SyncReconcileResponseResourceGroupName2 + | any + | string + | null + | undefined; + service: "acr"; + type: TargetTypeArtifactRegistry2; }; /** - * Certificate publication or reference mode for Kubernetes public endpoints. + * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseCertificateUnion2 = - | SyncReconcileResponseCertificateTLSSecretRef2 - | SyncReconcileResponseCertificateManagedAcmImport2 - | SyncReconcileResponseCertificateAwsAcmArn2 - | SyncReconcileResponseCertificateManagedTLSSecret2 - | SyncReconcileResponseCertificateNone2; +export type SyncReconcileResponsePullRoleArnSecretRef = { + key: string; + name: string; +}; -export const SyncReconcileResponseModeCustom = { - Custom: "custom", -} as const; -export type SyncReconcileResponseModeCustom = ClosedEnum< - typeof SyncReconcileResponseModeCustom ->; +export type SyncReconcileResponsePullRoleArn = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncReconcileResponsePullRoleArnSecretRef; +}; -export const SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum4 = - { - AzureApplicationGatewayForContainers: - "azureApplicationGatewayForContainers", - } as const; -export type SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum4 = - ClosedEnum< - typeof SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum4 - >; +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponsePushRoleArnSecretRef = { + key: string; + name: string; +}; -export type SyncReconcileResponseProviderAzureApplicationGatewayForContainers4 = - { - /** - * Optional ALB name when using BYO Application Gateway resources. - */ - albName?: string | null | undefined; - /** - * Optional ALB namespace when using BYO Application Gateway resources. - */ - albNamespace?: string | null | undefined; - /** - * Public or internal frontend exposure. - */ - frontend: string; - provider: - SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum4; - }; +export type SyncReconcileResponsePushRoleArn = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncReconcileResponsePushRoleArnSecretRef; +}; -export const SyncReconcileResponseProviderGkeGatewayEnum4 = { - GkeGateway: "gkeGateway", -} as const; -export type SyncReconcileResponseProviderGkeGatewayEnum4 = ClosedEnum< - typeof SyncReconcileResponseProviderGkeGatewayEnum4 ->; +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseRepositoryPrefixSecretRef1 = { + key: string; + name: string; +}; -export type SyncReconcileResponseProviderGkeGateway4 = { - provider: SyncReconcileResponseProviderGkeGatewayEnum4; +export type SyncReconcileResponseRepositoryPrefix1 = { /** - * Optional static address name for the Gateway frontend. + * Reference to a Kubernetes Secret */ - staticAddressName?: string | null | undefined; + secretRef: SyncReconcileResponseRepositoryPrefixSecretRef1; }; -export const SyncReconcileResponseProviderAwsAlbEnum4 = { - AwsAlb: "awsAlb", +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseRepositoryPrefixUnion = + | SyncReconcileResponseRepositoryPrefix1 + | any + | string; + +export const TargetTypeArtifactRegistry1 = { + ArtifactRegistry: "artifact_registry", } as const; -export type SyncReconcileResponseProviderAwsAlbEnum4 = ClosedEnum< - typeof SyncReconcileResponseProviderAwsAlbEnum4 +export type TargetTypeArtifactRegistry1 = ClosedEnum< + typeof TargetTypeArtifactRegistry1 >; -export type SyncReconcileResponseProviderAwsAlb4 = { - /** - * Optional ALB IP address type, such as `dualstack`. - */ - ipAddressType?: string | null | undefined; - provider: SyncReconcileResponseProviderAwsAlbEnum4; +/** + * AWS ECR (Elastic Container Registry) binding configuration + */ +export type SyncReconcileResponseExternalBindingsEcr = { + pullRoleArn?: any | null | undefined; + pushRoleArn?: any | null | undefined; /** - * Internet-facing or internal ALB scheme. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - scheme: string; + repositoryPrefix?: + | SyncReconcileResponseRepositoryPrefix1 + | any + | string + | null + | undefined; + service: "ecr"; + type: TargetTypeArtifactRegistry1; +}; + +/** + * Service-type based artifact registry binding that supports multiple registry providers + */ +export type SyncReconcileResponseExternalBindingsUnion4 = + | SyncReconcileResponseExternalBindingsEcr + | SyncReconcileResponseExternalBindingsAcr + | SyncReconcileResponseExternalBindingsGar + | SyncReconcileResponseExternalBindingsLocal; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseDataDirSecretRef1 = { + key: string; + name: string; +}; + +export type SyncReconcileResponseDataDir1 = { /** - * Explicit subnet IDs when the profile cannot rely on controller discovery. + * Reference to a Kubernetes Secret */ - subnetIds?: Array | undefined; + secretRef: SyncReconcileResponseDataDirSecretRef1; +}; + +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseDataDirUnion1 = + | SyncReconcileResponseDataDir1 + | any + | string; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseKeyPrefixSecretRef2 = { + key: string; + name: string; +}; + +export type SyncReconcileResponseKeyPrefix2 = { /** - * ALB target type, usually `ip`. + * Reference to a Kubernetes Secret */ - targetType: string; + secretRef: SyncReconcileResponseKeyPrefixSecretRef2; }; -export type SyncReconcileResponseProviderUnion4 = - | SyncReconcileResponseProviderAwsAlb4 - | SyncReconcileResponseProviderAzureApplicationGatewayForContainers4 - | SyncReconcileResponseProviderGkeGateway4 - | any; +export const TargetTypeKv5 = { + Kv: "kv", +} as const; +export type TargetTypeKv5 = ClosedEnum; /** - * Shared Gateway API route profile values. + * Local development KV binding configuration */ -export type SyncReconcileResponseRouteGateway2 = { +export type SyncReconcileResponseExternalBindingsLocalKv = { /** - * Annotations applied to route objects. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - annotations?: { [k: string]: string } | undefined; + dataDir?: SyncReconcileResponseDataDir1 | any | string | null | undefined; + keyPrefix?: any | null | undefined; + service: "local-kv"; + type: TargetTypeKv5; +}; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseConnectionUrlSecretRef = { + key: string; + name: string; +}; + +export type SyncReconcileResponseConnectionUrl = { /** - * Route controller identifier, for example a cloud Gateway controller. - */ - controller?: string | null | undefined; - /** - * GatewayClass selected for generated Gateways. - */ - gatewayClassName: string; - /** - * Labels applied to route objects. - */ - labels?: { [k: string]: string } | undefined; - /** - * Listener port, usually 443. + * Reference to a Kubernetes Secret */ - listenerPort: number; - provider?: - | SyncReconcileResponseProviderAwsAlb4 - | SyncReconcileResponseProviderAzureApplicationGatewayForContainers4 - | SyncReconcileResponseProviderGkeGateway4 - | any - | null - | undefined; - routeApi: "gateway"; + secretRef: SyncReconcileResponseConnectionUrlSecretRef; }; -export const SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum3 = - { - AzureApplicationGatewayForContainers: - "azureApplicationGatewayForContainers", - } as const; -export type SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum3 = - ClosedEnum< - typeof SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum3 - >; - -export type SyncReconcileResponseProviderAzureApplicationGatewayForContainers3 = - { - /** - * Optional ALB name when using BYO Application Gateway resources. - */ - albName?: string | null | undefined; - /** - * Optional ALB namespace when using BYO Application Gateway resources. - */ - albNamespace?: string | null | undefined; - /** - * Public or internal frontend exposure. - */ - frontend: string; - provider: - SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum3; - }; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseConnectionUrlUnion = + | SyncReconcileResponseConnectionUrl + | any + | string; -export const SyncReconcileResponseProviderGkeGatewayEnum3 = { - GkeGateway: "gkeGateway", -} as const; -export type SyncReconcileResponseProviderGkeGatewayEnum3 = ClosedEnum< - typeof SyncReconcileResponseProviderGkeGatewayEnum3 ->; +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseDatabaseSecretRef1 = { + key: string; + name: string; +}; -export type SyncReconcileResponseProviderGkeGateway3 = { - provider: SyncReconcileResponseProviderGkeGatewayEnum3; +export type SyncReconcileResponseDatabase1 = { /** - * Optional static address name for the Gateway frontend. + * Reference to a Kubernetes Secret */ - staticAddressName?: string | null | undefined; + secretRef: SyncReconcileResponseDatabaseSecretRef1; }; -export const SyncReconcileResponseProviderAwsAlbEnum3 = { - AwsAlb: "awsAlb", -} as const; -export type SyncReconcileResponseProviderAwsAlbEnum3 = ClosedEnum< - typeof SyncReconcileResponseProviderAwsAlbEnum3 ->; +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseKeyPrefixSecretRef1 = { + key: string; + name: string; +}; -export type SyncReconcileResponseProviderAwsAlb3 = { - /** - * Optional ALB IP address type, such as `dualstack`. - */ - ipAddressType?: string | null | undefined; - provider: SyncReconcileResponseProviderAwsAlbEnum3; - /** - * Internet-facing or internal ALB scheme. - */ - scheme: string; - /** - * Explicit subnet IDs when the profile cannot rely on controller discovery. - */ - subnetIds?: Array | undefined; +export type SyncReconcileResponseKeyPrefix1 = { /** - * ALB target type, usually `ip`. + * Reference to a Kubernetes Secret */ - targetType: string; + secretRef: SyncReconcileResponseKeyPrefixSecretRef1; }; -export type SyncReconcileResponseProviderUnion3 = - | SyncReconcileResponseProviderAwsAlb3 - | SyncReconcileResponseProviderAzureApplicationGatewayForContainers3 - | SyncReconcileResponseProviderGkeGateway3 - | any; +export const TargetTypeKv4 = { + Kv: "kv", +} as const; +export type TargetTypeKv4 = ClosedEnum; /** - * Shared Ingress route profile values. + * Redis KV binding configuration */ -export type SyncReconcileResponseRouteIngress2 = { - /** - * Annotations applied to route objects. - */ - annotations?: { [k: string]: string } | undefined; - /** - * Route controller identifier, for example `eks.amazonaws.com/alb`. - */ - controller?: string | null | undefined; - /** - * `spec.ingressClassName` for generated Ingresses. - */ - ingressClassName: string; +export type SyncReconcileResponseExternalBindingsRedis = { /** - * Labels applied to route objects. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - labels?: { [k: string]: string } | undefined; - provider?: - | SyncReconcileResponseProviderAwsAlb3 - | SyncReconcileResponseProviderAzureApplicationGatewayForContainers3 - | SyncReconcileResponseProviderGkeGateway3 + connectionUrl?: + | SyncReconcileResponseConnectionUrl | any + | string | null | undefined; - routeApi: "ingress"; + database?: any | null | undefined; + keyPrefix?: any | null | undefined; + service: "redis"; + type: TargetTypeKv4; }; /** - * Kubernetes route API selected for public endpoints. + * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseRouteUnion2 = - | SyncReconcileResponseRouteIngress2 - | SyncReconcileResponseRouteGateway2; +export type SyncReconcileResponseAccountNameSecretRef2 = { + key: string; + name: string; +}; -export type SyncReconcileResponseExposureCustom = { - /** - * Certificate publication or reference mode for Kubernetes public endpoints. - */ - certificate: - | SyncReconcileResponseCertificateTLSSecretRef2 - | SyncReconcileResponseCertificateManagedAcmImport2 - | SyncReconcileResponseCertificateAwsAcmArn2 - | SyncReconcileResponseCertificateManagedTLSSecret2 - | SyncReconcileResponseCertificateNone2; - /** - * Hostname routed by the Kubernetes public endpoint. - */ - domain: string; - mode: SyncReconcileResponseModeCustom; +export type SyncReconcileResponseAccountName2 = { /** - * Kubernetes route API selected for public endpoints. + * Reference to a Kubernetes Secret */ - route: - | SyncReconcileResponseRouteIngress2 - | SyncReconcileResponseRouteGateway2; + secretRef: SyncReconcileResponseAccountNameSecretRef2; }; -export type SyncReconcileResponseCertificateNone1 = { - mode: "none"; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseAccountNameUnion2 = + | SyncReconcileResponseAccountName2 + | any + | string; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseResourceGroupNameSecretRef1 = { + key: string; + name: string; }; -export type SyncReconcileResponseCertificateManagedTLSSecret1 = { - mode: "managedTlsSecret"; +export type SyncReconcileResponseResourceGroupName1 = { /** - * Secret name template. Runtime may substitute resource/deployment tokens. + * Reference to a Kubernetes Secret */ - secretNameTemplate: string; + secretRef: SyncReconcileResponseResourceGroupNameSecretRef1; }; -export type SyncReconcileResponseCertificateAwsAcmArn1 = { - /** - * Existing ACM certificate ARN. - */ - certificateArn: string; - mode: "awsAcmArn"; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseResourceGroupNameUnion1 = + | SyncReconcileResponseResourceGroupName1 + | any + | string; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseTableNameSecretRef2 = { + key: string; + name: string; }; -export type SyncReconcileResponseCertificateManagedAcmImport1 = { - mode: "managedAcmImport"; - /** - * ACM region. Defaults to the deployment region when omitted. - */ - region?: string | null | undefined; +export type SyncReconcileResponseTableName2 = { /** - * Tags applied to runtime-imported ACM certificates. + * Reference to a Kubernetes Secret */ - tags?: { [k: string]: string } | undefined; + secretRef: SyncReconcileResponseTableNameSecretRef2; }; /** - * Namespace-scoped Kubernetes TLS Secret reference. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseCertificateTLSSecretRef1 = { - /** - * Secret namespace. Defaults to the release namespace when omitted. - */ - namespace?: string | null | undefined; +export type SyncReconcileResponseTableNameUnion2 = + | SyncReconcileResponseTableName2 + | any + | string; + +export const TargetTypeKv3 = { + Kv: "kv", +} as const; +export type TargetTypeKv3 = ClosedEnum; + +/** + * Azure Table Storage KV binding configuration + */ +export type SyncReconcileResponseExternalBindingsTablestorage = { /** - * Secret name. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - secretName: string; - mode: "tlsSecretRef"; + accountName?: + | SyncReconcileResponseAccountName2 + | any + | string + | null + | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + resourceGroupName?: + | SyncReconcileResponseResourceGroupName1 + | any + | string + | null + | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + tableName?: SyncReconcileResponseTableName2 | any | string | null | undefined; + service: "tablestorage"; + type: TargetTypeKv3; }; /** - * Certificate publication or reference mode for Kubernetes public endpoints. + * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseCertificateUnion1 = - | SyncReconcileResponseCertificateTLSSecretRef1 - | SyncReconcileResponseCertificateManagedAcmImport1 - | SyncReconcileResponseCertificateAwsAcmArn1 - | SyncReconcileResponseCertificateManagedTLSSecret1 - | SyncReconcileResponseCertificateNone1; - -export const SyncReconcileResponseModeGenerated = { - Generated: "generated", -} as const; -export type SyncReconcileResponseModeGenerated = ClosedEnum< - typeof SyncReconcileResponseModeGenerated ->; +export type SyncReconcileResponseCollectionNameSecretRef = { + key: string; + name: string; +}; -export const SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum2 = - { - AzureApplicationGatewayForContainers: - "azureApplicationGatewayForContainers", - } as const; -export type SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum2 = - ClosedEnum< - typeof SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum2 - >; +export type SyncReconcileResponseCollectionName = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncReconcileResponseCollectionNameSecretRef; +}; -export type SyncReconcileResponseProviderAzureApplicationGatewayForContainers2 = - { - /** - * Optional ALB name when using BYO Application Gateway resources. - */ - albName?: string | null | undefined; - /** - * Optional ALB namespace when using BYO Application Gateway resources. - */ - albNamespace?: string | null | undefined; - /** - * Public or internal frontend exposure. - */ - frontend: string; - provider: - SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum2; - }; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseCollectionNameUnion = + | SyncReconcileResponseCollectionName + | any + | string; -export const SyncReconcileResponseProviderGkeGatewayEnum2 = { - GkeGateway: "gkeGateway", -} as const; -export type SyncReconcileResponseProviderGkeGatewayEnum2 = ClosedEnum< - typeof SyncReconcileResponseProviderGkeGatewayEnum2 ->; +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseDatabaseIdSecretRef = { + key: string; + name: string; +}; -export type SyncReconcileResponseProviderGkeGateway2 = { - provider: SyncReconcileResponseProviderGkeGatewayEnum2; +export type SyncReconcileResponseDatabaseId = { /** - * Optional static address name for the Gateway frontend. + * Reference to a Kubernetes Secret */ - staticAddressName?: string | null | undefined; + secretRef: SyncReconcileResponseDatabaseIdSecretRef; }; -export const SyncReconcileResponseProviderAwsAlbEnum2 = { - AwsAlb: "awsAlb", -} as const; -export type SyncReconcileResponseProviderAwsAlbEnum2 = ClosedEnum< - typeof SyncReconcileResponseProviderAwsAlbEnum2 ->; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseDatabaseIdUnion = + | SyncReconcileResponseDatabaseId + | any + | string; -export type SyncReconcileResponseProviderAwsAlb2 = { - /** - * Optional ALB IP address type, such as `dualstack`. - */ - ipAddressType?: string | null | undefined; - provider: SyncReconcileResponseProviderAwsAlbEnum2; - /** - * Internet-facing or internal ALB scheme. - */ - scheme: string; - /** - * Explicit subnet IDs when the profile cannot rely on controller discovery. - */ - subnetIds?: Array | undefined; +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseProjectIdSecretRef = { + key: string; + name: string; +}; + +export type SyncReconcileResponseProjectId = { /** - * ALB target type, usually `ip`. + * Reference to a Kubernetes Secret */ - targetType: string; + secretRef: SyncReconcileResponseProjectIdSecretRef; }; -export type SyncReconcileResponseProviderUnion2 = - | SyncReconcileResponseProviderAwsAlb2 - | SyncReconcileResponseProviderAzureApplicationGatewayForContainers2 - | SyncReconcileResponseProviderGkeGateway2 - | any; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseProjectIdUnion = + | SyncReconcileResponseProjectId + | any + | string; + +export const TargetTypeKv2 = { + Kv: "kv", +} as const; +export type TargetTypeKv2 = ClosedEnum; /** - * Shared Gateway API route profile values. + * GCP Firestore KV binding configuration */ -export type SyncReconcileResponseRouteGateway1 = { - /** - * Annotations applied to route objects. - */ - annotations?: { [k: string]: string } | undefined; - /** - * Route controller identifier, for example a cloud Gateway controller. - */ - controller?: string | null | undefined; - /** - * GatewayClass selected for generated Gateways. - */ - gatewayClassName: string; +export type SyncReconcileResponseExternalBindingsFirestore = { /** - * Labels applied to route objects. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - labels?: { [k: string]: string } | undefined; + collectionName?: + | SyncReconcileResponseCollectionName + | any + | string + | null + | undefined; /** - * Listener port, usually 443. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - listenerPort: number; - provider?: - | SyncReconcileResponseProviderAwsAlb2 - | SyncReconcileResponseProviderAzureApplicationGatewayForContainers2 - | SyncReconcileResponseProviderGkeGateway2 + databaseId?: + | SyncReconcileResponseDatabaseId | any + | string | null | undefined; - routeApi: "gateway"; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + projectId?: SyncReconcileResponseProjectId | any | string | null | undefined; + service: "firestore"; + type: TargetTypeKv2; }; -export const SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum1 = - { - AzureApplicationGatewayForContainers: - "azureApplicationGatewayForContainers", - } as const; -export type SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum1 = - ClosedEnum< - typeof SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum1 - >; - -export type SyncReconcileResponseProviderAzureApplicationGatewayForContainers1 = - { - /** - * Optional ALB name when using BYO Application Gateway resources. - */ - albName?: string | null | undefined; - /** - * Optional ALB namespace when using BYO Application Gateway resources. - */ - albNamespace?: string | null | undefined; - /** - * Public or internal frontend exposure. - */ - frontend: string; - provider: - SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum1; - }; - -export const SyncReconcileResponseProviderGkeGatewayEnum1 = { - GkeGateway: "gkeGateway", -} as const; -export type SyncReconcileResponseProviderGkeGatewayEnum1 = ClosedEnum< - typeof SyncReconcileResponseProviderGkeGatewayEnum1 ->; +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseEndpointUrlSecretRef = { + key: string; + name: string; +}; -export type SyncReconcileResponseProviderGkeGateway1 = { - provider: SyncReconcileResponseProviderGkeGatewayEnum1; +export type SyncReconcileResponseEndpointUrl = { /** - * Optional static address name for the Gateway frontend. + * Reference to a Kubernetes Secret */ - staticAddressName?: string | null | undefined; + secretRef: SyncReconcileResponseEndpointUrlSecretRef; }; -export const SyncReconcileResponseProviderAwsAlbEnum1 = { - AwsAlb: "awsAlb", -} as const; -export type SyncReconcileResponseProviderAwsAlbEnum1 = ClosedEnum< - typeof SyncReconcileResponseProviderAwsAlbEnum1 ->; +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseRegionSecretRef = { + key: string; + name: string; +}; -export type SyncReconcileResponseProviderAwsAlb1 = { - /** - * Optional ALB IP address type, such as `dualstack`. - */ - ipAddressType?: string | null | undefined; - provider: SyncReconcileResponseProviderAwsAlbEnum1; - /** - * Internet-facing or internal ALB scheme. - */ - scheme: string; - /** - * Explicit subnet IDs when the profile cannot rely on controller discovery. - */ - subnetIds?: Array | undefined; +export type SyncReconcileResponseRegion = { /** - * ALB target type, usually `ip`. + * Reference to a Kubernetes Secret */ - targetType: string; + secretRef: SyncReconcileResponseRegionSecretRef; }; -export type SyncReconcileResponseProviderUnion1 = - | SyncReconcileResponseProviderAwsAlb1 - | SyncReconcileResponseProviderAzureApplicationGatewayForContainers1 - | SyncReconcileResponseProviderGkeGateway1 - | any; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseRegionUnion = + | SyncReconcileResponseRegion + | any + | string; /** - * Shared Ingress route profile values. + * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseRouteIngress1 = { - /** - * Annotations applied to route objects. - */ - annotations?: { [k: string]: string } | undefined; - /** - * Route controller identifier, for example `eks.amazonaws.com/alb`. - */ - controller?: string | null | undefined; - /** - * `spec.ingressClassName` for generated Ingresses. - */ - ingressClassName: string; +export type SyncReconcileResponseTableNameSecretRef1 = { + key: string; + name: string; +}; + +export type SyncReconcileResponseTableName1 = { /** - * Labels applied to route objects. + * Reference to a Kubernetes Secret */ - labels?: { [k: string]: string } | undefined; - provider?: - | SyncReconcileResponseProviderAwsAlb1 - | SyncReconcileResponseProviderAzureApplicationGatewayForContainers1 - | SyncReconcileResponseProviderGkeGateway1 - | any - | null - | undefined; - routeApi: "ingress"; + secretRef: SyncReconcileResponseTableNameSecretRef1; }; /** - * Kubernetes route API selected for public endpoints. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseRouteUnion1 = - | SyncReconcileResponseRouteIngress1 - | SyncReconcileResponseRouteGateway1; +export type SyncReconcileResponseTableNameUnion1 = + | SyncReconcileResponseTableName1 + | any + | string; -export type SyncReconcileResponseExposureGenerated = { +export const TargetTypeKv1 = { + Kv: "kv", +} as const; +export type TargetTypeKv1 = ClosedEnum; + +/** + * AWS DynamoDB KV binding configuration + */ +export type SyncReconcileResponseExternalBindingsDynamodb = { + endpointUrl?: any | null | undefined; /** - * Certificate publication or reference mode for Kubernetes public endpoints. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - certificate: - | SyncReconcileResponseCertificateTLSSecretRef1 - | SyncReconcileResponseCertificateManagedAcmImport1 - | SyncReconcileResponseCertificateAwsAcmArn1 - | SyncReconcileResponseCertificateManagedTLSSecret1 - | SyncReconcileResponseCertificateNone1; - mode: SyncReconcileResponseModeGenerated; + region?: SyncReconcileResponseRegion | any | string | null | undefined; /** - * Kubernetes route API selected for public endpoints. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - route: - | SyncReconcileResponseRouteIngress1 - | SyncReconcileResponseRouteGateway1; + tableName?: SyncReconcileResponseTableName1 | any | string | null | undefined; + service: "dynamodb"; + type: TargetTypeKv1; }; -export const SyncReconcileResponseModeDisabled = { - Disabled: "disabled", -} as const; -export type SyncReconcileResponseModeDisabled = ClosedEnum< - typeof SyncReconcileResponseModeDisabled ->; +/** + * Represents a KV binding for key-value storage across platforms + */ +export type SyncReconcileResponseExternalBindingsUnion3 = + | SyncReconcileResponseExternalBindingsDynamodb + | SyncReconcileResponseExternalBindingsFirestore + | SyncReconcileResponseExternalBindingsTablestorage + | SyncReconcileResponseExternalBindingsRedis + | SyncReconcileResponseExternalBindingsLocalKv; -export type SyncReconcileResponseExposureDisabled = { - mode: SyncReconcileResponseModeDisabled; +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseQueuePathSecretRef = { + key: string; + name: string; }; -export type SyncReconcileResponseExposureUnion = - | SyncReconcileResponseExposureCustom - | SyncReconcileResponseExposureGenerated - | SyncReconcileResponseExposureDisabled - | any; +export type SyncReconcileResponseQueuePath = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncReconcileResponseQueuePathSecretRef; +}; /** - * Kubernetes runtime substrate configuration. + * Represents a value that can be either a concrete value, a template expression, * * @remarks - * - * This controls how setup chooses the cluster backing `Platform::Kubernetes` - * deployments. When omitted, cloud-backed Kubernetes deployments default to a - * managed cluster and generic/on-prem Kubernetes defaults to an external - * cluster. + * or a reference to a Kubernetes Secret */ -export type SyncReconcileResponseKubernetes = { - cluster?: SyncReconcileResponseCluster | any | null | undefined; - exposure?: - | SyncReconcileResponseExposureCustom - | SyncReconcileResponseExposureGenerated - | SyncReconcileResponseExposureDisabled - | any - | null - | undefined; -}; - -export type SyncReconcileResponseKubernetesUnion = - | SyncReconcileResponseKubernetes - | any; +export type SyncReconcileResponseQueuePathUnion = + | SyncReconcileResponseQueuePath + | any + | string; -export const TargetTypeByoVnetAzure = { - ByoVnetAzure: "byo-vnet-azure", +export const TargetTypeQueue4 = { + Queue: "queue", } as const; -export type TargetTypeByoVnetAzure = ClosedEnum; +export type TargetTypeQueue4 = ClosedEnum; -export type SyncReconcileResponseNetworkByoVnetAzure = { - /** - * Name of the dedicated classic Application Gateway subnet within the VNet. - */ - applicationGatewaySubnetName?: string | null | undefined; +/** + * Local queue parameters + */ +export type SyncReconcileResponseExternalBindingsLocalQueue = { /** - * Name of the dedicated subnet that hosts Private Endpoints (e.g. for a + * Represents a value that can be either a concrete value, a template expression, * * @remarks - * Postgres Flexible Server). A Private Endpoint must not share the private - * subnet, which is already claimed by the Container Apps environment's - * `infrastructure_subnet_id`. Required only when the stack contains a - * Postgres resource; otherwise unused. - */ - privateEndpointSubnetName?: string | null | undefined; - /** - * Name of the private subnet within the VNet - */ - privateSubnetName: string; - /** - * Name of the public subnet within the VNet + * or a reference to a Kubernetes Secret */ - publicSubnetName: string; - type: TargetTypeByoVnetAzure; - /** - * The full resource ID of the existing VNet - */ - vnetResourceId: string; + queuePath?: SyncReconcileResponseQueuePath | any | string | null | undefined; + service: "local-queue"; + type: TargetTypeQueue4; }; -export const TargetTypeByoVpcGcp = { - ByoVpcGcp: "byo-vpc-gcp", -} as const; -export type TargetTypeByoVpcGcp = ClosedEnum; +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseNamespaceSecretRef1 = { + key: string; + name: string; +}; -export type SyncReconcileResponseNetworkByoVpcGcp = { - /** - * The name of the existing VPC network - */ - networkName: string; - /** - * The region of the subnet - */ - region: string; +export type SyncReconcileResponseNamespace1 = { /** - * The name of the subnet to use + * Reference to a Kubernetes Secret */ - subnetName: string; - type: TargetTypeByoVpcGcp; + secretRef: SyncReconcileResponseNamespaceSecretRef1; }; -export const TargetTypeByoVpcAws = { - ByoVpcAws: "byo-vpc-aws", -} as const; -export type TargetTypeByoVpcAws = ClosedEnum; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseNamespaceUnion1 = + | SyncReconcileResponseNamespace1 + | any + | string; -export type SyncReconcileResponseNetworkByoVpcAws = { - /** - * IDs of private subnets - */ - privateSubnetIds: Array; - /** - * IDs of public subnets (required for public ingress) - */ - publicSubnetIds: Array; - /** - * Optional security group IDs to use - */ - securityGroupIds?: Array | undefined; - type: TargetTypeByoVpcAws; +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseQueueNameSecretRef = { + key: string; + name: string; +}; + +export type SyncReconcileResponseQueueName = { /** - * The ID of the existing VPC + * Reference to a Kubernetes Secret */ - vpcId: string; + secretRef: SyncReconcileResponseQueueNameSecretRef; }; -export const TargetTypeCreate = { - Create: "create", +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseQueueNameUnion = + | SyncReconcileResponseQueueName + | any + | string; + +export const TargetTypeQueue3 = { + Queue: "queue", } as const; -export type TargetTypeCreate = ClosedEnum; +export type TargetTypeQueue3 = ClosedEnum; -export type SyncReconcileResponseNetworkCreate = { +/** + * Azure Service Bus parameters + */ +export type SyncReconcileResponseExternalBindingsServicebus = { /** - * Number of availability zones (default: 2). + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - availabilityZones?: number | undefined; + namespace?: SyncReconcileResponseNamespace1 | any | string | null | undefined; /** - * VPC/VNet CIDR block. If not specified, auto-generated from stack ID + * Represents a value that can be either a concrete value, a template expression, * * @remarks - * to reduce conflicts (e.g., "10.{hash}.0.0/16"). + * or a reference to a Kubernetes Secret */ - cidr?: string | null | undefined; - type: TargetTypeCreate; + queueName?: SyncReconcileResponseQueueName | any | string | null | undefined; + service: "servicebus"; + type: TargetTypeQueue3; }; -export const TargetTypeUseDefault = { - UseDefault: "use-default", -} as const; -export type TargetTypeUseDefault = ClosedEnum; - -export type SyncReconcileResponseNetworkUseDefault = { - type: TargetTypeUseDefault; +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseSubscriptionSecretRef = { + key: string; + name: string; }; -export type SyncReconcileResponseNetworkUnion = - | SyncReconcileResponseNetworkByoVpcAws - | SyncReconcileResponseNetworkByoVpcGcp - | SyncReconcileResponseNetworkByoVnetAzure - | SyncReconcileResponseNetworkUseDefault - | SyncReconcileResponseNetworkCreate - | any; +export type SyncReconcileResponseSubscription = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncReconcileResponseSubscriptionSecretRef; +}; /** - * How telemetry (logs, metrics, traces) is handled. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ -export const SyncReconcileResponseTelemetry = { - Off: "off", - Auto: "auto", - ApprovalRequired: "approval-required", -} as const; +export type SyncReconcileResponseSubscriptionUnion = + | SyncReconcileResponseSubscription + | any + | string; + /** - * How telemetry (logs, metrics, traces) is handled. + * Reference to a Kubernetes Secret */ -export type SyncReconcileResponseTelemetry = ClosedEnum< - typeof SyncReconcileResponseTelemetry ->; +export type SyncReconcileResponseTopicSecretRef = { + key: string; + name: string; +}; + +export type SyncReconcileResponseTopic = { + /** + * Reference to a Kubernetes Secret + */ + secretRef: SyncReconcileResponseTopicSecretRef; +}; /** - * How updates are delivered to the deployment. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ -export const SyncReconcileResponseUpdates = { - Auto: "auto", - ApprovalRequired: "approval-required", +export type SyncReconcileResponseTopicUnion = + | SyncReconcileResponseTopic + | any + | string; + +export const TargetTypeQueue2 = { + Queue: "queue", } as const; -/** - * How updates are delivered to the deployment. - */ -export type SyncReconcileResponseUpdates = ClosedEnum< - typeof SyncReconcileResponseUpdates ->; +export type TargetTypeQueue2 = ClosedEnum; /** - * User-customizable deployment settings specified at deploy time. - * - * @remarks - * - * These settings are provided by the customer via CloudFormation parameters, - * Terraform attributes, CLI flags, or Helm values. They customize how the - * deployment runs and what capabilities are enabled. - * - * **Key distinction**: StackSettings is user-customizable, while ManagementConfig - * is platform-derived (from the Manager's ServiceAccount). + * GCP Pub/Sub parameters */ -export type SyncReconcileResponseStackSettings = { - compute?: SyncReconcileResponseCompute | any | null | undefined; - /** - * Deployment model: how updates are delivered to the remote environment. - */ - deploymentModel?: SyncReconcileResponseDeploymentModel | undefined; - domains?: SyncReconcileResponseDomains | any | null | undefined; +export type SyncReconcileResponseExternalBindingsPubsub = { /** - * External bindings for pre-existing infrastructure. + * Represents a value that can be either a concrete value, a template expression, * * @remarks - * Allows using existing resources (MinIO, Redis, shared Container Apps - * Environment, etc.) instead of having Alien provision them. - * Required for Kubernetes platform, optional for cloud platforms. - */ - externalBindings?: - | SyncReconcileResponseStackSettingsExternalBindings - | null - | undefined; - /** - * How heartbeat health checks are handled. + * or a reference to a Kubernetes Secret */ - heartbeats?: SyncReconcileResponseHeartbeats | undefined; - kubernetes?: SyncReconcileResponseKubernetes | any | null | undefined; - network?: - | SyncReconcileResponseNetworkByoVpcAws - | SyncReconcileResponseNetworkByoVpcGcp - | SyncReconcileResponseNetworkByoVnetAzure - | SyncReconcileResponseNetworkUseDefault - | SyncReconcileResponseNetworkCreate + subscription?: + | SyncReconcileResponseSubscription | any + | string | null | undefined; /** - * How telemetry (logs, metrics, traces) is handled. - */ - telemetry?: SyncReconcileResponseTelemetry | undefined; - /** - * How updates are delivered to the deployment. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - updates?: SyncReconcileResponseUpdates | undefined; + topic?: SyncReconcileResponseTopic | any | string | null | undefined; + service: "pubsub"; + type: TargetTypeQueue2; }; /** - * Deployment configuration - * - * @remarks - * - * Configuration for how to perform the deployment. - * Note: Credentials (ClientConfig) are passed separately to step() function. + * Reference to a Kubernetes Secret */ -export type TargetConfig = { - /** - * Allow frozen resource changes during updates - * - * @remarks - * When true, skips the frozen resources compatibility check. - * This requires running with elevated cloud credentials. - */ - allowFrozenChanges?: boolean | undefined; - basePlatform?: SyncReconcileResponseBasePlatformEnum | any | null | undefined; - computeBackend?: - | SyncReconcileResponseComputeBackendHorizon - | any - | null - | undefined; +export type SyncReconcileResponseQueueUrlSecretRef = { + key: string; + name: string; +}; + +export type SyncReconcileResponseQueueUrl = { /** - * Human-readable deployment name for cloud console metadata. - * - * @remarks - * - * This is separate from the physical resource prefix in StackState. It is - * used only for display text such as IAM role descriptions, service - * account descriptions, and custom role titles. + * Reference to a Kubernetes Secret */ - deploymentName?: string | null | undefined; + secretRef: SyncReconcileResponseQueueUrlSecretRef; +}; + +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseQueueUrlUnion = + | SyncReconcileResponseQueueUrl + | any + | string; + +export const TargetTypeQueue1 = { + Queue: "queue", +} as const; +export type TargetTypeQueue1 = ClosedEnum; + +/** + * AWS SQS queue parameters + */ +export type SyncReconcileResponseExternalBindingsSqs = { /** - * Deployment token for pull authentication with the manager's registry. + * Represents a value that can be either a concrete value, a template expression, * * @remarks - * - * Used by controllers to configure registry credentials so cloud platforms - * and K8s can pull images from the manager's `/v2/` endpoint. - */ - deploymentToken?: string | null | undefined; - domainMetadata?: SyncReconcileResponseDomainMetadata | any | null | undefined; - /** - * Snapshot of environment variables at a point in time + * or a reference to a Kubernetes Secret */ - environmentVariables: SyncReconcileResponseEnvironmentVariables; + queueUrl?: SyncReconcileResponseQueueUrl | any | string | null | undefined; + service: "sqs"; + type: TargetTypeQueue1; +}; + +/** + * Binding parameters for Queue at runtime or in templates. + */ +export type SyncReconcileResponseExternalBindingsUnion2 = + | SyncReconcileResponseExternalBindingsSqs + | SyncReconcileResponseExternalBindingsPubsub + | SyncReconcileResponseExternalBindingsServicebus + | SyncReconcileResponseExternalBindingsLocalQueue; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseStoragePathSecretRef = { + key: string; + name: string; +}; + +export type SyncReconcileResponseStoragePath = { /** - * Map from resource ID to external binding. - * - * @remarks - * - * Validated at runtime: binding type must match resource type. + * Reference to a Kubernetes Secret */ - externalBindings?: { - [k: string]: - | SyncReconcileResponseExternalBindingsContainerAppsEnvironment - | SyncReconcileResponseExternalBindingsS3 - | SyncReconcileResponseExternalBindingsBlob - | SyncReconcileResponseExternalBindingsGcs - | SyncReconcileResponseExternalBindingsLocalStorage - | SyncReconcileResponseExternalBindingsSqs - | SyncReconcileResponseExternalBindingsPubsub - | SyncReconcileResponseExternalBindingsServicebus - | SyncReconcileResponseExternalBindingsLocalQueue - | SyncReconcileResponseExternalBindingsDynamodb - | SyncReconcileResponseExternalBindingsFirestore - | SyncReconcileResponseExternalBindingsTablestorage - | SyncReconcileResponseExternalBindingsRedis - | SyncReconcileResponseExternalBindingsLocalKv - | SyncReconcileResponseExternalBindingsEcr - | SyncReconcileResponseExternalBindingsAcr - | SyncReconcileResponseExternalBindingsGar - | SyncReconcileResponseExternalBindingsLocal - | SyncReconcileResponseExternalBindingsParameterStore - | SyncReconcileResponseExternalBindingsSecretManager - | SyncReconcileResponseExternalBindingsKeyVault - | SyncReconcileResponseExternalBindingsKubernetesSecret - | SyncReconcileResponseExternalBindingsLocalVault - | SyncReconcileResponseExternalBindingsAurora - | SyncReconcileResponseExternalBindingsCloudSQL - | SyncReconcileResponseExternalBindingsFlexibleServer - | SyncReconcileResponseExternalBindingsExternal - | SyncReconcileResponseExternalBindingsLocalPostgres; - } | undefined; + secretRef: SyncReconcileResponseStoragePathSecretRef; +}; + +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseStoragePathUnion = + | SyncReconcileResponseStoragePath + | any + | string; + +export const TargetTypeStorage4 = { + Storage: "storage", +} as const; +export type TargetTypeStorage4 = ClosedEnum; + +/** + * Local filesystem storage binding configuration + */ +export type SyncReconcileResponseExternalBindingsLocalStorage = { /** - * DNS-style label domain used for Kubernetes resource ownership labels. + * Represents a value that can be either a concrete value, a template expression, * * @remarks - * - * Defaults to `alien.dev` when absent. Whitelabeled Operator builds set this - * so generated workloads and optional log collectors share the same label - * namespace. + * or a reference to a Kubernetes Secret */ - labelDomain?: string | null | undefined; - managementConfig?: - | SyncReconcileResponseManagementConfigAzure - | SyncReconcileResponseManagementConfigAws - | SyncReconcileResponseManagementConfigGcp - | SyncReconcileResponseManagementConfigKubernetes + storagePath?: + | SyncReconcileResponseStoragePath | any + | string | null | undefined; + service: "local-storage"; + type: TargetTypeStorage4; +}; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseBucketNameSecretRef2 = { + key: string; + name: string; +}; + +export type SyncReconcileResponseBucketName2 = { /** - * Manager base URL (e.g., "https://manager.alien.dev"). - * - * @remarks - * - * The manager IS the container registry — its `/v2/` endpoint serves as - * the OCI Distribution API. Controllers derive the proxy host from this - * to configure pull auth (RegistryCredentials, imagePullSecrets). - * - * When None (e.g., `alien dev`), controllers use image URIs as-is. - */ - managerUrl?: string | null | undefined; - monitoring?: SyncReconcileResponseMonitoring | any | null | undefined; - /** - * Native image registry host+prefix for platforms that require it. - * - * @remarks - * - * Lambda (ECR) and Cloud Run (GAR) require native registry URIs. Other - * runtimes, including Azure Container Apps, pull through the manager's - * registry proxy. - * - * Derived by the manager from the artifact registry binding: - * - ECR: `{account_id}.dkr.ecr.{region}.amazonaws.com/{repository_prefix}` - * - GAR: `{region}-docker.pkg.dev/{project_id}/{repository_name}` + * Reference to a Kubernetes Secret */ - nativeImageHost?: string | null | undefined; + secretRef: SyncReconcileResponseBucketNameSecretRef2; +}; + +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseBucketNameUnion2 = + | SyncReconcileResponseBucketName2 + | any + | string; + +export const TargetTypeStorage3 = { + Storage: "storage", +} as const; +export type TargetTypeStorage3 = ClosedEnum; + +/** + * Google Cloud Storage binding configuration + */ +export type SyncReconcileResponseExternalBindingsGcs = { /** - * When true the observe pass reports raw resources across every namespace + * Represents a value that can be either a concrete value, a template expression, * * @remarks - * (cluster scope); otherwise it stays within the operator's own namespace. - * The label selector, if any, still filters within whichever scope applies. - * Ignored by cloud observers. + * or a reference to a Kubernetes Secret */ - observeAllNamespaces?: boolean | undefined; + bucketName?: + | SyncReconcileResponseBucketName2 + | any + | string + | null + | undefined; + service: "gcs"; + type: TargetTypeStorage3; +}; + +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseAccountNameSecretRef1 = { + key: string; + name: string; +}; + +export type SyncReconcileResponseAccountName1 = { /** - * Kubernetes label selector that narrows which raw resources the observe - * - * @remarks - * pass reports (e.g. `app.kubernetes.io/part-of=my-app`). `None` observes - * everything in the namespace. Ignored by cloud observers. + * Reference to a Kubernetes Secret */ - observeLabelSelector?: string | null | undefined; - /** - * Public endpoint URLs for exposed resources (optional override). - * - * @remarks - * - * Use this only when a caller already knows the public URL. Managed public - * endpoint flows should prefer `domain_metadata` plus controller-reported - * load balancer outputs so DNS, certificate renewal, and route readiness - * stay tied to the resource state. - * - * If not set, platforms determine public endpoint URLs from other sources: - * - Managed DNS/TLS flows: `domain_metadata` FQDN or load balancer DNS - * - Local: `http://localhost:{allocated_port}` - * - Custom or disabled exposure: no public endpoint URL unless a controller reports one - * - * Outer key: resource ID. Inner key: endpoint name. Value: public URL. - */ - publicEndpoints?: { [k: string]: { [k: string]: string } } | null | undefined; - /** - * User-customizable deployment settings specified at deploy time. - * - * @remarks - * - * These settings are provided by the customer via CloudFormation parameters, - * Terraform attributes, CLI flags, or Helm values. They customize how the - * deployment runs and what capabilities are enabled. - * - * **Key distinction**: StackSettings is user-customizable, while ManagementConfig - * is platform-derived (from the Manager's ServiceAccount). - */ - stackSettings?: SyncReconcileResponseStackSettings | undefined; + secretRef: SyncReconcileResponseAccountNameSecretRef1; }; -export const ReleaseInfoTypeStringList = { - StringList: "stringList", -} as const; -export type ReleaseInfoTypeStringList = ClosedEnum< - typeof ReleaseInfoTypeStringList ->; +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseAccountNameUnion1 = + | SyncReconcileResponseAccountName1 + | any + | string; -export type DefaultReleaseInfoStringList = { - type: ReleaseInfoTypeStringList; - /** - * String list default. - */ - value: Array; +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseContainerNameSecretRef = { + key: string; + name: string; }; -export const ReleaseInfoTypeBoolean = { - Boolean: "boolean", -} as const; -export type ReleaseInfoTypeBoolean = ClosedEnum; - -export type DefaultReleaseInfoBoolean = { - type: ReleaseInfoTypeBoolean; +export type SyncReconcileResponseContainerName = { /** - * Boolean default. + * Reference to a Kubernetes Secret */ - value: boolean; + secretRef: SyncReconcileResponseContainerNameSecretRef; }; -export const ReleaseInfoTypeNumber = { - Number: "number", +/** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ +export type SyncReconcileResponseContainerNameUnion = + | SyncReconcileResponseContainerName + | any + | string; + +export const TargetTypeStorage2 = { + Storage: "storage", } as const; -export type ReleaseInfoTypeNumber = ClosedEnum; +export type TargetTypeStorage2 = ClosedEnum; -export type DefaultReleaseInfoNumber = { - type: ReleaseInfoTypeNumber; +/** + * Azure Blob Storage binding configuration + */ +export type SyncReconcileResponseExternalBindingsBlob = { /** - * Number default. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - value: string; + accountName?: + | SyncReconcileResponseAccountName1 + | any + | string + | null + | undefined; + /** + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret + */ + containerName?: + | SyncReconcileResponseContainerName + | any + | string + | null + | undefined; + service: "blob"; + type: TargetTypeStorage2; }; -export const ReleaseInfoTypeString = { - String: "string", -} as const; -export type ReleaseInfoTypeString = ClosedEnum; +/** + * Reference to a Kubernetes Secret + */ +export type SyncReconcileResponseBucketNameSecretRef1 = { + key: string; + name: string; +}; -export type DefaultReleaseInfoString = { - type: ReleaseInfoTypeString; +export type SyncReconcileResponseBucketName1 = { /** - * String default. + * Reference to a Kubernetes Secret */ - value: string; + secretRef: SyncReconcileResponseBucketNameSecretRef1; }; -export type ReleaseInfoDefaultUnion = - | DefaultReleaseInfoString - | DefaultReleaseInfoNumber - | DefaultReleaseInfoBoolean - | DefaultReleaseInfoStringList - | any; - -/** - * Environment variable handling for a stack input mapping. - */ -export const TypeReleaseInfoEnvEnum = { - Plain: "plain", - Secret: "secret", -} as const; /** - * Environment variable handling for a stack input mapping. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ -export type TypeReleaseInfoEnvEnum = ClosedEnum; +export type SyncReconcileResponseBucketNameUnion1 = + | SyncReconcileResponseBucketName1 + | any + | string; -export type ReleaseInfoTypeUnion = TypeReleaseInfoEnvEnum | any; +export const TargetTypeStorage1 = { + Storage: "storage", +} as const; +export type TargetTypeStorage1 = ClosedEnum; /** - * How a resolved stack input is injected into runtime environment variables. + * AWS S3 storage binding configuration */ -export type ReleaseInfoEnv = { - /** - * Environment variable name. - */ - name: string; +export type SyncReconcileResponseExternalBindingsS3 = { /** - * Target resource IDs or patterns. None means every env-capable resource. + * Represents a value that can be either a concrete value, a template expression, + * + * @remarks + * or a reference to a Kubernetes Secret */ - targetResources?: Array | null | undefined; - type?: TypeReleaseInfoEnvEnum | any | null | undefined; + bucketName?: + | SyncReconcileResponseBucketName1 + | any + | string + | null + | undefined; + service: "s3"; + type: TargetTypeStorage1; }; /** - * Primitive stack input kind. - */ -export const ReleaseInfoKind = { - String: "string", - Secret: "secret", - Number: "number", - Integer: "integer", - Boolean: "boolean", - Enum: "enum", - StringList: "stringList", -} as const; -/** - * Primitive stack input kind. + * Service-type based storage binding that supports multiple storage providers */ -export type ReleaseInfoKind = ClosedEnum; +export type SyncReconcileResponseExternalBindingsUnion1 = + | SyncReconcileResponseExternalBindingsS3 + | SyncReconcileResponseExternalBindingsBlob + | SyncReconcileResponseExternalBindingsGcs + | SyncReconcileResponseExternalBindingsLocalStorage; /** - * Represents the target cloud platform. + * Represents a binding to pre-existing infrastructure. + * + * @remarks + * + * The binding type must match the resource type it's applied to. + * Validated at runtime by the executor. */ -export const ReleaseInfoPlatform = { - Aws: "aws", - Gcp: "gcp", - Azure: "azure", +export type SyncReconcileResponseExternalBindingsUnion7 = + | SyncReconcileResponseExternalBindingsAi + | SyncReconcileResponseExternalBindingsContainerAppsEnvironment + | SyncReconcileResponseExternalBindingsS3 + | SyncReconcileResponseExternalBindingsBlob + | SyncReconcileResponseExternalBindingsGcs + | SyncReconcileResponseExternalBindingsLocalStorage + | SyncReconcileResponseExternalBindingsSqs + | SyncReconcileResponseExternalBindingsPubsub + | SyncReconcileResponseExternalBindingsServicebus + | SyncReconcileResponseExternalBindingsLocalQueue + | SyncReconcileResponseExternalBindingsDynamodb + | SyncReconcileResponseExternalBindingsFirestore + | SyncReconcileResponseExternalBindingsTablestorage + | SyncReconcileResponseExternalBindingsRedis + | SyncReconcileResponseExternalBindingsLocalKv + | SyncReconcileResponseExternalBindingsEcr + | SyncReconcileResponseExternalBindingsAcr + | SyncReconcileResponseExternalBindingsGar + | SyncReconcileResponseExternalBindingsLocal + | SyncReconcileResponseExternalBindingsParameterStore + | SyncReconcileResponseExternalBindingsSecretManager + | SyncReconcileResponseExternalBindingsKeyVault + | SyncReconcileResponseExternalBindingsKubernetesSecret + | SyncReconcileResponseExternalBindingsLocalVault + | SyncReconcileResponseExternalBindingsAurora + | SyncReconcileResponseExternalBindingsCloudSQL + | SyncReconcileResponseExternalBindingsFlexibleServer + | SyncReconcileResponseExternalBindingsExternal + | SyncReconcileResponseExternalBindingsLocalPostgres; + +export const TargetPlatformKubernetes = { Kubernetes: "kubernetes", - Machines: "machines", - Local: "local", - Test: "test", } as const; -/** - * Represents the target cloud platform. - */ -export type ReleaseInfoPlatform = ClosedEnum; +export type TargetPlatformKubernetes = ClosedEnum< + typeof TargetPlatformKubernetes +>; -/** - * Who can provide a stack input value. - */ -export const ReleaseInfoProvidedBy = { - Developer: "developer", - Deployer: "deployer", +export type SyncReconcileResponseManagementConfigKubernetes = { + platform: TargetPlatformKubernetes; +}; + +export const TargetPlatformAzure = { + Azure: "azure", } as const; -/** - * Who can provide a stack input value. - */ -export type ReleaseInfoProvidedBy = ClosedEnum; +export type TargetPlatformAzure = ClosedEnum; /** - * Portable stack input validation constraints. + * Azure management configuration extracted from stack settings */ -export type ValidationReleaseInfo = { - /** - * Semantic format hint such as url. - */ - format?: string | null | undefined; - /** - * Maximum number. - */ - max?: string | null | undefined; - /** - * Maximum string-list items. - */ - maxItems?: number | null | undefined; - /** - * Maximum string length. - */ - maxLength?: number | null | undefined; - /** - * Minimum number. - */ - min?: string | null | undefined; - /** - * Minimum string-list items. - */ - minItems?: number | null | undefined; +export type SyncReconcileResponseManagementConfigAzure = { /** - * Minimum string length. + * The managing Azure Tenant ID for cross-tenant access */ - minLength?: number | null | undefined; + managingTenantId: string; /** - * Portable whole-value regex pattern. + * OIDC issuer URL trusted by the target-side managed identity. */ - pattern?: string | null | undefined; + oidcIssuer: string; /** - * Allowed string enum values. + * OIDC subject claim trusted by the target-side managed identity. */ - values?: Array | null | undefined; + oidcSubject: string; + platform: TargetPlatformAzure; }; -export type ReleaseInfoValidationUnion = ValidationReleaseInfo | any; +export const TargetPlatformGcp = { + Gcp: "gcp", +} as const; +export type TargetPlatformGcp = ClosedEnum; /** - * Stack input definition serialized into a release stack. + * GCP management configuration extracted from stack settings */ -export type ReleaseInfoInput = { - default?: - | DefaultReleaseInfoString - | DefaultReleaseInfoNumber - | DefaultReleaseInfoBoolean - | DefaultReleaseInfoStringList - | any - | null - | undefined; +export type SyncReconcileResponseManagementConfigGcp = { /** - * Human-facing helper text. + * Service account email for management roles */ - description: string; + serviceAccountEmail: string; + platform: TargetPlatformGcp; +}; + +export const TargetPlatformAws = { + Aws: "aws", +} as const; +export type TargetPlatformAws = ClosedEnum; + +/** + * AWS management configuration extracted from stack settings + */ +export type SyncReconcileResponseManagementConfigAws = { /** - * Runtime env-var mappings for v1 input resolution. + * The managing AWS IAM role ARN that can assume cross-account roles */ - env?: Array | undefined; + managingRoleArn: string; + platform: TargetPlatformAws; +}; + +export type SyncReconcileResponseManagementConfigUnion = + | SyncReconcileResponseManagementConfigAzure + | SyncReconcileResponseManagementConfigAws + | SyncReconcileResponseManagementConfigGcp + | SyncReconcileResponseManagementConfigKubernetes + | any; + +/** + * OTLP log export configuration for a deployment. + * + * @remarks + * + * When set, injected compute runtimes export captured application logs + * through the given endpoint via OTLP/HTTP; which resources are injected + * is platform-dependent. Workers read auth headers from a runtime-only + * secret. Runtime-less Containers and Daemons receive standard OTEL auth + * variables only at the final hosting boundary: Local passes them directly + * to the process and Kubernetes projects them from a per-workload Secret. + */ +export type SyncReconcileResponseMonitoring = { /** - * Stable input ID used by CLI/API calls. + * Auth header value in "key=value,..." format. + * + * @remarks + * Example: "authorization=Bearer " */ - id: string; + logsAuthHeader: string; /** - * Primitive stack input kind. + * Full OTLP logs endpoint URL. + * + * @remarks + * Example: "https:///v1/logs" */ - kind: ReleaseInfoKind; + logsEndpoint: string; /** - * Human-facing field label. + * Auth header value for the metrics endpoint in "key=value,..." format (optional). + * + * @remarks + * + * When absent, `logs_auth_header` is reused for metrics -- suitable when the same + * credential covers both signals. When present (e.g. Axiom with separate datasets), + * this value is used exclusively for metrics. + * + * Example: "authorization=Bearer ,x-axiom-dataset=" */ - label: string; + metricsAuthHeader?: string | null | undefined; /** - * Example placeholder shown in UI. + * Full OTLP metrics endpoint URL (optional). + * + * @remarks + * When set, the worker runtime exports its own VM/container orchestration metrics here. + * Example: "https://api.axiom.co/v1/metrics" */ - placeholder?: string | null | undefined; + metricsEndpoint?: string | null | undefined; /** - * Platforms where this input applies. + * Resource attributes attached to every OTLP signal emitted for this deployment. + * + * @remarks + * + * Platform managers use this for stable identity such as `alien.workspace_id`, + * `alien.project_id`, `alien.deployment_group_id`, and `alien.deployment_id`. + * Runtime-specific resource attributes such as `service.name` remain owned by + * the runtime/exporter. */ - platforms?: Array | null | undefined; + resourceAttributes?: { [k: string]: string } | undefined; +}; + +export type SyncReconcileResponseMonitoringUnion = + | SyncReconcileResponseMonitoring + | any; + +/** + * Failure-domain policy selected for a compute pool. + */ +export type SyncReconcileResponseFailureDomains2 = { /** - * Who can provide this value. + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. */ - providedBy: Array; + selectedFailureDomains?: Array | undefined; /** - * Whether a resolved value is required before deployment can proceed. + * Number of distinct failure domains across which new stateful replicas may be spread. */ - required: boolean; - validation?: ValidationReleaseInfo | any | null | undefined; + spread: number; }; -export const ManagementReleaseInfoEnum = { - Auto: "auto", -} as const; -export type ManagementReleaseInfoEnum = ClosedEnum< - typeof ManagementReleaseInfoEnum ->; +export type SyncReconcileResponseFailureDomainsUnion2 = + | SyncReconcileResponseFailureDomains2 + | any; -/** - * AWS-specific binding specification - */ -export type OverrideReleaseInfoAwResource = { +export type SyncReconcileResponsePoolsAutoscale = { + failureDomains?: + | SyncReconcileResponseFailureDomains2 + | any + | null + | undefined; /** - * Optional condition for additional filtering (rare) + * Provider machine type selected for this deployment. */ - condition?: { [k: string]: { [k: string]: string } } | null | undefined; + machine?: string | null | undefined; /** - * Resource ARNs to bind to + * Maximum machine count. */ - resources: Array; + max: number; + /** + * Minimum machine count. + */ + min: number; + mode: "autoscale"; }; /** - * AWS-specific binding specification + * Failure-domain policy selected for a compute pool. */ -export type OverrideReleaseInfoAwStack = { +export type SyncReconcileResponseFailureDomains1 = { /** - * Optional condition for additional filtering (rare) + * Concrete provider domains selected during setup. + * + * @remarks + * Empty delegates deterministic selection to the provider setup implementation. */ - condition?: { [k: string]: { [k: string]: string } } | null | undefined; + selectedFailureDomains?: Array | undefined; /** - * Resource ARNs to bind to + * Number of distinct failure domains across which new stateful replicas may be spread. */ - resources: Array; + spread: number; }; -/** - * Generic binding configuration for permissions - */ -export type OverrideReleaseInfoAwBinding = { +export type SyncReconcileResponseFailureDomainsUnion1 = + | SyncReconcileResponseFailureDomains1 + | any; + +export type SyncReconcileResponsePoolsFixed = { + failureDomains?: + | SyncReconcileResponseFailureDomains1 + | any + | null + | undefined; /** - * AWS-specific binding specification + * Provider machine type selected for this deployment. */ - resource?: OverrideReleaseInfoAwResource | undefined; + machine?: string | null | undefined; /** - * AWS-specific binding specification + * Number of machines to run. */ - stack?: OverrideReleaseInfoAwStack | undefined; + machines: number; + mode: "fixed"; }; /** - * IAM effect. Defaults to Allow. - */ -export const OverrideReleaseInfoEffect = { - Allow: "Allow", - Deny: "Deny", -} as const; -/** - * IAM effect. Defaults to Allow. + * User-selected deployment settings for one compute pool. */ -export type OverrideReleaseInfoEffect = ClosedEnum< - typeof OverrideReleaseInfoEffect ->; +export type SyncReconcileResponsePoolsUnion = + | SyncReconcileResponsePoolsFixed + | SyncReconcileResponsePoolsAutoscale; /** - * Grant permissions for a specific cloud platform + * Deployment-time compute choices for Alien-managed compute pools. + * + * @remarks + * + * Application source declares portable pool requirements. This settings + * object stores the concrete choices made for one deployment, such as the + * provider machine type and selected machine counts. */ -export type OverrideReleaseInfoAwGrant = { - /** - * AWS IAM actions (only for AWS) - */ - actions?: Array | null | undefined; - /** - * Azure actions (only for Azure) - */ - dataActions?: Array | null | undefined; - /** - * GCP permissions that require an exact residual custom role. - */ - permissions?: Array | null | undefined; - /** - * Provider predefined roles to bind directly. - */ - predefinedRoles?: Array | null | undefined; +export type SyncReconcileResponseCompute = { /** - * GCP residual custom permissions to pair with predefined roles. + * Selected compute choices keyed by pool ID. */ - residualPermissions?: Array | null | undefined; + pools?: { + [k: string]: + | SyncReconcileResponsePoolsFixed + | SyncReconcileResponsePoolsAutoscale; + } | undefined; }; +export type SyncReconcileResponseComputeUnion = + | SyncReconcileResponseCompute + | any; + /** - * AWS-specific platform permission configuration + * Deployment model: how updates are delivered to the remote environment. */ -export type OverrideReleaseInfoAw = { - /** - * Generic binding configuration for permissions - */ - binding: OverrideReleaseInfoAwBinding; - /** - * Short admin-facing description of why this entry exists. - */ - description?: string | null | undefined; - /** - * IAM effect. Defaults to Allow. - */ - effect?: OverrideReleaseInfoEffect | undefined; - /** - * Grant permissions for a specific cloud platform - */ - grant: OverrideReleaseInfoAwGrant; - /** - * Stable admin-facing label for this permission entry. - */ - label?: string | null | undefined; -}; - +export const SyncReconcileResponseDeploymentModel = { + Push: "push", + Pull: "pull", +} as const; /** - * Azure-specific binding specification + * Deployment model: how updates are delivered to the remote environment. */ -export type OverrideReleaseInfoAzureResource = { - /** - * Scope (subscription/resource group/resource level) - */ - scope: string; +export type SyncReconcileResponseDeploymentModel = ClosedEnum< + typeof SyncReconcileResponseDeploymentModel +>; + +export type SyncReconcileResponseAwsStackSettings = { + certificateArn: string; }; -/** - * Azure-specific binding specification - */ -export type OverrideReleaseInfoAzureStack = { - /** - * Scope (subscription/resource group/resource level) - */ - scope: string; +export type SyncReconcileResponseStackSettingsAwsUnion = + | SyncReconcileResponseAwsStackSettings + | any; + +export type AzureTargetStackSettings = { + keyVaultCertificateId: string; + keyVaultResourceId?: string | null | undefined; }; -/** - * Generic binding configuration for permissions - */ -export type OverrideReleaseInfoAzureBinding = { - /** - * Azure-specific binding specification - */ - resource?: OverrideReleaseInfoAzureResource | undefined; - /** - * Azure-specific binding specification - */ - stack?: OverrideReleaseInfoAzureStack | undefined; +export type TargetStackSettingsAzureUnion = AzureTargetStackSettings | any; + +export type GcpTargetStackSettings = { + certificateName: string; }; +export type TargetStackSettingsGcpUnion = GcpTargetStackSettings | any; + /** - * Grant permissions for a specific cloud platform + * Namespace-scoped Kubernetes TLS Secret reference. */ -export type OverrideReleaseInfoAzureGrant = { - /** - * AWS IAM actions (only for AWS) - */ - actions?: Array | null | undefined; - /** - * Azure actions (only for Azure) - */ - dataActions?: Array | null | undefined; +export type SyncReconcileResponseTlsSecretRef = { /** - * GCP permissions that require an exact residual custom role. + * Secret namespace. Defaults to the release namespace when omitted. */ - permissions?: Array | null | undefined; + namespace?: string | null | undefined; /** - * Provider predefined roles to bind directly. + * Secret name. */ - predefinedRoles?: Array | null | undefined; + secretName: string; +}; + +export type SyncReconcileResponseDomainsKubernetes = { /** - * GCP residual custom permissions to pair with predefined roles. + * Namespace-scoped Kubernetes TLS Secret reference. */ - residualPermissions?: Array | null | undefined; + tlsSecretRef: SyncReconcileResponseTlsSecretRef; }; +export type SyncReconcileResponseDomainsKubernetesUnion = + | SyncReconcileResponseDomainsKubernetes + | any; + /** - * Azure-specific platform permission configuration + * Platform-specific certificate references for custom domains. */ -export type OverrideReleaseInfoAzure = { - /** - * Generic binding configuration for permissions - */ - binding: OverrideReleaseInfoAzureBinding; +export type SyncReconcileResponseDomainsCertificate = { + aws?: SyncReconcileResponseAwsStackSettings | any | null | undefined; + azure?: AzureTargetStackSettings | any | null | undefined; + gcp?: GcpTargetStackSettings | any | null | undefined; + kubernetes?: SyncReconcileResponseDomainsKubernetes | any | null | undefined; +}; + +/** + * Custom domain configuration for a single resource. + */ +export type SyncReconcileResponseCustomDomains = { /** - * Short admin-facing description of why this entry exists. + * Platform-specific certificate references for custom domains. */ - description?: string | null | undefined; + certificate: SyncReconcileResponseDomainsCertificate; /** - * Grant permissions for a specific cloud platform + * Fully qualified domain name to use. */ - grant: OverrideReleaseInfoAzureGrant; + domain: string; +}; + +export const SyncReconcileResponseModeLoadBalancer = { + LoadBalancer: "loadBalancer", +} as const; +export type SyncReconcileResponseModeLoadBalancer = ClosedEnum< + typeof SyncReconcileResponseModeLoadBalancer +>; + +export type SyncReconcileResponsePublicEndpointTargetLoadBalancer = { /** - * Stable admin-facing label for this permission entry. + * DNS name or URL for the external load balancer. */ - label?: string | null | undefined; + cnameTarget: string; + mode: SyncReconcileResponseModeLoadBalancer; }; -/** - * GCP IAM condition - */ -export type OverrideConditionReleaseInfoResource = { - expression: string; - title: string; +export const SyncReconcileResponseModeMachineAddresses = { + MachineAddresses: "machineAddresses", +} as const; +export type SyncReconcileResponseModeMachineAddresses = ClosedEnum< + typeof SyncReconcileResponseModeMachineAddresses +>; + +export type SyncReconcileResponsePublicEndpointTargetMachineAddresses = { + mode: SyncReconcileResponseModeMachineAddresses; }; -export type OverrideReleaseInfoResourceConditionUnion = - | OverrideConditionReleaseInfoResource +export type SyncReconcileResponsePublicEndpointTargetUnion = + | SyncReconcileResponsePublicEndpointTargetLoadBalancer + | SyncReconcileResponsePublicEndpointTargetMachineAddresses | any; /** - * GCP-specific binding specification + * Domain configuration for the stack. + * + * @remarks + * + * When `custom_domains` is set, the specified resources use customer-provided + * domains and certificates. Otherwise, Alien auto-generates domains. */ -export type OverrideReleaseInfoGcpResource = { - condition?: OverrideConditionReleaseInfoResource | any | null | undefined; +export type SyncReconcileResponseDomains = { /** - * Scope (project/resource level) + * Custom domain configuration per resource ID. */ - scope: string; -}; - -/** - * GCP IAM condition - */ -export type OverrideConditionReleaseInfo = { - expression: string; - title: string; + customDomains?: + | { [k: string]: SyncReconcileResponseCustomDomains } + | null + | undefined; + publicEndpointTarget?: + | SyncReconcileResponsePublicEndpointTargetLoadBalancer + | SyncReconcileResponsePublicEndpointTargetMachineAddresses + | any + | null + | undefined; }; -export type OverrideReleaseInfoConditionUnion = - | OverrideConditionReleaseInfo +export type SyncReconcileResponseDomainsUnion = + | SyncReconcileResponseDomains | any; /** - * GCP-specific binding specification + * External bindings for pre-existing infrastructure. + * + * @remarks + * Allows using existing resources (MinIO, Redis, shared Container Apps + * Environment, etc.) instead of having Alien provision them. + * Required for Kubernetes platform, optional for cloud platforms. */ -export type OverrideReleaseInfoGcpStack = { - condition?: OverrideConditionReleaseInfo | any | null | undefined; - /** - * Scope (project/resource level) - */ - scope: string; -}; +export type SyncReconcileResponseStackSettingsExternalBindings = {}; /** - * Generic binding configuration for permissions + * How heartbeat health checks are handled. */ -export type OverrideReleaseInfoGcpBinding = { - /** - * GCP-specific binding specification - */ - resource?: OverrideReleaseInfoGcpResource | undefined; - /** - * GCP-specific binding specification - */ - stack?: OverrideReleaseInfoGcpStack | undefined; -}; +export const SyncReconcileResponseHeartbeats = { + Off: "off", + On: "on", +} as const; +/** + * How heartbeat health checks are handled. + */ +export type SyncReconcileResponseHeartbeats = ClosedEnum< + typeof SyncReconcileResponseHeartbeats +>; /** - * Grant permissions for a specific cloud platform + * Optional provider-specific identity for a cloud-backed Kubernetes cluster. */ -export type OverrideReleaseInfoGcpGrant = { - /** - * AWS IAM actions (only for AWS) - */ - actions?: Array | null | undefined; - /** - * Azure actions (only for Azure) - */ - dataActions?: Array | null | undefined; - /** - * GCP permissions that require an exact residual custom role. - */ - permissions?: Array | null | undefined; - /** - * Provider predefined roles to bind directly. - */ - predefinedRoles?: Array | null | undefined; - /** - * GCP residual custom permissions to pair with predefined roles. - */ - residualPermissions?: Array | null | undefined; +export type SyncReconcileResponseCloud = { + accountId?: string | null | undefined; + clusterId?: string | null | undefined; + clusterName?: string | null | undefined; + projectId?: string | null | undefined; + region?: string | null | undefined; + resourceGroup?: string | null | undefined; + subscriptionId?: string | null | undefined; }; +export type SyncReconcileResponseCloudUnion = SyncReconcileResponseCloud | any; + /** - * GCP-specific platform permission configuration + * Ownership model for the Kubernetes cluster. */ -export type OverrideReleaseInfoGcp = { - /** - * Generic binding configuration for permissions - */ - binding: OverrideReleaseInfoGcpBinding; +export const SyncReconcileResponseOwnership = { + Managed: "managed", + Existing: "existing", + External: "external", +} as const; +/** + * Ownership model for the Kubernetes cluster. + */ +export type SyncReconcileResponseOwnership = ClosedEnum< + typeof SyncReconcileResponseOwnership +>; + +/** + * Kubernetes cluster setup settings. + */ +export type SyncReconcileResponseCluster = { + cloud?: SyncReconcileResponseCloud | any | null | undefined; /** - * Short admin-facing description of why this entry exists. + * Namespace where the Alien chart and application resources run. */ - description?: string | null | undefined; + namespace?: string | null | undefined; /** - * Grant permissions for a specific cloud platform + * Ownership model for the Kubernetes cluster. */ - grant: OverrideReleaseInfoGcpGrant; + ownership: SyncReconcileResponseOwnership; +}; + +export type SyncReconcileResponseClusterUnion = + | SyncReconcileResponseCluster + | any; + +export type SyncReconcileResponseCertificateNone2 = { + mode: "none"; +}; + +export type SyncReconcileResponseCertificateManagedTLSSecret2 = { + mode: "managedTlsSecret"; /** - * Stable admin-facing label for this permission entry. + * Secret name template. Runtime may substitute resource/deployment tokens. */ - label?: string | null | undefined; + secretNameTemplate: string; }; -/** - * Platform-specific permission configurations - */ -export type OverrideReleaseInfoPlatforms = { +export type SyncReconcileResponseCertificateAwsAcmArn2 = { /** - * AWS permission configurations + * Existing ACM certificate ARN. */ - aws?: Array | null | undefined; + certificateArn: string; + mode: "awsAcmArn"; +}; + +export type SyncReconcileResponseCertificateManagedAcmImport2 = { + mode: "managedAcmImport"; /** - * Azure permission configurations + * ACM region. Defaults to the deployment region when omitted. */ - azure?: Array | null | undefined; + region?: string | null | undefined; /** - * GCP permission configurations + * Tags applied to runtime-imported ACM certificates. */ - gcp?: Array | null | undefined; + tags?: { [k: string]: string } | undefined; }; /** - * A permission set that can be applied across different cloud platforms + * Namespace-scoped Kubernetes TLS Secret reference. */ -export type OverrideReleaseInfo = { - /** - * Human-readable description of what this permission set allows - */ - description: string; +export type SyncReconcileResponseCertificateTLSSecretRef2 = { /** - * Unique identifier for the permission set (e.g., "storage/data-read") + * Secret namespace. Defaults to the release namespace when omitted. */ - id: string; + namespace?: string | null | undefined; /** - * Platform-specific permission configurations + * Secret name. */ - platforms: OverrideReleaseInfoPlatforms; + secretName: string; + mode: "tlsSecretRef"; }; /** - * Reference to a permission set - either by name or inline definition + * Certificate publication or reference mode for Kubernetes public endpoints. */ -export type ReleaseInfoOverrideUnion = OverrideReleaseInfo | string; +export type SyncReconcileResponseCertificateUnion2 = + | SyncReconcileResponseCertificateTLSSecretRef2 + | SyncReconcileResponseCertificateManagedAcmImport2 + | SyncReconcileResponseCertificateAwsAcmArn2 + | SyncReconcileResponseCertificateManagedTLSSecret2 + | SyncReconcileResponseCertificateNone2; -export type ManagementReleaseInfo2 = { +export const SyncReconcileResponseModeCustom = { + Custom: "custom", +} as const; +export type SyncReconcileResponseModeCustom = ClosedEnum< + typeof SyncReconcileResponseModeCustom +>; + +export const SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum4 = + { + AzureApplicationGatewayForContainers: + "azureApplicationGatewayForContainers", + } as const; +export type SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum4 = + ClosedEnum< + typeof SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum4 + >; + +export type SyncReconcileResponseProviderAzureApplicationGatewayForContainers4 = + { + /** + * Optional ALB name when using BYO Application Gateway resources. + */ + albName?: string | null | undefined; + /** + * Optional ALB namespace when using BYO Application Gateway resources. + */ + albNamespace?: string | null | undefined; + /** + * Public or internal frontend exposure. + */ + frontend: string; + provider: + SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum4; + }; + +export const SyncReconcileResponseProviderGkeGatewayEnum4 = { + GkeGateway: "gkeGateway", +} as const; +export type SyncReconcileResponseProviderGkeGatewayEnum4 = ClosedEnum< + typeof SyncReconcileResponseProviderGkeGatewayEnum4 +>; + +export type SyncReconcileResponseProviderGkeGateway4 = { + provider: SyncReconcileResponseProviderGkeGatewayEnum4; /** - * Permission profile that maps resources to permission sets - * - * @remarks - * Key can be "*" for all resources or resource name for specific resource + * Optional static address name for the Gateway frontend. */ - override: { [k: string]: Array }; + staticAddressName?: string | null | undefined; }; -/** - * AWS-specific binding specification - */ -export type ExtendReleaseInfoAwResource = { +export const SyncReconcileResponseProviderAwsAlbEnum4 = { + AwsAlb: "awsAlb", +} as const; +export type SyncReconcileResponseProviderAwsAlbEnum4 = ClosedEnum< + typeof SyncReconcileResponseProviderAwsAlbEnum4 +>; + +export type SyncReconcileResponseProviderAwsAlb4 = { /** - * Optional condition for additional filtering (rare) + * Optional ALB IP address type, such as `dualstack`. */ - condition?: { [k: string]: { [k: string]: string } } | null | undefined; + ipAddressType?: string | null | undefined; + provider: SyncReconcileResponseProviderAwsAlbEnum4; /** - * Resource ARNs to bind to + * Internet-facing or internal ALB scheme. */ - resources: Array; -}; - -/** - * AWS-specific binding specification - */ -export type ExtendReleaseInfoAwStack = { + scheme: string; /** - * Optional condition for additional filtering (rare) + * Explicit subnet IDs when the profile cannot rely on controller discovery. */ - condition?: { [k: string]: { [k: string]: string } } | null | undefined; + subnetIds?: Array | undefined; /** - * Resource ARNs to bind to + * ALB target type, usually `ip`. */ - resources: Array; + targetType: string; }; +export type SyncReconcileResponseProviderUnion4 = + | SyncReconcileResponseProviderAwsAlb4 + | SyncReconcileResponseProviderAzureApplicationGatewayForContainers4 + | SyncReconcileResponseProviderGkeGateway4 + | any; + /** - * Generic binding configuration for permissions + * Shared Gateway API route profile values. */ -export type ExtendReleaseInfoAwBinding = { +export type SyncReconcileResponseRouteGateway2 = { /** - * AWS-specific binding specification + * Annotations applied to route objects. */ - resource?: ExtendReleaseInfoAwResource | undefined; + annotations?: { [k: string]: string } | undefined; /** - * AWS-specific binding specification + * Route controller identifier, for example a cloud Gateway controller. */ - stack?: ExtendReleaseInfoAwStack | undefined; -}; - -/** - * IAM effect. Defaults to Allow. - */ -export const ExtendReleaseInfoEffect = { - Allow: "Allow", - Deny: "Deny", -} as const; -/** - * IAM effect. Defaults to Allow. - */ -export type ExtendReleaseInfoEffect = ClosedEnum< - typeof ExtendReleaseInfoEffect ->; - -/** - * Grant permissions for a specific cloud platform - */ -export type ExtendReleaseInfoAwGrant = { - /** - * AWS IAM actions (only for AWS) - */ - actions?: Array | null | undefined; - /** - * Azure actions (only for Azure) - */ - dataActions?: Array | null | undefined; + controller?: string | null | undefined; /** - * GCP permissions that require an exact residual custom role. + * GatewayClass selected for generated Gateways. */ - permissions?: Array | null | undefined; + gatewayClassName: string; /** - * Provider predefined roles to bind directly. + * Labels applied to route objects. */ - predefinedRoles?: Array | null | undefined; + labels?: { [k: string]: string } | undefined; /** - * GCP residual custom permissions to pair with predefined roles. + * Listener port, usually 443. */ - residualPermissions?: Array | null | undefined; + listenerPort: number; + provider?: + | SyncReconcileResponseProviderAwsAlb4 + | SyncReconcileResponseProviderAzureApplicationGatewayForContainers4 + | SyncReconcileResponseProviderGkeGateway4 + | any + | null + | undefined; + routeApi: "gateway"; }; -/** - * AWS-specific platform permission configuration - */ -export type ExtendReleaseInfoAw = { +export const SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum3 = + { + AzureApplicationGatewayForContainers: + "azureApplicationGatewayForContainers", + } as const; +export type SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum3 = + ClosedEnum< + typeof SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum3 + >; + +export type SyncReconcileResponseProviderAzureApplicationGatewayForContainers3 = + { + /** + * Optional ALB name when using BYO Application Gateway resources. + */ + albName?: string | null | undefined; + /** + * Optional ALB namespace when using BYO Application Gateway resources. + */ + albNamespace?: string | null | undefined; + /** + * Public or internal frontend exposure. + */ + frontend: string; + provider: + SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum3; + }; + +export const SyncReconcileResponseProviderGkeGatewayEnum3 = { + GkeGateway: "gkeGateway", +} as const; +export type SyncReconcileResponseProviderGkeGatewayEnum3 = ClosedEnum< + typeof SyncReconcileResponseProviderGkeGatewayEnum3 +>; + +export type SyncReconcileResponseProviderGkeGateway3 = { + provider: SyncReconcileResponseProviderGkeGatewayEnum3; /** - * Generic binding configuration for permissions + * Optional static address name for the Gateway frontend. */ - binding: ExtendReleaseInfoAwBinding; + staticAddressName?: string | null | undefined; +}; + +export const SyncReconcileResponseProviderAwsAlbEnum3 = { + AwsAlb: "awsAlb", +} as const; +export type SyncReconcileResponseProviderAwsAlbEnum3 = ClosedEnum< + typeof SyncReconcileResponseProviderAwsAlbEnum3 +>; + +export type SyncReconcileResponseProviderAwsAlb3 = { /** - * Short admin-facing description of why this entry exists. + * Optional ALB IP address type, such as `dualstack`. */ - description?: string | null | undefined; + ipAddressType?: string | null | undefined; + provider: SyncReconcileResponseProviderAwsAlbEnum3; /** - * IAM effect. Defaults to Allow. + * Internet-facing or internal ALB scheme. */ - effect?: ExtendReleaseInfoEffect | undefined; + scheme: string; /** - * Grant permissions for a specific cloud platform + * Explicit subnet IDs when the profile cannot rely on controller discovery. */ - grant: ExtendReleaseInfoAwGrant; + subnetIds?: Array | undefined; /** - * Stable admin-facing label for this permission entry. + * ALB target type, usually `ip`. */ - label?: string | null | undefined; + targetType: string; }; +export type SyncReconcileResponseProviderUnion3 = + | SyncReconcileResponseProviderAwsAlb3 + | SyncReconcileResponseProviderAzureApplicationGatewayForContainers3 + | SyncReconcileResponseProviderGkeGateway3 + | any; + /** - * Azure-specific binding specification + * Shared Ingress route profile values. */ -export type ExtendReleaseInfoAzureResource = { +export type SyncReconcileResponseRouteIngress2 = { /** - * Scope (subscription/resource group/resource level) + * Annotations applied to route objects. */ - scope: string; -}; - -/** - * Azure-specific binding specification - */ -export type ExtendReleaseInfoAzureStack = { + annotations?: { [k: string]: string } | undefined; /** - * Scope (subscription/resource group/resource level) + * Route controller identifier, for example `eks.amazonaws.com/alb`. */ - scope: string; -}; - -/** - * Generic binding configuration for permissions - */ -export type ExtendReleaseInfoAzureBinding = { + controller?: string | null | undefined; /** - * Azure-specific binding specification + * `spec.ingressClassName` for generated Ingresses. */ - resource?: ExtendReleaseInfoAzureResource | undefined; + ingressClassName: string; /** - * Azure-specific binding specification + * Labels applied to route objects. */ - stack?: ExtendReleaseInfoAzureStack | undefined; + labels?: { [k: string]: string } | undefined; + provider?: + | SyncReconcileResponseProviderAwsAlb3 + | SyncReconcileResponseProviderAzureApplicationGatewayForContainers3 + | SyncReconcileResponseProviderGkeGateway3 + | any + | null + | undefined; + routeApi: "ingress"; }; /** - * Grant permissions for a specific cloud platform + * Kubernetes route API selected for public endpoints. */ -export type ExtendReleaseInfoAzureGrant = { +export type SyncReconcileResponseRouteUnion2 = + | SyncReconcileResponseRouteIngress2 + | SyncReconcileResponseRouteGateway2; + +export type SyncReconcileResponseExposureCustom = { /** - * AWS IAM actions (only for AWS) + * Certificate publication or reference mode for Kubernetes public endpoints. */ - actions?: Array | null | undefined; + certificate: + | SyncReconcileResponseCertificateTLSSecretRef2 + | SyncReconcileResponseCertificateManagedAcmImport2 + | SyncReconcileResponseCertificateAwsAcmArn2 + | SyncReconcileResponseCertificateManagedTLSSecret2 + | SyncReconcileResponseCertificateNone2; /** - * Azure actions (only for Azure) + * Hostname routed by the Kubernetes public endpoint. */ - dataActions?: Array | null | undefined; + domain: string; + mode: SyncReconcileResponseModeCustom; /** - * GCP permissions that require an exact residual custom role. + * Kubernetes route API selected for public endpoints. */ - permissions?: Array | null | undefined; + route: + | SyncReconcileResponseRouteIngress2 + | SyncReconcileResponseRouteGateway2; +}; + +export type SyncReconcileResponseCertificateNone1 = { + mode: "none"; +}; + +export type SyncReconcileResponseCertificateManagedTLSSecret1 = { + mode: "managedTlsSecret"; /** - * Provider predefined roles to bind directly. + * Secret name template. Runtime may substitute resource/deployment tokens. */ - predefinedRoles?: Array | null | undefined; + secretNameTemplate: string; +}; + +export type SyncReconcileResponseCertificateAwsAcmArn1 = { /** - * GCP residual custom permissions to pair with predefined roles. + * Existing ACM certificate ARN. */ - residualPermissions?: Array | null | undefined; + certificateArn: string; + mode: "awsAcmArn"; }; -/** - * Azure-specific platform permission configuration - */ -export type ExtendReleaseInfoAzure = { +export type SyncReconcileResponseCertificateManagedAcmImport1 = { + mode: "managedAcmImport"; /** - * Generic binding configuration for permissions + * ACM region. Defaults to the deployment region when omitted. */ - binding: ExtendReleaseInfoAzureBinding; + region?: string | null | undefined; /** - * Short admin-facing description of why this entry exists. + * Tags applied to runtime-imported ACM certificates. */ - description?: string | null | undefined; + tags?: { [k: string]: string } | undefined; +}; + +/** + * Namespace-scoped Kubernetes TLS Secret reference. + */ +export type SyncReconcileResponseCertificateTLSSecretRef1 = { /** - * Grant permissions for a specific cloud platform + * Secret namespace. Defaults to the release namespace when omitted. */ - grant: ExtendReleaseInfoAzureGrant; + namespace?: string | null | undefined; /** - * Stable admin-facing label for this permission entry. + * Secret name. */ - label?: string | null | undefined; + secretName: string; + mode: "tlsSecretRef"; }; /** - * GCP IAM condition + * Certificate publication or reference mode for Kubernetes public endpoints. */ -export type ExtendConditionReleaseInfoResource = { - expression: string; - title: string; -}; +export type SyncReconcileResponseCertificateUnion1 = + | SyncReconcileResponseCertificateTLSSecretRef1 + | SyncReconcileResponseCertificateManagedAcmImport1 + | SyncReconcileResponseCertificateAwsAcmArn1 + | SyncReconcileResponseCertificateManagedTLSSecret1 + | SyncReconcileResponseCertificateNone1; -export type ExtendReleaseInfoResourceConditionUnion = - | ExtendConditionReleaseInfoResource - | any; +export const SyncReconcileResponseModeGenerated = { + Generated: "generated", +} as const; +export type SyncReconcileResponseModeGenerated = ClosedEnum< + typeof SyncReconcileResponseModeGenerated +>; -/** - * GCP-specific binding specification - */ -export type ExtendReleaseInfoGcpResource = { - condition?: ExtendConditionReleaseInfoResource | any | null | undefined; - /** - * Scope (project/resource level) - */ - scope: string; -}; +export const SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum2 = + { + AzureApplicationGatewayForContainers: + "azureApplicationGatewayForContainers", + } as const; +export type SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum2 = + ClosedEnum< + typeof SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum2 + >; -/** - * GCP IAM condition - */ -export type ExtendConditionReleaseInfo = { - expression: string; - title: string; -}; +export type SyncReconcileResponseProviderAzureApplicationGatewayForContainers2 = + { + /** + * Optional ALB name when using BYO Application Gateway resources. + */ + albName?: string | null | undefined; + /** + * Optional ALB namespace when using BYO Application Gateway resources. + */ + albNamespace?: string | null | undefined; + /** + * Public or internal frontend exposure. + */ + frontend: string; + provider: + SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum2; + }; -export type ExtendReleaseInfoConditionUnion = ExtendConditionReleaseInfo | any; +export const SyncReconcileResponseProviderGkeGatewayEnum2 = { + GkeGateway: "gkeGateway", +} as const; +export type SyncReconcileResponseProviderGkeGatewayEnum2 = ClosedEnum< + typeof SyncReconcileResponseProviderGkeGatewayEnum2 +>; -/** - * GCP-specific binding specification - */ -export type ExtendReleaseInfoGcpStack = { - condition?: ExtendConditionReleaseInfo | any | null | undefined; +export type SyncReconcileResponseProviderGkeGateway2 = { + provider: SyncReconcileResponseProviderGkeGatewayEnum2; /** - * Scope (project/resource level) + * Optional static address name for the Gateway frontend. */ - scope: string; + staticAddressName?: string | null | undefined; }; -/** - * Generic binding configuration for permissions - */ -export type ExtendReleaseInfoGcpBinding = { +export const SyncReconcileResponseProviderAwsAlbEnum2 = { + AwsAlb: "awsAlb", +} as const; +export type SyncReconcileResponseProviderAwsAlbEnum2 = ClosedEnum< + typeof SyncReconcileResponseProviderAwsAlbEnum2 +>; + +export type SyncReconcileResponseProviderAwsAlb2 = { /** - * GCP-specific binding specification + * Optional ALB IP address type, such as `dualstack`. */ - resource?: ExtendReleaseInfoGcpResource | undefined; + ipAddressType?: string | null | undefined; + provider: SyncReconcileResponseProviderAwsAlbEnum2; /** - * GCP-specific binding specification + * Internet-facing or internal ALB scheme. */ - stack?: ExtendReleaseInfoGcpStack | undefined; + scheme: string; + /** + * Explicit subnet IDs when the profile cannot rely on controller discovery. + */ + subnetIds?: Array | undefined; + /** + * ALB target type, usually `ip`. + */ + targetType: string; }; +export type SyncReconcileResponseProviderUnion2 = + | SyncReconcileResponseProviderAwsAlb2 + | SyncReconcileResponseProviderAzureApplicationGatewayForContainers2 + | SyncReconcileResponseProviderGkeGateway2 + | any; + /** - * Grant permissions for a specific cloud platform + * Shared Gateway API route profile values. */ -export type ExtendReleaseInfoGcpGrant = { +export type SyncReconcileResponseRouteGateway1 = { /** - * AWS IAM actions (only for AWS) + * Annotations applied to route objects. */ - actions?: Array | null | undefined; + annotations?: { [k: string]: string } | undefined; /** - * Azure actions (only for Azure) + * Route controller identifier, for example a cloud Gateway controller. */ - dataActions?: Array | null | undefined; + controller?: string | null | undefined; /** - * GCP permissions that require an exact residual custom role. + * GatewayClass selected for generated Gateways. */ - permissions?: Array | null | undefined; + gatewayClassName: string; /** - * Provider predefined roles to bind directly. + * Labels applied to route objects. */ - predefinedRoles?: Array | null | undefined; + labels?: { [k: string]: string } | undefined; /** - * GCP residual custom permissions to pair with predefined roles. + * Listener port, usually 443. */ - residualPermissions?: Array | null | undefined; + listenerPort: number; + provider?: + | SyncReconcileResponseProviderAwsAlb2 + | SyncReconcileResponseProviderAzureApplicationGatewayForContainers2 + | SyncReconcileResponseProviderGkeGateway2 + | any + | null + | undefined; + routeApi: "gateway"; }; -/** - * GCP-specific platform permission configuration - */ -export type ExtendReleaseInfoGcp = { - /** - * Generic binding configuration for permissions - */ - binding: ExtendReleaseInfoGcpBinding; - /** - * Short admin-facing description of why this entry exists. - */ - description?: string | null | undefined; - /** - * Grant permissions for a specific cloud platform - */ - grant: ExtendReleaseInfoGcpGrant; +export const SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum1 = + { + AzureApplicationGatewayForContainers: + "azureApplicationGatewayForContainers", + } as const; +export type SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum1 = + ClosedEnum< + typeof SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum1 + >; + +export type SyncReconcileResponseProviderAzureApplicationGatewayForContainers1 = + { + /** + * Optional ALB name when using BYO Application Gateway resources. + */ + albName?: string | null | undefined; + /** + * Optional ALB namespace when using BYO Application Gateway resources. + */ + albNamespace?: string | null | undefined; + /** + * Public or internal frontend exposure. + */ + frontend: string; + provider: + SyncReconcileResponseProviderAzureApplicationGatewayForContainersEnum1; + }; + +export const SyncReconcileResponseProviderGkeGatewayEnum1 = { + GkeGateway: "gkeGateway", +} as const; +export type SyncReconcileResponseProviderGkeGatewayEnum1 = ClosedEnum< + typeof SyncReconcileResponseProviderGkeGatewayEnum1 +>; + +export type SyncReconcileResponseProviderGkeGateway1 = { + provider: SyncReconcileResponseProviderGkeGatewayEnum1; /** - * Stable admin-facing label for this permission entry. + * Optional static address name for the Gateway frontend. */ - label?: string | null | undefined; + staticAddressName?: string | null | undefined; }; -/** - * Platform-specific permission configurations - */ -export type ExtendReleaseInfoPlatforms = { +export const SyncReconcileResponseProviderAwsAlbEnum1 = { + AwsAlb: "awsAlb", +} as const; +export type SyncReconcileResponseProviderAwsAlbEnum1 = ClosedEnum< + typeof SyncReconcileResponseProviderAwsAlbEnum1 +>; + +export type SyncReconcileResponseProviderAwsAlb1 = { /** - * AWS permission configurations + * Optional ALB IP address type, such as `dualstack`. */ - aws?: Array | null | undefined; + ipAddressType?: string | null | undefined; + provider: SyncReconcileResponseProviderAwsAlbEnum1; /** - * Azure permission configurations + * Internet-facing or internal ALB scheme. */ - azure?: Array | null | undefined; + scheme: string; /** - * GCP permission configurations + * Explicit subnet IDs when the profile cannot rely on controller discovery. */ - gcp?: Array | null | undefined; + subnetIds?: Array | undefined; + /** + * ALB target type, usually `ip`. + */ + targetType: string; }; +export type SyncReconcileResponseProviderUnion1 = + | SyncReconcileResponseProviderAwsAlb1 + | SyncReconcileResponseProviderAzureApplicationGatewayForContainers1 + | SyncReconcileResponseProviderGkeGateway1 + | any; + /** - * A permission set that can be applied across different cloud platforms + * Shared Ingress route profile values. */ -export type ExtendReleaseInfo = { +export type SyncReconcileResponseRouteIngress1 = { /** - * Human-readable description of what this permission set allows + * Annotations applied to route objects. */ - description: string; + annotations?: { [k: string]: string } | undefined; /** - * Unique identifier for the permission set (e.g., "storage/data-read") + * Route controller identifier, for example `eks.amazonaws.com/alb`. */ - id: string; + controller?: string | null | undefined; /** - * Platform-specific permission configurations + * `spec.ingressClassName` for generated Ingresses. */ - platforms: ExtendReleaseInfoPlatforms; + ingressClassName: string; + /** + * Labels applied to route objects. + */ + labels?: { [k: string]: string } | undefined; + provider?: + | SyncReconcileResponseProviderAwsAlb1 + | SyncReconcileResponseProviderAzureApplicationGatewayForContainers1 + | SyncReconcileResponseProviderGkeGateway1 + | any + | null + | undefined; + routeApi: "ingress"; }; /** - * Reference to a permission set - either by name or inline definition + * Kubernetes route API selected for public endpoints. */ -export type ReleaseInfoExtendUnion = ExtendReleaseInfo | string; - -export type ManagementReleaseInfo1 = { - /** - * Permission profile that maps resources to permission sets - * - * @remarks - * Key can be "*" for all resources or resource name for specific resource - */ - extend: { [k: string]: Array }; -}; - -/** - * Management permissions configuration for stack management access - */ -export type ReleaseInfoManagementUnion = - | ManagementReleaseInfo1 - | ManagementReleaseInfo2 - | ManagementReleaseInfoEnum; +export type SyncReconcileResponseRouteUnion1 = + | SyncReconcileResponseRouteIngress1 + | SyncReconcileResponseRouteGateway1; -/** - * AWS-specific binding specification - */ -export type ProfileReleaseInfoAwResource = { +export type SyncReconcileResponseExposureGenerated = { /** - * Optional condition for additional filtering (rare) + * Certificate publication or reference mode for Kubernetes public endpoints. */ - condition?: { [k: string]: { [k: string]: string } } | null | undefined; + certificate: + | SyncReconcileResponseCertificateTLSSecretRef1 + | SyncReconcileResponseCertificateManagedAcmImport1 + | SyncReconcileResponseCertificateAwsAcmArn1 + | SyncReconcileResponseCertificateManagedTLSSecret1 + | SyncReconcileResponseCertificateNone1; + mode: SyncReconcileResponseModeGenerated; /** - * Resource ARNs to bind to + * Kubernetes route API selected for public endpoints. */ - resources: Array; + route: + | SyncReconcileResponseRouteIngress1 + | SyncReconcileResponseRouteGateway1; }; -/** - * AWS-specific binding specification - */ -export type ProfileReleaseInfoAwStack = { - /** - * Optional condition for additional filtering (rare) - */ - condition?: { [k: string]: { [k: string]: string } } | null | undefined; - /** - * Resource ARNs to bind to - */ - resources: Array; +export const SyncReconcileResponseModeDisabled = { + Disabled: "disabled", +} as const; +export type SyncReconcileResponseModeDisabled = ClosedEnum< + typeof SyncReconcileResponseModeDisabled +>; + +export type SyncReconcileResponseExposureDisabled = { + mode: SyncReconcileResponseModeDisabled; }; +export type SyncReconcileResponseExposureUnion = + | SyncReconcileResponseExposureCustom + | SyncReconcileResponseExposureGenerated + | SyncReconcileResponseExposureDisabled + | any; + /** - * Generic binding configuration for permissions + * Kubernetes runtime substrate configuration. + * + * @remarks + * + * This controls how setup chooses the cluster backing `Platform::Kubernetes` + * deployments. When omitted, cloud-backed Kubernetes deployments default to a + * managed cluster and generic/on-prem Kubernetes defaults to an external + * cluster. */ -export type ProfileReleaseInfoAwBinding = { - /** - * AWS-specific binding specification - */ - resource?: ProfileReleaseInfoAwResource | undefined; - /** - * AWS-specific binding specification - */ - stack?: ProfileReleaseInfoAwStack | undefined; +export type SyncReconcileResponseKubernetes = { + cluster?: SyncReconcileResponseCluster | any | null | undefined; + exposure?: + | SyncReconcileResponseExposureCustom + | SyncReconcileResponseExposureGenerated + | SyncReconcileResponseExposureDisabled + | any + | null + | undefined; }; -/** - * IAM effect. Defaults to Allow. - */ -export const ProfileReleaseInfoEffect = { - Allow: "Allow", - Deny: "Deny", +export type SyncReconcileResponseKubernetesUnion = + | SyncReconcileResponseKubernetes + | any; + +export const TargetTypeByoVnetAzure = { + ByoVnetAzure: "byo-vnet-azure", } as const; -/** - * IAM effect. Defaults to Allow. - */ -export type ProfileReleaseInfoEffect = ClosedEnum< - typeof ProfileReleaseInfoEffect ->; +export type TargetTypeByoVnetAzure = ClosedEnum; -/** - * Grant permissions for a specific cloud platform - */ -export type ProfileReleaseInfoAwGrant = { +export type SyncReconcileResponseNetworkByoVnetAzure = { /** - * AWS IAM actions (only for AWS) + * Name of the dedicated classic Application Gateway subnet within the VNet. */ - actions?: Array | null | undefined; + applicationGatewaySubnetName?: string | null | undefined; /** - * Azure actions (only for Azure) + * Name of the dedicated subnet that hosts Private Endpoints (e.g. for a + * + * @remarks + * Postgres Flexible Server). A Private Endpoint must not share the private + * subnet, which is already claimed by the Container Apps environment's + * `infrastructure_subnet_id`. Required only when the stack contains a + * Postgres resource; otherwise unused. */ - dataActions?: Array | null | undefined; + privateEndpointSubnetName?: string | null | undefined; /** - * GCP permissions that require an exact residual custom role. + * Name of the private subnet within the VNet */ - permissions?: Array | null | undefined; + privateSubnetName: string; /** - * Provider predefined roles to bind directly. + * Name of the public subnet within the VNet */ - predefinedRoles?: Array | null | undefined; + publicSubnetName: string; + type: TargetTypeByoVnetAzure; /** - * GCP residual custom permissions to pair with predefined roles. + * The full resource ID of the existing VNet */ - residualPermissions?: Array | null | undefined; + vnetResourceId: string; }; -/** - * AWS-specific platform permission configuration - */ -export type ProfileReleaseInfoAw = { - /** - * Generic binding configuration for permissions - */ - binding: ProfileReleaseInfoAwBinding; - /** - * Short admin-facing description of why this entry exists. - */ - description?: string | null | undefined; +export const TargetTypeByoVpcGcp = { + ByoVpcGcp: "byo-vpc-gcp", +} as const; +export type TargetTypeByoVpcGcp = ClosedEnum; + +export type SyncReconcileResponseNetworkByoVpcGcp = { /** - * IAM effect. Defaults to Allow. + * The name of the existing VPC network */ - effect?: ProfileReleaseInfoEffect | undefined; + networkName: string; /** - * Grant permissions for a specific cloud platform + * The region of the subnet */ - grant: ProfileReleaseInfoAwGrant; + region: string; /** - * Stable admin-facing label for this permission entry. + * The name of the subnet to use */ - label?: string | null | undefined; + subnetName: string; + type: TargetTypeByoVpcGcp; }; -/** - * Azure-specific binding specification - */ -export type ProfileReleaseInfoAzureResource = { +export const TargetTypeByoVpcAws = { + ByoVpcAws: "byo-vpc-aws", +} as const; +export type TargetTypeByoVpcAws = ClosedEnum; + +export type SyncReconcileResponseNetworkByoVpcAws = { /** - * Scope (subscription/resource group/resource level) + * IDs of private subnets */ - scope: string; -}; - -/** - * Azure-specific binding specification - */ -export type ProfileReleaseInfoAzureStack = { + privateSubnetIds: Array; /** - * Scope (subscription/resource group/resource level) + * IDs of public subnets (required for public ingress) */ - scope: string; -}; - -/** - * Generic binding configuration for permissions - */ -export type ProfileReleaseInfoAzureBinding = { + publicSubnetIds: Array; /** - * Azure-specific binding specification + * Optional security group IDs to use */ - resource?: ProfileReleaseInfoAzureResource | undefined; + securityGroupIds?: Array | undefined; + type: TargetTypeByoVpcAws; /** - * Azure-specific binding specification + * The ID of the existing VPC */ - stack?: ProfileReleaseInfoAzureStack | undefined; + vpcId: string; }; -/** - * Grant permissions for a specific cloud platform - */ -export type ProfileReleaseInfoAzureGrant = { - /** - * AWS IAM actions (only for AWS) - */ - actions?: Array | null | undefined; - /** - * Azure actions (only for Azure) - */ - dataActions?: Array | null | undefined; - /** - * GCP permissions that require an exact residual custom role. - */ - permissions?: Array | null | undefined; +export const TargetTypeCreate = { + Create: "create", +} as const; +export type TargetTypeCreate = ClosedEnum; + +export type SyncReconcileResponseNetworkCreate = { /** - * Provider predefined roles to bind directly. + * Number of availability zones (default: 2). */ - predefinedRoles?: Array | null | undefined; + availabilityZones?: number | undefined; /** - * GCP residual custom permissions to pair with predefined roles. + * VPC/VNet CIDR block. If not specified, auto-generated from stack ID + * + * @remarks + * to reduce conflicts (e.g., "10.{hash}.0.0/16"). */ - residualPermissions?: Array | null | undefined; + cidr?: string | null | undefined; + type: TargetTypeCreate; }; -/** - * Azure-specific platform permission configuration - */ -export type ProfileReleaseInfoAzure = { - /** - * Generic binding configuration for permissions - */ - binding: ProfileReleaseInfoAzureBinding; - /** - * Short admin-facing description of why this entry exists. - */ - description?: string | null | undefined; - /** - * Grant permissions for a specific cloud platform - */ - grant: ProfileReleaseInfoAzureGrant; - /** - * Stable admin-facing label for this permission entry. - */ - label?: string | null | undefined; -}; +export const TargetTypeUseDefault = { + UseDefault: "use-default", +} as const; +export type TargetTypeUseDefault = ClosedEnum; -/** - * GCP IAM condition - */ -export type ProfileConditionReleaseInfoResource = { - expression: string; - title: string; +export type SyncReconcileResponseNetworkUseDefault = { + type: TargetTypeUseDefault; }; -export type ProfileReleaseInfoResourceConditionUnion = - | ProfileConditionReleaseInfoResource +export type SyncReconcileResponseNetworkUnion = + | SyncReconcileResponseNetworkByoVpcAws + | SyncReconcileResponseNetworkByoVpcGcp + | SyncReconcileResponseNetworkByoVnetAzure + | SyncReconcileResponseNetworkUseDefault + | SyncReconcileResponseNetworkCreate | any; /** - * GCP-specific binding specification + * How telemetry (logs, metrics, traces) is handled. */ -export type ProfileReleaseInfoGcpResource = { - condition?: ProfileConditionReleaseInfoResource | any | null | undefined; - /** - * Scope (project/resource level) - */ - scope: string; -}; - +export const SyncReconcileResponseTelemetry = { + Off: "off", + Auto: "auto", + ApprovalRequired: "approval-required", +} as const; /** - * GCP IAM condition + * How telemetry (logs, metrics, traces) is handled. */ -export type ProfileConditionReleaseInfo = { - expression: string; - title: string; -}; - -export type ProfileReleaseInfoConditionUnion = - | ProfileConditionReleaseInfo - | any; +export type SyncReconcileResponseTelemetry = ClosedEnum< + typeof SyncReconcileResponseTelemetry +>; /** - * GCP-specific binding specification + * How updates are delivered to the deployment. */ -export type ProfileReleaseInfoGcpStack = { - condition?: ProfileConditionReleaseInfo | any | null | undefined; - /** - * Scope (project/resource level) - */ - scope: string; -}; - +export const SyncReconcileResponseUpdates = { + Auto: "auto", + ApprovalRequired: "approval-required", +} as const; /** - * Generic binding configuration for permissions + * How updates are delivered to the deployment. */ -export type ProfileReleaseInfoGcpBinding = { - /** - * GCP-specific binding specification - */ - resource?: ProfileReleaseInfoGcpResource | undefined; - /** - * GCP-specific binding specification - */ - stack?: ProfileReleaseInfoGcpStack | undefined; -}; +export type SyncReconcileResponseUpdates = ClosedEnum< + typeof SyncReconcileResponseUpdates +>; /** - * Grant permissions for a specific cloud platform + * User-customizable deployment settings specified at deploy time. + * + * @remarks + * + * These settings are provided by the customer via CloudFormation parameters, + * Terraform attributes, CLI flags, or Helm values. They customize how the + * deployment runs and what capabilities are enabled. + * + * **Key distinction**: StackSettings is user-customizable, while ManagementConfig + * is platform-derived (from the Manager's ServiceAccount). */ -export type ProfileReleaseInfoGcpGrant = { +export type SyncReconcileResponseStackSettings = { + compute?: SyncReconcileResponseCompute | any | null | undefined; /** - * AWS IAM actions (only for AWS) + * Deployment model: how updates are delivered to the remote environment. */ - actions?: Array | null | undefined; + deploymentModel?: SyncReconcileResponseDeploymentModel | undefined; + domains?: SyncReconcileResponseDomains | any | null | undefined; /** - * Azure actions (only for Azure) + * External bindings for pre-existing infrastructure. + * + * @remarks + * Allows using existing resources (MinIO, Redis, shared Container Apps + * Environment, etc.) instead of having Alien provision them. + * Required for Kubernetes platform, optional for cloud platforms. */ - dataActions?: Array | null | undefined; + externalBindings?: + | SyncReconcileResponseStackSettingsExternalBindings + | null + | undefined; /** - * GCP permissions that require an exact residual custom role. + * How heartbeat health checks are handled. */ - permissions?: Array | null | undefined; + heartbeats?: SyncReconcileResponseHeartbeats | undefined; + kubernetes?: SyncReconcileResponseKubernetes | any | null | undefined; + network?: + | SyncReconcileResponseNetworkByoVpcAws + | SyncReconcileResponseNetworkByoVpcGcp + | SyncReconcileResponseNetworkByoVnetAzure + | SyncReconcileResponseNetworkUseDefault + | SyncReconcileResponseNetworkCreate + | any + | null + | undefined; /** - * Provider predefined roles to bind directly. + * How telemetry (logs, metrics, traces) is handled. */ - predefinedRoles?: Array | null | undefined; + telemetry?: SyncReconcileResponseTelemetry | undefined; /** - * GCP residual custom permissions to pair with predefined roles. + * How updates are delivered to the deployment. */ - residualPermissions?: Array | null | undefined; + updates?: SyncReconcileResponseUpdates | undefined; }; /** - * GCP-specific platform permission configuration + * Deployment configuration + * + * @remarks + * + * Configuration for how to perform the deployment. + * Note: Credentials (ClientConfig) are passed separately to step() function. */ -export type ProfileReleaseInfoGcp = { +export type TargetConfig = { /** - * Generic binding configuration for permissions + * Allow frozen resource changes during updates + * + * @remarks + * When true, skips the frozen resources compatibility check. + * This requires running with elevated cloud credentials. */ - binding: ProfileReleaseInfoGcpBinding; + allowFrozenChanges?: boolean | undefined; + basePlatform?: SyncReconcileResponseBasePlatformEnum | any | null | undefined; + computeBackend?: + | SyncReconcileResponseComputeBackendHorizon + | any + | null + | undefined; /** - * Short admin-facing description of why this entry exists. + * Human-readable deployment name for cloud console metadata. + * + * @remarks + * + * This is separate from the physical resource prefix in StackState. It is + * used only for display text such as IAM role descriptions, service + * account descriptions, and custom role titles. */ - description?: string | null | undefined; + deploymentName?: string | null | undefined; /** - * Grant permissions for a specific cloud platform + * Deployment token for pull authentication with the manager's registry. + * + * @remarks + * + * Used by controllers to configure registry credentials so cloud platforms + * and K8s can pull images from the manager's `/v2/` endpoint. */ - grant: ProfileReleaseInfoGcpGrant; + deploymentToken?: string | null | undefined; + domainMetadata?: SyncReconcileResponseDomainMetadata | any | null | undefined; /** - * Stable admin-facing label for this permission entry. + * Snapshot of environment variables at a point in time */ - label?: string | null | undefined; -}; - -/** - * Platform-specific permission configurations - */ -export type ProfileReleaseInfoPlatforms = { + environmentVariables: SyncReconcileResponseEnvironmentVariables; /** - * AWS permission configurations + * Map from resource ID to external binding. + * + * @remarks + * + * Validated at runtime: binding type must match resource type. */ - aws?: Array | null | undefined; + externalBindings?: { + [k: string]: + | SyncReconcileResponseExternalBindingsAi + | SyncReconcileResponseExternalBindingsContainerAppsEnvironment + | SyncReconcileResponseExternalBindingsS3 + | SyncReconcileResponseExternalBindingsBlob + | SyncReconcileResponseExternalBindingsGcs + | SyncReconcileResponseExternalBindingsLocalStorage + | SyncReconcileResponseExternalBindingsSqs + | SyncReconcileResponseExternalBindingsPubsub + | SyncReconcileResponseExternalBindingsServicebus + | SyncReconcileResponseExternalBindingsLocalQueue + | SyncReconcileResponseExternalBindingsDynamodb + | SyncReconcileResponseExternalBindingsFirestore + | SyncReconcileResponseExternalBindingsTablestorage + | SyncReconcileResponseExternalBindingsRedis + | SyncReconcileResponseExternalBindingsLocalKv + | SyncReconcileResponseExternalBindingsEcr + | SyncReconcileResponseExternalBindingsAcr + | SyncReconcileResponseExternalBindingsGar + | SyncReconcileResponseExternalBindingsLocal + | SyncReconcileResponseExternalBindingsParameterStore + | SyncReconcileResponseExternalBindingsSecretManager + | SyncReconcileResponseExternalBindingsKeyVault + | SyncReconcileResponseExternalBindingsKubernetesSecret + | SyncReconcileResponseExternalBindingsLocalVault + | SyncReconcileResponseExternalBindingsAurora + | SyncReconcileResponseExternalBindingsCloudSQL + | SyncReconcileResponseExternalBindingsFlexibleServer + | SyncReconcileResponseExternalBindingsExternal + | SyncReconcileResponseExternalBindingsLocalPostgres; + } | undefined; /** - * Azure permission configurations + * Deployer-provided stack input values, keyed by input id. A resource + * + * @remarks + * gated with `.enabled(input)` and a Live lifecycle follows these + * values; a missing key falls back to the input's declared boolean + * default. Suppliers must not place secret-kind input values here: + * this map serializes and debug-prints unredacted. */ - azure?: Array | null | undefined; + inputValues?: { [k: string]: any | null } | undefined; /** - * GCP permission configurations + * DNS-style label domain used for Kubernetes resource ownership labels. + * + * @remarks + * + * Defaults to `alien.dev` when absent. Whitelabeled Operator builds set this + * so generated workloads and optional log collectors share the same label + * namespace. */ - gcp?: Array | null | undefined; -}; - -/** - * A permission set that can be applied across different cloud platforms - */ -export type ProfileReleaseInfo = { + labelDomain?: string | null | undefined; + managementConfig?: + | SyncReconcileResponseManagementConfigAzure + | SyncReconcileResponseManagementConfigAws + | SyncReconcileResponseManagementConfigGcp + | SyncReconcileResponseManagementConfigKubernetes + | any + | null + | undefined; /** - * Human-readable description of what this permission set allows + * Manager base URL (e.g., "https://manager.alien.dev"). + * + * @remarks + * + * The manager IS the container registry — its `/v2/` endpoint serves as + * the OCI Distribution API. Controllers derive the proxy host from this + * to configure pull auth (RegistryCredentials, imagePullSecrets). + * + * When None (e.g., `alien dev`), controllers use image URIs as-is. */ - description: string; + managerUrl?: string | null | undefined; + monitoring?: SyncReconcileResponseMonitoring | any | null | undefined; /** - * Unique identifier for the permission set (e.g., "storage/data-read") + * Native image registry host+prefix for platforms that require it. + * + * @remarks + * + * Lambda (ECR) and Cloud Run (GAR) require native registry URIs. Other + * runtimes, including Azure Container Apps, pull through the manager's + * registry proxy. + * + * Derived by the manager from the artifact registry binding: + * - ECR: `{account_id}.dkr.ecr.{region}.amazonaws.com/{repository_prefix}` + * - GAR: `{region}-docker.pkg.dev/{project_id}/{repository_name}` */ - id: string; + nativeImageHost?: string | null | undefined; /** - * Platform-specific permission configurations + * When true the observe pass reports raw resources across every namespace + * + * @remarks + * (cluster scope); otherwise it stays within the operator's own namespace. + * The label selector, if any, still filters within whichever scope applies. + * Ignored by cloud observers. */ - platforms: ProfileReleaseInfoPlatforms; -}; - -/** - * Reference to a permission set - either by name or inline definition - */ -export type ReleaseInfoProfileUnion = ProfileReleaseInfo | string; - -/** - * Combined permissions configuration that contains both profiles and management - */ -export type ReleaseInfoPermissions = { + observeAllNamespaces?: boolean | undefined; /** - * Management permissions configuration for stack management access + * Kubernetes label selector that narrows which raw resources the observe + * + * @remarks + * pass reports (e.g. `app.kubernetes.io/part-of=my-app`). `None` observes + * everything in the namespace. Ignored by cloud observers. */ - management?: - | ManagementReleaseInfo1 - | ManagementReleaseInfo2 - | ManagementReleaseInfoEnum - | undefined; + observeLabelSelector?: string | null | undefined; /** - * Permission profiles that define access control for compute services + * Public endpoint URLs for exposed resources (optional override). * * @remarks - * Key is the profile name, value is the permission configuration + * + * Use this only when a caller already knows the public URL. Managed public + * endpoint flows should prefer `domain_metadata` plus controller-reported + * load balancer outputs so DNS, certificate renewal, and route readiness + * stay tied to the resource state. + * + * If not set, platforms determine public endpoint URLs from other sources: + * - Managed DNS/TLS flows: `domain_metadata` FQDN or load balancer DNS + * - Local: `http://localhost:{allocated_port}` + * - Custom or disabled exposure: no public endpoint URL unless a controller reports one + * + * Outer key: resource ID. Inner key: endpoint name. Value: public URL. */ - profiles: { - [k: string]: { [k: string]: Array }; - }; + publicEndpoints?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * User-customizable deployment settings specified at deploy time. + * + * @remarks + * + * These settings are provided by the customer via CloudFormation parameters, + * Terraform attributes, CLI flags, or Helm values. They customize how the + * deployment runs and what capabilities are enabled. + * + * **Key distinction**: StackSettings is user-customizable, while ManagementConfig + * is platform-derived (from the Manager's ServiceAccount). + */ + stackSettings?: SyncReconcileResponseStackSettings | undefined; }; -/** - * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. - */ -export type ReleaseInfoConfig = { +export const ReleaseInfoTypeStringList = { + StringList: "stringList", +} as const; +export type ReleaseInfoTypeStringList = ClosedEnum< + typeof ReleaseInfoTypeStringList +>; + +export type DefaultReleaseInfoStringList = { + type: ReleaseInfoTypeStringList; /** - * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. + * String list default. */ - id: string; + value: Array; +}; + +export const ReleaseInfoTypeBoolean = { + Boolean: "boolean", +} as const; +export type ReleaseInfoTypeBoolean = ClosedEnum; + +export type DefaultReleaseInfoBoolean = { + type: ReleaseInfoTypeBoolean; /** - * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + * Boolean default. */ - type: string; - additionalProperties?: { [k: string]: any | null } | undefined; + value: boolean; }; -/** - * Reference to a resource by its stable id and resource type. - */ -export type ReleaseInfoDependency = { - id: string; +export const ReleaseInfoTypeNumber = { + Number: "number", +} as const; +export type ReleaseInfoTypeNumber = ClosedEnum; + +export type DefaultReleaseInfoNumber = { + type: ReleaseInfoTypeNumber; /** - * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + * Number default. */ - type: string; + value: string; +}; + +export const ReleaseInfoTypeString = { + String: "string", +} as const; +export type ReleaseInfoTypeString = ClosedEnum; + +export type DefaultReleaseInfoString = { + type: ReleaseInfoTypeString; + /** + * String default. + */ + value: string; }; +export type ReleaseInfoDefaultUnion = + | DefaultReleaseInfoString + | DefaultReleaseInfoNumber + | DefaultReleaseInfoBoolean + | DefaultReleaseInfoStringList + | any; + /** - * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + * Environment variable handling for a stack input mapping. */ -export const ReleaseInfoLifecycle = { - Frozen: "frozen", - Live: "live", +export const TypeReleaseInfoEnvEnum = { + Plain: "plain", + Secret: "secret", } as const; /** - * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + * Environment variable handling for a stack input mapping. */ -export type ReleaseInfoLifecycle = ClosedEnum; +export type TypeReleaseInfoEnvEnum = ClosedEnum; -export type ReleaseInfoResources = { - /** - * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. - */ - config: ReleaseInfoConfig; - /** - * Additional dependencies for this resource beyond those defined in the resource itself. - * - * @remarks - * The total dependencies are: resource.get_dependencies() + this list - */ - dependencies: Array; +export type ReleaseInfoTypeUnion = TypeReleaseInfoEnvEnum | any; + +/** + * How a resolved stack input is injected into runtime environment variables. + */ +export type ReleaseInfoEnv = { /** - * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + * Environment variable name. */ - lifecycle: ReleaseInfoLifecycle; + name: string; /** - * Enable remote bindings for this resource (BYOB use case). - * - * @remarks - * When true, binding params are synced to StackState's `remote_binding_params`. - * Default: false (prevents sensitive data in synced state). + * Target resource IDs or patterns. None means every env-capable resource. */ - remoteAccess?: boolean | undefined; + targetResources?: Array | null | undefined; + type?: TypeReleaseInfoEnvEnum | any | null | undefined; }; +/** + * Primitive stack input kind. + */ +export const ReleaseInfoKind = { + String: "string", + Secret: "secret", + Number: "number", + Integer: "integer", + Boolean: "boolean", + Enum: "enum", + StringList: "stringList", +} as const; +/** + * Primitive stack input kind. + */ +export type ReleaseInfoKind = ClosedEnum; + /** * Represents the target cloud platform. */ -export const ReleaseInfoSupportedPlatform = { +export const ReleaseInfoPlatform = { Aws: "aws", Gcp: "gcp", Azure: "azure", @@ -11406,928 +12006,4553 @@ export const ReleaseInfoSupportedPlatform = { /** * Represents the target cloud platform. */ -export type ReleaseInfoSupportedPlatform = ClosedEnum< - typeof ReleaseInfoSupportedPlatform ->; +export type ReleaseInfoPlatform = ClosedEnum; /** - * A bag of resources, unaware of any cloud. + * Who can provide a stack input value. */ -export type ReleaseInfoStack = { +export const ReleaseInfoProvidedBy = { + Developer: "developer", + Deployer: "deployer", +} as const; +/** + * Who can provide a stack input value. + */ +export type ReleaseInfoProvidedBy = ClosedEnum; + +/** + * Portable stack input validation constraints. + */ +export type ValidationReleaseInfo = { /** - * Unique identifier for the stack + * Semantic format hint such as url. */ - id: string; + format?: string | null | undefined; /** - * Input definitions required before setup or deployment can proceed. + * Maximum number. */ - inputs?: Array | undefined; + max?: string | null | undefined; /** - * Combined permissions configuration that contains both profiles and management + * Maximum string-list items. */ - permissions?: ReleaseInfoPermissions | undefined; + maxItems?: number | null | undefined; /** - * Map of resource IDs to their configurations and lifecycle settings + * Maximum string length. */ - resources: { [k: string]: ReleaseInfoResources }; + maxLength?: number | null | undefined; /** - * Which platforms this stack supports. When None, all platforms are supported. + * Minimum number. */ - supportedPlatforms?: Array | null | undefined; + min?: string | null | undefined; + /** + * Minimum string-list items. + */ + minItems?: number | null | undefined; + /** + * Minimum string length. + */ + minLength?: number | null | undefined; + /** + * Portable whole-value regex pattern. + */ + pattern?: string | null | undefined; + /** + * Allowed string enum values. + */ + values?: Array | null | undefined; }; +export type ReleaseInfoValidationUnion = ValidationReleaseInfo | any; + /** - * Release metadata - * - * @remarks - * - * Identifies a specific release version and includes the stack definition. - * The deployment engine uses this to track which release is currently deployed - * and which is the target. + * Stack input definition serialized into a release stack. */ -export type ReleaseInfo = { +export type ReleaseInfoInput = { + default?: + | DefaultReleaseInfoString + | DefaultReleaseInfoNumber + | DefaultReleaseInfoBoolean + | DefaultReleaseInfoStringList + | any + | null + | undefined; /** - * Short description of the release + * Human-facing helper text. */ - description?: string | null | undefined; + description: string; /** - * Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no - * - * @remarks - * Alien-assigned release — the platform resolves a release from `version`. + * Runtime env-var mappings for v1 input resolution. */ - releaseId?: string | null | undefined; + env?: Array | undefined; /** - * A bag of resources, unaware of any cloud. + * Stable input ID used by CLI/API calls. */ - stack: ReleaseInfoStack; + id: string; /** - * Version string (e.g., 2.1.0) + * Primitive stack input kind. */ - version?: string | null | undefined; + kind: ReleaseInfoKind; + /** + * Human-facing field label. + */ + label: string; + /** + * Example placeholder shown in UI. + */ + placeholder?: string | null | undefined; + /** + * Platforms where this input applies. + */ + platforms?: Array | null | undefined; + /** + * Who can provide this value. + */ + providedBy: Array; + /** + * Whether a resolved value is required before deployment can proceed. + */ + required: boolean; + validation?: ValidationReleaseInfo | any | null | undefined; }; +export const ManagementReleaseInfoEnum = { + Auto: "auto", +} as const; +export type ManagementReleaseInfoEnum = ClosedEnum< + typeof ManagementReleaseInfoEnum +>; + /** - * Target deployment if update is needed + * AWS-specific binding specification */ -export type SyncReconcileResponseTarget = { +export type OverrideReleaseInfoAwResource = { /** - * Deployment configuration - * - * @remarks - * - * Configuration for how to perform the deployment. - * Note: Credentials (ClientConfig) are passed separately to step() function. + * Optional condition for additional filtering (rare) */ - config: TargetConfig; + condition?: { [k: string]: { [k: string]: string } } | null | undefined; /** - * Release metadata - * - * @remarks - * - * Identifies a specific release version and includes the stack definition. - * The deployment engine uses this to track which release is currently deployed - * and which is the target. + * Resource ARNs to bind to */ - releaseInfo: ReleaseInfo; + resources: Array; }; /** - * State reconciliation result with optional target + * AWS-specific binding specification */ -export type SyncReconcileResponse = { +export type OverrideReleaseInfoAwStack = { /** - * Whether the state was reconciled + * Optional condition for additional filtering (rare) */ - success: boolean; + condition?: { [k: string]: { [k: string]: string } } | null | undefined; /** - * Current deployment state after reconciliation + * Resource ARNs to bind to */ - current: SyncReconcileResponseCurrent; + resources: Array; +}; + +/** + * Generic binding configuration for permissions + */ +export type OverrideReleaseInfoAwBinding = { /** - * Target deployment if update is needed + * AWS-specific binding specification */ - target?: SyncReconcileResponseTarget | undefined; + resource?: OverrideReleaseInfoAwResource | undefined; + /** + * AWS-specific binding specification + */ + stack?: OverrideReleaseInfoAwStack | undefined; }; -/** @internal */ -export const SyncReconcileResponseCurrentReleaseTypeStringList$inboundSchema: - z.ZodEnum = z.enum( - SyncReconcileResponseCurrentReleaseTypeStringList, - ); +/** + * IAM effect. Defaults to Allow. + */ +export const OverrideReleaseInfoEffect = { + Allow: "Allow", + Deny: "Deny", +} as const; +/** + * IAM effect. Defaults to Allow. + */ +export type OverrideReleaseInfoEffect = ClosedEnum< + typeof OverrideReleaseInfoEffect +>; -/** @internal */ -export const SyncReconcileResponseCurrentReleaseDefaultStringList$inboundSchema: - z.ZodType = z - .object({ - type: SyncReconcileResponseCurrentReleaseTypeStringList$inboundSchema, - value: z.array(z.string()), - }); +/** + * Grant permissions for a specific cloud platform + */ +export type OverrideReleaseInfoAwGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * AWS-specific platform permission configuration + */ +export type OverrideReleaseInfoAw = { + /** + * Generic binding configuration for permissions + */ + binding: OverrideReleaseInfoAwBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * IAM effect. Defaults to Allow. + */ + effect?: OverrideReleaseInfoEffect | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: OverrideReleaseInfoAwGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Azure-specific binding specification + */ +export type OverrideReleaseInfoAzureResource = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; + +/** + * Azure-specific binding specification + */ +export type OverrideReleaseInfoAzureStack = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type OverrideReleaseInfoAzureBinding = { + /** + * Azure-specific binding specification + */ + resource?: OverrideReleaseInfoAzureResource | undefined; + /** + * Azure-specific binding specification + */ + stack?: OverrideReleaseInfoAzureStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type OverrideReleaseInfoAzureGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * Azure-specific platform permission configuration + */ +export type OverrideReleaseInfoAzure = { + /** + * Generic binding configuration for permissions + */ + binding: OverrideReleaseInfoAzureBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: OverrideReleaseInfoAzureGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * GCP IAM condition + */ +export type OverrideConditionReleaseInfoResource = { + expression: string; + title: string; +}; + +export type OverrideReleaseInfoResourceConditionUnion = + | OverrideConditionReleaseInfoResource + | any; + +/** + * GCP-specific binding specification + */ +export type OverrideReleaseInfoGcpResource = { + condition?: OverrideConditionReleaseInfoResource | any | null | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + +/** + * GCP IAM condition + */ +export type OverrideConditionReleaseInfo = { + expression: string; + title: string; +}; + +export type OverrideReleaseInfoConditionUnion = + | OverrideConditionReleaseInfo + | any; + +/** + * GCP-specific binding specification + */ +export type OverrideReleaseInfoGcpStack = { + condition?: OverrideConditionReleaseInfo | any | null | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type OverrideReleaseInfoGcpBinding = { + /** + * GCP-specific binding specification + */ + resource?: OverrideReleaseInfoGcpResource | undefined; + /** + * GCP-specific binding specification + */ + stack?: OverrideReleaseInfoGcpStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type OverrideReleaseInfoGcpGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * GCP-specific platform permission configuration + */ +export type OverrideReleaseInfoGcp = { + /** + * Generic binding configuration for permissions + */ + binding: OverrideReleaseInfoGcpBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: OverrideReleaseInfoGcpGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Platform-specific permission configurations + */ +export type OverrideReleaseInfoPlatforms = { + /** + * AWS permission configurations + */ + aws?: Array | null | undefined; + /** + * Azure permission configurations + */ + azure?: Array | null | undefined; + /** + * GCP permission configurations + */ + gcp?: Array | null | undefined; +}; + +/** + * A permission set that can be applied across different cloud platforms + */ +export type OverrideReleaseInfo = { + /** + * Human-readable description of what this permission set allows + */ + description: string; + /** + * Unique identifier for the permission set (e.g., "storage/data-read") + */ + id: string; + /** + * Platform-specific permission configurations + */ + platforms: OverrideReleaseInfoPlatforms; +}; + +/** + * Reference to a permission set - either by name or inline definition + */ +export type ReleaseInfoOverrideUnion = OverrideReleaseInfo | string; + +export type ManagementReleaseInfo2 = { + /** + * Permission profile that maps resources to permission sets + * + * @remarks + * Key can be "*" for all resources or resource name for specific resource + */ + override: { [k: string]: Array }; +}; + +/** + * AWS-specific binding specification + */ +export type ExtendReleaseInfoAwResource = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; + +/** + * AWS-specific binding specification + */ +export type ExtendReleaseInfoAwStack = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; + +/** + * Generic binding configuration for permissions + */ +export type ExtendReleaseInfoAwBinding = { + /** + * AWS-specific binding specification + */ + resource?: ExtendReleaseInfoAwResource | undefined; + /** + * AWS-specific binding specification + */ + stack?: ExtendReleaseInfoAwStack | undefined; +}; + +/** + * IAM effect. Defaults to Allow. + */ +export const ExtendReleaseInfoEffect = { + Allow: "Allow", + Deny: "Deny", +} as const; +/** + * IAM effect. Defaults to Allow. + */ +export type ExtendReleaseInfoEffect = ClosedEnum< + typeof ExtendReleaseInfoEffect +>; + +/** + * Grant permissions for a specific cloud platform + */ +export type ExtendReleaseInfoAwGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * AWS-specific platform permission configuration + */ +export type ExtendReleaseInfoAw = { + /** + * Generic binding configuration for permissions + */ + binding: ExtendReleaseInfoAwBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * IAM effect. Defaults to Allow. + */ + effect?: ExtendReleaseInfoEffect | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: ExtendReleaseInfoAwGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Azure-specific binding specification + */ +export type ExtendReleaseInfoAzureResource = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; + +/** + * Azure-specific binding specification + */ +export type ExtendReleaseInfoAzureStack = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type ExtendReleaseInfoAzureBinding = { + /** + * Azure-specific binding specification + */ + resource?: ExtendReleaseInfoAzureResource | undefined; + /** + * Azure-specific binding specification + */ + stack?: ExtendReleaseInfoAzureStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type ExtendReleaseInfoAzureGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * Azure-specific platform permission configuration + */ +export type ExtendReleaseInfoAzure = { + /** + * Generic binding configuration for permissions + */ + binding: ExtendReleaseInfoAzureBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: ExtendReleaseInfoAzureGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * GCP IAM condition + */ +export type ExtendConditionReleaseInfoResource = { + expression: string; + title: string; +}; + +export type ExtendReleaseInfoResourceConditionUnion = + | ExtendConditionReleaseInfoResource + | any; + +/** + * GCP-specific binding specification + */ +export type ExtendReleaseInfoGcpResource = { + condition?: ExtendConditionReleaseInfoResource | any | null | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + +/** + * GCP IAM condition + */ +export type ExtendConditionReleaseInfo = { + expression: string; + title: string; +}; + +export type ExtendReleaseInfoConditionUnion = ExtendConditionReleaseInfo | any; + +/** + * GCP-specific binding specification + */ +export type ExtendReleaseInfoGcpStack = { + condition?: ExtendConditionReleaseInfo | any | null | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type ExtendReleaseInfoGcpBinding = { + /** + * GCP-specific binding specification + */ + resource?: ExtendReleaseInfoGcpResource | undefined; + /** + * GCP-specific binding specification + */ + stack?: ExtendReleaseInfoGcpStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type ExtendReleaseInfoGcpGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * GCP-specific platform permission configuration + */ +export type ExtendReleaseInfoGcp = { + /** + * Generic binding configuration for permissions + */ + binding: ExtendReleaseInfoGcpBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: ExtendReleaseInfoGcpGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Platform-specific permission configurations + */ +export type ExtendReleaseInfoPlatforms = { + /** + * AWS permission configurations + */ + aws?: Array | null | undefined; + /** + * Azure permission configurations + */ + azure?: Array | null | undefined; + /** + * GCP permission configurations + */ + gcp?: Array | null | undefined; +}; + +/** + * A permission set that can be applied across different cloud platforms + */ +export type ExtendReleaseInfo = { + /** + * Human-readable description of what this permission set allows + */ + description: string; + /** + * Unique identifier for the permission set (e.g., "storage/data-read") + */ + id: string; + /** + * Platform-specific permission configurations + */ + platforms: ExtendReleaseInfoPlatforms; +}; + +/** + * Reference to a permission set - either by name or inline definition + */ +export type ReleaseInfoExtendUnion = ExtendReleaseInfo | string; + +export type ManagementReleaseInfo1 = { + /** + * Permission profile that maps resources to permission sets + * + * @remarks + * Key can be "*" for all resources or resource name for specific resource + */ + extend: { [k: string]: Array }; +}; + +/** + * Management permissions configuration for stack management access + */ +export type ReleaseInfoManagementUnion = + | ManagementReleaseInfo1 + | ManagementReleaseInfo2 + | ManagementReleaseInfoEnum; + +/** + * AWS-specific binding specification + */ +export type ProfileReleaseInfoAwResource = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; + +/** + * AWS-specific binding specification + */ +export type ProfileReleaseInfoAwStack = { + /** + * Optional condition for additional filtering (rare) + */ + condition?: { [k: string]: { [k: string]: string } } | null | undefined; + /** + * Resource ARNs to bind to + */ + resources: Array; +}; + +/** + * Generic binding configuration for permissions + */ +export type ProfileReleaseInfoAwBinding = { + /** + * AWS-specific binding specification + */ + resource?: ProfileReleaseInfoAwResource | undefined; + /** + * AWS-specific binding specification + */ + stack?: ProfileReleaseInfoAwStack | undefined; +}; + +/** + * IAM effect. Defaults to Allow. + */ +export const ProfileReleaseInfoEffect = { + Allow: "Allow", + Deny: "Deny", +} as const; +/** + * IAM effect. Defaults to Allow. + */ +export type ProfileReleaseInfoEffect = ClosedEnum< + typeof ProfileReleaseInfoEffect +>; + +/** + * Grant permissions for a specific cloud platform + */ +export type ProfileReleaseInfoAwGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * AWS-specific platform permission configuration + */ +export type ProfileReleaseInfoAw = { + /** + * Generic binding configuration for permissions + */ + binding: ProfileReleaseInfoAwBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * IAM effect. Defaults to Allow. + */ + effect?: ProfileReleaseInfoEffect | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: ProfileReleaseInfoAwGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Azure-specific binding specification + */ +export type ProfileReleaseInfoAzureResource = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; + +/** + * Azure-specific binding specification + */ +export type ProfileReleaseInfoAzureStack = { + /** + * Scope (subscription/resource group/resource level) + */ + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type ProfileReleaseInfoAzureBinding = { + /** + * Azure-specific binding specification + */ + resource?: ProfileReleaseInfoAzureResource | undefined; + /** + * Azure-specific binding specification + */ + stack?: ProfileReleaseInfoAzureStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type ProfileReleaseInfoAzureGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * Azure-specific platform permission configuration + */ +export type ProfileReleaseInfoAzure = { + /** + * Generic binding configuration for permissions + */ + binding: ProfileReleaseInfoAzureBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: ProfileReleaseInfoAzureGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * GCP IAM condition + */ +export type ProfileConditionReleaseInfoResource = { + expression: string; + title: string; +}; + +export type ProfileReleaseInfoResourceConditionUnion = + | ProfileConditionReleaseInfoResource + | any; + +/** + * GCP-specific binding specification + */ +export type ProfileReleaseInfoGcpResource = { + condition?: ProfileConditionReleaseInfoResource | any | null | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + +/** + * GCP IAM condition + */ +export type ProfileConditionReleaseInfo = { + expression: string; + title: string; +}; + +export type ProfileReleaseInfoConditionUnion = + | ProfileConditionReleaseInfo + | any; + +/** + * GCP-specific binding specification + */ +export type ProfileReleaseInfoGcpStack = { + condition?: ProfileConditionReleaseInfo | any | null | undefined; + /** + * Scope (project/resource level) + */ + scope: string; +}; + +/** + * Generic binding configuration for permissions + */ +export type ProfileReleaseInfoGcpBinding = { + /** + * GCP-specific binding specification + */ + resource?: ProfileReleaseInfoGcpResource | undefined; + /** + * GCP-specific binding specification + */ + stack?: ProfileReleaseInfoGcpStack | undefined; +}; + +/** + * Grant permissions for a specific cloud platform + */ +export type ProfileReleaseInfoGcpGrant = { + /** + * AWS IAM actions (only for AWS) + */ + actions?: Array | null | undefined; + /** + * Azure actions (only for Azure) + */ + dataActions?: Array | null | undefined; + /** + * GCP permissions that require an exact residual custom role. + */ + permissions?: Array | null | undefined; + /** + * Provider predefined roles to bind directly. + */ + predefinedRoles?: Array | null | undefined; + /** + * GCP residual custom permissions to pair with predefined roles. + */ + residualPermissions?: Array | null | undefined; +}; + +/** + * GCP-specific platform permission configuration + */ +export type ProfileReleaseInfoGcp = { + /** + * Generic binding configuration for permissions + */ + binding: ProfileReleaseInfoGcpBinding; + /** + * Short admin-facing description of why this entry exists. + */ + description?: string | null | undefined; + /** + * Grant permissions for a specific cloud platform + */ + grant: ProfileReleaseInfoGcpGrant; + /** + * Stable admin-facing label for this permission entry. + */ + label?: string | null | undefined; +}; + +/** + * Platform-specific permission configurations + */ +export type ProfileReleaseInfoPlatforms = { + /** + * AWS permission configurations + */ + aws?: Array | null | undefined; + /** + * Azure permission configurations + */ + azure?: Array | null | undefined; + /** + * GCP permission configurations + */ + gcp?: Array | null | undefined; +}; + +/** + * A permission set that can be applied across different cloud platforms + */ +export type ProfileReleaseInfo = { + /** + * Human-readable description of what this permission set allows + */ + description: string; + /** + * Unique identifier for the permission set (e.g., "storage/data-read") + */ + id: string; + /** + * Platform-specific permission configurations + */ + platforms: ProfileReleaseInfoPlatforms; +}; + +/** + * Reference to a permission set - either by name or inline definition + */ +export type ReleaseInfoProfileUnion = ProfileReleaseInfo | string; + +/** + * Combined permissions configuration that contains both profiles and management + */ +export type ReleaseInfoPermissions = { + /** + * Management permissions configuration for stack management access + */ + management?: + | ManagementReleaseInfo1 + | ManagementReleaseInfo2 + | ManagementReleaseInfoEnum + | undefined; + /** + * Permission profiles that define access control for compute services + * + * @remarks + * Key is the profile name, value is the permission configuration + */ + profiles: { + [k: string]: { [k: string]: Array }; + }; +}; + +/** + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + */ +export type ReleaseInfoConfig = { + /** + * The unique identifier for this specific resource instance. Must contain only alphanumeric characters, hyphens, and underscores ([A-Za-z0-9-_]). Maximum 64 characters. + */ + id: string; + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + type: string; + additionalProperties?: { [k: string]: any | null } | undefined; +}; + +/** + * Reference to a resource by its stable id and resource type. + */ +export type ReleaseInfoDependency = { + id: string; + /** + * Resource type identifier that determines the specific kind of resource. This field is used for polymorphic deserialization and resource-specific behavior. + */ + type: string; +}; + +/** + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ +export const ReleaseInfoLifecycle = { + Frozen: "frozen", + Live: "live", +} as const; +/** + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ +export type ReleaseInfoLifecycle = ClosedEnum; + +export type ReleaseInfoResources = { + /** + * Resource that can hold any resource type in the Alien system. All resources share common 'type' and 'id' fields with additional type-specific properties. + */ + config: ReleaseInfoConfig; + /** + * Additional dependencies for this resource beyond those defined in the resource itself. + * + * @remarks + * The total dependencies are: resource.get_dependencies() + this list + */ + dependencies: Array; + /** + * Id of the boolean stack input that decides whether this resource is + * + * @remarks + * created at all. `None` means always create it. + * + * Set by `.enabled(input)` in the SDK. Setup emitters render the resource + * conditionally on the matching template variable, so a deployer who says no + * never gets the resource, its outputs, or anything derived from it. + */ + enabledWhen?: string | null | undefined; + /** + * Describes the lifecycle of a resource within a stack, determining how it's managed and deployed. + */ + lifecycle: ReleaseInfoLifecycle; + /** + * Enable remote bindings for this resource (BYOB use case). + * + * @remarks + * When true, binding params are synced to StackState's `remote_binding_params`. + * Default: false (prevents sensitive data in synced state). + */ + remoteAccess?: boolean | undefined; +}; + +/** + * Represents the target cloud platform. + */ +export const ReleaseInfoSupportedPlatform = { + Aws: "aws", + Gcp: "gcp", + Azure: "azure", + Kubernetes: "kubernetes", + Machines: "machines", + Local: "local", + Test: "test", +} as const; +/** + * Represents the target cloud platform. + */ +export type ReleaseInfoSupportedPlatform = ClosedEnum< + typeof ReleaseInfoSupportedPlatform +>; + +/** + * A bag of resources, unaware of any cloud. + */ +export type ReleaseInfoStack = { + /** + * Unique identifier for the stack + */ + id: string; + /** + * Input definitions required before setup or deployment can proceed. + */ + inputs?: Array | undefined; + /** + * Combined permissions configuration that contains both profiles and management + */ + permissions?: ReleaseInfoPermissions | undefined; + /** + * Map of resource IDs to their configurations and lifecycle settings + */ + resources: { [k: string]: ReleaseInfoResources }; + /** + * Which platforms this stack supports. When None, all platforms are supported. + */ + supportedPlatforms?: Array | null | undefined; +}; + +/** + * Release metadata + * + * @remarks + * + * Identifies a specific release version and includes the stack definition. + * The deployment engine uses this to track which release is currently deployed + * and which is the target. + */ +export type ReleaseInfo = { + /** + * Short description of the release + */ + description?: string | null | undefined; + /** + * Release ID (e.g., rel_xyz). `None` for an observe deployment, which has no + * + * @remarks + * Alien-assigned release — the platform resolves a release from `version`. + */ + releaseId?: string | null | undefined; + /** + * A bag of resources, unaware of any cloud. + */ + stack: ReleaseInfoStack; + /** + * Version string (e.g., 2.1.0) + */ + version?: string | null | undefined; +}; + +/** + * Target deployment if update is needed + */ +export type SyncReconcileResponseTarget = { + /** + * Deployment configuration + * + * @remarks + * + * Configuration for how to perform the deployment. + * Note: Credentials (ClientConfig) are passed separately to step() function. + */ + config: TargetConfig; + /** + * Release metadata + * + * @remarks + * + * Identifies a specific release version and includes the stack definition. + * The deployment engine uses this to track which release is currently deployed + * and which is the target. + */ + releaseInfo: ReleaseInfo; +}; + +/** + * State reconciliation result with optional target + */ +export type SyncReconcileResponse = { + /** + * Whether the state was reconciled + */ + success: boolean; + /** + * Current deployment state after reconciliation + */ + current: SyncReconcileResponseCurrent; + /** + * Target deployment if update is needed + */ + target?: SyncReconcileResponseTarget | undefined; +}; + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseTypeStringList$inboundSchema: + z.ZodEnum = z.enum( + SyncReconcileResponseCurrentReleaseTypeStringList, + ); + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseDefaultStringList$inboundSchema: + z.ZodType = z + .object({ + type: SyncReconcileResponseCurrentReleaseTypeStringList$inboundSchema, + value: z.array(z.string()), + }); + +export function syncReconcileResponseCurrentReleaseDefaultStringListFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseDefaultStringList, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseDefaultStringList$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseDefaultStringList' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseTypeBoolean$inboundSchema: + z.ZodEnum = z.enum( + SyncReconcileResponseCurrentReleaseTypeBoolean, + ); + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseDefaultBoolean$inboundSchema: + z.ZodType = z + .object({ + type: SyncReconcileResponseCurrentReleaseTypeBoolean$inboundSchema, + value: z.boolean(), + }); + +export function syncReconcileResponseCurrentReleaseDefaultBooleanFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseDefaultBoolean, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseDefaultBoolean$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseDefaultBoolean' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseTypeNumber$inboundSchema: + z.ZodEnum = z.enum( + SyncReconcileResponseCurrentReleaseTypeNumber, + ); + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseDefaultNumber$inboundSchema: + z.ZodType = z + .object({ + type: SyncReconcileResponseCurrentReleaseTypeNumber$inboundSchema, + value: z.string(), + }); + +export function syncReconcileResponseCurrentReleaseDefaultNumberFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseDefaultNumber, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseDefaultNumber$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseDefaultNumber' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseTypeString$inboundSchema: + z.ZodEnum = z.enum( + SyncReconcileResponseCurrentReleaseTypeString, + ); + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseDefaultString$inboundSchema: + z.ZodType = z + .object({ + type: SyncReconcileResponseCurrentReleaseTypeString$inboundSchema, + value: z.string(), + }); + +export function syncReconcileResponseCurrentReleaseDefaultStringFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseDefaultString, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseDefaultString$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseDefaultString' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseDefaultUnion$inboundSchema: + z.ZodType = z.union( + [ + z.lazy(() => + SyncReconcileResponseCurrentReleaseDefaultString$inboundSchema + ), + z.lazy(() => + SyncReconcileResponseCurrentReleaseDefaultNumber$inboundSchema + ), + z.lazy(() => + SyncReconcileResponseCurrentReleaseDefaultBoolean$inboundSchema + ), + z.lazy(() => + SyncReconcileResponseCurrentReleaseDefaultStringList$inboundSchema + ), + z.any(), + ], + ); + +export function syncReconcileResponseCurrentReleaseDefaultUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseDefaultUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseDefaultUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseDefaultUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseTypeEnvEnum$inboundSchema: + z.ZodEnum = z.enum( + SyncReconcileResponseCurrentReleaseTypeEnvEnum, + ); + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseTypeUnion$inboundSchema: + z.ZodType = z.union([ + SyncReconcileResponseCurrentReleaseTypeEnvEnum$inboundSchema, + z.any(), + ]); + +export function syncReconcileResponseCurrentReleaseTypeUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseTypeUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseTypeUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseTypeUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseEnv$inboundSchema: z.ZodType< + SyncReconcileResponseCurrentReleaseEnv, + unknown +> = z.object({ + name: z.string(), + targetResources: z.nullable(z.array(z.string())).optional(), + type: z.nullable( + z.union([ + SyncReconcileResponseCurrentReleaseTypeEnvEnum$inboundSchema, + z.any(), + ]), + ).optional(), +}); + +export function syncReconcileResponseCurrentReleaseEnvFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseEnv$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponseCurrentReleaseEnv' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseKind$inboundSchema: z.ZodEnum< + typeof SyncReconcileResponseCurrentReleaseKind +> = z.enum(SyncReconcileResponseCurrentReleaseKind); + +/** @internal */ +export const SyncReconcileResponseCurrentReleasePlatform$inboundSchema: + z.ZodEnum = z.enum( + SyncReconcileResponseCurrentReleasePlatform, + ); + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseProvidedBy$inboundSchema: + z.ZodEnum = z.enum( + SyncReconcileResponseCurrentReleaseProvidedBy, + ); + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseValidation$inboundSchema: + z.ZodType = z.object({ + format: z.nullable(z.string()).optional(), + max: z.nullable(z.string()).optional(), + maxItems: z.nullable(z.int()).optional(), + maxLength: z.nullable(z.int()).optional(), + min: z.nullable(z.string()).optional(), + minItems: z.nullable(z.int()).optional(), + minLength: z.nullable(z.int()).optional(), + pattern: z.nullable(z.string()).optional(), + values: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileResponseCurrentReleaseValidationFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseValidation, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseValidation$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseValidation' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseValidationUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => SyncReconcileResponseCurrentReleaseValidation$inboundSchema), + z.any(), + ]); + +export function syncReconcileResponseCurrentReleaseValidationUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseValidationUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseValidationUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseValidationUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseInput$inboundSchema: z.ZodType< + SyncReconcileResponseCurrentReleaseInput, + unknown +> = z.object({ + default: z.nullable( + z.union([ + z.lazy(() => + SyncReconcileResponseCurrentReleaseDefaultString$inboundSchema + ), + z.lazy(() => + SyncReconcileResponseCurrentReleaseDefaultNumber$inboundSchema + ), + z.lazy(() => + SyncReconcileResponseCurrentReleaseDefaultBoolean$inboundSchema + ), + z.lazy(() => + SyncReconcileResponseCurrentReleaseDefaultStringList$inboundSchema + ), + z.any(), + ]), + ).optional(), + description: z.string(), + env: z.array( + z.lazy(() => SyncReconcileResponseCurrentReleaseEnv$inboundSchema), + ).optional(), + id: z.string(), + kind: SyncReconcileResponseCurrentReleaseKind$inboundSchema, + label: z.string(), + placeholder: z.nullable(z.string()).optional(), + platforms: z.nullable( + z.array(SyncReconcileResponseCurrentReleasePlatform$inboundSchema), + ).optional(), + providedBy: z.array( + SyncReconcileResponseCurrentReleaseProvidedBy$inboundSchema, + ), + required: z.boolean(), + validation: z.nullable( + z.union([ + z.lazy(() => SyncReconcileResponseCurrentReleaseValidation$inboundSchema), + z.any(), + ]), + ).optional(), +}); + +export function syncReconcileResponseCurrentReleaseInputFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseInput, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseInput$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseInput' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseManagementEnum$inboundSchema: + z.ZodEnum = z.enum( + SyncReconcileResponseCurrentReleaseManagementEnum, + ); + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseOverrideAwResource$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); + +export function syncReconcileResponseCurrentReleaseOverrideAwResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseOverrideAwResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseOverrideAwResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideAwResource' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseOverrideAwStack$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); + +export function syncReconcileResponseCurrentReleaseOverrideAwStackFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseOverrideAwStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseOverrideAwStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideAwStack' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseOverrideAwBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + SyncReconcileResponseCurrentReleaseOverrideAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileResponseCurrentReleaseOverrideAwStack$inboundSchema + ).optional(), + }); + +export function syncReconcileResponseCurrentReleaseOverrideAwBindingFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseOverrideAwBinding, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseOverrideAwBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideAwBinding' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseOverrideEffect$inboundSchema: + z.ZodEnum = z.enum( + SyncReconcileResponseCurrentReleaseOverrideEffect, + ); + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseOverrideAwGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileResponseCurrentReleaseOverrideAwGrantFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseOverrideAwGrant, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseOverrideAwGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideAwGrant' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseOverrideAw$inboundSchema: + z.ZodType = z.object({ + binding: z.lazy(() => + SyncReconcileResponseCurrentReleaseOverrideAwBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: SyncReconcileResponseCurrentReleaseOverrideEffect$inboundSchema + .optional(), + grant: z.lazy(() => + SyncReconcileResponseCurrentReleaseOverrideAwGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncReconcileResponseCurrentReleaseOverrideAwFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseOverrideAw, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseOverrideAw$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideAw' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseOverrideAzureResource$inboundSchema: + z.ZodType = + z.object({ + scope: z.string(), + }); + +export function syncReconcileResponseCurrentReleaseOverrideAzureResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseOverrideAzureResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseOverrideAzureResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideAzureResource' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseOverrideAzureStack$inboundSchema: + z.ZodType = z + .object({ + scope: z.string(), + }); + +export function syncReconcileResponseCurrentReleaseOverrideAzureStackFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseOverrideAzureStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseOverrideAzureStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideAzureStack' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseOverrideAzureBinding$inboundSchema: + z.ZodType = + z.object({ + resource: z.lazy(() => + SyncReconcileResponseCurrentReleaseOverrideAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileResponseCurrentReleaseOverrideAzureStack$inboundSchema + ).optional(), + }); + +export function syncReconcileResponseCurrentReleaseOverrideAzureBindingFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseOverrideAzureBinding, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseOverrideAzureBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideAzureBinding' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseOverrideAzureGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileResponseCurrentReleaseOverrideAzureGrantFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseOverrideAzureGrant, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseOverrideAzureGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideAzureGrant' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseOverrideAzure$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + SyncReconcileResponseCurrentReleaseOverrideAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncReconcileResponseCurrentReleaseOverrideAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncReconcileResponseCurrentReleaseOverrideAzureFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseOverrideAzure, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseOverrideAzure$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideAzure' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseOverrideConditionResource$inboundSchema: + z.ZodType< + SyncReconcileResponseCurrentReleaseOverrideConditionResource, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); + +export function syncReconcileResponseCurrentReleaseOverrideConditionResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseOverrideConditionResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseOverrideConditionResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideConditionResource' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseOverrideResourceConditionUnion$inboundSchema: + z.ZodType< + SyncReconcileResponseCurrentReleaseOverrideResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncReconcileResponseCurrentReleaseOverrideConditionResource$inboundSchema + ), + z.any(), + ]); + +export function syncReconcileResponseCurrentReleaseOverrideResourceConditionUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseOverrideResourceConditionUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseOverrideResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideResourceConditionUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseOverrideGcpResource$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncReconcileResponseCurrentReleaseOverrideConditionResource$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); + +export function syncReconcileResponseCurrentReleaseOverrideGcpResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseOverrideGcpResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseOverrideGcpResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideGcpResource' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseOverrideCondition$inboundSchema: + z.ZodType = z + .object({ + expression: z.string(), + title: z.string(), + }); + +export function syncReconcileResponseCurrentReleaseOverrideConditionFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseOverrideCondition, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseOverrideCondition$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideCondition' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseOverrideConditionUnion$inboundSchema: + z.ZodType< + SyncReconcileResponseCurrentReleaseOverrideConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncReconcileResponseCurrentReleaseOverrideCondition$inboundSchema + ), + z.any(), + ]); + +export function syncReconcileResponseCurrentReleaseOverrideConditionUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseOverrideConditionUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseOverrideConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideConditionUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseOverrideGcpStack$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncReconcileResponseCurrentReleaseOverrideCondition$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); + +export function syncReconcileResponseCurrentReleaseOverrideGcpStackFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseOverrideGcpStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseOverrideGcpStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideGcpStack' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseOverrideGcpBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + SyncReconcileResponseCurrentReleaseOverrideGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileResponseCurrentReleaseOverrideGcpStack$inboundSchema + ).optional(), + }); + +export function syncReconcileResponseCurrentReleaseOverrideGcpBindingFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseOverrideGcpBinding, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseOverrideGcpBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideGcpBinding' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseOverrideGcpGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileResponseCurrentReleaseOverrideGcpGrantFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseOverrideGcpGrant, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseOverrideGcpGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideGcpGrant' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseOverrideGcp$inboundSchema: + z.ZodType = z.object( + { + binding: z.lazy(() => + SyncReconcileResponseCurrentReleaseOverrideGcpBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncReconcileResponseCurrentReleaseOverrideGcpGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }, + ); + +export function syncReconcileResponseCurrentReleaseOverrideGcpFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseOverrideGcp, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseOverrideGcp$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideGcp' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseOverridePlatforms$inboundSchema: + z.ZodType = z + .object({ + aws: z.nullable( + z.array(z.lazy(() => + SyncReconcileResponseCurrentReleaseOverrideAw$inboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + SyncReconcileResponseCurrentReleaseOverrideAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + SyncReconcileResponseCurrentReleaseOverrideGcp$inboundSchema + )), + ).optional(), + }); + +export function syncReconcileResponseCurrentReleaseOverridePlatformsFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseOverridePlatforms, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseOverridePlatforms$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseOverridePlatforms' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseOverride$inboundSchema: + z.ZodType = z.object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncReconcileResponseCurrentReleaseOverridePlatforms$inboundSchema + ), + }); + +export function syncReconcileResponseCurrentReleaseOverrideFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseOverride, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseOverride$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseOverride' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseOverrideUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => SyncReconcileResponseCurrentReleaseOverride$inboundSchema), + z.string(), + ]); + +export function syncReconcileResponseCurrentReleaseOverrideUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseOverrideUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseOverrideUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseManagement2$inboundSchema: + z.ZodType = z.object( + { + override: z.record( + z.string(), + z.array( + z.union([ + z.lazy(() => + SyncReconcileResponseCurrentReleaseOverride$inboundSchema + ), + z.string(), + ]), + ), + ), + }, + ); + +export function syncReconcileResponseCurrentReleaseManagement2FromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseManagement2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseManagement2$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseManagement2' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseExtendAwResource$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); + +export function syncReconcileResponseCurrentReleaseExtendAwResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseExtendAwResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseExtendAwResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendAwResource' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseExtendAwStack$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); + +export function syncReconcileResponseCurrentReleaseExtendAwStackFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseExtendAwStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseExtendAwStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendAwStack' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseExtendAwBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + SyncReconcileResponseCurrentReleaseExtendAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileResponseCurrentReleaseExtendAwStack$inboundSchema + ).optional(), + }); + +export function syncReconcileResponseCurrentReleaseExtendAwBindingFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseExtendAwBinding, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseExtendAwBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendAwBinding' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseExtendEffect$inboundSchema: + z.ZodEnum = z.enum( + SyncReconcileResponseCurrentReleaseExtendEffect, + ); + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseExtendAwGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileResponseCurrentReleaseExtendAwGrantFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseExtendAwGrant, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseExtendAwGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendAwGrant' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseExtendAw$inboundSchema: + z.ZodType = z.object({ + binding: z.lazy(() => + SyncReconcileResponseCurrentReleaseExtendAwBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: SyncReconcileResponseCurrentReleaseExtendEffect$inboundSchema + .optional(), + grant: z.lazy(() => + SyncReconcileResponseCurrentReleaseExtendAwGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncReconcileResponseCurrentReleaseExtendAwFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseExtendAw, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseExtendAw$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendAw' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseExtendAzureResource$inboundSchema: + z.ZodType = z + .object({ + scope: z.string(), + }); + +export function syncReconcileResponseCurrentReleaseExtendAzureResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseExtendAzureResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseExtendAzureResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendAzureResource' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseExtendAzureStack$inboundSchema: + z.ZodType = z + .object({ + scope: z.string(), + }); + +export function syncReconcileResponseCurrentReleaseExtendAzureStackFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseExtendAzureStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseExtendAzureStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendAzureStack' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseExtendAzureBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + SyncReconcileResponseCurrentReleaseExtendAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileResponseCurrentReleaseExtendAzureStack$inboundSchema + ).optional(), + }); + +export function syncReconcileResponseCurrentReleaseExtendAzureBindingFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseExtendAzureBinding, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseExtendAzureBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendAzureBinding' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseExtendAzureGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileResponseCurrentReleaseExtendAzureGrantFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseExtendAzureGrant, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseExtendAzureGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendAzureGrant' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseExtendAzure$inboundSchema: + z.ZodType = z.object( + { + binding: z.lazy(() => + SyncReconcileResponseCurrentReleaseExtendAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncReconcileResponseCurrentReleaseExtendAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }, + ); + +export function syncReconcileResponseCurrentReleaseExtendAzureFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseExtendAzure, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseExtendAzure$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendAzure' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseExtendConditionResource$inboundSchema: + z.ZodType< + SyncReconcileResponseCurrentReleaseExtendConditionResource, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); + +export function syncReconcileResponseCurrentReleaseExtendConditionResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseExtendConditionResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseExtendConditionResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendConditionResource' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseExtendResourceConditionUnion$inboundSchema: + z.ZodType< + SyncReconcileResponseCurrentReleaseExtendResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncReconcileResponseCurrentReleaseExtendConditionResource$inboundSchema + ), + z.any(), + ]); + +export function syncReconcileResponseCurrentReleaseExtendResourceConditionUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseExtendResourceConditionUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseExtendResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendResourceConditionUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseExtendGcpResource$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncReconcileResponseCurrentReleaseExtendConditionResource$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); + +export function syncReconcileResponseCurrentReleaseExtendGcpResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseExtendGcpResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseExtendGcpResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendGcpResource' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseExtendCondition$inboundSchema: + z.ZodType = z + .object({ + expression: z.string(), + title: z.string(), + }); + +export function syncReconcileResponseCurrentReleaseExtendConditionFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseExtendCondition, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseExtendCondition$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendCondition' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseExtendConditionUnion$inboundSchema: + z.ZodType = + z.union([ + z.lazy(() => + SyncReconcileResponseCurrentReleaseExtendCondition$inboundSchema + ), + z.any(), + ]); + +export function syncReconcileResponseCurrentReleaseExtendConditionUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseExtendConditionUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseExtendConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendConditionUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseExtendGcpStack$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncReconcileResponseCurrentReleaseExtendCondition$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); + +export function syncReconcileResponseCurrentReleaseExtendGcpStackFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseExtendGcpStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseExtendGcpStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendGcpStack' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseExtendGcpBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + SyncReconcileResponseCurrentReleaseExtendGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileResponseCurrentReleaseExtendGcpStack$inboundSchema + ).optional(), + }); + +export function syncReconcileResponseCurrentReleaseExtendGcpBindingFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseExtendGcpBinding, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseExtendGcpBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendGcpBinding' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseExtendGcpGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileResponseCurrentReleaseExtendGcpGrantFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseExtendGcpGrant, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseExtendGcpGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendGcpGrant' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseExtendGcp$inboundSchema: + z.ZodType = z.object({ + binding: z.lazy(() => + SyncReconcileResponseCurrentReleaseExtendGcpBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncReconcileResponseCurrentReleaseExtendGcpGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncReconcileResponseCurrentReleaseExtendGcpFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseExtendGcp, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseExtendGcp$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendGcp' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseExtendPlatforms$inboundSchema: + z.ZodType = z + .object({ + aws: z.nullable( + z.array(z.lazy(() => + SyncReconcileResponseCurrentReleaseExtendAw$inboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + SyncReconcileResponseCurrentReleaseExtendAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + SyncReconcileResponseCurrentReleaseExtendGcp$inboundSchema + )), + ).optional(), + }); + +export function syncReconcileResponseCurrentReleaseExtendPlatformsFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseExtendPlatforms, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseExtendPlatforms$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendPlatforms' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseExtend$inboundSchema: z.ZodType< + SyncReconcileResponseCurrentReleaseExtend, + unknown +> = z.object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncReconcileResponseCurrentReleaseExtendPlatforms$inboundSchema + ), +}); + +export function syncReconcileResponseCurrentReleaseExtendFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseExtend, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseExtend$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseExtend' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseExtendUnion$inboundSchema: + z.ZodType = z.union([ + z.lazy(() => SyncReconcileResponseCurrentReleaseExtend$inboundSchema), + z.string(), + ]); + +export function syncReconcileResponseCurrentReleaseExtendUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseExtendUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseExtendUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseManagement1$inboundSchema: + z.ZodType = z.object( + { + extend: z.record( + z.string(), + z.array( + z.union([ + z.lazy(() => + SyncReconcileResponseCurrentReleaseExtend$inboundSchema + ), + z.string(), + ]), + ), + ), + }, + ); + +export function syncReconcileResponseCurrentReleaseManagement1FromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseManagement1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseManagement1$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseManagement1' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseManagementUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => + SyncReconcileResponseCurrentReleaseManagement1$inboundSchema + ), + z.lazy(() => + SyncReconcileResponseCurrentReleaseManagement2$inboundSchema + ), + SyncReconcileResponseCurrentReleaseManagementEnum$inboundSchema, + ]); + +export function syncReconcileResponseCurrentReleaseManagementUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseManagementUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseManagementUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseManagementUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseProfileAwResource$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); + +export function syncReconcileResponseCurrentReleaseProfileAwResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseProfileAwResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseProfileAwResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileAwResource' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseProfileAwStack$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); + +export function syncReconcileResponseCurrentReleaseProfileAwStackFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseProfileAwStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseProfileAwStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileAwStack' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseProfileAwBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + SyncReconcileResponseCurrentReleaseProfileAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileResponseCurrentReleaseProfileAwStack$inboundSchema + ).optional(), + }); + +export function syncReconcileResponseCurrentReleaseProfileAwBindingFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseProfileAwBinding, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseProfileAwBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileAwBinding' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseProfileEffect$inboundSchema: + z.ZodEnum = z.enum( + SyncReconcileResponseCurrentReleaseProfileEffect, + ); + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseProfileAwGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileResponseCurrentReleaseProfileAwGrantFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseProfileAwGrant, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseProfileAwGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileAwGrant' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseProfileAw$inboundSchema: + z.ZodType = z.object({ + binding: z.lazy(() => + SyncReconcileResponseCurrentReleaseProfileAwBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: SyncReconcileResponseCurrentReleaseProfileEffect$inboundSchema + .optional(), + grant: z.lazy(() => + SyncReconcileResponseCurrentReleaseProfileAwGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncReconcileResponseCurrentReleaseProfileAwFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseProfileAw, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseProfileAw$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileAw' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseProfileAzureResource$inboundSchema: + z.ZodType = + z.object({ + scope: z.string(), + }); + +export function syncReconcileResponseCurrentReleaseProfileAzureResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseProfileAzureResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseProfileAzureResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileAzureResource' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseProfileAzureStack$inboundSchema: + z.ZodType = z + .object({ + scope: z.string(), + }); + +export function syncReconcileResponseCurrentReleaseProfileAzureStackFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseProfileAzureStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseProfileAzureStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileAzureStack' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseProfileAzureBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + SyncReconcileResponseCurrentReleaseProfileAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileResponseCurrentReleaseProfileAzureStack$inboundSchema + ).optional(), + }); + +export function syncReconcileResponseCurrentReleaseProfileAzureBindingFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseProfileAzureBinding, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseProfileAzureBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileAzureBinding' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseProfileAzureGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileResponseCurrentReleaseProfileAzureGrantFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseProfileAzureGrant, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseProfileAzureGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileAzureGrant' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseProfileAzure$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + SyncReconcileResponseCurrentReleaseProfileAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncReconcileResponseCurrentReleaseProfileAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncReconcileResponseCurrentReleaseProfileAzureFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseProfileAzure, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseProfileAzure$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileAzure' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseProfileConditionResource$inboundSchema: + z.ZodType< + SyncReconcileResponseCurrentReleaseProfileConditionResource, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); + +export function syncReconcileResponseCurrentReleaseProfileConditionResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseProfileConditionResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseProfileConditionResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileConditionResource' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseProfileResourceConditionUnion$inboundSchema: + z.ZodType< + SyncReconcileResponseCurrentReleaseProfileResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncReconcileResponseCurrentReleaseProfileConditionResource$inboundSchema + ), + z.any(), + ]); + +export function syncReconcileResponseCurrentReleaseProfileResourceConditionUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseProfileResourceConditionUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseProfileResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileResourceConditionUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseProfileGcpResource$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncReconcileResponseCurrentReleaseProfileConditionResource$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); + +export function syncReconcileResponseCurrentReleaseProfileGcpResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseProfileGcpResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseProfileGcpResource$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileGcpResource' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseProfileCondition$inboundSchema: + z.ZodType = z + .object({ + expression: z.string(), + title: z.string(), + }); + +export function syncReconcileResponseCurrentReleaseProfileConditionFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseProfileCondition, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseProfileCondition$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileCondition' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseProfileConditionUnion$inboundSchema: + z.ZodType = + z.union([ + z.lazy(() => + SyncReconcileResponseCurrentReleaseProfileCondition$inboundSchema + ), + z.any(), + ]); + +export function syncReconcileResponseCurrentReleaseProfileConditionUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseProfileConditionUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseProfileConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileConditionUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseProfileGcpStack$inboundSchema: + z.ZodType = z + .object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncReconcileResponseCurrentReleaseProfileCondition$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); + +export function syncReconcileResponseCurrentReleaseProfileGcpStackFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseProfileGcpStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseProfileGcpStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileGcpStack' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseProfileGcpBinding$inboundSchema: + z.ZodType = z + .object({ + resource: z.lazy(() => + SyncReconcileResponseCurrentReleaseProfileGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileResponseCurrentReleaseProfileGcpStack$inboundSchema + ).optional(), + }); + +export function syncReconcileResponseCurrentReleaseProfileGcpBindingFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseProfileGcpBinding, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseProfileGcpBinding$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileGcpBinding' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseProfileGcpGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileResponseCurrentReleaseProfileGcpGrantFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseProfileGcpGrant, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseProfileGcpGrant$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileGcpGrant' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseProfileGcp$inboundSchema: + z.ZodType = z.object({ + binding: z.lazy(() => + SyncReconcileResponseCurrentReleaseProfileGcpBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncReconcileResponseCurrentReleaseProfileGcpGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); + +export function syncReconcileResponseCurrentReleaseProfileGcpFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseProfileGcp, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseProfileGcp$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileGcp' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseProfilePlatforms$inboundSchema: + z.ZodType = z + .object({ + aws: z.nullable( + z.array(z.lazy(() => + SyncReconcileResponseCurrentReleaseProfileAw$inboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + SyncReconcileResponseCurrentReleaseProfileAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + SyncReconcileResponseCurrentReleaseProfileGcp$inboundSchema + )), + ).optional(), + }); + +export function syncReconcileResponseCurrentReleaseProfilePlatformsFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseProfilePlatforms, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseProfilePlatforms$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseProfilePlatforms' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseProfile$inboundSchema: + z.ZodType = z.object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncReconcileResponseCurrentReleaseProfilePlatforms$inboundSchema + ), + }); + +export function syncReconcileResponseCurrentReleaseProfileFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseProfile, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseProfile$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseProfile' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleaseProfileUnion$inboundSchema: + z.ZodType = z.union( + [ + z.lazy(() => SyncReconcileResponseCurrentReleaseProfile$inboundSchema), + z.string(), + ], + ); + +export function syncReconcileResponseCurrentReleaseProfileUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseCurrentReleaseProfileUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentReleaseProfileUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseCurrentReleasePermissions$inboundSchema: + z.ZodType = z.object( + { + management: z.union([ + z.lazy(() => + SyncReconcileResponseCurrentReleaseManagement1$inboundSchema + ), + z.lazy(() => + SyncReconcileResponseCurrentReleaseManagement2$inboundSchema + ), + SyncReconcileResponseCurrentReleaseManagementEnum$inboundSchema, + ]).optional(), + profiles: z.record( + z.string(), + z.record( + z.string(), + z.array( + z.union([ + z.lazy(() => + SyncReconcileResponseCurrentReleaseProfile$inboundSchema + ), + z.string(), + ]), + ), + ), + ), + }, + ); -export function syncReconcileResponseCurrentReleaseDefaultStringListFromJSON( +export function syncReconcileResponseCurrentReleasePermissionsFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseDefaultStringList, + SyncReconcileResponseCurrentReleasePermissions, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseDefaultStringList$inboundSchema.parse( + SyncReconcileResponseCurrentReleasePermissions$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseDefaultStringList' from JSON`, + `Failed to parse 'SyncReconcileResponseCurrentReleasePermissions' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseTypeBoolean$inboundSchema: - z.ZodEnum = z.enum( - SyncReconcileResponseCurrentReleaseTypeBoolean, - ); - -/** @internal */ -export const SyncReconcileResponseCurrentReleaseDefaultBoolean$inboundSchema: - z.ZodType = z - .object({ - type: SyncReconcileResponseCurrentReleaseTypeBoolean$inboundSchema, - value: z.boolean(), - }); +export const SyncReconcileResponseCurrentReleaseConfig$inboundSchema: z.ZodType< + SyncReconcileResponseCurrentReleaseConfig, + unknown +> = collectExtraKeys$( + z.object({ + id: z.string(), + type: z.string(), + }).catchall(z.any()), + "additionalProperties", + true, +); -export function syncReconcileResponseCurrentReleaseDefaultBooleanFromJSON( +export function syncReconcileResponseCurrentReleaseConfigFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseDefaultBoolean, + SyncReconcileResponseCurrentReleaseConfig, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseDefaultBoolean$inboundSchema.parse( + SyncReconcileResponseCurrentReleaseConfig$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseDefaultBoolean' from JSON`, + `Failed to parse 'SyncReconcileResponseCurrentReleaseConfig' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseTypeNumber$inboundSchema: - z.ZodEnum = z.enum( - SyncReconcileResponseCurrentReleaseTypeNumber, - ); - -/** @internal */ -export const SyncReconcileResponseCurrentReleaseDefaultNumber$inboundSchema: - z.ZodType = z - .object({ - type: SyncReconcileResponseCurrentReleaseTypeNumber$inboundSchema, - value: z.string(), - }); +export const SyncReconcileResponseCurrentReleaseDependency$inboundSchema: + z.ZodType = z.object({ + id: z.string(), + type: z.string(), + }); -export function syncReconcileResponseCurrentReleaseDefaultNumberFromJSON( +export function syncReconcileResponseCurrentReleaseDependencyFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseDefaultNumber, + SyncReconcileResponseCurrentReleaseDependency, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseDefaultNumber$inboundSchema.parse( + SyncReconcileResponseCurrentReleaseDependency$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseDefaultNumber' from JSON`, + `Failed to parse 'SyncReconcileResponseCurrentReleaseDependency' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseTypeString$inboundSchema: - z.ZodEnum = z.enum( - SyncReconcileResponseCurrentReleaseTypeString, +export const SyncReconcileResponseCurrentReleaseLifecycle$inboundSchema: + z.ZodEnum = z.enum( + SyncReconcileResponseCurrentReleaseLifecycle, ); /** @internal */ -export const SyncReconcileResponseCurrentReleaseDefaultString$inboundSchema: - z.ZodType = z - .object({ - type: SyncReconcileResponseCurrentReleaseTypeString$inboundSchema, - value: z.string(), - }); +export const SyncReconcileResponseCurrentReleaseResources$inboundSchema: + z.ZodType = z.object({ + config: z.lazy(() => + SyncReconcileResponseCurrentReleaseConfig$inboundSchema + ), + dependencies: z.array( + z.lazy(() => SyncReconcileResponseCurrentReleaseDependency$inboundSchema), + ), + enabledWhen: z.nullable(z.string()).optional(), + lifecycle: SyncReconcileResponseCurrentReleaseLifecycle$inboundSchema, + remoteAccess: z.boolean().optional(), + }); -export function syncReconcileResponseCurrentReleaseDefaultStringFromJSON( +export function syncReconcileResponseCurrentReleaseResourcesFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseDefaultString, + SyncReconcileResponseCurrentReleaseResources, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseDefaultString$inboundSchema.parse( + SyncReconcileResponseCurrentReleaseResources$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseDefaultString' from JSON`, + `Failed to parse 'SyncReconcileResponseCurrentReleaseResources' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseDefaultUnion$inboundSchema: - z.ZodType = z.union( - [ - z.lazy(() => - SyncReconcileResponseCurrentReleaseDefaultString$inboundSchema - ), - z.lazy(() => - SyncReconcileResponseCurrentReleaseDefaultNumber$inboundSchema - ), - z.lazy(() => - SyncReconcileResponseCurrentReleaseDefaultBoolean$inboundSchema - ), - z.lazy(() => - SyncReconcileResponseCurrentReleaseDefaultStringList$inboundSchema - ), - z.any(), - ], - ); +export const SyncReconcileResponseCurrentReleaseSupportedPlatform$inboundSchema: + z.ZodEnum = z + .enum(SyncReconcileResponseCurrentReleaseSupportedPlatform); -export function syncReconcileResponseCurrentReleaseDefaultUnionFromJSON( +/** @internal */ +export const SyncReconcileResponseCurrentReleaseStack$inboundSchema: z.ZodType< + SyncReconcileResponseCurrentReleaseStack, + unknown +> = z.object({ + id: z.string(), + inputs: z.array( + z.lazy(() => SyncReconcileResponseCurrentReleaseInput$inboundSchema), + ).optional(), + permissions: z.lazy(() => + SyncReconcileResponseCurrentReleasePermissions$inboundSchema + ).optional(), + resources: z.record( + z.string(), + z.lazy(() => SyncReconcileResponseCurrentReleaseResources$inboundSchema), + ), + supportedPlatforms: z.nullable( + z.array(SyncReconcileResponseCurrentReleaseSupportedPlatform$inboundSchema), + ).optional(), +}); + +export function syncReconcileResponseCurrentReleaseStackFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseDefaultUnion, + SyncReconcileResponseCurrentReleaseStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseDefaultUnion$inboundSchema.parse( + SyncReconcileResponseCurrentReleaseStack$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseDefaultUnion' from JSON`, + `Failed to parse 'SyncReconcileResponseCurrentReleaseStack' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseTypeEnvEnum$inboundSchema: - z.ZodEnum = z.enum( - SyncReconcileResponseCurrentReleaseTypeEnvEnum, +export const SyncReconcileResponseCurrentRelease$inboundSchema: z.ZodType< + SyncReconcileResponseCurrentRelease, + unknown +> = z.object({ + description: z.nullable(z.string()).optional(), + releaseId: z.nullable(z.string()).optional(), + stack: z.lazy(() => SyncReconcileResponseCurrentReleaseStack$inboundSchema), + version: z.nullable(z.string()).optional(), +}); + +export function syncReconcileResponseCurrentReleaseFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseCurrentRelease$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponseCurrentRelease' from JSON`, ); +} /** @internal */ -export const SyncReconcileResponseCurrentReleaseTypeUnion$inboundSchema: - z.ZodType = z.union([ - SyncReconcileResponseCurrentReleaseTypeEnvEnum$inboundSchema, - z.any(), - ]); +export const SyncReconcileResponseCurrentReleaseUnion$inboundSchema: z.ZodType< + SyncReconcileResponseCurrentReleaseUnion, + unknown +> = z.union([ + z.lazy(() => SyncReconcileResponseCurrentRelease$inboundSchema), + z.any(), +]); -export function syncReconcileResponseCurrentReleaseTypeUnionFromJSON( +export function syncReconcileResponseCurrentReleaseUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseTypeUnion, + SyncReconcileResponseCurrentReleaseUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseTypeUnion$inboundSchema.parse( + SyncReconcileResponseCurrentReleaseUnion$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseTypeUnion' from JSON`, + `Failed to parse 'SyncReconcileResponseCurrentReleaseUnion' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseEnv$inboundSchema: z.ZodType< - SyncReconcileResponseCurrentReleaseEnv, +export const SyncReconcileResponsePlatformTest$inboundSchema: z.ZodEnum< + typeof SyncReconcileResponsePlatformTest +> = z.enum(SyncReconcileResponsePlatformTest); + +/** @internal */ +export const SyncReconcileResponseEnvironmentInfoTest$inboundSchema: z.ZodType< + SyncReconcileResponseEnvironmentInfoTest, unknown > = z.object({ - name: z.string(), - targetResources: z.nullable(z.array(z.string())).optional(), - type: z.nullable( - z.union([ - SyncReconcileResponseCurrentReleaseTypeEnvEnum$inboundSchema, - z.any(), - ]), - ).optional(), + testId: z.string(), + platform: SyncReconcileResponsePlatformTest$inboundSchema, }); -export function syncReconcileResponseCurrentReleaseEnvFromJSON( +export function syncReconcileResponseEnvironmentInfoTestFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncReconcileResponseEnvironmentInfoTest, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseEnv$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncReconcileResponseCurrentReleaseEnv' from JSON`, + SyncReconcileResponseEnvironmentInfoTest$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseEnvironmentInfoTest' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseKind$inboundSchema: z.ZodEnum< - typeof SyncReconcileResponseCurrentReleaseKind -> = z.enum(SyncReconcileResponseCurrentReleaseKind); - -/** @internal */ -export const SyncReconcileResponseCurrentReleasePlatform$inboundSchema: - z.ZodEnum = z.enum( - SyncReconcileResponseCurrentReleasePlatform, - ); - -/** @internal */ -export const SyncReconcileResponseCurrentReleaseProvidedBy$inboundSchema: - z.ZodEnum = z.enum( - SyncReconcileResponseCurrentReleaseProvidedBy, - ); +export const SyncReconcileResponsePlatformLocal$inboundSchema: z.ZodEnum< + typeof SyncReconcileResponsePlatformLocal +> = z.enum(SyncReconcileResponsePlatformLocal); /** @internal */ -export const SyncReconcileResponseCurrentReleaseValidation$inboundSchema: - z.ZodType = z.object({ - format: z.nullable(z.string()).optional(), - max: z.nullable(z.string()).optional(), - maxItems: z.nullable(z.int()).optional(), - maxLength: z.nullable(z.int()).optional(), - min: z.nullable(z.string()).optional(), - minItems: z.nullable(z.int()).optional(), - minLength: z.nullable(z.int()).optional(), - pattern: z.nullable(z.string()).optional(), - values: z.nullable(z.array(z.string())).optional(), - }); +export const SyncReconcileResponseEnvironmentInfoLocal$inboundSchema: z.ZodType< + SyncReconcileResponseEnvironmentInfoLocal, + unknown +> = z.object({ + arch: z.string(), + hostname: z.string(), + os: z.string(), + platform: SyncReconcileResponsePlatformLocal$inboundSchema, +}); -export function syncReconcileResponseCurrentReleaseValidationFromJSON( +export function syncReconcileResponseEnvironmentInfoLocalFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseValidation, + SyncReconcileResponseEnvironmentInfoLocal, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseValidation$inboundSchema.parse( + SyncReconcileResponseEnvironmentInfoLocal$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseValidation' from JSON`, + `Failed to parse 'SyncReconcileResponseEnvironmentInfoLocal' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseValidationUnion$inboundSchema: - z.ZodType = z - .union([ - z.lazy(() => SyncReconcileResponseCurrentReleaseValidation$inboundSchema), - z.any(), - ]); +export const SyncReconcileResponseCurrentPlatformAzure$inboundSchema: z.ZodEnum< + typeof SyncReconcileResponseCurrentPlatformAzure +> = z.enum(SyncReconcileResponseCurrentPlatformAzure); -export function syncReconcileResponseCurrentReleaseValidationUnionFromJSON( +/** @internal */ +export const SyncReconcileResponseEnvironmentInfoAzure$inboundSchema: z.ZodType< + SyncReconcileResponseEnvironmentInfoAzure, + unknown +> = z.object({ + location: z.string(), + subscriptionId: z.string(), + tenantId: z.string(), + platform: SyncReconcileResponseCurrentPlatformAzure$inboundSchema, +}); + +export function syncReconcileResponseEnvironmentInfoAzureFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseValidationUnion, + SyncReconcileResponseEnvironmentInfoAzure, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseValidationUnion$inboundSchema.parse( + SyncReconcileResponseEnvironmentInfoAzure$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseValidationUnion' from JSON`, + `Failed to parse 'SyncReconcileResponseEnvironmentInfoAzure' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseInput$inboundSchema: z.ZodType< - SyncReconcileResponseCurrentReleaseInput, +export const SyncReconcileResponseCurrentPlatformGcp$inboundSchema: z.ZodEnum< + typeof SyncReconcileResponseCurrentPlatformGcp +> = z.enum(SyncReconcileResponseCurrentPlatformGcp); + +/** @internal */ +export const SyncReconcileResponseEnvironmentInfoGcp$inboundSchema: z.ZodType< + SyncReconcileResponseEnvironmentInfoGcp, unknown > = z.object({ - default: z.nullable( - z.union([ - z.lazy(() => - SyncReconcileResponseCurrentReleaseDefaultString$inboundSchema - ), - z.lazy(() => - SyncReconcileResponseCurrentReleaseDefaultNumber$inboundSchema - ), - z.lazy(() => - SyncReconcileResponseCurrentReleaseDefaultBoolean$inboundSchema - ), - z.lazy(() => - SyncReconcileResponseCurrentReleaseDefaultStringList$inboundSchema - ), - z.any(), - ]), - ).optional(), - description: z.string(), - env: z.array( - z.lazy(() => SyncReconcileResponseCurrentReleaseEnv$inboundSchema), - ).optional(), - id: z.string(), - kind: SyncReconcileResponseCurrentReleaseKind$inboundSchema, - label: z.string(), - placeholder: z.nullable(z.string()).optional(), - platforms: z.nullable( - z.array(SyncReconcileResponseCurrentReleasePlatform$inboundSchema), - ).optional(), - providedBy: z.array( - SyncReconcileResponseCurrentReleaseProvidedBy$inboundSchema, - ), - required: z.boolean(), - validation: z.nullable( - z.union([ - z.lazy(() => SyncReconcileResponseCurrentReleaseValidation$inboundSchema), - z.any(), - ]), - ).optional(), + projectId: z.string(), + projectNumber: z.string(), + region: z.string(), + platform: SyncReconcileResponseCurrentPlatformGcp$inboundSchema, }); -export function syncReconcileResponseCurrentReleaseInputFromJSON( +export function syncReconcileResponseEnvironmentInfoGcpFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseInput, + SyncReconcileResponseEnvironmentInfoGcp, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseInput$inboundSchema.parse( + SyncReconcileResponseEnvironmentInfoGcp$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseInput' from JSON`, + `Failed to parse 'SyncReconcileResponseEnvironmentInfoGcp' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseManagementEnum$inboundSchema: - z.ZodEnum = z.enum( - SyncReconcileResponseCurrentReleaseManagementEnum, - ); +export const SyncReconcileResponseCurrentPlatformAws$inboundSchema: z.ZodEnum< + typeof SyncReconcileResponseCurrentPlatformAws +> = z.enum(SyncReconcileResponseCurrentPlatformAws); /** @internal */ -export const SyncReconcileResponseCurrentReleaseOverrideAwResource$inboundSchema: - z.ZodType = z - .object({ - condition: z.nullable( - z.record(z.string(), z.record(z.string(), z.string())), - ).optional(), - resources: z.array(z.string()), - }); +export const SyncReconcileResponseEnvironmentInfoAws$inboundSchema: z.ZodType< + SyncReconcileResponseEnvironmentInfoAws, + unknown +> = z.object({ + accountId: z.string(), + region: z.string(), + platform: SyncReconcileResponseCurrentPlatformAws$inboundSchema, +}); -export function syncReconcileResponseCurrentReleaseOverrideAwResourceFromJSON( +export function syncReconcileResponseEnvironmentInfoAwsFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseOverrideAwResource, + SyncReconcileResponseEnvironmentInfoAws, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseOverrideAwResource$inboundSchema.parse( + SyncReconcileResponseEnvironmentInfoAws$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideAwResource' from JSON`, + `Failed to parse 'SyncReconcileResponseEnvironmentInfoAws' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseOverrideAwStack$inboundSchema: - z.ZodType = z - .object({ - condition: z.nullable( - z.record(z.string(), z.record(z.string(), z.string())), - ).optional(), - resources: z.array(z.string()), - }); +export const SyncReconcileResponseEnvironmentInfoUnion$inboundSchema: z.ZodType< + SyncReconcileResponseEnvironmentInfoUnion, + unknown +> = z.union([ + z.lazy(() => SyncReconcileResponseEnvironmentInfoGcp$inboundSchema), + z.lazy(() => SyncReconcileResponseEnvironmentInfoAzure$inboundSchema), + z.lazy(() => SyncReconcileResponseEnvironmentInfoLocal$inboundSchema), + z.lazy(() => SyncReconcileResponseEnvironmentInfoAws$inboundSchema), + z.lazy(() => SyncReconcileResponseEnvironmentInfoTest$inboundSchema), + z.any(), +]); -export function syncReconcileResponseCurrentReleaseOverrideAwStackFromJSON( +export function syncReconcileResponseEnvironmentInfoUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseOverrideAwStack, + SyncReconcileResponseEnvironmentInfoUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseOverrideAwStack$inboundSchema.parse( + SyncReconcileResponseEnvironmentInfoUnion$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideAwStack' from JSON`, + `Failed to parse 'SyncReconcileResponseEnvironmentInfoUnion' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseOverrideAwBinding$inboundSchema: - z.ZodType = z - .object({ - resource: z.lazy(() => - SyncReconcileResponseCurrentReleaseOverrideAwResource$inboundSchema - ).optional(), - stack: z.lazy(() => - SyncReconcileResponseCurrentReleaseOverrideAwStack$inboundSchema - ).optional(), - }); +export const SyncReconcileResponseError$inboundSchema: z.ZodType< + SyncReconcileResponseError, + unknown +> = z.object({ + code: z.string(), + context: z.nullable(z.any()).optional(), + hint: z.nullable(z.string()).optional(), + httpStatusCode: z.nullable(z.int()).optional(), + internal: z.boolean(), + message: z.string(), + retryable: z.boolean().default(false), + source: z.nullable(z.any()).optional(), +}); -export function syncReconcileResponseCurrentReleaseOverrideAwBindingFromJSON( +export function syncReconcileResponseErrorFromJSON( jsonString: string, -): SafeParseResult< - SyncReconcileResponseCurrentReleaseOverrideAwBinding, - SDKValidationError -> { +): SafeParseResult { return safeParse( jsonString, - (x) => - SyncReconcileResponseCurrentReleaseOverrideAwBinding$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideAwBinding' from JSON`, + (x) => SyncReconcileResponseError$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponseError' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseOverrideEffect$inboundSchema: - z.ZodEnum = z.enum( - SyncReconcileResponseCurrentReleaseOverrideEffect, - ); - -/** @internal */ -export const SyncReconcileResponseCurrentReleaseOverrideAwGrant$inboundSchema: - z.ZodType = z - .object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), - }); +export const SyncReconcileResponseErrorUnion$inboundSchema: z.ZodType< + SyncReconcileResponseErrorUnion, + unknown +> = z.union([z.lazy(() => SyncReconcileResponseError$inboundSchema), z.any()]); -export function syncReconcileResponseCurrentReleaseOverrideAwGrantFromJSON( +export function syncReconcileResponseErrorUnionFromJSON( jsonString: string, -): SafeParseResult< - SyncReconcileResponseCurrentReleaseOverrideAwGrant, - SDKValidationError -> { +): SafeParseResult { return safeParse( jsonString, - (x) => - SyncReconcileResponseCurrentReleaseOverrideAwGrant$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideAwGrant' from JSON`, + (x) => SyncReconcileResponseErrorUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponseErrorUnion' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseOverrideAw$inboundSchema: - z.ZodType = z.object({ - binding: z.lazy(() => - SyncReconcileResponseCurrentReleaseOverrideAwBinding$inboundSchema - ), - description: z.nullable(z.string()).optional(), - effect: SyncReconcileResponseCurrentReleaseOverrideEffect$inboundSchema - .optional(), - grant: z.lazy(() => - SyncReconcileResponseCurrentReleaseOverrideAwGrant$inboundSchema - ), - label: z.nullable(z.string()).optional(), +export const SyncReconcileResponseCurrentPlatform$inboundSchema: z.ZodEnum< + typeof SyncReconcileResponseCurrentPlatform +> = z.enum(SyncReconcileResponseCurrentPlatform); + +/** @internal */ +export const SyncReconcileResponseInitialSetupAuthority$inboundSchema: + z.ZodEnum = z.enum( + SyncReconcileResponseInitialSetupAuthority, + ); + +/** @internal */ +export const SyncReconcileResponsePendingPreparedStackTypeStringList$inboundSchema: + z.ZodEnum = z + .enum(SyncReconcileResponsePendingPreparedStackTypeStringList); + +/** @internal */ +export const SyncReconcileResponsePendingPreparedStackDefaultStringList$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackDefaultStringList, + unknown + > = z.object({ + type: SyncReconcileResponsePendingPreparedStackTypeStringList$inboundSchema, + value: z.array(z.string()), }); -export function syncReconcileResponseCurrentReleaseOverrideAwFromJSON( +export function syncReconcileResponsePendingPreparedStackDefaultStringListFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseOverrideAw, + SyncReconcileResponsePendingPreparedStackDefaultStringList, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseOverrideAw$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideAw' from JSON`, + SyncReconcileResponsePendingPreparedStackDefaultStringList$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackDefaultStringList' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseOverrideAzureResource$inboundSchema: - z.ZodType = +export const SyncReconcileResponsePendingPreparedStackTypeBoolean$inboundSchema: + z.ZodEnum = z + .enum(SyncReconcileResponsePendingPreparedStackTypeBoolean); + +/** @internal */ +export const SyncReconcileResponsePendingPreparedStackDefaultBoolean$inboundSchema: + z.ZodType = z.object({ - scope: z.string(), + type: SyncReconcileResponsePendingPreparedStackTypeBoolean$inboundSchema, + value: z.boolean(), }); -export function syncReconcileResponseCurrentReleaseOverrideAzureResourceFromJSON( +export function syncReconcileResponsePendingPreparedStackDefaultBooleanFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseOverrideAzureResource, + SyncReconcileResponsePendingPreparedStackDefaultBoolean, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseOverrideAzureResource$inboundSchema + SyncReconcileResponsePendingPreparedStackDefaultBoolean$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideAzureResource' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackDefaultBoolean' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseOverrideAzureStack$inboundSchema: - z.ZodType = z +export const SyncReconcileResponsePendingPreparedStackTypeNumber$inboundSchema: + z.ZodEnum = z + .enum(SyncReconcileResponsePendingPreparedStackTypeNumber); + +/** @internal */ +export const SyncReconcileResponsePendingPreparedStackDefaultNumber$inboundSchema: + z.ZodType = z .object({ - scope: z.string(), + type: SyncReconcileResponsePendingPreparedStackTypeNumber$inboundSchema, + value: z.string(), }); -export function syncReconcileResponseCurrentReleaseOverrideAzureStackFromJSON( +export function syncReconcileResponsePendingPreparedStackDefaultNumberFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseOverrideAzureStack, + SyncReconcileResponsePendingPreparedStackDefaultNumber, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseOverrideAzureStack$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideAzureStack' from JSON`, + SyncReconcileResponsePendingPreparedStackDefaultNumber$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackDefaultNumber' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseOverrideAzureBinding$inboundSchema: - z.ZodType = - z.object({ - resource: z.lazy(() => - SyncReconcileResponseCurrentReleaseOverrideAzureResource$inboundSchema - ).optional(), - stack: z.lazy(() => - SyncReconcileResponseCurrentReleaseOverrideAzureStack$inboundSchema - ).optional(), +export const SyncReconcileResponsePendingPreparedStackTypeString$inboundSchema: + z.ZodEnum = z + .enum(SyncReconcileResponsePendingPreparedStackTypeString); + +/** @internal */ +export const SyncReconcileResponsePendingPreparedStackDefaultString$inboundSchema: + z.ZodType = z + .object({ + type: SyncReconcileResponsePendingPreparedStackTypeString$inboundSchema, + value: z.string(), }); -export function syncReconcileResponseCurrentReleaseOverrideAzureBindingFromJSON( +export function syncReconcileResponsePendingPreparedStackDefaultStringFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseOverrideAzureBinding, + SyncReconcileResponsePendingPreparedStackDefaultString, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseOverrideAzureBinding$inboundSchema + SyncReconcileResponsePendingPreparedStackDefaultString$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideAzureBinding' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackDefaultString' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseOverrideAzureGrant$inboundSchema: - z.ZodType = z - .object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), - }); +export const SyncReconcileResponsePendingPreparedStackDefaultUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => + SyncReconcileResponsePendingPreparedStackDefaultString$inboundSchema + ), + z.lazy(() => + SyncReconcileResponsePendingPreparedStackDefaultNumber$inboundSchema + ), + z.lazy(() => + SyncReconcileResponsePendingPreparedStackDefaultBoolean$inboundSchema + ), + z.lazy(() => + SyncReconcileResponsePendingPreparedStackDefaultStringList$inboundSchema + ), + z.any(), + ]); -export function syncReconcileResponseCurrentReleaseOverrideAzureGrantFromJSON( +export function syncReconcileResponsePendingPreparedStackDefaultUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseOverrideAzureGrant, + SyncReconcileResponsePendingPreparedStackDefaultUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseOverrideAzureGrant$inboundSchema.parse( + SyncReconcileResponsePendingPreparedStackDefaultUnion$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideAzureGrant' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackDefaultUnion' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseOverrideAzure$inboundSchema: - z.ZodType = z - .object({ - binding: z.lazy(() => - SyncReconcileResponseCurrentReleaseOverrideAzureBinding$inboundSchema - ), - description: z.nullable(z.string()).optional(), - grant: z.lazy(() => - SyncReconcileResponseCurrentReleaseOverrideAzureGrant$inboundSchema - ), - label: z.nullable(z.string()).optional(), - }); +export const SyncReconcileResponsePendingPreparedStackTypeEnvEnum$inboundSchema: + z.ZodEnum = z + .enum(SyncReconcileResponsePendingPreparedStackTypeEnvEnum); -export function syncReconcileResponseCurrentReleaseOverrideAzureFromJSON( +/** @internal */ +export const SyncReconcileResponsePendingPreparedStackTypeUnion$inboundSchema: + z.ZodType = z + .union([ + SyncReconcileResponsePendingPreparedStackTypeEnvEnum$inboundSchema, + z.any(), + ]); + +export function syncReconcileResponsePendingPreparedStackTypeUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseOverrideAzure, + SyncReconcileResponsePendingPreparedStackTypeUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseOverrideAzure$inboundSchema.parse( + SyncReconcileResponsePendingPreparedStackTypeUnion$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideAzure' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackTypeUnion' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseOverrideConditionResource$inboundSchema: - z.ZodType< - SyncReconcileResponseCurrentReleaseOverrideConditionResource, - unknown - > = z.object({ - expression: z.string(), - title: z.string(), +export const SyncReconcileResponsePendingPreparedStackEnv$inboundSchema: + z.ZodType = z.object({ + name: z.string(), + targetResources: z.nullable(z.array(z.string())).optional(), + type: z.nullable( + z.union([ + SyncReconcileResponsePendingPreparedStackTypeEnvEnum$inboundSchema, + z.any(), + ]), + ).optional(), }); -export function syncReconcileResponseCurrentReleaseOverrideConditionResourceFromJSON( +export function syncReconcileResponsePendingPreparedStackEnvFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseOverrideConditionResource, + SyncReconcileResponsePendingPreparedStackEnv, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseOverrideConditionResource$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideConditionResource' from JSON`, + SyncReconcileResponsePendingPreparedStackEnv$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackEnv' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseOverrideResourceConditionUnion$inboundSchema: - z.ZodType< - SyncReconcileResponseCurrentReleaseOverrideResourceConditionUnion, - unknown - > = z.union([ - z.lazy(() => - SyncReconcileResponseCurrentReleaseOverrideConditionResource$inboundSchema - ), - z.any(), - ]); +export const SyncReconcileResponsePendingPreparedStackKind$inboundSchema: + z.ZodEnum = z.enum( + SyncReconcileResponsePendingPreparedStackKind, + ); -export function syncReconcileResponseCurrentReleaseOverrideResourceConditionUnionFromJSON( +/** @internal */ +export const SyncReconcileResponsePendingPreparedStackPlatform$inboundSchema: + z.ZodEnum = z.enum( + SyncReconcileResponsePendingPreparedStackPlatform, + ); + +/** @internal */ +export const SyncReconcileResponsePendingPreparedStackProvidedBy$inboundSchema: + z.ZodEnum = z + .enum(SyncReconcileResponsePendingPreparedStackProvidedBy); + +/** @internal */ +export const SyncReconcileResponsePendingPreparedStackValidation$inboundSchema: + z.ZodType = z + .object({ + format: z.nullable(z.string()).optional(), + max: z.nullable(z.string()).optional(), + maxItems: z.nullable(z.int()).optional(), + maxLength: z.nullable(z.int()).optional(), + min: z.nullable(z.string()).optional(), + minItems: z.nullable(z.int()).optional(), + minLength: z.nullable(z.int()).optional(), + pattern: z.nullable(z.string()).optional(), + values: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileResponsePendingPreparedStackValidationFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseOverrideResourceConditionUnion, + SyncReconcileResponsePendingPreparedStackValidation, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseOverrideResourceConditionUnion$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideResourceConditionUnion' from JSON`, + SyncReconcileResponsePendingPreparedStackValidation$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackValidation' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseOverrideGcpResource$inboundSchema: - z.ZodType = z - .object({ - condition: z.nullable( - z.union([ - z.lazy(() => - SyncReconcileResponseCurrentReleaseOverrideConditionResource$inboundSchema - ), - z.any(), - ]), - ).optional(), - scope: z.string(), - }); +export const SyncReconcileResponsePendingPreparedStackValidationUnion$inboundSchema: + z.ZodType = + z.union([ + z.lazy(() => + SyncReconcileResponsePendingPreparedStackValidation$inboundSchema + ), + z.any(), + ]); -export function syncReconcileResponseCurrentReleaseOverrideGcpResourceFromJSON( +export function syncReconcileResponsePendingPreparedStackValidationUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseOverrideGcpResource, + SyncReconcileResponsePendingPreparedStackValidationUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseOverrideGcpResource$inboundSchema + SyncReconcileResponsePendingPreparedStackValidationUnion$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideGcpResource' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackValidationUnion' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseOverrideCondition$inboundSchema: - z.ZodType = z - .object({ - expression: z.string(), - title: z.string(), - }); +export const SyncReconcileResponsePendingPreparedStackInput$inboundSchema: + z.ZodType = z.object( + { + default: z.nullable(z.union([ + z.lazy(() => + SyncReconcileResponsePendingPreparedStackDefaultString$inboundSchema + ), + z.lazy(() => + SyncReconcileResponsePendingPreparedStackDefaultNumber$inboundSchema + ), + z.lazy(() => + SyncReconcileResponsePendingPreparedStackDefaultBoolean$inboundSchema + ), + z.lazy(() => + SyncReconcileResponsePendingPreparedStackDefaultStringList$inboundSchema + ), + z.any(), + ])).optional(), + description: z.string(), + env: z.array(z.lazy(() => + SyncReconcileResponsePendingPreparedStackEnv$inboundSchema + )).optional(), + id: z.string(), + kind: SyncReconcileResponsePendingPreparedStackKind$inboundSchema, + label: z.string(), + placeholder: z.nullable(z.string()).optional(), + platforms: z.nullable( + z.array( + SyncReconcileResponsePendingPreparedStackPlatform$inboundSchema, + ), + ).optional(), + providedBy: z.array( + SyncReconcileResponsePendingPreparedStackProvidedBy$inboundSchema, + ), + required: z.boolean(), + validation: z.nullable(z.union([ + z.lazy(() => + SyncReconcileResponsePendingPreparedStackValidation$inboundSchema + ), + z.any(), + ])).optional(), + }, + ); -export function syncReconcileResponseCurrentReleaseOverrideConditionFromJSON( +export function syncReconcileResponsePendingPreparedStackInputFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseOverrideCondition, + SyncReconcileResponsePendingPreparedStackInput, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseOverrideCondition$inboundSchema.parse( + SyncReconcileResponsePendingPreparedStackInput$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideCondition' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackInput' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseOverrideConditionUnion$inboundSchema: +export const SyncReconcileResponsePendingPreparedStackManagementEnum$inboundSchema: + z.ZodEnum = z + .enum(SyncReconcileResponsePendingPreparedStackManagementEnum); + +/** @internal */ +export const SyncReconcileResponsePendingPreparedStackOverrideAwResource$inboundSchema: z.ZodType< - SyncReconcileResponseCurrentReleaseOverrideConditionUnion, + SyncReconcileResponsePendingPreparedStackOverrideAwResource, unknown - > = z.union([ - z.lazy(() => - SyncReconcileResponseCurrentReleaseOverrideCondition$inboundSchema - ), - z.any(), - ]); + > = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function syncReconcileResponseCurrentReleaseOverrideConditionUnionFromJSON( +export function syncReconcileResponsePendingPreparedStackOverrideAwResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseOverrideConditionUnion, + SyncReconcileResponsePendingPreparedStackOverrideAwResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseOverrideConditionUnion$inboundSchema + SyncReconcileResponsePendingPreparedStackOverrideAwResource$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideConditionUnion' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackOverrideAwResource' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseOverrideGcpStack$inboundSchema: - z.ZodType = z - .object({ +export const SyncReconcileResponsePendingPreparedStackOverrideAwStack$inboundSchema: + z.ZodType = + z.object({ condition: z.nullable( - z.union([ - z.lazy(() => - SyncReconcileResponseCurrentReleaseOverrideCondition$inboundSchema - ), - z.any(), - ]), + z.record(z.string(), z.record(z.string(), z.string())), ).optional(), - scope: z.string(), + resources: z.array(z.string()), }); -export function syncReconcileResponseCurrentReleaseOverrideGcpStackFromJSON( +export function syncReconcileResponsePendingPreparedStackOverrideAwStackFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseOverrideGcpStack, + SyncReconcileResponsePendingPreparedStackOverrideAwStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseOverrideGcpStack$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideGcpStack' from JSON`, + SyncReconcileResponsePendingPreparedStackOverrideAwStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackOverrideAwStack' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseOverrideGcpBinding$inboundSchema: - z.ZodType = z - .object({ - resource: z.lazy(() => - SyncReconcileResponseCurrentReleaseOverrideGcpResource$inboundSchema - ).optional(), - stack: z.lazy(() => - SyncReconcileResponseCurrentReleaseOverrideGcpStack$inboundSchema - ).optional(), - }); +export const SyncReconcileResponsePendingPreparedStackOverrideAwBinding$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackOverrideAwBinding, + unknown + > = z.object({ + resource: z.lazy(() => + SyncReconcileResponsePendingPreparedStackOverrideAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileResponsePendingPreparedStackOverrideAwStack$inboundSchema + ).optional(), + }); -export function syncReconcileResponseCurrentReleaseOverrideGcpBindingFromJSON( +export function syncReconcileResponsePendingPreparedStackOverrideAwBindingFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseOverrideGcpBinding, + SyncReconcileResponsePendingPreparedStackOverrideAwBinding, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseOverrideGcpBinding$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideGcpBinding' from JSON`, + SyncReconcileResponsePendingPreparedStackOverrideAwBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackOverrideAwBinding' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseOverrideGcpGrant$inboundSchema: - z.ZodType = z - .object({ +export const SyncReconcileResponsePendingPreparedStackOverrideEffect$inboundSchema: + z.ZodEnum = z + .enum(SyncReconcileResponsePendingPreparedStackOverrideEffect); + +/** @internal */ +export const SyncReconcileResponsePendingPreparedStackOverrideAwGrant$inboundSchema: + z.ZodType = + z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), permissions: z.nullable(z.array(z.string())).optional(), @@ -12335,937 +16560,1041 @@ export const SyncReconcileResponseCurrentReleaseOverrideGcpGrant$inboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileResponseCurrentReleaseOverrideGcpGrantFromJSON( +export function syncReconcileResponsePendingPreparedStackOverrideAwGrantFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseOverrideGcpGrant, + SyncReconcileResponsePendingPreparedStackOverrideAwGrant, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseOverrideGcpGrant$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideGcpGrant' from JSON`, + SyncReconcileResponsePendingPreparedStackOverrideAwGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackOverrideAwGrant' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseOverrideGcp$inboundSchema: - z.ZodType = z.object( - { +export const SyncReconcileResponsePendingPreparedStackOverrideAw$inboundSchema: + z.ZodType = z + .object({ binding: z.lazy(() => - SyncReconcileResponseCurrentReleaseOverrideGcpBinding$inboundSchema + SyncReconcileResponsePendingPreparedStackOverrideAwBinding$inboundSchema ), description: z.nullable(z.string()).optional(), + effect: + SyncReconcileResponsePendingPreparedStackOverrideEffect$inboundSchema + .optional(), grant: z.lazy(() => - SyncReconcileResponseCurrentReleaseOverrideGcpGrant$inboundSchema + SyncReconcileResponsePendingPreparedStackOverrideAwGrant$inboundSchema ), label: z.nullable(z.string()).optional(), - }, - ); + }); -export function syncReconcileResponseCurrentReleaseOverrideGcpFromJSON( +export function syncReconcileResponsePendingPreparedStackOverrideAwFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseOverrideGcp, + SyncReconcileResponsePendingPreparedStackOverrideAw, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseOverrideGcp$inboundSchema.parse( + SyncReconcileResponsePendingPreparedStackOverrideAw$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideGcp' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackOverrideAw' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseOverridePlatforms$inboundSchema: - z.ZodType = z - .object({ - aws: z.nullable( - z.array(z.lazy(() => - SyncReconcileResponseCurrentReleaseOverrideAw$inboundSchema - )), - ).optional(), - azure: z.nullable( - z.array(z.lazy(() => - SyncReconcileResponseCurrentReleaseOverrideAzure$inboundSchema - )), - ).optional(), - gcp: z.nullable( - z.array(z.lazy(() => - SyncReconcileResponseCurrentReleaseOverrideGcp$inboundSchema - )), - ).optional(), - }); +export const SyncReconcileResponsePendingPreparedStackOverrideAzureResource$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackOverrideAzureResource, + unknown + > = z.object({ + scope: z.string(), + }); -export function syncReconcileResponseCurrentReleaseOverridePlatformsFromJSON( +export function syncReconcileResponsePendingPreparedStackOverrideAzureResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseOverridePlatforms, + SyncReconcileResponsePendingPreparedStackOverrideAzureResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseOverridePlatforms$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseOverridePlatforms' from JSON`, + SyncReconcileResponsePendingPreparedStackOverrideAzureResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackOverrideAzureResource' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseOverride$inboundSchema: - z.ZodType = z.object({ - description: z.string(), - id: z.string(), - platforms: z.lazy(() => - SyncReconcileResponseCurrentReleaseOverridePlatforms$inboundSchema - ), +export const SyncReconcileResponsePendingPreparedStackOverrideAzureStack$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackOverrideAzureStack, + unknown + > = z.object({ + scope: z.string(), }); -export function syncReconcileResponseCurrentReleaseOverrideFromJSON( +export function syncReconcileResponsePendingPreparedStackOverrideAzureStackFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseOverride, + SyncReconcileResponsePendingPreparedStackOverrideAzureStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseOverride$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseOverride' from JSON`, + SyncReconcileResponsePendingPreparedStackOverrideAzureStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackOverrideAzureStack' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseOverrideUnion$inboundSchema: - z.ZodType = z - .union([ - z.lazy(() => SyncReconcileResponseCurrentReleaseOverride$inboundSchema), - z.string(), - ]); +export const SyncReconcileResponsePendingPreparedStackOverrideAzureBinding$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackOverrideAzureBinding, + unknown + > = z.object({ + resource: z.lazy(() => + SyncReconcileResponsePendingPreparedStackOverrideAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileResponsePendingPreparedStackOverrideAzureStack$inboundSchema + ).optional(), + }); -export function syncReconcileResponseCurrentReleaseOverrideUnionFromJSON( +export function syncReconcileResponsePendingPreparedStackOverrideAzureBindingFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseOverrideUnion, + SyncReconcileResponsePendingPreparedStackOverrideAzureBinding, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseOverrideUnion$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseOverrideUnion' from JSON`, + SyncReconcileResponsePendingPreparedStackOverrideAzureBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackOverrideAzureBinding' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseManagement2$inboundSchema: - z.ZodType = z.object( - { - override: z.record( - z.string(), - z.array( - z.union([ - z.lazy(() => - SyncReconcileResponseCurrentReleaseOverride$inboundSchema - ), - z.string(), - ]), - ), - ), - }, - ); +export const SyncReconcileResponsePendingPreparedStackOverrideAzureGrant$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackOverrideAzureGrant, + unknown + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function syncReconcileResponseCurrentReleaseManagement2FromJSON( +export function syncReconcileResponsePendingPreparedStackOverrideAzureGrantFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseManagement2, + SyncReconcileResponsePendingPreparedStackOverrideAzureGrant, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseManagement2$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseManagement2' from JSON`, + SyncReconcileResponsePendingPreparedStackOverrideAzureGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackOverrideAzureGrant' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseExtendAwResource$inboundSchema: - z.ZodType = z +export const SyncReconcileResponsePendingPreparedStackOverrideAzure$inboundSchema: + z.ZodType = z .object({ - condition: z.nullable( - z.record(z.string(), z.record(z.string(), z.string())), - ).optional(), - resources: z.array(z.string()), + binding: z.lazy(() => + SyncReconcileResponsePendingPreparedStackOverrideAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncReconcileResponsePendingPreparedStackOverrideAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), }); -export function syncReconcileResponseCurrentReleaseExtendAwResourceFromJSON( +export function syncReconcileResponsePendingPreparedStackOverrideAzureFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseExtendAwResource, + SyncReconcileResponsePendingPreparedStackOverrideAzure, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseExtendAwResource$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendAwResource' from JSON`, + SyncReconcileResponsePendingPreparedStackOverrideAzure$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackOverrideAzure' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseExtendAwStack$inboundSchema: - z.ZodType = z - .object({ - condition: z.nullable( - z.record(z.string(), z.record(z.string(), z.string())), - ).optional(), - resources: z.array(z.string()), - }); +export const SyncReconcileResponsePendingPreparedStackOverrideConditionResource$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackOverrideConditionResource, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function syncReconcileResponseCurrentReleaseExtendAwStackFromJSON( +export function syncReconcileResponsePendingPreparedStackOverrideConditionResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseExtendAwStack, + SyncReconcileResponsePendingPreparedStackOverrideConditionResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseExtendAwStack$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendAwStack' from JSON`, + SyncReconcileResponsePendingPreparedStackOverrideConditionResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackOverrideConditionResource' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseExtendAwBinding$inboundSchema: - z.ZodType = z - .object({ - resource: z.lazy(() => - SyncReconcileResponseCurrentReleaseExtendAwResource$inboundSchema - ).optional(), - stack: z.lazy(() => - SyncReconcileResponseCurrentReleaseExtendAwStack$inboundSchema - ).optional(), - }); +export const SyncReconcileResponsePendingPreparedStackOverrideResourceConditionUnion$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackOverrideResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncReconcileResponsePendingPreparedStackOverrideConditionResource$inboundSchema + ), + z.any(), + ]); -export function syncReconcileResponseCurrentReleaseExtendAwBindingFromJSON( +export function syncReconcileResponsePendingPreparedStackOverrideResourceConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseExtendAwBinding, + SyncReconcileResponsePendingPreparedStackOverrideResourceConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseExtendAwBinding$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendAwBinding' from JSON`, + SyncReconcileResponsePendingPreparedStackOverrideResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackOverrideResourceConditionUnion' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseExtendEffect$inboundSchema: - z.ZodEnum = z.enum( - SyncReconcileResponseCurrentReleaseExtendEffect, +export const SyncReconcileResponsePendingPreparedStackOverrideGcpResource$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackOverrideGcpResource, + unknown + > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncReconcileResponsePendingPreparedStackOverrideConditionResource$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); + +export function syncReconcileResponsePendingPreparedStackOverrideGcpResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponsePendingPreparedStackOverrideGcpResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponsePendingPreparedStackOverrideGcpResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackOverrideGcpResource' from JSON`, ); +} /** @internal */ -export const SyncReconcileResponseCurrentReleaseExtendAwGrant$inboundSchema: - z.ZodType = z - .object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), - }); +export const SyncReconcileResponsePendingPreparedStackOverrideConditionStack$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackOverrideConditionStack, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); + +export function syncReconcileResponsePendingPreparedStackOverrideConditionStackFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponsePendingPreparedStackOverrideConditionStack, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponsePendingPreparedStackOverrideConditionStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackOverrideConditionStack' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponsePendingPreparedStackOverrideStackConditionUnion$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackOverrideStackConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncReconcileResponsePendingPreparedStackOverrideConditionStack$inboundSchema + ), + z.any(), + ]); + +export function syncReconcileResponsePendingPreparedStackOverrideStackConditionUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponsePendingPreparedStackOverrideStackConditionUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponsePendingPreparedStackOverrideStackConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackOverrideStackConditionUnion' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponsePendingPreparedStackOverrideGcpStack$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackOverrideGcpStack, + unknown + > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncReconcileResponsePendingPreparedStackOverrideConditionStack$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function syncReconcileResponseCurrentReleaseExtendAwGrantFromJSON( +export function syncReconcileResponsePendingPreparedStackOverrideGcpStackFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseExtendAwGrant, + SyncReconcileResponsePendingPreparedStackOverrideGcpStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseExtendAwGrant$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendAwGrant' from JSON`, + SyncReconcileResponsePendingPreparedStackOverrideGcpStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackOverrideGcpStack' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseExtendAw$inboundSchema: - z.ZodType = z.object({ - binding: z.lazy(() => - SyncReconcileResponseCurrentReleaseExtendAwBinding$inboundSchema - ), - description: z.nullable(z.string()).optional(), - effect: SyncReconcileResponseCurrentReleaseExtendEffect$inboundSchema - .optional(), - grant: z.lazy(() => - SyncReconcileResponseCurrentReleaseExtendAwGrant$inboundSchema - ), - label: z.nullable(z.string()).optional(), +export const SyncReconcileResponsePendingPreparedStackOverrideGcpBinding$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackOverrideGcpBinding, + unknown + > = z.object({ + resource: z.lazy(() => + SyncReconcileResponsePendingPreparedStackOverrideGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileResponsePendingPreparedStackOverrideGcpStack$inboundSchema + ).optional(), }); -export function syncReconcileResponseCurrentReleaseExtendAwFromJSON( +export function syncReconcileResponsePendingPreparedStackOverrideGcpBindingFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseExtendAw, + SyncReconcileResponsePendingPreparedStackOverrideGcpBinding, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseExtendAw$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendAw' from JSON`, + SyncReconcileResponsePendingPreparedStackOverrideGcpBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackOverrideGcpBinding' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseExtendAzureResource$inboundSchema: - z.ZodType = z - .object({ - scope: z.string(), - }); +export const SyncReconcileResponsePendingPreparedStackOverrideGcpGrant$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackOverrideGcpGrant, + unknown + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function syncReconcileResponseCurrentReleaseExtendAzureResourceFromJSON( +export function syncReconcileResponsePendingPreparedStackOverrideGcpGrantFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseExtendAzureResource, + SyncReconcileResponsePendingPreparedStackOverrideGcpGrant, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseExtendAzureResource$inboundSchema + SyncReconcileResponsePendingPreparedStackOverrideGcpGrant$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendAzureResource' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackOverrideGcpGrant' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseExtendAzureStack$inboundSchema: - z.ZodType = z +export const SyncReconcileResponsePendingPreparedStackOverrideGcp$inboundSchema: + z.ZodType = z .object({ - scope: z.string(), + binding: z.lazy(() => + SyncReconcileResponsePendingPreparedStackOverrideGcpBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncReconcileResponsePendingPreparedStackOverrideGcpGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), }); -export function syncReconcileResponseCurrentReleaseExtendAzureStackFromJSON( +export function syncReconcileResponsePendingPreparedStackOverrideGcpFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseExtendAzureStack, + SyncReconcileResponsePendingPreparedStackOverrideGcp, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseExtendAzureStack$inboundSchema.parse( + SyncReconcileResponsePendingPreparedStackOverrideGcp$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendAzureStack' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackOverrideGcp' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseExtendAzureBinding$inboundSchema: - z.ZodType = z - .object({ - resource: z.lazy(() => - SyncReconcileResponseCurrentReleaseExtendAzureResource$inboundSchema - ).optional(), - stack: z.lazy(() => - SyncReconcileResponseCurrentReleaseExtendAzureStack$inboundSchema - ).optional(), - }); +export const SyncReconcileResponsePendingPreparedStackOverridePlatforms$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackOverridePlatforms, + unknown + > = z.object({ + aws: z.nullable( + z.array(z.lazy(() => + SyncReconcileResponsePendingPreparedStackOverrideAw$inboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + SyncReconcileResponsePendingPreparedStackOverrideAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + SyncReconcileResponsePendingPreparedStackOverrideGcp$inboundSchema + )), + ).optional(), + }); -export function syncReconcileResponseCurrentReleaseExtendAzureBindingFromJSON( +export function syncReconcileResponsePendingPreparedStackOverridePlatformsFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseExtendAzureBinding, + SyncReconcileResponsePendingPreparedStackOverridePlatforms, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseExtendAzureBinding$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendAzureBinding' from JSON`, + SyncReconcileResponsePendingPreparedStackOverridePlatforms$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackOverridePlatforms' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseExtendAzureGrant$inboundSchema: - z.ZodType = z +export const SyncReconcileResponsePendingPreparedStackOverride$inboundSchema: + z.ZodType = z .object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncReconcileResponsePendingPreparedStackOverridePlatforms$inboundSchema + ), }); -export function syncReconcileResponseCurrentReleaseExtendAzureGrantFromJSON( +export function syncReconcileResponsePendingPreparedStackOverrideFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseExtendAzureGrant, + SyncReconcileResponsePendingPreparedStackOverride, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseExtendAzureGrant$inboundSchema.parse( + SyncReconcileResponsePendingPreparedStackOverride$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendAzureGrant' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackOverride' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseExtendAzure$inboundSchema: - z.ZodType = z.object( - { - binding: z.lazy(() => - SyncReconcileResponseCurrentReleaseExtendAzureBinding$inboundSchema - ), - description: z.nullable(z.string()).optional(), - grant: z.lazy(() => - SyncReconcileResponseCurrentReleaseExtendAzureGrant$inboundSchema +export const SyncReconcileResponsePendingPreparedStackOverrideUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => + SyncReconcileResponsePendingPreparedStackOverride$inboundSchema ), - label: z.nullable(z.string()).optional(), - }, - ); + z.string(), + ]); -export function syncReconcileResponseCurrentReleaseExtendAzureFromJSON( +export function syncReconcileResponsePendingPreparedStackOverrideUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseExtendAzure, + SyncReconcileResponsePendingPreparedStackOverrideUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseExtendAzure$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendAzure' from JSON`, + SyncReconcileResponsePendingPreparedStackOverrideUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackOverrideUnion' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseExtendConditionResource$inboundSchema: - z.ZodType< - SyncReconcileResponseCurrentReleaseExtendConditionResource, - unknown - > = z.object({ - expression: z.string(), - title: z.string(), - }); +export const SyncReconcileResponsePendingPreparedStackManagement2$inboundSchema: + z.ZodType = z + .object({ + override: z.record( + z.string(), + z.array(z.union([ + z.lazy(() => + SyncReconcileResponsePendingPreparedStackOverride$inboundSchema + ), + z.string(), + ])), + ), + }); -export function syncReconcileResponseCurrentReleaseExtendConditionResourceFromJSON( +export function syncReconcileResponsePendingPreparedStackManagement2FromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseExtendConditionResource, + SyncReconcileResponsePendingPreparedStackManagement2, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseExtendConditionResource$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendConditionResource' from JSON`, + SyncReconcileResponsePendingPreparedStackManagement2$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackManagement2' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseExtendResourceConditionUnion$inboundSchema: +export const SyncReconcileResponsePendingPreparedStackExtendAwResource$inboundSchema: z.ZodType< - SyncReconcileResponseCurrentReleaseExtendResourceConditionUnion, + SyncReconcileResponsePendingPreparedStackExtendAwResource, unknown - > = z.union([ - z.lazy(() => - SyncReconcileResponseCurrentReleaseExtendConditionResource$inboundSchema - ), - z.any(), - ]); + > = z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function syncReconcileResponseCurrentReleaseExtendResourceConditionUnionFromJSON( +export function syncReconcileResponsePendingPreparedStackExtendAwResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseExtendResourceConditionUnion, + SyncReconcileResponsePendingPreparedStackExtendAwResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseExtendResourceConditionUnion$inboundSchema + SyncReconcileResponsePendingPreparedStackExtendAwResource$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendResourceConditionUnion' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackExtendAwResource' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseExtendGcpResource$inboundSchema: - z.ZodType = z +export const SyncReconcileResponsePendingPreparedStackExtendAwStack$inboundSchema: + z.ZodType = z .object({ condition: z.nullable( - z.union([ - z.lazy(() => - SyncReconcileResponseCurrentReleaseExtendConditionResource$inboundSchema - ), - z.any(), - ]), + z.record(z.string(), z.record(z.string(), z.string())), ).optional(), - scope: z.string(), + resources: z.array(z.string()), }); -export function syncReconcileResponseCurrentReleaseExtendGcpResourceFromJSON( +export function syncReconcileResponsePendingPreparedStackExtendAwStackFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseExtendGcpResource, + SyncReconcileResponsePendingPreparedStackExtendAwStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseExtendGcpResource$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendGcpResource' from JSON`, + SyncReconcileResponsePendingPreparedStackExtendAwStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackExtendAwStack' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseExtendCondition$inboundSchema: - z.ZodType = z - .object({ - expression: z.string(), - title: z.string(), +export const SyncReconcileResponsePendingPreparedStackExtendAwBinding$inboundSchema: + z.ZodType = + z.object({ + resource: z.lazy(() => + SyncReconcileResponsePendingPreparedStackExtendAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileResponsePendingPreparedStackExtendAwStack$inboundSchema + ).optional(), }); -export function syncReconcileResponseCurrentReleaseExtendConditionFromJSON( +export function syncReconcileResponsePendingPreparedStackExtendAwBindingFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseExtendCondition, + SyncReconcileResponsePendingPreparedStackExtendAwBinding, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseExtendCondition$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendCondition' from JSON`, + SyncReconcileResponsePendingPreparedStackExtendAwBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackExtendAwBinding' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseExtendConditionUnion$inboundSchema: - z.ZodType = - z.union([ - z.lazy(() => - SyncReconcileResponseCurrentReleaseExtendCondition$inboundSchema - ), - z.any(), - ]); +export const SyncReconcileResponsePendingPreparedStackExtendEffect$inboundSchema: + z.ZodEnum = z + .enum(SyncReconcileResponsePendingPreparedStackExtendEffect); -export function syncReconcileResponseCurrentReleaseExtendConditionUnionFromJSON( +/** @internal */ +export const SyncReconcileResponsePendingPreparedStackExtendAwGrant$inboundSchema: + z.ZodType = z + .object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); + +export function syncReconcileResponsePendingPreparedStackExtendAwGrantFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseExtendConditionUnion, + SyncReconcileResponsePendingPreparedStackExtendAwGrant, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseExtendConditionUnion$inboundSchema + SyncReconcileResponsePendingPreparedStackExtendAwGrant$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendConditionUnion' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackExtendAwGrant' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseExtendGcpStack$inboundSchema: - z.ZodType = z +export const SyncReconcileResponsePendingPreparedStackExtendAw$inboundSchema: + z.ZodType = z .object({ - condition: z.nullable( - z.union([ - z.lazy(() => - SyncReconcileResponseCurrentReleaseExtendCondition$inboundSchema - ), - z.any(), - ]), - ).optional(), - scope: z.string(), + binding: z.lazy(() => + SyncReconcileResponsePendingPreparedStackExtendAwBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + effect: + SyncReconcileResponsePendingPreparedStackExtendEffect$inboundSchema + .optional(), + grant: z.lazy(() => + SyncReconcileResponsePendingPreparedStackExtendAwGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), }); -export function syncReconcileResponseCurrentReleaseExtendGcpStackFromJSON( +export function syncReconcileResponsePendingPreparedStackExtendAwFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseExtendGcpStack, + SyncReconcileResponsePendingPreparedStackExtendAw, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseExtendGcpStack$inboundSchema.parse( + SyncReconcileResponsePendingPreparedStackExtendAw$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendGcpStack' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackExtendAw' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseExtendGcpBinding$inboundSchema: - z.ZodType = z - .object({ - resource: z.lazy(() => - SyncReconcileResponseCurrentReleaseExtendGcpResource$inboundSchema - ).optional(), - stack: z.lazy(() => - SyncReconcileResponseCurrentReleaseExtendGcpStack$inboundSchema - ).optional(), - }); +export const SyncReconcileResponsePendingPreparedStackExtendAzureResource$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackExtendAzureResource, + unknown + > = z.object({ + scope: z.string(), + }); + +export function syncReconcileResponsePendingPreparedStackExtendAzureResourceFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponsePendingPreparedStackExtendAzureResource, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponsePendingPreparedStackExtendAzureResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackExtendAzureResource' from JSON`, + ); +} -export function syncReconcileResponseCurrentReleaseExtendGcpBindingFromJSON( +/** @internal */ +export const SyncReconcileResponsePendingPreparedStackExtendAzureStack$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackExtendAzureStack, + unknown + > = z.object({ + scope: z.string(), + }); + +export function syncReconcileResponsePendingPreparedStackExtendAzureStackFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseExtendGcpBinding, + SyncReconcileResponsePendingPreparedStackExtendAzureStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseExtendGcpBinding$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendGcpBinding' from JSON`, + SyncReconcileResponsePendingPreparedStackExtendAzureStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackExtendAzureStack' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseExtendGcpGrant$inboundSchema: - z.ZodType = z - .object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), - }); +export const SyncReconcileResponsePendingPreparedStackExtendAzureBinding$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackExtendAzureBinding, + unknown + > = z.object({ + resource: z.lazy(() => + SyncReconcileResponsePendingPreparedStackExtendAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileResponsePendingPreparedStackExtendAzureStack$inboundSchema + ).optional(), + }); -export function syncReconcileResponseCurrentReleaseExtendGcpGrantFromJSON( +export function syncReconcileResponsePendingPreparedStackExtendAzureBindingFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseExtendGcpGrant, + SyncReconcileResponsePendingPreparedStackExtendAzureBinding, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseExtendGcpGrant$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendGcpGrant' from JSON`, + SyncReconcileResponsePendingPreparedStackExtendAzureBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackExtendAzureBinding' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseExtendGcp$inboundSchema: - z.ZodType = z.object({ - binding: z.lazy(() => - SyncReconcileResponseCurrentReleaseExtendGcpBinding$inboundSchema - ), - description: z.nullable(z.string()).optional(), - grant: z.lazy(() => - SyncReconcileResponseCurrentReleaseExtendGcpGrant$inboundSchema - ), - label: z.nullable(z.string()).optional(), +export const SyncReconcileResponsePendingPreparedStackExtendAzureGrant$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackExtendAzureGrant, + unknown + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileResponseCurrentReleaseExtendGcpFromJSON( +export function syncReconcileResponsePendingPreparedStackExtendAzureGrantFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseExtendGcp, + SyncReconcileResponsePendingPreparedStackExtendAzureGrant, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseExtendGcp$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendGcp' from JSON`, + SyncReconcileResponsePendingPreparedStackExtendAzureGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackExtendAzureGrant' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseExtendPlatforms$inboundSchema: - z.ZodType = z +export const SyncReconcileResponsePendingPreparedStackExtendAzure$inboundSchema: + z.ZodType = z .object({ - aws: z.nullable( - z.array(z.lazy(() => - SyncReconcileResponseCurrentReleaseExtendAw$inboundSchema - )), - ).optional(), - azure: z.nullable( - z.array(z.lazy(() => - SyncReconcileResponseCurrentReleaseExtendAzure$inboundSchema - )), - ).optional(), - gcp: z.nullable( - z.array(z.lazy(() => - SyncReconcileResponseCurrentReleaseExtendGcp$inboundSchema - )), - ).optional(), + binding: z.lazy(() => + SyncReconcileResponsePendingPreparedStackExtendAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncReconcileResponsePendingPreparedStackExtendAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), }); -export function syncReconcileResponseCurrentReleaseExtendPlatformsFromJSON( +export function syncReconcileResponsePendingPreparedStackExtendAzureFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseExtendPlatforms, + SyncReconcileResponsePendingPreparedStackExtendAzure, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseExtendPlatforms$inboundSchema.parse( + SyncReconcileResponsePendingPreparedStackExtendAzure$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendPlatforms' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackExtendAzure' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseExtend$inboundSchema: z.ZodType< - SyncReconcileResponseCurrentReleaseExtend, - unknown -> = z.object({ - description: z.string(), - id: z.string(), - platforms: z.lazy(() => - SyncReconcileResponseCurrentReleaseExtendPlatforms$inboundSchema - ), -}); +export const SyncReconcileResponsePendingPreparedStackExtendConditionResource$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackExtendConditionResource, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function syncReconcileResponseCurrentReleaseExtendFromJSON( +export function syncReconcileResponsePendingPreparedStackExtendConditionResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseExtend, + SyncReconcileResponsePendingPreparedStackExtendConditionResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseExtend$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseExtend' from JSON`, + SyncReconcileResponsePendingPreparedStackExtendConditionResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackExtendConditionResource' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseExtendUnion$inboundSchema: - z.ZodType = z.union([ - z.lazy(() => SyncReconcileResponseCurrentReleaseExtend$inboundSchema), - z.string(), +export const SyncReconcileResponsePendingPreparedStackExtendResourceConditionUnion$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackExtendResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncReconcileResponsePendingPreparedStackExtendConditionResource$inboundSchema + ), + z.any(), ]); -export function syncReconcileResponseCurrentReleaseExtendUnionFromJSON( +export function syncReconcileResponsePendingPreparedStackExtendResourceConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseExtendUnion, + SyncReconcileResponsePendingPreparedStackExtendResourceConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseExtendUnion$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseExtendUnion' from JSON`, + SyncReconcileResponsePendingPreparedStackExtendResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackExtendResourceConditionUnion' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseManagement1$inboundSchema: - z.ZodType = z.object( - { - extend: z.record( - z.string(), - z.array( - z.union([ - z.lazy(() => - SyncReconcileResponseCurrentReleaseExtend$inboundSchema - ), - z.string(), - ]), +export const SyncReconcileResponsePendingPreparedStackExtendGcpResource$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackExtendGcpResource, + unknown + > = z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncReconcileResponsePendingPreparedStackExtendConditionResource$inboundSchema ), - ), - }, - ); + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function syncReconcileResponseCurrentReleaseManagement1FromJSON( +export function syncReconcileResponsePendingPreparedStackExtendGcpResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseManagement1, + SyncReconcileResponsePendingPreparedStackExtendGcpResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseManagement1$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseManagement1' from JSON`, + SyncReconcileResponsePendingPreparedStackExtendGcpResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackExtendGcpResource' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseManagementUnion$inboundSchema: - z.ZodType = z - .union([ - z.lazy(() => - SyncReconcileResponseCurrentReleaseManagement1$inboundSchema - ), - z.lazy(() => - SyncReconcileResponseCurrentReleaseManagement2$inboundSchema - ), - SyncReconcileResponseCurrentReleaseManagementEnum$inboundSchema, - ]); +export const SyncReconcileResponsePendingPreparedStackExtendConditionStack$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackExtendConditionStack, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function syncReconcileResponseCurrentReleaseManagementUnionFromJSON( +export function syncReconcileResponsePendingPreparedStackExtendConditionStackFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseManagementUnion, + SyncReconcileResponsePendingPreparedStackExtendConditionStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseManagementUnion$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseManagementUnion' from JSON`, + SyncReconcileResponsePendingPreparedStackExtendConditionStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackExtendConditionStack' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseProfileAwResource$inboundSchema: - z.ZodType = z - .object({ - condition: z.nullable( - z.record(z.string(), z.record(z.string(), z.string())), - ).optional(), - resources: z.array(z.string()), - }); +export const SyncReconcileResponsePendingPreparedStackExtendStackConditionUnion$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackExtendStackConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncReconcileResponsePendingPreparedStackExtendConditionStack$inboundSchema + ), + z.any(), + ]); -export function syncReconcileResponseCurrentReleaseProfileAwResourceFromJSON( +export function syncReconcileResponsePendingPreparedStackExtendStackConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseProfileAwResource, + SyncReconcileResponsePendingPreparedStackExtendStackConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseProfileAwResource$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileAwResource' from JSON`, + SyncReconcileResponsePendingPreparedStackExtendStackConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackExtendStackConditionUnion' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseProfileAwStack$inboundSchema: - z.ZodType = z - .object({ +export const SyncReconcileResponsePendingPreparedStackExtendGcpStack$inboundSchema: + z.ZodType = + z.object({ condition: z.nullable( - z.record(z.string(), z.record(z.string(), z.string())), + z.union([ + z.lazy(() => + SyncReconcileResponsePendingPreparedStackExtendConditionStack$inboundSchema + ), + z.any(), + ]), ).optional(), - resources: z.array(z.string()), + scope: z.string(), }); -export function syncReconcileResponseCurrentReleaseProfileAwStackFromJSON( +export function syncReconcileResponsePendingPreparedStackExtendGcpStackFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseProfileAwStack, + SyncReconcileResponsePendingPreparedStackExtendGcpStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseProfileAwStack$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileAwStack' from JSON`, + SyncReconcileResponsePendingPreparedStackExtendGcpStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackExtendGcpStack' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseProfileAwBinding$inboundSchema: - z.ZodType = z - .object({ - resource: z.lazy(() => - SyncReconcileResponseCurrentReleaseProfileAwResource$inboundSchema - ).optional(), - stack: z.lazy(() => - SyncReconcileResponseCurrentReleaseProfileAwStack$inboundSchema - ).optional(), - }); +export const SyncReconcileResponsePendingPreparedStackExtendGcpBinding$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackExtendGcpBinding, + unknown + > = z.object({ + resource: z.lazy(() => + SyncReconcileResponsePendingPreparedStackExtendGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileResponsePendingPreparedStackExtendGcpStack$inboundSchema + ).optional(), + }); -export function syncReconcileResponseCurrentReleaseProfileAwBindingFromJSON( +export function syncReconcileResponsePendingPreparedStackExtendGcpBindingFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseProfileAwBinding, + SyncReconcileResponsePendingPreparedStackExtendGcpBinding, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseProfileAwBinding$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileAwBinding' from JSON`, + SyncReconcileResponsePendingPreparedStackExtendGcpBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackExtendGcpBinding' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseProfileEffect$inboundSchema: - z.ZodEnum = z.enum( - SyncReconcileResponseCurrentReleaseProfileEffect, - ); - -/** @internal */ -export const SyncReconcileResponseCurrentReleaseProfileAwGrant$inboundSchema: - z.ZodType = z - .object({ +export const SyncReconcileResponsePendingPreparedStackExtendGcpGrant$inboundSchema: + z.ZodType = + z.object({ actions: z.nullable(z.array(z.string())).optional(), dataActions: z.nullable(z.array(z.string())).optional(), permissions: z.nullable(z.array(z.string())).optional(), @@ -13273,971 +17602,1027 @@ export const SyncReconcileResponseCurrentReleaseProfileAwGrant$inboundSchema: residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileResponseCurrentReleaseProfileAwGrantFromJSON( +export function syncReconcileResponsePendingPreparedStackExtendGcpGrantFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseProfileAwGrant, + SyncReconcileResponsePendingPreparedStackExtendGcpGrant, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseProfileAwGrant$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileAwGrant' from JSON`, + SyncReconcileResponsePendingPreparedStackExtendGcpGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackExtendGcpGrant' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseProfileAw$inboundSchema: - z.ZodType = z.object({ - binding: z.lazy(() => - SyncReconcileResponseCurrentReleaseProfileAwBinding$inboundSchema - ), - description: z.nullable(z.string()).optional(), - effect: SyncReconcileResponseCurrentReleaseProfileEffect$inboundSchema - .optional(), - grant: z.lazy(() => - SyncReconcileResponseCurrentReleaseProfileAwGrant$inboundSchema - ), - label: z.nullable(z.string()).optional(), - }); +export const SyncReconcileResponsePendingPreparedStackExtendGcp$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + SyncReconcileResponsePendingPreparedStackExtendGcpBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncReconcileResponsePendingPreparedStackExtendGcpGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function syncReconcileResponseCurrentReleaseProfileAwFromJSON( +export function syncReconcileResponsePendingPreparedStackExtendGcpFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseProfileAw, + SyncReconcileResponsePendingPreparedStackExtendGcp, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseProfileAw$inboundSchema.parse( + SyncReconcileResponsePendingPreparedStackExtendGcp$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileAw' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackExtendGcp' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseProfileAzureResource$inboundSchema: - z.ZodType = +export const SyncReconcileResponsePendingPreparedStackExtendPlatforms$inboundSchema: + z.ZodType = z.object({ - scope: z.string(), + aws: z.nullable( + z.array(z.lazy(() => + SyncReconcileResponsePendingPreparedStackExtendAw$inboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + SyncReconcileResponsePendingPreparedStackExtendAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + SyncReconcileResponsePendingPreparedStackExtendGcp$inboundSchema + )), + ).optional(), }); -export function syncReconcileResponseCurrentReleaseProfileAzureResourceFromJSON( +export function syncReconcileResponsePendingPreparedStackExtendPlatformsFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseProfileAzureResource, + SyncReconcileResponsePendingPreparedStackExtendPlatforms, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseProfileAzureResource$inboundSchema + SyncReconcileResponsePendingPreparedStackExtendPlatforms$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileAzureResource' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackExtendPlatforms' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseProfileAzureStack$inboundSchema: - z.ZodType = z +export const SyncReconcileResponsePendingPreparedStackExtend$inboundSchema: + z.ZodType = z .object({ - scope: z.string(), + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncReconcileResponsePendingPreparedStackExtendPlatforms$inboundSchema + ), }); -export function syncReconcileResponseCurrentReleaseProfileAzureStackFromJSON( +export function syncReconcileResponsePendingPreparedStackExtendFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseProfileAzureStack, + SyncReconcileResponsePendingPreparedStackExtend, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseProfileAzureStack$inboundSchema.parse( + SyncReconcileResponsePendingPreparedStackExtend$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileAzureStack' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackExtend' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseProfileAzureBinding$inboundSchema: - z.ZodType = z - .object({ - resource: z.lazy(() => - SyncReconcileResponseCurrentReleaseProfileAzureResource$inboundSchema - ).optional(), - stack: z.lazy(() => - SyncReconcileResponseCurrentReleaseProfileAzureStack$inboundSchema - ).optional(), - }); +export const SyncReconcileResponsePendingPreparedStackExtendUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => + SyncReconcileResponsePendingPreparedStackExtend$inboundSchema + ), + z.string(), + ]); -export function syncReconcileResponseCurrentReleaseProfileAzureBindingFromJSON( +export function syncReconcileResponsePendingPreparedStackExtendUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseProfileAzureBinding, + SyncReconcileResponsePendingPreparedStackExtendUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseProfileAzureBinding$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileAzureBinding' from JSON`, + SyncReconcileResponsePendingPreparedStackExtendUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackExtendUnion' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseProfileAzureGrant$inboundSchema: - z.ZodType = z +export const SyncReconcileResponsePendingPreparedStackManagement1$inboundSchema: + z.ZodType = z .object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), + extend: z.record( + z.string(), + z.array(z.union([ + z.lazy(() => + SyncReconcileResponsePendingPreparedStackExtend$inboundSchema + ), + z.string(), + ])), + ), }); -export function syncReconcileResponseCurrentReleaseProfileAzureGrantFromJSON( +export function syncReconcileResponsePendingPreparedStackManagement1FromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseProfileAzureGrant, + SyncReconcileResponsePendingPreparedStackManagement1, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseProfileAzureGrant$inboundSchema.parse( + SyncReconcileResponsePendingPreparedStackManagement1$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileAzureGrant' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackManagement1' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseProfileAzure$inboundSchema: - z.ZodType = z - .object({ - binding: z.lazy(() => - SyncReconcileResponseCurrentReleaseProfileAzureBinding$inboundSchema +export const SyncReconcileResponsePendingPreparedStackManagementUnion$inboundSchema: + z.ZodType = + z.union([ + z.lazy(() => + SyncReconcileResponsePendingPreparedStackManagement1$inboundSchema ), - description: z.nullable(z.string()).optional(), - grant: z.lazy(() => - SyncReconcileResponseCurrentReleaseProfileAzureGrant$inboundSchema + z.lazy(() => + SyncReconcileResponsePendingPreparedStackManagement2$inboundSchema ), - label: z.nullable(z.string()).optional(), - }); + SyncReconcileResponsePendingPreparedStackManagementEnum$inboundSchema, + ]); -export function syncReconcileResponseCurrentReleaseProfileAzureFromJSON( +export function syncReconcileResponsePendingPreparedStackManagementUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseProfileAzure, + SyncReconcileResponsePendingPreparedStackManagementUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseProfileAzure$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileAzure' from JSON`, + SyncReconcileResponsePendingPreparedStackManagementUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackManagementUnion' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseProfileConditionResource$inboundSchema: +export const SyncReconcileResponsePendingPreparedStackProfileAwResource$inboundSchema: z.ZodType< - SyncReconcileResponseCurrentReleaseProfileConditionResource, + SyncReconcileResponsePendingPreparedStackProfileAwResource, unknown > = z.object({ - expression: z.string(), - title: z.string(), + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), }); -export function syncReconcileResponseCurrentReleaseProfileConditionResourceFromJSON( +export function syncReconcileResponsePendingPreparedStackProfileAwResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseProfileConditionResource, + SyncReconcileResponsePendingPreparedStackProfileAwResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseProfileConditionResource$inboundSchema + SyncReconcileResponsePendingPreparedStackProfileAwResource$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileConditionResource' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackProfileAwResource' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseProfileResourceConditionUnion$inboundSchema: - z.ZodType< - SyncReconcileResponseCurrentReleaseProfileResourceConditionUnion, - unknown - > = z.union([ - z.lazy(() => - SyncReconcileResponseCurrentReleaseProfileConditionResource$inboundSchema - ), - z.any(), - ]); +export const SyncReconcileResponsePendingPreparedStackProfileAwStack$inboundSchema: + z.ZodType = + z.object({ + condition: z.nullable( + z.record(z.string(), z.record(z.string(), z.string())), + ).optional(), + resources: z.array(z.string()), + }); -export function syncReconcileResponseCurrentReleaseProfileResourceConditionUnionFromJSON( +export function syncReconcileResponsePendingPreparedStackProfileAwStackFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseProfileResourceConditionUnion, + SyncReconcileResponsePendingPreparedStackProfileAwStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseProfileResourceConditionUnion$inboundSchema + SyncReconcileResponsePendingPreparedStackProfileAwStack$inboundSchema .parse(JSON.parse(x)), - `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileResourceConditionUnion' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackProfileAwStack' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseProfileGcpResource$inboundSchema: - z.ZodType = z - .object({ - condition: z.nullable( - z.union([ - z.lazy(() => - SyncReconcileResponseCurrentReleaseProfileConditionResource$inboundSchema - ), - z.any(), - ]), - ).optional(), - scope: z.string(), - }); +export const SyncReconcileResponsePendingPreparedStackProfileAwBinding$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackProfileAwBinding, + unknown + > = z.object({ + resource: z.lazy(() => + SyncReconcileResponsePendingPreparedStackProfileAwResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileResponsePendingPreparedStackProfileAwStack$inboundSchema + ).optional(), + }); -export function syncReconcileResponseCurrentReleaseProfileGcpResourceFromJSON( +export function syncReconcileResponsePendingPreparedStackProfileAwBindingFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseProfileGcpResource, + SyncReconcileResponsePendingPreparedStackProfileAwBinding, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseProfileGcpResource$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileGcpResource' from JSON`, + SyncReconcileResponsePendingPreparedStackProfileAwBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackProfileAwBinding' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseProfileCondition$inboundSchema: - z.ZodType = z - .object({ - expression: z.string(), - title: z.string(), +export const SyncReconcileResponsePendingPreparedStackProfileEffect$inboundSchema: + z.ZodEnum = z + .enum(SyncReconcileResponsePendingPreparedStackProfileEffect); + +/** @internal */ +export const SyncReconcileResponsePendingPreparedStackProfileAwGrant$inboundSchema: + z.ZodType = + z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileResponseCurrentReleaseProfileConditionFromJSON( +export function syncReconcileResponsePendingPreparedStackProfileAwGrantFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseProfileCondition, + SyncReconcileResponsePendingPreparedStackProfileAwGrant, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseProfileCondition$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileCondition' from JSON`, + SyncReconcileResponsePendingPreparedStackProfileAwGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackProfileAwGrant' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseProfileConditionUnion$inboundSchema: - z.ZodType = - z.union([ - z.lazy(() => - SyncReconcileResponseCurrentReleaseProfileCondition$inboundSchema +export const SyncReconcileResponsePendingPreparedStackProfileAw$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + SyncReconcileResponsePendingPreparedStackProfileAwBinding$inboundSchema ), - z.any(), - ]); + description: z.nullable(z.string()).optional(), + effect: + SyncReconcileResponsePendingPreparedStackProfileEffect$inboundSchema + .optional(), + grant: z.lazy(() => + SyncReconcileResponsePendingPreparedStackProfileAwGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function syncReconcileResponseCurrentReleaseProfileConditionUnionFromJSON( +export function syncReconcileResponsePendingPreparedStackProfileAwFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseProfileConditionUnion, + SyncReconcileResponsePendingPreparedStackProfileAw, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseProfileConditionUnion$inboundSchema - .parse(JSON.parse(x)), - `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileConditionUnion' from JSON`, + SyncReconcileResponsePendingPreparedStackProfileAw$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackProfileAw' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseProfileGcpStack$inboundSchema: - z.ZodType = z - .object({ - condition: z.nullable( - z.union([ - z.lazy(() => - SyncReconcileResponseCurrentReleaseProfileCondition$inboundSchema - ), - z.any(), - ]), - ).optional(), - scope: z.string(), - }); +export const SyncReconcileResponsePendingPreparedStackProfileAzureResource$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackProfileAzureResource, + unknown + > = z.object({ + scope: z.string(), + }); -export function syncReconcileResponseCurrentReleaseProfileGcpStackFromJSON( +export function syncReconcileResponsePendingPreparedStackProfileAzureResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseProfileGcpStack, + SyncReconcileResponsePendingPreparedStackProfileAzureResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseProfileGcpStack$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileGcpStack' from JSON`, + SyncReconcileResponsePendingPreparedStackProfileAzureResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackProfileAzureResource' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseProfileGcpBinding$inboundSchema: - z.ZodType = z - .object({ - resource: z.lazy(() => - SyncReconcileResponseCurrentReleaseProfileGcpResource$inboundSchema - ).optional(), - stack: z.lazy(() => - SyncReconcileResponseCurrentReleaseProfileGcpStack$inboundSchema - ).optional(), - }); +export const SyncReconcileResponsePendingPreparedStackProfileAzureStack$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackProfileAzureStack, + unknown + > = z.object({ + scope: z.string(), + }); -export function syncReconcileResponseCurrentReleaseProfileGcpBindingFromJSON( +export function syncReconcileResponsePendingPreparedStackProfileAzureStackFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseProfileGcpBinding, + SyncReconcileResponsePendingPreparedStackProfileAzureStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseProfileGcpBinding$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileGcpBinding' from JSON`, + SyncReconcileResponsePendingPreparedStackProfileAzureStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackProfileAzureStack' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseProfileGcpGrant$inboundSchema: - z.ZodType = z - .object({ - actions: z.nullable(z.array(z.string())).optional(), - dataActions: z.nullable(z.array(z.string())).optional(), - permissions: z.nullable(z.array(z.string())).optional(), - predefinedRoles: z.nullable(z.array(z.string())).optional(), - residualPermissions: z.nullable(z.array(z.string())).optional(), - }); +export const SyncReconcileResponsePendingPreparedStackProfileAzureBinding$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackProfileAzureBinding, + unknown + > = z.object({ + resource: z.lazy(() => + SyncReconcileResponsePendingPreparedStackProfileAzureResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileResponsePendingPreparedStackProfileAzureStack$inboundSchema + ).optional(), + }); -export function syncReconcileResponseCurrentReleaseProfileGcpGrantFromJSON( +export function syncReconcileResponsePendingPreparedStackProfileAzureBindingFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseProfileGcpGrant, + SyncReconcileResponsePendingPreparedStackProfileAzureBinding, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseProfileGcpGrant$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileGcpGrant' from JSON`, + SyncReconcileResponsePendingPreparedStackProfileAzureBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackProfileAzureBinding' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseProfileGcp$inboundSchema: - z.ZodType = z.object({ - binding: z.lazy(() => - SyncReconcileResponseCurrentReleaseProfileGcpBinding$inboundSchema - ), - description: z.nullable(z.string()).optional(), - grant: z.lazy(() => - SyncReconcileResponseCurrentReleaseProfileGcpGrant$inboundSchema - ), - label: z.nullable(z.string()).optional(), +export const SyncReconcileResponsePendingPreparedStackProfileAzureGrant$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackProfileAzureGrant, + unknown + > = z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), }); -export function syncReconcileResponseCurrentReleaseProfileGcpFromJSON( +export function syncReconcileResponsePendingPreparedStackProfileAzureGrantFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseProfileGcp, + SyncReconcileResponsePendingPreparedStackProfileAzureGrant, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseProfileGcp$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileGcp' from JSON`, + SyncReconcileResponsePendingPreparedStackProfileAzureGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackProfileAzureGrant' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseProfilePlatforms$inboundSchema: - z.ZodType = z +export const SyncReconcileResponsePendingPreparedStackProfileAzure$inboundSchema: + z.ZodType = z .object({ - aws: z.nullable( - z.array(z.lazy(() => - SyncReconcileResponseCurrentReleaseProfileAw$inboundSchema - )), - ).optional(), - azure: z.nullable( - z.array(z.lazy(() => - SyncReconcileResponseCurrentReleaseProfileAzure$inboundSchema - )), - ).optional(), - gcp: z.nullable( - z.array(z.lazy(() => - SyncReconcileResponseCurrentReleaseProfileGcp$inboundSchema - )), - ).optional(), + binding: z.lazy(() => + SyncReconcileResponsePendingPreparedStackProfileAzureBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncReconcileResponsePendingPreparedStackProfileAzureGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), }); -export function syncReconcileResponseCurrentReleaseProfilePlatformsFromJSON( +export function syncReconcileResponsePendingPreparedStackProfileAzureFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseProfilePlatforms, + SyncReconcileResponsePendingPreparedStackProfileAzure, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseProfilePlatforms$inboundSchema.parse( + SyncReconcileResponsePendingPreparedStackProfileAzure$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseProfilePlatforms' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackProfileAzure' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseProfile$inboundSchema: - z.ZodType = z.object({ - description: z.string(), - id: z.string(), - platforms: z.lazy(() => - SyncReconcileResponseCurrentReleaseProfilePlatforms$inboundSchema - ), +export const SyncReconcileResponsePendingPreparedStackProfileConditionResource$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackProfileConditionResource, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), }); -export function syncReconcileResponseCurrentReleaseProfileFromJSON( +export function syncReconcileResponsePendingPreparedStackProfileConditionResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseProfile, + SyncReconcileResponsePendingPreparedStackProfileConditionResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseProfile$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseProfile' from JSON`, + SyncReconcileResponsePendingPreparedStackProfileConditionResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackProfileConditionResource' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseProfileUnion$inboundSchema: - z.ZodType = z.union( - [ - z.lazy(() => SyncReconcileResponseCurrentReleaseProfile$inboundSchema), - z.string(), - ], - ); +export const SyncReconcileResponsePendingPreparedStackProfileResourceConditionUnion$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackProfileResourceConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncReconcileResponsePendingPreparedStackProfileConditionResource$inboundSchema + ), + z.any(), + ]); -export function syncReconcileResponseCurrentReleaseProfileUnionFromJSON( +export function syncReconcileResponsePendingPreparedStackProfileResourceConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseProfileUnion, + SyncReconcileResponsePendingPreparedStackProfileResourceConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseProfileUnion$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseProfileUnion' from JSON`, + SyncReconcileResponsePendingPreparedStackProfileResourceConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackProfileResourceConditionUnion' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleasePermissions$inboundSchema: - z.ZodType = z.object( - { - management: z.union([ - z.lazy(() => - SyncReconcileResponseCurrentReleaseManagement1$inboundSchema - ), +export const SyncReconcileResponsePendingPreparedStackProfileGcpResource$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackProfileGcpResource, + unknown + > = z.object({ + condition: z.nullable( + z.union([ z.lazy(() => - SyncReconcileResponseCurrentReleaseManagement2$inboundSchema - ), - SyncReconcileResponseCurrentReleaseManagementEnum$inboundSchema, - ]).optional(), - profiles: z.record( - z.string(), - z.record( - z.string(), - z.array( - z.union([ - z.lazy(() => - SyncReconcileResponseCurrentReleaseProfile$inboundSchema - ), - z.string(), - ]), - ), + SyncReconcileResponsePendingPreparedStackProfileConditionResource$inboundSchema ), - ), - }, - ); + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function syncReconcileResponseCurrentReleasePermissionsFromJSON( +export function syncReconcileResponsePendingPreparedStackProfileGcpResourceFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleasePermissions, + SyncReconcileResponsePendingPreparedStackProfileGcpResource, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleasePermissions$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleasePermissions' from JSON`, + SyncReconcileResponsePendingPreparedStackProfileGcpResource$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackProfileGcpResource' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseConfig$inboundSchema: z.ZodType< - SyncReconcileResponseCurrentReleaseConfig, - unknown -> = collectExtraKeys$( - z.object({ - id: z.string(), - type: z.string(), - }).catchall(z.any()), - "additionalProperties", - true, -); +export const SyncReconcileResponsePendingPreparedStackProfileConditionStack$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackProfileConditionStack, + unknown + > = z.object({ + expression: z.string(), + title: z.string(), + }); -export function syncReconcileResponseCurrentReleaseConfigFromJSON( +export function syncReconcileResponsePendingPreparedStackProfileConditionStackFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseConfig, + SyncReconcileResponsePendingPreparedStackProfileConditionStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseConfig$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseConfig' from JSON`, + SyncReconcileResponsePendingPreparedStackProfileConditionStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackProfileConditionStack' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseDependency$inboundSchema: - z.ZodType = z.object({ - id: z.string(), - type: z.string(), - }); +export const SyncReconcileResponsePendingPreparedStackProfileStackConditionUnion$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackProfileStackConditionUnion, + unknown + > = z.union([ + z.lazy(() => + SyncReconcileResponsePendingPreparedStackProfileConditionStack$inboundSchema + ), + z.any(), + ]); -export function syncReconcileResponseCurrentReleaseDependencyFromJSON( +export function syncReconcileResponsePendingPreparedStackProfileStackConditionUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseDependency, + SyncReconcileResponsePendingPreparedStackProfileStackConditionUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseDependency$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseDependency' from JSON`, + SyncReconcileResponsePendingPreparedStackProfileStackConditionUnion$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackProfileStackConditionUnion' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseLifecycle$inboundSchema: - z.ZodEnum = z.enum( - SyncReconcileResponseCurrentReleaseLifecycle, - ); - -/** @internal */ -export const SyncReconcileResponseCurrentReleaseResources$inboundSchema: - z.ZodType = z.object({ - config: z.lazy(() => - SyncReconcileResponseCurrentReleaseConfig$inboundSchema - ), - dependencies: z.array( - z.lazy(() => SyncReconcileResponseCurrentReleaseDependency$inboundSchema), - ), - lifecycle: SyncReconcileResponseCurrentReleaseLifecycle$inboundSchema, - remoteAccess: z.boolean().optional(), - }); +export const SyncReconcileResponsePendingPreparedStackProfileGcpStack$inboundSchema: + z.ZodType = + z.object({ + condition: z.nullable( + z.union([ + z.lazy(() => + SyncReconcileResponsePendingPreparedStackProfileConditionStack$inboundSchema + ), + z.any(), + ]), + ).optional(), + scope: z.string(), + }); -export function syncReconcileResponseCurrentReleaseResourcesFromJSON( +export function syncReconcileResponsePendingPreparedStackProfileGcpStackFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseResources, + SyncReconcileResponsePendingPreparedStackProfileGcpStack, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseResources$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseResources' from JSON`, + SyncReconcileResponsePendingPreparedStackProfileGcpStack$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackProfileGcpStack' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseSupportedPlatform$inboundSchema: - z.ZodEnum = z - .enum(SyncReconcileResponseCurrentReleaseSupportedPlatform); - -/** @internal */ -export const SyncReconcileResponseCurrentReleaseStack$inboundSchema: z.ZodType< - SyncReconcileResponseCurrentReleaseStack, - unknown -> = z.object({ - id: z.string(), - inputs: z.array( - z.lazy(() => SyncReconcileResponseCurrentReleaseInput$inboundSchema), - ).optional(), - permissions: z.lazy(() => - SyncReconcileResponseCurrentReleasePermissions$inboundSchema - ).optional(), - resources: z.record( - z.string(), - z.lazy(() => SyncReconcileResponseCurrentReleaseResources$inboundSchema), - ), - supportedPlatforms: z.nullable( - z.array(SyncReconcileResponseCurrentReleaseSupportedPlatform$inboundSchema), - ).optional(), -}); +export const SyncReconcileResponsePendingPreparedStackProfileGcpBinding$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackProfileGcpBinding, + unknown + > = z.object({ + resource: z.lazy(() => + SyncReconcileResponsePendingPreparedStackProfileGcpResource$inboundSchema + ).optional(), + stack: z.lazy(() => + SyncReconcileResponsePendingPreparedStackProfileGcpStack$inboundSchema + ).optional(), + }); -export function syncReconcileResponseCurrentReleaseStackFromJSON( +export function syncReconcileResponsePendingPreparedStackProfileGcpBindingFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseStack, + SyncReconcileResponsePendingPreparedStackProfileGcpBinding, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseStack$inboundSchema.parse( - JSON.parse(x), - ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseStack' from JSON`, + SyncReconcileResponsePendingPreparedStackProfileGcpBinding$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackProfileGcpBinding' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentRelease$inboundSchema: z.ZodType< - SyncReconcileResponseCurrentRelease, - unknown -> = z.object({ - description: z.nullable(z.string()).optional(), - releaseId: z.nullable(z.string()).optional(), - stack: z.lazy(() => SyncReconcileResponseCurrentReleaseStack$inboundSchema), - version: z.nullable(z.string()).optional(), -}); +export const SyncReconcileResponsePendingPreparedStackProfileGcpGrant$inboundSchema: + z.ZodType = + z.object({ + actions: z.nullable(z.array(z.string())).optional(), + dataActions: z.nullable(z.array(z.string())).optional(), + permissions: z.nullable(z.array(z.string())).optional(), + predefinedRoles: z.nullable(z.array(z.string())).optional(), + residualPermissions: z.nullable(z.array(z.string())).optional(), + }); -export function syncReconcileResponseCurrentReleaseFromJSON( +export function syncReconcileResponsePendingPreparedStackProfileGcpGrantFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncReconcileResponsePendingPreparedStackProfileGcpGrant, + SDKValidationError +> { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentRelease$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncReconcileResponseCurrentRelease' from JSON`, + SyncReconcileResponsePendingPreparedStackProfileGcpGrant$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackProfileGcpGrant' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentReleaseUnion$inboundSchema: z.ZodType< - SyncReconcileResponseCurrentReleaseUnion, - unknown -> = z.union([ - z.lazy(() => SyncReconcileResponseCurrentRelease$inboundSchema), - z.any(), -]); +export const SyncReconcileResponsePendingPreparedStackProfileGcp$inboundSchema: + z.ZodType = z + .object({ + binding: z.lazy(() => + SyncReconcileResponsePendingPreparedStackProfileGcpBinding$inboundSchema + ), + description: z.nullable(z.string()).optional(), + grant: z.lazy(() => + SyncReconcileResponsePendingPreparedStackProfileGcpGrant$inboundSchema + ), + label: z.nullable(z.string()).optional(), + }); -export function syncReconcileResponseCurrentReleaseUnionFromJSON( +export function syncReconcileResponsePendingPreparedStackProfileGcpFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseCurrentReleaseUnion, + SyncReconcileResponsePendingPreparedStackProfileGcp, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseCurrentReleaseUnion$inboundSchema.parse( + SyncReconcileResponsePendingPreparedStackProfileGcp$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseCurrentReleaseUnion' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackProfileGcp' from JSON`, ); } /** @internal */ -export const SyncReconcileResponsePlatformTest$inboundSchema: z.ZodEnum< - typeof SyncReconcileResponsePlatformTest -> = z.enum(SyncReconcileResponsePlatformTest); +export const SyncReconcileResponsePendingPreparedStackProfilePlatforms$inboundSchema: + z.ZodType< + SyncReconcileResponsePendingPreparedStackProfilePlatforms, + unknown + > = z.object({ + aws: z.nullable( + z.array(z.lazy(() => + SyncReconcileResponsePendingPreparedStackProfileAw$inboundSchema + )), + ).optional(), + azure: z.nullable( + z.array(z.lazy(() => + SyncReconcileResponsePendingPreparedStackProfileAzure$inboundSchema + )), + ).optional(), + gcp: z.nullable( + z.array(z.lazy(() => + SyncReconcileResponsePendingPreparedStackProfileGcp$inboundSchema + )), + ).optional(), + }); + +export function syncReconcileResponsePendingPreparedStackProfilePlatformsFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponsePendingPreparedStackProfilePlatforms, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponsePendingPreparedStackProfilePlatforms$inboundSchema + .parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackProfilePlatforms' from JSON`, + ); +} /** @internal */ -export const SyncReconcileResponseEnvironmentInfoTest$inboundSchema: z.ZodType< - SyncReconcileResponseEnvironmentInfoTest, - unknown -> = z.object({ - testId: z.string(), - platform: SyncReconcileResponsePlatformTest$inboundSchema, -}); +export const SyncReconcileResponsePendingPreparedStackProfile$inboundSchema: + z.ZodType = z + .object({ + description: z.string(), + id: z.string(), + platforms: z.lazy(() => + SyncReconcileResponsePendingPreparedStackProfilePlatforms$inboundSchema + ), + }); -export function syncReconcileResponseEnvironmentInfoTestFromJSON( +export function syncReconcileResponsePendingPreparedStackProfileFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseEnvironmentInfoTest, + SyncReconcileResponsePendingPreparedStackProfile, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseEnvironmentInfoTest$inboundSchema.parse( + SyncReconcileResponsePendingPreparedStackProfile$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseEnvironmentInfoTest' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackProfile' from JSON`, ); } /** @internal */ -export const SyncReconcileResponsePlatformLocal$inboundSchema: z.ZodEnum< - typeof SyncReconcileResponsePlatformLocal -> = z.enum(SyncReconcileResponsePlatformLocal); - -/** @internal */ -export const SyncReconcileResponseEnvironmentInfoLocal$inboundSchema: z.ZodType< - SyncReconcileResponseEnvironmentInfoLocal, - unknown -> = z.object({ - arch: z.string(), - hostname: z.string(), - os: z.string(), - platform: SyncReconcileResponsePlatformLocal$inboundSchema, -}); +export const SyncReconcileResponsePendingPreparedStackProfileUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => + SyncReconcileResponsePendingPreparedStackProfile$inboundSchema + ), + z.string(), + ]); -export function syncReconcileResponseEnvironmentInfoLocalFromJSON( +export function syncReconcileResponsePendingPreparedStackProfileUnionFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseEnvironmentInfoLocal, + SyncReconcileResponsePendingPreparedStackProfileUnion, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseEnvironmentInfoLocal$inboundSchema.parse( + SyncReconcileResponsePendingPreparedStackProfileUnion$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseEnvironmentInfoLocal' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackProfileUnion' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentPlatformAzure$inboundSchema: z.ZodEnum< - typeof SyncReconcileResponseCurrentPlatformAzure -> = z.enum(SyncReconcileResponseCurrentPlatformAzure); - -/** @internal */ -export const SyncReconcileResponseEnvironmentInfoAzure$inboundSchema: z.ZodType< - SyncReconcileResponseEnvironmentInfoAzure, - unknown -> = z.object({ - location: z.string(), - subscriptionId: z.string(), - tenantId: z.string(), - platform: SyncReconcileResponseCurrentPlatformAzure$inboundSchema, -}); +export const SyncReconcileResponsePendingPreparedStackPermissions$inboundSchema: + z.ZodType = z + .object({ + management: z.union([ + z.lazy(() => + SyncReconcileResponsePendingPreparedStackManagement1$inboundSchema + ), + z.lazy(() => + SyncReconcileResponsePendingPreparedStackManagement2$inboundSchema + ), + SyncReconcileResponsePendingPreparedStackManagementEnum$inboundSchema, + ]).optional(), + profiles: z.record( + z.string(), + z.record( + z.string(), + z.array( + z.union([ + z.lazy(() => + SyncReconcileResponsePendingPreparedStackProfile$inboundSchema + ), + z.string(), + ]), + ), + ), + ), + }); -export function syncReconcileResponseEnvironmentInfoAzureFromJSON( +export function syncReconcileResponsePendingPreparedStackPermissionsFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseEnvironmentInfoAzure, + SyncReconcileResponsePendingPreparedStackPermissions, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseEnvironmentInfoAzure$inboundSchema.parse( + SyncReconcileResponsePendingPreparedStackPermissions$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseEnvironmentInfoAzure' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackPermissions' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentPlatformGcp$inboundSchema: z.ZodEnum< - typeof SyncReconcileResponseCurrentPlatformGcp -> = z.enum(SyncReconcileResponseCurrentPlatformGcp); - -/** @internal */ -export const SyncReconcileResponseEnvironmentInfoGcp$inboundSchema: z.ZodType< - SyncReconcileResponseEnvironmentInfoGcp, - unknown -> = z.object({ - projectId: z.string(), - projectNumber: z.string(), - region: z.string(), - platform: SyncReconcileResponseCurrentPlatformGcp$inboundSchema, -}); +export const SyncReconcileResponsePendingPreparedStackConfig$inboundSchema: + z.ZodType = + collectExtraKeys$( + z.object({ + id: z.string(), + type: z.string(), + }).catchall(z.any()), + "additionalProperties", + true, + ); -export function syncReconcileResponseEnvironmentInfoGcpFromJSON( +export function syncReconcileResponsePendingPreparedStackConfigFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseEnvironmentInfoGcp, + SyncReconcileResponsePendingPreparedStackConfig, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseEnvironmentInfoGcp$inboundSchema.parse( + SyncReconcileResponsePendingPreparedStackConfig$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseEnvironmentInfoGcp' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackConfig' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseCurrentPlatformAws$inboundSchema: z.ZodEnum< - typeof SyncReconcileResponseCurrentPlatformAws -> = z.enum(SyncReconcileResponseCurrentPlatformAws); - -/** @internal */ -export const SyncReconcileResponseEnvironmentInfoAws$inboundSchema: z.ZodType< - SyncReconcileResponseEnvironmentInfoAws, - unknown -> = z.object({ - accountId: z.string(), - region: z.string(), - platform: SyncReconcileResponseCurrentPlatformAws$inboundSchema, -}); +export const SyncReconcileResponsePendingPreparedStackDependency$inboundSchema: + z.ZodType = z + .object({ + id: z.string(), + type: z.string(), + }); -export function syncReconcileResponseEnvironmentInfoAwsFromJSON( +export function syncReconcileResponsePendingPreparedStackDependencyFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseEnvironmentInfoAws, + SyncReconcileResponsePendingPreparedStackDependency, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseEnvironmentInfoAws$inboundSchema.parse( + SyncReconcileResponsePendingPreparedStackDependency$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseEnvironmentInfoAws' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackDependency' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseEnvironmentInfoUnion$inboundSchema: z.ZodType< - SyncReconcileResponseEnvironmentInfoUnion, - unknown -> = z.union([ - z.lazy(() => SyncReconcileResponseEnvironmentInfoGcp$inboundSchema), - z.lazy(() => SyncReconcileResponseEnvironmentInfoAzure$inboundSchema), - z.lazy(() => SyncReconcileResponseEnvironmentInfoLocal$inboundSchema), - z.lazy(() => SyncReconcileResponseEnvironmentInfoAws$inboundSchema), - z.lazy(() => SyncReconcileResponseEnvironmentInfoTest$inboundSchema), - z.any(), -]); +export const SyncReconcileResponsePendingPreparedStackLifecycle$inboundSchema: + z.ZodEnum = z.enum( + SyncReconcileResponsePendingPreparedStackLifecycle, + ); -export function syncReconcileResponseEnvironmentInfoUnionFromJSON( +/** @internal */ +export const SyncReconcileResponsePendingPreparedStackResources$inboundSchema: + z.ZodType = z + .object({ + config: z.lazy(() => + SyncReconcileResponsePendingPreparedStackConfig$inboundSchema + ), + dependencies: z.array( + z.lazy(() => + SyncReconcileResponsePendingPreparedStackDependency$inboundSchema + ), + ), + enabledWhen: z.nullable(z.string()).optional(), + lifecycle: + SyncReconcileResponsePendingPreparedStackLifecycle$inboundSchema, + remoteAccess: z.boolean().optional(), + }); + +export function syncReconcileResponsePendingPreparedStackResourcesFromJSON( jsonString: string, ): SafeParseResult< - SyncReconcileResponseEnvironmentInfoUnion, + SyncReconcileResponsePendingPreparedStackResources, SDKValidationError > { return safeParse( jsonString, (x) => - SyncReconcileResponseEnvironmentInfoUnion$inboundSchema.parse( + SyncReconcileResponsePendingPreparedStackResources$inboundSchema.parse( JSON.parse(x), ), - `Failed to parse 'SyncReconcileResponseEnvironmentInfoUnion' from JSON`, + `Failed to parse 'SyncReconcileResponsePendingPreparedStackResources' from JSON`, ); } /** @internal */ -export const SyncReconcileResponseError$inboundSchema: z.ZodType< - SyncReconcileResponseError, +export const SyncReconcileResponsePendingPreparedStackSupportedPlatform$inboundSchema: + z.ZodEnum = + z.enum(SyncReconcileResponsePendingPreparedStackSupportedPlatform); + +/** @internal */ +export const SyncReconcileResponsePendingPreparedStack$inboundSchema: z.ZodType< + SyncReconcileResponsePendingPreparedStack, unknown > = z.object({ - code: z.string(), - context: z.nullable(z.any()).optional(), - hint: z.nullable(z.string()).optional(), - httpStatusCode: z.nullable(z.int()).optional(), - internal: z.boolean(), - message: z.string(), - retryable: z.boolean().default(false), - source: z.nullable(z.any()).optional(), + id: z.string(), + inputs: z.array( + z.lazy(() => SyncReconcileResponsePendingPreparedStackInput$inboundSchema), + ).optional(), + permissions: z.lazy(() => + SyncReconcileResponsePendingPreparedStackPermissions$inboundSchema + ).optional(), + resources: z.record( + z.string(), + z.lazy(() => + SyncReconcileResponsePendingPreparedStackResources$inboundSchema + ), + ), + supportedPlatforms: z.nullable( + z.array( + SyncReconcileResponsePendingPreparedStackSupportedPlatform$inboundSchema, + ), + ).optional(), }); -export function syncReconcileResponseErrorFromJSON( +export function syncReconcileResponsePendingPreparedStackFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncReconcileResponsePendingPreparedStack, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncReconcileResponseError$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncReconcileResponseError' from JSON`, + (x) => + SyncReconcileResponsePendingPreparedStack$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponsePendingPreparedStack' from JSON`, ); } -/** @internal */ -export const SyncReconcileResponseErrorUnion$inboundSchema: z.ZodType< - SyncReconcileResponseErrorUnion, - unknown -> = z.union([z.lazy(() => SyncReconcileResponseError$inboundSchema), z.any()]); - -export function syncReconcileResponseErrorUnionFromJSON( +/** @internal */ +export const SyncReconcileResponsePendingPreparedStackUnion$inboundSchema: + z.ZodType = z.union([ + z.lazy(() => SyncReconcileResponsePendingPreparedStack$inboundSchema), + z.any(), + ]); + +export function syncReconcileResponsePendingPreparedStackUnionFromJSON( jsonString: string, -): SafeParseResult { +): SafeParseResult< + SyncReconcileResponsePendingPreparedStackUnion, + SDKValidationError +> { return safeParse( jsonString, - (x) => SyncReconcileResponseErrorUnion$inboundSchema.parse(JSON.parse(x)), - `Failed to parse 'SyncReconcileResponseErrorUnion' from JSON`, + (x) => + SyncReconcileResponsePendingPreparedStackUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponsePendingPreparedStackUnion' from JSON`, ); } -/** @internal */ -export const SyncReconcileResponseCurrentPlatform$inboundSchema: z.ZodEnum< - typeof SyncReconcileResponseCurrentPlatform -> = z.enum(SyncReconcileResponseCurrentPlatform); - /** @internal */ export const SyncReconcileResponsePreparedStackTypeStringList$inboundSchema: z.ZodEnum = z.enum( @@ -16599,6 +20984,7 @@ export const SyncReconcileResponsePreparedStackResources$inboundSchema: dependencies: z.array( z.lazy(() => SyncReconcileResponsePreparedStackDependency$inboundSchema), ), + enabledWhen: z.nullable(z.string()).optional(), lifecycle: SyncReconcileResponsePreparedStackLifecycle$inboundSchema, remoteAccess: z.boolean().optional(), }); @@ -16681,13 +21067,74 @@ export function syncReconcileResponsePreparedStackUnionFromJSON( ); } +/** @internal */ +export const SyncReconcileResponseSetupUpdateAuthorization$inboundSchema: + z.ZodType = z.object({ + baselineFrozenDigest: z.string(), + nonce: z.string(), + releaseId: z.string(), + setupFingerprint: z.string(), + setupFingerprintVersion: z.int(), + setupTarget: z.string(), + targetFrozenDigest: z.string(), + }); + +export function syncReconcileResponseSetupUpdateAuthorizationFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseSetupUpdateAuthorization, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseSetupUpdateAuthorization$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseSetupUpdateAuthorization' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseSetupUpdateAuthorizationUnion$inboundSchema: + z.ZodType = z + .union([ + z.lazy(() => SyncReconcileResponseSetupUpdateAuthorization$inboundSchema), + z.any(), + ]); + +export function syncReconcileResponseSetupUpdateAuthorizationUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseSetupUpdateAuthorizationUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseSetupUpdateAuthorizationUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseSetupUpdateAuthorizationUnion' from JSON`, + ); +} + /** @internal */ export const SyncReconcileResponseRuntimeMetadata$inboundSchema: z.ZodType< SyncReconcileResponseRuntimeMetadata, unknown > = z.object({ + initialSetupAuthority: + SyncReconcileResponseInitialSetupAuthority$inboundSchema.optional(), lastSyncedEnvVarsHash: z.nullable(z.string()).optional(), lastSyncedSecretNames: z.array(z.string()).optional(), + pendingPreparedStack: z.nullable( + z.union([ + z.lazy(() => SyncReconcileResponsePendingPreparedStack$inboundSchema), + z.any(), + ]), + ).optional(), + persistedGateAnswers: z.record(z.string(), z.boolean()).optional(), preparedStack: z.nullable( z.union([ z.lazy(() => SyncReconcileResponsePreparedStack$inboundSchema), @@ -16695,6 +21142,12 @@ export const SyncReconcileResponseRuntimeMetadata$inboundSchema: z.ZodType< ]), ).optional(), registryAccessGranted: z.boolean().optional(), + setupUpdateAuthorization: z.nullable( + z.union([ + z.lazy(() => SyncReconcileResponseSetupUpdateAuthorization$inboundSchema), + z.any(), + ]), + ).optional(), }); export function syncReconcileResponseRuntimeMetadataFromJSON( @@ -19461,6 +23914,7 @@ export const SyncReconcileResponseTargetReleaseResources$inboundSchema: dependencies: z.array( z.lazy(() => SyncReconcileResponseTargetReleaseDependency$inboundSchema), ), + enabledWhen: z.nullable(z.string()).optional(), lifecycle: SyncReconcileResponseTargetReleaseLifecycle$inboundSchema, remoteAccess: z.boolean().optional(), }); @@ -20224,6 +24678,100 @@ export function syncReconcileResponseEnvironmentVariablesFromJSON( ); } +/** @internal */ +export const SyncReconcileResponseApiKeySecretRef$inboundSchema: z.ZodType< + SyncReconcileResponseApiKeySecretRef, + unknown +> = z.object({ + key: z.string(), + name: z.string(), +}); + +export function syncReconcileResponseApiKeySecretRefFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseApiKeySecretRef$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponseApiKeySecretRef' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseApiKey$inboundSchema: z.ZodType< + SyncReconcileResponseApiKey, + unknown +> = z.object({ + secretRef: z.lazy(() => SyncReconcileResponseApiKeySecretRef$inboundSchema), +}); + +export function syncReconcileResponseApiKeyFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncReconcileResponseApiKey$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponseApiKey' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseApiKeyUnion$inboundSchema: z.ZodType< + SyncReconcileResponseApiKeyUnion, + unknown +> = z.union([ + z.lazy(() => SyncReconcileResponseApiKey$inboundSchema), + z.any(), + z.string(), +]); + +export function syncReconcileResponseApiKeyUnionFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => SyncReconcileResponseApiKeyUnion$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponseApiKeyUnion' from JSON`, + ); +} + +/** @internal */ +export const TargetTypeAi$inboundSchema: z.ZodEnum = z + .enum(TargetTypeAi); + +/** @internal */ +export const SyncReconcileResponseExternalBindingsAi$inboundSchema: z.ZodType< + SyncReconcileResponseExternalBindingsAi, + unknown +> = z.object({ + apiKey: z.nullable( + z.union([ + z.lazy(() => SyncReconcileResponseApiKey$inboundSchema), + z.any(), + z.string(), + ]), + ).optional(), + provider: z.string(), + type: TargetTypeAi$inboundSchema, +}); + +export function syncReconcileResponseExternalBindingsAiFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseExternalBindingsAi, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseExternalBindingsAi$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseExternalBindingsAi' from JSON`, + ); +} + /** @internal */ export const SyncReconcileResponseDatabaseSecretRef6$inboundSchema: z.ZodType< SyncReconcileResponseDatabaseSecretRef6, @@ -20712,6 +25260,11 @@ export function syncReconcileResponsePortUnion4FromJSON( ); } +/** @internal */ +export const SyncReconcileResponseSslMode$inboundSchema: z.ZodEnum< + typeof SyncReconcileResponseSslMode +> = z.enum(SyncReconcileResponseSslMode); + /** @internal */ export const SyncReconcileResponseUsernameSecretRef4$inboundSchema: z.ZodType< SyncReconcileResponseUsernameSecretRef4, @@ -20808,6 +25361,7 @@ export const SyncReconcileResponseExternalBindingsExternal$inboundSchema: z.any(), ]), ).optional(), + sslMode: SyncReconcileResponseSslMode$inboundSchema.optional(), username: z.nullable( z.union([ z.lazy(() => SyncReconcileResponseUsername4$inboundSchema), @@ -21472,6 +26026,80 @@ export function syncReconcileResponsePortUnion2FromJSON( ); } +/** @internal */ +export const SyncReconcileResponseServerCaCertificatesSecretRef$inboundSchema: + z.ZodType = z + .object({ + key: z.string(), + name: z.string(), + }); + +export function syncReconcileResponseServerCaCertificatesSecretRefFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseServerCaCertificatesSecretRef, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseServerCaCertificatesSecretRef$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseServerCaCertificatesSecretRef' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseServerCaCertificates$inboundSchema: z.ZodType< + SyncReconcileResponseServerCaCertificates, + unknown +> = z.object({ + secretRef: z.lazy(() => + SyncReconcileResponseServerCaCertificatesSecretRef$inboundSchema + ), +}); + +export function syncReconcileResponseServerCaCertificatesFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseServerCaCertificates, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseServerCaCertificates$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseServerCaCertificates' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseServerCaCertificatesUnion$inboundSchema: + z.ZodType = z.union([ + z.lazy(() => SyncReconcileResponseServerCaCertificates$inboundSchema), + z.array(z.string()), + z.any(), + ]); + +export function syncReconcileResponseServerCaCertificatesUnionFromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseServerCaCertificatesUnion, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseServerCaCertificatesUnion$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseServerCaCertificatesUnion' from JSON`, + ); +} + /** @internal */ export const SyncReconcileResponseUsernameSecretRef2$inboundSchema: z.ZodType< SyncReconcileResponseUsernameSecretRef2, @@ -21574,6 +26202,13 @@ export const SyncReconcileResponseExternalBindingsCloudSQL$inboundSchema: z.any(), ]), ).optional(), + serverCaCertificates: z.nullable( + z.union([ + z.lazy(() => SyncReconcileResponseServerCaCertificates$inboundSchema), + z.array(z.string()), + z.any(), + ]), + ).optional(), username: z.nullable( z.union([ z.lazy(() => SyncReconcileResponseUsername2$inboundSchema), @@ -25948,6 +30583,7 @@ export function syncReconcileResponseExternalBindingsUnion1FromJSON( /** @internal */ export const SyncReconcileResponseExternalBindingsUnion7$inboundSchema: z.ZodType = z.union([ + z.lazy(() => SyncReconcileResponseExternalBindingsAi$inboundSchema), z.lazy(() => SyncReconcileResponseExternalBindingsContainerAppsEnvironment$inboundSchema ), @@ -26216,15 +30852,70 @@ export function syncReconcileResponseMonitoringUnionFromJSON( ); } +/** @internal */ +export const SyncReconcileResponseFailureDomains2$inboundSchema: z.ZodType< + SyncReconcileResponseFailureDomains2, + unknown +> = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), +}); + +export function syncReconcileResponseFailureDomains2FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseFailureDomains2$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponseFailureDomains2' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseFailureDomainsUnion2$inboundSchema: z.ZodType< + SyncReconcileResponseFailureDomainsUnion2, + unknown +> = z.union([ + z.lazy(() => SyncReconcileResponseFailureDomains2$inboundSchema), + z.any(), +]); + +export function syncReconcileResponseFailureDomainsUnion2FromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseFailureDomainsUnion2, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseFailureDomainsUnion2$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseFailureDomainsUnion2' from JSON`, + ); +} + /** @internal */ export const SyncReconcileResponsePoolsAutoscale$inboundSchema: z.ZodType< SyncReconcileResponsePoolsAutoscale, unknown > = z.object({ + failure_domains: z.nullable( + z.union([ + z.lazy(() => SyncReconcileResponseFailureDomains2$inboundSchema), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), max: z.int(), min: z.int(), mode: z.literal("autoscale"), +}).transform((v) => { + return remap$(v, { + "failure_domains": "failureDomains", + }); }); export function syncReconcileResponsePoolsAutoscaleFromJSON( @@ -26238,14 +30929,69 @@ export function syncReconcileResponsePoolsAutoscaleFromJSON( ); } +/** @internal */ +export const SyncReconcileResponseFailureDomains1$inboundSchema: z.ZodType< + SyncReconcileResponseFailureDomains1, + unknown +> = z.object({ + selectedFailureDomains: z.array(z.string()).optional(), + spread: z.int(), +}); + +export function syncReconcileResponseFailureDomains1FromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseFailureDomains1$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'SyncReconcileResponseFailureDomains1' from JSON`, + ); +} + +/** @internal */ +export const SyncReconcileResponseFailureDomainsUnion1$inboundSchema: z.ZodType< + SyncReconcileResponseFailureDomainsUnion1, + unknown +> = z.union([ + z.lazy(() => SyncReconcileResponseFailureDomains1$inboundSchema), + z.any(), +]); + +export function syncReconcileResponseFailureDomainsUnion1FromJSON( + jsonString: string, +): SafeParseResult< + SyncReconcileResponseFailureDomainsUnion1, + SDKValidationError +> { + return safeParse( + jsonString, + (x) => + SyncReconcileResponseFailureDomainsUnion1$inboundSchema.parse( + JSON.parse(x), + ), + `Failed to parse 'SyncReconcileResponseFailureDomainsUnion1' from JSON`, + ); +} + /** @internal */ export const SyncReconcileResponsePoolsFixed$inboundSchema: z.ZodType< SyncReconcileResponsePoolsFixed, unknown > = z.object({ + failure_domains: z.nullable( + z.union([ + z.lazy(() => SyncReconcileResponseFailureDomains1$inboundSchema), + z.any(), + ]), + ).optional(), machine: z.nullable(z.string()).optional(), machines: z.int(), mode: z.literal("fixed"), +}).transform((v) => { + return remap$(v, { + "failure_domains": "failureDomains", + }); }); export function syncReconcileResponsePoolsFixedFromJSON( @@ -28190,13 +32936,16 @@ export const TargetConfig$inboundSchema: z.ZodType = z externalBindings: z.record( z.string(), z.union([ + z.lazy(() => SyncReconcileResponseExternalBindingsAi$inboundSchema), z.lazy(() => SyncReconcileResponseExternalBindingsContainerAppsEnvironment$inboundSchema ), z.union([ z.lazy(() => SyncReconcileResponseExternalBindingsS3$inboundSchema), z.lazy(() => SyncReconcileResponseExternalBindingsBlob$inboundSchema), - z.lazy(() => SyncReconcileResponseExternalBindingsGcs$inboundSchema), + z.lazy(() => + SyncReconcileResponseExternalBindingsGcs$inboundSchema + ), z.lazy(() => SyncReconcileResponseExternalBindingsLocalStorage$inboundSchema ), @@ -28274,6 +33023,7 @@ export const TargetConfig$inboundSchema: z.ZodType = z ]), ]), ).optional(), + inputValues: z.record(z.string(), z.nullable(z.any())).optional(), labelDomain: z.nullable(z.string()).optional(), managementConfig: z.nullable( z.union([ @@ -30092,6 +34842,7 @@ export const ReleaseInfoResources$inboundSchema: z.ZodType< > = z.object({ config: z.lazy(() => ReleaseInfoConfig$inboundSchema), dependencies: z.array(z.lazy(() => ReleaseInfoDependency$inboundSchema)), + enabledWhen: z.nullable(z.string()).optional(), lifecycle: ReleaseInfoLifecycle$inboundSchema, remoteAccess: z.boolean().optional(), }); diff --git a/client-sdks/platform/typescript/src/models/syncrenewrequest.ts b/client-sdks/platform/typescript/src/models/syncrenewrequest.ts new file mode 100644 index 000000000..6efa6109d --- /dev/null +++ b/client-sdks/platform/typescript/src/models/syncrenewrequest.ts @@ -0,0 +1,42 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; + +export type SyncRenewRequest = { + /** + * Single deployment to renew. Deprecated: use deploymentIds. Retained so a manager built against the previous API keeps renewing during rollout. + */ + deploymentId?: string | undefined; + /** + * Deployments to renew or confirm. Renewal is per deployment: the response reports each one independently. + */ + deploymentIds?: Array | undefined; + session: string; +}; + +/** @internal */ +export type SyncRenewRequest$Outbound = { + deploymentId?: string | undefined; + deploymentIds?: Array | undefined; + session: string; +}; + +/** @internal */ +export const SyncRenewRequest$outboundSchema: z.ZodType< + SyncRenewRequest$Outbound, + SyncRenewRequest +> = z.object({ + deploymentId: z.string().optional(), + deploymentIds: z.array(z.string()).optional(), + session: z.string(), +}); + +export function syncRenewRequestToJSON( + syncRenewRequest: SyncRenewRequest, +): string { + return JSON.stringify( + SyncRenewRequest$outboundSchema.parse(syncRenewRequest), + ); +} diff --git a/client-sdks/platform/typescript/src/models/updateworkspacesettingsrequest.ts b/client-sdks/platform/typescript/src/models/updateworkspacesettingsrequest.ts new file mode 100644 index 000000000..5aba546c0 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/updateworkspacesettingsrequest.ts @@ -0,0 +1,65 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { ClosedEnum } from "../types/enums.js"; + +/** + * Workspace-level policy for ai-agent debug commands. `auto` runs `alien_debug` tool calls without asking; `ask` halts each session before every debug command and waits for a human approval from dashboard or Slack. + */ +export const UpdateWorkspaceSettingsRequestDebugPermissionMode = { + Auto: "auto", + Ask: "ask", +} as const; +/** + * Workspace-level policy for ai-agent debug commands. `auto` runs `alien_debug` tool calls without asking; `ask` halts each session before every debug command and waits for a human approval from dashboard or Slack. + */ +export type UpdateWorkspaceSettingsRequestDebugPermissionMode = ClosedEnum< + typeof UpdateWorkspaceSettingsRequestDebugPermissionMode +>; + +export type UpdateWorkspaceSettingsRequest = { + /** + * Workspace-level policy for ai-agent debug commands. `auto` runs `alien_debug` tool calls without asking; `ask` halts each session before every debug command and waits for a human approval from dashboard or Slack. + */ + debugPermissionMode?: + | UpdateWorkspaceSettingsRequestDebugPermissionMode + | undefined; + /** + * Turn the ai-agent on (`true`) or off (`false`) for this workspace. + */ + enabled?: boolean | undefined; +}; + +/** @internal */ +export const UpdateWorkspaceSettingsRequestDebugPermissionMode$outboundSchema: + z.ZodEnum = z.enum( + UpdateWorkspaceSettingsRequestDebugPermissionMode, + ); + +/** @internal */ +export type UpdateWorkspaceSettingsRequest$Outbound = { + debugPermissionMode?: string | undefined; + enabled?: boolean | undefined; +}; + +/** @internal */ +export const UpdateWorkspaceSettingsRequest$outboundSchema: z.ZodType< + UpdateWorkspaceSettingsRequest$Outbound, + UpdateWorkspaceSettingsRequest +> = z.object({ + debugPermissionMode: + UpdateWorkspaceSettingsRequestDebugPermissionMode$outboundSchema.optional(), + enabled: z.boolean().optional(), +}); + +export function updateWorkspaceSettingsRequestToJSON( + updateWorkspaceSettingsRequest: UpdateWorkspaceSettingsRequest, +): string { + return JSON.stringify( + UpdateWorkspaceSettingsRequest$outboundSchema.parse( + updateWorkspaceSettingsRequest, + ), + ); +} diff --git a/client-sdks/platform/typescript/src/models/workspaceinvitation.ts b/client-sdks/platform/typescript/src/models/workspaceinvitation.ts new file mode 100644 index 000000000..386b747ad --- /dev/null +++ b/client-sdks/platform/typescript/src/models/workspaceinvitation.ts @@ -0,0 +1,82 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { ClosedEnum } from "../types/enums.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; +import { WorkspaceRole, WorkspaceRole$inboundSchema } from "./workspacerole.js"; + +export const WorkspaceInvitationStatus = { + Pending: "pending", + Accepted: "accepted", + Revoked: "revoked", + Expired: "expired", +} as const; +export type WorkspaceInvitationStatus = ClosedEnum< + typeof WorkspaceInvitationStatus +>; + +export const DeliveryStatus = { + Pending: "pending", + Sent: "sent", + Failed: "failed", +} as const; +export type DeliveryStatus = ClosedEnum; + +export type WorkspaceInvitation = { + /** + * Unique identifier for the workspace invitation. + */ + id: string; + email: string; + /** + * Role for workspace-scoped service accounts + */ + role: WorkspaceRole; + status: WorkspaceInvitationStatus; + deliveryStatus: DeliveryStatus; + expiresAt: Date; + lastSentAt: Date | null; + createdAt: Date; + inviteUrl: string; +}; + +/** @internal */ +export const WorkspaceInvitationStatus$inboundSchema: z.ZodEnum< + typeof WorkspaceInvitationStatus +> = z.enum(WorkspaceInvitationStatus); + +/** @internal */ +export const DeliveryStatus$inboundSchema: z.ZodEnum = z + .enum(DeliveryStatus); + +/** @internal */ +export const WorkspaceInvitation$inboundSchema: z.ZodType< + WorkspaceInvitation, + unknown +> = z.object({ + id: z.string(), + email: z.string(), + role: WorkspaceRole$inboundSchema, + status: WorkspaceInvitationStatus$inboundSchema, + deliveryStatus: DeliveryStatus$inboundSchema, + expiresAt: z.iso.datetime({ offset: true }).transform(v => new Date(v)), + lastSentAt: z.nullable( + z.iso.datetime({ offset: true }).transform(v => new Date(v)), + ), + createdAt: z.iso.datetime({ offset: true }).transform(v => new Date(v)), + inviteUrl: z.string(), +}); + +export function workspaceInvitationFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => WorkspaceInvitation$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'WorkspaceInvitation' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/workspaceinvitationpreview.ts b/client-sdks/platform/typescript/src/models/workspaceinvitationpreview.ts new file mode 100644 index 000000000..b4ee12f22 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/workspaceinvitationpreview.ts @@ -0,0 +1,126 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { ClosedEnum } from "../types/enums.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; +import { WorkspaceRole, WorkspaceRole$inboundSchema } from "./workspacerole.js"; + +export const WorkspaceInvitationPreviewKind = { + Email: "email", + Link: "link", +} as const; +export type WorkspaceInvitationPreviewKind = ClosedEnum< + typeof WorkspaceInvitationPreviewKind +>; + +export type WorkspaceInvitationPreviewWorkspace = { + /** + * Unique identifier for the workspace. + */ + id: string; + name: string; + logoUrl: string | null; +}; + +export type Inviter = { + name: string; + image: string | null; +}; + +export const WorkspaceInvitationPreviewState = { + Active: "active", + Accepted: "accepted", + Expired: "expired", + Revoked: "revoked", +} as const; +export type WorkspaceInvitationPreviewState = ClosedEnum< + typeof WorkspaceInvitationPreviewState +>; + +export type WorkspaceInvitationPreview = { + kind: WorkspaceInvitationPreviewKind; + workspace: WorkspaceInvitationPreviewWorkspace; + inviter: Inviter | null; + /** + * Role for workspace-scoped service accounts + */ + role: WorkspaceRole; + expiresAt: Date; + state: WorkspaceInvitationPreviewState; + emailHint: string | null; +}; + +/** @internal */ +export const WorkspaceInvitationPreviewKind$inboundSchema: z.ZodEnum< + typeof WorkspaceInvitationPreviewKind +> = z.enum(WorkspaceInvitationPreviewKind); + +/** @internal */ +export const WorkspaceInvitationPreviewWorkspace$inboundSchema: z.ZodType< + WorkspaceInvitationPreviewWorkspace, + unknown +> = z.object({ + id: z.string(), + name: z.string(), + logoUrl: z.nullable(z.string()), +}); + +export function workspaceInvitationPreviewWorkspaceFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => + WorkspaceInvitationPreviewWorkspace$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'WorkspaceInvitationPreviewWorkspace' from JSON`, + ); +} + +/** @internal */ +export const Inviter$inboundSchema: z.ZodType = z.object({ + name: z.string(), + image: z.nullable(z.string()), +}); + +export function inviterFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => Inviter$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'Inviter' from JSON`, + ); +} + +/** @internal */ +export const WorkspaceInvitationPreviewState$inboundSchema: z.ZodEnum< + typeof WorkspaceInvitationPreviewState +> = z.enum(WorkspaceInvitationPreviewState); + +/** @internal */ +export const WorkspaceInvitationPreview$inboundSchema: z.ZodType< + WorkspaceInvitationPreview, + unknown +> = z.object({ + kind: WorkspaceInvitationPreviewKind$inboundSchema, + workspace: z.lazy(() => WorkspaceInvitationPreviewWorkspace$inboundSchema), + inviter: z.nullable(z.lazy(() => Inviter$inboundSchema)), + role: WorkspaceRole$inboundSchema, + expiresAt: z.iso.datetime({ offset: true }).transform(v => new Date(v)), + state: WorkspaceInvitationPreviewState$inboundSchema, + emailHint: z.nullable(z.string()), +}); + +export function workspaceInvitationPreviewFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => WorkspaceInvitationPreview$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'WorkspaceInvitationPreview' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/models/workspaceinvitelink.ts b/client-sdks/platform/typescript/src/models/workspaceinvitelink.ts new file mode 100644 index 000000000..57b23dfd8 --- /dev/null +++ b/client-sdks/platform/typescript/src/models/workspaceinvitelink.ts @@ -0,0 +1,51 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import * as z from "zod/v4"; +import { safeParse } from "../lib/schemas.js"; +import { Result as SafeParseResult } from "../types/fp.js"; +import { SDKValidationError } from "./errors/sdkvalidationerror.js"; +import { WorkspaceRole, WorkspaceRole$inboundSchema } from "./workspacerole.js"; + +export type WorkspaceInviteLink = { + /** + * Unique identifier for the workspace invite link. + */ + id: string; + /** + * Role for workspace-scoped service accounts + */ + role: WorkspaceRole; + expiresAt: Date; + createdAt: Date; + useCount: number; + lastUsedAt: Date | null; + inviteUrl: string; +}; + +/** @internal */ +export const WorkspaceInviteLink$inboundSchema: z.ZodType< + WorkspaceInviteLink, + unknown +> = z.object({ + id: z.string(), + role: WorkspaceRole$inboundSchema, + expiresAt: z.iso.datetime({ offset: true }).transform(v => new Date(v)), + createdAt: z.iso.datetime({ offset: true }).transform(v => new Date(v)), + useCount: z.int(), + lastUsedAt: z.nullable( + z.iso.datetime({ offset: true }).transform(v => new Date(v)), + ), + inviteUrl: z.string(), +}); + +export function workspaceInviteLinkFromJSON( + jsonString: string, +): SafeParseResult { + return safeParse( + jsonString, + (x) => WorkspaceInviteLink$inboundSchema.parse(JSON.parse(x)), + `Failed to parse 'WorkspaceInviteLink' from JSON`, + ); +} diff --git a/client-sdks/platform/typescript/src/sdk/agentsessions.ts b/client-sdks/platform/typescript/src/sdk/agentsessions.ts new file mode 100644 index 000000000..104158b92 --- /dev/null +++ b/client-sdks/platform/typescript/src/sdk/agentsessions.ts @@ -0,0 +1,85 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { agentSessionsApprove } from "../funcs/agentSessionsApprove.js"; +import { agentSessionsEvents } from "../funcs/agentSessionsEvents.js"; +import { agentSessionsGet } from "../funcs/agentSessionsGet.js"; +import { agentSessionsList } from "../funcs/agentSessionsList.js"; +import { agentSessionsStop } from "../funcs/agentSessionsStop.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; + +export class AgentSessions extends ClientSDK { + /** + * List ai-agent monitor sessions for this workspace. Newest first, capped at 50. + */ + async list( + request?: operations.ListAgentSessionsRequest | undefined, + options?: RequestOptions, + ): Promise { + return unwrapAsync(agentSessionsList( + this, + request, + options, + )); + } + + /** + * Retrieve one ai-agent monitor session by id. + */ + async get( + request: operations.GetAgentSessionRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(agentSessionsGet( + this, + request, + options, + )); + } + + /** + * Incrementally read a session's event log (steps, tool calls, report deltas, approvals, status transitions). Pass the previous response's `latestSeq` as `after` to fetch only new events. + */ + async events( + request: operations.ListAgentSessionEventsRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(agentSessionsEvents( + this, + request, + options, + )); + } + + /** + * Approve a halted ai-agent monitor session. Proxies to the ai-agent service, minting a fresh CLI session for the caller so the ai-agent's own auth applies. + */ + async approve( + request: operations.ApproveAgentSessionRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(agentSessionsApprove( + this, + request, + options, + )); + } + + /** + * Stop (cancel) a running, queued, or halted ai-agent monitor session. Proxies to the ai-agent service, minting a fresh CLI session for the caller so the ai-agent's own auth applies. Idempotent — stopping an already-terminal session is a 200 no-op. + */ + async stop( + request: operations.StopAgentSessionRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(agentSessionsStop( + this, + request, + options, + )); + } +} diff --git a/client-sdks/platform/typescript/src/sdk/deploymentgroups.ts b/client-sdks/platform/typescript/src/sdk/deploymentgroups.ts index b2c398b7a..466db18b6 100644 --- a/client-sdks/platform/typescript/src/sdk/deploymentgroups.ts +++ b/client-sdks/platform/typescript/src/sdk/deploymentgroups.ts @@ -6,9 +6,12 @@ import { deploymentGroupsCreateDeploymentGroup } from "../funcs/deploymentGroups import { deploymentGroupsCreateDeploymentGroupToken } from "../funcs/deploymentGroupsCreateDeploymentGroupToken.js"; import { deploymentGroupsCreateFirstPartyDeploymentSession } from "../funcs/deploymentGroupsCreateFirstPartyDeploymentSession.js"; import { deploymentGroupsDeleteDeploymentGroup } from "../funcs/deploymentGroupsDeleteDeploymentGroup.js"; +import { deploymentGroupsEnsureDeploymentGroupByExternalId } from "../funcs/deploymentGroupsEnsureDeploymentGroupByExternalId.js"; import { deploymentGroupsEnsureDeploymentGroupByName } from "../funcs/deploymentGroupsEnsureDeploymentGroupByName.js"; import { deploymentGroupsGetDeploymentGroup } from "../funcs/deploymentGroupsGetDeploymentGroup.js"; +import { deploymentGroupsGetDeploymentGroupByExternalId } from "../funcs/deploymentGroupsGetDeploymentGroupByExternalId.js"; import { deploymentGroupsListDeploymentGroups } from "../funcs/deploymentGroupsListDeploymentGroups.js"; +import { deploymentGroupsSetDeploymentGroupExternalId } from "../funcs/deploymentGroupsSetDeploymentGroupExternalId.js"; import { deploymentGroupsUpdateDeploymentGroup } from "../funcs/deploymentGroupsUpdateDeploymentGroup.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as models from "../models/index.js"; @@ -58,6 +61,34 @@ export class DeploymentGroups extends ClientSDK { )); } + /** + * Get or create a deployment group by project and external ID + */ + async ensureDeploymentGroupByExternalId( + request: operations.EnsureDeploymentGroupByExternalIdRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(deploymentGroupsEnsureDeploymentGroupByExternalId( + this, + request, + options, + )); + } + + /** + * Get a deployment group by project and external ID + */ + async getDeploymentGroupByExternalId( + request: operations.GetDeploymentGroupByExternalIdRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(deploymentGroupsGetDeploymentGroupByExternalId( + this, + request, + options, + )); + } + /** * Get deployment group details */ @@ -100,6 +131,20 @@ export class DeploymentGroups extends ClientSDK { )); } + /** + * Set or clear a deployment group's external ID + */ + async setDeploymentGroupExternalId( + request: operations.SetDeploymentGroupExternalIdRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(deploymentGroupsSetDeploymentGroupExternalId( + this, + request, + options, + )); + } + /** * Create deployment group token * diff --git a/client-sdks/platform/typescript/src/sdk/deployments.ts b/client-sdks/platform/typescript/src/sdk/deployments.ts index 43f3c8098..87a1ec14b 100644 --- a/client-sdks/platform/typescript/src/sdk/deployments.ts +++ b/client-sdks/platform/typescript/src/sdk/deployments.ts @@ -19,6 +19,7 @@ import { deploymentsPinRelease } from "../funcs/deploymentsPinRelease.js"; import { deploymentsRedeploy } from "../funcs/deploymentsRedeploy.js"; import { deploymentsRetry } from "../funcs/deploymentsRetry.js"; import { deploymentsSetFirstPartyDeploymentInputs } from "../funcs/deploymentsSetFirstPartyDeploymentInputs.js"; +import { deploymentsSetReleaseChannel } from "../funcs/deploymentsSetReleaseChannel.js"; import { deploymentsUpdateEnvironmentVariables } from "../funcs/deploymentsUpdateEnvironmentVariables.js"; import { deploymentsUpdateInputs } from "../funcs/deploymentsUpdateInputs.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; @@ -225,6 +226,17 @@ export class Deployments extends ClientSDK { )); } + async setReleaseChannel( + request: operations.SetDeploymentReleaseChannelRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(deploymentsSetReleaseChannel( + this, + request, + options, + )); + } + /** * Retry a failed deployment operation. Uses alien-infra's retry mechanisms to resume from exact failure point. */ diff --git a/client-sdks/platform/typescript/src/sdk/managers.ts b/client-sdks/platform/typescript/src/sdk/managers.ts index e590e4d28..72918e81c 100644 --- a/client-sdks/platform/typescript/src/sdk/managers.ts +++ b/client-sdks/platform/typescript/src/sdk/managers.ts @@ -5,6 +5,7 @@ import { managersCancelSetup } from "../funcs/managersCancelSetup.js"; import { managersCreate } from "../funcs/managersCreate.js"; import { managersDelete } from "../funcs/managersDelete.js"; +import { managersGenerateManagerBindingToken } from "../funcs/managersGenerateManagerBindingToken.js"; import { managersGenerateManagerToken } from "../funcs/managersGenerateManagerToken.js"; import { managersGet } from "../funcs/managersGet.js"; import { managersGetDeployment } from "../funcs/managersGetDeployment.js"; @@ -221,6 +222,20 @@ export class Managers extends ClientSDK { )); } + /** + * Generate a short-lived deployment-scoped token for resolving opted-in remote bindings through the currently assigned manager. + */ + async generateManagerBindingToken( + request: operations.GenerateManagerBindingTokenRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(managersGenerateManagerBindingToken( + this, + request, + options, + )); + } + /** * Resolve decrypted project-level Google Cloud OAuth provider settings for a manager-side deployment bootstrap. */ diff --git a/client-sdks/platform/typescript/src/sdk/projects.ts b/client-sdks/platform/typescript/src/sdk/projects.ts index 83cbdca96..6bf4921e4 100644 --- a/client-sdks/platform/typescript/src/sdk/projects.ts +++ b/client-sdks/platform/typescript/src/sdk/projects.ts @@ -175,7 +175,7 @@ export class Projects extends ClientSDK { } /** - * Get the active release for this project. Returns the latest release, or the pinned release if deploymentId is provided and that deployment has a pinned release. + * Get the production channel's current release. When deploymentId is provided, returns that deployment's effective release: its pin, or its followed channel's current release. */ async getActiveRelease( request: operations.GetProjectActiveReleaseRequest, diff --git a/client-sdks/platform/typescript/src/sdk/releasechannels.ts b/client-sdks/platform/typescript/src/sdk/releasechannels.ts new file mode 100644 index 000000000..153d9e8f0 --- /dev/null +++ b/client-sdks/platform/typescript/src/sdk/releasechannels.ts @@ -0,0 +1,55 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { releaseChannelsCreate } from "../funcs/releaseChannelsCreate.js"; +import { releaseChannelsDelete } from "../funcs/releaseChannelsDelete.js"; +import { releaseChannelsList } from "../funcs/releaseChannelsList.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; + +export class ReleaseChannels extends ClientSDK { + /** + * Retrieve debug sessions for dashboard audit. Filters: project, deployment, state, mode. + */ + async list( + request: operations.ListReleaseChannelsRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(releaseChannelsList( + this, + request, + options, + )); + } + + /** + * Create a debug-session audit row. Called by the manager when a pull or push debug tunnel is opened. Workspace + project derived from deployment. + */ + async create( + request: operations.CreateReleaseChannelRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(releaseChannelsCreate( + this, + request, + options, + )); + } + + /** + * Delete a workspace. The workspace must have no projects. + */ + async delete( + request: operations.DeleteReleaseChannelRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(releaseChannelsDelete( + this, + request, + options, + )); + } +} diff --git a/client-sdks/platform/typescript/src/sdk/releases.ts b/client-sdks/platform/typescript/src/sdk/releases.ts index bae3f7737..b852c9b86 100644 --- a/client-sdks/platform/typescript/src/sdk/releases.ts +++ b/client-sdks/platform/typescript/src/sdk/releases.ts @@ -7,6 +7,8 @@ import { releasesGet } from "../funcs/releasesGet.js"; import { releasesList } from "../funcs/releasesList.js"; import { releasesListAuthors } from "../funcs/releasesListAuthors.js"; import { releasesListBranches } from "../funcs/releasesListBranches.js"; +import { releasesListDeployments } from "../funcs/releasesListDeployments.js"; +import { releasesPromote } from "../funcs/releasesPromote.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as models from "../models/index.js"; import * as operations from "../models/operations/index.js"; @@ -82,4 +84,29 @@ export class Releases extends ClientSDK { options, )); } + + /** + * List the project's deployments with their rollout state relative to this release. + */ + async listDeployments( + request: operations.ListReleaseDeploymentsRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(releasesListDeployments( + this, + request, + options, + )); + } + + async promote( + request: operations.PromoteReleaseRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(releasesPromote( + this, + request, + options, + )); + } } diff --git a/client-sdks/platform/typescript/src/sdk/sdk.ts b/client-sdks/platform/typescript/src/sdk/sdk.ts index 248c65603..f2480fae6 100644 --- a/client-sdks/platform/typescript/src/sdk/sdk.ts +++ b/client-sdks/platform/typescript/src/sdk/sdk.ts @@ -2,7 +2,20 @@ * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. */ -import { ClientSDK } from "../lib/sdks.js"; +import { acceptWorkspaceInvitation } from "../funcs/acceptWorkspaceInvitation.js"; +import { createWorkspaceInvitation } from "../funcs/createWorkspaceInvitation.js"; +import { createWorkspaceInviteLink } from "../funcs/createWorkspaceInviteLink.js"; +import { getWorkspaceInvitationPreview } from "../funcs/getWorkspaceInvitationPreview.js"; +import { getWorkspaceInviteLink } from "../funcs/getWorkspaceInviteLink.js"; +import { listWorkspaceInvitations } from "../funcs/listWorkspaceInvitations.js"; +import { resendWorkspaceInvitation } from "../funcs/resendWorkspaceInvitation.js"; +import { revokeWorkspaceInvitation } from "../funcs/revokeWorkspaceInvitation.js"; +import { revokeWorkspaceInviteLink } from "../funcs/revokeWorkspaceInviteLink.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; +import { AgentSessions } from "./agentsessions.js"; import { ApiKeys } from "./apikeys.js"; import { Auth } from "./auth.js"; import { Billing } from "./billing.js"; @@ -19,9 +32,11 @@ import { Managers } from "./managers.js"; import { OperatorManifests } from "./operatormanifests.js"; import { Packages } from "./packages.js"; import { Projects } from "./projects.js"; +import { ReleaseChannels } from "./releasechannels.js"; import { Releases } from "./releases.js"; import { Resolve } from "./resolve.js"; import { Resources } from "./resources.js"; +import { SlackIntegration } from "./slackintegration.js"; import { Sync } from "./sync.js"; import { User } from "./user.js"; import { Workspaces } from "./workspaces.js"; @@ -62,6 +77,11 @@ export class Alien extends ClientSDK { return (this._releases ??= new Releases(this._options)); } + private _releaseChannels?: ReleaseChannels; + get releaseChannels(): ReleaseChannels { + return (this._releaseChannels ??= new ReleaseChannels(this._options)); + } + private _deployments?: Deployments; get deployments(): Deployments { return (this._deployments ??= new Deployments(this._options)); @@ -112,6 +132,16 @@ export class Alien extends ClientSDK { return (this._deployment ??= new Deployment(this._options)); } + private _slackIntegration?: SlackIntegration; + get slackIntegration(): SlackIntegration { + return (this._slackIntegration ??= new SlackIntegration(this._options)); + } + + private _agentSessions?: AgentSessions; + get agentSessions(): AgentSessions { + return (this._agentSessions ??= new AgentSessions(this._options)); + } + private _sync?: Sync; get sync(): Sync { return (this._sync ??= new Sync(this._options)); @@ -136,4 +166,103 @@ export class Alien extends ClientSDK { get billing(): Billing { return (this._billing ??= new Billing(this._options)); } + + async getWorkspaceInvitationPreview( + request: operations.GetWorkspaceInvitationPreviewRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(getWorkspaceInvitationPreview( + this, + request, + options, + )); + } + + async acceptWorkspaceInvitation( + request: operations.AcceptWorkspaceInvitationRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(acceptWorkspaceInvitation( + this, + request, + options, + )); + } + + async listWorkspaceInvitations( + request: operations.ListWorkspaceInvitationsRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(listWorkspaceInvitations( + this, + request, + options, + )); + } + + async createWorkspaceInvitation( + request: operations.CreateWorkspaceInvitationRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(createWorkspaceInvitation( + this, + request, + options, + )); + } + + async resendWorkspaceInvitation( + request: operations.ResendWorkspaceInvitationRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(resendWorkspaceInvitation( + this, + request, + options, + )); + } + + async revokeWorkspaceInvitation( + request: operations.RevokeWorkspaceInvitationRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(revokeWorkspaceInvitation( + this, + request, + options, + )); + } + + async getWorkspaceInviteLink( + request: operations.GetWorkspaceInviteLinkRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(getWorkspaceInviteLink( + this, + request, + options, + )); + } + + async createWorkspaceInviteLink( + request: operations.CreateWorkspaceInviteLinkRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(createWorkspaceInviteLink( + this, + request, + options, + )); + } + + async revokeWorkspaceInviteLink( + request: operations.RevokeWorkspaceInviteLinkRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(revokeWorkspaceInviteLink( + this, + request, + options, + )); + } } diff --git a/client-sdks/platform/typescript/src/sdk/slackintegration.ts b/client-sdks/platform/typescript/src/sdk/slackintegration.ts new file mode 100644 index 000000000..342764b21 --- /dev/null +++ b/client-sdks/platform/typescript/src/sdk/slackintegration.ts @@ -0,0 +1,87 @@ +/* + * Code generated by Speakeasy (https://speakeasy.com). DO NOT EDIT. + */ + +import { slackIntegrationInstallUrl } from "../funcs/slackIntegrationInstallUrl.js"; +import { slackIntegrationListChannels } from "../funcs/slackIntegrationListChannels.js"; +import { slackIntegrationSetNotificationChannel } from "../funcs/slackIntegrationSetNotificationChannel.js"; +import { slackIntegrationStatus } from "../funcs/slackIntegrationStatus.js"; +import { slackIntegrationUninstall } from "../funcs/slackIntegrationUninstall.js"; +import { ClientSDK, RequestOptions } from "../lib/sdks.js"; +import * as models from "../models/index.js"; +import * as operations from "../models/operations/index.js"; +import { unwrapAsync } from "../types/fp.js"; + +export class SlackIntegration extends ClientSDK { + /** + * Generate the Slack OAuth consent URL for this workspace. + */ + async installUrl( + request?: operations.SlackIntegrationInstallUrlRequest | undefined, + options?: RequestOptions, + ): Promise { + return unwrapAsync(slackIntegrationInstallUrl( + this, + request, + options, + )); + } + + /** + * Return the Slack install for this workspace (if any). + */ + async status( + request?: operations.SlackIntegrationStatusRequest | undefined, + options?: RequestOptions, + ): Promise { + return unwrapAsync(slackIntegrationStatus( + this, + request, + options, + )); + } + + /** + * List public Slack channels for this workspace's install. Used by the dashboard's notification-channel picker. + */ + async listChannels( + request?: operations.SlackIntegrationChannelsRequest | undefined, + options?: RequestOptions, + ): Promise { + return unwrapAsync(slackIntegrationListChannels( + this, + request, + options, + )); + } + + /** + * Configure which Slack channel receives ai-agent monitor reports. + */ + async setNotificationChannel( + request?: + | operations.SlackIntegrationSetNotificationChannelRequest + | undefined, + options?: RequestOptions, + ): Promise { + return unwrapAsync(slackIntegrationSetNotificationChannel( + this, + request, + options, + )); + } + + /** + * Uninstall the Slack integration for this workspace. Revokes the bot token at Slack and deletes the row. + */ + async uninstall( + request?: operations.SlackIntegrationUninstallRequest | undefined, + options?: RequestOptions, + ): Promise { + return unwrapAsync(slackIntegrationUninstall( + this, + request, + options, + )); + } +} diff --git a/client-sdks/platform/typescript/src/sdk/sync.ts b/client-sdks/platform/typescript/src/sdk/sync.ts index 8def35f66..a096f738c 100644 --- a/client-sdks/platform/typescript/src/sdk/sync.ts +++ b/client-sdks/platform/typescript/src/sdk/sync.ts @@ -7,6 +7,7 @@ import { syncContext } from "../funcs/syncContext.js"; import { syncList } from "../funcs/syncList.js"; import { syncReconcile } from "../funcs/syncReconcile.js"; import { syncRelease } from "../funcs/syncRelease.js"; +import { syncRenew } from "../funcs/syncRenew.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as models from "../models/index.js"; import * as operations from "../models/operations/index.js"; @@ -69,6 +70,17 @@ export class Sync extends ClientSDK { )); } + async renew( + request: operations.SyncRenewRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(syncRenew( + this, + request, + options, + )); + } + /** * Release a deployment lock. Must be called after processing an acquired deployment, even if processing failed. This is critical to avoid deadlocks. */ diff --git a/client-sdks/platform/typescript/src/sdk/workspaces.ts b/client-sdks/platform/typescript/src/sdk/workspaces.ts index 70087d484..1598a6b82 100644 --- a/client-sdks/platform/typescript/src/sdk/workspaces.ts +++ b/client-sdks/platform/typescript/src/sdk/workspaces.ts @@ -6,11 +6,13 @@ import { workspacesAddMember } from "../funcs/workspacesAddMember.js"; import { workspacesDelete } from "../funcs/workspacesDelete.js"; import { workspacesDismissOnboarding } from "../funcs/workspacesDismissOnboarding.js"; import { workspacesGet } from "../funcs/workspacesGet.js"; +import { workspacesGetSettings } from "../funcs/workspacesGetSettings.js"; import { workspacesList } from "../funcs/workspacesList.js"; import { workspacesListMembers } from "../funcs/workspacesListMembers.js"; import { workspacesRemoveMember } from "../funcs/workspacesRemoveMember.js"; import { workspacesUpdate } from "../funcs/workspacesUpdate.js"; import { workspacesUpdateMember } from "../funcs/workspacesUpdateMember.js"; +import { workspacesUpdateSettings } from "../funcs/workspacesUpdateSettings.js"; import { ClientSDK, RequestOptions } from "../lib/sdks.js"; import * as models from "../models/index.js"; import * as operations from "../models/operations/index.js"; @@ -142,4 +144,32 @@ export class Workspaces extends ClientSDK { options, )); } + + /** + * Read the ai-agent settings for a workspace. Returns defaults (`enabled: true`, `debugPermissionMode: auto`) when the workspace has never customized them. + */ + async getSettings( + request: operations.GetWorkspaceSettingsRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(workspacesGetSettings( + this, + request, + options, + )); + } + + /** + * Update the ai-agent settings for a workspace. Supports `debugPermissionMode` (`ask` requires human approval on every ai-agent debug command, `auto` runs them without asking) and `enabled` (`false` turns the ai-agent off so incoming triggers are rejected before any session runs). + */ + async updateSettings( + request: operations.UpdateWorkspaceSettingsRequest, + options?: RequestOptions, + ): Promise { + return unwrapAsync(workspacesUpdateSettings( + this, + request, + options, + )); + } } diff --git a/client-sdks/platform/typescript/tsconfig.json b/client-sdks/platform/typescript/tsconfig.json index c51c3bf21..feac75510 100644 --- a/client-sdks/platform/typescript/tsconfig.json +++ b/client-sdks/platform/typescript/tsconfig.json @@ -13,7 +13,6 @@ "declaration": true, "declarationMap": true, "sourceMap": true, - "rootDir": "src", "outDir": "esm", diff --git a/crates/alien-cli/src/commands/onboard.rs b/crates/alien-cli/src/commands/onboard.rs index 0d3d115e8..24a71674e 100644 --- a/crates/alien-cli/src/commands/onboard.rs +++ b/crates/alien-cli/src/commands/onboard.rs @@ -152,6 +152,7 @@ async fn onboard_platform(args: OnboardArgs, ctx: ExecutionMode, name: String) - message: format!("{}", e), }) })?, + external_id: None, max_deployments: std::num::NonZeroU64::new(args.max_deployments as u64) .unwrap_or(std::num::NonZeroU64::new(100).unwrap()), }) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 388ff5834..c3716bfdf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -66,8 +66,8 @@ importers: specifier: ^9.19.0 version: 9.39.2(jiti@2.6.1) globals: - specifier: ^17.0.0 - version: 17.9.0 + specifier: ^15.14.0 + version: 15.15.0 typescript: specifier: ~5.8.3 version: 5.8.3 @@ -2908,6 +2908,10 @@ packages: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} + globals@15.15.0: + resolution: {integrity: sha512-7ACyT3wmyp3I61S4fG682L0VA2RGD9otkqGJIwNUMF1SWUombIIk+af1unuDYgMm082aHYwD+mzJvv9Iu8dsgg==} + engines: {node: '>=18'} + globals@17.9.0: resolution: {integrity: sha512-m/MvAW61QVU5VDNF1Vj8axt016h8w7L5TU1e9zlab7XIttAT2YAlCwl75K1fOqvMM9apmD7lbCIRhpfkhmxhCg==} engines: {node: '>=18'} @@ -7128,6 +7132,8 @@ snapshots: globals@14.0.0: {} + globals@15.15.0: {} + globals@17.9.0: {} globby@11.1.0: